iPhone 5s 的 Touch ID 指紋信息存儲在什麼地方?足夠安全嗎?

Apple 在發布會強調指紋信息不會被上傳同步,那麼機內的安全性如何?在越獄情況下是否會被第三方程序直接訪問到指紋信息?之前的 iOS 系統中有沒有類似安全級別的信息,即使越獄之後仍然無法讀取?


針對修改過後的問題作答:
儲存位置未知,雖然蘋果說在A7晶元裡面,不過在我們拆了iPhone 5s之前,沒法證實。就像iPhone 5s 採用的指紋識別 (Touch ID) 會有哪些安全隱患?這個裡面提到的真實度我們也沒法知道一樣。
夠不夠安全,對於越獄用戶來說,永遠是不安全的。因為越獄就是把你機器上所有硬體和軟體的操控權交給所有越獄後安裝的程序。
對於非越獄用戶來說,挺安全的,至少在發現Bug之前是如此。但安全度還是要等到iPhone 5s到手,拆了機器和系統才知道。

iOS系統中確實存在安全級別的信息,而且還不止一種
首先iOS系統內置了一個通用的密碼儲存庫,這個庫主要是給iOS系統和第三方來儲存重要密碼數據的,這部分數據在越獄之後可以被第三方軟體直接破解訪問,甚至某些越獄後安裝的安全軟體可以劫持所有向這個密碼庫儲存的密碼明文。對了,這個玩意就是所謂的KeyChain,越獄了的同學可以去/private/var/Keychains/keychain-2.db圍觀內容和數據結構。[1]
然後iOS系統還內置另外一層加密方案,那就是在你開啟了iOS系統鎖屏密碼之後,所有軟體的內容可以被歸入一個加密的儲存空間,當然這個儲存空間的使用也是軟體開發者自己決定的。關於這個儲存空間,我個人沒有詳細研究,不過我可以明確的告訴大家,這部分內容在越獄之後也是可以完全讀取的。越獄之後的機器基本上可以繞過所有的iOS系統內建加密機制,這一點上我猜測是越獄在執行的需要下屏蔽了iOS設備硬體加密模塊所致的。

談完了上面的東西,我們來談一下這個Touch ID。
在沒有拿到iPhone5s之前,對於Touch ID這個玩意的儲存只能限於猜測階段,哪怕是拿到了iPhone5s,想要詳細了解整個操作機制估計也要等到越獄放出來之後才能有所針對研究。
不過按照蘋果一貫的加密儲存方式,Touch ID的儲存和其他加密內容的儲存應該是同一類型的,也就是說這個玩意應該也是通過iOS設備內部配置的加密模塊來進行加密儲存的。那麼按照現在越獄的需求,想要完成越獄工作,iOS設備加密模塊是必須被關閉的,所以說我個人覺得對於越獄之後的機器,Touch ID的加密內容也是可以完整的讀取的。
當然這個玩意被完整讀取所要造成的危害性肯定比上面的KeyChain讀取和加密儲存讀取要嚴重的多,因為Touch ID會儲存用戶Apple帳號的帳號名和密碼,或者說Touch ID會儲存一個對應Apple帳號存在的加密Token,但無論是哪一種,獲取了Touch ID的惡意軟體都可以隨意使用你的Apple ID進行下載、購買等等操作如果關聯了信用卡,還有可能會出現盜刷的情況。
所以我個人建議,如果沒有特殊需求,比如說非要用輸入法、非要用安全軟體或非要改主題等等,使用iPhone 5s的用戶最好不要越獄。如果一定要越獄,最好也在越獄之前關閉所有Touch ID相關內容。

補充一下關於很多人說蘋果官方說指紋在晶元里……你們去看看這個回答:iPhone 5s 採用的指紋識別 (Touch ID) 會有哪些安全隱患?
真是怎麼回事,還是得等到iPhone5s到手並且被我們拆掉之後才知道……

以上
最後感謝常年請我喝咖啡的@狼大人邀請,順便貼上幾篇介紹iOS加密的文章[2][3]
[1]ios - Keychain
[2]iOS Security Details
[3]Understanding iOS passcode security


不是專業的人士。
只是在蘋果官網上iPhone5S介紹視頻中注意了這句話(2分20秒),大家應該也都看到了:

「所有的指紋信息都是加密的,並保存在全新A7晶元內置的Secure Enclave之中。在這裡,信息被鎖定於遠離一切的位置,只有Touch ID感測器才能訪問,而其他一切軟體均無權接觸。」

視頻地址:http://www.apple.com/cn/iphone-5s/videos/#video-product


數字簽證技術,解決指紋信息泄露


你見過絕對安全的系統嗎?基本上可以這樣假設,民用級的安全也就這樣,怎麼做也不會比現在好多少。真要好了,就不適用民用了。


請搜索王自如iPhone 5s評測視頻。


# 假如我來設計iPhone 5s的Touch ID

## 方案1:

電容掃描的指紋圖像存儲到設備,校驗時對比剛掃描的指紋圖像特徵與存儲的指紋圖像特徵是否相同。

漏洞:

&> 指紋圖像如果泄露,科技足夠發達的情況下,可以複製出一個生化指頭。

## 方案1改進方案2:

如果只是為了對比特徵,那隻需存儲指紋特徵。校驗時對比剛掃描的指紋特徵與存儲的指紋特徵是否相同。

改進優點:

假如指紋特徵通過特定演算法變成字元串「螞蟻的大拇指」,那麼通過「螞蟻的大拇指」這個串是無法還原原始指紋圖像的。

漏洞:

&> 指紋特徵如果泄露,黑客可以簡單複製指紋特徵到另一台設備,這樣這台設備就擁有對應的TouchID許可權。

## 方案2改進方案3:

我們把指紋特徵和TouchID晶元里的機密SECRET在晶元里通過演算法組合後hash得到特徵字元串「螞蟻在iPhone5s xxx的大拇指」,用來對比。

改進優點:

黑客無法簡單地複製指紋特徵到另一台設備來攻陷TouchID。

漏洞:

&> 如果在本設備特徵字元串被泄露,對應的指紋就不能被用在安全認證上了,這樣算上腳趾,我們只有20個可以變換的類似密碼的TouchID。

## 方案3改進方案4:

把指紋特徵和TouchID晶元里的機密SECRET組合某個應用的簽名,在晶元里通過演算法hash得到特徵字元串「螞蟻在iPhone5s xxx 對於應用A的大拇指」,再用來對比。

改進優點:
即使特徵字元串被泄露,應用之間是隔離的。

漏洞:

&> 如果系統越獄,對應應用的特徵字元串的存儲能夠被泄露。

## 總結

說到底,還是一些基本的PKI安全策略:

1. 不存儲原始SECRET安全信息,而是加salt後的hash特徵值。就是說無論是指紋圖像還是特徵,絕不能存儲在設備里。類似CSDN那樣保存明文信息的做法是不可饒恕的。
2. TouchID晶元里的SECRET無法通過任何方式讀出,hash演算法在晶元里執行。
2. 保證存儲在晶元里的hash特徵值無法通過軟體方式寫入,必須由硬體掃描時激發寫入。這可以避免黑客遠程改寫。
3. TouchID校驗機制與軟體環境完全隔離,無法通過軟體方式進行中間人攻擊。
4. 每個應用不能簡單地利用全局hash特徵,而必須都加入自己的salt來互相隔離。每個應用都應該形成自己的安全堡壘。過於通用的系統通行證反而是最大的安全漏洞。當然這個蘋果可能會做權衡。

說到底指紋和文本密碼的安全是類似的,除了文本密碼在變化的數量上超越指紋,其他方面沒有任何區別。考慮到社會學意義上人們一生所用的文本密碼數量有限,不超越手指腳趾數目。這兩者的安全性是等價的。

假如我來設計iPhone 5s的Touch ID


推薦閱讀:

我國信息安全的國字型大小部門和研究機構有哪些?
據稱和稜鏡門同期暴露的藏寶圖計劃和怪獸心靈計劃是什麼?
是否有合適的工具(隨身攜帶)快速抹除快遞單等包含敏感信息?
信息安全讀研北郵 or中科院信工所,二者哪個學到的知識多些,哪個對女生來說更具優勢,二者的優缺點是?
如何看待蘋果公開信:反對美國政府「給 iPhone 安裝後門」的命令?

TAG:iOS越獄 | 信息安全 | 指紋識別 | iPhone5s | 觸控ID |