藍(lán)牙安全簡單配對的解釋

Secure Simple Pairing Explained原文

介紹

基于PIN碼的藍(lán)牙配對的第一個(gè)版本沒有提供任何真正的安全防范嗅探芽唇。像Ellisys藍(lán)牙瀏覽器400這樣的嗅探器能夠通過被動(dòng)地嗅探配對過程來自動(dòng)立即確定PIN碼并推出鏈路密鑰(Link Key)倘核。

隨著藍(lán)牙越來越廣泛浪读,安全配對方法成為確保技術(shù)長期成功的難點(diǎn)纷纫。在藍(lán)牙2.1規(guī)范中引入牲尺,安全簡單配對(SSP)修復(fù)了以前配對方法的所有問題宪卿,并使藍(lán)牙設(shè)備配對比以往任何時(shí)候都更簡單乘寒。

更強(qiáng)大的安全性也意味著藍(lán)牙工程師面臨新的挑戰(zhàn)望众。在現(xiàn)場調(diào)試現(xiàn)成的設(shè)備變得難以實(shí)現(xiàn)。

事情并沒有像他們看起來那樣糟糕伞辛。本文旨在介紹SSP的基礎(chǔ)知識烂翰,并清除藍(lán)牙社區(qū)中常見的一些誤解。

配對過程

配對設(shè)備的過程旨在在兩個(gè)藍(lán)牙設(shè)備之間創(chuàng)建共享密鑰:鏈路密鑰(Link Key)蚤氏。然后甘耿,該鏈路密鑰(Link Key)用于彼此認(rèn)證設(shè)備并加密交換的數(shù)據(jù)。數(shù)據(jù)實(shí)際上并沒有使用鏈路密鑰(Link Key)直接加密;臨時(shí)加密密鑰(Encryption Key)從鏈路密鑰(Link Key)和在加密通信流開始之前不久交換的隨機(jī)數(shù)導(dǎo)出竿滨。然后佳恬,該加密密鑰(Encryption Key)用于在兩個(gè)方向上加密數(shù)據(jù)∮谟危可以在連接處于活動(dòng)狀態(tài)的任何時(shí)候更改它毁葱,一旦連接關(guān)閉,或者如果加密停止贰剥,將被丟棄倾剿。

藍(lán)牙規(guī)范定義了兩種標(biāo)準(zhǔn)配對過程,LMP配對(也稱為基于PIN碼)和SSP蚌成。非標(biāo)準(zhǔn)配對方法也是可能的前痘,但是要求兩個(gè)設(shè)備來自同一制造商。任何配對方法的結(jié)果都是一樣的:創(chuàng)建共享的鏈路密鑰(Link Key)担忧。

一旦兩個(gè)設(shè)備擁有相同的鏈路密鑰(Link Key)芹缔,該共享密鑰可以用于在稍后的時(shí)間將兩個(gè)設(shè)備重新認(rèn)證。當(dāng)重新連接時(shí)涵妥,設(shè)備通過交換從其派生的數(shù)字來快速驗(yàn)證它們都具有相同的鏈路密鑰(Link Key)乖菱。如果鏈路密鑰(Link Key)匹配,則可以繼續(xù)創(chuàng)建會話密鑰(Session Key)蓬网。否則窒所,配對過程(LMP配對或SSP)必須從一開始重新啟動(dòng),從而創(chuàng)建一個(gè)全新的鏈路密鑰(Link Key)帆锋。

LMP配對(又名PIN碼)

用于創(chuàng)建LMP配對的鏈路密鑰(Link Key)的算法的輸入如下:

  • 兩臺設(shè)備的BD_ADDR
  • 由發(fā)起者創(chuàng)建的16字節(jié)隨機(jī)數(shù)
  • 用戶在兩臺設(shè)備上輸入的PIN碼(用戶無法更改PIN碼的“固定PIN碼”除外)

這些數(shù)字用于首先創(chuàng)建臨時(shí)共享初始化密鑰( temporary shared initialization key)吵取,然后使用LMP配對密鑰生成過程將其轉(zhuǎn)換為鏈路密鑰(Link Key)。

由于唯一未公開的信息是PIN碼锯厢,可能的秘密鏈路密鑰(Link Key)的數(shù)量受可能的PIN碼的數(shù)量的限制皮官。如果設(shè)備使用4位PIN碼脯倒,則攻擊者只需要在能夠解密通信流之前最多嘗試10,000個(gè)不同的鏈路密鑰(Link Key)。這是LMP配對的弱點(diǎn)所在捺氢。

LMP配對過程由以下圖表描述:

PIN碼不是通過空中傳送的唯一信息藻丢。這是Ellisys嗅探器捕獲的相同通信流:

基于此捕獲的信息,Ellisys軟件能夠自動(dòng)確定PIN碼并計(jì)算鏈路密鑰(Link Key)摄乒,而無需任何用戶交互悠反。Ellisys軟件的結(jié)果如下:

之后,Ellisys軟件將自動(dòng)解密任何后續(xù)安全連接的數(shù)據(jù)馍佑。此過程在下面的“已認(rèn)證連接”一章中描述斋否。

確保簡單配對

SSP使用一種更加精細(xì)的機(jī)制,稱為橢圓曲線密碼術(shù)拭荤,避免使用PIN碼作為鏈路密鑰(Link Key)計(jì)算過程的一部分(PIN碼或其他用戶碼仍然可以用作認(rèn)證過程的一部分)茵臭,而是使用極大的隨機(jī)數(shù)來給Link Key計(jì)算做種子。因此舅世,可能的鏈路密鑰(Link Key)的數(shù)量不再限于小于2^128的可能性旦委,這遠(yuǎn)遠(yuǎn)超出了任何現(xiàn)實(shí)的攻擊者能力。

為了實(shí)現(xiàn)這一點(diǎn)歇终,SSP過程開始于在兩個(gè)設(shè)備之間建立不同種類的共享秘密社证。這個(gè)共享秘密被稱為Diffie-Hellman密鑰(DHKey),是一個(gè)192位隨機(jī)數(shù)评凝。作為先決條件,兩個(gè)設(shè)備每個(gè)都具有私鑰和公鑰腺律。公共密鑰是通過空中傳播的奕短,任何人都可以知道,但私鑰永遠(yuǎn)不會被披露匀钧。我們將這兩個(gè)Key稱為SSP公鑰/私鑰對翎碑,但這些也稱為Diffie-Hellman公鑰/私鑰對(Diffie和Hellman是開發(fā)該算法的兩個(gè)人)。

用于創(chuàng)建SSP密鑰對的精心選擇的數(shù)學(xué)空間和算法使得:

  • 非常困難(即不可能使用當(dāng)前最先進(jìn)的計(jì)算機(jī))使用公鑰計(jì)算私鑰(但是很容易根據(jù)私鑰計(jì)算公鑰)

  • 給定兩個(gè)SSP密鑰對A和B之斯,存在一個(gè)眾所周知的函數(shù)F日杈,使得F(PublicA,PrivateB)= F(PublicB佑刷,PrivateA)莉擒。這個(gè)函數(shù)的結(jié)果是DHKey。只有擁有A和B的兩個(gè)設(shè)備能夠計(jì)算出相同的DHKey瘫絮。

這是SSP的神奇之處:兩臺設(shè)備將能夠進(jìn)行配對涨冀,而無需通過空中傳輸任何關(guān)鍵信息,且無需通過帶外機(jī)制(例如鍵入它)在鍵盤上共享該信息)麦萤。DHKey將用作計(jì)算鏈路密鑰(Link Key)的種子鹿鳖。配對過程的其余部分與LMP配對相似扁眯。

SSP配對過程由以下圖表描述:

這是Ellisys嗅探器捕獲的同一通信流:

嗅探器不知道的唯一信息(為了從通過空中傳輸?shù)耐ㄐ帕饔?jì)算鏈路密鑰(Link Key))是SSP私鑰。實(shí)際上翅帜,只需要兩個(gè)SSP私鑰中的一個(gè)來確定DHKey姻檀,因此需要鏈路密鑰(Link Key)。如果用戶將其設(shè)備的SSP私鑰提供給Ellisys分析軟件涝滴,則將自動(dòng)推斷從本設(shè)備與任何其他設(shè)備配對的鏈路密鑰(Link Key)绣版。

另一種方法是使用SSP調(diào)試模式。我們現(xiàn)在了解SSP的基礎(chǔ)知識狭莱,了解SSP調(diào)試模式很簡單僵娃。置于SSP調(diào)試模式的設(shè)備將不會使用其通常的SSP私鑰/公鑰對,而會使用SSP調(diào)試模式私鑰/公鑰對腋妙。如果兩個(gè)設(shè)備中的任一個(gè)置于SSP調(diào)試模式下默怨,Ellisys嗅探器將能夠通過識別通過空中發(fā)送的調(diào)試模式公鑰并使用相應(yīng)的公鑰來自動(dòng)推導(dǎo)出配對產(chǎn)生的鏈路密鑰(Link Key)。使用SSP調(diào)試模式或提供兩個(gè)SSP私鑰之一是完全相同的骤素。

以下屏幕截圖顯示了當(dāng)使用SSP調(diào)試模式時(shí)Ellisys軟件發(fā)現(xiàn)的Link Key:

認(rèn)證連接

配對后匙睹,兩臺設(shè)備共享相同的鏈路密鑰(Link Key)。然后济竹,這些設(shè)備可以使用鏈路密鑰(Link Key)進(jìn)行身份驗(yàn)證(以確保其他設(shè)備確實(shí)是其所說的)痕檬,并導(dǎo)出加密密鑰(Encryption Key)(以保護(hù)由兩個(gè)設(shè)備交換的數(shù)據(jù))。

數(shù)據(jù)在LMP_start_encryption請求之后被加密送浊。完整的啟動(dòng)加密過程如下圖所示:

Ellisys軟件中顯示的同一通信流:

有趣的是梦谜,數(shù)據(jù)包將在LMP_start_encryption請求之后被加密,所以即使LMP_accepted的握手也將被加密袭景。以下屏幕截圖顯示哪些數(shù)據(jù)包已加密唁桩。當(dāng)鎖圖標(biāo)為藍(lán)色時(shí),這意味著數(shù)據(jù)包是純文本(未加密的)耸棒。當(dāng)鎖圖標(biāo)為綠色時(shí)荒澡,表示數(shù)據(jù)包已成功解密。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末与殃,一起剝皮案震驚了整個(gè)濱河市单山,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌幅疼,老刑警劉巖米奸,帶你破解...
    沈念sama閱讀 218,122評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異衣屏,居然都是意外死亡躏升,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評論 3 395
  • 文/潘曉璐 我一進(jìn)店門狼忱,熙熙樓的掌柜王于貴愁眉苦臉地迎上來膨疏,“玉大人一睁,你說我怎么就攤上這事〉枞矗” “怎么了者吁?”我有些...
    開封第一講書人閱讀 164,491評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長饲帅。 經(jīng)常有香客問我复凳,道長,這世上最難降的妖魔是什么灶泵? 我笑而不...
    開封第一講書人閱讀 58,636評論 1 293
  • 正文 為了忘掉前任育八,我火速辦了婚禮,結(jié)果婚禮上赦邻,老公的妹妹穿的比我還像新娘髓棋。我一直安慰自己,他們只是感情好惶洲,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,676評論 6 392
  • 文/花漫 我一把揭開白布按声。 她就那樣靜靜地躺著,像睡著了一般恬吕。 火紅的嫁衣襯著肌膚如雪签则。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,541評論 1 305
  • 那天铐料,我揣著相機(jī)與錄音渐裂,去河邊找鬼。 笑死钠惩,一個(gè)胖子當(dāng)著我的面吹牛芯义,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播妻柒,決...
    沈念sama閱讀 40,292評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼耘分!你這毒婦竟也來了举塔?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,211評論 0 276
  • 序言:老撾萬榮一對情侶失蹤求泰,失蹤者是張志新(化名)和其女友劉穎央渣,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體渴频,經(jīng)...
    沈念sama閱讀 45,655評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡芽丹,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,846評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了卜朗。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片拔第。...
    茶點(diǎn)故事閱讀 39,965評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡咕村,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出蚊俺,到底是詐尸還是另有隱情懈涛,我是刑警寧澤,帶...
    沈念sama閱讀 35,684評論 5 347
  • 正文 年R本政府宣布泳猬,位于F島的核電站批钠,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏得封。R本人自食惡果不足惜埋心,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,295評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望忙上。 院中可真熱鬧拷呆,春花似錦、人聲如沸晨横。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽手形。三九已至啥供,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間库糠,已是汗流浹背伙狐。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留瞬欧,地道東北人贷屎。 一個(gè)月前我還...
    沈念sama閱讀 48,126評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像艘虎,于是被迫代替她去往敵國和親唉侄。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,914評論 2 355

推薦閱讀更多精彩內(nèi)容