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