1)BLE安全性是一件复杂的事情,如果您不是这方面的专家,最好确保构建应用程序的堆栈为您执行此操作 . 在Android(以及iOS上,我想),内置堆栈将在您启动后立即为您配对,但在您自定义构建的“冰球”上,您必须自己确保这一点 - 或实施正确执行此操作的蓝牙堆栈(推荐) .
2)如果实现正确,则确保加密,是的 .
3)我不能详细告诉你这个,但是当你开始配对时,蓝牙堆应该有响应;也许在返回参数中,您可以找到此信息(但我不知道,这很大程度上取决于您使用的API) .
4)如果冰球没有显示并且没有输入可能性,除了按钮(可以看作是/否选项,"Yes"按下按钮而"No"没有按下它),配对的可能性非常有限 . 表示为I / O功能,这被定义为"NoInputNoOutput"(参见CoreSpec v4.2,第3卷,第H部分,第2.3.2章),因此它将始终导致未经身份验证的连接(请参阅CoreSpec v4中的表7) .2,Vol.3,C部分,第5.2.2.6章) . 这并不意味着连接没有加密(事实上是这样),但是你没有对Man-in-the-Middle attacks的保护 .
检查冰球上是否按下按钮可能是一项额外的安全措施,但请注意,如果他/她想与您的应用配对,攻击者可以伪造“按下按钮”消息 .