关键词不能为空

当前您在: 主页 > 英语 >

基于 CANoe 的 SecOC 实现

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-02-05 19:48
tags:

-

2021年2月5日发(作者:实蝇)


基于


CANoe



SecOC


实现




在今天的车载网络中,大部分数据传输是在没有任何特殊安全措施的情况下进行的。因此,一旦能够


直接访问车辆的总线,任何人都可以读取总线上传输的原始数据,甚至可以截获这些数据并且 修改后


重新发送到总线系统中。加密传输的数据不仅可以确保此信息只能由授权接收方接 收,更重要的是它


也会使拦截或修改报文变得更加困难。




如今的车辆是高度复杂的系统,由诸多传感器和执行器组成, 并通过总线系统不断交换数据。在绝大


多数情况下,控制器以原始数据的形式传输数据。 即使接收节点能对数据进行合理性检查,这些措施


对数据可靠性的提升也是有限的。接收 节点无法验证数据来自于期望的发送节点还是其他节点,即无


法验证数据是否真实。同时 ,总线上传输的数据也是可以自由访问的,因此可以通过分析总线上传输


的原始数据来反 推得到其表示的内容。这样的数据传输既不进行保密也不进行认证。




在最近几年中,新闻媒体已经报道了多起针对汽车网络的恶意 攻击行为。这些报道引发了大家的热烈


讨论:恶意攻击是否能够实质上影响车载网络通信 ?是否可以通过车载的无线终端或者


OBD


接口影


响车的行为?对于这些恶意的攻击,我们有哪些反制手段?




因此,加密通信(


Cyber Security



Security Onboard Co mmunication


)受到了越来越多的关注。为


了响应汽 车行业对数据加密和验证的需求,


AUTOSAR


组织提出了一 系列通信加密和验证的标准。在


本文中,我们以目前应用比较广泛的

Security Onboard Communication


为例介绍其实现 方式以及


CANoe


的支持情况。


Se curity Onboard Communication


简称为

< br>SecOC


,该模块的主要作用是为总线


上传输的数据提 供身份验证,它可以有效地检测出数据回放、欺骗以及篡改等攻击手段。




从目前已知的攻击手段来看,远程控制一辆汽车的唯一障碍就 是如何获取车辆总线的访问权。一旦能


够直接访问车内网络,黑客就可以模拟一个合法的 数据发送节点来操控整个汽车。使用了


SecOC


< p>
制后,黑客除了获取总线访问权以外还需要知道发送节点的密钥才能模拟出合法的数据。通过合理的


密钥分发机制可以保证密钥不会泄漏给汽车整车厂以外的其他任何人。因此


SecOC


可以有效地阻止


黑客对汽车网络的攻击。





Se cOC


标准中,


AUTOSAR


主要基 于两种手段来实现数据的真实性和完整性的校验:基于


MAC



身份验证和基于


Freshness


的 防重放攻击。




数据身份验证



MAC



Message Authentication Code


)是保障信息完整性和认证的密码学方法之一 ,其中常作为车载


总线加密认证方案的为


CMAC



Cipher



base d Message Authentication Code


)。

< br>MAC


的作用不是防


止有效数据被泄露,而是为了保护数 据不会被攻击方篡改,即完成数据来源的认证。如需保护通信数


据不被攻击方监听,则报 文的有效数据还需要进行额外的加密。



< br>在


AUTOSAR


中,需要加密保护的数据信息被称为< /p>


AuthenticI-PDU



Sec OC


模块根据


AuthenticI-


PDU


和密钥使用


CMAC


算法可以得 到


Authenticator


(即


M AC


值)。


Authenticator



AuthenticI-


PDU


再 加上一些必要的报头即得到


SecuredI-PDU


,其数据 结构如图


1


所示。发送节点在发送有效数


据(


AuthenticI- PDU


)前,会根据上述方法得到对应的


SecuredI- PDU


,然后再将


SecuredI- PDU


发送


到总线上。





1 Secured I-PDU


内容结构


1


< p>
CMAC


一般用于对称加密,对称加密要求发送节点和接收节点都具有相同 的密钥。整车厂可选择在车


辆下线刷写程序时静态分配密钥,也可选择使用云端服务器动 态地给车辆分配密钥。




在接收节 点,


SecOC


模块使用同样的算法和密钥对收到的

< p>
AuthenticI-PDU


计算


Authen ticator


。如果


接收节点计算出的


Authenticator



SecuredI-PDU< /p>


中的


Authenticator


相同, 则接收节点认为该数据


来源于合法的发送节点。反之,则接收节点认为该


PDU


来自非法的发送节点,相关数据将会被直接


丢弃 。




另外,由于传统


CAN


报文每帧最多传输


8


个字节的数据,如果在传统


CAN


总线上使用

< br>SecOC


,那



Authen ticator



PDU Header


通常会占用掉一半的数据场,这样会导致


CAN


报文的有效利 用率过


低。相比之下


CANFD


有长达


64


个字节的数据场长度,因此


CAN FD


总线更适合使用


SecOC


通信。




防止重放攻击



在上述的通信机制中 ,


Authenticator


的计算依据只包含有效数据和密 钥,因此只要有效数据相同,那



Authenticator


一定是相同的。这意味着攻击方可以使用重放攻击干扰控制器的正常通信甚至控制车


辆的行为。重放攻击指的是攻击者记录下合法数据源和接收节点之间的正常通信数据,并在必 要时将


记录下的数据重新发送给接收节点从而达到控制接收节点的一种攻击手段。此时接 收节点无法检查报


文是否来自合法的发送节点。




为了避免上述情况,在对


AuthenticI-PDU


加密过程中,


SecOC


规定


Authenticator


计算时还需要加入


Fre shness Value


(新鲜度值),并在


SecuredI-PDU


中也需要包含


FreshnessValue





Freshness Va lue


是一个根据一定逻辑不断更新的数值,


Freshnes s Value


的更新方法多种多样,如使


用报文计数器、整车 各节点统一的时钟作为更新源等方式。若将


Freshness Value

< p>
值结合有效数据和


密钥一同作为计算对象计算


Au thenticator


,那么由于每次数据传输


Freshn ess Value


值的变化,


Authenticator< /p>


也将随之改变。攻击方在监听到报文后,无法将


Authenti cator


与相应的有效数据匹配,


若重复发送带有错误


Freshness Value


的报文,接收节点将对其丢弃,也就 无法形成有效的重放攻击


(接入总线后进行的




DoS


攻击




不在讨论范围内)。加入


Freshness Value



SecuredI-PDU


如图


2


所示:





2 Secured I-PDU


内容结构


2



对于使用全局时钟的


Freshness Value


,各节点将周期性的进行时钟同步,


Freshness Value< /p>


随时间戳


改变而改变。若使用报文计数器作为

Freshness Value


的更新方法,其值可由发送节点提供,计数器


值仅与报文发送次数相关;也可由专门的


Freshness Value


管理节点进行同步控制。




我们可设置一个专门的


ECU


节点负责管理


Freshness Value


,它周期地发送同步报文至所有发送节点


和接收节点;也可使所有的发送节点都作为管 理节点,它将发送同步报文至相关接收节点。对于这两


种方案,


Freshness Value


不仅与报文发送次数相关,还将与

ECU


唤醒、重置、上下电、运行时间等


因素相关。



在分析


Freshness Value


的应用逻辑前,我们需要先简单介绍其加密过程。在发送节点,


SecOC


模块


向待发送的


Authe nticI-PDU


添加认证信息从而创建


SecuredI- PDU


。认证信息包括


Authenticator

< p>


e.g.


来自


CMAC


)和


Freshness Value


。无论


Freshness Value


是否包含在打包后的


SecuredI-PDU


中,在生成


Authenticator


期 间都会考虑


Freshness Value




在接收节点,


SecOC


模块通过验证收到的


Secure dI-PDU


中包含的


Authenticator

< p>
来判断


AuthenticI-


PDU

< p>
的来源。为了实现认证,接收节点除了需要


AuthenticI-PDU


外还需要知道发送节点计算


Authenticator


时使用的


Freshness Value






3


基于


M AC


的报文加密认证过程


-


-


-


-


-


-


-


-



本文更新与2021-02-05 19:48,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/603139.html

基于 CANoe 的 SecOC 实现的相关文章