猿问

低功耗蓝牙安全

在遇到C#BLE连接问题时,我在“蓝牙低功耗连接”部分中进行了更深入的研究。如果我对这部分内容有100%的了解,在这里我并不确定。

在我的情况下,我想连接到需要绑定才能开始数据传输的设备,否则我会收到适当数量的字节,但只能为零。我的应用程序somtimes正常工作,并且我收到了预期的值,有时我只收到零,有时在mscorlib.dll中收到错误“ System.ArgumentException”,并且我的应用程序崩溃了。在开始更改代码之前,请确保我正确理解“连接”部分。
使用BLE,我可以进行绑定,配对和连接。键合通常是指相同的配对。交换加密密钥,并且在绑定的情况下,密钥将永久保存并重新用于两个特定设备之间的将来会话。配对密钥仅对一个会话有效。 https://eewiki.net/display/Wireless/A+Basic+Introduction+to+BLE+Security 基于此链接,蓝牙使用AES防护服。因此,对我来说,这两个选项很明确(当然,以防我理解它们是正确的)。因此,现在我读到自Windows Creators更新以来,无需绑定或配对就可以建立连接。我了解没有密钥交换,根据我对AES的了解,无法使用。仅使用两个设备之间的连接进行的通信真的完全不安全吗?或者我错过了一些东西吗?谢谢


慕尼黑8549860
浏览 163回答 1
1回答

富国沪深

没错,无需配对/绑定,BLE链接不会被加密,并且使用嗅探器可以轻松读取来回传输的所有数据。另一方面,如果使用配对/绑定,则来回传输的所有数据都将被加密,除非使用嗅探器端也使用了加密密钥,否则无法使用嗅探器读取。有关更多信息,请参见蓝牙规范,版本5.0,第3卷,H部分,C.2节(身份验证和加密)。我希望这回答了你的问题。
随时随地看视频慕课网APP
我要回答