带密码安全的Zip文件?

时间:2010-03-05 10:22:39

标签: security

我们有基于客户端服务器的应用程序,它将用户相关数据保存到zip文件中,并以编程方式将passwd设置为zip文件。只是想知道它是否可以被认为是安全的。 谢谢 Ñ

4 个答案:

答案 0 :(得分:13)

Zip文件的“经典”加密被认为是弱的。通过已知方法可以快速破碎。请参阅:“A Known Plaintext Attack on the PKZIP Stream Cipher”,原始论文,Biham和Kocher,1994年。是的,16年前。

最近,还有其他的技术被描述,例如,论文 Yet another Plaintext Attack on ZIP's Encryption Scheme (WinZIP)说,一个带有3个条目的经典zip加密文件,由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");
}

  

**注意:Yoshi发表了一篇名为Attacking and Repairing the WinZip Encryption Scheme的论文,描述了WinZip的AES加密技术,认为WinZip的AES加密并不安全。然而,他描述的漏洞依赖于社会工程或先前的妥协或两者兼而有之。例如,本文中描述的主要漏洞利用攻击者拦截加密的zip文件,修改它,将修改后的副本发送给其预期的收件人,让收件人尝试解密它然后发送加密的结果回到攻击者,然后谁可以解密原始文件。这种所谓的“利用”涉及到许多信仰的飞跃,这些信念都集中于先前在两个方向上截获的通信的妥协。没有人描述过WinZip AES的任何结构性漏洞,与ZIP经典加密的利用相提并论。

答案 1 :(得分:2)

使用具有更好密码安全性的7zip - 并勾选'加密文件名'选项

答案 2 :(得分:0)

安全到什么级别?有些程序可以很快地破解zip文件上的密码加密,所以如果它必须经受任何努力,那么就没有。

如果只是确保有密码的人可以打开它并远离随便窥探的眼睛,那么也许。

如果您希望获得一些合理的安全性,我会考虑拉紧数据,然后通过适当的加密软件(如gpg)运行它。

答案 3 :(得分:0)

你应该问自己几个问题。

  • 你在哪里存储zip文件?
  • 哪些权限与zip文件相关联?
  • 密码是密码吗?

通常,将用户数据存储到webroot out 的文件夹中是一个好习惯,不能直接访问。 密码生成器也可用,应该使用它们。