Bảo mật & triển khai

Tài liệu của bạn không bao giờ rời khỏi máy chủ của bạn

Doconut là một thư viện .NET mà bạn tự lưu trữ, không phải là dịch vụ tài liệu mà bạn tải lên. Các tệp được mở, render và phục vụ hoàn toàn trong hạ tầng của bạn — điều này làm cho nó phù hợp với các khối lượng công việc được quy định, nơi tài liệu không bao giờ có thể vượt qua ranh giới tổ chức.

0
tài liệu gửi tới Doconut
100%
render trên máy chủ của bạn
Ngoại tuyến
cấp phép với tệp .lic cục bộ

Cơ sở hạ tầng của bạn — ranh giới tin cậy

  1. 1

    Ứng dụng của bạn

    Đọc tệp từ bất kỳ nơi nào nó đã tồn tại: đĩa cục bộ, chia sẻ mạng, S3, Azure Blob, một cột trong cơ sở dữ liệu.

  2. 2

    Phần mềm trung gian Doconut

    Được đăng ký trong pipeline của bạn với AddDoconut() và UseDoconut(). Chạy trong quá trình của bạn, dưới danh tính của bạn, trong mạng của bạn.

  3. 3

    Hình ảnh các trang

    Viewer.OpenDocumentAsync() tạo ra các hình ảnh các trang được phân trang và trả về một token phiên không rõ ràng. Tệp nguồn không bao giờ được chuyển cho trình duyệt.

  4. 4

    Trình duyệt

    Widget JavaScript yêu cầu các trang bằng token phiên từ endpoint của bạn. Nó không bao giờ thấy đường dẫn tệp, URL lưu trữ, hoặc các byte gốc.

Không bao giờ được liên hệ trong quá trình render

  • Máy chủ Doconut
  • Bất kỳ API chuyển đổi bên thứ ba nào
  • Bất kỳ dịch vụ OCR hoặc AI đám mây nào
  • Bất kỳ CDN phông chữ hoặc tài nguyên bên ngoài nào

Kiến trúc

Nơi tài liệu thực sự đi đến

Một dịch vụ xem tài liệu được lưu trữ hoạt động bằng cách nhận tệp của bạn. Doconut hoạt động bằng cách không bao giờ nhận nó. Tài liệu được đọc bởi quá trình của bạn, chuyển thành hình ảnh các trang bởi quá trình của bạn, và truyền tới trình duyệt bởi quá trình của bạn — Doconut là thư viện thực hiện công việc, không phải là bên tham gia chuyển giao.

Mô hình bảo mật

Những gì thiết kế thực sự đảm bảo

Triển khai tại chỗ theo cấu trúc

Không có chế độ SaaS và không có dự phòng được lưu trữ. Doconut được cung cấp dưới dạng các DLL mà bạn tham chiếu; nếu máy chủ của bạn ngoại tuyến, việc render vẫn hoạt động. Việc không có đường tải lên là một thuộc tính của kiến trúc, không phải là cài đặt cấu hình mà ai đó có thể bật tắt.

Mã thông báo phiên không trong suốt

OpenDocumentAsync() trả về một chuỗi không trong suốt, không phải là đường dẫn tệp hoặc định danh mà khách hàng có thể can thiệp. Trình duyệt không thể liệt kê các tài liệu, đoán mã thông báo lân cận, hoặc ghi lại mã thông báo vào một tệp khác. Xem các mã thông báo như bí mật: không bao giờ ghi log chúng và không bao giờ lưu chúng phía máy khách ngoài trình xem.

Quyền ủy quyền vẫn thuộc về bạn

Doconut không bao giờ quyết định ai có thể đọc một tài liệu. Bạn gọi OpenDocumentAsync() chỉ sau khi kiểm tra ủy quyền của riêng bạn đã thành công, vì vậy trình xem sẽ kế thừa bất kỳ kiểm soát truy cập nào mà ứng dụng của bạn đã thực thi — vai trò, thuê bao, quyền cấp độ bản ghi, tất cả.

Không có tài liệu nào rời đi dưới dạng tệp

Trình duyệt nhận các hình ảnh trang đã render, không phải tài liệu gốc. Người dùng có thể xem hợp đồng không thể dễ dàng trích xuất DOCX gốc, và hình ảnh trang bị rò rỉ không chứa các thay đổi được theo dõi, bình luận, cột ẩn hoặc siêu dữ liệu mà tệp nguồn có.

Tài liệu được bảo vệ bằng mật khẩu

Các tệp được mã hóa và bảo vệ bằng mật khẩu được mở phía máy chủ với mật khẩu được cung cấp bởi mã của bạn. Mật khẩu chỉ chuyển qua ranh giới tiến trình bên trong ứng dụng của bạn — không bao giờ tới máy khách, không bao giờ tới chúng tôi.

Cấp phép ngoại tuyến

Việc cấp phép là một tệp .lic cục bộ được giải quyết thông qua options.LicensePath hoặc Viewer.DoconutLicense(path). Không có callback kích hoạt và không có kiểm tra giấy phép thời gian chạy qua mạng, đó là lý do khiến việc triển khai cách ly không kết nối mạng trở nên khả thi.

Tuân thủ

Cách Doconut phù hợp với môi trường được quy định

Một cách trình bày trung thực quan trọng hơn ở đây so với một bức tường logo. Doconut là một thư viện, không phải nhà cung cấp dịch vụ. Chúng tôi không bao giờ nhận, lưu trữ hoặc xử lý tài liệu của bạn, có nghĩa là chúng tôi không trở thành bộ xử lý, bộ xử lý phụ hoặc đối tác kinh doanh khi bạn triển khai nó. Điều đó loại bỏ một toàn bộ danh mục giấy tờ — nhưng các kiểm soát xung quanh việc triển khai vẫn là của bạn để vận hành và làm chứng.

HIPAA

Vì thông tin sức khỏe được bảo vệ không bao giờ đến Doconut, nên không có mối quan hệ đối tác kinh doanh để bù đắp bằng BAA. Hồ sơ và các nghiên cứu DICOM được hiển thị trong môi trường của bạn. Các biện pháp bảo vệ — kiểm soát truy cập, ghi nhật ký kiểm toán, mã hoá khi nghỉ và khi truyền — vẫn là trách nhiệm của bạn, được thực hiện trong ứng dụng bạn đã chạy.

GDPR và nơi cư trú dữ liệu

Dữ liệu cá nhân ở lại nơi bạn đặt nó. Không có chuyển giao xuyên biên giới nào do trình xem gây ra, vì thực tế không có chuyển giao nào: tài liệu được đọc và hiển thị trong cùng khu vực pháp lý với máy chủ bạn đã triển khai. Việc cư trú trở thành quyết định lưu trữ, không phải là thương lượng với nhà cung cấp.

Chính phủ và quốc phòng

Việc triển khai không có truy cập internet ra ngoài là cấu hình được hỗ trợ chứ không phải là giải pháp tạm thời. Đóng gói các tệp DLL và tệp .lic, cài đặt vào khu vực an toàn, và trình xem sẽ chạy vô hạn cho phạm vi phiên bản mà giấy phép bao phủ.

Những gì chúng tôi không khẳng định

Doconut không quảng cáo chứng nhận SOC 2, ISO 27001 hoặc HITRUST, và bạn không nên trình bày nó là đã được chứng nhận. Lập luận bảo mật là về kiến trúc: nhà cung cấp không bao giờ nằm trong luồng dữ liệu. Nếu kiểm toán viên của bạn cần một câu chuyện kiểm soát, đó là câu chuyện đó.

Triển khai

Nơi nó có thể chạy

Windows Server

Mục tiêu cổ điển. IIS hoặc Kestrel, trong trung tâm dữ liệu của bạn hoặc trên máy ảo đám mây mà bạn kiểm soát.

Docker

Hỗ trợ cho .NET 8. Gửi viewer như một phần của hình ảnh của bạn và giữ các tệp giấy phép ra khỏi lớp bằng một bí mật được gắn.

Web farm và phân tán

Nhiều nút phía sau bộ cân bằng tải chia sẻ bộ nhớ đệm render, vì vậy một phiên được mở trên một nút vẫn có thể đọc được trên nút khác.

Môi trường cách ly không có kết nối

Không cần kết nối ra bên ngoài ở bất kỳ thời điểm nào sau khi cài đặt — không cho việc render, không cho việc chuyển đổi, không cho việc cấp phép.

Hoạt động

Danh sách kiểm tra tăng cường

Không có gì trong số này là lạ lùng. Chúng là một vài thứ thường gây ra lỗi nhất trong một triển khai thực tế, theo thứ tự chúng thường gây rắc rối.

  1. 1Phê duyệt trước khi mở. Gọi OpenDocumentAsync() chỉ sau khi kiểm tra quyền của bạn đã chạy — trình xem sẽ vui vẻ hiển thị bất kỳ thứ gì bạn cung cấp.
  2. 2Giữ file .lic ra khỏi hệ thống kiểm soát mã nguồn và ra khỏi image container của bạn. Lưu nó trong một thư mục có quyền đọc bị hạn chế và gắn nó như một bí mật.
  3. 3Không bao giờ ghi nhật ký token phiên. Chúng nên nằm trong bộ nhớ và trong cấu hình của trình xem, không phải trong nhật ký yêu cầu, dấu vết APM hoặc báo cáo lỗi.
  4. 4Xác định phạm vi endpoint tài nguyên. UseDoconutResources() cung cấp tài nguyên cho trình xem — đặt nó phía sau cùng cơ chế xác thực như phần còn lại của ứng dụng, không phải trong nhánh ẩn danh của pipeline.
  5. 5Đặt thời gian sống thực cho bộ nhớ đệm render. Các hình ảnh trang được lưu trong bộ nhớ đệm là bản sao của tài liệu nhạy cảm; loại bỏ chúng theo lịch trình phù hợp với chính sách lưu trữ của bạn.
  6. 6Ghim phiên bản DLL của bạn và lưu trữ chúng cùng với giấy phép. Một giấy phép được liên kết với một dải phiên bản; việc giữ cả hai cùng nhau là cách đảm bảo việc triển khai vẫn có thể khởi động sau năm năm.

Các câu hỏi bảo mật mà chúng tôi thực sự nhận được

Tài liệu có bao giờ được tải lên Doconut không?

Không. Doconut là một thư viện chạy bên trong ứng dụng của bạn. Không có điểm cuối tải lên, không có lớp hiển thị được lưu trữ và không có kênh thu thập dữ liệu mang nội dung tài liệu. Nếu máy chủ của bạn không có kết nối tới internet, trình xem vẫn sẽ hiển thị bình thường.

Người dùng có thể tải xuống tệp gốc từ trình xem không?

Không thông qua trình xem. Trình duyệt nhận các hình ảnh trang đã được render được định danh bằng một token phiên không trong suốt. Nếu bạn muốn một nút tải xuống, bạn tự triển khai — có nghĩa là quyết định phát hành tệp nguồn vẫn là một lựa chọn rõ ràng trong mã của bạn.

Token phiên là gì chính xác?

Một chuỗi không trong suốt được trả về bởi Viewer.OpenDocumentAsync() mà widget JavaScript sử dụng để lấy các trang. Nó không phải là định danh tài liệu, không phải là đường dẫn, và không phải là thứ để lưu trữ hay tái sử dụng. Hãy coi nó như một chứng chỉ mang theo có thời gian sống ngắn.

Giấy phép có gửi thông tin về nhà không?

Không. Việc cấp phép giải quyết một tệp .lic cục bộ. Không có cuộc gọi kích hoạt và không có việc xác thực lại định kỳ, đó là lý do chính khiến các cài đặt không có kết nối internet hoạt động.

Nó có thể chạy mà không có kết nối internet nào không?

Có. Việc render, chuyển đổi và cấp phép đều diễn ra cục bộ. Điều duy nhất mà kết nối internet mang lại là việc tải xuống các bản cập nhật, mà bạn cũng có thể mang trên phương tiện lưu trữ.

Doconut có được chứng nhận SOC 2 hoặc ISO 27001 không?

Chúng tôi không khẳng định bất kỳ chứng nhận nào, và bạn không nên trình bày sản phẩm là đã được chứng nhận. Thực tế liên quan đến kiểm toán là khác và thường mạnh hơn: Doconut không bao giờ nằm trong đường truyền dữ liệu, vì vậy không có môi trường nhà cung cấp nào để kiểm toán viên đánh giá.

Các tài liệu được bảo vệ bằng mật khẩu được xử lý như thế nào?

Mã của bạn cung cấp mật khẩu khi mở tài liệu, phía máy chủ. Nó được sử dụng để giải mã trong quy trình của bạn và không bao giờ được truyền tới trình duyệt hoặc bất kỳ nơi nào khác.

Đánh giá nó trong mạng nội bộ của bạn

Yêu cầu giấy phép tạm thời và chạy Doconut trên hạ tầng của bạn, với các tài liệu của bạn, cùng các quy tắc tường lửa của bạn đã được thiết lập. Đó là đánh giá duy nhất chứng minh quan điểm này.

100% render trên máy chủ của bạn