车联网学习笔记1
记录一下转车联网安全后的学习,因为是刚接触,有些东西理解不够透彻或有误,后续会更新
报文审计
CRC
待记
SecOC机制
安全通讯模块。在原始CAN帧上面加入一些标识,在解析的时候先识别标识,再解析数据,否则认为数据是无效的,通俗一点就是发送CAN原始数据的时候进行加密,解析CAN原始数据的时候进行解密。
SecOC机制报文的CAN数据必须是CANFD格式的,CAN标准格式的实施不了SecOC机制,因为SecOC的加密信息需要占用8字节(传统CAN标准最多只有8字节报文,而CANFD最多能64)
DLC = 16
1 |
|
DLC = 32
1 |
|
可以看得出,一条用了SecOC机制的报文是由原始CAN数据、新鲜度值信息和 MAC值信息组成
报文识别
扩展帧和标准帧
18daxxxx 是扩展帧标识符
前两个字节是UDS标识符,后两个字节是子功能码
18DB
18DA
7DF 是标准帧标识符
7DF
7FF
报文解释(以标准帧为例)
1 |
|
7DF:CAN消息标识符
02:服务ID(从后面的功能ID开始数,有几个字节就是零几,比如11 01两个字节就是02,27 02 11 22就是4个字节,用04)
11:功能ID
01:数据ID(功能参数)
xx…: 数据报文
Can通信
发送报文11 01
响应的是51 01
,发送10 01
响应的是50 01
观察报文的收发发现,服务端响应的报文里,功能ID会比发送的多40,比如发送27 01 ,响应则是67 01 ,发送22 f1,响应则是62 f1,了解这个规则有利于查找对应的响应报文
使用UDS诊断时先发送10 03切换模式(00为保留 01位默认模式 02为编程模式 03为扩展模式)
扩展帧18DBFFF1 寻址
先发送18DBFFF1确认通信地址,比如发送18DBFFF1,回复的是18DAF1EE,其中18DB回复对应的标识符18DA,回复的EE是通信ID,所以后续要跟EE进行通信,最终通信地址就是18DAEEF1
xx 7F xx(功能id)是否定响应,比如发送02 11 01 00 00 00 00 00
,肯定响应是02 51 01 00 00 00 00 00
,如果响应被否定,则是03 7F 11 12 00 00 00 00
,其中11是请求的功能ID,12是响应码
响应码说明
0x12(子功能不支持)
0x13(报文长度错误或格式非法)
0x22(条件不满足,处于变编程状态)
结合响应码得知03 7F 11 12 00 00 00 00意思是返回了3个字节,响应内容为不支持11服务
主板
串口通信
调试口一般是RX
TX
GND
,其中GND是地线,RX是接收,TX是发送,引脚线两端要对好,一般板子都会标明,如果没有标明,则用万用表测试。
1 |
|
板子一般是12v,万用表调到20就够用了
测试JTAG或UART:查询芯片丝印,用万用表按照芯片datasheet测试引脚
目前复测过的漏洞(真实车零部件):
1 |
|
ECU刷写
截至目前见过刷写原理(通过查看OTA升级日志)其实就是上位机通过发送2E来写入数据
诊断服务参考:
UDS的安全访问服务(0x27)与CAPL实现自动处理
https://blog.csdn.net/u013391094/article/details/130911357
安全访问(ISO14229系列之27服务)
https://blog.csdn.net/weixin_44536482/article/details/93340252
声明:
本文章用于学习交流,严禁用于非法操作,出现后果一切自行承担,阅读此文章表示你已同意本声明。
Disclaimer:
This article is for study and communication. It is strictly forbidden to use it for illegal operations. All consequences shall be borne by yourself. Reading this article means that you have agreed to this statement.