徐學(xué)東,季才偉
(1.長春工程學(xué)院機(jī)電學(xué)院,吉林長春,130012;2.長春易申軟件有限公司,吉林長春,130012)
基于國密算法的文件安全系統(tǒng)研究與實現(xiàn)
徐學(xué)東1,季才偉2
(1.長春工程學(xué)院機(jī)電學(xué)院,吉林長春,130012;2.長春易申軟件有限公司,吉林長春,130012)
針對網(wǎng)絡(luò)環(huán)境下電子文件的安全需求,研究基于國密算法的文件安全系統(tǒng)。提出C/S架構(gòu)的系統(tǒng)模型,針對公共信道交互的安全性問題,提出“新鮮性標(biāo)識符+挑戰(zhàn)應(yīng)答模式”的認(rèn)證及密碼協(xié)議方案,并完成了算法、密鑰體系安全性設(shè)計和產(chǎn)品開發(fā),目前已并通過了國密測試。
國密算法;公共信道;挑戰(zhàn)應(yīng)答模式;密鑰體系
重要電子文件傳輸、存儲等過程中存在非法訪問、竊取的風(fēng)險,需要通過密碼產(chǎn)品進(jìn)行保護(hù)。我國《商用密碼管理條例》規(guī)定,對信息進(jìn)行加密保護(hù)或認(rèn)證所使用的密碼技術(shù)和產(chǎn)品,只能使用經(jīng)國家密碼管理局審批認(rèn)定的商用密碼產(chǎn)品。商密產(chǎn)品必須基于國密商用算法,且需通過國密產(chǎn)品檢測獲得產(chǎn)品型號。
國密商用算法是指國密 SM 系列算法。在國密產(chǎn)品檢測中,除了應(yīng)用國密算法,基于PKI的加密體系,公共信道雙向認(rèn)證、算法和密鑰管理安全性和性能均有很高的要求。研究基于國密算法的電子文件安全系統(tǒng)的設(shè)計方案,確??尚耪J(rèn)證及無漏洞交互,達(dá)到國密產(chǎn)品檢測的要求。
網(wǎng)絡(luò)環(huán)境下,電子文件一般采取集中管理、分布使用的管理方式?;赟C/SS架構(gòu)模型,系統(tǒng)由服務(wù)端和客戶端構(gòu)成??傮w架構(gòu)如圖1。服務(wù)端負(fù)責(zé)用戶的身份認(rèn)證,權(quán)限控制,電子文件的加密存儲和行為審計??蛻舳素?fù)責(zé)文件的解密,監(jiān)控文件的使用。兩者共同完成用戶身份認(rèn)證、會話協(xié)商密鑰和客戶端系統(tǒng)的安全監(jiān)控、防破解功能。
系統(tǒng)的加解密環(huán)節(jié)則需要在服務(wù)端和客戶端分別實現(xiàn)。服務(wù)端密碼運(yùn)算采用國密局審批通過的SJK1238加密卡,負(fù)責(zé)與客戶端協(xié)商會話密鑰,驗證客戶端身份,對文檔進(jìn)行加解密。客戶端采用SJK1104 USBkey,負(fù)責(zé)與服務(wù)端協(xié)商會話密鑰時的數(shù)字簽名、通訊數(shù)據(jù)加解密及客戶端文檔解密。為確保性能及密鑰的安全性,密碼運(yùn)算采用硬件加密。具體算法為:公鑰密碼算法為SM2,雜湊算法為SM3,對稱密碼算法為SM4。
由于客戶端和安全服務(wù)器的交互必須通過公共信道,其安全設(shè)計至關(guān)重要。傳統(tǒng)通過公共信道實現(xiàn)基于本地身份的交互認(rèn)證問題的研究已經(jīng)較為深入。無密鑰的安全傳輸機(jī)制也取得一些成果。本設(shè)計的目標(biāo)是簡潔、高效、確保認(rèn)證防止內(nèi)部攻擊。
2.1新鮮性標(biāo)識符概念
基于細(xì)粒度新鮮性的認(rèn)證及密碼協(xié)議是通過公共信道交互的有效方案。其中新鮮性的概念是:協(xié)議運(yùn)行期間,新鮮性標(biāo)示符N在產(chǎn)生時間t0之間沒有被使用過。如果交互雙方都相信新鮮性標(biāo)識符重復(fù)概率很低,攻擊者在協(xié)議運(yùn)行期間找到一個使用過的標(biāo)識符是實踐上不可行的,則該新鮮性標(biāo)識符只有若干合法的主體擁有。
2.2基于新鮮性標(biāo)識符的挑戰(zhàn)應(yīng)答模式
挑戰(zhàn)應(yīng)答(Challenge/Response)模式是常用的認(rèn)證方式,就是每次認(rèn)證時認(rèn)證服務(wù)器端都給客戶端發(fā)送一個"挑戰(zhàn)"字串,客戶端程序收到這個"挑戰(zhàn)"字串后,做出相應(yīng)的"應(yīng)答",認(rèn)證服務(wù)器將應(yīng)答串與自己的計算結(jié)果比較,判斷是否通過認(rèn)證。根據(jù)Dolev-Yao模型,每次交互過程雙方均采用“新鮮性挑戰(zhàn)”字串,如加密算法完善,不同消息之間的格式不能相同,每個主體能區(qū)分消息是否是由自己產(chǎn)生,則基于該新鮮性標(biāo)識符進(jìn)行雙向認(rèn)證的過程就是安全的。
本系統(tǒng)客戶端與服務(wù)器通訊采用標(biāo)準(zhǔn)雙向認(rèn)證協(xié)議,使用挑戰(zhàn)應(yīng)答模式協(xié)商會話密鑰,交互雙方在交互過程中各產(chǎn)生一個新鮮性隨時數(shù),作為簽名驗證的標(biāo)識符。協(xié)商成功后通訊的數(shù)據(jù)均使用會話密鑰進(jìn)行加密。協(xié)商過程如下:
Step1 客戶端發(fā)送連接請求,服務(wù)器產(chǎn)生隨機(jī)數(shù)R1并向客戶端派發(fā)。
Step2 客戶端使用簽名私鑰對服務(wù)端返回的隨機(jī)數(shù)R1進(jìn)行簽名,并將簽名結(jié)果S1及客戶端簽名及加密證書發(fā)送給服務(wù)端,同時客戶端產(chǎn)生隨機(jī)數(shù)R2,將R2發(fā)送到服務(wù)端。
Step3 服務(wù)端使用客戶端發(fā)送的簽名公鑰證書及服務(wù)端本地的隨機(jī)數(shù)R1驗證S1是否正確,驗證成功后使用CA根證書驗證簽名證書本身的簽名有效性,成功后繼續(xù)驗證簽名證書是否注冊,成功后完成身份認(rèn)證。
Step4 服務(wù)端使用根密鑰中的私鑰對客戶端送上的隨機(jī)數(shù)R2進(jìn)行簽名,得到簽名結(jié)果S2,同時產(chǎn)生SM4通訊會話密鑰SSK,并將SSK使用客戶端送上來的加密公鑰證書進(jìn)行加密,將加密后的SSK及S2返回到客戶端。
Step5 客戶端收到S2及加密后的SSK,使用客戶端安裝好的服務(wù)器根公鑰及本地產(chǎn)生的R2驗證S2簽名的有效性,驗證成功后使用加密私鑰解密SSK,得到會話密鑰,至此身份認(rèn)證及密鑰協(xié)商過程完成。
分析該協(xié)商過程的安全性,在每次認(rèn)證過程中,該協(xié)商過程進(jìn)行2輪基于新鮮性標(biāo)識符的簽名認(rèn)證。即便是有內(nèi)部人員盜取用戶身份校驗日志,由于日志不存儲新鮮隨機(jī)數(shù),可以有效阻止惡意內(nèi)部用戶的攻擊行為。
為提高加密強(qiáng)度,本系統(tǒng)采用多算法多層次加密。SM2作為公鑰算法,在本系統(tǒng)內(nèi)完成密鑰生成、SM4對稱密鑰導(dǎo)入、SM2公鑰/私鑰運(yùn)算、SM2 算法簽名/驗證、文件加密/解密,摘要算法使用SM3,對稱加密算法使用SM4。SJK1238密碼卡負(fù)責(zé)服務(wù)端密碼運(yùn)算,算法固化在硬件芯片中,根密鑰不出卡;應(yīng)用中,SM2密鑰對是在USB Key內(nèi)生成的,私鑰永遠(yuǎn)不能導(dǎo)出。USB Key插入計算機(jī),并且同時驗證PIN碼后才能使用私鑰進(jìn)行簽名。
(1)公、私鑰運(yùn)算
服務(wù)端使用SJK1238密碼卡實現(xiàn)SM2公、私鑰運(yùn)算,使用預(yù)先存儲在密碼模塊內(nèi)的第1對密鑰,加密運(yùn)算時輸入原文,密碼卡塊輸出密文;驗證簽名時輸入簽名結(jié)果及原文,密碼卡出輸驗簽結(jié)果,運(yùn)算過程均在卡內(nèi)進(jìn)行??蛻舳耸褂肧JK1104 USBKey實現(xiàn)SM2公、私鑰運(yùn)算,Key內(nèi)存儲用戶證書及密鑰對,運(yùn)算過程均在Key內(nèi)進(jìn)行。
(2)文件加/解密
為提高加解密效率,文件數(shù)據(jù)加/解密使用SM4對稱密碼算法,服務(wù)端由密碼卡加密,送入對稱密鑰及明文,輸出密文;解密時送入對稱密鑰及密文,輸出明文;客戶端由USBKey進(jìn)行數(shù)據(jù)加解密,加密時送入對稱密鑰及明文,輸出密文;解密時送入對稱密鑰及密文,輸出明文。
為支持“權(quán)限分散、多人共管”的管理策略,我們設(shè)計了分層次多級密鑰體系:系統(tǒng)根密鑰、系統(tǒng)主密鑰、文件保護(hù)密鑰、用戶證書密鑰和通訊會話密鑰。電子文件通過文件保護(hù)密鑰(FEK)加密保護(hù)。FEK通過系統(tǒng)主密鑰(PEK)加密對文件路徑加密后產(chǎn)生,F(xiàn)EK在系統(tǒng)內(nèi)不存儲,每次使用時臨時產(chǎn)生。系統(tǒng)主密鑰(PEK)通過根密鑰(REK)加密保護(hù)。系統(tǒng)根密鑰(REK)與客戶端用戶證書密鑰(UCK)進(jìn)行密鑰協(xié)商,產(chǎn)生通訊會話密鑰(SSK)進(jìn)行數(shù)據(jù)傳輸加密。其密鑰關(guān)系圖如2所示。
圖2 密鑰關(guān)系圖
系統(tǒng)具體實現(xiàn)的流程包括系統(tǒng)初始化,文件上傳加密,服務(wù)端文件查詢,文件下載及本地安全打開,文件刪除及用戶管理等。下面以文件下載解密流程為例介紹系統(tǒng)實現(xiàn)流程。
Step1:客戶端和安全服務(wù)器進(jìn)行基于新鮮性標(biāo)識符的認(rèn)證和密鑰協(xié)商過程。建立可信的握手。
Step2:用戶通過文件列表選擇下載文檔,系統(tǒng)把密文下載到客戶端,通過用戶私鑰進(jìn)行對文檔的解密操作,調(diào)用文檔默認(rèn)應(yīng)用程序進(jìn)行查看。該文檔只能由下載者自身的USB Key中的加密私鑰進(jìn)行解密后才可以讀取。
Step3:文件下載時直接將服務(wù)端的密文寫到本地,并將從服務(wù)端返回的經(jīng)客戶端加密公鑰加密的文件保護(hù)密鑰(FEK)寫入密文文件頭中。用戶使用文件時,選擇解密功能,客戶端程序使用Key中加密私鑰解密文件保護(hù)密鑰(FEK),再用FEK解密文件,得到文件明文。
確保網(wǎng)絡(luò)環(huán)境下電子文件的安全性一直是研究的熱點(diǎn)。本文設(shè)計了一個基于網(wǎng)絡(luò)的文件安全加密系統(tǒng),該系統(tǒng)采用國密SM算法,在公共信道中基于新鮮性標(biāo)識符和挑戰(zhàn)應(yīng)答模式建立了可信的信息交換。通過限制密碼運(yùn)算在硬件實現(xiàn),多密鑰體系、身份認(rèn)證、分權(quán)管理確保系統(tǒng)的安全性。該成果與某商密生產(chǎn)定點(diǎn)企業(yè)合作,已通過了國密局的產(chǎn)品評測,獲得產(chǎn)品型號。在后續(xù)工作中,我們還將進(jìn)行性能的優(yōu)化提升,使其盡快在國內(nèi)推廣應(yīng)用。
[1]徐學(xué)東、季才偉.基于一種遠(yuǎn)端執(zhí)行模型的文檔安全系統(tǒng)[J].長春工程學(xué)院學(xué)報(自然科學(xué)版).2011.1(12).110-113
[2]崔維, 張國山,李暉.一種輕量級的動態(tài)化密鑰協(xié)商的物聯(lián)網(wǎng)身份認(rèn)證協(xié)議研究[J].計算機(jī)應(yīng)用研究.2016.2(33).531-539
[3] 程正杰、陳克非、來學(xué)嘉.基于細(xì)粒度新鮮性的密碼協(xié)議分析[J].中國密碼學(xué)會2010年會論文集, 2010,
Research on the file security system based on the National commercial cipher algorithm
Xu Xuedong1,Ji Caiwei2
(1.School of Mechanical&Electrical Engineering Changchun institute of Technology,ChangChun,130012;2.Changchun E-sun Software Co.,ChangChun,130012)
According to the security requirement of the electronic file in the network environment,Analysis the file security system based on the national commercial cipher algorithm. Present C/S structure of the system model, “the fresh identifier + challenge response mode”authentication and cryptographic protocol is put forward to solve the problem of the safety of public channel interaction,and gives the algorithm and key security system design and specific implementation process.At present, has passed the testing of National commercial cipher algorithm.
National commercial cipher algorithm;Common channel;Challenge response mode;Key system
徐學(xué)東(1976-),男(漢),安徽阜南人,副教授,碩士,主要研究領(lǐng)域為過程控制,信息安全;
吉林省科技攻關(guān)計劃項目(20140204060SF);吉林省教育廳科研規(guī)劃項目(吉教科合字[2014]第337號)