Guide to BluetoothSecurity原文
本出版物可免费从以下网址获得:https://doi.org/10.6028/NIST.SP.800-121r2
权威
本出版物是由NIST根据2014年 “联邦信息安全现代化法案” (FISMA),44 USC §3551及以下公法(PL)113-283的法定责任制定的。NIST负责制定信息安全标准和指导方针,包括联邦信息系统的最低要求,但未经联邦官员明确批准对这种系统采取政策授权,这些标准和准则不适用于国家安全系统。本指引符合管理预算办公室(OMB)A-130号通知的要求。
本出版物中的任何内容均不得与商务部在法定授权下强制性和对联邦机构具有约束力的标准和指引相抵触。这些准则也不应被解释为更改或取代商务部现任主管部门,OMB总监或任何其他联邦官员。本出版物可由非政府组织自愿使用,不受美国版权保护。然而,归因将被NIST赞赏。
国家标准技术研究所特刊800-121修订2
对本出版物的评论可能会提交给:
国家标准技术研究所
Attn:信息技术实验室信息技术实验室计算机安全部100 Bureau Drive(Mail Stop 8930)Gaithersburg,MD 20899-8930
电子邮件:[email protected]
所有评论都将根据 “信息自由法案” (FOIA)发布。
计算机系统技术报告
美国国家标准技术研究所(NIST)的信息技术实验室(ITL)通过为国家测量和标准基础设施提供技术领导,促进美国经济和公共福利。ITL开发测试,测试方法,参考数据,概念验证实施和技术分析,以推动信息技术的开发和生产使用。ITL的职责包括为联邦信息系统中的国家安全相关信息以外的成本效益安全和隐私制定管理,行政,技术和物理标准和准则。特刊800系列报道了国际交易日志在信息系统安全方面的研究,指导方针和外展工作,以及与行业,政府和学术机构的合作活动。
摘要
蓝牙无线技术是用于短距离射频通信的开放标准,主要用于建立无线个人区域网络(WPAN),并已被集成到许多类型的服务和消费设备中。本出版物提供有关蓝牙安全功能的信息,并向采用蓝牙无线技术的组织提出有效保护蓝牙技术的建议。本出版物范围内的蓝牙版本为1.1,1.2,2.0+增强数据速率(EDR),2.1+ EDR,3.0+高速(HS),4.0,4.1和4.2。版本4.0及更高版本支持蓝牙的低能耗功能。
关键字
蓝牙;信息安全;网络安全;无线网络;无线个人区域网络
鸣谢
作者,埃森哲的John Padgette,代表飞利浦Healthtech的John Bahr,高通的Mayank Batra,Intel的Marcel Holtmann,Spanalytics的Rhonda Smithbey,国家标准与技术研究所的Nily Chen,以及Karen Scarfone Cybersecurity的Scarfone,希望感谢他们在蓝牙安全专家组(SEG)中的同事,他们贡献了技术内容,并对本文件的草稿进行了审查。作者非常感谢Spanalytics的Mark Nichols提供的意见和反馈,以及LP的Biometric Associates的Alan Kozlay的贡献。作者还要感谢蓝牙SIG技术人员Catherine Brooks提供新的图形。
读者注意
本文档是NIST SP 800-121 “蓝牙安全指南” 的第二个修订版本。本修订中的更新包括介绍和讨论蓝牙4.1和4.2安全机制和建议,包括BR/EDR的安全连接和低能耗。
蓝牙是短距离射频(RF)通信的开放标准。蓝牙无线技术主要用于建立无线个人区域网络(WPAN)。蓝牙已经集成到许多类型的商业和消费设备中,包括手机,笔记本电脑,汽车,医疗设备,打印机,键盘,鼠标,耳机,以及最近的医疗设备和个人设备(例如智能手表,音乐扬声器,家用电器,健身器材和跟踪器)。这允许用户在各种设备之间形成自组织网络以传送语音和数据。本文档概述了蓝牙无线技术,并讨论了相关安全问题。
有多个蓝牙版本目前在商业设备中使用,而最新版本可以在蓝牙网站找到。在撰写本文时,蓝牙4.0(2010年6月采用)是最普遍的。最新版本包括蓝牙4.1和蓝牙4.2。蓝牙
4.1(2013年12月采用)通过使用联邦信息处理标准(FIPS)批准的算法,改进了基本速率/增强型数据速率(BR/EDR)技术加密密钥,设备认证和加密的优势。蓝牙4.2(2014年12月采用)通过使用FIPS认可的算法提高了低能耗技术加密密钥(cryptographic key)的实力,并提供了将BR/EDR技术密钥转换为低能耗技术密钥的手段,反之亦然。本出版物涉及所有蓝牙版本的安全性。
蓝牙无线技术和相关设备易受一般无线网络威胁的影响,例如拒绝服务(DoS)攻击,窃听,中间人(MITM)攻击,消息修改和资源盗用。他们也受到针对蓝牙无线技术的更具体的攻击威胁,针对蓝牙实施和规范中的已知漏洞。针对不正确的蓝牙安全实施的攻击可以为攻击者提供未经授权的访问敏感信息和未经授权使用蓝牙设备,以及设备连接到的其他系统或网络。
为了提高蓝牙实施的安全性,组织应实施以下建议:组织应使用蓝牙设备最强的蓝牙安全模式。
蓝牙规范定义了几种安全模式,每种蓝牙版本支持这些模式的一些但不是全部。模式主要取决于设备启动安全性的时间点;因此,这些模式定义了它们如何保护蓝牙通信和设备免受潜在攻击。某些安全模式具有影响连接安全性的可配置的安全级别设置。
对于具有BR,EDR和高速(HS)功能的蓝牙4.1设备,建议使用安全模式4,级别4,因为它需要安全连接,安全连接使用通过FIPS认证的高级功能生成的128位强度密钥进行身份验证配对和加密标准(AES)加密。对于蓝牙2.1至4.0设备,安全模式4,级别3是最安全的,对于蓝牙2.0和更旧的设备,建议使用安全模式3。安全模式2和4也可以使用认证和加密,但是在蓝牙物理链路已经完全建立并且逻辑信道部分建立之后才能启动它们。安全模式1设备永远不会启动安全性,因此不应该使用。
对于蓝牙的低能耗特性(4.0版中已经引入并在4.1和4.2版中更新),安全模式1级别4是最强的模式,因为它需要基于加密的椭圆曲线Diffie-Hellman(ECDH)认证的低能耗安全连接。安全模式1级别3需要经过身份验证的配对和加密,但不使用基于ECDH的密码术,因此由于弱加密而提供有限的窃听保护。其他安全模式/级别允许未经身份验证的配对(意味着在加密密钥建立期间不提供MITM保护),有些不需要任何安全性。
可用模式根据设备支持的蓝牙规范版本而有所不同,因此组织应为每种情况选择最安全的模式。
组织应在其安全策略中解决蓝牙无线技术,并更改蓝牙设备的默认设置以反映策略。
确定蓝牙安全性要求的安全策略是所有其他蓝牙相关对策的基础。该政策应包括蓝牙的批准使用列表,可通过蓝牙网络传输的信息类型列表,以及使用蓝牙个人识别号码(PIN)的要求(注1)。基准蓝牙默认设置的配置应与安全策略一起使用。表4-2中的清单提供了可用作指导的 “技术建议” 部分。在建立蓝牙安全策略后,组织应确保根据需要审查和更改蓝牙设备的默认设置,以使其符合安全策略要求。例如,典型的要求是禁用不需要的蓝牙配置文件和服务,以减少攻击者可能尝试利用的漏洞数量。如果可用,应使用集中的安全策略管理方法来确保设备配置符合要求。
组织应确保他们的蓝牙用户了解与蓝牙使用相关的安全相关责任。
应更新每年所需的安全意识计划,以包括蓝牙安全策略指南。安全意识计划有助于教育和培训用户遵循保护组织资产并防止安全事件的安全措施。例如,应向用户提供他们应采取的预防措施清单,以更好地保护手持式蓝牙设备免遭盗窃。用户还应了解有关蓝牙设备安全性的其他操作,例如确保蓝牙设备在不需要时关闭,以尽量减少暴露于恶意活动,并尽可能不频繁地执行蓝牙设备配对,并且理想情况下物理安全区域,攻击者无法观察密钥进入和窃听蓝牙配对相关通信。
注1:从蓝牙2.1中的简单安全配对开始,PIN不再用于配对。
1 简介
1.1 目的和范围
本文档的目的是向组织提供关于蓝牙安全功能的信息,并向使用蓝牙无线技术的组织提供有效保护蓝牙技术的建议。本出版物范围内的蓝牙版本为1.1,1.2,2.0 +增强数据速率(EDR),2.1 + EDR,3.0 +高速(HS),4.0,4.1和4.2。4.0及更高版本中存在具有低能耗功能的蓝牙。蓝牙5.0不在本文档的范围内。
1.2 观众和假设
本文档详细讨论了蓝牙无线技术和安全功能。本文档假设读者至少有一些操作系统,无线网络和安全知识。由于无线安全行业的不断变化的性质以及技术的威胁和脆弱性,强烈鼓励读者利用其他资源(包括本文档中列出的资源)来获取更多当前和详细的信息。
以下列表突出显示可能使用本文档的不同角色和职责的人:
- 负责监督其组织内蓝牙使用和安全性的政府管理人员(如首席信息官和高级管理人员)
- 设计和实施蓝牙无线技术的系统工程师和架构师
- 执行无线环境安全评估的审计员,安全顾问和其他人员
- 正在努力了解底层的无线技术的研究人员和分析师
1.3 文件组织
本文档的其余部分由以下部分和附录组成:
- 第2节概述了蓝牙无线技术,包括其优点,技术特征和架构。
- 第3节讨论蓝牙规范中定义的安全功能,并强调其限制。
- 第4节检查涉及蓝牙无线技术的常见漏洞和威胁,并提出对策以提高蓝牙安全性的建议。
- 附录A提供术语表。
- 附录B提供了本文档中使用的缩略语列表。
- 附录C列出了蓝牙功能。
- 附录D列出了蓝牙参考。
- 附录E列出了蓝牙在线资源。
2 蓝牙无线技术概述
蓝牙是短距离射频(RF)通信的开放标准。蓝牙主要用于建立无线个人区域网络(WPAN)。蓝牙已经集成到许多类型的商业和消费设备中,包括手机,笔记本电脑,汽车,打印机,键盘,鼠标,耳机,以及最近的医疗设备和个人设备(如智能手表,音乐扬声器,家用电器,健身器材和跟踪器)。这允许用户在各种设备之间形成自组织网络以传送语音和数据。蓝牙是一种低成本,低功耗的技术,它提供了一种以特殊方式创建小型无线网络的机制,称为微微网(注2)。微微网由两个或更多个物理接近的蓝牙设备组成,在相同的信道上使用相同的跳频序列进行操作。微微网的一个例子是使用蓝牙无线技术的手机和耳机之间的连接。
蓝牙微微网通常建立在临时和变化的基础上,这提供了移动设备之间的通信灵活性和可扩展性。蓝牙的一些主要优点是:
- 更换电缆 蓝牙替代了各种电缆,例如传统上用于外围设备(例如鼠标和键盘连接)的电缆,打印机以及与台式机,笔记本电脑,手机等接口的有线耳机和耳塞。
- 轻松的文件共享 支持蓝牙的设备可以形成微微网,以支持与其他蓝牙设备(如笔记本电脑)的文件共享功能。
- 无线同步 蓝牙可以在启用蓝牙的设备之间提供自动同步。例如,蓝牙允许智能手机和汽车之间的联系信息的同步。
- 互联网连接 具有互联网连接的蓝牙设备可以与其他蓝牙设备共享该访问。例如,笔记本电脑可以使用蓝牙连接来利用智能手机的个人热点能力来提供对笔记本电脑的因特网访问。
蓝牙最初是由爱立信于1994年构思的。爱立信,IBM,英特尔,诺基亚和东芝成立了蓝牙特别兴趣小组(SIG),这是一个非营利性贸易协会,旨在推动蓝牙产品的开发,并成为蓝牙技术规范的理事机构(注3)。1999年IEEE 802.15.1-2002形成的IEEE 802.15无线个人区域网络工作组中的蓝牙标准化(注4)。
本节提供了蓝牙的概述,包括频率和数据速率,范围和架构。
注2:如第2.2节所述,术语 “微微网” 适用于特设和基础设施蓝牙网络。
注3:Bluetooth SIG网站(https://www.bluetooth.com/)是蓝牙相关信息的资源,并提供许多链接到其他信息来源。
注4:有关更多信息,请参见IEEE网站http://grouper.ieee.org/groups/802/15/。
2.1 蓝牙无线技术特点
蓝牙工作在无牌照2.4千兆赫兹(GHz)至2.4835 GHz工业,科学和医疗(ISM)频段。许多技术在这个频带中运行,包括IEEE 802.11b/g/n无线局域网(WLAN)标准,使其从无线传输量的角度来看有些拥挤。蓝牙采用跳频扩频(FHSS)技术进行传输。FHSS减少了干扰和传输错误,但提供了最小的传输安全性。
使用FHSS技术,蓝牙基本速率(BR)/ EDR设备之间的通信通过在数据/语音链路中跳频(即,更改)每秒1600次的频率,并在寻呼和查询扫描中每秒3200次,使用79个不同的1兆赫(MHz)射频信道。一个通道用于非常短的时间段(例如,数据/语音链路为625μs),接着是跳到由预定义的伪随机序列指定的另一个信道;该过程在跳频序列中连续重复。
蓝牙低能耗通信使用与BR/EDR设备相同的频率范围,但将其分为40个2MHz宽的通道。其中三个通道用于广告(广播数据和连接设置),另外37个是数据通道。这40个信道与时分多址(TDMA)方案相结合,为蓝牙低功耗特性提供了两种多路接入方案。使用轮询方案,其中第一设备在预定时间发送分组,并且相应的设备在预定间隔之后进行响应。这些数据交换称为广告或连接事件。
蓝牙还提供射频链路功率控制,其允许设备根据信号强度测量来协商和调整其射频功率。蓝牙网络中的每个设备可以确定其接收到的信号强度指示(RSSI),并请求另一个网络设备调整其相对射频功率电平(即逐渐增加或降低发送功率)。这是为了节省功率和/或将接收的信号特性保持在优选的范围内。
跳频方案和射频链路功率控制的组合为蓝牙提供了一些额外的,尽管有限的保护,防止窃听和恶意访问。跳频方案主要是一种避免干扰的技术,使对手能够定位和捕获蓝牙传输比从IEEE 802.11b/g中使用的固定频率技术传输的难度要大得多。研究表明,活动微微网的蓝牙跳频序列可以使用相对便宜的硬件和免费开源的软件来确定(注5)。
蓝牙BR/EDR设备的范围由定义电源管理的三个等级组成。表2-1总结了这些类别,包括其功率级别(毫瓦(mW))和参考于一毫瓦的分贝(dBm),其工作范围(米))(注6)。大多数小电池供电的设备都是Class 2,而Class 1设备通常是台式机和笔记本电脑的通用串行总线(USB)适配器,以及接入点和其他使用主电源的设备。许多蓝牙低功耗设备被设计为长时间运行在非常小的电池上。
注5:Spill,Dominic和Bittau,Andrea,BlueSniff:Eve会见Alice和Bluetooth,2007。
注6:表2-1中列出的范围是设计的工作范围。攻击者可能能够以更大的距离拦截通信,特别是如果它们使用高增益天线和高灵敏度接收机。
为了允许蓝牙设备找到并建立彼此的通信,指定可发现和可连接的模式。可发现模式的设备周期性地监视查询扫描物理信道(基于特定的一组频率),并响应该信道上的设备地址,本地时钟(计数器)值和寻呼并随后连接所需的其他特性的查询给它可连接模式的设备定期监控其寻呼扫描物理通道,并响应该通道上的寻呼以启动网络连接。与设备的寻呼扫描物理通道相关联的频率基于其蓝牙地址。因此,了解设备的地址和本地时钟对于寻呼并随后连接到设备很重要(注8)。
以下部分介绍蓝牙BR/EDR/HS数据速率,低能耗技术和双模式设备。
注7:蓝牙核心规范附录(CSA)v5引入了Power Class 1.5(10mW),这是蓝牙低功耗4.0-4.2设备的最大输出功率。只要当地监管机构允许,CSA v5也将低能耗设备的最大输出功率提高到100mW。
注8:不需要远程设备的时钟信息进行连接,但会加快连接过程。
2.1.1 基本,增强和高速数据速率
蓝牙设备可以使用本机蓝牙和备用媒体访问控制(MAC)和物理(PHY)层来支持多种数据速率。蓝牙规格设计为向后兼容;支持更高数据速率的稍后的规范设备还支持较早规范设备支持的较低数据速率(例如,EDR设备还支持为BR设备指定的速率)。以下部分提供了蓝牙和备用MAC/PHY的概述,以及相关的数据速率和调制方案。
2.1.1.1 基本速率/增强数据速率
蓝牙版本1.1和1.2仅支持高达1兆比特每秒(Mbps)的传输速度,这被称为基本速率(BR),并且可以实现大约720千比特每秒(kbps)的有效载荷吞吐量。在蓝牙版本2.0中引入,EDR规定高达3 Mbps的数据速率和大约2.1 Mbps的吞吐量。
BR使用高斯频移键控(GFSK)调制实现1 Mbps数据速率。EDR使用p/4旋转差分四相相移键控(DQPSK)调制实现2 Mbps数据速率,以及8相位差相移键控(8DPSK),实现3 Mbps数据速率。
请注意,符合Bluetooth 2.0规范或更高版本的设备不需要EDR支持。因此,市面上有 “Bluetooth 2.0兼容” 与 “Bluetooth 2.0 + EDR兼容” 的设备。前者是支持所需版本2.0功能的设备,但仅提供BR数据速率。
2.1.1.2 具有备用MAC/PHY的高速
在蓝牙3.0 + HS规范中引入,设备可以通过使用备用MAC/PHY(AMP)来支持更快的数据速率。这被称为蓝牙高速技术。
在蓝牙3.0 + HS规范中,引入IEEE 802.11-2007作为第一个支持的AMP。 IEEE 802.11-2007是通过802.11j修订的IEEE 802.11a的汇总。对于802.11 AMP,IEEE 802.11g PHY支持是强制性的,而IEEE 802.11a PHY支持是可选的。802.11 AMP旨在使用正交频分复用(OFDM)调制提供高达24 Mbps的数据速率。
请注意,该AMP符合IEEE 802.11标准,但不符合Wi-Fi标准。因此,蓝牙3.0 + HS设备不需要符合Wi-Fi Alliance规范。
2.1.2 低能耗
Bluetooth 4.0规范中引入了蓝牙低能耗,并在4.1和4.2中进行了更新。以前被称为 “Wibree” 和 “超低功耗蓝牙” 的低能耗主要用于将蓝牙装入诸如医疗设备和其他传感器的纽扣电池供电设备。蓝牙低功耗(与蓝牙BR/EDR相比)的关键技术目标包括降低功耗,减少内存需求,高效发现和连接过程,短包长度以及简单的协议和服务。
表2-2提供了BR/EDR与低能耗之间的关键技术差异。
2.1.3 双模式设备(并发低能耗和BR/EDR/HS支持)
蓝牙4.0或更高版本的设备可以支持BR/EDR/HS和低能耗作为 “双模式” 蓝牙设备。一个例子是使用EDR链接到蓝牙耳机的手机,以及与传感器并发的低能耗链路,该传感器解锁并启动用户的汽车。蓝牙4.x设备的设备架构如图2-1所示,包括BR/EDR,HS和低能耗技术。有关安全性的图中包含的新术语将在后续章节中讨论。
注9:有关P-192的更多信息,请参阅FIPS 186-4数字签名标准(DSS)。
注10:低能耗无专用设备认证算法。加密链接也可以成功验证远程设备。
注11:只要监管机构允许,核心规范附录5(CSA5)将其更改为100 mW(20 dBm)。
2.2 蓝牙架构
蓝牙允许设备建立自组织网络。Ad hoc网络允许在相同物理区域(例如,同一房间)内的设备之间轻松地建立连接,而不使用任何基础设施设备。蓝牙客户端只是具有蓝牙射频和软件的设备,其中包含蓝牙协议栈和接口。
蓝牙规范提供了在主机和控制器之间执行堆栈功能的职责分离。主机负责较高层协议,如逻辑链路控制和适配协议(L2CAP)和服务发现协议(SDP)。主机功能由计算设备(如笔记本电脑或智能手机)执行。控制器负责较低层,包括射频,基带和链路控制/管理。
控制器功能由集成或外部(例如USB)蓝牙适配器执行。主机和控制器使用通过主机控制器接口(HCI)的标准化通信彼此发送信息。这种标准化的HCI允许来自不同产品供应商的主机和控制器进行互操作。在某些情况下,主机和控制器功能集成到单个设备中;蓝牙耳机是一个很好的例子。
蓝牙网络拓扑图如图2-2所示。在微微网中,一个设备用作主设备,微微网中的所有其他设备充当从设备。BR/EDR微微网可扩展到最多可包含7个活动从设备和多达255个非活动从设备。蓝牙低能耗(见第2.1.2节)允许无限数量的从设备,这被称为低能耗外设角色,主站是低能耗中心角色。另外两个低能耗设备角色,Broadcaster和Observer,在本节将在下面讨论。
主设备控制和建立网络,包括定义网络的跳频方案。虽然只有一个设备可以用作每个微微网的主设备,但时分复用(TDM)允许一个微微网中的从设备同时作为另一个微微网的主设备,从而创建一个网络链(注12)。这个称为散射网(Scatternet)的链条允许在任何给定的会话期间可以改变的动态拓扑中的多个设备进行网络连接。随着设备向主设备移动或远离主设备,拓扑结构可能随着即时网络中设备的关系而改变。图2-3描述了一个涉及三个微微网的散射网(Scatternet)。
注12:请注意,特定设备在任何给定时间只能是一个微微网的主控。
蓝牙核心协议不会提供跨跳网络的多跳网络路由功能。例如,在图2-3中,Piconet 3中的用户C的电话无法在Piconet 2中与用户B的电话进行通信,而无需在它们之间建立附加的微微网。
BR/EDR和低能耗技术都支持散射网(Scatternet)。
低能耗功能还支持无连接广播架构,广播者(Broadcasters)(低能耗设备角色)周期性地发送数据,观察者(Observers)(低能耗设备角色)监听并消耗该数据。这允许设备一次将数据传输到多个对等体。广播功能是低能耗连接架构中使用的广告能力的一个子集。
3 蓝牙安全功能
本节概述了蓝牙规范中包含的安全机制,以说明其限制,并为第4节中的安全建议提供基础。蓝牙射频路径的安全范围的高级示例如图3-1所示。在该示例中,在电话和笔记本电脑之间提供蓝牙安全性,而IEEE 802.11安全保护笔记本电脑和IEEE 802.11接入点(AP)之间的WLAN链路。有线网络上的通信不受蓝牙或IEEE 802.11安全功能的保护。因此,如果没有在蓝牙和IEEE 802.11中包含的安全功能之上使用更高层的安全解决方案,就不可能实现端到端的安全性。
蓝牙标准规定了五项基本安全服务:
- 认证:根据蓝牙地址验证通信设备的身份。蓝牙不提供本机用户认证。
- 机密性:通过确保只有授权的设备可以访问和查看传输的数据来防止窃听造成的信息泄密。
- 授权:允许通过确保设备在允许使用服务之前授权使用服务来控制资源。
- 消息完整性:验证在两个蓝牙设备之间发送的消息在传输过程中没有被更改。
- 配对/绑定:创建一个或多个共享密钥和存储这些密钥以用于后续连接,以便形成可信设备对。
蓝牙提供的安全服务和安全模式的细节如下所述。蓝牙不涉及其他安全服务,如审核和不可否认性;如果需要这种服务,则应通过其他方式提供。
3.1 蓝牙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的认证和加密机制在控制器中实现,正如下面所述的安全模式3。所有2.0及更早版本的设备都可以支持安全模式2,但是2.1和更高版本的设备只能支持它与2.0或更早版本的设备的向后兼容性。
安全模式3是链路级强制安全模式,其中蓝牙设备在物理链路完全建立之前启动安全过程。在安全模式3下运行的蓝牙设备为连接到设备的所有连接授权身份验证和加密。因此,如果不执行认证,加密和授权,甚至无法执行服务发现。一旦设备被认证,服务级别授权通常不会被安全模式3设备执行。但是,NIST建议执行服务级别的授权,以防止 “身份验证滥用” ,也就是在没有本地设备所有者的知识的情况下使用蓝牙服务的身份验证的远程设备。
所有2.0及更早版本的设备都可以支持安全模式3,但是2.1及更高版本的设备只能支持向后兼容性。
类似于安全模式2,安全模式4(在蓝牙2.1 + EDR中引入)是一种服务级强制的安全模式,其中在物理和逻辑链路建立之后启动安全过程。安全模式4使用安全简单配对(SSP)(SSP),其中使用ECDH密钥协议来生成Link Key(见第3.1.1节)。直到蓝牙4.0,P-192椭圆曲线用于Link Key生成,设备认证和加密算法与蓝牙2.0 + EDR和早期版本中的算法相同。蓝牙4.1引入了安全连接功能,允许使用P-256椭圆曲线生成Link Key。在蓝牙4.1中,设备认证算法升级为FIPS认可的散列消息认证码256位(HMAC-SHA-256)安全散列算法。加密算法被升级到FIPS认证的具有CBC-MAC(AES-CCM)的AES计数器,其也提供消息完整性。受安全模式4保护的服务的安全要求必须分类为以下之一:
- 级别4:使用安全连接所需的认证Link Key
- 级别3:需要认证的Link Key
- 级别2:需要未认证的Link Key
- 级别1:无需安全性
- 级别0:无需安全性(仅限SDP)
Link Key是否被认证取决于所使用的SSP关联模型(见第3.1.1.2节)。当本地和远程设备都支持安全连接功能时,Link Key是使用安全连接生成的,这是NIST推荐的安全性。安全模式4需要对所有服务(服务发现除外)进行加密,并且必须对2.1和更高版本的BR/EDR设备之间进行通信。然而,为了向后兼容,当与不支持安全模式4的蓝牙2.0和更早版本的设备进行通信时,安全模式4设备可以回退到其他三种安全模式中的任何一种。在这种情况下,NIST建议使用安全模式3。
当所有服务(服务发现除外)需要使用安全连接的已认证Link Key时,设备才能处于安全连接模式。在此模式下,设备将拒绝不支持安全连接功能的设备的服务级别连接。因此,不会维护与旧设备的向后兼容性。如果设备只能使用FIPS认证的算法进行操作,除了服务发现,则应该进入安全连接模式。
假设4.1和更高版本的设备支持BR/EDR安全连接功能,表3-3总结了可以实现的最安全模式,具体取决于两个对等体的蓝牙版本。
表3-4总结了在模式4中可以实现的最安全的级别,具体取决于两个对等体的蓝牙版本。
本节的其余部分将详细讨论特定的蓝牙安全组件 - 配对和Link Key生成,身份验证,机密性和其他蓝牙安全功能
3.1.1 配对和Link Key生成
蓝牙提供的身份验证和加密机制的关键在于生成一个秘密对称密钥。在蓝牙BR/EDR中,该密钥称为Link Key,蓝牙低能耗密钥称为长期密钥。在传统的低能耗配对中,生成短期密钥,用于分发从设备和/或主设备长期密钥,而在低能耗安全连接中,长期密钥由每个设备生成而不分布。如第3.1节所述,蓝牙BR/EDR以两种方式之一进行配对(即Link Key生成)。安全模式2和3通过称为个人识别码(PIN)配对(即传统配对或经典配对)的方法启动Link Key建立,而安全模式4则使用SSP。以下3.1.1.1和3.1.1.2节都描述了这两种方法。
在蓝牙版本4.0和4.1中,使用经过身份验证或未经身份验证的过程进行配对。在蓝牙4.2中,可以在配对期间使用安全连接来认证设备。这些方法(也称为安全模式和级别)在下面的3.2.2节中进行了描述。
3.1.1.1 PIN/Legacy Pairing
对于PIN/传统配对,根据配置和设备类型,当用户将一个或两个设备输入相同的密码PIN时,两个蓝牙设备同时导出Link Key。PIN输入和密钥推导在图3-2中概念性描述。请注意,如果PIN小于16字节,则启动设备的地址(BD_ADDR)将补充PIN值以生成初始化密钥。Ex框表示在蓝牙Link Key导出过程中使用的加密算法。关于蓝牙认证和加密过程的更多细节分别在3.1.2和3.1.3节中概述。
在Link Key生成完成后,设备通过相互认证来完成配对,以验证它们具有相同的Link Key。蓝牙配对中使用的PIN码可能在1到16字节的二进制或更常见的字母数字字符之间变化。典型的四位数PIN可能足以应对低风险情况;对于需要更高安全级别的设备,应使用较长的PIN(例如8个字符的字母数字)(注13)。
注13:蓝牙SIG “蓝牙安全白皮书” 2002年。
3.1.1.2 安全简单配对(SSP)
SSP首次在蓝牙2.1 + EDR中引入,与安全模式4一起使用,然后在蓝牙4.1中得到改进。与PIN/Legacy Pairing相比,SSP通过提供许多在设备输入/输出能力方面灵活的关联模型,简化了配对过程。SSP还通过添加ECDH公钥加密来提高安全性,以防止在配对期间的被动窃听和中间人(MITM)攻击。在配对过程中使用的椭圆曲线可以是两种类型之一:P-192或P-256(注14)(安全连接)。
SSP提供的四种关联模式如下(注15):
- 数字比较是针对蓝牙设备能够显示六位数字并允许用户输入 “是” 或 “否” 响应的情况设计的。在配对期间,用户在每个显示器上显示六位数字,如果数字匹配,则在每个设备上提供 “是” 响应。否则,用户响应 “否” ,配对失败。此操作与传统配对中使用PIN的主要区别在于,不会将显示的数字用作生成Link Key的输入。因此,能够查看(或以其他方式捕获)显示值的窃听者无法使用它来确定产生的链接或加密密钥。
- 密码输入是针对一个蓝牙设备具有输入能力(例如键盘)的情况而另一个设备具有显示但无输入能力的情况。在这个模型中,只有一个显示器的设备显示一个六位数的数字,用户然后在具有输入能力的设备上输入。与数字比较模型一样,此交易中使用的六位数字并不包含在Link Key生成中,也不适用于窃听者。
- Just Works是针对至少有一个配对设备既没有显示也没有用于输入数字的键盘(例如耳机)的情况。它以与数字比较模型相同的方式执行认证阶段1(见图3-3),但显示不可用。用户需要接受连接而不验证两个设备上的计算值,因此Just Works不提供MITM保护。
- 带外(OOB)被设计用于支持普通附加无线(例如,近场通信(NFC))或有线技术的设备,用于设备发现和加密值交换。在NFC的情况下,OOB模型允许设备通过简单地 “敲击” 一个设备而不是另一个设备来配对,之后是用户通过单个按钮推送接受配对。重要的是要注意,为了使配对过程尽可能的安全,应该设计和配置OOB技术以减轻窃听和MITM攻击。
安全模式4要求蓝牙服务使用安全连接(级别4),经过身份验证的Link Key(3级),未认证的Link Key(级别2)或根本没有安全级别(1级)来授权认证的Link Key。在上述关联模型中,除了Just Works模型之外,所有模型都提供经过身份验证的Link Key。
注14:有关P-256的更多信息,请参阅FIPS 186-4数字签名标准(DSS)。
注15:该信息源自蓝牙2.1规范:蓝牙特别兴趣组,蓝牙规范
图3-3显示了如何为SSP建立Link Key。请注意,该技术如何使用ECDH公钥/私钥对,而不是通过PIN生成对称密钥。
每个设备都生成自己的ECDH公私密钥对。当两个设备都支持安全连接时,使用P-256椭圆曲线,否则使用P-192曲线。每个设备将公钥发送到另一台设备。然后,如上所述,设备执行取决于关联模型的阶段1认证。之后,第一个设备计算确认值E1,并将其发送到检查该值的第二个设备。如果成功,则第二设备执行相同操作并将其确认值E2发送到第一设备。假设E2确认值正确检出,两台设备都会计算Link Key。
3.1.1.3 基于蓝牙Link Key导出AMP Link Key
对于AMP链路安全性(例如,蓝牙3.0中引入的IEEE 802.11),AMP Link Key来自蓝牙Link Key。无论何时创建或更改蓝牙Link Key,通用AMP Link Key(GAMP_LK)由主机堆栈中的AMP管理器生成。如图3-4所示,GAMP_LK使用蓝牙Link Key(与其自身连接)和扩展的ASCII密钥标识符(keyID) “gamp” 生成为HMAC-SHA-256函数的输入。
随后,专用AMP Link Key(用于特定AMP和可信设备组合)来自通用AMP Link Key和密钥ID。对于802.11 AMP Link Key,keyID为 “802b” 。
对于IEEE 802.11 AMP,专用AMP Link Key用作802.11成对主密钥(注16)
注16:NIST SP 800-97,建立无线稳健安全网络:IEEE 802.11i指南。
3.1.2 认证
蓝牙设备认证过程采用质询 - 响应方案的形式。在身份验证过程中交互的每个设备都可以担任申验者或验证者或两者兼有。申验者是试图证明其身份的设备,验证者是验证申验者身份的设备。挑战响应协议通过验证秘密密钥的知识(蓝牙Link Key)验证设备。
身份验证过程有两种:遗留认证(3.1.2.1)和安全认证(3.1.2.2)。至少一个设备不支持安全连接时,将执行遗留身份验证。如果两个设备都支持安全连接,则执行安全认证。
如果认证失败,蓝牙设备会等待一段时间才能进行新的尝试。这个时间间隔以指数级增长,以防止对手尝试通过使用不同Link Key的试错来击败认证方案来获取访问权限。重要的是要注意,这种技术不能提供抵抗脱机攻击的安全性,以便使用窃听的配对帧和彻底猜测PIN来确定Link Key。
请注意,与身份验证相关联的安全性仅基于Link Key的保密性。蓝牙设备地址和随机挑战值被认为是公共参数,Link Key不是。Link Key是在配对期间导出的,不应该在蓝牙设备之外公开或通过无线链路传输。但是,当主机用于密钥存储时,Link Key从主机传递到控制器(例如,PC到USB适配器),反之亦然。挑战值(与认证过程相关联的公共参数)对于每个事务必须是随机的和唯一的。挑战值来自蓝牙控制器内的伪随机发生器。
3.1.2.1 遗留认证
当使用PIN/Legacy Pairing或使用P-192椭圆曲线的安全简单配对(SSP)生成Link Key时,将使用此过程。在认证过程中交互的每个设备被称为申验者或验证者。图3-5概念性地描绘了遗留认证方案。
验证过程中的步骤如下:
- 步骤1:验证者向申验者发送128位随机挑战(AU_RAND)。
- 第2步:申验者使用E1算法使用他或她唯一的48位蓝牙设备地址(BD_ADDR),Link Key和AU_RAND作为输入来计算认证响应。(注17)验证者执行相同的计算。只有E1输出的32位最高有效位用于认证。128位输出的其余96位称为ACO值,稍后将用作创建蓝牙加密密钥的输入。
- 步骤3:申验者将E1输出的最高32位作为计算的响应(签名响应(SRES))返回给验证者。
- 步骤4:验证者将申验者的SRES与其计算的值进行比较。
- 步骤5:如果两个32位值相等,认证被认为是成功的。如果两个32位值不相等,认证失败。
执行这些步骤一次完成单向身份验证。蓝牙标准允许执行单向和相互认证。对于相互认证,上述过程与验证者和申验者交换角色重复。
3.1.2.2 安全认证
当使用安全简单配对(SSP)与P-256椭圆曲线生成Link Key时,将使用此过程。在认证过程中交互的每个设备都充当申验者和验证者。图3-6概念性地描述了安全认证方案。
注17:E1认证功能基于SAFER +算法。SAFER代表安全快速加密过程。
当主设备启动此认证过程时,步骤如下:
- 步骤1:主设备向从设备发送128位随机挑战(RAND_M)。
- 步骤2:从设备向主设备发送128位随机质询(RAND_S)。
- 步骤3:主设备和从设备都使用h4和h5算法,使用主设备(ADDR_M)的唯一48位蓝牙设备地址(从设备的唯一48位蓝牙设备地址(ADDR_S))来计算其认证响应, ,Link Key,RAND_M和RAND_S作为输入。(注18)只有h5输出的32个最高有效位用于认证。128位输出的其余96位称为认证加密偏移(ACO)值,后者将被用作创建蓝牙加密密钥的输入。
- 步骤4:从设备将h5输出的最高有效位32作为计算的响应(带符号响应(SRESslave))返回给主设备。
- 步骤5:主设备返回h5输出的最高有效32位作为计算的响应,即带符号响应(SRESmaster)到从设备。
- 步骤6:主设备和从设备将SRES与其计算的值进行比较。
- 步骤7:如果主设备和从设备两个32位值相等,认证被认为是成功的。如果主设备或从设备上的两个32位值不相等,认证失败。
当从设备启动认证过程时,所执行的步骤与上述步骤完全相同,但步骤1和步骤2的顺序被交换。
请注意,安全认证总是相互性质的,不管主设备还是从设备启动它。
注18:h4和h5认证函数基于HMAC-SHA-256算法。HMAC-SHA代表使用安全散列算法计算的哈希消息认证码。HMAC-SHA-256是一个迭代散列函数,它将消息分解成一个固定大小的块,并用SHA-256函数进行迭代。HMAC的输出的大小与底层哈希函数的大小相同。
3.1.3 保密
除了用于配对和认证的安全模式之外,蓝牙提供单独的机密性服务,以阻止企图窃听蓝牙设备之间交换的数据包的有效载荷。蓝牙具有三种加密模式,但只有两个实际提供保密性。模式如下:
- 加密模式1 - 不对任何流量执行加密。
- 加密模式2 - 使用基于各个Link Key的加密密钥对单独寻址的流量进行加密。广播流量未加密。
- 加密模式3 - 使用基于主Link Key的加密密钥对所有流量进行加密。
加密模式2和3中使用的加密机制可以基于E0流密码(第3.1.3.1节)或AES-CCM(第3.1.3.2节)。
使用任一机制导出的加密密钥(KC)的长度可以以单字节递增长度从长度上的1字节增加到16字节,如在主设备和从设备之间发生的协商过程中设置的那样。在此协商期间,主设备为从设备提供密钥大小建议。主设备建议的初始密钥大小由制造商编程到控制器中,并不总是16字节。在产品实现中,可以设置 “最小可接受的” 密钥大小参数,以防止恶意用户将密钥大小降低到最少1个字节,这将使链路更不安全。
蓝牙2.1 + EDR中引入的安全模式4要求除了服务发现之外,所有数据流都使用加密。
3.1.3.1 E0加密算法
如图3-7所示,使用内部密钥生成器(KG)生成提供给加密算法的加密密钥。KG基于128位Link Key产生流密码密钥,这是保存在蓝牙设备中的秘密; 128位随机数(EN_RAND);和96位ACO值。ACO在认证过程中生成,如图3-5所示。COF是96位加密偏移编号,是主Link Key的主设备和从设备BD_ADDR的级联,是其他链路键的ACO。
蓝牙E0加密过程基于流密码E0。密钥流输出与有效载荷位进行异或并发送到接收设备。该密钥流是使用基于线性反馈移位寄存器(LFSR)的加密算法产生的(注19)加密函数采用以下输入:主设备地址(BD_ADDR),128位随机数(EN_RAND),基于微微网时钟的时隙号,以及加密密钥,当组合初始化LFSR在每个数据包传输之前,如果加密被启用。流密码中使用的时隙号随每个包变化;加密引擎也被重新初始化为每个数据包,而其他变量保持静态。
注19:LFSR用于编码(错误控制编码)理论和密码学。基于LFSR的密钥流生成器(KSG)由异或门和移位寄存器组成,在流密码中是常见的,并且在硬件上非常快。
重要的是要注意,E0不是FIPS认可的算法,并且在算法强度方面受到严格的考虑.20与暴力攻击相比,已发表的理论已知明文攻击可以恢复238次计算中的加密密钥,将需要测试2128个可能的键。如果通信需要FIPS批准的密码保护(例如,保护联邦机构传送的敏感信息),则可以通过本机蓝牙加密层级应用级FIPS认证的加密来实现此保护。
3.1.3.2 AES-CCM加密算法
如图3-8所示,使用h3函数生成加密算法的加密密钥。h3函数基于128位Link Key产生流密码密钥,这是保存在蓝牙设备中的秘密;主设备的独特的48位蓝牙设备地址;独立的48位蓝牙设备地址的从设备;固定密钥ID “btak” ;和96位ACO值。ACO在认证过程中生成,如图3-6所示。通过获取原始加密密钥的128个最高有效位来缩短加密密钥。
蓝牙AES-CCM加密过程基于请求注释(RFC)3610,高级加密标准 - 带密码块链接消息验证码的计数器。AES-CCM加密函数将以下内容作为输入:加密密钥,加密随机数和有效载荷位。随机数格式有两种类型:用于异步连接(ACL)数据包的有效负载计数器格式,以及用于增强型同步连接导向(eSCO)的时钟格式(也包括11位日间计数器) )数据包。当启用AES-CCM加密时,ACL数据包包括4个字节的消息完整性检查(MIC)。 eSCO包不包括MIC。
注20:Y. Lu,W. Meier和S. Vaudenay。 “有条件的相关攻击:对蓝牙加密的实际攻击” 。
3.1.4 信任级别,服务安全级别和授权
除了四种安全模式,蓝牙允许不同级别的信任和服务安全。
两个蓝牙级别的信任是信任和不信任的。受信任的设备与另一个设备具有固定的关系,并且可以完全访问所有服务。不受信任的设备与另一个蓝牙设备没有建立关系,这导致不受信任的设备接收到对服务的限制访问。
可用的服务安全级别取决于所使用的安全模式。对于安全模式1和3,不指定服务安全级别。对于安全模式2,可以执行以下安全性要求:
- 需要验证
- 需要加密
- 需要授权
因此,可用的服务安全级别包括上述的任何组合,包括缺乏安全性(通常仅用于服务发现)。请注意,无法验证BR/EDR加密,因为加密密钥是从认证过程的工件派生的(见第3.1.3节)。
对于安全模式4,蓝牙规范定义了在SSP期间使用的蓝牙服务的五个级别的安全性。服务安全级别如下:
- 服务级别4 - 需要MITM保护和加密,使用128位等效强度的链接和加密密钥;用户交互是可以接受的。
- 服务级别3 - 需要MITM保护和加密;用户交互是可以接受的。
- 服务级别2 - 仅需加密; MITM保护不是必需的。
- 不需要服务级别1-MITM保护和加密。最小的用户交互
- 服务级别0 - 不需要MITM保护,加密或用户交互。
蓝牙架构允许定义可以设置信任关系的安全策略,使得即使信任的设备只能访问特定服务。虽然蓝牙核心协议只能验证设备而不是用户,但基于用户的认证仍然是可行的。蓝牙安全架构(通过安全管理器)允许应用程序执行更精细的安全策略。蓝牙特定安全控制器的链路层对应用层施加的安全控制是透明的。因此,蓝牙安全框架内的基于用户的身份验证和细粒度访问控制可以通过应用层进行,尽管这样做超出了蓝牙规范的范围。
3.2 蓝牙低功耗的安全特性
由于蓝牙低能耗支持计算和存储受限设备,并且由于蓝牙低功耗并未从BR/EDR/HS演进,因此低能耗安全性与蓝牙BR/EDR/HS不同(注21)。 然而,使用蓝牙4.1和4.2版本,差异已经最小化。
另一个区别在于,低能耗配对导致产生长期密钥(LTK)而不是Link Key。在基本上执行与Link Key相同的密钥功能的同时,LTK以不同的方式建立。在低能耗遗留配对中,使用密钥传输协议生成LTK,然后使用BR/EDR与密钥协商进行分发。也就是说,一个设备确定LTK,并在配对期间将其安全地发送到另一个设备,而不是分别生成相同密钥的两个设备。(注22)在低能耗安全连接中,密钥由于密钥协商而在每个设备上生成,因此不需要通过链路进行分发。
注21:蓝牙低能耗的前身最初由诺基亚于2006年推出为Wibree,并于2010年被纳入蓝牙4.0规范中,成为蓝牙低功耗。
注22:低能耗传统配对潜在地可以具有主LTK和从属LTK。因此,如果设备可以扮演多个角色,设备实际上可能有两个LTK。使用低能耗安全连接,只有一个LTK。
具有低能耗功能的蓝牙规范4.0在蓝牙规范中首次引入了使用具有CBC-MAC(AES-CCM)加密的高级加密标准计数器。除了提供强大的基于标准的加密技术之外,AES-CCM的包含也为蓝牙低功耗设备的本地FIPS-140验证铺平了道路。4.2添加了低能耗安全连接功能,升级了低能耗配对,以利用FIPS认可的算法(AES-CMAC和P-256椭圆曲线)。4.2还将低能耗配对更名为低能耗传统配对。
4.2中的新功能还能够通过安全连接在物理传输(低能耗或BR/EDR)上生成的密钥在另一个物理传输中使用 - 减轻用户对低能耗和BR/EDR。低能耗LTK密钥可以从BR/EDR Link Key(使用h6 AES-CMAC-128函数)导出,BR/EDR Link Key同样可以从低能耗LTK(使用相同的h6函数)导出, 。详见3.2.6和3.2.7节。
4.0还引入了诸如低能耗私有设备地址和数据签名等功能。称为身份解析密钥(IRK)和连接签名解析密钥(CSRK)的新加密密钥分别支持这些功能。这些特征在4.1和4.2中保持不变。
使用低能耗的隐私功能,IRK用于将可解析私有地址(RPA)映射到身份地址。身份地址可以是静态随机地址或公共地址。这允许可信设备从周期性变化的RPA中确定另一设备的身份地址。以前,设备将被分配一个静态的 “公共” 地址,这些地址将在发现过程中可用。如果该设备仍然可以发现,其位置可以很容易地被对手追踪。使用周期性变化的随机地址(使用IRK创建的散列和随机地址)可减轻此威胁。由于可发现的低能耗设备发送( “广告” )身份信息,因此该隐私特征是特别有用的。即使没有低能耗的隐私,设备将被分配一个身份地址(公共BD_ADDR或静态随机地址)。但是用低能耗隐私,RPA是通过空中传送而不是身份地址。
CSRK用于通过未加密的链路验证来自特定设备的加密签名的属性协议(ATT)数据帧。这允许蓝牙连接使用数据签名(提供完整性和认证)来保护连接而不是数据加密(在AES-CCM的情况下,提供机密性,完整性和身份验证)。如果链接被加密,则不允许使用ATT签名写入(注23)。
在低能耗传输配对中,所有这些加密密钥(即,LTK,IRK,CSRK)都在低能耗配对期间生成并安全分发。对于低能耗安全连接,产生并安全分发IRK和CSRK时产生LTK。详见3.2.2节。
注23:此功能不被广泛使用,是可选的支持。
3.2.1 低能耗安全模式和级别
低能耗安全模式类似于BR/EDR服务级安全模式(即安全模式2和4),因为每个服务都可以有自己的安全需求。然而,蓝牙低功耗还指定每个服务请求也可以具有自己的安全要求。设备通过遵循适当的安全模式和级别强制执行与服务相关的安全性要求。
- 低能耗安全模式1具有与加密相关联的多个级别。级别1不指定安全性,这意味着没有认证,也不会启动加密。级别2需要未经身份验证的加密配对。级别3需要通过加密进行身份验证配对。4.2添加了4级,这需要经认证的低能耗安全连接与加密配对。
- 低能耗安全模式2具有与数据签名相关联的多个级别。数据签名提供强大的数据完整性,但不保密。级别1需要未经身份验证的数据签名配对。级别2需要经过身份验证的数据签名配对。
如果特定服务请求和相关联的服务具有不同的安全模式和/或级别,则以较强的安全性要求为准。例如,如果要求安全模式1级别3,则执行安全模式1级别3的要求。
因为安全模式1级4要求低能耗安全连接使用AES-CMAC和P-256椭圆曲线进行认证配对和加密,NIST认为这是最安全的模式/级别,并强烈建议将其用于4.2中的所有低能耗连接。对于4.0和4.1低能耗连接,NIST强烈建议使用安全模式1级3,因为它需要经过身份验证的配对和加密,尽管不如第4级那样强大(不使用P-256椭圆曲线)加密。安全模式1级别1是最不安全的,不应该使用。另外,由于安全模式2不提供加密,安全模式1级别4和3优先于安全模式2。
低能耗4.2添加了仅安全连接模式,这要求只有低能耗安全模式1级4可用于所有服务,除了仅需要安全模式1级1的服务。这将确保在低能耗物理传输上仅使用FIPS认可的算法。安全连接模式不能向下兼容4.0或4.1低能耗设备,因为它们不支持P-256椭圆曲线。
3.2.2 低能耗配对方法
4.2增加了低能耗安全连接配对,其升级了低能耗配对,以利用FIPS认可的算法(AES-CMAC和P-256椭圆曲线)。4.0和4.1低能耗配对更名为低能耗遗留配对4.2。
尽管低能耗遗留配对使用与BR/EDR SSP类似的配对方法名称,但它不使用基于ECDH的加密技术,也不提供窃听保护。因此,对于除了具有128位TK的OOB之外的所有配对方法,低能耗遗留配对应被视为破坏,因为如果攻击者可以捕获配对帧,则他或她可以确定产生的LTK。因此,当需要窃听保护时,应使用低能耗的安全连接配对。
低能耗传统配对使用密钥传输而不是所有密钥(LTK,IRK和CSRK)的密钥协商,因此在低能耗传输配对期间需要一个关键的分发步骤。在低能耗安全连接配对中,每个设备独立地生成LTK,因此可选的密钥分发步骤允许在低能耗安全连接配对中交换IRK和CSRK密钥。
如图3-9所示,低能耗遗留配对开始于两个设备在配对期间同意临时密钥(TK),其值取决于所使用的配对方法。然后,设备交换随机值,并基于这些值和TK生成短期密钥(STK)。然后使用STK对链接进行加密,这样可以安全地分发LTK,IRK和CSRK。
如图3-10所示,低能耗安全连接配对从两个设备共享其I/O功能和安全要求开始。之后,共享公钥。请注意,低能耗安全连接配对只能产生低能耗LTK。 Link使用LTK进行加密,允许IRK和CSRK的安全分发。
以下小节描述了低能耗配对关联模型,即遗留配对和安全连接。与BR/EDR SSP一样,用于特定连接的关联模型基于两个设备的输入/输出功能。
4.0和4.1允许三种低能耗配对方法:带外,密钥输入和Just Works。4.2增加了数字比较作为低能耗配对方法,仅适用于低能耗安全连接。重要的是要注意,虽然低能耗配对关联模型名称与BR/EDR简单安全配对模型类似,但对于低能耗安全连接,所提供的安全功能与BR/EDR SSP模型的功能相同,但是对于低能耗传统配对提供的安全性是不同的。
3.2.2.1 带外
如果两个设备都支持常见的OOB技术,例如NFC或网络共享,则他们将使用OOB方法进行配对。在低能耗传统配对方面,传统知识将OOB技术从一种设备传递到另一种设备。TK必须是一个独特的,随机的128位数字。NIST强烈建议在实用时使用完整的128位随机二进制(非字母数字)值。
由于OOB配对导致身份验证的LTK,它应该提供大约1百万的MITM攻击保护 - 基于前提,即如果使用低能耗遗留配对,则攻击者必须成功猜测六位数TK值。然而,OOB配对提供的实际保护取决于OOB技术本身提供的MITM保护,因为成功的OOB窃听者将知道TK值而不必猜测。在OOB低能耗安全连接配对中,设备地址被传递给OOB,OOB即使被OOB窃听者发现也没有提供解密编码数据的价值。(注24)
如果设备不支持常用的OOB技术,则将根据两个设备的输入/输出功能确定要使用的配对方法。
注24:可选地,在低能耗安全连接OOB配对期间,低能耗安全连接确认值和低能耗安全连接随机值也可以通过OOB。
3.2.2.2 数值比较
低能耗4.2适用于安全连接配对中低能耗使用的BR/EDR/HS数字比较配对方法。没有数字比较方法与低能耗遗留配对。
如果两个设备能够显示六位数字,并且都能够使用户输入 “是” 或 “否” ,则可以使用数字比较。
在配对期间,用户在每个显示器上显示六位数字,如果数字匹配,则在每个设备上提供 “是” 响应。否则,用户响应 “否” ,配对失败。在传统配对中,此操作与PIN之间使用PIN的重要区别是显示的数字不用作Link Key生成的输入。因此,能够查看(或以其他方式捕获)显示值的窃听者无法使用它来确定产生的链接或加密密钥。
数字比较提供MITM保护,并向用户确认他们正在配对预期的两个设备。
3.2.2.3 密钥输入
如果至少一个设备支持键盘输入,另一个设备支持显示输出(或键盘输入),则使用密钥条目配对方法进行配对。
在这种低能耗传统配对模型中,TK是从生成和/或输入到每个设备中的密钥生成的。规范要求密码大小为6位数字;因此,可以提供最多20位的熵。
对于低能耗安全连接配对,在交换公钥之后,将生成和/或输入密码(6位数字)到每个设备中。然后,设备会轮流发送密钥,随机数和两个公钥的每个位的哈希(重复20次,密码的20位中的每一个),直到整个密钥已经发送和同意。
密钥条目配对还会导致认证的LTK。因为使用了六位密码,所以攻击者将有一百万的机会猜测正确的密钥来执行MITM攻击。NIST建议为每个配对使用唯一的随机密钥,以便跨多个配对提供此级别的保护。
3.2.2.4 Just Works
如果由于设备输入/输出限制,OOB,数字比较或密钥条目关联模型都不可行,则使用Just Works配对方法。
与BR/EDR/HS中的SSP一样,从安全角度来看,用于低能耗的Just Works配对方法是配对选项中最弱的。在这种低能耗遗留配对模型中,TK设置为全零(0x00)。因此,窃听者或MITM攻击者不需要猜测传统知识产生STK。
对于低能耗安全连接配对,在交换公钥后,使用数字比较过程,但用户未显示6位数值,并且不执行最终承诺检查。
Just Works配对方法导致未认证的LTK,因为在配对期间不提供MITM保护。
3.2.3 传统的低能耗密钥生成和分发
一旦使用STK对链接进行了加密,则两个设备分发诸如LTK,IRK和CSRK之类的密钥。在分配之前指定了密钥生成的两个选项。设备可以简单地生成随机128位值并将其存储在本地数据库中(在规范中称为 “数据库查找” )。另一个选项是使用一个128位静态但随机的值称为加密根(ER),以及每个受信任设备唯一的16位多路化器(DIV),以生成密钥。此选项在规范中称为 “密钥层次结构” 。例如,密钥可以使用以下公式从ER,DIV和身份根(IR)派生:
LTK = d1(ER,DIV,0)
CSRK = d1(ER,DIV,1)
IRK = d1(IR,1,0)
d1函数称为多功能函数,基于AES-128加密。然而,该规范允许使用其他密钥导出函数(注25)
使用此密钥层次法,设备不需要为每个可信设备存储多个128位密钥;相反,它只需要存储其ER和每个设备的唯一DIV。(注26)在重新连接期间,远程设备发送其EDIV,它是DIV的屏蔽版本(注27)本地设备可以从其ER和通过的EDIV重新生成LTK和/或CSRK。如果数据加密或签名成功建立,则验证远程设备是否具有正确的LTK或CSRK。如果不成功,链接将被删除。
注25:NIST SP 800-108,使用伪随机函数的关键推导的建议。
注26:低能耗安全连接不再可以使用密钥层次结构。
注27:DIV = dm(DHK,rand)xor EDIV其中DHK是多边形隐藏键。
在上述示例中注意,IRK是静态的和设备特定的,因此可以在配对之前生成(例如,在制造期间)。
3.2.4 低能耗安全Link Key生成
蓝牙4.2中引入的低能耗安全连接安全性通过添加ECDH公钥密码术(使用P-256椭圆曲线)来提高低能耗安全性,以防配对期间的被动窃听和MITM。
与传统的低能耗配对不同,低能耗安全连接配对不涉及STK的产生。而是在配对期间直接生成LTK。
低能耗安全连接配对从两个设备交换其配对能力开始:I/O能力,认证要求和最大加密密钥大小要求。然后,设备交换其公钥。
使用以下输入,使用f5函数(它是基于AES-CMAC-128的函数)生成LTK:
- 配对阶段2期间生成的共享秘密Diffie-Hellman密钥(DHkey)
- 由硕士生成和发送的随机数,
- 由奴隶生成和发送的随机数,
- 主设备的蓝牙地址,和
- 从设备的蓝牙地址。
在每个设备中独立生成后,LTK由每个设备本地存储 - LTK不需要以安全连接模式分发。一旦生成了LTK,就使用从LTK导出的加密密钥来加密链路。此后,IRK和CSRK之类的密钥可由两个设备分配,类似于Legacy低能耗配对的密钥分发步骤(见图3-9)。
3.2.5 保密性,认证和完整性
AES-CCM用于蓝牙低能耗,以提供机密性以及每包认证和完整性。与BR/EDR/HS没有单独的认证挑战/响应步骤,以验证它们是否具有相同的LTK或CSRK。
因为LTK被用作加密密钥的输入,所以成功的加密设置提供隐式认证。类似地,数据签名提供了远程设备持有正确的CSRK的隐式认证 - 尽管不提供机密性。
3.2.6 基于蓝牙Link Key导出低能耗长期密钥
低能耗LTK可以从蓝牙BR/EDR Link Key导出。如图3-11所示,使用蓝牙Link Key和 “tmp2” 的扩展ASCII密钥标识符(keyID)作为AES-CMAC函数h7的输入生成中间LTK(ILTK)。随后,使用ILTK导出LTK,将 “brle” 的keyID导出为h6的输入(注28)
3.2.7 从低能耗长期密钥导出蓝牙Link Key
蓝牙BR/EDR Link Key也可以从低能耗长期密钥导出。如图3-12所示,使用低能耗LTK和 “tmp1” 的扩展ASCII密钥标识符(keyID)作为AES-CMAC函数h7的输入生成中间Link Key(ILK)。
随后,蓝牙Link Key由ILK导出,keyID为 “lebr” ,作为h6的输入(注29)
注28:函数h7通过将h6的参数顺序反转为h6,作为勘误为4.2代替h6。
注29:函数h7通过将h6的参数顺序反转,作为勘误为4.2代替h6。
4 蓝牙漏洞,威胁和对策
本节介绍蓝牙中的漏洞和针对这些漏洞的威胁。基于这些识别的常见漏洞和威胁以及第3部分中描述的蓝牙安全功能,本部分还建议可用于提高蓝牙安全性的可采取的对策。
计划使用使用蓝牙4.0,4.1或4.2技术的产品的组织应仔细考虑安全隐患。4.0规范于2010年中发布,4.2规范于2014年12月发布。在撰写本文时,发现了与4.0有关的重大安全漏洞(见下表4-1)。此外,很少有支持4.2规范的产品目前可供评估。随着越来越多的兼容产品可用,可能会发现额外的漏洞,并需要额外的建议来有效地保护蓝牙低功耗设备。
计划部署蓝牙低能耗设备的组织应仔细监测涉及新的漏洞,威胁和其他安全控制建议的发展。
4.1 蓝牙漏洞
表4-1提供了与蓝牙相关联的许多已知安全漏洞的概述。第4.4节中的蓝牙安全检查表解决了这些漏洞。
注意:如前所述,根据设备的蓝牙硬件,它可能能够执行BR/EDR/HS和低能耗功能(双模式)或仅执行低能耗功能。
表4-1。本机蓝牙安全的关键问题
序号 | 安全问题或漏洞 | 评论 | 适用版本 |
---|---|---|---|
1 | 基于单位密钥的Link Key是静态的,可以重复使用。 | 使用单位密钥的设备将使用与其配对的每个设备相同的Link Key。这是严重的加密密钥管理漏洞。 | 1.0 1.1 |
2 | 使用基于单元密钥的Link Key可能会导致窃听和欺骗。 | 一旦设备的单元密钥被泄露(即,在其第一次配对时),具有密钥的任何其他设备可以欺骗该设备或与其配对的任何其他设备。此外,它可以窃听该设备的连接,无论它们是否被加密。 | 1.0 1.1 1.2 |
3 | 安全模式1设备从不启动安全机制。 | 使用安全模式1的设备固有地不安全。对于2.0及更早的设备,强烈建议使用安全模式3(链路级安全性)。 | 1.0 1.1 1.2 2.0 |
4 | PIN可能太短。 | 用于在配对期间用于保护Link Key生成的弱PIN可以被很容易地猜到。人们有选择短PIN的倾向。 | 1.0 1.1 1.2 2.0 |
5 | PIN管理和随机性不足。 | 在许多用户的企业环境中建立使用足够的PIN可能是困难的。可扩展性问题经常产生安全问题。最好的替代方案是配对的一个设备使用其随机数生成器生成PIN。 | 1.0 1.1 1.2 2.0 |
6 | 加密密钥流在使用23.3小时后重复。 | 如图3-7所示,加密密钥流依赖于Link KeyEN_RAND,Master BD_ADDR和Clock。只有Master的时钟将在特定的加密连接中改变。如果连接持续超过23.3小时,则时钟值将开始重复,因此生成与之前在连接中使用的密钥流相同的密钥流。重复密钥流是一个严重的加密漏洞,允许攻击者确定原始明文。 | 1.0 1.1 1.2 2.0 |
7 | Just Works关联模型在配对期间不提供MITM保护,这将导致未经身份验证的Link Key。 | 为了获得最高安全性,BR/EDR设备在SSP期间需要MITM保护,并拒绝接受使用Just Works配对产生的未认证Link Key。 | 2.1 3.0 4.0 4.1 4.2 |
8 | SSP ECDH密钥对可能是静态或其他弱生成。 | 弱ECDH密钥对最小化SSP窃听保护,这可能允许攻击者确定秘密Link Key。所有设备应具有独特的,强烈生成的ECDH密钥对,定期更改。 | 2.1 3.0 4.0 4.1 4.2 |
9 | 静态SSP密钥便于MITM攻击。 | 密钥在SSP期间提供MITM保护。设备应该为每次配对尝试使用随机,唯一的密钥。 | 2.1 3.0 4.0 4.1 4.2 |
10 | 当与不支持安全模式4(即2.0及更早版本)的设备连接时,安全模式4设备(即2.1或更高版本)被允许回退到任何其他安全模式。 | 最糟糕的情况是设备回退到安全模式1,这不提供安全性。在这种情况下,NIST强烈建议安全模式4设备回退到安全模式3。 | 2.1 3.0 4.0 4.1 4.2 |
11 | 身份验证的尝试是可重复的。 | 需要在蓝牙设备中包含一种机制来防止无限制的认证请求。蓝牙规范要求连续认证尝试之间的等待间隔指数级增长。然而,它不需要等待认证挑战请求的等待间隔,因此攻击者可以收集大量的可能泄漏关于秘密Link Key的信息的挑战响应(其被秘密Link Key加密)。 | 所有 |
12 | 用于广播加密的主密钥在所有微微网设备之间共享。 | 在两个以上的双方共享的秘密密钥有助于假冒袭击。 | 1.0 1.1 1.2 2.0 2.1 3.0 |
13 | 用于蓝牙BR/EDR加密的E0流密码算法相对较弱。 | FIPS认可的加密可以通过蓝牙BR/EDR加密分层应用级FIPS认证的加密来实现。请注意,蓝牙低功耗使用AES-CCM。 | 1.0 1.1 1.2 2.0 2.1 3.0 4.0 |
14 | 如果蓝牙设备地址(BD_ADDR)被捕获并与特定用户相关联,则BR/EDR隐私可能会受到损害。 | 一旦BD_ADDR与特定用户相关联,该用户的活动和位置就可以被跟踪。对于低能源,可以实施地址隐私来减少这种风险。 | 1.0 1.1 1.2 2.0 2.1 3.0 |
15 | 如果蓝牙地址被捕获并与特定用户相关联,则低能量隐私可能会受到损害。 | 对于低能源,可以实施地址隐私来减少这种风险。 | 4.0 4.1 4.2 |
16 | 设备认证是简单的共享密钥挑战/响应。 | 单向挑战/响应身份验证受到MITM攻击。蓝牙提供相互认证,应用于提供验证设备是合法的。 | 1.0 1.1 1.2 2.0 2.1 3.0 |
17 | 低能量遗留配对不提供被动窃听保护。 | 如果成功,窃听者可以捕获在低能量配对期间分配的秘密密钥(即LTK,CSRK,IRK)(注30) | 4.0 4.1 |
18 | 低能量安全模式1级1不需要任何安全机制(即,不进行身份验证或加密)。 | 类似于BR/EDR安全模式1,这本质上是不安全的。低能量安全模式1强烈推荐4级(认证配对和加密)。 | 4.0 4.1 4.2 |
19 | Link Key可以存储不正确。 | 如果攻击者没有通过访问控制安全地存储和保护Link Key,则可以读取或修改Link Key。 | 所有 |
20 | 伪随机数发生器(PRNG)的优点是未知的。 | 随机数生成器(RNG)可以产生可以降低安全机制的有效性的静态或周期性数字。蓝牙实现应该使用基于NIST标准的强大的PRNG。参见NIST SP 800-90A,SP 800-90B,SP 800-90C。 | 所有 |
21 | 加密密钥长度是可协商的。 | 3.0和更早版本的规范允许设备协商加密密钥,只需一个字节。蓝牙低功耗需要7个字节的最小密钥大小。 NIST强烈建议仅使用安全连接模式,这需要BR/EDR和低能量的128位密钥强度(AES-CCM)。 | 1.0 1.1 1.2 2.0 2.1 3.0 |
22 | 不存在用户认证。 | 只有设备认证是由规范提供的。应用程序级安全性(包括用户身份验证)可以通过应用程序开发人员的覆盖来添加。 | 所有 |
23 | 不执行端到端安全性。 | 只有单个链接被加密和认证。数据在中间点解密。通过使用额外的安全控制可以提供蓝牙堆栈顶端的端到端安全性。 | 所有 |
24 | 安全服务有限。 | 审计,不可否认和其他服务不属于标准。如果需要,这些服务可以由应用程序开发人员以覆盖方式并入。 | 所有 |
25 | 可发现和/或可连接的设备容易受到攻击。 | 任何必须进入可发现或可连接模式进行配对或连接的BR/EDR/HS设备只能在最短的时间内进行。设备不应始终处于可发现或可连接模式。 | 所有 |
26 | Just Works配对方法不提供MITM保护。 | MITM攻击者可以捕获和操纵在可信设备之间传输的数据。低能量设备应在安全的环境中配对,以尽量减少窃听和MITM攻击的风险。 Just Works配对不能用于低能量。 | 4.0 4.1 4.2 |
27 | 使用两个已配对的BR/EDR/HS设备,安全模式3和4可能并不总是发生相互认证。 | 如果设备A是B的认证发起者,那么两台设备已经配对,那么加密设置将在初始认证之后开始。如果加密设置成功,足够满足B,则B可能永远不会尝试对A进行认证。 | 1.0 1.1 1.2 2.0 2.1 3.0 |
4.2 蓝牙威胁
蓝牙提供了几个好处和优点,但没有风险提供好处。蓝牙和相关设备易受一般无线网络威胁的影响,如拒绝服务攻击,窃听,MITM攻击,消息修改和资源盗用等,并受到更具体的蓝牙相关攻击的威胁,如以下内容:(注31 )
- 蓝雀Bluesnarfing使攻击者可以通过利用较旧(大约2003年)设备中的固件缺陷来访问支持蓝牙的设备。(注32)此攻击强制连接到蓝牙设备,允许访问存储在设备上的数据,包括设备的国际移动设备身份(IMEI)。IMEI是每个设备的唯一标识符,攻击者可能会将来自用户设备的所有来电路由路由到攻击者的设备。
注31:有关一般无线安全威胁的其他信息,请参见NIST SP 800-48修订版1 “保护旧版IEEE 802.11无线网络指南” (https://doi.org/10.6028/NIST.SP.800-48r1)的第3部分。 )。
注32:https://trifinite.org/trifinite_stuff_bluesnarf.html
- 蓝鸟。蓝鸟是对支持蓝牙的移动设备(如手机)进行的攻击。攻击者通过向未启用蓝牙的设备的用户发送未经请求的消息来启动劫持。实际的消息不会对用户的设备造成危害,但是它们可能诱使用户以某种方式进行响应,或者将新的联系人添加到设备的地址簿。此消息发送攻击类似于针对电子邮件用户的垃圾邮件和网络钓鱼攻击。当用户发起对有意图发送的劫持消息的响应时,蓝点攻击可能会造成伤害。
- 蓝。。Bluebugging利用了一些旧的(大约2004年)蓝牙设备的固件中的安全漏洞,以访问设备及其命令。(注33)此攻击使用设备的命令,而不通知用户,允许攻击者访问数据,拨打电话,窃听电话,发送消息以及利用设备提供的其他服务或功能。
- 汽车讲话者。汽车讲话者是由欧洲安全研究人员开发的软件工具,它利用在汽车上安装的免提蓝牙车载套件中使用标准(非随机)密钥。(注34)汽车话筒软件允许攻击者从车载套件发送或接收音频。攻击者可以将音频传输到汽车的扬声器,或从汽车上的麦克风接收音频(窃听)。
- 拒绝服务。像其他无线技术一样,蓝牙易受DoS攻击。影响包括使设备的蓝牙接口不可用,并耗尽设备的电池。这些类型的攻击并不重要,并且由于蓝牙使用所需的接近度,通常可以通过简单地移出范围来容易地避免。
- 模糊攻击蓝牙模糊攻击包括将畸形或其他非标准数据发送到设备的蓝牙射频,并观察设备的反应。如果设备的操作由于这些攻击而减慢或停止,协议栈中可能存在严重的漏洞。
- 配对窃听。PIN/Legacy Pairing(蓝牙2.0及更早版本)和低能耗传统配对易受到窃听攻击。收集所有配对帧的成功窃听者可以确定提供足够时间的秘密密钥,这允许可信设备模拟和活动/被动数据解密。
- 安全简单配对(SSP)攻击。许多技术可以迫使远程设备使用Just Works SSP,然后利用其缺乏MITM保护(例如,攻击设备声称它没有输入/输出能力)。此外,固定密钥可能允许攻击者也执行MITM攻击。
注33:https://trifinite.org/trifinite_stuff_bluebug.html
注34:https://trifinite.org/trifinite_stuff_carwhisperer.html
4.3 风险缓解和对策
组织应通过应用对策来减轻其蓝牙实施的风险,以解决特定的威胁和漏洞。这些对策中的一些不能通过蓝牙规范中内置的安全功能来实现。4.4节中的清单中建议的对策不能保证安全的蓝牙环境,并且不能防止所有对手的穿透。此外,安全性与安全设备相关的成本费用,不便,维护和操作相关。每个组织应根据许多因素评估可接受的风险水平,这将影响该组织实施的安全水平。为了有效,蓝牙安全应纳入蓝牙解决方案的整个生命周期。(注35)
FIPS出版物(PUB)199建立了三个安全类别 - 低,中等和高等级,这是基于涉及特定系统的安全漏洞的潜在影响。NIST SP 800-53为基于FIPS PUB 199影响类别的信息系统的最低安全控制提供了建议。(注36)NIST SP 800-53中的建议应有助于组织确定一般保护蓝牙实施所需的控制,除了本文档中列出的蓝牙实施的具体建议外,还应使用它们。
第一道防线是为那些将处理蓝牙设备的人提供足够的知识和理解。使用蓝牙的组织应建立和记录解决使用蓝牙设备和用户责任的安全策略。组织应包括以意识为基础的教育,以支持员工了解和了解蓝牙技术。政策文件应包括蓝牙的批准使用列表和可能通过蓝牙网络传输的信息类型。安全策略还应指定适当的密码使用方案。在可行的情况下,应与安装在蓝牙设备上的端点安全产品配合使用集中的安全策略管理方法,以确保该策略在本地和普遍执行。
蓝牙设备的一般性质和移动性增加了在企业中采用传统安全措施的难度。然而,可以制定一些对策来确保蓝牙设备和通信,从距离和功率输出到一般操作实践。可以使用的几个对策在第4.4节的清单中提供。
注35:有关技术生命周期的更多信息,请参阅NIST SP 800-64修订版2,信息系统开发生命周期中的安全注意事项(https://doi.org/10.6028/NIST.SP.800-64r2)。
注36:FIPS PUB 199,联邦信息和信息系统安全分类标准,可从https://doi.org/10.6028/NIST.FIPS.199获得。 NIST SP 800-53修订版4,联邦信息系统和组织的安全和隐私控制,可从https://doi.org/10.6028/NIST.SP.800-53r4获得。
4.4 蓝牙安全检查表
表4-2提供了一个蓝牙安全检查表,其中包含创建和维护安全蓝牙微微网的指导和建议。
对于清单中的每个建议或指南,对齐列列出了蓝牙设备关注的领域,与这些领域相关的安全威胁和漏洞,保护设备免受这些威胁的风险缓解以及漏洞。另外,对于每个建议,提供三个清单列。
- 第一列 “推荐实践” 列(如果选中)表示此条目代表所有组织的建议。
- 第二列 “应考虑” 列如果选中,表示由于以下一个或多个原因,组织应仔细考虑该条目的建议:
- 首先,通过提供一些额外的保护,实施该建议可以为无线环境提供更高级别的安全性。
- 第二,该建议支持深度防御性战略。
- 第三,它可能具有重大的性能,操作或成本影响。总而言之,如果选择 “应考虑” 列,组织应仔细考虑该选项,权衡成本与利益。
- 最后一列 “状态” 有意留为空白,允许组织代表将此表用作真实清单。例如,在蓝牙环境中执行无线安全审核的个人可以快速检查组织的每个建议,并询问 “我已经做到了吗? “
表4-2。蓝牙微微网安全检查表
1 | 制定解决蓝牙无线技术的组织无线安全策略。 | 安全政策是所有其他对策的基础。 | 建议实施 |
2 | 确保网络上的蓝牙用户了解与蓝牙使用有关的安全相关责任。 | 安全意识计划可帮助用户遵循有助于防止安全事件的做法。 | 建议实施 |
3 | 定期进行全面的安全评估,以充分了解组织的蓝牙安全状况。 | 评估有助于识别组织内正在使用的蓝牙设备,并帮助确保遵循无线安全策略。 | 建议实施 |
4 | 确保从架构角度充分了解涉及蓝牙的无线设备和网络,并相应记录。 | 蓝牙设备可以包含各种网络技术和接口,允许连接到本地和广域网。组织应了解每个设备的整体连接性,以确定可能的风险和漏洞。然后可以在无线安全策略中解决这些风险和漏洞。 | 建议实施 |
5 | 向用户提供他们应采取的预防措施清单,以更好地保护手持式蓝牙设备免遭盗窃。 | 组织及其员工对其无线技术组件负责,因为盗用这些组件可能导致对组织信息系统资源的恶意活动。 | 建议实施 |
6 | 维护所有支持蓝牙的无线设备和地址(BD_ADDR)的完整清单。 | 在进行无用技术未经授权的审核时,可以参考完整的支持蓝牙功能的无线设备清单。 | 建议实施 |
7 | 更改蓝牙设备的默认设置以反映组织的安全策略。 | 由于默认设置通常不安全,因此应仔细检查这些设置,以确保它们符合组织安全策略。例如,默认设备名称通常应该被更改为非描述性的(即,不显示平台类型)。 | 建议实施 |
8 | 将蓝牙设备设置为最低的必要和足够的功率级别,以便传输保持在组织的安全周边。 | 将蓝牙设备设置为最低必需和足够的功率级别,确保对授权用户的安全访问范围。应该避免使用1类设备,以及外部放大器或高增益天线,因为它们的扩展范围。 | 建议实施 |
9 | 选择足够随机,长时间和私密的PIN码。避免使用静态和弱PIN,例如全零。 | PIN代码应该是随机的,以便恶意用户不能轻易猜到它们。更长的PIN码更能抵抗暴力攻击。对于蓝牙2.0(或更早版本)的设备,如果可能,应使用八个字符的字母数字PIN码。使用固定的PIN码是不可接受的。 | 建议实施 |
10 | 确保Link Key不是基于单位键。 | 使用共享单元密钥可能导致成功的欺骗,MITM和窃听攻击。使用蓝牙v1.2中的安全性单位密钥已被弃用。 | 建议实施 |
11 | 对于使用SSP的2.1及更高版本的设备,避免使用 “Just Works” 关联模型。 | 设备必须验证在配对期间是否生成了经过身份验证的Link Key。“Just Works” 关联模型不提供MITM保护。如果支持其他关联模型之一(即数字比较,OOB或密钥条目)的类似资格的设备可用,那么只有支持Just Works的设备(例如,没有输入/输出能力的设备)才能被采购。 | 建议实施 |
12 | 对于使用SSP的2.1及更高版本的设备,必须根据密钥条目关联模型对每个配对使用随机和唯一的密钥。 | 如果一个静态密钥用于多个配对,则密钥条目关联模型提供的MITM保护将被减少。 | 建议实施 |
13 | 使用安全模式4的蓝牙2.1或更高版本的设备必须回退到安全模式3才能与2.0及更早版本的设备(即,不支持安全模式4的设备)向后兼容。 | 蓝牙规范允许2.1设备回退到任何安全模式以实现向后兼容。这允许选择退回到安全模式1-3。如前所述,安全模式3提供了最佳的安全性。 | 建议实施 |
14 | 4.0和4.1使用低能耗技术的设备和服务应尽可能使用安全模式1级3。低能耗安全模式1级3级为4.0和4.1低能耗设备提供最高的安全性。 | 其他低能耗安全模式允许未经身份验证的配对和/或不加密。 | 建议实施 |
15 | 使用低能耗功能的蓝牙4.2设备和服务应尽可能使用安全模式1级别4。低能耗安全模式1级4级实现安全连接模式,为4.2低能耗设备提供最高安全性。 | 如果安全模式1级别4不可用,建议使用安全模式1级别3 | 建议实施 |
16 | 4.1 BR/EDR设备和服务应尽可能使用安全模式4,级别4,因为它可为4.1及更高版本的BR/EDR设备提供最高的安全性。 | 如果安全模式4级别4不可用,建议使用安全模式3。 | 建议实施 |
17 | 禁止不需要和未经批准的服务和配置文件。 | 许多蓝牙堆栈被设计为支持多个配置文件和相关服务。应将设备上的蓝牙堆栈锁定,以确保只有必需和批准的配置文件和服务可供使用。 | 建议实施 |
18 | 蓝牙设备默认情况下应配置为不可发现,并且除了配对需要外,不能发现。 | 这防止对其他蓝牙设备的可见性,除非绝对需要发现。此外,发现期间发送的默认蓝牙设备名称应更改为非标识值。 | 建议实施 |
19 | 为所有蓝牙连接调用链接加密。 | 应使用链路加密来保护蓝牙连接期间的所有数据传输;否则传输的数据容易受到窃听。 | 建议实施 |
20 | 如果正在使用多跳无线通信,请确保在通信链路中的每个链路上启用加密。 | 一个不安全的链接导致整个通信链的破坏。 | 建议实施 |
21 | 确保为所有连接执行设备相互验证。 | 需要相互认证来提供网络上所有设备的合法验证。 | 建议实施 |
22 | 启用所有广播传输的加密(加密模式3)。 | 通过链路加密保护的广播传输提供了一层安全保护,保护这些传输免受用户拦截的恶意攻击。 | 建议实施 |
23 | 将加密密钥大小配置为允许的最大值。 | 使用最大允许密钥大小可以防止暴力攻击。 | 建议实施 |
24 | 蓝牙设备必须提示用户授权所有传入的蓝牙连接请求,然后才允许任何传入的连接请求继续进行。 | 用户还必须从不接受来自意外,未知或不受信任来源的连接,文件或其他对象。 | 建议实施 |
25 | 在蓝牙堆栈顶部使用应用级认证和加密进行敏感数据通信。 | 蓝牙设备可以从内存中访问Link Key,并自动连接先前配对的设备。结合实施认证和加密的应用级软件将增加额外的安全层。密码和其他认证机制(如生物识别和智能卡)可用于为蓝牙设备提供用户认证。通过本地加密采用较高层加密(特别是FIPS 140验证)将进一步保护传输中的数据。 | 应该考虑 |
26 | 部署用户验证叠加层,如生物识别,智能卡,双因素身份验证或公钥基础设施(PKI)。 | 实施强大的认证机制可以最大限度地减少与密码和PIN相关的漏洞。 | 应该考虑 |
27 | 如果使用移动设备管理(MDM)解决方案,请通过管理解决方案的技术控制确保组织的蓝牙安全策略得到适当的实施。 | 安全策略可以由MDM解决方案实施。默认设置通常不安全,应仔细检查这些设置,以确保它们符合组织安全策略。 | 应该考虑 |
28 | 确保蓝牙功能在不使用时被禁用。 | 所有蓝牙设备都应禁用蓝牙功能,除非用户明确地启用蓝牙建立连接。这可以最大限度地减少潜在的恶意活动。对于不支持禁用蓝牙(例如耳机)的设备,整个设备在不使用时应关闭。 | 建议实施 |
29 | 尽可能少地进行配对,理想情况下,在安全区域,攻击者无法实际观察密钥条目并拦截蓝牙配对消息。(注意 | “安全区域” 被定义为在具有物理访问控制的位置的室内远离窗户的非公共区域。)除非用户已经发起配对并且确定用户的设备之一发送了PIN请求,否则用户不应该回复任何请求PIN的消息。 配对是一个至关重要的安全功能,并要求用户保持可能的窃听者的安全意识。如果攻击者可以捕获与配对相关的传输帧,则确定Link Key对于2.1和4.0之前的设备是直接的,因为安全性仅取决于PIN熵和长度。该建议也适用于2.1/3.0设备,尽管对SSP的类似窃听攻击尚未记录。 | 建议实施 |
30 | BR/EDR服务级安全模式(即安全模式2或4)只能在受控和易于理解的环境中使用。 | 安全模式3在链路建立之前提供链路级安全性,而安全模式2和4在建立任何认证或加密之前允许链路级连接。NIST强烈建议设备使用安全模式3。 | 建议实施 |
31 | 确保带有蓝牙接口的便携式设备配置了密码。 | 这有助于防止未经授权的访问,如果设备丢失或被盗。 | 建议实施 |
32 | 如果蓝牙设备丢失或被盗,用户应立即从所有其他蓝牙设备的配对设备列表中删除丢失的设备。 | 此策略将防止攻击者使用丢失或被盗设备访问用户拥有的另一个蓝牙设备。 | 建议实施 |
33 | 在支持此类基于主机的安全软件的支持蓝牙的主机上安装防病毒软件。 | 应安装防毒软件,以确保未将已知的恶意软件引入蓝牙网络。 | 建议实施 |
34 | 全面测试和定期部署蓝牙软件和固件修补程序和升级。 | 新发现的供应商产品的安全漏洞应该被修补,以防止恶意和无意的漏洞。补丁应在实施前进行充分测试,以确认其有效。 | 建议实施 |
35 | 用户不应接受来自未知或可疑设备的任何类型的传输。这些类型的传输包括消息,文件和图像。 | 随着蓝牙设备数量的增加,用户只能与其他可信设备建立连接,并且只接受来自这些受信任设备的内容是非常重要的。 | 建议实施 |
36 | 充分了解部署前部署任何安全功能或产品的影响。 | 为了确保成功部署,组织应在实施前充分了解技术,安全,运营和人员需求。 | 建议实施 |
37 | 指定个人跟踪蓝牙安全产品和标准(可能通过蓝牙SIG)的进展以及该技术的威胁和漏洞。 | 指定跟踪最新技术增强,标准(可能通过蓝牙SIG)和风险的个人将有助于确保蓝牙的持续安全使用。 | 建议实施 |
表4-3列出了NIST特殊出版物(SP)800-53修订版4,联邦信息系统和组织的安全和隐私控制的安全控制,其映射到表4-2中的建议。(注37)左列列出了NIST SP 800-53中控件的编号和名称,右栏提供了与NIST SP 800-53控件相对应的表4-2推荐号。
表4-3中的控件列表不是完全全面或权威的。相反,它列出了表4-2建议最直接支持的那些控件。
注37:https://doi.org/10.6028/NIST.SP.800-53r4
附录A 术语表
出版物中使用的选定术语定义如下。
接入点(AP):一种将基础架构中运行的无线客户端设备相互连接并提供对连接的分发系统(通常是组织的企业有线网络)的访问的设备。
Ad Hoc网络:一种无线网络,允许在同一物理区域内的无线客户端设备之间轻松连接,而无需使用诸如接入点或基站之类的基础设施设备。
申验者:蓝牙设备尝试在蓝牙连接过程中向验证者证明其身份。
媒体访问控制(MAC):制造商分配给特定无线网络接口的独特的48位值。
Piconet:一个小型蓝牙网络,其特征是创建包含两个或更多设备的小型蓝牙网络。
范围:与无线网络基础设施或无线客户端进行通信的最大可能距离。
Scatternet:通过允许一个或多个蓝牙设备每个都在一个微微网中作为从设备并同时作为另一个微微网的主站而创建的微微网链。分散网允许多个设备在更长的距离上联网。
验证者:蓝牙设备,用于在蓝牙连接过程中验证声明人的身份。
无线局域网(WLAN):能够进行射频通信的有限地理区域(如办公楼或建筑校园)内的一组无线接入点和相关基础设施。WLAN通常被实现为现有有线LAN的扩展,以提供增强的用户移动性。
无线个人区域网络(WPAN):一个小型无线网络,需要很少的或没有基础设施,并在短距离内运行。WPAN通常由单个房间中的几个设备使用,而不是使用电缆连接设备。
附录B 首字母缩写词
出版物中使用的所选缩写和缩写如下。
缩写 | 全文 |
---|---|
8DPSK | 8 Phase Differential Phase Shift Keying |
ACL | Asynchronous Connection-Less |
ACO | Authenticated Ciphering Offset |
AES | Advanced Encryption Standard |
AES-CCM | Advanced Encryption Standard–Counter with CBC-MAC |
AES-CMAC | Advanced Encryption Standard-Cipher-based Message Authentication Code |
AMP | Alternate MAC/PHY |
AP | Access Point |
ATT | Attribute Protocol |
BR | Basic Rate |
CBC-MAC | Cipher Block Chaining - Message Authentication Code (CMAC) |
COF | Ciphering Offset Number |
CSA | Core Specification Addendum |
CSA5 | Core Specification Addendum 5 |
CSRK | Connection Signature Resolving Key |
CTIA | Cellular Telecommunications and Internet Association |
dBm | Decibels referenced to one milliwatt |
DHK | Diversifier Hiding Key |
DHkey | Diffie-Hellman Key |
DISA | Defense Information Systems Agency |
DIV | Diversifier |
DoD | Department of Defense |
DoS | Denial of Service |
DQPSK | Differential Quaternary Phase Shift Keying |
ECDH | Elliptic Curve Diffie-Hellman |
EDIV | Encrypted Diversifier |
EDR | Enhanced Data Rate |
ER | Encryption Root |
eSCO | Enhanced Synchronous Connection Oriented |
FHSS | Frequency Hopping Spread Spectrum |
FIPS | Federal Information Processing Standard |
FISMA | Federal Information Security Modernization Act |
GFSK | Gaussian Frequency-Shift Keying |
GHz | Gigahertz |
HCI | Host Controller Interface |
HMAC | Hash Message Authentication Code |
HS | High Speed |
IBC | Iterated Block Cipher |
IEEE | Institute of Electrical and Electronics Engineers |
ILK | Intermediate Link Key |
ILTK | Intermediate Long Term Key |
IMEI | International Mobile Equipment Identity |
IR | Identity Root |
IRK | Identity Resolving Key |
ISM | Industrial, Scientific, and Medical |
ITL | Information Technology Laboratory |
kbps | Kilobits per second |
KG | Key Generator |
KSG | Key Stream Generator |
L2CAP | Logical Link Control and Adaptation Protocol |
LAN | Local Area Network |
LCP | Link Control Protocol |
LFSR | Linear Feedback Shift Register |
LLP | Link Layer Protocol |
LTK | Long-Term Key |
m | Meter |
MAC | Media Access Control |
Mbps | Megabits per second |
MHz | Megahertz |
MIC | Message Integrity Check |
MITM | Man-in-the-Middle |
mW | Milliwatt |
NFC | Near Field Communication |
NIST | National Institute of Standards and Technology |
NVD | National Vulnerability Database |
OFDM | Orthogonal Frequency-Division Multiplexing |
OMB | Office of Management and Budget |
OOB | Out of Band |
PC | Personal Computer |
PHY | Physical Layer |
PIN | Personal Identification Number |
PKI | Public Key Infrastructure |
PRNG | Pseudo-Random Number Generator |
PUB | Publication |
Rand | Random Number |
RF | Radio Frequency |
RFC | Request for Comment |
RNG | Random Number Generator |
RPA | Resolvable Private Address |
RSSI | Received Signal Strength Indication |
SAFER | Secure And Fast Encryption Routine |
SDP | Service Discovery Protocol |
SEG | Security Experts Group |
SHA | Secure Hash Algorithm |
SIG | Special Interest Group |
SP | Special Publication |
SRES | Signed Response |
SSP | Secure Simple Pairing |
STK | Short Term Key |
TDM | Time Division Multiplexing |
TDMA | Time Division Multiple Access |
TK | Temporary Key |
USB | Universal Serial Bus |
WLAN | Wireless Local Area Network |
WPAN | Wireless Personal Area Network |
附录C内置蓝牙函数
d1() | 基于AES-128加密的多功能(Diversifying)函数,用于Legacy Low Energy密钥生成。 |
dm() | DIV掩码生成函数,用于EDIV生成和DIV恢复 |
E0() | 用于加密蓝牙分组有效载荷的流密码。 |
E1() | 基于蓝牙传统认证函数。 |
E3() | 蓝牙密钥生成函数。 |
E21() | Link Key发生器函数,用于从48位地址生成密钥 |
E22() | Link Key发生器函数,用于从用户PIN生成密钥时使用 |
f2() | BR/EDR和AMP Link密钥函数 |
f3() | 简单配对检查函数,用于计算确认值 |
f5() | 低能耗安全Link Key生成函数 |
f6() | 低能耗安全连接DHKey检查生成函数 |
h4() | 安全连接设备认证密钥生成函数 |
h5() | 安全连接设备确认函数 |
h6() | 第二Link Key转换函数,用于创建蓝牙BR/EDR密钥的低能耗长期密钥派生 |
h7() | 第一个Link Key转换函数,用于创建蓝牙BR/EDR密钥的低能耗长期密钥派生 |
附录D参考文献
下面的列表提供了出版物的参考。
- Bluetooth Special Interest Group, Bluetooth specifications. https://www.bluetooth.com/specifications/adopted-specifications
- C. Gehrmann, J. Persson, and B. Smeets, Bluetooth Security, Artech House, 2004.
- Y. Shaked and A. Wool, Cracking the Bluetooth PIN, In Proc. 3rd USENIX/ACM Conf. Mobile Systems, Applications, and Services (MobiSys), pages 39–50, Seattle, WA, June 2005. https://www.usenix.org/event/mobisys05/tech/full_papers/shaked/shaked.pdf
- D. Spill and A. Bittau, BlueSniff: Eve meets Alice and Bluetooth, 2007. https://www.usenix.org/event/woot07/tech/full_papers/spill/spill.pdf
- Bluetooth SIG, The Bluetooth Security White Paper, 2002. http://grouper.ieee.org/groups/1451/5/Comparison%20of%20PHY/Bluetooth_24Security_Paper. pdf
- Y. Lu, W. Meier, and S. Vaudenay. The Conditional Correlation Attack: A Practical Attack on Bluetooth Encryption, https://lasec.epfl.ch/pub/lasec/doc/LMV05.pdf
附录E资源
以下列表提供了可能对读者有帮助的蓝牙相关资源的示例。
名称 | 链接 |
---|---|
Bluetooth SIG Specifications | https://www.bluetooth.com/specifications/adopted-specifications |
FIPS 140-2, Security Requirements for Cryptographic Modules | https://doi.org/10.6028/NIST.FIPS.140-2 |
FIPS 180-4, Secure Hash Standard (SHS) | https://doi.org/10.6028/NIST.FIPS.180-4 |
FIPS 186-4, Digital Signature Standard (DSS) | https://doi.org/10.6028/NIST.FIPS.186-4 |
FIPS 197, Advanced Encryption Standard | https://doi.org/10.6028/NIST.FIPS.197 |
FIPS 199, Standards for Security Categorization of Federal Information and Information Systems | https://doi.org/10.6028/NIST.FIPS.199 |
GAO-05-383, Information Security: Federal Agencies Need to Improve Controls over Wireless Networks | http://www.gao.gov/new.items/d05383.pdf |
NIST SP 800-37 Revision 1, Guide for Applying the Risk Management Framework to Federal Information Systems: A Security Life Cycle Approach | https://doi.org/10.6028/NIST.SP.800-37r1 |
NIST SP 800-53 Revision 4, Security and Privacy Controls for Federal Information Systems and Organizations | https://doi.org/10.6028/NIST.SP.800-53r4 |
NIST SP 800-63-2, Electronic Authentication Guideline | https://doi.org/10.6028/NIST.SP.800-63-2 |
NIST SP 800-64 Revision 2, Security Considerations in the System Development Life Cycle | https://doi.org/10.6028/NIST.SP.800-64r2 |
NIST SP 800-70 Revision 3, National Checklist Program for IT Products—Guidelines for Checklists Users and Developers | https://doi.org/10.6028/NIST.SP.800-70r3 |
NIST SP 800-90A Revision 1, Recommendation for Random Number Generation Using Deterministic Random Bit Generators | https://doi.org/10.6028/NIST.SP.800-90Ar1 |
NIST SP 800-90B (Draft), Recommendation for the Entropy Sources Used for Random Bit Generation | http://csrc.nist.gov/publications/drafts/800-90/sp800-90b_second_draft.pdf |
NIST SP 800-90C (Draft), Recommendation for Random Bit Generator (RBG) Constructions | http://csrc.nist.gov/publications/drafts/800-90/sp800_90c_second_draft.pdf |
NIST SP 800-97, Establishing Wireless Robust Security Networks: A Guide to IEEE 802.11i | https://doi.org/10.6028/NIST.SP.800-97 |
NIST SP 800-108, Recommendation for Key Derivation Using Pseudorandom Functions | https://doi.org/10.6028/NIST.SP.800-108 |
NIST SP 800-114 Revision 1, User's Guide to Telework and Bring Your Own Device (BYOD) Security | https://doi.org/10.6028/NIST.SP.800-114r1 |
Bluetooth Special Interest Group | https://www.bluetooth.com/ |
Cellular Telecommunications and Internet Association (CTIA) | https://www.ctia.org/ |
Crackle | http://lacklustre.net/projects/crackle/ |
FIPS-Validated Cryptographic Modules | http://csrc.nist.gov/groups/STM/cmvp/validation.html |
IEEE 802.15 Working Group for Wireless Personal Area Networks | http://www.ieee802.org/15/ |
NIST National Vulnerability Database (NVD) | https://nvd.nist.gov/ |
NIST’s National Checklist Program | https://checklists.nist.gov/ |
Project Ubertooth | http://ubertooth.sourceforge.net |
Trifinite Group (Bluetooth Security Research) | https://trifinite.org/ |