|
網(wǎng)絡(luò)技術(shù)是從1990年代中期發(fā)展起來的新技術(shù),它把互聯(lián)網(wǎng)上分散的資源融為有機(jī)整體,實現(xiàn)資源的全面共享和有機(jī)協(xié)作,使人們能夠透明地使用資源的整體能力并按需獲取信息。資源包括高性能計算機(jī)、存儲資源、數(shù)據(jù)資源、信息資源、知識資源、專家資源、大型數(shù)據(jù)庫、網(wǎng)絡(luò)、傳感器等。 當(dāng)前的互聯(lián)網(wǎng)只限于信息共享,網(wǎng)絡(luò)則被認(rèn)為是互聯(lián)網(wǎng)發(fā)展的第三階段。 最近,國內(nèi)外多家網(wǎng)站紛紛刊登了一則關(guān)于針對藍(lán)牙PIN碼的最新攻擊技術(shù)的新聞:通過強制兩個正在通訊的藍(lán)牙設(shè)備進(jìn)行重新配對,并監(jiān)聽配對信息,攻擊者可以在0.063秒內(nèi)破解一個4位(十進(jìn)制)的PIN碼。今年6月上旬舉辦的世界無線技術(shù)會議也詳細(xì)討論了該攻擊方法,securityfocus 甚至說“這種新的攻擊技術(shù)令很多關(guān)注無線技術(shù)的信息安全專家非常的震驚,因為以前關(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)是一種實現(xiàn)多種設(shè)備之間短距離無線連接的協(xié)議,通訊速度快,廣泛應(yīng)用于無線設(shè)備、圖像處理、安全產(chǎn)品、消費娛樂、汽車產(chǎn)品和家用電器等領(lǐng)域。做為一種無線技術(shù),藍(lán)牙技術(shù)提供了諸如密鑰管理、認(rèn)證和保密等安全機(jī)制。然而,過去幾年,一些針對藍(lán)牙技術(shù)的攻擊方法被提出,包括信息漏泄、數(shù)據(jù)竊取、假冒攻擊等,藍(lán)牙技術(shù)的安全問題主要有以下幾點: 1、整個藍(lán)牙系統(tǒng)的安全性依耐于PIN碼的保密性。由于安全意識不高,用戶所選擇的PIN碼長度通常較短,導(dǎo)致PIN碼被破解的可能性大大增加。 2、 藍(lán)牙協(xié)議所使用的密碼算法是藍(lán)牙設(shè)計者自行發(fā)明的,這些密碼算法比較簡單。從密碼分析的角度看,一個成熟的密碼算法必須經(jīng)過長期的實踐才會被人們所認(rèn)可,由于缺乏測試,新的密碼算法有可能隱含著某種缺陷。 3 、藍(lán)牙適用于10米以內(nèi)的短距離通訊,攻擊者要想接近攻擊目標(biāo)確實比較困難。但設(shè)想在一個步行街上或者在一個堵車的環(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ù)語介紹 配對:配對是指兩個藍(lán)牙設(shè)備首次通訊時,相互確認(rèn)的過程。兩個藍(lán)牙設(shè)備之間一經(jīng)配對之后,隨后的通訊連接就不必每次都要做確認(rèn),非常的方便。 PIN(Personal Identification Number):個人識別碼,藍(lán)牙使用的PIN碼長度為1-8個十進(jìn)制位(8-128比特)。 DB_ADDR: 藍(lán)牙設(shè)備地址。每個藍(lán)牙收發(fā)器被分配了唯一的一個48位的設(shè)備地址,類似于PC機(jī)網(wǎng)卡的MAC地址。兩個藍(lán)牙設(shè)備在通訊開始時通過詢問的方式獲取對方的DB_ADDR地址。 [page_break]三、 藍(lán)牙配對和認(rèn)證過程 藍(lán)牙支持三種安全模式,第一種是設(shè)備沒有任何安全措施的"無安全操作"模式。第二種是信道建立之前不需啟動安全協(xié)議的"業(yè)務(wù)級安全模式"。第三種是要求終端在鏈路建立前就需啟動安全協(xié)議的"鏈路級安全模式"。其中,最后“鏈路級安全模式”安全級別最高,本文所討論的就是針對這種級別的攻擊技術(shù)。 1、配對和認(rèn)證 藍(lán)牙通訊初始化過程需要三個步驟:生成初始密鑰(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)一個128位的隨機(jī)數(shù)(IN_RAND)。由主設(shè)備產(chǎn)生,并以明文方式傳送給從設(shè)備。 由于主、從設(shè)備使用了相同的E22算法,如果雙方設(shè)備以上三部分的值都相等,那么各自算出來的Kinit也應(yīng)該相同。
[page_break].生成鏈路密鑰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)行位比特邏輯異或運算,異或結(jié)果發(fā)送給B設(shè)備;同樣的,在B設(shè)備中,Kinit和LK_RANDB進(jì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。
.雙向認(rèn)證 雙向認(rèn)證采用challenge-response(挑戰(zhàn)-應(yīng)答)方式。如圖3所示,主設(shè)備A為應(yīng)答方,從設(shè)備B為請求方。做為應(yīng)答方的A設(shè)備產(chǎn)生一個128位的隨機(jī)數(shù)AU_RANDA,并以明文方式傳送至B設(shè)備。A、B設(shè)備都用E1算法將各自得到的AU_RANDA、Kab和BD_ANDRB加密運算分別生成32位的SRESA和SRESB。B設(shè)備將結(jié)果SRESB傳送給A設(shè)備,A設(shè)備比較SRESA和SRESB,如果相等,此次認(rèn)證通過,否則認(rèn)證不通過。執(zhí)行完此次認(rèn)證后,A設(shè)備和B設(shè)備的角色對換,即A設(shè)備做為請求方,B設(shè)備做為應(yīng)答方,采用同樣的方式進(jìn)行認(rèn)證。 以上就是配對和雙方認(rèn)證過程,在這一過程中,我們提到了三個密碼算法E22、E21和E1,這三個算法都是根據(jù)SAFER+算法進(jìn)行少量的修改而成的。SAFER+算法屬于分組算法,明文塊為128位,提供了128、 192和256三種不同的密鑰長度,藍(lán)牙標(biāo)準(zhǔn)采用128位的密鑰。SAFER+包括: 1、KSA 一個密鑰調(diào)度算法,它產(chǎn)生17個不同的128位的密鑰 2、8輪運算 3、輸出變換 由最后一輪運算的輸出和最后一個密鑰異或而成。 有興趣的朋友可以參看有關(guān)介紹,這里不詳細(xì)介紹。
[page_break]四、 PIN攻擊方法 從第三部分對藍(lán)牙技術(shù)配對和雙方認(rèn)證過程的分析,我們可以看出,藍(lán)牙技術(shù)所用的認(rèn)證方 式屬于簡單的弱認(rèn)證方式,其安全性完全依賴于PIN碼的保密性。 這一部分我們討論攻擊者通過收集必要的消息是怎么樣用暴力破解方式猜測PIN的。 表中列出了在配對和認(rèn)證過程中,兩個藍(lán)牙設(shè)備A和B之間交換的通訊消息。
第一步、列舉出所有可能的PIN值,如果假定PIN長度為4位,那么可能的PIN取值從0000到9999之間。 第二步、按照順序取PIN列表中的第一個值,并取得消息IN_RAND和BD_ADDR,就可以通過E22(注意:E22算法是公開的)算法,計算得到Kinit。 第三步、根據(jù)消息2和消息3,由上面計算得到的Kinit,反推計算出LK_RANDA和LK_RANDB 第四步、根據(jù)LK_RANDA和LK_RANDB以及兩個設(shè)備的物理地址等信息,計算得到Kab。 第五步、由Kab和消息4(AU_RANDA),計算得到SRES,并與信息5的SRES比較。 同樣的,用Kab和AU_RANDB,計算得到SRES,并與信息7進(jìn)行比較。 第六步、如果第五步的消息比較相等,則給定的PIN是正確的;如果不匹配,回到第二步,取PIN列表的下一個PIN,重復(fù)第二步后的步驟,直到找到個正確的PIN為止。 [page_break]五、 破解效率 在破解密碼實踐中,破解效率是很重要的。試想,如果攻擊一個藍(lán)牙PIN碼需要幾天的時間, 意義就不大了。成功破解PIN的效率與攻擊所用機(jī)器的性能和所采用的攻擊方法有關(guān)。研究人員選取了以下的測試環(huán)境: 1、硬件:奔騰III 450MHz,個人PC機(jī) 2、操作系統(tǒng):win98 3、編譯器:VC++ 注意到,這個測試環(huán)境的性能是很一般的。研究人員采用了五種攻擊方法,分別是as-is version、Basic Version、KSA+ Expansion、PHT Lookup Table和Algebraic Manipulation。對于每一種攻擊方法,都選取4、5、6、7位不同的PIN做測試。測試結(jié)果令人驚訝,破解4位的PIN最快只需要0.27秒(使用Algebraic Manipulation攻擊方式)。研究人員又在一臺奔騰IV3GMHz的機(jī)器上進(jìn)行測試,測試結(jié)果顯示,破解4位的PIN僅僅需要0.063秒,比奔騰III環(huán)境測試快了4倍。 六、 強制配對攻擊 我們在第四部分所分析的“PIN攻擊方法”屬被動攻擊,存在一定的局限性,攻擊者必須在 兩個藍(lán)牙設(shè)備配對和認(rèn)證過程中監(jiān)聽到所有的消息才可以進(jìn)行下一步的破解,而配對和認(rèn)證過程通常很短,這種情況給攻擊者帶來很多麻煩。 為消除這種局限性,研究人員想到了一種主動攻擊方法,與其守候配對時期的到來,不如強制藍(lán)牙設(shè)備進(jìn)行配對。這種強制配對攻擊的方法使得PIN破解成為隨心所欲的事。 我們來分析這種方法,如果兩臺設(shè)備已進(jìn)行了配對,這就意味著雙方已創(chuàng)建并保存了鏈路密鑰(Kab),以后的通訊并不需要創(chuàng)建Kab,而是直接進(jìn)入認(rèn)證階段。根據(jù)藍(lán)牙設(shè)備內(nèi)核的不同,有三種強制重新配對的攻擊方法。 方法一:根據(jù)前面所述,配對完成后,接下來的通訊不需要再進(jìn)行配對,而是直接進(jìn)行雙方認(rèn)證,此時,主設(shè)備A發(fā)送AU_RAND給從設(shè)備B,并等待B設(shè)備發(fā)來SRES,以便進(jìn)行比較和認(rèn)證。藍(lán)牙技術(shù)標(biāo)準(zhǔn)規(guī)定:如果藍(lán)牙設(shè)備丟失鏈路密鑰(Kab),應(yīng)發(fā)送LMP_not_accepted消息告知對方,對方收到此消息后會自動進(jìn)行重新配對。如果在主設(shè)備A發(fā)送AU_RAND給從設(shè)備B后,攻擊者立即發(fā)送偽造了的LMP_not_accepted消息給設(shè)備A,設(shè)備A誤認(rèn)為此消息是設(shè)備B發(fā)來,并進(jìn)入重新配對。 方法二:在認(rèn)證階段,攻擊者在A設(shè)備向B設(shè)備發(fā)送AU_RAND前,偽造A設(shè)備向B設(shè)備發(fā)送IN_RAND消息。B設(shè)備誤以為A設(shè)備丟失了鏈路密鑰Kab,于是迫使配對過程重新開始。 方法三:同樣是在認(rèn)證階段,主設(shè)備A發(fā)送AU_RAND消息給從設(shè)備B,并等待從設(shè)備返回SRES。如果在主設(shè)備收到B設(shè)備返回SRES之前,攻擊者仿造從設(shè)備向主設(shè)備發(fā)出一個隨機(jī)的SRES,主設(shè)備將收到的SRES與設(shè)備自身計算的SRES進(jìn)行比較,比較結(jié)果不一樣,主設(shè)備于是重新要求認(rèn)證,當(dāng)認(rèn)證失敗次數(shù)達(dá)到一定數(shù)量時,配對過程會重新啟動。 七、防范建議 至此,我們介紹了藍(lán)牙技術(shù)的配對和認(rèn)證過程,并分析了PIN破解和三種強制重新配對攻擊 的原理、細(xì)節(jié)。比起互聯(lián)網(wǎng)黑客工具的泛濫,藍(lán)牙攻擊的實例并不多,到目前為此,針對本文所介紹的攻擊方法的工具還沒有出現(xiàn),但隨著藍(lán)牙應(yīng)用的普及,我們有理由相信,針對藍(lán)牙技術(shù)和藍(lán)牙設(shè)備的攻擊工具會越來越多。因此,一方面,我們希望藍(lán)牙設(shè)計者增強藍(lán)牙技術(shù)的安全性;另一方面,終端用戶應(yīng)該提高安全意識,做到以下幾點: 1、 使用大于4位十進(jìn)制數(shù)字的PIN。 2、 當(dāng)出現(xiàn)藍(lán)牙設(shè)備要求重新輸入PIN的情況,要非常的小心,因為這可能是黑客正在進(jìn)行強制重新配對攻擊。 3、大數(shù)的藍(lán)牙設(shè)備將在配對過程中生成的Kab保存在非易失的內(nèi)存中,以后的的通訊都使用這個Kab,此種模式減少了配對的次數(shù)。然后藍(lán)牙標(biāo)準(zhǔn)還提供了另一種模式,要求每次通訊都需要進(jìn)行配對,這種模式提高了配對過程中交換的消息被竊聽的風(fēng)險,建議不要使用這種配對方式 網(wǎng)絡(luò)的神奇作用吸引著越來越多的用戶加入其中,正因如此,網(wǎng)絡(luò)的承受能力也面臨著越來越嚴(yán)峻的考驗―從硬件上、軟件上、所用標(biāo)準(zhǔn)上......,各項技術(shù)都需要適時應(yīng)勢,對應(yīng)發(fā)展,這正是網(wǎng)絡(luò)迅速走向進(jìn)步的催化劑。 |
溫馨提示:喜歡本站的話,請收藏一下本站!