Sicurezza e distribuzione

I tuoi documenti non lasciano mai i tuoi server

Doconut è una libreria .NET che ospiti tu stesso, non un servizio di documenti a cui carichi. I file vengono aperti, renderizzati e serviti interamente all'interno della tua infrastruttura — il che lo rende adatto per carichi di lavoro regolamentati dove il documento stesso non può mai attraversare un confine organizzativo.

0
documenti inviati a Doconut
100%
renderizzazione sui tuoi server
Offline
licenza con un file .lic locale

La tua infrastruttura — confine di fiducia

  1. 1

    La tua applicazione

    Legge il file da dove già si trova: disco locale, condivisione di rete, S3, Azure Blob, una colonna di database.

  2. 2

    Middleware Doconut

    Registrato nella tua pipeline con AddDoconut() e UseDoconut(). Funziona nel tuo processo, sotto la tua identità, nella tua rete.

  3. 3

    Immagini delle pagine

    Viewer.OpenDocumentAsync() genera immagini di pagina paginate e restituisce un token di sessione opaco. Il file sorgente non viene mai consegnato al browser.

  4. 4

    Il browser

    Il widget JavaScript richiede le pagine tramite token di sessione dal tuo endpoint. Non vede mai un percorso file, un URL di archiviazione o i byte originali.

Mai contattato durante il rendering

  • Server Doconut
  • Qualsiasi API di conversione di terze parti
  • Qualsiasi servizio cloud OCR o AI
  • Qualsiasi CDN di font o risorse esterne

Architettura

Dove va effettivamente un documento

Un servizio di visualizzazione ospitato funziona ricevendo il tuo file. Doconut funziona senza mai riceverlo. Il documento è letto dal tuo processo, rasterizzato in immagini di pagina dal tuo processo e trasmesso al browser dal tuo processo — Doconut è la libreria che esegue il lavoro, non una parte del trasferimento.

Modello di sicurezza

Ciò che il progetto garantisce realmente

On-premise per costruzione

Non esiste una modalità SaaS né un fallback ospitato. Doconut viene fornito come DLL che si riferiscono; se i tuoi server sono offline, il rendering funziona comunque. L'assenza di un percorso di upload è una proprietà dell'architettura, non un'impostazione di configurazione che qualcuno può attivare.

Token di sessione opachi

OpenDocumentAsync() restituisce una stringa opaca, non un percorso file o un identificatore che il client possa manomettere. Il browser non può elencare i documenti, indovinare un token vicino, o riscrivere un token in un file diverso. Tratta i token come segreti: non registrarli mai e non conservarli mai sul client oltre il visualizzatore.

L'autorizzazione rimane tua

Doconut non decide mai chi può leggere un documento. Chiami OpenDocumentAsync() solo dopo che il tuo controllo di autorizzazione è stato superato, così il visualizzatore eredita qualsiasi controllo di accesso già imposto dalla tua applicazione — ruoli, gestione dei locatari, permessi a livello di record, tutto.

Nessun documento esce come file

Il browser riceve immagini delle pagine renderizzate, non il documento originale. Un utente che può visualizzare un contratto non può estrarre facilmente il DOCX originale, e un'immagine di pagina trapelata non contiene le modifiche tracciate, i commenti, le colonne nascoste o i metadati presenti nel file sorgente.

Documenti protetti da password

I file crittografati e protetti da password vengono aperti sul server con la password fornita dal tuo codice. La password attraversa i confini dei processi solo all'interno della tua applicazione — mai al client, mai a noi.

Licenza offline

La licenza è un file .lic locale risolto tramite options.LicensePath o Viewer.DoconutLicense(path). Non esiste una callback di attivazione né un controllo della licenza in tempo reale sulla rete, ed è proprio questo che rende possibile una distribuzione isolata.

Conformità

Come Doconut si adatta a un ambiente regolamentato

Un inquadramento onesto conta più di un muro di loghi. Doconut è una libreria, non un fornitore di servizi. Non riceviamo, memorizziamo o elaboriamo i tuoi documenti, il che significa che non diventiamo un responsabile del trattamento, un sub‑responsabile o un associato commerciale quando lo distribuisci. Questo elimina un'intera categoria di burocrazia — ma i controlli relativi alla distribuzione rimangono a tuo carico per l'operatività e la documentazione.

HIPAA

Poiché le informazioni sanitarie protette non raggiungono mai Doconut, non esiste una relazione di associato commerciale da coprire con un BAA. I record e gli studi DICOM vengono visualizzati all'interno del tuo ambiente. Le misure di sicurezza stesse — controllo degli accessi, registrazione degli audit, crittografia a riposo e in transito — rimangono di tua responsabilità, applicate nell'applicazione che già utilizzi.

GDPR e residenza dei dati

I dati personali rimangono dove li posizioni. Il visualizzatore non introduce alcun trasferimento transfrontaliero, perché non c'è alcun trasferimento: il documento viene letto e visualizzato nella stessa giurisdizione del server su cui è stato implementato. La residenza diventa una decisione di hosting, non una negoziazione con il fornitore.

Governo e difesa

Le distribuzioni senza accesso a internet in uscita sono una configurazione supportata piuttosto che una soluzione alternativa. Impacchetta le DLL e il file .lic, installale nell'enclave, e il visualizzatore funziona indefinitamente per l'intervallo di versioni coperto dalla licenza.

Ciò che non affermiamo

Doconut non pubblicizza la certificazione SOC 2, ISO 27001 o HITRUST, e non dovresti presentarlo come certificato. L'argomento di sicurezza è architetturale: il fornitore non è mai nel percorso dei dati. Se il tuo revisore ha bisogno di una narrazione di controllo, quella è la narrazione.

Distribuzione

Dove può essere eseguito

Windows Server

L'obiettivo classico. IIS o Kestrel, nel tuo data center o su una VM cloud che controlli.

Docker

Supportato per .NET 8. Distribuisci il visualizzatore come parte della tua immagine e tieni i file di licenza fuori dallo strato con un segreto montato.

Web farm e distribuito

Più nodi dietro un bilanciatore di carico condividono la cache di rendering, così una sessione aperta su un nodo rimane leggibile su un altro.

Enclave isolata

Nessuna connettività in uscita richiesta in alcun momento dopo l'installazione — né per il rendering, né per la conversione, né per la licenza.

Operazioni

Checklist di hardening

Nessuna di queste è esotica. Sono i pochi elementi che più spesso vanno storti in una reale implementazione, nell'ordine in cui di solito colpiscono.

  1. 1Autorizza prima di aprire. Chiama OpenDocumentAsync() solo dopo che il tuo controllo dei permessi è stato eseguito — il visualizzatore renderizzerà volentieri qualsiasi cosa gli fornisci.
  2. 2Mantieni il file .lic fuori dal controllo di versione e fuori dall'immagine del tuo container. Conservalo in una directory con accesso in lettura limitato e montalo come segreto.
  3. 3Non registrare mai i token di sessione. Devono rimanere in memoria e nella configurazione del visualizzatore, non nei log delle richieste, nei tracciati APM o nei report di errore.
  4. 4Definisci l'ambito dell'endpoint delle risorse. UseDoconutResources() fornisce le risorse del visualizzatore — posizionalo dietro la stessa autenticazione del resto dell'applicazione, non in un ramo anonimo della pipeline.
  5. 5Assegna alla cache di rendering una durata reale. Le immagini di pagina nella cache sono copie derivate di documenti sensibili; rimuovile secondo un programma che corrisponda alla tua politica di conservazione.
  6. 6Fissa le versioni delle tue DLL e archiviale insieme alla licenza. Una licenza è legata a un intervallo di versioni; mantenerle entrambe insieme è ciò che garantisce che la distribuzione continui a funzionare tra cinque anni.

Domande sulla sicurezza che ci vengono effettivamente poste

I documenti vengono mai caricati su Doconut?

No. Doconut è una libreria che gira all'interno della tua applicazione. Non esiste un endpoint di caricamento, nessun livello di rendering ospitato e nessun canale di telemetria che trasporta il contenuto dei documenti. Se il tuo server non ha una connessione a Internet, il visualizzatore continua a renderizzare normalmente.

Un utente può scaricare il file originale dal visualizzatore?

Non attraverso il visualizzatore. Il browser riceve le immagini delle pagine renderizzate indirizzate da un token di sessione opaco. Se desideri un pulsante di download, lo implementi tu stesso — il che significa che la decisione di rilasciare il file sorgente rimane una scelta esplicita nel tuo codice.

Che cos'è esattamente un token di sessione?

Una stringa opaca restituita da Viewer.OpenDocumentAsync() che il widget JavaScript utilizza per recuperare le pagine. Non è un identificatore di documento, né un percorso, né qualcosa da memorizzare o riutilizzare. Trattala come una credenziale di tipo bearer con una breve durata.

La licenza invia dati al produttore?

No. La licenza risolve un file .lic locale. Non c'è alcuna chiamata di attivazione né una periodica rivalidazione, ed è proprio per questo che le installazioni isolate funzionano.

Può funzionare senza alcun accesso a Internet?

Sì. Il rendering, la conversione e la licenza sono tutti locali. L'unica cosa che una connessione a Internet ti offre è il download degli aggiornamenti, che puoi altrettanto bene trasferire su supporti.

Doconut è certificato SOC 2 o ISO 27001?

Non affermiamo nessuna delle due certificazioni, e non dovresti presentare il prodotto come certificato. Il fatto rilevante per un audit è diverso e solitamente più forte: Doconut non è mai nel percorso dei dati, quindi non esiste un ambiente del fornitore da valutare per un auditor.

Come vengono gestiti i documenti protetti da password?

Il tuo codice fornisce la password al momento dell'apertura del documento, lato server. Viene utilizzata per decrittare nel tuo processo e non viene mai trasmessa al browser o altrove.

Valuta all'interno della tua rete

Richiedi una licenza temporanea ed esegui Doconut sulla tua infrastruttura, sui tuoi documenti, con le tue regole firewall attive. Questa è l'unica valutazione che dimostra il punto.

100% renderizzazione sui tuoi server