我可以找出我的 Android 蓝牙键盘使用什么加密吗?

信息安全 加密 安卓 蓝牙
2021-08-14 22:45:22

我有一个 Android 平板电脑(Samsung Tab S2)和一个蓝牙键盘(Celicious Tri BK01)。我偶尔会使用键盘输入密码。

在Android中,有什么方法可以查明蓝牙流量是否被加密?我如何判断这是否是足够强大的加密?

1个回答

您的特定键盘使用两级 E0 进行加密,使用 P-192 进行密钥交换。

蓝牙始终使用加密。但是,不同的版本使用不同的加密协议:

英国电信统计

那么,每个版本使用什么密码学呢?对于蓝牙 BR/EDR:

  • 在 2.1 之前,版本不使用任何密钥交换。密钥是预先共享的,通常使用非常弱的 PIN。由于密钥空间较小,它们通常容易受到暴力破解。密码是 E0,它相当弱,只要有足够的数据,就可以通过已知的明文攻击来破解。

  • 从 2.1 到 4.0,使用 ECC 执行密钥交换,特别是 NIST P-192 曲线。这提供了大约 96 位的经典安全性,虽然不是很好,但还不实用。尽管它使用了相当弱的 E0 密码,但它使用了所谓的二级 E0,这是一种更安全的结构,使用了两次密码。没有已知的针对它在蓝牙中使用的实际攻击方式,但攻击只会变得更好,而不是更糟,因此密码应该被认为是弱的。

  • 从 4.1开始,使用更强的 ECC 曲线 P-256 执行密钥交换,这提供了大约 128 位的经典安全性。使用的密码 AES 也优于 E0。这些版本的蓝牙通常不受被动攻击的影响。如果不使用带外身份验证,而是使用弱 PIN 进行身份验证,则可能会发生主动 MITM 攻击。

低功耗蓝牙 (LE) 稍有不同,仅从 4.0 开始支持。在 4.2 版本之前,低功耗蓝牙使用任何密钥交换机制,因此容易受到被动攻击。这是一个严重的回归,只能通过使用 BR/EDR 而不是 LE 或确保仅使用 LE 4.2 或更高版本(重新引入 P-256 进行密钥交换)来缓解。


根据快速网络搜索,Celicious Tri BK01 蓝牙键盘使用 3.0 版本,这意味着它使用 P-192 进行密钥交换和两级 E0 进行加密。没有已知的实际密码攻击可以用来对付这个键盘,但是 E0 设计的弱点和 P-192 仅有的勉强安全意味着在不久的将来密码分析的进步可能会使它变得脆弱。不要在需要长期安全的情况下使用它。

现在,你的真实问题不应该是正在使用哪种加密,而是输入密码或其他敏感信息的安全性如何。排除 EMSEC(TEMPEST 类型)问题,定时攻击可能是可能的。每按一次键,键盘就会立即无线传输。尽管按键可能被加密,但按键已被按下以及按下(和释放)的确切时间这一事实并未隐藏。可以通过查看时序模式简单地推断出潜在的密码,因为某些按键序列的时序模式与其他序列不同。您输入密码的次数越多,此问题就越严重。如果您的对手可能正在收集加密数据以及传输的精确时间间隔,则如果输入足够多的次数,您的密码可能会被泄露。


有关的: