DDS-Security協議與DDS協議、DDSI-RTPS協議、DDS-XTypes協議共同作為DDS協議簇中的核心協議。本協議基于其它三份核心協議,對系統中各交互環節的認證加密等措施進行規范化,保障用戶發現和數據傳遞的安全性。協議于2016年發布v1.0,目前最新版本為2018年發布的v1.1。
目前車載環境中實現的安全機制能夠根據不同層級的需求實現一些認證或者加密操作,但現有密鑰分配往往是以控制器為顆粒度,針對某個控制器的全部收發數據大包大攬,同時對于控制器的性能也提出了更高的要求。DDS-Security的實現依據其獨有的DCPS模型,能夠實現針對某一控制器的某個應用數據進行安全保護,或者針對同一應用不同安全級別的數據進行選擇加密等操作,很大程度上能夠提升計算處理效率并避免資源浪費。本文將從DDS系統安全風險分析切入,對系統的實現的認證、訪問控制、加密環節等安全機制做介紹。
DDS系統安全風險分析及解決措施
圖1 風險行為
在以Topic為中心進行數據發布訂閱的DDS模型中,圖1中A~E的用戶角色分別定位為某個域中的域參與者(Domain Participant,DP),同一域內的DP在相互發現階段就已經確認了自身及可交互DP的發布訂閱權限,雖然圖中A為授權發布的DP,C和D為授權訂閱的DP,但仍有可能存在非法的DP在接入網絡后執行非法的風險行為。主要涉及風險包括:
· 未授權訂閱(E):未對Topic數據進行加密的情況下,組播場景中E(具有相同的組播接收地址)可能獲取關于Topic T的相關數據,造成Topic T數據泄露風險。
· 未授權發布(B):在未對Topic數據進行加密的情況下,B若偽造身份(修改RTPS報文中的GUID等內容)發布關于Topic T的相關數據,則干擾其余訂閱DP針對此數據的判斷。
· 數據篡改(D):D作為合法訂閱者,能夠獲取一定的加密信息,但是其本身沒有發布權限,在有加密措施的情況下,也能可能偽造發送身份造成數據污染。
為了避免上述風險,DDS-Security規范中引入服務插件接口(Service Plugin Interface,SPI),從而實現:
· 對傳輸數據進行加密
· 保證數據樣本及其包含報文的完整性
· 提供發布訂閱雙方認證及授權機制
· 提供報文源及數據源身份驗證機制
DDS-Security新增定義
DDS-Security中為保證系統安全性引入的認證機制、加密機制也需要通過DP間的RTPS報文收發實現認證及加密信息交互,因此,基于DDSI-RTPS新增了子報文類型及內置Topic定義。
圖2 DDS-Security新增報文定義
圖3 DDS-Security新增內置Topic及節點
服務插件
DDS-Security中定義了一系列服務插件,包括:認證插件(Authentication)、訪問控制插件(AccessControl)、加密插件(Cryptography)、日志插件(Logging)、數據標記插件(DataTagging)。每個插件都定義了協議棧內部實現的一組接口,執行對應的認證、訪問控制等功能,插件之間的實現通過變量傳遞互為依賴關系。
圖4 服務插件結構圖
· 認證插件
認證插件提供了一組驗證Domain中已發起單參與者發現協議(Simple Participant Discovery Protocol,SPDP)的DP身份的接口,其驗證顆粒度為DP,為SPDP階段匹配的DP之間的相互認證和建立共享密鑰提供設施。對于身份驗證和密鑰交換,使用非對稱加密算法RSA或DSA以及Diffie-Hellman算法。
圖5 認證插件接口示例
圖6 認證報文交互流程示意圖
SPDP中新增定義PID攜帶有DP的身份信息,完成SPDP匹配后,由一組Best-Effort內置節點發送DCPSParticipantStatelessMessage Topic進行認證交互的握手環節。如圖1中,A、C、D三者之間可以通過認證環節,識別對方身份。
· 訪問控制插件
訪問控制插件提供一組對經過身份驗證的用戶可以執行的DDS相關操作的策略決策手段,能夠配置DP的入域權限、對于不同Topic的發布訂閱權限、Domain安全配置規則及Topic的安全配置規則等,上述配置均為XML文件,設計人員需要根據協議中規定的標準文件格式進行設計輸出。
圖7 訪問控制插件接口示例
· 加密插件
加密插件是提供了一組針對不同對象進行加密操作的接口,其功能包括加密、解密、哈希、數字簽名等。如圖1中,通過加密插件,可以實現A、C、D之間的數據加密傳輸,避免B和E的非法發布訂閱行為造成的數據泄露。涉及主要對稱加密算法包括:AES128_GMAC、AES128_GCM、AES256_GMAC、AES256_GCM。
圖8 DataWriter子報文加密圖示
· 日志插件
日志插件可記錄所有安全事件,包括預期行為和所有安全違規或錯誤。通過配置LogOption可以控制日志級別、路徑、是否遠程分發。
圖9 Logging插件結構
· 數據標記插件
數據標記是向數據添加安全標簽或標記的能力。
主要用途為:
① 訪問控制
② 報文優先級
③ 不僅用于中間件,可直接被應用調用
主要標記方法包括:
① DataWriter tagging——標記顆粒度為DataWriter
② Data instance tagging ——標記顆粒度為Instance
③ Individual sample tagging ——標記顆粒度為Data Sample
④ Per-field sample tagging ——標記顆粒度為Data Sample field
總結
本文從DDS安全風險切入,介紹DDS-Security中新增報文類型及Topic,并對DDS-Security規范中涉及的服務插件進行介紹,包括:認證插件、訪問控制插件、加密插件、日志插件、數據標記插件。從實現角度為讀者介紹DDS-Security針對不同層級的報文豐富的處理機制。在車載環境中DDS-Security能夠實現更靈活的加密方案,為OEM提供了除MACSec、IPSec等加密技術外的另一種選擇。
經緯恒潤作為OPEN聯盟會員和AUTOSAR聯盟的高級合作伙伴,長期為國內外各大OEM和供應商提供涵蓋TCP/IP、SOME/IP、DoIP、AVB、TSN、DDS等技術領域的設計和測試咨詢服務,積極研發和探索車載網絡前沿技術的工程應用。通過多個項目的實踐經驗,已建立了高質量、本土化的設計與測試一體化解決方案,為整車網絡架構提供可靠支持。