低功耗蓝牙技术的安全机制研究
2020-10-09李颖川姚伟王仲辉
李颖川 姚伟 王仲辉
摘 要:低功耗蓝牙技术是为了支持计算和存储受限的设备而发展出来的一种新的工作模式,其安全特性与传统蓝牙技术不同。通过对低功耗蓝牙的安全模式、配对方式、密钥结构等方面进行研究,使用户和组织能够掌握其安全机制,保证用户和组织通过选用恰当的安全模式和关联模型实现防窃听攻击和防中间人攻击,提出蓝牙使用的安全建议,促进蓝牙设备和蓝牙信息系统的安全应用。
关键词:低功耗蓝牙;蓝牙配对;安全模式;密钥生成;数据传输;链接
中图分类号:TP39;G482文献标识码:A文章编号:2095-1302(2020)09-00-03
0 引 言
低功耗蓝牙无线技术之前被称为“Wibree”和“超低功耗蓝牙”,主要应用在电池供电设备上,如医疗设备和其他传感器。低功耗蓝牙与传统蓝牙相比,具有更低的功耗、更少的内存需求、更高效的发现和连接过程、更短的数据包长度以及更简单的协议和服务。
随着蓝牙低功耗技术的广泛应用,其安全性也受到了广泛关注,蓝牙规范[1-5]中明确了蓝牙安全机制的具体描述,美国NIST发布了蓝牙安全指导[6]对蓝牙规范4.2以前的安全机制做了较为系统的研究,文献[7-10]分别对具体应用中的蓝牙安全进行了分析。本文针对低功耗蓝牙技术的特点,结合蓝牙规范中安全机制的最新变化,给出蓝牙使用的安全建议,提高蓝牙应用的安全性。
1 低功耗蓝牙安全概述
低功耗蓝牙技术主要提供五项基本安全服务,分别是基于设备地址的身份驗证、基于AES-CCM加密算法的保密、基于服务控制的可授权性、基于AES-CMAC-128的消息完整性、独特的配对(绑定)和隐私地址特性。低功耗蓝牙技术根据相关安全模式和关联模型能够实现防窃听和防中间人攻击目的。
目前,低功耗蓝牙技术共有3个安全模式和4个安全级别,见表1所列。
安全模式1具有与加密相关的多个级别;安全模式2具有与数据签名相关的多个安全级别;安全模式3具有与LE Audio广播模式进行加密的多个安全级别。
低功耗蓝牙技术的配对过程分为如下三个阶段:
(1)第一阶段交换设备特征;
(2)第二阶段利用设备特征,通过传统配对方式生成STK(短期密钥),或通过安全连接配对生成LTK(长期密钥);
(3)第三阶段分发密钥IRK(身份解析密钥),CSRK(链接签名解析密钥)或LTK。
2.1 配对方式
传统配对方式首先从两个设备相同的临时密钥(TK)开始,再利用交换的随机值和TK生成一个短期密钥(STK)。使用STK对链接进行加密,安全分发LTK,IRK和CSRK,但不提供窃听保护。
安全连接配对利用ECDH(基于P-256椭圆曲线的Diffle-Helman算法)密码技术,直接产生长期密钥LTK。使用LTK加密链接,安全分发IRK和CSRK,同时能够提供防窃听保护。
2.2 关联模型
关联模型根据配对双方的输入输出能力和保密需求来确定,并与配对方式有直接关系。传统配对方式只有带外传输、密钥输入和立即工作模型,安全连接配对增加了数字比较模型。
2.2.1 带外传输(Out of Band)
如果两个设备都支持一个通用的OOB技术,例如NFC,它们将使用OOB方法进行配对。
在传统配对过程中,TK通过OOB技术传递。由于TK是唯一的、随机的、128位的数字,所以攻击者猜测正确的密钥来执行MITM攻击的几率是百万分之一。
在安全连接配对中,通过OOB传递设备地址,攻击者无法获取任何信息,可抵御MITM攻击。
2.2.2 数值比较(Numeric Comparison)
如果两个设备都能够显示6位数字,并且都能够让用户输入“yes”或“no”,那么就可以使用数字比较方式。
在配对过程中,每个显示器向用户显示一个6位数字,如果数字匹配,用户回答“yes”;否则,用户回答“no”,配对失败。
显示的数字不用作生成链接密钥的输入,能够查看(或以其他方式捕获)显示值的窃听者不能使用它来确定产生的链接或加密密钥。数字比较提供了MITM保护,并向用户确认他们正在对两个设备进行配对。
2.2.3 口令输入(Passkey Entry)
如果至少一个设备支持键盘输入,而另一个设备支持显示输出(或键盘输入),则使用口令输入模型进行配对。
在传统配对模型中,TK由输入的密钥生成。规范要求密钥大小为6位数字,因此,其最多可以提供20位的熵。
安全连接配对在交换公钥后,将生成的Passkey(6位数字)输入每个设备。这些设备轮流发送密钥的每个比特位、nonce和两个公钥的散列值(重复20次),直到Passkey发送完成并达成一致。
两种配对方式均使用Passkey生成密钥LTK,所以攻击者猜测正确的密钥来执行MITM攻击的几率是百万分之一。
2.2.4 立即工作(Just Works)
由于设备输入/输出的限制,故考虑使用立即工作配对方法。从安全性的角度来看,立即工作配对方法是所有配对选项中最弱的一个。在传统配对模型中,TK被设置为0 (0x00)。因此,窃听者或MITM攻击者无需猜测TK来生成STK。
安全连接配对交换公钥后,将使用数字比较过程,但不会向用户显示6位值。
立即工作配对方法会生成未经身份验证的LTK,不提供MITM保护。
3 低功耗蓝牙密钥的生成
低功耗蓝牙密钥主要有LTK,IRK,CSRK三种,其中LTK为主密钥,它通过变换能够生成会话密钥SK,可保证传输数据的安全性;IRK是静态的,且与设备直接相关,用来将公共地址变为随机地址,防止地址被追踪;CSRK可以通过一个DIV(分散符)和静态随机值ER(加密根)来生成密钥,主要用于未加密链接的数据签名,不支持加密链接的使用。综上可知,LTK较为重要。