HID协议 vs 私有协议:蓝牙遥控器连接认证的破局之道

背景

基于已有的遥控器产品进行竞品分析,了解HID标准协议相对于xx已有的私有的协议的优势和缺点。重点确认和研究设备和手机APP自动连接和认证的过程,分析后期是否可在xx产品上使用或者借鉴。


基本信息

遥控器型号是CS-TJ-R100,由第三方厂商按照HID协议开发的标准协议的遥控器,主要提供给xx配套的物理遥控器。
遥控器的外观和普通的电视遥控器并没有什么区别,上面由开关机,静音,上下左右,确认等相关按键。具体图片如下所示。


 
遥控器支持Type-c口充电,使用内置锂电池,支持和手机连接和配对绑定,可简单验证部分功能。

使用和体验

在正常情况下,遥控器不会发送任何BLE数据,只有在触发绑定后才能和手机进行连接。绑定过程如下。
1、    同时按住home和返回(上图中“+”的左右2个按键),直到遥控器发出“滴”的声音,此时设备开始发送广播;
2、    手机打开nRF connect软件,扫描广播,可以找到“CS-TJ-R100”广播;
3、    手机连接,并发起bond操作,此时手机上需要确认绑定信息确认,直接确认即可完成绑定;
4、    手机和遥控器绑定完成后,遥控器可以控制手机,部分按键支持。
5、    后台可以杀掉nRF connect软件,手机只要在打开蓝牙的情况下都会自动重连遥控器,不需要任何APP应用。


  
图1 扫描广播和绑定完成

遥控器绑定完成后出现在手机的绑定列表中,并且可以显示遥控器实时的电量信息。此时,手机只要不关闭蓝牙,将一直连接着遥控器。如果手机关闭蓝牙或者离开遥控器连接范围,设备会自动断开。当手机开启蓝牙或者在遥控器连接范围内,遥控器会自动连接到手机,并恢复认证状态。

 
图2 遥控器绑定后显示绑定信息


只要手机和遥控器保持上述的正常连接状态,遥控器通过按照控制手机(当前不是所有按键都可以支持)。比如,通过遥控器控制选择某个APP,可以使用上下左右和确认这5个按键,也可以通过音量按键调整手机的音量等。

对比分析

配网的总体流程
 


数据分析


遥控器广播报文,主要包括下面3个部分,应用类型(HID),UUID信息,厂商自定义信息。
xx广播报文完全自定义,基本上不会标准协议字段,如果要让第三方BLE主机识别可能是一个问题。

由于遥控器和手机使用绑定方式,因此绑定后所有应用数据均是加密数据,无法直接进行分析。当然由于是标准HID协议,实际上如果需要开发直接按照标准协议发送即可。此次,为了学习和研究有必要对数据进行解密和分析。主要解密的方式由下面几种方式。
1、    使用专业蓝牙无线抓包工具,如ellisys或morePh等,xx这边只有morePh的抓包工具,实际测试,能够抓包加密密钥的情况比较少,基本上没办法进行解密。

2、    手机上的bt-snoop-hci日志分析对应的数据,提取LTK的信息,将LTK信息加载到无线抓包工具中进行解析。这种方式也存在一些问题,首先,手机是否方便的可以到处日志信息,其次,日志中怎么样确认是本次连接的LTK信息。
从上述情况看,第二种方式是一种可行的方案,但是可能存在拿到错误的LTK的问题。
手机端btsnoop-hci.log中选择对应的Long Term Key

手机读取report map,HCI对应的信息
 

设备下,上,左,右,确认按键无线抓包截图如下。上报内容需要和手机的report map进行对应,否则手机无法进行订阅和数据接收。其他更多的无线抓包信息,可以参考附录内容。
手机订阅0x2C,boot keyboard input report
手机订阅0x31,boot mouse input report
手机订阅0x34,0x38,0x3C,0x40,report

横向对比


    xx没有类似自研产品,以xx标准的蓝牙从机协议进行对比。从下面各个方面方面分析看,第三方遥控器最大优化是使用HID协议带来的优势,如果在断开的情况下,遥控器可以不依赖任何软件使用重新连接和认证。

对比项

第三方遥控器A

xx从机B

优势方

广播

  1. 标准协议,支持所有蓝牙主机识别
  2. 广播内容简单,清晰
  1. 私有广播,不支持第三方蓝牙识别;
  2. 广播复杂

平手

连接

自动连接

xxAPP连接

第三方遥控器

认证

自动认证和配对

xxAPP认证

第三方遥控器

通信

基于SMP加密通信,满足普通使用,通信协议标准化

基于xx本地认证加密,高安全性,通信协议复杂,效率低

平手

功耗

手机打开情况下,长连接,作为从机,功耗比较可控。遥控器不会更新连接参数,功耗偏高

xx遥控器无长连接场景,可能采取使用时连接的情况

xx从机

改进方案


广播数据看,目前xx协议可扩展空间不大,并且无法修改,否则难以和xxAPP连接和适配。但是HID的重新连接和认证的方案,xx的设备可以考虑和借鉴,具体方案如下。
1、    xx从机设备可以支持HID的部分标准协议,同时支持已有设备的xx协议;
2、    xx从机设备支持SMP绑定和本地认证通信。使用过程中本地认证和SMP认证,至少需要满足一种认证方式。
3、    xx部分设备如果需要实现自动和手机重新连接,不依赖xxAPP,这种情况下,设备可以选择SMP认证方式。
4、    xx设备和手机认证后,由于是HID协议设备,设备和上述第三方软件具体相同的重连的效果。如果部分控制可以走标准的HID协议,那么可以直接不依赖APP进行控制。
5、    但是如果设备还需要使用当前的xx协议,那么设备连接后还是需要重新唤醒xxAPP才能进行业务相关的控制。


优化测试


    按照上述的优化方案,可以实现第三方遥控器的效果。但是对于需要兼容老协议和必须使用xx私有的设备,连接后还是需要xxAPP参与。
    但是对于设备和手机的连接和认证,可以快速实现连接,体验上感觉连接速度更快了。当然对于简单的HID协议能够覆盖的设备,建议直接使用HID协议进行控制。但是对于智能锁等高安全性,并且无HID协议支持的设备,建议还是通过xxAPP来保证相关的控制。


总结


    第三方遥控器使用HID的标准协议,天然的支持无APP进行连接。目前只有该蓝牙协议支持系统层面的自动重连和认证。相对于使用APP来连接和认证的方式,确认有很大方便之处。但是不足的地方也很明显,HID的协议范围比较小,目前只有使用在鼠标,键盘,手柄等相关标准设备上。
    未来也可以关注下相关协议的发展,比如蓝牙车钥匙等目前已有标准将相关应用直接集成到系统层面,后期也可以避免使用APP。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值