当前位置: 首页 > news >正文

大连网站建设培训河南 网站建设

大连网站建设培训,河南 网站建设,昆明网站建设系统有哪些,合肥网站制作哪家好1.基本概念 蓝牙标准规定了5种基本的安全服务 身份验证:根据通信设备的蓝牙地址验证其身份。蓝牙不提供本地用户身份验证。保密性:确保只有授权的设备才能访问和查看传输的数据#xff0c;防止窃听造成的信息泄露。授权(Authorization):在允许设备使用某项服务之前#xff…1.基本概念 蓝牙标准规定了5种基本的安全服务 身份验证:根据通信设备的蓝牙地址验证其身份。蓝牙不提供本地用户身份验证。保密性:确保只有授权的设备才能访问和查看传输的数据防止窃听造成的信息泄露。授权(Authorization):在允许设备使用某项服务之前确保该设备已被授权从而实现对资源的控制。消息完整性:验证在两个蓝牙设备之间发送的消息在传输过程中没有被更改。配对/绑定:创建一个或多个共享密钥并存储这些密钥用于后续连接以形成可信设备对。 蓝牙不解决其审计和不可否认安全服务;如果需要这种服务应通过其他途径提供。 Paring配对 配对包括配对能力交换设备认证密钥生成连接加密以及机密信息分发等过程配对的目的有三个加密连接认证设备以及生成密钥。从手机角度看一旦设备跟手机配对成功蓝牙配置菜单将包含该配对设备如下所示 如果用户需要主动删除配对设备点击配对设备右边的“设置”菜单出现如下界面选择“取消配对”或者“忽略该设备”设备的配对信息即被手机删除。 Bonding绑定  配对过程中会生成一个长期密钥LTKlong-term Key如果配对双方把这个LTK存储起来放在Flash中那么这两个设备再次重连的时候就可以跳过配对流程而直接使用LTK对蓝牙连接进行加密设备的这种状态称为bonding。 如果paring过程中不存储LTK不分发LTK也是可以的paring完成后连接也是加密的但是如果两个设备再次重连那么就需要重走一次paring流程否则两者还是明文通信。 在不引起误解的情况下我们经常把paring当成paring和bonding两者的组合因为只paring不bonding的应用情况非常少见。在不引起混淆的情况下下文就不区分paring和bonding的区别换句话说我们会把paring和bonding两个概念等同起来进行混用。 SMsecurity manager 蓝牙协议栈的安全管理层规定了跟蓝牙安全通信有关的所有要素包括paringbonding以及下文提到的SMP。 SMPsecurity manager protocol 安全管理协议SMP着重两个设备之间的蓝牙交互命令序列对paring的空中包进行了严格时序规定。 OOBout of band带外 OOB就是不通过蓝牙射频本身来交互而是通过比如人眼NFCUART等带外方式来交互配对信息在这里人眼NFCUART通信方式就被称为OOB通信方式。 Passkey 又称pin码是指用户在键盘中输入的一串数字以达到认证设备的目的。低功耗蓝牙的passkey必须为6位。 Numeric comparison数字比较 Numeric comparison其实跟passkey一样也是用来认证设备的只不过passkey是通过键盘输入的而numeric comparison是显示在显示器上的numeric comparison也必须是6位的数字。 MITMman in the middle MITM是指A和B通信过程中C会插入进来以模拟A或者B并且具备截获和篡改A和B之间所有通信报文的能力从而达到让A或者B信任它以至于错把C当成B或者A来通信。 如果对安全要求比较高需要具备MITM保护能力在SM中这个是通过认证authentication来实现的SM中实现认证的方式有三种OOB认证信息passkey以及numeric comparison大家根据自己的实际情况选择其中一种即可。 LESCLE secure connections 又称SC蓝牙4.2引入的一种新的密钥生成方式和验证方式SC通过基于椭圆曲线的Diffie-Hellman密钥交换算法来生成设备A和B的共享密钥此密钥生成过程中需要用到公私钥对以及其他的密码算法库。 LESC同时还规定了相应的通信协议以生成该密钥并验证该密钥。需要注意的是LESC对paring的其他方面也会产生一定的影响所以我们经常会把LESC看成是一种新的配对方式。 Legacy paring 在LESC引入之前的密钥生成方式称为legacy paring换句话说legacy paring是相对LESC来说的不支持LESC的配对即为legacy paringlegacy配对。 TKTemporary Key临时密钥 legacy paring里面的概念如果采用just work配对方式TK就是为全0如果采用passkey配对方式TK就是passkey如果采用OOB配对方式TK就是OOB里面的信息。 STKshort term key短期密钥 legacy配对里面的概念STK是通过TK推导出来的通过TK对设备A和B的随机数进行加密即得到STK。 LTKlong term key长期密钥 legacy配对和LESC配对都会用到LTK如前所述LTK是用来对未来的连接进行加密和解密用的。Legacy paring中的LTK由从设备根据相应的算法自己生成的LTK生成过程中会用到EDIV分散因子和Rand随机数然后通过蓝牙空中包传给主机。 LESC配对过程中先通过Diffie-Hellman生成一个共享密钥然后这个共享密钥再对设备A和B的蓝牙地址和随机数进行加密从而得到LTKLTK由设备A和B各自同时生成因此LTK不会出现在LESC蓝牙空中包中大大提高了蓝牙通信的安全性。 IRKIdentity Resolving Key蓝牙设备地址解析密钥 有些蓝牙设备的地址为可解析的随机地址比如iPhone手机由于他们的地址随着时间会变化那如何确定这些变化的地址都来自同一个设备呢 答案就是IRKIRK通过解析变化的地址的规律从而确定这些地址是否来自同一个设备换句话说IRK可以用来识别蓝牙设备身份因此其也称为Identity information。IRK一般由设备出厂的时候按照一定要求自动生成。 Identity Address设备唯一地址 蓝牙设备地址包括publicrandom static private resolvablerandom unresolved共四类。 如果设备不支持privacy那么identity address就等于public或者random static设备地址。 如果设备支持privacy即使用private resolvable蓝牙设备地址在这种情况下虽然其地址每隔一段时间会变化一次但是identity address仍然保持不变其取值还是等于内在的public或者random static设备地址。 Identity Address和IRK都可以用来唯一标识一个蓝牙设备。 IO capabilities输入输出能力 是指蓝牙设备的输入输出能力比如是否有键盘是否有显示器是否可以输入Yes/No两个确认值。 Key size密钥长度 一般来说密钥默认长度为16字节为了适应一些低端的蓝牙设备处理能力你也可以把密钥长度调低比如变为10个字节。 2. 配对与绑定 Paring配对和Bonding绑定是实现蓝牙射频通信安全的一种机制有两点需要注意 Paring/bonding实现的是蓝牙链路层的安全对应用层来说是完全透明的。也就是说不管有没有paring/bonding应用层数据的收发方式都是一样的不会因为加了paring/bonding而使应用层数据传输需要做某些特殊处理。 安全有两种选项加密或签名。目前绝大部分应用都是选择加密 实现蓝牙通信安全除了paring/bonding这种底层方式用户也可以自己在应用层去实现相同的安全功能。从功能上来说是没有太大区别的不同的是应用层安全自己实现的话需要自己选择加密算法、密钥生成、密钥交换等。如果不是这方面的专家很有可能会有安全漏洞。而蓝牙的paring/bonding则把上述过程标准化放在了蓝牙协议栈里。并且其安全性得到了充分的评估用户可以“无感”使用安全的蓝牙通信。 paring/bonding是蓝牙sercurity managerSM的一部分SM定义了蓝牙通信的安全架构里面涉及安全架构、密码工具箱、paring协议等。其中paring协议是关键所以经常把paring和SM二者等价。 2.1  配对 蓝牙的配对过程主要是为了生成双方蓝牙设备所共享的秘钥即链接秘钥LKLink Key这个LK可能是暂时性秘钥temporary或半永久秘钥semi-permanent。暂时性秘钥表示每一次会话session该秘钥都会改变主要用于一对多的场景中半永久秘钥表示在当前会话终止时该秘钥会保存在非易失性存储中Non-Volatile MemoryNVM以便下一次相同双方设备间的会话使用该秘钥即会被用于下一次连接时的设备认证以及消息的加密过程。 配对是找到并确定需要和自己通信的设备也就是身份确定。接着是安全密钥共享而这一过程仅仅是由启动加密到得到短期密钥STK为止。其包括配对能力交换、设备认证、密钥固定128bit生成、连接加密以及机密信息分布等过程。配对的目的有三个加密连接、认证设备、生成密钥。 区别于传统蓝牙的配对过程BLE的配对过程发生在连接过程之后。 和经典蓝牙一样协议为处于连接状态的BLE设备定义了两种Link Layer角色Master和Slave。Master是连接的发起方可以决定和连接有关的参数。Slave是连接的接收方可以请求连接参数但无法决定。 在SMSecurity Manager的规范中配对时指Master和Slave通过协商确立用于加解密的Key的过程主要由三个阶段组成 配对是一个三阶段的过程。前两个阶段时必须的第三阶段时可选的。 第一阶段配对特征交换。称作“Pairing Feature Exchange”用于交换双方有关鉴权的需求authentication requirements以及双方具有怎样的人机交互能力IO Capabilities。 第二阶段短期密钥STK生成。通过SMP协议进行实际的配对操作根据阶段一“Feature Exchange”的结果有两种配对方法可选LE legacy pairing和LE Secure Connections 第三阶段传输特定密钥分配。该阶段时可选的经过阶段一和阶段二之后双方已经产生了加密key。因此可以建立加密的连接。加密连接建立后可以互传一些私密的信息例如Encryption Information、Identity Information、Identity Address Information等。 注STK的生成规则如下 Just work没有加密TK0x00。Just works方式不能抵抗窃听者和中间人攻击只有在配对过程时没有遭受攻击后面加密的链路数据才是可信的。安全级别很低。 passkey entry密码输入。如果passkey是“019655” TK的值就是0x00000000000000000000000000004CC7。0x4cc7就是19655的16进制数。将输入的值作为一个6位数的十进制转换为15字节的十六进制。 OOBOut of band带外的TK值是一个16字节的随机数通过非BLE的方式传递给对端。例如二维码或IR红外。对于蓝牙窃听者/攻击者而言这个data的传输是不可见的因此会显得安全很多。 配对请求的数据格式 IO capabilities表明输入输出的能力。 输入是按键、键盘输出是显示数字用的界面。 0x00Display Only只能 显示000000~999999的数字 0x01Display YesNo显示Yes/No的按钮 0x02Keyboard Only只能输入000000~999999的数字 0x03No input No output没有输入也没有显示只能用Just work工作方式 0x04Keyboard Display能输入000000~999999的数字也能有屏幕显示。 OOB data flag 0x00        OOB数据没有发送 0x01        OOB数据通过远端设备发送如IR 0x02-0xFF 保留 2.2  绑定 绑定就是把已配对设备的秘钥等信息进行保存的过程以便与对端蓝牙设备断开连接后下一次连接时能够使用该秘钥等信息进行快速验证和加解密消息提高效率。在Android中绑定实质上就是保存已授权连接的蓝牙设备的信息包括LK并把该设备加入到自己的已配对列表中。 配对过程中会生成一个长期密钥LTK,long-term key如果配对双方把这个LTK存储起来放在Flash中有的时候是长期密钥、身份解析密钥、连接签名解析密钥这三个秘密要的某一个或组合进行交换然后将交换的密钥存储到数据库中那么这两个设备再次重连的时候就可以跳过配对流程而直接使用LTK对蓝牙连接进行加密设备的这种状态称为绑定bonding。 这里要明确一个概念配对绑定只有在两个设备之间第一次配对时才会发生后续的连接由于第一次的配对绑定已经有“Bonding”过程即存储如果存储的数据库没有被认为的清空后续的连接不需要再次配对。并不是所有的通信都需要加密进行数据保护因此建立连接之前不一定需要配对和绑定可以直接建立连接。 2.3 总结  BLE的配对和绑定是一连串的动作总结下来可以用下图来表示。 阶段1配对特征交换得到临时密钥TK值配对请求、配对响应 阶段2身份确认以及短期密钥STK生成通过安全管理协议SMP配对确定自己正在和一个真正想要通信的设备通信而非第三方。即确定对方身份。 阶段3传输特定密钥密钥分配。绑定所需存储到安全数据库的数据也是在此阶段发送的。 上述三阶段总结 配对认证主从机一方提供密码一方输入密码如果双方密码一致那么此密码将作为TK临时密码。 加密链路利用得到的TK临时密码等信息计算出STK短期密码用来做加密认证 绑定加密认证通过后利用STK等信息生成LTK长期密码把LTK保存下来用于下次连接时做加密认证不需要再次配对就可以加密链路。这就是绑定。 绑定后通讯过程每次连接时从机会向主机发送安全请求。如果主从机相互绑定过主机不会发送配对请求主机直接利用绑定时保存的LTK发送加密请求。从机也会利用绑定时保存的LTK来做加密回复三次握手成功后加密成功三次握手通讯由底层完成用户不可见从机回复主机加密状态success。 建立连接是使用的静态密码解除绑定/配对是使用的动态密码。回连也需要密码使用的是动态密码这是为了防止窃听起保护作用。为了防止泄露信息用户也可以自行在应用层去实现相同的功能。 配对和绑定的区别 1.连接通讯的基础通讯数据为明文 2.配对配对仅仅是为了在连接的基础上加密通讯数据经过加密为密文。提高蓝牙链路传输的安全性。不配对也能连接进行通信。 3.绑定绑定是配对发起时的一个可选配置。把配对信息记录下来下次不用配对自动进入加密的连接。所以没有在bonding列表里的设备不影响连接。 在不引起误解的情况下经常把paring当成paring和bonding两者的组合因为只paring不bonding的应用情况非常少见。 3.Bluetooth BR/EDR/HS安全特性 蓝牙BR/EDR/HS定义了可以在对等设备之间通信建立的不同阶段实施的认证和加密安全过程。链路层安全机制在蓝牙物理链路完全建立之前进行的身份验证和加密设置过程。服务层安全机制在蓝牙物理链路完全建立和逻辑通道部分建立之后发生的身份验证和加密设置过程。 在蓝牙2.0之前定义了三种模式分别指定身份验证和加密是链路层安全机制还是服务层安全机制并且是可配置的。 在蓝牙2.1中增加了第四种模式重新定义了配对时的用户体验要求如果两个设备都是蓝牙2.1及以上则需要使用第四种模式。 蓝牙BR/EDR/HS系列规范共定义了四种安全模式。每个蓝牙设备必须在其中一种模式下工作即安全模式1到安全模式4。这些模式决定蓝牙设备何时启动安全性而不是它是否支持安全特性。 安全模式1设备被认为是不安全的。安全功能(身份验证和加密)从未启动设备和连接容易受到攻击者的攻击。这种模式下的蓝牙设备不会采用任何机制来阻止其他蓝牙设备建立连接。但是如果远程设备发起安全请求例如配对、身份验证或加密请求则安全模式1设备将参与。根据各自的蓝牙规范版本所有2.0及更早版本的设备都可以支持安全模式1而2.1及更高版本的设备可以使用安全模式1来向后兼容旧设备。 NIST建议永远不要使用安全模式1。 安全模式2是一种服务层的安全模式安全过程可以在连接之后但在逻辑通道建立之前发起。对于这种安全模式本地安全管理器(蓝牙架构中规范的)对特定服务的访问控制。集中安全管理器维护访问控制策略以及与其他协议和设备用户的接口。可以为并行操作的具有不同安全需求的应用程序定义不同的安全策略和信任级别来限制访问。可以授予对某些服务的访问权而不提供对其他服务的访问权。在这种模式下引入了授权的概念即决定是否允许特定设备访问特定服务的过程。通常蓝牙服务发现可以在任何安全挑战(即身份验证、加密和/或授权)之前执行。然而所有其他的蓝牙服务应该都需要这些安全机制。 注意安全模式2的身份验证和加密机制是在控制器中实现的所有早于蓝牙2.0版本的设备支持安全模式2如果2.1及之后的版本和2.0及之前的版本只能通过安全模式2进行兼容。 安全模式3是连接层安全模式在物理链接完全建立之前启动。应用安全模式3的蓝牙设备对与之所有的设备连接进行授权和加密。因此在服务发现之前就进行了身份认证、加密和授权。一旦设备具备安全模式3的认证服务层的认证一般不再执行。NIST建议即使使用安全模式3服务级授权也应使用,以防止“身份验证滥用”。 安全模式4和安全模式2类似安全模式4在蓝牙2.1EDR中引入是一种服务层安全模式在物理和逻辑链接建立之后启动。安全模式4使用安全简单配对SSP, Secure Simple Pairing其中链接密钥的生成通过ECDH协议产生。在蓝牙4.0之前P-192椭圆曲线算法用于链接密钥生成设备认证和加密算法与蓝牙2.0EDR和早期版本中的算法相同。蓝牙4.1引入安全连接特性使用P-256椭圆曲线算法生成连接密钥。在蓝牙4.1中设备认证算法升级到FIPS批准的消息认证码Hash Message Authentication Code Secure Hash Algorithm 256-bitHMAC-SHA-256。加密算法升级到FIPS批准的基于AES-CCM模式的CBC-MAC,提供消息完整性保护。安全模式4保护的服务安全需求分为以下几项 • Level 4: Authenticated link key using Secure Connections required • Level 3: Authenticated link key required • Level 2: Unauthenticated link key required • Level 1: No security required • Level 0: No security required. (Only allowed for SDP) 是否需要连接密钥取决于SSP关联模型。当本地和远程设备都支持安全连接特性时连接密钥是通过安全连接生成的这也是NIST推荐的。安全模式4需要对所有服务进行加密除服务发现之外并强制用于蓝牙2.1和以后的BR/EDR设备之间通信。为了向后兼容安全模式4可以与蓝牙2.0和不支持安全模式4的设备通过其他三种安全模式进行通信。 BR/EDR/HS Security Mode 4 Levels Summary Most Secure Mode for a Pair of Bluetooth Devices Most Secure Level in Mode 4 for a Pair of Bluetooth Devices 4.配对和连接密钥生成 蓝牙的认证和加密是通过对称密钥进行的。经典蓝牙BR/EDR是Link key BLE低功耗蓝牙是LTKLong Term Key。传统低功耗蓝牙先生成STK(Short Term Key)使用STK加密连接后再分发LTK给对端设备, 在低功耗安全连接模式下LTK是各个设备生成不需要分发。经典蓝牙有2种配对方式Security Modes 2 and 3使用PIN码进行配对Security Modes 4使用SSPSecure Simple Pairing。在蓝牙4.0和4.1中配对时可以认证也可以不认证蓝牙4.2中,在配对时使用安全连接验证设备。 对于配对LK秘钥的生成、设备认证以及加密这三个过程所使用的安全算法和流程由于历史的原因主要分为了三类即三个安全机制Legacy、SSPSecure Simple Pairing以及SCSecure Connections如下表所示。现在许多的蓝牙设备由于兼容性考虑同时具有这三个安全机制。  Master和Slave有两种可选的配对方法legacy pairing和Secure Connections。选择的依据是当Master和Slave都支持Secure Connections新方法的时候则使用Secure Connections。否则使用legacy pairing。 4.1 PIN/Legacy Pairing  对于PIN/传统配对当用户在一个或两个设备上输入完全相同的机密的PIN码时根据配置和设备类型两个蓝牙设备同时获得链接密钥。下图从概念上描述了PIN码输入和密钥获得过程。注意如果PIN码小于16字节会用发起设备的地址BD_ADDR来补足PIN值以生成初始密钥。那些Ex框代表了蓝牙链接密钥获得过程所使用的加密算法。 从图中可以看到初始化秘钥Kinit是由PIN和一个共同的随机数通过E22算法所生成的E22算法基于SAFER在协议规格说明书中有详细说明[4, 980]这里不再对这些算法进一步介绍只对其的输入和输出进行关注。其输入的PIN可以是设备提供的固定值也可以是用户输入到这两个设备中。如果设备都是可输入设备则规格说明书更建议使用后者[4, p955]。PIN的大小为1到16字节若是其小于16字节则需要加入发起连接设备的MAC地址BD_ADDR来共同生成初始化秘钥Kinit。Kinit然后会经过一系列的算法最终生成链接秘钥Klink。然后Klink会被用于通信设备的认证 蓝牙配对中使用的PIN码可以是1到16个字节的二进制数或更常见的字母数字字符。对于低风险应用场景典型的4位数PIN码可能是足够的对于要求更高安全级别的设备应当使用更长的PIN码例如 8个字符的字母数字 完成链接密钥生成后设备通过互相认证彼此来完成配对以验证他们拥有相同的链接密钥Link key即Klink是否一致其包含有两个角色申验者Claimant和验证者Verifier当然一般来讲它们也可以叫作外设Peripheral和中心Central。整个设备验证过程分为5个步骤[5] 1验证者向申验者发送128位随机数AU_RAND。 2申验者使用E1算法并使用48位自己的蓝牙设备地址BD_ADDR、链接秘钥Link Key和AU_RAND作为输入来进行计算。验证者执行相同的计算。其计算获得的结果一共有128位数据其中使用32位最高有效位即SRES用于认证其余的96位称为ACO值稍后加入到蓝牙会话加密密钥Kc的创建。 3申验者将签名响应SRES返回给验证者。 4验证者将申验者的SRES与其计算的值进行比较。 5如果两个32位值相等认证被认为是成功的。如果两个32位值不相等认证失败。 设备成功验证后就进入加密秘钥的生成以及消息的加密流程了如下图所示 首先Master方或者叫Central会生成一个128位的随机数EN_RAND发送给Slave方或者叫Peripheral它们两者利用该EN_RAND以及链接秘钥Link Key、COF来通过算法E3来计算获得加密秘钥Kc。这里的COF实质上就是前面的设备认证阶段生成的ACO在协议规格说明书上COF的由来如下所示  当然这里的Kc为16字节但是由于兼容性和功耗的考虑蓝牙联盟最开始规定的加密秘钥长度可以是从1字节到16字节的只要设备双方共同协商好。但由于之前的KNOB漏洞[4]其规定最低的加密秘钥长度改为了7也就是说加密秘钥的长度设备双方可以协商的最小长度为7。这个协商加密秘钥长度的过程就是图中的Constraining Mechanism其根据协商的长度从而去取Kc的前几字节的字段来获得最终的加密秘钥。最后使用该加密秘钥通过E0算法来加解密明文数据包。  4.2 Secure Simple Pairing(SSP)  Secure Simple Pairing(SSP)通过提供一些关联模型来简化配对过程。这些模型具有适应不同设备输入/输出能力的灵活性。SSP也通过增加ECDH公钥加密来改进安全性以防止配对过程中的被动窃听和中间人MITM攻击。 SSP提供了如下四种关联模型: Numeric Comparison : 数值比较是针对两种蓝牙设备都能显示六位数字并允许用户输入“是”或“否”回答的情况而设计的。在配对过程中用户会在每台显示器上看到一个六位数的数字如果数字匹配则在每台设备上回答“是”。否则用户回答no配对失败。这与传统配对中使用PIN的一个关键区别是显示的数据不用作生成链接密钥的输入。因此能够看到(或捕获)显示值的窃听者无法利用它来确定最终链路或加密密钥。 Passkey Entry Passkey Entry设计用于一个蓝牙设备有输入能力(例如键盘)而另一个设备有显示但没有输入能力的情况。在这种模型中只有显示屏的设备显示一个6位数的数字然后用户在具有输入能力的设备上输入该数字。与数值比较模型一样该交易中使用的6位数字没有包含在链路密钥生成中对窃听者没有任何用处。 Just Works是为至少一个配对设备既没有显示器也没有键盘输入数字(例如耳机)的情况而设计的。它执行认证阶段1的方式与Numeric Comparison相同只是没有显示。用户需要在不验证两个设备上计算出的值的情况下连接因此Just Works不提供中间人攻击保护。 Out of Band (OOB) :为支持常见的额外的无线(例如近场通信(NFC))或有线技术设备设计的用于设备发现和密码交换。在NFC的情况下OOB模型允许设备通过简单地“点击”一个设备与另一个设备进行配对然后用户通过一个按钮接受配对。值得注意的是为了使配对过程尽可能安全OOB技术应该被设计和配置为减轻窃听和中间人攻击。 安全模式4要求蓝牙服务使用安全连接(第4级)、已验证链接密钥(第3级)、未验证链接密钥(第2级)或完全不安全(第1级)指定一个已验证链接密钥。在上述的关联模型中除了Just Works模型之外所有模型都提供已验证链接密钥。 下图是中描述的SSP的链接密钥Link Key的生成值得注意的是这里使用的是ECDH公私钥对来进行生成的而不是LSC那种使用PIN生成的对称密钥。图中的P-192和P-256为两种椭圆曲线算法SC用的后者SSP用的前者。其通过KDH最终生成了链接密钥Klink。  每个设备都会生成自己的ECDH公私密钥对。当两个设备都支持安全连接时使用P-256椭圆曲线否则使用P-192椭圆曲线。每台设备将公钥发送给另一台设备。然后设备执行依赖于关联模型的第1阶段认证。在此之后第一个设备计算确认值E1并将其发送给第二个设备后者检查该值。如果成功第二台设备将其确认值E2发送给第一台设备。假设E2确认值正确两个设备都会计算出链接密钥。 设备验证阶段如下图所示值得注意的是其与LSC(Legacy Secure Connections)不一样的地方在于SSP的设备双方都是申验者和验证者即通信的设备既会验证对方的Link Key也会被对方验证本方的Link Key只要有一方验证失败则这整个阶段都验证失败。而LSC只有一方Central是验证者。  接下来的加密密钥的生成以及加密算法如下图所示可以看到其大致与LSC一致不过采用的算法完全不一样这里采用h3来生成加密密钥使用AES-CCM来加密数据包。  4.3 SSP 配对过程 Simple Pairing配对过程如图所示主要由下面四部分完成 4.3.1 Pairing Feature Exchange 用于交换双方有关鉴权的需求authentication requirements以及双方具有怎么 的人机交互能力IO capabilities。其中最重要的是IO capabilities exchange。  IO的能力可以归纳为如下的六种 NoInputNoOutputDisplayOnlyNoInputNoOutput1DisplayYesNoKeyboardOnlyKeyboardDisplay 上述的IO能力决定了后续的鉴权方式。 4.3.2 Public key exchange 两个设备之间交换Public key。 一旦设备收到对端设备的公钥它就可以开始计算Diffie Hellman KeyDHKey。耗时较多应该尽早开始以便用户交互可以隐藏计算时间。 在步骤8之前不需要DHKey。当 Public key的长度大于DM1包的长度时要使用专门的PDU来进行数据发送。 4.3.3 Authentication LESC paring会做两次认证。LESC第一阶段认证的原理是设备A和B各生成一个随机数然后认证这个随机数对不对。LESC第二阶段认证过程是设备A和B通过MacKey各生成一个检查值对方确认这个值对不对。通过SMP协议进行实际的配对操作根据阶段1 “Feature Exchange”的结果有三种 鉴权方法可选 1 OOB鉴权 如果双方都支持OOB鉴权则选择该方式优先级最高。由配对的双方在配对过程 之外额外的交互一些信息譬如NFC并以这些信息为输入进行后续的配对操作。 这些额外信息也称作OOBout of bandOOB的交互过程称为OOB protocol。 2 MITM鉴权 man-in-the-middleauthentication由两种方法 Numeric Comparision方式鉴权两个设备自行协商生成6个数字并显示出来要求两个 设备具有显示能力用户比较后进行确认一致或者不一致要求设备有简单的yes or no的确认能力。 3Passkey Entry方式鉴权通过输入配对码的方式鉴权。  4Just Work 不需要用户参与两个设备自行协商。 以LESC Numeric comparison为例其第一阶段认证流程如下所示 4.3.4 DH Key Checks DH Key Checks就是LESC的第二阶段认证一旦设备完成鉴权过程并且DHKey计算已完成则检查生成的DHKey值。 如果成功则两个设备都将完成向用户显示关于该过程的信息否则控制器向主机发送消息以通知其停止显示该信息。 以LESC Numeric comparison为例其第二阶段全工作流程如下所示  4.3.5 Caculate Link Key 当配对过程完成后link key就可以从DHKey中计算得到并用做后续交互过程的输入KEY 明文 加密数据通过HCI_Link_Key_Notification来通知host。  经过上述配对过程后双方已经产生了加密key因而可以建立加密的连接。加密连接建立后可以互相传送一些私密的信息例如Encryption Information、Identity Information、Identity Address Information等。
http://www.zqtcl.cn/news/310114/

相关文章:

  • 微商城网站建设信息定制程序网站
  • 电子政务网站开发餐饮品牌设计包括哪些
  • 深圳手机商城网站设计公司网站做会员用什么源码
  • 安康网站建设公司价格pathon做网站
  • jq网站模板宣城有做网站的公司吗
  • 江苏个人备案网站内容大连seo加盟
  • 服装网站建设公司地址公司网站建设需要注意什么
  • 免费行情软件网站下载安装电子商务网站建设实训报告
  • wordpress怎么添加企业网站美化网站公司
  • 工作室网站源码全球军事网站
  • 网站设计模板免费建站珠海正规网站制作排名费用多少
  • 北京沙河教做网站的wordpress增加自适应功能
  • 中国著名的个人网站网站设计怎么做ppt答辩
  • 郑州做招商的网站网站后台主流网站开发语言
  • 专业足球网站开发铜陵网站优化
  • 南昌高端网站开发山西太原网站建设公司
  • 青岛专业制作网站的公司吗百度咨询
  • 自定义网站模块深圳宝安区有什么好玩的地方
  • 如何增加网站的外链微平台网站支持html5实现游戏
  • 平台网站建设网站邯郸seo优化
  • 做网站着用什么软件盐城网站建设电话
  • 自己的网站wordpress自动变化文字
  • 北京制作网站公司哪家好wordpress小工具不显示不出来
  • 如何建设一个新的网站h5网站建设价格
  • 无锡专业做网站的怎么攻击php做的网站
  • 盐城网站建设代理商wordpress定义字体颜色
  • 成都旅游网站建设地址自己做的网站怎么被搜索出来
  • 网站建设免费免代码商城微网站如何做
  • 网站建设域名是什么东莞网络科技营销
  • 法语网站建设高端网站建设 骆