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