題:
受密碼保護的ZIP文件安全嗎?
trejder
2013-05-13 13:29:09 UTC
view on stackexchange narkive permalink

在我的答案之後。如果我可以列出受密碼保護的ZIP文件的內容,檢查每個存儲文件的文件類型,甚至在不知道密碼的情況下將其替換為另一個文件,那麼ZIP文件是否仍應視為安全的?

這在社會工程/影響力等方面是完全不安全的。

我可以劫持(攔截)他人的文件(受密碼保護的ZIP文件),並且可以將其中包含的文件之一替換為我的一個(假冒,病毒)不知道密碼。替換後的文件將保持未加密狀態,在ZIP內不會受到密碼保護,但是其他文件將不會被修改。

如果受害者解壓縮了受密碼保護的檔案,則解壓縮程序只會要求輸入一次密碼,並非每個文件每次都如此。因此最終用戶將看不到區別-程序是否不要求輸入密碼,是因為它已經知道了密碼(原始文件),還是因為提取的文件不需要密碼(由我修改的文件)。這樣,我可以在密碼保護的ZIP文件中註入一些非常糟糕的東西,而無需知道它的密碼,並假設該文件未經修改就依賴接收者。

我遺漏了一些東西嗎?或者這真的是錯誤的嗎?如果不需要密碼 在受密碼保護的文件中引入任何修改,我們對解決方案的安全條款有何看法?

在ZIP檔案的設計中,它們只是_containers_。加密是對文件而不是容器本身進行的,因此仍為內部_files_授予機密性和完整性。 ZIP存檔本身不受密碼保護,但其中的文件受密碼保護。實際上,RAR文件的行為幾乎相同,只是它們為您提供了加密文件列表的選項。您可以將偽造的文件添加到RAR文件中(而不是通過WinRAR),但是如果文件列表是加密的,則無法對其進行修改,因此打開它的應用程序將無法列出偽造的文件。
進一步閱讀後,我了解到ZIP在CBC模式下使用AES,[實際上並沒有授予完整性](http://security.stackexchange.com/a/9446/)。儘管修改文件的內容並不是那麼容易,但是持久的威脅最終將能夠做到這一點。 **請注意**:完整性問題當然不是可以替換的文件。恕我直言,可以替換和篡改您的文件是可以的,但無法檢測到這種篡改是完整性問題。
您能否壓縮文件(不使用密碼),然後再次壓縮該歸檔文件(使用密碼)?這樣,您將只有一個受密碼保護的文件,並且由於無法訪問該文件,因此無法修改內部zip。
@poke:相當有趣的主意! :]
是的,您可以,WinZip將此稱為“雙重壓縮”:http://kb.winzip.com/kb/entry/147/
請注意將文件解壓縮到臨時文件夾然後保留在其中的存檔程序。 7zip會這樣做,並拒絕修復它。如果使用7zip,則加密的文件將不安全,因為它們不可避免地會在未加密的臨時文件夾中保留。
為什麼不只使用校驗和檢查完整性,例如沙,md5?
十一 答案:
bethlakshmi
2013-05-13 20:11:26 UTC
view on stackexchange narkive permalink

要回答這個問題,需要對“安全”和/或“安全”有一個更好的定義。必須始終根據保護的目的和對系統的風險來定義它。這裡沒有一種尺寸適合所有情況,對於一種系統來說“足夠安全”,而在另一種系統上可能很小。而在另一種情況下,“足夠安全”可能是成本過高或在不同情況下不可行。

因此,一個接一個地考慮典型問題:

  • 機密-充裕。機密性通常是根據訪問受保護材料所需的時間來評估的。我也許可以更改 zip文件,但是作為一名黑客,我需要一些時間才能破解密碼或強行使用它。在不多的時間裡,密碼是較弱的保護措施之一,考慮到zip文件通常被共享的方式,社交工程通常很難採用這種方式來獲得密碼。

  • 完整性-不,正如問問者所指出的那樣-很容易更改軟件包並使它看起來合法。

  • 可用性-通常不適用於此類安全控制-這通常是指使服務不可用的風險-數據存儲/打包通常不會以任何一種方式影響可用性。

  • 不可抵賴性-不,沒有保護-任何人都可以修改軟件包,因此任何人都可以做出貢獻可能具有可否認性。

訣竅是-您想要得到多少?加密電子郵件是一種選擇-作為更好的保護。儘管這構成了它自己的連接性問題。還有許多更好的數據加密方法-但是更好的選擇還涉及到關鍵的分發挑戰,這可能會增加時間和成本方面的顧慮。

作為打包和共享一些您不想完全公開的數據的快速方法-總比沒有好,並且有時它是您可以解決的唯一共同點。對於任何高風險,我都會找到一個更好的選擇。

強密碼(例如14個隨機字符)與強加密方法(例如AES-256)相結合的弱點是什麼?
我不清楚您的問題來自什麼角度?此人專門詢問與zip文件相關的密碼保護方法,並且問題在問題中得到了很好的概述-在這種情況下,無論您的密碼有多大或隨機,zip文件的密碼鎖都不會鎖定很多東西。在“一般”中,密碼非常脆弱-密碼很容易共享,並且要求雙方都知道它們(它們是共享的機密)-因此,總是存在別人知道密碼的風險。因此,不可否認任何密碼都不能更改。
我純粹是在談論機密性,而不是在談論完整性或您根據此問題正確指出的任何其他值。您會注意到“密碼是較弱的保護措施之一”,我只想指出這一說法是相對的。這完全取決於密碼和加密方法的強度,還取決於共享此共享機密的方式。
@bethlakshmi“可能的可否認性”-您是說合理的可否認性嗎?
僅供參考,對於那些不熟悉機密性/完整性/可用性/不可否認性術語的人,維基百科在這裡有一個外行的描述:https://zh.wikipedia.org/wiki/Information_security#Confidentiality(我個人認為這個答案聽起來很容易像外語一樣)
添加“完整性” ...您不能只向通過`sha256sum`生成的加密歸檔文件提供校驗和文件,是/否?
Polynomial
2013-05-13 14:06:41 UTC
view on stackexchange narkive permalink

密碼旨在確保機密性,而不是完整性或真實性。

這是安全性受到可用性和人為意圖限制的情況之一。存檔管理器無法告訴您修改的文件是否首先要加密。本質上,這是一種社會工程攻擊,您在欺騙用戶時認為原始文件已就位。但是,真正的安全漏洞是,您首先具有對敏感存檔的讀/寫訪問權限。

就緩解而言,有幾種方法可以提高安全性:

  • 使用支持文件名加密的存檔格式(例如7Zip,RAR)
  • 使用私鑰對存檔進行簽名,例如通過GPG。
或使用tar.gz :)
在Windows上? :]如果我在Linux上,我根本不會使用ZIP!此外,問題是,是否可以將受密碼保護的ZIP文件視為安全文件,而不是是否有更安全的存檔文件。因為有,我對此很確定...
是的,tar.gz不能在Windows上使用,尤其是在您不了解7zip,WinRar或數百萬其他軟件的情況下! :PI你在瀏覽IE瀏覽器嗎? :D
親愛的上帝,不! :]我在系統級別談論_native_支持。而是說`.tar.gz`格式適用於Linux(Unix),而`.zip`格式適用於Windows。但是話又說回來,這只是一個旁注,因為問題不是,我應該使用哪種存檔格式,只有.zip足夠安全?
本地人對您到底意味著什麼?在Unix上,tar只是一個程序。 zip和unzip也是程序。沒有真正的區別。
我不了解Unix和Linux(不要使用它們),但是AFAIK可以直接從命令行使用存檔,因為它們是幾乎每個發行版附帶的系統組件或外部程序(更不用說最小的發行版了) )。您安裝了純係統,就擁有了,對嗎?嘗試在Windows上實現相同的目標?如果不手動安裝第三方程序,您將根本無法使用存檔。 Windows XP中添加了對.zip的Shell支持。在Windows上,其他人根本沒有外殼,也沒有命令行支持tar,rar,gzip。這就是我所說的_native_。
如果接收方和結束方都具有PGP並準備好其密鑰,我寧願使用PGP **加密zip文件,而不是僅** ** zip(在第一種情況下,不可能知道全部內容(文件列表等)。在第二項中,您僅可以檢查zip文件是否已被更改... zip密碼保護功能太弱,無法確保未訪問內容)
我想在這個所謂的“可用性和人類意圖”後面打一個大問號。作為一個天真的用戶,我真的希望如果我加密一個充滿所有內容的ZIP文件,那麼所有這些東西都將被加密。包括文件名和擴展名。到底為什麼有人*不知道密碼*曾經需要將文件添加到這樣的檔案中?老實說,我想不出任何可能需要用例的用例...
-1
@fgysin相同的天真用戶希望*所有*加密郵件都是加密的。包括主題和發件人名稱。-也許我們應該使用戶更加意識到各種加密的限制...
l0b0
2013-05-14 13:21:35 UTC
view on stackexchange narkive permalink

不。要創建加密的文件(由於回顯了密碼,因此是不安全的):

  $ cd-“ $(mktemp --directory)” $ echo secret > 1.txt $ echo super secret > 2 .txt $ zip -e -P dIg4BuOTFh secret.zip 1.txt 2.txt添加:1.txt(存儲的0%)添加:2.txt(存儲的0%) 

到找出其中包含的文件:

  $ unzip -l secret.zip歸檔:secret.zip長度日期時間名稱--------- --------- ------ ---- 7 2013-05-14 10:15 1.txt 13 2013-05-14 10:14 2.txt --------- ------- 20 2個文件 

要在不知道密碼的情況下用偽數據覆蓋文件:

  $ echo lie > 2.txt $ zip -u secret.zip 2.txt更新:2.txt(存儲0%) 

驗證:

  $ unzip -o -P dIg4BuOTFh secret.zip存檔:secret.zip提取:1.txt提取:2.txt $ cat 2.txtlie  

人zip 不涉及在 -e 選項的說明中有此警告,但以下內容來自 -P 的文檔:

(其中安全性非常重要,請使用強加密(例如Pretty Good Privacy)來代替zipfile實用程序提供的相對較弱的標準加密。)

應從實用程序中刪除已知的弱加密,以避免虛假信息安全感,但這是另一回事。

為什麼2.text比1.txt更安全?
不是。我只是想對兩個文件使用不同的內容:)
不幸的是,已知的較弱的安全性對於互操作性是必需的,因為那裡有很多使用已知弱方案的zip存檔,而其他系統僅支持已知弱方案。
偽造的數據可能是一個問題,但是可以通過在文件中包含MD5來緩解(這可能會發生衝突,但不太可能覆蓋大多數數據庫)
Lucas Kauffman
2013-05-13 14:04:05 UTC
view on stackexchange narkive permalink

從某種程度上講,您不能依賴zip文件的完整性是不安全的。由於您無法訪問文件內容(僅文件名),因此仍保持機密性。

以前已經討論過zip的這一缺點,我個人總是因為這個問題而總是使用rar。另一個解決方法是使用PGP對zip文件進行簽名。

如果接收方和結束方都具有PGP並準備好了密鑰,我寧願使用PGP **加密zip文件,而不是** ** zip(在第一種情況下,不可能知道全部內容(文件列表等)。在第二步中,您僅可以檢查zip文件是否已被更改... zip密碼保護太弱,無法確保未訪問內容)
@Lucas,是否表示如果我壓縮一個exe文件並用密碼保護了它,病毒可能會*仍然*通過在不具有密碼的情況下向其添加有效載荷來修改包含的exe文件?
不,我的意思是您無法驗證機密性是否受到破壞。
抱歉,您介意解釋*“無法驗證機密性是否受到破壞” *嗎?
改變事物是誠信,能夠看到事物是機密。
Mister Smith
2013-05-13 18:33:43 UTC
view on stackexchange narkive permalink

除了您已經指出的風險外,恕我直言,壓縮工具的最大問題之一是與使用臨時文件夾存儲未壓縮的文件有關。由於輸入文件可以是任意大小,因此未壓縮的輸出文件可能不適合RAM。使用一個臨時輸出文件夾(通常是操作系統的默認文件夾)。

因此,如果您每次解壓縮受psw保護的文件時都忘記適當地粉碎臨時文件夾,那麼加密算法的強度並不重要。大多數工具不會自動清除輸出目錄,也不會警告用戶該目錄。壓縮時同樣的事情:您應該確保切碎原始文件。

Gene M.
2013-05-13 14:12:07 UTC
view on stackexchange narkive permalink

如果我使用安全的通用定義來表示它強制執行隱私,身份驗證,完整性和不可否認性,那麼我會說它在許多方面都不安全。但是由於加密的ZIP文件上的密碼保護僅旨在提供保密性(除非有意向的一方禁止查看文件的內容),我想說它確實可以做到。

TOM
2014-06-25 19:23:17 UTC
view on stackexchange narkive permalink

.ZIP官方格式規範確實允許隱藏文件名列表(但不包括文件數量),以及隱藏元數據,例如原始文件大小和原始文件的CRC。但是您不能使用WinZip或Info-Zip來做到這一點。此外,除加密外,還通過使用一個或多個數字簽名來提供官方.ZIP規範中的完整性。不過,我個人的建議是避免使用密碼,而應使用公用密鑰。密鑰派生功能不斷提高,我什至不相信任何供應商都試圖跟上。

Rod MacPherson
2013-05-14 01:19:47 UTC
view on stackexchange narkive permalink

如果密碼保護的zip文件中有一個文件的未加密版本,則可以使用已知明文攻擊來獲取所有其他文件的密碼。

已知的明文攻擊應該如何提供幫助? Zip不使用腦殘算法,因此可以抵抗已知的純文本攻擊。
http://www.elcomsoft.com/help/archpr/index.html?known_plaintext_attack_(zip).html對不起,我可能應該包括一個鏈接,但是幾天前在此討論區中已經提到了此鏈接。 Google在提出此答案方面也非常有效。
嗯謝謝這與zip使用AES-CBC的[Adnan的主張](http://security.stackexchange.com/questions/35818/are-password-protected-zip-files-secure/35854?noredirect=1#comment55783_35818)相矛盾。自發現該漏洞以來,格式是否已更改?各種zip實現都支持哪些算法?
似乎Elcomsoft指的是非常老的zip實現。查看Winzip文檔,他們現在使用AES和PBKDF2。 http://kb.winzip.com/help/winzip/help_encryption.htm
IT_Architect
2013-10-14 20:53:51 UTC
view on stackexchange narkive permalink

因此,最重要的是,除非加密代碼中存在漏洞或後門,否則它的安全性就如同密碼短語能夠抵抗暴力攻擊一樣。互聯網上有很多站點,您可以在其中使用打算使用的方案的原型,以大致檢查破解所需的時間。 (不要使用您打算使用的東西)

只要有足夠的時間,任何人都可以物理訪問的任何東西都是可破解的。但是,如果訪問信息所需的成本和/或時間超過其可能的價值,則可以具有實用的安全性。除非有諸如財務信息之類的東西,否則對黑客有價值的東西和對您有價值的東西之間通常會有很大的區別。如果zip中的文件名是Attachment_1,並且電子郵件的未加密內容未描述附件的內容,則不會給黑客帶來太多麻煩。黑客不太可能會花費很多時間(當然也不會花錢)來獲得某種東西,而這種東西不可能極具說服力地包含對他有價值的東西。

Ousef Kuruvilla
2014-07-13 10:47:46 UTC
view on stackexchange narkive permalink

並非所有受密碼保護的內容都可以被暴力攻擊所入侵。但是,zip文件可能會被蠻力破解。其他系統具有適當的檢查,例如,在三次嘗試後鎖定,密碼驗證等。

從壓縮文件中鎖定?在離線攻擊情況下應該如何工作?您是否不需要類似服務器的在線攻擊方案? 為什麼說zip文件可以被暴力破解?僅當密碼足夠牢固時才如此。按照您的邏輯,即使是您提到的最強的加密方法,也可能會“蠻力”破解。兩種方式都只需要很多時間。
Faizan
2013-05-13 22:03:00 UTC
view on stackexchange narkive permalink

我聽說過可以破解密碼保護的壓縮文件的方法。通常是通過蠻力攻擊。因此,簡而言之,它們對於&機密數據的安全性並不高。

任何依賴於密碼的內容都容易受到暴力破解。這不是重點。


該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
Loading...