您好,登錄后才能下訂單哦!
這期內(nèi)容當(dāng)中小編將會給大家?guī)碛嘘P(guān)怎么利用藍牙功能兩秒內(nèi)攻擊解鎖Tapplock智能掛鎖,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
幾個星期前,Youtube上名為JerryRigEverything的人上傳了一段針對 Tapplock 智能藍牙指紋掛鎖的拆解視頻。視頻顯示,只要用一個GoPro相機固定粘附底座就可以把 Tapplock 后蓋取下,然后再利用螺絲刀就能把 Tapplock 的鎖扣輕松打開。
有點不可思議,這段視頻引發(fā)了我對 Tapplock 智能掛鎖的安全性好奇,這款具備指紋識別、手機藍牙和莫爾斯碼解鎖的智能掛鎖,在方便的同時,它安全性如何呢?由此我對 Tapplock 進行了一番研究,最終我實現(xiàn)了2秒之內(nèi)對Tapplock的解鎖。
Tapplock智能掛鎖由淬火鋼和耐用壓鑄的Zamak-3鋅合金打造而成。Zamak-3鋅合金常用于兒童玩具、門把手、男士剃須刀等壓鑄產(chǎn)品,嚴格來說,這種金屬材質(zhì)強度不高,且在400℃以下就能熔化變形,對于結(jié)實的鎖體來說,這不是一個好的材質(zhì)選擇。Zamak-3便于制作一些外觀精致且感覺牢固的精細鑄件,也僅只是看著安全牢固而已。
Tapplock智能掛鎖選用了 AES 128位的加密算法,加密強度算是很高的了。
這種加密強度與軍用級別相當(dāng),但于對 IoT 黑客們來說,這種對稱加密還是存在著一些缺點,尤其在這里的Tapplock使用說明中,完全沒有密鑰配對、交換和共享的規(guī)定,甚至在安全性說明中連基本的身份認證都沒有。所以,類似這種應(yīng)用場景中,AES-128加密還存在不足。
此外,針對Tapplock掛鎖的安全性,也有諸多爭議,就比如這里的 “牢不可破的Tapplock沒那么安全可靠”,文章中羅列了好多針對 Tapplock 軟硬件的安全測試,最終發(fā)現(xiàn)Tapplock并不那么安全。
Tapplock官方宣稱自己的掛鎖 “非常強悍”,但實際在Abloy Protec門鎖面前,估計就沒法比了。Tapplock官方還宣稱自己的掛鎖 "幾乎牢不可破",但最終卻被一把4英寸的螺栓切割器瓦解。看來,一切都是的吹噓的營銷策略。
以上各路安全測試也激起了我的好奇心,那就買一把Tapplock智能掛鎖來實際測測吧,80歐元的價格付款,14小時之后,一款Tapplock智能掛鎖就送到我家了。首先,我先按照 JerryRigEverything 的方法,用一個GoPro相機粘附底座粘住了 Tapplock 后蓋。
經(jīng)過30分鐘的充分粘合后,用力拉粘附底座,可惜怎么也弄不開Tapplock后蓋。原來,在后蓋內(nèi)還有一個伸到后蓋項部的彈簧梢,是專門為了防止后蓋的松動或轉(zhuǎn)動而設(shè)計的。這個彈簧梢有可能被破壞,但是只靠一個相機粘附底座可能是不行的。但 JerryRigEverything 的Tapplock測試用鎖,沒有這個伸出的彈簧梢,但我們購買的Tapplock測試用鎖是有這個彈簧梢的,所以,我們使勁拉住相機粘附底座最后也沒能按JerryRigEverything的方法打開Tapplock后蓋。
現(xiàn)在,我們轉(zhuǎn)向低功耗藍牙(BLE)進行測試,意外的是,我們通過這里發(fā)現(xiàn)了一些不可思議的事。一般來說,我喜歡閱讀一些費時且深入有創(chuàng)意的 IoT 破解文章,但這里我們就不繞了,直奔主題吧。在不到45分鐘的時間里,我們需要完成對 Tapplock 的破解解鎖。
首先,我們發(fā)現(xiàn),Tapplock 手機APP的HTTP通信中,竟然沒有傳輸加密機制,這是2018年啊,又不是古時候,完全令人吃驚。
從以上網(wǎng)絡(luò)分析中可看到,當(dāng)我每次用BLE連接 Tapplock 時,就會有一個 “隨機” 字符串被發(fā)送給Tapplock端,這些字符串貌似是與 Tapplock 進行交流的命令。
但也值得注意的是,無論我執(zhí)行多少次對 Tapplock 的連接請求,這些字符串?dāng)?shù)據(jù)都是不變的。從以下藍牙利用工具gatttool的命令行執(zhí)行中可以看到,Tapplock 還容易受到重放攻擊。
由于 Tapplock 手機APP允許用戶與其它人共用Tapplock掛鎖,或是在某個期限內(nèi)撤銷使用權(quán)許可。由此,我把該測試用鎖與其他用戶進行了共享,然后抓取其中的BLE通信數(shù)據(jù)發(fā)現(xiàn),這種用戶間共享Tapplock的做法,完全與正常單一用戶對Tapplock的控制一樣,也就是,即使你撤銷了其他共享用戶的解鎖權(quán)限,但其他用戶一樣可以在此之前,可以通過通信數(shù)據(jù)抓包方式獲取到解鎖認證的所有信息,利用該信息可以實現(xiàn)對Tapplock的認證解鎖,和單一控制用戶沒啥區(qū)別。這就有點像智能門鈴 Ring Smart Doorbell 的問題一樣,不可能撤銷另一具備高解鎖權(quán)限的用戶。
Tapplock 智能掛鎖沒有配備應(yīng)有的出廠重置機制,使用賬戶只能刪除其相應(yīng)的掛鎖信息,而不能刪除相應(yīng)的解鎖數(shù)據(jù)。留存的解鎖數(shù)據(jù)是發(fā)送到服務(wù)端或是從服務(wù)端發(fā)送給Tapplock的,因此,處于網(wǎng)絡(luò)中適當(dāng)位置的攻擊者可以攔截這些解鎖數(shù)據(jù),利用這些數(shù)據(jù)間接實現(xiàn)Tapplock開鎖。
這可不是小問題,廢話少說,能開鎖才是重點,現(xiàn)在我們需要來分析一下那些隨機數(shù)據(jù)是如何實現(xiàn)開鎖的。
經(jīng)過幾分鐘的研究分析,我發(fā)現(xiàn)了與Tapplock掛鎖開鎖過程配對的具體函數(shù)方法:
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掛鎖發(fā)送了包含兩個雙字節(jié)數(shù)組的固定命令CMD_PAIRING_REGULAR。這兩個雙字節(jié)數(shù)組會讀取以下相應(yīng)信息:
this.bluetoothCenterManager.regularPair(lockMacAddress, BluetoothTool.strToBytes(lockInfo.getKey1()), BluetoothTool.strToBytes(lockInfo.getSerialNo()));
有效信息也就是Key1 和 SerialNo,它們是從哪里發(fā)送來的呢?原來當(dāng)鎖發(fā)生初始配對時,以上信息經(jīng)keyAndSerialNo方法,間接轉(zhuǎn)化為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地址大寫,然后把它轉(zhuǎn)化為一個MD5哈希值,其中0到7個字符為key1,16到23個字節(jié)為SerialNo序列號。
是的,解鎖Tapplock唯一需要知道的就是Tapplock的藍牙MAC地址,而這個MAC地址卻是由Tapplock廣播出來的。我直接被這種糟糕的安全性震驚了,于是乎,我又重新訂購了一個Tapplock,并確認了Tapplock掛鎖和其APP的真實性。
最后,我編寫了一個攻擊腳本來掃描Tapplock掛鎖并能實現(xiàn)解鎖,用該腳本可以不到2秒的時間就能解鎖任何一款Tapplock,完全不需要任何高深的知識和技巧。后期,我會將該腳本移植到一個Android應(yīng)用程序中,使整個解鎖操作更方便快捷??傮w來說,實現(xiàn)對Tapplock掛鎖的開鎖成本非常低廉。Tapplock智能掛鎖的這種安全性讓人汗顏,這種做法算是對消費者的不尊重,我也是無語了。
Tapplock聲稱具備防墊片功能,它在鎖栓中采用了傳統(tǒng)的做法,也就是在鎖扣中延伸出了另外一級咬合口,這樣能避免攻擊者用墊片開啟閂鎖。但是Tapplock的咬合口相對比較細薄,且離壓力的接合點有些遠。
另外,用一個12寸的螺栓切割器,不到10秒就能把Tapplock鎖栓搞定:
作為一款智能掛鎖,Tapplock 的安全機制其實非常明確,那就是避免攻擊者開鎖。而鎖的安全程度取決于其自身的威脅模型設(shè)計,正確的安全設(shè)計多少能減緩攻擊者對鎖的攻擊過程,而且不會出現(xiàn)可被利用的安全紕漏。而作為 IoT 時代的智能掛鎖,Tapplock的安全性簡直堪憂,不出2秒鐘就能被開鎖搞定。但當(dāng)我把這個問題反饋給Tapplock官方之后,它們竟然回復(fù)我:
“Thanks for your note. We are well aware of these notes.”
謝謝你的上報提醒,我們已經(jīng)知曉了這些問題。
啊,原來Tapplock官方在知曉這些問題的同時,不但不修復(fù),而且還繼續(xù)售賣這些鎖具,也不讓消費者知曉。這完全有些讓我震驚。
上述就是小編為大家分享的怎么利用藍牙功能兩秒內(nèi)攻擊解鎖Tapplock智能掛鎖了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。