針對藍(lán)牙PIN碼的最新攻擊技術(shù)細(xì)節(jié)分析
注:本文章只是講解決針對藍(lán)牙PIN碼的最新攻擊技術(shù),以提醒大家注意防范,并沒有其它目的。任何人不得使用本文中所介紹的技術(shù)做非法的事。
最近,國內(nèi)外多家網(wǎng)站紛紛刊登了一則關(guān)于針對藍(lán)牙PIN碼的最新攻擊技術(shù)的新聞:通過強(qiáng)制兩個(gè)正在通訊的藍(lán)牙設(shè)備進(jìn)行重新配對,并監(jiān)聽配對信息,攻擊者可以在0.063秒內(nèi)破解一個(gè)4位(十進(jìn)制)的PIN碼。今年6月上旬舉辦的世界無線技術(shù)會議也詳細(xì)討論了該攻擊方法,securityfocus 甚至說“這種新的攻擊技術(shù)令很多關(guān)注無線技術(shù)的信息安全專家非常的震驚,因?yàn)橐郧瓣P(guān)于攻擊藍(lán)牙PIN碼的研究只涉及在不正確的藍(lán)牙配置或特定的環(huán)境下,而此次是第一次全面性描述攻擊藍(lán)牙的技術(shù)”。針對這種藍(lán)牙攻擊技術(shù),娛樂與技術(shù)并重的WDA進(jìn)行了跟蹤和探討,并寫出以下的攻擊細(xì)節(jié),希望與關(guān)注藍(lán)牙技術(shù)的愛好者共同討論。
一、 概述
藍(lán)牙(bluetooth)是一種實(shí)現(xiàn)多種設(shè)備之間短距離無線連接的協(xié)議,通訊速度快,廣泛應(yīng)用于無線設(shè)備、圖像處理、安全產(chǎn)品、消費(fèi)娛樂、汽車產(chǎn)品和家用電器等領(lǐng)域。做為一種無線技術(shù),藍(lán)牙技術(shù)提供了諸如密鑰管理、認(rèn)證和保密等安全機(jī)制。然而,過去幾年,一些針對藍(lán)牙技術(shù)的攻擊方法被提出,包括信息漏泄、數(shù)據(jù)竊取、假冒攻擊等,藍(lán)牙技術(shù)的安全問題主要有以下幾點(diǎn):
1、整個(gè)藍(lán)牙系統(tǒng)的安全性依耐于PIN碼的保密性。由于安全意識不高,用戶所選擇的PIN碼長度通常較短,導(dǎo)致PIN碼被破解的可能性大大增加。
2、 藍(lán)牙協(xié)議所使用的密碼算法是藍(lán)牙設(shè)計(jì)者自行發(fā)明的,這些密碼算法比較簡單。從密碼分析的角度看,一個(gè)成熟的密碼算法必須經(jīng)過長期的實(shí)踐才會被人們所認(rèn)可,由于缺乏測試,新的密碼算法有可能隱含著某種缺陷。
3 、藍(lán)牙適用于10米以內(nèi)的短距離通訊,攻擊者要想接近攻擊目標(biāo)確實(shí)比較困難。但設(shè)想在一個(gè)步行街上或者在一個(gè)堵車的環(huán)境中,攻擊者通過啟動了藍(lán)牙功能的設(shè)備,是有可能搜索到周圍10米內(nèi)的藍(lán)牙通訊。而且,最新的IEEE 802.11標(biāo)準(zhǔn)已經(jīng)可以比較便宜的擴(kuò)展藍(lán)牙通訊的距離。
4、由于藍(lán)牙技術(shù)越來越普及,特別是藍(lán)牙軟件可以安裝在PDA和便攜式電腦上,存放在PDA和便攜式電腦上的信息也越來越引起黑客的興趣。
二、 術(shù)語介紹
配對:配對是指兩個(gè)藍(lán)牙設(shè)備首次通訊時(shí),相互確認(rèn)的過程。兩個(gè)藍(lán)牙設(shè)備之間一經(jīng)配對之后,隨后的通訊連接就不必每次都要做確認(rèn),非常的方便。
PIN(Personal Identification Number):個(gè)人識別碼,藍(lán)牙使用的PIN碼長度為1-8個(gè)十進(jìn)制位(8-128比特)。
DB_ADDR:藍(lán)牙設(shè)備地址。每個(gè)藍(lán)牙收發(fā)器被分配了唯一的一個(gè)48位的設(shè)備地址,類似于PC機(jī)網(wǎng)卡的MAC地址。兩個(gè)藍(lán)牙設(shè)備在通訊開始時(shí)通過詢問的方式獲取對方的DB_ADDR地址。 三、 藍(lán)牙配對和認(rèn)證過程
藍(lán)牙支持三種安全模式,第一種是設(shè)備沒有任何安全措施的"無安全操作"模式。第二種是信道建立之前不需啟動安全協(xié)議的"業(yè)務(wù)級安全模式"。第三種是要求終端在鏈路建立前就需啟動安全協(xié)議的"鏈路級安全模式"。其中,最后“鏈路級安全模式”安全級別最高,本文所討論的就是針對這種級別的攻擊技術(shù)。
1、配對和認(rèn)證
藍(lán)牙通訊初始化過程需要三個(gè)步驟:生成初始密鑰(Kinit)、生成鏈路密鑰(Kab)和雙方認(rèn)證。接著,用加密密鑰來保護(hù)往后的通訊。在配對之前,需要事先將PIN碼輸入到藍(lán)牙設(shè)備中,在某些設(shè)備(像無線耳機(jī)),PIN是固定不可改變的。必須注意的是,兩邊的PIN必須匹配,否則不能通訊。下面我們將討論配對和雙方認(rèn)證的細(xì)節(jié)。
.生成初始密鑰(Kinit)
初始密鑰Kinit t長度為128位,由E22算法產(chǎn)生,圖1描述了生成Kinit密鑰的過程。首先提出通信要求的設(shè)備稱為主設(shè)備(Master),用A表示;被動進(jìn)行通信的設(shè)備稱為從設(shè)備(Slave),用B表示。從圖中可以看到,E22算法的輸入(明文)由以下三部分組成:
1)從設(shè)備的物理地址:BD_ADDR,在生成Kinit前,主設(shè)備通過詢問方式獲得從設(shè)備的地址BD_ADDR。
2)PIN碼及其長度,PIN碼是雙方設(shè)備預(yù)先設(shè)定的。
3)一個(gè)128位的隨機(jī)數(shù)(IN_RAND)。由主設(shè)備產(chǎn)生,并以明文方式傳送給從設(shè)備。
由于主、從設(shè)備使用了相同的E22算法,如果雙方設(shè)備以上三部分的值都相等,那么各自算出來的Kinit也應(yīng)該相同。
.生成鏈路密鑰Kab 見圖2,首先主設(shè)備A產(chǎn)生128位的隨機(jī)數(shù)LK_RANDA,從設(shè)備B也產(chǎn)生128位的隨機(jī)數(shù)LK_RANDB。在主設(shè)備A中,Kinit與LK_RANDA進(jìn)行位比特邏輯異或運(yùn)算,異或結(jié)果發(fā)送給B設(shè)備;同樣的,在B設(shè)備中,Kinit和LK_RANDB進(jìn)行位比特邏輯異或運(yùn)算,結(jié)果發(fā)送給A設(shè)備。通過這些交換后,A和B設(shè)備都具有相同的Kinit、LK_RANDA和LK_RANDB。按照圖2,設(shè)備A和B分別用E21算法將LK_RANDA和BD_ADDRA、LK_RANDB和BD_RANDRB加密,并將結(jié)果進(jìn)行異或得到Kab。圖2
相關(guān)文章
關(guān)于mysql 3.0的注射的一點(diǎn)思路
關(guān)于mysql 3.0的注射的一點(diǎn)思路...2007-01-01河南移動網(wǎng)絡(luò)客服系統(tǒng)驗(yàn)證碼的缺陷分析和利用!
河南移動網(wǎng)絡(luò)客服系統(tǒng)驗(yàn)證碼的缺陷分析和利用!...2007-01-01獲得leadbbs論壇站webshell后進(jìn)后臺最簡便之法
獲得leadbbs論壇站webshell后進(jìn)后臺最簡便之法...2007-01-01利用Session欺騙構(gòu)造最隱蔽的WebShell
利用Session欺騙構(gòu)造最隱蔽的WebShell...2007-01-01