我试图制作一个实际配对安全的BLE设备。据我所知,传输加密(使用AES)在所有版本的BLE中都是安全的,一旦长期密钥'已被交换。
BLE 4.1及更早版本使用对称加密技术,密钥(PIN)只有6位数,因此在配对brute-force the passkey上被动窃听并从中导出LTK是微不足道的。这似乎是设计不安全,因为人们认为低功率BLE设备没有足够的能力进行非对称加密。
BLE 4.2添加了“安全连接”#39;当蓝牙2.1中使用相同的配对方法时,这显然是also broken以及更多it was broken in 2008!它并没有完全打破配对 - 只有密钥输入方法 - 你只学习密钥,而不是LTK。但是如果每次配对尝试都没有更改密钥,它确实允许攻击者执行MitM攻击。
带外配对方法将是一个很好的选择,然后我可以使用QR码或其他东西。但是,在Android或iOS上没有公共API来访问OOB方法。 Android支持通过NFC进行OOB配对,但iOS不支持,因此不会出现。
似乎剩下的唯一选择是实现自定义加密方案,但这是一项荒谬的工作。
我的问题是:
为什么Bluetooth SIG在BLE 4.2中指定了一种配对方法,这种方法在6年前就已经不安全了?
是否有任何现有的BLE加密方案可以保护它?理想的开源和经过充分测试,但可以是商业的。我还能使用关贸总协定吗?