zoukankan      html  css  js  c++  java
  • LE legacy Pairing过程和后续连接过程简介

    LE legacy Pairing过程和后续连接过程简介

    一、      手机与设备为配对时,进行配对过程:

    1. 1.       下面6步是启动配对过程:

     

    1. 2.       下面5步是启动加密过程:

     

    通过上面5步之后,整个链路就被加密了,之后通过STK对数据加密形成密文数据,用于手机和设备之间交换LTK、IRK、SIGN等密钥信息,具体交换哪些密钥,取决于SMP_Pairing Response中的 Initiator Key Distribution和 Responder Key Distribution选项。

    1. 3.       下面6步是交换LTK、IRK等信息的过程:

     

    此信息交换过程中,SMP_Pairing Response中的         Initiator Key Distribution和    Responder Key Distribution选项如下图所示:

     

    总结:通过以上过程之后,整个配对过程就完成了,之后再通讯,就是使用LTK作为密钥对数据进行加解密了。

    二、      手机已经与设备配对,直接连接设备的过程:

    如果手机已经与设备配对,则连接过程就比较简单了,没有上面的SMP相关的步骤了,只有启动加密过程的5步。大体的思路就是,手机将EDIV和RAND发送给设备,设备使用EDIV和RAND,以及事先存好的种子数据,计算出LTK,而手机端事先已经在配对过程中存储了该LTK,这样,双方都有了该LTK,并且双方也交换了SKD和IV,因此具备了同步加解密数据的能力。流程图如下:

     

    总结:通过以上过程之后,整个配对过程就完成了,之后再通讯,就是使用LTK作为密钥对数据进行加解密了。

    三、      密钥简介

    1. 主端的confirm信息由临时密钥TK(全0)、主端随机数、SMP请求命令、SMP请求应答命令、主端地址类型、主端地址、从端地址类型、从端地址计算得来;
    2. 从端的confirm信息由临时密钥TK(全0)、从端随机数、SMP请求命令、SMP请求应答命令、主端地址类型、主端地址、从端地址类型、从端地址计算得来;
    3. 短期密钥STK由临时密钥TK(全0)、主端随机数、从端随机数计算得来;
    4. 每次连接从端产生长期密钥LTK过程比较复杂,如下:

    a)         DIV 和 ER 经过一定的运算,得到LTK;

    b)         其中ER为128bit的种子数据,由厂商分配,需要存储在设备中;

    c)         而DIV由EDIV 、RAND 、DHK三个参数经过一定的计算得来;

    d)         其中EDIV和RAND两个参数在每次蓝牙连接时由主端发送给从端的;

    e)         DHK由IR经过运算得到;

    f)          其中IR为128bit的种子数据,由厂商分配,需要存储在设备中;

    所以,只要有ER、IR两个种子数据,以及主端发送的EDIV和RAND,从端就可以恢复长期密钥LTK。其中ER、IR两个种子数据由每个设备保存起来,只有设备自己知道。

    而手机端需要保存配对时从端发送过来的LTK、EDIV和RAND三组数据。

    当然,从端也可不进行以上麻烦的计算,直接保存LTK即可,这样可以节省计算LTK的时间,但是会耗费一定的flash来存储不同设备的LTK,对于memory不太够用的设备就不太合适。

    1. 会话密钥的产生:使用STK或者LTK作为密钥,使用IV作为初始向量,对分散因子SKD(作为明文数据)进行加密,得到的密文数据则为会话密钥。SKD由SKDm和SKDs产生,IV由IVs和IVm产生。
    2. 明文数据的加解密:使用会话密钥对数据进行加解密。
  • 相关阅读:
    基于Oracle的Mybatis 批量插入
    java.lang.ClassCastException: com.sun.proxy.$Proxy32 cannot be cast to com.bkc.bpmp.core.cache.MemcachedManager
    理解 Mybatis的分页插件 PageHelper
    手机注册获取验证码的PHP代码
    php分页代码简单实现
    PHP简单漂亮的分页类
    PHP实现各种经典算法
    Vue 入门指南 JS
    php 经典的算法题你懂的
    WebService 之 WSDL文件 讲解
  • 原文地址:https://www.cnblogs.com/unrulife/p/10876795.html
Copyright © 2011-2022 走看看