我正在创建一个运行外围服务的应用程序,但需要在发出响应之前验证中心。我正在查看具有标识符的CBCentral API文档。但是我找不到在CBCentral管理器中发送标识符的方法。我的中央经理将是一个具有随机标识符的应用程序。我该如何在尝试访问我的数据的外围服务中进行验证。

为了提供我的应用程序的更多详细信息,我有一个应用程序可以用作接收模式(CBCentral Manager)和发送模式(Peripheral Manager)。只有选定的CBCentral Manager可以访问我的外围设备管理器服务。如何限制这一点。

问候

哈希克

最佳答案

您可以采取几种方法。

一种方法是在您的中央和外围设备之间实施质询/响应机制。您的外围设备通过属性公开一个值,您的中央设备获取该值,以仅对代码已知的某种方式对其进行操作,然后将其写回到外围设备。外设然后可以执行相同的操作并在使任何其他值可用之前验证响应。

这种方法的优点是不需要任何用户交互,但是从理论上讲,您可以对代码进行反向工程和哈希算法的复制-这种风险的多少取决于通信的价值和未经授权的影响访问

第二种方法是使用BLE内置的加密和安全性。如果您的外围设备将某个属性标记为需要加密,则将与传统蓝牙一样使用密码对用户进行配对过程。

这种方法的优势在于它使用了蓝牙标准功能,因此您无需编写任何特殊代码。缺点是您需要外围设备上有一些用户界面,以便您可以提供密码,并且只要他们可以控制两个设备,就不会阻止用户从任何中央设备与外围设备配对。

关于ios - 外围设备管理员如何理解哪个CBCentral(设备)试图访问服务/特性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24065854/

10-13 02:50