【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 的相关文章

  • CISP 考试教材《第 8 章 知识域:物理与网络通信安全》知识整理

    第 8 章 知识域 物理与网络通信安全 CISP 考试教材 第 1 章 知识域 信息安全保障 知识整理 CISP 考试教材 第 2 章 知识域 网络安全监管 知识整理 CISP 考试教材 第 3 章 知识域 信息安全管理 知识整理 CISP
  • 【AUTOSAR】CCP协议的代码分析与解读(四)----CCP协议数据下载和上传

    数据下载 DNLOAD DNLOAD指令负责将CRO中的数据下载到ECU中 起始地址为先前设定的MTA0 下载完毕后MTA0指针自增 自增的字数为下载的字节数 DNLOAD命令的CRO数据场结构 如下所示 位 置 类 型 描 述 0 字节
  • 大数据环境下的“隐形隐私”保护问题

    导语 隐形隐私 泄漏问题一直我们乃至全球最难解决的问题 数据安全不止是一个企业发展的核心关键 更关系到企业单位的生死存亡 企业单位重要客户信息泄露并在市面上大肆流通发生之后我们在想尽各种方法亡羊补牢 可是我们数据安全难道不是要从最一开始就做
  • BadUSB制作教程_BadUSB简单示例(初学)_程序编写工具

    说明 本文章仅供学习交流 请勿用于非法用途 我用的是CJMCU Beetle arduino Leonardo USB ATMEGA32U4 Mini Size Development Board 程序编写工具 https download
  • 色字当头一把刀,看我如何用Python针对裸聊渗透测试

    本篇文章由知柯 信息安全 CSDN博主鸿渐之翼联合发布 转载请标明出处 深圳市狩猎者网络安全技术有限公司旗下安全团队 CSDN 知柯信息安全 知柯信息安全 用心呵护您的安全 Professional in Software Security
  • 协议数据单元PDU和服务数据单元SDU

    关注汽车工程师谈技术 一起学习技术 目录 1 协议数据单元PDU和服务数据单元SDU 2 AutoSAR中PDU和SDU的应用 3 总结 返回总目录 协议数据单元PDU 大家在AutoSAR开发过程中 特别是通信和诊断开发中 应该会经常碰到
  • Kali:SYN简单泛洪攻击(DOS攻击)

    Kali SYN简单泛洪攻击 原理解析 工具原理解析 正式攻击思路 攻击演示 原理解析 SYN泛洪攻击 利用三次握手的缺陷 让tcp连接始终处于未成功连接的半连接状态 攻击机仅发出第一次握手 不对返回信息进行确认 服务器由于需要不断处理连接
  • sqli-labs:less-11/12 简单SQL注入和身份验证漏洞综合

    这两个靶场是一样的题 我就拿less 12说事了吧 首先 尝试胡乱输入密码进行测试 发现存在报错 这时用admin和admin这个正确的账号密码进行测试 1 10前面的题目告诉了 发现有着正确的提示 但是还不够 我们尝试在username后
  • 警惕免杀版Gh0st木马!

    https github com SecurityNo1 Gh0st2023 经过调查发现 这款开源的高度免杀版Gh0st木马目前正在大范围传播 据称可免杀多种主流杀软 开发者不仅制作了新颖的下载页面 还设法增加了搜索引擎的收录权重 吸引了
  • 使用 OpenSSL API 建立安全连接 - 双向认证

    使用 OpenSSL API 进行安全编程 一 概念 1 什么是 SSL SSL 是一个缩写 全称是 Secure Sockets Layer 它是支持在 Internet 上进行安全通信的标准 并且将数据密码术集成到了协议之中 数据在离开
  • Web的基本漏洞--任意文件读取与下载漏洞

    目录 一 任意文件读取漏洞介绍 1 任意文件读取漏洞原理 2 任意文件读取漏洞产生的原因 3 任意文件读取漏洞探测与危害 二 任意文件下载漏洞介绍 1 任意文件下载漏洞原理 2 漏洞产生原因 3 文件下载的两种方式 三 常见的敏感文件 Wi
  • 网络空间安全导论

    感谢戴银涛老师的指导 笔记时间有点儿久了 整理的时候一些图丢了 不过问题不大 网络空间安全导论 目录 1 信息安全概述 从网络信息系统的发展概述 从系统分析方法看信息与信息安全的关系 从信息安全技术史角度理解网络安全相关概念 网络信息系统安
  • Day 36: 关系型数据库和MySQL概述

    关系型数据库和MySQL概述 关系型数据库概述 数据持久化 将数据保存到能够长久保存数据的存储介质中 在掉电的情况下数据也不会丢失 数据库发展史 网状数据库 层次数据库 关系数据库 NoSQL 数据库 NewSQL 数据库 1970年 IB
  • 文件上传漏洞upload-libs pass13

    文件上传漏洞upload libs pass13 查看源代码 发现是POST 00截断 Burp抓包 Ctrl R 如图修改上传路径 在上传路径中将 的hex改为00 即 Go 成功 发现文件路径 测试一下 成功
  • Java实现国密算法SM2,SM3,SM4,并且实现ECB和CBC模式

    代码中实现了电码本ECB模式和密文分组连接CBC模式 SM3 java和SM4 java为算法实现类 utils的都是根据实现类写的工具 可以根据需要调用杂凑算法SM3的杂凑功能获得杂凑值 SM4 java中 sm4 crypt ecb S
  • 网络安全-跨站请求伪造(CSRF)的原理、攻击及防御

    目录 简介 原理 举例 漏洞发现 链接及请求伪造 CSRF攻击 不同浏览器 未登录状态 登录状态 代码查看 工具 防御 用户 程序员 简介 跨站请求伪造 Cross site request forgery 也被称为 one click a
  • [工具使用]黑暗引擎FOFA

    黑暗引擎FOFA FOFA 点我进入 逻辑运算符 搜索子域名domain 搜索指定内容的host全部域名 body cert 搜索选定应用的网站 搜索指定开放端口的IP 搜索指定协议的IP 搜索IP或者网段的信息 搜索指定CSS JS网站
  • upload-labs靶场第一关——第九关

    Pass 01JS检测绕过 1 根据提示 从上述代码中可以看出 上述代码使用了JavaScript脚本 在前端对用户上传文件的类型进行了检测 因此 我们只需要先上传符合JavaScript脚本要求的数据包 然后使用Burpsuit抓取该数据
  • 信息安全中常用术语介绍

    转自 https www hi linux com posts 56503 html 我们在一些重大的安全事件发生后 经常会在相关新闻或文档中看到一些相关的安全术语 比如 VUL CVE Exp PoC 等 今天我们就来对这些常用术语的具体
  • Upload-labs 1-21关 靶场通关攻略(全网最全最完整)

    Pass 01 前端验证 因为是进行前端JS校验 因此可以直接在浏览器检查代码把checkFile 函数 即如下图红色框选中的函数 删了或者也可以把红色框改成true 并按回车 即可成功上传php文件 复制图片地址并用蚁剑进行连接 Pass

随机推荐

  • 深入理解 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