机器人远程控制先防重放,再谈降级
远程链路能加密,只能证明旁观者难以读懂数据,不能证明当前命令是最新的。机器人远程控制要先阻止旧指令被重放,再确保网络断开时执行端进入适合当前风险的状态。
重放攻击利用的是合法报文的再次出现。若协议只有消息认证码,攻击者虽然不能修改速度或目标位姿,却可能记录一次已通过认证的启动、开门或移动命令,在稍后重新发送。接收端若不检查新鲜度,仍会把它当成合法请求。远控协议应把会话标识、单调计数器或随机数纳入认证范围,让同一报文在不同会话或不同序号位置上失效。认证范围还要包含目标设备与命令类型,避免一台设备的合法报文被转发给另一台同型号设备。
计数器设计要处理掉电和乱序。只在内存中递增,设备重启后回到旧值,可能重新接受历史报文;每条命令都写非易失存储,又会带来写入寿命和时延。常见折中是按区间保留高位计数,运行时在内存推进低位,并在安全启动时恢复到未使用区间。对允许少量乱序的无线链路,可设置有限接收窗口,但窗口一旦过大,攻击者便获得更长的重放机会。
依赖绝对时间戳也有边界。时钟同步受网络延迟、晶振漂移和授时源故障影响,时间窗口太窄会误拒合法命令,太宽则降低防护强度。密钥轮换与设备身份还要绑定授权角色,维护终端不应自动拥有生产运动权限。测试时应包含抓包重发、设备重启、时钟跳变和会话切换,确认日志能区分认证失败、序号过旧与权限不足,而不是统一报通信错误。
断链后的本地状态不能统一定义为保持最后命令。对低速移动平台,短时速度衰减可能保持轨迹连续;对悬吊负载的机械臂,立刻卸力会让工件坠落;对正在接触人体或设备的末端,继续保持力矩又可能扩大挤压。机器人必须按任务类型预先定义失联状态,并把执行逻辑放在靠近驱动的本地控制器中,不能依赖已经失效的远程端发送停机包。
命令租约可以限制远程权限的有效时间。执行端只有持续收到带新鲜度证明的续租消息才保持远程模式,超时后按本地轨迹减速、保持制动或转入受限手动状态。租约时间要长于正常抖动上界,又短于危险动作可容忍的失控时间;网络质量下降时若无限自动续长,安全边界就会被吞掉。恢复连接后也不能直接执行积压队列,应清空旧目标并重新确认当前位置、负载与环境。
双链路能提高可用性,但不能掩盖共同故障。蜂窝和无线局域网若共用同一网关进程、供电或远程身份服务,一处异常仍可能让两路同时失效;两路命令并行到达还要有确定仲裁,避免控制源来回切换。故障注入应覆盖高延迟、短暂分区、重复包、乱序包和认证服务不可用,逐项检查本地运动、制动距离与恢复流程。日志必须保留远端身份、会话号、最后有效序号和本地接管原因,事故回放才能证明设备执行的是哪条授权路径。日志本身还需防篡改并使用单调时间排序。安全目标是可预测降级,不是让连接图标尽快变绿。
所以,远控安全必须同时回答命令是否新鲜、失联后谁接管。先以会话和序号封住重放,再把任务相关的降级固化到本地,机器人才能在网络不可信时保持行为可控。





