客戶端使用SecurityAccess Service請求安全解鎖服務端,SecurityAccess Service用于將客戶端的數(shù)據(jù)上傳到服務端或者將服務器的數(shù)據(jù)下載到服務端時候的安全訪問。
客戶端使用SecurityAccess Service請求安全解鎖服務端流程如下所示:
第1步:客戶端發(fā)送seed請求;
第2步:服務端發(fā)出seed;
第3步:客戶端發(fā)送key密鑰,依據(jù)服務端發(fā)出的seed進行處理;
第4步:服務端解析客戶端發(fā)過來的key密鑰,如果無誤則完成安全解鎖功能。
1
診斷請求
客戶端發(fā)送seed請求協(xié)議:0X27 0X** 0X&&(A_Data.A_PCI.SI和A_Data.Parameter 1~k數(shù)據(jù))。
其中:
0X27是服務ID(SID),1字節(jié);
0X**是服務的子功能,當requestSeed為奇數(shù)時發(fā)送send命令,范圍為:0X01~0X7F中的奇數(shù),1字節(jié);
0X&&是可選項,用于在請求種子信息時將數(shù)據(jù)傳輸?shù)椒掌?,它可以包含服務端中驗證的客戶端標識,長度不固定。
客戶端發(fā)送key密鑰協(xié)議:0X27 0X** 0X&&(A_Data.A_PCI.SI和A_Data.Parameter 1~k數(shù)據(jù))。
其中:
0X27是服務ID(SID),1字節(jié);
0X**是服務的子功能,當sendKey為偶數(shù)時發(fā)送key密鑰命令,范圍為:0X01~0X7F中的偶數(shù),1字節(jié);
0X&&的值是通過將獲取服務端發(fā)出seed數(shù)值進行安全算法生成的,所以這個值是隨著服務端發(fā)出seed數(shù)值的變化而變化,長度不固定。
在ISO 14229-1-2020協(xié)議中規(guī)定了各類requestSeed和sendKey的意義和使用場景,如下所示:
標準中也規(guī)定了seed請求和key密鑰的對應關系:
2
診斷響應
診斷響應有肯定響應和否定響應兩種類型。
2.1、肯定響應
肯定響應表示服務端回復客戶端請求成功,響應協(xié)議:0X67 0X** 0X&&(A_Data.A_PCI.SI和A_Data.Parameter 1~k數(shù)據(jù))。
其中:
0X67是響應服務的SID,相當于0X27+0X40,1字節(jié);
0X**是響應服務的子功能,范圍為:0X00~0X7F,1字節(jié)。例如,客戶端使用0X01子服務,此時肯定響應的子服務就是0X01;
0X&&的存在取決于securityAccessType參數(shù),seed參數(shù)是服務端發(fā)來的數(shù)據(jù),客戶端在安全訪問服務端時需要使用該值計算密鑰,長度不固定。
2.2、否定響應
否定響應表示客戶端或者服務端存在問題,否定響應會提示失敗原因。
響應協(xié)議:0X7F 0X** 0X&&(A_Data.A_PCI.NR_SI、A_Data.A_PCI. SI和A_Data.Parameter 1數(shù)據(jù))。
其中:
0X7F是否定響應固定數(shù)值,1字節(jié);
0X**是診斷服務ID(SID),本篇博文使用的是0X27服務,則否定響應會返回0X27,1字節(jié);
0X&&是NRC錯誤碼,描述了返回錯誤的原因,1字節(jié)。
SecurityAccess Service(SID:0X27)有8種類型錯誤,如下所示:
審核編輯:劉清
-
PCI
+關注
關注
4文章
666瀏覽量
130267 -
SID
+關注
關注
0文章
15瀏覽量
3029
原文標題:詳解UDS CAN診斷:SecurityAccess Service(SID:0X27)
文章出處:【微信號:美男子玩編程,微信公眾號:美男子玩編程】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
相關推薦
評論