如何破解LUKS加密

所有磁盤加密工具都依賴于對稱加密方式來加密數(shù)據(jù),盡管Microsoft BitLocker默認使用128位AES密鑰,但主要的磁盤加密工具通常都依賴于具有256位密鑰的硬件加速AES加密。一些磁盤加密工具提供了加密算法的選擇,最受支持的是VeraCrypt,它提供了約15種對稱加密選項。

LUKS (Linux Unified Key Setup)是 Linux 硬盤加密的標準。 通過提供標準的磁盤格式,它不僅可以促進發(fā)行版之間的兼容性,還可以提供對多個用戶密碼的安全管理。 LUKS加密廣泛用于各種Linux發(fā)行版中,以保護磁盤并創(chuàng)建加密的容器。作為一個獨立于平臺的開源規(guī)范,LUKS可以看作是磁盤加密的典型實現(xiàn)。LUKS提供多種加密算法、多種加密模式和多種哈希函數(shù)可供選擇,是最難破解的磁盤加密系統(tǒng)之一。本文我們將介紹如何在Windows中處理LUKS加密以及如何通過分布式密碼破解進行破解。

磁盤加密基礎知識

所有磁盤加密工具都依賴于對稱加密方式來加密數(shù)據(jù),盡管Microsoft BitLocker默認使用128位AES密鑰,但主要的磁盤加密工具通常都依賴于具有256位密鑰的硬件加速AES加密。一些磁盤加密工具提供了加密算法的選擇,最受支持的是VeraCrypt,它提供了約15種對稱加密選項。

通過使用密鑰生成函數(shù)(KDF)從用戶的密碼(或其他數(shù)據(jù))生成對稱加密密鑰。 KDF使用用戶輸入的單向轉(zhuǎn)換(哈希函數(shù))來生成二進制加密密鑰或解開用于解密實際對稱加密密鑰的中間密鑰。使用不同的哈希函數(shù)以及大量的哈希迭代來降低潛在的暴力破解的速度。

破解加密容器時,你必須知道加密算法、哈希函數(shù)和哈希迭代次數(shù)的確切組合。錯誤的選擇實際上會使你成功恢復的機會無效,即使你偶然發(fā)現(xiàn)了正確的密碼也是如此。

LUKS磁盤加密

LUKS是最初為Linux OS開發(fā)的與平臺無關(guān)的磁盤加密規(guī)范,LUKS是Linux中磁盤加密的事實上的標準,可促進各種Linux發(fā)行版之間的兼容性,并提供對多個用戶密碼的安全管理。如今,LUKS被廣泛應用于桌面和筆記本電腦上的幾乎每個Linux發(fā)行版中。它也是網(wǎng)絡附加存儲(NAS)設備中流行的加密格式,特別是那些QNAP生產(chǎn)的設備。

除了全盤加密之外,LUKS還可以用于創(chuàng)建和運行加密容器,其方式類似于其他加密容器,例如VeraCrypt,加密的容器具有與LUKS全盤加密相同的保護級別。

LUKS為用戶提供了各種加密算法、哈希函數(shù)和加密模式的選擇,從而提供了大約45種可能的組合。

LUKS加密算法

LUKS支持多種加密算法、加密模式和哈希函數(shù)的組合,包括:

高級加密標準(AES)

Serpent加密算法

Twofish加密算法

CAST-128加密算法

CAST-256加密算法

AES是唯一的一種硬件加速加密算法,是迄今為止三種中最常見的算法,尤其是在企業(yè)環(huán)境和網(wǎng)絡連接存儲(NAS)設備中使用時。 AES加密在具有AES加密加速函數(shù)的芯片組(例如Intel CPU中的AES-NI指令集)上使用時,可提供最高的流密碼性能。Serpent和Twofish可以在創(chuàng)建加密卷時由用戶手動指定。

LUKS支持以下加密模式:

ECB (分組加密的模式之一)

CBC-PLAIN64

CBC-ESSIV:哈希

XTS-PLAIN64

設置加密卷時,各種Linux發(fā)行版可能使用不同的默認設置。例如,Red Hat Linux使用cbc-essiv:sha256和256位AES密鑰,這是許多流行的Linux發(fā)行版的默認組合。本文破解中要是用的破解工具支持CBC-PLAIN64,CBC-ESSIV:SHA256和XTS-PLAIN64加密模式。

LUKS哈希函數(shù)

在磁盤加密中,哈希函數(shù)用作密鑰生成函數(shù)(KDF)的一部分。 KDF用于從用戶提供的輸入(通常是基于文本的密碼短語)中導出二進制加密密鑰,LUKS規(guī)范支持以下哈希函數(shù):

SHA-1

SHA-256

SHA-512

RIPEMD160

Whirlpool(基于分組密碼的散列算法)

不過對WHIRLPOOL的支持不屬于該規(guī)范的一部分,但是本文使用的破解工具支持此哈希函數(shù)以及四個“正式”函數(shù)。默認情況下,大多數(shù)Linux發(fā)行版都使用SHA-256作為哈希函數(shù)。

LUKS默認加密設置

雖然每個Linux發(fā)行版的維護人員和嵌入式Linux的硬件制造商都可以自由選擇他們自己的默認加密設置,但是帶256位對稱加密密鑰的aes-cbc-essiv:sha256是最常見的默認加密設置。意思如下:

AES——加密算法為AES(默認情況下,使用256位密鑰);

CBC ——密碼塊鏈接加密模式;

ESSIV ——加密的鹽扇區(qū)初始化向量,此IV應該用于CBC模式下的密碼;

SHA-256——使用32位字計算的安全哈希算法,這是CBC模式下密碼的默認哈希函數(shù)。

非默認加密設置

用戶可以在加密磁盤時指定默認設置以外的其他解密設置,與TrueCrypt / VeraCrypt不同,LUKS確實將有關(guān)所選加密設置的信息存儲在加密元數(shù)據(jù)中,從而可以在發(fā)起破解之前檢測到加密設置。Elcomsoft Distributed Password Recovery通過分析加密元數(shù)據(jù)來自動檢測LUKS加密設置,在破解之前,必須使用Elcomsoft Forensic Disk Decryptor將其提取。

多個加密密鑰

一個LUKS卷可以使用多個密鑰來保護,該規(guī)范允許多個用戶密鑰解密用于加密的主密鑰。結(jié)果,LUKS加密的設備可能包含多個密鑰槽,這些密鑰槽用于存儲備份密鑰/密碼并允許多個用戶使用各自的密碼來解鎖LUKS卷。

每個密鑰槽都用獨特的加鹽加密保護,這使得反向暴力破解(將相同的KDF密碼與不同的槽匹配)是不可行的。在破解過程中,必須為每個密鑰槽分別計算KDF。因此,恢復密碼以保護LUKS設備需要選擇要破解的密鑰槽。破解密碼時,設置攻擊時使用Elcomsoft Distributed Password Recovery執(zhí)行此選擇。

破解LUKS加密步驟1:提取加密元數(shù)據(jù)

為了保護對加密設備中存儲的數(shù)據(jù)的訪問,必須首先恢復原始的純文本密碼。涉及多個步驟,且需要使用幾種不同的工具。

1.使用Elcomsoft Forensic Disk Decryptor或Elcomsoft System Recovery從加密的設備或磁盤映像中提取加密元數(shù)據(jù)。

2.使用提取的元數(shù)據(jù)(一個小文件)通過Elcomsoft Distributed Password Recovery對密碼發(fā)起破解。

3.找到密碼后,掛載磁盤卷或解密數(shù)據(jù)。

目前有兩種不同的工具來提取LUKS加密元數(shù)據(jù),選擇正確的工具取決于你是在現(xiàn)場還是在實驗室中工作。如果你要分析可疑計算機,則可以使用Elcomsoft System Recovery從USB閃存驅(qū)動器啟動系統(tǒng),并從連接到計算機的存儲設備中提取加密元數(shù)據(jù)。

注意:Elcomsoft System Recovery 7.06和更高版本支持LUKS加密。如果你使用的是舊版工具,請更新至最新版本以獲得LUKS支持。

1.下載Elcomsoft System Recovery,啟動安裝程序并創(chuàng)建可啟動的USB驅(qū)動器。

2.使用USB驅(qū)動器將目標系統(tǒng)啟動到Windows PE環(huán)境。

3.Elcomsoft System Recovery將自動啟動。

4.查看附加的磁盤。

5.選擇LUKS加密的分區(qū),然后點擊“轉(zhuǎn)儲”以提取加密元數(shù)據(jù)。

在你的計算機上傳輸加密元數(shù)據(jù),并將其與Elcomsoft Distributed Password Recovery配合使用,以對LUKS加密密碼發(fā)起破解。

如果你在實驗室中工作并且正在處理磁盤或磁盤映像,則將使用Elcomsoft Forensic Disk Decryptor,使用Elcomsoft Forensic Disk Decryptor提取加密元數(shù)據(jù)非常簡單。

注意:Elcomsoft Forensic Disk Decryptor 2.13及以上版本支持LUKS加密,如果你使用的是該工具的舊版本,請更新到最新版本以獲得LUKS支持。

1.啟動Elcomsoft Forensic Disk Decryptor。

2.選擇操作模式“提取/準備數(shù)據(jù)以進一步恢復密碼”。

3.打開包含LUKS卷的物理設備或磁盤映像,在下面的示例中,我們正在處理物理設備。

4.EFDD將顯示加密卷的列表,選擇你要從中提取加密元數(shù)據(jù)的卷。

5.點擊“下一步”提取加密元數(shù)據(jù)并將其保存到文件中。

破解LUKS加密步驟2:破解密碼

雖然LUKS通過在密鑰生成過程中使用數(shù)千次哈希函數(shù)迭代來提供強大的保護,以防止暴力破解,但與過去相比,我們在密碼恢復破解方面有了長足的進步。由于GPU加速、分布式和云計算的使用,強制輸入密碼的速度大大加快。通過Elcomsoft Distributed Password Recovery,最多可使用10000臺計算機和按需云實例來破解單個密碼。

為了進行破解,請執(zhí)行以下操作。

1.啟動Elcomsoft Distributed Password Recovery;

2.打開包含在上一步中使用Elcomsoft Forensic Disk Decryptor器獲得的加密元數(shù)據(jù)的文件;

3.將顯示可用的密鑰槽以及哈希迭代次數(shù)。指定要破解的密鑰槽;

4.配置并啟動破解;

暴力破解不僅變得更快,而且變得更加聰明。用戶的現(xiàn)有密碼是一個很好的起點,這些密碼可以從用戶的Google帳戶,macOS,iOS或iCloud鑰匙串,Microsoft帳戶中提取,也可以從用戶的計算機中提取,用戶的現(xiàn)有密碼提示了可能使用的字符組:

Elcomsoft Distributed Password Recovery提供了許多選項,可以自動嘗試密碼的最常見變體(例如Password1,password1967或pa $$ w0rd):

掩碼可用于嘗試匹配已建立的通用模式的密碼:

先進的技術(shù)允許使用最多兩個字典和可編寫腳本的規(guī)則來編寫密碼:

破解密碼需要多長時間?

即使你確切地知道攻擊每秒會產(chǎn)生多少密碼,仍有許多因素會影響恢復LUKS密碼所需的時間。密碼的長度及其熵,以及你所了解的有關(guān)密碼的知識或用戶組成密碼的方式,將對破解特定LUKS容量所需的時間產(chǎn)生巨大影響。

恢復速度如何?速度也不是一個恒定的值,很多影響破解速度的因素還不是很明顯。你可以嘗試的每秒密碼數(shù)量取決于幾件事,最重要的是以下幾點:

硬件:你擁有的高端視頻卡越多、越高端,原始速度就會越快。進行攻擊的計算機數(shù)量也是如此,處理密碼的電腦越多,速度就會越快。

哈希函數(shù):一些哈希函數(shù)比其他哈希函數(shù)慢,對于LUKS,用戶可以選擇五個哈希函數(shù),包括RIPEMD160,SHA-1,SHA-256,SHA-512和WHIRLPOOL,其中RIPEMD160是最快的,而WHIRLPOOL是最慢的。根據(jù)設置加密時哈希函數(shù)的選擇,你的攻擊可能會更快或更慢。

加密算法和加密模式:同樣,在用戶設置加密時選擇這些設置,選擇哈希函數(shù)會影響攻擊的速度,但與哈希函數(shù)的選擇相比,攻擊的速度要慢得多。

哈希迭代次數(shù)以及用戶計算機的速度:與BitLocker或VeraCrypt等其他磁盤加密工具不同,LUKS會更改用于保護主加密密鑰的哈希迭代次數(shù)。當使用給定的加密設置組合創(chuàng)建加密磁盤時,LUKS會對用戶的系統(tǒng)進行基準測試。該數(shù)據(jù)用于選擇保護主加密密鑰的哈希迭代次數(shù)。實際上,與在高端硬件上創(chuàng)建的類似磁盤或容器相比,在低端計算機上創(chuàng)建的LUKS加密磁盤或容器的保護函數(shù)較弱。如果將磁盤或容器移動到函數(shù)更強大的新計算機,則哈希迭代次數(shù)不會更改。

更有趣的是,哈希迭代次數(shù)會根據(jù)其他加密設置的選擇而變化。如果使用較弱(較快)的哈希函數(shù),則選擇大量的哈希迭代,反之亦然。從理論上講,不管選擇的哈希函數(shù)和加密設置如何,哈希迭代的可變數(shù)量會使攻擊在類似硬件上創(chuàng)建的LUKS卷或容器的速度相同。事實并非如此;不同算法和哈希函數(shù)之間的攻擊速度仍然存在差異,如下面的基準測試所示。

值得注意的是,哈希迭代次數(shù)與其他加密元數(shù)據(jù)存儲在一起,TrueCrypt / VeraCrypt容器不是這種情況,使得哈希迭代次數(shù)成為用戶提供的另一個秘密。

總結(jié)

LUKS不僅是一種流行且廣泛使用的加密規(guī)范,而且還是一個非常有趣的規(guī)范。多個密鑰槽的支持,哈希函數(shù)的選擇,加密算法和加密模式以及基于基準的算法,可在基于用戶計算機的性能設置加密時自動選擇哈希迭代次數(shù)。

THEEND

最新評論(評論僅代表用戶觀點)

更多
暫無評論