李 露,魏學明,李 峰
(1.長園深瑞繼保自動化有限公司,廣東 深圳 518057; 2.TCL華星光電技術(shù)有限公司,廣東 深圳 518131;3.深圳市峰泳科技有限公司,廣東 深圳 518115)
隨著信息安全技術(shù)的快速發(fā)展和國家《能源生產(chǎn)和消費革命戰(zhàn)略2016—2030》的逐步推進,配網(wǎng)終端的接入形式呈現(xiàn)出快速多元化的發(fā)展特點,開放互動網(wǎng)絡環(huán)境已形成。同時,配網(wǎng)終端的通信安全面臨著前所未有的挑戰(zhàn)。目前,配網(wǎng)終端位于現(xiàn)場的各個角落,分布零散,存在較大的集中管理問題,迫切需要一種高效且安全的就地運維Web管理系統(tǒng),為產(chǎn)品運維管理提供便利?;趥鬏攲影踩?transport layer security,TLS)的連接,可以提供Web客戶端和服務端之間的保密通信和安全認證。然而,在安全協(xié)議設計之初,安全測例覆蓋不完全,安全邏輯判斷存在缺陷。
1994年,Netscape公司提出安全套接層(secure socket layer,SSL)協(xié)議。國內(nèi)外的專家學者花費了20多年時間對SSL/TLS協(xié)議設計和實現(xiàn)問題作出深入研究和總結(jié),提出了舊版本的SSL 2.0協(xié)議存在嚴重的重放攻擊和消息完整性認證缺陷[1]。2014年,谷歌發(fā)現(xiàn)了在降級時填充Oracle舊版加密,會導致攻擊者可以解密加密數(shù)據(jù)[2]。瀏覽器在進行SSL握手連接失敗后,服務器會進行握手協(xié)議版本的重協(xié)商,從而導致選擇低版本SSL漏洞協(xié)議。谷歌再次發(fā)現(xiàn)了Poodle攻擊,會導致SSL 3.0協(xié)商出的會話密鑰被劫持[3]。瀏覽器將生成的預主密鑰和隨機數(shù)通過服務端的公鑰加密發(fā)送給服務端,而服務端用自己的私鑰解密后得到和客戶端一樣的預主密鑰和隨機數(shù)。中間人攻擊能夠通過會話劫持將密文劫持,并利用Poodel攻擊解密通信密鑰。
AlFardan和Holloway提出了針對TLS 1.0改進版本的一種有效的Padding oracle 填充攻擊。其中,由錯誤填充的明文產(chǎn)生的錯誤消息被用作旁道[4]。通過修改和改進Bleichenbacher在公鑰加密算法(rivest shamir adleman algorithm,RSA)PKCS#1.5的填充,給出了新的密碼分析,最終能夠順利進行錯誤信息返回的旁道攻擊。Mantin和Fluhrer提出了用于TLS 1.0/2.0/3.0流加密算法(rivest cipher 4,RC4)的對稱加密偏差問題,發(fā)現(xiàn)字節(jié)的偏移存在規(guī)律性和周期性[5-6]。這就造成密文數(shù)據(jù)可以通過規(guī)律性和周期性被逆向破解。但目前的難點是攻擊獲取收集的樣品數(shù)據(jù)需要長達幾年的時間。Mantin再次提出了RC4的加密攻擊。在某種程度上,此加密算法的破解時間在逐漸縮短,不斷靠近RC4算法的時間邊界,因此RC4算法是可以破解的[7]。練俊君和魏琳提出了一種電網(wǎng)Web準實時數(shù)據(jù)的靜態(tài)安全分析方法,但未對Web的通信安全接入作安全分析[8]。
針對SSL/TLS協(xié)議深入研究,本文設計一種受TLS和國密算法保護的配網(wǎng)終端Web安全通信架構(gòu)。該架構(gòu)通過國密算法的安全性征求意見稿(request for comments,RFC)標準密鑰分發(fā)和數(shù)據(jù)加密的高效性,彌補了未來RFC安全標準的不確定性,重點提高了Web安全通信架構(gòu)在抵抗消息篡改、中間人、違法竊聽、重放攻擊等方面的能力。
密碼算法的發(fā)展和應用尤為重要,我國也提出了較為安全的密碼算法。表1為典型算法列舉。密碼算法主要分為三類:對稱加密算法實現(xiàn)應用報文的加密,解決Web交互報文的安全性;非對稱加密算法實現(xiàn)密鑰協(xié)商分發(fā)加密、SSL證書簽名和驗簽使用;摘要算法實現(xiàn)數(shù)據(jù)完整性,防止消息被篡改。
表1 典型算法列舉
1.1.1 國密算法SM3與安全哈希算法-256
國密算法通過SM3進行消息摘要生成。RFC5246通過安全哈希算法(secure Hash algorithm,SHA)-256進行消息認證。SM3算法采用512位的消息分組,消息摘要長度為256位,需進行多次迭代和填充。而RFC5246是通過偽隨機函數(shù)、哈希函數(shù)、密鑰共同生成摘要信息。通過定義數(shù)據(jù)擴展函數(shù),P_hash(key,data)使用單個哈希函數(shù)將密鑰和種子擴展為任意數(shù)量的輸出。
P_hash(key,data) = HMAC_hash(key,A(1)+ seed)+
HMAC_hash(key,A(2)+ seed)+
HMAC_hash(key,A(3)+ seed)+...
HMAC_hash(key,A(n)+ seed)
A(0)=seed
A(n)=HMAC_hash(key,A(n-1))
P_hash同樣需要多次迭代,生成所需數(shù)量的數(shù)據(jù)。
1.1.2 比較和分析
SM3是對SHA-256的補充和改進。不同的是,SM3每一輪壓縮需要2個消息字。通過表2所示的哈希計算時間可知,兩種算法對等量的消息所生成的時間基本相當。
表2 哈希計算時間
1.2.1 SM1與RC4
SM1算法為國密標準的分組密碼算法。因SM1算法非公開,僅以知識產(chǎn)權(quán)授權(quán)的形式存在硬件中,故釋放了內(nèi)存資源,提升了算法安全和效率。RC4作為一種非常高效的加密算法,采用流加密方式,根據(jù)明文和種子密鑰生成相應的明文流和密鑰流。RC4的長度和明文長度是對應的。
RC4算法流程如圖1所示。
1.2.2 比較和分析
SM1算法非公開,知識產(chǎn)權(quán)授權(quán)于硬件,安全性和效率較高。而RC4處理高效,計算簡單,二者相結(jié)合可相得益彰。
安全屬性主要在鏈路層之下和傳輸層之上實現(xiàn)。安全層完成服務鏈接、密鑰協(xié)商、身份認證。國密硬核對協(xié)議棧的入口和出口數(shù)據(jù)進行解密和加密,軟硬件加密相結(jié)合,為消息的不可竊聽提供重要保證。同時,安全架構(gòu)也保證了消息非法篡改、非法冒充、非法抵賴等安全屬性。根據(jù)不同的安全屬性,可采取不同的安全攻略。通過證書認證、偽隨機數(shù)、SHA-256、SM1、RC4,可分別解決欺騙、重放、篡改、竊聽攻擊等問題。
安全架構(gòu)如圖2所示。
TLS協(xié)議完成三個方面的功能:首先,允許對等方達成一致記錄層的安全參數(shù);其次,實例化協(xié)商后的安全參數(shù);最后,進行安全認證并報告錯誤。握手協(xié)議負責協(xié)商會話,包括會話識別、實體證書、消息摘要方法、加密規(guī)范、主密鑰商定等[9]。
統(tǒng)一安全協(xié)議版本后,選擇加密算法,并允許客戶端和服務器驗證其對等方是否計算了相同的安全參數(shù)。于是,通過公鑰加密產(chǎn)生會話的共享主密鑰[10-11]。
協(xié)商流程如圖3所示。
2.2.1 認證流程
證書認證通過第三方認證機構(gòu)實現(xiàn),支持證書撤銷列表或證書狀態(tài)更新信息。證書格式采用標準的X.509V3格式,能確保其正確無誤地由第三方受信任證書頒發(fā)機構(gòu)簽名[12-13]。選擇和添加受信任的證書機構(gòu)(certificate authority,CA)應異常小心,確保用戶證書、中間證書、根證書路徑的絕對安全。
進行服務器身份驗證時,其證書消息必須提供有效的簽名。經(jīng)過身份驗證的客戶端必須向服務器的每一方負責驗證另一方的證書有效且未過期或被吊銷,繼而保證身份認證,以避免中間人身份攻擊。認證流程是通過證書吊銷列表(certificate revocation list,CRL)和證書在線狀態(tài)協(xié)議(online certificate status protocol,OCSP)進行身份認證。CRL機制實時性較差,證書吊銷或未過期存在空檔期。OCSP能夠很好地解決CRL的實時性問題,但仍需要多次和CA通信確認證書的有效性。這就造成用戶的敏感數(shù)據(jù)泄漏、驗證負荷增加。
Web通信安全架構(gòu)的OCSP裝訂技術(shù),能夠很好地解決上述隱私數(shù)據(jù)泄漏和負荷增加問題。Web服務器自行查詢并緩存響應帶有CA中心簽名的結(jié)果,有效解決了隱私數(shù)據(jù)和證書查詢負荷問題。
證書認證流程如圖4所示。
2.2.2 會話密鑰產(chǎn)生
會話密鑰的分發(fā)尤為關(guān)鍵,能夠保證通信實體的會話安全。會話密鑰產(chǎn)生如圖5所示。
Web通信安全架構(gòu)為提高密鑰分發(fā)的效率和安全,協(xié)商了可基于RSA或迪菲赫爾曼(Diffie Hellman,DH)算法預主密鑰PreMasterKey的產(chǎn)生?;谝陨纤龅奈帐謪f(xié)商,通過雙方的預主密鑰PreMasterKey和偽隨機數(shù)Random即可算出會話主密鑰MasterKey。
2.2.3 加密流程
安全架構(gòu)采用對稱加密和非對稱加密兩種體制。RC4加密是一種高效的流加密算法,密鑰長度可變[14]。因RC4不對明文進行分組,而用密鑰生成與明文一樣長短的密碼流對明文進行加密,具有處理速度快的優(yōu)點,在通信領域廣泛應用。加密/解密流程如圖6所示。
專家Fluhrer、Mantin、Shamir也指出RC4密鑰調(diào)度算法存在缺陷[15]。但該研究僅停留在理論階段,沒有實際的攻擊案例,理論和實際還存在較大差距。
RC4加密/解密原理簡單。首先,通過密鑰調(diào)度算法(key scheduling algorithm,KSA)和密鑰進行初始化S狀態(tài)。然后,將偽隨機數(shù)子密碼生成算法(pseudo random generation algorithm,PRGA)通過KSA初始化,生成隨機的等長密鑰流。
為解決RC加密所存在的安全性和后門問題[16],Web通信安全架構(gòu)的最底層添加了國密硬核模塊。其目的是通過國密硬核模塊的非公開源碼,保障Web通信的安全性和高效性。
本小節(jié)針對Web安全通信架構(gòu)所面臨的消息欺騙、消息篡改、重放攻擊、竊聽攻擊進行深入分析說明。
①消息欺騙。
安全架構(gòu)采用證書管理方式進行雙向認證。證書實體與CA中心進行身份綁定,能夠確定唯一通信實體身份。一旦惡意用戶闖入,網(wǎng)絡安全事件能進行告警并記錄日志信息。證書信息通過CA中心簽名,并由客戶端進行用戶證書、中間證書、根證書的鏈式逐條驗證,保證了證書信息的正確性。
②消息篡改。
通信過程中,基于安全協(xié)商好的密鑰,采用SHA-256算法生成應用數(shù)據(jù)的信息識別碼。攻擊方在沒有安全密鑰的情況下,無法將應用數(shù)據(jù)生成密鑰哈希信息識別碼(the keyed-Hash message authentication code,HMAC),從而無法篡改所發(fā)送的消息。再者,媒體存儲控制(media access control,MAC)位址密鑰的長度要遠遠長于主密鑰,即使主密鑰被破解,消息仍能保持完整性。
③重放攻擊。
安全架構(gòu)設計為了防止消息的重放攻擊,添加64 bit的消息序列號和時間戳機制。接收方通過序號和消息內(nèi)容的時效性來判斷是否存在重放攻擊,并進行業(yè)務數(shù)據(jù)流調(diào)整。
④竊聽攻擊。
電網(wǎng)數(shù)據(jù)尤為重要。因涉及位置開關(guān)操作和電網(wǎng)用戶用電習慣信息,安全架構(gòu)通過RC4和SM1加密相結(jié)合的方式,保證了數(shù)據(jù)的絕對安全。黑客在沒有會話主密鑰和MAC密鑰的前提下,無法對應用報文數(shù)據(jù)信息進行竊取。所以,Web安全通信架構(gòu)能夠完全抵抗竊聽攻擊。
⑤中間人攻擊。
假設中間人能成功潛伏到客戶端和服務端通信鏈路中監(jiān)聽出口數(shù)據(jù),但因無法破解國密知識產(chǎn)權(quán)授權(quán)的SM1的密文,其無法作為中間人正確響應。再者,Web服務端集成的OSCP所緩存的CA簽名證書信息,因為有CA簽名的安全性保證,中間人無法攻擊。
本小節(jié)從算法的比較測試和安全效率兩方面進行闡述。通過相關(guān)的數(shù)據(jù)指標,重點突出通信安全架構(gòu)的安全性、效率性。
為提高算法比較可靠性,本次測試平臺為DSP 138 VxWork平臺,硬件主頻100 MHz,TLS軟件實現(xiàn)版本為1.2??紤]到不同瀏覽器Http get的最大長度不同,存在2 KB和6 KB的限制區(qū)別,故本文選擇的算法測試長度分別為1 KB、10 KB、100 KB。
通過測試函數(shù)入口和出口的時間戳記錄,可以將二者的差值記為加密和解密時間。加密解密時間如表3所示。
通過表3的實測數(shù)據(jù)可知,隨著消息文本的增加,加密時間是遞增的,而非線性關(guān)系[17]。尤其是在消息文本較大時,更能凸顯國密SM1算法的優(yōu)勢。加密和解密算法時間基本持平,體現(xiàn)出算法的對稱性。按照Http get的一般數(shù)據(jù)量不超過2 KB計算,RC4和SM1硬軟件混合加密,能夠滿足Web訪問的安全性和訪問效率。
根據(jù)Web通信安全架構(gòu)設計,對配網(wǎng)終端PRS-3342 Web進行安全訪問驗證。其在密鑰協(xié)商層面體現(xiàn)效率優(yōu)勢。通信測試環(huán)境如圖7所示。
通過網(wǎng)絡協(xié)議嗅探器可知,密鑰的協(xié)商和分發(fā)過程僅僅需要6步即可順利完成,總字節(jié)長度在160 B。而相比于專家林楠和陳祚松方案的1 000 B傳輸長度,其提升了6倍的協(xié)商效率[18]。業(yè)務交互通過App data數(shù)據(jù)進行了端到端的加密,能夠發(fā)揮通信的機密性,防止竊聽。協(xié)議棧出口數(shù)據(jù)在國密硬核模塊進行二次加密,發(fā)揮了國際標準和國密標準安全的雙重屬性。
本文提出了受傳輸層和國密算法保護的Web通信安全架構(gòu)。該架構(gòu)基于對稱加密、非對稱加密理論,將國密算法和RFC標準算法深度融合,通過高效的密鑰協(xié)商和安全認證,分析、驗證了其安全性和高效性,提高了配網(wǎng)終端Web安全接入能力,保證了通信的完整性、安全性、不可抵賴性。同時,配網(wǎng)終端的批量化商用深受國外用戶的好評,為配網(wǎng)終端Web安全和儀表安全接入提供參考。