U-boot FIT签名验证

参考

https://source.denx.de/u-boot/u-boot/-/blob/v2020.01/doc/uImage.FIT/signature.txt?ref_type=tags

简介

签名流程

  • 对FIT中的镜像进行哈希处理
  • 使用私钥对哈希值进行签名,生成签名
  • 将生成的签名存储在FIT中

验签的流程

  • 读取FIT
  • 获取公钥
  • 从FIT中提取签名
  • 对FIT中的镜像进行哈希处理
  • 使用公钥验证从FIT中提取的签名是否与哈希值匹配

FIT镜像创建流程

its和itb

its(image tree source)是创建

加密签名过程分析

环境准备

openssl安装(3.0.7)

下载源码:https://github.com/openssl/openssl/tree/openssl-3.0.7
cd 源码目录
mkdir build install
cd build
…/config --prefix=xxx/install
make
make install

mkimage安装

mkimage是uboot下面的一个工具,用来将zImage制作成uImage,制作内核启动镜像(给zImage镜像添加64字节的头信息成uImage);
mkimage的源码在"uboot/tool"目录下,在编译uboot时默认会编译出mkimage工具;
注意需要在LD_LIBRARY_PATH中添加openssl的动态库路径

创建RSA密钥及其证书

//通过openssl创建RSA2048的私钥:
openssl genpkey -algorithm RSA -out dev.key  -pkeyopt rsa_keygen_bits:2048 -pkeyopt rsa_keygen_pubexp:65537
/**

genpkey:这是OpenSSL命令行工具的一部分,用于生成新的私钥和公钥(密钥对)。

algorithm RSA:指定生成密钥对时使用的算法,这里是RSA算法。

out dev.key:指定生成的密钥的输出文件名为dev.key,生成的私钥和公钥将保存在这个文件中。

pkeyopt rsa_keygen_bits:2048:这是一个选项,指定了RSA密钥对中的模数(modulus,一般理解为密钥的长度)的位数。在此示例中,密钥长度为2048位。密钥长度越长,加密强度通常越高,但也会带来更大的计算开销。

pkeyopt rsa_keygen_pubexp:65537:这是另一个选项,指定了RSA密钥生成过程中使用的公钥指数。65537是一个常见的公钥指数选择,因为它是一个较小的质数,且适用于加密和解密的效率。

**/
//或者使用如下命令创建:
openssl genrsa -out dev.key 2048
//然后创建RSA2048私钥的X509证书:
openssl req -batch -new -x509 -key dev.key -out dev.crt
/**

req:这是 OpenSSL 命令行工具的一部分,用于处理证书签名请求(CSR)和相关操作。

batch:这是一个选项,表示在执行期间不需要用户干预。它将使命令自动化,确保不需要用户输入任何附加信息。

new:这是一个选项,表示创建一个新的证书请求(CSR)。

x509:这是一个选项,表示生成自签名的 X.509 证书。

key dev.key:这个参数指定了生成证书请求时使用的私钥文件 dev.key,该私钥将与新生成的证书相关联。

out dev.crt:这个参数指定了生成的证书文件的输出位置和名称,这里的 dev.crt 将是生成的自签名 X.509 证书的输出文件。

**/

//见dev.key的公钥提取出来并显示
openssl rsa -in keys/dev.key -pubout

uboot验签流程分析

  • 37
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值