441
技術社區[雲棲]
FBI vs Apple:FBI是幸運的
最近鬧的沸沸揚揚的FBI vs Apple的事件,期間經曆了FBI在法庭上要求蘋果開發通用的破解鎖屏密碼的程序(並非媒體所傳的後門), 蘋果發布iOS 9.3,FBI要求查看iOS源代碼到最後蘋果威脅要在iCloud中用點對點加密代替現在的Master Key方案,最終該事件在前幾天塵埃落定。據傳言是在某個神秘選手的幫忙下,FBI終於解開了那台iPhone 5C手機。
最近的媒體傳聞都是說蘋果的鎖屏密碼多麼難破解, 神秘選手技術多麼厲害, 其實據我們分析, FBI這一次隻是運氣好, 碰到的是一台iPhone 5C, 如果這台設備是iPhone 5S的話, 那麼很大可能還要通過法律手段。
蘋果的鎖屏密碼到底有多麼難破呢?為什麼說這一次說FBI是幸運的?對於我們普通用戶來說有什麼影響?
請看我們對蘋果數據加密機製以及鎖屏密碼保護機製的技術分析。
iOS上哪些數據做了加密?
首先,iOS整個磁盤是全盤加密的,解密的EMF Key (file-system master encryption key)保存在閃存中1號扇區的可安全擦除區域(擦除後無法恢複,並且支持遠程擦除),該key對每台設備都是唯一,並且會在數據擦除時銷毀;其次,在磁盤之上的文件係統的內容也是加密的, 在每個文件創建的時候會隨機生成針對每個文件的Pre-File Key,通過這個Pre-File Key對文件中的內容進行加密保護,並且蘋果又為此設計了Class Key來對Pre-File Key進行保護。蘋果設計A-F等各個不同的保護級別的Class Key,每個級別分別對應了密鑰生成和銷毀的時機,該級別可以通過數據保護的API來指定。默認設備上的信息,通訊錄,郵件等都指定了iOS數據保護功能,而常見的幾個級別分別是:
全麵保護(Class A)
數據保護最為嚴格的級別,係統解鎖後才能夠解鎖解密的密鑰,並且在鎖定以後丟棄該密鑰。
未打開文件保護(Class B)
數據保護較為嚴格的級別,通過密鑰包中的Class Key進行協商生成公私鑰,文件一但解鎖後即使係統鎖屏仍然可以訪問,直到文件句柄被關閉。
首次認證前保護(Class C)
數據保護較為嚴格的級別,在係統啟動時第一次輸入密碼時解鎖解密的密鑰,並且在係統關閉時丟棄密鑰。
無數據保護(Class D)
沒有指定數據保護,但這不意味著文件沒有加密保護,對於沒有設置數據保護的其他所有文件,iOS中用一個DKey(Device Key)進行保護。該Key設備唯一,並且保存在閃存的可安全擦除區域。
從上述機製我們可以看出蘋果對iOS數據保護的整個設計框架是相當完善的,結合硬件並且通過多重保護機製來防止各種物理手段上對設備的數據破解。
鎖屏密碼(Passcode)的作用
假設把每個文件的加密看作為上了一道鎖的話,那麼對應的開鎖的鑰匙就存放在係統密鑰包裏麵,而鎖屏密碼除了防止用戶進入係統桌麵之外,更重要的角色就是利用密碼對係統密鑰包進行額外的加密保護。很多人對鎖屏密碼理解的一個誤區,就是鎖屏密碼隻是物理手段上防止進入手機的一個保護,但實際上,用戶在第一次設置鎖屏密碼的時候,鎖屏密碼會結合硬件加密引擎生成一個叫做Passcode Key的密鑰,通過這個密鑰對保存在密鑰包中的各個鑰匙(Class Key)進行加密保護。鎖屏密碼不會以其他加密的形式保存在設備上,用戶在解鎖的時候,會直接用輸入的密碼生成Passcode Key對密鑰包中的Class Key解密,解密失敗代表用戶密碼錯誤。
從蘋果的數據加密和鎖屏密碼的保護機製來看,直接拆除存儲芯片並對其進行文件讀寫操作是不可能的。
破解Passcode Key的手段
Passcode Key是用戶輸入的passcode結合係統硬件的加密引擎以及PBKDF2(Password-Based Key Derivation Function)算法生成的。PBKDF2 的基本原理是通過一個偽隨機函數,把明文和一個鹽值及加密重複次數作為輸入參數,然後重複進行運算,並最終產生密鑰。重複運算的會使得暴力破解的成本變得很高,而硬件key及鹽值的添加基本上斷絕了通過“彩虹表”攻擊的可能 。
由於硬件加密引擎的Key無法提取,所以 隻能在目標的機器上運行暴力破解程序進行破解,假設用戶的密碼設置的足夠複雜的話,那麼破解的周期就會變得非常久。
在FBI這個案例中,由於嫌犯可能開啟了輸錯10次密碼自動擦除設備的選項,一旦暴力猜測程序連續10次輸入錯誤的密碼,設備上的所有內容就會擦除掉。一旦觸發數據擦除,蘋果會首先對可安全擦除區域進行擦除,物理方式上即使能夠恢複大部分加密數據,但是卻無法恢複可安全擦除區域中的數據,因為大部分的解密密鑰都保存在這個區域中,例如能夠解開係統密鑰包的二進製數據的BAG1 Key。
後續蘋果為了封堵各種暴力猜測Passcode的方法,在64位設備的Secure Enclave中增加了定時器,針對嚐試密碼的錯誤次數,增加嚐試的延時,即使斷電重啟也無法解決。
曆史上曾經出現過的破解方法
早期的A4及更老的芯片(iPhone4之前的設備包括iPhone4)存在bootrom漏洞,通過bootrom中的硬件漏洞獲取設備的shell然後運行暴力破解程序。[A4後麵的芯片目前沒有公開的bootrom漏洞]
iOS7中存在利用外接鍵盤可以暴力破解密碼,甚至停用的設備也可以破解的漏洞。[該漏洞已經在iOS8中修複]
iOS8的早期幾個版本中存在密碼嚐試失敗立即斷電並不會增加錯誤計數的漏洞。[該漏洞已經修複]
FBI是怎麼破解這台手機的?
FBI要想要破解的這台手機是一台iPhone 5C並且運行著iOS 9,從硬件的角度上來說這是一台32位的設備(沒有Secure Enclave),所以我們覺得相對可能的幾個方案是(第三種是可能性最高的):
通過未公開的bootrom/iboot漏洞來獲得係統的權限,然後通過修補內核的方式去繞過軟件的錯誤計數來進行暴力破解密碼。
使用未公開的暴力破解繞過錯誤計數的漏洞(類似曾經出現過的強製斷電繞過的漏洞)
事先通過物理方式先對手機上閃存的數據進行克隆,由於32位係統不支持在Secure Enclave做硬件的計時和計數,可以通過類似USB外接鍵盤進行暴力猜測,每當猜測到9次左右的時候,再通過物理方式用克隆的數據對手機進行數據恢複,這樣就避免了數據被擦除的尷尬。
通過攝像頭追終嫌疑人的生活軌跡並且分析,比如攝像頭剛好拍攝到嫌疑人在星巴克解鎖手機,那麼就可以通過圖片分析的手段來判斷用戶輸入的鎖屏密碼是什麼。
為什麼說FBI是幸運的?
如果這是一台64位的設備(擁有Secure Enclave),第三方即使擁有bootrom級別的漏洞都不可能對設備進行暴力破解, 除非在找到Secure Enclave的漏洞才有可能對設備進行暴力破解, 目前來看這種可能性微乎其微。這種情況下也許走司法程序是個更容易的方法。
那麼蘋果是否還有弱點?
從設備上的保護力度來看,蘋果做的這套保護架構在沒有類似bootrom漏洞之類的大殺器幾乎很難去破解,那麼是否有弱點?答案是肯定有的。
由於蘋果在新的係統上引入了Touch ID來作為一個快捷輸入passcode的方式,在設備已經輸入過正確的解鎖密碼的情況下,並且設備解鎖的時間在48小時之內,其實還是可以通過克隆指紋的方式對設備進行解鎖。
其次就是當用戶啟用了iCloud數據備份的情況下,蘋果在備份加密數據的同時,還對密鑰包使用非對稱密鑰加密的方式加密後保存在蘋果的iCloud服務器上,並且蘋果擁有Master Key進行解密。
作為普通用戶我應該怎麼做?
作為一個普通用戶來說,其實不用擔心太多。因為你的數據還沒敏感到蘋果會來審查,你更應該關心的是注冊Apple ID的郵件服務商是否足夠安全,Apple ID的密碼是否太簡單,記得開啟Apple ID兩步認證哦。
如果你自認是一個對數據保護有極高要求的用戶,那麼建議你不要打開iCloud數據備份,不要設置指紋,鎖屏密碼最好不要設置數字的密碼。
最後更新:2017-08-13 22:44:12
上一篇:
暗網黑市交易調查:最愛比特幣等虛擬加密貨幣
下一篇:
手機芯片三國殺:高通、聯發科、展訊都想成霸主
android獲取短信並自動填充
Java ???????????? ??????????????? ??? ?????????Adapter?????? (???)-??????-????????????-?????????
QColor與Int類型相互轉換
深入理解Java的接口和抽象類
HybridTime - Accessible Global Consistency with High Clock Uncertainty
LXD 2.0 係列(五):鏡像管理
阿裏巴巴將全麵參與雄安新區建設 成立三家子公司
卡巴斯基實驗室:構建ATM僵屍網絡並不困難
office 2007、2010提示錯誤“此錯誤通常是由宏安全性設置造成”
xcode代碼提示功能失效的解決方法