unix/linux 实用程序 ccrypt 声称是旧的 unix crypt 的更安全的替代品。然而,在我看来,它有一个根本性的缺陷。
当您使用 ccrypt 加密文件时,它会使用您提供的密码来创建一个随机的 256 位密钥以用于 AES。要再次解密您提供密码的文件,ccrypt 使用密码获取 AES 密钥并解密文件。
好的,该文件是使用 256 位 AES 安全加密的,但其安全性完全取决于密钥的安全性——而密钥并不安全。
解密时 ccrypt 实际上会告诉您用于解密密钥的密码是否正确,并且如果您提供错误的密钥,则不会尝试解密。因此,当您猜对时,暴力破解密钥会告诉您,这将是微不足道的。
这个问题适用于使用这种方法的任何文件加密,重要的是密钥的安全性,用于编码实际数据的算法几乎无关紧要。
消息等被加密以保护它们,而在传输过程中基于密钥的加密是有意义的,但“固定”文件加密是不同的。即使是单独保存密钥的 GPG 文件加密也无济于事,通常很明显 GPG 已被使用并且密钥保存在“众所周知”的地方。同样重要的是关键安全性,文件加密无关紧要。
好的,可以通过将密钥放在 USB 记忆棒或其他东西上来完全分离密钥,但对于大多数文件加密来说,这有点 OTT 并且无论如何丢失记忆棒都意味着丢失一个人的数据。文件是通常需要长期保存的东西,密钥需要与文件一起备份。
我认为对于简单的文件加密,旧的基于 DES 的加密更好。蛮力强制它要困难得多。
我完全错了吗?:-)