ubnt解决方案
查看: 9718|回复: 8

蓝牙的安全传输方法

[复制链接]

10

回帖

61

积分

8 小时

在线时间

新兵上阵

注册时间
2008-11-5
金币
37 个
威望
2 个
荣誉
0 个

尚未签到

发表于 2008-11-30 19:17
-----题注:蓝牙如何实现安全传输?经过了几天的查阅资料,终于整明白了点,帖出来跟大家分享。如果有什么不对的地方,欢迎指正。

两个蓝牙设备在实现通讯之前必须先进行连接,由一个设备发起请求,称为主设备(master);一个应答设备,称之为从设备(slave)。看一个例子,设主设备为A,从设备为B。在正式通信之前,它们需要经过4个步骤:
1. 产生初始密钥Kinit(图1)
2. 产生链路共同密钥KAB(图2)
3. 双方认证(图3)
    4. 加密传输数据(图4)
看详细的安全传输过程:

10

回帖

61

积分

8 小时

在线时间

新兵上阵

注册时间
2008-11-5
金币
37 个
威望
2 个
荣誉
0 个

尚未签到

发表于 2008-11-30 19:18
如图1,A产生一个128位的随机数IN_RAND,以明文的形式传输给B,双方根据输入的PIN,IN_RAND和B的物理地址(全球唯一标识符)分别经过E22算法,算出KinitKinit 称为初始密码,用于下一步的数据传输加密。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册 微信登录

x

10

回帖

61

积分

8 小时

在线时间

新兵上阵

注册时间
2008-11-5
金币
37 个
威望
2 个
荣誉
0 个

尚未签到

发表于 2008-11-30 19:19
图2,首先主设备A产生128位的随机数LK_RANDA,从设备B也产生128位的随机数LK_RANDB。在主设备A中,Kinit与LK_RANDA进行位比特逻辑异或运算,异或结果发送给B设备;同样的,在B设备中,Kinit和LK_RANDB进行位比特逻辑异或运算,结果发送给A设备。通过这些交换后,A和B设备都具有相同的Kinit、LK_RANDA和LK_RANDB。按照图2,设备A和B分别用E21算法将LK_RANDA和BD_ADDRA、LK_RANDB和BD_RANDB加密,并将结果进行异或得到KAB

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册 微信登录

x

10

回帖

61

积分

8 小时

在线时间

新兵上阵

注册时间
2008-11-5
金币
37 个
威望
2 个
荣誉
0 个

尚未签到

发表于 2008-11-30 19:19
如图3,双向认证采用挑战-应答(challenge-response)方式。如图3所示,主设备A为应答方,从设备B为请求方。做为应答方的A设备产生一个128位的随机数AU_RANDA,并以明文方式传送至B设备。A、B设备都用E1算法将各自得到的AU_RANDA、Kab和BD_ANDRB加密运算分别生成32位的SRESA和SRESA'。B设备将结果SRESA'传送给A设备,A设备比较SRESA和SRESA',如果相等,此次认证通过,否则认证不通过。执行完此次认证后,A设备和B设备的角色对换,即A设备做为请求方,B设备做为应答方,采用同样的方式进行认证。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册 微信登录

x

10

回帖

61

积分

8 小时

在线时间

新兵上阵

注册时间
2008-11-5
金币
37 个
威望
2 个
荣誉
0 个

尚未签到

发表于 2008-11-30 19:20
其实采用E1算法在生成一个32bit SRESA的同时还会生成一个96bit的认证加密偏移数(ACO, Authenticated Ciphering Offset),在双方都认证成功后,使用ACO产生加密密钥Kc。为了防止非授权用户的攻击,如果某次认证失败,则需要过一段时间后才可以再次认证。每增加一次认证请求,推迟时间就会增加一倍,直到推迟时间达到一个规定的最大值。同样认证请求成功后,推迟时间也相应地成倍递减,直到达到最小值。
蓝牙系统加密算法为数据包中的数据部分加密,而不加密数据包的头部。采用流密码加密,加密算法为E0,它包括净荷密钥生成器,密钥流生成器,和加/解密模块。其加密算法流程如图4所示:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册 微信登录

x

10

回帖

61

积分

8 小时

在线时间

新兵上阵

注册时间
2008-11-5
金币
37 个
威望
2 个
荣誉
0 个

尚未签到

发表于 2008-11-30 19:21
如图4,E0算法的输入为主设备A的地址BD_ADDR(A)、A的时钟(保证同步)和加密密钥Kc。经过E0算法产生会话密钥Kstr,Kstr与A-->B明文数据做异或运算产生密文,密文经过空气传播到B。B接收之后,与自己的Kstr做异或运算,解密出明文。B-->A传输也是同样的道理和过程。这样在传输过程中加密,防止攻击者截获明文数据。

评分

2

查看全部评分

1115

回帖

1万

积分

163 小时

在线时间

超级版主

ZerOne无线安全研究组织 Leader

终身荣誉版主杰出会员技术达人终身荣誉会员

注册时间
2006-5-18
金币
7935 个
威望
175 个
荣誉
52 个
累计签到:3 天
连续签到:0 天
[LV.20]漫游旅程
发表于 2008-12-7 00:37
恩,不错。大家探讨探讨如何?

看看这个:
http://forum.anywlan.com/viewthr ... &extra=page%3D1
Hacking is a state of mind......
已陆续编写出版《无线网络安全攻防实战》《无线网络安全攻防实战进阶》等7本无线安全系列书籍,2017新书正在筹备中,感谢支持与肯定

71

回帖

480

积分

40 小时

在线时间

少尉

注册时间
2013-8-13
金币
403 个
威望
0 个
荣誉
0 个
累计签到:40 天
连续签到:0 天
[LV.50]初入江湖
发表于 2013-9-27 13:34 来自手机
头疼,纯属路过!!!

824

回帖

3536

积分

918 小时

在线时间

少校

雷锋勋章

注册时间
2011-10-29
金币
2506 个
威望
10 个
荣誉
1 个
累计签到:483 天
连续签到:1 天
[LV.730]常住居民
发表于 2014-7-23 07:14 来自手机
学习了!!!

站点统计 | Archiver | 手机版 | 无线门户 ( 粤ICP备11076993号|粤公网安备44010602008359号 ) |网站地图

GMT+8, 2024-4-26 04:23

返回顶部 返回列表