我正在创建一个运行外围服务的应用程序,但它需要在给出响应之前验证中心。我正在看CBCentral api doc它有标识符。但我找不到在我的CBCentral经理中发送我的标识符的方法。我的中央经理将是一个具有随机标识符的应用程序。如何在外围服务中验证谁正在尝试访问我的数据..
为了提供我的应用程序的更多详细信息,我有一个应用程序,它可以作为接收模式(CBCentral Manager)和发送模式(外围设备管理器)。只有选定的CBCentral管理员才能访问我的外围设备管理器服务。如何限制这一点。
此致
Hashique
答案 0 :(得分:1)
您可以采取几种方法。
一种方法是在中央和外围设备之间实施质询/响应机制。您的外围设备通过属性公开一个值,您的中心获取此值,以一些只知道您的代码的方式操作它,然后将其写回外设。然后,外围设备可以执行相同的操作并在提供任何其他值之前验证响应。
这种方法的优点是它不需要任何用户交互,但理论上你的代码可以进行逆向工程,并且哈希算法被复制 - 这有多大的风险取决于通信的价值和未经授权的访问的影响
第二种方法是使用BLE内置的加密和安全性。如果您的外围设备将属性标记为需要加密,则用户将使用密码与传统蓝牙一起完成配对过程。
这种方法的优点是它使用蓝牙标准功能,因此您无需编写任何特殊代码。缺点是您需要在外围设备上安装一些用户界面,这样您就可以提供密码,只要用户能够控制两个设备,就不会阻止用户将外围设备与任何中心配对。