由于個(gè)人生產(chǎn)設(shè)備的快速蔓延,使用藍(lán)牙設(shè)備的頻率和數(shù)量也在不斷的增長,這對藍(lán)牙通信安全性提出了更高的要求。隨著藍(lán)牙官方協(xié)議版本的迭代,經(jīng)典藍(lán)牙信息安全模型也在不段更新和完善。本文主要講述經(jīng)典藍(lán)牙技術(shù)安全相關(guān)內(nèi)容。
1
藍(lán)牙安全模型
目前,藍(lán)牙安全模型主要分為五個(gè)安全部分:
認(rèn)證(Authentication):建立設(shè)備間的信任關(guān)系,證明正在通訊的設(shè)備是真正的設(shè)備而不是其他冒名的設(shè)備。
保密性(Confidentiality):對傳輸?shù)臄?shù)據(jù)加密,確保內(nèi)容不被竊聽者獲取。
授權(quán)(Authorization):是否允許對端設(shè)備通過建立的鏈接操作本地的數(shù)據(jù)項(xiàng)。
數(shù)據(jù)完整性(Integrity):確認(rèn)收到的數(shù)據(jù)就是對端發(fā)送的數(shù)據(jù)。
配對/綁定(Pairing/Bonding):創(chuàng)建一個(gè)或多個(gè)共享密鑰并存儲(chǔ)用于后續(xù)連接,以形成可信設(shè)備。
2
經(jīng)典藍(lán)牙安全機(jī)制
藍(lán)牙核心安全架構(gòu)隨著時(shí)間的推移而發(fā)展,已經(jīng)有多種安全機(jī)制。
早期BR/EDR使用legacy pairing方式進(jìn)行配對,該方式基于E21或E22算法進(jìn)行。E21和E22均基于E1算法。通信加密則利用了MasseyRueppel 算法衍生的e0算法。這種方式局限于無法提供加密消息的完整性。目前,出于加密安全的考慮,使用較多的是Secure Simple Pairing (SSP),其使用ECDH生成Link Key。且在4.0版本之前使用P-192 Elliptic Curve計(jì)算Link Key,設(shè)備認(rèn)證和加密算法與2.0+EDR相同。4.1版本引入Secure connection功能,使用P-256 Elliptic Curve計(jì)算Link Key,通過AES-CCM進(jìn)行加密。
SSP提供了四種關(guān)聯(lián)模型:Numeric Comparison、Passkey Entry、Just Works以及Out of Band (OOB)。
Numeric Comparison:兩個(gè)藍(lán)牙設(shè)備顯示6位數(shù)字,用戶選擇“是”或“否”,與使用PIN的區(qū)別是顯示的數(shù)字不作為計(jì)算Link Key的條件,因此竊聽者也不能用它生成連接或者密鑰。
Passkey Entry:一個(gè)設(shè)備有輸入能力另外一個(gè)有顯示能力使用此模型,和Numeric Comparison一樣,傳輸?shù)?位數(shù)字不作為計(jì)算Link Key的條件,所以對竊聽者也沒有作用。
Just Works:沒有輸入和顯示的設(shè)備適用此模型,與Numeric Comparison在認(rèn)證階段1相同,因?yàn)闆]有顯示,不能對比兩個(gè)設(shè)備上的數(shù)值就接受了連接,因此不能提供MITM保護(hù)。
Out of Band (OOB):通過有線或者NFC等其他方式進(jìn)行設(shè)備的發(fā)現(xiàn)和加密數(shù)據(jù)的交換。
SSP流程圖
SSP生成Link Key流程
總共分為三步:
每個(gè)設(shè)備各自計(jì)算自己的公-私密鑰,雙方都支持安全連接使用P-256 elliptic curves 否則 P-192 curves。
1:每個(gè)設(shè)備發(fā)送public key給對方。這里public key的依賴于橢圓加密算法,每次連接時(shí)隨機(jī)生成。
2:執(zhí)行authentication stage 1。
3:第一個(gè)設(shè)備計(jì)算出確認(rèn)值E1并發(fā)送給設(shè)備2,設(shè)備2對E1 進(jìn)行驗(yàn)證,驗(yàn)證通過后,設(shè)備二計(jì)算確認(rèn)值E2并發(fā)給第一個(gè)設(shè)備。
4:如果E2檢查通過,那么雙方就進(jìn)行Link Key的計(jì)算。
01
認(rèn)證
藍(lán)牙的認(rèn)證過程使用challenge–response scheme(質(zhì)詢-響應(yīng))方式,這個(gè)方式通過驗(yàn)證Link Key的方式驗(yàn)證設(shè)備。
認(rèn)證流程有2種:Legacy Authentication和Secure Authentication(雙方都支持安全連接使用此流程)
如果認(rèn)證失敗,藍(lán)牙設(shè)備會(huì)間隔一段時(shí)間后重試,間隔時(shí)間會(huì)成指數(shù)級(jí)增長,以避免攻擊。
02
傳統(tǒng)身份驗(yàn)證
當(dāng)使用傳統(tǒng)配對或者P-192進(jìn)行SSP配對時(shí)使用此流程。
Step 1:verifier發(fā)送128bit的隨機(jī)數(shù)(AU_RAND)質(zhì)詢claimant。
Step 2:claimant使用 “E1 algorithm”,通過輸入48bit的mac地址、Link Key、AU_RAND來計(jì)算認(rèn)證響應(yīng)。Verifier也執(zhí)行相同的流程。E1輸出的高32位用于身份驗(yàn)證。剩余的96位時(shí)ACO,用于創(chuàng)建加密密鑰。
Step 3:E1輸出的高32位,即the Signed Response (SRES),發(fā)送給Verifier。
Step 4:Verifier拿自己的SRES與claimant的SRES進(jìn)行比較。
Step 5:如果相同則認(rèn)證成功否則失敗。
03
安全認(rèn)證
使用P-256 Elliptic Curve進(jìn)行SSP執(zhí)行此流程。
Step 1:Master發(fā)送128bit的隨機(jī)數(shù)RAND_M給Slave
Step 2:Slave 發(fā)送RAND_S給Master
Step 3:Master和Slave都利用“h4 and h5 algorithms”計(jì)算認(rèn)證響應(yīng)。以Master的MAC地址,Slave的mac地址、RAND_S、RAND_M、Link Key作為輸入。h5輸出的高32位用于驗(yàn)證,其余96位作為Authenticated Ciphering Offset (ACO) 用于創(chuàng)建密鑰。
Step 4:Slave把SRES_slave 傳給master
Step 5:Master吧SRES_master傳給Slave
Step 6:Master和Slave拿自己的SRES與對方的進(jìn)行比較
Step 7:相同則認(rèn)證成功,否則失敗。
3
經(jīng)典藍(lán)牙的保密性
處理配對和認(rèn)證之外藍(lán)牙還有單獨(dú)的保密服務(wù),防止數(shù)據(jù)包被監(jiān)聽。
Encryption Mode 1 — 沒有任何保加密
Encryption Mode 2—Individually addressed traffic is encrypted using encryption keys based on individual link keys; broadcast traffic is not encrypted.
Encryption Mode 3—All traffic is encrypted using an encryption key based on the master link key.
模式2和3使用E0或者AES_CCM加密機(jī)制。
AES_CCM是一種對稱密鑰加密算法,用于保護(hù)通信中傳輸?shù)臄?shù)據(jù)的機(jī)密性和完整性。它廣泛應(yīng)用于無線通信協(xié)議如藍(lán)牙(Bluetooth)和Wi-Fi等中,為4.0版本之后新加入的加密機(jī)制。
AES_CCM是基于AES算法(Advanced Encryption Standard)和CCM模式(Counter with CBC-MAC mode)的組合設(shè)計(jì)。AES算法是一種分組密碼算法,通過多輪置換和混淆的方式進(jìn)行加密和解密。CCM模式則是一種加密模式,它使用計(jì)數(shù)器和CBC-MAC模式對數(shù)據(jù)進(jìn)行加密和驗(yàn)證,同時(shí)提供了認(rèn)證和傳輸機(jī)密性保護(hù)功能。
下圖為藍(lán)牙packet中AES_CCM與E0的加密范圍和流程:
需要注意的是,AES_CCM算法僅提供對數(shù)據(jù)的機(jī)密性和完整性保護(hù),而無法提供絕對的安全性。如同時(shí)使用質(zhì)詢機(jī)制等其他安全措施可以增強(qiáng)安全性。
-
藍(lán)牙
+關(guān)注
關(guān)注
114文章
5809瀏覽量
170193 -
算法
+關(guān)注
關(guān)注
23文章
4607瀏覽量
92840 -
泰凌微
+關(guān)注
關(guān)注
7文章
147瀏覽量
10806
原文標(biāo)題:【技術(shù)專欄】泰凌微電子經(jīng)典藍(lán)牙技術(shù)安全知識(shí)講解
文章出處:【微信號(hào):telink-semi,微信公眾號(hào):泰凌微電子】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評(píng)論請先 登錄
相關(guān)推薦
評(píng)論