用智能卡與文件訪問控制技術為OA安全加把鎖
文章出處:http://bookmouse.cn 作者:展召磊 趙華偉 褚東升 施鵬 人氣: 發(fā)表時間:2011年10月09日
OA系統(tǒng)的高效性受到越來越多的關注,企業(yè)和政府對它的依賴性逐漸提高。但是由于互聯(lián)網(wǎng)的開放性以及用戶對內(nèi)網(wǎng)的安全性缺乏足夠的重視,OA系統(tǒng)面臨的安全問題也日益嚴重。
目前大多數(shù)OA 系統(tǒng)采用用戶名/密碼方式實現(xiàn)身份認證,口令通過互聯(lián)網(wǎng)傳輸時,很容易被一些黑客軟件通過網(wǎng)絡監(jiān)聽獲得,由于用戶名密碼強度有限,很容易被破解。另外,信息在傳輸過程中,尤其是一些機密信息,一旦被竊聽,將對整個機構造成很大的影響;OA系統(tǒng)中的存儲的文件,由于缺乏足夠的安全措施,使得入侵者能夠很容易的獲得機密文件。針對OA系統(tǒng)的安全性問題,目前安全性高的OA廠商普遍采用USBKEY認證的方式來實現(xiàn)身份驗證,同時采用SSL協(xié)議來實現(xiàn)傳輸過程中的安全性,但是這種方式,降低了OA的效率,同時,由于消息以明文的方式,無法防止進入后臺數(shù)據(jù)庫的攻擊。對于OA系統(tǒng)中文件的安全性問題,尤其在B/S 架構下,還沒有得到足夠重視。
1、安全OA模型
針對以上安全性問題,設計了一個安全OA模型。該模型采用數(shù)字加密、數(shù)字簽名、智能卡等PKI技術,同時結合訪問控制技術來設計完成。而且,引入了一個可信的安全密鑰服務器(security key server,SKS),這個服務器主要作用是負責用戶身份認證和文件密鑰的生成和分發(fā),需要注意的是這里的身份認證和文件密鑰都是同一個對稱密鑰。
1.1基礎技術簡介
數(shù)字加密技術主要分為對稱加密和非對稱加密兩種。對稱加密使用私有密鑰(也稱為對稱密鑰)對信息進行加密,加密和解密信息時使用同一個密鑰,典型代表是DES算法,優(yōu)勢是加密速度快,但密鑰分發(fā)復雜。與對稱加密不同,公開密鑰加密法的基本特點是加密與解密的密鑰是不同的,它基于于公鑰密碼體制,典型算法為RSA加密算法,優(yōu)點為安全性高。在實際應用中可利用二者的各自優(yōu)點,采用對稱加密系統(tǒng)加密文件,采用公開密鑰加密系統(tǒng)加密“加密文件”的密鑰(會話密鑰),這就是混合加密系統(tǒng),它較好地解決了運算速度問題和密鑰分配管理問題。
數(shù)字簽名及驗證技術:數(shù)字簽名解決的是文件傳輸中的有效性、防止篡改性和收發(fā)不可抵賴性問題。所謂數(shù)字簽名就是信息發(fā)送者用其私鑰對從所傳報文中提取出的數(shù)字摘要進行RSA算法加密操作,當信息接收者收到報文后,就可以用發(fā)送者的公鑰對數(shù)字簽名進行驗證。
智能卡技術:智能卡中集成了微處理器,只讀存儲器,隨機存儲器,電可擦除存儲器,1/0驅(qū)動幾大部分。其中微處理器是整個芯片的核心,完成計算任務;只讀存儲器用于存放預置的程序代碼,一般為微操作系統(tǒng);隨機存儲器是作為運算時的暫存數(shù)據(jù),存放如命令參數(shù)、返回結果、臨時工作密鑰等數(shù)據(jù);電可擦除存儲器則完成用戶數(shù)據(jù)的存儲,如用戶私鑰等。具有快速運算、存儲量大、安全性高以及難以破譯和偽造等特點。
1.2安全OA 模型設計
安全OA體系模型(如圖1所示)主要包括3個部分:身份認證模塊設計模塊,信息安全傳輸模塊,文件安全訪問模塊。用戶登錄模塊,結合MD5分組變換技術,采用服務器、客戶端應答模式實現(xiàn)完成用戶的身份認證;信息傳輸模塊利用智能卡內(nèi)部存儲的數(shù)字證書以及產(chǎn)生的內(nèi)部隨機密鑰,采用混合加密方式,保證信息傳遞過程的完整性與機密性;文件訪問控制模塊,通過采取利用文件密鑰,分組加密以及結合訪問控制模塊實現(xiàn)文件加密,保證文件的安全性。
1.2.1身份認證模塊設計
該模塊仍然采用的是“用戶名/口令”的認證方式,但其與傳統(tǒng)的區(qū)別是本模塊對口令進行 MD5分組變換處理,同時結合服務器,客戶端應答模式,選擇SKS產(chǎn)生的身份認證密鑰作為會話密鑰,這樣既可以保證安全性又可以克服使用SSL協(xié)議實現(xiàn)身份認證的效率問題。其實現(xiàn)過程如下:
(1)用戶向服務器發(fā)送登錄請求,服務器產(chǎn)生隨機數(shù)Random,并將其發(fā)送給客戶端;
(2)對口令進行MD5運算,得到初級密文FEM=MD5(password);
(3)對初級密文進行分組處理,然后分別對每~分組進行MD5運算,假設共有n個分組,則得到分組密文G1,G2,...,Gn;
(4)將分組密文 G1,G2,...,Gm,...,Gn,組合成一個新的字符串L,并再次對字符串進行MD5運算,得到一個最終分組密文GEM,用戶注冊的時候?qū)⒎纸M密文GEM存放到數(shù)據(jù)庫中;
(5)客戶端獲得random,利用智能卡中儲存的身份認證密鑰進行加密,最后做一次MD5運算,得到最終密文LEM,并將其發(fā)送給服務器端。
用戶實現(xiàn)登錄的時候,客戶端通過上述操作得到最終密文LEM;而服務器從數(shù)據(jù)庫中提取密文 GEM,然后對random進行解密,得到密文LEM”,兩者進行比較,假如LEM”=LEM,則通過驗證;否則,驗證失敗,服務器拒絕。
1.2.2信息安全傳輸模塊設計
本模塊采用基于數(shù)字證書的混合加密模式和數(shù)字簽名技術來保證信息傳遞的完整性,保密性與不可抵賴性。同時,加密過程中,對稱密鑰的產(chǎn)生,信息加解密以及數(shù)字簽名的實現(xiàn)都在智能卡內(nèi)部完成。
信息加密采用數(shù)字信封形式實現(xiàn),采用DES和RSA算法,首先利用智能卡內(nèi)部產(chǎn)生的對稱密鑰使用DES算法對信息進行加密,然后利用RSA算法對加密后的對稱密鑰進行加密,形成數(shù)字信封,采用SHA_1和數(shù)字證書私鑰利用RSA算法對信息進行數(shù)字簽名,而數(shù)字信封的解密與驗證,則采用與加密、簽名相逆的運算完成,具體過程如下:
信息加密和數(shù)字簽名實現(xiàn)(如圖2所示)。
(1)對要發(fā)送的明文,利用智能卡中存儲的數(shù)字證書的私鑰完成數(shù)字簽名DS;
(2)發(fā)送者利用智能卡內(nèi)部產(chǎn)生的對稱密鑰,在智能卡內(nèi)部完成加密運算,得到密文E;
(3)發(fā)送者利用接收者的數(shù)字證書的公開密鑰加密對稱密鑰SK形成數(shù)字信封DE;
(4)將密文E和數(shù)字信封DE一塊發(fā)送給接收者。信息解密與簽名驗證過程(如圖3所示):接收者利用智能卡內(nèi)置的解密芯片完成數(shù)字信封的拆解,得到對稱密鑰SK。
接收者利用接收者的數(shù)字證書公開密鑰驗證數(shù)字簽名。
1.2.3文件安全訪問模塊設計
由于OA系統(tǒng)中上傳的文件需要共享,所以利用數(shù)字證書混合方式加密的方式不能滿足文件分發(fā)的需要,故利用SKS產(chǎn)生的相關對稱密鑰在智能卡內(nèi)部完成相關操作,既增加了安全性,相對于公鑰體系又增加了加密效率。
對于用戶要進行上傳的文件,利用智能卡內(nèi)部產(chǎn)生的隨機對稱密鑰(random security key,RSK)在智能卡內(nèi)部完成對文件的加密,而對于RSK則利用SKS產(chǎn)生的文件加密密鑰(file encryptionkey,F(xiàn)EK)進行加密,F(xiàn)EK也是對稱密鑰,只有對用戶用讀寫權限的用戶才能獲得FEK。而對于整個文件采用Hash運算,并且用文件簽名密鑰(file signkey,F(xiàn)SK)加密后放到訪問控制模塊當中。只有對文件具有寫權限的文件才具有權限獲得FSK。
每個文件還對應一個訪問控制模塊,用于控制授權用戶對FEK和FSK的獲得。訪問控制模塊包含加密后的RSK,訪問控制屬性(哪些用戶具有何種權限),以及訪問控制模塊的完整性標識,這里的完整性標識是一種密鑰消息認證碼,這種完整性標識由SKS產(chǎn)生的安全簽名密鑰(security sign key,SSK)來維護的,從而防止非法用戶對訪問控制模塊的篡改。
用戶創(chuàng)建文件時,首先利對文件進行上面提到的加密運算,同時將訪問控制模塊作為文件的一部分上傳到文件服務器。用戶訪問文件時,同時向服務器發(fā)送讀請求,SKS首先在訪問控制模塊中檢查用戶的權限,然后利用FEK解密出RSK,F(xiàn)SK。利用RSK解密文件后對文件做同樣的Hash運算,與先前的Hash值做比較,判斷文件的完整性。
用戶修改文件時。過程同訪問文件類似,不同點在于將SSK返回給寫者,并且重新計算Hash值,并用FSK簽名,并且對訪問控制模塊進行替代。為了保證安全性,F(xiàn)EK,F(xiàn)SK在產(chǎn)生時被初始化到智能卡中,而且相關運算都在智能卡中進行。
2、安全性分析
(1)采用MD5分組變換處理后,可以增加破解的難度。傳統(tǒng)的MD5破解方式分為兩種,一種是網(wǎng)站在線破解,另一種是暴力破解。前者,通過查詢網(wǎng)站數(shù)據(jù)庫中是否存在MD5值完成破解;后者,軟件通過算法,生成字典,然后利用MD5函數(shù)對字典迸行運算,然后根需要破解的密文做必須,完成破解。通過MD5變換處理后,產(chǎn)生的密文和傳統(tǒng)的MD5加密后的密文有著很大的不同,因此通過md5常規(guī)破解方法是很難破解其原始密碼值,從而保證了數(shù)據(jù)的安全。
對于攻擊者來說,相對理想條件下,攻擊者已經(jīng)知道對MD5加密后的密文進行過密文分組加密,攻擊者要想正確的破解出明文,必須正確的確定分組。攻擊者首先必須對整個密文做一次MD5解密運算,得到分組后分別MD5加密的密文。然后確定分組,確定正確分組的可能需要32 !次運算。即使確定了有N個分組,仍然需要N次MD5解密運算。也就是說,在相對理想條件下,破解出正確的明文的時間為傳統(tǒng)MD5破解時聞的 (n+1)32 !倍。
而服務器和客戶端利用隨機密鑰進行會話,又可以避免重放攻擊,安全性得到很大提高。
(2)由于智能卡在設計過程中就采取了一系列的安全機制保護其內(nèi)部數(shù)據(jù)不會被泄露和非法訪問。這些安全機制包括:對卡內(nèi)部數(shù)據(jù)的訪問控制和傳輸過程的安全管理。訪問控制包括對數(shù)據(jù)及功能的存取執(zhí)行權限控制和對內(nèi)部靜態(tài)保密數(shù)據(jù)的存取控制。前者是通過個人識別碼(P附)和相應的認證過程來確定當前的安全狀態(tài)和所訪問文件的安全屬性來確定訪問控制規(guī)則的,后者對存儲于智能卡內(nèi)部的PIN、加密鑰、解密密鑰等重要數(shù)據(jù)實施安全管理。為防止有關信息(主要是數(shù)據(jù)) 在智能卡與外部之間的傳輸過程中被惡意截取、篡改等,提高動態(tài)傳輸信息的安全性和可靠性,在智能卡的操作系統(tǒng)中提供了安全傳輸控制機制,通過將傳輸?shù)男畔⒓用埽欠ń厝『蟮男畔o法解密。在卡內(nèi)獨立完成認證、數(shù)字簽名和密鑰交換等對安全非常敏感的計算,能有效地防止對密鑰、口令和其它私有敏感信息的泄漏,免受病毒或其它惡意的程序的感染,防止敏感信息的泄漏。
(3)安全傳輸模塊中,采用DES和RSA的混合模式對要發(fā)送的信息進行加密,保證了信息發(fā)送的機密性,而數(shù)字簽名的實現(xiàn),則可以保證信息發(fā)送過程中的完整性,不可抵賴性。安全傳輸模塊中采用的RSA算法.RSA算法如下:
公開密鑰:n=pq(p,q分別為兩個互異的大素數(shù),需保密)。
e與(p-1)(q-1)互素。
私有密鑰:d=e-1mod((p-1)(q-1))。
加密:c=me(mod n),其中m為明文,c為密文解密:m=ed(mod n)。
主要特點是加密和解密使用不同的密鑰,每個用戶保存著一對密鑰:公鑰n和私鑰d。n可以完全公開,用作加密密鑰;而d是保密的,需由用戶自己保存,用作解密密鑰。加密算法和解密算法也都是公開的。根據(jù)目前已經(jīng)掌握的知識和理論,分解2048bit的大整數(shù),已經(jīng)超過了 64bit計算機的運算能力,所以除了密鑰對的創(chuàng)建者,其他人想從n推導出d,在計算上是完全不可能的。因此,安全傳輸模塊中采用的這種混合加密的方式,對于目前和可預見的將來是足夠安全的。同時由于消息的加密與解密,簽名的實現(xiàn)與驗證敏感操作都在智能卡內(nèi)部產(chǎn)生,使安全性得到進一步提高。
(4)文件安全存儲模塊,由于文件在創(chuàng)建過程中,將加密的文件和訪問控制模塊存放在一塊,將加密技術和安全訪問控制技術有效的結合在一起,有效的防止非法用戶對文件的訪問。加密過程中涉及到的RSK在智能卡內(nèi)部產(chǎn)生,加密同樣在智能卡內(nèi)部完成,可以防止密鑰的泄露,而FEK有可信的安全密鑰服務器產(chǎn)生,因此它的安全性也能夠得到保證。文件安全存儲模塊對文件同時采用了hash算法,可以對文件的完整性進行檢測。
3、結束語
本文針對OA系統(tǒng)中的安全問題,提出了一個安全OA模型。該模型集成了對稱加密、非對稱加密、數(shù)字簽名,硬件加密等PKI相關技術,并且引入SKS服務器,負責相關密鑰的分發(fā),而且密鑰都儲存在智能卡中,加密與解密運算都是在智能卡中完成,提高了整個系統(tǒng)的安全性。同時,模型又充分考慮效率問題,比如摒棄通過數(shù)字證書來實現(xiàn)身份認證,文件加密及訪問控制都是基于對稱密鑰體系,從而提高整個系統(tǒng)的效率。