高端汽車一般都裝備了Passive Keyless Entry and Start (PKES,汽車無鑰匙進(jìn)入與啟動)系統(tǒng),PKES系統(tǒng)允許在無用戶交互的情況下基于遙控鑰匙(key fob)的物理接近度來解鎖和啟動汽車。
之前就有研究人員分析發(fā)現(xiàn)PKES系統(tǒng)易受中繼攻擊(relay attacks)的影響。在中繼攻擊中,兩個(gè)惡意攻擊者通過長距離通信信道中繼近距離通信。近期有新聞報(bào)導(dǎo)稱中繼攻擊常被用于竊取豪華轎車。距離約束(Distance bounding)機(jī)制逐漸被用于預(yù)防中繼攻擊。
本研究的目的是評估目前PKES系統(tǒng)對除中繼攻擊外的其他攻擊的抵抗性。研究人員完全逆向了Tesla Model S中使用的PKES系統(tǒng),研究發(fā)現(xiàn)該系統(tǒng)使用的是過時(shí)的DST40專用加密算法。
PKES工作原理
研究人員分析的PKES系統(tǒng)使用的是簡單的詢問/應(yīng)答(Challenge/Response)協(xié)議,如下圖所示。
汽車使用的傳輸信道是134.2KHZ的低頻(LF)波段。Key fob在歐洲的傳輸頻段是433.92 MHz的特高頻 UHF (Ultra High Frequency)。
正常情況下,汽車會周期性地通告其id(identifier,圖中的wake)。然后key會接收到汽車的id,如果是期望的car id,key fob就會回復(fù),表示準(zhǔn)備接收詢問(challenge)。
然后,汽車會傳輸一個(gè)隨機(jī)的challenge給key fob。Key fob會計(jì)算出一個(gè)response并傳遞。汽車在接收到key fob的response后,首先會進(jìn)行確認(rèn)然后解鎖車門。汽車啟動時(shí),會重復(fù)進(jìn)行相同的challenge/response協(xié)議。
安全脆弱性
前面提到的簡單challenge-response協(xié)議會有一些安全問題。比如,缺乏多重認(rèn)證,這樣任何接收到汽車id的人都可以從key fob來獲得response。因?yàn)槠嚨膇d是以wake消息的形式廣播的,所以任何人都可以記錄。
計(jì)算response時(shí)的加密原語(primitive)也存在安全問題。研究人員分析發(fā)現(xiàn)該系統(tǒng)使用的是過時(shí)的專用DST40。早在2005年,Bono等人就用黑盒方法逆向了密碼,并用FPGA cluster搜索了40位的密鑰。
DST40的內(nèi)部原理超出了本文的講解范圍,但理解DST40將40位challenge抓便為24位response的過程很重要,這一轉(zhuǎn)變依賴的是40位的加密密鑰。因?yàn)閞esponse是24位置,少于challenge的40位,所以對給定的challenge,多個(gè)加密密鑰會生成相同的響應(yīng)。因此,攻擊者恢復(fù)加密密鑰至少需要兩個(gè)challenge-response對。
因?yàn)槠嚨膇d是公開的,所以可以傳輸選擇的任意challenge到key fob并查看response。這樣就可以傳輸相同的challenge到每個(gè)key fob來進(jìn)行攻擊。因?yàn)閗ey-space很小而且沒有多重認(rèn)證,因?yàn)榭梢詧?zhí)行時(shí)空折中攻擊(Time-Memory Trade-Off, TMTO attack)。但是需要提前計(jì)算response并保存結(jié)果。保存的結(jié)果可以減少執(zhí)行隨后的key復(fù)原所需要的計(jì)算次數(shù)。
研究任意挑選了一個(gè)challenge(0x636f736963),并計(jì)算了針對每個(gè)key可能產(chǎn)生的response。之后,所有產(chǎn)生相同response的key都保存到同一文件中。下圖是5.4TB數(shù)據(jù)結(jié)構(gòu)的可視化表示。
為了恢復(fù)特定key fob使用的key:
為了證明攻擊的可行性,研究人員進(jìn)行了PoC攻擊,可以在幾秒鐘克隆一個(gè)key fob。攻擊者的設(shè)備包括Raspberry Pi 3 Model B+、Proxmark3、Yard Stick One和一個(gè)USB電池板。Raspberry Pi連接到智能手機(jī)的wifi熱點(diǎn),要從含有TMTO表的硬盤中下載文件。
攻擊實(shí)例
PoC視頻如下所示:
https://v.qq.com/x/page/y0783dr8jwd.html
POC攻擊一共分為下面幾個(gè)階段:
受影響的車型
研究人員只在Tesla Model S上驗(yàn)證了攻擊的可行性。而Tesla的PKES系統(tǒng)是從Pektron購買的。研究人員查詢FCC的設(shè)備認(rèn)證數(shù)據(jù)庫發(fā)現(xiàn),Pektron還為McLaren、Karma、Triumph提供無鑰匙進(jìn)入解決方案。因此,研究人員認(rèn)為該攻擊同樣適用于其他車型和廠商。
臨時(shí)解決方案
研究人員建議: