tft每日頭條

 > 科技

 > 如何給zip壓縮文件加密

如何給zip壓縮文件加密

科技 更新时间:2024-08-25 21:49:28

如何給zip壓縮文件加密?出品|開源中國Positive Technologies 的網絡安全研究員 Arseniy Sharoglazov 近日在社交平台分享了一個簡單的實驗并 ,接下來我們就來聊聊關于如何給zip壓縮文件加密?以下内容大家不妨參考一二希望能幫到您!

如何給zip壓縮文件加密(加密ZIP文件可以存在兩個正确的密碼)1

如何給zip壓縮文件加密

出品|開源中國

Positive Technologies 的網絡安全研究員 Arseniy Sharoglazov 近日在社交平台分享了一個簡單的實驗并

對此,BleepingComputer 使用不同的 ZIP 程序成功地對該實驗進行了複現。該網站使用了 p7zip(相當于 macOS 的 7-Zip)和另一個叫 Keka 的 ZIP 工具,與 Sharoglazov 一樣在創建時采用了較長的密碼,并啟用了 AES-256 加密模式。結果表明,雖然 ZIP 使用較長的密碼加密,但使用任一密碼都能成功提取了存檔。

一些網友在 Sharoglazov 的動态下針對該實驗進行了讨論,一位 ID 為 Unblvr 的用戶指出,造成這個結果的原因可能在于:

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

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

當用戶試圖提取文件,并輸入一個超過 64 字節的密碼時,用戶的輸入将再次由 ZIP 應用程序進行 hash,并與正确的比較密碼(現在本身就是一個 hash)。如果匹配,将可以成功進行文件提取。

示例中使用的替代密碼 pkH8a0AqNbHcdw8GrmSp 實際上是較長密碼 SHA-1 hash 的 ASCII 表示。Nev1r-G0nna-G2ve-... 的 SHA-1 checksum = 706b4838613041714e62486364773847726d5370。此校驗和在轉換為 ASCII 時産生:pkH8a0AqNbHcdw8GrmSp。

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

如果在解密階段輸入 Nev1r-G0nna-G2ve-...,它将被 hash 并與之前存儲的密碼(即 SHA1 hash)進行比較。但是,在解密階段輸入較短的 “pkH8a0AqNbHcdw8GrmSp” 密碼将使應用程序直接将此值與存儲的密碼(也就是 SHA1 hash)進行比較。更多的技術見解可參見 Wikipedia 上 PBKDF2 的 HMAC collisions 小節。

“當使用 HMAC 作為其僞随機函數時,PBKDF2 有一個有趣的特性。可以輕松地構造任意數量的不同密碼對,每對密碼對都存在沖突。如果提供的密碼長于底層 HMAC hash function 的塊大小,則首先要将密碼 pre-hashed 成一個 digest,然後将該 digest 作為密碼使用。”

不過,同一個 ZIP 有兩個可能的密碼這一事實并不代表存在有安全漏洞;因為生成密碼的 hash 的前提是需要知道原始密碼。

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved