周 靖
汽车遥控门禁系统(RKE - remote keyless entry system)是一种应用于车辆的防盗技术。它可以用来远程遥控车门的上锁和解锁请求。该系统通过钥匙端发送一串特殊编码的数据,汽车防盗系统在接收到该串数据后,进行加解密的逻辑运算来判断该数据的有效性,之后响应上锁或解锁的请求。
汽车遥控门禁系统于 1983年首次应用于 American Motors的产品中,而1989年GM在W平台车系开始推广该系统。
钥匙ID/序列号:每一把遥控钥匙都有一个序列号。同一厂家的序列号都具有唯一性。
编码格式:无线信号的传输通常采用类似曼彻斯特编码的方式进行,这样,就可以不需要时钟同步信号,而分辨出诸如连续的“0”或“1”之类的数据。曼彻斯特编码的举例,如图1所示:
图1 曼彻斯特编码格式
加解密:通过安全算法,将一套数据在可读性和不可读性间相互转换的过程。
按键状态:指出什么按钮输入激活了发送。
编码字:当按钮激活时,被重复发送的数据。
滚码:用来使接收端判断是否和钥匙端同步的计数器。
RKE的基本原理是,当用户按下遥控钥匙的按键后,钥匙芯片中的软件根据选定的加密算法,将钥匙序列号、滚码及按键信息组合成一串无可读性的数据,加载在无线载波信号上,进行广播发送。而整车接收设备,则是周期性地监听无线信号。当收到有效频率的无线载波信号后,接收器将从载波上将有效数据调制出来,然后根据钥匙和整车约定的数据帧格式,判断是否是有效数据帧,当确认为有效数据帧后,接收设备将数据全部接收下来,并根据选用的加密算法,将无可读性的数据,还原成可识别的滚码和按键等信息。
在对有效的滚码和按键信息进行判断后,整车上的控制系统就会执行上锁或闭锁操作。大体工作流程,如图2所示:
图2 按键工作流程
对于普通的短按操作,钥匙端在确认按键有效后,会发送一至三遍不等的重复数据帧,让接收端进行确认。当滚码值处于允许窗口内时,该编码字被确认为有效,同时汽车响应钥匙按键。
对于长按操作,Microchip采用重复发送编码字的策略,只要按键触发有效,则不断重复地发送同一帧编码字,直到按键释放或者按键屏蔽保护机制启动。
在重复发送的过程中,编码字中包含一位重复bit位,当该位置“1”则表明当前编码字属于重复内容,接收端可以认为现在用户正在进行长按操作。当对编码字数据包进行计数达到溢出阈值后,接收端可以根据单位数据包的长度和接收到的数据包的个数,计算出按键的按下时间,之后接收端根据设计规范让汽车作相应的动作,诸如执行开后备箱、寻车等功能。
由于遥控钥匙和整车之间的通讯属于无线通信,在嘈杂的环境中,存在着众多的无线干扰。
无线干扰的产生是多种多样的,原有的专用无线电系统占用现有频率资源、不同运营商网络配置不当、发信机自身设置问题、小区重叠、环境、电磁兼容(EMC)等,都是无线通信网络射频干扰产生的原因。工作于不同频率的系统间的共存干扰。有源设备在发射有用信号的同时,由于器件本身的原因和滤波器带外抑制的限制,在它的工作频带外还会产生杂散、谐波、互调等无用信号,这些信号落到其他无线系统的工作频带内,就会对其形成干扰。
由于接收端对于长按操作的判断是根据接收到的数据帧的个数来确定的,而数据帧又都是重复的。那么,在每一次长按的操作中,接收端都会首先确认一次短按操作。这样就可能会让部分用户认为汽车在设计上不严谨。
钥匙和汽车间的无线通讯,由于是在公共频段进行,所以,所有的数据都可以被任何人截获。某些别有用心的人就会利用特殊设备监听用户发送的无线信号,然后对数据帧进行破解,从而危害用户利益。
对于RKE这类安全性很高的系统,除了有加密算法对传输的数据进行保护之外,数据在公共频段存在的时间,越短就意味着越安全。
由于钥匙长按操作的过程是一个重复帧的发送过程。过长的发送时间会使整个数据包受到干扰和被监听到的几率大大增加。同时将接收端收到错误信息的概率也一并放大。
当用户在长按钥匙按键时,由于无线干扰的原因,导致数据帧在重复发送过程中出现错误数据,致使接收端在计算数据包个数的过程中,遗漏一些甚至全部的数据包,从而无法正确识别出长按信号。
最终,汽车将只执行一次短按的操作,同时忽略之后的长按功能,从而令用户在使用上感到不便,可能会引起部分用户的抱怨。
为避免无线干扰导致遥控钥匙按键失效的现象产生,就要在常规的按键策略上进行创新开发。
根据整个RKE系统的工作方式可知,遥控钥匙和汽车接收端之间没有交互的通讯方式,遥控钥匙是单方面的发送,汽车接收端是完全被动地接收。
所以,在设计上,可以设法减少双方在传输数据上耗费的时间。即首先在钥匙端,对按键的长短时间判断,先行处理,当按键弹起后,计算按键触发的时间,通过查表来确认,该时间是否属于功能定义的有效时间。当确认时间有效后,将时间参数写入数据帧中,然后通过RF发送出去。
而接收端则只需在收到一帧数据包后,即可确认并执行相应操作。
具体方案流程如下:
1) 在钥匙端直接对按键输入开关信号进行计时。
2) 当钥匙按键弹起后即可以计算完毕按键被触发的时间。
3) 在发送的数据帧报文里使用特定的 bit位,用来指示按键时间。
4) 接收端通过对报文的解析,直接判断遥控钥匙的按键方式。
无论按键时间多长,在整个通讯过程中都只有一帧有效数据存在,这样就会大大减少数据在传输过程中受到干扰的几率。因为常规策略在钥匙按键被按下后就开始发送数据,直到按键松开才停止发送数据,在这整个发送过程中,都会受到无线干扰和监听的危险。
而更新的策略则如前所述,所有的通讯一次完成,遥控钥匙每次仅在按键确认后,才开始发送报文,相比即按即发的策略,有效降低了电池的功耗。而接收端也无需长时间处于接收和解码状态,有效地释放了接收端MCU的资源,同时避免了在长时间接收过程中出现的无线传输干扰等危害因素。
随着科技的日新月异,防盗与破解之间的较量也会越来越激烈。我们除了从技术上对产品进行加固设计外,还要从整个系统的工作流程上下功夫。在RKE系统中,钥匙端的软件设计都是固定不变的,通常都是由接收端来进行软件变更并适应钥匙端。
尝试用逆向思维,从钥匙端的变革开始,从源头上尽量避免功能的失效。将按键的触发方式放在钥匙端进行处理,每次钥匙端和接收端的通讯只有一帧数据,可以有效地降低通讯过程中受干扰的几率,大大提升RKE系统的安全性。
[1]汽车安全新应用:无线遥控开门[Z]. 2011.07
[2]基于扩频通信技术的数据无线传输,范玲俐[D]. 西南交通大学2010
[3]陈卓、余重秀、徐大雄,无线通信系统频率干扰原理及其解决之道[J].数据通信,2007.11
[4]胡文昌,浅谈关于移动通信发展趋势[D]. 2009
[5]Microchip Technology Inc. HCS300 datasheet[Z].2006.10
[6]Microchip Technology Inc. An Introduction to KEELOQ Code Hopping Technical Brief[Z]. 8/26/1997