当前位置:首页 > 物联网 > 网络协议
[导读]   smp即Security Manage Protocol。是蓝牙用来进行安全管理的,其定义了配对和密钥分发的过程实现。smp被用在LE-only设备或蓝牙双模设备中。   框架

  smp即Security Manage Protocol。是蓝牙用来进行安全管理的,其定义了配对和密钥分发的过程实现。smp被用在LE-only设备或蓝牙双模设备中。

  框架

  首先看下SM在ble中的框架(貌似要用到ble才会使用SM哦):

 

  

  安全管理的实现基础

  前面是简要看了下ble SM的大体框架,这部分将较为详细的说明ble的安全管理的实现基础是怎么样的。接下来安全管理可能用SM来代指。

  密钥分发的方式来实现

  SM,就是使用一种密钥分发的方式来实现识别ble数据加密和解密的功能。连接建立之后,双方通过某些方式协商共同的密钥,然后将后续要传输的数据用这个密钥通过加密算法进行加密,那实际传送到空中的数据是加密后的数据,在接收到这些数据后,就必须用正确的密钥来解密,才能得到正确的数据了。当然,这种方式的加密,破解的方式就是得到其密钥即可。

  配对–Pairing

  配对过程,是用来建立密钥的,即完成双方密钥协商,就密钥一事达成共同一致的过程。配对其实内部又分为3个子过程的,先来看看配对过程的总体状况吧(图中iniTIator是连接发起者,一般是Master,Responder一般是Slave):

  

  Legacy Pairing与Secure ConnecTIon区别

  这里需要说明下上图中这两者区别:

  LE Secure ConnecTIon是BT 4.2后新增特性,Key生成方式不同,另BR/EDR与LE可以相互借用配对的key。总之就是在安全方面有较大提升。

  配对第一阶段:配对特征交换

  即需要知道对方都支持哪些配对功能,像authenTIcation要求,IO capabilities,是否支持Secure Connection等,以便双方后续进行相应的配对操作。比如不能让一个没有输入功能的设备使用PIN码输入来进行配对……

  配对第二阶段:Key产生

  LE Legacy pairing:产生Short Term Key;

  LE Secure Connection:产生Long Term Key。

  配对第三阶段:Key分发

  分发一些其他用途的Key,像Identity Resolving Key(IRK),这个Key可能是用于Random Address解析的吧(不确定哦,后续确认)。不过在分发这些Key时,此阶段链路是必须要加密的,要是不加密,那密钥就直接被中间截取了,那后续都仍可被破解。因此必须加密,加密的Key是用第二阶段产生的STK或LTK,或者双模下直接共享使用BR/EDR配对产生的Key。

  实例展示

  这里是随便抓了两个设备(Master和Slave)建立连接时的包,其中smp开头的包部分就是整个smp的流程咯,详细的看图吧:

 

  这里开始时,Advertiser发ADV,然后Scanner搜索到了ADV信息,然后变身Initiator发Connect Request,然后连接就建立起来。随后,立马,Slave发一个Security Request(可选),然后进行配对的第一阶段,交换双方配对支持特征。接着进行第二阶段生成了STK(看来这里的设备是用的Legacy Pairing方式,毕竟目前支持4.2的Secure Connection的还是不太多的),生成完成其实可以看到“LLCP Encryption Start”的过程,立马对链路加密,加密完成了,才进行配对第三阶段,分发其它Key。

  密码工具箱

  这是一些工具(软件或硬件单元实现),用于某些加密,随机数产生,配对过程用到的一些可复用的小过程吧。密码工具箱里面都是些密码函数了。

  这里对这个工具箱中的密码函数主要是进行简要功能上介绍吧,如果要自己实现这些函数的硬件电路设计,或者是coding的话,得详细的查其资料了。

  - ah:产生24bit的hash值(random address生成和解析会用哦);

  如下的是用于LE Legacy pairing过程的:

  - c1:配对过程中产生confirm值;

  - s1:配对过程中产生STK;

  如下的是用于LE Secure Connections pairing过程的:

  - f4:配对过程中产生confirm值;

  - f5:配对过程中产生LTK和MacKey;

  - f6:配对过程中在authentication过程2中产生检查值;

  - g2:配对过程中在authentication过程1中产生6位数字的比较值;

  - h6:用于从BR/EDR link key产生LE的LTK,或者从LE的LTK产生BR/EDR link key,相当于一个Key转换作用吧。

  以上的密码函数分为两类:

  security function e

  ah, c1, s1都是属于e这种的,其对数据加密的使用方式如下:

  encryptedData = e(key, plaintextData) /* encrypteData, key, plaintextData are 128 bit data */

  security function AES-CMAC

  f4, f5, f6, g2, h6都是属于e这种的,其使用方式如下:

  MAC = AES-CMACk(m)

  其中,MAC是Message Authentication Code(128 bit),m是需要被authenticated的可变长度的数据,k是128-bit Key。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭