0x27服务安全访问

服务概述

一种安全访问保护机制,就是对暗号区别自己人和外人。这些暗号里面有自己独特的一套算法,每个OEM都有自己的算法,密不外传,连续错几次还会锁定住,哪怕进去之后还有时间限制,时间到了强制退出来又得重新进去。外面的人很难找到规律来破解,有时候复杂到厂商自己人拿着设计文档都解不开,外人就更加别想入侵进去了。

这个保护机制不是单纯为了0x27服务用的,而是给别的服务用的,譬如0x31运行DID,在线升级的时候通过诊断的方式进行升级,因为要改掉运行在flash的软件,这种东西非常重要,不能轻易给别人刷成别的东西,这个时候为了过程可控,就要先对暗号,证明你是自己人,才让你进行操作。

访问等级

安全访问也有等级,一般低等级只能干一些低权限的事情,高等级能够干低权限和高权限的事情,但进去低等级是一套算法,高等级就是另一套更加复杂的算法。

想进入高等级,有两种设计方式:

1、直接申请高等级,根据正确的算法获取到高等级权限。

2、使用嵌套的方式,需要先使用低等级的算法进入低等级,再在限定时间内使用高等级的算法进入高等级。

退出或者下降等级也有方法:

1、切换会话

2、等待退出时间到达,自动切换到下降等级或者退出当前安全访问。这个就限制了外人的破解时间,你要在限定时间内连破两道门才行,而且一小段时间内没执行到高等级的操作就会自动退出,你又要重新破门。

种子和密钥

ECU会自己生成种子,这个种子一般是随机的,一直在改变的,一般是用轮询的方式累加,累加到一定大小后又从很小的数字重新累加。当然啦,还有别的其他产生随机数字的办法,不同厂商规定的种子长度和变化范围,变化方式还不一定,这样就能提高外人破解的难度,有点像现在的随机验证码。

密钥是通过种子和算法生成的,算法就是个花盆,把种子种进去,长出来的就是成熟的秘钥。诊断仪和ECU都有一个花盆,各自把种子种进去之后都长出来自己的秘钥,然后大家拿长大的秘钥来对比。大家长的一样你的花盆就跟我的一样,你就是自己人。长得不一样就是你的泥土、花盆形状跟我的不一样,你不是自己人。

服务执行过程

执行过程比较复杂,里面的子服务是成对的,而且不确定厂商用的是哪一对,01和02是一对,03和04又是另一对,一般来说,单数用来请求种子,双数用来发送密钥。具体过程为4步:

1、诊断仪发送给ECU请求种子。
2、ECU生成并发送种子给诊断仪,并根据安全算法计算密钥。
3、诊断仪根据接收到的种子和算法计算出秘钥,发送给ECU;
4、ECU接收到密钥,与自身计算的密钥进行比较,一样就解锁,不一样就拒绝。

报文格式

整个解锁过程有4种报文,就会有4种格式。

请求种子格式

发送种子格式

发送密钥格式

密钥通过格式

锁定机制

厂商为了不让外人一直尝试来推断出算法,在里面加入了防止连续试错的机制。密钥连续错几次之后,ECU就会认为现在是外人在撞门,就会启动锁定的防御机制。就像你的银行卡密码错几次之后,就会被锁死,今天就不让你再试了,请明天再来。

下面的delay time就是锁定机制,每次失败都会累计失败次数,失败次数达到的时候,就会激活锁定机制,将解锁服务锁住一段时间。这段时间内,连申请种子都申请不到。等到时间到了,就会重新打开申请种子的口子——让我重新认识你,看看你是不是自己人。不过这个时候ECU的心里是有防备的,所以只是给你一次机会,你这次只要错了,就立马翻脸,把刚开的口子给你关上。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
UDS 0x29服务是指车载诊断服务中的0x29功能码。根据ISO 14229的规定,UDS 0x29服务用于读取特定内存位置的数据。该服务可能需要身份验证以确保数据安全和防止不当程序或数据的访问。为了保障安全性,UDS 0x29服务支持两种安全概念。一种是基于使用非对称加密的PKI证书交换程序,使用符合ISO 7816-8的CVC和符合ISO/IEC 9594-8、RFC 5280和RFC 5755或IEEE 1609.2的X.509证书格式。另一种是基于使用带有软件认证令牌的非对称加密或对称加密的不带PKI证书的请求-响应过程。通过这些安全措施,UDS 0x29服务可以安全地读取特定内存位置的数据,以支持诊断功能。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [车载诊断服务安全要点](https://blog.csdn.net/didaliping/article/details/121105468)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *2* [UDS(ISO14229)诊断服务的29服务和84服务](https://blog.csdn.net/qq_33163046/article/details/130564636)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

不吃鱼的羊

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

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

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

打赏作者

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

抵扣说明:

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

余额充值