盤古團(tuán)隊(duì)評(píng)論FBI成功破解iPhone:僥幸拿下這一局

責(zé)任編輯:editor005

2016-04-03 21:19:04

摘自:盤古團(tuán)隊(duì)

從蘋果的數(shù)據(jù)加密和鎖屏密碼的保護(hù)機(jī)制來(lái)看,直接拆除存儲(chǔ)芯片并對(duì)其進(jìn)行文件讀寫操作是不可能的

最近鬧的沸沸揚(yáng)揚(yáng)的FBI vs Apple的事件,期間經(jīng)歷了FBI在法庭上要求蘋果開發(fā)通用的破解鎖屏密碼的程序(并非媒體所傳的后門), 蘋果發(fā)布iOS 9.3,F(xiàn)BI要求查看iOS源代碼到最后蘋果威脅要在iCloud中用點(diǎn)對(duì)點(diǎn)加密代替現(xiàn)在的Master Key方案,最終該事件在前幾天塵埃落定。據(jù)傳言是在某個(gè)神秘選手的幫忙下,F(xiàn)BI終于解開了那臺(tái)iPhone 5C手機(jī)。

 

http://static.cnbetacdn.com/article/2016/0403/ba5e1c5dc2da70c.jpg

 

最近的媒體傳聞都是說(shuō)蘋果的鎖屏密碼多么難破解, 神秘選手技術(shù)多么厲害, 其實(shí)據(jù)我們分析, FBI這一次只是運(yùn)氣好, 碰到的是一臺(tái)iPhone 5C, 如果這臺(tái)設(shè)備是iPhone 5S的話, 那么很大可能還要通過(guò)法律手段。

蘋果的鎖屏密碼到底有多難破?為什么說(shuō)這一次說(shuō)FBI是僥幸的?對(duì)于我們普通用戶來(lái)說(shuō)又有什么影響?

請(qǐng)看盤古實(shí)驗(yàn)室對(duì)蘋果數(shù)據(jù)加密機(jī)制以及鎖屏密碼保護(hù)機(jī)制的技術(shù)分析。

iOS上哪些數(shù)據(jù)做了加密?

 

 

首先,iOS整個(gè)磁盤是全盤加密的,解密的EMF Key (file-system master encryption key)保存在閃存中1號(hào)扇區(qū)的可安全擦除區(qū)域(擦除后無(wú)法恢復(fù),并且支持遠(yuǎn)程擦除),該key對(duì)每臺(tái)設(shè)備都是唯一,并且會(huì)在數(shù)據(jù)擦除時(shí)銷毀;其次,在磁盤之上的文件系統(tǒng)的內(nèi)容也是加密的, 在每個(gè)文件創(chuàng)建的時(shí)候會(huì)隨機(jī)生成針對(duì)每個(gè)文件的Per-File Key,通過(guò)這個(gè)Per-File Key對(duì)文件中的內(nèi)容進(jìn)行加密保護(hù),并且蘋果又為此設(shè)計(jì)了Class Key來(lái)對(duì)Per-File Key進(jìn)行保護(hù)。蘋果設(shè)計(jì)A-F等各個(gè)不同的保護(hù)級(jí)別的Class Key,每個(gè)級(jí)別分別對(duì)應(yīng)了密鑰生成和銷毀的時(shí)機(jī),該級(jí)別可以通過(guò)數(shù)據(jù)保護(hù)的API來(lái)指定。默認(rèn)設(shè)備上的信息,通訊錄,郵件等都指定了iOS數(shù)據(jù)保護(hù)功能,而常見的幾個(gè)級(jí)別分別是:

全面保護(hù)(Class A)

數(shù)據(jù)保護(hù)最為嚴(yán)格的級(jí)別,系統(tǒng)解鎖后才能夠解鎖解密的密鑰,并且在鎖定以后丟棄該密鑰。

未打開文件保護(hù)(Class B)

數(shù)據(jù)保護(hù)較為嚴(yán)格的級(jí)別,通過(guò)密鑰包中的Class Key進(jìn)行協(xié)商生成公私鑰,文件一但解鎖后即使系統(tǒng)鎖屏仍然可以訪問(wèn),直到文件句柄被關(guān)閉。

首次認(rèn)證前保護(hù)(Class C)

數(shù)據(jù)保護(hù)較為嚴(yán)格的級(jí)別,在系統(tǒng)啟動(dòng)時(shí)第一次輸入密碼時(shí)解鎖解密的密鑰,并且在系統(tǒng)關(guān)閉時(shí)丟棄密鑰。

無(wú)數(shù)據(jù)保護(hù)(Class D)

沒(méi)有指定數(shù)據(jù)保護(hù),但這不意味著文件沒(méi)有加密保護(hù),對(duì)于沒(méi)有設(shè)置數(shù)據(jù)保護(hù)的其他所有文件,iOS中用一個(gè)DKey(Device Key)進(jìn)行保護(hù)。該Key設(shè)備唯一,并且保存在閃存的可安全擦除區(qū)域。

從上述機(jī)制我們可以看出蘋果對(duì)iOS數(shù)據(jù)保護(hù)的整個(gè)設(shè)計(jì)框架是相當(dāng)完善的,結(jié)合硬件并且通過(guò)多重保護(hù)機(jī)制來(lái)防止各種物理手段上對(duì)設(shè)備的數(shù)據(jù)破解。

鎖屏密碼(Passcode)的作用

假設(shè)把每個(gè)文件的加密看作為上了一道鎖的話,那么對(duì)應(yīng)的開鎖的鑰匙就存放在系統(tǒng)密鑰包里面,而鎖屏密碼除了防止用戶進(jìn)入系統(tǒng)桌面之外,更重要的角色就是利用密碼對(duì)系統(tǒng)密鑰包進(jìn)行額外的加密保護(hù)。很多人對(duì)鎖屏密碼理解的一個(gè)誤區(qū),就是鎖屏密碼只是物理手段上防止進(jìn)入手機(jī)的一個(gè)保護(hù),但實(shí)際上,用戶在第一次設(shè)置鎖屏密碼的時(shí)候,鎖屏密碼會(huì)結(jié)合硬件加密引擎生成一個(gè)叫做Passcode Key的密鑰,通過(guò)這個(gè)密鑰對(duì)保存在密鑰包中的各個(gè)鑰匙(Class Key)進(jìn)行加密保護(hù)。鎖屏密碼不會(huì)以其他加密的形式保存在設(shè)備上,用戶在解鎖的時(shí)候,會(huì)直接用輸入的密碼生成Passcode Key對(duì)密鑰包中的Class Key解密,解密失敗代表用戶密碼錯(cuò)誤。

從蘋果的數(shù)據(jù)加密和鎖屏密碼的保護(hù)機(jī)制來(lái)看,直接拆除存儲(chǔ)芯片并對(duì)其進(jìn)行文件讀寫操作是不可能的。

破解Passcode Key的手段

Passcode Key是用戶輸入的passcode結(jié)合系統(tǒng)硬件的加密引擎以及PBKDF2(Password-Based Key Derivation Function)算法生成的。PBKDF2 的基本原理是通過(guò)一個(gè)偽隨機(jī)函數(shù),把明文和一個(gè)鹽值及加密重復(fù)次數(shù)作為輸入?yún)?shù),然后重復(fù)進(jìn)行運(yùn)算,并最終產(chǎn)生密鑰。重復(fù)運(yùn)算的會(huì)使得暴力破解的成本變得很高,而硬件key及鹽值的添加基本上斷絕了通過(guò)“彩虹表”攻擊的可能 。

由于硬件加密引擎的Key無(wú)法提取,所以 只能在目標(biāo)的機(jī)器上運(yùn)行暴力破解程序進(jìn)行破解,假設(shè)用戶的密碼設(shè)置的足夠復(fù)雜的話,那么破解的周期就會(huì)變得非常久。

在FBI這個(gè)案例中,由于嫌犯可能開啟了輸錯(cuò)10次密碼自動(dòng)擦除設(shè)備的選項(xiàng),一旦暴力猜測(cè)程序連續(xù)10次輸入錯(cuò)誤的密碼,設(shè)備上的所有內(nèi)容就會(huì)擦除掉。一旦觸發(fā)數(shù)據(jù)擦除,蘋果會(huì)首先對(duì)可安全擦除區(qū)域進(jìn)行擦除,物理方式上即使能夠恢復(fù)大部分加密數(shù)據(jù),但是卻無(wú)法恢復(fù)可安全擦除區(qū)域中的數(shù)據(jù),因?yàn)榇蟛糠值慕饷苊荑€都保存在這個(gè)區(qū)域中,例如能夠解開系統(tǒng)密鑰包的二進(jìn)制數(shù)據(jù)的BAG1 Key。

后續(xù)蘋果為了封堵各種暴力猜測(cè)Passcode的方法,在64位設(shè)備的Secure Enclave中增加了定時(shí)器,針對(duì)嘗試密碼的錯(cuò)誤次數(shù),增加嘗試的延時(shí),即使斷電重啟也無(wú)法解決。

歷史上曾經(jīng)出現(xiàn)過(guò)的破解方法

早期的A4及更老的芯片(iPhone4之前的設(shè)備包括iPhone4)存在bootrom漏洞,通過(guò)bootrom中的硬件漏洞獲取設(shè)備的shell然后運(yùn)行暴力破解程序。[A4后面的芯片目前沒(méi)有公開的bootrom漏洞]

iOS7中存在利用外接鍵盤可以暴力破解密碼,甚至停用的設(shè)備也可以破解的漏洞。[該漏洞已經(jīng)在iOS8中修復(fù)]

iOS8的早期幾個(gè)版本中存在密碼嘗試失敗立即斷電并不會(huì)增加錯(cuò)誤計(jì)數(shù)的漏洞。[該漏洞已經(jīng)修復(fù)]

FBI是怎么破解這臺(tái)手機(jī)的?

FBI要想要破解的這臺(tái)手機(jī)是一臺(tái)iPhone 5C并且運(yùn)行著iOS 9,從硬件的角度上來(lái)說(shuō)這是一臺(tái)32位的設(shè)備(沒(méi)有Secure Enclave),所以我們覺得相對(duì)可能的幾個(gè)方案是(第三種是可能性最高的):

通過(guò)未公開的bootrom/iboot漏洞來(lái)獲得系統(tǒng)的權(quán)限,然后通過(guò)修補(bǔ)內(nèi)核的方式去繞過(guò)軟件的錯(cuò)誤計(jì)數(shù)來(lái)進(jìn)行暴力破解密碼。

使用未公開的暴力破解繞過(guò)錯(cuò)誤計(jì)數(shù)的漏洞(類似曾經(jīng)出現(xiàn)過(guò)的強(qiáng)制斷電繞過(guò)的漏洞)

事先通過(guò)物理方式先對(duì)手機(jī)上閃存的數(shù)據(jù)進(jìn)行克隆,由于32位系統(tǒng)不支持在Secure Enclave做硬件的計(jì)時(shí)和計(jì)數(shù),可以通過(guò)類似USB外接鍵盤進(jìn)行暴力猜測(cè),每當(dāng)猜測(cè)到9次左右的時(shí)候,再通過(guò)物理方式用克隆的數(shù)據(jù)對(duì)手機(jī)進(jìn)行數(shù)據(jù)恢復(fù),這樣就避免了數(shù)據(jù)被擦除的尷尬。

通過(guò)攝像頭追終嫌疑人的生活軌跡并且分析,比如攝像頭剛好拍攝到嫌疑人在星巴克解鎖手機(jī),那么就可以通過(guò)圖片分析的手段來(lái)判斷用戶輸入的鎖屏密碼是什么。

為什么說(shuō)FBI是幸運(yùn)的?

如果這是一臺(tái)64位的設(shè)備(擁有Secure Enclave),第三方即使擁有bootrom級(jí)別的漏洞都不可能對(duì)設(shè)備進(jìn)行暴力破解, 除非在找到Secure Enclave的漏洞才有可能對(duì)設(shè)備進(jìn)行暴力破解, 目前來(lái)看這種可能性微乎其微。這種情況下也許走司法程序是個(gè)更容易的方法。

那么蘋果是否還有弱點(diǎn)?

從設(shè)備上的保護(hù)力度來(lái)看,蘋果做的這套保護(hù)架構(gòu)在沒(méi)有類似bootrom漏洞之類的大殺器幾乎很難去破解,那么是否有弱點(diǎn)?答案是肯定有的。

由于蘋果在新的系統(tǒng)上引入了Touch ID來(lái)作為一個(gè)快捷輸入passcode的方式,在設(shè)備已經(jīng)輸入過(guò)正確的解鎖密碼的情況下,并且設(shè)備解鎖的時(shí)間在48小時(shí)之內(nèi),其實(shí)還是可以通過(guò)克隆指紋的方式對(duì)設(shè)備進(jìn)行解鎖。

其次就是當(dāng)用戶啟用了iCloud數(shù)據(jù)備份的情況下,蘋果在備份加密數(shù)據(jù)的同時(shí),還對(duì)密鑰包使用非對(duì)稱密鑰加密的方式加密后保存在蘋果的iCloud服務(wù)器上,并且蘋果擁有Master Key進(jìn)行解密。

作為普通用戶我應(yīng)該怎么做?

作為一個(gè)普通用戶來(lái)說(shuō),其實(shí)不用擔(dān)心太多。因?yàn)槟愕臄?shù)據(jù)還沒(méi)敏感到蘋果會(huì)來(lái)審查,你更應(yīng)該關(guān)心的是注冊(cè)Apple ID的郵件服務(wù)商是否足夠安全,Apple ID的密碼是否太簡(jiǎn)單,記得開啟Apple ID兩步認(rèn)證哦。

如果你自認(rèn)是一個(gè)對(duì)數(shù)據(jù)保護(hù)有極高要求的用戶,那么建議你不要打開iCloud數(shù)據(jù)備份,不要設(shè)置指紋,鎖屏密碼最好不要設(shè)置數(shù)字的密碼。

鏈接已復(fù)制,快去分享吧

企業(yè)網(wǎng)版權(quán)所有?2010-2024 京ICP備09108050號(hào)-6京公網(wǎng)安備 11010502049343號(hào)