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