‘壹’ 蓝牙的安全机制有哪些
蓝牙采取的安全机制适用于对等通信的情况,即双方以相同的方式实现认证与加密规程。主要的安全机制为使用密钥。它的链路层使用4个实体提供安全性,一个公开的蓝牙设备地址,长度为48比特;认证密钥,长度为128比特;加密密钥,长度为8~128比特;随机数,长为128比特。蓝牙安全管理器存贮着有关设备和服务的安全信息,安全管理器将决定是否接收数据,断开连接或是否需要加密和身份认证,它还初始化一个可信任的关系以及从用户那里得到一个PIN码。
蓝牙设备有两种信任级别,即可信任和不可信任。可信任级别有一个固定的可信任关系,可以得到大多数服务。可信任设备是预先得到鉴别的。而不可信任设备所得到的服务是有限的,它也可以具有一个固定的关系,但不是可信任的。一个新连接的设备总是被认为是未知的,不可信任的。
对蓝牙协议本身的攻击可以分为两类:主动攻击和被动攻击。主动攻击是没有被认证的第三方对传输过程中的数据流进行修改。主动攻击包括伪装、中继、信息修改以及拒绝服务。被动攻击可以是对传输内容进行窃听,也可以是对通信模式进行监听获取相关信息。
2.1字管理机制
蓝牙链字是长度为128位的随机数,它是蓝牙系统鉴权和加密的基础。为了支持不同阶段、模式的要求,蓝牙系统在链路层上用了4种不同的字来保证系统的安全性。包括单元字KA组合字是KAB,临时字Kmaster及初始化字Kinit。单元字KA与组合字KAB仅产生方式不同,执行的功能是完全相同的。也就是说,KAB是由两个单元A,B共同产生的,而KA仅由一个单元A产生,因此KA在初始化阶段产生后就基本不变了。系统的内存比较小时通常选择KA,而系统对稳定性要求比较高时选择KAB。临时字Kmaster只是临时取代原始字。例如,当主机想与多个子机通信时主机将用同一个加密字,因此把它存放在临时字中,以便于使用。初始化字Kinit仅仅在初始化阶段有效,也主是单元字KA,KAB产生的阶段,它不仅仅是初始化阶段的一个临时字,其产生需要一个PIN。半永久性的链接字在特定的时间内被称作当前链接字。当前链接字和其它
链接字一样,用于鉴权和加密过程。
此外,还用到了加密字KC,加密字被LM的命令激活后将自动被改变。
另外,鉴权字和加密字在不同的阶段执行不同的功能。例如:在两个单元没有建立连接的阶段和已经建立连接的阶段有很大的不同,前者必须首先产生加密字,而后者可以继续使用上次通信的加密字。相应地不同的阶段对字的管理是不一样的。此外当主机想广播消息,而不是一个一个地传送消息时,需要特殊的字管理方法。正是蓝牙系统有力的字管理机制,才使得系统具有很好的安全性,而且支持不同的应用模式。
2.2链接字的产生
初始化字Kunit的值以申请者的蓝牙设备地址、一个PIN码、PIN码的长度和一个随机数作为参数,通过E22算法产生。而申请者相对校验者而言是需要通过验证的一方。因此,申请者需要正确的PIN码和PIN码的长度。一般来讲,由HCI决定谁是申请者,谁是校验者。当PIN的长度少于16个八进制数时,可以通过填充蓝牙设备地址的数据使其增大,因此如果循环使用E22可以使链接字的长度增长为128位。初始化链接字Kint产生后,该单元将产生一个半永久字KA或KAB。如果产生的是一人KAB,则该单元将用一个随机数LK_RAND周期性地加密蓝牙设备地址,加密后的结果为LK_KA,而各自产生的LK_RAND与当前的链接字进行异或运算后,分别产生新值,永为CA和CA,然后互相交换,从而得到了对方的LK_RAND,并以对方的LK_RAND和蓝牙设备地址作为参数,用E21函数产生新值LK_KB的异或运算得到组合字KAB。当KAB产生后,首先单向鉴权一次,看KAB变为当前链接字,而丢弃原先的链接字K。E22的工作原理与E21类似。
‘贰’ 蓝牙技术的原理是什么
蓝牙技术的工作原理:蓝牙设备使用无线电波(而非电线或电缆)连接手机和电脑。当蓝牙设备之间想要相互交流时,它们需要进行配对,当网络环境创建成功,一台设备作为主设备,而所有其它设备作为从设备。微微网在蓝牙设备加入和离开无线电短程传感时动态、自动建立。
蓝牙用于在不同的设备之间进行无线连接,例如连接计算机和外围设备,如:打印机、键盘等,又或让个人数码助理(PDA)与其它附近的PDA或计算机进行通信。
市面上具备蓝牙技术的手机选择非常丰富,可以连接到计算机、PDA甚至连接到免提听筒。
事实上,根据已订立的标准,蓝牙可以支持功能更强的长距离通讯,用以构成无线局域网。每个Bluetooth设备可同时维护7个连接。可以将每个设备配置为不断向附近的设备声明其存在以便建立连接。另外也可以对二个设备之间的连接进行密码保护,以防止被其他设备接收。
(2)蓝牙通信有没有加密扩展阅读
蓝牙存在的问题主要有以下几个:
(1)蓝牙的功耗问题。蓝牙传输数据的频率不高,在传输数据的过程中耗能较少,但是,为了及时响应连接请求,在等待过程中的轮询访问却是十分耗能的。
(2)蓝牙的连接过程烦琐。蓝牙的连接过程中涉及多次的信息传递与验证过程,表面上来看似乎并不能让使用者感受到复杂的连接程序,但是,反复的数据加解密过程和每次连接都需进行的身份验证过程却是对于设备计算资源的一种极大的浪费。
(3)蓝牙的安全性问题。蓝牙的首次配对需要用户通过PIN码验证,PIN码一般仅由数字构成,且位数很少,一般为4~6位。
PIN码在生成之后,设备会自动使用蓝牙自带的E2或者E3加密算法来对PIN码进行加密,然后传输进行身份认证。在这个过程中,黑客很有可能通过拦截数据包,伪装成目标蓝牙设备进行连接或者采用“暴力攻击”的方式来破解PIN码。
‘叁’ 安卓手机 蓝牙怎么加密
蓝牙是没法加密的,一般你要不想让别人搜到你就把“可被发现”选项勾掉就行了;蓝牙的配对密码也无法更改改,一般是0000,或是1234。
‘肆’ 蓝牙的技术信息
主要文章:蓝牙协议栈和蓝牙协议
蓝牙被定义为协议层架构,包括核心协议、电缆替代协议、电话传送控制协议、选用协议。所有蓝牙堆栈的强制性协议包括:LMP、L2CAP和SDP。此外,与蓝牙通信的设备基本普遍都能使用HCI和 RFCOMM这些协议。
1 LMP:
链路管理协议(LMP)用于两个设备之间无线链路的建立和控制。应用于控制器上。
2 L2CAP
逻辑链路控制与适配协议(L2CAP)常用来建立两个使用不同高级协议的设备之间的多路逻辑连接传输。提供无线数据包的分割和重新组装。
在基本模式下,L2CAP能最大提供64kb的有效数据包,并且有672字节作为默认MTU(最大传输单元),以及最小48字节的指令传输单元。
在重复传输和流控制模式下,L2CAP可以通过执行重复传输和CRC校验(循环冗余校验)来检验每个通道数据是否正确或者是否同步。
蓝牙核心规格附录1 在核心规格中添加了两个附加的L2CAP模式。这些模式有效的否决了原始的重传和流控模式。 增强型重传模式(Enhanced Retransmission Mode,简称ERTM):该模式是原始重传模式的改进版,提供可靠的L2CAP 通道。 流模式(Streaming Mode,简称SM):这是一个非常简单的模式,没有重传或流控。该模式提供不可靠的L2CAP 通道。 其中任何一种模式的可靠性都是可选择的,并/或由底层蓝牙BDR/EDR空中接口通过配置重传数量和刷新超时而额外保障的。顺序排序是是由底层保障的。
只有ERTM 和 SM中配置的 L2CAP通道才有可能在AMP逻辑链路上运作。
3 SDP
服务发现协议(SDP)允许一个设备发现其他设备支持的服务,和与这些服务相关的参数。比如当用手机去连接蓝牙耳机(其中包含耳机的配置信息、设备状态信息,以及高级音频分类信息(A2DP)等等)。并且这些众多协议的切换需要被每个连接他们的设备设置。每个服务都会被全局独立性识别号(UUID)所识别。根据官方蓝牙配置文档给出了一个UUID的简短格式(16位)。
4 RFCOMM
射频通信(RFCOMM)常用于建立虚拟的串行数据流。RFCOMM提供了基于蓝牙带宽层的二进制数据转换和模拟EIA-232(即早前的的RS-232)串行控制信号,也就是说,它是串口仿真。
RFCOMM向用户提供了简单而且可靠的串行数据流。类似TCP。它可作为AT指令的载体直接用于许多电话相关的协议,以及通过蓝牙作为OBEX的传输层。
许多蓝牙应用都使用RFCOMM由于串行数据的广泛应用和大多数操作系统都提供了可用的API。所以使用串行接口通讯的程序可以很快的移植到RFCOMM上面。
5 BNEP
网络封装协议(BNEP)用于通过L2CAP传输另一协议栈的数据。主要目的是传输个人区域网络配置文件中的IP 封包。BNEP在无线局域网中的功能与SNAP类似。
6AVCTP
音频/视频控制传输协议(AVCTP)被远程控制协议用来通过L2CAP传输AV/C指令。立体声耳机上的音乐控制按钮可通过这一协议控制音乐播放器。
7 AVDTP
音视频分发传输协议(AVDTP)被高级音频分发协议用来通过L2CAP向立体声耳机传输音乐文件。适用于蓝牙传输中的视频分发协议。
8 TCS
电话控制协议–二进制(TCS BIN)是面向字节协议,为蓝牙设备之间的语音和数据通话的建立定义了呼叫控制信令。此外,TCS BIN 还为蓝牙TCS设备的的群组管理定义了移动管理规程。
TCS-BIN仅用于无绳电话协议,因此并未引起广泛关注。
9采用的协议
采用的协议是由其他标准制定组织定义、并包含在蓝牙协议栈中,仅在必要时才允许蓝牙对协议进行编码。采用的协议包括: 点对点协议(PPP):通过点对点链接传输IP数据报的互联网标准协议 TCP/IP/UDP:TCP/IP 协议组的基础协议 对象交换协议(OBEX):用于对象交换的会话层协议,为对象与操作表达提供模型 无线应用环境/无线应用协议(WAE/WAP):WAE明确了无线设备的应用框架,WAP是向移动用户提供电话和信息服务接入的开放标准。
根据不同的封包类型,每个封包可能受到纠错功能的保护,或许是1/3速率的前向纠错(FEC) ,或者是2/3速率。此外,出现CRC错误的封包将会被重发,直至被自动重传请求(ARQ)承认。 任何可发现模式下的蓝牙设备都可按需传输以下信息: 设备名称 设备类别 服务列表 技术信息(例如设备特性、制造商、所使用的蓝牙版本、时钟偏移等) 任何设备都可以对其他设备发出连接请求,任何设备也都可能添加可回应请求的配置。但如果试图发出连接请求的设备知道对方设备的地址,它就总会回应直接连接请求,且如果有必要会发送上述列表中的信息。设备服务的使用也许会要求配对或设备持有者的接受,但连接本身可由任何设备发起,持续至设备走出连接范围。有些设备在与一台设备建立连接之后,就无法再与其他设备同时建立连接,直至最初的连接断开,才能再被查询到。
每个设备都有一个唯一的48-位的地址。然而这些地址并不会显示于连接请求中。但是用户可自行为他的蓝牙设备命名(蓝牙设备名称),这一名称即可显示在其他设备的扫描结果和配对设备列表中。
多数手机都有蓝牙设备名称(Bluetooth name),通常默认为制造商名称和手机型号。多数手机和手提电脑都会只显示蓝牙设备名称,想要获得远程设备的更多信息则需要有特定的程序。当某一范围内有多个相同型号的手机(比如 Sony Ericsson T610)时,也许会让人分辨哪个才是它的目标设备。(详见Bluejacking) 1 动机
蓝牙所能提供多很多服务都可能显示个人数据或受控于相连的设备。出于安全上的考量,有必要识别特定的设备,以确保能够控制哪些设备能与蓝牙设备相连的。同时,蓝牙设备也有必要让蓝牙设备能够无需用户干预即可建立连接(比如在进入连接范围的同时).
未解决该矛盾,蓝牙可使用一种叫bonding(连接) 的过程。Bond是通过配对(paring)过程生成的。配对过程通过或被自用户的特定请求引发而生成bond(比如用户明确要求“添加蓝牙设备”),或是当连接到一个出于安全考量要求需要提供设备ID的服务时自动引发。这两种情况分别称为dedicated bonding和general bonding。
配对通常包括一定程度上的用户互动,已确认设备ID。成功完成配对后,两个设备之间会形成Bond,日后再再相连时则无需为了确认设备ID而重复配对过程。用户也可以按需移除连接关系。
2 实施
配对过程中,两个设备可通过一种创建一种称为链路字的共享密钥建立关系。如果两个设备都存有相同的链路字,他们就可以实现paring或bonding。一个只想与已经bonding的设备通信的设备可以使用密码验证对方设备的身份,以确保这是之前配对的设备。一旦链路字生成,两个设备间也许会加密一个认证的异步无连接(Asynchronous Connection-Less,简称ACL) 链路,以防止交换的数据被窃取。用户可删除任何一方设备上的链路字,即可移除两设备之间的bond,也就是说一个设备可能存有一个已经不在与其配对的设备的链路字。
蓝牙服务通常要求加密或认证,因此要求在允许设备远程连接之前先配对。一些服务,比如对象推送模式,选择不明确要求认证或加密,因此配对不会影响服务用例相关的用户体验。
3 配对机制
在蓝牙2.1版本推出安全简易配对(Secure Simple Pairing) 之后,配对机制有了很大的改变。以下是关于配对机制的简要总结: 旧有配对:这是蓝牙2.0版及其早前版本配对的唯一方法。每个设备必须输入PIN码;只有当两个设备都输入相同的PIN码方能配对成功。任何16-比特的 UTF-8字符串都能用作PIN码。然而并非所有的设备都能够输入所有可能的PIN码。 有限的输入设备: 显而易见的例子是蓝牙免提耳机,它几乎没有输入界面。这些设备通常有固定的PIN,如0000或1234,是设备硬编码的。 数字输入设备: 比如移动电话就是经典的这类设备。用户可输入长达16位的数值。 字母数字输入设备: 比如个人电脑和智能电话。用户可输入完整的UTF-8 字符作为PIN码。如果是与一个输入能力有限的设备配对,就必须考虑到对方设备的输入限制,并没有可行的机制能够让一个具有足够输入能力的设备去决定应该如何限制用户可能使用的输入。 安全简易配对(SSP):这是蓝牙2.1版本要求的,尽管蓝牙2.1版本的也许设备只能使用旧有配对方式和早前版本的设备互操作。 安全简易配对使用一种公钥密码学(public key cryptography),某些类型还能防御中间人(man in the middle,简称MITM)攻击。SSP 有以下特点: 即刻运行(Just works):正如其字面含义,这一方法可直接运行,无需用户互动。但是设备也许会提示用户确认配对过程。此方法的典型应用见于输入输出功能受限的耳机,且较固定PIN机制更为安全。此方法不提供中间人(MITM) 保护。 数值比较(Numeric comparison):如果两个设备都有显示屏,且至少一个能接受二进制的“是/否”用户输入,他们就能使用数值比较。此方法可在双方设备上显示6位数的数字代码,用户需比较并确认数字的一致性。如果比较成功,用户应在可接受输入的设备上确认配对。此方法可提供中间人(MITM) 保护,但需要用户在两个设备上都确认,并正确的完成比较。 万能钥匙进入(Passkey Entry):此方法可用于一个有显示屏的设备和一个有数字键盘输入的设备(如计算机键盘),或两个有数字键盘输入的设备。第一种情况下,显示屏上显示6位数字代码,用户可在另一设备的键盘上输入该代码。第二种情况下,两个设备需同时在键盘上输入相同的6位数字代码。两种方式都能提供中间人(MITM) 保护。 非蓝牙传输方式(OOB):此方法使用外部通信方式,如近场通信(NFC),交换在配对过程中使用的一些信息。配对通过蓝牙射频完成,但是还要求非蓝牙传输机制提供信息。这种方式仅提供OOB机制中所体现的MITM保护水平。 SSP被认为简单的原因如下: 多数情况下无需用户生成万能钥匙。 用于无需MITM保护和用户互动的用例。 用于数值比较,MITM 保护可通过用户简单的等式比较来获得。 使用NFC等OOB,当设备靠近时进行配对,而非需要一个漫长的发现过程。 4 安全性担忧
蓝牙2.1之前版本是不要求加密的,可随时关闭。而且,密钥的有效时限也仅有约23.5 小时。单一密钥的使用如超出此时限,则简单的XOR攻击有可能窃取密钥。 一些常规操作要求关闭加密,如果加密因合理的理由或安全考量而被关闭,就会给设备探测带来问题。 蓝牙2.1版本从一些几个方面进行了说明: 加密是所有非-SDP(服务发现协议)连接所必需的。 新的加密暂停和继续功能用于所有要求关闭加密的常规操作,更容易辨认是常规操作还是安全攻击。 加密必须在过期之前再刷新。 链路字可能储存于设备文件系统,而不是在蓝牙芯片本身。许多蓝牙芯片制造商将链路字储存于设备—然而,如果设备是可移动的,就意味着链路字也可能随设备移动。 另请参见:基于通信网络的移动安全和攻击
蓝牙拥有机密性、完整性和基于SAFER+分组密码的定制算法的密钥导出。蓝牙密钥生成通常基于蓝牙PIN,这是双方设备都必须输入的。如果一方设备(如耳机、或类似用户界面受限的设备)有固定PIN,这一过程也可能被修改。配对过程中,初始密钥或主密钥通过E22算法生成。 E0流密码也用于加密数据包、授权机密性,它是基于公共加密的、也就是之前生成的链路字或主密钥。这些密钥可用于对通过空中接口传输的数据进行后续加密,密钥有赖于双方或一方设备中输入的PIN。
Andreas Becher于2008年发表了蓝牙漏洞信息的利用概况。
2008年9月,美国国家标准与技术研究院(National Institute of Standards and Technology,NIST)发布了蓝牙安全指南(Guide to Bluetooth Security),供相关机构参考。该指南描述了蓝牙的安全功能,以及如何有效的保护蓝牙技术。蓝牙技术有它的优势,但它易受拒绝服务攻击、窃听、中间人攻击、消息修改及资源滥用。用户和机构都必须评估自己所能接受的风险等级,并在蓝牙设备的生命周期中增添安全功能。为减轻损失,NIST文件中还包括安全检查列表,其内包含对蓝牙微微网、耳机和智能读卡器的创建和安全维护的指南和建议。
蓝牙2.1发布于2007年,相应的消费设备最早出现于2009年,为蓝牙安全(包括配对)带来了显着的改观。更多关于这一改变的信息,请参见“配对机制”部分。 主要文章:Bluejacking
Bluejacking是指用户通过蓝牙无线技术向对方不知情的用户发送图片或信息。常见的应用包括短信息,比如“你被Bluejack了”。Bluejacking不涉及设备上任何数据的删除或更改。Bluejacking可能涉及取得对移动设备的无线控制和拨打属于Bluejack发起者的付费电话。安全上的进展已经缓解了这一问题。 一、2001–2004
2001年,贝尔实验室的Jakobsson和Wetzel from发现并指出了蓝牙配对协议和加密方案的缺陷。2003年,A.L. Digital 公司的Ben和Adam Laurie发现蓝牙安全实施上的一些重要缺陷有可能导致个人信息的泄露。随后Trifinite Group的Martin Herfurt在德国汉诺威电脑展(CEBIT)的游乐场中进行了现场试验,向世界展示了这一问题的重要性。 一种称为BlueBug的新型攻击被用于此次实验。2004年,第一个生成通过蓝牙在移动电话间传播的病毒出现于塞班系统。卡巴斯基实验室最早发现了该病毒,并要求用户在病毒传播之前确认未知软件的安装。病毒是由一群自称“29A”的病毒开发者作为验证概念编写,并发送防病毒机构的。因此,它应被看作是对蓝牙技术或塞班系统的潜在威胁,而非实际的威胁,原因是该病毒并未散播至塞班系统之外。2004年8月,一个世界纪录级的实验(另请参见Bluetooth sniping)证实,如果有定向天线和信号放大器,2类蓝牙无线电的范围可扩增至1.78km(1.11mi)。这就造成了潜在的安全威胁,因为攻击者将能够在相当程度的远距离之外接入有缺陷的蓝牙设备。攻击者想要与目标设备建立连接,还必须能够接受其发出的信息。如果攻击者不知道蓝牙地址和传输通道(尽管它们在设备使用状态下几分钟之内就能推导出来),就不可能对蓝牙设备进行攻击。
二、2005年
2005年1月,一种称为Lasco.A的移动恶意程序蠕虫开始针对采用塞班系统(60系列平台)的移动电话,通过蓝牙设备自我复制并传播至其他设备。一旦移动用户允许接收另一设备发送来的文件(velasco.sis),这一蠕虫即可开始自动安装。一旦安装成功,蠕虫变回开始寻找并感染其他的蓝牙设备。此外,蠕虫会感染设备上其他的.SIS文件,通过可移动的媒体文件(保全数位、CF卡等)复制到另一设备上。蠕虫可导致移动电话的不稳定。
2005年4月,剑桥大学安全研究员发表了针对两个商业蓝牙设备间基于PIN配对的被动攻击的研究结果。他们证实了实际攻击之快,以及蓝牙对称密钥建立方法的脆弱。为纠正争议缺陷,他们通过实验证实,对于某些类型的设备(如移动电话),非对称密钥建立更可靠且可行。
2005年6月,Yaniv Shaked和Avishai Wool发表文章,描述了蓝牙链路获得PIN的被动和主动方法。如果攻击者出现在最初配对时,被动攻击允许配有相应设备的攻击者窃听通信或冒名顶替。主动攻击方法使用专门建立的、必须插入到协议中特定的点的信息,
让主从设备不断重复配对过程。然后再通过被动攻击即可攻获PIN码。这一攻击的主要弱点是它要求用户在设备受攻击时根据提示重新输入PIN。主动攻击可能要求定制硬件,因为大多数商业蓝牙设备并不具备其所需的定时功能。
2005年8月,英国剑桥郡警方发布警告,称有不法分子通过有蓝牙功能的电话跟踪放置于车中的其他设备。警方建议当用户把手提电脑或其他设备放置于车中时,须确保任何移动网络连接均处于禁用状态。
三、2006年
2006年4月, Secure Network和F-Secure的研究人员发布了一份报告,提醒人们注意可见状态下的设备之多,并公布了有关蓝牙服务的传播、以及蓝牙蠕虫传播进程缓解的相关数据。
四、2007年
2007年10月,在卢森堡黑客安全大会上,Kevin Finistere和Thierry Zoller展示并发布了一款课通过Mac OS X v10.3.9 和 v10.4上的蓝牙进行通信的远程跟外壳(root shell)。它们还展示了首个PIN 和 Linkkeys 破解器,这是基于Wool 和 Shaked的研究。
‘伍’ 蓝牙加密协议有些什么
蓝牙协议规范的目标是允许遵循规范的应用能够进行相互间操作。
蓝牙SIG规范的完整蓝牙协议栈如图:
蓝牙核心协议
蓝牙的核心协议由基带,链路管理,逻辑链路控制与适应协议和服务搜索协议等4部分组成.
(1)基带协议
基带协议确保各个蓝牙设备之间的射频连接,以形成微微网络。
(2)链路管理协议
链路管理协议(LMP)负责蓝牙各设备间连接的建立和设置。LMP通过连接的发起,交换和核实进行身份验证和加密,通过协商确定基带数据分组大小;还控制无线设备的节能模式和工作周期,以及微微网络内设备单元的连接状态。
(3)逻辑链路控制和适配协议
逻辑链路控制和适配协议(L2CAP)是基带的上层协议,可以认为L2CAP与LMP并行工作。L2CAP与LMP的区别在于当业务数据不经过LMP时,L2CAP为上层提供服务。
(4)服务搜索协议
使用服务搜索协议(SDP),可以查询到设,备信息和服务类型,从而在蓝牙设备间建立相应的连接。