随着无线耳机和智能穿戴设备的发展,蓝牙在沉寂了一段时间之后,再一次被人们广泛使用。那么我们今天就来聊一聊,蓝牙数据传输中的加密技术。
蓝牙协议标准
蓝牙作为一种数据传输工具,自然需要有相应的保护措施,而蓝牙协议标准就为其制定了一系列的安全机制。
蓝牙协议标准要求每个蓝牙设备都要实现密钥管理、认证以及加密等功能,以保证在数据传输过程中不被截取。
从1999年7月蓝牙的1.0规范版本颁布,到现在的蓝牙5.3协议,安全问题一直深受关注。
蓝牙通讯是以无线电波作为媒介,第三方可以轻易使用无线嗅探器利用信号截取技术进行用户模拟和传输内容破译,所以蓝牙必须采取一定的安全保护机制。
蓝牙PIN码
在链路层中,蓝牙系统提供了认证、加密和密钥管理等功能,每一个用户都有一个标识码(PIN),蓝牙设备中所用的PIN码的长度可以在1到16个字节之间变化。通常4个字节的PIN码已经可以满足一般应用,但是更高安全级别的应用将需要更长的码字。PIN码可以是蓝牙设备提供的一个固定码,也可以由用户任意指定,标识码(PIN)会被一个128位链路密钥来进行单双向认证。一旦认证完毕,链路层会以不同长度的密钥来加密。
加密算法
目前,在蓝牙安全机制中使用的加密算法主要是是E0流密码,即将数据流与密钥比特流进行异或运算,对每一分组的有效载荷的加密是单独进行的,它发生在循环冗余校验之后,前向纤错编码之前。
主要原理是利用线性反馈移位寄存器产生伪随机序列,从而形成可用于加密的密钥流,然后将密钥流与要加密的数据流进行异或,实现加密。解密时把密文与同样的密钥流再异或一次就可得到明文。
但在128位密钥长度的E0流加密在某些情况下可通过0(2^64)方式破解。
所以在蓝牙5.3中提高了加密密钥长度控制,所以安全性有了很大的提高。而且对于管理人员来说操作控制也非常简单,连接的速度也有很大的提升。
免责声明:素材源于网络,如有侵权,请联系删稿。