亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于OpenSSL的信息安全RTU的設(shè)計(jì)與實(shí)現(xiàn)

        2015-03-25 08:52:48劉學(xué)海計(jì)小軍
        石油知識(shí) 2015年5期
        關(guān)鍵詞:服務(wù)端密鑰代理

        劉學(xué)海 計(jì)小軍 衛(wèi) 乾 尹 鵬

        (1.北京中油瑞飛信息技術(shù)有限責(zé)任公司;2.中國(guó)石油伊拉克魯麥拉項(xiàng)目部;北京 100007)

        1 引言

        隨著計(jì)算機(jī)技術(shù)應(yīng)用的不斷深入,特別是信息化與工業(yè)化深度融合及物聯(lián)網(wǎng)技術(shù)的快速發(fā)展,相繼開(kāi)發(fā)出許多如RTU等的嵌入式網(wǎng)絡(luò)設(shè)備。

        RTU(Remote Terminal Unit)中文全稱為遠(yuǎn)程終端單元,通過(guò)自身的軟件系統(tǒng)可以實(shí)現(xiàn)調(diào)度系統(tǒng)對(duì)生產(chǎn)現(xiàn)場(chǎng)的遙測(cè)、遙控、遙調(diào)和遙信等功能。它是組成工業(yè)控制數(shù)據(jù)采集與監(jiān)視控制系統(tǒng)的細(xì)胞單元,在工業(yè)控制領(lǐng)域有著非常廣泛的應(yīng)用。

        隨著網(wǎng)絡(luò)技術(shù)的飛速發(fā)展,具備快速的響應(yīng)能力、開(kāi)放式的通信協(xié)議和平臺(tái)的網(wǎng)絡(luò)化RTU已經(jīng)成為目前市場(chǎng)上的主流工業(yè)控制產(chǎn)品之一,而安全性一直是通信網(wǎng)絡(luò)中最大的問(wèn)題之一。目前工業(yè)控制現(xiàn)場(chǎng)應(yīng)用的RTU控制器與SCADA(數(shù)據(jù)采集與監(jiān)視控制系統(tǒng))組態(tài)軟件之間一般采用明文方式進(jìn)行數(shù)據(jù)交互,這種開(kāi)放式的通信方式存在重大的安全隱患,傳輸?shù)耐ㄓ崍?bào)文容易被第三方監(jiān)聽(tīng)、截取和偽造。一旦發(fā)生這種情況,將產(chǎn)生不可估量的生產(chǎn)效益損失。如何防止工業(yè)控制系統(tǒng)安全事件的發(fā)生、在重點(diǎn)能源企業(yè)構(gòu)筑安全的工業(yè)控制系統(tǒng),已經(jīng)成為政府和企業(yè)關(guān)注的熱點(diǎn)。

        信息安全型RTU控制器(圖1)不但可以實(shí)現(xiàn)對(duì)工業(yè)控制現(xiàn)場(chǎng)數(shù)據(jù)的采集及處理功能,同時(shí)在數(shù)據(jù)傳輸前進(jìn)行加密,拒絕未授權(quán)用戶的訪問(wèn),從而有效杜絕由于信息泄露或非法侵入導(dǎo)致的工業(yè)安全隱患。

        圖1 信息安全RTU與傳統(tǒng)RTU對(duì)比圖

        目前密碼編碼算法按密鑰使用方法分為對(duì)稱密碼算法、非對(duì)稱密碼算法以及不需要密鑰的信息摘要算法,要實(shí)現(xiàn)這些算法及相應(yīng)的協(xié)議,工作量非常巨大,實(shí)現(xiàn)中通常采用現(xiàn)存的一些密碼算法軟件包來(lái)實(shí)現(xiàn)二次開(kāi)發(fā)。OpenSSL為開(kāi)發(fā)密碼安全平臺(tái)提供了豐富的密碼算法接口,可以安全高效的實(shí)現(xiàn)信息安全RTU。

        2 SSL與OpenSSL

        2.1 SSL協(xié)議

        SSL協(xié)議即安全套接層(Secure Sockets Layer)協(xié)議,是Netscape公司推出的為網(wǎng)絡(luò)應(yīng)用層的通信提供認(rèn)證、數(shù)據(jù)保密和數(shù)據(jù)完整性服務(wù)的一種安全通信協(xié)議。SSL協(xié)議建立在可靠的TCP傳輸控制協(xié)議之上,在網(wǎng)絡(luò)模型中位于應(yīng)用層和傳輸層之間,并且與上層協(xié)議無(wú)關(guān),各種應(yīng)用層協(xié)議(如HTTP、FTP、TELNET等)都能通過(guò)SSL協(xié)議進(jìn)行透明傳輸。

        SSL協(xié)議分為握手協(xié)議和記錄協(xié)議兩種。握手協(xié)議是指在數(shù)據(jù)傳輸前,服務(wù)器與客戶端進(jìn)行身份鑒別,同時(shí)協(xié)商決定采用的協(xié)議版本、加密算法等。每次連接,握手協(xié)議都要建立一個(gè)會(huì)話,且每次握手中產(chǎn)生的對(duì)稱密鑰都是獨(dú)特的,這種每次更換密鑰的方法在更大程度上保證了通信的安全性。記錄協(xié)議是指對(duì)要傳輸?shù)男畔⒂脜f(xié)商好的對(duì)稱密鑰加密后,再通過(guò)TCP/IP的連接將信息發(fā)送出去。

        SSL協(xié)議提供的安全連接具有以下3個(gè)基本特點(diǎn):

        (1)連接是保密的:對(duì)于每個(gè)連接都有一個(gè)唯一的會(huì)話密鑰,采用對(duì)稱密碼體制(如DES、RC4等)來(lái)加密數(shù)據(jù);

        (2)連接是可靠的:消息的傳輸采用MAC算法(如MD5、SHA等)進(jìn)行完整性檢驗(yàn)。

        (3)雙方是可信任的:對(duì)端實(shí)體的鑒別采用非對(duì)稱密碼體制(如RSA、DSS等)進(jìn)行認(rèn)證。

        2.2 OpenSSL

        OpenSSL是一個(gè)健全的、全開(kāi)放的和開(kāi)放源代碼的軟件包,最早由Eric A. Yang和Tim J.Hudson開(kāi)發(fā),現(xiàn)在OpenSSL已經(jīng)實(shí)現(xiàn)了對(duì)安全套接層SSL V2.0/V3.0和傳輸安全協(xié)議TLS V1.0的支持。與同類型密碼庫(kù)相比,OpenSSL具有以下優(yōu)點(diǎn):

        (1)采用C語(yǔ)言開(kāi)發(fā),支持多種操作系統(tǒng)(Linux、BSD、Windows、Mac、VMS等),可移植性好。

        (2)功能全面,密碼庫(kù)支持的密碼算法豐富,如對(duì)稱密碼算法AES、DES、CAST、IDEA、RC4等;非對(duì)稱密碼算法DH算法、RSA算法、DSA算法和橢圓曲線算法;信息摘要算法MD2、MD5、SHA-1和RIPEMD。

        (3)OpenSSL提供了CA等用于生成各種X.509證書(shū)(網(wǎng)絡(luò)通信中標(biāo)志服務(wù)方實(shí)體的身份,含有服務(wù)方的公開(kāi)密鑰)、密鑰文件的命令,方便程序的編寫(xiě)和調(diào)試。

        (4)源代碼開(kāi)放,能夠根據(jù)需要選擇不同的軟件版本進(jìn)行修改和移植。

        另外,OpenSSL軟件包還提供了豐富的密鑰和證書(shū)管理功能以及用來(lái)進(jìn)行加密模塊擴(kuò)展的引擎機(jī)制。

        3 基于OpenSSL的信息安全RTU的總體設(shè)計(jì)

        3.1 信息安全RTU硬件平臺(tái)設(shè)計(jì)

        本文采用的系統(tǒng)硬件平臺(tái)是由北京中油瑞飛信息技術(shù)有限責(zé)任公司自主研發(fā)的一款RTU產(chǎn)品,分為核板和底板兩個(gè)部分。核板采用Atmel AT91SAM9X25為微處理器(CPU),并采用專業(yè)穩(wěn)定的內(nèi)核電源芯片和外部看門(mén)狗復(fù)位芯片來(lái)保證系統(tǒng)運(yùn)行的穩(wěn)定性。CPU主頻為400MHz,內(nèi)存設(shè)備為128M的DDR2,RTU的Flash存儲(chǔ)為128M的Nand Flash。

        底板接口和資源方面:1路10/100M以太網(wǎng)RJ-45接口,4路串行接口,1路CAN接口,1路ZigBee無(wú)線接口,8路AI和DI接口,4路AO和DO接口。

        除上述通用資源外,信息安全RTU采用硬件引擎加密機(jī)制,硬件加密模塊采用工業(yè)級(jí)帶有安全主控芯片的SD卡。加密芯片高速數(shù)據(jù)總線接口,除了支持國(guó)際通用加密算法AES、DES、RSA、SHA外,還支持SM2算法,這可在保證數(shù)據(jù)吞吐率的同時(shí)增強(qiáng)信息加密的強(qiáng)度和靈活性。

        3.2 基于OpenSSL的信息安全RTU的系統(tǒng)軟件設(shè)計(jì)

        整個(gè)安全信息傳輸系統(tǒng)包括3個(gè)部分:服務(wù)端,由基于OpenSSL的信息安全RTU充當(dāng);客戶端,由安裝SCADA軟件的電腦充當(dāng);加密機(jī)代理,由安裝Linux系統(tǒng)的加密機(jī)充當(dāng)(圖2)。RTU主要實(shí)現(xiàn)加密機(jī)代理的身份認(rèn)證、與代理的信息傳輸、和底層數(shù)據(jù)的采集,其中加密機(jī)的身份認(rèn)證和與加密機(jī)的信息交互為RTU實(shí)現(xiàn)的重點(diǎn)。

        圖2 安全信息傳輸系統(tǒng)組成圖

        在整個(gè)安全信息傳輸系統(tǒng)中,RTU和加密機(jī)之間以SSL安全連接,而SCADA與加密機(jī)之間是直連。這是因?yàn)镽TU與加密機(jī)之間的信息處于公網(wǎng)內(nèi),容易被第三方惡意監(jiān)聽(tīng)、截取和偽造,而加密機(jī)與SCADA處于公司內(nèi)網(wǎng),安全性較高。

        基于OpenSSL的信息安全RTU的軟件結(jié)構(gòu)分為以下4個(gè)層次:

        (1)引導(dǎo)加載程序Bootloader

        Bootloader是嵌入式系統(tǒng)在上電后執(zhí)行的第一段代碼,這段程序在完成CPU和相關(guān)硬件的初始化后,再將操作系統(tǒng)映像拷貝到內(nèi)存中然后跳轉(zhuǎn)到操作系統(tǒng)所在的空間,啟動(dòng)操作系統(tǒng)。本文采用的是bootstrap+uboot作為第一層引導(dǎo)加載程序。

        (2)經(jīng)剪裁、移植的Linux內(nèi)核

        Linux內(nèi)核包含著所有操作系統(tǒng)的核心功能和網(wǎng)絡(luò)協(xié)議棧,是Linux操作系統(tǒng)的心臟。本系統(tǒng)的信息安全RTU以剪裁過(guò)的2.6.39版本的Linux為內(nèi)核。

        (3)文件系統(tǒng)

        文件系統(tǒng)包括根文件系統(tǒng)和建立于Flash設(shè)備上的文件系統(tǒng)。嵌入式Linux啟動(dòng)時(shí),第一個(gè)掛載的是根文件系統(tǒng)(包含特定的目錄下不同名稱、不同用途的文件)。

        (4)用戶應(yīng)用程序

        用戶自己開(kāi)發(fā)的運(yùn)行于嵌入式Linux操作系統(tǒng)之上的計(jì)算機(jī)程序,包括自定義協(xié)議棧、Web服務(wù)器等。信息安全RTU開(kāi)發(fā)的應(yīng)用程序包括基于OpenSSL的服務(wù)端與加密機(jī)通信程序、本地模擬量與數(shù)字量采集控制程序、串口Modbus程序等。

        上述4個(gè)層次中,前3個(gè)是信息安全RTU平臺(tái)的搭建,第4個(gè)層次是基于OpenSSL的信息安全RTU功能實(shí)現(xiàn)的重點(diǎn)。

        4 OpenSSL握手、數(shù)據(jù)傳輸?shù)木唧w實(shí)現(xiàn)

        在整個(gè)系統(tǒng)中,信息安全RTU與加密機(jī)代理的通信流程如圖3所示。其中步驟1~13為SSL的握手階段,完成代理與服務(wù)端的雙向認(rèn)證、加密算法的協(xié)商、密鑰的確定。

        圖3 信息安全RTU與加密機(jī)代理通信流程圖

        這13條消息可以分為4個(gè)階段:

        第一階段是加密機(jī)代理向信息安全RTU服務(wù)端發(fā)送一個(gè)連接請(qǐng)求Client Hello,包含了加密機(jī)的SSL協(xié)議版本號(hào)、隨機(jī)數(shù)key和準(zhǔn)備使用的加密算法。

        第二階段是RTU服務(wù)端收到加密機(jī)代理的連接請(qǐng)求后向代理發(fā)送自己的SSL協(xié)議版本號(hào)、加密算法的種類、隨機(jī)數(shù)key、自身SD卡硬件證書(shū)以及代理的證書(shū)請(qǐng)求。

        第三階段是代理收到服務(wù)端發(fā)送的信息后,會(huì)驗(yàn)證服務(wù)端的合法性,包括證書(shū)是否過(guò)期、發(fā)行服務(wù)器證書(shū)的CA是否可靠、服務(wù)器證書(shū)上的域名是否和服務(wù)器的實(shí)際域名相匹配等。如果合法性驗(yàn)證通過(guò),加密機(jī)代理會(huì)隨機(jī)產(chǎn)生一個(gè)對(duì)稱密鑰key,并用提取的服務(wù)器公鑰對(duì)其進(jìn)行加密,然后產(chǎn)生一個(gè)隨機(jī)數(shù),并數(shù)字簽名,最后將簽名的隨機(jī)數(shù)、代理自己的證書(shū)和加密的對(duì)稱密鑰key發(fā)給服務(wù)器,并向服務(wù)端發(fā)出信息,指明后面的數(shù)據(jù)通訊將采用該對(duì)稱密鑰作為通信密鑰,同時(shí)通知服務(wù)端代理握手過(guò)程結(jié)束。如果合法性驗(yàn)證沒(méi)有通過(guò),通訊將斷開(kāi),

        第四階段信息安全RTU服務(wù)端對(duì)代理發(fā)送來(lái)的證書(shū)和簽名隨機(jī)數(shù)進(jìn)行合法性檢驗(yàn)。如果驗(yàn)證通過(guò),服務(wù)端用私鑰解密代理發(fā)送來(lái)的對(duì)稱密鑰,并向代理發(fā)送信息,指明后面的數(shù)據(jù)通訊使用該對(duì)稱密鑰,同時(shí)通知代理服務(wù)端握手過(guò)程結(jié)束。如果檢測(cè)沒(méi)有通過(guò),通訊立即中斷,

        握手過(guò)程結(jié)束后,加密機(jī)代理與信息安全RTU端將進(jìn)行應(yīng)用數(shù)據(jù)的傳輸,直至此次通話結(jié)束。

        基于OpenSSL的信息安全RTU為實(shí)現(xiàn)SSL通信軟件各個(gè)模塊的設(shè)計(jì)及關(guān)系如圖4所示,信息安全RTU服務(wù)端在接收到加密機(jī)代理的請(qǐng)求后,會(huì)判斷該請(qǐng)求是否為已連接且為未斷開(kāi)的請(qǐng)求,如果是,則啟用會(huì)話重用模塊,而不需要重新握手建立連接,這種方式會(huì)節(jié)省不必要的開(kāi)銷,提高通訊效率;如果該請(qǐng)求是新的連接請(qǐng)求,則需要建立SSL連接。

        SSL連接過(guò)程需要用到SSL初始化模塊、SSL連接模塊和SSL身份驗(yàn)證模塊3個(gè)模塊:SSL密碼組控制模塊用于RTU與加密機(jī)通信密碼的選擇與控制,加密機(jī)代理可以通過(guò)修改密碼來(lái)保證通信的安全;SSL通信模塊用于RTU與加密機(jī)建立SSL連接后雙方的數(shù)據(jù)傳輸。

        (1)SSL初始化

        首先要初始化OpenSSL的函數(shù)庫(kù),通過(guò)函數(shù)SSL_library_init()來(lái)實(shí)現(xiàn),然后調(diào)用SSL_load_error_string()函數(shù),可以將錯(cuò)誤碼轉(zhuǎn)換成字符串。

        圖4 基于OpenSSL的信息安全RTU的SSL通信中各模塊關(guān)系圖

        接著創(chuàng)建SSL上下文,信息安全RTU采用的是硬件引擎加密機(jī)制,首先要初始化硬件加密模塊,通過(guò)調(diào)用ENGINE_load_sdkey()函數(shù)實(shí)現(xiàn)這一功能,該函數(shù)中會(huì)完成硬件加密模塊SD卡中的加解密算法庫(kù)替換OpenSSL中的軟加解密算法庫(kù)等一系列工作。然后調(diào)用SSL_METHOD *meth=SSLv23_server_method()函數(shù)用來(lái)初始化SSL支持的版本;SSL_CTX *ctx=SSL_CTX_new(meth)函數(shù)用來(lái)創(chuàng)建SSL_CTX數(shù)據(jù)結(jié)構(gòu),該結(jié)構(gòu)體主要用于準(zhǔn)備SSL握手前的環(huán)境,包括CA證書(shū)、服務(wù)端的證書(shū)、私鑰、協(xié)議版本號(hào)等,然后通過(guò)調(diào)用各功能函數(shù)實(shí)現(xiàn)該數(shù)據(jù)結(jié)構(gòu)的初始化。

        因?yàn)镽TU服務(wù)端需要認(rèn)證加密機(jī)代理,所以需要加入請(qǐng)求代理認(rèn)證的內(nèi)容,調(diào)用函數(shù)SSL_CTX_set_verify(ctx, SSL_VERIFY_PEER | SSL_VERIFY_FAIL_IF_NO_PEER_CERT, NULL)實(shí)現(xiàn),參數(shù)SSL_VERIFY_PEER需要進(jìn)行代理認(rèn)證,SSL_VERIFY_FAIL_IF_NO_PEER_CERT表示如果客戶端不提交證書(shū)則SSL連接過(guò)程立刻終止。

        (2)SSL接受連接

        RTU端在收到加密機(jī)代理發(fā)出的連接請(qǐng)求后,RTU端就會(huì)創(chuàng)建SSL對(duì)象來(lái)對(duì)應(yīng)一條SSL連接,SSL對(duì)象并不是直接附加到套接字上,而是通過(guò)中間層BIO對(duì)象來(lái)實(shí)現(xiàn)的;SSL對(duì)象附加到BIO對(duì)象上,然后BIO對(duì)象實(shí)現(xiàn)與套接字實(shí)現(xiàn)通信。這樣使得SSL對(duì)象的實(shí)現(xiàn)不僅局限于網(wǎng)絡(luò)套接字,還可以用于實(shí)現(xiàn)串口等。信息安全RTU中實(shí)現(xiàn)方法為:ssl=SSL_new(ctx),創(chuàng)建SSL對(duì)象;SSL_set_fd(ssl, ucSocket)實(shí)現(xiàn)SSL對(duì)象與BIO對(duì)象以及BIO對(duì)象與套接字的綁定;err=SSL_accept(ssl)實(shí)現(xiàn)與代理的握手過(guò)程,包括雙方的互相認(rèn)證、密鑰的協(xié)商等。如果握手成功,返回1,SSL連接成功建立成功,可以開(kāi)始進(jìn)行數(shù)據(jù)傳輸。如果失敗,可以通過(guò)檢查返回值來(lái)確定連接錯(cuò)誤的原因。

        信息安全RTU端與加密機(jī)代理的SSL連接建立成功后,SSL對(duì)象和套接字作為一個(gè)數(shù)據(jù)結(jié)構(gòu)保存到會(huì)話重用模塊中,只要SSL連接不中斷,RTU與加密機(jī)通信都是通過(guò)調(diào)用會(huì)話重用模塊進(jìn)行通信的。

        (3)數(shù)據(jù)傳輸

        信息安全RTU與加密機(jī)代理通信交互時(shí),發(fā)送數(shù)據(jù)用函數(shù)SSL_write(ssl,buffer,length),接收函數(shù)用函數(shù)SSL_read(ssl,buffer,length),與系統(tǒng)函數(shù)read和write基本一致,只是第一個(gè)參數(shù)變?yōu)镾SL對(duì)象。

        最后,通信完成后,要終止SSL連接,釋放資源,調(diào)用SSL_free(ssl)來(lái)釋放SSL對(duì)象,調(diào)用SSL_CTX_free(ctx)來(lái)釋放CTX環(huán)境對(duì)象。

        5 總結(jié)

        為解決工業(yè)現(xiàn)場(chǎng)中RTU在通信中存在的安全隱患,本文設(shè)計(jì)并實(shí)現(xiàn)了基于OpenSSL的信息安全RTU,詳細(xì)介紹了該RTU的總體設(shè)計(jì)方案及OpenSSL握手、數(shù)據(jù)通信的具體實(shí)現(xiàn),適用于需要安全通信的工業(yè)現(xiàn)場(chǎng)。

        [1]Bruce Schneider.應(yīng)用密碼學(xué)[M].北京:機(jī)械工業(yè)出版社,2000.

        [2]W.Chou.Accelerating secure transactions.IT Professional,2003(2):37.

        [3]Nachiketh,Potlapally,SRavi.A Study of the Energy Consumption Characteristics of Cryptographic Algorithms and Security Protocols.IEEE TRANSACTIONS ON MOBILE COMPUTION,2006,5(2):128.

        [4]Dierks T, Allen C. The TLS Protocol Version 1.0[S] IET FRFC2246, 1999.

        [5]齊洪喜,周大水.基于OpenSSL的安全密碼平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2007,28(2):314-315,319.

        [6]Rescorla E.SSL與TLS Designing and Building Secure Systems[M].崔凱譯.北京:中國(guó)電力出版社,2002.

        猜你喜歡
        服務(wù)端密鑰代理
        探索企業(yè)創(chuàng)新密鑰
        密碼系統(tǒng)中密鑰的狀態(tài)與保護(hù)*
        代理圣誕老人
        代理手金寶 生意特別好
        云存儲(chǔ)中基于相似性的客戶-服務(wù)端雙端數(shù)據(jù)去重方法
        新時(shí)期《移動(dòng)Web服務(wù)端開(kāi)發(fā)》課程教學(xué)改革的研究
        一種對(duì)稱密鑰的密鑰管理方法及系統(tǒng)
        在Windows Server 2008上創(chuàng)建應(yīng)用
        基于ECC的智能家居密鑰管理機(jī)制的實(shí)現(xiàn)
        復(fù)仇代理烏龜君
        精品久久久亚洲中文字幕| 国产精品成人免费视频一区| 国产av无码专区亚洲avjulia| 国产成人亚洲精品| 国内免费AV网站在线观看| 亚洲国产成人Av毛片大全| 丰满人妻一区二区三区免费 | 乱伦一区二| 精品少妇白浆一二三区| 日本不卡一区二区三区久久精品 | 精品国产精品三级精品av网址| 婷婷五月婷婷五月| 亚洲av无码成人yellow| 成年女人在线观看毛片| 国产三级av在线播放| 美腿丝袜日韩在线观看| 国产精品久久国产精麻豆99网站| 中文无码熟妇人妻av在线| 熟妇人妻中文av无码| 国产亚洲欧洲AⅤ综合一区| 日韩人妻系列在线视频| 成人国产一区二区三区av| 国产精品黄色片在线看| 大地资源在线影视播放| v一区无码内射国产| 先锋影音av资源我色资源| 一本久到久久亚洲综合| 亚洲av噜噜狠狠蜜桃| 99久久精品国产91| 蜜臀av无码人妻精品| 国产精品无套内射迪丽热巴| 中文字幕在线观看国产双飞高清 | 国产av一区二区凹凸精品| 亚洲av高清一区二区| 亚洲夫妻性生活免费视频| 中文无码精品a∨在线观看不卡| 无码人妻精品一区二区三区免费| 中文不卡视频| 成年人视频在线观看麻豆| 欧美性生交大片免费看app麻豆| 国产精品毛片完整版视频|