摘要
射频技术当前发展速度迅猛,在目前的无线通信中占据主导地位。作为射频技术的主要分支之一,点对点射频通讯技术也有着十分广泛的应用,在智能机器人的通讯领域具有重要的地位。但是当前所使用的点对点射频通讯机制大多有着安全性方面的问题,无法保证数据来源的可靠性,通讯机制过于简单,在各项安全测试中都表现的十分脆弱,对于高安全性要求的智能机器人来说无法使用。
对各种针对射频通讯的攻击方式进行相应的研究之后,针对这一现状,本文提出了一种基于SHA-1安全杂凑算法的简单、可靠、易于移植的点对点射频安全通讯机制,保障通讯过程中数据来源的正确性和数据的秘密性。
安全通讯机制以序列码作为核心思想,在传输过程中通过序列码的不断变化来抵抗目前最普遍的重放攻击;利用SHA-1安全杂凑算法报文摘要巨大的取值空间来防范针对序列码的字典攻击;通过SHA-1安全杂凑算法的单向性和数据拼接混淆规则抵抗前向预测攻击对于系统的安全威胁;在SHA-1算法初始报文的产生过程中引入待发送数据,从而建立了数据和序列码之间的联系,使接收机可以从序列码中获知数据是否遭受到篡改,对中间人攻击进行了针对性的预防。
点对点射频安全通讯机制设计完成之后,在当前已有系统上进行了安全通讯机制的移植,同时对系统进行了相应的安全性测试,验证安全通讯机制的效果,证明安全通讯机制可以提高系统的安全性,保障数据来源的可靠性。最后对通讯机制在智能机器人领域的使用进行了展望。
关键字:智能机器人,序列码,点对点安全通讯,SHA-1安全杂凑算法,射频通讯技术
引言
目前,智能机器人的研究非常火热。智能机器人的相关领域中,射频技术是传递信息的主要手段之一,也是其中非常重要的一环。射频技术又被成为射电技术,起源于19世纪下半叶的无线电技术。射频技术主要通过将数字信号进行转换调制后,生成相应携带有信息的电磁波进行发射,达到信息传递的目的[1]。
如今,射频技术已经成为信息产业的重要支柱,在射频技术的基础之上发展出了包括GSM系统、CDMA系统、4G系统、WIFI技术、射频识别技术(RFID)、NFC技术等一系列新型的无线通信技术。这些技术都被广泛应用到各种信息化设备中,成为信息产业发展的主要推动力,同时在智能机器人的无线通讯中占据主导作用。
射频通讯和传统的有线通讯手段不同,其具有无线传输的广播特性,在传输范围内所有节点均能收到信号源发送的信号,信号本身不会对设备进行区别,所以射频通讯存在信息易被窃听、被篡改的安全隐患[2]。射频信号的广播特性要求,使用射频信号进行数据传递的通讯机制,必须采取相应的措施对数据进行保护,数据来源进行验证。这一点在很多成熟的技术体系都有所体现。例如WIFI、CDMA、蓝牙等技术都已经采取了相应的安全措施防止通信数据被窃听、截获以及篡改,保障射频通信的安全性。
但是进行点对点射频通信的设备不具备应用上述射频通信技术的物理基础,导致当前进行点对点射频通信的设备的安全措施十分薄弱,普遍被很多设备采用的点对点射频通讯机制仅考虑了通信的速率,大多没有考虑到通讯过程对数据的保护,缺乏安全性和秘密性的保障措施。所以将射频无线通讯设备引入到智能机器人的对点对通信领域时,由于安全性的限制,现有的点对点射频通讯机制都无法适用。
因此本文提出了一种可应用在智能机器人上的点对点射频通讯机制,其本身具有较高的安全性,可以提高点对点射频通信的安全级别,保障智能机器人使用射频通讯设备进行点对点通讯过程中数据的安全性。
当前现状
当前射频技术发展很快,但是采用点对点射频通讯的设备大多具有能量、计算能力和使用环境等限制,所以现有的很多安全协议机制例如WIFI技术、Zigbee技术等都无法应用到点对点的射频通讯中[3]。采用点对点射频通信技术的设备很多都没有考虑到安全因素,存在安全性差,射频信息容易被屏蔽、窃听、篡改等弱点,攻击者经常这些利用这些点对点射频通信的弱点进行相应的破坏。而对于一些已经采用了一定安全通讯机制来保障通讯过程中数据安全的设备,也发现其所采用的安全机制本身存在漏洞,不够健全。攻击者利用这些漏洞就可以达到伪造信息,实施破坏,非法牟取利益的目的。
2.1 射频遥控器现状
由于射频技术的发展,传统的红外遥控器正在被使用射频技术的遥控器取代。但是红外技术和射频技术有所不同,红外技术需要在视距范围内才能产生作用[4],但是射频技术却没有这个限制。这是射频技术相较于红外技术的优点,但是这一特点也会大大降低射频技术的安全性。红外技术由于传输距离和视距的限制,所以接收机很少遭受到伪造信号的攻击。但是采用射频技术的接收机在开启过程中会接收所有的可用的射频信息,而不会去区分来源;同时当射频信息出现干扰时,接收机也无法通过正确解析获取到相应的数据。所以使用射频技术的遥控器需要一定的机制来确保信息来源的正确性,也要提供一定的机制来使发送机确认消息正确到达接收机。
根据调查研究发现,当前广泛使用的射频无线遥控器很多都没有这样的安全性保证,通讯机制极其简陋。大量的射频通讯机制在其信息通信的过程中,发送机只是简单地对一个信号进行发送,而接收机也仅仅是在获取到相应的信号进行区分后执行设定好的操作。这一系列的通讯过程既没有对消息的来源进行验证,也没有对信息的秘密性进行判断,根本无法保证信息通信的安全性。如果对这样的射频通讯机制进行攻击,攻击者只需要一台简单的射频信号录制设备在被攻击者使用射频遥控器的时候进行射频信号的录制,然后再使用一台射频信号的发送设备对录制到的信号进行重放就可以完成射频信号的伪造,达到控制目标设备的目的。而在此基础之上,攻击者如果再搭配上一根高增益的天线,那么就可以在很远的范围进行以上的操作,从而远程控制目标设备而不被发现。
2.2 无线门铃现状
与传统的门铃不同,无线门铃不需要进行线路的布置,而是通过射频信号来传递门铃信号,使室内门铃响起,具有安装简单、移动性强、节能低耗的优点,所以受到了很大的欢迎。但是很多无线门铃都没有考虑到设备的安全性。在对市场售卖的无线门铃产品进行实验之后发现,很多现有的无线门铃为了保证射频信号的传输距离、降低室外门铃按钮的功耗以及解决按钮和响铃之间射频信号的匹配问题,采用了固定码解码放大器芯片对接收到的射频无线信号进行解码和正确性验证。固定码解码放大器芯片的使用说明每一次按下室外门铃按钮发送的信号都是相同的。
在进一步的研究中发现射频信号从室外门铃按钮传输到室内响铃的过程中没有任何机制对信号来源的正确性进行验证,同时室外门铃按钮也不保证信号是否能够安全到达室内响铃。当室内响铃接收到射频信号之后,只是简单地进行了信号与设定值之间的匹配。如果信号匹配成功,室内响铃就会执行响铃操作,匹配失败室内响铃则不执行任何操作。在这样的通信机制中,攻击者只要通过射频信号录制设备就能获取到门外门铃按钮的射频信号。在使用软件对信号进一步修正后,就可以利用射频信号发送设备直接进行门铃信号的发送,从而使室内的响铃装置响起,达到攻击的目的。这样的射频通讯机制在实际应用中毫无安全性可言,但是却在目前的无线门铃中被广泛应用。如果有攻击者针对无线门铃进行这样的攻击,将会对使用者的生活产生极大的干扰。
2.3 汽车钥匙现状
当前主流的汽车厂商都在自己的汽车钥匙中使用了射频技术,无线射频钥匙基本上已经成功取代传统的机械钥匙,成为汽车钥匙的主流。作为信息安全通讯高要求的使用场合,汽车厂商在汽车和汽车钥匙之间的无线射频通讯过程中采用了RKE(remote keyless entry,远程无钥匙进入系统)[5]和PKE (passive keyless entry,被动无钥匙进入系统)[6]。PKE/RKE射频通讯系统都工作在ISM自由频段(125kHz, 315MHz,434MHz)[7],这两种系统都有各自的信息安全通讯机制,并且工作方式都有所不同,但是这两者都采用了滚动码机制对射频通信进行安全防护。
滚动码技术(keeloq)利用一种负载的非线性加密算法来实现编码加密[8]。滚动码本身由固定码和跳码组成,其中固定码是初步认证手段,而跳码则由作为发送机的钥匙根据预先存储在加密芯片中的编码密码来产生,在跳码中包含了键值、计算器溢出位、识别码和同步计数器等信息[9]。在每一次射频消息的通讯过程中,滚动码都会重新产生然后作为一个变量添加到所要发送的消息中,这样每一次加密之后的消息在传输中都会变得不同。而接收方可以从之前的通信状况和预置在汽车中的固定码中预测滚动码的下一个值,这样就可以通过比较钥匙发送的滚动码和汽车预测的滚动码的匹配程序来验证报文的有效性[10].
在实际应用中,汽车钥匙向汽车基站发送消息时会携带一个滚动码,汽车在执行命令之前会首先验证滚动码正确性,进而判断射频信息的正确性。但是滚动码机制存在一个问题,在设计之初滚动码被设为在信息传输次数达到216次时,就可能出现重复的情况[11]。显然对于当前的技术而言,攻破使用216次就重复的滚动码安全机制并不是难以完成的。因此当某个攻击者获取到了多次有效的钥匙和汽车之间的信息交换情况,那么整个滚动码的安全机制就可以通过穷举的方式找到当前对应的滚动码,然后攻击者就可以通过找到的滚动码进行相应的消息变换之后,将消息发送给汽车使其完成指定的操作,达到攻击、破坏、窃取财物的目的,对使用者造成经济损失。
攻击方式
由于射频信号采用无线传输的通信方式,所以和传统的有线通信方式相比,针对射频通信设备的攻击方式更加多样化,但是总的归结起来有以下几种主要的攻击方式:
3.1 重放攻击
重放攻击是针对无线通信的最主要的攻击方式之一,其原理是在用户正常使用设备的时候,攻击者通过射频信号录制设备将用户发送机所发送的正常信号录制下来,然后通过射频信号的发送设备将录制下来的信号发送,使用户的接收机接收信号,从而执行相应的指令达到攻击的目的。这种攻击方式实施简单、成本低,只需要射频信号的录制和发送设备就可以完成。而且攻击者不需要知道数据的准确含义,仅仅需要了解通信时数据包的作用即可。由于重放攻击的这种性质,单单使用加密算法无法防护重放攻击,因为加密后的数据依然可以使接收机正确执行。由于重放攻击具有如上特性,所以重放攻击是目前攻击者采用的最普遍攻击方式。
3.2 阻塞攻击
阻塞攻击是指当用户发送正确的指令时,攻击者通过射频信号发送设备在接收机的通带范围内(接收机监听有效信号的区域)不断向接收机发送无效的垃圾数据,使用户的有效信息无法被接收机获取,从而阻止接收机执行来自用户的正确指令。如果接收机和发送机之间缺少信息反馈,那么在这种攻击方式下,用户会误以为接收机已经成功执行指令,但是实际上接收机并没有收到指令开始执行,有时候这样做会导致很严重的安全问题。
在2015年的黑客大会上,Samy Kamkar就通过阻塞攻击的方法干扰汽车钥匙和汽车之间的通信信道,使汽车钥匙的正确信号在经过干扰后产生畸变。当汽车接收到信号时,会发现信号错误,从而不会对当前滚动码进行改变。同时使用一台射频信号接收设备录制汽车钥匙的正确信号,关闭阻塞信号的发送设备,然后发送完整录制的汽车钥匙射频信号,将阻塞攻击和重放攻击结合起来,成功地完成了对车辆车门和车库自动门的攻击[12]。敲响了汽车和车库安全的警钟。
3.3 中继攻击
中继攻击又被称为双贼中继攻击,这种攻击方式是通过其他无线通讯设备、手机网络或者其他延长信息传递的距离的手段实现。在这种攻击方式中,攻击者首先需要在发送机周围设置射频信号的录制设备完成射频信号的录制,再利用一个可支持远距离通信的设备将录制下来的信号发送给另外一个远距离设备,该设备会将信号还原为录制设备录制的射频信号,然后通过射频信号发送的方式将录制的信号发送给接收机使其执行相应的指令。
在这种攻击方式中,攻击者通过额外的传输设备延长了发送机和接收机之间的距离,从而使用户在不知不觉的情况下,达到远程控制接收机的目的。但是这种攻击方式十分耗时耗力,同时攻击方式也很复杂,技术门槛高,成本高且攻击者需要接触到用户的发送机,攻击实施的基础条件十分苛刻。不过和重放攻击类似,攻击者不需要了解传输中数据包的准确含义,仅仅只需要对信号进行录制发送即可,除此之外攻击范围也不受限制。
3.4 前向预测攻击
与前面的攻击方式不同,前向预测攻击需要了解射频通信过程中数据的具体含义,同时对下一次通信的内容进行预测,然后伪造数据去骗取接收机的信任达到攻击的目的[13]。这种攻击方式主要针对的是序列码机制,当用户的射频通信中使用了序列码之后,重放攻击会因为序列码不合法而无效化。但是在前向预测攻击中,攻击者通过分析序列码的结构和产生方式,可以分析出下一个序列码的数值,此时攻击者只需要将这个序列码和载荷数据按照格式进行拼接发送,就可以达到攻击的目的。序列码的产生规则如果过于脆弱,那么极其容易遭受到前向预测攻击。
3.5 字典攻击
与前向预测攻击相同,字典攻击也是针对序列码机制而产生的一种攻击方式。并且字典攻击又和重放攻击相类似,需要录制发送机和接收机之间的射频通信数据。不同的是,字典攻击需要录制大量的数据,然后将这些数据存储在一个字典中。当获取到足够的数据时,攻击者会将这些数据通过射频信号发送设备不断地发送给接收机,然后根据接收机的状态进行判断,如果接收机对字典中的某一个数据进行了响应,那么就可以找到当前有效的序列码,从而进行相应的攻击。
因为攻击者始终可以通过无线射频信号的录制和发送找到当前的序列码,所以对于序列码个数有限的安全机制来说字典攻击的危害极大。但是字典攻击的缺陷也在于此,攻击者在实施攻击的时候需要不断地录制射频信号并且存储这些信号,最后还要不断发送录制好的射频信号。字典攻击的攻击实施时间很长、成本很高。,但是字典攻击的成功概率很大,所以攻击者经常将其作为最后的攻击手段。
3.6 中间人攻击
中间人攻击是所有攻击方式中最难以防范的一种,同时也是实施成本和实施技术要求最高的一种,需要综合运用大量的攻击手段。在发送机发送射频信息的时候,攻击者会使用阻塞攻击使用户的接收机无法收到正确的消息,攻击者同时会去截获射频通信的消息,分析消息的中各项数据的含义和作用,然后再篡改消息中的内容,关闭阻塞攻击后再将修改后的消息发送给接收机执行。
中间人攻击的实施相比其他攻击方式难度更大,但是中间人攻击对于射频信息的传递来说也更难防范。对于明文传递消息的设备,中间人攻击可以轻易地篡改消息中的数据;而对于密文传递消息的设备,如果加密手段被破解,那么安全机制在中间人攻击面前也形同虚设。目前,中间人攻击已经逐渐成为针对射频通信甚至所有通信方式的主要攻击手段。
设计需求
对当前现状和所面对的攻击方式的研究中可以发现,重放攻击和阻塞攻击是点对点射频通讯设备所面临的主要攻击方式。这两种攻击方式都非常简单同时易于实施,而且攻击成本和技术要求低,仅仅依靠一台价格低廉的无线信号录制和发送设备就可以完成,然而攻击者所造成的危害却不能低估。而目前所普遍采用的点对点发送接收机制对于阻塞攻击和重放攻击而言都十分脆弱,所以直接采用这样的通信机制对于智能机器人来说是十分危险的,容易导致智能机器人被攻击者控制。
针对重放攻击最有效的措施就是在所发送的消息中附加上序列码,这样可以使每一次发送的消息都有所不同,接收机首先会去验证所接收消息中序列码的正确性,而不是简单地直接执行所接收消息中的指令,这样就可以有效地防范重放攻击。但采用序列码机制需要确保序列码在发射机和接收机之间是相互可验证的,所以需要设计一定序列码产生规则确保接收机和发送机的序列码能够同时正常递变,防止接收机不能正常地接收消息。
仅仅采用序列码的安全机制同样也是不够安全的。简单的序列码产生方式容易遭受前向预测攻击,而有限的序列码数量对于字典攻击而言就十分脆弱。为了抵御这两种攻击手段,首先需要保证序列码的产生规则不容易被破解,同时序列码在发送机和接收机之间产生的大量通讯消息中,能够做到不被重复。这样的设计理念就需要序列码的数量足够大,但同时还需要确保产生规则不会发生混乱,也不能过于简单,这样产生出的序列码才拥有足够大的强度同时防范重放攻击、前向预测攻击和字典攻击。
对于一个可靠的点对点安全通信机制而言,针对中间人攻击需要采取相应的安全措施。中间人攻击主要通过截获发送机和接收机之间正常通信的数据包,并且对数据包中的内容进行了篡改,然后发送给接收机。分析攻击方式后提出防范中间人攻击的基本思想:首先需要对数据包进行一定的加密,防止攻击者可以直接获取到通信的相关内容。但仅仅加密是不够的,如果加密措施被破解,那么攻击者依然可以发动中间人攻击,所以还需要其他措施来对数据包中的内容进行验证。在射频通信的过程中,为了防范重放攻击已经使用了序列码机制,基于减少数据传输量的原则以及安全性的考虑,可以将序列码和发送数据结合起来,使得接收机可以通过序列码来验证数据内容是否遭受到篡改。这样的设计就可以有效地中间人攻击进行防范,同时节约接收机和发送机传输的能量和计算资源。
对于阻塞攻击而言,可以在接收机和发送机之间的通讯过程中进行防范。当接收机正确接收到来自发送机的数据时,会主动向发送机返回一个应答数据包,通知发送机数据已经准确地到达接收机并且被安全地的执行。这样的设计就可以防止阻塞攻击干扰系统运行,同时防止发送机认为指令已经执行,而接收机却没有正常执行的情况出现。
另外在发送机和接收机的通讯过程中,还应该考虑到射频无线通讯设备本身所拥有资源的限制,包括能量、计算能力及存储空间等。同时还应该考虑到在现有设备中进行升级改造的成本。这些都要求我们所设计出的点对点安全通信机制应该是高效的、简单的同时又是易于植入的。
要点设计
5.1 层次结构设计
点对点无线安全通讯体制基于上述的设计要求需要产生大量的不重复的序列码,所以在序列码的产生过程中,引入了SHA-1安全杂凑算法对序列码进行处理,这样就可以防止短时间之内出现序列码重复的状况。同时为了能够更好地分离处理数据和增强的安全机制的可移植性,安全机制采用了如图1层次结构图所示的层次结构:
应用层:上层的应用程序,这一层是用户编写的程序,通过系统资源的调度和各种数据的处理执行用户的相关命令。应用层主要处理通过安全层接收数据,或者将需要发送的数据下传给安全层。
安全层:负责整个点对点射频安全通讯机制的运行,为应用层发送和接收数据提供相应的接口,也可调用数据层的接口函数来进行数据的发送和接收。在这一层中对数据进行了相应的封装和加密,使其变得更加安全,防范来自攻击者的各项攻击行为。在上层应用进行数据传输的时候,安全层是透明的。
数据层:调用相关硬件直接进行实际数据的接收和发送。在接收到数据之后,将所有数据向安全层递交,或者将安全层下传的数据直接进行发送。在数据传输的过程中,不对数据进行任何处理。
图1 层次结构图
5.2 安全层机制设计
安全层在点对点射频安全通讯机制中处于核心地位,数据的传输都是通过安全层进行处理,安全层提供了对数据的安全保障,为所有进行传输的数据提供安全性的支持,并且采用消息确认回复机制来确保数据能够安全从发送机到达接收机。为了防范重放攻击,安全层中采用了序列码作为防御措施。但是在安全层中产生的序列码方法和传统序列码的产生规则不同,安全层使用了的SHA-1安全杂凑算法来产生序列码,保证使用的序列码在发送机和接收机之中都是正常递变,但同时又是无穷的,从而提高安全通讯机制中安全层对数据的保护能力。而且安全层的设计可以将应用程序和底层的数据发送接收接口分离开,提高安全通讯机制的可移植性,同时降低使用这套安全通讯机制所需的成本。
在安全通讯机制中,发送机的应用层首先将待发送的数据下传给安全层;安全层收到数据之后,根据序列码产生规则生成新的序列码;然后安全层会将新产生的序列码和数据进行拼接处理,形成新的数据;安全层再对新产生的数据进行加密,最后下传给发送机数据层进行数据的发送;当数据发送成功后,发送机安全层会设置一个等待回复的时间,如果在这个时间之内都没有收到来自接收机安全层的回复数据,那么就说明数据发送失败,发送机安全层会向应用层报告这个错误,然后停止等待,回到初始状态;如果在等待时间之内收到接收机安全层的回复,那么说明数据已经成功到达,发送机安全层会向应用层报告数据发送成功,然后回到初始状态。接收机的安全通讯机制运行顺序如图2安全层发送机制所示。
接收机在开启之后,会一直处于数据的等待状态,直到接收机数据层收到来自发送机的数据之后,接收机的安全层启动,数据层将接收到的原始接收数据递交给安全层;接收机的安全层首先会对原始数据数据进行解密,获取到加密前的数据;然后安全层再根据分离规则分离出数据中的序列码和应用层数据;之后,接收机的安全层会判断分离出的序列码的合法性,如果序列码非法,则直接丢弃数据,然后接收机回到数据等待状态;如果序列码有效,那么接收机安全层会将应用层数据递交给应用层,由应用层对数据进行解析,从而执行相关的命令操作;同时接收机确认序列码有效后,接收机的安全层就会调用数据层回复发送机一个消息,表示自己成功接收到数据。接收机的安全通讯机制图运行顺序如图3安全层接收机制图所示。
图2 安全层发送机制图
图3 安全层接收机制图
5.3 序列码产生规则设计
在点对点安全通讯机制中,序列码在安全层中起到了最为关键的作用,所以为了使序列码足够安全,在序列码的产生规则中引入了SHA-1安全杂凑算法来对新序列码进行处理。保证序列码在发送机和接收机的通讯过程中不会重复,从而抵御字典攻击的穷举爆破。SHA-1算法相较于其他安全杂凑算法来说,其运算复杂度较低,同时又具有很好的安全性[14],并且国内外有许多关于降低SHA-1安全杂凑算法的运算复杂度的研究,在这些研究中都提出相应的方法来提高SHA-1算法的运算速率,降低SHA-1算法的资源消耗[15]。而且当前微电子技术和大规模集成电路技术发展迅速,各种芯片的运算能力都有了很大的提高,进一步为SHA-1安全杂凑算法在安全通讯机制中的使用奠定了坚实的基础。
首先,安全通讯机制在进行工作之前,接收机和发送机的安全层都会去寻找是否有序列码,如果有序列码,那就将其作为当前序列码;如果没有就使用设定好的初始值,依靠SHA-1安全杂凑算法生成一个40bit的序列码,并将其作为当前序列码。
对于发送机而言,在通讯过程中,安全层会将应用层下传的数据和当前序列码按照拼接混淆规则拼接在一起形成一个新的数据;然后安全层会对数据进行一系列位操作和加盐操作作为对数据的混淆;最后将混淆后的结果作为SHA-1安全杂凑算法初始报文获取160位报文摘要,最后进行算法主循环运算;将运算出的40bit的数据作为发送序列码,并且将发送序列码和应用层下传的数据按照拼接规则拼接在一起之后,进行相应的加密;最后把加密数据下传给数据层进行发送,确定数据发送成功后,将发送验证码作为新的当前序列码,然后等待来自应用层的数据,重复执行上述操作;如果数据发送失败,则不改变当前序列码,丢弃发送序列码。
对于接收机而言,在开启后会一直等待来自发送机的数据;再获取到发送机数据之后,会将接收数据中的应用层数据和自己的当前序列码进行拼接;然后通过SHA-1安全杂凑算法产生新的序列码;将这个序列码和接收到的序列码相互比对,如果比对成功,则将新的序列码作为当前序列码,同时确认消息接收成功;如果比对失败,就丢弃接收到的数据,丢弃新的序列码,不改变当前序列码。
新序列码的产生在发送机和接收机之间都遵循相同的产生规则,同时如果序列码比对不上不会改变当前序列码,这样可以保证序列码在接收机和发送机之间都是有规律地进行递变,防止二者的序列码出现不同的状况,从而影响数据的传输效率。序列码的产生顺序如图4序列码产生规则图所示。
图4 序列码产生规则图
关键安全措施分析
序列码机制
针对重放攻击最有效的安全措施就是序列码机制。在序列码的作用下,发送机每一次发送的数据都会添加上一个序列码,使每一次的数据都会有所不同。接收机在接收到消息时,首先会取出数据中的序列码进行序列码有效性的判断。当序列码正确时,接收机才会递交数据至应用层;当序列码错误的时候,接收机会直接丢弃数据,而不会去执行数据中携带的相应指令。所以当攻击者采用录制数据然后发送数据的方式对系统进行重放攻击时,消息中的序列码是不会改变的,所以接收机会由于序列码错误,而直接丢弃数据,从而杜绝重放攻击对于系统的影响。
回复机制
阻塞攻击是目前最简单的攻击方式,而且在很多场合下,射频信号容易产生干扰导致出现通讯失败的情况,所以需要有回复机制来保证发送机的消息能够被接收机正确地接收到。所以在点对点安全通讯机制中,当接收机正确接收到来自发送机的消息之后,接收机会回复发送机一个消息,通知发送机其所发送的数据已经被正确接收。接收机的回复机制有利于发送机序列码的正确递变,当发送机接收到来自接收机的回复时,就可以确认当前的序列码是正确的,防止出现一方的序列码不断变化而另外一方却始终保持不变的现象,导致消息在发送机和接收机之间不能正常传递。而且由于回复机制的存在,发送机可以获知消息是否被接收机正确接收,从而防范阻塞攻击对系统的影响。
数据拼接混淆规则
在序列码的产生过程中,SHA-1安全杂凑算法的初始报文数据是由上一次序列码和应用层数据按照数据拼接混淆规则拼接而成。在拼接混淆规则中,采用点对点射频安全通讯机制的发送机和其所匹配的接收机之间的拼接混淆规则是相同的;不匹配的发送机和接收机各自都有自己的拼接混淆规则。拼接混淆规则中主要包括移位、加盐、拼接方式等。不同的拼接混淆规则都是相互独立的,并且是不重复的,这样可以保证每一对匹配的发送机和接收机的序列码都独立于其他设备,防止攻击者再破解一套设备后,危害到其他设备。在产生初始报文数据时,上一次序列码会根据拼接混淆规则的设定插入到应用层数据中,然后进行移位和加盐操作。
数据拼接混淆规则在点对点射频安全通讯机制的设计中具有非常重要的地位,为序列码提供了保护措施。拼接混淆规则需要上一次序列码和应用层数据生成初始报文数据。用户的应用层数据会由于用户输入的不同具有一定的随机性,而且序列码在通讯机制中进行了循环调用,每一次调用时都会有所变换,所以每一次生成的初始报文数据都是不相同的。这样就可以保证SHA-1安全杂凑算法输出的160位报文摘要都会不断变化,使序列码不会出现重复的情况,抵御字典攻击对安全通讯机制的影响。
数据拼接混淆规则的使用同样可以防范中间人攻击和前向预测攻击。在数据传输的过程中,很多安全措施对于数据秘密性的保护都是基于加密算法,但是过于复杂的加密算法在使用点对点安全通讯机制的设备中往往会因为过于复杂而无法使用。在本安全通讯机制中虽然采用了加密算法加密传输的数据,但是数据传输的安全性不单单依靠加密算法的安全性,还有数据拼接混淆规则对应用层数据进行保护。当加密算法被破解之后,攻击者可以获取到用户的应用层数据,但是对数据进行修改是无效的。因为在新序列码的产生过程中,引入了应用层数据,序列码中携带了应用层数据的信息。而且每一次用户应用层数据的改变,都会导致之后一系列序列码的改变,使序列码变得不可预测。这样,序列码就可以用来防范中间人攻击和前向预测攻击,而不再仅仅作为防范重放攻击的一种手段。在这样的安全设计中,扩大了序列码在安全应用中的作用,同时没有增加需要传输的数据量。
SHA-1安全杂凑算法
SHA-1安全杂凑算法是点对点射频安全通信机制序列码的产生规则的核。安全层通过SHA-1算法保证序列码的不可重复性,同时维持安全通讯机制正常运行。SHA-1安全杂凑算法主要负责在接收初始报文数据之后,对初始报文以512位为单位进行分组,然后通过SHA-1算法的循环运算获取到160位的报文摘要数据作为新的序列码。由于序列码产生规则中引入了SHA-1安全杂凑算法,所以序列码的取值空间为2的160次方[16],而产生初始报文的规则确保了初始报文数据在安全通讯机制运行的过程中不会出现重复。
安全通讯机制在安全层使用SHA-1安全杂凑算法以循环的方式产生了近乎无限的新序列码,同时新的序列码将在其2的160次方的取值空间内不断进行变换。当攻击者采用字典攻击对点对点安全通信机制进行攻击时,序列码2的160次方的取值空间和序列码循环变化机制足以保证攻击者依靠抓取击者依靠抓取通信过程消息建立的数据字典中不会出现序列码相同的情况,导致攻击者在发送所抓取到的消息时,接收机不会采取任何动作进行响应,成功抵御字典攻击的影响。
当SHA-1安全杂凑算法对初始报文数据进行处理之后,会生成160位新序列码将其和应用层数据组合,然后加密之后进行传输。当攻击者截获完整的通讯数据并且破解了传输加密算法时,攻击者就可以获取到序列码和应用层数据。由于序列码中携带了应用层数据的信息,攻击者仅仅修改应用层数据是无效的。所以攻击者会尝试伪造序列码进行通信,但是在点对点射频安全通讯机制中序列码通过SHA-1安全杂凑算法产生,而SHA-1安全杂凑算法具有单向性,所以攻击者不可能仅仅根据抓取到的序列码和应用层数据反推出数据拼接混淆规则,从而伪造出正确序列码,骗取用户接收机的信任,执行攻击者设定的指令。SHA-1安全杂凑算法的单向性可以保证数据拼接混淆算法的安全性,进而提高整个系统的安全性。
具体过程
点对点安全通信机制主要设定发送机和接收机的安全层中都有相同的种子seed,通过位操作和加盐操作的salt()函数进行信息的混淆,安全杂凑算法SHA-1()产生新的序列码,加密操作encrypt()和对应的解密操作decrypt()。
在加密解密操作中,由于安全通讯机制是运行在计算能力低下的MCU芯片上,所以硬件本身限制了运算速度和运算资源。在为安全通讯机制选择加解密算法的时候,要注意加解密算法的运行的速度以及对于运算资源的消耗,所以选择的算法的加解密过程不能过于复杂。当应用点对点安全通信机制的设备安全性等级要求很高时,就可以采用硬件加密加速电路的方法来对传输的数据进行加密。这样可以在安全通信机制中使用更加复杂的加密算法,同时也能保证加解密算法运行的速度。发送机和接收机之间通信过程如图5点对点射频安全通讯机制总流程图所示;安全通讯机制在发送机的运行流程图6发送机流程图所示;安全通讯机制在接收机的运行流程图7 接收机流程图。
点对点射频安全通讯机制的具体通讯过程如下:
1.开启发送机之后,发送机的安全层首先会去寻找是否有序列码保存在本地,如果找到就将其作为当前序列码now_Serial;如果没有,那么当前序列码now_Serial=SHA-1(seed)。而开启接收机之后,接收机的安全层同样会去寻找是否有序列码保存在本地,与发送机不同的是,接收机所保存的序列码有两个,一个是当前接收序列码Renow_Serial,另外一个是上一次接收序列码Relast_Serial。同样如果发现没有序列码保存,那么接收机也会调用SHA-1()函数去生成序列码。
当发送机的安全层收到应用层数据Data时,安全层会将应用层数据Data和当前序列码now_Serial进行拼接形成新的数据Data_Serial,然后将使用位操作和加盐操作salt()对数据Data_Serial进行混淆,最后用SHA-1安全杂凑算法对Data_Serial进行运算,获得160位的发送序列码Send_Serial。
2.发送机的安全层最后会将发送序列码和数据Data合并后使用encrypt()函数进行加密,将加密后的结果Encrypt_Data转交给数据层进行发送,同时发送机在安全层设定好的等待周期内,在这个周期内等待接收机的回复。
3.接收机在接收到数据Encrypt_Data之后,会调用decrypet()函数进行解密,然后将解密之后的数据分解为Data和Send_Serial。再将数据Data和Renow_Serial拼接在一起生成Data_Serial,调用位操作和加盐操作函数salt()进行处理,最后将结果使用SHA-1()函数进行运算,获得新的接收序列码Renew_Serial。
4.根据4中的运算结果Renew_Serial,将其和接收到发送的序列码Send_Serial比较,看其是否相同。如果相同,那么先修改当前接收序列码Renow_Serial和上一次接收序列码Relast_Serial的值。然后将序列码Renew_Serial使用encrypt()函数加密生成Encrypt_Data2,再将Encrypt_Data2转交给数据层进行发送,最后将数据上交给应用层进行相应的处理。若不相同则执行步骤6。
5.将数据Data和Relast_Serial拼接在一起重新生成Data_Serial,调用位操作和加盐操作函数salt()对Data_Serial进行处理,最后将结果使用SHA-1()函数进行运算,获得新的接收序列码Renew_Serial。
6.根据6中的运算结果Renew_Serial,将其和接收到发送的序列码Send_Serial比较,看其是否相同。如果相同,那么先修改当前接收序列码Renow_Serial和上一次接收序列码Relast_Serial的值。然后将序列码Renew_Serial使用encrypt()函数加密生成Encrypt_Data2,再将Encrypt_Data2转交给数据层进行发送,,最后将数据上交给应用层进行相应的处理。若不相同则丢弃数据,重新等待发送机数据。
7.发送机在等待周期内接收到接收机的回复之后,会对接收到的数据Encrypt_Data2进行解密,然后将解密后的结果Renew_Serial和Send_Serial相互比较,如果相同则认为数据发送成果,修改now_Serial的值,向应用层报告数据发送成功;若不同,则向应用层报告数据发送失败。如果没有在等待周期之内收到回复,安全层也向应用层报告数据发送失败。安全层重新等待来自应用层的待数据。
图5 点对点射频安全通讯机制总流程图
图6 发送机流程图
图7 接收机流程图
测试过程及测试结果
在点对点射频安全通讯机制设计完毕之后,需要对通讯机制的安全措施进行测试。根据测试结果评估采用安全通讯机制后系统的安全性和可行性。安全测试的过程中,需要验证安全措施对于现有攻击行为的防御能力,同时避免新的安全威胁。安全测试的样本选择市场上已有的设备,对其发送机和接收机之间的通讯过程进行相应的安全测试。然后对具有缺陷的设备进行升级改造,在设备发送机和接收机的主控芯片中添加设计好的点对点射频安全通讯机制,然后进行同样的安全测试,给出测试结果。
7.1 实现平台及效果
点对点射频安全通讯机制在arduino平台上使用C语言进行实现,采用的arduino具体硬件为arduino最通用的arduino UNO R3版本。整个安全通讯机制采用了分层的协议架构,代码量精简,同时实现速度较快。同时使用在安全通讯机制中的SHA-1安全杂凑算法代码还具有优化的余地,安全机制本省也可以进一步进行精简,所以还能减少通讯机制的代码量;而如果设备对于代码运行速度的要求较高,那么可以引入最新的SHA-1安全杂凑算法运行规则来提高速度,甚至可以设计特殊的硬件加速电路来完成SHA-1安全杂凑算法的加速运行,减少SHA-1算法的运行时间[17]。
通过arduino开发平台自带的代码统计工具可以统计出如下表所示的资源消耗情况:
资源类型 种类 | 发送机(B) | 接收机(B) | 系统资源(B) |
---|---|---|---|
程序存储空间 | 5292 | 5314 | 32256 |
全局变量存储空间 | 185 | 194 | 2048 |
arduino平台实现安全通讯机制的资源消耗情况
从表格中可以发现实现发送机通讯安全机制占用的程序存储空间为5292B,占用的全局变量存储空间为185B;实现接收机安全通讯机制的占用的程序存储空间为5314B,占有的全局变量存储空间为194B。而arduino这款硬件本身具有32256B的程序存储空间和2048B的全局变量存储空间,所以实现点对点射频安全通讯机制所需要消耗的计算资源在硬件本身可允许的范围内,不会造成大量的资源消耗。同时在对代码运行时间进行大概统计之后,发现发送机运行安全通讯机制耗费的时间在等待接收机的回复过程中,这个时间会随着发送机和接收机之间的通信环境而有所改变,同样当接收机收到消息后,执行程序所耗费的时间为8ms。因此目前发送机和接收机代码的运行速度已经满足了大多数系统运行的需求。
7.2 升级改造步骤
待测试设备为遥控小车系统,主要由作为发送机的遥控器和作为接收机的小车组成,如图8测试设备图所示。在对小车和遥控器进行升级改造的过程中,为简化改造步骤,选择使用目前最流行最方便的开源硬件arduino作为点对点安全通讯机制的实现平台;为了和原始小车进行对比,射频通讯频率同样选择433MHz频段;在对小车和遥控器成功完成升级改造后,采用Hackrf one作为攻击实施的设备对小车进行阻塞攻击和重放攻击的处理;由于点对点安全通讯机制中引入了序列码机制,所以对于升级后的小车和遥控器来说还需要防范针对序列码的字典攻击和前向预测攻击,所以为了便于实验的测试,遥控器和小车上都会和电脑使用串口相连,读取二者接收到的数据,模拟攻击者使用无线电设备对射频信号进行侦听和还原,从而破解获得序列码。
图8 测试设备图
7.3 升级前安全测试
攻击设备选择Hackrf One,采用的攻击方式为重放攻击。首先,将Hackrf One和电脑相连,开启Hackrf One进行一系列的准备工作;准备工作完成后,开启小车和遥控器,然后进行互相通讯;此刻在连接Hackrf One的电脑上可以观察到小车和遥控器的工作频段在433MHz附近;确认频段后,使用Hackrfone针对这个频段进行遥控器和小车之间的通过过程的录制;录制成功之后,在使用Hackrf One将录制好的数据对小车进行发送;在小车接收到来自Hackrf One发送的数据之后,小车开始执行数据中的指令。小车在受到重放攻击的情况如图8改造前重放攻击成功示意图所示。
图9 改造前重放攻击成功示意图
使用相同的设备对小车进行阻塞攻击时,同样将Hackrf One和电脑相连;完成准备工作后,在电脑上准备好一段无序的噪声数据,然后使用HackrfOne将这一段噪声数据发射到小车和遥控器的工作频段433MHz上;然后使用遥控器控制小车,可以发现,在噪声数据的干扰下,小车并不能正常接收遥控器的指令采取设定好的动作,而遥控器上并不能对小车是否正确接收指令进行判断。
在对待测试设备的安全测试中,可以发现待测试设备没有抵御重放攻击和阻塞攻击的能力,小车和遥控器之间的通讯机制过于简陋,仅仅只是满足了二者之间的通讯要求,而没有对数据的来源进行校验,在整个通讯过程中没有任何安全性方面的考虑。攻击者不但可以通过简单的重放攻击就可以接管接收机,使其执行攻击者设定的指令;而且还可以使用阻塞攻击对小车和遥控器之间的通信信道进行破坏,从而使小车不能正常接收到来自遥控器的指令进行相应的操作。小车在面对重放攻击和阻塞攻击方面不足可以通过在小车通信过程中使用点对点射频安全通讯机制来弥补,使其具有较强的抗攻击能力。
7.4 升级后测试
成功进行遥控器和小车的升级改造之后,需要对二者间的工作过程进行相应的安全测试。我们首先对升级改造后的小车进行重放攻击的测试。和原来的测试方法相同,先使用Hackrf One录制小车和遥控器之间通讯过程的数据,然后将数据保存下来,再使用Hackrf One对录制下来的信号进行重新发送。可以发现升级改造后的小车由于安全通讯机制中序列码的匹配要求,发现Hackrf One发送的数据中序列码无法匹配之后,直接将Hackrf One发送的数据丢弃,所以没有执行数据中设定的操作,而是保持原有状态。实验结果可以表明,点对点安全通讯机制防范来自重放攻击的安全威胁。升级后,小车在受到重放攻击的情况如图9改造前重放攻击成功示意图所示。
图10 改造后重放攻击失效示意图
在使用Hackrf One对小车进行阻塞攻击时,Hackrf One通过在小车和遥控器之间的通讯频段内发送噪声数据,干扰了信道的正常通信功能。但是作为发送机的遥控器当没有接收到回复时,会将arduino UNO R3上的一盏LED灯变亮,以此告诉用户数据发送失败。这个功能在其他设备中可以加以引申,例如可以设定为超时重传等,有效地防止由于无线电环境的干扰导致数据传送失败,引发的系统错误。
由于在点对点安全通讯机制中使用了序列码,所以需要对系统进行前向预测攻击和字典攻击方面的安全测试来保证系统序列码的安全性。在小车和遥控器之间的通讯过程中由于加密算法的存在,数据的真实含义无法被破解,同时由于安全通讯机制中SHA-1安全杂凑算法和数据拼接混淆规则的共同作用,序列码无法被针对性地进行预测,防范前向预测攻击。同时由于SHA-1算法生成的结果取值范围为0到2的160次方,所以字典攻击在面对海量的序列码时,也无法对点对点安全通讯机制造成有效的安全威胁。通过这样的设计保证了序列码的安全性。
优势
针对智能机器人领域对于通讯的高安全性需求,提出的点对点射频安全通讯机制为了防范普遍存在的重放攻击,采用了序列码的思想对现有的射频通讯机制进行安全改造。但是和传统的生成序列码的机制不同,在安全通讯机制中不再以一个固定的算法产生序列码,而是使用SHA-1安全杂凑算法对已有序列码进行不断地迭代,每一次迭代的结果都作为一个序列码使用。同时在序列码迭代的过程中,每一次SHA-1安全杂凑算法运行的初始报文数据,都是由原有的序列码和应用层数据按照自定义的数据拼接混淆规则生成,通过用户数据的随机性和序列码迭代替换,保证每一次迭代开始时的初始报文数据都不相同。这样设计的安全性在于,序列码可以随机分布在2的160的取值空间内,保证序列码的随机性和序列码的数量,是序列码在发送机和接收机的通讯过程中不出现重复的情况并且变得难以预测。不像传统序列码生成机制出现序列码数量有限,或者序列码生成规则过于简单导致的序列码被攻击者破解从而影响用户系统的安全。
由于在序列码的产生规则中引入了用户的应用层数据和SHA-1安全杂凑算法,所以在序列码中包含了传输数据的信息。通过这一方式确保了传输中的数据不再是孤立的,而是和序列码相互关联。序列码和应用层数据这种联系可以对中间人攻击时进行有效的防范。当攻击者截获数据同时破解传输加密算法时,暴露给攻击者的数据为序列码和应用层数据。如果攻击者仅仅修改应用层数据发动中间人攻击时,接收机通过校验序列码获知数据错误,从而丢弃攻击者发送的数据包。当攻击者对序列码进行修改时,由于产生序列码过程中引入了SHA-1安全杂凑算法,SHA-1算法具有的单向性保护了数据拼接混淆规则,从而使攻击者无法伪造出序列码中间人攻击的安全威胁进行有效地防范。
点对点射频安全通信机制通过序列码的设计保证了数据在传输过程中的保密性和完整性。同时针对序列码的弱点进行了相应的预防,使点对点安全通许机制变得更加安全。安全通讯机制可以满足智能机器人对于点对点数据安全通讯的需求,提高智能机器人在信息通讯的过程中抵御重放攻击的能力。而当通信环境较差或者遭受到阻塞攻击时,也可以对用户进行相应的安全提示,对信息传递的可靠性进行安全保障。同时在通信中,通过序列码和应用层数据的巧妙结合,可以验证是否有攻击者对智能机器人的传输信息进行篡改,同时避免来自攻击者的中间人攻击。最后,点对点安全通讯机制采用的是分层结构设计,安全通讯机制的运行对于用户来说是透明的,只是向上提供了一组可供调用的数据传输接口。对于现有的智能机器人来说,只需要提供给安全通讯机制一组数据传输的接口即可。升级改造这一切可以只在软件方面进行,而不需要增加额外的硬件,升级改造的成本低,而且十分方便快捷,不需要耗费大量的人力物力。但是可以有效地提高智能机器人系统的安全性,使其可以面对更加复杂的通讯环境。
展望
目前,在使用点对点射频无线通讯的场合中,许多设备都没有相应的安全机制来验证所接收数据的来源,无法确保数据的安全性,这些限制了点对点射频通讯在智能机器人方面的使用。本文中提出的基于SHA-1安全杂凑算法的点对点射频安全通讯机制可以提高发送机和接收机之间通讯的安全性,采用序列码的作为核心思想从而防范重放攻击。同时针对中间人攻击进行了相应的预防,接收机可以通过序列码的对比丢弃遭受过篡改的可以数据,提高了无线通信的安全性。
在点对点射频安全通讯机制中的设计中,主要采用了分层的设计思想,将提供安全通信的功能都集中在设计好的安全层中,向上层提供相应的发送和接收数据的接口,同时安全层调用原来的发送和接收数据的函数进行信息的收发。对于上层应用而言,安全层是透明的。通过这样的设计,可以降低点对点社评安全通讯机制的移植难度,扩大应用范围。不仅为智能机器人等安全性高要求领域的使用点对点射频通讯设备提供了安全可靠的基础,还能够对现有的设备进行安全性能的提高。
参考文献
[1] 王金川,覃真,韩煌. 射频技术发展现状与应用[[J]. 电子技术应用,2007, 33(7).
[2] 无线物理层安全传输关键技术研究[D]. 熊俊. 国防科技大学,2014
[3] 黄辰, 李可维, 张伟等.无线物联网中基于网络编码的能量受限数据传输机制[J]. 电子学报, 2013(1): 144-147.
[4] 王国波. 红外无线数据通信研究[J]. 中国新通信, 2017(7) : 30-30
[5] Ansaf Ibrahem Against Alrabady, Syed MasudMahmud. Analysis of Attacks Against the Security of Keyless-Entry Systems for Vehiclesand Suggestions for Improved Designs [J].Vehicular Technology, 2005 41-50.
[6] Microchip Technology Inc. PassiveKeyless Entry (PKE) Reference Design User's Manual[EB/OL].http://www.microchip.com/pagehandler/en-us/technology/automotive/applications/passive_keyless_entry.htm1.2010-02-22.
[7] 张洁, 基于RFID技术的智能门禁系统设计[D], 河北科技大学, 2010.
[8] 李琳, 李瑞林, 谢瑞强等. Keeloq和SHACAL-1算法的差分故障攻击[[J]. 武汉,武汉大学学报(理学版), 2008: 54(5), 507-512.
[9] 袁刚, 侯整风. PKE系统中滚码技术的软件实现[J]. 合肥工业大学学报(自然科学版),2009(12)1859-1861.
[10] 智能车钥匙系统及其安全防护研究与设计[D]. 李滨.吉林大学,2016.
[11] 丁飞, 余水宝. 远程防盗汽车PKE系统设计[J].电子科技. 2012: 25 (7) 118-124.
[12]Craig Smith, Chris Evans. The Car Hacker’s Handbook[M]. 北京: 清华大学出版社, 2017: 195-198.
[13] JoshuaWright, Johnny Cache. Hacking Exposed Wireless: Wireless Security Secrets &Solutions[M]. 北京: 机械工业出版社, 2016: 302-305.
[14] FIPS PUB180-1, Secure Hash Standard(SHA-1)[S].National Institute of Standards andTechnology (NIST),1995
[15] 杜晓婧, 李树国. SHA-1算法的高速ASIC实现[J]. 微电子学与计算机. 2016: 10 (33) 19-27.
[16] Eun Hee Lee, JcHoon Lee, Ⅱ HwanPark,et al, Implementationof high -speed SHA-1 architecture[J]. IElCE Electronics Express,2009,16(6):1174-1179.
[17] 快速实现SHA-1算法的硬件结构[J]. 黄谆,白国强,陈弘毅. 清华大学学报:自然科学版,2005, 45 (1)
*本文作者:网络安全通,转载请注明来自 FreeBuf.COM。