BLE LTK和CSRK都用于加密数据包,两者有什么区别?
时间: 2023-11-12 07:09:04 浏览: 39
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连接中的数据包完整性,并验证数据包是否来自合法设备。
相关问题
BLE SMP 一个会话中,STK和LTK在使用上有什么区别?
在BLE SMP的一个会话中,STK和LTK在使用上有以下区别:
1. STK只在连接过程中使用,用于进行身份验证和启动加密过程。而LTK则在连接过程中一直使用,用于加密传输的数据。
2. STK是一个短期密钥,每次连接都会生成新的STK。而LTK是一个长期密钥,一旦生成后就会一直使用,直到连接终止或者双方重新协商生成新的LTK。
3. STK的长度为128位,与LTK相同。但是,STK是由主机生成的,而LTK是由双方共同生成的。
4. STK只用于加密和身份验证,不会用于解密。而LTK可以用于加密和解密。
总之,STK和LTK在使用上有一些区别,但都是BLE SMP中非常重要的安全机制,用于保证BLE设备之间的数据传输安全性。
两个BLE设备是如何通过CSRK保护BLE连接中的数据包完整性,并验证数据包是否来自合法设备?
BLE中的CSRK是一种对称密钥,用于保护BLE连接中的数据包完整性,并验证数据包是否来自合法设备。两个BLE设备可以通过以下步骤使用CSRK保护BLE连接中的数据包完整性:
1. 在连接建立过程中,两个设备会交换各自的IRK和BD_ADDR。IRK是一个256位的随机数,用于生成设备的静态地址。BD_ADDR是设备的蓝牙地址。
2. 一旦连接建立,每个设备都会生成一个CSRK。CSRK是由设备的IRK、对方设备的BD_ADDR和一些其他参数生成的。
3. 在每个数据包中,发送方会计算一个消息认证码(Message Authentication Code, MAC),以保证数据包的完整性。MAC的计算使用CSRK作为密钥。
4. 接收方会使用相同的CSRK计算MAC,并验证接收到的数据包是否完整和来自合法设备。
通过这些步骤,两个BLE设备可以使用CSRK保护BLE连接中的数据包完整性,并验证数据包是否来自合法设备。这样可以防止未经授权的设备访问BLE连接,从而增强BLE连接的安全性。