闲聊Host和HSM通信方式--英飞凌、瑞萨MCU

1.概要

  在Evita Full等级下的HSM通常包含了一个独立cpu,因此在这个背景下讨论Host与Hsm的通信,其实也就是讨论核间通信机制。

  常见的通信方式有mailbox、共享内存;AUTOSAR OS提供了IOC的实现。这里我们用不到IOC,为啥?因为本身给HSM的Flash空间就小,再加上任务单一,如果再裁剪一个OS上去,反而成本增加并且有点大材小用。所以,今天就讲讲mailbox和共享内存的方式。

  Host和Hsm的核间通信机制需要数据的安全、完整,因此在做软件设计时,我们要充分运用芯片本身的特性做好顶层设计。

2.共享内存(Tricore 和 Renesas)

  英飞凌TC3xx系列和瑞萨的RH850-F1KM系列的HSM算是座舱域、智驾域的老熟人了,所以我们针对这些片子来分享通信方式。

  英飞凌TC3xx,在之前对其深度解析英飞凌TC3xx-TC3xx HSM启动流程、通信机制分析时我们聊过小数据的通信方式,通过Communication Unit之间进行通信,相关寄存器为HT2HSMF、HT2HSMS、HSM2HTF、HSM2HTS等等;其中后缀带F的为标志位通知,用于HSM、Host之间的标志位交流,比如说HSM_Ready\AES_DECRY\TRNG_GEN等等;而带S后缀的则用于表征状态,例如reset类型、内容有效性等,这在手册中有详细定义。

  从上面我们可以看到,寄存器仅仅只有F、S用于通信,且S后缀的有明确定义,reserved的bit位只有20个,根本无法保证例如SecOC报文的待验签数据的传输,以及MAC值的返回。所以它们之间的通信使用的还是共享内存。

  瑞萨的F1KM和英飞凌类似,而且我发现这俩寄存器命名都非常一致,例如ICU2PES、PE2ICUS等等,怀疑这俩货当时应该是同一家客户的定制需求,设计完了之后出来卖的。闲话少扯,既然这俩货差不多,通信机制都是使用共享内存,为啥?手册这么说的。

图片

  使用共享内存,就对一段RAM空间定义一个数据结构,该数据结构包含私有协议的版本号、发送接收通道大小、错误标识等等,Demo如下:

图片

  共享内存有不同实现方式,这里介绍ring buffer的机制,利用writeIdx和ReadIdx完成对发送和接收通道的写和读。具体原理如下:

图片

      Host往发送通道写入数据前,首先检查writeIdx和readIdx的差值,为简单起见,一个通道一次只能放入一个job,因此这个差值如果大于1,则说明当前通道已经满了且HSM还有读取,此时需要等待hsm读取完毕后再进行写入。

  这种方式主要存在的问题在于内存的访问权限设计,必须通过MPU进行权限分配,在逻辑上存在被篡改的信息安全漏洞风险,试想在启动阶段被攻入,现在可能还觉得不可能,但是随着技术的发展,只要有漏洞,个人认为都是可以被攻破的。

3.Mailbox

  Mailbox借鉴英飞凌Communication Unit的寄存器通信方式,为每个寄存器设置各自的权限。示例如下:

图片

      Host侧将待校验或者加解密的数据写入Mailbox的write register,在硬件设计中,mailbox会自动将数据推入对外不可见的FIFO,并通过另一个寄存器表征此时FIFO里有数据;然后mailbox可以通过中断通知HSM CPU,或者HSM CPU一直去轮询标志位;通过这种方式,需要首先定好FIFO里的软件数据结构,例如通讯协议版本号、数据长度、是否为最后一帧数据等等;这种方式由于FIFO对外的透明性,一定程度上可以规避信息安全风险。

4.小结

  以上,我们简单描述了共享内存和mailbox的通信方式,现目前市面上共享内存使用居多,这就需要软件去设计ring buffer或者其他通信机制;mailbox这种方式可以由硬件实现,软件去配置即可。这篇文章讲得比较浅显,应该还有更方便快捷安全的方法,期待大家的讨论。

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要查询英飞凌(Infineon)的硬件安全模块(HSM)是否使能,可以按照以下步骤进行操作: 1. 连接到英飞凌HSM设备:首先,确保计算机与HSM设备正确连接,并建立通信。 2. 安装相关驱动程序和工具:根据英飞凌的要求,安装适当的驱动程序和工具,以便与HSM设备进行通信和配置。 3. 打开HSM管理工具:启动英飞凌提供的HSM管理工具,它通常被称为HSM管理控制台或者类似的名称。 4. 连接到HSM设备:在HSM管理工具中,选择连接到目标HSM设备的选项。这可能涉及到选择正确的通信接口(如USB或网络连接),并提供必要的连接参数。 5. 登录到HSM设备:一旦连接成功,使用合适的身份凭证(用户名和密码)登录到HSM设备中。 6. 导航到设置界面:在HSM管理工具中,找到用于配置HSM设备的设置界面。通常,这些设置以菜单或选项卡的形式呈现。 7. 查询HSM使能状态:在设置界面中,查找与HSM使能状态相关的选项或参数。这通常称为HSM状态或使能状态。 8. 检查HSM使能状态:查看相关选项或参数的值,以确定HSM设备的使能状态。通常,使能状态可以是“已使能”或“已禁用”。 通过以上步骤,您应该能够查询英飞凌HSM设备是否处于使能状态。请注意,确切的步骤和界面可能会因HSM设备型号和管理工具的版本而有所不同,因此请参考相关的英飞凌文档和指南,以获取准确的操作细节。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值