- ·上一篇电脑爱好者:TCP/IP筛选 VS IPSec 策略
- ·下一篇电脑爱好者:在WinXP中禁止他人修改文件属性-
针对蓝牙PIN码的最新攻击技术细节分析
四、 PIN攻击方法
从第三部分对蓝牙技术配对和双方认证过程的分析,我们可以看出,蓝牙技术所用的认证方
式属于简单的弱认证方式,其安全性完全依赖于PIN码的保密性。
这一部分我们讨论攻击者通过收集必要的消息是怎么样用暴力破解方式猜测PIN的。
表中列出了在配对和认证过程中,两个蓝牙设备A和B之间交换的通讯消息。
|
#
|
源
|
目的
|
消息
|
长度
|
备注
|
|
1
|
A
|
B
|
IN_RAND | 128 位 | 明文 |
|
2
|
A
|
B
|
LK_RANDA异或Kinit | 128位明文 | LK_RANDA与 Kinit异或后再传送到B,B收到消息后,解开得到LK_RANDA |
|
3
|
B
|
A
|
LK_RANDB异或Kinit | 128位明文 | LK_RANDB与 Kinit异或后再传送到A,A收到消息后,解开得到LK_RANDB |
|
4
|
A
|
B
|
AU_RANDA | 128位明文 | 明文 |
|
5
|
B
|
A
|
SRES | 32位明文 | 明文 |
|
6
|
B
|
A
|
AU_RANDB | 128位明文 | 明文 |
|
7
|
A
|
B
|
SRES | 32位明文 | 明文 |
第一步、列举出所有可能的PIN值,如果假定PIN长度为4位,那么可能的PIN取值从0000到9999之间。
第二步、按照顺序取PIN列表中的第一个值,并取得消息IN_RAND和BD_ADDR,就可以通过E22(注意:E22算法是公开的)算法,计算得到Kinit。
第三步、根据消息2和消息3,由上面计算得到的Kinit,反推计算出LK_RANDA和LK_RANDB
第四步、根据LK_RANDA和LK_RANDB以及两个设备的物理地址等信息,计算得到Kab。
第五步、由Kab和消息4(AU_RANDA),计算得到SRES,并与信息5的SRES比较。
同样的,用Kab和AU_RANDB,计算得到SRES,并与信息7进行比较。
第六步、如果第五步的消息比较相等,则给定的PIN是正确的;如果不匹配,回到第二步,取PIN列表的下一个PIN,重复第二步后的步骤,直到找到个正确的PIN为止。





