用于避免对数据传输的操纵的方法和装置与流程

文档序号:12838864阅读:362来源:国知局
用于避免对数据传输的操纵的方法和装置与流程

本发明涉及用于避免对数据传输的操纵的一种方法和一种装置。



背景技术:

de102009002396a1描述了一种用于借助消息认证码(messageauthenticationcode)对在车辆中的数据传输进行操纵保护的方法。

在车辆中例如通过控制器局域网络(controllerareanetwork)或flexray数据总线进行传输的消息配备有校验和、例如用于循环冗余校验(cyclicredundancycheck)的校验和。安全关键的消息在接收方一侧依据该校验和来检验。

该校验和也可以通过消息认证码来补充或者代替。

借助软件和/或特定地针对所述软件适配的硬件来实现所述检验。

为了防止操纵,可以根据最小权限的安全范例(所谓的“principleofleastprivilege(最小权限原则)”)的原则来开发软件和/或硬件。在此,在整个系统之内,每个模块、也就是说每个处理器或每个程序都只获得对如下信息或资源的访问权,所述信息或资源对于满足相应的目的是必要的。

如果将特定的硬件模块用于检验消息认证码,那么最小权限的安全范例可能由于如下情况而被违反:特定的硬件模块也可被用于生成消息认证码。由此,对于消息的有危害的接收方来说也可能以最初的发送方的名义来发送具有有效的消息认证码的失真的消息。



技术实现要素:

本发明提供了按照独立权利要求所述的用于对数据传输进行操纵保护的一种方法和一种装置。

由此,在接收方一侧满足最小权限的安全范例。在特定的硬件模块中,在安全检验失败时的错误反应是多余的。不需要使用根据汽车安全完整性等级(automotivesafetyintegritylevel)评定的硬件来避免对数据传输的操纵,。

其它的优点由从属权利要求的主题和下面的描述以及附图中得到。

附图说明

实施例在附图中被示出并且在随后的描述中予以阐述。

图1示意性地示出了用于处理所接收到的消息的方法,

图2示意性地示出了用于处理所接收到的消息的另一方法,

图3示意性地示出了用于进行数据传输的装置。

具体实施方式

该方法的第一部分110借助软件来执行,该软件例如在计算单元上实施。在下文,该计算单元也被称为中央处理单元,cpu(centralprocessingunit)。

该方法的第二部分120借助特定的硬件模块来执行。所述特定的硬件模块在下文也用hsm来表示。

在所述两个部分之间的界限在图1中被显示为虚线。

在本例中,使用消息认证码、尤其是基于密码的消息认证码(公知为cmac),作为消息认证码(公知为mac)的实现形式。在对cmac的执行方面,尤其是参阅nist特刊(specialpublication)800-38b。原则上,该方法能被应用于所有的mac变型方案。

为了处理消息,该方法具有如下步骤。

在步骤131中,由cpu接收消息。该消息包括cmac。该消息例如包括安全关键的信号。

紧接着,实施步骤132。

在步骤132中,由cpu将消息转交给hsm。在本例中,为此设置接口、尤其是数据总线,用于在所述cpu与所述hsm之间进行数据传输。

紧接着,实施步骤133。

在步骤133中,在hsm中计算检验cmac,尤其是值cmac_c。

紧接着,实施步骤134。

在步骤134中,在hsm中将所接收到的cmac与所述检验cmac进行比较。尤其是,将被包含在该消息中的cmac与所述值cmac_c进行比较。

在一致时,实施步骤135。否则实施步骤136。

在步骤135中,将输出参量的值设置到如下值,所述值用信号通知所接收到的cmac与所述检验cmac一致。例如,将结果变量设置到值“ok”。

紧接着,实施步骤137。

在步骤136中,将输出参量的值设置到如下值,所述值用信号通知所接收到的cmac与所述检验cmac不一致。例如,将结果变量设置到值“wrong”。

紧接着,实施步骤137。

在步骤137中,将检验的结果和所述检验cmac转交给cpu。尤其是,将值cmac_c和结果变量转交给cpu。为此,设置接口、尤其是数据总线,用于在所述hsm与所述cpu之间进行数据传输。

如在图1中所示,该接口可以具有用于所述结果变量的第一区域138和用于所述值cmac_c的第二区域139。

紧接着,实施步骤140。

在步骤140中,在cpu中检验已经由hsm执行过的检验的结果。如果在hsm中的检验已经得出所接收到的cmac与所述检验cmac不一致,那么实施步骤141。否则实施步骤142。

在步骤141中,触发错误反应。例如,用错误登记“error”来写错误存储器。

紧接着结束该方法。

在步骤142中,将在该消息中由cpu接收的cmac与已经由hsm转交的检验cmac进行比较。例如,将来自该消息的cmac与所述值cmac_c进行比较。

可以设置对刷新计数器(freshnesscounter)的检验,以便确保如下消息应当在该时间点予以比较,所述消息的cmac与所述值cmac_c进行比较。

紧接着实施步骤143。

在步骤143中,使来自该消息的数据准备用于进一步使用。例如将所述数据从该消息中提取出来。

紧接着实施步骤144。

在步骤144中,由cpu输出所述数据。可替换地,所述数据也可以在cpu上运行的其它程序部分中使用。例如,将所述数据存储到输出存储器中。

紧接着结束该方法。

可替换地或附加地,在步骤141中已经触发了错误反应之后,也可以使用该消息、尤其是已经利用该消息被接收到的数据。

在本例中执行所述步骤中的某些步骤,使得满足预先给定的汽车安全完整性等级。为此,使用按照iso26262标准的版本(即汽车安全完整性等级)的执行方案,所述iso26262标准的版本在本申请的时间点是公知的。

在本例中,对于其它步骤不使用该标准。这些步骤在本例中可能满足其它质量要求。在本例中,这些步骤131、140、141、142、143和144必须按照预先给定的汽车安全完整性等级来执行,以便尽可能避免操纵。也存在如下可能性:在相对应地低的要求的情况下相对应地不使被提到的步骤的全部都执行。

优选地,只有当步骤134已经成功时,才在步骤137中将在步骤133中所计算出的检验cmac转交给cpu。否则,有利地,将无效的检验cmac、例如值0转交给cpu。

由此,只要所述检验cmac只有事先在步骤132中已经转交了具有一致的cmac的消息时才离开hsm,就满足最小权限的安全范例。

图2描述了所述处理的另一方法。如在事先依据图1所描述的方法中那样,具有相同的流程的步骤在图2中用相同的附图标记来表示。所述附图标记在下文中不再一次予以阐述。

现在实施步骤235,而不是步骤135。

现在实施步骤236,而不是步骤136。

现在实施步骤237,而不是步骤137。

在步骤235中,将输出参量的值设置到与所述检验cmac一致的值。

例如,将结果变量设置到所述检验cmac的值、尤其是已经由hsm计算出的值cmac_c。

在步骤236中,将输出参量的值设置到对应于根据可能cmac的格式的值,但是既不与所接收到的消息的cmac一致,也不与由hsm计算出的检验cmac一致、尤其是不与所述值cmac_c一致。例如使用值cmac_c_wrong。

在步骤237中,将检验的结果、例如检验值转交给cpu。尤其是将值cmac_c或值cmac_c_wrong转交给cpu。

这意味着,步骤237已经如下地被优化了,与cmac_c或cmac_c_wrong一起仅仅还有一个返回值被转交给cpu。在此,根据在步骤134中的检验结果,所述返回值或者对应于从步骤133计算出的检验cmac,或者对应于错误的cmac、也就是说cmac_c_wrong。

借此,与之前已经描述过的方法相比,一方面取消了在接口上的第一区域138。另一方面,取消了步骤140、也就是说对结果变量的检验。因此,失败的检验同样被识别并且触发相对应的错误反应。

例如,在步骤235、236、237中使用下面的策略来确定cmac_c或cmac_c_wrong。

在检验成功时,将检验cmac、尤其是cmac_c转交给cpu。

在检验不成功时,计算出错误的cmac、尤其是值cmac_c_wrong并且将其转交给cpu。

同时,适用下面的条件:

(b1)cmac_c_wrong不同于在所接收到的消息中的cmac,

(b2)cmac_c_wrong不同于所述检验cmac。

第一条件b1是功能安全(safety)的要求,以便确保在步骤142中的检验失败。

第二条件b2是信息安全(security)的要求,以便满足最小权限的安全范例。

用于cmac_c_wrong的计算方法被选择为使得两个条件b1和b2都被满足并且在此尤其是不可能回推出所述检验cmac、尤其是所述值cmac_c。

附加地,要发送的消息可以配备有刷新计数器,以便可以从功能安全(safety)(例如由于损坏的hw引起的数据帧冻结(daten-frame-freeze))的角度以及从信息安全(security)(重放攻击(replay-attack))的角度确保数据的实时性。

本发明例如被用在如下消息的受保护的总线通信中,所述消息具有安全相关的内容。

图3示出了一种装置,所述装置包括马达控制设备310和制动控制设备320,它们可以通过上面描述的类型的方法进行通信。马达控制设备310包括第一收发器311、第一cpu312和第一特定硬件313。制动控制设备320包括第二收发器321、第二cpu322和第二特定硬件323。收发器311、321或cpu312、322被构造用于借助所描述的方法之一进行通信。该方法的第一部分110例如相应地借助软件来执行,所述软件在相应的cpu312、322上实施。

该方法的第二部分120例如借助特定的硬件模块在相应的特定硬件313、323中执行。优选地,hsm是硬件模块。该硬件模块包含或者使用例如一个或多个硬件外围设备,以便实施上面所描述的功能。

该硬件模块也可以至少部分地设计为如下处理器,所述处理器实施软件以便呈现相应的功能。

例如,随机数发生器可以被安放在硬件模块的硬件中或者作为所述硬件模块的外围硬件来安放。该随机数发生器例如可以通过附加的处理器来实现,软件在所述附加的处理器上实施。

在硬件模块中的步骤、尤其是步骤133、134、135、136、235、236也可能会以软件来实施。

收发器311、321例如能通过数据总线330、例如控制器局域网络或者flexray来彼此连接。其它控制设备同样可以使用该方法。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1