Безопасность и развертывание

Ваши документы никогда не покидают ваши серверы

Doconut — это .NET библиотека, которую вы размещаете сами, а не сервис документов, в который вы загружаете файлы. Файлы открываются, рендерятся и обслуживаются полностью внутри вашей собственной инфраструктуры — что делает её пригодной для регулируемых нагрузок, где сам документ никогда не может пересечь границы организации.

0
документы, отправленные в Doconut
100%
рендеринг на ваших собственных серверах
Офлайн
лицензирование с локальным файлом .lic

Ваша инфраструктура — граница доверия

  1. 1

    Ваше приложение

    Читает файл откуда бы он ни находился: локальный диск, сетевой ресурс, S3, Azure Blob, столбец в базе данных.

  2. 2

    Промежуточное ПО Doconut

    Зарегистрировано в вашем собственном конвейере с помощью AddDoconut() и UseDoconut(). Работает в вашем процессе, под вашей учётной записью, в вашей сети.

  3. 3

    Изображения страниц

    Viewer.OpenDocumentAsync() рендерит постраничные изображения и возвращает непрозрачный токен сеанса. Исходный файл никогда не передаётся браузеру.

  4. 4

    Браузер

    Виджет JavaScript запрашивает страницы по токену сеанса у вашего собственного конечного пункта. Он никогда не видит путь к файлу, URL хранилища или оригинальные байты.

Никогда не контактируется во время рендеринга

  • Серверы Doconut
  • Любой сторонний API конвертации
  • Любой облачный сервис OCR или ИИ
  • Любой внешний CDN шрифтов или ресурсов

Архитектура

Куда на самом деле попадает документ

Хостинговый сервис просмотра работает, получая ваш файл. Doconut работает, никогда не получая его. Документ читается вашим собственным процессом, растеризуется в изображения страниц вашим собственным процессом и передаётся в браузер вашим собственным процессом — Doconut является библиотекой, выполняющей работу, а не стороной передачи.

Модель безопасности

Что на самом деле гарантирует дизайн

Локально по конструкции

Нет режима SaaS и нет хостинговой резервной версии. Doconut поставляется в виде DLL, которые вы подключаете; если ваши серверы отключены, рендеринг всё равно работает. Отсутствие пути загрузки является свойством архитектуры, а не настройкой, которую кто‑то может переключить.

Непрозрачные токены сеанса

OpenDocumentAsync() возвращает непрозрачную строку, а не путь к файлу или идентификатор, который клиент может подделать. Браузер не может перечислять документы, угадывать соседний токен или переписывать токен в другой файл. Рассматривайте токены как секреты: никогда не записывайте их в журнал и не сохраняйте их на клиенте за пределами просмотрщика.

Авторизация остаётся вашей

Doconut никогда не решает, кто может читать документ. Вы вызываете OpenDocumentAsync() только после того, как прошла ваша собственная проверка авторизации, поэтому просмотрщик наследует любые механизмы контроля доступа, которые уже реализованы в вашем приложении — роли, арендаторы, разрешения на уровне записей и всё остальное.

Документ не покидает систему в виде файла

Браузер получает изображения отрендеренных страниц, а не исходный документ. Пользователь, который может просматривать контракт, не может тривиально извлечь оригинальный DOCX, а утёкшее изображение страницы не содержит отслеживаемых изменений, комментариев, скрытых столбцов или метаданных исходного файла.

Документы, защищённые паролем

Зашифрованные и защищённые паролем файлы открываются на сервере с паролем, предоставленным вашим кодом. Пароль пересекает границы процессов только внутри вашего собственного приложения — никогда не передаётся клиенту и нам.

Офлайн лицензирование

Лицензирование представляет собой локальный файл .lic, который указывается через options.LicensePath или Viewer.DoconutLicense(path). Нет обратного вызова активации и проверки лицензии во время выполнения по сети, что и делает возможным полностью изолированное развертывание.

Соответствие

Как Doconut вписывается в регулируемую среду

Честная структура важнее здесь, чем стенка логотипов. Doconut — это библиотека, а не поставщик услуг. Мы никогда не получаем, не храним и не обрабатываем ваши документы, что означает, что мы не становимся процессором, субпроцессором или бизнес‑партнёром при их развертывании. Это устраняет целую категорию бумажной работы — но контроль над развертыванием остаётся вашей ответственностью в эксплуатации и подтверждении.

HIPAA

Поскольку защищённая медицинская информация никогда не попадает в Doconut, нет отношений бизнес‑партнёра, которые нужно оформлять с помощью BAA. Записи и исследования DICOM отображаются внутри вашей собственной среды. Защита сама по себе — контроль доступа, аудит, шифрование в состоянии покоя и при передаче — остаётся вашей ответственностью, реализуемой в приложении, которое вы уже используете.

GDPR и размещение данных

Персональные данные остаются там, где вы их разместили. Просмотрщик не инициирует трансграничную передачу, потому что передачи вообще нет: документ читается и отображается в той же юрисдикции, что и сервер, на котором вы его развернули. Размещение данных становится решением по хостингу, а не переговорами с поставщиком.

Правительство и оборона

Развертывания без исходящего доступа в интернет поддерживаются как конфигурация, а не как обходное решение. Упакуйте DLL‑файлы и файл .lic, установите их в изолированную среду, и просмотрщик будет работать бесконечно в пределах диапазона версий, покрываемого лицензией.

Что мы не утверждаем

Doconut не рекламирует сертификацию SOC 2, ISO 27001 или HITRUST, и вы не должны представлять его как сертифицированный. Аргумент безопасности носит архитектурный характер: поставщик никогда не находится в пути данных. Если вашему аудитору требуется описание контроля, это и есть описание.

Развертывание

Где это может работать

Windows Server

Классическая цель. IIS или Kestrel, в вашем собственном дата-центре или на облачной ВМ, которой вы управляете.

Docker

Поддерживается для .NET 8. Включите просмотрщик в свой образ и держите файлы лицензий вне слоя, используя смонтированный секрет.

Веб-ферма и распределённые

Несколько узлов за балансировщиком нагрузки делят кэш рендеринга, поэтому сессия, открытая на одном узле, остаётся читаемой на другом.

Изолированная среда без сетевого доступа

После установки не требуется исходящее соединение ни на каком этапе — ни для рендеринга, ни для конвертации, ни для лицензирования.

Операции

Контрольный список укрепления

Ни одно из этих не является экзотическим. Это небольшое количество вещей, которые чаще всего идут не так в реальном развертывании, в порядке их обычно возникающих проблем.

  1. 1Авторизуйтесь перед открытием. Вызывайте OpenDocumentAsync() только после того, как выполнена ваша проверка разрешений — просмотрщик с радостью отобразит всё, что вы ему передадите.
  2. 2Держите файл .lic вне системы контроля версий и вне образа контейнера. Храните его в каталоге с ограниченным доступом на чтение и монтируйте как секрет.
  3. 3Никогда не записывайте токены сессий в журнал. Они должны находиться в памяти и в конфигурации просмотрщика, а не в журналах запросов, трассировках APM или отчетах об ошибках.
  4. 4Ограничьте конечную точку ресурса. UseDoconutResources() обслуживает ресурсы просмотрщика — разместите её за той же аутентификацией, что и остальное приложение, а не в анонимной ветке конвейера.
  5. 5Задайте реальное время жизни кэша рендеринга. Кешированные изображения страниц являются производными копиями конфиденциальных документов; удаляйте их по расписанию, соответствующему вашей политике хранения.
  6. 6Зафиксируйте версии ваших DLL и архивируйте их вместе с лицензией. Лицензия привязана к диапазону версий; хранение их вместе гарантирует, что развертывание всё ещё запустится через пять лет.

Вопросы по безопасности, которые нам действительно задают

Когда‑либо загружаются документы в Doconut?

Нет. Doconut — это библиотека, которая работает внутри вашего приложения. Нет конечной точки загрузки, нет хостингового уровня рендеринга и нет канала телеметрии, передающего содержимое документа. Если ваш сервер не имеет выхода в интернет, просмотрщик всё равно рендерит нормально.

Может ли пользователь скачать оригинальный файл из просмотрщика?

Не через просмотрщик. Браузер получает отрисованные изображения страниц, адресованные непрозрачным токеном сеанса. Если вам нужна кнопка загрузки, вы реализуете её сами — что означает, что решение о предоставлении исходного файла остаётся явным выбором в вашем собственном коде.

Что именно представляет собой токен сеанса?

Непрозрачная строка, возвращаемая Viewer.OpenDocumentAsync(), которую JavaScript‑виджет использует для получения страниц. Это не идентификатор документа, не путь и не то, что следует хранить или переиспользовать. Обращайтесь с ней как с токеном‑носителем с коротким сроком жизни.

Отправляет ли лицензия данные домой?

Нет. Лицензирование использует локальный файл .lic. Нет вызова активации и нет периодической переоценки, что именно и позволяет работать изолированным (air‑gapped) установкам.

Может ли он работать без доступа к интернету вообще?

Да. Рендеринг, конвертация и лицензирование полностью локальны. Единственное, что даёт подключение к интернету — это возможность скачивать обновления, которые вы также можете перенести на носителе.

Сертифицирован ли Doconut по SOC 2 или ISO 27001?

Мы не заявляем ни то, ни другое, и вы не должны представлять продукт как сертифицированный. Соответствующий факт для аудита иной и обычно более сильный: Doconut никогда не находится в пути данных, поэтому у аудитора нет среды поставщика, которую можно было бы оценить.

Как обрабатываются документы, защищённые паролем?

Ваш код передаёт пароль при открытии документа на стороне сервера. Он используется для расшифровки в вашем собственном процессе и никогда не передаётся в браузер или куда‑либо ещё.

Оцените его в своей сети

Запросите временную лицензию и запустите Doconut на своей инфраструктуре, с вашими документами, с вашими правилами брандмауэра. Это единственная оценка, которая доказывает свою эффективность.

100% рендеринг на ваших собственных серверах