Criptografia de PDF explicada: RC4 vs AES-128 vs AES-256
A criptografia de PDF é a proteção criptográfica aplicada aos fluxos de conteúdo de um PDF para que o arquivo não possa ser lido sem senha. A especificação PDF suportou vários algoritmos ao longo de sua história, e nem todos são mais seguros. Esta página explica o que cada algoritmo faz, qual versão de PDF o introduziu e qual você deveria escolher ao proteger um arquivo hoje.
Mecanismo
Como funciona a criptografia de PDF
Quando um writer PDF criptografa um arquivo, ele gera uma chave de criptografia de arquivo aleatória, usa essa chave para criptografar os fluxos de conteúdo (e algumas outras strings do arquivo), depois armazena a chave de criptografia de arquivo em um dicionário de criptografia protegido pela senha do usuário. Para abrir o arquivo, um visualizador pede a senha, deriva uma chave dela, usa essa chave para descriptografar a chave de criptografia de arquivo, depois usa a chave de criptografia de arquivo para descriptografar o conteúdo.
A consequência importante: a senha não é armazenada no arquivo. O que é armazenado é um valor criptografado com a senha. Para verificar uma senha, o visualizador tenta descriptografar esse valor e compara o resultado a um marcador de texto claro conhecido. É por isso não há recuperação de senha — o arquivo não contém a senha, apenas algo trancado por ela.
Algoritmo
RC4 — obsoleto e quebrado
RC4 é uma criptografia de fluxo projetada em 1987 e largamente usada nos anos 90 (PDF, SSL, WEP). O PDF 1.2 introduziu RC4 40 bits; versões posteriores o estenderam a RC4 128 bits. O RC4 agora é obsoleto em PDF e considerado quebrado para uso de segurança moderno. Especificamente:
- RC4 40 bits é trivialmente quebrável por força bruta em hardware moderno.
- RC4 128 bits não é quebrável por força bruta, mas o RC4 tem viés estatísticos que vazam informação sobre o texto claro, e várias ataques práticos contra PDFs criptografados com RC4 foram publicados.
- Visualizadores modernos advertem ou recusam abrir arquivos criptografados com RC4 em certas configurações.
Não crie novos PDFs criptografados com RC4. Se você encontrar um, descriptografe-o (com a senha) e recriptografe-o com AES-128 ou AES-256.
Algoritmo
AES-128 — robusto, largamente suportado
AES-128 foi introduzido no PDF 1.5 (2003, Acrobat 6/7). O AES é uma criptografia de bloco; AES-128 usa uma chave de 128 bits. O modo AES do PDF usa CBC com um vetor de inicialização aleatório de 16 bytes por string. O AES-128 não tem ataques práticos contra ele e é largamente suportado por todos os visualizadores PDF modernos. É um padrão razoável quando AES-256 não está disponível.
Algoritmo
AES-256 — o padrão atual
AES-256 foi introduzido no PDF 1.6 Extension Level 3 (2008, Acrobat 9). Ele usa uma chave de 256 bits e, no design original PDF 1.6 Ext Level 3, deriva a chave da senha com SHA-256. Uma revisão posterior (PDF 2.0 / Extension Level 8) adicionou uma derivação de chave mais forte usando PBKDF2 com muitas iterações, tornando força bruta muito mais difícil. Isso às vezes é chamado "AES-256 R6" ou "compatibilidade Acrobat X".
Prefira AES-256 sempre que sua ferramenta o oferecer. Se você tem a escolha entre a derivação de chave antiga e a nova, escolha a nova (baseada em PBKDF2).
Histórico
Qual versão de PDF introduziu qual algoritmo
- PDF 1.2 (1996) — RC4 40 bits.
- PDF 1.3 (1999) — RC4 128 bits.
- PDF 1.5 (2003) — AES-128 (V4, R4).
- PDF 1.6 Ext Level 3 (2008) — AES-256 (V5, R5).
- PDF 2.0 / Ext Level 8 (2017) — AES-256 com derivação de chave PBKDF2 (V5, R6).
Prática
Qual algoritmo escolher
Para novos arquivos: AES-256 com derivação de chave PBKDF2 (R6) se o signatário e os visualizadores destinatários o suportarem; senãoAES-128. Nunca escolha RC4 para um novo arquivo. A senha importa mais que o algoritmo: uma senha de 6 caracteres em AES-256 é mais fraca que uma senha aleatória de 20 caracteres em AES-128, porque a superfície de ataque é a senha, não a criptografia.
Para abrir arquivos antigos: qualquer visualizador moderno lidará com os três. Se você controla o arquivo, descriptografe e recriptografe com AES-256.
Uma verificação de sanidade útil: depois de proteger um PDF, tente abri-lo em um visualizador diferente daquele usado para criptografá-lo. Se um segundo visualizador pode abri-lo sem avisos, a criptografia é largamente compatível. Se apenas a ferramenta original pode abri-lo, você pode ter usado um modo não padrão.
IXPDF
Capacidade de criptografia do IXPDF hoje
O motor PDF atual do IXPDF (pdf-lib) não suporta escrita ou leitura de PDFs criptografados. As páginasProteger PDF eDesbloquear PDFexplicam a limitação honestamente e estão marcadas Pesquisa Requerida. Estamos avaliando uma biblioteca de criptografia compatível com navegador que nos permitiria oferecer proteção AES-256 totalmente no navegador, sem download. Até lá, consulte nossoguia de proteção por senhapara ferramentas locais confiáveis.
Leia também