現(xiàn)場(chǎng)總線通信安全的設(shè)計(jì)與實(shí)現(xiàn)
(3)在LLC與MAC之間插入一層獨(dú)立的加密棧,它對(duì)上(LLC)子層)提供加密解密服務(wù),對(duì)下(MAC子層)調(diào)用數(shù)據(jù)傳送服務(wù)。這一加密棧功能單一,只涉及加密解密起始位置的判定和加密解密的具體實(shí)現(xiàn)。它避免了在其它層次集成加密解密功能時(shí)對(duì)原有協(xié)議功能的干擾與破壞,所以這是一種簡(jiǎn)單有效的方案。因此我們選擇本方案。
下面我們分析一下嵌入加密棧后的數(shù)據(jù)流程,如圖4所示。
圖4 嵌入加密棧后的數(shù)據(jù)流程
加密棧只對(duì)數(shù)據(jù)進(jìn)行加密,而不改變標(biāo)識(shí)符和控制碼。對(duì)MAC層而言,它不會(huì)察覺數(shù)據(jù)已被加密,只將密文作為通常數(shù)據(jù)而與標(biāo)識(shí)符、控制符一同分幀、校驗(yàn),交給物理層傳輸。在接收方的數(shù)據(jù)流動(dòng)與之相反,加密棧此時(shí)行使解密功能,對(duì)上下層仍然是透明的??梢?,加密模塊的加入,并不影響其它層次的工作,它的這種透明對(duì)于保持現(xiàn)有的協(xié)議完整性相當(dāng)重要。
目前現(xiàn)場(chǎng)總線的層次結(jié)構(gòu)不是標(biāo)準(zhǔn)的OSI七層結(jié)構(gòu)[1],有很多層并沒有被實(shí)現(xiàn),所以選擇LLC以上的層次不具有通用性。對(duì)于各類總線,MAC層是一定存在的,加密棧一定可以調(diào)用MAC層的數(shù)據(jù)傳輸服務(wù)。雖然不同的總線協(xié)議有所不同,但是加密棧的概念對(duì)所有類型的總線都是適用的,因此這種方案具有通用性。
對(duì)于我們剛才提出的系統(tǒng),要求每一節(jié)點(diǎn)實(shí)現(xiàn)加密通信。這樣,即使是從總線上竊取了數(shù)據(jù),也無法得到有用的信息,于是通信安全得到保障。
2、方案的實(shí)現(xiàn)
我們選擇在LLC與MAC之間進(jìn)行加密,具體的實(shí)現(xiàn)是利用硬件進(jìn)行加密。硬件加密的優(yōu)點(diǎn)在于速度快,同時(shí)硬件的保密性更強(qiáng),算法不容易被破解,當(dāng)然硬件應(yīng)當(dāng)能支持多種加密算法以便于用戶選擇。
關(guān)于硬件加密的實(shí)現(xiàn),可以參閱文獻(xiàn)[2]。文獻(xiàn)[3]對(duì)[2]文的不足之處進(jìn)行了補(bǔ)充,文獻(xiàn)[4]提出了構(gòu)造偽隨機(jī)數(shù)進(jìn)行加密的方法。(這一段不要)
三、更深入的問題
1、密鑰的分配
加密通信中,密鑰的分配與管理是相當(dāng)重要的環(huán)節(jié)。現(xiàn)場(chǎng)總線系統(tǒng)是為單一用戶所擁有管理的,密鑰的分配管理較為容易。系統(tǒng)管理員可以采用多種策略,不過由于設(shè)備的運(yùn)算能力有限,而且硬件具有良好保密性,選取對(duì)稱的密鑰體系應(yīng)該是足夠了,即一段總線上采用同一密鑰,既用于加密也用于解密,所有的節(jié)點(diǎn)都用這把密鑰進(jìn)行加密解密。對(duì)稱密鑰系統(tǒng)有結(jié)構(gòu)簡(jiǎn)單、實(shí)現(xiàn)方便的優(yōu)點(diǎn)。但是系統(tǒng)應(yīng)當(dāng)定期更換密鑰,根據(jù)運(yùn)行情況高速密鑰長(zhǎng)度和算法,這樣可以保證密鑰的安全。
2、性能分析
對(duì)于現(xiàn)場(chǎng)總線系統(tǒng)性能的要求主要是實(shí)時(shí)性。毫無疑問,增加了數(shù)據(jù)加密解密環(huán)節(jié)會(huì)增加設(shè)備響應(yīng)時(shí)間,但是這種延遲是不是一定會(huì)影響工業(yè)所需的實(shí)時(shí)性呢?答案是未必,因?yàn)槲覀兲岢龅姆桨甘腔谟布用艿?。硬件的運(yùn)算速度可以滿足工業(yè)實(shí)時(shí)控制的需要,只要選擇適合系統(tǒng)要求的算法,方案的強(qiáng)健性與實(shí)時(shí)性都可以得到保障。
3、混合系統(tǒng)與系統(tǒng)互聯(lián)
混合系統(tǒng)指的是一個(gè)系統(tǒng)中既有需加密的節(jié)點(diǎn)又存在不加密的節(jié)點(diǎn)。例如一條總線上,關(guān)鍵設(shè)備通信時(shí)數(shù)據(jù)需要加密,而非關(guān)鍵設(shè)備數(shù)據(jù)不進(jìn)行加密,于是信道上既有明文又有密文,這時(shí)就需要有一個(gè)預(yù)先的約定,使關(guān)鍵設(shè)備能識(shí)別所接收的數(shù)據(jù)是明文還是密文,并進(jìn)行相應(yīng)處理。對(duì)于明文則將解密棧屏蔽而把明文直接向上層傳送(這里體現(xiàn)出棧式加密結(jié)構(gòu)的優(yōu)點(diǎn)——功能獨(dú)立、可以選擇實(shí)現(xiàn))。注意此時(shí)非關(guān)鍵設(shè)備不能接收關(guān)鍵設(shè)備數(shù)據(jù)(密文)。這實(shí)現(xiàn)上是一種分級(jí)的安全策略,需要在通信協(xié)議中規(guī)定標(biāo)識(shí)位指明這種優(yōu)先級(jí)別。
混合系統(tǒng)的另一種情形是對(duì)不具有加密能力的設(shè)備也有通信加密要求,此時(shí)可通過提供硬件接口方式提供加密功能,這樣就能夠提供對(duì)原有系統(tǒng)的兼容,只要增加少投資就可大大提高敏感區(qū)域的安全性?;诮涌诘陌踩ㄐ欧桨溉鐖D5所示。
圖5 基于接口的通信加密策略
添加接口之后,總線網(wǎng)段上的數(shù)據(jù)便成為密文。這樣,沒有加密功能的設(shè)備能利用接口進(jìn)行密文通信,在混合系統(tǒng)中也能實(shí)現(xiàn)統(tǒng)一的加密通信。采用添加接口的方法,成本會(huì)提高,時(shí)延也會(huì)有所增加,但對(duì)于需要保護(hù)原有投資而又有較強(qiáng)安全需求的用戶,卻是一種效的解決方案。
不同的現(xiàn)場(chǎng)總線網(wǎng)段之間,可以通過網(wǎng)橋相聯(lián),系統(tǒng)的結(jié)構(gòu)與圖5相似。網(wǎng)橋中需要有兩條總線的加密接口,之上才是協(xié)議的確認(rèn)與轉(zhuǎn)換過程。由于加密是在LLC以下實(shí)現(xiàn)的,所以它不會(huì)影響到協(xié)議轉(zhuǎn)換。
現(xiàn)場(chǎng)總線可以通過通信控制器與工廠內(nèi)部網(wǎng)相聯(lián),通信控制器作為一個(gè)以太網(wǎng)節(jié)點(diǎn)接入以太網(wǎng),數(shù)據(jù)通信通信控制器時(shí)不做解密工作,直接按原密文傳送,上位機(jī)作另一個(gè)節(jié)點(diǎn)與通信控制器進(jìn)行密文通信,這就大大提高了以太網(wǎng)段上總線數(shù)據(jù)的安全性。與之相逆的過程中,上位機(jī)信息必須加密后才能進(jìn)入以太網(wǎng)段,經(jīng)過通信控制器進(jìn)入總線。這樣就能實(shí)現(xiàn)安全的遠(yuǎn)程控制。
現(xiàn)場(chǎng)總線系統(tǒng)的通信安全問題有其自身的特點(diǎn),一個(gè)完整的解決方案不是短時(shí)間能夠提出并實(shí)現(xiàn)的。雖然目前總線的信息安全問題還沒有得到廣泛的關(guān)注,但是,現(xiàn)場(chǎng)總線系統(tǒng)的開放互聯(lián)是未來發(fā)展的趨勢(shì)。所以,通信安全是企業(yè)現(xiàn)場(chǎng)代化進(jìn)程中不能不考慮的重要環(huán)節(jié),而只有從協(xié)議與實(shí)現(xiàn)兩個(gè)方面共同努力,才能得到盡可能好的解決方案。
評(píng)論