27服务
该服务的目的是提供访问数据或诊断服务的手段,出于安全、排放或安全原因,其访问受到限制。诊断服务用于将例程或数据下载/上传到服务器以及从服务器读取特定存储器位置是可能需要安全访问的情况。错误的例程或者下载到服务器的数据可能会损坏电子设备或其他车辆部件或车辆符合排放、安全或安保标准的风险。这个安全概念使用种子和密钥的关系。
27服务流程
1、客户端应通过发送服务SecurityAccessRequestSeed消息来请求服务器解锁。服务器应通过发送种子进行响应。种子是输入密钥计算算法的参数。客户端使用它来计算相应的键值
2、客户端应通过发送计算出的密钥来请求密钥比较使用适当的服务SecurityAccess SendKey发送到服务器。服务器应将该密钥与内部存储/计算的密钥进行比较。如果这两个数字匹配,则服务器应允许(解锁)客户访问特定服务/数据,并用service SecurityAccess SendKey。如果这两个数字不匹配,则应考虑作为错误的访问尝试。如果由于任何其他原因拒绝访问,则不应将其视为错误的访问尝试。无效密钥要求客户端从头开始,并返回SecurityAccess RequestSeed消息肯定响应消息。
具体流程:
诊断仪请求:2701
服务器响应:6701+C7EFCFEF(种子)
诊断仪请求:2702+C96A436C(种子)
服务器响应:6702
请求种子:27+子功能(请求安全等级)
01:请求安全级别1的种子
03:请求安全级别2的种子
11:请求安全级别Flash的种子
肯定响应:67+子功能+种子
发送密钥:27+子功能(解锁安全等级)
01:发送解锁安全级别1的种子
03:发送解锁安全级别2的种子
11:发送解锁安全级别Flash的种子
肯定响应:67+子功能
失败计数器
1、具体逻辑参考车企诊断需求
2、工厂模式或服务器已解锁情况下,请求种子会返回全0种子
3、解锁状态下,此时发出密钥请求会返回7F2724,但服务器仍处于解锁状态
失败计数器NRC
24:请求序列错误
35:35密钥无效(InvalidKey)
36:请求次数超出限制
37:延时时间未到,任何“SecurityAccess- RequestSeed”都将不被处理