Arquitetura de segurança

Como os compromissos de privacidade do PDF Pro realmente funcionam.

Tudo nesta página pode ser verificado no DevTools do seu navegador. Regra essencial: não devemos conseguir acessar seus arquivos — mesmo que quiséssemos. A seguir, como essa regra é aplicada nas camadas de criptografia, armazenamento e requisição.

memoryWebAssembly e JS no lado do cliente lockAES-256-GCM verifiedECDSA P-256 cloud_offArmazenamento criptografado no lado do cliente

Quatro pilares arquiteturais

Quatro escolhas técnicas definem a postura de segurança. Elas são impostas pelo código que roda no seu navegador — não por um documento de políticas.

memory
1. Processamento local em primeiro lugar
Visualização, anotação, preenchimento de formulários, compressão, combinação, conversão e assinatura de PDF rodam inteiramente no seu navegador via WebAssembly e JavaScript. Para essas ferramentas, nenhum dado de arquivo deixa o seu dispositivo — verificável na aba Rede.
key
2. Chaves geradas no lado do cliente
Quando você precisa compartilhar um arquivo, a chave de criptografia é gerada pela Web Crypto API dentro da sua aba. Ela reside na memória, no fragmento da URL ou (no modo passphrase) é derivada no dispositivo do destinatário via PBKDF2. O servidor nunca a vê.
cloud_off
3. Armazenamento criptografado no lado do cliente
Armazenamos apenas o texto cifrado AES-256-GCM com um vetor de inicialização (e, no modo passphrase, um salt PBKDF2). Sem a chave, esses dados são criptograficamente indistinguíveis de bytes aleatórios. Nem o acesso root ao banco de dados nos permitiria descriptografá-los.
policy
4. Fronteira honesta da IA
As ferramentas de IA (chat, resumo, tradução) precisam de texto legível para funcionar. Extraímos o texto no lado do cliente e enviamos apenas ele ao provedor do modelo — nunca o próprio PDF, nunca imagens, nunca anexos incorporados. Veja a seção de IA abaixo para todos os detalhes.

Fluxo de criptografia (Transferência segura)

Um passo a passo byte a byte do que acontece quando você arrasta um PDF para a Transferência segura e compartilha o link resultante. Cada etapa abaixo roda no navegador, exceto o armazenamento do texto cifrado.

Remetente — no navegador
// 1. generate a fresh 256-bit key key = crypto.subtle.generateKey({name:"AES-GCM", length:256}) // 2. random 96-bit IV per file iv = crypto.getRandomValues(new Uint8Array(12)) // 3. encrypt the PDF bytes locally ct = crypto.subtle.encrypt({name:"AES-GCM", iv}, key, pdfBytes) // 4. upload ciphertext + iv — nothing else id = await fetch("/api/transfer", {method:"PUT", body: ct, headers:{"x-iv": hex(iv)}}) // 5. build the share link with the key in the URL fragment (#) link = `https://pdfpro.tools/s/<ID>#<KEY>`
Servidor — armazena apenas texto cifrado
ciphertext = opaque bytes // cannot be decrypted without the key iv = 12-byte nonce expiry = 24 h (free) / 30 d (Pro) // the URL fragment (#...) is NEVER sent to the server by browsers
Destinatário — no navegador
// 1. browser loads the page; the "#..." fragment stays client-side rawKey = location.hash.slice(1) // 2. fetch the ciphertext ct = await fetch("/api/transfer/" + id) // 3. decrypt locally using Web Crypto pdf = crypto.subtle.decrypt({name:"AES-GCM", iv}, importKey(rawKey), ct) // 4. file ends up in the recipient's Downloads folder

A garantia de segurança se sustenta no passo 5 (remetente) e no passo 1 (destinatário): o fragmento de URL após # não é transmitido ao servidor por nenhum navegador compatível. É isso que torna o próprio link a credencial de descriptografia.

O modo passphrase substitui o passo 1 (remetente) por PBKDF2-SHA256(passphrase, salt, 310_000). O salt é armazenado no servidor; a passphrase é compartilhada com o destinatário por canal separado.

Fluxo de assinatura (ECDSA P-256)

A assinatura de PDF utiliza ECDSA sobre a curva NIST P-256. A chave privada é gerada no seu navegador; o documento nunca deixa o seu dispositivo.

key
Geração da chave privada
Um par de chaves ECDSA P-256 é gerado via crypto.subtle.generateKey no seu navegador. A chave privada é exportada para um JSON Web Key (JWK) protegido por senha, que você pode armazenar localmente.
fingerprint
Hash SHA-256 e assinatura
Os bytes do PDF são hasheados com SHA-256 no lado do cliente. Esse hash é assinado pela chave privada. A assinatura é incorporada ao PDF em um contêiner CMS (perfil PAdES-B-B).
verified
Verificável offline
Qualquer pessoa que tenha a chave pública (distribuída junto ao documento ou como impressão digital) pode verificar a assinatura offline. Nenhuma ida e volta ao servidor é necessária.
gavel
O que isto não é
Nossas assinaturas são criptograficamente verificáveis, mas não são assinaturas eletrônicas qualificadas (QES) nos termos do eIDAS. São provas de integridade resistentes a adulteração, adequadas a fluxos internos e não a vinculação jurídica de nível regulatório.

Recursos de IA — onde somos honestos quanto à fronteira

AI Chat, Resumo IA e Traduzir precisam de texto legível. Aqui está exatamente o que sai do seu dispositivo e o que não sai.

description
Texto extraído no navegador
O PDF é analisado localmente via pdf.js. Apenas o texto extraído (ou, para PDFs digitalizados, a saída do OCR) é mantido em memória — o arquivo original permanece no seu dispositivo.
outbound
Apenas texto para o provedor
Enviamos essa string de texto ao provedor de IA (Anthropic / OpenAI). O próprio PDF, as imagens incorporadas, as fontes e os dados de formulário nunca são enviados a nenhum modelo de IA.
block
Sem treinamento com seu conteúdo
Nossos contratos com provedores desativam o treinamento com conteúdo de clientes. As requisições são sem estado — cada uma limitada à sua sessão.
info
Quando isso importa
Se o documento contiver conteúdo regulado (PHI, sigiloso, sigilo profissional) em que mesmo a extração de texto seja sensível, evite os recursos de IA e use as ferramentas locais (visualizar, anotar, assinar, comprimir, converter) — todas operam 100% no navegador.

Modelo de ameaças — contra o que defendemos e contra o que não conseguimos

Ser claro sobre o modelo de ameaças é mais útil do que marketing. Aqui está o que a arquitetura realmente impede — e onde ela para.

shieldContra o que a arquitetura defende

  • Funcionários do PDF Pro lendo seus arquivos em nossos servidores (nunca retemos a chave).
  • Violação a nível de banco de dados do repositório de transferência (o atacante vê texto cifrado, não arquivos).
  • Divulgação de conteúdo por ordem judicial (podemos entregar texto cifrado — é tudo o que temos).
  • Retenção de anexos sensíveis pelo servidor de e-mail (nada chega ao seu servidor de e-mail).
  • Adulteração de um PDF assinado (a verificação da assinatura ECDSA detecta qualquer mudança de byte).

warningContra o que nenhuma ferramenta baseada em navegador pode defender

  • Um endpoint comprometido (malware no seu dispositivo) — as chaves residem na memória de um dispositivo que precisa ser confiável.
  • Alguém olhando o fragmento da URL por cima do seu ombro — trate o link compartilhado como o próprio arquivo.
  • Uma passphrase fraca no modo passphrase — o PBKDF2 desacelera força bruta, mas não torna segura uma passphrase de 6 caracteres.
  • Destinatário encaminhando um arquivo descriptografado — a segurança de transporte termina quando o destinatário salva o PDF.
  • Comprometimento do próprio navegador ou uma extensão maliciosa injetando código na página.

Nenhuma alegação de "inviolável". A criptografia de ponta a ponta eleva significativamente o custo de uma violação — não elimina todo o risco, especialmente no endpoint. Para os casos mais sensíveis, combine Transferência segura com uma passphrase separada e troca de chave por canal confiável.

Perguntas frequentes

O PDF Pro pode descriptografar meus arquivos?
Não. As chaves de criptografia são geradas e mantidas no navegador do usuário. Na Transferência segura, o servidor armazena apenas o texto cifrado AES-256-GCM e um vetor de inicialização (e um salt no modo passphrase). A chave nunca chega à nossa infraestrutura. Mesmo com acesso total ao banco de dados, nossos operadores não conseguem descriptografar seu arquivo.
O que exatamente roda localmente e o que roda no servidor?
Visualização, anotação, preenchimento de formulários, compressão, combinação, conversão e assinatura rodam 100% no seu navegador via WebAssembly e JavaScript — nenhum dado de arquivo deixa o seu dispositivo. Os recursos de IA (chat, resumo, tradução) extraem o texto localmente e enviam apenas esse texto (nunca o PDF em si) ao provedor do modelo.
Quais algoritmos o PDF Pro utiliza?
AES-256-GCM para criptografia simétrica (Transferência segura), PBKDF2-SHA256 com 310.000 iterações para chaves derivadas de passphrase, ECDSA sobre NIST P-256 para assinaturas digitais e SHA-256 para hashing de documentos. Tudo isso roda pela Web Crypto API nativa do navegador, que é auditada, padronizada e não implementada por nós.
Esta é uma assinatura eletrônica juridicamente vinculativa?
As assinaturas do PDF Pro são criptograficamente verificáveis (ECDSA P-256 sobre um hash SHA-256, perfil PAdES-B-B), mas não são assinaturas eletrônicas qualificadas (QES) sob o eIDAS ou regulamentações equivalentes. Para vinculação jurídica de nível QES, é necessário um prestador de serviços de confiança certificado.
O que acontece se eu esquecer uma passphrase ou perder um link?
O arquivo torna-se permanentemente irrecuperável. Essa é a contrapartida da criptografia de ponta a ponta — não há caminho de recuperação, porque nunca tivemos a chave. Guarde a passphrase em um gerenciador de senhas e mantenha o link em um local duradouro.
Vocês mantêm logs do servidor sobre a atividade dos arquivos?
Mantemos logs operacionais (tempos de requisição, códigos de erro, endereços IP para limitação de taxa), mas nunca o conteúdo dos arquivos em claro nem as chaves de criptografia. Os logs são retidos por um período curto — consulte nossa política de privacidade para os prazos atuais.
Uma ordem judicial pode obrigá-los a revelar meus arquivos?
Só podemos entregar o que temos: texto cifrado. Sem a chave de descriptografia — que permanece no dispositivo do remetente ou no fragmento da URL com o destinatário — esse texto cifrado não pode ser descriptografado. Uma intimação não pode recuperar retroativamente uma chave que nunca armazenamos.
Onde posso verificar pessoalmente as alegações criptográficas?
Abra o DevTools do seu navegador → aba Rede e observe o que sai da página durante um upload da Transferência segura. Você verá texto cifrado sendo enviado via PUT ao servidor, e não o PDF original. O código de criptografia chama a Web Crypto API, que vem embutida no seu navegador — não é nosso código — e pode ser inspecionada por qualquer pessoa.

Privacidade como arquitetura, não como marketing.

Faça uma Transferência segura e inspecione você mesmo a aba Rede. Nenhum arquivo é enviado em texto claro.

lockExperimentar Transferência segura