System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及汽车诊断,具体地说是一种提高诊断服务安全性的方法。
技术介绍
1、在智能网联汽车高速发展下,车联网功能越来越普遍,此背景下汽车信息安全越来越受到业内人士的重视。
2、目前,车载网络架构基于uds(unified diagnostic services,统一诊断服务)的诊断服务作为整车网络通讯的关键协议愈发重要。
3、诊断服务主要是诊断仪给目标ecu发送诊断请求,并通过获取目标ecu的诊断响应数据,来获取当前以及历史的状态。诊断请求和响应的数据格式由诊断请求或响应can id、数据长度以及数据部分组成。诊断请求和响应的can id在ecu的整个生命周期内一直保持不变,且诊断的请求和响应格式满足标准的iso 14229协议,因此诊断服务的数据安全性不高,在知晓诊断id的情况下,很容易获取到车辆的相关信息,容易造成安全数据的泄露,并且车辆在行驶中通讯控制这类服务还可能导致安全事故。
4、因此,需要设计一种提高诊断服务安全性的方法,以提高汽车诊断服务的数据的安全性。
技术实现思路
1、本专利技术的目的是克服现有技术的不足,提供了一种提高诊断服务安全性的方法,以提高汽车诊断服务的数据的安全性。
2、为了达到上述目的,本专利技术是一种提高诊断服务安全性的方法,包括如下步骤:
3、步骤1:诊断仪发送握手请求到can总线中,并采用包含目标ecu所在网段的公用诊断id的请求数据与目标ecu进行请求握手,请求数据为0xab 0x
4、步骤2:目标ecu获取到请求数据后,对收到的请求数据进行解析并判断握手请求是否与自己相匹配,若不匹配,则结束,若匹配,则目标ecu根据收到的数据和诊断仪发送的系统随机数进行校验,若校验失败,则结束,若校验成功,则继续步骤3。
5、步骤3:目标ecu生成确认握手信息数据以及动态诊断id加密数据,将动态诊断id发送给诊断仪,诊断仪后续采用动态诊断id进行诊断服务。
6、步骤4:若目标ecu在发送动态的诊断id后,规定时间内未收到任何诊断服务或两次诊断服务的间隔时间大于规定时间,则目标ecu自动断开本次连接,若后续诊断仪需要再次与目标ecu进行通讯,需要重新再次建立连接。
7、所述的步骤1中,data3-data7中,有效数据的位置具体按如下步骤确认:步骤1a,将目标ecu的8个字节的诊断编号相加,相加后数值的高字节为a1b1,相加后数值的低字节为a2b2;步骤2a,设置系统随机数xy;步骤3a,计算a1b1*=a1b1+x,a2b2*=a2b2+y;步骤3b,根据a1b1*数值确定有效数据a1b1存放的具体位置:若a1b1*数值的低位为0-2,则a1b1放在data3的位置,若a1b1*数值的低位为3-5,则a1b1放在data4的位置,若a1b1*数值的低位为6-8,则a1b1放在data5的位置,若a1b1*数值的低位为9-11,则a1b1放在data6的位置,若a1b1*数值的低位为12-15,则a1b1放在data7的位置;步骤4a,根据a2b2*数值确定有效数据a2b2存放的具体位置:若a2b2*数值的低位为0-2,则a2b2放在data3的位置,若a2b2*数值的低位为3-5,则a2b2放在data4的位置,若a2b2*数值的低位为6-8,则a2b2放在data5的位置,若a2b2*数值的低位为9-11,则a2b2放在data6的位置,若a2b2*数值的低位为12-15,则a2b2放在data7的位置;步骤5a,判断a1b1与a2b2是否放在同一位置,如否,则结束;如是,则a1b1放在当前位置,a2b2放在与a1b1相邻的字节。
8、所述的步骤2中,目标ecu判断握手请求是否与自己相匹配的步骤如下:依次判断所在网段id、ecu编号以及握手数据是否与目标ecu匹配。
9、所述的握手数据为 请求数据中的data2-data7。
10、所述的步骤3中,动态诊断id的加密数据生成步骤如下:步骤1b,对data3-data7中,除有效数据外的三个填充位数据进行异或运算,得到mn,取mn的高字节m,若m为0-5,则去第一个数据;若m为6-10,则去第二个数据;若m为11-15,则去第三个值;步骤2b,将值和该值的低位所对应的ecu的诊断编号中的值进行相加即得到最终的动态诊断id的取值,如低位为0-1,则取ecu诊断编号中的data0;如低位为2-3,则取ecu诊断编号中的data1,依次类推。
11、所述的步骤4中,规定时间为5s~10s。
12、本专利技术同现有技术相比,采用包含目标ecu所在网段的公用诊断id的请求数据以及加密的动态诊断id完成ecu与诊断仪之间的握手、响应、通信,从而提高了诊断服务中数据的安全性。
本文档来自技高网...【技术保护点】
1.一种提高诊断服务安全性的方法,其特征在于:包括如下步骤:
2.根据权利要求1所述的一种提高诊断服务安全性的方法,其特征在于:所述的步骤1中,Data3-Data7中,有效数据的位置具体按如下步骤确认:步骤1a,将目标ECU的8个字节的诊断编号相加,相加后数值的高字节为A1B1,相加后数值的低字节为A2B2;步骤2a,设置系统随机数XY;步骤3a,计算A1B1*=A1B1+X,A2B2*=A2B2+Y;步骤3b,根据A1B1*数值确定有效数据A1B1存放的具体位置:若A1B1*数值的低位为0-2,则A1B1放在Data3的位置,若A1B1*数值的低位为3-5,则A1B1放在Data4的位置,若A1B1*数值的低位为6-8,则A1B1放在Data5的位置,若A1B1*数值的低位为9-11,则A1B1放在Data6的位置,若A1B1*数值的低位为12-15,则A1B1放在Data7的位置;步骤4a,根据A2B2*数值确定有效数据A2B2存放的具体位置:若A2B2*数值的低位为0-2,则A2B2放在Data3的位置,若A2B2*数值的低位为3-5,则A2B2放在Data4
3.根据权利要求1所述的一种提高诊断服务安全性的方法,其特征在于:所述的步骤2中,目标ECU判断握手请求是否与自己相匹配的步骤如下:依次判断所在网段ID、ECU编号以及握手数据是否与目标ECU匹配。
4.根据权利要求3所述的一种提高诊断服务安全性的方法,其特征在于:所述的握手数据为 请求数据中的Data2-Data7。
5.根据权利要求1所述的一种提高诊断服务安全性的方法,其特征在于:所述的步骤3中,动态诊断ID的加密数据生成步骤如下:步骤1b,对Data3-Data7中,除有效数据外的三个填充位数据进行异或运算,得到MN,取MN的高字节M,若M为0-5,则去第一个数据;若M为6-10,则去第二个数据;若M为11-15,则去第三个值;步骤2b,将值和该值的低位所对应的ECU的诊断编号中的值进行相加即得到最终的动态诊断ID的取值,如低位为0-1,则取ECU诊断编号中的Data0;如低位为2-3,则取ECU诊断编号中的Data1,依次类推。
6.根据权利要求1所述的一种提高诊断服务安全性的方法,其特征在于:所述的步骤4中,规定时间为5s~10s。
...【技术特征摘要】
1.一种提高诊断服务安全性的方法,其特征在于:包括如下步骤:
2.根据权利要求1所述的一种提高诊断服务安全性的方法,其特征在于:所述的步骤1中,data3-data7中,有效数据的位置具体按如下步骤确认:步骤1a,将目标ecu的8个字节的诊断编号相加,相加后数值的高字节为a1b1,相加后数值的低字节为a2b2;步骤2a,设置系统随机数xy;步骤3a,计算a1b1*=a1b1+x,a2b2*=a2b2+y;步骤3b,根据a1b1*数值确定有效数据a1b1存放的具体位置:若a1b1*数值的低位为0-2,则a1b1放在data3的位置,若a1b1*数值的低位为3-5,则a1b1放在data4的位置,若a1b1*数值的低位为6-8,则a1b1放在data5的位置,若a1b1*数值的低位为9-11,则a1b1放在data6的位置,若a1b1*数值的低位为12-15,则a1b1放在data7的位置;步骤4a,根据a2b2*数值确定有效数据a2b2存放的具体位置:若a2b2*数值的低位为0-2,则a2b2放在data3的位置,若a2b2*数值的低位为3-5,则a2b2放在data4的位置,若a2b2*数值的低位为6-8,则a2b2放在data5的位置,若a2b2*数值的低位为9-11,则a2b2放在data6的位置,若a2b2*数值的低位为12-15,...
【专利技术属性】
技术研发人员:熊万,穆大川,胡冲,
申请(专利权)人:博世华域转向系统武汉有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。