Autosar KeyM模块

目录

7****功能描述

https://mp.weixin.qq.com/s/E6Q5g-trHn_KkRuvXNbZgQ

7.1 Crypto key****submodule

7.2 Certificate Submodule

7.2.1 通用行为

7.2.2 初始化

7.2.3 Certificate 配置

7.2.4****操作模式

7.3****自定义处理

7.3.1****处理自定义服务请求

7.4 Security Events

**参考 Autosar CP-**R24-11

7****功能描述

密钥管理模块大致可以分为两个部分:加密密钥子模块和证书子模块。加密密钥子模块主要用于与密钥分发实体(密钥主控)交互,该实体负责生成密钥或直接提供密钥材料。这些密钥会分配给CSM的加密密钥,并存储在专用的NVM块中,或者可以存储为各自加密驱动的密钥。证书子模块允许配置证书链,提供存储和验证证书的接口。证书中包含的公钥还可以分配给CSM密钥,以便在加密任务中使用。

SWS_KeyM_00001

如果将 Key MCryptoKeyManagerEnabled 设置为 FALSE,则密钥管理器的加密密钥子模块应完全禁用。在这种情况下,不得提供任何功能,也不得分配其他操作不需要的资源。

SWS_KeyM_00002 上游需求:SRS_CryptoStack_00013, SRS_CryptoStack_00007

如果 KeyMCertificateManagerEnabled 设置为 FALSE,则密钥管理器中的证书子模块支持将被完全禁用。在这种情况下,与证书操作相关的功能将不可用,并且不会分配任何资源。

7.1 Crypto key****submodule

加密密钥子模块用于初始化、更新和维护ECU的加密密钥材料。一个使用案例是为安全的车载通信提供密钥,这些密钥需要分发给相关的ECU。这些密钥应提供给CSM密钥,而CSM密钥分配给用于Secured I-PDU认证的加密任务。因此,从建模的角度来看,将key master 提供的密钥分配给用于相应Secured-I PDU的CSM密钥和任务是至关重要的。这是车辆中的一项整体任务,并以相同方式影响多个ECU。加密密钥子模块的一个目的就是支持这一操作。

key master 可以直接位于车辆内,以便内部协调密钥生成,例如作为某个特定的ECU。也可以使用云端的后端系统生成密钥材料,并以安全的方式将必要数据提供给ECU。通常,诊断命令用于密钥主控与加密密钥子模块之间的直接或间接通信。

SWS_KeyM_00003 上游需求:SRS_CryptoStack_00028, SRS_CryptoStack_00103

加密密钥子模块可以配置为以会话方式执行加密密钥操作。通过这种方式,诸如 KeyM_Prepare() 或 KeyM_Update() 的密钥操作仅在会话开启期间被接受。

SWS_KeyM_00004 上游要求:SRS_CryptoStack_00028

会话由调用 KeyM_Start() 启动。随后可以执行密钥操作,直到通过调用 KeyM_Finalize() 关闭会话。

SWS_KeyM_00005 上游要求:SRS_CryptoStack_00028 默认情况下,KeyM_Start() 函数不会考虑任何输入数据或长度信息,也不会提供任何输出数据,输出数据长度也不会被更改。

SWS_KeyM_00006 上游要求:SRS_CryptoStack_00115

如果配置选项 KeyMCryptoKeyHandlerStartFinalizeEnabled 设置为 TRUE,则可以选择调用密钥处理程序。KeyM_Start() 函数将依次调用 KeyM_KH_Start() 函数,并传入与 KeyM_Start() 相同的参数。KeyM_KH_Start() 的返回值将作为 KeyM_Start() 的返回值。

原理:KeyM_KH_Start() 函数可以执行 OEM 特定的检查,例如对任何输入数据进行签名验证,以证明密钥管理操作的真实性。注意:KeyMCryptoKeyHandlerStartFinalizeEnabled 的定义仅在 KeyMCryptoKeyStartFinalizeFunctionEnabled 设置为 TRUE 时才有效。

SWS_KeyM_00007 上游需求:SRS_CryptoStack_00013

如果配置选项 KeyMCryptoKeyStartFinalizeFunctionEnabled 设置为 FALSE,则密钥管理模块不会提供 KeyM_Start() 和 KeyM_Finalize() 函数。此时可以随时执行密钥更新操作。

SWS_KeyM_00008 上游需求:SRS_CryptoStack_00118

会话通过调用 KeyM_Finalize() 关闭。在调用过程中,任何在会话中更新过的密钥都将通过调用 Csm_KeySetValid() 设置为有效。在该函数完成其操作后,不再接受进一步的密钥更新操作。

SWS_KeyM_00009 上游需求:SRS_CryptoStack_00119, SRS_CryptoStack_00096

函数 KeyM_Finalize() 应验证所有已更新的密钥,即使其中一个密钥验证失败,也不应中止操作。

SWS_KeyM_00010 上游需求:SRS_CryptoStack_00013

如果配置选项 KeyMCryptoKeyPrepareFunctionEnabled 设置为 TRUE,则提供函数 KeyM_Prepare()。该函数目前没有任何功能性行为。如果配置选项设置为 FALSE,则不会提供功能接口。

SWS_KeyM_00011 上游需求:SRS_CryptoStack_00108、SRS_CryptoStack_00115、toStack_00118、SRS_CryptoStack_00110

如果配置选项 KeyMCryptoKeyHandlerPrepareEnabled 设置为 TRUE,则对 KeyM_Prepare() 的调用将依次传递给 KeyM_KH_Prepare(),并且参数和返回值将相应传递

其目的是在密钥更新会话启动后,在开始时调用一次 KeyM_Prepare()。调用的诊断服务可以向密钥处理程序提供执行后续密钥更新操作所需的特定数据。例如,它可用于提取密钥管理器所需的特定加密驱动程序信息,这些信息从(SHE)硬件中提取并再次在输出缓冲区中提供。或者,它可以启动一个 OEM 特定的密钥协商过程,其结果在之后的密钥更新过程中是必要的。另一种可能性是,在准备过程中密钥管理器提供一个(加密的)公共密钥。特定的密钥处理程序能够将密钥(解密后)存储到 CSM 中。这会生成一个分配给 CSM 密钥的公共密钥,并且可以进一步用于从中派生其他密钥。

相关推荐
ranjun10232 小时前
产教融合赋能:区域汽车服务行业的人才破局之路
汽车
星恒讯工业路由器4 小时前
5G FWA技术演进与趋势
网络·5g·信息与通信·4g·5g fwa·3gpp规范·fwa趋势
王维同学5 小时前
[自学][Windows C++]RunOnceEx 注册表分组键的安全遍历
c++·windows·安全·开源
sramdram6 小时前
基于32位微控制器的FOC汽车水泵方案
单片机·嵌入式硬件·汽车·微控制器·32位微控制器
星夜夏空997 小时前
网络编程(1)
服务器·网络
川石课堂软件测试7 小时前
安全测试|常见SQL注入攻击方式、实例及预防
服务器·数据库·sql·功能测试·测试工具·安全·单元测试
上海云盾-小余7 小时前
中小站点防护避坑:低价高防服务存在的各类安全短板剖析
网络·爬虫·安全·ddos
武子康8 小时前
从恶意 Dataset 到横向移动:一套可落地的 Dataset Processing Threat Model(资产边界 + 威胁枚举 + 5 层控制)
人工智能·安全
羽翼安全8 小时前
企业内网终端可视化风控方案解析,电脑屏幕防泄露系统保障数据资产安全
安全
数据知道9 小时前
邮件安全实战:SPF/DKIM/DMARC 配置与钓鱼绕过
网络·安全·web安全·网络安全·邮件安全