我“黑”進了我自己的車

机械脉动
1 位粉絲
2026年10月13日
AI 生成·可能包含錯誤
視頻概述
AI 生成This video examines the ongoing security battle between automotive manufacturers and hackers, focusing on the vulnerabilities of radio-frequency key fobs. It details the transition from static to rolling codes and explains how sophisticated techniques like the \"RollJam\" attack can bypass modern security to grant unauthorized vehicle access.
讓我們開始播放看看,會發生什麼事。
是的,真是太好了。
所以我發現了如何用我的筆電解鎖我的車。
而且我沒有什麼華麗的特斯拉之類的車。
您可以在手機上的應用程式中解鎖它。
這是一輛2014年的迷你車,鎖定機制非常簡單。
使用一個非常簡單的金鑰,例如其中一個這樣的話,
但我發現可以用筆電來完成。
我何必自找麻烦呢?
嗯,正有一場軍備競賽正在進行中
駭客與製造裝置的人之間。
而那樸實無華的車鑰匙正是一個絕佳的範例
那場軍備競賽。
所以當你按下汽車鑰匙上的按鈕時,
它會透過無線電向你的汽車傳送一段二進位代碼。
如果汽車識別出這個代碼,就會自動解鎖。
在過去,這種做法原本是這樣運作的。
每一輛汽車都有一個獨特的代碼。
如果你想要解鎖車門,
然後你必須傳送那個特定的代碼。
如果你的車匙沒有發送該代碼,
車子打不開鎖。
但這種稱為靜態代碼的系統其實非常脆弱。
它容易受到所謂的重播攻擊的影響。
這就是軍備競賽的第一步
來自駭客的。
你所做的就是躲到車旁邊
當有人按壓按鈕解鎖時
並且你會記錄透過無線電傳輸的代碼。
然後在稍後的某一天,
也許在晚上沒有人的時候
你將那段代碼重複輸入到車上,然後解鎖它。
那麼,你如何修復重放攻擊的漏洞?
好吧,製造商們提出了方案
一種稱為滾動碼的技術。
那就是每次你按下按鈕時的位置
在你的車匙上,它會播放不同的代碼
並將其傳送至汽車。
因此,在鑰匙內部有一長串代碼
車內還有一長串對應的代碼。
所以你按下按鈕,就會傳送清單中的第一個代碼。
汽車查看清單中的第一個程式碼。
它們相符,車門解鎖了。
然後,關鍵的是,汽車將該代碼從清單上劃掉。
現在這是一個無效的代碼。
因此,如果你試著重播那段程式碼,車子將不會解鎖。
下次你按下汽車鑰匙上的按鈕時
它會播放清單中的下一個程式碼。
這與車上清單中的下一個代碼相符
如此類推。
順便一提,這幾乎肯定不是
就像一張巨大的試算表,藏在鑰匙裡,也藏在車內。
它最有可能的結果是,會有一個演算法
用於生成清單中的下一個程式碼
而且會是一個秘密的演算法,以及汽車和鑰匙
分享那個生成代碼的神秘演算法。
在下一階段的軍備競賽中,
進入薩米·卡姆卡爾及其「滾輪攻擊」。
薩米·卡姆卡爾是一位著名的資訊安全研究人員。
他為廣播做了許多驚人的事情,
無線網路,各種各樣的東西。
在探討滾筒攻擊及其運作原理之前,
我們就直接進行重放攻擊,作為概念驗證。
用我筆電上的鑰匙-bed
換句話說,我們就要按下那個按鈕了
我車子的範圍之外
所以車輛不會往前推進其清單
我會在這台筆記型電腦上錄下來
然後用我的筆電將其播放到汽車上。
這裡有一個叫做 HackRF1 的設備。
這是一款軟體定義無線電。
換句話說,你用USB將它插入你的筆記型電腦這裡
它是一部收音機,但你會使用軟體來控制這部收音機。
它可以接收和發送無線電信號
然後我這裡插著這根天線。
不過,不管怎樣,我們就先這樣吧……
所以那裡有架空中飛行器。
我這裡有款名叫 Universal Radio Hacker 的軟體
我們將錄製這把汽車鑰匙的訊號。
所以你必須選擇你想要的頻率。
我已選擇 433.92 兆赫。
這是因為歐洲地區有此類設備
通常會在那個頻率附近,432.89左右
因為那是頻譜中的一個免費區段
你被允許做些事情。
開始,按下按鈕,停止。
就這樣了。
我們從車鑰匙上採集到了一點樣本。
然後我們可以將其放大。
現在你或許已經能看出這些空隙了
事實上,你所得到的是一則五條短訊息
你可能會發現,它們其實都是一樣的。
所以我們 just 會聚焦在其中一個上
而且關鍵 obviously 只是發送了五次訊號
萬一試幾次都不成功的話。
而且你看,如果我們放大,你開始能看見,
好吧,還有無線電波
要不就是開,要不就是關。
因此,我們可以從另一個角度來看待它。
我們可以以一種類似開關的二進制方式來看待它。
換句話說,解調後的。
多一點。
所以如果它向上,就是一。
如果跌下來,就是零。
這是一種非常天真的解讀。
而且看,這裡是解讀後的0和1。
如果我選中它們,
它實際上顯示了它從哪裡取得該資訊
從信號本身來看,這實在很酷。
因此我們可以立即深入並開始分析
那些一和零代表什麼意思?
但對於重播攻擊而言,
很簡單,直接拿那些一和零就行了
並以同樣的頻率重新播放這些聲音。
然後我們只需按一下開始,它就會發送出去。
但讓我們發送五次。
就像汽車鑰匙那樣。
好了,是時候面對現實了。
所以,車鎖上了。
我進不去那裡。
那是我的筆電。
那是空中纜車。
讓我們試一試,看看會發生什麼。
什麼也沒有。
我的意思是,這是第一次嘗試。
我沒想到第一次就能成功。
這相當好地說明了這一點
我根本不知道自己在做什麼。
但儘管如此,我確實還有選擇。
所以我買了第二台軟體定義無線電。
這僅支援接收,不支援發送。
但我可以做的事是,我可以錄製鍵盤的按鍵
使用一個軟體定義無線電。
然後我就把那錄音檔存檔了
讓我能夠看著的。
然後我就可以重新傳輸這些數據
透過一個軟體定義無線電
在另一邊錄製時。
然後我可以將鑰匙的錄音進行對比
隨著從筆記型電腦傳輸的錄音。
如果它們看起來不對,
我可以不斷調整,直到弄對為止。
結果發現,位元的長度有誤。
太長了。
就像一個位元,例如一個1或一個0。
需要長達半毫秒,
我的差得遠呢。
所以我調整了一些變數。
完全不知道自己在做什麼。
但我注意到它改變了一些事情。
所以我剛才只是把數字玩了一下
直到錄製我的訊號為止
與鑰匙的錄音完全相同。
所以現在我有點自信了。
所以車門鎖上了。
沒辦法進去。
讓我們按下播放鍵,看看會發生什麼。
該死的。
不,什麼都沒有。
該死的。
所以這是第四次嘗試。
我不知道我會在編輯中包含多少個。
但再一次,車子鎖上了。
那是證據。
讓我們開始播放吧。
看看會發生什麼。
是的!
太好了。
我在車裡。
令人驚嘆。
像那樣的重播攻擊
在使用滾動代碼的系統中
對小偷來說並沒有特別用處
因為這樣做不切實際。
你必須和某個人在一起
當他們按下車鑰匙上的解鎖鍵時
當他們不在車旁時。
為什麼會有人做那件事呢?
也許你可以使用社會工程學
讓他們去做。
嘿,我可以看一下你的車鑰匙嗎?
我的意思是,這似乎不太可能,不是嗎?
也許你就是那種愛辦派對的人。
人們在不同地方把鑰匙放在碗裡。
那樣的話,你就可以做到了。
看起來要花很多功夫去那裡,不是嗎?
重點是,如果這個漏洞利用需要付出更多的努力
比起只是砸碎汽車的窗戶,
那麼這樣就足夠安全了。
這就是為什麼你需要採取不同的攻擊方式
就像我們之前提到的那種,滾筒果醬。
要執行滾軸突襲攻擊,
你實際上需要兩個無線電台。
第一台無線電正在發送干擾信號
讓車聽不到車鑰匙的聲音。
第二部無線電正在錄製汽車鑰匙的訊號。
所以如果有人走過來按一下按鈕,
車聽不見它,所以不會解鎖。
因為它正遭到干擾。
你用第二部無線電記錄該信號。
當你按下車鑰匙上的按鈕時,會發生什麼情況?
你的車子無法解鎖嗎?
你再試一次。
因此,車鑰匙被再次按下。
而且,你又在干擾訊號
所以車子聽不見它
而你正在錄製第二個訊號。
但隨即,你停止了干擾
然後發出第一個信號給汽車,汽車就會解鎖。
更重要的是,你的筆電仍在攜帶著
汽車尚未見過的最新按鍵按下事件。
如果你能將整個組件做得足夠小,
就像你使用樹莓派一樣
加上兩個這種空中裝置
而且你可以把它貼在車底下面
而那人則駕車四處遊蕩,
他們一直在使用自己的鑰匙。
您的裝置會一直保留最近按下的鍵。
在將上一個按鍵按壓訊號傳送至車輛時
做駕駛員所期望它做的事。
你可能已經想到兩個問題了
以滾軸卡住攻擊。
第一個是,嗯,如果你正在發送一個信號
那堵塞了汽車,使得汽車聽不見車鑰匙。
那怎麼不會也干擾到你的收音機呢
那是在試圖錄製汽車鑰匙嗎?
嗯,這些車鑰匙是非常簡單的裝置。
並取決於電池的剩餘電量多少
以及任何一天的溫度,
無線電波的实际特定頻率
車匙所傳輸的訊號將會有所不同。
因此,這輛汽車需要能夠接收廣泛範圍的頻率。
確保它確實能捕捉到特定的頻率
這把汽車鑰匙在任何一天所發出的訊號。
這意味著如果你知道精確的頻率
透過車鑰匙,你可以發送干擾頻率
那不是與汽車鑰匙頻率相同的頻率
但仍在車輛偵聽的範圍內。
因此,這完全禁止了汽車的使用。
除了能聽到這一切之外,什麼也聽不到
但你可以調校你的接收器
到車鑰匙的特定頻率。
你不需要使用那麼寬廣的頻率範圍
因為你偷窺了一番
找出精確的頻率。
所以你就可以這樣偷車了
同時記錄鑰匙。
滾筒堵塞攻擊的另一個複雜性
你可能已經想到的
就像我離開我的車時
我最後做的一件事就是按一下按鈕鎖上它。
所以如果你正在記錄我的按鍵操作,
您銀行裡最新的款項
你所保留的是一個鎖碼。
所以如果你將那段程式碼播放給車子聽,
你所做的一切就是鎖上它。
因此,你必須更好好地進行一些逆向工程
找出如何轉換鎖碼的方法
一個解鎖碼。
在這個時刻,或許值得談一談
至於薩米·卡姆卡本人。
因此,我是 openpath.com 的共同創辦人。
一種使用移動設備和雲端的實體存取控制系統。
所以等等,你們公司是取消了
這些愚蠢的身分證,其實還挺好的?
沒錯,正是如此。
那個大家都有的安全裝置嗎?
沒錯,沒錯。
你的行動電話,你把它留在口袋裡
你將實際擁有一个完全加密的連接
它讓你能夠打開門。
剛剛差不多過了半小時
我終於把車門打開了。
好的,沒錯,太棒了。
太令人興奮了。
感覺如何?
噢,感覺真是太棒了。
我的意思是,那不過是個重播而已,對吧?
那不是果醬捲。
沒關係。
是啊,這真的很棒。
它是一輛迷你,BMW迷你。
當它剛傳入時,看起來像是 128 位元。
但沒有任何一位的時間長於,
你一次最多只能連續得到兩樣東西。
你永遠不會得到零、零、零。
你永遠都得不到那個,那個,那個。
好的,這叫做曼徹斯特編碼。
曼徹斯特編碼。
那就是每個位元的時間長度都相同的地點。
在這種情況下,一千分之一秒就是一位元。
就在那一毫秒之間,
要不就是信號從開啟變為關閉
或從關閉轉為開啟。
從開到關是零,從關到開是一。
使用曼徹斯特編碼時,
你不可能連續出現超過兩次的關或兩次的開。
這就是為什麼當我對山米說的時候,
我從來沒有看過三個零連在一起,也從來沒有看過三個一連在一起。
他知道那是曼徹斯特編碼。
看看這五段來自卡基的代碼。
只是我按了五次解鎖按鈕而已。
你可以看到它們都各不相同
因為它是滾動碼,
但你會注意到前八個位元
都是一樣的。
這八個位元也完全相同。
我的希望是,那最初的八個位元
就像序言一樣。
這是鑰匙表達的方式,
嗨,我是一把鑰匙。
你最好聽聽我接下來要發送的40個位元
因為那是我的滾動代碼。
你就是這樣知道的
我是你應該傾聽的關鍵。
然後緊接在那之後的下八位
就像這樣,這正是我希望你去做的事。
這種情況下,零、一、一、零、零、一、零、一。
那意味著解鎖。
但那正是我的期望
因為那樣我就能直接弄明白了
在鎖的情況下,這八個位元會是什麼樣子?
這樣一來,我就可以使用我所擁有的任何鎖定信號
我可以將其轉換為解鎖信號
然後我們實際上可以執行滾筒阻擊攻擊。
很遺憾,如果你看看這五個鎖碼
或稱為訊息
你會注意到那八個位元
我希望這意味著解鎖。
它們在解鎖序列中實際上是相同的。
零,一,一,零,零,一,零,一。
很遺憾,那八個位元並不是指令。
他們不是那些說……的部份,
嘿,打開或鎖上行李箱,或是做什麼都行。
你有資料嗎?
你還有曼徹斯特的資料嗎?
你有以一和零的形式嗎?
在我的剪貼簿中,它是以十六進位表示的。
哦,沒關係。
如果你想貼上來,我們可以快速看一下。
好的,基本上就是這樣,
我製作了一個名叫 diff bits 的簡單工具。
它在我的 GitHub 上。
這本質上以色彩向我們展示的,正是如此。
而那條中線告訴我們,
好的,前八個位元都完全相同,
這一點你早已從十六進位中得知。
然後它指向,哦,對了,
這些就像是,如果有個 V,
就像一輛藍色的V型車往下駛,這些都是一樣的。
在鎖定與解鎖之間,
那些之中總有一些部分是始終相同的。
然而有趣的是
這通常就是我所預期的
對於一段時間來說,它在某一點上是相同的。
然後在另一個中則相反。
我們在此並未看到這一點。
因此,訊息中並沒有特定的位元。
來自這把汽車鑰匙
總是單一鎖定的
並且始終為零用於解鎖,反之亦然。
事實上,僅有的幾根柱子
那些全是1或全是0的
在這兩組訊息中
原來只是巧合而已。
事實上,當我們檢視每種類型的訊息各十則時,
沒有任何一欄的數值全部為一或全部為零。
除了兩組八位元之外
我們早已知道的事。
換句話說,這個鍵不會傳送指令
解鎖或於開放狀態下解鎖。
它顯然發出了那個命令,
它只是以某種方式混亂了而已。
可能使用了加密。
因此截至目前,2007 年款的 BMW Mini
基本上可以抵禦滾動卡死攻擊。
山米確實提到過其他你可以嘗試的方法。
如果你真的下定決心,
就像你可以把鑰匙拆開一樣,
查看集成電路上的標籤,
看看是否有任何相關資訊。
其實,他們在汽車鑰匙方面相當隱秘。
但如果仔細觀察類似的積體電路,
你可能會找到文件。
你甚至可以用顯微鏡觀察矽膠
並試著提取加密演算法。
你甚至可以用帶電粒子轟擊矽膠
並嘗試強制其進入除錯模式。
此時,真的容易多了
只是砸碎車窗罷了。
但看看你能走多遠,這很有趣。
針對一個極具價值的目標。
我問了山米有關其他製造商的做法
可防止滾動卡死攻擊。
你可以做的是,使用一個實時時鐘
你的車匙扣內部
您的車匙遙控器中的時鐘需要進行同步。
在你的車裡的鐘上。
這樣一來,如果我有一天真的能即興演奏,
從你那裡偷走兩個密碼,
然後重新播放,程式碼將已過期。
而且我猜每次你成功的時候
鑰匙與汽車之間的互動
到那時,你還會同步你的時鐘。
這是個很棒的主意。
問題在於人們不願意
可能會提高門禁卡的成本。
但希望那會實現。
因此,我無法自己重現一次滾動阻塞攻擊。
因為我的2007年款迷你太過先進了,
但我還是能夠執行重播攻擊,
這真的很酷。
你知道的,我和山米的對話
總共大約一小時。
我們談論了許多有趣的事情
和其他漏洞一樣,
如同針對被動進入車輛的竊取手法一樣,
如何劫持無人機
對身分證的竊取行為
我們甚至談到了道德問題
作為一名安全研究人員,
例如,你會如何以及何時選擇發布資訊?
關於一個漏洞?
非常有趣的内容。
這段影片太長了。
所以那是第二支影片。
這段額外的訪問影片大約長達20分鐘。
我正在為我的 Patreon 會員製作獨家內容。
請到我的 Patreon 頁面查看。
連結在描述中。
也向貢薩洛·內斯普拉爾致以由衷的感謝
真正幫助我完成這個項目的人。
希望您喜歡這段影片。
如果你這麼做了,別忘了按訂閱
下次見。
