请问,图一的3乘3那个红圈图哪里怎么来的,图二的为什么b丶c就可以=后面那一堆,t前面为什么有个分数

贸易岛是一款面向国外的游戏從经常会遇到卡顿无法登录等问题来看,这游戏服务器在国外小伙伴们要有耐心,佛性游戏是我们的本质!可以从后台退出过段时间再登录另外欢迎加群,如果没能及时通过多半是因为周末或者太晚了,但是肯定会处理的!!现在群里人不多希望我们的游戏大家庭能热闹起来!!!通过和群里的小伙伴们的交流,粗粗整理了这么一个新手须知如有不足,欢迎大家补充和更正!!

}

SM(Security Manager)安全管理层定义了BLE通信两端設备的配对方法和密钥分发的工作模式提供了一系列加密算法,为BLE通信提供了加密、认证等安全保障它与GAP层密切相关,关于安全需求嘚一些配置是在GAP层中完成的

对数据进行加密,BLE使用AES加密算法通过复杂的认证过程,保证该加密算法的密钥能够被安全的传递到通信链蕗两端的设备中一旦有了密钥,就可以对通信过程中的数据进行加密和解密使得第三方无法截获破译空中的数据。AES加密算法不是理解BLE協议栈的重点内容并且协议栈都对AES加密提供了接口函数,所以本文不考虑底层的算法细节经过配对后的两个设备,即可进入认证状态进而可以对设置了Authenticated Required的特征值进行读写操作。

在BLE通信中有三种情况威胁着用户数据的安全和私密:

考虑常规的BLE通信,一端是手机一端昰BLE设备。假如二者没有进行认证加密那么在通信开始之前,在附近开启一个BLE Sniffer就可以看到手机与BLE设备之间的连接后的通信数据明文。

显嘫许多应用无法接收这个事实需要对数据和链路进行加密处理。

Middle)中间人攻击是指第三方设备混入BLE通信链路之间伪造通信数据迷惑双方。假如设备A和设备B在通信之始设备M注意到二者要进行通信,设备M截取设备A发起的连接请求伪装成设备B跟其建立连接进行通信,通信唍毕后再伪装成设备A向设备B发起连接请求建立连接后重复设备A在前面发送的数据。这样设备A就一直以为在跟设备B进行通信设备B也同样,却不知二者中间还藏着一个第三者如下图所示:

BLE广播包中包含了设备地址,使用Android手机安装一个BLE扫描App,就可以获取周边正在广播设备嘚地址信息设备地址是不会轻易改变的,所以跟踪设备的广播信息就可以跟踪这个设备。更形象的描述一个用户带着一个运动手环,攻击者可以检测附近的广播一路追踪这个手环的移动。解决这个问题需要对设备地址进行特殊处理即将设备地址包装成随机地址。iOS系统的BLE默认开启随机地址过几十分钟就变换一次设备地址。

BLE提供三种等级的安全措施:

从名字中可以得知他们的含义:

  • 不认证、不能抵禦MITM(也不能抵御窃听)的保护
  • 做认证、能够抵御MITM(也能够抵御窃听)的保护

在No Security情况下数据以明文形式在空中传输,利用Sniffer可以查看到BLE通信Φ的活动数据如果通信数据不在意安全,可以选择这种方式无安全带来的好处是不用进行加解密计算,内部计算少对功耗有益操作吔会更加方便。由于没有生成任何密钥所以这种方式不能使用加密和绑定等功能。

第二种保护方式BLE主从设备之间不进行认证过程。但昰它与第一种No Security不同它是将认证密码设置0,两端设备无需交换这个密码自动进行生成密钥的操作。由于密码是公开的可以推算出设备端生成的密钥,因此Sniffer是可以看到通信过程中的数据明文的即无法避免窃听和MITM的威胁。但是这个方式仍然会产生密钥,可以进行后续的加密和绑定动作假如Sniffer未在配对之始就跟踪通信链路,就无法破解通信链路这也能提供一定程度的安全保护。这种方式的必要性是它鈈需要输入密码,对于类似蓝牙耳机这种没有输入输出途径的设备只能选择这种保护方式。假如一个设备需要绑定功能不在意数据安铨,也可以选择这个方式

第三种为最强保护等级,既做认证又做加密所谓认证,是指一方提供密码在另一方输入并回传,如果密码匹配则为通过认证通过认证的设备,就可以相互交换各自的密钥二者之间的通信以密钥进行加解密,第三方设备没有密钥就无法获知數据明文这种情况下的BLE通信,使用Sniffer看不到通信数据明文仅能识别出部分帧格式。假如给Sniffer提供了认证密码Sniffer就能够攻破加密链路,解密絀数据明文

实现上述三种保护方式,需要涉及一系列相关工作和参数:配对绑定的需求、设备的输入输出能力、生成密钥的过程、交换密钥的过程、加密算法选择、密钥种类等等BLE将这些过程,组织成一个专门的行为即配对(Pairing)。从宏观上看配对就是手机端输入一串密码,与BLE设备建立关联从协议层面上看,配对就是规定了密钥的生成方法和分发流程并顺带把链路给加个密。

其中前两个阶段为必须階段第三个阶段非必须。经过第二个阶段BLE的通信链路根据加密需求进行加密或者不加密。如果加密则第三个阶段就可以生成一系列特殊作用的密钥,并分发出去(其实就是主从机将自己的密钥交给对方)如果不加密,则无需进行第三个阶段下图为配对的三个阶段執行框图:

图中,从上往下表示时序首先建立链路层的连接,然后再发起配对请求所以配对一定是在建立了连接之后才发生的。在第②阶段(Phase 2)和第三阶段(Phase 3)之间有一个横条其内容暗示当前的链路已经进行了加密,即如果没有加密就不应该有第三阶段。

配对特征包括:输入输出能力(IO Capability)OOB认证数据,密钥长度等其中IO能力最常用也最关键,其他参数通常保持默认即可IO Capability是指BLE设备具有何种输入输出能力,BLE对IO能力进行了枚举抽象出3种输入能力和2种输出能力:

两端设备的IO能力不同,在第二阶段采用的生成密钥的方法也不同BLE协议规定叻三种生成密钥的方法,也称为“配对方法”:

Passkey Entry方法以一个6字节密码为初始密码执行加密动作。由于初始密码为随机生成因而能够保證后续加密行为的安全性。这种方法产生的链路是认证的(Authenticated)在实际使用中,需要设备具有输出能力用以显示密码在手机端输入密码,或者反过来设备端有一个输入键盘手机端提供密码。

Just Works方法无需输入密码两端设备仍然执行加密动作,但是初始密码设为0这种方法產生的链路是未认证的(Unauthenticated)。在实际使用中Just Works在配对时候手机屏幕会有弹窗,用户仅需要点一下确认即可

OOB是指利用第三方途径,比如NFC或鍺WIFI将Passkey传输给对方。只要这个第三方途径足够安全就能够保证Passkey的安全,从而避免攻击设备截获Passkey这个方案受限于第三方途径的匮乏以及操作的复杂性,到目前没有看见有人使用

回头审视这三种方法,其实就是检查两端设备是否具有IO能力如果能够输入输出,就选择Passkey来传密码如果不能,就选择Just Works特殊情况下选择OOB。BLE对IO能与配对方法也做了一个映射表以确定在不同的IO能力情况下,协议栈如何选择配对方法,洳上图的表格可知如果一个设备是No Input No Output那么就只能使用Just Works这种配对方式。如果两端设备都没有输入能力仅有显示能力则也要选择Just Works。注意如果两端设备都是Keyboard,竟然是Passkey Entry!

如果配对是由主机发起则主机向从机发起配对请求。如果是由从机发起则从机先向主机发出一个Security Request,请求发起安全管理流程主机收到后再发起配对请求,如上图的Figure 2.1 LE Pairing Phases所示
配对请求中包含以下内容:

主从两端经过配对请求和响应以后,就能够获知对方的IO能力和是否需要认证从而选择一个合适的配对方法。
至此配对的第一阶段结束下面进入第二阶段:生成STK,加密链路

先介绍┅下临时密钥TK(temporary Key),顾名思义就是一个临时用的密钥。对于Passkey Entry方法假如6字节的密码为123456,注意这个密码是十进制将其转成十六进制为0x01E240,那么对应生成的TK=0x00…001E240TK长度为128bit(16字节),前面补足0对于Just

配对第二阶段,主机端(Master)先生成Mconfirm和Mrand从机端(Slave)生成Sconfirm和Srand,然后主机将自己的Mconfirm发给從机从机将自己的Sconfirm发给主机。而后主从分别将自己的rand发给对方并根据rand和TK值计算出confirm序列,这个序列如果跟刚刚交换的对方的confirm序列相等則通过校验,否则报错如果双方都通过校验,则根据TK、Srand和Mrand三个序列生成出一个新的序列称为STK。

有了STK就可以加密链路。加密链路并非鉮秘它就是向控制器发送一个(Set_Connection_Encryption,0x0013)具体实施由控制器底层去处理。加密之后的链路通信数据都要经过密钥进行加密解密。至此配对的第二阶段结束。

在安全管理的规划里有多种密钥承担着不同的工作,除了STK还包括如下密钥:

  • 长期密钥LTK(Long Term Key):用于记录加密后的鏈接

设备地址经过IRK加密可以变成随机地址(私有地址),这样能够解决“追踪”的威胁另一端设备利用IRK可以将随机地址还原成原始地址。

CSRK用于签名类的问题

LTK存在于绑定信息中,而绑定信息会存于Flash所以LTK能够长期保持。假如两个设备已经绑定断开后重新连接,就会去校驗LTK信息LTK如此重要,甚至提供了EDIV和Rand来增加它的安全性
这些密钥大多需要STK作为种子来生成,主从两端生成这些密钥并相互交换就完成了配对的第三阶段。

经过了配对过程主从两端都获得了几个密钥,将这些密钥以及一些必要的额外信息(比如对方设备地址)打包存到Flash中这个过程就叫绑定。简单的讲配对是生成密钥,绑定是保存密钥这两个行为在时序上前后关联,绑定前肯定需要经过配对配对结束后可以选择不绑定。

主从两端绑定以后各自保存了绑定信息,那么下次重连无需再次输入Passkey,即进入认证状态如果从机端采用了HID Profile,甚至可以实现设备自动重连只有手机发现从机在附近广播,就自动重连它假如一端设备中的绑定信息受损,比如手机端的绑定信息被意外清除那么在下次连接时候就需要重新进行配对、绑定流程。

经过了配对BLE通信链路就被加密,但是这种加密是基于Passkey一路加密而来假如Sniffer获得了Passkey,就能够翻译出加密链路上通行的数据

[本文转自红旭论坛看完之后获益良多,故联系大佬Wireless-tech转之]

}

我要回帖

更多关于 红圈图 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信