博客專欄

EEPW首頁 > 博客 > 詳解UDS CAN診斷:SecurityAccess Service(SID:0X27)

詳解UDS CAN診斷:SecurityAccess Service(SID:0X27)

發(fā)布人:美男子玩編程 時(shí)間:2023-02-28 來源:工程師 發(fā)布文章

診斷和通信管理功能單元(Diagnostic and communication management functional unit)包含10種服務(wù),本篇博文將詳細(xì)講解SecurityAccess Service(SID:0X27)的特性和協(xié)議。


圖片

本篇博文素材來源于:ISO 14229-1-2020:規(guī)范和要求。


在學(xué)習(xí)本篇博文之前推薦學(xué)習(xí):

詳解UDS CAN診斷:什么是UDS(ISO 14229)診斷?

詳解UDS CAN診斷:DiagnosticSessionControl Service(SID:0X10)


很多關(guān)聯(lián)知識已經(jīng)詳細(xì)講解過,這里不再贅述了。


客戶端使用SecurityAccess Service請求安全解鎖服務(wù)端,SecurityAccess Service用于將客戶端的數(shù)據(jù)上傳到服務(wù)端或者將服務(wù)器的數(shù)據(jù)下載到服務(wù)端時(shí)候的安全訪問。


客戶端使用SecurityAccess Service請求安全解鎖服務(wù)端流程如下所示:

第1步:客戶端發(fā)送seed請求;

第2步:服務(wù)端發(fā)出seed;

第3步:客戶端發(fā)送key密鑰,依據(jù)服務(wù)端發(fā)出的seed進(jìn)行處理;

第4步:服務(wù)端解析客戶端發(fā)過來的key密鑰,如果無誤則完成安全解鎖功能。



1


診斷請求

客戶端發(fā)送seed請求協(xié)議:0X27 0X** 0X&&(A_Data.A_PCI.SI和A_Data.Parameter 1~k數(shù)據(jù))。


圖片

其中:

  • 0X27是服務(wù)ID(SID),1字節(jié);

  • 0X**是服務(wù)的子功能,當(dāng)requestSeed為奇數(shù)時(shí)發(fā)送send命令,范圍為:0X01~0X7F中的奇數(shù),1字節(jié);

  • 0X&&是可選項(xiàng),用于在請求種子信息時(shí)將數(shù)據(jù)傳輸?shù)椒?wù)器,它可以包含服務(wù)端中驗(yàn)證的客戶端標(biāo)識,長度不固定。


客戶端發(fā)送key密鑰協(xié)議:0X27 0X** 0X&&(A_Data.A_PCI.SI和A_Data.Parameter 1~k數(shù)據(jù))。


圖片

其中:

  • 0X27是服務(wù)ID(SID),1字節(jié);

  • 0X**是服務(wù)的子功能,當(dāng)sendKey為偶數(shù)時(shí)發(fā)送key密鑰命令,范圍為:0X01~0X7F中的偶數(shù),1字節(jié);

  • 0X&&的值是通過將獲取服務(wù)端發(fā)出seed數(shù)值進(jìn)行安全算法生成的,所以這個(gè)值是隨著服務(wù)端發(fā)出seed數(shù)值的變化而變化,長度不固定。


在ISO 14229-1-2020協(xié)議中規(guī)定了各類requestSeed和sendKey的意義和使用場景,如下所示:


圖片

標(biāo)準(zhǔn)中也規(guī)定了seed請求和key密鑰的對應(yīng)關(guān)系:


圖片

2


診斷響應(yīng)

診斷響應(yīng)有肯定響應(yīng)和否定響應(yīng)兩種類型。


2.1、肯定響應(yīng)

肯定響應(yīng)表示服務(wù)端回復(fù)客戶端請求成功,響應(yīng)協(xié)議:0X67 0X** 0X&&(A_Data.A_PCI.SI和A_Data.Parameter 1~k數(shù)據(jù))。


圖片

其中:

  • 0X67是響應(yīng)服務(wù)的SID,相當(dāng)于0X27+0X40,1字節(jié);

  • 0X**是響應(yīng)服務(wù)的子功能,范圍為:0X00~0X7F,1字節(jié)。例如,客戶端使用0X01子服務(wù),此時(shí)肯定響應(yīng)的子服務(wù)就是0X01;

  • 0X&&的存在取決于securityAccessType參數(shù),seed參數(shù)是服務(wù)端發(fā)來的數(shù)據(jù),客戶端在安全訪問服務(wù)端時(shí)需要使用該值計(jì)算密鑰,長度不固定。


2.2、否定響應(yīng)

否定響應(yīng)表示客戶端或者服務(wù)端存在問題,否定響應(yīng)會(huì)提示失敗原因。


響應(yīng)協(xié)議:0X7F 0X** 0X&&(A_Data.A_PCI.NR_SI、A_Data.A_PCI. SI和A_Data.Parameter 1數(shù)據(jù))。


其中:

  • 0X7F是否定響應(yīng)固定數(shù)值,1字節(jié);

  • 0X**是診斷服務(wù)ID(SID),本篇博文使用的是0X27服務(wù),則否定響應(yīng)會(huì)返回0X27,1字節(jié);

  • 0X&&是NRC錯(cuò)誤碼,描述了返回錯(cuò)誤的原因,1字節(jié)。


SecurityAccess Service(SID:0X27)有8種類型錯(cuò)誤,如下所示:


圖片圖片


*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請聯(lián)系工作人員刪除。



關(guān)鍵詞: UDS CAN

技術(shù)專區(qū)

關(guān)閉