Antes de abrir, recuperar ou reproteger um arquivo ZIP, ajuda saber exatamente o que você tem em mãos: se ele está criptografado ou não e, em caso afirmativo, com qual esquema. Uma solicitação de senha responde à primeira pergunta, mas não à segunda, e um arquivo pode ser comprimido sem ser criptografado.

Sinais rápidos de que um ZIP está criptografado

  • Extraí-lo solicita uma senha.
  • Algumas ferramentas mostram um ícone de cadeado, ou uma coluna “criptografado”, ao lado das entradas.
  • Uma tentativa de abrir um arquivo falha com uma mensagem sobre senha errada ou ausente.

Qualquer um desses sinais confirma a criptografia. Nenhum deles diz qual esquema está em uso, e essa distinção decide o quanto o conteúdo está protegido e como será uma tentativa de recuperação.

Criptografado não é o mesmo que comprimido

Todo ZIP comprime, ou pelo menos armazena, suas entradas. Compressão não é proteção: um ZIP meramente comprimido abre para qualquer pessoa com qualquer ferramenta de ZIP, enquanto a criptografia é uma camada separada aplicada por cima, e só essa camada pede uma senha. O tamanho de um arquivo, ou o fato de ele estar claramente comprimido, não diz nada sobre estar criptografado.

O que o próprio formato revela

O cabeçalho de cada entrada registra se ela está criptografada e como, então a estrutura resolve a questão mesmo quando a interface do compactador não resolve.

O sinalizador de criptografia

Toda entrada tem um sinalizador de bits de uso geral (general purpose bit flag), e seu bit mais baixo é ativado quando essa entrada está criptografada. Se esse bit estiver desativado em todas as entradas, o arquivo não está protegido de forma alguma, independentemente do que o nome do arquivo sugira.

Marcadores do ZipCrypto

Uma entrada ZipCrypto tem o bit de criptografia ativado, mas, no restante, usa um método de compressão comum, e antepõe um cabeçalho de criptografia de 12 bytes aos seus dados. A pista está no que falta: não há campo extra de AES para encontrar. Uma entrada criptografada que, fora isso, parece comum é ZipCrypto.

Marcadores do WinZip AES

Uma entrada AES é mais distinta:

  • Seu método de compressão é registrado como 99, um espaço reservado que significa “procure o método real no campo extra do AES”.
  • Ela carrega um campo extra com o identificador 0x9901.
  • Dentro desse campo, um byte de força contém 1, 2 ou 3 (ou seja, AES-128, AES-192 ou AES-256), e um campo de versão separado de dois bytes indica se a entrada usa a variante AE-1 ou AE-2.
Marcador ZipCrypto WinZip AES
Bit de criptografia ativado Sim Sim
Método de compressão Normal (armazenado ou deflate) 99
Campo extra 0x9901 Ausente Presente
Registra a força da chave Não Sim (byte de força 1, 2 ou 3 = AES-128, -192, -256)

AE-1 versus AE-2

O byte de variante no campo extra do AES distingue dois formatos intimamente relacionados que compartilham a mesma criptografia. No AE-1, o campo CRC-32 armazenado da entrada ainda contém a soma de verificação real dos dados não comprimidos, o que permite uma verificação de integridade contra o original. O AE-2 zera esse campo. O código de autenticação HMAC já garante a integridade, e um CRC armazenado poderia vazar uma pequena quantidade de informação sobre o conteúdo oculto. Ambas as variantes usam o mesmo tamanho de chave AES e a mesma derivação PBKDF2, então a escolha afeta detalhes de verificação e não a força da própria criptografia.

Ferramentas que relatam a criptografia

Listagens detalhadas expõem os mesmos campos sem um editor hexadecimal.

  • Linha de comando: zipinfo -v (ou unzip -Z -v) mostra o sinalizador de criptografia e o método de compressão de cada entrada, e o 7z l -slt do 7-Zip lista um método de criptografia para cada arquivo. O unzip -l sozinho lista apenas nomes.
  • A versão gráfica do 7-Zip mostra uma coluna de método de criptografia quando você abre o arquivo.
  • No macOS, o Utilitário de Arquivo integrado solicita uma senha em arquivos ZipCrypto, mas não consegue abrir entradas WinZip AES (falha com um erro); o comando zipinfo revela os sinalizadores em ambos os casos.
  • Um detector local: você pode abrir o arquivo em uma ferramenta de navegador que o analisa no dispositivo e nomeia o esquema para você. Nosso guia sobre arquivos ZIP criptografados explica o que esse relatório significa, e a análise acontece localmente, então o arquivo não é enviado.

Por que os nomes dos arquivos ainda podem estar visíveis

Muitas vezes você consegue listar o conteúdo de um ZIP criptografado sem a senha, o que surpreende muita gente. É assim que o formato funciona. A criptografia padrão do ZIP criptografa os dados de cada entrada, mas deixa o diretório central legível, de modo que nomes, tamanhos e datas permanecem visíveis mesmo quando o conteúdo está bloqueado. Se esses nomes são, por si só, sensíveis, o formato ZIP simples não é suficiente sozinho.

Conhecer o esquema orienta o seu próximo passo

  • Com ZipCrypto, trate o conteúdo como levemente protegido e considere recriptografar com AES. Os mecanismos e as fraquezas são abordados em ZipCrypto explicado.
  • Um arquivo AES está fortemente protegido, e qualquer tentativa de recuperação será lenta por design. Nossa visão geral sobre criptografia AES explica por que isso é intencional.
  • Seja qual for o esquema, se o arquivo é seu e você perdeu a senha, pode tentar a recuperação local a partir da página de recuperação.

Identifique e recupere apenas arquivos que você possui ou está autorizado a acessar; essa regra vale para cada passo acima.

Fontes