first commit
This commit is contained in:
commit
669f49b1d6
342 files changed
+320811
No files matched your search
@@ -0,0 +1,123 @@
|
||||
# 车载系统安全升级原理与流程
|
||||
|
||||
## 一、核心原理
|
||||
|
||||
### 算法组合
|
||||
|
||||
```
|
||||
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%准确(无误判)。
|
||||
Reference in new issue
Block a user