偷到電信商資料庫就一定能複製出 SIM 卡?初窺 PUF-USIM 保護技術
| | 2 | |
上週聽到一則駭人聽聞的資安新聞:韓國最大電信業者 SK Telecom (SKT) 遭駭客入侵導致關鍵資料外洩,歹徒得以複製出一模一樣的 SIM 卡分身,跟原本的 SIM 同時宣稱自己是本尊。
若真假 SIM 卡手機同時開機,兩張 SIM 卡將互相搶占網路連線(電信廠商有機會偵測異常並同時停用);若被害者手機關機或未上線,則假 SIM 卡手機便能取而代之,接收認證簡訊,完成密碼重設、信用卡刷卡 OTP 確認等程序。若駭客同時掌握姓名、身分證號、銀行帳號等個資,加上能收簡訊,在一些線上身分驗證流程裡幾乎可以完美扮演被害人~ 超可怕。
查了資料才知因為手機傳輸協定的限制,SIM 卡使用的是對稱式金鑰加密,依我的理解,即便使用 SIM 卡有 HSM 保護,同樣的金鑰必須交給電信商才能解密。有讀者提到了 PUF,而我也查到有所謂 PUF-USIM 技術能防止 SIM 卡複製。
SIM 硬體離我平常接觸的領域甚遠,但因為實在太好奇了,又跟個人切身資安議題有關,在 Perplexity 及 Google 的幫助下,我試著了解一二。
【聲明】以下屬外行人參考網路資料的不專業解讀,不保證正性確,各方先進前輩如發現謬誤,請再指正。
若沒興趣看技術細節,這裡先說結論 - 即使行動通信因對稱式金鑰由 SIM 與電信共享存在兩邊都可能洩漏的雙重風險,但運用電子物理特性與認證協定改良等技術革新,確實可做到「即便電信商資料外洩,也無法複製出相同 SIM」。即使資料外洩,電信廠商用對技術,仍能有效防止 SIM 卡被複製門號被冒用。
疑問點:對稱式金鑰的原罪
GSM/UMTS 系統的 Ki 金鑰為 128 位元對稱金鑰,存在理論缺陷:相同的 Ki 金鑰同時儲存在用戶 SIM 卡與電信業者的 Home Location Register(HLR) 及認證中心(AuC),形成雙重風險。
這意味著攻擊者除了透過物理方式側錄 SIM 卡,即使 SIM 卡成功守住,一旦 AuC 或 SIM 製造商資料外流,駭客還是能複製 SIM 卡,兩邊都可能導致 SIM 卡被複製。
我一直以為除非引入非對稱加密,這問題幾近無解,因此格外好奇 PUF-USIM 是如何實現防止複製。
行動通信的認證與加密
先花點時間了解行動通信的認證與加密實作方式。行動通信協定從 2G/3G/4G 到 5G 認證與加密概念相近,整理如下:
2G GSM 之身分認證與加密 參考
- Ki (Individual Subscriber Authentication Key)
為 128 位元共享金鑰,儲存在 SIM卡 與 HLR/AuC 中,用於生成 SRES 簽名響應與 Kc 會話金鑰鑰,終身綁定用戶身份,永不直接在網路傳輸 - RAND (Random Challenge)
128 位元隨機數,由 AuC/HLR 生成,用以生成動態安全參數,每次認證使用不同值,防止 Replay 攻擊 - SRES (Signed Response)
32 位元簽名回應,由 A3 算法生成,SRES = A3(RAND, Ki),用於驗證身分 - Kc (Ciphering Key)
64 位元會話金鑰,由 A8 算法產生,Kc = A8(RAND, Ki),用於加密無線頻道語音與數據(使用 A5 演算法加密)
3G UMTS 採 AKA (Authentication and Key Agreement) 雙向認證機制(不只 SIM 向網路證明身分,基地台也要向 SIM 證明非偽造)。
AKA 的長期金鑰稱為 K (GSM Ki 的延伸),認證向量包含 RAND(隨機數)、XRES(期望回應值 Expected Response)、CK(加密金鑰 Cipher Key)、IK(完整性金鑰 Integrity Key)、AUTN(認證令牌 Authentication Token),演算法為 f1 ~ f5 (基於 AES),流程為:
- 網路端發送 RAND、AUTN 給手機
- 手機用內建 K 和收到的 RAND、AUTN 驗證網路真偽(檢查 AUTN 是否正確)
- 手機若驗證通過,計算 RES回傳網路
- 網路端比對 RES 與預先計算的 XRES 是否一致,認證用戶。
4G LTE 採用 EPS-AKA (Evolved Packet System AKA),基本沿用 4G 的雙向認證與金鑰衍生流程,但細節有調整,認證向量多了 KASME(核心網金鑰)。
這裡不深入細節,只把握兩個重點:
- 對稱金鑰 Ki/K 加密 RAND 產生 SRES/XRES 用來認證用戶端身分
- 完成驗證後,Ki/K 再配合 RAND 動態產生當次通信專用的會話金鑰
識別冒牌 SIM 卡的關鍵在第一點,只要確保複製 SIM 無法產生有效的 SRES/XRES,在認證階段被擋下後面就沒戲了。
突破點 - PUF 技術
PUF 是 Physical Unclonable Function 的縮寫,物理不可複製功能意指利用半導體製程中微觀隨機性硬體特徵產生唯一金鑰,實現無法重現及複製。延伸閱讀:物聯網世代資安保護的熱門選擇——新型「加密金鑰」PUF 技術、PUF 晶片上的物理不可複製功能
半導體製程不可避免存在一些隨機變數,導致晶片在微觀結構存在些許差異,由於變數無法預測及控制,故這些差異形同晶片的指紋,確保不可能做出一模一樣的晶片。而這個特性可以用來取代將金鑰存進晶片的傳統做法。
掌握「接收 Chanllege 資料產生的 Response 會因晶片微小物理差異而不同」的特性,每塊晶片對同一個 Challenge 產生的 Response 都不同,在註冊時預先對晶片進行 Challenge/Response 運算,蒐集這些 Challenge-Response Pair (CRP) 存入 AuC 資料庫。當需要認證時,取出預先保存的 CRP,送出 Challenge,PUF 晶片產生 Response 回傳,AuC 比對是否跟 CRP 中的 Response 一致,便可確定晶片身分。用這套機制取代原本用 Ki 跟 RAND 計算 SRES 的做法,就不會因為 Ki 外流導致 SIM 卡被複製。
如要提升安全性,可產生多組 CRP,每組用過就作廢,社絕被監聽竊取利用的風險;或是也可以每次認證成功便產生新的 CRP,降低 AuC 端 CRP 資料被竊取盜用。
USIM 是什麼?
多年下來,SIM 卡或 UICC(通用積體電路卡)的物理尺寸一直在縮小,原始 SIM、Mini-SIM、Micro-SIM 和 Nano-SIM 卡都是可拆卸的 UICC,而最新趨勢是採用 eSIM 直接嵌入到設備中。而這篇說的 USIM 相對於 eSIM,用來強調「可拆卸的 UICC 智慧卡」。
(其實挺莫名其妙的,SIM 卡原本就可拆卸,後來出了 eSIM 強調嵌入,結果原本的 SIM 再改成 USIM 強調可拆卸,花惹...)
PUF-USIM
ICTK Holdings 與 LG U+ 於 2023 年提出 PUF-USIM 解決方案,靠著一些特性實現無法複製:
- 物理指紋式金鑰生成機制
透過半導體製程不可控制且無法預測的隨機 Via 或 Contact 形成獨特特徵,決定設備唯一金鑰。此一金鑰值在製造階段隨機生成(Inborn),非事後才注入(Inject)或可修改(意思是出廠時決定,沒法事後燒錄修改也無法指定),它只在晶片啟動時暫時保留在暫存器中,沒有儲存點,無從竊取。 - 無金鑰注入流程
PUF 採「內生金鑰」(Inborn Key),晶片在製造階段自我生成唯一金鑰,晶片製造廠商無法預測或複製,不存在供應鏈外流風險。而傳統 USIM 卡是在「金鑰配置」(Key P:rovisioning) 過程中「注入」(Inject)金鑰,此一程序需要極嚴格的安全隔離環境,如管控不當極易形成安全漏洞。
綜觀以上整理,PUF-USIM 確實能有效防止 SIM 卡被複製;而用 CRP 取代用 Ki + RAND 計算 SRES 的想法,搭配 HSM、eSIM 等能永久鎖住金鑰只給運算結果的硬體,一樣可以做法無法複製。而即使資料外洩,只要用對技術,仍能有效防止 SIM 卡被複製門號被冒用。
Comments
# by 小吳
黑哥甚麼都會
# by 樂透無名
看不懂,來記下網址下次再看 太強大