我们有基于客户端服务器的应用程序,它将用户相关数据保存到zip文件中,并以编程方式将passwd设置为zip文件.只是想知道它是否可以被认为是安全的.谢谢你
Che*_*eso 13
Zip文件的"经典"加密被认为是弱的.通过已知方法可以快速破碎.请参阅:Biham和Kocher撰写的原始论文"对PKZIP流密码的已知明文攻击 ",自1994年以来.是的,16年前.
最近还有其他一些漏洞被描述,例如,论文 另一个对ZIP加密方案的明文攻击(WinZIP)说,一个经典的zip加密文件有3个条目,由WinZip创建,可以在2小时内破解"奔腾".这是基于随机数生成器当时的WinZip v9.0工具中的弱点的利用.我相信现在处理器的速度会快得多,但与此同时,我很确定WinZip,现在是v12.0,已经在他们的随机数生成器中解决了这个问题.尽管如此,即使没有特定于WinZip-v9的漏洞利用,经典的ZIP加密仍然很薄弱.
这种已被破解的弱zip加密也称为"ZIP 2.0加密"或"PKZIP加密".
许多现代ZIP工具包还支持ZIP条目的AES加密.这被认为是强加密,并且非常安全(**见注释).WinZip,XCeed和DotNetZip是三种这样的工具,支持使用此加密级别读取和写入zip文件.在这三者中,DotNetZip是唯一的免费选择.
您没有提到用于以编程方式生成zip文件的库.如果您使用DotNetZip,在C#中生成AES加密的ZIP文件就像这样简单:
using (var zip = new ZipFile())
{
zip.AddFile("MySensitiveFile.doc");
zip.Encryption = EncryptionAlgorithm.WinZipAes128;
zip.Password = "Very.Secret!";
zip.Save("MyEncryptedArchive.zip");
}
Run Code Online (Sandbox Code Playgroud)
**注意:Yoshi发表了一篇题为攻击和修复WinZip加密方案的论文,描述了WinZip的AES加密技术,以证明WinZip的AES加密不安全.然而,他描述的漏洞依赖于社会工程或先前的妥协或两者兼而有之.例如,本文中描述的主要漏洞利用攻击者拦截加密的zip文件,修改它,将修改后的副本发送给其预期的收件人,让收件人尝试解密它,然后将该加密的结果发送回攻击者,然后可以解密原始文件.这种所谓的"利用"涉及到许多信仰的飞跃,这些信念都集中于先前在两个方向上截获的通信的妥协.没有人描述过WinZip AES的任何结构性漏洞,与ZIP经典加密的利用相提并论.