一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

机动车辆通信系统的数据链路层真实性和安全性的制作方法

2022-11-12 23:44:04 来源:中国专利 TAG:


1.本公开内容涉及车辆网络中的网络的数据链路层上的认证和安全性。


背景技术:

2.在当今的车辆中,数据完整性和安全性成为必需。在过去的若干功能中,例如通过从方向盘到车辆车轮的物理连接提供转向。这同样适用于制动和换档功能。然而,在当今的车辆中,不再存在这样的物理连接,而是存在将转向命令传送到电动转向装置的电线或总线。响应于总线上的转向命令,电动转向装置将致动与方向盘的转动相对应的车轮的转动。
3.访问总线可能会使得插入恶意总线通信或命令以试图接管车辆的功能。随着当今车辆所提供的日益增长的娱乐功能或连接性,插入恶意总线命令的风险进一步增加。
4.对于自主驾驶车辆或机动车辆而言风险甚至更高,因为用于分析机动车辆周围环境的传感器数据以及到控制车辆的致动器的命令可以实现为总线通信。
5.减轻这种风险的一种方式是在数据链路层级上为这样的总线通信提供真实性和安全性,而不会使更高协议层负担这些真实性和/或安全性问题。


技术实现要素:

6.根据一些可能的实现,用于根据协议在车辆中的基于总线的通信系统的参与者之间进行通信的协议帧可以包括报头和指示,该报头指示要在发送器与接收器之间传送的协议帧的开始,发送器和接收器都是基于总线的通信系统的参与者,该指示被配置成指示在数据链路层上的协议帧的真实性和/或数据安全性的级别。在第一实现中,该指示包括第一指示,该第一指示被配置成指示针对协议帧的在数据链路层级上的认证。
7.在第二实现中,单独地或与第一实现结合地,该指示包括第二指示,该第二指示被配置成指示针对协议帧的均在数据链路层级上的认证和数据安全性。
8.在第三实现中,单独地或与第一实现和第二实现中的一个或更多个实现结合地,指示、第一指示或第二指示中的至少一个是协议帧的报头的一部分。
9.在第四实现中,单独地或与第一实现至第三实现中的一个或更多个实现结合地,指示、第一指示或第二指示中的至少一个被表示为协议帧的有效载荷类型。
10.在第五实现中,单独地或与第一实现至第四实现中的一个或更多个实现结合地,指示、第一指示或第二指示中的至少一个被表示为报头内的安全性指示标志或比特字段。
11.在第六实现中,单独地或与第一实现至第五实现中的一个或更多个实现结合地,协议帧可以包括:在报头下游的安全性信息;以及在报头下游的受保护的有效载荷部分,其中,安全性信息指示受保护的有效载荷部分的保护级别。
12.在第七实现中,单独地或与第一实现至第六实现中的一个或更多个实现结合地,该安全性信息还被配置成指示以下中的至少一者:发送器与接收器之间的虚拟信道或一个或更多个密钥。
13.在第八实现中,单独地或与第一实现至第七实现中的一个或更多个实现结合地,
与安全性信息结合的指示指示了仅将认证还是将认证和数据保护应用于协议帧。
14.在第九实现中,单独地或与第一实现至第八实现中的一个或更多个实现结合地,安全性信息还被配置成指示安全性关联,该安全性关联指示要被选择用于在数据链路层级上的针对协议帧的认证或认证和数据安全性的密钥。
15.在第十实现中,单独地或与第一实现至第九实现中的一个或更多个实现结合地,协议帧还包括:安全性标签,其被配置成在数据链路层级上验证协议帧是否是计划从发送器传输到接收器的原始协议帧的真实性,其中,安全性标签被配置成在数据链路层上的发送器处或在数据链路层上的接收器上验证协议帧的真实性。
16.在第十一实现中,单独地或与第一实现至第十实现中的一个或更多个实现结合地,该帧具有与控制器局域网(can)标准、can灵活数据速率标准或can超大型标准一起使用的长度n。
17.在第十二实现中,单独地或与第一实现至第十一实现中的一个或更多个实现结合地,该帧选择性地具有8字节、8字节至64字节或64字节至2048字节的长度n。
18.根据一些可能的实现,数据链路层上的发送器被配置成参与车辆中的基于总线的通信系统,该发送器被配置成:响应于来自更高协议层的请求生成报头;访问k个字节长度的密钥k,从更高协议层接收受保护的有效载荷部分,聚合附加认证数据;使用密钥k和附加认证数据生成安全性标签,该安全性标签用于在数据链路层级上验证帧是否是从发送器发送到接收器的原始帧的真实性;以及生成包括报头、受保护的有效载荷部分和附加认证数据的协议帧,其中,发送器被配置成在数据链路层级上将协议帧从发送器传送到基于总线的通信系统的一个或更多个参与者。
19.在第一实现中,基于总线的通信系统是基于广播的总线系统,使得基于总线的通信系统内的所有节点被配置成接收由发送器传送的协议帧。
20.在第二实现中,单独地或与第一实现结合地,该协议帧还包括指示,该指示被配置成指示在数据链路层上的协议帧的真实性级别或数据安全性级别。
21.在第三实现中,单独地或与第一实现和第二实现中的一个或更多个实现结合地,该指示包括第一指示,该第一指示被配置成指示针对协议帧的在数据链路层级上的认证。
22.在第四实现中,单独地或与第一实现至第三实现中的一个或更多个实现结合地,该指示包括第二指示,该第二指示被配置成指示针对协议帧的均在数据链路层级上的认证和数据安全性。
23.在第五实现中,单独地或与第一实现至第四实现中的一个或更多个实现结合地,指示、第一指示或第二指示中的至少一个是协议帧的报头的一部分。
24.在第六实现中,单独地或与第一实现至第五实现中的一个或更多个实现结合地,指示、第一指示或第二指示中的至少一个被表示为报头内的安全性指示标志或比特字段。
25.在第七实现中,单独地或与第一实现至第六实现中的一个或更多个实现结合地,在发送器的仅认证模式下,附加认证数据是:报头和受保护的有效载荷部分。
26.在第八实现中,单独地或与第一实现至第七实现中的一个或更多个实现结合地,在认证加密模式下的发送器还被配置成使用以下来生成受保护的有效载荷部分的密文:密钥、明文形式的受保护的有效载荷部分以及作为附加认证数据的报头。
27.在第九实现中,单独地或与第一实现至第八实现中的一个或更多个实现结合地,
发送器还被配置成:生成在报头下游的sn个字节的序列号,并且被配置成以缩短的受保护的有效载荷为代价将序列号合并到协议帧中,缩短的受保护的有效载荷与受保护的有效载荷部分相比被缩短了sn个字节。
28.在第十实现中,单独地或与第一实现至第九实现中的一个或更多个实现结合地,在发送器的仅认证模式下,附加认证数据包括:报头、序列号和受保护的有效载荷。
29.在第十一实现中,单独地或与第一实现至第十实现中的一个或更多个实现结合地,发送器被配置成使用密钥k生成长度为si的安全性信息;并且还被配置成以缩短的有效载荷为代价将安全性信息合并到报头下游的协议帧中,缩短的有效载荷与受保护的有效载荷部分相比被缩短了si个字节,其中,安全性信息指示受保护的有效载荷部分的保护级别。
30.在第十二实现中,单独地或与第一实现至第十一实现中的一个或更多个实现结合地,在认证加密模式下的发送器还被配置成生成si个字节长度的安全性信息,并且还被配置成以缩短的受保护的有效载荷为代价将安全性信息合并到报头下游的协议帧中,缩短的受保护的有效载荷与受保护的有效载荷相比被缩短了si sn个字节,其中,安全性信息指示缩短的受保护的有效载荷的保护级别。
31.在第十三实现中,单独地或与第一实现至第十二实现中的一个或更多个实现结合地,附加认证数据包括:报头、作为随机数的序列号、安全性信息;以及缩短的受保护的有效载荷。
32.在第十四实现中,单独地或与第一实现至第十三实现中的一个或更多个实现结合地,在认证加密模式下的发送器还被配置成使用以下生成密文:密钥、作为随机数的序列号、以明文形式的受保护的有效载荷;以及作为附加认证数据的报头、序列号和安全性信息。
33.在第十五实现中,单独地或与第一实现至第十四实现中的一个或更多个实现结合地,发送器被配置成根据安全性关联从多个密钥中选择密钥k,其中,安全性关联在协议帧的安全性信息内表示。
34.根据一些可能的实现,数据链路层上的接收器参与车辆中的基于总线的通信系统,该接收器被配置成:根据协议在数据链路层上并且从发送器接收协议帧;以及从协议帧中提取指示,该指示被配置成指示在数据链路层上的协议帧的真实性级别或数据安全性级别。
35.在第一实现中,接收器还被配置成:从协议帧中提取报头,从协议帧提取受保护的有效载荷部分,访问k个字节长度的密钥,从在报头下游的协议帧中提取安全性标签,以及基于以下来计算真实性指示:密钥、包括报头的附加认证数据、安全性标签和受保护的有效载荷,其中,真实性指示被配置成在数据链路层上验证从发送器发送到接收器的协议帧的真实性。
36.在第二实现中,单独地或与第一实现结合地,接收器还被配置成在真实性指示没有验证从发送器发送到接收器的协议帧的真实性的情况下丢弃协议帧,并且可选地被配置成向更高协议层指示这样的真实性的缺乏。
37.在第三实现中,单独地或与第一实现和第二实现中的一个或更多个实现结合地,基于总线的通信系统是基于广播的总线系统,使得基于总线的通信系统内的所有节点被配置成接收由发送器传送的协议帧。
38.在第四实现中,单独地或与第一实现至第三实现中的一个或更多个实现结合地,该指示包括第一指示,该第一指示被配置成指示针对协议帧的在数据链路层级上的认证。
39.在第五实现中,单独地或与第一实现至第四实现中的一个或更多个实现结合地,该指示包括第二指示,该第二指示被配置成指示针对协议帧的均在数据链路层级上的认证和数据安全性。
40.在第六实现中,单独地或与第一实现至第五实现中的一个或更多个实现结合地,指示、第一指示或第二指示中的至少一个是协议帧的报头的一部分。
41.在第七实现中,单独地或与第一实现至第六实现中的一个或更多个实现结合地,指示、第一指示或第二指示中的至少一个被表示为报头内的安全性指示标志或比特字段。
42.在第八实现中,单独地或与第一实现至第七实现中的一个或更多个实现结合地,在接收器的认证解密模式下,接收器被配置成:在真实性指示指示了从发送器发送到接收器的协议帧的真实性的情况下,使用以下来生成作为到更高协议层的输出流的经解密的有效载荷:密钥、作为密文的受保护的有效载荷部分和附加认证数据。
43.在第九实现中,单独地或与第一实现至第八实现中的一个或更多个实现结合地,附加认证数据包括报头。
44.在第十实现中,单独地或与第一实现至第九实现中的一个或更多个实现结合地,接收器还被配置成从协议帧中提取sn个字节的序列号。
45.在第十一实现中,单独地或与第一实现至第十实现中的一个或更多个实现结合地,附加认证数据包括报头和序列号。
46.在第十二实现中,单独地或与第一实现至第十一实现中的一个或更多个实现结合地,在接收器的认证解密模式下,接收器被配置成:在真实性指示验证了从发送器发送到接收器的协议帧的真实性的情况下使用序列号、密钥、作为密文的受保护的有效载荷部分和附加认证数据来生成作为到更高协议层的输出流的经解密的有效载荷,并且接收器被配置成向更高协议层发信号通知真实性指示。
47.在第十三实现中,单独地或与第一实现至第十二实现中的一个或更多个实现结合地,附加认证数据包括报头、序列号和安全性信息。
48.在第十四实现中,单独地或与第一实现至第十三实现中的一个或更多个实现结合地,接收器还被配置成从协议帧中提取在报头下游的安全性信息;其中,安全性信息指示以下中的至少一者:发送器与接收器之间的虚拟信道;以及要根据安全性关联来选择用于保护受保护的有效载荷部分的密钥。
49.在第十五实现中,单独地或与第一实现至第十四实现中的一个或更多个实现结合地,在接收器的认证和解密模式下,接收器被配置成:在真实性指示验证了从发送器发送到接收器的协议帧的真实性的情况下,使用密钥、序列号、作为密文的受保护的有效载荷部分以及附加认证数据来生成作为到更高协议层的输出流的经解密的有效载荷;以及接收器被配置成向更高协议层发信号通知真实性指示。
50.根据一些可能的实现,车辆中的通信网络被配置成使用如本文所述的协议帧在如本文所述的发送器与如本文所述的接收器之间的传输层级上提供通信。
附图说明
51.本文中参照附图来描述各实现。
52.图1a示出了示出车辆中的基于总线的通信系统的框图。
53.图1b示出了示出根据本公开内容的数据链路层上的发送器与接收器之间的通信栈和虚拟信道的图。
54.图1c示出了安全区域中的节点的分组和安全区域内的安全性层实体。还示出了安全性层实体之间的安全信道。
55.图2a示出了根据车辆中使用的已知协议的协议帧的示例。
56.图2b示出了在数据链路层级上提供这样的协议帧的认证的协议帧的示例。
57.图2c示出了在数据链路层级上提供这样的协议的认证加密的协议帧的示例。
58.图3a示出了用于数据链路层级上的协议帧的通用认证和/或数据安全性引擎sadse。
59.图3b示出了在数据链路层级上的发送器处的仅认证下的sadse的输入变量和输出变量。
60.图3c示出了在数据链路层级上的接收器处的仅认证下的sadse的输入变量和输出变量。
61.图3d示出了在数据链路层级上的发送器处的认证加密下的sadse的输入变量和输出变量。
62.图3e示出了在数据链路层级上的接收器处的解密和认证下的sadse的输入变量和输出变量。
63.图4示出了根据can标准的协议帧。
具体实施方式
64.图1a示出了连接若干节点节点1、节点2、
……
、节点n的示例总线。在图1a的示例中,总线被描绘为两线总线系统,其可以被方便地实现为两条差分线。显然,也可以想到其他设置。可以用可选的端接电阻器t1、t2来端接总线系统,这对于减少总线上通常影响沿总线的信号质量的反射是有意义的。车辆中的总线系统的突出示例是can、can-fd、canxl或lin网络。虽然本公开内容集中于can变体,但是对于本领域技术人员而言明显的是,本公开内容的教导也可以应用于其他总线系统。
65.应当理解,图1a中描绘的总线也可以以如下环形拓扑结构布置:其中,总线的两端被馈送到主单元(未示出)中,从而形成总线环路。各个节点节点1、2、
……
、n将如前面一样耦接至总线。
66.应当理解,车载网络或基于总线的通信系统(如图1a所描绘的)具有反映车载网络的要求的特定属性。车载网络通过将数据帧从传感器或传感器的控制单元传输到更高级别的控制单元来支持传感器数据到控制单元的通信。有用的协议可以用于在基于总线的通信网络的各个节点或参与者之间传送的数据帧或协议帧。
67.作为返回或响应于传感器数据的接收,传感器的控制单元或更高级别的控制单元可以将某一动作传送到耦接至总线的致动器,比方说将制动动作传送到制动致动器。因此,在图1a的示例中,节点1可以表示测量制动踏板被按压多远的角度的角度传感器(未示出)。
该角度可以作为协议帧被传输到更高级别的ecu,比方说节点2。响应于接收到角度值,ecu可以向节点n(制动致动器)发送一个或更多个总线帧。从ecu发送到制动致动器的这些总线帧可以引起制动动作。
68.显然,与制动动作相关的总线通信是时间关键的并且需要被快速传输。这样的实时要求在标准通信网络中不常见。
69.车辆内通信网络通常具有明确定义的总线参与者数量,其默认地在车辆的生命期内保持恒定;暂且忽略车辆的某些升级。同样,各个节点之间的现有链路——因此基于总线的通信系统的拓扑——在车辆的生命期内将不会改变。对于标准计算机网络,这样的情况是非常不可能的。实际上,对于标准的计算机网络而言需要允许在计算机网络的工作期间添加或移除节点。此外,可以在标准计算机网络中的工作期间提供新的链路或者移除链路。
70.在控制车辆功能的基于总线的通信系统中,确保通过总线传输的协议帧的真实性是有意义的。考虑到制动动作,当以受控方式停放车辆时,引起紧急制动的命令不应当被误认为是用于缓制动。为此,在基于总线的通信系统的参与者之间传送的协议帧的真实性的指示是有意义的。
71.应当理解,指示数据链路层上的协议帧的真实性是有意义的,以便减少在基于总线的通信系统的参与者之间传送的时间关键命令的认证中更高协议层的参与。
72.随着当今越来越多的娱乐系统以及越来越多的车辆间通信变得可用,对被注入到通信系统中的恶意命令或协议帧的敏感度越来越高。
73.因此,针对协议帧提供数据安全性以便防止恶意的协议帧的注入是有意义的。至于协议帧的真实性指示,在数据链路层级提供数据安全性也是有吸引力的。这样,提供安全性和/或真实性信息的更高协议层或更高协议层上的软件堆栈的参与变得不必要。对于本领域技术人员而言明显的是,数据安全性和真实性功能可以方便地由硬件元件例如协议层上的发送器或接收器支持。换句话说,当在数据链路层级上实现数据安全性和真实性功能时,这些功能可以被转移加载到数据链路层级上的专用硬件。
74.图1b示出了作为图1a所示的基于总线的通信系统的参与者的节点1和节点2。节点1与节点2之间的通信在不同的层中流动,这些层可以根据良好建立的osi-iso层模型被分类。最低级别层是所谓的物理层,指示为节点1和节点2的phys。os1模型中的每一层接受来自更高级别的命令,在其级别处执行一些动作,并且可以通过将请求转发到更低级别来触发更低级别中的任务。
75.如phys层与数据链路层之间的向下箭头所示,可以从数据链路层接收至物理层的命令。作为层功能,节点1的物理层可以使用到节点2的连接或链路,以便将物理层上的数据传送到节点2。在相同的令牌下,节点1可以通过节点1与节点2之间的物理链路从节点2接收数据,并且进一步将接收到的数据转发到物理层之上的数据链路层。该转发由图1b中节点1的物理层与数据链路层之间的向上箭头指示。节点2中的协议流类似于针对节点1所说明的协议流。
76.车辆中的一些现有的基于总线的通信网络不遵循如osi-iso模型中建议的物理层与数据链路层的分离。为了反映这个特性,发送器s和接收器r在图1b中被描绘为在物理层phys和数据链路层上扩展。
77.针对车辆中数据通信的可靠性的已知概念在osi-iso层模型的第7层上的应用层
中使用软件堆栈来实现,在图1b中分别指示为节点1和节点2的app1、app2。可以方便地在节点1与节点2之间引入虚拟信道的概念,以便指示使用软件堆栈app@节点l和app@节点2在两个或更多个参与者之间进行的经认证和/或受保护的通信。
78.使用软件堆栈为车辆中的车载网络提供安全性的示例是根据autosar标准的sec oc(安全车载通信)。oem可以方便地为节点1和节点2指定软件堆栈app,从而在节点1和节点2的硬件实现中提供自由。作为折衷,使用软件堆栈来实现真实性和/或数据安全性可能不再满足对从电子控制单元(ecu)到致动器的命令的致动器响应的实时要求,致动器在图1a中被描绘为参与基于总线的通信系统的节点n。考虑例如作为协议帧100(最佳参见图2a至图2c或图4)从控制单元ecu(在图1a中描绘为节点2)发送到制动致动器(比方说图1a中的节点n)的制动命令。如果要使用软件堆栈对这样的通信进行认证和保护,则单个节点的所有层都将涉及这种保护,这对于可靠的制动操作而言可能会花费太长时间。
79.软件堆栈真实性和/或数据安全性解决方案的其他缺点可能是软件堆栈可能没有被适当地设计,使得真实性和/或安全性功能降低或甚至受到损害。
80.因此,根据吸引人的情况,将与真实性和/或数据安全性有关的功能限制到通信系统的单个参与者(例如图1b中的节点1或节点2)的单层。将真实性和/或数据安全性功能限制到数据链路层将防止其他协议层被部分数据完整性和/或数据安全性操作占用。
81.作为其他益处,可能没有针对其建立真实性的协议帧100可能已经在数据链路层上被丢弃。这就是说,如果真实性测试表明协议帧100不计划从发送器发送到接收器以及/或者不以其原始形式到达接收器,则协议帧100可能被丢弃而无需进一步处理。因此,尝试用数据链路层上的无效或未经认证的帧100来泛洪基于总线的通信系统的一个参与者将仅影响数据链路层上的这一个节点,而更高协议层可以保持不受影响。对于基于软件堆栈的真实性和/或数据安全性的方法而言,这样的对真实性和/或数据安全性工作量的限制是不可能的。
82.此外,使用专用硬件元件是方便的,专用硬件元件即作为一件专用硬件实现真实性和/或数据安全性的数据链路层上的发送器和/或数据链路层上的接收器。这将具有其他优点,如果总线参与者或在参与者处的软件应用app随时间改变,则这样的构建块(考虑can总线收发器)可以用作标准电路,而无需进一步的研究或调整。
83.在下文中,应结合图2a至图2c来讨论在数据链路层上实现不同级别的认证和/或数据安全性的协议帧100的示例。
84.图1c在左侧示出了连接到总线以形成基于总线的通信网络的若干示例性节点节点1、节点2、节点3和节点4。这些节点中的一些是安全区域sz的一部分。在图1c的示例中,节点2、节点3和节点4被分组到相同的安全区域sz中,而节点1不是安全区域sc的一部分。被分组到相同的安全区域sz中的节点可以在经认证或甚至经认证且加密的模式下进行通信,如将关于图3a至图3e更详细地说明的。不形成安全区域sz的一部分的节点可能能够监听安全区域sz的节点之间的通信。在图1c的示例中,不是sz的一部分的节点1可以监听节点2、节点3和节点4之间的通信,节点1不能向作为安全区域sz的成员的这些节点发送经认证的消息。如果sz内的节点之间的通信被加密,则不属于安全区域sz的节点将不能在安全区域sz内传送的消息进行解密。
85.图1c在右侧进一步说明了安全区域sz的概念。安全区域sz可以被认为是物理节点
节点2、节点3和节点4上的逻辑覆盖(比如说安全性层)。安全性层中的安全性层实体sle1连接至物理层上的节点2,安全性层实体sle2连接至物理层上的节点3,以及安全性层实体sle3连接至物理层上的节点4。虽然在图1c中描绘的总线的物理节点1不是安全区域sz的一部分(在图1c的左图上最佳地看到),然而在图1c中选择的示例中,它可以被表示为安全性层内的安全性层实体sle n,并且安全性层实体sle n连接至物理层的节点1。
86.可以方便地将安全性层实体sle1、sle2和sle3中的各个安全性层实体之间的通信布置为安全信道sc。安全信道sc提供单向点到点或点到多点通信。应当理解,安全信道sc可以被认为是如图1b所描绘的用户级别的虚拟信道的数据链路层表示。
87.图1c的右侧示出了安全区域sz内的安全信道sc的设置。安全信道sca提供了从安全性层实体sle1到安全性层实体sle2和sle3的单向通信,而安全信道scb提供了从安全性层实体sle2到安全性层实体sle1和sle3的单向通信,而安全信道scc提供了从安全性层实体sle3到安全性层实体sle1和sle2的单向通信。在需要各个安全性层实体sle之间的双向通信的情况下,将需要至少两个安全信道sc。如图1a和1c所描绘的基于总线的通信网络在涉及网络内的各个节点之一之间的通信时,在其认证以及其数据安全性(即加密)属性方面可以是静态的。在这样的静态认证或认证与加密行为的情况下,可以降低协议帧的复杂性,并且可以选择使用所使用的安全信道上的信息来识别该安全信道sc的认证或认证与加密的级别。然而,对于具有静态认证和加密行为的基于总线的通信网络的各个节点之间的通信,在关于认证或认证与加密的灵活性方面存在折衷。
88.图2a示出了总长度为n字节的原始协议帧100,n是整数。协议帧100可以包括报头h、有效载荷p和帧结束指示eof。报头h可以具有h个字节的长度,h是小于n的整数。有效载荷p可以具有p个字节的长度。帧结束指示eof可以具有eof个字节的长度。
89.在图2a中,有效载荷p被描绘为在报头h的下游,并且帧结束部分eof在报头h的下游,并且在有效载荷p的下游。应当理解,报头h、有效载荷p、帧结束指示的长度合计为协议帧100的n个字节的总长度。还应当理解,各个元素报头h、有效载荷p或eof的相应长度可以具有与完整字节长度不成比例的比特长度。在这样的情况下,协议帧的总长度可以保持n个字节,但是协议帧100的各个段可以具有子字节级别的长度。还可以注意到,根据协议,协议帧100的总长度可以是与字节长度不相称的比特数。
90.报头h可以用于指示协议帧100的开始、帧的长度n、它所遵循的协议或协议变体。
91.可以在报头h中指示与协议帧100相关联的权限或优先级。这样的选项通常在协议规范中指出。
92.协议规范还可以在帧内提供第一指示,该第一指示指示针对给定协议帧提供数据链路层级上的认证。可替选地,协议规范可以在帧内提供第二指示,即针对给定的协议帧提供均在数据链路层级上的认证和数据安全性。根据情况,可以方便地在协议报头h内提供通用指示以指示针对给定帧提供均在数据链路层级上的认证或认证和数据安全性。针对这两种变体的通用指示可以方便地有助于报头h的处理,因为在报头h内需要较少的指示。作为在报头h内使用通用指示的结果,在帧100内可能需要一些其他空间来指示数据链路层上针对帧100的认证和数据保护的完整级别,作为报头h的简化处理的折衷。
93.报头h内的有效载荷类型pt指示在车载网络中是已知的。有效载荷类型指示可以是方便的,以便指示在帧内正在传输什么类型的有效载荷。在车载网络中,可以使用报头h
的有效载荷类型部分pt来指示支持各种有效载荷类型pt的帧(比如说以太网帧、原始can帧)或到制动致动器的制动命令。显然,这样的结构将有助于不同类型的帧的处理,因为当在数据链路层级上处理帧时,在该帧中传送的有效载荷的类型在早期变得明显。
94.可以方便地实现关于数据链路层级上的认证和加密的第一指示、第二指示或通用指示作为专用有效载荷类型pt。这样,有效载荷类型的已知概念将被扩展成进一步指示针对给定帧提供的认证和/或数据安全性的级别。如之前所提及的,如果决定使用专用有效载荷类型pt来实现通用指示,则以指示数据链路层上针对帧100的认证和数据保护的完整级别所需的帧内的一些其他空间为折衷来简化报头h的处理。
95.将了解,可以在不涉及更高协议层的情况下实现这样的真实性或真实性和数据安全性的指示,如针对给定帧提供真实性或真实性和数据安全性的软件堆栈的情况。
96.作为另一替选,协议规范可以引入安全性指示,该安全性指示将作为新数据字段添加在协议帧100内,最方便地是添加在报头h内。如之前所提及的,在对给定帧100应用了何种级别的真实性和/或安全性变得明显之前,在报头h中包括安全性指示将减少所需的帧处理的工作量。根据情况,协议可以提供携带通用指示的含义的安全性指示,这将减少安全性指示所需的空间。对于这种情况,帧100内(最方便地是在报头h内)的单个比特字段将足以携带作为数据字段添加至报头h的专用安全性指示中的通用指示的信息。如已经关于通用指示所讨论的,作为折衷,将需要另外的信息来获得关于对给定帧应用了何种级别的真实性和数据安全性的全部信息。
97.在图2a中,有效载荷p被描绘在报头h的下游,以及帧结束部分eof在报头h的下游,并且在有效载荷p的下游。在整个公开内容中将使用这种针对下游关系的惯例。
98.还可以想到,协议允许协议帧100具有变化的帧长度n。总帧长度n例如可以根据与协议帧100的单个实例一起传送的信息量而变化。
99.在车辆环境中,根据不同协议变体的较旧设备和最近的设备的并发操作是可能的。作为示例,相当旧的设备比如说abs传感器可以根据协议(比如说例如can协议(can是控制器局域网的简称))的早期变体进行通信,而最近的设备例如lidar系统可以使用can-fd(can-fd是控制器局域网灵活数据速率的简称)标准或者甚至使用canxl标准与电子控制单元进行通信。因此,在报头h中指示不同的协议类型可能是有用的,因为这也将影响应用于单个协议帧100的真实性和/或数据保护的级别。以类似的方式,可以方便地使用有效载荷类型指示来指示针对给定帧的均在数据链路层级上的真实性和/或数据安全性级别。为此,可以使用第一指示、第二指示、通用指示和安全性指示。
100.在这样的情况下,将n个字节或比特的总帧长度存储或编码在协议帧100中的某处可能是有意义的。设置帧长度标志将是如何对帧长度进行编码的一个选项。这样的信息可以如何存储在协议帧100中可以从协议规范中获得。
101.帧结束指示eof还可以包括如本领域中已知的差错校验信息,并且因此这里不再进一步说明。
102.图2b示出了根据本公开内容的协议帧的示例。协议帧100可以像图2a的原始协议帧一样包括报头h。使报头h包括关于数据链路层级上的真实性和/或数据安全性的第一指示、第二指示、通用指示或安全性指示是方便的。可替选地,如上所讨论的,报头h可以包括还覆盖了真实性和/或数据安全性方面的有效载荷类型pt。
103.如上所述,图2b的协议帧100具有n个字节或n个比特的长度。与标准协议帧不同,图2b的帧包括受保护的有效载荷部分pp。受保护的有效载荷部分pp被缩短,以便为可能具有st个字节长度的安全性标签sectag留出空间。根据本公开内容的协议帧100可以可选地包括具有si个字节的安全性信息secinf,其中,si是整数。在没有限制的情况下,安全性信息secinf可以被实现为报头h的一部分。根据图2b的协议帧还可以可选地包括长度为sn的序列号sn。根据情况,可以方便地在报头h中布置序列号sn。对于这样的布置,包含不正确的序列号sn的帧可能比序列号sn被布置在报头h的下游的帧更早地被丢弃。在没有限制的情况下,长度st、si、sn或pp可以与之前关于图2a描述的完整字节长度相称或不相称。
104.作为替选,发送序列号sn的缩短版本可能是有意义的。
105.本领域技术人员还将理解不发送帧100中的任何序列号的选项。如果选择该途径,则要求发送器和接收器都知道序列号的公共开始值,并且然后根据预定义的计数方案单独计数。如下面将关于密钥k进一步说明的,该序列号通常可以与安全性关联相关。
106.安全性信息secinf可以指示针对给定帧的在数据链路层级上的认证级别。可替选地,安全性信息secinf可以指示针对给定帧的在数据链路层级上的认证和数据安全性的级别。
107.还可以结合简化的安全性信息secinf在报头h内使用数据链路层级上的认证或加密的通用指示。这同样适用于安全性指示。如上所讨论的,这样的简化的安全性信息secinf将指示给定帧是仅被认证还是被认证且加密,而报头内的通用指示将指示针对给定帧存在某种级别的真实性或数据安全性(因此加密)。
108.应当理解,对于既没有提供认证也没有提供数据安全性的帧100,可以将安全性信息secinf或简化的安全性信息设置为指示针对给定帧没有提供认证和数据安全性的选定值。可替选地,当报头中的通用指示或安全性指示已经指示针对给定帧没有认证或数据安全性时,协议规范可以允许省略安全性信息secinf或简化的安全性信息。
109.安全性信息secinf可以方便地包括关于要用于特定帧100的sadse单元的配置的一些信息。安全性信息secinf还可以方便地包括关于安全信道的一些信息,该安全信道例如是图1c的示例性安全区域sz内的安全性层实体sle1、sle2和sle3之间的安全信道sca、scb、scc。在静态认证或静态认证与加密设置的情况下,安全信道信息可以用于检索用于在安全性层实体sle之间传送的给定协议帧100的认证和加密的密钥k。可以设想省略用于静态认证和加密行为的通用指示、第一指示和/或第二指示,并且依赖于安全信道信息来检索用于在这样的静态设置中进行认证和加密的所需密钥k。实际上,还可以考虑在静态认证或认证与加密的情况下省略一些帧元素,如本文中针对仅存在认证或者甚至既不存在加密也不存在认证的情况所概述的。
110.安全性标签sectag可以表示在数据链路层级上协议帧100计划从发送器s发送到接收器r的认证指示。安全性标签sectag还允许检查协议帧100在其到达接收器r的途中是否改变。
111.虽然安全性标签sectag被描绘为在受保护的有效载荷部分pp的下游,但是在没有限制的情况下,它也可以被布置在受保护的有效载荷部分pp的上游或者甚至被合并到标准报头h中。
112.应当理解,认证、加密和解密需要密钥k。出于以下若干原因,密钥部署不在本公开
内容的核心:
113.首先,在机动车辆环境中,基于总线的通信系统中的参与者的数量是有限的,并且在车辆的生命期内不会改变很多。可以方便地针对总线通信系统上的所有参与者使用长度为k的一个密钥k。
114.如果通过总线通信系统可通信地耦接的各个节点应当使用单独的密钥k,则该单独的密钥可以在车辆的制造期间被存储在基于总线的通信系统的相应节点中。因此,可以存在分别存储在节点1和节点2处的用于节点1与节点2之间的通信的第一密钥k1、以及存储在节点1和节点3处的用于节点1与节点3之间的通信的第二密钥k2等等。假设发送器s和接收器r使用相同的密钥k,因此解密、加密、认证和验证是对称的。
115.如果在系统内使用不止一个密钥k,则存储关于涉及认证和/或数据安全性的密钥k的信息可能是有意义的,该信息可以存储或指示在可选的安全性信息字段secinf中。使用安全性信息字段来指示当前协议帧100是仅经认证的协议帧还是经认证且加密的协议帧100是另一选项。显然,关于使用哪个密钥的信息也可以使用帧内的其他数据字段(例如虚拟can id、有效载荷类型pt或接受字段)来表示。
116.考虑到车辆的相当长的生命周期,可能希望具有不止一个密钥k来保护或验证且保护网络内的选定节点之间的通信。更精确地说,希望在车辆的生命期间改变密钥。可以方便地在通信节点处引入两个或更多个密钥使得节点可以改变用于认证和数据安全性的密钥。这样的用于认证和/或加密的密钥的改变需要一些关于当前正在使用哪个密钥的信息。希望将这样的关于当前采用的密钥的信息称为安全性关联。安全性关联可以方便地被存储在报头h、安全性信息secinf或简化的安全性信息内。协议规范可以允许针对不具有均在数据链路层级上的认证或数据保护的帧而将安全性关联设置为特定值。可替选地,协议规范可以允许在这样的情况下省略安全性关联。
117.字段序列号sn是协议帧100中的另一可选元素。序列号sn是一次性使用的整数,也称为随机数(nonce)。如果序列号sn以监听方未知的方式改变,则有助于防止重放攻击成功。autosar标准提出了具有其新鲜度值以便防止重放攻击的类似概念。
118.应当理解,下面说明的一些sadse算法可能需要一定长度的随机数。因此,根据情况从序列号sn中得出随机数n可能是有意义的。
119.作为数据链路层上的认证和/或数据安全性的最简单的实现,如果需要重放保护,则可以利用包括序列号sn的帧来实现具有仅认证的方案。如果不需要这样的保护,则可以省略序列号sn,从而允许在协议帧100内有更大的受保护的有效载荷部分pp。
120.根据情况,可以决定在系统内仅存在一个用于认证的密钥k,而可以省略包括这样的关于要使用的不同密钥k1、k2、k3
……
、kn的信息的字段安全性信息,从而允许更大的受保护的有效载荷部分pp。
121.如果既不需要不同的密钥k1、k2、k3
……
、kn也不需要重放保护,则可以省略字段序列号sn以及安全性信息secinf,从而与图2a所描绘的协议帧相比,允许进一步增大的受保护的有效载荷部分pp,其中,与标准协议帧相比,仅安全性标签sectag减小了受保护的有效载荷部分pp。
122.图2c示出了根据本公开内容的经认证和加密的协议帧100。图2c的协议帧100包括如关于图2b所讨论的报头h、帧结束指示eof、安全性标签sectag、可选的字段序列号sn、可
选的安全性信息secinf。图2c的协议帧具有与图2a和图2b中的协议帧相同的长度。如前所述,各个帧元素报头h、可选的序列号sn以及总帧长度n可以是任何整数个字节或者与完整字节长度不相称的任何其他长度。
123.图2c的协议帧100包括受保护的有效载荷pp的密文密码{pp}来代替受保护的有效载荷pp。图2c的协议帧具有与图2a和图2b中的协议帧相同的长度。如前所述,各个帧元素报头h、可选的序列号sn以及总帧长度n可以是任何整数个字节或与完整字节长度不相当的任何其他长度。实现数据链路层级上的针对协议帧100的真实性和/或数据安全性保护的一种方便的方式是使用可以称为对称认证和/或数据安全性引擎的方法,对称认证和/或数据安全性引擎被实现为硬件块,也被称为sadse,如现在将转向图3a至图3e更详细地说明的。
124.图3a示出了sadse的输入和输出值。sadse的输入和输出变量的命名遵循针对密码学文献中的分组密码模式建立的命名惯例。可以理解,sadse可以在仅认证ao模式下或在认证加密模式ae下操作。sadse接收秘密密钥k、可选的随机数n、1e个字符长度的输入流p以及附加认证数据aad作为输入。密钥k方便地是某个长度(比如说例如128、192或256比特)的对称密钥。如之前所提及的,密钥分发不在本公开内容的重点中。实际上,对应的方案是已知的,例如在ieee 802.1x-2010中定义的macsec密钥协商。可选的随机数n通常是仅使用一次的整数值。可以根据情况决定对于不止一个协议帧100具有相同的n值。
125.根据sadse的操作模式,输入流p具有不同的用途。附加认证数据aad包括在认证中使用的其他数据的一些比特,这将在下面进一步说明。
126.sadse提供1e个字符长度的输出流,并且还可以输出标签t或者可替选地直接输出认证指示ai。根据sadse的操作模式,长度为le的输出流具有不同的用途和含义。
127.基于所使用的sadse的输入变量来计算标签t,并且标签t可以被认为是上面定义的安全性标签sectag的重新计算。可以方便地根据sadse的情况来直接输出将协议帧100内的安全性标签sectag与新计算的标签t进行比较的结果。该比较结果可以由真实性指示ai表示。这就是说,真实性信息ai指示协议帧100是否计划从指定的发送器s发送到给定的接收器r(通常在报头h中提及两者)。真实性指示ai还指示协议帧100是否处于其原始形式。
128.如可以从图3a中得到的,可以选择使用可选的序列号sn作为输入到sadse的随机数n。这可以包括如之前所说明的从序列号sn中得出随机数n。显然,使用序列号sn来得出随机数n将简化操作sadse所需的工作量,因为随机生成器增加了实现sadse的电路的复杂度。对于序列号sn作为随机数n是有用的。估计序列号sn的所需大小是有意义的。这是为了回答以下问题:当实现序列号sn的计数器在达到计数器的最大值之后再次从其开始值开始计数时,直到给定sn的值将被重新使用将花费多长时间。
129.考虑车载网络中的can xl帧(最佳参见图4),出于该估计的目的,该帧包括2048字节的最大可能有效载荷和20字节的最小有效载荷。将考虑实现序列号sn的32、37、44和64比特的计数器长度,序列号sn还将用作随机数n。
130.这样的最大有效载荷帧将由19比特的报头信息、16435比特的有效载荷和crc信息以及26比特的确认和eof信息组成。对于网络内的典型波特率,将花费1.7ms来传送整个帧。具有20字节有效载荷的短帧将被更快地传送。
131.在以下估计中,考虑三种情况:a)针对一个单个信道在该信道上的最大可能业务处使用计数器sn来得出随机数n;b)考虑在轮询方法中在512个信道上分布通信,并且每个
信道具有从中得出随机数n的单独序列号sn,以及c)针对一个信道在具有最大可能业务的30%的情况下使用计数器sn作为随机数n。该估计的结果可以从下面再现的表中获得。
132.应当理解,在将序列号sn实现为计数器时,对于某些情况而言32比特的长度太短。显然,考虑到机动车辆的使用寿命,情况a和c将是不够的。
133.同样地,针对将序列号实现为随机数n的计数器的37比特的比特长度在情况a和c下是不够的,因为考虑到机动车辆的使用寿命,在情况a下的短帧的0.5年太短了。这同样适用于根据针对短帧的情况c的1.5年。
134.与此相比,在所有三种情况下,44比特或64比特的计数器比特长度对于小帧和长帧而言是足够的。实际上,一些时间跨度变得太长,使得实际值不被表示,而是仅由破折号指示。
[0135][0136]
现在转到图3b,考虑在发送器s处的仅认证模式ao下的sadse,这就是说当根据图2a认证协议帧100时。在该模式下,不使用长度为le的输入流。密钥k的使用与前面相同。sadse还接收序列号sn和附加认证数据aad作为输入。
[0137]
简单地说,附加认证数据aad包括从报头h开始直到受保护的有效载荷部分pp并且包括受保护的有效载荷部分pp的协议帧100的所有信息。如上面结合图2b所讨论的,如果不需要重放保护,则协议帧100可以不包括序列号sn。作为sn未被设置的结果,随机数n可以被保留在先前使用的值或者被设置为零或任何其他方便的值。显然,设置随机数n的规则在发送器s和接收器r处必须是相同的。
[0138]
应当理解,如前所述,由发送器s编译的帧可以包括通用指示、第一指示和/或安全
性指示,以便指示针对由发送器s编译的帧100的认证级别。
[0139]
如关于图2b所讨论的,如果在基于总线的通信系统内仅使用一个通用密钥k作为秘密密钥,则协议帧100可以不包括安全性信息secinf字段。
[0140]
如已经关于图2b所讨论的,在不需要重放保护并且在基于总线的通信系统中使用通用密钥k的情况下,可以省略序列号sn和安全性信息secinf字段。如上所说明的,随机数n可以保留在先前使用的值、被设置为零或者任何其他方便的值。同样,设置随机数n的规则在发送器s和接收器r处必须相同,以认证和/或保护给定的协议帧100。
[0141]
在发送器s处的仅认证模式ao下,sadse输出使用密钥k、随机数n和附加认证数据aad计算的标签t。标签t可以作为安全性标签sectag被合并到协议帧100中,从而生成经认证的协议帧100。
[0142]
现在转到图3c,考虑在数据链路层级的接收器r处的仅认证模式下的sadse。在接收器r处的仅认证模式认证在接收器r处接收的协议帧100是否是要从发送器s发送到接收器的原始协议帧。换句话说,接收器r根据图2a来认证协议帧100。在该模式下,安全性标签被用作代替图3a中的输入流p的标签t。密钥k和序列号sn的使用与前面相同。
[0143]
在接收器处的仅认证模式ao下,附加认证数据aad包括从报头h开始直到受保护的有效载荷部分pp并且包括受保护的有效载荷部分pp的协议帧100的所有信息。如上面结合图2b所讨论的,如果不需要重放保护,则协议帧100可以不包括序列号sn。作为sn未被设置的结果,随机数n可以被保留在先前使用的值或者被设置为零或任何其他方便的值。显然,设置随机数n的规则在发送器s和接收器r处必须是相同的。
[0144]
接收器r被配置成从协议帧中提取指示。如前所述,该指示可以被实现为通用指示、第一指示和/或安全性指示,以便指示针对在接收器r处接收的帧100的认证级别。
[0145]
如关于图2b所讨论的,如果在基于总线的通信系统内仅使用一个通用密钥k作为秘密密钥,则协议帧100可以不包括安全性信息secinf字段。
[0146]
如已经关于图2b所讨论的,在不需要重放保护并且在基于总线的通信系统中使用通用密钥k的情况下,可以省略序列号sn和安全性信息secinf字段。如上所说明的,随机数n可以被保留在先前使用的值、设置为零或任何其他方便的值。同样,设置随机数n的规则在发送器s和接收器r处必须相同,以认证和/或保护给定的协议帧100。
[0147]
在接收器r处的仅认证模式ao中,sadse输出使用密钥k、随机数n和附加认证数据aad计算的标签t’。标签t’是在发送器s处生成的安全性标签sectag的重新计算。
[0148]
在发送器s处计算的协议帧100内的安全性标签sectag与在接收器r处新计算的标签t’的比较允许认证在接收器r处接收的协议帧100是否要从发送器s被传输到接收器r,并且还认证协议帧100是否处于其原始形式。
[0149]
sadse可以方便地直接输出与将新计算的标签t’与协议帧100内的安全性标签sectag相比较的结果相对应的真实性指示ai。考虑到安全性标签sectag被输入到sadse,用于该比较的所有信息对于sadse而言是可获得的。
[0150]
考虑sadse的认证加密模式,也称为ae模式。
[0151]
现在转到图3d,在发送器s处描述sadse的ae模式。如前所述,sadse接收密钥k和序列号sn作为输入。受保护的有效载荷部分pp代替长度为le的输入流。注意,受保护的有效载荷部分pp作为明文输入。
[0152]
在发送器s处的ae模式下,附加认证数据aad包括报头h和可选的安全性信息secinf。
[0153]
应当理解,如前所述,由发送器s编译的帧可以包括通用指示、第一指示、第二指示和/或安全性指示,以便指示由发送器s编译的帧100的认证和数据保护的级别。
[0154]
如上面结合图2b所讨论的,如果不需要重放保护,则协议帧100可以不包括序列号sn。作为sn未被设置的结果,随机数n可以被保留在先前使用的值或者被设置为零或任何其他方便的值。显然,设置随机数n的规则在发送器s和接收器r处必须是相同的。
[0155]
如关于图2b所讨论的,如果在基于总线的通信系统内仅使用一个通用密钥k作为秘密密钥,则协议帧100可以不包括安全性信息secinf字段。
[0156]
同样,在不需要重放保护并且在基于总线的通信系统中使用通用密钥k的情况下,可以省略序列号sn和安全性信息secinf字段。如上所说明的,随机数n可以被保留在先前使用的值、设置为零或任何其他方便的值。记住,设置随机数n的规则在发送器s和接收器r处必须相同,以认证和/或保护给定的协议帧100。
[0157]
在发送器s处的ae模式下,sadse输出密文密码{受保护的有效载荷pp}作为长度为le的输出流c,该密文密码{受保护的有效载荷pp}是受保护的有效载荷pp的加密版本。sadse基于随机数n、受保护的有效载荷pp和附加认证数据aad来生成密文密码{受保护的有效载荷pp}。
[0158]
在发送器s处的ae模式下,sadse还输出使用密钥k、随机数n和附加认证数据aad计算的安全性标签sectag。安全性标签sectag可以合并到协议帧100中,从而得到如关于图2b所讨论的协议帧。如以上参照图3b和图3c所说明的,安全性标签sectag可以用于认证协议帧100是否计划从发送器s发送到接收器,并且还认证协议帧100是否处于其原始形式。
[0159]
在发送器s处用输出密文密码{pp}替换受保护的有效载荷pp并且将安全性标签sectag添加到协议帧100,得到如关于图2c所讨论的经认证和加密的协议帧。
[0160]
现在转到图3e,在接收器r处描述sadse的ae模式。如前所述,sadse接收密钥k和随机数n作为输入。在接收器r的ae模式下,受保护的有效载荷部分密码{pp}的密文代替长度为le的输入流。注意,受保护的有效载荷密码{pp}的密文是相同长度的受保护的有效载荷部分pp的加密版本。
[0161]
在接收器r处的ae模式中,附加认证数据aad包括从报头h开始直到受保护的有效载荷部分pp但不包括受保护的有效载荷部分pp的协议帧100的所有信息。根据图2b中讨论的协议帧100,附加认证数据aad因此可以包括报头h和可选的安全性信息secinf。
[0162]
如上面结合图2b所讨论的,如果不需要重放保护,则协议帧100可以不包括序列号sn。作为sn未被设置的结果,随机数n可以被保留在先前使用的值或者被设置为零或任何其他方便的值。显然,设置随机数n的规则在发送器s和接收器r处必须是相同的。
[0163]
接收器r被配置成从协议帧中提取指示。如前所述,该指示可以被实现为通用指示、第一指示、有效载荷类型和/或安全性指示,以便指示在发送器s处接收的帧100的认证和数据保护的级别。
[0164]
如关于图2b所讨论的,如果在基于总线的通信系统中仅使用一个通用密钥k作为秘密密钥,则协议帧100可以不包括安全性信息secinf字段。
[0165]
同样,在不需要重放保护并且在基于总线的通信系统中使用通用密钥k的情况下,
可以省略序列号sn和安全性信息secinf字段。如上所说明的,随机数n可以被保留在先前使用的值、设置为零或任何其他方便的值。记住,设置随机数n的规则在发送器s和接收器r处必须相同,以认证和/或保护给定的协议帧100。
[0166]
在接收器r处的ae模式下,sadse输出受保护的有效载荷部分pp作为长度为le的输出流c。sadse基于作为随机数n的可选的序列号sn、密文密码{pp}以及附加认证数据aad生成密文密码{pp}的经解密版本。
[0167]
在接收器r处的ae模式下,sadse输出使用密钥k、作为随机数n的可选序列号和附加认证数据aad计算的标签t’。标签t’是在发送器s处生成的安全性标签sectag的重新计算。
[0168]
在发送器s处计算的协议帧100内的安全性标签sectag与在接收器r处新计算的标签t’的比较允许认证在接收器r处接收的协议帧100是否计划从发送器s传输到接收器r,并且还认证协议帧100是否处于其原始形式。
[0169]
sadse可以方便地直接输出与将新计算的标签t’与协议帧100内的安全性标签sectag相比较的结果相对应的真实性指示ai。然而,这将要求安全性标签sectag可由sadse得到(图3e中未示出)。
[0170]
实现根据本公开内容的sadse的一种可能方式是分组密码模式。这样的分组密码模式的突出示例是aes伽罗瓦计数器模式(aes galois-counter mode)。
[0171]
对于aes-gcm,存在nist(美国国家标准协会)对关于aes-gcm的输入和输出值的相应比特长度的建议。表1中针对仅认证模式ao总结了这些参数。
[0172][0173]
对于仅认证模式ao,不使用le个字符的明文流,也不使用关于作为明文流的受保护的有效载荷pp的对应密文,这对应于关于图3b和图3c的sadse的ao模式的讨论。
[0174]
关于附加认证数据aad,128*a比特的长度指示应当选择128比特的整数倍a以优化实现本公开内容的sadse的aes-cgm模式的性能。可以方便地用零填充来实现达到128比特的倍数。如在ao模式中不使用的,计数器ctr是aes-gcm的内部变量,并且为了完整性起见而
再现。
[0175]
表2总结了针对实现sadse的aes-gcm的输入和输出参数的相应比特长度。
[0176][0177][0178]
与表1中的仅认证ao模式参数不同,认证加密模式ae利用计数器,该计数器被实现为32比特值。
[0179]
为了实现sadse的aes-gcm的最佳性能,密文密码{pp}和附加认证数据aad应当是128比特长的倍数。为了实现这样的比特长度,零填充是方便的选择。
[0180]
图4示出了根据can标准的协议帧。can帧以由11比特的仲裁字段、随后是7比特的控制字段形成的报头h开始。如已经根据图2a至图2d作为本公开内容的协议帧100的选项所讨论的,仲裁字段和控制字段都是具有与完整字节长度不相称的比特长度的can帧的部分。注意,根据can和can-fd标准(其是前面提到的can标准的变体),仲裁字段可以包括29比特。
[0181]
8字节的数据字段对应于根据图2a的原始协议帧100的有效载荷p。15比特的crc字段与确认时隙比特和确认分隔符比特以及7比特的帧结束一起对应于关于图2a至图2c所讨论的协议帧的帧结束部分eof。
[0182]
如果想要在ae模式下适应被实现为使用跨can网络的一个对称密钥k的aes-gcm加密模式的sadse概念,则可以使用原始有效载荷p的两个字节作为序列号sn,并且还使用两个字节作为安全性标签sectag,从而为受保护的有效载荷部分pp留下总共四个字节。
[0183]
可以方便地将序列号sn设置为原始有效载荷p的前两个字节,因为与两个序列号字节向原始有效载荷部分p的更下游移位的情况相比,将更早地检测到不正确的序列号。
[0184]
同样地,朝向受保护的有效载荷pp的末端移动安全性标签sectag将防止受保护的有效载荷部分被安全性标签sectag分段,其将使得can帧的解析更加复杂。作为替选,sectag和序列号sn都可以移位到受保护的有效载荷部分pp的开头。
[0185]
利用这样的方法,实现了防止重放攻击的保护,同时保持了原始有效载荷容量p的50%。
[0186]
对于在can系统内具有一个通用密钥k的aes-gcm模式的128比特的密钥大小和两个字节的序列号sn,表3针对仅认证模式ao总结了输入和输出参数长度,以在can帧中包括安全性标签sectag和序列号sn。
[0187][0188]
在图4的示例中,序列号具有2个字节的大小,其对应于16比特。密钥k的密钥长度是128比特。附加认证数据包括具有总长度为18比特的报头和对应于32比特的4字节的受保护的有效载荷pp,从而得到如表3中所指示的总共50比特。为了实现aes-gcm的有效计算,考虑对aad达到128比特的总长度所需的剩余78比特进行零填充。
[0189]
应当理解,如果要省略序列号sn,则表3中所述的长度值将进一步改变,以便将受保护的有效载荷pp的可用字节增加到6字节。该附加的受保护的有效载荷比特显然是以没有防止重放攻击为代价的。显然,根据安全性要求,可以决定将安全性标签sectag缩短到两个字节以下的大小,以便增加受保护的有效载荷部分pp的可用字节作为回报。
[0190]
对于在使用序列号sn的can系统内具有一个通用密钥k的aes-gcm模式的128比特的密钥大小,表4针对ae模式总结了输入和输出参数长度。
[0191][0192]
ae模式下的附加认证数据aad包括总长度为18比特的报头。为了实现aes-gcm的有效计算,考虑对aad达到64比特的总分组大小所需的剩余比特进行零填充。
[0193]
应当理解,如果要省略序列号sn,则表4中所述的长度值将进一步改变,以便将受保护的有效载荷pp的可用字节增加到6个字节。该附加的受保护的有效载荷比特显然是以没有防止重放攻击为代价的。显然,根据安全性要求,可以决定将安全性标签sectag缩短到两个字节以下的大小,以便增加受保护的有效载荷部分pp的可用字节作为回报。
[0194]
当实现can总线通信系统的sadse功能时考虑具有比aes-cgm更短的分组大小的分组密码是一种变型。simon speck是美国国家安全机构定义的这样的轻量级密码的一个示例。表5总结了simon和speck分组密码族的各种分组和密钥大小。
[0195][0196][0197]
考虑在can系统内具有一个通用密钥k的simon和speck分组密码的64比特的密钥大小,其中,报头大小为18比特,序列号sn以及安全性标签sectag各自为两个字节。
[0198]
表6总结了仅认证ao模式下的输入和输出参数长度,其中,在can帧中包括安全性标签sectag和序列号sn。
[0199]
从表6可以看出,明文流和密文将具有32比特的长度,其对应于精确的一个分组大小。因此,与aes-gcm一样,对于那些字段不需要零填充,并且对于can帧而言simon speck的操作比aes-cgm更有效。
[0200][0201]
对于本领域技术人员明显的是,序列号sn和/或安全性标签sectag的缩短或省略可以增大受保护的有效载荷部分pp,这作为折衷而减小了can帧的保护级别。
[0202]
如上面讨论的aes-gcm的情况,附加认证数据是50个字节长,并且将需要零填充,因为该长度在32比特的simon和speck分组大小的一个分组与两个分组大小之间。
[0203]
表7总结了认证加密模式的输入和输出参数长度,其中,在can帧中包括安全性标签sectag和序列号sn。
[0204][0205]
从表7可以看出,明文流和密文将具有32比特的长度,其对应于精确的一个分组大小。因此,与aes-gcm一样,对于那些字段不需要零填充,并且在这方面,对于can帧而言simon speck的操作比aes-cgm更有效。然而,如以上示例中讨论的aes-cgm的情况,附加认证数据aad比完整分组大小短,并且因此需要零填充。
[0206]
上述示例实现仅是示例性的。应当理解,本文描述的布置和细节的修改和变化对于本领域其他技术人员来说是明显的。因此,旨在仅受即将公开的专利权利要求书的范围的限制,而不受借助于本文中的实现的描述和说明而呈现的具体细节的限制。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献