利用对称算法及非对称算法实现安全启动

我们可以利用对称算法及非对称算法实现安全启动

对称加密算法:加密和解密时只有一个key,称为common key,即加密方和解密方都知道这个key,这个key可以在生产或其它需要更新密钥的时候写入HSM的PFLASH

非对称加密算法:加密和解密方用不同的key,加密用private key,解密用public(可能是这样用的,记忆有点混乱)

当然从安全性维度,非对称算法更安全,因为加密方和解密方都不知道对方用的是什么密钥。

对称算法实现secure boot

1 软件下载代码包生成时不需要额外做什么工作,只需要把boot image 及app image下到指定的Flash中。

2 安全启动流程

先启动可信任根,验证可信任链,再通过对称算法如CMAC,及common key 验证boot image,验证成功后继续采用对称算法及common key验证app软件,app软件验证成功后启动app。

非对称算法实现secure boot

1 软件下载代码包的同时需要把签名也存在指定的Flash中,因为在安全启动的时候还是需要这个签名的

2 安全启动流程

先启动可信任根,验证可信任链,再计算boot软件的hash值,对计算出的hash采用非对称算法如ECDSA及public key进行验证。验证成功后计算app的hash值,对计算出的hash采用非对称算法及public key进行验证,app软件验证成功后启动app。

两者的优缺点如安全性可定是非对称算法高,验证速度(影响启动速度)还不知道哪个高。

相关推荐
wbs_scy2 小时前
C++11:类新功能、lambda与包装器实战
开发语言·c++
2301_765703142 小时前
C++中的职责链模式实战
开发语言·c++·算法
好好研究2 小时前
Spring Boot - Thymeleaf模板引擎
java·spring boot·后端·thymeleaf
爬山算法2 小时前
Hibernate(76)如何在混合持久化环境中使用Hibernate?
java·后端·hibernate
编程彩机2 小时前
互联网大厂Java面试:从分布式缓存到消息队列的技术场景解析
java·redis·面试·kafka·消息队列·微服务架构·分布式缓存
她说..2 小时前
策略模式+工厂模式实现单接口适配多审核节点
java·spring boot·后端·spring·简单工厂模式·策略模式
f狐0狸x3 小时前
【C++修炼之路】C++ list容器基本用法详解
开发语言·c++·list
坚持就完事了3 小时前
Java的OOP
java·开发语言
jllllyuz3 小时前
基于MATLAB的锂电池物理对象建模实现
开发语言·matlab
MyBFuture3 小时前
C#数组详解:一维二维与交错数组
开发语言·windows·c#·visual studio·vision pro