imx6ull开发板,HTTP 下载升级包,MD5 校验测试

结合上一篇 文章,本文 学习 MD5 校验。

电脑做服务器,开发板做客户端。
客户端从服务器下载升级包,如果下载过程中断、丢包,客户端又不做校验,用损坏的文件做系统升级,会导致升级失败,校验是最后一道安全门。

下面是MD5 、SHA256对比:

MD5

SHA256

全称

Message Digest 5

Secure Hash Algorithm 256

输出长度

128 位(32 字符)

256 位(64 字符)

速度

稍慢

安全性

已破解,有碰撞

目前安全

碰撞风险

高(可伪造相同 MD5 的文件)

极低

计算开销

极低

怎么选择?

场景

推荐

原因

文件完整性校验(防下载损坏)

MD5

够用,快

OTA 固件签名/防篡改

SHA256

安全,防恶意替换

密码存储

SHA256 + 盐

MD5 不安全

嵌入式小文件

MD5 或 SHA256

性能差异可忽略

命令示例:

MD5

SHA256

生成

md5sum file > file.md5

sha256sum file > file.sha256

校验

md5sum -c file.md5

sha256sum -c file.sha256

安全性

低(有碰撞风险)

高(工业标准)

本文先用 MD5 做测试 ,文件完整性校验(防下载损坏)

现在开始测试:

开发板和电脑 连接同一个wifi,让开发板和电脑在同一网段,确保开发板能ping通电脑的 ip

第一步:

在 虚拟机 ,内核 设备树 生成 MD5 文件

查看 MD5哈希值

第二步:

把 内核 设备树 和 2个 md5 文件,一起发送到 Windows 的自定义目录里

第二步:打开 Windows 的 powershell :

进入 Windows 的自定义目录

D:

cd My_File\imx6ull_OTA

启动 HTTP 服务: python -m http.server 8080

开发板只能下载该目录及子目录下的文件。

第三步:开发板下载并验证

下载升级包

下载 md5 文件

在开发板 校验:

显示 ok , MD5 校验通过。