轩辕实验室丨欧盟EVITA项目预研 第一章(二)

2024-04-08 01:32

本文主要是介绍轩辕实验室丨欧盟EVITA项目预研 第一章(二),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本文介绍了车载通信系统的安全要求,以及HSM硬件安全模块软件安全结构的相关内容。

 

本文来自本实验室龚思陈的学习笔记。

 

     

车载通信系统的安全要求

 

  • 攻击的种类:

  1. 对安全的攻击

    (1)   未授权的突然刹车

    (2)   袭击主动制动功能

    (3)   篡改危险警告信息

  2. 对隐私的攻击

    (1) 反映错误的路况信息(如:模拟发生交通堵塞的通知信号)

    (2) 控制交通信号灯

    (3) 操控车速

    (4) 阻止用户通过收费站

    (5) 无法启动引擎

  3.  操纵交通流

  4. 增加/减少收费站的缴费

 


  • 以C2C系统发送轮胎打滑危险警告为例,在通讯过程中的基本表达式如下:

发送方

-       sense(ESP(车身电子稳定系统),SlipperyWheels):通过车身电子稳定系统(传感器)感知车身情况

-       positioning(GPS,position):通过GPS定位发送实时位置

-       send(CU,danger(position,type)):通过通信单元向接收方发送危险的信息,包括危险发生的位置和危险类型

接收方

-       receive(CU,danger(position,type))通过通信单元接受危险信息和发生危险的位置

-       positioning(GPS,position)通过GPS定位发送实时位置

-       show(HMI,D,warn(relative-position))通过人机交互界面显示相对位置

  • 两车之间通讯的演示图例:

 

图片

 

  • 扩展到多车的系统体系(SoS):

图片

 

  • 在该通信过程中总结出的安全要求:

    ①发出信号车辆的位置信息需要准确;

    ②接收信号车辆的位置信息需要准确;

    ③发出信号车辆的传感器感知传达的信号必须准确

这些信息的正确与否直接决定着功能安全和信息安全。


 

硬件安全结构(HSM硬件安全模块)

  • 硬件安全的作用

  • 通过以下方法保护软件安全:

    -       为上层软件层提供可信的安全锚

    -       保护更新、存储和安全相关的材料

  • 通过以下方法防止对硬件的入侵攻击:

    -       应用入侵保护措施

  • 通过以下方法加速安全机制:

    -       使用密码加速器

  • 通过以下方法减少大体积的安全消费:

    -       使用高度最优化的特殊电路装置

 

  • 电子控制单元(ECU)的安全结构

图片

在电子控制单元(ECU)的系统安全结构中:

  • 硬件安全模块(HSM)是微控制器的扩展,为上层软件层提供安全基础;

  • 将在后续单片芯片设计上被深度集成在CPU上。

 

  • HSM(硬件安全模块)的安全结构:

 

 

  • 硬件安全构建块(SBB)

(1)ECC-256是一种高性能非对称加密引擎。每秒可以产生并验证250个签名。

(2)WHIRLPOOL是基于AES的哈希函数。它的吞吐量约为1 Gbit / s,同时需要大约3,000片FPGA硬件尺寸。

(3)AES-128是对称块加密/解密引擎。它不仅支持标准块加密操作模式(如ECB、CBC),还支持高级加密,例如,在经过验证的加密方案(如GCM或CCM)中使用。

(4)PRNG with TRNG seed是一个伪随机数生成器,它使用来自真实内部物理随机源的真随机种子。

(5)Internal clock:内部时钟,能与UTC时间(世界标准时间)同步的、起硬件保护作用的时间参数。

(6)Monotonic counters是一个64位单调计数器功能块,可作为简单的安全时钟替代方案。

  • SBB密码解密的具体过程

  • 初始化硬件的加密和解密区域

 

  • 调用示例

 

  • 信息块处理

图片

  • 最后一轮加密、解密

图片

  • 密钥导出

  • 将密钥导出以进行传输、交换、迁移

图片

  • 调用示例

图片

  • 导入密钥以进行传输、交换、迁移

图片

  • 调用示例

图片

  • HSM的三种部署结构:

  • 目的在不同的使用场景,根据不同的耗费、不同的功能性和安全性要求选择HSM的安全结构,使得确保功能整体性的同时,达到高效节省。

  • 三者关系light和medium是full的真子集

 

  • Full HSM:1-2片高性能通信模块ECU;采用高速非对称加密

    应用场景

    -       V2X通信单元

    -       中央网关(可能)

图片

  • Medium HSM:2-4片中央多任务ECU,用于ECU之间;采用低速非对称加密、高速对称加密

    应用场景:(适用于动态通信)

    -       引擎控制

    -       前、后模块

    -       防盗控制系统

图片

  • 设计适合两者:严格的安全要求和多任务ECU的高费用压力

  • 看上去和full ECU很像,实则没有专用的ECC硬件和专用的哈希函数,(所包含的CPU性能要更低),但是仍然可以通过软件的方法执行一些性能要求不高的非对称密码操作

  • 能符合所有车载安全用例,但是不适合V2X通信

 

  • Light HSM:使用较少,但是安全关键;采用对称加密

    应用场景:(适用于静态通信)

    -       重要的传感器(车轮传感器、加速传感器、踏板传感器)、

    -       重要的制动器(停顿、门锁、转向灯)

    -       一些控制器(模块、车灯、时钟)。

图片

  • 集成并保护产生安全关键信息的小ECU、传感器、制动器(使得它们能够保证通信数据的真实性、完整性和机密性)

  • 缩减到只有一个消费友好型AES对称(更能满足传感器和制动器在成本和效率方面的严格需求

  • 不能提供任何硬件安全保障,但是能够确保传感器和制动器高效运行以及产生受保护的信息

 

  • HSM的真子集:安全硬件扩展(SHE)

  • 通过硬件提供基于AES-128的密码服务:

    -加/解密

    -消息认证码

    -引导加载程序的认证唯一的设备ID

    -应用不可直接访问的方式存储密钥。

 

  • 硬件安全接口

  • 主要特征:

  • HSM采用异步的硬件接口。

  • 大多数硬件安全模块(如AES,MAC,数字签名和哈希函数)通过会话标识符实现多会话(Multi-sessions)

  • EVITA密钥使用可以通过以下方式获得额外的个人授权

    -       调用函数时对的密码(包括失败计数器)

    -       通过验证一个bootstrap引用来验证固有的bootstrap

    -       密码和bootstrap引用的结合

  • Evita能够了解所有HIS的安全硬件扩展的指令

  • 比如,一个HSM可以同时引用加密和产生随机数的功能,但是不能是两个同时在同一个硬件加密构建块上的加密技术。

 

  • 一般的约束条件

  • 一些单会话接口用于一些小的硬件安全构建块(如RNG)

  • HSM大部分是单线程的,但在多种硬件功能被同时访问的情况下能够实现多线程。(比如,PRNG和AES可以同时被调用)

  • EVITA命令在硬件级别上没有明确和单独的保护:

    -       也就是说,在硬件层面上,它们是公开的,并且没有任何重放和真实性保护

    -       如果这是必需的,我们提议一个类似TPM的方法(基于一个单一的用户管理)来建立会话密钥和“旋转随机数(rotate nonces)”

  • EVITA在硬件层面没有用户管理

 

  • 硬件安全逻辑和功能:内部密钥层次结构

图片

  • 主要密钥

    -       MVK:形成生产商信任域

    -       IDK:设备身份字——fixed & Signed by MVK.

    -       OVK:形成原始设备制造商的信任域——fixed

    -       CSK:时间同步密钥 与UTC(世界标准时间)同步——Signed by MVK.

    -       SRK:存储根密钥 实现内部产生的密钥与外部存储安全交换

    -       SxK:利益相关密钥:利用所有外部产生的SSK、SAK进行身份验证、安全功能激活或者内容保护——Signed by MVK.

  • 内部密钥

图片

  • 使用不对称的加密算法设置

  • 使用flags={ sign, verify,encrypt, decrypt, timestamp, secureboot, securestorage, dhke, utcsync,transport, … };每个flag都有单独的使用和转移的特权

  • 可以是有时限的

  • 可以由发行人认证

  • 通过密码,bootstrap或者两者的结合来颁布使用认证

  • 单个密钥数据结构(取决于算法标识符)

  • 以内部的密钥句柄为参考

 

  • 外部密钥

图片

  • 仅用于传输、迁移或安全存储交换

  • 密钥需要相应的传输权限和授权(如果设置了的话)

  • 算法、使用标识和有效间隔是完全可见的

  • 公共密钥的数据是完全可见的

  • 加密密钥blob=加密密钥内部,如密钥授权和私钥部分

  • 完全可见的验证码(MAC/Sig)用于密钥的完整性和真实性保护

 

  • 密钥证书

图片

  • 用于认证内部密钥(非对称和对称)的公钥信息

  • 认证签名是用个人设备身份密钥完成的(这转而由HSM制造商认证,即通过MVK)

  • 如果需要的话,(对称的)密钥可以通过Hash(密钥数据)被识别

 

  • ECU配置寄存器

图片

  • 类似于可信计算平台配置寄存器

  • 启用可信的度量链

  • 可与引用相连接,以启用secure boot

图片

 

软件安全结构

  • 安全要求:模块化、可扩展、可配置、灵活度高

    -灵活整合新机制

    -灵活部署根据系统环境和应用程序选择单一中心或多中心

    -静态和动态配置

    -同步与更新

    -提供安全的应用程序接口

  • 模块化的车载安全结构(安全抽象层)

图片

 

  • 嵌入式车载安全结构的模块:

图片

  • 多任务ECU的部署设想

图片

这篇关于轩辕实验室丨欧盟EVITA项目预研 第一章(二)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/884217

相关文章

vite搭建vue3项目的搭建步骤

《vite搭建vue3项目的搭建步骤》本文主要介绍了vite搭建vue3项目的搭建步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录1.确保Nodejs环境2.使用vite-cli工具3.进入项目安装依赖1.确保Nodejs环境

idea+spring boot创建项目的搭建全过程

《idea+springboot创建项目的搭建全过程》SpringBoot是Spring社区发布的一个开源项目,旨在帮助开发者快速并且更简单的构建项目,:本文主要介绍idea+springb... 目录一.idea四种搭建方式1.Javaidea命名规范2JavaWebTomcat的安装一.明确tomcat

pycharm跑python项目易出错的问题总结

《pycharm跑python项目易出错的问题总结》:本文主要介绍pycharm跑python项目易出错问题的相关资料,当你在PyCharm中运行Python程序时遇到报错,可以按照以下步骤进行排... 1. 一定不要在pycharm终端里面创建环境安装别人的项目子模块等,有可能出现的问题就是你不报错都安装

uni-app小程序项目中实现前端图片压缩实现方式(附详细代码)

《uni-app小程序项目中实现前端图片压缩实现方式(附详细代码)》在uni-app开发中,文件上传和图片处理是很常见的需求,但也经常会遇到各种问题,下面:本文主要介绍uni-app小程序项目中实... 目录方式一:使用<canvas>实现图片压缩(推荐,兼容性好)示例代码(小程序平台):方式二:使用uni

MyCat分库分表的项目实践

《MyCat分库分表的项目实践》分库分表解决大数据量和高并发性能瓶颈,MyCat作为中间件支持分片、读写分离与事务处理,本文就来介绍一下MyCat分库分表的实践,感兴趣的可以了解一下... 目录一、为什么要分库分表?二、分库分表的常见方案三、MyCat简介四、MyCat分库分表深度解析1. 架构原理2. 分

linux查找java项目日志查找报错信息方式

《linux查找java项目日志查找报错信息方式》日志查找定位步骤:进入项目,用tail-f实时跟踪日志,tail-n1000查看末尾1000行,grep搜索关键词或时间,vim内精准查找并高亮定位,... 目录日志查找定位在当前文件里找到报错消息总结日志查找定位1.cd 进入项目2.正常日志 和错误日

在.NET项目中嵌入Python代码的实践指南

《在.NET项目中嵌入Python代码的实践指南》在现代开发中,.NET与Python的协作需求日益增长,从机器学习模型集成到科学计算,从脚本自动化到数据分析,然而,传统的解决方案(如HTTPAPI或... 目录一、CSnakes vs python.NET:为何选择 CSnakes?二、环境准备:从 Py

基于 Cursor 开发 Spring Boot 项目详细攻略

《基于Cursor开发SpringBoot项目详细攻略》Cursor是集成GPT4、Claude3.5等LLM的VSCode类AI编程工具,支持SpringBoot项目开发全流程,涵盖环境配... 目录cursor是什么?基于 Cursor 开发 Spring Boot 项目完整指南1. 环境准备2. 创建

Three.js构建一个 3D 商品展示空间完整实战项目

《Three.js构建一个3D商品展示空间完整实战项目》Three.js是一个强大的JavaScript库,专用于在Web浏览器中创建3D图形,:本文主要介绍Three.js构建一个3D商品展... 目录引言项目核心技术1. 项目架构与资源组织2. 多模型切换、交互热点绑定3. 移动端适配与帧率优化4. 可

sky-take-out项目中Redis的使用示例详解

《sky-take-out项目中Redis的使用示例详解》SpringCache是Spring的缓存抽象层,通过注解简化缓存管理,支持Redis等提供者,适用于方法结果缓存、更新和删除操作,但无法实现... 目录Spring Cache主要特性核心注解1.@Cacheable2.@CachePut3.@Ca