首頁  >  文章  >  運維  >  怎麼利用藍牙功能兩秒內攻擊解鎖Tapplock智慧掛鎖

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

王林
王林轉載
2023-05-13 19:49:041358瀏覽

幾個星期前,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中文網其他相關文章!

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