0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

加密的 ZIP 文件可能存在兩個(gè)密碼?

馬哥Linux運(yùn)維 ? 來源:馬哥Linux運(yùn)維 ? 作者:馬哥Linux運(yùn)維 ? 2022-09-20 10:25 ? 次閱讀

Positive Technologies 的網(wǎng)絡(luò)安全研究員 Arseniy Sharoglazov 近日在社交平臺分享了一個(gè)簡單的實(shí)驗(yàn)并指出,加密的 ZIP 文件可能存在兩個(gè)正確的密碼,并且都可以提取出相同的結(jié)果。

“創(chuàng)建 ZIP:7z a http://x.zip/etc/passwd -mem=AES256 -p

使用這個(gè)密碼:Nev1r-G0nna-G2ve-Y8u-Up-N5v1r-G1nna-Let-Y4u-D1wn-N8v4r-G5nna-D0sert-You提取它:7z e http://x.zip

使用這個(gè)密碼:pkH8a0AqNbHcdw8GrmSpMagic!”

Sharoglazov 制作了一個(gè)名為 x.zip 的受密碼保護(hù)的 ZIP 文件,選擇的密碼是 1987 年的熱門英文歌曲的雙關(guān)語:

Nev1r-G0nna-G2ve-Y8u-Up-N5v1r-G1nna-Let-Y4u-D1wn-N8v4r-G5nna-D0sert-You

但實(shí)驗(yàn)結(jié)果表明,當(dāng)他使用一個(gè)完全不同的密碼(pkH8a0AqNbHcdw8GrmSp)提取 x.zip 時(shí),不會收到任何的報(bào)錯(cuò)信息。

056a108c-3822-11ed-ba43-dac502259ad0.jpg

對此,BleepingComputer 使用不同的 ZIP 程序成功地對該實(shí)驗(yàn)進(jìn)行了復(fù)現(xiàn)。該網(wǎng)站使用了 p7zip(相當(dāng)于 macOS 的 7-Zip)和另一個(gè)叫 Keka 的 ZIP 工具,與 Sharoglazov 一樣在創(chuàng)建時(shí)采用了較長的密碼,并啟用了 AES-256 加密模式。結(jié)果表明,雖然 ZIP 使用較長的密碼加密,但使用任一密碼都能成功提取了存檔。

一些網(wǎng)友在 Sharoglazov 的動(dòng)態(tài)下針對該實(shí)驗(yàn)進(jìn)行了討論,一位 ID 為 Unblvr 的用戶指出,造成這個(gè)結(jié)果的原因可能在于:

ZIP 使用 PBKDF2,如果輸入太大,它會 hash 輸入 。該 hash(作為原始字節(jié))成為實(shí)際密碼。嘗試使用 SHA1 對第一個(gè)密碼進(jìn)行 hash,并將十六進(jìn)制摘要解碼為 ASCII.。. :)

在啟用 AES-256 模式生成受密碼保護(hù)的 ZIP 存檔時(shí) ,如果密碼太長,ZIP 格式會使用 PBKDF2 算法并對用戶提供的密碼進(jìn)行 hash 處理。在這種情況下,這個(gè)新計(jì)算的 hash 將會成為文件的實(shí)際密碼。研究人員解釋稱,太長是指超過 64 個(gè)字節(jié)(字符)。

當(dāng)用戶試圖提取文件,并輸入一個(gè)超過 64 字節(jié)的密碼時(shí),用戶的輸入將再次由 ZIP 應(yīng)用程序進(jìn)行 hash,并與正確的比較密碼(現(xiàn)在本身就是一個(gè) hash)。如果匹配,將可以成功進(jìn)行文件提取。

示例中使用的替代密碼 pkH8a0AqNbHcdw8GrmSp 實(shí)際上是較長密碼 SHA-1 hash 的 ASCII 表示。Nev1r-G0nna-G2ve-。.. 的 SHA-1 checksum = 706b4838613041714e62486364773847726d5370。此校驗(yàn)和在轉(zhuǎn)換為 ASCII 時(shí)產(chǎn)生:pkH8a0AqNbHcdw8GrmSp。

但是值得注意的是,在加密或解密文件時(shí),僅當(dāng)密碼長度大于 64 個(gè)字符時(shí)才會進(jìn)行 hash 處理。換句話說,較短的密碼在壓縮或解壓縮 ZIP 的任何階段都不會出現(xiàn)這種情況。這也是為什么在加密階段選擇長的 “Nev1r-G0nna-G2ve-。..” 字符串作為密碼時(shí),ZIP 程序設(shè)置的實(shí)際密碼實(shí)際上是該字符串的 (SHA1) hash。

如果在解密階段輸入 Nev1r-G0nna-G2ve-。..,它將被 hash 并與之前存儲的密碼(即 SHA1 hash)進(jìn)行比較。但是,在解密階段輸入較短的 “pkH8a0AqNbHcdw8GrmSp” 密碼將使應(yīng)用程序直接將此值與存儲的密碼(也就是 SHA1 hash)進(jìn)行比較。

“當(dāng)使用 HMAC 作為其偽隨機(jī)函數(shù)時(shí),PBKDF2 有一個(gè)有趣的特性??梢暂p松地構(gòu)造任意數(shù)量的不同密碼對,每對密碼對都存在沖突。如果提供的密碼長于底層 HMAC hash function 的塊大小,則首先要將密碼 pre-hashed 成一個(gè) digest,然后將該 digest 作為密碼使用?!?/p>

不過,同一個(gè) ZIP 有兩個(gè)可能的密碼這一事實(shí)并不代表存在有安全漏洞;因?yàn)樯擅艽a的 hash 的前提是需要知道原始密碼。

審核編輯:彭靜
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 密碼
    +關(guān)注

    關(guān)注

    8

    文章

    188

    瀏覽量

    30455
  • 壓縮
    +關(guān)注

    關(guān)注

    2

    文章

    101

    瀏覽量

    19351
  • 應(yīng)用程序
    +關(guān)注

    關(guān)注

    37

    文章

    3237

    瀏覽量

    57547

原文標(biāo)題:加密ZIP文件可以存在兩個(gè)正確的密碼

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    如何在Java中加密和解密zip文件

    zip4j 2 . 9 . 0 壓縮一個(gè)文件 首先,我們將使用 ZipFile addFile() 方法將一個(gè)名為 aFile.txt 的文件
    的頭像 發(fā)表于 10-08 11:48 ?1724次閱讀

    怎么讓工程中同時(shí)存在兩個(gè)ioc文件?

    你好,我現(xiàn)在需要在一個(gè)工程中兼容兩個(gè)不同的項(xiàng)目,這兩個(gè)項(xiàng)目有不同的配置文件,請問可否讓兩個(gè)ioc文件
    發(fā)表于 05-23 07:50

    文件夾怎么加密?

    種方法:方法一:右擊文件夾--添加到壓縮文件--高級 設(shè)置密碼不要忘記密碼,要不就打不開了 方法二:還是建議直接下載
    發(fā)表于 11-04 17:10

    超大文件夾快速加密碼大法

    夾快速加密碼大法告訴大家。我們首先到http://www.cksis.com/folderprotect/這個(gè)網(wǎng)址下載一個(gè)文件夾保護(hù)3000的軟件,這個(gè)軟件的主要功能就是給文件
    發(fā)表于 12-03 17:18

    如何使用文件加密軟件給文件加密

    加密文件,只有通過密碼來訪問!給文件加密的方法還是比較多的,你可以在百度上面搜索到很多,今天我就以一個(gè)
    發(fā)表于 04-23 14:12

    CAD中如何給DWG文件加密碼?

    加密碼的方法很簡單: 保存或另存文件時(shí),在保存對話框的右上角有一個(gè)工具下拉菜單,點(diǎn)開此菜單,菜單最下面是安全選項(xiàng),點(diǎn)開安全選項(xiàng),就可以給DWG圖紙?jiān)O(shè)置密碼了。 自己要是給
    發(fā)表于 10-23 17:01 ?1045次閱讀

    使用Jflash軟件合并兩個(gè)bin文件

    本文檔內(nèi)容介紹了使用Jflash軟件合并兩個(gè)bin文件圖文步驟詳解,供網(wǎng)友參考。
    發(fā)表于 11-22 17:17 ?2次下載

    如何理解區(qū)塊鏈密碼學(xué)中的非對稱加密

    當(dāng)前密碼學(xué)中的加密解密方式主要能分成類,分別是對稱加密和非對稱加密。這兩個(gè)
    發(fā)表于 11-29 11:36 ?2286次閱讀

    pppoe的賬號密碼忘了怎么辦_pppoe的兩個(gè)階段

    本文首先介紹了pppoe的賬號密碼忘了的解決方法,其次介紹了pppoe的兩個(gè)階段,最后介紹了pppoe的使用缺陷。
    發(fā)表于 04-27 11:08 ?1.7w次閱讀

    如何將兩個(gè).hex文件合成一個(gè)

    我們在寫程序的時(shí)候,有時(shí)候有兩個(gè)可執(zhí)行文件的時(shí)候,都想使用里面的功能,但是源文件融合起來又感覺麻煩,這時(shí)候就要想到把兩個(gè).hex文件合成一
    發(fā)表于 12-03 13:36 ?8次下載
    如何將<b class='flag-5'>兩個(gè)</b>.hex<b class='flag-5'>文件</b>合成一<b class='flag-5'>個(gè)</b>

    關(guān)于加密狀態(tài)的zip壓縮包

    但是該工具無法識別,就算文件擴(kuò)展名改為.zip也不行,可能因?yàn)锳RCHPR是很老的緣故了,不支持現(xiàn)在使用最新算法的加密包。
    的頭像 發(fā)表于 09-21 11:05 ?2210次閱讀

    Linux中如何比較兩個(gè)文件的差異?

    Linux 中如何比較兩個(gè)文件的差異?答案是使用 diff 命令。
    的頭像 發(fā)表于 01-17 17:30 ?5146次閱讀
    Linux中如何比較<b class='flag-5'>兩個(gè)</b><b class='flag-5'>文件</b>的差異?

    如何使用兩個(gè)LED和Arduino

    電子發(fā)燒友網(wǎng)站提供《如何使用兩個(gè)LED和Arduino.zip》資料免費(fèi)下載
    發(fā)表于 01-30 11:28 ?1次下載
    如何使用<b class='flag-5'>兩個(gè)</b>LED和Arduino

    兩個(gè)LED和兩個(gè)按鈕的使用

    電子發(fā)燒友網(wǎng)站提供《兩個(gè)LED和兩個(gè)按鈕的使用.zip》資料免費(fèi)下載
    發(fā)表于 01-30 16:04 ?1次下載
    <b class='flag-5'>兩個(gè)</b>LED和<b class='flag-5'>兩個(gè)</b>按鈕的使用

    Linux中如何比較兩個(gè)文件的差異?

    Linux 中如何比較兩個(gè)文件的差異?答案是使用 diff 命令。
    的頭像 發(fā)表于 01-30 16:04 ?1.2w次閱讀
    Linux中如何比較<b class='flag-5'>兩個(gè)</b><b class='flag-5'>文件</b>的差異?