本系列的其它几篇文章:

《英飞凌 AURIX 系列单片机的HSM详解(2)——与HSM相关的UCB和寄存器》
《英飞凌 AURIX 系列单片机的HSM详解(3)——开发方法》
《英飞凌 AURIX 系列单片机的HSM详解(4)——Tricore核与HSM核之间的通信方法》
《英飞凌 AURIX 系列单片机的HSM详解(5)——HSM硬件加速模块的使用》

1. 概述

随着汽车上通信系统越来越复杂,云端远程通信的场景越来越多,信息安全变得越来越重要,在通信领域常用的AES、SHA、RSA等加密算法被越来越多地应用到汽车上。但通常这类加解密算法都需要大量的数学运算,需要消耗很多CPU时间和资源,汽车上的ECU又有比较高的实时性要求,为了节省主CPU的资源,HSM应运而生。

HSM(Hardware Security Module),是MCU上专门用于实现加解密算法的一个外设,它一般会有一个独立的CPU,专门用来进行加解密运算,还有一些针对特定算法的硬件加速器(如AES-128、SHA-256等)。有了HSM模块,程序中就可以把加解密运算交给HSM来执行,主CPU就可以去做其他工作,一段时间后来查询结果,或等待HSM计算完成后通过中断等方式通知主CPU计算结果即可。

而且HSM通常还拥有单独的存储区,包括RAM和NVM,HSM的存储区在正常运行状态下应只允许HSM核读写,主核不能读写。这样就可以把算法秘钥等重要数据存储在HSM存储区,与主核进行隔离,进一步加强安全性。此外HSM模块还会带有真随机数生成器等加密算法常用外设。

2. EVITA中HSM的分级

在《汽车电子网络安全白皮书》中,引用了EVITA(E-safety vehicle intrusion protected applications——安全车辆入侵保护应用)的概念,里面给出了EVITA定义的车载网络参考架构和HSM的基本结构:


EVITA定义ECU应拥有一个密码协处理器HSM。HSM负责执行所有密码应用,包括基于对称密钥的加解密、完整性检查、基于非对称密钥的加解密、数字签名的创建与验证,以及用于安全应用的随机数生成功能。

EVITA把硬件安全模块划分为三个等级:

  • EVITA full HSM
  • EVITA medium HSM
  • EVITA light HSM(或是EVITA small HSM)

其中,EVITA full HSM主要用于V2X的通信单元,以及中央网关;EVITA medium HSM用于ECU之间通信场景的ECU;EVITA light HSM则用于传感器、执行器。

EVITA full HSM、medium HSM 和 light HSM的结构分别如图附A1-3~5所示:

三者之间的差别:

与full HSM相比,medium HSM没有包括ECC-256和WHIRLPOOL 密码模块(NIST提出的基于AES 的hash函数),并且,medium HSM所包含的CPU性能要低一些。因此,medium HSM没有基于硬件加速的非对称密码和哈希算法。一方面,可以通过软件的方式来执行一些时间性能要求不高的非对称密码操作;另一方面,基于效率和成本方面的考虑,ECU之间通信的保护采用对称密码算法具有合理性。

light HSM只包含基于AES-128的对称加解密模块,以满足传感器和执行器在成本和效率方面的严格需求(消息大小、时间、协议限制、处理器能力等)。基于light HSM,使得传感器和执行器能够保证通信数据的真实性、完整性和机密性。另外,同full和medium HSM相比,light HSM没有提供独立的处理和存储单元,应用处理器和应用软件可以完整访问所有的密码数据。为此,可以考虑对light HSM进行安全增强,提供内部的非易失性存储器和RAM,以及基于AES的伪随机数生成器。这样,light HSM可以更加安全地生成、处理和存储密钥。

3. 其它网络安全策略

除EVITA外,还有SHE、TPM(Trusted Platform Module)和智能卡(smartcard)等方面的硬件安全策略。SHE(Secure Hardware Extension)是由HIS(由Audi、BMW、Porsche、Volkswagen形成的组织)制定的标准,以通过硬件提供基于AES-128的密码服务:加解密;消息认证码;引导加载程序的认证;唯一的设备ID等,并可以应用不可直接访问的方式存储密钥。SHE的基本结构如图附A1-6所示。

4. 英飞凌AURIX系列MCU的HSM

我们以TC397为例来了解一下AUTIX系列单片机的HSM。下图为TC397的架构图,HSM作为外设之一,挂载在单片机的SPB系统外设总线上:


下图为HSM展开后的架构图,HSM有一个基于ARM Cortex-M3的CPU,有随机数生成器TRNG,和AES、Hash、PKC(公钥加密整数)算法的硬件加速器,以及中断、Timer等组成部分。

TC3XX系列的HSM支持以下算法:

  • 对称加密:AES-128:支持硬件实现,支持ECB、CBC两种模式;
  • 摘要算法:MD5(128 bits)SHA-1(160 bits)、SHA-2(224 bits)、SHA-2(256 bits)、SHA-2(384 bits)、SHA-2(512 bits):其中MD5(128 bits)SHA-1(160 bits)、SHA-2(224 bits)、SHA-2(256 bits)支持硬件实现,SHA-2(384 bits)、SHA-2(512 bits)可以用软件实现。
  • 非对称加密:RSA、ECC等,是否支持硬件实现待验证,可用软件实现。

英飞凌 AURIX 系列单片机的HSM详解(1)——何为HSM相关推荐

  1. 英飞凌 AURIX 系列单片机的HSM详解(2)——与HSM相关的UCB和寄存器

    本系列的其它几篇文章: <英飞凌 AURIX 系列单片机的HSM详解(1)--何为HSM> <英飞凌 AURIX 系列单片机的HSM详解(2)--与HSM相关的UCB和寄存器> ...

  2. 英飞凌 AURIX 系列单片机的HSM详解(5)——HSM硬件加速模块的使用

    本系列的其它几篇文章: <英飞凌 AURIX 系列单片机的HSM详解(1)--何为HSM> <英飞凌 AURIX 系列单片机的HSM详解(2)--与HSM相关的UCB和寄存器> ...

  3. 英飞凌 AURIX 系列单片机的HSM详解(4)——Tricore核与HSM核之间的通信方法

    本系列的其它几篇文章: <英飞凌 AURIX 系列单片机的HSM详解(1)--何为HSM> <英飞凌 AURIX 系列单片机的HSM详解(2)--与HSM相关的UCB和寄存器> ...

  4. STM8L101系列单片机串口配置详解(基于IAR自带库)

    STM8L101f3p6  有一个串口如图 本历程基于库操作 不讨论具体寄存器操作 有兴趣的同学可以自行参考编程手册 下面看一下手册的了解一下特点 本人英语是个小白只可意会不可言传了 内部结构了由于是 ...

  5. 单片机执行指令过程详解

    单片机执行指令过程详解: 单片机执行程序的过程,实际上就是执行我们所编制程序的过程,即逐条指令的过程. 计算机每执行一条指令都可分为三个阶段进行.即取指令-----分析指令-----执行指令. (1) ...

  6. h2 不能访问localhost_SpringBoot2.x系列教程44--H2数据库详解及搭建Web控制台

    SpringBoot2.x系列教程44--H2数据库详解及搭建Web控制台 作者:一一哥 我在上一章节中讲解了Spring Boot中整合Mybatis,接下来我给大家介绍一款内存数据库--H2. H ...

  7. 大型网站系统架构系列:负载均衡详解(一)

    大型网站系统架构系列:负载均衡详解(一) 2016-03-20 架构说 面对大量用户访问.高并发请求,海量数据,可以使用高性能的服务器.大型数据库,存储设备,高性能Web服务器,采用高效率的编程语言比 ...

  8. 【百度飞浆】YOLO系列目标检测算法详解

    YOLO系列目标检测算法详解 1 YOLO发展史 2 YOLO v3目标检测原理 3 PaddleDetection中YOLO v3模型介绍 4 YOLO v3配置演练 1 YOLO发展史 2 YOL ...

  9. 【百度飞浆】RCNN系列目标检测算法详解

    RCNN系列目标检测算法详解 目录 两阶段目标检测算法发展历程 R-CNN R-CNN网络结构 R-CNN网络效果 Fast R-CNN Fast R-CNN网络效果 Faster R-CNN Fas ...

最新文章

  1. [异常笔记] spring boot 启动-2018040201
  2. 英特尔 Arria 10 GX FPGA 正式商用,瞄准数据中心市场
  3. 风变编程python网址_风变编程Python:如何打造职场差异化竞争优势
  4. java寻找最大的字母_【LeetCode(Java) - 744】寻找比目标字母大的最小字母
  5. 谈爱情故事,谈观察者模式
  6. 自学python有用吗-普通人学Python有用吗?学完能做什么?
  7. 如何用Python写一个贪吃蛇AI
  8. win10下 Ubuntu 18.04 LTS 的安装及 rlt8821ce网卡驱动的安装
  9. 王者荣耀6月23服务器维护,王者荣耀6.23维护到什么时候?6月23日长枪掠火版本异常介绍...
  10. 解题:2017清华集训 无限之环
  11. python celery应用场景_Celery使用背景与功能概要
  12. android开发模仿文件管理器_2020 Web界面开发:DevExtreme全新的Diagram控件、文件管理器...
  13. 自定义一个可以使用foreach语句进行迭代的类(IEnumerable)
  14. 最适合写python程序的软件
  15. 人工智能知识全面讲解: RBF神经网络
  16. 统计学中的三大相关系数
  17. OpenCV实战案例——车道线识别
  18. M27C64A引脚说明
  19. 自学c语言要下载什么软件下载,你学c语言用的什么app?
  20. 彻底解决CUDA安装,从翻译文档开始_Compiling CUDA Programs

热门文章

  1. 小胖和三叔一起挖呀挖呀挖
  2. 苏格拉底与失恋者对话(治疗心理)
  3. IntelljIDEA优势
  4. 笔记本左边USB3.0接口没反应的解决办法
  5. 神经网络中的人脑海马体:Memory Networks
  6. 206367-33-1,抗菌肽pBD-1
  7. 更改Windows 登录屏幕保护程序
  8. python中response对象的属性,python爬虫response对象及通用代码框架
  9. 计算机组装时应该注意的硬件参数,新手在组装电脑时该注意什么?除硬件的搭配,最容易忽视的一点...
  10. 进程之wait函数和waitpid函数