Isso é um bug de criptografia zip?

13

Descobri recentemente uma exploração em que eu (ou suponho que alguém) possa criptografar novamente meu arquivo zip criptografado sem precisar saber a senha:

#zip --encrypt encrypted.zip -r dir1/

O texto acima solicitará que o usuário insira uma nova senha. Há algo que me falta ou esse é um problema conhecido?

lamino
fonte
5
Você encontrou uma maneira de ler os dados no arquivo zip original?
Ctrl-alt-delor
@ sim ctrl-alt-Delor Eu não esqueci a minha senha, eu percebi isso por acidente
lamino
17
Desculpe, eu quis dizer, Você encontrou uma maneira de ler os dados no arquivo zip original, sem saber a senha?
Ctrl-alt-delor

Respostas:

40

Os arquivos zip podem ter várias senhas para diferentes arquivos contidos. Os arquivos em um arquivo morto são essencialmente independentes um do outro - eles são compactados sem levar em consideração outros arquivos e criptografados da mesma maneira. Você encrypted.zipterá dois (ou mais) segmentos criptografados, um com sua senha original e outro com a nova.

Tentar unzipo arquivo solicitaria as duas senhas:

$ unzip ../test.zip
Archive:  ../test.zip
[../test.zip] file1 password:
  inflating: file1
  inflating: file2
[../test.zip] newfile password:
  inflating: newfile

O diretório, a lista de nomes de arquivos, não é criptografada. Isso não é um bug, embora possa ser confuso e nem todas as ferramentas zip lidam bem com a situação (principalmente ferramentas gráficas).

Michael Homer
fonte
2
Recurso contra-intuitivo, mas interessante. Obrigado por esclarecer
lamino
14
O diretório, a lista de nomes de arquivos, não é criptografado - é por isso que as situações em que a listagem de diretórios também é sensível geralmente fazem com que os arquivos originais sejam compactados sem criptografia em um arquivo zip, que é compactado e criptografado em outro arquivo zip. Então, a única coisa visível sem a senha é o nome do arquivo zip interno.
precisa
2
@Stobor em uma nota relacionada, o .7zformato de arquivo tem a opção de criptografar a listagem de diretórios e os arquivos.
user3490