文章总结: 本文探讨了汽车控制器中Bootloader程序的安全访问机制,重点分析了当Application程序失效时是否仍需UDS0x27/0x29安全服务的问题。作者认为Bootloader进入后保持解锁状态可接受,因其主要功能是程序更新,且可通过公钥验证确保软件合法性。文章还延伸解读了ISO14229-1规范中Seed请求处理机制及Static_Seed的应用场景。 综合评分: 78 文章分类: 车联网安全,应用安全,技术标准,解决方案
UDS,进入Bootloader等同安全解锁,接受否?
谈思实验室
2026年5月15日 17:26 上海
在小说阅读器读本章
去阅读
以下文章来源于开心果 Need Car ,作者开心果 Need Car
开心果 Need Car .
号主:开心果 Need Car,主要从事汽车Autosar开发,公众号主要分享 通信、诊断、存储、网络管理、标定、Bootloader等工程开发问题。致力于将学到的知识,分享给更多的Autosar从业者,努力解答一线开发工程师的困顿!
点击上方蓝字谈思实验室
获取更多汽车网络安全资讯
控制器的主芯片中,往往不是单个程序的单打独斗,而是多个进程的相互配合,进而使得控制器发挥它应有的功能。一块主芯片会包含哪些程序呢?如果项目包含信息安全,一般来说,主芯片会包含:信息安全Bootloader程序,信息安全Application程序,用户Bootloader程序,用户Application程序等。示意如下:
当芯片被供电那一刻,CPU就从第一条指令开始执行,第一条指令指向哪呢?就用户的第一条指令来说,往往是指Bootloader的指令。即:CPU最开始执行Bootloader程序。但是,一个控制器的主要功能在Application程序中,所以,如果要控制器“干活”,也就必须让程序进入Application,所以,这就有了Bootloader跳转(Jump)Application的讨论。
为了防止软件程序的非法访问和破环,对于软件的操作都需要格外的小心,所以,在UDS(Unified diagnostic services)的规范中有了0x27(Security Access service)和0x29(Authentication service)服务。
可是,有这样一种场景:如果芯片只有Bootloader程序或者Application程序失效,Bootloadert程序目前无法跳转Application程序。示意如下:
对于这样的工况,Bootloader程序是否还需要安全解锁?或者说,一旦程序进入了Bootloader程序,默认处于解锁状态,无需额外的0x27服务?是否可行呢?
个人观点:对于Bootloader来说,它最大的作用就是更新程序。所以,当程序进入Bootloader程序以后,就保持解锁状态是可以接受的。因为,程序进入不了Application或者没有Application,控制器是无法工作的,如果不能重新更新,控制器就等同于“砖”(brick)。
但是,有的小伙伴就问题:进入Bootloader和是否使用0x27/0x29服务不冲突呀。确实不冲突,但是,我们这里在讨论,不用0x27/0x29服务又怎样呢?难道就不升级?我们使用0x27/0x29服务的目的主要为了避免非法刷写的问题。就是说,需要确保更新程序得合法性。否则,程序就可能被恶意篡改,甚至使得产品被逆向和复制。
所以,如果不使用0x27/0x29服务,就得确保软件更新的合法性,即:下载到控制器内的Application或者其他组件是真实的,完整的。如何保证呢?软件下载以后,往往需要使用公钥(Public key)验证下载软件的合法性,所以,下载软件的真实性和完整性是可以得到保证的,示意如下:
延伸:如果0x27对应的安全级(Security Level)已经解锁,当前的安全级再次收到种子请求时,Server可以通过返回全0表示当前Security Level已经解锁,14229-1规范对应的解释如下:
延伸拓展:
在144229-1的规范中,已经给出了seed的请求处理方式。具体的细节描述在Table I.2,其中No.5的解释如下:
关于Static_Seed、Xx、Yy的描述如下所示:
红框内容的具体解释:
(一)第一种情况
Condition:收到 SecurityAccess requestSeed 请求。且Static_Seed == True。请求的securityAccessType已有一个活动的存储种子(seed)。
Action:保存子功能(SubFunction),即 xx = securityAccessType。
发送 SecurityAccess 正响应,并使用当前存储的种子作为请求的 securityAccessType 的种子。再次保存子功能。
解释:如果 ECU已经有对应类型的种子,就直接返回这个种子,不重新生成。
那么,Static_Seed == True的前提下,存储的种子何时清除呢?规范要求如下:
即:收到正确的key以后,如果Static_Seed == True,清除生成的Seed。
(二)第二种情况
Condition:收到 SecurityAccess requestSeed 请求。Static_Seed == True。请求的 securityAccessType 没有活动种子(与之前的类型不同)。
Action:为请求的 securityAccessType 生成并存储新的种子(如果当前 ECU运行周期内尚未生成)。保存子功能(SubFunction)。发送 SecurityAccess 正响应,并将新生成的种子作为活动种子返回。
解释:如果ECU没有对应类型的种子,就生成一个新的种子并返回。
end
谈思汽车媒体门户
精品活动推荐
AutoSec系列沙龙
专业社群
部分入群专家来自:
新势力车企:
特斯拉、理想、极氪、小米、零跑汽车、阿维塔汽车、智己汽车、小鹏、岚图汽车、蔚来汽车、吉祥汽车、赛力斯……
外资传统主流车企代表:
大众中国、大众酷翼、奥迪汽车、宝马、福特、戴姆勒-奔驰、通用、保时捷、沃尔沃、现代汽车、日产汽车、捷豹路虎、斯堪尼亚……
内资传统主流车企:
吉利汽车、上汽乘用车、长城汽车、上汽大众、长安汽车、北京汽车、东风汽车、广汽、比亚迪、一汽集团、一汽解放、东风商用、上汽商用……
全球领先一级供应商:
博世、大陆集团、联合汽车电子、安波福、采埃孚、科世达、舍弗勒、霍尼韦尔、大疆、日立、哈曼、华为、百度、联想、联发科、普瑞均胜、德赛西威、蜂巢转向、均联智行、武汉光庭、星纪魅族、中车集团、潍柴集团、地平线、紫光同芯、字节跳动、……
二级供应商(500+以上):
中科数测、ETAS、BlackDuck、NXP、上海软件中心、Deloitte、奇安信、为辰信安、云驰未来、信长城、泽鹿安全、纽创信安、复旦微电子、天融信、奇虎360、中汽中心、中国汽研、上海汽检、加特兰微电子、浙江大学……
人员占比
公司类型占比
文章
不要错过哦,这可能是汽车网络安全产业最大的专属社区!
关于涉嫌仿冒AutoSec会议品牌的律师声明
一文带你了解智能汽车车载网络通信安全架构
网络安全:TARA方法、工具与案例
汽车数据安全合规重点分析
浅析汽车芯片信息安全之安全启动
域集中式架构的汽车车载通信安全方案探究
系统安全架构之车辆网络安全架构
车联网中的隐私保护问题
智能网联汽车网络安全技术研究
AUTOSAR 信息安全框架和关键技术分析
AUTOSAR 信息安全机制有哪些?
信息安全的底层机制
汽车网络安全
Autosar硬件安全模块HSM的使用
首发!小米雷军两会上就汽车数据安全问题建言:关于构建完善汽车数据安全管理体系的建议
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:谈思实验室 《UDS,进入Bootloader等同安全解锁,接受否?》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。









评论