1 0x27安全访问原理
为什么需要安全访问?因为在下载/上传的诊断服务例行程序或数据进入服务器并从服务器读取特定的内存位置的情况是可能需要安全访问。 不正确的例程或数据下载到服务器中可能损坏电子设备或其他车辆部件,或冒着车辆遵守排放,安全或安全标准。所以,安全访问还是很重要的。
安全访问原理如下图:
Tester: request seed : 27 + xx
ECU: response seed : 67 + xx + seed
Tester: send key : 27 + yy + key , 其中yy = xx + 1
ECU: response key : 67 + yy
实例如下:
Tester: 02 27 05 00 00 00 00 00 安全访问,05子功能
ECU: 06 67 05 08 27 11 F0 00 肯定响应,回复了对应安全级别的种子
Tester: 06 27 06 FF FF FF FF 00 发送密钥,4个FF。注意06是与05成对使用的。
ECU: 03 7F 27 78 00 00 00 00 若为否定响应,7F+27+NRC
ECU: 02 67 06 00 00 00 00 00 若为肯定响应,通过安全校验
2 相关规定
- 种子要避免出现0x00,0xFF,取随机值
- 同一时刻,仅可允许解锁一个安全等级,当从某一安全等级A进入到另一安全等级B时,解锁B并上索A
- 当已解锁的情况下,继续请求种子,ECU回复全0种子表示已经解锁
- 安全等级的数字为任意分配,无优先级之分
- “请求种子” - “返回种子” - “发送密钥” - “响应结果”,这一套流程为强制的,步骤出错返回NRC=24
3 相关NRC
- NRC = 35, key无效
- NRC = 36,超出密钥访问次数限制
- NRC = 37, 延时未到
- NRC = 24,请求序列错误