【AUTOSAR】【信息安全】SecOC

2023-05-16

目录

一、概述

二、约束和假设

三、依赖模块

四、功能描述

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

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【AUTOSAR】【信息安全】SecOC 的相关文章

  • 护网HVV(蓝队)小白必知必会

    前言 在HVV期间 蓝队主要就是通过安全设备看告警信息 后续进行分析研判得出结论及处置建议 在此期间要注意以下内容 内网攻击告警需格外谨慎 可能是进行内网渗透 1 攻击IP是内网IP 攻击行为不定 主要包括 扫描探测行为 爆破行为 命令执行
  • 信息隐藏——DCT隐写

    DCT隐写 实验目的 了解DCT的系数隐写 实验内容 Jepg 压缩算法的回顾 用MATLAB实现图像DCT相关操作 完成基于图像DCT的信息隐藏实验 两点法的嵌入和提取 三点法的嵌入和提取 1 Jpeg压缩算法 一 色彩空间转换 RGB空
  • 25个恶意JavaScript 库通过NPM官方包仓库分发

    聚焦源代码安全 网罗国内外最新资讯 编译 代码卫士 专栏 供应链安全 数字化时代 软件无处不在 软件如同社会中的 虚拟人 已经成为支撑社会正常运转的最基本元素之一 软件的安全性问题也正在成为当今社会的根本性 基础性问题 随着软件产业的快速发
  • 黑客一般是如何入侵电脑的?

    1 无论什么站 无论什么语言 我要渗透 第一件事就是扫目录 最好一下扫出个上传点 直接上传 shell 诸位不要笑 有时候你花很久搞一个站 最后发现有个现成的上传点 而且很容易猜到 不过这种情况发生在 asp 居多 2 asp aspx M
  • [CTFshow]吃瓜杯复现wp

    热身
  • Kali:SYN简单泛洪攻击(DOS攻击)

    Kali SYN简单泛洪攻击 原理解析 工具原理解析 正式攻击思路 攻击演示 原理解析 SYN泛洪攻击 利用三次握手的缺陷 让tcp连接始终处于未成功连接的半连接状态 攻击机仅发出第一次握手 不对返回信息进行确认 服务器由于需要不断处理连接
  • 网络安全实验室

    网络安全实验室 网络信息安全 基础关 一 key在哪里 分值 100 过关地址 答 在火狐中开启代理 打开burpsuite 点击过关地址进行抓包 抓到的包如下 右击发送给repiter 点击go就行了 二 再加密一次你就得到key啦 分值
  • IOS逆向初探

    前言 这些文章用于记录学习路上的点点滴滴 也希望能给到刚入门的小伙伴们一点帮助 爱而所向 不负所心 环境 iphone 6 MacOS Monterey 12 3 1 一 IOS开发语言 Objective C Objective C是iO
  • MongoDB未授权访问漏洞复现及加固

    说明 仅供技术学习交流 请勿用于非法行为 否则后果自负 0x01 漏洞简述 MongoDB是一个介于关系数据库和非关系数据库之间的产品 是非关系数据库当中功能最丰富 最像关系数据库的 它支持的数据结构非常松散 是类似json的bson格式
  • 【如何处理信息收集时子域名爆破泛解析的问题】

    如何处理信息收集时子域名爆破泛解析的问题 子域名泛解析的成因 泛域名解析举例 子域名爆破中解决泛解析的方式 推荐工具 子域名泛解析的成因 在子域名解析中 每个子域名都会解析为一个特定的IP地址 只有被设置解析 用户才能正常进行访问 一旦用户
  • 密码学概述

    一 密码学的起源与发展 密码学英文名称为Cryptography 密码学最为一门学科 是最近几十年开始迅速被人们重视和发展起来的 密码学往往与信息安全四个字精密的联系着 最早的密码学的 始祖 可以说是早在公元前几百年就已经出现了 当然 当时
  • pikachu靶场记录之暴力破解-包括带token的密码猜解

    说明 pikachu是一个免费的php靶场 类似于dvwa 从github下载对应的项目 解压缩并放到phpstudy的www目录下即可 在phpstudy软件中开启apache mysql 访问首页 192 168 10 150 pika
  • 渗透测试工程师面试题大全(二)

    渗透测试工程师面试题大全 二 from backlion大佬 整理 51 sql 注入写文件都有哪些函数 1 select 一句话 into outfile 路径 2 select 一句话 into dumpfile 路径 3 select
  • 应急响应篇:windows入侵排查

    前言 应急响应 Incident Response Service IRS 是当企业系统遭受病毒传播 网络攻击 黑客入侵等安全事件导致信息业务中断 系统宕机 网络瘫痪 数据丢失 企业声誉受损 并对组织和业务运行产生直接或间接的负面影响时 急
  • 信息收集 (一)Google Hack & robots文件

    一 Google Hack 在渗透测试中 信息收集是尤为重要的一部分 甚至可以占到整个渗透的百分之六十至七十 可见掌握好信息收集的方法十分重要 那GoogleHacking作为常用且方便的信息收集搜索引擎工具 它是利用谷歌搜索强大 可以搜出
  • 漏洞常规专业术语

    基础漏洞条例 VUL Vulnerability 漏洞 POC Proof of Concept 漏洞证明 漏洞报告中 通过一段描述或一个样例来证明漏洞确实存在 EXP Exploit 漏洞利用 某个漏洞存在EXP 意思就是该漏洞存在公开的
  • 使用burpsuite对web进行账号密码暴力破解

    一 打开环境 1 打开php 2 打开burp suite 3 打开小狐狸 进入127 0 0 1 pikachu 二 Repeater 重发器 1 访问pikachu 多次进行用户名和密码的登录 描述 2 burp suite 中抓包 3
  • SM2加解密、签名验签

    导论 SM2是国家密码管理局于2010年12月17日发布的椭圆曲线公钥密码算法 在我们国家商用密码体系中被用来替换RSA算法 国产SM2算法 是基于ECC的 但二者在签名验签 加密解密过程中或许有些许区别 目前鄙人还不太清楚 后期有机会的话
  • 安全行业招聘信息汇总

    1 阿里巴巴 淘天集团 安全部 社招岗位 Java开发 招聘层级 P5 P6 工作年限 本科毕业1 3年 硕士毕业1 2年 base地点 杭州 职位描述 负责淘天安全部风控基础标签平台0到1能力建设及产品规划和落地 负责标签应用的产品沉淀和
  • 什么是跨站脚本攻击

    跨站脚本攻击 1 定义 2 跨站脚本攻击如何工作 3 跨站脚本攻击类型 4 如何防止跨站脚本攻击 1 定义 跨站脚本攻击 Cross site Scripting 通常称为XSS 是一种典型的Web程序漏洞利用攻击 在线论坛 博客 留言板等

随机推荐

  • 深入理解 http 反向代理(nginx)

    要理解什么是 反向代理 reverse proxy 自然你得先知道什么是 正向代理 forward proxy 另外需要说的是 一般提到反向代理 通常是指 http 反向代理 但反向代理的范围可以更大 比如 tcp 反向代理 在这里 不打算
  • 面试必问的红黑树,从根源上探究红黑树的本质

    前言 本文主要讲解下面试经常会问到的红黑树 xff0c 看看究竟是什么神仙鬼怪 二叉树 满足以下两个条件的树就是二叉树 xff1a 本身是有序树 xff08 若将树中每个结点的各子树看成是从左到右有次序的 即不能互换 xff0c 则称该树为
  • C++后台开发面试题总结(涉及C++基础、多线程多进程、网络编程等)

    C 43 43 后台开发面试题总结 涉及C 43 43 基础知识 多线程多进程 TCP IP网络编程 Linux操作 数据结构与算法 因巩固知识体系 xff0c 面试 xff0c 梳理以往看到过的知识点 xff0c 故总结如下相关题目 xf
  • 实战项目:手把手带你实现一个高并发内存池

    项目介绍 1 这个项目做的是什么 xff1f 当前项目是实现一个高并发的内存池 xff0c 他的原型是google的一个开源项目tcmalloc xff0c tcmalloc全称Thread Caching Malloc xff0c 即线程
  • HTTP keep-alive和TCP keepalive的区别,你了解吗?

    1 从文中找出我的IP 2 http请求中是客服端还是服务端主动关闭的tcp连接 xff1f 请阅读到最后的彩蛋部分 HTTP和TCP都是老生常谈的知识点 xff0c 本文不进行铺开赘述 我们可能在HTTP和TCP中都听说 长连接 的说法
  • Linux下各种锁的理解和使用及总结解决epoll惊群问题(面试常考)

    一 锁 锁出现的原因 临界资源是什么 多线程执行流所共享的资源 锁的作用是什么 可以做原子操作 在多线程中针对临界资源的互斥访问 保证一个时刻只有一个线程可以持有锁对于临界资源做修改操作 任何一个线程如果需要修改 xff0c 向临界资源做写
  • 一个10年C++程序员对技术和业务的感悟,献给还在迷茫中的你

    我越来越担心我作为一个C 43 43 程序员的未来 恍然间 xff0c 发现自己在这个行业里已经摸爬滚打了十年了 xff0c 原以为自己就凭已有的项目经验和工作经历怎么着也应该算得上是一个业内比较资历的人士了 xff0c 但是今年在换工作的
  • 大专程序员毕业五年税后18K,想进BAT,网友:吃shi都赶不上热的

    现在很多互联网公司招聘程序员 xff0c 招聘要求上面都明确需要本科 xff0c 并且985 211优先 现在有很多中专大专的程序员很优秀很积极 网友一 xff1a 女生 xff0c 92年 xff0c 毕业四年 xff0c 坐标深圳 xf
  • “天才少年” 27岁华为副总裁 百度CTO 成为阶下囚的传奇经历

    今天的主角是李一男 xff0c 也许你未曾听过他的名字 xff0c 但他却有金光闪闪的履历 毕业于华中科大少年班 xff0c 最年轻的华为副总裁 xff0c 百度CTO xff0c 12580CEO xff0c 金沙江创投合伙人 xff0c
  • 计算机网络---TCP的可靠传输机制和面向字节流传输

    在了解了TCP的面向连接传输之后我们讲解TCP的可靠传输相关的机制和面向字节流传输 一 xff0c TCP的可靠传输 可靠应答机制超时重传机制报文中的序号和确认序号 可靠应答机制 就是在每次发送数据或者请求之后对方都要回复一个应答信号 xf
  • Linux内核必读五本书籍(强烈推荐)

    深入理解Linux内核 推荐等级 xff1a 5颗星 为了透彻理解Linux的工作机理 xff0c 以及为何它在各种系统上能顺畅运行 xff0c 你需要深入到内核的心脏 cPu与外部世界的所有交互活动都是由内核处理的 xff0c 哪些程序会
  • YOLO系列标注文件txt标签类别索引批量修改脚本

    在我们做YOLO类检测网络的自定义训练时 xff0c 有时会将多个独立的数据集合并训练 xff0c 但往往遇到一个问题 xff0c 比如两个独立的数据集中有相同的一类 xff0c 比如船 但是在一个数据集中船的标注文件 txt文件 的索引为
  • realsense系列(二):录制深度图和RGB图

    录制深度图和RGB图 本次任务使用方法总结 本次任务 利用realsenseviewer软件录制深度图和RGB图 使用方法 1 将realsense连接到计算机上 xff0c 然后打开realsenseviewer软件 xff0c 打开后默
  • realsense系列(三):播放深度图和RGB图

    播放深度图和RGB图 本次任务使用方法总结 本次任务 利用realsenseviewer软件播放深度图和RGB图 使用方法 1 将realsense连接上计算机 然后打开realsenseviewer软件 点击Add Source Load
  • 海思3559万能平台搭建:OSD实时叠加的支持2区域RGN的配置

    前言 位图的生成只是我们字符叠加的基础 xff0c 具体表现就要靠对区域RGN的配置了 调试记录 现在距离移植成功osd也有一段时间了 xff0c 所有所有的报错一时也想不起来太多 xff0c 当时是在焦头烂额没有记录下全部 xff0c 但
  • 在ubuntu中使用命令行下载谷歌浏览器(Linux)

    使用命令行安装谷歌 1 sudo wget http www linuxidc com files repo google chrome list P etc apt sources list d 2 wget q O https dl g
  • TJA1043 CanTrcv

    目录 一 概述 二 功能和优势 2 1 基本功能 2 2 低功耗管理 2 3 保护和诊断 xff08 检测和信号传输 xff09 三 引脚信息 四 功能描述 4 1 五种工作模式 4 1 1 正常模式 4 1 2 仅监听模式 4 1 3 待
  • Git/Gitlab添加SSH秘钥与小乌龟配置

    目录 一 Git Gitlab添加SSH秘钥 二 秘钥添加情况验证 三 小乌龟关联SSH 一 Git Gitlab添加SSH秘钥 xff08 1 xff09 查找是生成sSh秘钥 xff0c 显示文件夹不存在 xff0c 可以生成秘钥 指令
  • 系统分析师之信息化技术(十一)

    目录 一 企业信息化概述 1 1 信息系统的基本概念 1 1 1 什么是信息 1 1 2 什么是信息化 1 1 3 信息系统分类 二 企业信息化规划 2 1 信息化战略体系 2 2 企业战略与信息化战略集成方法 三 信息系统开发方法 3 1
  • 【AUTOSAR】【信息安全】SecOC

    目录 一 概述 二 约束和假设 三 依赖模块 四 功能描述 4 1 安全解决方案的规范 4 1 1 安全解决方案的基本实体 4 1 2 安全的I PDU构建 4 1 3 安全的I PDU验证 4 2 与PduR的关系 4 3 初始化 4 4