5. BLE 配对机制
BLE 的配对过程是在 Master 和 Slave 建立连接之后由 Master 发起的,Slave 负责响应,但 Slave 也可以主动请求 Master 发起配对过程。
配对的最终目的是产生一个对称密钥,这样 Master 和 Slave 之间传递的消息就能够加密、认证,从而防止监听、篡改和中间人攻击。
5.1. 密码学基础
需要了解对称密钥,DH(diffile-hellman)密钥交换算法,ECDH(椭圆曲线diffile-hellman)密钥交换算法,消息认证码,认证加密 CCM 。
学习:BLE安全机制从入门到放弃 。
5.2. SMP
配对特性交换
TK 交换方式
TK(Temporary Key) 是临时密钥,由 Master 和 Slave 相互协商得到,共有 4 种:
Just Works
Passkey
Out-of-Band(OOB)
Numeric Comparison
学习:Bluetooth Pairing Part 2 Key Generation Methods 。
Just Works
在此模式下,TK 为固定值 0000,此时的配对没有任何安全性可言,仅仅能够工作。
Passkey
Passkey:通常为手动输入一串 TK 数字,这样 Central 和 Peripheral 就能够拥有相同的 TK 了,可以一端显示另一端输入,也可以两端同时输入。
学习:Bluetooth Pairing Part 3 – Low Energy Legacy Pairing Passkey Entry 。
Out-of-Band(OOB)
OOB:Out-of-Band,翻译过来就是带外,使用非 BLE 技术传输配对信息,例如 NFC、QRCode 。
Numeric Comparison
Numeric Comparison:Central 和 Peripheral 通过 DCEH 密钥配送技术得到保证机密性,然后两端同时输出配对码,等待使用者确认配对码是否匹配。
学习:Bluetooth Pairing Part 4: Bluetooth Low Energy Secure Connections – Numeric Comparison 。