BLE LTK和CSRK都用于加密数据包,两者有什么区别?
时间: 2023-11-12 11:09:04 浏览: 175
BLE LTK(Long Term Key)和CSRK(Connection Signature Resolving Key)都是用于加密BLE连接中的数据包的密钥,但它们在用途和保护数据的方式上有所不同。
1. LTK:
LTK是一个长期密钥,用于加密BLE连接中的所有数据包。LTK由连接的两个设备之间共享,并且只有在设备重新配对时才会更改。LTK的目的是保护BLE连接中所有数据包的机密性和完整性,以防止未经授权的访问和篡改。
2. CSRK:
CSRK是一个连接签名解决密钥,用于保护BLE连接中的数据包完整性。CSRK由连接的两个设备之间共享,并且每次连接时都会生成一个新的CSRK。CSRK的目的是验证BLE连接中的数据包是否来自连接的合法设备,并防止中间人攻击。
因此,LTK和CSRK都是用于BLE连接中的安全性保护,但它们的保护目标不同。LTK用于保护BLE连接中所有数据包的机密性和完整性,而CSRK仅用于保护BLE连接中的数据包完整性,并验证数据包是否来自合法设备。
相关问题
LTK是如何保护BLE连接中所有数据包的机密性和完整性的?
LTK(Long-Term Key)是一个128位的密钥,用于保护BLE连接中的数据包机密性和完整性。LTK是在设备配对时生成的,只有配对成功后的设备才能共享LTK。
LTK使用AES-CCM(Advanced Encryption Standard - Counter with CBC-MAC)算法加密和认证BLE连接中的数据包。该算法使用CTR模式进行加密,CBC-MAC模式进行消息认证。在发送数据包之前,发送方使用LTK对数据进行加密和认证,并将加密后的数据包和消息认证码(MAC)一起发送给接收方。接收方使用LTK对数据包进行解密和认证,并验证MAC以确保数据包的完整性和机密性。
此外,BLE连接中还有其他的安全措施,例如每个连接都有一个唯一的Connection Signature Resolving Key(CSRK),用于保护设备之间的认证和授权过程。 BLE还支持使用随机数和密钥衍生算法来生成用于加密数据的临时密钥。这些措施都有助于保护BLE连接中的数据包机密性和完整性。
BLE SMP CSRK生成过程
BLE SMP(Secure Connections Pairing)协议中,CSRK(Connection Signature Resolving Key)是用于加密和解密数据包的密钥。下面是CSRK的生成过程:
1. 确定参与配对的两台设备的公钥和私钥。
2. 通过公钥交换算法,双方交换并验证对方的公钥,确保双方公钥的合法性和真实性。
3. 确定随机数r1和r2。
4. 将r1和r2以及双方的公钥按照一定规则进行计算,生成CSRK。
具体的计算方法是,将r1和r2按照一定的规则转换成两个256位的数值,然后将这两个数值与双方的公钥进行异或运算,再将结果进行SHA-256哈希运算,即可得到128位的CSRK。
5. 双方将CSRK保存在本地,用于加密和解密数据包。
需要注意的是,CSRK只能用于加密和解密数据包,不能用于身份验证。在BLE SMP协议中,身份验证需要使用配对过程中生成的Long Term Key(LTK)。
阅读全文