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
|