無源汽車防盜系統(tǒng)設計與安全性的考慮事項
Key Learn: 公開/ 私密
Key Learn協(xié)議是指使汽車設立密鑰,并與密鑰卡共享之的過程??梢愿鶕?jù)汽車發(fā)起的Key Learn會話的限制與安全設置,密鑰是公開的或私密的。
一個公開的Key Learn進程一般包含以下 (以及圖8所示) 步驟:
1) 汽車根據(jù)隨機數(shù)產生一個密鑰,并提交給密鑰卡
2) 密鑰卡“接受”密鑰,保存在存儲器中,并做出應答 (acknowledgment) 響應
3) 在成功接收到密鑰卡的應答之后,汽車把密鑰保存在存儲器中
如果Key Learn協(xié)議無法阻止竊聽者,或保護汽車不被非法使用,這時就需要采用私密Key Learn 進程。
圖8 公開的Key Learn
雙向或準交互式驗證
準交互式或雙向驗證是一種更為復雜的驗證過程。愛特梅爾防盜系統(tǒng)中實現(xiàn)的并非完全交互式的驗證,因為它并沒有在系統(tǒng)兩端 (汽車和密鑰卡) 使用隨機發(fā)生器。這種實現(xiàn)方案使用一個消息驗證代碼 (Message Authentication Code, MAC) 來驗證汽車與鑰匙是否匹配。
而且,在雙向驗證的情況下,驗證協(xié)議由汽車發(fā)起,包含以下(以及圖9所示)步驟:
1) 汽車讀取密鑰卡的唯一ID
2) 汽車產生一個隨機數(shù)詢問 ,并發(fā)送給密鑰卡
3) 汽車對隨機數(shù)進行加密,然后附加在詢問上
4) 密鑰卡對詢問進行加密 (利用密鑰 1) ,并將之與接收到的加密詢問進行比較 (MAC)
5) 如果結果匹配,密鑰卡加密之 (利用密鑰2) ,并向汽車發(fā)送應答
6) 汽車對密鑰卡的 應答與自己計算的應答進行比較(使用相同的密鑰和詢問)
圖9 雙向驗證
加密層
最頂層是加密層。這一層包含了把純文本信息轉換為加密信息的數(shù)學函數(shù)。這種函數(shù)最理想的應該具有兩種特性:
1. 唯一性:對于每一個純文本輸入,必須對應一個獨一無二的加密文本輸出
2. 不可預知性:純文本至加密文本對必須是無法預測的,即使有已知純文本至加密文本對大樣本供分析。
公開與私密
私密加密算法已流行多年。不過,私密算法有若干不足之處:A) 算法強度不確定;B) 缺乏關鍵的代碼對等評測機制的制約;C)若算法泄漏,可能導致大范圍安全性受損。 近年來,有不少矚目的例子陸續(xù)被報道,足以說明這些缺點的存在。更引人注目的缺點也許是系統(tǒng)缺乏互操作性,不能共享同一個物理和邏輯層。這一點有礙于基本的市場競爭力,而且在很多情況下促使了系統(tǒng)成本的上升。
為解決這些問題,人們開始轉而接受公共域加密算法 ── 高級加密標準 (常常被稱為AES)。這種算法源于1997年美國國家標準技術研究所 (NIST) 發(fā)起的征集公共域加密算法的倡議。那一年共產生了15個候選算法,并都經(jīng)過了加密研究領域的嚴格評測 (critical review)。這種評測分析包括對每一種算法的安全性和效率的評測。NIST 從15 個候選算法里選中了4 個,然后進入第二輪公開評測,最終在2000年選出了AES算法。
正如我們現(xiàn)在所了解的,AES是一種對稱分組密碼,使用128位的純文本輸入和128位的密鑰,產生128位的加密輸出。由于這種對稱特性,AES也可以反向操作,利用加密輸出和密鑰,找出并提取原始純文本輸入。
評論