Seguridad y despliegue

Tus documentos nunca abandonan tus servidores

Doconut es una biblioteca .NET que alojas tú mismo, no un servicio de documentos al que subas. Los archivos se abren, renderizan y sirven completamente dentro de tu propia infraestructura, lo que lo hace viable para cargas de trabajo reguladas donde el documento mismo nunca puede cruzar una frontera organizacional.

0
documentos enviados a Doconut
100%
renderizado en tus propios servidores
Offline
licenciamiento con un archivo .lic local

Su infraestructura — límite de confianza

  1. 1

    Su aplicación

    Lee el archivo desde donde ya se encuentre: disco local, un recurso compartido en red, S3, Azure Blob, una columna de base de datos.

  2. 2

    Middleware de Doconut

    Registrado en su propia canalización con AddDoconut() y UseDoconut(). Se ejecuta en su proceso, bajo su identidad, en su red.

  3. 3

    Imágenes de página

    Viewer.OpenDocumentAsync() genera imágenes de página paginadas y devuelve un token de sesión opaco. El archivo fuente nunca se entrega al navegador.

  4. 4

    El navegador

    El widget JavaScript solicita páginas mediante el token de sesión a su propio punto final. Nunca ve una ruta de archivo, una URL de almacenamiento o los bytes originales.

Nunca contactado durante el renderizado

  • Servidores Doconut
  • Cualquier API de conversión de terceros
  • Cualquier servicio de OCR o IA en la nube
  • Cualquier CDN externo de fuentes o recursos

Arquitectura

A dónde va realmente un documento

Un servicio de visualización alojado funciona recibiendo su archivo. Doconut funciona sin recibirlo. El documento es leído por su propio proceso, rasterizado en imágenes de página por su propio proceso y transmitido al navegador por su propio proceso — Doconut es la biblioteca que realiza el trabajo, no una parte de la transferencia.

Modelo de seguridad

Lo que el diseño realmente garantiza

En local por construcción

No hay modo SaaS ni alternativa alojada. Doconut se entrega como DLLs que referencias; si tus servidores están fuera de línea, la renderización sigue funcionando. La ausencia de una ruta de carga es una propiedad de la arquitectura, no una configuración que alguien pueda cambiar.

Tokens de sesión opacos

OpenDocumentAsync() devuelve una cadena opaca, no una ruta de archivo ni un identificador que el cliente pueda manipular. El navegador no puede enumerar documentos, adivinar un token vecino o reescribir un token en un archivo diferente. Trata los tokens como secretos: nunca los registres y nunca los persistas del lado del cliente más allá del visor.

La autorización sigue siendo tuya

Doconut nunca decide quién puede leer un documento. Llamas a OpenDocumentAsync() solo después de que tu propia verificación de autorización haya pasado, por lo que el visor hereda cualquier control de acceso que tu aplicación ya aplique — roles, inquilinos, permisos a nivel de registro, todo ello.

Ningún documento sale como archivo

El navegador recibe imágenes de página renderizadas, no el documento fuente. Un usuario que puede ver un contrato no puede exfiltrar trivialmente el DOCX original, y una imagen de página filtrada no lleva los cambios rastreados, comentarios, columnas ocultas o metadatos que tenía el archivo fuente.

Documentos protegidos con contraseña

Los archivos cifrados y protegidos con contraseña se abren del lado del servidor con la contraseña suministrada por tu código. La contraseña cruza los límites de proceso solo dentro de tu propia aplicación — nunca al cliente, nunca a nosotros.

Licenciamiento offline

El licenciamiento es un archivo .lic local resuelto a través de options.LicensePath o Viewer.DoconutLicense(path). No hay una devolución de llamada de activación ni una verificación de licencia en tiempo de ejecución a través de la red, lo que es lo que permite que el despliegue aislado sea posible.

Cumplimiento

Cómo Doconut se adapta a un entorno regulado

Una presentación honesta importa más aquí que un muro de logotipos. Doconut es una biblioteca, no un proveedor de servicios. Nunca recibimos, almacenamos ni procesamos sus documentos, lo que significa que no nos convertimos en procesador, subprocesador o asociado comercial cuando lo implementa. Eso elimina una categoría completa de papeleo, pero los controles alrededor de la implementación siguen siendo su responsabilidad operar y evidenciar.

HIPAA

Porque la información de salud protegida nunca llega a Doconut, no existe una relación de asociado comercial que deba cubrirse con un BAA. Los registros y estudios DICOM se renderizan dentro de su propio entorno. Las salvaguardas mismas — control de acceso, registro de auditoría, cifrado en reposo y en tránsito — siguen siendo su responsabilidad, ejercidas en la aplicación que ya ejecuta.

RGPD y residencia de datos

Los datos personales permanecen donde usted los coloque. No hay transferencia transfronteriza introducida por el visor, porque no hay transferencia alguna: el documento se lee y renderiza en la misma jurisdicción que el servidor al que lo desplegó. La residencia se convierte en una decisión de alojamiento, no en una negociación con el proveedor.

Gobierno y defensa

Los despliegues sin acceso a internet saliente son una configuración compatible en lugar de una solución alternativa. Empaquete los DLL y el archivo .lic, instálelos en el enclave, y el visor se ejecuta indefinidamente para el rango de versiones que cubre la licencia.

Lo que no afirmamos

Doconut no anuncia la certificación SOC 2, ISO 27001 o HITRUST, y no debe presentarlo como certificado. El argumento de seguridad es arquitectónico: el proveedor nunca está en la ruta de los datos. Si su auditor necesita una narrativa de control, esa es la narrativa.

Despliegue

Dónde puede ejecutarse

Windows Server

El objetivo clásico. IIS o Kestrel, en su propio centro de datos o en una máquina virtual en la nube que controle.

Docker

Compatible con .NET 8. Distribuya el visor como parte de su propia imagen y mantenga los archivos de licencia fuera de la capa mediante un secreto montado.

Granja web y distribuido

Múltiples nodos detrás de un equilibrador de carga comparten la caché de renderizado, de modo que una sesión abierta en un nodo sigue siendo legible en otro.

Enclave aislado

No se requiere conectividad saliente en ningún momento después de la instalación — ni para renderizado, ni para conversión, ni para licencias.

Operaciones

Lista de verificación de endurecimiento

Ninguno de estos es exótico. Son el puñado de cosas que con mayor frecuencia fallan en una implementación real, en el orden en que suelen afectar.

  1. 1Autoriza antes de abrir. Llama a OpenDocumentAsync() solo después de que se haya ejecutado tu propia verificación de permisos — el visor renderizará felizmente cualquier cosa que le entregues.
  2. 2Mantén el archivo .lic fuera del control de versiones y fuera de la imagen de tu contenedor. Guárdalo en un directorio con acceso de lectura restringido y móntalo como un secreto.
  3. 3Nunca registres los tokens de sesión. Pertenen a la memoria y a la configuración del visor, no a los registros de solicitudes, trazas APM o informes de errores.
  4. 4Delimita el punto final del recurso. UseDoconutResources() sirve los recursos del visor — colócalo detrás de la misma autenticación que el resto de la aplicación, no en una rama anónima del pipeline.
  5. 5Da al caché de renderizado una vida útil real. Las imágenes de página en caché son copias derivadas de documentos sensibles; elimínalas según un programa que coincida con tu política de retención.
  6. 6Fija las versiones de tus DLL y archívalas junto con la licencia. Una licencia está vinculada a un rango de versiones; mantener ambas juntas es lo que garantiza que la implementación siga iniciándose dentro de cinco años.

Preguntas de seguridad que realmente nos hacen

¿Alguna vez se suben documentos a Doconut?

No. Doconut es una biblioteca que se ejecuta dentro de su aplicación. No hay un punto de carga, no hay una capa de renderizado alojada y no hay un canal de telemetría que transporte el contenido del documento. Si su servidor no tiene ruta a internet, el visor aún se renderiza normalmente.

¿Puede un usuario descargar el archivo original desde el visor?

No a través del visor. El navegador recibe imágenes de páginas renderizadas dirigidas por un token de sesión opaco. Si desea un botón de descarga, lo implementa usted mismo — lo que significa que la decisión de liberar el archivo fuente sigue siendo una elección explícita en su propio código.

¿Qué es exactamente un token de sesión?

Una cadena opaca devuelta por Viewer.OpenDocumentAsync() que el widget JavaScript presenta para obtener páginas. No es un identificador de documento, no es una ruta, y no es algo para almacenar o reutilizar. Trátelo como una credencial portadora con una vida corta.

¿La licencia envía información a casa?

No. La licencia resuelve un archivo .lic local. No hay una llamada de activación ni una revalidación periódica, lo que explica precisamente por qué las instalaciones aisladas funcionan.

¿Puede ejecutarse sin acceso a internet en absoluto?

Sí. El renderizado, la conversión y la licencia son totalmente locales. Lo único que le brinda una conexión a internet es la descarga de actualizaciones, que puede transportar igualmente en medios.

¿Está Doconut certificado SOC 2 o ISO 27001?

No afirmamos ninguno de los dos, y no debe presentar el producto como certificado. El hecho relevante para una auditoría es diferente y suele ser más fuerte: Doconut nunca está en la ruta de datos, por lo que no hay un entorno de proveedor que el auditor deba evaluar en primer lugar.

¿Cómo se manejan los documentos protegidos con contraseña?

Su código suministra la contraseña al abrir el documento, del lado del servidor. Se utiliza para descifrar en su propio proceso y nunca se transmite al navegador ni a ningún otro lugar.

Evalúalo dentro de tu propia red

Solicita una licencia temporal y ejecuta Doconut en tu propia infraestructura, contra tus propios documentos, con tus propias reglas de firewall activas. Esa es la única evaluación que demuestra el punto.

100% renderizado en tus propios servidores