新聞中心
早在2月,我曾寫(xiě)過(guò)有關(guān)瀏覽器密碼管理器的文章,并提到在決定如何實(shí)施功能及其安全保護(hù)時(shí)了解攻擊模型非常重要。

如果你將解密密鑰存儲(chǔ)在攻擊者可以訪問(wèn)的地方,則純屬浪費(fèi)時(shí)間和精力。這就是為什么物理上本地攻擊和感染了惡意軟件的計(jì)算機(jī)通常不在瀏覽器攻擊模型范圍之內(nèi)的原因之一:如果攻擊者可以訪問(wèn)密鑰,則使用加密密鑰將無(wú)法保護(hù)你的數(shù)據(jù)。
Web瀏覽器會(huì)存儲(chǔ)各種高度敏感的數(shù)據(jù),包括密碼和cookie(通常包含功能上與密碼等效的身份驗(yàn)證令牌)。當(dāng)存儲(chǔ)此特別敏感的數(shù)據(jù)時(shí),Chromium使用AES256對(duì)其進(jìn)行加密,并將加密密鑰存儲(chǔ)在OS存儲(chǔ)區(qū)中,以上過(guò)程就是本地?cái)?shù)據(jù)加密。并非所有瀏覽器的數(shù)據(jù)存儲(chǔ)都使用加密,例如,瀏覽器緩存不使用加密。如果你的設(shè)備有被盜的危險(xiǎn),則應(yīng)使用操作系統(tǒng)的全盤(pán)加密功能,例如Windows上的BitLocker。
配置文件的加密密鑰受OSCrypt保護(hù):在Windows上,“操作系統(tǒng)存儲(chǔ)”區(qū)域?yàn)镈PAPI;在Mac上是鑰匙串;在Linux上,它是Gnome Keyring或KWallet。
值得注意的是,所有這些存儲(chǔ)區(qū)均使用可作為用戶(hù)運(yùn)行的(某些或全部)進(jìn)程可訪問(wèn)的密鑰對(duì)AES256密鑰進(jìn)行加密。這意味著,如果你的PC感染了惡意軟件,則攻擊者可以解密訪問(wèn)瀏覽器的存儲(chǔ)區(qū)。
但是,這并不是說(shuō)本地?cái)?shù)據(jù)加密完全沒(méi)有價(jià)值,例如,我最近遇到了一個(gè)配置漏洞的網(wǎng)絡(luò)服務(wù)器,該網(wǎng)絡(luò)服務(wù)器允許任何訪問(wèn)者瀏覽服務(wù)器所有者的個(gè)人資料(例如c:\ users \ sally),包括其Chrome個(gè)人資料夾。由于配置文件中的瀏覽器密鑰是使用存儲(chǔ)在Chrome配置文件外部的密鑰加密的,因此它們最敏感的數(shù)據(jù)仍保持加密狀態(tài)。
同樣,如果筆記本電腦未受到全盤(pán)加密保護(hù),則本地?cái)?shù)據(jù)加密將使攻擊者的攻擊更加艱難。
好的,因此本地?cái)?shù)據(jù)加密可能很有用。那不利之處是什么?
顯而易見(jiàn)的攻擊是簡(jiǎn)單溫和的:加密和解密數(shù)據(jù)最終會(huì)降低性能。但是,AES256在現(xiàn)代硬件上非???> 1GB /秒),并且cookie和憑據(jù)的數(shù)據(jù)大小相對(duì)較小。但更大的風(fēng)險(xiǎn)是復(fù)雜性,如果兩個(gè)密鑰(用于加密數(shù)據(jù)的瀏覽器密鑰或用于加密瀏覽器密鑰的操作系統(tǒng)密鑰)中的任何一個(gè)出問(wèn)題,則用戶(hù)的Cookie和憑據(jù)數(shù)據(jù)將無(wú)法恢復(fù)。用戶(hù)將被迫重新登錄每個(gè)網(wǎng)站,并將所有憑據(jù)重新存儲(chǔ)在其密碼管理器中或使用瀏覽器的同步功能從云中恢復(fù)其憑據(jù)。
在Mac上,研究人員最近在Edge發(fā)現(xiàn)了一個(gè)漏洞,即瀏覽器無(wú)法從OS鑰匙串獲取瀏覽器密鑰。由于瀏覽器將提供刪除鑰匙串(丟失所有數(shù)據(jù))的功能,但是忽略漏洞消息并重新啟動(dòng)通常可以解決問(wèn)題,不過(guò)最近該漏洞的修復(fù)程序已經(jīng)發(fā)布了。
在Windows上,DPAPI漏洞通常是隱蔽進(jìn)行的。通常受害者的數(shù)據(jù)消失,并且沒(méi)有消息框。
當(dāng)我于2018年首次加入Microsoft時(shí),AAD中的一個(gè)漏洞意味著我的OS DPAPI密鑰已被破壞,導(dǎo)致基于Chromium的瀏覽器在啟動(dòng)時(shí)會(huì)導(dǎo)致lsass永遠(yuǎn)保留CPU內(nèi)核,解決此漏洞需要花費(fèi)數(shù)月的時(shí)間。
最近,研究人員從Windows 10上的一些受害者那里聽(tīng)說(shuō)Edge和Chrome經(jīng)常刪除他們的數(shù)據(jù),在其他使用DPAPI的應(yīng)用程序中也看到了類(lèi)似的效果。
處于此狀態(tài)的用戶(hù)在瀏覽器會(huì)話中首次發(fā)現(xiàn)其敏感數(shù)據(jù)丟失的情況下,在Chrome或Edge中訪問(wèn)了chrome://histograms/OSCrypt的用戶(hù)將在OSCrypt.Win.KeyDecryptionError中看到值為-2146893813(NTE_BAD_KEY_STATE)的條目,表明OS API無(wú)法使用當(dāng)前登錄用戶(hù)的憑據(jù)來(lái)解密瀏覽器的加密密鑰:
如果你發(fā)現(xiàn)系統(tǒng)處于這種狀態(tài),請(qǐng)嘗試在PowerShell中運(yùn)行以下命令:
- Get-ScheduledTask | foreach { If (([xml](Export-ScheduledTask -TaskName $_.TaskName -TaskPath $_.TaskPath)).GetElementsByTagName("LogonType").'#text' -eq "S4U") { $_.TaskName } }
這將列出懷疑使用S4U功能的所有計(jì)劃任務(wù),這些任務(wù)可能會(huì)導(dǎo)致漏洞的DPAPI憑據(jù):
Windows Crypto小組正在積極研究此問(wèn)題,希望我們會(huì)盡快修復(fù)。
總結(jié)
進(jìn)程可以要求操作系統(tǒng)解密瀏覽器的密鑰確實(shí)是一個(gè)很有趣的問(wèn)題,在Windows上,Chromium使用DPAPI的CryptProtectData允許任何以用戶(hù)身份運(yùn)行的進(jìn)程發(fā)出請(qǐng)求。沒(méi)有嘗試使用附加的熵來(lái)進(jìn)行更好的加密,這主要是因?yàn)闆](méi)有地方可以安全地存儲(chǔ)該附加的熵。在現(xiàn)代Windows上,還有一些其他機(jī)制可以提供比原始CryptProtectData更高的隔離度,但是完全信任的惡意軟件總是能夠找到獲取數(shù)據(jù)的方法。
在Mac上,鑰匙串保護(hù)功能會(huì)限制對(duì)數(shù)據(jù)的訪問(wèn),因此,以用戶(hù)身份運(yùn)行的每個(gè)進(jìn)程都無(wú)法訪問(wèn)該數(shù)據(jù),但這并不意味著該數(shù)據(jù)可以免受惡意軟件的攻擊。惡意軟件必須改為將Chrome用作偽造的身份,使其執(zhí)行所有數(shù)據(jù)解密任務(wù),并通過(guò)可擴(kuò)展性接口或其他機(jī)制來(lái)驅(qū)動(dòng)它。
進(jìn)程隔離的機(jī)制和約束進(jìn)一步使針對(duì)本地攻擊者的總體攻擊模型更加復(fù)雜:例如,如果一個(gè)管理進(jìn)程并轉(zhuǎn)儲(chǔ)用戶(hù)級(jí)進(jìn)程的內(nèi)存,或者向該進(jìn)程注入線程,惡意軟件也可以在瀏覽器解密后竊取數(shù)據(jù)。
本文翻譯自:https://textslashplain.com/2020/09/28/local-data-encryption-in-chromium/
網(wǎng)站題目:瀏覽器的本地?cái)?shù)據(jù)加密機(jī)制分析
新聞來(lái)源:http://m.5511xx.com/article/cdejdeo.html


咨詢(xún)
建站咨詢(xún)
