如何确定zip文件的加密方案

3
我在研究使用PKzip格式的加密zip文件,但我不理解加密方案如何在二进制格式中编码。在我的研究中,我找到了这篇文章,概述了PKzip格式文件中使用的各种加密方案。我发现我一直在查看的加密文件与文章中概述的魔术数字格式50 4b 03 04相匹配。根据该论文,在文件名后的2个字节中可以确定所使用的加密方案类型(17 00表示“强加密”,01 99表示“WinZip AES加密”)。它并没有为“传统PKWare加密”指定这样的签名。
我使用Keka创建了一个加密的zip文件,以检查其内容并查看使用了哪种加密。在文件名后没有出现文章中提到的任何魔术数字,而是发现了字节54 73。实际上,在将一些更多的字节添加到我加密的明文文件之后,我注意到在加密后,这些字节略微改变了,这表明它们实际上不是所使用的加密方案的指示符。我查看了zipdetails的输出,试图查看是否有关于所使用的加密方案的更多详细信息,但输出仅指出该文件已加密。有没有有用的工具来分析和确定加密PKzip文件中使用的加密方案?

1
为什么你想要加密方案,如果你不知道加密密钥,那也没有帮助。 - zaph
首先,我想更好地了解zip文件的结构。我在这些zip文件中发现的内容与我所读的不符,我想知道为什么。其次,根据加密方案的不同,如果使用弱加密方法(如传统pkzip加密方案的论文所示),即使知道密钥也是无关紧要的。至于块密码,即使使用不正确的方式也可能会使它们容易受到攻击(例如,使用ECB模式,在CBC模式下进行填充预言攻击,在CTR模式下使用非随机nonce等)。 - saltthehash
1个回答

5
使用 7z 命令行工具,并检查 Method
$ 7z l -slt /tmp/test.zip 

7-Zip [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
p7zip Version 16.02 (locale=utf8,Utf16=on,HugeFiles=on,64 bits,8 CPUs x64)

Scanning the drive for archives:
1 file, 318 bytes (1 KiB)

Listing archive: /tmp/test.zip

--
Path = /tmp/test.zip
Type = zip
Physical Size = 318

----------
Path = etc/shells
Folder = -
Size = 179
Packed Size = 132
Modified = 2016-02-26 00:50:13
Created = 
Accessed = 
Attributes = _ -rw-r--r--
Encrypted = +
Comment = 
CRC = 57BC32BA
Method = ZipCrypto Deflate
Host OS = Unix
Version = 20
Volume Index = 0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接