Files
Obsidian/项目文档/犀重/安全升级原理与流程简明版.md
T
2026-11-05 14:35:04 +08:00

2.9 KiB
Raw Blame History

车载系统安全升级原理与流程

一、核心原理

算法组合

RSA2048 + SHA256 = SHA256withRSA

SHA-256:计算文件哈希值(32字节指纹)
RSA2048:公钥验证签名(2048位密钥强度)

安全保证

✅ 防伪造:私钥只有官方有,无法伪造签名
✅ 防篡改:文件任何修改 → 哈希值变化 → 签名失效
✅ 可追溯:签名验证成功 = 官方发布
✅ 验证准确:数学原理保证验证结果100%准确(无误判)

二、验证流程

三个核心步骤

第一步:计算文件哈希值
  固件文件 → SHA-256算法 → 32字节哈希值

第二步:加载公钥
  PEM格式公钥 → Base64解码 → RSA公钥对象

第三步:验证签名
  哈希值 + 签名 + 公钥 → SHA256withRSA验证 → true/false

验证逻辑

验证成功:
  公钥解密签名 → 得到原哈希值
  对比计算哈希值 == 原哈希值 → ✅ 验证通过

验证失败:
  对比哈希值不相等 → ❌ 文件被篡改或签名伪造

三、升级流程

整体流程图

用户插入U盘(包含升级包)
    ↓
系统检测升级包
    ↓
解压ZIP包
    ↓
计算固件哈希值(SHA-256)
    ↓
读取签名文件(ValidationFile.ini)
    ↓
加载公钥验证签名(RSA2048)
    ↓
    ├─ ✅ 验证通过
    │     ↓
    │   执行升级
    │     ↓
    │   升级完成
    │     ↓
    │   自动删除临时文件
    │
    └─ ❌ 验证失败
          ↓
        中止升级
          ↓
        自动删除临时文件
          ↓
        提示验证失败

四、升级包格式

文件结构

MCU升级包:
  update_mcu.zip
    ├── cortex-gdm4.bin         (MCU固件)
    └── ValidationFile.ini      (签名文件)

SOC升级包:
  update.zip                    (U盘中的文件名)
    ├── update.zip              (内层OTA包)
    └── ValidationFile.ini      (签名文件)

ValidationFile.ini格式:
  sign=<256字节十六进制签名>

命名对照

类型 U盘文件名 解压后固件 签名文件
MCU update_mcu.zip cortex-gdm4.bin ValidationFile.ini
SOC update.zip update.zip(内层) ValidationFile.ini

五、一句话总结

原理:用私钥给文件哈希值签名,车端用公钥验证签名,通过哈希对比判断文件是否官方发布且未被篡改。

流程:解压 → 计算哈希 → 读取签名 → 加载公钥 → 验证签名 → 通过则升级,失败则中止。

安全:RSA2048在当前技术水平下难以破解,SHA-256抗碰撞性极强,私钥只有官方持有,数学保证验证结果100%准确(无误判)。