0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

UDS之29服务:认证服务

北汇信息POLELINK 2023-11-30 08:24 次阅读

服务概述
汽车工业的很多领域都有严格的国际标准,其中针对车载诊断的ISO14229规定了车载诊断服务的通用需求(UDS),UDS主要应用于OSI模型的应用层,UDS协议根据功能的不同定义了26种诊断服务。
为了应对网联汽车日益增加的安全风险,在ISO14229-1的2020版本增加了29服务。29服务英文名称为Authentication Service,译为认证服务。通过名称可以看出29服务的目的是为客户提供一种身份认证的方法。当客户想获取一些有访问限制的数据时来验证客户的身份,这些限制可能是由于安全或排放相关的原因。本文将详细介绍29服务。

29服务一般在如下场景中使用

1.需要读取特定内存地址的数据;2.上传或下载控制器数据;3.关于车身安全或者会影响车身控制器属性。传统的27服务不能满足这些需求,因此新版本的ISO14229协议增加了29服务,来实现基于以太网的身份认证。

背景知识介绍

对称加密:加密和解密使用相同密钥的加密算法

非对称加密:一对加密密钥和解密密钥,用户加密后所得的信息,只能用该用户的解密密钥才能解开。如果知道了其中一个,不能计算出另一个。公开的加密密钥为公钥,不公开的解密密钥为私钥。

PKI:PKI的全称是Public Key Infrastructure,译为公钥基础设施。PKI是包括硬件、软件、人员、策略和规程的集合,用来实现基于公钥密码体制的密钥和证书的产生、管理、存储、分发和撤销等功能。用来建立不同实体间的“信任”关系。


服务介绍
29服务支持两种认证方式,如下图所示:APCE: 采用非对称加密的基于PKI证书交换程序的认证ACR: 采用对称或非对称加密的基于挑战确认(Challenge-Response)流程的认证。dc3bea4e-8f16-11ee-9788-92fbcf53809c.png图1-29服务支持的两种认证方式1.APCE认证流程dc42c742-8f16-11ee-9788-92fbcf53809c.png图2-APCE的认证流程图
上图是APCE的认证流程图,包括单向认证和双向认证。

单向认证

1.Client通过VerifyCertificateUnidirectional(2)向Server发送带有Client公钥的证书。

2.Server收到证书后会验证证书的有效性(3),如果Client不合法,则停止流程,验证失败,返回否定响应,如果合法则继续之后的流程。

3.Server创建Challenge(4),并向Client发送针对证书的Challenge消息(7),请求Client对所发证书的所有权证明,消息中包含认证所需的随机数。

4.Client收到Challenge后使用私钥计算所有权证明客户端(10),并且通过SubFunction ProofOfOwnership(11)发送所有权证明客户端。

5.Server使用来自Client的公钥验证所有权客户端(12),与Challenge消息比较,如果验证成功,则根据访问权限(14),授予对诊断对象的访问权限。并向Client发送相应的响应,表示认证成功。

双向认证

1.Client创建Challenge客户端(1),并通过SubFuntion Vertify Certificate Bidire- ntional向Server发送Challenge客户端和含有公钥的证书客户端。

2.Server验证证书是否有效(3),如果无效,则验证失败,返回否定响应。如果有效,则进行后续的流程。

3.Server创建Challenge服务端,并且通过客户端发来的Challenge和自己的私钥计算出所有权证明(6),并向Client发送Challenge服务端、服务端证书、服务端的所有权证明以及临时公钥(7)。

4.Client根据所得的临时公钥验证服务器证书和所有权证明是否有效(8),有效之后根据服务端发来的Challenge和客户端私钥计算客户端所有权证明(10),并通过ProofOfOwnership向Server发送客户端所有权证明(11)。

5.Server收到所有权证明后进行验证是否通过(12),通过后发送访问权限(14)以及相应的响应(15),认证成功。

图中(5),(9)跟安全诊断通信有关,(16),(17),(18)跟创建会话密钥有关。

2.ACR认证流程
dc5b9bc8-8f16-11ee-9788-92fbcf53809c.png图3-ACR的认证流程图

ACR认证前提条件

1.非对称加密:具有客户端密钥对:客户端存在客户端私钥,服务器中存在客户端公钥。如果是双向认证的话,还需要在服务器端加个密钥对:客户端存在服务器公钥,服务器端存在服务器私钥。

2.对称加密:和27服务的流程相似,在客户端和服务端同时存在对称密钥。

单向认证

1.Client通过RequestChallengeForAuthentication请求验证(1)。

2.Server创建Challenge数据(2)并发送Challenge数据(3)。

3.Client计算所有权证明(5)。

4.Client通过VerifyProofOfOwnershipUnidirectional发送所有权证明(7)。

5.Server验证所有权证明(8),如果验证成功发送访问权限。

其中(14),(15),(16)是关于建立会话密钥使用的。

双向认证

1.Client通过SubFunction RequestChallengeForAuthentication请求验证(1)。

2.Server创建Challenge数据(2),并且发送Challenge数据(3)。

3.Client创建Challenge数据(4),并且计算Client所有权证明,并通过VerifyProofOfOwnershipBidirectional发送给服务器端(7)。

4.Server验证所有权证明(8)。

5.如果验证成功,Server计算所有权证明(9),并且发送访问权限(11)。

6.Client验证服务器的所有权证明(13),如果验证成功,访问成功。

3.子功能介绍(部分)
dc68e33c-8f16-11ee-9788-92fbcf53809c.png表1-29服务部分子功能

dc7e230a-8f16-11ee-9788-92fbcf53809c.pngCANdelaStudio中配置29服务
在CANdelaStudio中打开CDDT文件,选择Protocol Service,在这里可以对29服务的请求和响应的格式进行编辑。
dc827be4-8f16-11ee-9788-92fbcf53809c.png图4-29服务编辑
打开CDD文件,在Base Variant下选择Authentication,就可以对29服务的参数进行编辑。
dc86bb78-8f16-11ee-9788-92fbcf53809c.png图5-29服务参数编辑
在States下Dependencies可以配置每个服务在各个状态下的支持情况。
dc94e5c2-8f16-11ee-9788-92fbcf53809c.png图6-服务状态编辑

dc9962b4-8f16-11ee-9788-92fbcf53809c.pngCANoe中29服务的实现
以CANoe中29服务的Demo工程为例,来介绍29服务的认证过程。
dc9ef26a-8f16-11ee-9788-92fbcf53809c.png图7-29服务Demo工程
在诊断控制台中可以看到关于29服务的一些子功能。每个子功能都有不同的作用,每个认证方法的区别在于发送的子功能不同。可以根据上面的流程来决定使用哪些子功能,例如要用APCE单向认证方法的话,发送29 01和29 03服务,APCE双向认证的话发送29 02和29 03服务。用哪一个认证方法是OEM自定义的。
dca4eee0-8f16-11ee-9788-92fbcf53809c.png图8-29服务子功能
在使用29服务之前,需要配置29服务相关的文件,打开Simulation->SecurityManager->Open Security Manager,在这里就可以导入关于29服务的文件(X.509)。
dcafcdce-8f16-11ee-9788-92fbcf53809c.png图9-29服务配置
在设置好29服务文件后,在Security Configuration就会显示刚才创建的文件,将证书和通道匹配好后就可以发送29服务。
dcc81730-8f16-11ee-9788-92fbcf53809c.png图10-29服务证书和通道匹配
在Panel面板中,可以发送29服务,选择单向认证或者双向认证。发送之后在Trace中可以查看认证的过程。
dcd9b378-8f16-11ee-9788-92fbcf53809c.png图11-29服务Panel面板

dcf5059c-8f16-11ee-9788-92fbcf53809c.png 总结
29服务和27服务的功能比较相似,都是为了防止ECU的数据和软件安全受到威胁,但是27服务提供的安全机制已经不能满足现在车辆诊断功能面临的新的安全威胁,29服务就是为了弥补这些缺陷而产生的。由于27服务的安全访问控制手段缺乏灵活性,29服务引入了PKI和证书认证体系,可以灵活地给诊断的参与者分配权限,29服务还适用于多客户端,在车辆网联化共享化的趋势下很好的应对了这些新的安全威胁。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 车载
    +关注

    关注

    17

    文章

    565

    浏览量

    83101
  • 汽车工业
    +关注

    关注

    2

    文章

    112

    浏览量

    29758
  • 认证
    +关注

    关注

    1

    文章

    231

    浏览量

    17972
收藏 人收藏

    评论

    相关推荐

    拓维信息及旗下开鸿智谷同获华为HarmonyOS开发服务认证

    近日,拓维信息及旗下开鸿智谷双双通过华为HarmonyOS开发服务认证,成为华为“鸿蒙服务商先锋计划”认证级伙伴。秉持共同发展、共创价值的合作理念,拓维信息、开鸿智谷将携手华为打造
    的头像 发表于 03-29 08:13 102次阅读
    拓维信息及旗下开鸿智谷同获华为HarmonyOS开发<b class='flag-5'>服务</b>商<b class='flag-5'>认证</b>

    海辰储能荣获NECAS、CTEAS售后服务体系双项权威认证

    近日,凭借完善、专业的售后服务体系,经过严格审核,海辰储能顺利通过NECAS、CTEAS双体系权威认证,荣获“NECAS全国商品售后服务达标认证五星级”和“CTEAS售后
    的头像 发表于 02-29 11:10 437次阅读
    海辰储能荣获NECAS、CTEAS售后<b class='flag-5'>服务</b>体系双项权威<b class='flag-5'>认证</b>

    防雷检测认证服务的作用和必要性

    防雷检测认证 服务是指由具有资质的第三方机构对雷电防护装置的安全性能和技术参数进行检测和评价,并出具相应的检测报告和证书的服务。防雷检测认证服务
    的头像 发表于 01-02 10:25 182次阅读
    防雷检测<b class='flag-5'>认证</b><b class='flag-5'>服务</b>的作用和必要性

    UDS诊断29服务--服务介绍#诊断自动化测试

    自动化测试
    北汇信息POLELINK
    发布于 :2023年12月20日 12:17:03

    中软国际荣获首批华为企业业务ICT服务伙伴认证

    近日, 中软国际华为业务集团军团业务部 率先通过华为企业业务ICT服务伙伴认证。该认证充分表明,中软国际在华为ICT服务领域,尤其是ISDP实施交付等关键业务领域中,发挥着极为重要的作
    的头像 发表于 12-04 18:25 1188次阅读

    UDS在CAN和以太网上的实现方案

    JTAG是针对MCU或者SOC这种芯片的调试接口协议,而UDS更像是针对整个ECU的调试接口。UDS简单来说是一种Client/Server的通信服务,即Tester(诊断仪)向ECU发送诊断
    发表于 11-28 09:56 1134次阅读
    <b class='flag-5'>UDS</b>在CAN和以太网上的实现方案

    汽车UDS协议栈与XCP协议栈

    UDS协议栈 汽车UDS协议栈是一种用于汽车电子控制单元(ECU)之间进行诊断和通信的标准协议。UDS(Unified Diagnostic Services)协议定义了一组诊断服务
    的头像 发表于 10-27 16:35 2177次阅读
    汽车<b class='flag-5'>UDS</b>协议栈与XCP协议栈

    HarmonyOS/OpenHarmony原生应用开发-华为Serverless认证服务说明(二)

    Serverless认证服务说明 帮助应用快速构建安全可靠的用户认证系统,给用户更简捷的登录体验。支持手机号、邮箱、国内外主流三方平台帐号、游客匿名帐号等多种登录方式。 1.功能介绍 支持多种登录方式,使您
    发表于 10-10 14:59

    UDS诊断服务响应规则介绍

    15031,ISO 15765,还有我们熟悉的ISO 14229就是UDS协议,在协议里面定义了诊断的请求,诊断响应的报文格式,以及ECU怎样处理诊断请求报文,以及诊断服务的应用。
    的头像 发表于 08-15 17:00 2109次阅读
    <b class='flag-5'>UDS</b>诊断<b class='flag-5'>服务</b>响应规则介绍

    UDS诊断服务介绍之31服务

    根据ISO14119-1标准中所述,诊断服务31服务主要用于实现针对某类测试场景,非正常工况下的程序活动以及其他擦除内存等连续性操作步骤的集合。
    的头像 发表于 08-08 10:48 8065次阅读
    <b class='flag-5'>UDS</b>诊断<b class='flag-5'>服务</b>介绍之31<b class='flag-5'>服务</b>

    浅析UDS中的肯定响应抑制SPRMIB

    UDS协议中,有些诊断服务是带有子功能的。子功能参数的取值范围为0x00 - 0x7F。细心的同学应该发现了,子功能参数占用了一个字节,可用的数值范围为0~0xFF。
    的头像 发表于 07-27 14:18 1392次阅读
    浅析<b class='flag-5'>UDS</b>中的肯定响应抑制SPRMIB

    【野火】瑞萨RA MCU创意氛围赛+ 基于CAN总线的UDS诊断升级MCU /bootloader/UDS诊断/14229/15765

    基于can总线的UDS软件升级 最近学习UDS诊断协议(ISO14229),是一项国际标准,为汽车电子系统中的诊断通信定义了统一的协议和服务。它规定了与诊断相关的服务需求,并没有设计通
    发表于 06-13 01:26

    UDS常用诊断服务

    UDS诊断概述 UDS(Unified Diagnostic Services,统一的诊断服务)诊断协议是在汽车电子ECU环境下的一种诊断通讯协议。简单来说,可以理解为UDS诊断协议就
    的头像 发表于 06-12 10:36 4468次阅读
    <b class='flag-5'>UDS</b>常用诊断<b class='flag-5'>服务</b>

    UDS基础知识介绍

    UDS(Unified Diagnostic Services 统一的诊断服务)是一种通用的诊断服务标准,用于汽车电子控制单元(ECU)的诊断和调试。
    的头像 发表于 05-30 10:57 1w次阅读
    <b class='flag-5'>UDS</b>基础知识介绍

    《杰发微课堂》开讲 AC7840x UDS on CAN完整解决方案

    基于ISO 14229标准的汽车诊断通信协议,规定了一系列的诊断服务和数据通信格式,是汽车电子领域中非常重要的一个标准。UDS主要用于诊断和调试车辆中的电子控制单元(ECU),使诊断工具拥有更广泛的适用性和通用性,也可帮助汽车制造商和维修
    发表于 05-23 15:36 797次阅读
    《杰发微课堂》开讲 AC7840x <b class='flag-5'>UDS</b> on CAN完整解决方案