国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

CAN總線中的一種安全協(xié)議

2018-04-13 08:28李超贏李秦偉
計算技術與自動化 2018年2期
關鍵詞:CAN總線

李超贏 李秦偉

摘要:針對現(xiàn)有CAN總線中存在的安全問題,給出了一種解決方案。即在原有CAN總線中新嵌入一層,包括認證部分和加密部分,為總線中的消息提供私密性和完整性保護。給出認證協(xié)議后,用BAN邏輯對協(xié)議進行了形式化分析,分析結(jié)果證明協(xié)議是正確可行的;然后加密部分采用了一次一密的加密方法和對稱加密算法;最后討論了此方案的性能與展望。

關鍵詞:CAN總線;認證協(xié)議;BAN邏輯;密鑰序列;負載率

中圖分類號:TP309.2

文獻標識碼:A

1 引言

隨著信息技術和網(wǎng)絡技術的迅猛發(fā)展,國家安全邊界已經(jīng)超越地理空間限制,延伸到了信息網(wǎng)絡。一直以來被認為相對安全的工業(yè)控制系統(tǒng)已經(jīng)成為黑客攻擊的目標,而且工業(yè)控制系統(tǒng)安全漏洞及攻擊方式已經(jīng)成為“黑市”熱銷商品,甚至被作為“特殊武器”列入“瓦森納協(xié)定”的控制清單[1]。

控制器局域網(wǎng)(Controller Area Network,CAN)是由德國Bosch公司為汽車應用而開發(fā)的多主機局部網(wǎng)絡。德國Bosch公司開發(fā)CAN總線的最初目的是解決汽車上數(shù)量眾多的電子設備之間的通信問題,減少電子設備之間繁雜的信號線,于是設計了一個單一的網(wǎng)絡總線,使所有的外圍期間可以掛在該總線上?,F(xiàn)在CAN總線主要被應用與工業(yè)控制網(wǎng)絡。

CAN總線采用的是一種基于報文而不是基于節(jié)點地址的通信方式,這就允許不同的信息以“廣播”的形式發(fā)送到所有節(jié)點。CAN總線上報文所包含的內(nèi)容只有優(yōu)先級標志區(qū)和預傳遞的數(shù)據(jù)內(nèi)容。所有節(jié)點都會接收到在總線上傳送的報文,至于該報文是否要做進一步的處理或被丟棄將完全取決于接收節(jié)點本身。CAN只具有ISO國際標準組織定義的七層結(jié)構(gòu)中的三層——物理層、數(shù)據(jù)鏈路層和應用層,并且整個系統(tǒng)的數(shù)據(jù)傳送都是公開透明的,數(shù)據(jù)很容易受到竊取甚至破會其完整些,對整個系統(tǒng)造成不可預知的后果[2][3]。

2 CANSec協(xié)議設計

由于總線結(jié)構(gòu)單一,如果需要攻擊總線,只需在總線上接入一個新的節(jié)點,就能接受到總線上的所有報文,并且這些數(shù)據(jù)未經(jīng)過任何加密等保護措施,如圖1所示。所以為了解決上述問題,本文給出一種解決方案。就是在數(shù)據(jù)鏈路層之上加入CANSec層,對數(shù)據(jù)的保密性與完整性進行保護,防止整個系統(tǒng)受到攻擊。

CAN總線早已經(jīng)形成了國際標準。因此,要想解決上面的問題,實現(xiàn)加密與認證,修改原有的CAN協(xié)議是特別困難甚至不可能的。所以就選擇在原有的CAN的基礎上新嵌入一層(包括CANSec協(xié)議與加密解密系統(tǒng)),原有的結(jié)構(gòu)不變,簡要結(jié)構(gòu)如圖2所示。

一個CAN總線系統(tǒng)中有許多個節(jié)點,圖2中以兩個節(jié)點與一個入外來節(jié)點為代表來說明系統(tǒng)結(jié)構(gòu)。其中節(jié)點和總線不做任何更改,CANSec協(xié)議主要負責:協(xié)商握手、初始化、故障診斷和工作模式;加密系統(tǒng)負責加密重裝從節(jié)點發(fā)出的報文,解密還原從總線上接受到的密文。

CANSec協(xié)議中的初始化是防止攻擊最重要的部分,在總線工作之前,首先要對個節(jié)點進行認證,以防外來節(jié)點攻擊,也就是要設計認證協(xié)議;其次,加密系統(tǒng)將采用對稱分組密碼的輸出反饋模式,并且采用輸出反饋模式(OFB),密鑰序列的產(chǎn)生需要一個IV和一個DES加密的,所以總線工作之前還需要對這兩項初始化或者重新分配[4]。

CANSec協(xié)議的參與者為各個節(jié)點,各節(jié)點是同等的關系,沒有主從關系,也沒有為之服務的認證服務器。所以就要在所有節(jié)點中選出一個節(jié)點作為主節(jié)點,然后由這個主節(jié)點對其他節(jié)點逐個進行認證。協(xié)商握手和初始化的過程即CANSec認證協(xié)議。

2.1 主節(jié)點的選舉

主節(jié)點必須是具有以下特點的節(jié)點:

擁有其他所有節(jié)點的標識ID及與之對應的共享密鑰Kmj,i;

節(jié)點物理位置安全,與上位機連接,或者就是上位機;

該節(jié)點由施工方設定好,具有主動發(fā)起認證協(xié)議的權限。

其中ID是各個節(jié)點的唯一標識(但不是地址),Kmj,i是候選主節(jié)點與其他節(jié)點對應的會話共享密鑰,也叫做主密鑰,Kmj,i表示第j個候選主節(jié)點與第i個從節(jié)點的共享密鑰。初始狀態(tài)都是由施工方設定。其中ID的不同也是區(qū)分候選主節(jié)點與從節(jié)點的標識。

這樣的主節(jié)點可以設定多個,就算有一個出錯不能正常工作,候選主節(jié)點自動形成新的主節(jié)點,也不會影響整個系統(tǒng)的正常運行,本文討論的都以3個候選主節(jié)點為例。

主節(jié)點和從節(jié)點所存ID和對應的共享密鑰的情況可以用表1和表2表示。在表1中,Gm2和Gm3是另外兩個候選主節(jié)點,

2.2 CANSec認證協(xié)議

經(jīng)過選舉,假設Gm1成為了主節(jié)點,那么協(xié)議的參與者就是1個主節(jié)點Gm1和n個從節(jié)點,稱此認證協(xié)議為CANSec認證協(xié)議。

下面以一個具體的單個節(jié)點的認證為例子,對認證協(xié)議進行描述,其中Gm1為主節(jié)點,Gi為從節(jié)點,Kmj,i,,是Gm1和G1的共享密鑰,該共享密鑰的初始值由施工方完成,以后如果需要更改也可以由主節(jié)點完成。對節(jié)點G1的認證及密鑰建立過程如圖3所示。

3 分析CANSec認證協(xié)議

BAN邏輯是認證協(xié)議的形式化分析中最具影響的有效的一種工具,對CANsec認證協(xié)議的形式化分析也采用BAN邏輯[7]。

3.1 預期目的

4 報文設計與加密

4.1 原CAN協(xié)議報文格式

CAN總線上的信息是以報文的形式傳遞的。并且定義了四種幀報文,分別為數(shù)據(jù)幀、遠程幀、出錯幀和超載幀,其中數(shù)據(jù)幀用來傳遞信息,遠程幀則用于某個節(jié)點請求其他節(jié)點發(fā)送信息。后兩種用于錯誤處理。以數(shù)據(jù)幀為例,一個標準數(shù)據(jù)幀如表3所示,一共有11個字節(jié),前3個字節(jié)為幀描述部分,后8個字節(jié)為數(shù)據(jù)部分,如表3所示[9][10]。

其中前三個字節(jié)已經(jīng)用于幀描述(比如ID,數(shù)據(jù)長度等),每一位都不能少,因此要實現(xiàn)CANsec協(xié)議,一種解決方案就是在數(shù)據(jù)段中的8個字節(jié)中取用第一個字節(jié)用來表示CANsec協(xié)議的中各事項。比如初始化、協(xié)商握手、工作模式、故障診斷和數(shù)據(jù)幀等。在這里有一個問題就是,有些數(shù)據(jù)幀本來就要8個字節(jié)的數(shù)據(jù),由于實現(xiàn)CANsec協(xié)議占用了一個字節(jié),因此8個字節(jié)的數(shù)據(jù)幀就需要用兩幀來表示,可以稱另外一幀為續(xù)幀。

4.2 CANSec協(xié)議中的報文設計

將報文的第四個字節(jié)用作CANSec協(xié)議各事項的標識,就可以按表4來確定各事項,可以稱這8位為CSC段。

4.3 加密算法

通過前面的認證協(xié)議初始化后,所有節(jié)點的密鑰序列生成器狀態(tài)都是一樣的,加密算法選擇對稱加密算法。密鑰上采用一次一密,因為一個數(shù)據(jù)幀中最多只有8個字節(jié)需要加密,采用單鑰加密很不安全[11]。

密鑰序列的產(chǎn)生采用輸出反饋模式(OFB),IV和DES加密的由前面的認證協(xié)議完成,每次輸出的密鑰長度為64位,與數(shù)據(jù)幀中需加密的64位進行異或,得到64位的密文;其他節(jié)點接收到64位的密文后,通過對稱密鑰解密得到64位明文,而其中的加密解密變換均采用異或[12]。其中最重要的就是密鑰序列的生成,而且所有節(jié)點的當前密鑰必須是同步的,只要有一個節(jié)點的密鑰出錯,就得發(fā)送報錯幀,請求重新初始化。

5 兼容性與性能分析

5.1 兼容性分析

原CAN協(xié)議的通信圖如圖4所示:

在CAN協(xié)議中加入了CANSec層后的通信圖如圖5所示:

原CAN協(xié)議在加入CANSec層后,應用層之間的收發(fā)消息沒有變化,所以不會對應用層產(chǎn)生影響;數(shù)據(jù)鏈路層處理的只是幀頭前,而CANSec加密的只是后面的數(shù)據(jù)段,所以對數(shù)據(jù)鏈路層來說也沒有影響。以上分析說明該方案具有良好的兼容性。

物理層上傳送的數(shù)據(jù)流已經(jīng)加密,保證了數(shù)據(jù)的私密性,而外來設備由于沒認證,也不能偽造出有效的消息,保證了數(shù)據(jù)的不可偽造性。

5.2 性能分析

網(wǎng)絡負載率是Is內(nèi)網(wǎng)絡總線傳輸數(shù)據(jù)所占帶寬的百分率,根據(jù)以往的工程經(jīng)驗,CAN總線負載率超過30%就會造成報文延時的概率增大。但是根據(jù)近幾年的研究,CAN總線的負載率不再局限于30%。2012年,菲亞特利用時間分析軟件Symtavi-sion使CAN總線負載率達到70%,并且總線仍然能正常工作[13]。本方案對CAN總線負載率會有所提高,以我校研制的混合動力車油氣混合控制裝置中的通信為例,具體分析本方案對負載率的影響。

混合動力汽車中CAN負載率約為9%~13%之間。本方案導致CAN總線負載率的提高主要來自于一些8字節(jié)數(shù)據(jù)的幀要改為兩幀?;旌蟿恿ζ囅到y(tǒng)中包含三種8字節(jié)數(shù)據(jù):日期(年月日)、累計油耗、與累計氣耗;一種24字節(jié)數(shù)據(jù):ECU信息;15種低于8字節(jié)的數(shù)據(jù)。各種數(shù)據(jù)同等概率的情況下,平均每21 (3+24/8+15)幀經(jīng)過CANSec層后變?yōu)?5幀,負載率將會提升到原負載率的25/21倍,約提高19%[14]。因此,對于混合動力汽車來說,加入本方案后負載率約為10.7%—15.5%,仍然遠低于30%,CAN通信仍然能夠正常工作。對于其他系統(tǒng)中的CAN總線來說,同樣也不影響其正常工作,況且現(xiàn)在很多CAN總線負載率已經(jīng)不再局限于30%。

6 總結(jié)與展望

CAN總線從最初的汽車應用,到現(xiàn)在的工業(yè)控制,都扮演者重要的角色。在所有的現(xiàn)場總線中,它具有己開發(fā)性,低成本性,網(wǎng)絡節(jié)點之間的數(shù)據(jù)通信實時性強,并且已經(jīng)形成了國際標準,在很多地方還是可以得到應用的。但是,在這個信息化時代CAN總線的安全性很有必要提高。本文針對CAN總線存在的安全問題,提出了一套解決方案,通過認證協(xié)議,對每個節(jié)點認證和初始化,保證了信息的的完整性;通過對數(shù)據(jù)進行加密,保證了信息的保密性,并且具有良好的兼容性。這套方案很容易在CAN總線中實現(xiàn),并且還可以在其它現(xiàn)場總線中采用同樣的技術手段。

參考文獻

[1]佚名.2016工控安全態(tài)勢報告發(fā)布[J].自動化應用,2017, (1):2-5.

[2]鮑官軍,計時鳴,張利,等.CAN總線技術、系統(tǒng)實現(xiàn)及發(fā)展趨勢[J].浙江工業(yè)大學學報,2003,31(1):58-61.

[3]韓成浩,高曉紅.CAN總線技術及萁應用[J].制造業(yè)自動化,2010,32(2):146-149.

[4]宮大力,流密碼算法的研究與設計[D].南京航空航天大學,2011.

[5]劉躍軍,王紅旗,楊強.Andrew Secure RPC協(xié)議的一種組合分析方法[J].四川理工學院學報:自然科學版,2008,21 (4):43-46.

[6]王劍,張子鍵,袁堅.應用于CAN總線的廣播認證系統(tǒng)[J].北京郵電大學學報,2015,38(4):24-27.

[7] 白漢利,蔡紅柳,鄭廣.基于形式方法的Andrew RPC認證協(xié)議的分析與改進[J].計算機工程與設計,2005,26 (7):1886- 1888.

[8]卿斯?jié)h.安全協(xié)議[M].北京:清華大學出版社,2005.

[9]李童華,陳立定.基于CAN總線的能源管理系統(tǒng)通信研究[C]//中國自動化學會,2012.

[10]龍志強.CAN總線技術與應用系統(tǒng)設計[M].北京:機械工業(yè)出版社,2013.

[11] WANC T J,YAO GANC L I,LIU X D.Intelligent Waste WaterTreatment System Base on CAN Bus Technology [J].Environ-mental Technology, 2004, (3): 32-33.

[12] JUKL M,CUPERA J,Using of tiny encryption algorithm inCAN-Bus communication [J].Res.Agr.Eng.,2016, (2):50-55

[13]佚名.菲亞特利用時間分析軟件Symtavision使CAN總線負載率達到70% [EB/OL].http://www.21ic.e om/app/auto/201203/108515.htm,2012-03-05.

[14]韓江洪,劉征宇,崔世輝,等.混合動力汽車CAN網(wǎng)絡通信協(xié)議的應用研究[J],汽車工程,2011,33 (12):1062-1066.

猜你喜歡
CAN總線
論網(wǎng)絡通信技術
基于嵌入式的汽車輔助制動系統(tǒng)研究
CAN總線通信技術在電梯監(jiān)控系統(tǒng)中的應用
基于CANoe的J1939協(xié)議在ECU通信中的應用
利用MC9S12(X)單片機構(gòu)建CAN總線網(wǎng)絡的研究
基于CAN總線的智能微噴灌監(jiān)控系統(tǒng)中下位機的硬件電路組成與設計
基于CAN總線的變電站通訊網(wǎng)絡設計
一種航空交換機中CAN總線的自動化測試方法
邵阳县| 汕尾市| 普兰店市| 日照市| 永定县| 平原县| 林甸县| 马边| 武冈市| 海原县| 商都县| 烟台市| 太白县| 盐池县| 黄山市| 四会市| 牟定县| 泸水县| 陇西县| 丰原市| 涿鹿县| 海原县| 南川市| 枣阳市| 广德县| 铜陵市| 根河市| 岳普湖县| 富源县| 上栗县| 栾城县| 北流市| 额尔古纳市| 包头市| 乐山市| 额济纳旗| 隆安县| 兴义市| 体育| 临夏市| 铜川市|