徐學東,季才偉
(1.長春工程學院機電學院,吉林長春,130012;2.長春易申軟件有限公司,吉林長春,130012)
基于國密算法的文件安全系統研究與實現
徐學東1,季才偉2
(1.長春工程學院機電學院,吉林長春,130012;2.長春易申軟件有限公司,吉林長春,130012)
針對網絡環境下電子文件的安全需求,研究基于國密算法的文件安全系統。提出C/S架構的系統模型,針對公共信道交互的安全性問題,提出“新鮮性標識符+挑戰應答模式”的認證及密碼協議方案,并完成了算法、密鑰體系安全性設計和產品開發,目前已并通過了國密測試。
國密算法;公共信道;挑戰應答模式;密鑰體系
重要電子文件傳輸、存儲等過程中存在非法訪問、竊取的風險,需要通過密碼產品進行保護。我國《商用密碼管理條例》規定,對信息進行加密保護或認證所使用的密碼技術和產品,只能使用經國家密碼管理局審批認定的商用密碼產品。商密產品必須基于國密商用算法,且需通過國密產品檢測獲得產品型號。
國密商用算法是指國密 SM 系列算法。在國密產品檢測中,除了應用國密算法,基于PKI的加密體系,公共信道雙向認證、算法和密鑰管理安全性和性能均有很高的要求。研究基于國密算法的電子文件安全系統的設計方案,確保可信認證及無漏洞交互,達到國密產品檢測的要求。
網絡環境下,電子文件一般采取集中管理、分布使用的管理方式。基于SC/SS架構模型,系統由服務端和客戶端構成。總體架構如圖1。服務端負責用戶的身份認證,權限控制,電子文件的加密存儲和行為審計。客戶端負責文件的解密,監控文件的使用。兩者共同完成用戶身份認證、會話協商密鑰和客戶端系統的安全監控、防破解功能。
系統的加解密環節則需要在服務端和客戶端分別實現。服務端密碼運算采用國密局審批通過的SJK1238加密卡,負責與客戶端協商會話密鑰,驗證客戶端身份,對文檔進行加解密。客戶端采用SJK1104 USBkey,負責與服務端協商會話密鑰時的數字簽名、通訊數據加解密及客戶端文檔解密。為確保性能及密鑰的安全性,密碼運算采用硬件加密。具體算法為:公鑰密碼算法為SM2,雜湊算法為SM3,對稱密碼算法為SM4。
由于客戶端和安全服務器的交互必須通過公共信道,其安全設計至關重要。傳統通過公共信道實現基于本地身份的交互認證問題的研究已經較為深入。無密鑰的安全傳輸機制也取得一些成果。本設計的目標是簡潔、高效、確保認證防止內部攻擊。
2.1新鮮性標識符概念
基于細粒度新鮮性的認證及密碼協議是通過公共信道交互的有效方案。其中新鮮性的概念是:協議運行期間,新鮮性標示符N在產生時間t0之間沒有被使用過。如果交互雙方都相信新鮮性標識符重復概率很低,攻擊者在協議運行期間找到一個使用過的標識符是實踐上不可行的,則該新鮮性標識符只有若干合法的主體擁有。
2.2基于新鮮性標識符的挑戰應答模式
挑戰應答(Challenge/Response)模式是常用的認證方式,就是每次認證時認證服務器端都給客戶端發送一個"挑戰"字串,客戶端程序收到這個"挑戰"字串后,做出相應的"應答",認證服務器將應答串與自己的計算結果比較,判斷是否通過認證。根據Dolev-Yao模型,每次交互過程雙方均采用“新鮮性挑戰”字串,如加密算法完善,不同消息之間的格式不能相同,每個主體能區分消息是否是由自己產生,則基于該新鮮性標識符進行雙向認證的過程就是安全的。
本系統客戶端與服務器通訊采用標準雙向認證協議,使用挑戰應答模式協商會話密鑰,交互雙方在交互過程中各產生一個新鮮性隨時數,作為簽名驗證的標識符。協商成功后通訊的數據均使用會話密鑰進行加密。協商過程如下:
Step1 客戶端發送連接請求,服務器產生隨機數R1并向客戶端派發。
Step2 客戶端使用簽名私鑰對服務端返回的隨機數R1進行簽名,并將簽名結果S1及客戶端簽名及加密證書發送給服務端,同時客戶端產生隨機數R2,將R2發送到服務端。
Step3 服務端使用客戶端發送的簽名公鑰證書及服務端本地的隨機數R1驗證S1是否正確,驗證成功后使用CA根證書驗證簽名證書本身的簽名有效性,成功后繼續驗證簽名證書是否注冊,成功后完成身份認證。
Step4 服務端使用根密鑰中的私鑰對客戶端送上的隨機數R2進行簽名,得到簽名結果S2,同時產生SM4通訊會話密鑰SSK,并將SSK使用客戶端送上來的加密公鑰證書進行加密,將加密后的SSK及S2返回到客戶端。
Step5 客戶端收到S2及加密后的SSK,使用客戶端安裝好的服務器根公鑰及本地產生的R2驗證S2簽名的有效性,驗證成功后使用加密私鑰解密SSK,得到會話密鑰,至此身份認證及密鑰協商過程完成。
分析該協商過程的安全性,在每次認證過程中,該協商過程進行2輪基于新鮮性標識符的簽名認證。即便是有內部人員盜取用戶身份校驗日志,由于日志不存儲新鮮隨機數,可以有效阻止惡意內部用戶的攻擊行為。
為提高加密強度,本系統采用多算法多層次加密。SM2作為公鑰算法,在本系統內完成密鑰生成、SM4對稱密鑰導入、SM2公鑰/私鑰運算、SM2 算法簽名/驗證、文件加密/解密,摘要算法使用SM3,對稱加密算法使用SM4。SJK1238密碼卡負責服務端密碼運算,算法固化在硬件芯片中,根密鑰不出卡;應用中,SM2密鑰對是在USB Key內生成的,私鑰永遠不能導出。USB Key插入計算機,并且同時驗證PIN碼后才能使用私鑰進行簽名。
(1)公、私鑰運算
服務端使用SJK1238密碼卡實現SM2公、私鑰運算,使用預先存儲在密碼模塊內的第1對密鑰,加密運算時輸入原文,密碼卡塊輸出密文;驗證簽名時輸入簽名結果及原文,密碼卡出輸驗簽結果,運算過程均在卡內進行。客戶端使用SJK1104 USBKey實現SM2公、私鑰運算,Key內存儲用戶證書及密鑰對,運算過程均在Key內進行。
(2)文件加/解密
為提高加解密效率,文件數據加/解密使用SM4對稱密碼算法,服務端由密碼卡加密,送入對稱密鑰及明文,輸出密文;解密時送入對稱密鑰及密文,輸出明文;客戶端由USBKey進行數據加解密,加密時送入對稱密鑰及明文,輸出密文;解密時送入對稱密鑰及密文,輸出明文。
為支持“權限分散、多人共管”的管理策略,我們設計了分層次多級密鑰體系:系統根密鑰、系統主密鑰、文件保護密鑰、用戶證書密鑰和通訊會話密鑰。電子文件通過文件保護密鑰(FEK)加密保護。FEK通過系統主密鑰(PEK)加密對文件路徑加密后產生,FEK在系統內不存儲,每次使用時臨時產生。系統主密鑰(PEK)通過根密鑰(REK)加密保護。系統根密鑰(REK)與客戶端用戶證書密鑰(UCK)進行密鑰協商,產生通訊會話密鑰(SSK)進行數據傳輸加密。其密鑰關系圖如2所示。

圖2 密鑰關系圖
系統具體實現的流程包括系統初始化,文件上傳加密,服務端文件查詢,文件下載及本地安全打開,文件刪除及用戶管理等。下面以文件下載解密流程為例介紹系統實現流程。
Step1:客戶端和安全服務器進行基于新鮮性標識符的認證和密鑰協商過程。建立可信的握手。
Step2:用戶通過文件列表選擇下載文檔,系統把密文下載到客戶端,通過用戶私鑰進行對文檔的解密操作,調用文檔默認應用程序進行查看。該文檔只能由下載者自身的USB Key中的加密私鑰進行解密后才可以讀取。
Step3:文件下載時直接將服務端的密文寫到本地,并將從服務端返回的經客戶端加密公鑰加密的文件保護密鑰(FEK)寫入密文文件頭中。用戶使用文件時,選擇解密功能,客戶端程序使用Key中加密私鑰解密文件保護密鑰(FEK),再用FEK解密文件,得到文件明文。
確保網絡環境下電子文件的安全性一直是研究的熱點。本文設計了一個基于網絡的文件安全加密系統,該系統采用國密SM算法,在公共信道中基于新鮮性標識符和挑戰應答模式建立了可信的信息交換。通過限制密碼運算在硬件實現,多密鑰體系、身份認證、分權管理確保系統的安全性。該成果與某商密生產定點企業合作,已通過了國密局的產品評測,獲得產品型號。在后續工作中,我們還將進行性能的優化提升,使其盡快在國內推廣應用。
[1]徐學東、季才偉.基于一種遠端執行模型的文檔安全系統[J].長春工程學院學報(自然科學版).2011.1(12).110-113
[2]崔維, 張國山,李暉.一種輕量級的動態化密鑰協商的物聯網身份認證協議研究[J].計算機應用研究.2016.2(33).531-539
[3] 程正杰、陳克非、來學嘉.基于細粒度新鮮性的密碼協議分析[J].中國密碼學會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
徐學東(1976-),男(漢),安徽阜南人,副教授,碩士,主要研究領域為過程控制,信息安全;
吉林省科技攻關計劃項目(20140204060SF);吉林省教育廳科研規劃項目(吉教科合字[2014]第337號)