
iOS 中的汽車鑰匙安全性
開發者可使用支援的 iPhone 與配對的 Apple Watch,提供安全的無鑰匙車輛存取功能。
車主配對
車主必須證明其對車輛的持有權(方式依車廠而異,通常需攜帶一或兩把實體鑰匙),並可透過汽車製造商 App、汽車製造商提供的電子郵件連結,或車輛選單開始配對流程。在所有情況下,車主都必須向 iPhone 提供一組機密的一次性配對密碼,該密碼用於透過 SPAKE2+ 通訊協定(採用 NIST P-256 曲線)建立安全配對通道,並建立 Global Platform SCP03 安全通道,以在裝置與車輛之間傳輸資料。使用 App 或電子郵件連結時,密碼會自動傳送到 iPhone,而從車輛開始配對時需要在其中手動輸入密碼。
在車主配對流程中,車輛會透過 SCP03 通道傳送要求,指示裝置的 Secure Element 產生一組橢圓曲線加密(ECC)密鑰組。車輛識別碼與車輛公用密鑰會安全地綁定至該密鑰組。裝置的公用密鑰(device.PK)會以 X.509 憑證格式傳回車輛,並附上可由汽車製造商根公用密鑰(root.PK)驗證的憑證鏈;該根公用密鑰在生產時即內嵌於車輛中。此流程可驗證並接受裝置的公用密鑰作為車主鑰匙。
裝置 Secure Element 中的車主鑰匙也會安全地將汽車製造商的 root.PK(由車輛透過 SCP03 通道提供)綁定至 device.PK,以支援鑰匙共享。
如果出於保險目的需要,每位車主的鑰匙皆須向汽車製造商伺服器註冊。裝置會將其 device.PK 憑證鏈傳送至鑰匙追蹤伺服器(KTS),KTS 會回傳簽章以確認註冊。裝置會在車主配對流程結束時,或在下一次與車輛進行標準交易時(請見下方),將該簽章提供給車輛;若 KTS 簽章驗證成功,車輛即會啟用該車主鑰匙。KTS 簽章密鑰為汽車製造商專屬。
鑰匙共享
傳送者的 iPhone 可透過任何通訊管道(例如電子郵件、iMessage、WhatsApp、WeChat 或 AirDrop)傳送邀請 URL,將鑰匙分享給符合資格的裝置。該 URL 會將接收者導向一個具隱私保護的信箱,此信箱位於轉送伺服器上,並依據 IETF 規範實作。隱私加密密鑰會以片段形式包含在分享 URL 中。
在此過程中,傳送者的 iPhone 會要求使用者進行認證(Face ID、Touch ID 或輸入密碼),以及符合 Optic ID、Face ID 和 Touch ID 的用途中所述的安全使用者意圖。傳送者的授權會暫時儲存在 Secure Element 中,並於接收者裝置回傳簽章要求時使用。
為提升安全性,在啟用共享鑰匙時,傳送者可要求接收者使用其汽車製造商所支援的其中一種啟用方式,或在接收者裝置上輸入密碼。
當接收者接受邀請後,其裝置會從轉送伺服器的信箱中擷取鑰匙建立資料,並依據 CCC Digital Key 規範建立數位鑰匙。在鑰匙建立流程中,該鑰匙會由傳送者進行簽章。接收者裝置會透過轉送伺服器,將鑰匙建立的憑證鏈傳回傳送者的 iPhone。接著,傳送者的 iPhone 會使用 Secure Element 中內建的 root.PK,驗證接收者鑰匙是否是依預期的憑證鏈建立。若驗證成功,傳送者的 iPhone 會簽署接收者裝置的 ECC 公用密鑰,並透過轉送伺服器將該簽章傳回接收者。該簽章的授權是透過使用先前儲存在 Secure Element 中的傳送者授權來完成。
鑰匙的權限與傳送者簽章,會在共享鑰匙首次於車輛上使用時提供給車輛(請參閱:標準交易)。權限包含以下內容:
存取層級:例如僅解鎖,或允許駕駛。
再次共享規則:例如不可再次共享、有限次數共享,或不限次數共享(以共享鏈長度計算)。
部分汽車製造商要求每一把共享鑰匙都必須向汽車製造商的伺服器註冊。若有此需求,接收者裝置會將其 device.PK 的憑證鏈傳送至汽車製造商的 KTS,KTS 會回傳一個簽章以確認註冊。接收者裝置會在與車輛進行第一次交易時,向車輛提供該簽章(請參閱:標準交易)。車輛會驗證該簽章;若 KTS 簽章驗證成功,便會啟用該共享鑰匙。這些簽章密鑰為汽車製造商專屬。
鑰匙刪除
鑰匙可透過以下方式刪除:
從鑰匙持有者的裝置
從車主的裝置
從具備適當授權的分享者裝置
從車輛內
在鑰匙持有者的 iPhone 上刪除鑰匙會立即生效,即使鑰匙正在使用中,或裝置未連線至網際網路亦然。
是否可在車輛上刪除鑰匙,取決於汽車製造商的規則,可能包含以下情況:
隨時
僅限車輛連線時
僅在實體鑰匙存在時(以避免使用者因無鑰匙而受困)
在上述所有情況中,於鑰匙持有者裝置或車輛上的刪除動作,都會回報至汽車製造商端的 KTS;KTS 會記錄已發行至車輛的鑰匙,用於保險用途。
車主與符合資格的使用者可在「Apple 錢包」中,於車鑰卡片背面的共享鑰匙持有者帳號列表中選取使用者,並使用請求者的專用密鑰(device.SK)簽署遠端終止請求,以要求刪除鑰匙。此要求首先傳送給汽車製造商,以取下車輛中的鑰匙。從車輛刪除鑰匙的條件由汽車製造商定義(如前述)。只有在鑰匙確實從車輛中移除後,汽車製造商伺服器才會向鑰匙持有者裝置傳送已簽章的遠端終止要求。
當鑰匙在裝置中終止時,管理數位汽車鑰匙的 Applet 將建立一個加密簽章的終止證明,該證明將被汽車製造商用作刪除證明,並用於從 KIS 移除鑰匙。
隱私權
汽車製造商的 KTS 不會儲存裝置 ID、SEID 或「Apple 帳號」。它只會儲存可變識別碼、即執行個體 CA 識別碼。該識別碼不會與裝置或伺服器中的任何私人資料綁定,且當使用者執行「清除所有內容與設定」時即會被刪除。
CCC 標準亦規定,KTS 資訊必須在汽車製造商端保持機密,僅能用於保險或其他符合資格的要求。
裝置傳送至 KTS 的鑰匙註冊資料(鑰匙識別碼、車輛識別碼、車輛公用密鑰、裝置公用密鑰憑證鏈、鑰匙授權權限)會使用 KTS 的隱私加密公用密鑰進行加密。Apple 伺服器在將鑰匙註冊資料從裝置轉送至汽車製造商伺服器的過程中,無法解密該資料。Apple 並不知道車主將汽車鑰匙分享給了哪些人。
任何無法向 iPhone 或 Apple Watch 進行裝置認證的其他配件,都無法透過 NFC 或藍牙的標準交易或快速交易取得穩定的識別碼。如果裝置無法辨識車輛識別碼(例如誤嘗試存取外觀與鑰匙持有者車輛相似的另一輛車),Secure Element 中的 Applet 會使用替代密鑰,產生隨機值,而非有意義的密鑰或密碼資料。
初始的藍牙連線會受到暫時性密鑰保護,該密鑰是在共享汽車鑰匙時提供,或由汽車製造商在回應鑰匙追蹤要求時對該藍牙連線進行保護。