【问题标题】:Bluetooth low energy Security蓝牙低功耗安全
【发布时间】:2018-10-12 06:43:12
【问题描述】:

在面临 C# BLE 连接问题时,我深入研究了低功耗蓝牙连接部分。 在这里,如果我 100% 理解这部分,我不确定。

在我的情况下,我想连接到需要绑定才能开始数据传输的设备,否则我会收到正确数量的字节,但只有零。 我的应用程序有时会工作并且我收到预期值,有时我只收到零,有时我在 mscorlib.dll 中收到错误“System.ArgumentException”并且我的应用程序崩溃。 在我开始更改我的代码之前,我想确保我理解正确的连接部分。
使用 BLE,我可以进行绑定、配对和连接。 结合通常意味着相同的配对。加密密钥被交换,在绑定的情况下,密钥被永久保存并重新用于两个特定设备之间的未来会话。 配对密钥仅对一个会话有效。 https://eewiki.net/display/Wireless/A+Basic+Introduction+to+BLE+Security 基于此链接,蓝牙使用 AES 套装。 所以对我来说,这两个选项很清楚(当然,如果我理解它们是正确的)。 所以现在我已经读到,自从 Windows Creators 更新以来,无需绑定或配对即可获得连接。 我知道没有密钥交换,根据我对 AES 的了解,不能使用。 仅使用两个设备之间的连接进行通信真的完全不安全还是我错过了什么? 谢谢

【问题讨论】:

    标签: c# security bluetooth-lowenergy


    【解决方案1】:

    没错,如果没有配对/绑定,BLE 链路是未加密的,所有来回传输的数据都可以使用嗅探器轻松读取。另一方面,如果使用配对/绑定,所有来回传输的数据都会被加密,并且无法使用嗅探器读取,除非在嗅探器端也使用加密密钥。

    有关详细信息,请参阅Bluetooth Specification,版本 5.0,第 3 卷,H 部分,第 C.2 节(身份验证和加密)。

    我希望这能回答你的问题。

    【讨论】:

    • 没问题,不客气。如果这回答了您的问题,那么如果您将其标记为正确,那么对其他人会有所帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-31
    • 2015-08-14
    • 1970-01-01
    • 1970-01-01
    • 2014-08-23
    • 2012-05-28
    • 1970-01-01
    相关资源
    最近更新 更多