通信系统和通信设备的制造方法

文档序号:10572632阅读:1009来源:国知局
通信系统和通信设备的制造方法
【专利摘要】提供了通信系统和通信设备。在设备之间发送和接收数据包的该设备包括互相对应的数据包计数器。相同随机数值被给予数据包计数器,作为数据包计数器的初始值,以及随着数据包发送/接收而更新数据包计数器。发送侧设备生成MAC值,根据其自己的数据包计数器的计数值抽出MAC值的一部分,将它设置为分割的MAC值,通过将该值加到消息来生成数据包,并且将该数据包发送到网络上。接收侧设备根据接收到的数据包中的消息生成MAC值,根据其自己的数据包计数器的计数值抽出MAC值的一部分,比较该部分与接收到的数据包中的分割的MAC值,由此执行消息认证。
【专利说明】通信系统和通信设备
[0001]对相关申请的交叉引用
[0002]包括说明书、附图和摘要的于2015年2月26日提交的日本专利申请第2015-036298号的本公开内容的整体通过引用合并于此。
【背景技术】
[0003]本发明涉及通信系统和通信设备,尤其涉及有利地用于通信中的通信系统和通信设备,其中,消息认证代码(MAC)的一部分被包括在通过网络的通信数据包中。
[0004]在由例如车辆控制系统领域代表的各种领域中,安全性的重要性和对安全性的需求提高了。为了处理上文所提及的情况,在嵌入式设备领域中,会经常发生目标产品本身被物理地攻击的情况,因此存在安全功能被集中在抗窜改性能高的硬件安全模块(HSM)上的趋势。
[0005]车辆控制系统通过多个电子控制单元(ECU)来配置,多个电子控制单元耦合到车载网络,诸如,例如,CAN(控制器区域网络)等等。在如上文所提及的对这样的车辆控制系统的攻击中,包括了通过CAN交换的消息的泄漏,对消息的窜改,假消息的分发等等。为了避免上文所提及的攻击,提出了在ECU等等之间的通信中向CAN数据包添加用于认证CAN数据包的有效性的信息的技术。
[0006]在日本未经审查的专利申请公开第2013-98719号中,公开了使用消息认证代码(MAC)来执行消息认证而不会改变CAN协议的技术。在耦合到CAN的每一个ECU中,对于每个CAN ID,对消息被发送的频率进行计数。发送了消息的ECU根据主要消息的数据字段和CANID以及对应于CAN ID的计数值来生成一个MAC,并且发送所生成的MAC作为一个MAC消息。接收到主要消息的ECU根据主要消息中所包括的数据字段和CAN ID以及对应于CAN ID的计数值来生成另一个MAC,比较所生成的MAC与MAC消息中所包括的MAC,由此验证主要消息的有效性。
[0007]在Takahiro Takemor1、Sei ichiroh Mizoguch1、Hideaki Kawabata以及AyumuKubota所著的 “Protect1n of On-Vehicle Control System by Secure Boot +Authenticat1n”(Research Report of Informat1n Processing Society of Japan,Intelligent Transportat1n Systems and Smart Community(ITS),2014-1TS-58,Informat1n Processing Society of Japan,2014年9月 12 日)中,公开了一种CAN数据包认证技术,该CAN数据包认证技术改进了在日本未经审查的专利申请公开第2013-98719号中所描述的技术。由于对CAN数据包的大小有限制,因此只有计算出的MAC值中的一些比特被包括在CAN数据包中。在发送侧ECU中,发送数据包计数器的值的高阶L-1-n个比特用于MAC值的计算,而发送数据包计数器的值的低阶η个比特用于指示要从计算出的MAC值中提取的一些比特(Xs个比特)的帧的位置。即,在发送侧ECU中,根据主要消息、在发送侧和接收侧之间共享的秘密信息、以及发送数据包计数器的值的高阶L-1-n个比特来计算MAC值,从该MAC值中提取由发送数据包计数器的值的低阶η个比特指定的帧位置处的Xs个比特,由此通过将如此提取的Xs个比特添加到主要消息来配置CAN数据包。在接收侧ECU中,接收数据包计数器的值的高阶L-1-n个比特(与发送侧ECU的那些比特相同)用于MAC值的计算,而接收数据包计数器的值的低阶η个比特用于指示要从计算出的MAC值中提取的一些比特(Xr个比特)的帧的位置。即,在接收侧ECU中,根据接收到的CAN数据包中的主要消息、与发送侧共享的秘密信息、以及接收数据包计数器的值的高阶L-1-n个比特来计算MAC值,以及从如此计算出的MAC值中提取由接收数据包计数器的值的低阶η个比特指定的帧位置处的Xr个比特。将接收到的CAN数据包中的MAC值的Xs个比特与接收侧ECU本身计算出的MAC值中的Xr个比特进行比较,当Xs个比特和Xr个比特两者互相匹配时,认证接收到的CAN数据包是有效的。

【发明内容】

[0008]作为本发明人和其他人对日本未经审查的专利申请公开第2013-98719号和Takahiro Takemor1、Seiichiroh Mizoguch1、Hideaki Kawabata以及Ayumu Kubota所著的“Protect1n of On-Vehicle Control System by Secure Boot+Authenticat1n”(Research Report of Informat1n Processing Society of Japan,IntelligentTransportat1n Systems and Smart Community(ITS) ,2014-1TS-58)进行的研究的结果,发现仍然存在如下所示的新主题。
[0009]在Takahiro Takemor1、Seiichiroh Mizoguch1、Hideaki Kawabata和AyumuKubota所著的 “Protect1n of On-Vehicle Control System by Secure Boot +Authenticat1n”中(Research Report of Informat1n Processing Society of Japan,Intelligent Transportat1n Systems and Smart Community(ITS),2014-1TS-58)中所公开的技术中,发送侧和接收侧的每一个ECU都包括被称为安全元件的HSM,以及为了生成MAC的目的而保护对此部分的抗窜改性能。然而,由于在HSM外部提供了数据包计数器,因此发现在ECU中对通信路径的保密性和完整性的保护是不够的,其中通过该通信路径向HSM输入以及从HSM输出数据。例如,发现当通过经由通信路径将没有安全功能的主处理器和HSM耦合在一起来配置ECU时,即使在使用软件在主处理器侧执行加密以便确保保密性的情况下,对所谓的重播攻击(在主处理器和HSM之间的通信路径上执行探测等等,并且发布旧信息)的抵抗性也低。
[0010]虽然将按如下方式描述用于解决如上文所提及的这样的主题的措施,但是根据说明书的描述以及附图,本发明的其他主题和新颖的特点将变得清楚。
[0011]根据本发明的一个实施例,提供了按如下方式配置的通信系统。
[0012]S卩,在包括经由网络互相耦合以便在多个设备之间发送和接收数据包的多个设备的通信系统中,用于发送和接收数据包的每一个设备都包括与通信配偶的数据包计数器对应的数据包计数器。相同随机数值被给予对应的数据包计数器,作为它们的初始值,以及数据包计数器(数据包计数器的值)分别与数据包的发送和接收相关联地更新。发送消息侧的设备根据消息生成一个消息认证代码(一个MAC值),根据其自己的数据包计数器的计数值抽出MAC值的一部分,将该部分设置为分割的消息认证代码(分割的MAC值),通过将分割的MAC值添加到消息中生成数据包,并且将该数据包发送到网络上。接收到数据包的设备根据接收到的数据包中所包括的消息,生成另一个消息认证代码(另一个MAC值),根据其自己的数据包计数器的计数值抽出MAC值的一部分,比较该部分与接收到的数据包中所包括的分害_消息认证代码(分割的MAC值),由此执行消息认证。
[0013]将简要地按如下方式描述通过上文所提及的本发明的一个实施例获得的有利效果O
[0014]S卩,变得难以从外部观察或估计数据包计数器的计数值,因此可以改进多个设备之间的通信路径(网络)的保密性和完整性。
【附图说明】
[0015]图1是示出通信设备的一个配置示例和通过包括根据第一实施例的通信设备而配置的通信系统的一个配置示例的框图。
[0016]图2是示出通信系统的一个配置示例的框图,其中,每一个通信设备都是电子控制单元(E⑶),以及该通信系统是通过经由车载网络(CAN)将E⑶互相耦合来配置的。
[0017]图3是示出通信系统的一个配置示例的框图,该通信系统是通过经由CAN互相耦合作为通信设备的多个ECU来配置的,其中,通信设备(ECU)中的一个是通过主机(HOST)和具有抗窜改性能的硬件安全模块(HSM)来配置的。
[0018]图4是示出第一实施例中的通信流的一个示例的流程图。
[0019]图5是示出用于吸收数据包计数器的波动的流程的一个示例的流程图。
[0020]图6是示出用于将数据包计数器的递增值设置为随机数的流程的一个示例的流程图。
[0021]图7是示出第二实施例中的通信流程的一个示例的流程图。
[0022]图8是示出在主机上也加载有加密功能的类型的ECU的一个配置示例的框图。
[0023]图9是示出第三实施例中的通信流程的一个示例的流程图。
【具体实施方式】
[0024]将详细地描述本发明的优选实施例。
[0025]第一实施例
[0026]〈利用随机数来初始化数据包计数器〉
[0027]图1是示出通信设备的一个配置示例和通过包括该通信设备而配置的通信系统的一个配置示例的框图。通信系统10是通过包括第一通信设备1_2和第二通信设备1_1来配置的,第一通信设备1_2和第二通信设备1_1经由网络5互相耦合,以便发送和接收数据包。其他通信设备可以耦合到网络5。另外,网络5可以是分级网络,并且也可以通过在第一通信设备1_2和第二通信设备1_1之间包括中继设备来配置。另外,网络5可以是任何类型的通信路径,可以通过该通信路径传输数据包,而不管它是有线的还是无线的。
[0028]第一通信设备1_2和第二通信设备1_1分别包括数据包计数器6_2和6_1。相同随机数值被给予数据包计数器6_2和6_1,作为它们的初始值,以及数据包计数器分别与数据包在第一通信设备1_2和第二通信设备1_1之间的发送和接收相关联地更新。可以为从第一通信设备1_2到第二通信设备1_1的数据包发送和为相反方向的从第二通信设备1_1到第一通信设备1_2的数据包发送提供互相不同的数据包计数器。第一通信设备1_2和第二通信设备1_1被配置为使得:在当要发送数据包时发送侧设备更新其自己的数据包计数器的情况下,当接收到数据包时接收侧设备也更新其自己的数据包计数器,处理发送侧设备的数据包计数器的更新;以及第一通信设备1_2和第二通信设备1_1被控制为使得两侧的数据包计数器保持相同计数值。此时,处理一个数据包的发送和接收的递增的每一个数据包计数器的递增值不一定仅限于“I”,而是可以取任意值,只要与数据包的发送和接收相关联地在两侧的数据包计数器中保持相同计数值即可。
[0029]要被发送到第二通信设备1_1的消息和用于生成消息认证代码(MAC值)的秘密信息被给予第一通信设备1_2。第一通信设备1_2包括数据包生成单元20、MAC生成单元21、分割的MAC值生成单元22等等。数据包生成单元20、MAC生成单元21、分割的MAC值生成单元22等等是通过在第一通信设备1_2所包括的处理器上执行软件而实现的功能块。代替通过软件的实现方式,全部或一些功能块可以通过专用硬件元件来实现。
[0030]当消息要被发送到第二通信设备Ij时,第一通信设备1_2根据该消息和秘密信息,在MAC生成单元21中生成一个MAC值。分割的MAC值生成单元22从生成的MAC值中抽取根据数据包计数器6_2的计数值指定的一些比特的位置(帧位置)处的数据,并且将抽取出的数据设置为一个分割的MAC值。数据包生成单元20生成包括消息和分割的MAC值的数据包,并且将该数据包发送到网络5上,以发往第二通信设备1_1。
[0031]用于认证MAC值的秘密信息被给予第二通信设备1_1。第二通信设备Il包括数据包分割单元30、MAC生成单元31、分割的MAC值生成单元32、比较/认证单元33等等。数据包分割单元30、MAC生成单元31、分割的MAC值生成单元32、比较/认证单元33等等是通过在第二通信设备1_1所包括的处理器上执行软件而实现的功能块。代替通过软件的实现方式,全部或一些功能块可以通过硬件元件来实现。
[0032]当通过网络5从第一通信设备1_2接收到数据包时,第二通信设备Il通过数据包分割单元30,从数据包中提取消息和分割的MAC值。MAC生成单元31根据从接收到的数据包中提取的消息、秘密信息和数据包计数器6 j的计数值,生成另一个MAC值。分割的MAC值生成单元32从生成的MAC值中抽取根据数据包计数器6_1的计数值指定的一些比特的位置(帧位置)处的数据,并且将抽取出的数据设置为另一个分割的MAC值。比较/认证单元33比较由数据包分割单元30从如此接收到的数据包中提取的分割的MAC值与由MAC生成单元31和分割的MAC值生成单元32生成的分割的MAC值,并且根据比较的结果,认证接收到的消息。这里,并不是只有在从接收到的数据包中提取的分割的MAC值准确地匹配内部生成的分割的MAC值的情况下,接收到的消息才通过认证。如稍后在[吸收数据包计数器的波动]中所描述的,即使在发送侧设备和接收侧设备的数据包计数器的计数值之间产生差异的情况下,也可以确定成功地执行了消息认证。
[0033]通过给予随机数值作为数据包计数器6_1和6_2的初始值,变得难以从外部观察或估计数据包计数器6_1和6_2的计数值,以及变得可以改进第一通信设备1_2和第二通信设备1_1之间的通信路径(网络5)的保密性和完整性。
[0034]这里,虽然是通过参考图1而限于第一通信设备1_2是消息发送侧而第二通信设备1_1是消息接收侧的情况来进行描述的,但是也可以反向地或双向地传输消息。在此情况下,第一通信设备1_2还可以包括数据包分割单元、根据从接收到的数据包中提取的消息生成MAC值的MAC生成单元、分割的MAC值生成单元、比较/认证单元等等,以及第二通信设备1_I还可以包括数据包生成单元、MAC生成单元、分割的MAC值生成单元等等。
[0035][应用于耦合到CAN的E⑶之间的通信]
[0036]可以通过如下方式来配置通信系统:分别通过E⑶来配置第一通信设备和第二通信设备,并且通过车载网络(CAN)来配置网络5。
[0037]图2是示出通信系统的一个配置示例的框图,其中,通信设备是通过电子控制单元(ECU)来配置的,该通信系统是通过经由车载网络(CAN)将ECU互相耦合来配置的。多个ECU(SP,ECU-A (2_A)、ECU-B (2_B)和ECU-C (2_C))耦合到CAN 5。ECU-A (2_A)包括数据包计数器AB (6_AB)和数据包计数器AC(6_AC),E⑶-B (2_B)包括数据包计数器BA(6_BA)和数据包计数器BC(6_BC),以及ECU-C(2_C)包括数据包计数器CA(6_CA)和数据包计数器CB(6_CB)。数据包计数器AB(6_AB)和数据包计数器BA(6_BA)被设置为处理ECU-A(2_A)和ECU-B(2_B)之间的数据包通信。同样,数据包计数器AC(6_AC)和数据包计数器CA(6_CA)被设置为处理E⑶-A(2_A)和ECU-C(2_C)之间的数据包通信,以及数据包计数器BC(6_BC)和数据包计数器CB(6_CB)被设置为处理ECU-B(2_B)和E⑶-C(2_C)之间的数据包通信。当ECU执行一对一的数据包通信时,利用相同随机数值来初始化执行数据包通信的ECU的数据包计数器。当如在广播中那样要执行一对多通信时,利用相同随机数值来初始化参与一对多通信的所有ECU的数据包计数器。
[0038]由此,可以改进经由CAN互相耦合的电子控制单元(E⑶)之间的通信的保密性和完整性。
[0039][应用于主机与HSM通信]
[0040]可以将上文所提及的第一通信设备和第二通信设备之间的通信应用于在配置ECU的主机处理器(主机)和硬件安全模块(HSM)之间的通信。如在本说明书的开头的段落中所描述的,在由车辆控制系统代表的、并且安全性和对安全性的需求高的嵌入式设备中,经常发生目标设备(产品)本身被物理地攻击的情况,因此存在抗窜改性能高的HSM以及安全功能被集中在该HSM上的趋势。
[0041]图3是示出通信系统的一个配置示例的框图,该通信系统是通过经由CAN互相耦合作为通信设备的多个ECU来配置的,以及ECU中的一个是通过包括主机和具有抗窜改性能的HSM来配置的。虽然多个ECU可以与图2中的示例类似地耦合到CAN 5_2,但是图3示出了如下示例:只有ECU-A(2_A)和ECU-B(2_B)耦合到CAN 5_2,并且ECU_A(2_A)是通过包括经由网络5_1互相耦合的主机4和具有抗窜改性能的HSM 3来配置的。
[0042]主机4是通过经由总线17_2互相耦合CPU 11_2、与CAN 5_2的接口(I/F) 12_3、与网络5_1的接口(I/F)12_2、R0M 15_2和RAM 16_2来配置的。HSM 3是通过经由总线17_1互相耦合CPU 11_1、与网络5_1 的接口(12_1)12_1、R0M 15_1、RAM 16_1、加密IP 13_1 和随机数生成电路(RNG)14_1来配置的。加密IP 13是执行与具有抗窜改性能的密码通信相关的数据处理的电路模块,并且可以通过封装已知的抗窜改功能来配置。采取针对对密码通信的攻击的保护措施,以便例如存储要被保密的参数,从而不能从外部观察,以及当预定的加密操作要被执行时,在操作时间和功率消耗的波动波形中不会表现出数据相依性。
[0043]通过被CPU 11_2执行而充当数据包生成单元20、MAC生成单元21和分割的MAC值生成单元22的程序存储在主机4的ROM 15_2中。通过被CPU 11_1执行而充当数据包分割单元30、MAC生成单元32、分割的MAC值生成单元32和比较/认证单元33的程序存储在HSM 3的ROM15_1中。通过网络5_1在主机4和HSM 3之间执行的数据包通信是通过使用保存在主机4中的RAM 16_2中的数据包计数器HSM-主机(6_2)和保存在HSM 3中的RAM 16_1中的数据包计数器HSM-主机(6_1)来执行的。另一方面,通过CAN 5_2在ECU-A(2_A)和ECU-B (2_B)之间执行的数据包通信是通过使用保存在ECU-A(2_A)的HSM 3中的RAM 16 j中的数据包计数器AB(6_3)和ECU-B(2_B)所包括的数据包计数器BA(6_4)来执行的。虽然数据包计数器AB(6_3)可以保存在主机4中的RAM 16_2中,但是当数据包计数器AB(6_3)保存在HSM 3中的RAM 16_I中时其抗窜改性能比保存在RAM 16_2中更高。数据包计数器主机_HSM( 6_2)、数据包计数器HSM-主机(6_1)和数据包计数器AB(6_3)可以通过专用计数器来实现,而不是保存在主机4中的RAM 16_2中或HSM 3中的RAM 16_1中。
[0044]可以通过将参考图1所描述的通信应用到通过网络5 j在主机4和HSM 3之间执行的数据包通信,改进不是HSM(没有安全功能)的通用主机和HSM之间的通信路径(网络)的保密性和完整性。
[0045]这里,作为主机4和HSM 3的配置而示出的配置仅仅是示例。可以通过任意通信路径(诸如,例如CAN、SPI (串行外围接口)等等)来配置网络5_1。在主机4和HSM 3中,总线17_1和17_2可以分别是分层次的。另外,还可以通过适当地包括除所示出的功能块以外的功能块(诸如,例如中断控制电路、直接存储器控制器、计时器、其他外围设备等等)来配置主机
4。同理也应用于HSM 3。虽然作为HSM 3的示例示出了装载有CPU 11_1的配置示例,但是可以使用定序器来代替CPU 11_1。虽然希望HSM 3具有抗窜改性能,但是可以使用仅包括图3中示出的结构元件的半导体器件作为HSM 3。虽然没有特别限制,但是通过使用已知的CMOS(互补金属氧化物半导体场效应晶体管)LSI(大规模集成电路)制造技术,分别在由硅等制成的绝缘半导体衬底上形成主机4和HSM 3。当如上文所提及的在不同半导体芯片上分别形成主机4和HSM 3以及主机4和HSM 3通过网络5 j彼此进行通信时,可以通过如下方式来改进通信的保密性和完整性:针对通过观察网络5_1而做出的攻击,利用随机数值来初始化数据包计数器。另一方面,主机4和HSM 3可以在混合状态下加载到相同半导体芯片上。在此情况下,可以通过配置以便不将网络5_1拉到半导体芯片外部,更加地改进通信的保密性和完整性。
[0046][随机数值被HSM生成、加密并且发送到主机]
[0047]将描述图3中示出的E⑶_A(2_A)的操作。
[0048]图4是示出第一实施例中的通信流程的一个示例的流程图。按自上而下的时间序列,示出了分别由主机4和HSM 3执行的处理步骤、以及要被发送和接收的数据的内容。
[0049]首先,分别启动主机4和HSM 3(系统接通hHSM 3通过随机数生成电路(RNG) 14_1来生成随机数Rl,并且通过使用公共密钥CK由加密IP 13_1来加密随机数R1。通过使用公共密钥CK加密的随机数Rl将被表示为“CK(R1 ),’ οHSM 3将数据包计数器HSM-主机(6_1)中的生成的随机数Rl设置为初始值。HSM 3通过网络5_1将经加密的随机数CK(Rl)发送到主机4。在主机4中,通过使用预先与HSM 3共享的公共密钥CK,解码经加密的随机数CK(Rl)。在此阶段,主机4通过将经解码的随机数Rl设置为数据包计数器主机-HSM( 6_2)的初始值,执行一个数据包的递增。即,主机4将数据包计数器主机_HSM(6_2)的值更新为R2 = R1 + 1。当向HSM3请求签名生成、签名验证和与加密相关的其他处理时,主机4生成请求消息(请求消息),从如此生成的消息和R2(该R2是数据包计数器主机-HSM(6_2)的计数值)生成MAC值,并且将生成的MAC值添加到消息。可以通过使用通用技术(诸如,例如CMAC(基于密码的消息认证代码)等等)来生成MAC值。主机4生成包括请求消息(请求)和MAC值的数据包,并且将数据包发送到HSM 3。在接收到数据包的HSM 3中,在根据数据包中所包括的MAC值验证了消息的有效性(MAC值验证)之后,执行对消息的处理,并且将执行的结果(结果)发送到主机4。此时,数据包计数器HSM-主机(6 j)的值被更新为R3 = R2+1。通过使用公共密钥CK来加密在该处理期间发出的通信消息。当在对MAC值的验证中从接收到的消息和其自己的数据包计数器HSM-主机(6 j)的计数值生成的MAC值不同于接收到的MAC值时,流程移动到未经授权的动作处理。未经授权的动作处理可包括稍后将描述的“吸收数据包计数器的波动”的处理。由此,可以防止消息的欺骗,并且可以改进通信的保密性和完整性。
[0050]这里,分别由主机4和HSM 3执行的MAC值的生成是根据要被发送和接收的目标消息、以及主机4和HSM 3的数据包计数器主机-HSM(6_2)和HSM-主机(6_1)的计数值而执行的算术处理。这里,系统可以被配置为使得主机4和HSM 3进一步共享秘密信息,以便使秘密信息对要分别在主机4和HSM 3中执行的MAC值生成的算术运算有贡献。由此,可以更多地改进通信的保密性和完整性。
[0051 ][吸收数据包计数器的波动]
[0052]在上文所提及的MAC值验证中,数据包计数器主机-HSM(6_2)和HSM-主机(6 j)的计数值彼此同步被设置为前提条件。这里,“同步”可以不一定指示数据包计数器同时取相同值。即,计数值可以在某一时滞后被更新到相同值,以及甚至在这些值互相不同的情况下,可以取通过遵循固定规则而互相对应的值。即,可以取任何值,只要接收侧可以再现在发送侧用于MAC值的生成的计数值、以及可以通过使用该值在发送侧和接收侧生成相同MAC值即可。
[0053]然而,存在这样的情况:由于通信错误等等,在数据包计数器主机-HSM(6_2)和HSM-主机(6_1)之间发生同步丢失。数据包计数器之间的这样的同步丢失将被称为“数据包计数器的波动”。由于即使在系统正常地操作的情况下也可能发生这样的数据包计数器的波动,因此希望吸收达到某一宽度的波动。另一方面,在通信的保密性和完整性是首选的系统中,还存在这样的情况:希望通过将波动视为来自外部的攻击,立即采取保护措施。要采取哪一种措施取决于系统设计中的HSM 3和主机4的安全策略。
[0054]图5是示出用于吸收数据包计数器的波动的流程的一个示例的流程图。
[0055]在HSM3侧执行的MAC值验证中,当接收到的MAC值不同于根据接收到的消息和其自己的数据包计数器HSM-主机(6_1)的计数值而生成的MAC值(检测到MAC值之间的不匹配)时,可以采取以下情况中的任何一种:作为未经授权的动作处理的操作被立即停止的情况(立即停止的情况),以及移动到波动吸收处理的情况(执行验证的情况)。当在通信的保密性和完整性是首选的系统中时,采取前者,通过将波动视为来自外部的攻击,立即采取保护措施。当吸收数据包计数器的波动时,采取后者。
[0056]在“立即停止的情况”下,从HSM 3向主机4通知异常的发生,以及HSM 3中断或结束正在被执行的处理。
[0057]在“执行验证的情况”下,图5中示出了数据包计数器的波动被允许最多有土I个数据包的示例。在检测到MAC值之间的不匹配之后,递减数据包计数器HSM-主机(6_1)的计数值,以及再次执行对MAC值的验证。当此步骤中生成的MAC值匹配接收到的MAC值时,确定接收到的消息正常,以及流程移动到对消息的处理。在“不匹配的情况”下,计数值递减两次,以及再次执行对MAC值的验证。当此步骤中生成的MAC值匹配接收到的MAC值时,确定接收到的消息正常,以及流程移动到对消息的处理。在“不匹配的情况”下,从HSM 3向主机4通知异常的发生,以及HSM 3中断或结束正在被执行的处理。
[0058]这里,递减值和递增值不一定被设置为“I”,如在稍后将描述的第二实施例中所指示的,可以使用其他随机数值。另外,还可以进行修改,以便允许数据包计数器的波动达到比±1个数据包的范围更宽的范围。即,通过比较根据多个计数值生成的多个MAC值中的每一个与接收到的MAC值,反复地执行对MAC值的验证,其中,这多个计数值分别对应于在从比关注的接收到的数据包早“i” ( “i是任意整数”)个数据包接收到的接收到的数据包到比关注的接收到的数据包晚是任意整数)个数据包接收到的接收到的数据包的范围内的接收到的数据包。当至少一个MAC值匹配接收到的MAC值时,确定关注的消息正常,以及流程移动到对消息的处理。当全部MAC值都不匹配接收到的MAC值时,从HSM 3向主机4通知异常的发生,以及HSM 3中断或结束正在被执行的处理。取决于系统的安全策略,可以任意地设置“i”和“j”的值。由于“i”和“j”的值越大,越容易发生重播攻击,因此期望“i”和“j”的值都不超过“3”。另外,当波动的宽度小时,确定关注的消息正常,以及流程可以移动到对消息的处理。然而,当波动的宽度有些大时,代替移动到立即停止操作的处理,流程可以移动到这样的温和的处理,例如移动到对消息的处理等等,同时给出某种警告,以及通过其他方法采取诸如提高安全性增强等防御措施。
[0059]虽然这里吸收数据包计数器的波动的配置和方法被描述为第一实施例的这样的一个修改的示例:数据包计数器HSM-主机(6 j )和主机-HSM(6_2)的初始值被设置为随机数,但是数据包计数器的初始值不一定是随机数。另外,在如到目前为止所执行的将数据包计数器的值初始化为“I”或“O”的情况下,可以将上文所提及的配置和方法应用于该情况,并且可以获得相同的有利效果。另外,虽然这里通过以配置ECU 2的主机4和HSM 3之间的通信作为示例进行了描述,但是也可以以同样的方式将上文所提及的配置和方法应用于任意通信设备之间的通信。例如,也可以将上文所提及的配置和方法应用于经由CAN耦合在一起的E⑶之间的通信。
[0060]第二实施例
[0061 ]〈数据包计数器的递增值也被设置为随机数〉
[0062]由于在参考图4描述第一实施例的示例中采用了数据包计数器HSM-主机(6_1)和主机-HSM(6_2)的值分别递增“I”的简单增量,因此存在攻击者可以轻松地估计下一个计数值的可能性。相应地,有效的是,通过将要递增的值设置为随机数,使攻击者难以估计下一个计数值。
[0063]图6是示出用于将数据包计数器的要递增的值设置为一个随机数的流程的一个示例的流程图。
[0064]例如,通过使用诸如SHA-256等有损压缩函数来压缩要被设置为数据包计数器HSM-主机(6_1)和主机-HSM(6_2)的初始值的随机数Rl (初始计数值)。在压缩中获得的固定值的最后一位被提取并且被设置为要递增的数值SI。通过将值SI与随机数Rl相加获得的R2(=R1+S1)被设置为下一个计数值。通过使用例如通过使用诸如SHS-256等有损压缩函数根据值R2生成的值S2执行递增,生成进一步的下一个计数值。通过使用如上文所提及的方法,攻击者难以估计计数器的增量的数字。
[0065]图7是示出第二实施例中的通信流程的一个示例的流程图。类似于图4中的流程图,按自上而下的时间序列示出了分别由主机4和HSM 3执行的处理步骤以及要发送和接收的数据的内容。
[0066]首先,分别启动主机4和HSM 3(系统接通hHSM 3通过随机数生成电路(RNG) 14_1来生成随机数Rl,并且通过使用公共密钥CK由加密IP 13_1来加密随机数1?1。!^1 3将数据包计数器HSM-主机(6_1)中的生成的随机数Rl设置为初始值。HSM 3通过网络5_1将经加密的随机数CK(Rl)发送到主机4。在主机4中,通过使用公共密钥CK,解码如此接收到的经加密的随机数CK(R1)。在此阶段,主机4通过将经解码的随机数Rl设置为数据包计数器主机-HSM(6_2)的初始值,执行一个数据包的递增。即,主机4将数据包计数器主机-HSM(6_2)的值更新为R2 = R1+S1 ο主机4生成对于HSM的请求消息(请求消息),根据该消息和R2(该R2是数据包计数器主机_HSM(6_2)的计数值)生成MAC值,并且将所生成的MAC值添加到消息。主机4生成包括请求消息(请求)和MAC值的数据包,并且将数据包发送到HSM 3。在接收到数据包的HSM 3中,在根据数据包中所包括的MAC值验证了消息的有效性之后(MAC值验证),执行对消息的处理,以及将执行的结果(结果)发送到主机4。此时,数据包计数器HSM-主机(6_1)的值被更新为R3 = R2+S2。通过使用公共密钥CK来加密在该处理期间发出的通信消息。
[0067]图6中的流程与图4中的流程的不同之处在于增量值被设置为随机数,如上文参考图5所描述的。由此,变得难以估计数据包计数器主机_HSM(6_2)和HSM-主机(6_1)的对应于下一个数据包的计数值,以及可以更多地改进通信的保密性和完整性。
[0068]虽然在第二实施例中通过以配置ECU3的主机4和HSM 3之间的通信作为示例进行了描述,但是也可以将根据第二实施例的配置应用到任意通信设备之间的通信。例如,也可以将上文所提及的配置应用到通过CAN親合在一起的ECU之间的通信。
[0069]第三实施例
[0070]〈加密功能也加载在主机上〉
[0071]在基于第一实施例和第二实施例中的图3中所示出的配置示例的描述中,指出了通过在主机4和HSM 3之间的通信中使用预先在主机4和HSM 3之间共享的公共密钥CK来加密随机数的系统。相比之下,当加密功能被加载在主机4上时,或者当可以由主机4的CPU11_2来计算加密时,可以在通过使用公钥密码系统来认证主机4和HSM 3两者之后交换公共密钥CK。
[0072]图8是示出在主机4上也加载有加密功能的ECU2的配置示例的框图。ECU对应于图3中所示出的ECU-A(2_A)。类似于图3中所示出的要被加载在ECU-A(2_A)上的主机4,主机4包括经由总线17_2耦合在一起的CPU 11_2、与CAN 5_2的接口(I/F)12_3、与网络5_1的接口(I/F)12_2、R0M 15_2、RAM 16_2等等。根据第三实施例的E⑶2与图3中所示出的E⑶_A(2_A)的不同之处在于,主机4还包括加密IP 13_2。类似于图3中所示出的加密IP 13_1,加密IP13_2是通过具有抗窜改性能来执行与密码通信相关的数据处理的电路模块。网络5_GPHSM3分别与图3中所示出的要被加载在ECU-A(2_A)上的网络5_1和HSM 3相同。由于除了向主机4添加加密13_2之外在第一实施例中做出的描述被按原样应用,因此省略其重复的描述。
[0073]将描述E⑶2的操作。
[0074]图9是示出第三实施例中的通信流程的一个示例的流程图。类似于图4和图7中的示例,按自上而下的时间序列示出了分别由主机4和HSM 3执行的处理步骤以及要被发送和接收的数据的内容。
[0075]首先,分别启动主机4和HSM 3(系统接通)。主机4通过加密IP 13_2来生成公钥Pp和秘密密钥Ps,并且将所生成的公钥Pp发送到HSM 3οHSM 3通过随机数生成电路(RNG) 14_1来生成随机数RC,并且通过使用接收到的公钥Pp由加密IP 13_1来加密随机数RC。通过使用公钥Pp加密的随机数RC将被表示为“Pp(RC)” ASM 3将经加密的随机数Pp(RC)作为质询数据发送到主机4。主机4通过使用秘密密钥Ps由加密IP 13_2来解码接收到的质询数据,生成响应数据,并且将响应数据发送到HSM 3οHSM 3通过执行预期值比较来验证接收到的响应数据,并且确认主机4是可信的通信设备。
[0076]然后,HSM 3通过随机数生成电路(RNG) 14_1来生成随机数Rl,并且通过使用公共密钥CK由加密IP 13_1来加密随机数Rl。由于随后的流程与参考图7所描述的第二实施例的流程相同,因此省略其描述。也可以使随后的流程与参考图4所描述的第一实施例的流程相同。
[0077]由此,可以改进对攻击者试图非法地获取被设置为数据包计数器的初始值的随机数值的攻击的抵抗性,以及可以改进HSM 3和主机4之间的通信路径(网络)的保密性和完整性。
[0078]虽然在第三实施例中通过以配置ECU2的主机4和HSM 3之间的通信作为示例进行了描述,但是也可以以同样的方式将根据第三实施例的配置应用到任意通信设备之间的通信。例如,也可以将上文所提及的配置应用到通过CAN親合在一起的E⑶之间的通信。
[0079]虽然可以通过使用在上文所提及的质询中用作主机4和HSM3之间的公共密钥CK的随机数RC来省略密钥交换序列,但是也可以单独地添加交换公共密钥的序列。
[0080]在前面的描述中,根据优选实施例,具体地描述了由本发明的发明人和其他人做出的本发明。然而,不言而喻,本发明不限于上文所提及的实施例,以及在不偏离本发明的主旨的范围内,可以以各种方式改变和修改本发明。
【主权项】
1.一种通信系统,包括: 经由网络互相耦合以便通过所述网络发送和接收数据包的第一设备和第二设备, 其中,所述第一设备和所述第二设备分别包括第一数据包计数器和第二数据包计数器, 其中,相同随机数值被给予所述第一数据包计数器和所述第二数据包计数器,作为所述第一数据包计数器和所述第二数据包计数器的初始值,以及所述第一数据包计数器和所述第二数据包计数器分别与数据包的发送和接收相关联地更新, 其中,当消息要被发送到所述第二设备时,所述第一设备根据所述消息生成一个消息认证代码,根据所述第一数据包计数器的计数值抽出所述消息认证代码的一部分,将该部分设置为分割的消息认证代码,生成包括所述消息和所述分割的消息认证代码的数据包,以及通过所述网络将该数据包发送到所述第二设备,以及 其中,当从所述第一设备接收到该数据包时,所述第二设备根据所接收到的数据包中所包括的消息生成另一个消息认证代码,根据所述第二数据包计数器的计数值抽出所述消息认证代码的一部分,比较所抽出的部分与所接收到的数据包中所包括的所述分割的消息认证代码,由此执行消息认证。2.根据权利要求1所述的通信系统, 其中,所述第一设备和所述第二设备中的一个生成所述随机数值,将所生成的随机数值设置为其自己的数据包计数器的初始值,通过加密将所述随机数值转换为密码,将所述密码发送到另一个设备,所述另一个设备解码所述密码,以恢复所述随机数值,以及将所恢复的随机数值设置为其自己的数据包计数器的初始值。3.根据权利要求2所述的通信系统, 其中,所述加密是符合公共密钥密码系统的加密。4.根据权利要求3所述的通信系统, 其中,所述第一设备和所述第二设备在发送和接收用于它们自己的数据包计数器的值的加密的随机数值之前执行符合公钥密码系统的质询/响应认证。5.根据权利要求1所述的通信系统, 其中,所述第一设备和所述第二设备每当发送和接收数据包时分别通过使用通过相同计算方法从它们自己的数据包计数器的计数值生成的值作为递增值,更新它们自己的数据包计数器。6.根据权利要求5所述的通信系统, 其中,所述第一设备和所述第二设备分别根据通过对它们自己的数据包计数器的计数值执行相同有损压缩函数获得的值,计算所述递增值。7.根据权利要求1所述的通信系统, 其中,当接收到数据包时, 由所述第二设备根据所述第二数据包计数器的计数值从根据接收到的数据包中所包括的消息而生成的消息认证代码中抽出的部分被设置为中央比特阵列, 其中,所述第二设备还基于多个MAC值中的所关注的计数值,从位置抽出所关注的消息认证代码的多个比特阵列,其中,所述多个MAC值是根据分别与从比所关注的接收到的数据包早“i”个数据包的接收到的数据包到要比所关注的接收到的数据包晚“j”个数据包的接收到的数据包的范围的接收到的数据包对应的多个计数值而生成的,“i”是任意整数,“j”是任意整数,以及 其中,所述第二设备比较所述中央比特阵列和所述多个比特阵列中的每一个与所关注的接收到的数据包中所包括的所述分割的消息认证代码,以及当至少一个比特阵列匹配所述分割的消息认证代码时,将所关注的接收到的数据包认证为有效数据包。8.根据权利要求7所述的通信系统, 其中,“i”和“j”两者都被设置为“Is”。9.根据权利要求1所述的通信系统, 其中,所述第一设备和所述第二设备中的至少一个包括硬件安全模块。10.根据权利要求1所述的通信系统, 其中,所述第一设备和所述第二设备分别是电子控制单元,以及所述网络是车载网络。11.一种通信系统,包括: 经由网络互相耦合以便通过所述网络发送和接收数据包的第一设备和第二设备, 其中,所述第一设备和所述第二设备分别包括第一数据包计数器和第二数据包计数器,所述第一数据包计数器和所述第二数据包计数器分别与数据包的发送和接收相关联地更新, 其中,当消息要被发送到所述第二设备时,所述第一设备根据所述消息生成一个消息认证代码,根据所述第一数据包计数器的计数值抽出所述消息认证代码的一部分,将该部分设置为分割的消息认证代码,生成包括所述消息和所述分割的消息认证代码的数据包,以及通过所述网络将该数据包发送到所述第二设备, 其中,当从所述第一设备接收到该数据包时,所述第二设备根据接收到的数据包中所包括的消息生成另一个消息认证代码,根据所述第二数据包计数器的计数值抽出所述消息认证代码的一部分,以及将该部分设置为中央比特阵列, 其中,所述第二设备还基于多个MAC值中的所关注的计数值,从位置抽出所关注的消息认证代码的多个比特阵列,其中,所述多个MAC值是根据分别与从比所关注的接收到的数据包早“i”个数据包的接收到的数据包到要比所关注的接收到的数据包晚“j”个数据包的接收到的数据包的范围的接收到的数据包对应的多个计数值而生成的,“i”是任意整数,“j”是任意整数,以及 其中,所述第二设备比较所述中央比特阵列和所述多个比特阵列中的每一个与所关注的接收到的数据包中所包括的所述分割的消息认证代码,以及当至少一个比特阵列匹配所述分割的消息认证代码时,将所关注的接收到的数据包认证为有效数据包。12.根据权利要求11所述的通信系统, 其中,“i”和“j”两者都被设置为“Is”。13.—种通信设备,所述通信设备经由网络与包括第一数据包计数器的另一个通信设备耦合,以便经由所述网络向和从另一个通信设备发送和接收数据包,并且认证从另一个通信设备接收到的数据包中的消息,该通信设备包括: 第二数据包计数器,所述第二数据包计数器对应于所述第一数据包,并且与所关注的通信设备和另一个通信设备之间的数据包的发送和接收相关联地更新;以及 硬件安全模块, 其中,由所述硬件安全模块生成的随机数被设置为所述第二数据包计数器的初始值,所述随机数经过加密,并且被发送到另一个通信设备,以便使另一个通信设备将经加密的随机数设置为所述第一数据包计数器的初始值, 其中,从另一个通信设备接收到的数据包是由所述另一个通信设备通过以下方式生成的:根据要被发送的消息生成一个消息认证代码,根据所述第一数据包计数器的计数值抽出如此生成的消息认证代码的一部分,将该部分设置为分割的消息认证代码,以及将所述消息和所述分割的消息认证代码包括在该数据包中,以及 其中,当从所述另一个通信设备接收到该数据包时,所关注的通信设备根据接收到的数据包中所包括的消息生成另一个消息认证代码,根据所述第二数据包计数器的计数值抽出所生成的消息认证代码的一部分,比较所抽出的部分与接收到的数据包中所包括的所述分割的消息认证代码,由此执行消息认证。14.根据权利要求13所述的通信设备, 其中,所述加密是符合公共密钥密码系统的加密。15.根据权利要求14所述的通信设备, 其中,所述通信设备在所述随机数被发送到另一个通信设备之前在所关注的通信设备与另一个通信设备之间执行符合公钥密码系统的质询/响应认证。16.根据权利要求13所述的通信设备, 其中,所关注的通信设备和另一个通信设备每当发送和接收数据包时分别通过使用通过相同计算方法从它们自己的数据包计数器的计数值生成的值作为递增值,更新它们自己的数据包计数器。17.根据权利要求16所述的通信设备, 其中,所关注的通信设备和另一个通信设备根据通过对它们自己的数据包计数器的计数值执行相同有损压缩函数获得的值,分别计算所述递增值。18.根据权利要求13所述的通信设备, 其中,当接收到数据包时, 由所述第二设备根据所述第二数据包计数器的计数值从根据接收到的数据包中所包括的消息生成的消息认证代码中抽出的部分被设置为中央比特阵列, 其中,所关注的通信设备还基于多个MAC值中的所关注的计数值,从位置抽出所关注的消息认证代码的多个比特阵列,其中,所述多个MAC值是根据分别与从比所关注的接收到的数据包早“i”个数据包的接收到的数据包到要比所关注的接收到的数据包晚“j”个数据包的接收到的数据包的范围的接收到的数据包对应的多个计数值而生成的,“i”是任意整数,“j”是任意整数,以及 其中,所关注的通信设备比较所述中央比特阵列和所述多个比特阵列中的每一个与所关注的接收到的数据包中所包括的所述分割的消息认证代码,以及当至少一个比特阵列匹配所述分割的消息认证代码时,将所关注的接收到的数据包认证为有效数据包。19.根据权利要求18所述的通信设备, 其中,“i”和“j”两者都被设置为“Is”。20.根据权利要求13所述的通信设备, 其中,所关注的通信设备和另一个通信设备是配置被耦合到车载网络的电子控制单元的通信设备,以及互相耦合所关注的通信设备和另一个通信设备的所述网络是与所述车载网络相同的网络或不同的网络。
【文档编号】H04L9/08GK105933277SQ201610107953
【公开日】2016年9月7日
【申请日】2016年2月26日
【发明人】押田大介
【申请人】瑞萨电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1