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