# 车载系统安全升级原理与流程 ## 一、核心原理 ### 算法组合 ``` 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%准确(无误判)。