Arquitetura de Segurança

Como funcionam, na prática, as garantias de privacidade do PDF Pro.

Tudo nesta página é verificável nas ferramentas de programador do seu navegador. A regra central: não devemos conseguir aceder aos seus ficheiros — mesmo que quiséssemos. Em baixo está como essa regra é imposta nas camadas de criptografia, armazenamento e pedido.

memoryWebAssembly e JS no cliente lockAES-256-GCM verifiedECDSA P-256 cloud_offArmazenamento encriptado no cliente

Quatro pilares arquitetónicos

Quatro escolhas técnicas definem a postura de segurança. São aplicadas pelo código que corre no seu navegador — não por um documento de política.

memory
1. Processamento local em primeiro lugar
Visualização, anotação, preenchimento de formulários, compressão, junção, conversão e assinatura de PDF correm inteiramente no seu navegador através de WebAssembly e JavaScript. Para estas ferramentas, nenhum dado de ficheiro sai do seu dispositivo — verificável no separador Rede.
key
2. Chaves geradas do lado do cliente
Quando precisa de partilhar um ficheiro, a chave de encriptação é gerada pela Web Crypto API dentro do seu separador. Vive em memória, no fragmento do URL ou (no modo frase-passe) é derivada no dispositivo do destinatário via PBKDF2. O servidor nunca a vê.
cloud_off
3. Armazenamento encriptado do lado do cliente
Apenas é armazenado o texto cifrado AES-256-GCM mais um vetor de inicialização (e, no modo frase-passe, um salt PBKDF2). Sem a chave, estes dados são criptograficamente indistinguíveis de bytes aleatórios. Acesso de raiz à base de dados não nos ajudaria a desencriptá-los.
policy
4. Fronteira de IA honesta
As ferramentas de IA (chat, resumo, tradução) precisam de texto legível para funcionar. Extraímos o texto do lado do cliente e enviamos apenas esse ao fornecedor do modelo — nunca o próprio ficheiro PDF, nunca imagens, nunca anexos incorporados. Consulte a secção de IA abaixo para detalhes completos.

Fluxo de encriptação (Transferência Segura)

Um passo-a-passo byte a byte do que acontece quando coloca um PDF na Transferência Segura e partilha o link resultante. Todos os passos abaixo correm no navegador, exceto o armazenamento do texto cifrado.

Remetente — no navegador
// 1. gerar uma nova chave de 256 bits key = crypto.subtle.generateKey({name:"AES-GCM", length:256}) // 2. IV aleatório de 96 bits por ficheiro iv = crypto.getRandomValues(new Uint8Array(12)) // 3. encriptar os bytes do PDF localmente ct = crypto.subtle.encrypt({name:"AES-GCM", iv}, key, pdfBytes) // 4. enviar texto cifrado + iv — mais nada id = await fetch("/api/transfer", {method:"PUT", body: ct, headers:{"x-iv": hex(iv)}}) // 5. construir o link de partilha com a chave no fragmento do URL (#) link = `https://pdfpro.tools/s/<ID>#<KEY>`
Servidor — armazena apenas texto cifrado
ciphertext = bytes opacos // não pode ser desencriptado sem a chave iv = nonce de 12 bytes expiry = 24 h (gratuito) / 30 d (Pro) // o fragmento do URL (#...) NUNCA é enviado ao servidor pelos navegadores
Destinatário — no navegador
// 1. o navegador carrega a página; o fragmento "#..." fica do lado do cliente rawKey = location.hash.slice(1) // 2. obter o texto cifrado ct = await fetch("/api/transfer/" + id) // 3. desencriptar localmente com a Web Crypto pdf = crypto.subtle.decrypt({name:"AES-GCM", iv}, importKey(rawKey), ct) // 4. ficheiro acaba na pasta Transferências do destinatário

A garantia de segurança apoia-se no passo 5 (remetente) e no passo 1 (destinatário): o fragmento do URL após # não é transmitido ao servidor por nenhum navegador conforme. É isto que faz com que o próprio link seja a credencial de desencriptação.

O modo frase-passe substitui o passo 1 (remetente) por PBKDF2-SHA256(passphrase, salt, 310_000). O salt é armazenado do lado do servidor; a frase-passe é partilhada com o destinatário fora da banda.

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 sai do 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 palavra-passe que pode armazenar localmente.
fingerprint
Hash SHA-256 e assinatura
Os bytes do PDF são submetidos a hash SHA-256 do lado do cliente. Esse hash é assinado pela chave privada. A assinatura é incorporada no PDF num contentor CMS (perfil PAdES-B-B).
verified
Verificável offline
Qualquer pessoa com a chave pública (distribuída junto com o documento ou como impressão digital) pode verificar a assinatura offline. Não é necessária uma viagem ao servidor.
gavel
O que isto não é
As nossas assinaturas são criptograficamente verificáveis, mas não são assinaturas eletrónicas qualificadas (QES) ao abrigo do eIDAS. São provas de integridade à prova de adulteração, adequadas a fluxos de trabalho internos, não a vinculação legal de grau regulatório.

Funcionalidades de IA — onde somos honestos sobre a fronteira

O Chat de IA, o Resumo de IA e o Traduzir precisam de texto legível. Eis 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 ficheiro original permanece no seu dispositivo.
outbound
Apenas texto para o fornecedor
Enviamos essa string de texto ao fornecedor de IA (Anthropic / OpenAI). O próprio PDF, imagens incorporadas, tipos de letra e dados de formulário nunca são enviados a qualquer modelo de IA.
block
Sem treino com o seu conteúdo
Os contratos com os fornecedores desativam o treino com conteúdo de clientes. Os pedidos são sem estado — cada um está limitado à sua sessão.
info
Quando isto importa
Se o seu documento contiver conteúdo regulado (PHI, classificado, sigilo legal) em que mesmo a extração de texto é sensível, salte as funcionalidades de IA e utilize as ferramentas locais (ver, anotar, assinar, comprimir, converter) — operam 100% no navegador.

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

Ser claro sobre o modelo de ameaças é mais útil do que marketing. Eis o que a arquitetura realmente detém, e onde se detém.

shieldContra o que a arquitetura defende

  • Funcionários do PDF Pro a lerem os seus ficheiros nos nossos servidores (nunca detemos a chave).
  • Brecha ao nível da base de dados do armazenamento de transferências (o atacante vê texto cifrado, não ficheiros).
  • Divulgação de conteúdo de ficheiros por ordem judicial (apenas podemos entregar texto cifrado — é tudo o que temos).
  • Retenção de anexos sensíveis em servidores de e-mail (nada chega ao seu servidor de correio).
  • Adulteração de um PDF assinado (a verificação da assinatura ECDSA deteta qualquer alteração de byte).

warningContra o que nenhuma ferramenta baseada no navegador pode defender

  • Um terminal comprometido (malware no seu dispositivo) — as chaves vivem em memória num dispositivo que tem de ser fiável.
  • Alguém a espreitar o fragmento do URL por cima do ombro — trate o link de partilha como se fosse o próprio ficheiro.
  • Uma frase-passe fraca no modo frase-passe — o PBKDF2 abranda a força bruta, mas não torna segura uma frase-passe de 6 caracteres.
  • O destinatário a reencaminhar um ficheiro desencriptado — a segurança em trânsito termina quando o destinatário guarda o PDF.
  • Comprometimento do próprio navegador ou de uma extensão maliciosa a injetar conteúdo na página.

Sem afirmações de "imune a ataques". A encriptação de ponta a ponta aumenta significativamente o custo de uma brecha — não elimina todo o risco, especialmente no terminal. Para os casos mais sensíveis, combine a Transferência Segura com uma frase-passe separada e uma troca de chave por canal fiável.

Perguntas frequentes

O PDF Pro consegue desencriptar os meus ficheiros?
Não. As chaves de encriptação são geradas e mantidas no navegador do utilizador. Para a Transferência Segura, o servidor armazena apenas texto cifrado AES-256-GCM mais um vetor de inicialização (mais um salt no modo frase-passe). A chave nunca chega à nossa infraestrutura. Mesmo com acesso total à base de dados, os nossos operadores não conseguem desencriptar o seu ficheiro.
O que é executado localmente e o que é executado no servidor?
Visualização, anotação, preenchimento de formulários, compressão, junção, conversão e assinatura correm 100% no seu navegador através de WebAssembly e JavaScript — nenhum dado de ficheiro sai do seu dispositivo. As funcionalidades de IA (chat, resumo, tradução) extraem texto localmente e enviam apenas esse texto (nunca o próprio PDF) ao fornecedor do modelo.
Que algoritmos é que o PDF Pro utiliza?
AES-256-GCM para encriptação simétrica (Transferência Segura), PBKDF2-SHA256 com 310 000 iterações para chaves derivadas de frase-passe, ECDSA sobre NIST P-256 para assinaturas digitais e SHA-256 para hash de documentos. Todos correm através da Web Crypto API nativa do navegador, que é auditada, normalizada e não é implementada por nós.
É 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) ao abrigo do eIDAS ou regulamentos equivalentes. Para vinculação legal ao nível QES é necessário um prestador qualificado de serviços de confiança.
O que acontece se esquecer uma frase-passe ou perder um link de partilha?
O ficheiro é permanentemente irrecuperável. É o compromisso da encriptação de ponta a ponta — não existe caminho de recuperação, porque nunca tivemos a chave. Guarde a frase-passe num gestor de palavras-passe e guarde o link num local duradouro.
Mantêm registos do lado do servidor sobre a atividade dos ficheiros?
Mantemos registos operacionais (tempos de pedido, códigos de erro, endereços IP para limitação de taxa), mas nunca conteúdo de ficheiros em texto simples nem chaves de encriptação. Os registos são mantidos por um curto período — consulte a nossa política de privacidade para os atuais períodos de retenção.
Uma ordem judicial pode obrigar-vos a revelar os meus ficheiros?
Apenas podemos entregar o que temos: texto cifrado. Sem a chave de desencriptação — que fica no dispositivo do remetente ou no fragmento do URL que o destinatário detém — esse texto cifrado não é desencriptável. Uma intimação não pode recuperar retroativamente uma chave que nunca armazenámos.
Onde posso verificar as afirmações criptográficas eu próprio?
Abra as ferramentas de programador do navegador → separador Rede e observe o que sai da página durante um envio de Transferência Segura. Verá texto cifrado a ser enviado por PUT para o servidor, não o PDF original. O código de encriptação invoca a Web Crypto API, integrada no navegador — não no nosso código — e qualquer pessoa pode inspecioná-la.

Privacidade como arquitetura, não como marketing.

Experimente uma Transferência Segura e inspecione o separador Rede. Nenhum ficheiro é enviado em texto simples.

lockExperimentar Transferência Segura