在iOS 7成功越獄之后,不少朋友對iPhone 5S的指紋識別的安全問題提出了質疑。在知乎上,一名叫做Duncan Zhang的機友給予了將這個問題進行了剖析并得出了初步的結論。以下是Duncan Zhang的看法:
在我看來,iPhone5s/c相較前一代iPhone最大的進步并不是表象上的一些摸得到看得著的指標,而是整體芯片結構的進步,這里面就包含Touch-ID體系(當然還有64位技術和獨立的協處理器)。一般消費者往往看不到這一點,這是Apple針對移動終端支付時代的切實準備和巨大進步(收購AuthenTec并將其最終整合入iPhone),也是奠定移動支付基礎可行的踏實腳步,目前似乎還沒有看到其他廠家可以做到這一步(如有請指出)。
那么如果Jail-Breaking系統之后,iPhone 5s提供的Touch-ID是否會受到沖擊呢?可以從以下幾個方面來分析:
TrustZone體系使A7處理器獨立
Apple在Touch-ID的專利里提到了Secure Enclave Processor的概念,明指在A7內部有邏輯上嚴格意義的獨立硬件和軟件結構,專門處理涉及支付等絕對機密的數據處理和存貯。其實其背后的概念是,ARM好幾年前即開始準備的TrustZone體系,在這個體系下,A7內部的處理器資源被分為兩個獨立的部分,CPU可以按照處理時序在時間上進行“區隔”,配套的寄存器和片內的RAM(如果有)可以按照地址為進行“區隔”,網上有一些示意圖如下:
圖:TrusZone的硬件架構
圖:TrusZone的軟件架構
這兩幅關于TrustZone的軟、硬件結構上的“區隔”表現得很明顯,邏輯上看(畢竟都在A7的64位的片內,和獨立的協處理器不同),TrustZone區域也就是Apple所宣稱的SEP(Secure Enclave 處理器)由在安全側工作的Monitor的中斷來控制獨立于A7普通側的處理資源范疇,連接這兩側的只有相關總線和Monitor(實時工作),當Touch-ID的指模傳感器被安全側的CPU調用時,Monitor會監控到系統中的安全業務激活標示(比如某個總線位被置于某種狀態),從而激活SEP安全側的CPU能力,接管生理指紋處理和存貯等等工作,再將處理結果返還給普通側。
SEP的護航
在如此的安全體系下,SEP側具備完整的硬件CPU能力、數據存貯空間和軟件的獨立OS,SEP激活時,SEP的OS是完整重新加載的,這個狀態下的鍵盤輸入(以后可以有基于SEP的密碼輸入)或者指模掃描和讀取都是安全的,也是普通側的CPU/OS無法染指的。也就是說,即便Hacker通過Jail-Breaking取得普通側A7基礎上的OS的完整root權限,你也看不到安全側;當然不是說不能不Hack,但Hack的難度顯然大大增加了,Hacker必須了解Apple獨有的Monitor/SEP體系,走出這一步的代價,也許就大到不用考慮了。
TrustZone的推廣
當然,ARM還會在自己的技術體系中推廣TrustZone,隨著知名度和普及度越來越高,終歸會有相關的破解方法,這也和具體的芯片制造商技術水準有關。
針對SEP的特殊設計
除此之外,Apple還設計了一些簡單但有效的設計,比如如果iphone在連續48個小時內不解鎖,SEP模式將自動關閉,用戶可以使用password進入手機;據說還有手機重起之后的第一次鑒權不能使用指紋輸入、越獄之后SEP自動失效等等.... (我不確定因為我沒有iphone5s)這些手段都是在盡力保護用戶的指紋信息不被從手機內完整讀出并做他用,密碼可以改變,指紋登入雖然方便但顯然因為其生理特征的唯一性和永久性,則必須享受更高的保護級別。
SEP對指紋MAP的構建
最后一個關鍵問題就是,SEP體系下,iPhone5S是如何鑒別指紋的。我想這是Touch-ID的最高機密,但從Apple注冊專利的Patent文件里的流程描述,還是可以看得出一些端倪,如下圖:
圖:Apple注冊專利的流程描述
這個流程圖里可以明顯看出,右側的流程是發生在SEP安全側的計算和鑒別流程,SEP在Monitor的控制下,取代普通側的A7執行指紋讀取和鑒別工作,在構建指紋的“MAP”之后(注意MAP是指紋的完整信息,是絕對需要保密的),SEP將MAP拆分成若干低分辨率的Pattern,這里的Pattern是個泛指,可能是Checksum,也可能是Hash值,還可能是柱狀圖,總之,這些信息不可逆,也就是說Hacker即便拿到這些信息也無法倒推出指紋的MAP。你也許會問是怎么做出這些pattern的,這些pattern分別代表何種意義,那就得問Apple,我想這也是Touch-ID的核心機密。
構建這些Pattern的主要目標還是要將其返還給普通側的A7來做鑒別比對(上圖中的左側),顯然SEP有限的處理能力會帶來更多時延,A7在拿到這些Pattern之后再作逐一比對(這種比對開放,你即便Hacker到結果也無所謂),并且將比對結果再次返還給右側的SEP,最終由SEP決定這次判決的最終結果,并將結果經由數字簽名之后給出。
值得一提的是,有人問如果iTunes和Appstore或者未來Apple的支付平臺要使用測試結果怎么辦?可以肯定的第一點是,用戶的完整指模信息MAP絕對不會出SEP范圍,從安全性角度考量這樣是最安全的;第二點,用戶的比對和鑒權如果是在手機上執行,那么返回的比對結果要送到應用中心,則必須加密(公私鑰體系)并有會話級別的互動機制,以確保結果不被竊聽和篡改。
這樣看,可以得出基本結論:iOS和SEP是目前為止,相對最安全的支付基礎。越獄并不能獲取SEP的支配權,所有的秘密都被守在SEP的范疇之內。
內容來源:知乎