微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

蓝牙用于加密数据的协议是什么?

如何解决蓝牙用于加密数据的协议是什么?

我一直在寻找蓝牙(EDR 和 LE)用来加密数据的协议。我看过官方文档,但不清楚是 Diffie Hellman 还是 E0。

PD:如果我没记错的话,协议实现的情况不同,我需要当两个设备共享 6 位简单密码时,例如,当我们将智能手机与耳机配对或一个演讲者。

解决方法

错位的问题

首先,这个问题不适合在SO上问,因为它根本不涉及任何编码问题,而是指规范。尽管如此,我还是会给你一个答案。


不要误将加密用于密钥交换/生成

Diffie–Hellman key exchange(或 Elliptic-Curve Diffie–Hellman (ECDH),如果在椭圆曲线上运行) - 正如其名称所述 - 一种用于交换/生成加密密钥材料的协议。这与实际的数据加密无关,也与实际的数据完整性无关。

E0 另一方面是一种用于实际加密数据的加密算法 - 但也不是用于加密数据的身份验证(完整性)。

BR/EDR

关于 BR/EDR 密钥交换、身份验证和加密,您可以在 [BR/EDR 控制器] 安全规范(蓝牙核心)中的表 1.1:安全算法中找到一个很好的概述规范版本 5.2 [Vol 2] Part H [Section 1])

为您总结一下,安全机制 LegacySecure Simple Pairing 都使用 E0 进行加密,而 Secure Connections 使用 {{1 }}。

请注意,AES-CCMSecure Simple Pairing 都使用 Secure Connections 来生成密钥,而 ECDH 使用 Legacy

LE

LE 链路层上的加密使用 SAFER+ 执行,如[低能耗控制器] 低能耗链路层安全性(蓝牙核心规范版本 5.2 [Vol 6] Part E)中所述.

链路层上的实际加密需要一些加密密钥,这些密钥在配对期间使用[主机]安全管理器规范(蓝牙核心规范版本 5.2 [Vol 3] Part H)中描述的方法派生/计算

总结一下,有AES-CCM(Short Term Key (STK) Generation)和LE legacy pairing(Long Term Key (LTK) Generation)。

请注意,两者都与密钥生成/交换有关,而 LE Secure Connections 使用(以某种方式)LE legacy pairingAES 使用 LE Secure Connections

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。