分析 iPhone 的螢幕鎖密碼
2023-10-15 by 高田鑑識
近幾年,Apple 不再使用 4 位數的 PIN 碼,改為 6 位數,並且加入了不安全 PIN 碼 的黑名單制度。這些改變對於安全性有何影響?6 位數的 PIN 碼相比 4 位數的是不是更加安全?而那些被列為黑名單的 PIN 碼真的能提高安全性嗎?讓我們一探究竟。
手機取證裡 PIN 碼扮演的角色
簡而言之,PIN 碼或密碼就是 iOS 設備裡資料的開門鑰匙。儘管密碼 (Passcodes) 可以由不定長度的字母和數字組成,但 PIN 則只是固定長度的數字。在本篇,我們會來探討 PIN 碼的安全層面。
即使某些操作可以透過生物特徵解鎖(如 Face ID 或 Touch ID),但還是有很多動作必須透過 PIN 碼來完成。如果沒有 PIN 碼,除了手動分析,你幾乎無法使用其他取證方法。PIN 碼是連接電腦時必需輸入的,它是執行提取的基本資訊。甚至像 checkm8 這類的漏洞也需要 PIN 碼,因為沒有它,大部分的設備用戶資料都還是處於加密狀態。以下表格會列出使用生物特徵(Touch ID/Face ID)與 PIN 碼解鎖手機的差別。
採 Touch ID/Face ID 解鎖 | 採 PIN 解鎖 | |
---|---|---|
解鎖 BFU 狀態的裝置 | No | Yes |
解鎖 AFU 狀態的裝置 | 有時可以 | Yes |
AFU 裝置 | ||
與電腦連線 | No | Yes |
與已信任的電腦連線 | Yes | Yes |
透過電腦進行備份 | 已信任電腦並有 lockdown 檔案 | Yes |
存取多媒體檔案 | Yes | Yes |
檢視已儲存密碼 | Yes | Yes |
重置 iTunes 備份密碼 | No | Yes (若無 Screen Time 密碼) |
停用 iCloud lock | No | Yes |
使用 Apple Pay | Yes | Yes |
檔案系統提取 | No | Yes |
Keychain 提取 | No | Yes |
checkm8 提取 | No | Yes (除了 iOS 16+ A11 裝置) |
iCloud Keychain, 健康, 訊息 | No | Yes |
繞過USB限制模式 | 部分* | Yes |
* 儘管你能透過生物特徵解鎖手機並插入USB 配件,要和電腦配對還是得輸入PIN 碼。
風險評估
在數位鑑識調查的過程中,能夠找回 PIN 碼可能是取得設備裡資料的關鍵。但如果裝置啟用「清除資料」的選項,當你連續輸入錯誤的密碼超過 10 次(或更少),那麼裝置上所有的資料和設定都可能會被永遠地清除。Apple 表示:“若在「設定」>「Touch ID & Passcode」裡啟用了「清除資料」功能,連續輸入 10 次錯誤的密碼後,所有的資料和設定都會被刪除。不過,重覆輸入相同的錯誤密碼並不會累計計算次數。此設定也可透過支援該功能的 MDM 或 Microsoft Exchange ActiveSync 設定,並可以調整為更低的錯誤次數。”
當「清除資料」功能啟用時,試圖找回 PIN 碼風險相當大。鑑識人員在此時必須在取得證據的需求與永遠失去重要資料的風險之間找到平衡。所以,如果你打算試著猜出 PIN 碼,請確保不超過容許的錯誤嘗試次數。也就是說,你得清楚知道超過次數限制可能會帶來的後果,並且在嘗試破解密碼時格外小心。
還要注意,透過 MDM 或 Microsoft Exchange ActiveSync,你可以將「清除資料」的觸發值設得更低,這可能會使得試圖破解 PIN 碼而不失去資料的難度增加。
PIN 輸入速率限制
PIN 輸入速率限制
Apple 發表了一篇完整的文章,詳述螢幕鎖與密碼保護策略,該文中解釋了暴力破解攻擊如何受到逐漸加長的時間限制的阻撓。內文引述:在 iOS 和 iPadOS 系統中,為了更有效地避免密碼遭到暴力破解,當使用者在鎖定螢幕上輸入錯誤密碼後,系統會採用逐步延長的時間來限制再次嘗試,具體細節如下表列出。
嘗試次數 | 時間延遲限制 |
---|---|
1 – 4 次 | 無 |
5 次 | 1 分鐘 |
6 次 | 5 分鐘 |
7 – 8 次 | 15 分鐘 |
9 次 | 1 小時 |
對於有 Secure Enclave 的裝置,這些延遲時間是由 Secure Enclave 控制的。如果在等待過程中重啟,它仍會繼續等待,且當前的計時會重新計算。
隨著延遲時間的逐漸增長,想要破解所有 4 位數的密碼組合大概得花 416 天,而要嘗試所有 6 位數的密碼組合則需 114 年。這也表示,使用者能夠先嘗試一些常見的弱密碼,再試著使用一些可能從社交工程技巧中得知的 PIN 碼。
對於沒有 Secure Enclave 的裝置,例如 iPhone 5 和 5c,它們可以不受到逐漸增長的延遲時間影響,直接使用完整的密碼來解鎖。在這類裝置上,破解的速度可達每秒 13.6 次,所以只要 12 分鐘就能試遍所有 4 位數 PIN 的組合。但如果是 6 位數的 PIN,僅需時 21 小時。
Secure Enclave
Secure Enclave
所有現行的 Apple 裝置都搭載了名為 Secure Enclave Processor (SEP) 的安全輔助處理器。這意味著,即使某些設備存在漏洞(像是 iPhone 8、8 Plus 和 iPhone X,它們存在Bootloader 層的漏洞,允許攻擊者獲得最高權限),SEP 都能對 PIN 碼暴力破解進行限速。
值得一提的是,對於有 Secure Enclave,且存在 SEP 漏洞的裝置,某些安全限制可以被跳過。因此,在這類裝置上,密碼恢復的速度可能會大幅提升。根據不同的設備型號、初始狀態和 iOS 版本,破解的速度可能在每秒 30 個密碼到每分鐘 4 個密碼之間。目前為止,最新被發現存在漏洞的處理器是 Apple A13,這涵蓋了 iPhone 11 系列和 iPhone SE 第二代。
Andoird 裝置
Andoird 裝置
Android 裝置的安全架構與 Apple 有著明顯的區別。各家製造商都有自家的安全解決方案,除了我們熟知的 PIN 碼解鎖外,還有像圖案解鎖或者拼圖式的方法。而在裝置內部的架構上,這些方案也大相逕庭。對於 ARM 型號的裝置,TrustZone 提供了一個相似於 Apple 的 SEP 的受信任執行環境 (TEE)。TEE 有多種版本,其中許多都存在安全隱患。特別是裝有 MediaTek SoC 的設備,不管解鎖複雜度如何,都能直接提取和解密上面的使用者資料。而其他芯片的 Android 手機也存在多種已知的漏洞。但由於製造商、型號、硬體和韌體的多樣性,無法在單篇文章內講述所有細節。
不安全的 PIN 碼
不安全的 PIN 碼
不是所有的 PIN 碼都同樣安全。從 datagenetics.com 的 PIN 碼研究中我們可以知道,以下這二十組 PIN 碼佔了實際使用中的 PIN 碼的 26.83%:
PIN | 使用頻率 | |
---|---|---|
#1 | 1234 | 10.713% |
#2 | 1111 | 6.016% |
#3 | 0000 | 1.881% |
#4 | 1212 | 1.197% |
#5 | 7777 | 0.745% |
#6 | 1004 | 0.616% |
#7 | 2000 | 0.613% |
#8 | 4444 | 0.526% |
#9 | 2222 | 0.516% |
#10 | 6969 | 0.512% |
#11 | 9999 | 0.451% |
#12 | 3333 | 0.419% |
#13 | 5555 | 0.395% |
#14 | 6666 | 0.391% |
#15 | 1122 | 0.366% |
#16 | 1313 | 0.304% |
#17 | 8888 | 0.303% |
#18 | 4321 | 0.293% |
#19 | 2001 | 0.290% |
#20 | 1010 | 0.285% |
如果你完全不認識嫌疑人,最直觀的策略是先嘗試這些熱門的 PIN 碼。事實上,還有更多的常見 PIN 碼清單可以參考,例如在 github 上公開的。除了 Apple 官方的 4 位和 6 位不安全 PIN 清單外,研究者還根據數據制定了其他的清單,其中有的清單比 iOS 官方的要小(如只有 27 或 29 組 PIN 碼),而有的則要大得多(高達 2740 或 291,000 組)。想知道這些清單的詳細內容,可以參考「This PIN Can Be Easily Guessed」獲得更多相關資訊和下載連結。
# | 項目 | 來源 | PIN 馬長度 | 黑名單 |
---|---|---|---|---|
1 | iOS-4-digit | Apple iOS | 4-digit | 274 |
2 | iOS-6-digit | Apple iOS | 6-digit | 2,910 |
3 | DD-4-digit-27 | Top Amitay | 4-digit | 27 |
4 | DD-4-digit-2740 | Top Amitay | 4-digit | 2,740 |
5 | DD-6-digit-29 | Top RockYou | 6-digit | 29 |
6 | DD-6-digit-291000 | Top RockYou | 6-digit | 291,000 |
社交工程
社交工程
若完全不了解嫌疑人,那麼常見的 PIN 碼清單是個不錯的嘗試起點。但若你有嫌疑人的背景資訊,則首推的策略是先從最小組合的最常用 PIN 清單開始,再試試那些可能與嫌疑人有關的特定 PIN。這些可能的 PIN 包括:
印象深刻的年份(四位數):例如嫌疑人或他家庭成員的出生年份,或其他重大的紀念日。研究指出,1900 開頭的 PIN 碼比較常見,接著則是 2000 開頭的。 具記憶意義的日期,例如 MMYY、DDMM、MMYYYY 格式(四或六位數):這同樣包括各種日期格式的特殊日子。 家人或常聯絡的人的電話號碼部分,如開頭或結尾的四位數字。
創意或太有創意?
創意或太有創意?
有些密碼模式比其他的更受到大眾的喜愛和使用。比如說,「696969」這六位數的密碼或是「159753」(代表數字鍵盤上的X形狀)就相當常見。這些偏好背後可能有多種原因,多項研究如 datagenetics.com、arxiv.org 的 [2003.04868] 與 researchgate.net 的 PDF 報告都深入探討了這些模式。這些研究提供了有趣的分析,但事實上,大多數常用的 PIN 已經被公之於眾。攻破 iPhone 的密碼並不需要太多的創意。我們推薦以下的策略:
若對手機擁有者一無所知:
- 可以先從常用密碼名單入手。
若知道有關手機擁有者或其相關的某些資訊,則可以嘗試以下幾種策略:
- 嘗試短版的常用密碼名單。
- 考慮可能的重要年份、日期或是和電話號碼有關的密碼。
- 使用長版的常用密碼名單。
黑名單
黑名單
黑名單是列出不建議使用的密碼清單。有些黑名單會直接拒絕使用者設定黑名單內的密碼,而有些則只會發出警告但還是允許使用。根據 2020 年由 Philipp Markert 等人所做的研究,iOS 在其內建的非強制黑名單中,對於 4 位數的密碼有 274 組,而 6 位數的則有 2910 組。但研究者認為,這些黑名單在防止有意圖的密碼猜測攻擊時,其實效果有限。
不過,這些內建的黑名單代表了最常被大家使用的密碼。由於它們只是警告而非強制性的,所以嘗試這些清單上的密碼在某些情況下可能增加破解成功的機會。值得注意的是,這些 iOS 的內建黑名單中的密碼,其實在多數的「最常用密碼」列表中都可以找到。
引用來源與參考資訊:
- Analyzing iPhone PINs
- PIN number analysis (datagenetics.com)
- [2003.04868] This PIN Can Be Easily Guessed: Analyzing the Security of Smartphone Unlock PINs (arxiv.org)
- This PIN Can Be Easily Guessed (this-pin-can-be-easily-guessed.github.io)
- (PDF) On the Security of Smartphone Unlock PINs (researchgate.net)
- An analysis of chosen alarm code pin numbers & their weakness against a modified brute force attack (ecu.edu.au)
- Avian’s Blog: Analyzing PIN numbers (tablix.org)