搜尋
首頁運維安全怎麼利用藍牙功能兩秒內攻擊解鎖Tapplock智慧掛鎖

幾個星期前,Youtube上名為JerryRigEverything的人上傳了一段針對 Tapplock 智慧藍牙指紋掛鎖的拆解影片。影片顯示,只要用GoPro相機固定黏附底座就可以把 Tapplock 後蓋取下,然後再利用螺絲起子就能把 Tapplock 的鎖扣輕鬆打開。

有點不可思議,這段影片引發了我對Tapplock 智慧掛鎖的安全性好奇,這款具備指紋辨識、手機藍牙和莫爾斯碼解鎖的智慧掛鎖,在方便的同時,它安全性如何呢?由此我對 Tapplock 進行了一番研究,最終我實現了2秒內對Tapplock的解鎖。

示範影片:

硬體構成

Tapplock智慧掛鎖由淬火鋼​​和耐用壓鑄的Zamak-3鋅合金打造而成。 怎麼利用藍牙功能兩秒內攻擊解鎖Tapplock智慧掛鎖Zamak-3鋅合金常用於兒童玩具、門把手、男士刮鬍刀等壓鑄產品,嚴格來說,這種金屬材質強度不高,且在400℃以下就能熔化變形,對於結實的鎖體來說,這不是一個好的材質選擇。 Zamak-3便於製作一些外觀精緻且感覺牢固的精細鑄件,也僅只是看著安全牢固而已。

加密機制

Tapplock智慧掛鎖選用了 AES 128位元的加密演算法,加密強度算是很高的了。 怎麼利用藍牙功能兩秒內攻擊解鎖Tapplock智慧掛鎖

這種加密強度與軍用等級相當,但於對IoT 駭客來說,這種對稱加密還是存在著一些缺點,尤其在這裡的Tapplock使用說明中,完全沒有金鑰配對、交換和分享的規定,甚至在安全性說明中連基本的身份認證都沒有。所以,類似這種應用場景中,AES-128加密仍有不足。

此外,針對Tapplock掛鎖的安全性,也有諸多爭議,就比如這裡的“牢不可破的Tapplock沒那麼安全可靠”,文章中羅列了很多針對Tapplock 軟硬體的安全測試,最終發現Tapplock並不那麼安全。

Tapplock官方宣稱自己的掛鎖 “非常強悍”,但實際在Abloy Protec門鎖面前,估計就沒法比了。 Tapplock官方也宣稱自己的掛鎖 "幾乎牢不可破",但最終卻被一把4吋的螺栓切割器瓦解。看來,一切都是的吹噓的行銷策略。

安全測試

以上各路安全測試也激起了我的好奇心,那就買一把Tapplock智能掛鎖來實際測測吧,80歐元的價格付款,14小時之後,一款Tapplock智慧掛鎖就送到我家了。首先,我先按照  JerryRigEverything 的方法,用一個GoPro相機黏附底座黏住了 Tapplock 後蓋。

經過30分鐘的充分黏合後,用力拉黏附底座,可惜怎麼也弄不開Tapplock後蓋。原來,後蓋內還有一個伸到後蓋項部的彈簧梢,是專門為了防止後蓋的鬆脫或轉動而設計的。這個彈簧梢有可能被破壞,但是只靠一個相機黏附底座可能是不行的。但JerryRigEverything 的Tapplock測試用鎖,沒有這個伸出的彈簧梢,但我們購買的Tapplock測試用鎖是有這個彈簧梢的,所以,我們使勁拉住相機粘附底座最後也沒能按JerryRigEverything的方法打開Tapplock後蓋。

使用低功耗藍牙(BLE)控制 Tapplock

現在,我們轉向低功耗藍牙(BLE)進行測試,意外的是,我們透過這裡發現了一些不可思議的事。一般來說,我喜歡閱讀一些費時且深入有創意的 IoT 破解文章,但這裡我們就不繞了,直奔主題吧。在不到45分鐘的時間裡,我們需要完成 Tapplock 的破解解鎖。

首先,我們發現,Tapplock 手機APP的HTTP通訊中,竟然沒有傳輸加密機制,這是2018年啊,又不是古時候,完全令人吃驚。

怎麼利用藍牙功能兩秒內攻擊解鎖Tapplock智慧掛鎖從上述網路分析可以看到,當我每次用BLE連接Tapplock 時,就會有一個「隨機」 字串被傳送給Tapplock端,這些字串貌似是與Tapplock進行交流的命令。 怎麼利用藍牙功能兩秒內攻擊解鎖Tapplock智慧掛鎖

但也值得注意的是,無論我執行多少次對 Tapplock 的連線請求,這些字串資料都是不變的。從以下藍牙利用工具gatttool的命令列執行中可以看到,Tapplock 也容易受到重播攻擊。 怎麼利用藍牙功能兩秒內攻擊解鎖Tapplock智慧掛鎖

由於 Tapplock 手機APP允許使用者與其它人共用Tapplock掛鎖,或在某個期限內撤銷使用權許可。由此,我把該測試用鎖與其他用戶進行了共享,然後抓取其中的BLE通信數據發現,這種用戶間共享Tapplock的做法,完全與正常單一用戶對Tapplock的控制一樣,也就是,即使你撤銷了其他共享用戶的解鎖權限,但其他用戶一樣可以在此之前,可以通過通信數據抓包方式獲取到解鎖認證的所有信息,利用該信息可以實現對Tapplock的認證解鎖,和單一控制用戶沒啥區別。這就有點像智慧門鈴    Ring Smart Doorbell 的問題一樣,不可能撤銷另一個具備高解鎖權限的使用者。

沒有出廠重置設定

Tapplock 智慧掛鎖沒有配備應有的出廠重置機制,使用帳號只能刪除其對應的掛鎖訊息,而無法刪除對應的解鎖資料。留存的解鎖數據是發送到服務端或是從服務端發送給Tapplock的,因此,處於網路中適當位置的攻擊者可以攔截這些解鎖數據,利用這些數據間接實現Tapplock開鎖。

這可不是小問題,廢話少說,能開鎖才是重點,現在我們需要來分析一下那些隨機資料是如何實現開鎖的。

完全控制

經過幾分鐘的研究分析,我發現了與Tapplock掛鎖開鎖過程配對的具體函數方法:

 public void regularPair(String str, byte[] bArr, byte[] bArr2) {      bArr = getCMD(CMD_PAIRING_REGULAR, bArr, bArr2);
      send(str, bArr);
      str = TAG;
      bArr2 = new StringBuilder();
      bArr2.append("Regular pair called, send ");
      bArr2.append(BluetoothTool.byteToStr(bArr));
      Log.e(str, bArr2.toString());
   }

該方法中向Tapplock掛鎖發送了包含兩個雙位元組數組的固定命令CMD_PAIRING_REGULAR。這兩個雙位元組數組會讀取以下對應資訊:

this.bluetoothCenterManager.regularPair(lockMacAddress, BluetoothTool.strToBytes(lockInfo.getKey1()), BluetoothTool.strToBytes(lockInfo.getSerialNo( )));

有效資訊也就是Key1 和SerialNo,它們又是從哪裡發送來的呢?原來當鎖發生初始配對時,以上資訊經keyAndSerialNo方法,間接轉換為Tapplock掛鎖的藍牙MAC位址。 keyAndSerialNo方法如下:

public static String keyAndSerialNo(String str, String str2) {
      str = AndroidTool.md5(str.toUpperCase()).toUpperCase();
      if (str2.equals(KEY_ONE) {
         str = str.substring(0, 8);
      } else if (str2.equals(KEY_TWO) {
         str = str.substring(8, 16);
      } else if (str2.equals(SERIAL_NO) {
         str = str.substring(16, 24);
      }
      return str;
   }

這裡,它會把Tapplock掛鎖的藍牙MAC位址大寫,然後把它轉換為一個MD5雜湊值,其中0到7個字元為key1,16到23個位元組為SerialNo序號。

是的,解鎖Tapplock唯一要知道的就是Tapplock的藍牙MAC位址,而這個MAC位址卻是Tapplock廣播出來的。我直接被這種糟糕的安全性震驚了,於是乎,我又重新訂購了一個Tapplock,並確認了Tapplock掛鎖和其APP的真實性。

最後,我寫了一個攻擊腳本來掃描Tapplock掛鎖並能實現解鎖,用該腳本可以不到2秒的時間就能解鎖任何一款Tapplock,完全不需要任何高深的知識和技巧。後期,我會將該腳本移植到一個Android應用程式中,使整個解鎖操作更方便快速。整體來說,實現對Tapplock掛鎖的開鎖成本非常低。 Tapplock智慧掛鎖的這種安全性讓人汗顏,這種做法算是對消費者的不尊重,我也是無言​​了。 怎麼利用藍牙功能兩秒內攻擊解鎖Tapplock智慧掛鎖

物理安全性

Tapplock聲稱具備防墊片功能,它在鎖栓中採用了傳統的做法,也就是在鎖扣中延伸出了另外一級咬合口,這樣能避免攻擊者用墊片開啟閂鎖。但是Tapplock的咬合口相對比較細薄,且離壓力的接合點有些遠。

怎麼利用藍牙功能兩秒內攻擊解鎖Tapplock智慧掛鎖

另外,用12吋的螺栓切割器,不到10秒就能把Tapplock鎖栓搞定:

怎麼利用藍牙功能兩秒內攻擊解鎖Tapplock智慧掛鎖

漏洞上報

作為一款智慧掛鎖,Tapplock 的安全機制其實非常明確,那就是避免攻擊者開鎖。而鎖的安全程度取決於其自身的威脅模型設計,正確的安全設計多少能減緩攻擊者對鎖的攻擊過程,而且不會出現可被利用的安全紕漏。而身為 IoT 時代的智慧掛鎖,Tapplock的安全性簡直堪憂,不出2秒鐘就能被開鎖搞定。但當我把這個問題回饋給Tapplock官方之後,它們竟然回覆我:

「Thanks for your note. We are well aware of these notes.」

#謝謝你的上報提醒,我們已經知道這些問題了。

啊,原來Tapplock官方在知道這些問題的同時,不但不修復,而且還繼續售賣這些鎖具,也不讓消費者知曉。這完全有些讓我震驚。

以上是怎麼利用藍牙功能兩秒內攻擊解鎖Tapplock智慧掛鎖的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:亿速云。如有侵權,請聯絡admin@php.cn刪除

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),