☰
【09】0x27 安全访问的种子-密钥流程是怎样的?哪些服务必须先解锁?
2026/10/19 2:19:44 网站建设 项目流程

0x27 本质是一个Seed-Key 挑战-响应状态机:先要种子,再发密钥,ECU 比对通过后才开放受保护服务。

标准流程

Tester → ECU: 27 01 // 请求种子(奇数子功能) ECU → Tester: 67 01 + Seed // 返回随机种子 Tester → ECU: 27 02 + Key // 发送密钥(偶数子功能 = 奇数 + 1) ECU → Tester: 67 02 // 密钥正确,解锁成功

关键规则:

  • 奇数子功能请求种子:0x01、0x03、0x05…
  • 偶数子功能发送密钥:0x02、0x04、0x06…,且必须等于对应奇数 +1。
  • Seed 是随机数:每次请求通常不同;如果已解锁,ECU 会返回全 0 种子。
  • 算法是 OEM 私有:AES、XOR、移位、查表等,诊断仪和 ECU 必须一致。
  • 同一时刻只能有一个安全等级解锁,切换会话或复位后自动重新上锁。

常见 NRC

NRC含义触发场景
0x24请求顺序错误没请求种子直接发27 02
0x35无效密钥Key 算错,验证失败
0x36超出尝试次数连续错误达阈值,触发延时锁定
0x37延时未到锁定期间再次请求种子
0x33安全访问被拒绝未解锁就执行受保护服务
0x22条件不满足未在正确会话下请求 0x27

哪些服务必须先解锁?

服务为什么需要解锁
0x2E WriteDataByIdentifier写 DID、写标定参数、写 VIN 等
0x31 RoutineControl擦除 Flash、执行自检例程
0x34/0x36/0x37下载/传输数据/退出传输,刷写核心链路
0x2F InputOutputControl控制 IO 引脚、激活执行器
0x28 CommunicationControl关闭/恢复非诊断通信
部分 0x22/0x23 读操作读取敏感 DID 或受保护内存区域

一句话记:0x27 是诊断权限的"钥匙",奇数要种子、偶数发密钥;没钥匙,写、刷、控、例程都动不了。


需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询