日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

认识UDS诊断29认证服务-Authentication Service

發布時間:2023/12/20 编程问答 110 豆豆
生活随笔 收集整理的這篇文章主要介紹了 认识UDS诊断29认证服务-Authentication Service 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

1.概述

2. 背景知識

3. 服務介紹

4. 服務實現

5.?與27服務的比較


1.概述

29服務是在ISO 14229-2020版本中首次增加的為應對網聯汽車日益增加的安全風險的新服務。

此服務的目的顧名思義是為client和server之間的身份認證提供一種方法,以便對意圖獲取一些有訪問限制的數據或服務操作時驗證client的身份,這些限制可能是由于安全或排放相關的原因。需要認證服務保護的情況包括:調用server的例程服務,數據的上傳或下載相關服務、通過診斷服務讀取內存中特定地址存儲的數據。除server對client的認證外,某些情況下client也需要對server身份的合法性進行確認,從數據流向的兩個方向考慮,未經認證的操作都有可能為車輛電氣系統帶來危害或違反數據安全要求。

2. 背景知識

在了解29服務之前需要了解幾個標準中提到的信息安全概念:

  • 對稱加密:通信雙方加密和解密使用相同的密鑰
  • 非對稱加密:通信雙方各有一對密鑰,分為公鑰和私鑰,信息的加密使用公鑰,解密使用私鑰,公鑰雙方共享,私鑰只有自己知道,以此避免消息泄露
  • PKI?是Public Key Infrastructure的首字母縮寫,翻譯過來就是公鑰基礎設施;PKI是一種遵循標準的利用公鑰加密技術為電子商務的開展提供一套安全基礎平臺的技術和規范。PKI技術是一種遵循既定標準的密鑰管理平臺,它的基礎是加密技術,核心是證書服務,支持集中自動的密鑰管理和密鑰分配,能夠為所有的網絡應用提供加密和數字簽名等密碼服務及所需要的密鑰和證書管理體系。通俗理解:PKI就是利用公開密鑰理論和技術建立提供安全服務的、具有通用性的基礎設施,是創建、頒發、管理、注銷公鑰證書所涉及的所有軟件、硬件集合體,PKI可以用來建立不同實體間的"信任"關系,它是目前網絡安全建設的基礎與核心。PKI的主要任務是在開放環境中為開放性業務提供基于非對稱密鑰密碼技術的一系列安全服務,包括身份證書和密鑰管理、機密性、完整性、身份認證和數字簽名等。因此,用戶可利用PKI平臺提供的服務進行電子商務和電子政務應用。?PKI詳解 - 運維-小松松 - 博客園 (cnblogs.com)
  • CVC?is a public-key certificate that is stored in a very compact format 在一個在非常緊湊格式下存儲的公鑰證書?Card Verifiable Certificate (memim.com)
  • X.509?是密碼學里公鑰證書的格式標準。X.509證書里含有公鑰、身份信息(比如網絡主機名,組織的名稱或個體名稱等)和簽名信息(可以是證書簽發機構CA的簽名,也可以是自簽名)。對于一份經由可信的證書簽發機構簽名或者可以通過其它方式驗證的證書,證書的擁有者就可以用證書及相應的私鑰來創建安全的通信,對文檔進行數字簽名
  • 證書的組成結構(參考):
    • 證書
      • ...
      • 公鑰算法
      • 主體公鑰?[1]
      • 此日期前無效
      • 此日期后無效
      • 版本號
      • 序列號
      • 簽名算法
      • 頒發者
      • 證書有效期
      • 主體
      • 主體公鑰信息
      • 頒發者唯一身份信息(可選項)
      • 主體唯一身份信息(可選項)
      • 擴展信息(可選項)
    • 證書簽名算法
    • 數字簽名
  • Diffie-Hellman密鑰協商算法?一個用于解決秘鑰配送問題的算法,本身并非用來加密,在標準中用于為ECU之間的加密通信傳輸密鑰?Diffie-Hellman密鑰協商算法 - Rookie丶flying - 博客園 (cnblogs.com)
  • 挑戰確認(Challenge-Response)認證流程:

    1) 客戶端向服務器發出認證請求;
    2) 認證服務器判定用戶是否合法,若不是,則不做進一步的處理;
    3) 認證服務器內部產生一個隨機數,作為Challenge,發送給用戶;
    4) 客戶將口令和隨機數合并,使用單向哈希函數 ( 例如MD5算法 ) 生成一個字節串作為Response;
    5) 認證服務器將Response與自己的計算結果比較,如兩者相同,則通過一次認證,反之認證失敗;
    6) 認證服務器通知客戶端認證成功或失敗。

3. 服務介紹

29服務支持兩種安全概念:

  • APCE: 采用非對稱加密的基于PKI證書交換程序的認證
  • ACR: 采用對稱或非對稱加密的基于挑戰確認(Challenge-Response)流程的認證
  • 3.1 APCE:

    認證流程圖:

    ?

    上圖既包含單向認證(對client的認證)也包含雙向認證的過程,除此以外還包含認證成功后的安全診斷通信(secure diagnostic communication)所需的密鑰傳遞過程。

    雙向認證中client對server的認證流與單向認證流程無異,只是方向相反,所以為了使流程清晰易懂,下面針對單項認證流程單獨說明。

    以單項認證為例,省略加密診斷通信所需的密鑰交換流程后的簡化流程圖如下:

    ?

  • client發送證書至server,證書中包含client的公鑰
  • server收到證書后確認證書的有效性(使用PKI提供的證書有效性檢查功能),驗證client是否合法,若不合法則停止認證流程,返回否定響應,合法則繼續認證流程
  • server發送針對證書的challenge消息,請求client對所發證書的所有權證明(proof of ownership),消息中包含認證所需隨機數
  • client接收到challenge后使用私鑰對接收到的隨機數進行計算得到簽名,放入響應消息中發給server
  • server使用client的公鑰解密并驗證應答消息中的簽名信息,與challenge消息比較,向client回復認證結果
  • 對于支持安全診斷通信的client和server,在認證過程中同步使用Diffie-Hellman算法生成密鑰,密鑰生成流程請參考博文:Diffie-Hellman密鑰協商算法 - Qcer - 博客園 (cnblogs.com)

    3.2 ACR:

    相對于APEC基于成熟PKI,ACR則是將認證功能的定義交給主機廠,ACR的前提條件:

  • 如果采用非對稱加密算法,則需要具有client密鑰對:client側存有client私鑰,server側存有client公鑰,如果是雙向認證還需要有相似的一對service密鑰;
  • 如果采用對稱加密算法,則應存在一對client和server同時預先存儲的密鑰,于27服務類似。
  • 認證流程圖:

    ?

    ACR認證流程與APCE相似,且相對更簡單,其中計算所有權證明的方法如下:

  • 對于非對稱加密來說與APCE流程類似,需要建立包含challenge數據,令牌授權,認證,以及可選的附加信息等令牌內容,并使用私鑰計算得到令牌內容簽名,生成的認證令牌包含令牌內容及簽名。接收方使用公鑰解密并使用相同方法計算令牌內容,驗證計算結果是否一致,從而完成對認證結果的判斷。令牌的生成推薦基于ISO/IEC 9798-2 或 ISO/IEC 9798-4 (mutual, three pass authentication),或與之相當的認證令牌。
  • 對于對稱加密來說,需要基于先前共享的對稱密鑰來計算簽名信息,對方也根據相同的密鑰進行解密,計算及比對完成驗證。令牌的生成推薦基于ISO/IEC 9798-2 或 ISO/IEC 9798-4 (mutual, three pass authentication),或與之相當的認證令牌。
  • 使用ACR方式時,前一次認證中激活的診斷訪問權限可以由新的ACR認證流程代替

    3.3 認證服務支持的子功能

    SID

    Name

    Description

    00

    deAuthenticate

    Request to leave the authenticated state

    無其他請求參數

    01

    verifyCertificateUnidirectional

    Initiate Authentication by verifying the Certificate

    請求包含:

    • 通信配置-對通過認證以后的安全診斷通信如何進行的配置說明,與安全診斷通信直接聯系,該參數的格式以及后續密鑰(session key)的生成和proof value的計算均由OEM定義
    • 證書長度
    • 證書內容
    • challenge長度
    • challenge內容(僅在challenge長度不為0時有效)

    02

    verifyCertificateBidirectional

    Initiate Authentication by verifying the Certificate and generating a Proof of Ownership from the server

    參數同上

    03

    proofOfOwnership

    Verify the Proof of Ownership from the client.

    請求包含:

    • 長度
    • 所有權證明
    • 臨時公鑰長度
    • 臨時公鑰(ephemeral Public Key)

    04

    transmitCertificate

    Verify Certificate and extract information from Certificate to handle it according to its contents.

    請求包含:

    • 證書ID - certificateEvaluationId,用于識別證書的評估類型,由OEM自定義
    • 證書長度
    • 證書數據

    05

    requestChallengeForAuthentication

    Initiate the Authentication process by requesting server to output a challenge.

    請求包含:

    • 通信配置
    • 算法標識符

    06

    verifyProofOfOwnershipUnidirectional

    Request server to verify the POWN for unidirectional authentication.

    請求包含:

    • 算法標識符 - 指示用于驗證所有權證明的算法,也決定了算法需要用到的參數及加密診斷通信的密鑰生成方法,該值是左對齊的 并以0為單位向右填充,最多16個字節。
    • 所有權證明的長度
    • 所有權證明
    • client challenge長度
    • client challenge - 格式由OEM自定義或是隨機數
    • 附加參數長度
    • 附加參數

    07

    verifyProofOfOwnershipBidirectional

    Request server to verify the client side POWN and provide server-side POWN for bidirectional authentication.

    參數同上

    08

    authenticationConfiguration

    Indicates the provided authentication configuration of the server.

    無請求參數

    3.4 認證服務的通用需求

    • 認證服務和診斷會話以及安全等級沒有直接關系,換句話說一旦client和server完成認證,則在認證有效期范圍內認證流程配置相關的診斷服務都是可以訪問的,有效期可以定義為基于時間,里程或直到收到“deauthenticate”請求
    • client和server的認證狀態應和某個診斷通道相關聯,基于多用戶的服務器系統,多個client可使用不同的認證配置在多個診斷通道上處理
    • 支持認證服務的ECU需支持NRC-34 Authentication required
    • 會話密鑰(Session key)作為可選項用于后續server和client之間安全的通信

    4. 服務實現

    實現認證服務,若使用APEC方式需要PKI的支持,若使用ACR方式則需要自定義相關元素并建立安全體系支持。

    對于認證服務的需求,除標準定義內容外OEM還需要額外定義如下內容:

    • 使用的加密算法,算法元素的定義等
    • 算法所需元素的生成,分發及存儲方法和流程
    • 對推出已認證狀態策略的定義,如超時時間,里程數等
    • 認證失敗的處理機制定義,如設計最大嘗試次數,認證請求間隔等
    • 對于server已通過client認證,但client對server的認證失敗的情況,由OEM定義是否client需要發送deauthentication子功能斷開連接以確保server離開已認證狀態,拒絕進一步的請求
    • APCE
      • 證書格式
      • 對于已經通過認證的client想要進一步激活其他權限或證明已簽名的數據時可以使用transmitcertificate子功能,而無需再次通過挑戰-響應過程通過認證,此操作所拆傳輸的數據需要經過私鑰進行簽名(數據與簽名分別發送至server)。通過證書激活更多權限的方法需要OEM進行定義,若使用此方法時,應使用不同的certificateEvaluationId加以區分
    • ACR
      • 密鑰的分發,存儲,管理的方法和流程

    5.?與27服務的比較

    了解了29服務的定義后,熟悉診斷的不免會有個疑問:29服務和27服務很相似,為什么有了27服務為什么還要定義29服務?

    先來看下27服務在標準里的說明:

    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服務的說明(如概述):

    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服務的目的幾乎完全相同,都是對診斷儀的合法性進行確認,從而保護ECU的數據和軟件安全受到威脅,區別僅在于使用的方法不同。由此可以推斷 29服務的誕生是由于27服務提供的安全機制已經不能滿足現在車輛診斷功能面臨的新的安全威脅,而這些新的安全威脅則是在車輛網聯化共享化的趨勢下產生的,即隨著車載以太網的應用普及,任意一臺互聯網設備理論上都可以通過DoIP訪問車輛的診斷功,進行數據獲取或執行診斷操作,這在為OTA,遠程診斷等功能帶來益處的同時也給車輛帶來更多的潛在風險,對意圖使用診斷功能的設備的認證至關重要,原有的27服務機制簡單,不適用于多客戶端,防護等級低,很難起到保護作用。

    27服務和29服務的差異對比如下表

    維度

    27服務

    29服務

    認證方法

    種子-密鑰

    基于PKI的認證/OEM自定義

    加密方式

    對稱加密

    對稱/非對稱加密

    算法

    CRC(定義較為簡單)

    信息安全標準定義的安全算法

    ISO/IEC 9798

    HMAC or CMAC or GMAC

    實現機制

    不區分來源,分多級保護(01, 03...)

    針對不同的診斷來源實現差異化定義(研發,工廠,售后,供應商)

    總結

    以上是生活随笔為你收集整理的认识UDS诊断29认证服务-Authentication Service的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。