/OHID

OpenAgreementHID

GNU Affero General Public License v3.0AGPL-3.0


  • Author : 冷月追风@merafour.blog.163.com
  • Version : V1.0.0
  • Date : 01/01/2024
  • Description : OpenAgreementHID.
  • Description : OpenAgreementHID 简称 OHID, 基于 HID 开发的一套通信协议,可扩展至其它应用场景。因依托于 HID 协议而设计,应用于其它场景时如有较大出入请自行扩展或修改。
  • Description : OHIDM_* : 主机(电脑上位机)发送给从机的数据包。
  • Description : OHIDS_* : 从机(键盘)发送给主机的数据包。

  • SAFE, ERASE, REBOOT, BOOT, WRITE, READ, 6个关键指令均需要解锁相应的安全等级,以确保设备的安全性
  • 解锁需要二次握手, 且每种解锁操作都对应一组签名验证:
  • 第一次握手:
    1. 解锁指令 SIGN, 发送 SN 号 (SYNC返回的SN号) 和签名, 设备验证通过将返回一串随机数 Datas 用于第二次握手;
  • 第二次握手:
    1. 根据键盘返回的随机数 Datas 进行签名, 需要解锁的操作不同,签名算法也不相同 ;
    1. 解锁指令 ERASE(eg.),发送 Datas和签名, 设备验证失败将返回错误码 ;
    1. 设备解锁安全操作成功, 安全操作窗口期为 120s, 超时后关闭安全窗口, 需重新解锁方可操作, 否则将返回错误码 SIGN_INVALID;