【AUTOSAR】【信息安全】SecOC

news2024/11/15 2:22:46

目录

一、概述

二、约束和假设

三、依赖模块

四、功能描述

4.1 安全解决方案的规范

4.1.1 安全解决方案的基本实体

4.1.2 安全的I-PDU构建

4.1.3 安全的I-PDU验证

4.2 与PduR的关系

4.3 初始化

4.4 传出PDU的身份验证

4.5 传入pdu的验证

4.6 网关功能

4.7 多核分布

4.8 安全事件

4.9 错误分类

4.9.1 开发错误

4.9.2 运行错误

五、API接口

5.1 API定义

5.2 回调接口

5.3 应用回调

5.4 调度函数


一、概述

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

        SecOC模块旨在为pdu级别上的关键数据提供资源高效和切实可行的身份验证机制。认证机制应与当前的AUTOSAR通信系统无缝集成。对资源消耗的影响应该尽可能小,以便为遗留系统提供附加保护。该规范基于主要使用具有消息认证码(MACs)的对称身份验证方法的假设。它们使用比非对称方法使用更小的密钥实现相同的安全级别,并且可以在软件和硬件中紧凑有效地实现。但是,该规范提供了必要的抽象级别,以便同时可以同时使用对称方法和非对称身份验证方法。

        SecOC模块集成在 AUTOSAR PduR的基础上。在此设置中,PduR负责将传入和传出的与安全相关的ipdu路由到SecOC模块。然后,SecOC模块应添加或处理安全相关信息,并应以I-PDU的形式将结果传播回PduR。然后,PduR将负责进一步路由i-pdu。此外,SecOC模块利用CSM提供的加密服务,并与Rte进行交互,以允许密钥和计数器管理。SecOC模块应支持PduR所支持的所有类型的通信范式和原则,特别是多播通信、传输协议和PduR网关。以下部分提供了SecOC接口、功能和配置的详细说明。

二、约束和假设

        SecOC模块用于所有需要安全通信的ecu中。

        SecOC模块只能用于保护整个SomeIpTp消息,而不能用于保护SomeIpTp消息的单个段。

三、依赖模块

(1)PduR:SecOC模块依赖于PduR的API和功能。它提供了PDU路由器所需的上层和下层API功能;

(2)CSM:SecOC模块依赖于CSM模块提供的加密算法。SecOC模块需要API函数来生成和验证加密签名或消息认证码;

(3)SecOC模块提供了一个具有管理功能的API。此API包含以下由RTE作为服务接口提供的API函数。

  • SecOC_VerificationStatus
  • SecOC_VerifyStatusOverride.
  • SecOC_VerificationStatusIndication

四、功能描述

        SecOC模块的目标是实现在pdu级别上的敏感数据的资源高效和切实可行的认证机制。本规范中提出的方法通常支持使用对称和非对称的方法来实现真实性和完整性保护。这两种方法大致都是针对相同的目标,并在概念上显示出主要的相似之处,但由于基本原语的技术属性不同,也存在一些差异。此外,使用身份验证器的常用术语也是不同的。一般来说,术语消息认证码(MAC)用于对称方法,而术语签名或数字签名指的是具有不同属性和约束的非对称方法。

4.1 安全解决方案的规范

        文档中所述的SecOC模块提供了必要的功能,以验证车辆架构中ECU之间基于PDU的通信的真实性和新鲜度。该方法要求发送ECU和接收ECU同时实现一个SecOC模块。两个SecOC模块集成起来,在发送端和接收端提供上层和下层PduRapi。两侧的SecOC模块通常会与PduR模块进行交互。

        在发送方端,SecOC模块通过向输出的真实I-PDU添加身份验证信息来创建一个安全的I-PDU。认证信息包括认证器(例如,消息认证码)和可选的新鲜度值。无论新鲜度值是否包含在安全I-PDU有效负载中,在生成身份验证器时都会考虑新鲜度值。当使用新鲜度计数器而不是时间戳时,在向接收方提供身份验证信息之前,应该由新鲜度管理器来增加新鲜度计数器。

        在接收端,SecOC模块通过验证发送方SecOC模块所附加的身份验证信息,来检查真实I-PDU的新鲜度和真实性。为了验证一个真实的I-PDU的真实性和新鲜度,提供给接收方SecOC的安全的I-PDU应该是由发送方SecOC和接收方SecOC提供的相同的安全I-PDU应该知道发送方SecOC在创建身份验证器期间使用的新鲜度值。

 

4.1.1 安全解决方案的基本实体

(1)真实的I-PDU和安全的I-PDU

        一个安全的I-PDU的有效负载由真实的I-PDU和一个身份验证器(例如,消息身份验证码)组成。一个安全的I-PDU的有效负载可以可选地包括用于创建身份验证器(例如,MAC)的新鲜度值。安全I-PDU中内容的结构顺序与下图一致。

 

        下图是带有截断的新鲜度计数器和截断的身份验证器的安全I-PDU内容的示例(没有安全的I-PDU标头)

 

【规范】所有直接或间接传输到通信链路另一侧的SecOC数据(如新鲜度值、认证器、数据标识符、SecOC消息链路数据...)应按大端字节顺序进行编码,以便每个SecOC模块以相同的方式解释数据。

【规范】固定的I-PDU标头应以字节表示真实I-PDU的长度。头的长度应通过参数数据头长度进行配置。

(2)身份验证程序覆盖的数据

        计算身份验证器的数据由安全I-PDU的SecOCDatDaId、真实I-PDU数据和完全新鲜度值组成。它们分别连接在一起,组成传递到身份验证器生成/验证的位数组。

 

(3)新鲜度值

        每个安全的I-PDU都配置了至少一个新鲜度值。新鲜度值是指用于确保安全的I-PDU的新鲜度的单调计数器。这样的单调计数器可以通过单独的消息计数器,称为新鲜度计数器,或通过一个称为新鲜度时间戳的时间戳值来实现。新鲜度值将来自于一个新鲜度管理器。

【规范】如果参数SecOCFreshnessValueTruncLength的长度小于实际新鲜度值,SecOC应只包含最不显著的在安全的I-PDU中高达SecOCFreshnessValueTruncLength的新鲜度值。如果参数SecOCFreshnessValueTruncLength配置为0,则新鲜度值不包括在安全I-PDU中。

【规范】如果真实数据新鲜度设置为TRUE,SecOC应使用真实的I-PDU的一部分作为新鲜度。在这种情况下,SecOCAuthDataFreshnessStartPosition以真实I-PDU内部的新鲜度确定起始位置,SecOC以位确定其长度。

【规范】新鲜度管理器以字节数组的形式提供或接收新鲜度信息。新鲜度总是与数组中第一个字节的MSB对齐。新鲜度的第15位是第二个字节的MSB,以此类推。新鲜度数组中未使用的位必须设置为0。相关联的长度信息必须以位的形式给出。

【规范】如果对于SecOCQueryFreshnessValue= CFUNC 和 SecOCProvideTxTruncatedFreshnessValue=TRUE,则每当为相应的PDU构造数据验证器时,SecOC调用接口函数SecOC_GetTxFreshnessTruncData。

【规范】如果对于SecOCQueryFreshnessValue= CFUNC 和 SecOCProvideTxTruncatedFreshnessValue=FALSE,则每当为相应的PDU构造数据验证器时,SecOC调用接口函数SecOC_GetTxFreshness。

【规范】如果对于SecOCQueryFreshnessValue= RTE 和 SecOCProvideTxTruncatedFreshnessValue=TRUE,则每当为相应的PDU构造数据验证器时,SecOC调用接口函数FreshnessManagement_GetTxFreshnessTruncData 。

【规范】如果对于SecOCQueryFreshnessValue= RTE 和 SecOCProvideTxTruncatedFreshnessValue=FALSE,则每当为相应的PDU构造数据验证器时,SecOC调用接口函数FreshnessManagement_GetTxFreshness 。

【规范】对于每个排队到SecOC的传输请求,应维护一个身份验证构建计数器。

【规范】在初始处理一个安全的I-PDU的传输请求时,SecOC应将认证构建计数器设置为0。

【规范】如果对新鲜度函数的查询(例如SecOC_GetTxFreshness())返回E_BUSY或对身份验证器的计算(例如Csm_MacGenerate())返回E_BUSY、QUEUE_FULL或任何其他可恢复的错误,身份验证构建计数器应增加。

【规范】如果构建验证失败,且验证构建计数器尚未达到配置值SecOCAuthenticationBuildAttempts,,则应在下次调用Tx主函数时重试新鲜度尝试和验证器计算。

【规范】如果验证构建计数器达到配置值SecOCAuthenticationBuildAttempts,,或者新鲜度函数的查询返回E_NOT_OK,或者验证器的计算返回不可恢复的错误,如返回E_NOT_OK或KEY_FAILURE,如果服务SecOC_SendDefaultAuthenticationInformation启用发送SecOCDefaultAuthenticationInformationPattern,SecOC模块对新鲜度值和验证器的所有字节使用SecOCDefaultAuthenticationInformationPattern来构建验证信息。如果未启用发送SecOCDefaultAuthenticationInformationPattern,SecOc模块应从其内部缓冲区中删除真实的I-PDU,并取消传输请求。

【规范】如果对于SecOCQueryFreshnessValue = CFUNC,SecOCProvideTxTruncatedFreshnessValue= TRUE,则SecOC将调用一个名为SecOC_GetTxFreshnessTruncData的函数,以获取TX消息的当前新鲜度。

【规范】如果对于SecOCQueryFreshnessValue = CFUNC,SecOCProvideTxTruncatedFreshnessValue= FALSE,则SecOC将调用一个名为SecOC_GetTxFreshness的函数,以获取TX消息的当前新鲜度。

【规范】如果PDU配置 SecOCQueryFreshnessValue = CFUNC,SecOC调用具有SWS_SecOC_91005中描述的签名的函数,以表明安全的I-PDU已成功启动传输。

【规范】如果PDU配置SecOCQueryFreshnessValue = RTE,SecOC调用服务操作FreshnessManagement_SPduTxConfirmation,以指示安全的I-PDU已成功启动传输。

【规范】对于SecOC中每个处理的安全I-PDU,应维护一个身份验证构建计数器和一个身份验证验证尝试计数器。

【规范】在对接收到的安全I-PDU进行初始处理时,认证构建计数器和认证验证尝试计数器应设置为0。

【规范】如果对新鲜度函数(如SecOC_GetRxFreshness())的查询返回E_BUSY,则应增加认证构建计数器,并且不执行认证验证的尝试。

【规范】如果对验证器(例如Csm_MacVerify())的验证返回E_BUSY、QUEUE_FULL或任何其他可恢复的错误,则应增加认证构建计数器。

【规范】如果身份验证构建尝试失败,且身份验证构建计数器尚未达到配置值SecOCAuthenticationBuildAttempts,,则将在对Rx主函数的下一次调用中重试新鲜度尝试和身份验证器验证。

【规范】如果验证器的验证能够成功执行,但验证失败(如MAC验证失败或密钥无效),则应增加验证验证尝试计数器,并将认证构建计数器设置为0。

【规范】如果身份验证构建计数器已达到配置值SecOCAuthenticationBuildAttempts,则SecOC模块应从其内部缓冲区中删除真实的I-PDU,并应删除接收到的消息。验证结果类型应设置为SECOC_AUTHENTICATIONBUILDFAILURE。如果使用SecOC_VerifyStatusOverride,则根据过载状态值处理验证结果和I-PDU。

【规范】如果对新鲜度函数的查询返回了E_NOT_OK,SecOC模块将从其内部缓冲区中删除真实的I-PDU,并将删除接收到的消息。验证结果类型应设置为SECOC_FRESHNESSFAILURE。

【规范】如果认证验证尝试计数器达到配置值SecOCAuthenticationVerifyAttempts,或者验证器的验证返回了不可恢复的错误,如返回E_NOT_OK或KEY_FAILURE,SecOC模块应从其内部缓冲区中删除真实的I-PDU,并删除接收到的消息。验证结果类型应设置为SECOC_VERIFICATIONFAILURE。如果使用SecOC_VerifyStatusOverride,则根据过载状态值处理验证结果和I-PDU。

【规范】如果验证成功,验证结果类型应设置为SECOC_VERIFICATIONSUCCESS。

【规范】新鲜度管理应使用验证状态标注功能(SWS_SECOC_00119)来获取一个安全的I-PDU的验证结果。此通知可以作为示例来同步额外的新鲜度尝试,也可以用于计数器增量。

【规范】如果PDU配置的SecOCQueryFreshnessValue= RTE和SecOCUseAuthDataFreshness= TRUE,并且安全的PDU被完全接收,SecOC将调用RTE服务FreshnessManagement_GetRxFreshnessAuthData来查询当前的新鲜度。接收到的部分PDU数据通过配置SecOCAuthDataFreshnessStartPosition和SecOC配置给此服务操作。

【规范】如果PDU配置的SecOCQueryFreshnessValue= RTE和SecOCUseAuthDataFreshness= FALSE,并且安全的PDU被完全接收,SecOC将调用RTE服务FreshnessManagement_GetRxFreshness来查询当前的新鲜度。接收到的部分PDU数据通过配置SecOCAuthDataFreshnessStartPosition和SecOC配置给此服务操作。

【规范】如果PDU配置的SecOCQueryFreshnessValue= CFUNC 和SecOCUseAuthDataFreshness= TRUE,并且安全的PDU被完全接收,SecOC将调用RTE服务SecOC_GetRxFreshnessAuthData来查询当前的新鲜度。接收到的部分PDU数据通过配置SecOCAuthDataFreshnessStartPosition和SecOC配置给此服务操作。

【规范】如果PDU配置的SecOCQueryFreshnessValue= CFUNC 和SecOCUseAuthDataFreshness= FALSE,并且安全的PDU被完全接收,SecOC将调用RTE服务SecOC_GetRxFreshness来查询当前的新鲜度。接收到的部分PDU数据通过配置SecOCAuthDataFreshnessStartPosition和SecOC配置给此服务操作。

【规范】如果Rx新鲜度请求函数返回E_NOT_OK,则认为真实I-PDU的验证失败,该PDU的认证重试计数器将增加。如果身份验证尝试的次数已经达到SecOCAuthenticationVerifyAttempts,,SecOC模块将从其内部缓冲区中删除真实的I-PDU。故障SECOC_E_FRESHNESS_FAILURE应报告给DET模块。

【规范】如果SecOCQueryFreshnessValue = CFUNC 和 SecOCUseAuthDataFreshness = TRUE , SecOC查询名为SecOC_GetRxFreshnessAuthData的函数,以获取RX消息的当前新鲜度。

【规范】如果SecOCQueryFreshnessValue = CFUNC 和 SecOCUseAuthDataFreshness = FALSE , SecOC查询名为SecOC_GetRxFreshness的函数,以获取RX消息的当前新鲜度。

4.1.2 安全的I-PDU构建

【规范】创建一个安全的I-PDU,从而认证一个真实的IPDU包括以下六个步骤:

  • 准备安全的I-PDU
  • 构造身份验证器的数据
  • 生成身份验证器
  • 构建安全的I-PDU
  • 增加新鲜度计数器
  • 广播安全I-PDU

【规范】SecOC模块应准备安全的I-PDU。在准备过程中,SecOC应分配必要的缓冲区,以保存认证过程的中间结果和最终结果。

【规范】SecOC模块应构建数据到认证器,即用于计算认证器的数据。数据身份验证器是通过按照给定的顺序连接数据Id(参数SecOCDataId)的完整16位表示、真实I-PDU的安全部分和与SecOCfrestnessValueID对应的完整新鲜度值而形成的。为此目的,数据Id和新鲜度值应按大端点字节顺序进行编码。

【规范】SecOC模块应通过将数据到认证器、数据到认证器的长度引入与SecOCTxAuthServiceConfigRef.对应的认证算法来生成认证器。

【规范】SecOC模块应将由此产生的身份验证器截断至SecOC认证信息运行长度所指定的位数。

【规范】SecOC模块应通过将安全的I-PDU标头(可选)、新鲜度值(可选)和身份验证器添加来构建安全的I-PDU。安全I-PDU的方案(包括内容在安全I-PDU中结构化的顺序)应符合以下要求:

 

4.1.3 安全的I-PDU验证

【规范】安全I-PDU的验证包括以下六个步骤:

  • 解析真实的I-PDU、新鲜度值和身份验证器
  • 从新鲜度管理器那里获得新鲜度值
  • 构建数据以进行身份验证
  • 验证认证信息
  • 将确认函发给新鲜度管理器
  • 将真实的I-PDU传递到上层

【规范】如果使用SecOCRxSecuredPduCollection,则SecOC不得执行任何验证,直到它收到真实I-PDU和构成安全I-PDU的加密I-PDUI-PDU。只有在两者都收到SecOC后,才应尝试验证最终的安全I-PDU。如果使用SecOC_VerifyStatusOverride,则根据过载状态值处理验证结果和I-PDU。

【规范】如果使用SecOCRxSecuredPduCollection,那么SecOC不得试图验证安全的I-PDU,直到它接收并缓冲了真实的I-PDU和加密的I-PDU值。如果使用SecOC_VerifyStatusOverride,则根据过载状态值处理验证结果和I-PDU。

【规范】在收到安全的I-PDU后,SecOC应从中解析真实的I-PDU、新鲜度值和身份验证器。

【规范】SecOC模块应构建在接收端上的用于计算认证器(数据到认证器)的数据。该数据由SecOCDataId| AuthenticIPDU | FreshnessVerifyValue。

【规范】SecOC模块应通过将数据验证器、数据验证器长度、从安全I-PDU解析的验证器和数据验证信息长度传递到SecOCRxAuthServiceConfigRef.对应的验证算法来验证验证器重复了第9.2章所述的验证过程。如果使用SecOC_VerifyStatusOverride,则根据过载状态值处理验证结果和I-PDU。

【规范】SecOC模块应报告相应的安全Rx-PDU的验证状态如下:如果SecOCRxPduProcessing/SecOCVerificationStatusPropagationMode设置为BOTH或FAILURE_ONLY,则根据当前配置通过呼叫功能SecOC_VerificationStatusCallout和SecOC_VerificationStatus接口提供验证状态。如果将配置设置为NONE,则不会提供任何报告。

【规范】SecOC模块应报告相应的安全Rx-PDU的验证状态如下:如果SecOCRxPduProcessing/SecOCClientServerVerificationStatusPropag状态模式设置为BOTH或FAILURE_ONLY,则根据其当前配置通过服务接口SecOC_VerificationStatusIndication提供验证状态。如果将配置设置为NONE,则不会提供任何报告。

【规范】如果配置项SecOCGeneral/SecOCPropagateOnlyFinalVerificationStatus设置为TRUE,则只报告最终状态。如果此项目被设置为FALSE,则应根据SWS_SecOC_00048和SWS_SecOC_00271报告每个单独的验证状态(最后一个以及以前所有失败的验证状态)。

【规范】如果一个安全的I-PDU的验证成功或相应地设置了状态覆盖,SecOC模块应使用PduR的底层接口将真实的I-PDU传递给上层通信模块。

4.2 与PduR的关系

 

【规范】在实现SecOC模块时,应保证没有其他模块依赖于它,并且如果不需要,则可以构建一个没有SecOC模块的系统。

【规范】SecOC应确保在一个真实的PDU中接收到的元数据将在相应的安全PDU中保持不变,反之亦然。

4.3 初始化

SecOC模块提供了一个初始化函数(SecOC_Init)。该函数初始化所有内部全局变量和缓冲区,以存储SecOCI-pdu和所有中间结果。SecOC的环境应在调用除SecOC_GetVersionInfo之外的SecOC模块的任何其他函数之前调用SecOC_Init。如果在模块初始化之前调用了一个API函数,则实现者必须确保以开发模式返回SecOC_E_UNINIT。

对于通过SecOC模块的I-PDU数据传输路径,在SecOC模块内分配了一个缓冲区。这个缓冲区需要初始化,因为它可能在下层通信模块的上层完全填充数据之前被传输。

【规范】在SecOC_Init内,该模块应初始化所有内部全局变量和SecOCI-pdu的缓冲区。

【规范】SecOC模块应用配置参数SecOCTxPduUnusedAreasDefault确定的值填充传输安全或传输加密Pdu的未使用区域,例如0xFF。

4.4 传出PDU的身份验证

【规范】SecOC模块在开始传输相应的安全I-PDU之前,应将完整的真实I-PDU复制到其内部内存中。

【规范】如果使用SecOCTxSecuredPduCollection,则SecOC应将安全的I-PDU作为两个消息传输:原始的真实I-PDU和一个单独的加密I-PDU。加密I-PDU应包含安全I-PDU的所有认证信息,以便真实I-PDU和加密I-PDU包含重建安全I-PDU所需的所有信息。

【规范】SecOC应在同一主功能周期内传输一个真实的I-PDU及其相应的加密I-PDU。

【规范】如果使用SecOCTxSecuredPduCollection,则SecOC将在加密I-PDU内部重复部分真实的I-PDU作为消息链接器,而Cryptographic I-PDU =Authentication Data | Message Linker。

【规范】如果使用SecOCUse消息链接,那么SecOC应使用位位置的SecOCMessage链接器长度的值作为消息链接器。

【规范】如果使用SecOCTxSecuredPduCollection,如果真实I-PDU和加密I-PDU需要SecOC_TxConfirmation,SecOC应将Tx确认转发到上层。当两个Tx确认调用的结果参数均为E_OK时,上层Tx确认调用的reult参数仅为E_OK,否则结果参数应为E_NOT_OK。

【规范】SecOC模块应提供足够的缓冲容量,以根据SWS_SecOC_00031中描述的过程存储传入的真实I-PDU、输出的安全I-PDU和认证过程的所有中间数据。

【规范】SecOC模块应为真实I-PDU和安全I-PDU提供单独的缓冲区。

【规范】来自上层通信模块的任何传输请求都应覆盖包含真实I-PDU的缓冲区,而不影响各自的安全I-PDU的缓冲区。

【规范】对于具有SecOC头长度为0的Tx安全I-PDU,SecOC模块应将安全I-PDU头添加到安全I-PDU,长度为安全I-PDU内的安全I-PDU,以处理动态真实I-PDU。

4.5 传入pdu的验证

【规范】如果SecOCReceptionOverflowStrategy被设置为替换,如果已启动接收具有相同Pdu标识符的安全IPDU,SecOC模块将释放所有与安全I-PDU相关的缓冲区。

【规范】如果SecOCReceptionOverflowStrategy被设置为拒绝,并且SecOC当前忙于相同的安全I-PDU,SecOC模块应忽略SecOC_RxIndication的任何后续调用,并为SecOC_StartOfReception的任何后续调用返回BUFREQ_E_NOT_OK。

【规范】SecOC应为输入的安全I-PDU、加密I-PDU和由此产生的真实I-PDU提供单独的缓冲区。

【规范】如果SecOCReceptionOverflowStrategy被设置为队列,并且SecOC当前忙于相同的安全I-PDU,SecOC模块将额外接收安全I-PDU,并在当前处理的安全I-PDU完成后进行后续处理。如果达到了排队大小所规定的限制,任何进一步的接收都将被拒绝。

【规范】对于在相应的SecOCRx安全层中存在SecOCRxSecuredPduCollection的每个安全的I-PDU,SecOC应只缓冲它所收到的最后一个真实的I-PDU和加密的I-PDU。如果缓冲区中已经填充了以前的I-PDU,则会覆盖以前的I-PDU。

【规范】SecOC应在收到各自真实的真实I-PDU和加密I-PDU后立即构建和安全的I-PDU。如果使用SecOC_VerifyStatusOverride,则根据过载状态值处理验证结果和I-PDU。

【规范】如果随后对生成的安全I-PDU进行的验证成功,那么SecOC应清除真实和加密I-PDU的缓冲区。

【规范】对于具有SecOC实际数据长度=0或未配置的安全Rx I-PDU,并且参考全局Pdu的动态长度(见ECUC_EcuC_00078)设置为假,SecOC模块应使用相应全局Pdu的配置长度提取真实的I-PDU。

【规范】对于SecOCputhpdu头长度=0或未配置的安全Rx I-PDU,参考全局Pdu的动态长度(见ECUC_EcuC_00078)设置为TRUE,SecOC模块应使用下层提供的长度提取真实的I-PDU。

【规范】对于具有SecOC数据头长度>0的安全Rx I-PDU,SecOC模块应使用安全I-PDU头运行时提供的长度提取真实的I-PDU。

4.6 网关功能

        SecOC模块支持对从一个源总线路由到一个或多个目标总线的I-pdu的认证和验证。这允许实现重新身份验证网关,可用于实现具有不同安全区域或属性的网络。对于给定的I-PDU的每个认证或验证过程都需要单独配置。此功能包括:

  • 对传出的I-pdu的身份验证,
  • 传入i-pdu的验证,
  • 重新认证网关,即当I-PDU被路由到另一个下层模块时,结合它们对传入的I-PDU进行立即重新认证的验证。

4.7 多核分布

        为了在不同的分区之间提供负载分配,加密堆栈的不同部分应分配给不同的分区。因此,应支持这样种分区在加密实例的基础上进行,即加密驱动程序实例应定位到不同的分区上。

【规范】SecOCTx主功能处理应在主功能内处理,通过SecOCTxPduMainFunctionRef

4.8 安全事件

【规范】如果已经为SecOC模块启用了安全事件报告(SecOCEnableSecurityEventReporting = true),则相应的安全事件应通过AUTOSAR_SWS_BSWGeneral中定义的接口报告给IdsM。

【规范】下表列出了为SecOC标准化的安全事件及其触发条件。

【规范】下表描述了针对相应安全性应报告的上下文数据:

 

4.9 错误分类

4.9.1 开发错误

 

4.9.2 运行错误

 

五、API接口

5.1 API定义

  1. SecOC_Init
  2. SecOC_DeInit
  3. SecOC_GetVersionInfo
  4. SecOC_IfTransmit
  5. SecOC_TpTransmit
  6. SecOC_IfCancelTransmit
  7. SecOC_TpCancelTransmit
  8. SecOC_TpCancelReceive
  9. SecOC_VerifyStatusOverride
  10. SecOC_SendDefaultAuthenticationInformation

5.2 回调接口

  1. SecOC_RxIndication
  2. SecOC_TpRxIndication
  3. SecOC_TxConfirmation
  4. SecOC_TpTxConfirmation
  5. SecOC_TriggerTransmit
  6. SecOC_CopyRxData
  7. SecOC_CopyTxData
  8. SecOC_StartOfReception

5.3 应用回调

  1. SecOC_GetRxFreshness
  2. SecOC_GetRxFreshnessAuthData
  3. SecOC_GetTxFreshness
  4. SecOC_GetTxFreshnessTruncData
  5. SecOC_SPduTxConfirmation

5.4 调度函数

  1. SecOC_MainFunctionRx
  2. SecOC_MainFunctionTx

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/467207.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【java】Java中的锁

文章目录 前言一、悲观锁二、乐观锁三、自旋锁原理自旋锁优缺点优点缺点 自旋锁时间阈值(1.6 引入了适应性自旋锁)自旋锁的开启 四、可重入锁(递归锁)五、读写锁六、公平锁七、非公平锁八、共享锁九、独占锁十、轻量级锁十一、重量级锁十二、偏向锁十三、分段锁十四、互斥锁十五…

Docker实战笔记5-利用 commit 理解镜像构成

转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/130338433 本文出自【赵彦军的博客】 文章目录 慎用 docker commit 注意: docker commit 命令除了学习之外,还有一些特殊的应用场合,比如被入侵后保存现场等。但…

【软件测试】测试用例的设计

文章目录 一. 针对没有需求的案例来设计测试用例二. 针对有需求的案例来设计测试用例1. 穷举法2. 等价类3. 边界值4. 判定表法5. 场景设计法5.1 简介5.2 基本设计步骤5.3 基本流和备选流5.4 使用场景5.5 优缺点5.6 实例 6. 错误猜测法 一. 针对没有需求的案例来设计测试用例 针…

网络安全入行?来了解下网络安全从业人员类别及其工作任务

又到了每年重保期间,红蓝双方都开始进行准备蓄势待发,网络安全从业人员每年供不应求,尤其是重保期间,双方都在疯狂的招揽准备网络安全人员。那网络安全从业人员分类到底有哪些,都负责哪些具体的工作任务呢?…

基于云计算技术的B/S架构云HIS 云HIS 云HIS系统

传统的HIS经历了20多年的建设,已经从单机版发展到局域网的版本,更被深入应用到医院的各项业务活动,成为医院必不可缺的基础设施平台,724小时不间断地支撑医院运行。因此医院都十分重视信息化建设。随着医改的不断推进和医疗行业的…

前端路由hash模式以及history模式详解

文章目录 前言一、hash 模式1、hash 定义2、location 对象3、window.onhashchange 事件 二、history 模式1、history 定义2、history API3、window.onpopstate 事件4、解决history模式下页面刷新404问题 前言 在前后端分离的项目中,前端一般使用 SPA 单页面应用模式…

屌的一批,阿里P8推荐的Spring Cloud实战笔记

Spring Cloud 前世今生 Spring Cloud体系由Spring 在2015年年初推出,至今已经五年多,其子项目在不断增加与完善,其所包含的功能点已经基本满足整个微服务体系的需求。加上Spring本身强大的技术后盾和活跃的技术社区氛围,Spring C…

车载毫米波雷达中国市场有望在2025年实现30亿美元的市场规模

近日,专注于前沿科技领域的国际咨询机构ICV发布了全球车载毫米波雷达的市场研究报告,汽车毫米波(mmWave)雷达基于频率为77 GHz的电磁波,具有高精度和准确性,可用于目标检测。这种技术有着广泛的应用&#x…

解决方案丨票据集中在集团总部处理,如何解决实物票据管理难?

目前越来越多的企业都成立了财务共享中心,通过统一财务中心可以进行集中式、标准化、统一化管理,提升财务运营水平与效率、降低企业的整体运作成本、集团战略发展支撑。 如何确保财务共享中心稳健和高效运营,是很多企业建立共享中心后面的难…

【Leetcode每日一刷】动态规划:931. 下降路径最小和

博主简介:努力学习的22级计科生博主主页: 是瑶瑶子啦所属专栏: LeetCode每日一题–进击大厂 目录 一、动态规划套路二、分析1、dp数组含义2、确定递推公式(递推函数的实现)3、dp数组初始化(base case)4、遍历顺序 解题…

React面向组件编程

React面向组件编程 基本理解和使用组件三大核心属性1: state效果理解强烈注意 组件三大核心属性2: props效果理解作用编码操作 组件三大核心属性3: refs与事件处理效果理解编码2.4.4. 事件处理 收集表单数据效果理解 组件的生命周期(重要)效果理解生命周期流程图(旧…

《庖丁解牛Linux内核分析》课后实验:实验一:反汇编分析

实验内容 参照第 1.3 节,将如下 C 语言代码汇编成“.s”文件,并分析“.s”文件中的汇编代码 的执行过程,其中重点关注 EBP/ESP 寄存器、EAX 寄存器、EIP 寄存器和函数调用堆栈空 间在汇编代码的执行过程是如何变化的。 int g(int x) { return…

省钱!NewBing硬核新玩法;手把手教你训练AI模特;用AI替代同事的指南;B站最易上手AI绘画教程 | ShowMeAI日报

👀日报&周刊合集 | 🎡生产力工具与行业应用大全 | 🧡 点赞关注评论拜托啦! 🤖 『NewBing 的2种硬核新用法』阅读文档并回答问题 & AI绘图 社区同学分享了两种NewBing的新用法,不仅准确高效&#x…

2023年湖北省武汉安全员ABC报名时间考试通过率如何?启程别

2023年湖北省武汉安全员ABC报名时间考试通过率如何?启程别 都2023年了,建筑企业想要报考三类人员,不知道在哪里报名,具备什么样的条件才可以报考建筑安全员abc,什么时间报名考试等等一系列问题,启程别来给你们细细说明…

即时通讯源码自己开发好还是对接云服务好

随着科技的飞速发展,通信技术也日新月异。与此同时,即时通讯应用也越来越受欢迎。许多企业在构建应用程序时会遇到一个问题:使用即时通讯源码自己开发好还是对接云服务好?本文将探讨这两种方法的优缺点,并为您提供一些…

环境配置 | Win10 VSCode连接远程服务器里的docker容器

环境:win10, VS code, 远程服务器Ubuntu16.04(远程服务器上已经安装好了dockers), 1.VScode下载 网址:Download Visual Studio Code - Mac, Linux, Windows 下载后双击运行 2.VSCode上配置 STEP 1.点击vscode右边工具栏点击拓展…

《嵌入式系统的WEB开发》

硬件平台:RK1109/T31/RK3308 软件系统:Linux,Lighttpd/ Nginx, FCGI, HTML/JS 选择使用FCGI,除了使用C 开发调用系统资源方便外. FCGI 可以解决CGI 多入口的问题,统一的入口,对数据同步,都是比…

Python 基于 Django 的学生成绩管理系统,可视化界面(附源码,教程)

1简介 对于学生成绩管理系统,充分运用现代化的信息技术手段,对于学生成绩信息管理发展的趋势就是信息化,信息化时代下的信息管理,需要深化信息管理体制与手段的改革,充分运用信息化手段来全方位的进行学生成绩管理系统…

VTK交互功能-callback/observe模式-vtkCommand

前言:本博文为系列博文,尝试将vtk交互功能讲清楚,包括常用的接口分析、常用的交互逻辑以及常用的交互Widget。若各位小伙伴有需要请多多关注,也希望能给各位小伙伴有所帮助。vtkCommand作为callback/obseve交互模式的基类&#xf…

0201自动配置类的导入-自动装配原理-springboot2.7.x系列

1简介 Spring Boot是基于Spring框架的,它的原理也是基于Spring框架的。 Spring框架是一个非常强大的框架,它提供了一系列的模块来帮助开发人员构建企业级的应用程序。Spring框架的核心是控制反转(Inversion of Control,IoC&…