蓝牙配对机制基础知识
为了统一规范,蓝牙在2.1版本引入了安全简单的配对机制,从而加强了蓝牙通讯安全方面性能。以下总结了蓝牙配对机制:
一、遗留配对(Lagacy pairing){密码配对(PIN Code Pairing)}
仅适用于蓝牙v2.0及之前版本。每个设备必须输入PIN码(Personal identification number),且只有双方输入的PIN码相同时才会配对成功。任何16字节的UTF-8字符串都可以用作PIN码。
缺点: 1:不是所有的蓝牙设备都能输入所有可能的PIN码。
2: 有限的输入蓝牙设备:蓝牙免提耳机(Bluetooth Hands-free headset),通常只有固定的PIN码“0000”or“1234”,它们只能被硬编码到设备中。
3:数字的输入蓝牙设备: 手机(Mobile phones),允许用户输入长度不超过16位的数字值。
4:个人电脑和智能手机(PCs & Smartphones),它们允许用户以PIN码的形式输入完整的UTF-8文本。但如果与能力较弱的设备配对,则用户必须了解其他设备上的输入限制;相对而言对于有能力的设备,没有可用的机制来确定它应该如何限制用户可能使用的可用输入。
二、安全简易配对(Secure Simple Pairing,SSP)
蓝牙v2.1版本新规范的,尽管蓝牙v2.1以后设备只能使用遗留配对与v2.0或更早的设备进行互操作。后续蓝牙版本高于或等于2.1的蓝牙鼠标就可以使用安全简易配对。安全简单配对其实是使用一种形式的公钥密码学(public key cryptograph)。
SSP具有以下身份验证机制:
- 只工作(Just works):只是工作,不需要用户交互,设备可以提示用户确认配对过程。常用于IO有限的耳机,且比遗留配对的固定PIN码更安全,但这种方法不提供中间人(HITM)保护。
- 数字比较(Numeric comparison):如果两个设备都有显示屏,并且至少有一个设备能接受二进制的yes/no用户输入,那么它们可以使用数字比较。此方法在每个设备上显示6位数字代码。用户应该比较这些数字以确保它们是相同的,如果比较成功,用户应该在能够接受输入的设备上确认配对。这个方法提供了MITM保护,假设用户在两个设备上都确认并正确地执行比较。
- 密钥输入(Passkey entry):此方法可用于具有显示的设备和具有数字键盘输入的设备(如键盘)之间,或用于具有数字键盘输入的两个设备之间。在第一种情况下,显示器向用户显示一个6位数字代码,然后用户在键盘上输入代码。在第二种情况下,每个设备的用户输入相同的6位数。这两种情况都提供了MITM保护。
- 带外数据(Out of band,OOB):该方法使用外部通信手段,如近场通信(NFC)来交换配对过程中使用的一些信息。配对是使用蓝牙无线层完成的,但是需要来自OOB机制的信息。这只提供了OOB机制中存在的MITM保护级别。
优点:
SSP比较简单,原因如下:在大多数情况下,它不需要用户生成密钥。对于不需要MITM保护的用例,可以消除用户交互。对于数值比较,用户可以通过简单的等式比较来实现MITM保护。可以在设备接近时进行配对,而不需要很长的发现过程。
名词解释:中间人攻击(Man-in-the-Middle Attack, MITM)是一种由来已久的网络入侵手段,并且当今仍然有着广泛的发展空间,如SMB会话劫持、DNS欺骗等攻击都是典型的MITM攻击。简而言之,所谓的MITM攻击就是通过拦截正常的网络通信数据,并进行数据篡改和嗅探,而通信的双方却毫不知情。
总结:
随着无线通信网技术的不断发展,MITM攻击也越来越多样化。最初,MITM只要将网卡设为混杂模式,伪装成代理服务器监听特定的流量就可以实现,这是因为很多蓝牙通信协议都是以明文来进行传输的,如HTTP、FTP、Telnet等。后来,随着科技发展,简单的嗅探攻击已经不能轻易成功,必须先进行ARP欺骗才行。现在,越来越多的蓝牙无线传输(金融系统传输,个人账户钥匙登陆)开始采用加密通信。蓝牙配对机制也会越来越完善!飞易通团队致力于蓝牙无线通讯技术推动,有兴趣可以联系飞易通团队!