首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >需要/在客户端设备上实现蓝牙PassKey PassCode

需要/在客户端设备上实现蓝牙PassKey PassCode
EN

Stack Overflow用户
提问于 2019-07-14 05:29:27
回答 1查看 205关注 0票数 0

有没有办法在iOS或安卓设置一个蓝牙密钥密码,每当另一个设备想要连接到我的设备通过蓝牙?

我的应用程序涉及一个连接到BLE服务器的BLE客户端,这两个设备将在彼此之间传输数据。然而,传输的数据在安全方面将是非常敏感的。因此,除了标准加密之外,我的目标是在两个设备相互验证(例如,使用密钥)之前不启动数据传输。

似乎蓝牙密钥是设备制造商设置的东西,而不是用户能够配置的东西。如果是这样,并且没有密钥配对,那么在设备可以传输任何敏感数据之前,是否可以接受要求交换密钥(在设备配对之后)?

EN

回答 1

Stack Overflow用户

发布于 2019-07-16 03:18:05

在安卓手机上,假设手机是GATT服务器(它为客户端设备提供数据以供读取),您可以通过将其读取权限设置为PERMISSION_READ_ENCRYPTED_MITM来保护特征中保存的数据。

例如,当您在Android中创建一个要注册到蓝牙堆栈的特征时,您需要

代码语言:javascript
复制
BluetoothGattCharacteristic characteristic = new BluetoothGattCharacteristic(YOUR_UUID, BluetoothGattCharacteristic.PROPERTY_READ, BluetoothGattCharacteristic.PERMISSION_READ_ENCRYPTED_MITM) 

这样,任何想要读取特征的人都需要首先通过输入密码或比较两个数值来创建与您的电话的安全绑定。配对的确切方式取决于两个设备的蓝牙堆栈进行协商(基于客户端上的可用IO )。

另一方面,如果您想要访问的数据存储在第三个远程设备中,并且您不需要身份验证(绑定/配对)来从该设备读取数据,并且您无法访问固件。然后,您的不能从您的电话强制单向安全传输。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57022970

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档