手把手教你解密MacOS平臺(tái)下的Chrome密碼
雖然現(xiàn)在網(wǎng)上有很多開源的軟件可以幫助你解密那些存儲(chǔ)在GoogleChrome瀏覽器中的密碼,但是這些軟件幾乎只支持在Windows操作系統(tǒng)下使用。那么對(duì)于我們這些Mac用戶來說,當(dāng)我們需要快速導(dǎo)出Chrome中存儲(chǔ)的全部密碼時(shí),我們?cè)撛趺醋瞿?
?? 
直接進(jìn)入正題
其中最常見的一種做法就是打開Chrome瀏覽器,選擇“瀏覽器設(shè)置”,點(diǎn)擊“管理密碼”,然后你將會(huì)看到如下圖所示的界面。接下來,你就可以在這里管理你的密碼了。
?? 
點(diǎn)擊了“顯示密碼”之后,系統(tǒng)此時(shí)便會(huì)要求你輸入本地用戶的密碼。但是,像這種極其不方便的方法,誰還想去使用它呢?
為了解決這個(gè)問題,為了避免被要求輸入用戶密碼,我們可以直接查詢GoogleChrome瀏覽器的SQL數(shù)據(jù)庫。在macOS平臺(tái)下,這個(gè)數(shù)據(jù)庫的存儲(chǔ)路徑為“~/Library/ApplicationSupport/Google/Chrome/Profile */Login Data”。
對(duì)于每一個(gè)存儲(chǔ)在GoogleChrome瀏覽器中的密碼來說,每一條密碼數(shù)據(jù)都是以類似下圖所示的這種數(shù)據(jù)格式存儲(chǔ)在“LoginData”數(shù)據(jù)庫中的:
?? 
我們可以從上圖中看到,對(duì)于這個(gè)用戶而言,其密碼就是那段以“v10”開頭的亂碼,這段密碼明顯已經(jīng)被加密了。你可能想問了,它采用的到底是哪一種加密算法呢?為了解答這個(gè)問題,我們可以參考GoogleChromium的源代碼。在其源代碼中,我們發(fā)現(xiàn)了下面這段話:
加密機(jī)制:AES-128-CBC(使用固定鹽值和固定迭代次數(shù))。解密密鑰是一個(gè)PBKDF2密鑰,該密鑰通過下列數(shù)據(jù)生成:
- 鹽值:鹽值固定不變(saltysalt);
- 迭代次數(shù):在對(duì)稱密鑰的生成過程中進(jìn)行1003次迭代計(jì)算;
- 哈希函數(shù):sha1;
- 密碼:密碼是整個(gè)環(huán)節(jié)中最重要的一個(gè)部分了。我們所要獲取的,就是存儲(chǔ)在“ChromeSafe Storage”中的憑證數(shù)據(jù),而這部分?jǐn)?shù)據(jù)又保存在用戶的keychain之中。實(shí)際上,我們?cè)谠L問這個(gè)安全存儲(chǔ)密鑰的時(shí)候并不需要獲取到用戶的keychain密碼。因?yàn)槲覀兛梢栽诮K端中使用命令“securityfind-generic-password -ga Chrome”來直接調(diào)用macOS的安全處理進(jìn)程,此時(shí)系統(tǒng)將會(huì)顯示如下圖所示的對(duì)話框:
?? 
?? 
如上圖所示,我們?cè)跊]有輸入用戶密碼的情況下獲取到了Chrome的安全存儲(chǔ)密鑰。沒錯(cuò),就是這么簡單!
加密與解密
之前我們也已經(jīng)討論過了,其中的AES解密密鑰是通過PBKDF2密鑰(‘sha1’,safeStorageKey, ‘saltysalt’, 1003)來生成的。既然我們已經(jīng)獲取到了這些數(shù)據(jù),那么接下來我們?cè)趺蠢眠@些數(shù)據(jù)來自動(dòng)化地從數(shù)據(jù)庫中提取信息并解密所有的數(shù)據(jù)條目呢?沒錯(cuò),我們要使用的就是Python,毫無疑問,Python永遠(yuǎn)是最贊的!而且更棒的地方就在于,macOS已經(jīng)幫我們安裝好了Python的運(yùn)行環(huán)境了,所以我們無需再去配置各種各樣亂七八糟的東西了,我們可以直接在任何一臺(tái)macOS設(shè)備上運(yùn)行Python腳本。只需五秒鐘,一切都可以搞定!
如果你想要使用Python來進(jìn)行AES解密的話,我們通常都會(huì)使用這個(gè)功能強(qiáng)大的第三方加密庫來完成【傳送門】,但悲劇的地方就在于,它并不是一個(gè)原生代碼庫。所以我打算使用OpenSSL命令行工具來發(fā)送一個(gè)采用base64編碼的加密密碼副本和PBKDF2解密密鑰的十六進(jìn)制副本。在這個(gè)過程中我還使用到了一些其他的工具,這些工具可以在我的Github代碼庫中獲取到【傳送門】。輸出信息如下圖所示:
?? 
我們可以從上圖中看到,Google并沒有對(duì)這些keychain數(shù)據(jù)進(jìn)行加密保護(hù)。實(shí)際上,當(dāng)用戶在除了Chrome瀏覽器以外的地方訪問這些密碼的時(shí)候,Google完全可以要求用戶提供Keychain密碼,但是很明顯他們并沒有這樣做!
?? 
如果Google想要修復(fù)這個(gè)問題的話,那么他們?cè)谧畛鮿?chuàng)建安全存儲(chǔ)密鑰的時(shí)候就得要求用戶輸入密碼以驗(yàn)證登錄信息。除此之外,蘋果公司在向開發(fā)者提供這類功能的時(shí)候,也應(yīng)該謹(jǐn)慎考慮安全性的問題。
總結(jié)
各位同學(xué)可以直接使用這個(gè)程序來解密macOS平臺(tái)下的Chrome密碼【工具下載】。這是目前***一個(gè)針對(duì)macOS/OS X平臺(tái)的Chrome密碼解密軟件,用戶無需配置任何的依賴環(huán)境即可直接使用這款軟件。


























