葛 春 項兆軍 宋洪娟等
摘 要:分析信息安全防護現狀,提出基于網絡的系統密鑰加密機制,在加密與eKey模塊應用設計基礎上,研制一種密鑰安全獲取通信協議,實現了密鑰的安全管理,設計了縝密的加解密流程,使得文件只能被特定網絡環境下合法的用戶所存取,從整體上達到了信息主動防泄密安全防護的目的。
關鍵詞:主動防泄密;加密;eKey;系統密鑰
中圖分類號:TP393
加強網絡信息安全既要防范外部人員非法介入或竊取信息,更要防范內部人員的主動泄密。根據美國聯邦調查局(FBI)和計算機安全機構(CSI)的調查結果顯示,80%以上的安全威脅來自內部;中國國家信息安全測評認證中心調查結果也表明,信息安全問題主要來自泄密和內部人員犯罪。
為了實現涉密文件的安全主動防護,在此提出基于網絡的系統密鑰加密機制,利用系統密鑰加密文件數據,使文件只能被特定網絡環境下的合法用戶所存取。在此將在密碼技術研究和eKey開發應用基礎上,設計一種密鑰安全獲取通信協議,研制一種嚴密的密鑰安全管理措施,實現基于網絡的主動防泄密文件加密。
1 加密與eKey模塊應用設計
1.1 加密算法選擇
對稱密碼技術也被稱為單密鑰加密,它是指在加密與解密時使用同一密鑰。對稱密碼技術的優點在于效率高,算法簡單,系統開銷小,適合加密大量數據。
非對稱密碼技術也被稱作公鑰密碼技術,在加解密時分別使用兩個不同密鑰:一個可對外界公開,稱為“公鑰”;一個只有所有者知道,稱為“私鑰”。公鑰與私鑰之間緊密聯系,用公鑰加密的信息只能用相應的私鑰解密,反之亦然。非對稱密碼技術可提供安全認證服務,其主要缺點是加/解密速度慢、耗用資源大。因此,采取綜合運用對稱密碼技術與非對稱密碼技術的加解密方案。
鑒于AES對稱密碼算法具有高強度安全性能,故選用AES算法實現涉密文件數據的加密。由于用戶認證信息與密鑰信息數據相對較小,選用非對稱密碼RSA算法實現系統對用戶的合法認證,以及系統密鑰的安全獲取。
1.2 eKey的應用開發
eKey又名電子密碼鑰匙,是一種結合了智能卡技術與USB接口技術的數據安全產品。這里選用明華公司的eKey,其內置SmartCOS[CD*2]XC智能卡操作系統,在文件系統、密碼算法和安全控制三方面都進行了精心設計,具有高效完備的安全訪問機制[3]。
本文使用eKey來存儲用戶密鑰、系統公鑰、系統密鑰惟一的ID號及其他重要數據。為了實現對數據的加密與認證操作,基于明華提供的接口函數庫開發了eKey應用函數庫(eKey.dll)。該函數庫可實現與eKey有關的系統操作,包括密鑰生成、加密簽名等。┍1列出了eKey.dll 函數庫封裝的主要方法,本文對其編程實現不再贅述。
方法功能說明
EncryptWithCert()使用eKey內公鑰證書中的用戶公鑰加密數據
EncryptWithKey()使用eKey內用戶私鑰加密數據
DncryptWithKey()使用eKey內用戶私鑰解密數據
GenKey() eKey內生成加密或簽名密鑰對
GetEKeyID()從eKey中獲得其惟一的序列號
GenAesKey()eKey硬件中隨機產生256位AES算法密鑰
2 密鑰安全獲取通信協議
為保證只有通過合法身份認證的用戶才能得到系統密鑰SK(System Key),在此設計了一種密鑰安全獲取通信協議。該協議首先通過檢測用戶eKey的序列號,并與用戶注冊的eKey序列號相比較來實現用戶合法性判斷,然后通過系統密鑰SK的ID號,來正確獲取每個涉密文件對應的系統密鑰SK。用戶在服務器端注冊時將其eKey惟一的序列號與用戶身份綁定,并使用此序列號作為初始值生成密鑰EK,再使用EK加密SK,得到EK{SK},并將其保存于系統密鑰數據庫中。在客戶端,用戶只有插入合法的eKey,讀出相應的序列號,才能解密EK{SK},從而得到SK。協議的流程圖如圖1所示,其實現過程為:
(1) 用戶C首先調用函數GetEKeyID()獲得其eKey的序列號Ei;再調用函數EncryptWithKey()通過自己的私鑰SKc加密用戶名和Ei;得到SKc{Username,Ei};然后用S的公鑰PKs加密SKc{Username,Ei}得到PKs{SKc{Username,Ei}},并將其發送給服務器; (2) 服務器S接收到PKs{SKc{Username,Ei}}后,用其私鑰SKs和C的公鑰PKc依次進行解密,得到用戶名Username和eKey序列號Ei。通過對比服務器端數據庫中存儲的用戶信息和從用戶端接收到的用戶信息,判斷用戶的合法性。S產生一個表示是否通過認證的ACK信號,并生成一個隨機數Rc,分別用S的私鑰SKs和C的公鑰PKc雙重加密ACK和Rc得到PKc{SKs{ACK,Rc}},并發送給C;
(3) C解密雙重加密的密文分組PKc{SKs{ACK,Rc}},得到ACK信號和隨機數Rc,若ACK信號表示通過認證,以Rc為密鑰加密系統密鑰SK惟一的ID號,再用S的公鑰PKs加密Rc{ID}得到PKs{Rc{ID}},并發送給服務器;
(4) S用其私鑰SKs和隨機數Rc依次解密PKs{Rc{ID}}得到系統密鑰SK惟一的ID,并通過查找數據庫密鑰信息獲得系統密鑰SK的密文EK{SK},再用C的公鑰PKc加密此密鑰數據得到PKc{EK{SK}},并發送到C。
協議通過每一步中基于公鑰算法的加密與解密保證了用戶合法性判斷;基于eKey惟一序列號的身份認證,保證非法用戶無法通過其他eKey得到系統密鑰SK;基于EK的加密存儲保證了系統密鑰的存儲安全,協議從整體上保證了系統密鑰獲取的安全性。
3 密鑰安全管理
采用密碼技術保護信息時,對密鑰的保護非常重要。密碼體制可以公開,然而一旦密鑰丟失或出錯,對系統安全造成極大威脅。因此,基于網絡的涉密文件加密存儲必須加強服務器公私鑰、用戶公私鑰,特別是系統密鑰SK的安全管理。
3.1 系統公私鑰的安全管理
系統初始化安裝時服務器通過應用程序生成自己的公鑰對,并將公鑰以公開的方式分發給所有用戶。用戶將得到的服務器公鑰復制到自己的eKey或密鑰文件夾中,再利用服務器公鑰完成與服務器之間傳送保密信息的操作。為了保證系統安全性,系統應定期更新服務器公鑰對,并加密存儲服務器私鑰。
3.2 eKey公私鑰的安全管理
用戶通過eKey并調用GenKey()函數接口產生用戶的公鑰對,并向服務器傳送用戶公鑰。發送信息時用服務器的公鑰加密,接收信息時用自己的私鑰解密。用戶私鑰存儲在eKey中且不可讀,保證了用戶密鑰的安全性。
3.3 系統密鑰SK的安全管理
實現主動防泄密既要保證密鑰數據的安全存儲,還要保證合法用戶能通過身份認證獲得解密密鑰(系統密鑰SK)。每一個涉密文件對應一個加密密鑰,加密密鑰是由服務器端密鑰中心通過硬件隨機產生的256位AES密鑰,通過ID編號處理后,使用EK加密得到EK{SK},最后存儲到密鑰數據庫。合法用戶獲取系統密鑰SK是基于上一節提出的“密鑰安全獲取通信協議”實現的。
4 基于網絡的涉密文件加解密
4.1 基于網絡加解密流程
文件加密時首先以系統密鑰SK為加密密鑰,通過AES算法加密原文件,得到文件加密數據,再將系統密鑰SK的ID號寫入文件頭,與文件加密數據組成加密后的涉密文件。
文件解密時,首先讀出文件頭,獲得系統密鑰SK的ID號,并通過ID號在密鑰數據庫中查找對應的〦K{SK}。然后檢測用戶eKey的序列號,并與用戶注冊信息相比較,若相同則通過認證,服務器將{EK{SK}}發送到用戶端。用戶端以其eKey的序列號為初始值生成EK,使用EK解密EK{SK},獲得系統密鑰SK(文件解密密鑰),最后使用系統密鑰SK通過AES算法解密涉密文件。涉密文件基于網絡的加密與解密流程如┩2所示。
4.2 涉密文件加解密的實現
基于網絡的涉密文件加解密,涉及服務器端數據庫信息管理、數據通信以及各種算法的加解密操作。系統分別定義了CUserSet類、CFileSet類和CKeySet類來[LL]實現對用戶信息、文件信息和密鑰信息的操作;系統基于TCP/IP協議,采用Windows sockets API建立Windows環境與網絡之間的編程接口,實現服務器端與用戶端的數據通信。文件加密操作的相關函數主要有:
AES加密算法是分組算法,加密時以16 B為單位進行分塊加密[6],本文在實現中使用CBC分組鏈接模式對16 B的數據塊進行處理,對其算法原理和實現代碼不再贅述。
5 安全性分析
在選用高強度AES加密算法加密涉密文件數據;充分利用eKey的安全特性和密碼服務;設計嚴密的系統密鑰安全獲取協議;實現了密鑰的安全管理;設計了縝密的加解密流程,使得文件只能被特定網絡環境下合法的用戶所存取,從整體上達到了高安全性的主動防泄密目的。
參 考 文 獻
[1]Lawrence A Gordon.2005 CSI/FBI Computer Crime and Security Survey[R].Computer Security Institute,2005.
[2]韓君.基于USB Key的Windows身份認證與訪問控制研究[D].武漢:武漢大學,2004.
[3]eKey用戶手冊[EB/OL].http://www.mwcard.com,2008.
[4]劉亞坤.網絡文件加密系統的設計與實現[D].秦皇島:燕山大學,2003.
[5]尚玉蓮.基于信息安全的密鑰分配與密鑰存儲研究[D].濟南:山東大學,2005.
[6]朱金修.基于FPGA技術的高性能AES_CBC算法的實現研究[D].長沙:國防科學技術大學,2004.
[HJ0][HJ]
作者簡介 葛 春 男,1984年出生,第二炮兵青州士官學校計算機室,教員,碩士研究生。研究方向為網絡數據庫與信息技術。
項兆軍 男,1963年出生,第二炮兵青州士官學校,主任,副教授。研究方向為導彈制導與自控。
宋洪娟 女,1983年出生,第二炮兵青州士官學校教員,碩士研究生。研究方向為網絡工程與信息管理系統。