Segurança e implantação

Seus documentos nunca deixam seus servidores

Doconut é uma biblioteca .NET que você hospeda por conta própria, não um serviço de documentos para o qual você faz upload. Os arquivos são abertos, renderizados e servidos inteiramente dentro da sua própria infraestrutura — o que o torna viável para cargas de trabalho reguladas onde o documento em si nunca pode cruzar a fronteira organizacional.

0
documentos enviados para Doconut
100%
renderização nos seus próprios servidores
Offline
licenciamento com um arquivo .lic local

Sua infraestrutura — fronteira de confiança

  1. 1

    Sua aplicação

    Lê o arquivo de onde quer que ele já esteja: disco local, compartilhamento de rede, S3, Azure Blob, uma coluna de banco de dados.

  2. 2

    Middleware Doconut

    Registrado em seu próprio pipeline com AddDoconut() e UseDoconut(). Executa em seu processo, sob sua identidade, em sua rede.

  3. 3

    Imagens de página

    Viewer.OpenDocumentAsync() renderiza imagens de página paginadas e retorna um token de sessão opaco. O arquivo fonte nunca é entregue ao navegador.

  4. 4

    O navegador

    O widget JavaScript solicita páginas por token de sessão do seu próprio endpoint. Ele nunca vê um caminho de arquivo, uma URL de armazenamento ou os bytes originais.

Nunca contatado durante a renderização

  • Servidores Doconut
  • Qualquer API de conversão de terceiros
  • Qualquer serviço de OCR ou IA na nuvem
  • Qualquer CDN externo de fontes ou ativos

Arquitetura

Para onde um documento realmente vai

Um serviço de visualização hospedado funciona recebendo seu arquivo. Doconut funciona nunca recebendo-o. O documento é lido pelo seu próprio processo, rasterizado em imagens de página pelo seu próprio processo e transmitido ao navegador pelo seu próprio processo — Doconut é a biblioteca que faz o trabalho, não uma parte da transferência.

Modelo de segurança

O que o design realmente garante

On-premise por construção

Não há modo SaaS e nem fallback hospedado. Doconut é distribuído como DLLs que você referencia; se seus servidores estiverem offline, a renderização ainda funciona. A ausência de um caminho de upload é uma propriedade da arquitetura, não uma configuração que alguém possa mudar.

Tokens de sessão opacos

OpenDocumentAsync() retorna uma string opaca, não um caminho de arquivo ou um identificador que o cliente possa manipular. O navegador não pode enumerar documentos, adivinhar um token vizinho ou reescrever um token em um arquivo diferente. Trate os tokens como segredos: nunca os registre e nunca os persista no cliente além do visualizador.

A autorização continua sendo sua

Doconut nunca decide quem pode ler um documento. Você chama OpenDocumentAsync() somente depois que sua própria verificação de autorização foi aprovada, então o visualizador herda qualquer controle de acesso que sua aplicação já impõe — papéis, locatário, permissões ao nível de registro, tudo isso.

Nenhum documento sai como arquivo

O navegador recebe imagens das páginas renderizadas, não o documento original. Um usuário que pode visualizar um contrato não pode exfiltrar trivialmente o DOCX original, e uma imagem de página vazada não contém as alterações rastreadas, comentários, colunas ocultas ou metadados que o arquivo fonte possuía.

Documentos protegidos por senha

Arquivos criptografados e protegidos por senha são abertos no servidor com a senha fornecida pelo seu código. A senha atravessa limites de processo apenas dentro da sua própria aplicação — nunca para o cliente, nunca para nós.

Licenciamento offline

O licenciamento é um arquivo .lic local resolvido através de options.LicensePath ou Viewer.DoconutLicense(caminho). Não há callback de ativação nem verificação de licença em tempo de execução pela rede, o que torna o deployment isolado possível.

Conformidade

Como o Doconut se encaixa em um ambiente regulado

Uma apresentação honesta importa mais aqui do que uma parede de logotipos. Doconut é uma biblioteca, não um provedor de serviços. Nós nunca recebemos, armazenamos ou processamos seus documentos, o que significa que não nos tornamos um processador, um subprocessador ou um associado de negócios quando você o implanta. Isso elimina uma categoria inteira de burocracia — mas os controles em torno da implantação permanecem sob sua responsabilidade para operar e comprovar.

HIPAA

Como as informações de saúde protegidas nunca chegam ao Doconut, não há relação de associado de negócios a ser coberta por um BAA. Registros e estudos DICOM são renderizados dentro do seu próprio ambiente. As próprias salvaguardas — controle de acesso, registro de auditoria, criptografia em repouso e em trânsito — permanecem sob sua responsabilidade, exercidas na aplicação que você já utiliza.

GDPR e residência de dados

Os dados pessoais permanecem onde você os coloca. Não há transferência transfronteiriça introduzida pelo visualizador, porque não há transferência alguma: o documento é lido e renderizado na mesma jurisdição do servidor onde você o implantou. A residência torna-se uma decisão de hospedagem, não uma negociação com o fornecedor.

Governo e defesa

Implantações sem acesso à internet de saída são uma configuração suportada, em vez de uma solução alternativa. Empacote as DLLs e o arquivo .lic, instale no enclave, e o visualizador roda indefinidamente para o intervalo de versões que a licença cobre.

O que não afirmamos

Doconut não anuncia certificação SOC 2, ISO 27001 ou HITRUST, e você não deve representá-lo como certificado. O argumento de segurança é arquitetural: o fornecedor nunca está no caminho dos dados. Se o seu auditor precisar de uma narrativa de controle, essa é a narrativa.

Implantação

Onde pode ser executado

Windows Server

O alvo clássico. IIS ou Kestrel, no seu próprio data center ou em uma VM na nuvem que você controla.

Docker

Suportado para .NET 8. Envie o visualizador como parte da sua própria imagem e mantenha os arquivos de licença fora da camada com um segredo montado.

Fazenda web e distribuído

Múltiplos nós atrás de um balanceador de carga compartilham o cache de renderização, de modo que uma sessão aberta em um nó permanece legível em outro.

Enclave isolado

Nenhuma conectividade de saída é necessária em nenhum momento após a instalação — nem para renderização, nem para conversão, nem para licenciamento.

Operações

Lista de verificação de endurecimento

Nenhum destes é exótico. São as poucas coisas que mais frequentemente dão errado em uma implantação real, na ordem em que geralmente causam problemas.

  1. 1Autorize antes de abrir. Chame OpenDocumentAsync() somente depois que sua própria verificação de permissão for executada — o visualizador renderizará felizmente qualquer coisa que você lhe passar.
  2. 2Mantenha o arquivo .lic fora do controle de versão e fora da imagem do seu contêiner. Armazene-o em um diretório com acesso de leitura restrito e monte-o como um segredo.
  3. 3Nunca registre tokens de sessão. Eles pertencem à memória e à configuração do visualizador, não aos logs de requisição, rastros de APM ou relatórios de erro.
  4. 4Delimite o endpoint de recurso. UseDoconutResources() fornece ativos do visualizador — coloque-o atrás da mesma autenticação que o resto da aplicação, não em um ramo anônimo do pipeline.
  5. 5Dê ao cache de renderização uma vida útil real. Imagens de página em cache são cópias derivadas de documentos sensíveis; evite-as em uma programação que corresponda à sua política de retenção.
  6. 6Fixe as versões das suas DLLs e arquive-as ao lado da licença. Uma licença está vinculada a um intervalo de versões; manter ambas juntas é o que garante que a implantação ainda iniciará em cinco anos.

Perguntas de segurança que realmente nos fazem

Os documentos são alguma vez enviados para Doconut?

Não. Doconut é uma biblioteca que roda dentro da sua aplicação. Não há endpoint de upload, nem camada de renderização hospedada e nem canal de telemetria que transporte o conteúdo do documento. Se o seu servidor não tem rota para a internet, o visualizador ainda renderiza normalmente.

Um usuário pode baixar o arquivo original do visualizador?

Não através do visualizador. O navegador recebe imagens das páginas renderizadas endereçadas por um token de sessão opaco. Se você quiser um botão de download, implemente-o você mesmo — o que significa que a decisão de liberar o arquivo fonte permanece uma escolha explícita no seu próprio código.

O que exatamente é um token de sessão?

Uma string opaca retornada por Viewer.OpenDocumentAsync() que o widget JavaScript usa para buscar páginas. Não é um identificador de documento, nem um caminho, e nem algo para armazenar ou reutilizar. Trate-o como uma credencial portadora com vida curta.

A licença faz chamadas de volta?

Não. O licenciamento resolve um arquivo .lic local. Não há chamada de ativação nem revalidação periódica, o que explica exatamente por que instalações isoladas funcionam.

Ele pode ser executado sem nenhum acesso à internet?

Sim. Renderização, conversão e licenciamento são todos locais. A única coisa que uma conexão à internet oferece é o download de atualizações, que você pode igualmente transportar em mídia.

Doconut é certificado SOC 2 ou ISO 27001?

Não alegamos nenhum dos dois, e você não deve representar o produto como certificado. O fato relevante para uma auditoria é diferente e geralmente mais forte: Doconut nunca está no caminho dos dados, portanto não há ambiente de fornecedor para o auditor avaliar em primeiro lugar.

Como documentos protegidos por senha são tratados?

Seu código fornece a senha ao abrir o documento, no lado do servidor. Ela é usada para descriptografar no seu próprio processo e nunca é transmitida ao navegador ou a qualquer outro lugar.

Avalie-o dentro da sua própria rede

Solicite uma licença temporária e execute o Doconut na sua própria infraestrutura, contra seus próprios documentos, com suas próprias regras de firewall em vigor. Essa é a única avaliação que comprova o ponto.

100% renderização nos seus próprios servidores