BLE藍芽中的安全連線(Secure Connections)
阿新 • • 發佈:2019-02-08
BLE關於安全的發展歷史
藍芽Core 5.0已經發布,目前來看安全相關的內容沒有太多改變
BLE作為一個新發展出來的分支,作為一個新興的事務,關於安全的修改並不是特別多,僅僅在Core 4.2中有所增補
4.0提出BLE,並且採用配對認證的方式(密碼輸入、數字比較、直接工作),加密採用AES-CCM,從加密的角度來看加密程度已經很高,但是認證階段的加密程度似乎還有待加強,於是在4.2中將BR/EDR的SC機制引入過來
從Core 4.2中可以看出引入了Secure Connections安全機制,簡稱SC
從藍芽的發展歷史來看SC也並非是新技術,在BR/EDR中早在Core 4.1已經提出
Secure Connections安全機制簡介
SC最先提出在BR/EDR中,追溯其起源可以到Core 2.1,在Core 2.1之前,加密認證方式所有的安全均建立在0-16位的數字上,存在被破解的風險,於是人們提出了SSP(Secure Simple Pairing),SSP是一種在傳統認證基礎上改進過來的認證加密方式
如上圖,SSP的改變主要在於認證階段,採用橢圓曲線非對稱加密方式,交換公鑰、存留私鑰、公鑰結合私鑰計算共享金鑰的方式進行認證,最終認證通過後由共享金鑰生成連線金鑰(Link Key)
可以發現在認證加密過程中金鑰的生成存在隨機性,並且使用者都不會直接接觸到金鑰,大大的提高了其安全係數,並且橢圓曲線非對稱加密演算法其加密程度也非常高,在此基礎上,配對的安全係數提高了加密過程依然採用傳統的E0演算法,直到在Core 4.1中將BLE的AES-CCM加密演算法引入過來,將SSP認證與AES-CCM加密結合,提出了SC加密認證機制
上述為BR/EDR中SC的發展過程,在Core 4.2中,BLE直接將BR/EDR的SC安全機制借鑑過來,提出LE Secure Connections
新提出的安全機制對於BLE來講,改變的僅僅是配對階段,加密階段原本BLE就是使用的AES-CCM
LE Secure Connections
主要有以下步驟: 1.Public Key Exchange2.Authentication Stage 1
3.Long Term Key Calculation
4.Authentication Stage 2
1.首先配對雙方進行公鑰交換 2.接著根據雙方IO能力選項(輸入數字、比較數字、直接工作)的方式進行階段1認證
LE Secure Connections 新增PDU
用於傳遞ECDH P-256演算法生成的公鑰
用於對DHKey進行認證 關於ECDH認證機制,可以參考NIFS的相關文件,或者後續文章