认识UDS诊断29认证服务-Authentication Service
目錄
1.概述
2. 背景知識(shí)
3. 服務(wù)介紹
4. 服務(wù)實(shí)現(xiàn)
5.?與27服務(wù)的比較
1.概述
29服務(wù)是在ISO 14229-2020版本中首次增加的為應(yīng)對(duì)網(wǎng)聯(lián)汽車日益增加的安全風(fēng)險(xiǎn)的新服務(wù)。
此服務(wù)的目的顧名思義是為client和server之間的身份認(rèn)證提供一種方法,以便對(duì)意圖獲取一些有訪問(wèn)限制的數(shù)據(jù)或服務(wù)操作時(shí)驗(yàn)證client的身份,這些限制可能是由于安全或排放相關(guān)的原因。需要認(rèn)證服務(wù)保護(hù)的情況包括:調(diào)用server的例程服務(wù),數(shù)據(jù)的上傳或下載相關(guān)服務(wù)、通過(guò)診斷服務(wù)讀取內(nèi)存中特定地址存儲(chǔ)的數(shù)據(jù)。除server對(duì)client的認(rèn)證外,某些情況下client也需要對(duì)server身份的合法性進(jìn)行確認(rèn),從數(shù)據(jù)流向的兩個(gè)方向考慮,未經(jīng)認(rèn)證的操作都有可能為車輛電氣系統(tǒng)帶來(lái)危害或違反數(shù)據(jù)安全要求。
2. 背景知識(shí)
在了解29服務(wù)之前需要了解幾個(gè)標(biāo)準(zhǔn)中提到的信息安全概念:
- 對(duì)稱加密:通信雙方加密和解密使用相同的密鑰
- 非對(duì)稱加密:通信雙方各有一對(duì)密鑰,分為公鑰和私鑰,信息的加密使用公鑰,解密使用私鑰,公鑰雙方共享,私鑰只有自己知道,以此避免消息泄露
- PKI?是Public Key Infrastructure的首字母縮寫,翻譯過(guò)來(lái)就是公鑰基礎(chǔ)設(shè)施;PKI是一種遵循標(biāo)準(zhǔn)的利用公鑰加密技術(shù)為電子商務(wù)的開展提供一套安全基礎(chǔ)平臺(tái)的技術(shù)和規(guī)范。PKI技術(shù)是一種遵循既定標(biāo)準(zhǔn)的密鑰管理平臺(tái),它的基礎(chǔ)是加密技術(shù),核心是證書服務(wù),支持集中自動(dòng)的密鑰管理和密鑰分配,能夠?yàn)樗械木W(wǎng)絡(luò)應(yīng)用提供加密和數(shù)字簽名等密碼服務(wù)及所需要的密鑰和證書管理體系。通俗理解:PKI就是利用公開密鑰理論和技術(shù)建立提供安全服務(wù)的、具有通用性的基礎(chǔ)設(shè)施,是創(chuàng)建、頒發(fā)、管理、注銷公鑰證書所涉及的所有軟件、硬件集合體,PKI可以用來(lái)建立不同實(shí)體間的"信任"關(guān)系,它是目前網(wǎng)絡(luò)安全建設(shè)的基礎(chǔ)與核心。PKI的主要任務(wù)是在開放環(huán)境中為開放性業(yè)務(wù)提供基于非對(duì)稱密鑰密碼技術(shù)的一系列安全服務(wù),包括身份證書和密鑰管理、機(jī)密性、完整性、身份認(rèn)證和數(shù)字簽名等。因此,用戶可利用PKI平臺(tái)提供的服務(wù)進(jìn)行電子商務(wù)和電子政務(wù)應(yīng)用。?PKI詳解 - 運(yùn)維-小松松 - 博客園 (cnblogs.com)
- CVC?is a public-key certificate that is stored in a very compact format 在一個(gè)在非常緊湊格式下存儲(chǔ)的公鑰證書?Card Verifiable Certificate (memim.com)
- X.509?是密碼學(xué)里公鑰證書的格式標(biāo)準(zhǔn)。X.509證書里含有公鑰、身份信息(比如網(wǎng)絡(luò)主機(jī)名,組織的名稱或個(gè)體名稱等)和簽名信息(可以是證書簽發(fā)機(jī)構(gòu)CA的簽名,也可以是自簽名)。對(duì)于一份經(jīng)由可信的證書簽發(fā)機(jī)構(gòu)簽名或者可以通過(guò)其它方式驗(yàn)證的證書,證書的擁有者就可以用證書及相應(yīng)的私鑰來(lái)創(chuàng)建安全的通信,對(duì)文檔進(jìn)行數(shù)字簽名
- 證書的組成結(jié)構(gòu)(參考):
-
- 證書
- ...
- 公鑰算法
- 主體公鑰?[1]
- 此日期前無(wú)效
- 此日期后無(wú)效
- 版本號(hào)
- 序列號(hào)
- 簽名算法
- 頒發(fā)者
- 證書有效期
- 主體
- 主體公鑰信息
- 頒發(fā)者唯一身份信息(可選項(xiàng))
- 主體唯一身份信息(可選項(xiàng))
- 擴(kuò)展信息(可選項(xiàng))
- 證書簽名算法
- 數(shù)字簽名
- 證書
- Diffie-Hellman密鑰協(xié)商算法?一個(gè)用于解決秘鑰配送問(wèn)題的算法,本身并非用來(lái)加密,在標(biāo)準(zhǔn)中用于為ECU之間的加密通信傳輸密鑰?Diffie-Hellman密鑰協(xié)商算法 - Rookie丶flying - 博客園 (cnblogs.com)
- 挑戰(zhàn)確認(rèn)(Challenge-Response)認(rèn)證流程:
1) 客戶端向服務(wù)器發(fā)出認(rèn)證請(qǐng)求;
2) 認(rèn)證服務(wù)器判定用戶是否合法,若不是,則不做進(jìn)一步的處理;
3) 認(rèn)證服務(wù)器內(nèi)部產(chǎn)生一個(gè)隨機(jī)數(shù),作為Challenge,發(fā)送給用戶;
4) 客戶將口令和隨機(jī)數(shù)合并,使用單向哈希函數(shù) ( 例如MD5算法 ) 生成一個(gè)字節(jié)串作為Response;
5) 認(rèn)證服務(wù)器將Response與自己的計(jì)算結(jié)果比較,如兩者相同,則通過(guò)一次認(rèn)證,反之認(rèn)證失敗;
6) 認(rèn)證服務(wù)器通知客戶端認(rèn)證成功或失敗。
3. 服務(wù)介紹
29服務(wù)支持兩種安全概念:
3.1 APCE:
認(rèn)證流程圖:
?
上圖既包含單向認(rèn)證(對(duì)client的認(rèn)證)也包含雙向認(rèn)證的過(guò)程,除此以外還包含認(rèn)證成功后的安全診斷通信(secure diagnostic communication)所需的密鑰傳遞過(guò)程。
雙向認(rèn)證中client對(duì)server的認(rèn)證流與單向認(rèn)證流程無(wú)異,只是方向相反,所以為了使流程清晰易懂,下面針對(duì)單項(xiàng)認(rèn)證流程單獨(dú)說(shuō)明。
以單項(xiàng)認(rèn)證為例,省略加密診斷通信所需的密鑰交換流程后的簡(jiǎn)化流程圖如下:
?
對(duì)于支持安全診斷通信的client和server,在認(rèn)證過(guò)程中同步使用Diffie-Hellman算法生成密鑰,密鑰生成流程請(qǐng)參考博文:Diffie-Hellman密鑰協(xié)商算法 - Qcer - 博客園 (cnblogs.com)
3.2 ACR:
相對(duì)于APEC基于成熟PKI,ACR則是將認(rèn)證功能的定義交給主機(jī)廠,ACR的前提條件:
認(rèn)證流程圖:
?
ACR認(rèn)證流程與APCE相似,且相對(duì)更簡(jiǎn)單,其中計(jì)算所有權(quán)證明的方法如下:
使用ACR方式時(shí),前一次認(rèn)證中激活的診斷訪問(wèn)權(quán)限可以由新的ACR認(rèn)證流程代替
3.3 認(rèn)證服務(wù)支持的子功能
| SID | Name | Description |
| 00 | deAuthenticate | Request to leave the authenticated state 無(wú)其他請(qǐng)求參數(shù) |
| 01 | verifyCertificateUnidirectional | Initiate Authentication by verifying the Certificate 請(qǐng)求包含:
|
| 02 | verifyCertificateBidirectional | Initiate Authentication by verifying the Certificate and generating a Proof of Ownership from the server 參數(shù)同上 |
| 03 | proofOfOwnership | Verify the Proof of Ownership from the client. 請(qǐng)求包含:
|
| 04 | transmitCertificate | Verify Certificate and extract information from Certificate to handle it according to its contents. 請(qǐng)求包含:
|
| 05 | requestChallengeForAuthentication | Initiate the Authentication process by requesting server to output a challenge. 請(qǐng)求包含:
|
| 06 | verifyProofOfOwnershipUnidirectional | Request server to verify the POWN for unidirectional authentication. 請(qǐng)求包含:
|
| 07 | verifyProofOfOwnershipBidirectional | Request server to verify the client side POWN and provide server-side POWN for bidirectional authentication. 參數(shù)同上 |
| 08 | authenticationConfiguration | Indicates the provided authentication configuration of the server. 無(wú)請(qǐng)求參數(shù) |
3.4 認(rèn)證服務(wù)的通用需求
- 認(rèn)證服務(wù)和診斷會(huì)話以及安全等級(jí)沒有直接關(guān)系,換句話說(shuō)一旦client和server完成認(rèn)證,則在認(rèn)證有效期范圍內(nèi)認(rèn)證流程配置相關(guān)的診斷服務(wù)都是可以訪問(wèn)的,有效期可以定義為基于時(shí)間,里程或直到收到“deauthenticate”請(qǐng)求
- client和server的認(rèn)證狀態(tài)應(yīng)和某個(gè)診斷通道相關(guān)聯(lián),基于多用戶的服務(wù)器系統(tǒng),多個(gè)client可使用不同的認(rèn)證配置在多個(gè)診斷通道上處理
- 支持認(rèn)證服務(wù)的ECU需支持NRC-34 Authentication required
- 會(huì)話密鑰(Session key)作為可選項(xiàng)用于后續(xù)server和client之間安全的通信
4. 服務(wù)實(shí)現(xiàn)
實(shí)現(xiàn)認(rèn)證服務(wù),若使用APEC方式需要PKI的支持,若使用ACR方式則需要自定義相關(guān)元素并建立安全體系支持。
對(duì)于認(rèn)證服務(wù)的需求,除標(biāo)準(zhǔn)定義內(nèi)容外OEM還需要額外定義如下內(nèi)容:
- 使用的加密算法,算法元素的定義等
- 算法所需元素的生成,分發(fā)及存儲(chǔ)方法和流程
- 對(duì)推出已認(rèn)證狀態(tài)策略的定義,如超時(shí)時(shí)間,里程數(shù)等
- 認(rèn)證失敗的處理機(jī)制定義,如設(shè)計(jì)最大嘗試次數(shù),認(rèn)證請(qǐng)求間隔等
- 對(duì)于server已通過(guò)client認(rèn)證,但client對(duì)server的認(rèn)證失敗的情況,由OEM定義是否client需要發(fā)送deauthentication子功能斷開連接以確保server離開已認(rèn)證狀態(tài),拒絕進(jìn)一步的請(qǐng)求
- APCE
- 證書格式
- 對(duì)于已經(jīng)通過(guò)認(rèn)證的client想要進(jìn)一步激活其他權(quán)限或證明已簽名的數(shù)據(jù)時(shí)可以使用transmitcertificate子功能,而無(wú)需再次通過(guò)挑戰(zhàn)-響應(yīng)過(guò)程通過(guò)認(rèn)證,此操作所拆傳輸?shù)臄?shù)據(jù)需要經(jīng)過(guò)私鑰進(jìn)行簽名(數(shù)據(jù)與簽名分別發(fā)送至server)。通過(guò)證書激活更多權(quán)限的方法需要OEM進(jìn)行定義,若使用此方法時(shí),應(yīng)使用不同的certificateEvaluationId加以區(qū)分
- ACR
- 密鑰的分發(fā),存儲(chǔ),管理的方法和流程
5.?與27服務(wù)的比較
了解了29服務(wù)的定義后,熟悉診斷的不免會(huì)有個(gè)疑問(wèn):29服務(wù)和27服務(wù)很相似,為什么有了27服務(wù)為什么還要定義29服務(wù)?
先來(lái)看下27服務(wù)在標(biāo)準(zhǔn)里的說(shuō)明:
The purpose of this service is to?provide a means to access data and/or diagnostic services, which have restricted access for?security, emissions, or safety reasons.?Diagnostic services for downloading/uploading routines or data into a server and reading specific memory locations from a server are situations where?security access?may be required.?Improper routines or data downloaded into a server could potentially damage the electronics or other vehicle components or risk the vehicle’s compliance to emission, safety, or security standards.?The security concept uses a seed and key relationship.
再看下29服務(wù)的說(shuō)明(如概述):
The purpose of this service is to?provide a means for the client to prove its identity, allowing it to?access data and/or diagnostic services, which have restricted access for,?for example security, emissions, or safety reasons.?Diagnostic services for downloading/uploading routines or data into a server and reading specific memory locations from a server are situations where?authentication?may be required.?Improper routines or data downloaded into a server could potentially damage the electronics or other vehicle components or risk the vehicle’s compliance to emission, safety, or security standards.?On the other hand, data security might be violated when retrieving data from a server
可以看到提供27和29服務(wù)的目的幾乎完全相同,都是對(duì)診斷儀的合法性進(jìn)行確認(rèn),從而保護(hù)ECU的數(shù)據(jù)和軟件安全受到威脅,區(qū)別僅在于使用的方法不同。由此可以推斷 29服務(wù)的誕生是由于27服務(wù)提供的安全機(jī)制已經(jīng)不能滿足現(xiàn)在車輛診斷功能面臨的新的安全威脅,而這些新的安全威脅則是在車輛網(wǎng)聯(lián)化共享化的趨勢(shì)下產(chǎn)生的,即隨著車載以太網(wǎng)的應(yīng)用普及,任意一臺(tái)互聯(lián)網(wǎng)設(shè)備理論上都可以通過(guò)DoIP訪問(wèn)車輛的診斷功,進(jìn)行數(shù)據(jù)獲取或執(zhí)行診斷操作,這在為OTA,遠(yuǎn)程診斷等功能帶來(lái)益處的同時(shí)也給車輛帶來(lái)更多的潛在風(fēng)險(xiǎn),對(duì)意圖使用診斷功能的設(shè)備的認(rèn)證至關(guān)重要,原有的27服務(wù)機(jī)制簡(jiǎn)單,不適用于多客戶端,防護(hù)等級(jí)低,很難起到保護(hù)作用。
27服務(wù)和29服務(wù)的差異對(duì)比如下表
| 維度 | 27服務(wù) | 29服務(wù) |
| 認(rèn)證方法 | 種子-密鑰 | 基于PKI的認(rèn)證/OEM自定義 |
| 加密方式 | 對(duì)稱加密 | 對(duì)稱/非對(duì)稱加密 |
| 算法 | CRC(定義較為簡(jiǎn)單) | 信息安全標(biāo)準(zhǔn)定義的安全算法 ISO/IEC 9798 HMAC or CMAC or GMAC |
| 實(shí)現(xiàn)機(jī)制 | 不區(qū)分來(lái)源,分多級(jí)保護(hù)(01, 03...) | 針對(duì)不同的診斷來(lái)源實(shí)現(xiàn)差異化定義(研發(fā),工廠,售后,供應(yīng)商) |
總結(jié)
以上是生活随笔為你收集整理的认识UDS诊断29认证服务-Authentication Service的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: C++模板元编程(7)typename的
- 下一篇: 大数据开发实战教程目录