打印
[其它产品/技术]

英飞凌HSM模块介绍

[复制链接]
2101|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tpgf|  楼主 | 2024-4-8 11:07 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
1 HSM概述
      HSM(Hardware Security Module),是MCU上专门用于实现加解密算法的一个外设,它一般会有一个独立的CPU,专门用来进行加解密运算,还有一些针对特定算法的硬件加速器(如AES-128、SHA-256等)。

    有了HSM模块,程序中就可以把加解密运算交给HSM来执行,主CPU就可以去做其他工作,一段时间后来查询结果,或等待HSM计算完成后通过中断等方式通知主CPU计算结果即可。

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

2 英飞凌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等,是否支持硬件实现待验证,可用软件实现。



3 HSM PFLASH地址
      HSM核的程序代码可以存放于PFlash0的S0-S39这40个16K的PFlash块中,手册中对该区域的定义如下,我们暂时先考虑右侧“HSM only”的情况,先不管TP







4 HSM DFlash地址
HSM核可以操作DFlash1,地址如下:



5 HSM相关的UCB和寄存器







5.1 UCB_HSMCFG
USB存储在DFlash中,每次上电时,芯片自带的Boot Firmware会读取UCB中的值,判断状态,并加载到相应的寄存器中,地址如下:



寄存器定义如下:



读写规则:

由英飞凌出厂时填充内容。当Confirmation为unlocked时master(主核)可以写入数据,当Confirmation为unlocked时主核和HSM核都可以读取,当状态为confirmed或errored时,只有HSM核可读。

涉及的DMU寄存器







5.2 UCB_HSMCOTP0/1
地址如下:







涉及的寄存器

5.2.1 SF_PROCONUSR
在启动的时候从UCB赋值。



5.2.2 SP_PROCONHSMCBS
该寄存器表示从Flash启动后存储在UCB_HSMCOTP配置集中的所有引导扇区选择项的组合。



该寄存器包含BOOTSEL0-3,BOOTSEL即Boot Sector Selection,控制哪个HSM代码扇区(HSM code sector)被查找作为启动代码。BOOTSEL的定义如下:



5.2.3 SP_PROCONHSMCX0/1
该寄存器用来表示PFlash的某个扇区是否被排除在HSM之外(HSM_exclusive)。



5.2.4 SP_PROCONHSMCOTP0/1
该寄存器用来表示PFlash的某个扇区是否被配置为HSM永久锁定。



5.2.5 SP_PROCONHSMCFG





5.2.6 UCB Confirmation



5.3 UCB_HSM
地址如下:







涉及的寄存器:

5.3.1 SP_PROCONHSM







5.4 UCB_PFLASH_ORIG and UCB_PFLASH_COPY







配置PFlash sector是否被读写保护





配置PFlash sector是否被写保护



5.5 UCB_DFLASH_ORIG and UCB_DFLASH_COPY


















配置RAM区是否被初始化











6 HSM相关的DMU寄存器

















7 HOST 与 HSM 通信
    HSM 的实现是由于片内集成了一个 arm 核。HSM 有单独的一个 ARM 核,实际使用过 程中 HSM 核 与主 CPU Tricore 核之间需要进行通信。通常 CPU Tricore 被称作 HOST。 TC3XX 系列 MCU 有一块 RAM 空间被预留了出来,用于在主核和 HSM 核之间互相传递 数据,被称为主核与 HSM 核之间的“桥梁”(Bridge)



————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/qq_40462906/article/details/136254822

4854866135e889c07d.png (12.15 KB )

4854866135e889c07d.png

使用特权

评论回复
沙发
huquanz711| | 2024-4-19 20:01 | 只看该作者
适合拿来做安全应用

使用特权

评论回复
板凳
zhengshuai888| | 2024-4-21 19:15 | 只看该作者
支持的加密算法有点少

使用特权

评论回复
地板
lidi911| | 2024-4-22 19:48 | 只看该作者
用单独一个ARM内核CPU来跑加密算法,也是够拼了。

使用特权

评论回复
5
小夏天的大西瓜| | 2024-4-22 20:04 | 只看该作者
有了HSM模块,程序中就可以把加解密运算交给HSM来执行,主CPU就可以去做其他工作,一段时间后来查询结果,或等待HSM计算完成后通过中断等方式通知主CPU计算结果即可。

使用特权

评论回复
6
IFX-LilyWang| | 2024-5-24 14:57 | 只看该作者
对安全等级要求更高的客户,也可以考虑使用独立的安全芯片,比如Trust M,TPM等,都有符合车规级的安全产品。包括支持Matter, Qi standard的各种整体解决方案。
https://www.infineon.com/cms/en/product/security-smart-card-solutions/optiga-embedded-security-solutions/optiga-trust/

使用特权

评论回复
7
IFX-Wanmin| | 2024-5-27 16:24 | 只看该作者
TPM产品也是个不错的选择

使用特权

评论回复
8
小小蚂蚁举千斤| | 2024-5-31 16:22 | 只看该作者
英飞凌HSM模块是标配的嘛?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1923

主题

15596

帖子

11

粉丝