【问题标题】:How to determine the encryption scheme of a zip file如何确定 zip 文件的加密方案
【发布时间】:2017-08-14 19:36:04
【问题描述】:

我正在查看加密的 zip 文件(使用 PKzip 格式),但我不明白加密方案是如何以二进制格式编码的。在我的研究中,我发现this paper 概述了 PKzip 格式文件中使用的各种加密方案。我发现我一直在查看的加密文件与文章中概述的幻数格式 50 4b 03 04 匹配。根据论文,使用的加密方案类型可以从文件中文件名后面的 2 字节确定(“强加密”为 17 00,“WinZip AES 加密”为 01 99。它没有说明这样的签名用于“传统 PKWare 加密”。

我使用Keka 创建了一个加密的 zip 文件来检查内容并查看使用了哪种加密。文中提到的两个幻数都没有出现在文件名后面,而是找到了字节 54 73。事实上,在我加密的明文文件中添加了更多字节后,我注意到加密后,这些字节只改变了一个一点点,表明它们实际上并不是所使用的加密方案的指标。我查看了 zipdetails 的输出以尝试查看是否有关于所使用的加密方案的更多详细信息,但输出只是表明文件已加密。是否有任何有用的工具来分析和确定加密 PKzip 文件中使用的加密方案?

【问题讨论】:

  • 为什么要加密方案,不知道加密密钥也没有用。
  • 首先,我想更好地理解一个 zip 文件的结构。我在这些 zip 文件中找到的内容与我阅读的内容不符,我想知道原因。其次,根据加密方案,如果使用弱加密方法,知道密钥是无关紧要的(正如我为传统 pkzip 加密方案引用的论文所证明的那样)。至于分组密码,即使使用不当也可能使它们容易受到攻击(例如,使用 ECB 模式、使用 CBC 模式填充 oracle 攻击、CTR 模式下的非随机随机数等)

标签: encryption cryptography zip compression pkzip


【解决方案1】:

使用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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-17
    • 2010-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多