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