Files
Obsidian/项目文档/犀重/备份/安全升级原理与流程.md
T

122 lines
2.7 KiB
Markdown
Raw Normal View History

2026-11-05 14:35:04 +08:00
# 车载系统安全升级原理与流程
## 一、核心原理
### 算法组合
```
RSA2048 + SHA256 = SHA256withRSA
SHA-256:计算文件哈希值(32字节指纹)
RSA2048:公钥验证签名(2048位密钥强度)
```
### 安全保证
```
✅ 防伪造:私钥只有官方有,无法伪造签名
✅ 防篡改:文件任何修改 → 哈希值变化 → 签名失效
✅ 可追溯:签名验证成功 = 官方发布
```
---
## 二、验证流程
### 三个核心步骤
```
第一步:计算文件哈希值
固件文件 → 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%安全。