【AUTOSAR】UDS协议的代码分析与解读(八)----UDS安全访问27h和通讯控制28h

8.9 安全访问 Security Access (27h)

由于保密、排放或安全的原因, 安全访问服务提供一种方法以方便访问受限制的数据或诊断服务。 支持安全访问的ECU应该实现种子和密钥的合理算法,该算法应在特定文档中记录,而只有特定的少数 以访问该文档。

当外部测试工具从ECU中请求安全访问类型时,安全访问过程就开始了。当外部测试工具提供的安 全密钥ECU计算的安全密钥匹配时,将授予对ECU的安全访问权。安全访问流程参见图8

图8安全访问过程示例

8.9.1 请求种子

此服务求来自ECU的种子(seed)。基于这个种子,客户端能够计算并发送给ECU解锁所需的密 钥(key)。

8.9.1.1  报文格式

表 42 安全访问-请求种子服务的请求报文

Byte

Name

Cvt

Value  (Hex)

#1

RequestServiceIdentifier

M

27

#2

Sub-Function=[

SecurityAccessType=requestSeed]

M

01,03,05,

07-7D

表 43 安全访问-请求种子服务的肯定响应

Byte

Name

Cvt

Value  (Hex)

#1

PositiveResponseServiceID

M

67

#2

SecurityAccessType=requestSeed

M

01,03,05,

07-7D

#3

#6

SecuritySeed[4]=[

seed#1(highbyte)

seed#4(lowbyte)]

M

M

00-FF

00-FF

8.9.1.2    支持的否定响应码报

表 44 安全访问-请求种子服务的否定响应码

Hex

Cvt

ErrorText

12

M

功能不支持

如果子功能参数不支持,发送此否定响应码。

13

M

报文长度错

如果报文长度错误,发送此否定响应码

22

U

条件未满足

果请求安全访问服务的条件未满足,发送此否定响应码。

37

M

迟时间未到

如果延迟定时器处于激活时间内收到请求,发送此否定响应码。

8.9.2 发送密钥

此服务将客户端计算的密钥发送到ECUECU将此密钥与内部存储/计算的密钥进行比较。如果2 数值匹配, 则ECU解锁,允许客户端访问特定服务/数据。

8.9.2.1  报文格式

表 45 安全访问-发送秘钥服务的请求报文

Byte

Name

Cvt

Value  (Hex)

#1

RequestServiceIdentifier

M

27

#2

Sub-Function=[

SecurityAccessType=requestSeed]

M

02,04,06,

08-7E

#3

#6

SecurityKey[4]=[

Key#1(highbyte)

Key#4(lowbyte)]

M

M

00-FF

00-FF

表 46 安全访问-发送秘钥服务的肯定响应

Byte

Name

Cvt

Value  (Hex)

#1

PositiveResponseServiceID

M

67

#2

SecurityAccessType=RequestSeed

M

02,04,06,

08-7E

8.9.2.2    支持的否定响应码报

表 47 安全访问-发送秘钥服务的否定响应码

Hex

Cvt

ErrorText

12

M

功能不支持

如果子功能参数不支持,发送此否定响应码。

13

M

报文长度错

如果报文长度错误,发送此否定响应码

22

U

条件未满足

如果请求安全访问服务的条件未满足,发送此否定响应码。

24

M

请求序列错

果在接收到“sendKey”子功能前没有先接收到“requestSeed”请求报文, 发送此否 定响应码。

35

M

密钥无效

如果接收到预期的sendKey”子功能但是密钥值与ECU内部存储或计算的密钥不 相等,送此否定响应码。

36

M

超出访问次数限制

果延迟定时器因为超过最大允许失败尝试的次数激活,发送此否定响应码。

8.9.3 参数定义

此文档定义了几种不同的安全访问等级。不同等级的安全访问定义了不同的访问权限类型。供应 商自定义安全等级由供应商申请开通并通过h事业部同意。

种子及密钥均为4字节(32位)的数值。具体的安全加密算法由h事业部制定并由专门文件描

 48 安全访问等级

SecurityLevel安全级别

requestSeed种子

sendKey送密钥

CVT

Extendedsecuritylevel扩展安全级

01

02

M

Programmingsecuritylevel刷新安全级

09

0A

C

Immobilizersecuritylevel防盗安全

11

12

U

systemSupplierSpecificlevel供应商自定义安全级

61-6D

62-6E

U

8.9.4 执行规定

a)安全等级的激活:

在某一时间只有一个安全级别可以被激活。例如, 如果与请求种子09h相关联的安全级别已激活, 而诊断工具成功请求解锁与请求种子01h相关联的安全级别,此时只有与请求种子01h相关联的安全级别 支持的受限功能被解锁。其它任何与请求种子09h相关联的安全级别支持的解锁的安全功能服务不再激 。安全级别的数字是任意分配的, 它们之间没有优先级的区别。

b)种子(seed) 的产生

种子为一个4个字节(32位) 的数值, 由ECU随机生成。如果诊断工具连续发送请求种子 (RequestSeed) 报文, ECU应该肯定响应且回复相同的种子。种子产生的随机数不应包含下列两数值:

1) 00000000h:如果ECU已在解锁状态, 此时接收到外部诊断诊断设备的“RequestSeed”请求(同 全级),ECU应肯定响应报文并返回数值全为“0”的种子。诊断工具应通过检验种子是否为非零 方法来测ECU是否锁定。在此情况下,如果仍收到诊断工具的“SeedKey”请求,推荐ECU返回NRC24

2) FFFFFFFFh:由于存储器被擦除时,其默认值为FFFFFFFFh,所以种子不能为此值。

c) 密钥的产生:

密钥为一个4字节(32位)的数值, 由种子经过特定的安全算法计算生成。

d)安全访问流程:

8所述的种子及密钥的请求和响应流程是强制性的。但以下情况发生该流程将被重置且重新生成 随机种子:

1)任何原因导致的诊断会话模式进入到默认会话模式, ECU将进入闭锁状态;

2) ECU发送了“RequestSeed的否定应答;

3) ECU发送了“SeedKey”的否定应答

8.9.5 延时机制

a) 在连续3次请求安全访问失败后,需等待10s之后才能接受下一次的安全访问请求“RequestSeed

1) 当测试工具发送一个无效秘钥,ECU将返回NRC35“InvalidKey”。同时, 安全访问错误计数 器加1。该计器必须存储在非易失性存储单元中, 初始值为0

2) 当安全访问错误计数器达到3  (即收到3此无效密钥),ECU将返回NRC36且需要等待10s才能 接受下一次的安全访问请求Request  Seed。期间任何安全访问请求Request  Seed都会被ECUNRC37

b) 当10s等待时间结束后,安全访问错误计数器将减1并允许尝试安全访问请求“RequestSeed” 如果此次请求失败(由于发送了一个无效的秘钥),安全访问错误计数器将加1,并再次开启10s待时

1)任一次ECU被成功解锁(密钥有效),失败计数器都将被重置为零。

c) ECU上电/复位后默认处于闭锁状态,需要检测安全访问错误计数器, 若计数器为3,则需要 启动10s的安全访问延时时间。

d)全访问诊断服务的执行策略参见图9

图9安全访问延时机制

8.10 通信控制 Communication Control (28h)

此服务服务允许开启/ECU 对特定报文的发送或接收。

8.10.1 报文格式

 49 通信控制服务的请求报文

Byte

Name

Cvt

Value  (Hex)

#1

RequestServiceIdentifier

M

28

#2

Sub-Function=[ControlType

M

00-FF

#3

CommunicationType

M

00-FF

 50 通信控制服务的肯定响应

Byte

Name

Cvt

Value  (Hex)

#1

PositiveResponseServiceID

M

68

#2

Sub-Function=[ControlType]

M

00-7F

8.10.2 支持的否定响应码

51 通信控制服务的否定响应码

Hex

Cvt

ErrorText

12

M

功能不支持

如果子功能参数不支持,发送此否定响应码。

13

M

报文长度错

如果报文长度错误,发送此否定响应码

22

M

条件未满足

如果ECU处于关键运行模式所以不能使能/禁止请求的通信类型,发送此 定响应码。

31

M

请求超出范

如果通信类型参数检测出错误,发送此否定响应码。

8.10.3 参数定义

52 子功能-控制类型定义的参数

Hex

Description

Cvt

00

Enable Rx And Tx允许接收和发送

M

01

Enable Rx And Disable Tx允许接收禁止发送

U

02

Disable Rx And Enable Tx禁止接收允许发送

U

03

Disable Rx And Tx禁止接收和发送

M

表 53 通讯类型定义的参数

Hex

Description

Cvt

01

Normal Communication Messages普通应用报文

M

02

Network Management Communication Messages网络管理报文

C1

03

Network Management Communication Messages & normal Communication Messages 普通应用报文和网络管理报文

M1

C1:支持网络管理功能的ECU,需要支持此项。

M1:不支持网络管理功能的ECU ,只需要支持对普通应用报文的操作。

8.10.4 执行规定

a)执行此服务的前提条件

1)车辆静止;

2)系统不执行任何紧急操作(供应商定义);

3)当上述任何一个条件不满足, ECU应该拒绝通信控制请求报文并发送否定响应码22h

b)以下一种或多种情况会导致ECU返回默认状态(正常收发报文):

1)接收到了enableRxAndTx参数的通讯控制服务;

2) ECU上电/重启;

3)任何原因导致的诊断会话模式转换到默认会话。

c) 对于连接多个网段的ECU (如网关),此服务会影响所有网段 (不仅是接收到诊断请求的网段)。

d) 对于网关ECU,正常诊断报文的路由不受此服务影响。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大道生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值