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