经典蓝牙配对基本知识--防迷路,通过博客收藏

配对过程:

    先请求HCI连接得到一个新的句柄。通过事前设定是否启动简单配对区分配对模式Command Code    Write Simple Pairing Mode

 

非pincode

1.获取L2CAP的扩展信息请求,Code    Information Request

2.若本地无配对记录发起IO能力交换。Event Code    IO Capability Request

3.获取功能列表。 Command Code    Read Remote Supported Features

4.若有配对记录发起key的验证请求  Event Code    Link Key Request。

    4.1校验失败执行5,校验成功执行7

5.发起IO能力交换。 

6.进行配对秘钥验证。Command Code    User Passkey Request Reply   。

7.上送加密变更事件  Event Code    Encryption Change

 

pincode

1.若无配对记录启动pincode配对。

2.获取功能列表。 Command Code    Read Remote Supported Features

3.启动连接RFCOMM,被动方发现无配对记录启动配对。

4.启动加密验证。

5.启动加密。

 

简单配对参考文档的:Version 4.2 [Vol 2, Part H]  7 SECURE SIMPLE PAIRING      

    按照5个步骤进行配对 ,配对中使用到了椭圆曲线的秘钥生成和加密计算,离散计算使用到了各自的私钥,所以能达到放中间和防窃听, 但是如果使用Just Works的方式可能会存在中间人的问题,因为少去了人为的配对,若存在证书就可以有效防止。

 

BREDR的配对流程是在LMP层进行的。

 

连接RFCOMM的过程:

    首先BREDR是通过连接L2CAP层的连接请求进入连接,然后利用固定的PSM码请求上层连接,常规的有0x0001 、0x0003进行RFCOMM和SDP服务的连接。每次连接将产生一个新的句柄。

    通过SDP服务获取RFCOMM以上的参数。

然后再从新连接L2CAP连接到RFCOMM上得到新的句柄。

 

通过

Event Code    User Confirmation Request    

Event Code    User Passkey Request  

这两个事件通知用户进行选择。

 

 

LMP的流程 分简单配对和安全配对。

    简单配对就是PINCODE、而安全配对分Numeric Comparison 和 passkey entry两种, 参考Version 4.2 [Vol 2, Part C]4.2.2 Pairing

        对于简单配对的报文只依赖Lmp报文的相关的PDU:

            

        对于安全配对历来的PDU:

            

    我们常说的UserConf、JustWork 就是Numeric Comparison,  而Passkey就是对passkey entryVersion 4.2 [Vol 2, Part C]4.2.7 Secure Simple Pairing

   IO能力和配对方式配对表参考Version 4.2 [Vol 3, Part C]5.2.2.6 IO and OOB Capability Mapping to Authentication Stage 1 Method

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值