作者:北京和利時系統(tǒng)工程有限公司 李宗杰,劉盈
摘要:嵌入式控制器是控制系統(tǒng)的核心設(shè)備,而控制算法是控制器的指令集,也是控制系統(tǒng)的核心價值所在。本文從保護(hù)控制算法的角度,結(jié)合數(shù)字證書和傳統(tǒng)控制技術(shù)描述了一種權(quán)限控制以及通信加解密技術(shù)的實現(xiàn)方案:包括工程師組態(tài)工具的權(quán)限控制,通信數(shù)據(jù)的加密處理。
關(guān)鍵詞:數(shù)字證書;OpenVPN;嵌入式控制器
1 前言
現(xiàn)代工業(yè)控制系統(tǒng)普遍采用數(shù)據(jù)采集與監(jiān)控系統(tǒng)(SCADA)、分布式控制系統(tǒng)(DCS)、可編程邏輯控制(PLC)以及其他控制系統(tǒng)等,而且已廣泛應(yīng)用于石化、電力、水力、醫(yī)藥、食品、汽車、鋼鐵、航天等工業(yè)領(lǐng)域,成為國家關(guān)鍵基礎(chǔ)設(shè)施的重要組成部分,其是否能夠安全穩(wěn)定運行,已經(jīng)關(guān)系到國家的戰(zhàn)略安全。在大部分控制系統(tǒng)中算法是系統(tǒng)中的核心,決定了被控系統(tǒng)的行為;同時,算法是工程師智慧的結(jié)晶,尤其對于一些優(yōu)化和精細(xì)化控制的應(yīng)用場合,是企業(yè)核心價值所在。控制器是算法的載體,對該設(shè)備的安全保護(hù)顯得尤為重要。
本文從控制器使用的角度介紹了可編程邏輯控制器的算法保護(hù)的一種方法(基于數(shù)字證書),包括工程師組態(tài)工具的權(quán)限控制,通信數(shù)據(jù)的加密處理。兼顧信息安全和工業(yè)控制系統(tǒng)自身的要求,系統(tǒng)包括證書管控平臺、控制計算機(jī)軟件套件、安全通信模塊、可信控制器。如圖1所示。
圖1 系統(tǒng)示意圖
2 數(shù)字簽名算法和加解密算法
2.1 典型數(shù)字簽名算法
數(shù)字簽名算法是數(shù)字簽名標(biāo)準(zhǔn)的一個子集,數(shù)字簽名一般采用非對稱密鑰密碼體制來實現(xiàn)。密鑰運行在由SHA-1(也可以是其它哈希算法)產(chǎn)生的消息哈希:為了驗證一個簽名,要重新計算消息的哈希,使用公鑰解密簽名然后比較結(jié)果。縮寫為DSA。簽名算法多采用哈希算法或非對稱算法實現(xiàn),典型的算法包括:
(1)哈希算法
SHA算法
SHA(Secure Hash Algorithm,中文名為安全散列算法)是美國國家安全局(NSA)設(shè)計,美國國家標(biāo)準(zhǔn)與技術(shù)研究院(NIST)發(fā)布的一系列密碼散列函數(shù)。正式名稱為SHA的家族第一個成員發(fā)布于1993年,又稱為SHA-0,以避免與它的后繼者混淆。兩年后發(fā)布了SHA-1。另外還有四種變體,曾經(jīng)發(fā)布以提升輸出的范圍和變更一些細(xì)微設(shè)計:SHA-224、SHA-256、SHA-384 和 SHA-512(也被稱為 SHA-2)。
SHA-1在許多安全協(xié)議中廣為使用,包括TLS和SSL、PGP、SSH、S/MIME和IPsec,曾被視為是MD5的后繼者。
MD5算法
Message Digest Algorithm MD5(中文名為消息摘要算法第五版)為計算機(jī)安全領(lǐng)域廣泛使用的一種散列函數(shù),用以提供消息的完整性保護(hù)。該算法的文件號為RFC 1321。MD5用于確保信息傳輸完整一致,是計算機(jī)廣泛使用的雜湊算法之一,主流編程語言普遍已有MD5實現(xiàn)。MD5的前身有MD2、MD3和MD4。
MD5可以為任何文件產(chǎn)生一個同樣獨一無二的“數(shù)字指紋”,如果任何人對文件做了任何改動,其MD5值也就是對應(yīng)的“數(shù)字指紋”都會發(fā)生變化。
SM3算法
SM3算法也是一種哈希算法,中國國家密碼管理局在2010年發(fā)布,其名稱是SM3密碼雜湊算法。給數(shù)據(jù)加一個固定長度的指紋,這個固定長度是32字節(jié)。
(2)基于非對稱加密的簽名算法
RSA算法
RSA公鑰加密算法是1977年由羅納德 李維斯特(Ron Rivest)、阿迪 薩莫爾(Adi Shamir)和倫納德 阿德曼(Leonard Adleman)一起提出的RSA是目前最有影響力和最常用的公鑰加密算法,它能夠抵抗到目前為止已知的絕大多數(shù)密碼攻擊,已被ISO推薦為公鑰數(shù)據(jù)加密標(biāo)準(zhǔn)。
該算法適用于加解密和數(shù)字簽名。
SM2算法
SM2是國密算法。SM2加密使用接收方公鑰加密,公鑰由一個曲線坐標(biāo)點組成。SM2公鑰加密算法比RSA相對復(fù)雜,加密結(jié)果由3個部分組成,SM2加密過程中使用了隨機(jī)數(shù),因此同樣的明文數(shù)據(jù)每一次加密結(jié)果都不一樣。
該算法適用于加解密和數(shù)字簽名,需要配合使用SM3算法。
DSA算法
DSA(Digital Signature Algorithm),它是另一種公開密鑰算法,它不能用作加密,只用作數(shù)字簽名。DSA使用公開密鑰,為接受者驗證數(shù)據(jù)的完整性和數(shù)據(jù)發(fā)送者的身份。它也可用于由第三方去確定簽名和所簽數(shù)據(jù)的真實性。DSA算法的安全性基于解離散對數(shù)的困難性,這類簽字標(biāo)準(zhǔn)具有較大的兼容性和適用性,成為網(wǎng)絡(luò)安全體系的基本構(gòu)件之一。
ECDSA算法
RSA和ECC它們是基于不同的數(shù)學(xué)難題基礎(chǔ)上的,而且不同的密碼算法以及簽名體制有不同的算法復(fù)雜度。ECDSA的全名是Elliptic Curve DSA ,它是DSA應(yīng)用了橢圓曲線加密算法的變種。橢圓曲線算法的原理很復(fù)雜,但是具有很好的公開密鑰算法特性,通過公鑰無法逆向獲得私鑰。RSA的破譯和求解難度是亞指數(shù)級的;而ECDSA的破譯和求解難度基本上是指數(shù)級的。
2.2 典型通信加解密算法
根據(jù)密鑰類型不同將現(xiàn)代密碼技術(shù)分為兩類:對稱加密算法(秘密鑰匙加密)和非對稱加密算法(公開密鑰加密)。對稱鑰匙加密系統(tǒng)是加密和解密均采用同一把秘密鑰匙,而且通信雙方都必須獲得這把鑰匙,并保持鑰匙的秘密。非對稱密鑰加密系統(tǒng)采用的加密鑰匙(公鑰)和解密鑰匙(私鑰)是不同的。
(1)非對稱加密
數(shù)字簽名算法中提過的RSA、SM2均可以用來加密。
(2)對稱加密
對稱加密算法用來對敏感數(shù)據(jù)等信息進(jìn)行加密,常用的算法包括:
DES(Data Encryption Standard):數(shù)據(jù)加密標(biāo)準(zhǔn),速度較快,適用于加密大量數(shù)據(jù)的場合。
3DES(Triple DES):是基于DES,對一塊數(shù)據(jù)用三個不同的密鑰進(jìn)行三次加密,強度更高。
AES(Advanced Encryption Standard):高級加密標(biāo)準(zhǔn),是下一代的加密算法標(biāo)準(zhǔn),速度快,安全級別高;
SM4:國密算法。密鑰長度和分組長度均為128位。加密算法與密鑰擴(kuò)展算法都采用32輪非線性迭代結(jié)構(gòu)。解密算法與加密算法的結(jié)構(gòu)相同,只是輪密鑰的使用順序相反,解密輪密鑰是加密輪密鑰的逆序。
3 基于數(shù)字證書的身份認(rèn)證
工業(yè)控制系統(tǒng)中工程師主要使用組態(tài)軟件進(jìn)行算法編輯和下裝。本文提到的安全組態(tài)軟件使用兩級權(quán)限保護(hù)機(jī)制,一是采用MD5加密算法對口令進(jìn)行加密存儲;二是采用U盾的方式(存私鑰)對軟件的使用進(jìn)行限制。如圖2所示。
圖2 工程師站組件結(jié)構(gòu)圖
U盾里邊存儲私鑰和由數(shù)字證書管控平臺頒發(fā)的數(shù)字證書。工程師站(安裝組態(tài)軟件的PC機(jī)等)存有CA母證書。安全組件是對U盾以及數(shù)字證書相關(guān)操作包括證書的讀取解析、簽名、驗簽等功能的封裝。
組態(tài)軟件通過安全組件可以讀取解析數(shù)字證書,以及讀取U盾的數(shù)字證書,利用安全組件的證書驗證接口判斷證書的有效性,另外采用U盾簽名和數(shù)字證書的驗簽,來確定私鑰的有效性。通過以上環(huán)節(jié),確定U盾是否有效,在有效的情況下才可以正常使用組態(tài)軟件。
控制器中存儲了U盾的數(shù)字證書的公鑰,通過驗簽等手段保證接收到的邏輯算法是由有效身份的工程師所下載的。對于重要的操作,例如影響控制器運算的在線值寫入,讀取工程,強制輸出,控制器啟動停止等,也通過私鑰進(jìn)行簽名。
通過以上設(shè)計可以有效地保護(hù)工程師站的算法,有效地抵御控制器受非預(yù)期指令的影響。
4 基于數(shù)字證書的通信加解密
工程師站的權(quán)限控制雖然在一定程度上解決了算法邏輯編輯的權(quán)限控制問題,在下裝的過程中依舊存在關(guān)鍵傳輸數(shù)據(jù)被截獲、竊取等風(fēng)險。本文設(shè)計了采用了OpenVPN的技術(shù)方案解決通信過程中數(shù)據(jù)泄密的風(fēng)險。兼顧工業(yè)通信效率和保密性要求,采用“挑戰(zhàn)”的方式進(jìn)行密鑰協(xié)商確定對稱密鑰,接著用對稱密鑰實現(xiàn)數(shù)據(jù)通信的加解密過程。如圖3所示。
圖3 工程師站安全通信密鑰協(xié)商過程
OpenVPN收發(fā)數(shù)據(jù)包都是通過虛擬網(wǎng)卡。該設(shè)備既能以字符設(shè)備的方式被讀寫,作為系統(tǒng)的虛擬網(wǎng)卡,也具有和物理網(wǎng)卡相同的特點:能夠配置IP地址和路由。對虛擬網(wǎng)卡的使用是OpenVPN實現(xiàn)其SSL VPN功能的關(guān)鍵。
OpenVPN的服務(wù)器和客戶端支持tcp和udp兩種連接方式,只需要在服務(wù)端和客戶端預(yù)先定義好使用的連接方式(tcp或udp)和端口號,客戶端和服務(wù)端在這個連接的基礎(chǔ)上進(jìn)行SSL握手。連接包括SSL的握手以及虛擬網(wǎng)絡(luò)上的管理信息,OpenVPN將虛擬網(wǎng)上的網(wǎng)段、地址、路由發(fā)送給客戶端。連接成功后,客戶端和服務(wù)端建立起SSL安全連接,客戶端和服務(wù)端的數(shù)據(jù)都流入虛擬網(wǎng)卡做SSL的處理,再在tcp或udp的連接上從物理網(wǎng)卡發(fā)送出去。如圖4所示。
圖4
5 結(jié)語
隨著信息安全形勢的日益嚴(yán)峻,尤其在工控領(lǐng)域,很多涉及到民生領(lǐng)域的控制系統(tǒng),信息安全顯得格外重要以及迫切。本文結(jié)合數(shù)字證書相關(guān)技術(shù)與傳統(tǒng)的控制技術(shù),從控制算法的保護(hù)的角度闡述了一個可行的實現(xiàn)方案,并且基于此方案可以配套有更多的衍生設(shè)備,比如獨立的安全網(wǎng)關(guān)設(shè)備,支持路由的安全設(shè)備等。
注:本研究依托國家高技術(shù)研究發(fā)展計劃“863計劃”先進(jìn)制造技術(shù)領(lǐng)域“可編程嵌入式電子裝備的安全技術(shù)”項目“可編程嵌入式電子設(shè)備的安全防護(hù)技術(shù)及開發(fā)工具”課題任務(wù)進(jìn)行。
作者簡介:
李宗杰(1983-),男,浙江人,工程師,碩士,現(xiàn)任北京和利時系統(tǒng)工程有限公司技術(shù)中心副總經(jīng)理,研究方向為計算機(jī)應(yīng)用。
劉盈(1990-),男,內(nèi)蒙古人,工程師,現(xiàn)任北京和利時系統(tǒng)工程有限公司信息安全系統(tǒng)架構(gòu)師,主要從事工業(yè)控制系統(tǒng)信息安全解決方案的設(shè)計,以及信息安全關(guān)鍵技術(shù)的設(shè)計和實現(xiàn)方面的工作。
參考文獻(xiàn):
[1] 肖建榮. 工業(yè)控制系統(tǒng)信息安全[M]. 北京:電子工業(yè)出版社, 2015.
[2] 王志海. OpenSSL與網(wǎng)絡(luò)信息安全——基礎(chǔ)、結(jié)構(gòu)和指令[M]. 北京:清華大學(xué)出版社, 2007.