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