AUTOSAR SecOC软件需求初步认识

英飞凌HSM内核开发-CSM模块 【代码】英飞凌HSM内核开发-CSM模块。 阅读详情

Autosar片上通讯安全特性的软件需求

1.功能性全览

SecOc模块主要用于在PDUs这一层的关键数据的资源节省和可行的认证机制。这一套认证机制无缝集成在当前的AUTOSAR通信系统,且在资源损耗这方面足够小以便附加到系统的剩余部分。这个规范是基于使用报文认证码MACs的主要对称认证方法的假定。他们实现了相同的安全水准通过比非对成方法更小的密钥,而且在硬件和软件上完成的紧促和有效。此外,该规范提供了必要的抽象级别,以便可以使用对称和非对称的身份验证方法。

  • SecOC模块集成在AUTOSAR PduR这一层上,同时作为Autosar通信栈的一部分。
  • PduR负责路由进入和输出安全相关的I-PDUs到SecOC模块。
  • SecOC模块应该添加和处理安全相关的信息和以一个I-PDU的格式把结果传播回PduR。PduR负责进一步路由I-PDUs。
  • 此外,SecOC模块使用由CSM提供的加密服务以及和Rte交互获取密钥和计时器管理。
  • SecOC模块也应该支持PduR中各种通信范式和原则,特别是组播通信,传输协议和PduR网关。

2.术语缩写和定义

2.1 缩略语

Acronym描述
CSMAUTOSAR加密服务管理
SecOC片上通信安全
MAC报文认证码
FV新鲜值
FM新鲜值管理

2.2 定义

Term描述
Authentic I-PDU一个任意的AUTOSAR I-PDU他的内容在网络传输过程中是被担保的,也称为收保证的 I-PDU
Authentication身份验证是与标识相关的服务。此功能适用于实体和信息本身。进行通信的双方当事人应相互识别。通过渠道传递的信息应根据来源、来源日期、数据内容、发送时间等进行身份验证。由于这些原因,密码学的这一方面通常细分为两大类:实体身份验证和数据源身份验证。数据源身份验证隐式提供数据完整性(因为如果消息被修改,则源已更改)
Authentication Information认证信息由新鲜值的一部分和身份验证器的一部分组成,认证信息是由SecOC附加在信息上的来实现受保证的I-PDU
Data integrity数据完整性的属性是数据指不会改变在不授权的方式下,包括数据自创立以来,传输过程中和通过一个授权的源存储。为确保数据的完整性,一方需要能够在不授权的部分检测数据的操作,包括对数据的插入,删除和替换
Data origin authentication数据源认证也是认证的一类,源中在过去的一些时间(通常未指定的)当作特殊的数据会被用做证实的一部分。通过定义,数据源认证包括数据完整性
Distinction unilateral/ bilateral authentication在单边认证,只一端进行身份验证,请求方甚至不在认证的范围内在被允许请求认证时。在双边认证中,请求方至少需要证实请求的权限在被认证时。双边认证是一种高效和更安全的方式在两端认证,最初的认证请求作为第二个报文,通过接收方的第一个报文,发送发也会请求认证。接收方发送第三个报文证实发送发的认证请求,相比较两个单边认证的报文则需要四个。
Entity authentication实体认证的过程是身份的一部分获取了明确的证据,第二部分在同一个协议中被调用,且第二部分明确参与了验证
Message authentication报文认证使用类似于数据源认证,它提供针对原始消息源的数据源身份验证,包括数据的完整性但是唯一性和及时性是不受保证的
Secured I-PDU一个受到保证的I-PDU是一个包含有效负载的AUTOSAR I-PDU,并提供附加的认证信息
Transaction authentication交易认证是指增强消息认证以额外提供数据的唯一性和及时性保证(从而防止无法检测到的消息重播)

3. 相关模块

  • BSW基础软件层
  • COM通信层
  • PDU和PDUR路由层
  • Crypt加密服务管理

4. 约束和设定

适用AUTOSAR释放的4.3版本

4.1 汽车域的适用性

适用于所用ECUs必要的安全通信
SecOC模块对于MOST音视频和低速LIN通讯网络是不专用的,对于多媒体和远程的汽车领域是受限的

4.2 SomeIpTp约束

SecOC模块只适用于保证整个SomeIpTp报文,不适用于保证独立的段在一个SomeIpTp报文
正确的传输顺序 SecOC -> PduR -> SomeIpTp 直接进行SecOC和SomeIpTp之间的通讯是不被允许的
由于SomeIpTp请求触发发送去制作报文头。SecOC不支持来自上层供给的数据通过触发发送

5. 对其他模块的依赖

SecOC模块处理I-PDUs作为其他模块的源或下层,应注意模块之间共享的配置项保持一致

5.1 PduR

  • 通信接口的API
  • 传输协议模块的API
  • 上层模块使用传输协议的API
  • 上层模块处理来自通信接口的I-PDUs的API

5.2 CSM

  • MAC生成接口(Csm_MacGenerate)
  • MAC验证接口(Csm_MacVerify)
  • 标签生成接口(Csm_SignatureGenerate)
  • 标签验证接口(Csm_SignatureVerify)

5.3 RTE

  • SecOC_VerificationStatus
  • SecOC_VerifyStatusOverride
  • SecOC_VerificationStatusIndication
    同时SecOC依赖BSW调度表响应功能是SecOC_MainFunctionRx和SecOC_MainFunctionTx在一个周期配置为SecOCMainFunctionPeriodRx和SecOCMainFunctionPeriodTX

6. 需求追溯

系统需求和软件需求的ID对应, 满足MISRA C 2012标准

7. 功能规格

对敏感数据的认证和完整性保护在整车系统中对于保护正确和安全的功能是必要的,这个确保接收的数据来自正确的ECU和值正确。SecOC模块旨在PDUs这一层对于敏感数据减少损耗和可行的认证机制,这个方式用对称和非对称的方式进行认证和完整性保护。在术语使用方面对称和非对称存在差异,通常报文认证码MAC被用作对称方式时的术语标志和数字标志参照非对称的方式有不同的属性和约束。

7.1 安全解决方案的规范

SecOC模块提供重要的功能去验证在车载架构下ECUs之间的真实性和新鲜度。这种方式要求在接收方和发送方都需要实现一个SecOC模块,且发送端和接收端每个SecOC模块都完整的提供上层和下层的PduR接口APIs。两端的SecOC模块通常都是和内部的PduR模块交互。
为了提供报文的新鲜值,SecOC模块在发送和接收端从外部的新鲜值管理获取新鲜值对于每一个识别出的安全I-PDU,例如每一个安全通讯的链接。

  • 在发送方,SecOC模快创造一个安全的I-Pdu通过添加认证信息到输出的Authentic I-PDU,这个认证信息由身份认证器(比如报文认证码MAC)和可选择的新鲜值。无论新限值是否在安全I-PDU负载中使用,新鲜值在生成身份验证器的时候都需要考虑。当使用新鲜值而不是一个时间戳,新鲜值计数器应该通过新鲜管理增加并事先提供验证信息到接收方。
  • 在接收方,SecOC模块检查来自发送方添加到Authentic I-PDU中的验证信息,包括新鲜度和真实性。为了验证这些信息,发送方和接受方的安全I-PDU应该相同,接受方应该了解新鲜值是否在发送方创建身份认证器的时候使用。
    ![外链图片转存失败,源站可能有防盗链机制,建议在这里插入图片描述
7.1.1 安全解决方案的基础实体
7.1.1.1 认证I-PDU和安全I-PDU

认证I-PDU是指AUTOSAR I-PDU要求防止未授权的操作和重播干扰。
安全I-PDU由认证I-PDU和一个身份认证器MAC组成,安全I-PDU的有效载荷是可选择的包括创造认证器MAC使用新鲜值。
在这里插入图片描述

  • 认证I-PDU的长度,在一个安全I-PDU内新鲜值和认证器可能从一个独特且未定义的安全I-PDU到另一个是不同的。
  • 身份认证器(如MAC)是指使用一个密钥生成独特的验数据字符,安全I-PDU的数据验证符,认证的有效载荷和新鲜值。这个认证器提供高度保障在一个认证I-PDU中的数据是由一个合法的源生成且同时提供给用于接收的ECU。
  • 基于认证算法(参数SecOCTxAuthServiceConfigRef或者SecOCRxAuthServiceConfigRef)来生成验证器,它可能去截断这个结果由验证算法生成的验证器MAC,在报文有效载荷的长度受限和没有空间去填充完整的验证器时进行截断。
  • 验证器的长度包含在一个安全I-PDU(参数SecOCAuthInfoTruncLength)中对于一个唯一可识别的安全I-PDU是特殊的。通过系统可以灵活的准备(例如两个独立特别的安全I-PDUs可能有不同的认证长度包含在安全I-PDUs的有效负载中)通过提供对每个安全I-PDU细微的配置MAC截断长度。
  • 如果使用了截断方式,这个认证器应该被截断由认证算法生成的认证器结果的高位,而新鲜值应该截断由新鲜值管理生成的新鲜值的低位。最终认证I-PDU,被截断的新鲜值以及被截断的认证器MAC共同组成安全I-PDU。
    📢📢 通常64 位及以上的MAC大小被认为可以提供足够的保护,防止NIST的猜测攻击。根据用例,可以挑选合适的MAC大小,但这也需要安全专家的仔细判断。
7.1.1.2 身份验证器涵盖的数据

计算身份验证器所依据的数据由安全I-PDU的数据标识符(参数SecOCDataId)、真实I-PDU数据和完整新鲜度值组成。它们分别连接在一起,以构成传递到身份验证算法以进行身份验证器生成/验证的位数组。
DataToAuthenticator = Data Identifier | secured part of the Authentic I-PDU | Complete Freshness Value

7.1.1.3 新鲜值

每个安全I-PDU配置了至少一个新鲜度值。新鲜度值是指用于确保安全I-PDU新鲜度的单调计数器。这种单调计数器可以通过称为新鲜度计数器的单个消息计数器或称为新鲜度时间戳的时间戳值来实现。新鲜度值将从新鲜度管理器派生。
📢📢 经过身份验证的消息有效负载中包含的完整新鲜度值的位数较大,会导致更大的窗口,其中接收器与发送器的新鲜度值保持同步,而无需执行同步策略。
📢📢 在经过身份验证的消息负载中包含部分新鲜度值时,新鲜度值称为两部分,即最高有效位和最低有效位。安全 I-PDU有效负载中包含的计数器部分称为新鲜度值的最低有效位,计其余部分称为新鲜度值的最高有效位。
例子:如果使用SecOC模块 SecOCUseAuthDataFreshness 设置为TRUE, 新鲜值起始位是11 SecOCAuthDataFreshnessStartPosition 设置为"11",新鲜值的长度为4 SecOCAuthDataFreshnessLen 设置为"4"。对于一个PDU “AB CD”(hex),它的安全数据新鲜值是"1101"(bin).
🚀🚀 对于一个PDU的字节下标是特殊的: 字节零下标从7到0,字节1的下标从15到8.

7.1.2 I-PDUs的认证

创造一个安全I-PDU和真实I-PDU的认证需要六个步骤:

  • 准备安全I-PDU
  • 构建认证器的数据
  • 生成认证器
  • 构建安全I-PDU
  • 增加新鲜计数器
  • 发送安全I-PDU
7.1.3 I-PDUs的验证

一个安全I-PDU的验证由六个步骤组成:

  • 解析真实I-PDU,新鲜值和认证器
  • 从新限制管理器获取新鲜值
  • 构建认证器的数据
  • 验证认证信息
  • 发送确认到新鲜值管理器
  • 通过的真实I-PDU到上层
7.1.4 不对称方式的调整

虽然术语和概念都是使用的同步密码学,但SecoOC模块对于同步和异步的密码学算法都是可以配置的。比如一个异步方式使用数字信号而不是MAC的方式,就要做出一些调整:

  • 取代在发送端和所有接收端共享的密钥,一双由公有密钥和私有密钥被使用。私有密钥在发送端使用去生成信号,所有接收端的共有密钥则去验证这个信号。私有密钥在接收端是不允许被计算和不被访问的。
  • 为了去验证一个报文,接收器需要访问完整的信号和输出信号的生成算法。然而作为MAC的方式中一个截断的报文是不可能实现的。参数SecOCAuthInfoTrunLength被设置为完整的报文长度。
  • 信号验证使用一个和信号生成不同的算法。因此和MAC方式不同在接受端需要重新根据截断的信号重新计算MAC比较,接收端/验证端的验证算法是使用DataToAuthenticrtor包括完整的计数器及信号作为输入去获取一个波尔值作为输出,来定义是否验证成功或者失败。

7.2 与PduR之间的联系

在这里插入图片描述

SecOC模块的实现不基于其他模块的依赖,即使一个系统中不使用SecOC模块也是可行的。
SecOC应该确保在响应的安全PDU中接收到的元数据没有改变,反之亦然。

7.3 初始化

  1. SecOC模块提供初始化的功能,该功能初始所有内部全局变量和存储SecOC I-PDUs
    的缓冲区及所有的中间结果。SecOC的环境应该响应SecOC_Init在调用SecOC模块的其他功能之前除了SecOC_GetVersionInfo。在开发者模式下实现器必须保证SecOC_E_NUINIT被返回以防止一个API功能在模块初始化之前被调用。
  2. 对于通过 SecOC 模块的 I-PDU 数据传输路径,在 SecOC 模块内分配了一个缓冲区。此缓冲区需要初始化,因为它可能在下层通信模块的上层完全填充数据之前被传输。
AUTOSAR SecOC(Secure Onboard Communication)机制简介 AUTOSAR SecOC机制简介 阅读详情

相关推荐

汽车网络信息安全-AUTOSAR SecOC,非常详细的学习笔记,由浅入深

那我们就来看一下安全报文由哪些部分组成:可用来指明安全PDU的长度需要被保护的数据新鲜度值(Freshness Value)和通常使用消息认证码,即Message Authentication Code,简称MAC由于SecOC机制需要占用总线带宽,因此一般适用于CANFD通讯网络。而在实际使用中,新鲜度值和MAC可能会使用较多长度的数据来提高安全性,但这又会消耗大量的带宽等资源,所以常使用截取的方式做平衡处理。新鲜度值和MAC都按照完整的值来生成,但是在发送和认证的时候只会截取一部分。

2301_76563067的博客 6115

汽车网络信息安全技术之AUTOSAR SecOC,非常详细的学习笔记,由浅入深

那我们就来看一下安全报文由哪些部分组成:报头(header):可用来指明安全PDU的长度真实的I-PDU(Authentic I-PDU):需要被保护的数据新鲜度值(Freshness Value)和身份验证器(Authenticator):通常使用消息认证码,即Message Authentication Code,简称MAC由于SecOC机制需要占用总线带宽,因此一般适用于CANFD通讯网络。

weixin_48120109的博客 9379

AutoSAR 产品系统需求详细解析

随着汽车电子技术的快速发展,汽车软件系统的复杂性也日益增加。AutoSAR是一种用于汽车电子系统开发的开放式软件架构标准,旨在提供标准化的接口和模块化的软件组件,以简化汽车软件的开发和集成过程。通过合理遵循AutoSAR的需求和规范,可实现高度可移植和可重用的汽车软件组件,为整个行业的发展做出贡献。以上示例代码中,我们通过包含AutoSAR的头文件,并使用AutoSAR提供的API来实现了一个简单的任务调度器。同时,硬件平台还需要提供稳定的供电和良好的抗干扰性能,以确保汽车电子系统的可靠性和安全性。

IlagCompile的博客 381

Csm (Crypto Service Manager)

AUTOSAR的Crypto Service Manager(Csm)模块提供了一套强大的加密服务,使汽车电子系统能够实现数据加密与解密、数据签名与验证、哈希计算、随机数生成、密钥管理等功能。通过标准化的API接口,Csm模块简化了加密操作的实现,提高了系统的安全性和可靠性。在数据加密、数据完整性验证、身份认证、随机数生成及密钥管理等应用场景中,Csm发挥着至关重要的作用。理解并使用AUTOSAR Csm功能,对于开发高效、安全的汽车电子系统具有重大意义。

erroror的专栏 2441

AUTOSAR Crypto Stack Introduction -- Part 2(API)

API Hash Interface Csm_Hash MAC Interface Csm_MacGenerate Csm_MacVerify Cipher Interface 包括对称加密算法和非对称加密算法,比如AES 和RSA Encrypt Csm_Encrypt Csm_Decrypt Random Interface The random interface provides generation of random numbers. A

StarFlex 1624

一文读懂AUTOSAR SecOC通讯

对称加密算法的加密和解密使用的密匙是相同的,也就是说如果通讯两方如果使用对称加密算法来加密通讯数据,那么通讯双方就需要都知道这个密匙,收到通讯数据后用这个密匙来解密数据。非对称算法中用到的密匙有两个,分别是公匙和私匙,要求通讯双方都有自己的公匙和私匙,自己公匙加密的数据只有自己的私匙才能解开自己私匙加密的数据也只有自己的公匙才能解开。公匙是可以公布在网络上的,相当于一个公共的电话簿,可以被其他人获取到的。以一个通信的例子来说明非对称算法:A 要和 B 进行通信,A在网络上获取到B的公匙。

usstmiracle的博客 4981

一文读懂Autosar SecOC通讯

本文详细介绍了Autosar中SecOC的知识点和实现时序

king110108的专栏 2万+

一文读懂AUTOSAR SecOC通信

在车载网络中,CAN总线作为常用的通信总线之一,其大部分数据是以明文方式广播发送且无认证接收。这种方案具有低成本、高性能的优势,但是随着汽车网联化,智能化的业务需要,数据安全性被大家越来越重视。传统的针对报文添加RollingCounter和Checksum的信息,实现的安全性十分有限,也容易被逆向破解,伪造报文控制车辆。.........

酒无忧的博客 4618

聊聊AUTOSAR: 基于DaVinci的SecOC开发与配置

当前车载网络通讯环境越来越复杂,未采取任何安全保护的报文,一旦被伪造或者篡改,将非常危险。为了提升信息的安全性,AUTOSAR标准中引进了SecOC,加入了通讯认证机制,能够有效的辨别出信息是否被篡改,提高了车内网络传输安全性。

帮助客户打造卓越 2804

AUTOSAR SecOC Configuration

General Query Freshness Value (SecOCQueryFreshnessValue) 当SecOCQueryFreshnessValue = CFUNC 且SecOCProvideTxTruncatedFreshnessValue = FALSE 是, 对于Tx Freshness 交由SecOC 处理(SecOC_GetTxFreshness) 当SecOCQueryFreshnessValue = CFUNC 且SecOCProvideTxTruncatedFr..

StarFlex 2628

AUTOSAR SecOC (安全板载通信)

本文介绍了AUTOSAR安全板载通信模块(SecOC)软件规范。它描述了AUTOSAR SecOC模块的基本安全特性、功能和API。SecOC模块旨在为PDU级别的关键数据提供资源高效和可行的认证机制。认证机制应该与当前的AUTOSAR通信系统无缝集成。对资源消耗的影响应该尽可能小,以便将保护作为遗留系统的附加组件。

m0_49148264的博客 1450

基于CANoe的SecOC实现

在今天的车载网络中,大部分数据传输是在没有任何特殊安全措施的情况下进行的。因此,一旦能够直接访问车辆的总线,任何人都可以读取总线上传输的原始数据,甚至 在今天的车载网络中,大部分数据传输是在没有任何特殊安全措施的情况下进行的。因此,一旦能够直接访问车辆的总线,任何人都可以读取总线上传输的原始数据,甚至可以截获这些数据并且修改后重新发送到总线系统中。加密传输的数据不仅可以确保此信息只能由授权接收方接收,更重要的是它也会使拦截或修改报文变得更加困难。 如今的车辆是高度复杂的系统,由诸多传感器和执行器.

king110108的专栏 7759

【AUTOSAR】【通信服务】SecOC

该规范是车载安全通信(SecOC)模块的软件规范。它基于AUTOSAR SecOC,并规定了如何实现自AUTOSAR SecOC SRS的要求。它描述了自动sarSecOC模块的基本安全特性、功能和API。

qq_42357877的博客 3227

AUTOSAR SecOC的CAN FD应用

CAN FD的主要优点之一是它使用AUTOSAR板载安全通信(SecOC) 为单协议数据单元提供安全性

NewCarRen的博客 1085

autosar学习笔记 之 E2E与SecOC

AUTOSAR对于车载单元件的通信安全,给出了两种标准,它们分别是E2E和SecoC。这两者现在都已经逐渐被各大主机厂使用起来了。

usstmiracle的博客 1338

AutoSAR SecOC小小科普

作为科普,到这个程度已经差不多了,如果要深入到相关开发,那就必须仔细研究FvM的机制,例如Master、Slave ECU对于FvM的处理机制,对于新鲜度值同步报文的处理方式,例如Slave没有收到Master的同步报文应该如何处理?在新鲜度值同步成功之后(重置周期内),正常情况下,TripCnt和ResetCnt都会保持不变,此时用于发送的安全PDU构建新鲜度值,就只会有一个变化,就是MsgCnt会自增1,发送出去的新鲜度值(假设14bitMsgCnt低位+2bit重置低位)会出现每次自增4的现象。

认真搞搞汽车MCU 2477

SecOC是什么

SecOC Security Onboard Communication 板端加密通讯,缩写为SecOC。 AUTOSAR标准中提出的针对ECU间通信安全提出的标准。 通讯安全,涉及到通讯中, 总线访问权, 数据被窃听, 数据被更改,(使用堆成加密。发送报文中包含数据和验证值。接收方根据报文内容计算出验证值与报文中自带验证值比较,相同则认为有效。) 重放攻击,(记录下正常通讯报文,不做更改,在适当...

迟来大师的博客 1万+

Autosar基础——车载信息安全SecOC

以Can总线上的接收为例,CanIf将接收到的加密信息传给PduR,PduR交给SecOC,SecOC利用CSM的服务和RTE之上的Key management和Counter management进行解密,然后SecOC再将解密后的数据给到PduR,PduR继续路由给对应的模块。其中消息计数器又分为高值和低值,而真正在报文中发送的值只包含消息计数器的低值和重置标志值。而在实际使用中,新鲜度值和MAC可能会使用较多长度的数据来提高安全性,但这又会消耗大量的带宽等资源,所以常使用截取的方式做平衡处理。

诊断协议那些事儿's blog 1275
上一篇: TLF35584电源管理芯片学习笔记(三)
DeepTravel
博客等级 码龄6年 312粉丝 7原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值