AES Crypt 版本 2 问题



我正在研究在python中使用文件加密库:pyAesCrypt

github页面为库声明以下内容:

IMPORTANT SECURITY NOTE: version 2 of the AES Crypt file format does not authenticate the 
"file size modulo 16" byte. 
This implies that an attacker with write access to the encrypted file 
may alter the corresponding plaintext file size by up to 15 bytes.

我认为这意味着可以将 15 个字节添加到加密文件中,这在解密时意味着数据可能会在解密后以解密文件结尾,但我不是 100%?

如果这是一个不正确的假设,在这方面有更多经验的人可以用外行的语言向我解释这一点吗?

谢谢

我也遇到了这个库并阅读了这些信息。

文件大小只是一个信息,需要检查解密的文件是否与加密的文件相同。如果检查结果不同,则解密过程中发生了某些事情,并且您的文件已损坏。

如果正确实现了加密和解密,则更改此信息不会影响加密或解密文件的内容。

虽然它是正确的,但文件大小可以更改。我认为攻击媒介是错误的。

这意味着攻击者对加密文件具有写入权限 可以将相应的明文文件大小更改最多 15 个字节。

文件大小模数 16 表示将存储余数。

大小为 64 字节的文件和大小为 128 字节的文件具有相同的余数,即 0。

如果您有一个包含 72 个字节的文件,则您有 8 个字节的余数。要获得相同的余数,您可以将纯文本文件更改为 56 字节 (72-16(、88 (72+16(。

这些文件在再次加密时将创建相同的元信息。

我已经查看了源代码,这个包只解析和写入AES Crypt文件格式。加密本身是使用 python 加密包完成的,该包是众所周知和经过测试的。

注意:我没有做过完整的源代码审计,我也不是密码学专家,但pyAesCrypt的源代码似乎很好。

最新更新