無源防盜系統(tǒng)軟硬件設(shè)計(jì)與關(guān)鍵考慮事項(xiàng)
多年來,消費(fèi)者已習(xí)慣于依賴無源汽車防盜系統(tǒng)提供的便利性和加強(qiáng)的安全性。這種系統(tǒng)由駕駛員隨身攜帶的密鑰卡 (key fob) 與安裝在汽車?yán)锏幕窘M成。兩者協(xié)同工作,可判斷駕駛員是否有權(quán)啟動(dòng)汽車;而更重要的是,系統(tǒng)能夠阻止非法用戶使用汽車。雖然表面看來汽車防盜器的功能性很簡單,但其基本實(shí)現(xiàn)技術(shù)卻十分復(fù)雜有趣。本文探討了汽車防盜器的硬件和軟件問題,并就設(shè)計(jì)和安全性方面的考慮事項(xiàng)給出了頗值得關(guān)注的評(píng)述。
目前在無源汽車防盜系統(tǒng)中,密鑰卡與汽車之間的主要通信方法是利用調(diào)制磁場,這個(gè)磁場由汽車的防盜器基站從低頻 (一般為125 kHz) 交流電產(chǎn)生。該磁場的主要用途有三個(gè):A) 密鑰卡的能量來源,故有“無源” (passive) 之稱;B) 從基站向密鑰卡 (即“下行鏈路”) 傳輸信息的載波;C) 從密鑰卡向基站 (即“上行鏈路”)傳輸信息的載波。
由于汽車防盜系統(tǒng)需要完全無源 (如無電池) 地工作,所以密鑰卡的磁場特性特別適合這種應(yīng)用?!跋滦墟溌贰眻鰴z測(cè)和“上行鏈路”場調(diào)制都可以利用耗電量極小的電路來實(shí)現(xiàn)。此外,利用飽和磁場的場能來為密鑰卡中的這些電路供電比較容易實(shí)現(xiàn)。
在系統(tǒng)設(shè)計(jì)階段,必須仔細(xì)考慮一些關(guān)鍵的參數(shù),比如密鑰卡的能量要求 (會(huì)影響到天線線圈的幾何形狀和驅(qū)動(dòng)電平),以及驗(yàn)證過程的安全性 (對(duì)響應(yīng)時(shí)間有直接的影響)。下面將逐一對(duì)此進(jìn)行詳細(xì)闡述。
系統(tǒng)接口
汽車防盜器的系統(tǒng)架構(gòu)分為若干提取層,其中每一層代表不同的系統(tǒng)接口。圖1所示為這些分層的直觀表示。
圖1 汽車防盜器接口分層
物理層
汽車防盜系統(tǒng)的最底層是物理層,包含一個(gè)安裝在車上的天線線圈,能夠產(chǎn)生足夠的磁場,讓安裝在用戶密鑰卡中的天線線圈檢測(cè)與調(diào)制得到。
磁場產(chǎn)生與調(diào)制
根據(jù)磁場支持?jǐn)?shù)據(jù)傳輸?shù)姆绞讲煌?,汽車防盜系統(tǒng)可分為兩類:半雙工和全雙工。在半雙工系統(tǒng)中,車載天線線圈在能量傳輸和數(shù)據(jù)傳輸周期之間更替,而數(shù)據(jù)調(diào)制采用頻移鍵控 (FSK) 方式。這種通信方法的圖解如圖2所示。從圖2可明顯看出兩點(diǎn):其一,由于需要反復(fù)執(zhí)行能量傳輸,如為密鑰卡充電,數(shù)據(jù)傳輸率大打折扣;其二,相比能量傳輸期間的磁場,被調(diào)制信號(hào)極小,因此其更容易受到周圍環(huán)境噪聲的干擾,導(dǎo)致傳輸距離減小。這些特性使得半雙工系統(tǒng)逐漸式微。
目前主要使用的是全雙工系統(tǒng)。在這種系統(tǒng)中,車載天線線圈同步執(zhí)行能量傳輸和數(shù)據(jù)傳輸,而數(shù)據(jù)調(diào)制采用幅移鍵控 (ASK) 方式。圖3所示為這種通信方法的圖解。顯然,由于能夠同步進(jìn)行數(shù)據(jù)傳輸和密鑰卡供能或充電,這種方法的數(shù)據(jù)傳輸率大大優(yōu)于半雙工系統(tǒng)。而且,恒定的載波場往往還可以屏蔽掉干擾,在數(shù)據(jù)傳輸期間確保通信的穩(wěn)健可靠。此外,這種方案可以采用簡單的包絡(luò)檢波電路來實(shí)現(xiàn)。鑒于目前市面上全雙工汽車防盜系統(tǒng)的流行,下面將專門討論這類系統(tǒng)。
系統(tǒng)接口:邏輯層
物理層上面是邏輯層。這一層涉及磁場上數(shù)據(jù)傳輸和編碼的特性及要求。它適用于從汽車到密鑰卡 (通常被稱為“下行鏈路”),以及從密鑰卡到汽車的雙向數(shù)據(jù)傳輸 (被稱為“上行鏈路”)。
下行鏈路
下行鏈路的信息采用脈沖長度調(diào)制方法:一般是二進(jìn)制脈沖長度調(diào)制 (BPLM) 或 Quad 脈沖長度調(diào)制 (QPLM))來進(jìn)行編碼。這種方法基于插入一個(gè)長度固定的載波場時(shí)隙“Tgap”,并設(shè)置時(shí)隙到時(shí)隙的時(shí)間間隔,以預(yù)先確定次數(shù):T0 對(duì)應(yīng)于邏輯“0”,T1 對(duì)應(yīng)于邏輯“1”。這種方案的好處是它把從汽車到密鑰卡的能量傳輸嵌入到數(shù)據(jù)編碼中,并確保密鑰卡有足夠的供能用于處理被編碼的數(shù)據(jù)。不過,這種編碼方法也有一個(gè)缺點(diǎn),那就是數(shù)據(jù)傳輸波特率必須依賴于正在發(fā)送的數(shù)據(jù)位流的邏輯值,因?yàn)槊恳粋€(gè)二進(jìn)制狀態(tài)的傳輸時(shí)間都是不同的。圖4給出了這種編碼方法的更詳盡的圖解。
圖4 BPLM編碼方法
QPLM 是BPLM 的一種變體。利用這種調(diào)制方法, 一個(gè)時(shí)隙后傳輸兩個(gè)比特位,于是在收發(fā)器端有更多的能量可用。此外,其平均波特率比BPLM的高。除了允許的狀態(tài)數(shù)目從2擴(kuò)展到4,而預(yù)定的時(shí)隙間隔被擴(kuò)展以覆蓋更多的狀態(tài)之外,這種編碼方法與BPLM的基本實(shí)現(xiàn)原理是相同的。圖5所示為QPLM的直觀表示。
圖5 QPLM編碼方法
上行鏈路
從用戶密鑰卡到車載基站的信息通信一般采用曼徹斯特 (Manchester) 或雙相 (Bi-phase) 編碼。這些編碼方法都共有一些不同于下行鏈路的特性:A) 被編碼位流的平均占空比總是為50%;B) 發(fā)送被編碼數(shù)據(jù)的時(shí)間只依賴于波特率。上述兩種編碼技術(shù)都能夠從被編碼數(shù)據(jù)流中提取時(shí)鐘,這是因?yàn)榫幋a位流中的所有時(shí)間段都被量子化為T 或 2T (T 表示 “半個(gè)比特位”)。數(shù)據(jù)率固定為1/(2T)。時(shí)鐘提取只需要檢測(cè)最小時(shí)間段因子T,并使其相位與被編碼的位流同步即可。
圖6 曼徹斯特 (Manchester) 和雙相 (Bi-phase) 編碼
協(xié)議層
協(xié)議層定義各個(gè)數(shù)據(jù)位的分組,以實(shí)現(xiàn)車載基站和密鑰卡之間的通信。它定義有多少個(gè)比特位,以及它們按什么順序在讀取器和收發(fā)器之間進(jìn)行傳輸。打個(gè)簡單的比方,這就類似于使用單詞構(gòu)成句子的語法規(guī)則。協(xié)議層就象由邏輯層構(gòu)成的句子,而邏輯層則相當(dāng)于單詞。它形成一組固定的命令及其允許的應(yīng)答。
驗(yàn)證
驗(yàn)證是用來描述判斷駕駛員是否有權(quán)啟動(dòng)汽車這一個(gè)過程的術(shù)語。最簡單的驗(yàn)證形式被稱為單向驗(yàn)證 (unilateral authentication),這種情況下,汽車對(duì)密鑰卡進(jìn)行“測(cè)試”,以確定它是否與汽車匹配。若在這一過程中再增加一個(gè)步驟,即讓鑰匙也對(duì)汽車進(jìn)行“測(cè)試”,判斷其是否匹配,這時(shí)就成為了雙向或交互式驗(yàn)證。顯然,增加的這一步驟提高了安全強(qiáng)度,不過代價(jià)是驗(yàn)證時(shí)間延長。
單向驗(yàn)證
一般而言,單向驗(yàn)證協(xié)議由汽車發(fā)起,并包含以下幾個(gè)步驟:
1) 汽車讀取密鑰卡的唯一ID (不會(huì)與密鑰混淆)
2) 汽車產(chǎn)生一個(gè)隨機(jī)數(shù)詢問(challenge),并發(fā)送給密鑰卡
3) 密鑰卡對(duì)詢問進(jìn)行加密(使用密鑰),然后向汽車發(fā)送應(yīng)答(response)
4) 汽車對(duì)密鑰卡的應(yīng)答與自己計(jì)算的應(yīng)答進(jìn)行比較 (使用相同的密鑰和詢問)
注:汽車必須擁有密鑰卡的密鑰,這一過程才能成功完成。共享密鑰的過程被稱為“Key Learn”,下一節(jié)將詳細(xì)闡述。
圖7 單向驗(yàn)證
Key Learn: 公開/ 私密
Key Learn協(xié)議是指使汽車設(shè)立密鑰,并與密鑰卡共享之的過程。可以根據(jù)汽車發(fā)起的Key Learn會(huì)話的限制與安全設(shè)置,密鑰是公開的或私密的。
一個(gè)公開的Key Learn進(jìn)程一般包含以下 (以及圖8所示) 步驟:
1) 汽車根據(jù)隨機(jī)數(shù)產(chǎn)生一個(gè)密鑰,并提交給密鑰卡
2) 密鑰卡“接受”密鑰,保存在存儲(chǔ)器中,并做出應(yīng)答 (acknowledgment) 響應(yīng)
3) 在成功接收到密鑰卡的應(yīng)答之后,汽車把密鑰保存在存儲(chǔ)器中
如果Key Learn協(xié)議無法阻止竊聽者,或保護(hù)汽車不被非法使用,這時(shí)就需要采用私密Key Learn 進(jìn)程。
圖8 公開的Key Learn
[next]
雙向或準(zhǔn)交互式驗(yàn)證
準(zhǔn)交互式或雙向驗(yàn)證是一種更為復(fù)雜的驗(yàn)證過程。愛特梅爾防盜系統(tǒng)中實(shí)現(xiàn)的并非完全交互式的驗(yàn)證,因?yàn)樗]有在系統(tǒng)兩端 (汽車和密鑰卡) 使用隨機(jī)發(fā)生器。這種實(shí)現(xiàn)方案使用一個(gè)消息驗(yàn)證代碼 (Message Authentication Code, MAC) 來驗(yàn)證汽車與鑰匙是否匹配。
而且,在雙向驗(yàn)證的情況下,驗(yàn)證協(xié)議由汽車發(fā)起,包含以下(以及圖9所示)步驟:
1) 汽車讀取密鑰卡的唯一ID
2) 汽車產(chǎn)生一個(gè)隨機(jī)數(shù)詢問 ,并發(fā)送給密鑰卡
3) 汽車對(duì)隨機(jī)數(shù)進(jìn)行加密,然后附加在詢問上
4) 密鑰卡對(duì)詢問進(jìn)行加密 (利用密鑰 1) ,并將之與接收到的加密詢問進(jìn)行比較 (MAC)
5) 如果結(jié)果匹配,密鑰卡加密之 (利用密鑰2) ,并向汽車發(fā)送應(yīng)答
6) 汽車對(duì)密鑰卡的 應(yīng)答與自己計(jì)算的應(yīng)答進(jìn)行比較(使用相同的密鑰和詢問)
圖9 雙向驗(yàn)證
加密層
最頂層是加密層。這一層包含了把純文本信息轉(zhuǎn)換為加密信息的數(shù)學(xué)函數(shù)。這種函數(shù)最理想的應(yīng)該具有兩種特性:
1. 唯一性:對(duì)于每一個(gè)純文本輸入,必須對(duì)應(yīng)一個(gè)獨(dú)一無二的加密文本輸出
2. 不可預(yù)知性:純文本至加密文本對(duì)必須是無法預(yù)測(cè)的,即使有已知純文本至加密文本對(duì)大樣本供分析。
公開與私密
私密加密算法已流行多年。不過,私密算法有若干不足之處:A) 算法強(qiáng)度不確定;B) 缺乏關(guān)鍵的代碼對(duì)等評(píng)測(cè)機(jī)制的制約;C)若算法泄漏,可能導(dǎo)致大范圍安全性受損。 近年來,有不少矚目的例子陸續(xù)被報(bào)道,足以說明這些缺點(diǎn)的存在。更引人注目的缺點(diǎn)也許是系統(tǒng)缺乏互操作性,不能共享同一個(gè)物理和邏輯層。這一點(diǎn)有礙于基本的市場競爭力,而且在很多情況下促使了系統(tǒng)成本的上升。
為解決這些問題,人們開始轉(zhuǎn)而接受公共域加密算法 ── 高級(jí)加密標(biāo)準(zhǔn) (常常被稱為AES)。這種算法源于1997年美國國家標(biāo)準(zhǔn)技術(shù)研究所 (NIST) 發(fā)起的征集公共域加密算法的倡議。那一年共產(chǎn)生了15個(gè)候選算法,并都經(jīng)過了加密研究領(lǐng)域的嚴(yán)格評(píng)測(cè) (critical review)。這種評(píng)測(cè)分析包括對(duì)每一種算法的安全性和效率的評(píng)測(cè)。NIST 從15 個(gè)候選算法里選中了4 個(gè),然后進(jìn)入第二輪公開評(píng)測(cè),最終在2000年選出了AES算法。
正如我們現(xiàn)在所了解的,AES是一種對(duì)稱分組密碼,使用128位的純文本輸入和128位的密鑰,產(chǎn)生128位的加密輸出。由于這種對(duì)稱特性,AES也可以反向操作,利用加密輸出和密鑰,找出并提取原始純文本輸入。
系統(tǒng)安全性考慮事項(xiàng) – 攻擊及防范對(duì)策
目前有一個(gè)普遍的誤解,即誤以為汽車防盜系統(tǒng)的安全性取決于加密算法的強(qiáng)度。雖然加密算法的強(qiáng)度是很重要,但其本身并不能決定整個(gè)系統(tǒng)的抗攻擊能力。防盜系統(tǒng)中的每一個(gè)接口、算法、協(xié)議、邏輯和物理特性,均影響著系統(tǒng)的總體安全性,都應(yīng)該予以研究與增強(qiáng),以提高系統(tǒng)的抗攻擊性。
算法安全性及防范對(duì)策
如前所述,加密算法必須擁有唯一及不可預(yù)測(cè)的特性。以AES為例,算法的詳細(xì)工作原理對(duì)公眾是完全公開的,因此,它已經(jīng)過了研究領(lǐng)域的嚴(yán)格評(píng)測(cè)。這是迄今最好的防范對(duì)策。到目前為止,科學(xué)研究已確認(rèn)該算法的強(qiáng)度,而且經(jīng)得起超過10年的時(shí)間考驗(yàn)。然而,在私密算法的情況下,研究領(lǐng)域不可能進(jìn)行科學(xué)分析,這些算法的強(qiáng)度究竟如何是不可知的。事實(shí)上,其中許多算法都無法經(jīng)受得起時(shí)間的考驗(yàn),而且近年來它們的缺點(diǎn)也暴露了出來。
協(xié)議安全性及防范對(duì)策
在使用單向驗(yàn)證的系統(tǒng)中,對(duì)協(xié)議層的攻擊一般是采用“掃描式”或“字典式”方法。在“掃描式”攻擊中,攻擊者從汽車端接收到一個(gè)“詢問”(challenge),再返回一個(gè)隨機(jī)值作為應(yīng)答。如果協(xié)議包含56位應(yīng)答,則比特位安全性為256,即獲得一個(gè)正確的“詢問-應(yīng)答”配對(duì)需要256次嘗試。為了防止這類攻擊,可以考慮采用以下措施:
提高應(yīng)答的位長度 (bit length),以增加復(fù)雜性
讓汽車嵌入的連續(xù)性失敗嘗試之間的時(shí)限指數(shù)級(jí)增長
在一定次數(shù)的連續(xù)性嘗試失敗之后,讓汽車拒絕嘗試
在“字典式”攻擊中,攻擊者通過與收發(fā)器直接通信來收集正確的詢問 (從攻擊者) 應(yīng)答 (從密鑰卡) 配對(duì)。這些“詢問-應(yīng)答”配對(duì)被放在查找表或“字典”中,供以后參考。配備了這種字典后,攻擊者就觸發(fā)汽車發(fā)出詢問,然后在字典中搜索相應(yīng)的正確應(yīng)答。若協(xié)議包含100位應(yīng)答,則需要251次嘗試即獲得一個(gè)正確的詢問-應(yīng)答對(duì)?!吧浙U摗?(Birthday paradox) 表明在2n/2 個(gè)記錄的“詢問-應(yīng)答”配對(duì)和2n/2 次嘗試之后,獲得正確結(jié)果的概率為0.5。由此可知,這種攻擊的總體復(fù)雜性為2n/2+1 = 251。這種情況下應(yīng)該考慮的防范對(duì)策為:
提高詢問的位長度,以增加復(fù)雜性
采用雙向驗(yàn)證協(xié)議
物理/邏輯安全性及防范對(duì)策
近年來,攻擊手段日趨復(fù)雜先進(jìn)。“邊信道”攻擊,比如簡單功耗分析 (SPA) 和差分功耗分析 (DPA) 及其它“入侵式”攻擊,已被成功用來提取密鑰卡的密鑰。這些所謂的邊信道攻擊測(cè)量和評(píng)估加密設(shè)備的耗電量,再結(jié)合純文本密碼文本方面的知識(shí),即可提取出一個(gè)其它的密鑰。這些方法的基本理論相當(dāng)復(fù)雜,超出了本文的范圍。防御上述邊信道攻擊的最強(qiáng)有力措施包括:
時(shí)鐘頻率和運(yùn)行隨機(jī)化
數(shù)字控制和加密工作交錯(cuò)進(jìn)行
“入侵式”攻擊著眼于硅芯片上與加密相關(guān)的電路的物理實(shí)現(xiàn)方案。只要在設(shè)計(jì)流程初期即考慮到防范對(duì)策,最佳防御手段的實(shí)現(xiàn)相當(dāng)簡單。下面是可以考慮使用的一些步驟實(shí)例:
存儲(chǔ)塊的金屬屏蔽
采用非標(biāo)準(zhǔn)綜合庫
加密期間搶奪所用關(guān)鍵數(shù)字元素的位置
若發(fā)生嘗試入侵情況,限制存儲(chǔ)器訪問和自動(dòng)芯片擦除功能
系統(tǒng)性能的考慮事項(xiàng)
耗電量
系統(tǒng)性能涉及不同的方面。其一是密鑰卡的功耗,這個(gè)參數(shù)直接關(guān)系到可獲得的密鑰卡與車載基站之間的通信距離。汽車制造商和領(lǐng)先供應(yīng)商往往強(qiáng)調(diào)耦合因子的重要性,將之視為一項(xiàng)關(guān)鍵參數(shù)。然而,它描述的主要是密鑰卡天線和車載基站天線之間的機(jī)械尺寸的關(guān)系。該參數(shù)只對(duì)給定系統(tǒng)配置有效,并取決于天線的電感、Q因子、驅(qū)動(dòng)電流、讀取器靈敏度,以及點(diǎn)火鎖芯材料。有鑒于此,單獨(dú)用該參數(shù)來比較不同系統(tǒng)的性能是不夠的。其實(shí),除耦合因子之外,同樣重要的還有耗電量,尤其是考慮到密鑰卡在無源無電池的環(huán)境中工作,能量需從磁場采集,并存儲(chǔ)在很小的電容中,因此耗電量十分受限。通過選擇超低功耗的系統(tǒng)組件,與能夠利用均衡軟件進(jìn)行編程的微控制器 (盡可能讓微控制器進(jìn)入睡眠模式),工程師就能夠克服前面提到的需要高耦合因子來補(bǔ)償密鑰卡的大電流這一系統(tǒng)缺陷。
驗(yàn)證響應(yīng)時(shí)間
防盜系統(tǒng)中的另一個(gè)重要因子是從轉(zhuǎn)動(dòng)插入門鎖的密鑰卡到引擎啟動(dòng)所需的時(shí)間。這個(gè)時(shí)間應(yīng)該足夠短到讓駕駛員感覺不到延時(shí)。根據(jù)系統(tǒng)的機(jī)械和電氣設(shè)計(jì),以及一個(gè)人插入和轉(zhuǎn)動(dòng)鑰匙的速度情況,該時(shí)間預(yù)算一般應(yīng)該在300ms 到 500ms之間。這個(gè)預(yù)算中相當(dāng)大一部分被消耗在機(jī)械和車身控制模塊的開銷上;而剩下的100ms到 200ms則用于驗(yàn)證過程。在速度和安全性方面,一個(gè)不錯(cuò)的折衷方法是采用詢問位長度為100位,應(yīng)答長度為56位的雙向驗(yàn)證。在大多數(shù)系統(tǒng)中,這會(huì)把應(yīng)答時(shí)間降至100ms以下。
錯(cuò)誤處理
為防止驗(yàn)證因任何原因失敗,現(xiàn)在的系統(tǒng)需要完整的驗(yàn)證周期才能重新從頭啟動(dòng),且在一定時(shí)間內(nèi)最多只允許3次重試。愛特梅爾的重試策略稍有不同,它可以使系統(tǒng)從通信錯(cuò)誤中更快地恢復(fù)過來。所有命令和可選數(shù)據(jù)都采用循環(huán)冗余碼校驗(yàn) (CRC) 來保護(hù)。密鑰卡和基站都利用CRC來檢測(cè)錯(cuò)誤,并把這些狀態(tài)信令給各自的通信伙伴,這就使基站可以選擇重復(fù)信息的數(shù)量、最后行為、最后應(yīng)答或最后命令。這種特性可實(shí)現(xiàn)更快的通信恢復(fù),而且在相同的時(shí)間內(nèi)允許更多次的通信恢復(fù)嘗試 (5-7次重試,而不只是3次)
總結(jié)
通過選擇能夠滿足汽車市場的安全性和性能目標(biāo),并且支持高度可配置的開源防盜器軟件堆棧的系統(tǒng)組件,可以大大簡化開發(fā)一個(gè)穩(wěn)健汽車防盜系統(tǒng)的任務(wù)。作為汽車準(zhǔn)入解決方案的領(lǐng)導(dǎo)廠商,愛特梅爾擁有一個(gè)包含硬件和軟件的完善系統(tǒng)解決方案。
密鑰卡設(shè)計(jì)可采用 ATA5580 及 ATA5795 來實(shí)現(xiàn)。這兩個(gè)器件都包含有一個(gè)LF前端、一個(gè)執(zhí)行快速高效加密計(jì)算的AES硬件模塊,以及一個(gè)針對(duì)超低耗電量進(jìn)行了優(yōu)化的AVR微控制器。它們還均包含可編程閃存,可用于運(yùn)行愛特梅爾的開放式防盜器協(xié)議或其它客戶專用軟件,并能夠使防盜器完全無源工作。
車載基站可采用愛特梅爾 ATA5272 實(shí)現(xiàn)。該器件集成了 LF 基站功能和一個(gè)帶 8K 可編程閃存的 AVR 微控制器。
除了這些器件之外,愛特梅爾還向用戶免費(fèi)提供開放式防盜器協(xié)議軟件,能夠提供前所未有最高的用戶可配置性 (包括許多可實(shí)現(xiàn)系統(tǒng)參數(shù)權(quán)衡的動(dòng)態(tài)評(píng)估的用戶可選功能),并加速開發(fā)和優(yōu)化進(jìn)程:
帶上行鏈路和下行鏈路波特率、位編碼和調(diào)制深度的邏輯層
帶詢問和應(yīng)答位長度、單向或雙向驗(yàn)證、數(shù)據(jù)字段CRC、兩個(gè)密鑰、私密或公開Key Learn的協(xié)議層
AES加密時(shí)鐘速度 “在線” 從125 kHz 到 4 MHz 的加密層
評(píng)論