




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第章 網(wǎng)絡(luò)安全技術(shù)3.1密鑰管理 3.2身份認(rèn)證 3.3訪問(wèn)控制 3.4公鑰基礎(chǔ)設(shè)施 3.5授權(quán)管理基礎(chǔ)設(shè)施 3.6IP安全技術(shù) 3.7傳輸層安全 3.1密 鑰 管 理3.1.1概論密鑰的管理是整個(gè)加密系統(tǒng)中最薄弱的環(huán)節(jié),密鑰的泄露將直接導(dǎo)致明文內(nèi)容的泄露。例如曾經(jīng)有一種計(jì)算機(jī)使用了DES算法來(lái)實(shí)現(xiàn)一個(gè)文件加密工具,它將密鑰與密文保存在一起,用戶可以選擇用密文或明文形式保存文件,而且加密/解密過(guò)程是透明的,使用很方便。但是,對(duì)于了解密文格式的攻擊者而言,他可以很容易地發(fā)現(xiàn)密文的密鑰,從而發(fā)現(xiàn)明文。顯然從密鑰管理的途徑竊取機(jī)密比用破譯的方法花費(fèi)的代價(jià)要小得多,所以對(duì)密鑰的管理和保護(hù)格外重要。網(wǎng)絡(luò)
2、安全所依賴的基礎(chǔ)之一就是對(duì)傳送數(shù)據(jù)的加密。無(wú)論是鏈路加密還是端到端加密,其核心都是密鑰技術(shù)的應(yīng)用。密鑰管理是數(shù)據(jù)加密技術(shù)中的重要內(nèi)容,密鑰管理的目的是確保密鑰的安全性(包括真實(shí)性和有效性)。密鑰管理涉及密鑰的生成、驗(yàn)證、傳遞、保管、使用及銷毀等多個(gè)方面,涵蓋了密鑰的整個(gè)生存周期,另外還涉及密鑰的行政管理制度和管理人員的素質(zhì)。其中,密鑰管理最主要的過(guò)程是密鑰生成、保護(hù)和分發(fā)。3.1.2密鑰的組織結(jié)構(gòu)從信息安全的角度看,密鑰的生存期越短,破譯者的可乘之機(jī)就越少。在實(shí)際使用中,尤其是在網(wǎng)絡(luò)環(huán)境下,多采用層次化的密鑰管理結(jié)構(gòu)。用于數(shù)據(jù)加密的工作密鑰平時(shí)不在加密設(shè)備中,需要時(shí)動(dòng)態(tài)產(chǎn)生,并由其上層的密鑰加
3、密密鑰進(jìn)行加密保護(hù);密鑰加密密鑰可根據(jù)需要由其上一級(jí)的加密密鑰進(jìn)行保護(hù),依此類推。層次的劃分根據(jù)實(shí)際的使用環(huán)境確定,與環(huán)境的規(guī)模有關(guān),規(guī)模越大,層次越多。最高層的密鑰稱為主密鑰,它構(gòu)成整個(gè)密鑰管理系統(tǒng)的核心。在分層密鑰管理系統(tǒng)中,通常低一層的密鑰由高一層按照某種密鑰協(xié)議生成,所以,掌握了主密鑰,就有可能找出下層的各個(gè)密鑰。工作密鑰常稱為會(huì)話密鑰,建立會(huì)話密鑰的必要性在于:重復(fù)使用密鑰容易導(dǎo)致泄露,所以應(yīng)經(jīng)常更換;如果使用相同的密鑰,攻擊者可將以前截獲的信息插入當(dāng)前的會(huì)話,而通信雙方不一定能發(fā)現(xiàn);密鑰一旦被破解,則使用這一密鑰加密的信息都會(huì)失密,若使用會(huì)話密鑰,則只有當(dāng)前會(huì)話的信息失密;如果對(duì)方
4、不可靠,則更換會(huì)話密鑰可防止對(duì)方以后繼續(xù)竊取信息。多層密鑰體制大大增強(qiáng)了密碼系統(tǒng)的安全性。因?yàn)槭褂玫米疃嗟臅?huì)話密鑰經(jīng)常更換,而高層密鑰則用得較少,使得破譯者可用的信息變得很少,增加了攻擊的難度。另外,多層密鑰體制為自動(dòng)化管理帶來(lái)了方便,因?yàn)橄聦用荑€可由計(jì)算機(jī)系統(tǒng)自動(dòng)產(chǎn)生和維護(hù),并通過(guò)網(wǎng)絡(luò)自動(dòng)分配和更換,減少了接觸密鑰的人數(shù),也減輕了用戶的負(fù)擔(dān)。在層次結(jié)構(gòu)框架下,可以對(duì)密鑰進(jìn)行連通和分割定義。密鑰的連通是指在用戶之間共享密鑰的范圍;而密鑰的分割是指對(duì)這個(gè)范圍的限制(細(xì)化)。按空間分割密鑰,可區(qū)分不同的用戶群,例如: 不同密級(jí)的數(shù)據(jù)之間的密鑰分割; 不同業(yè)務(wù)部門(mén)、業(yè)務(wù)系統(tǒng)之間的密鑰分割; 上下級(jí)機(jī)
5、關(guān)之間的密鑰分割; 應(yīng)用系統(tǒng)和管理系統(tǒng)之間的密鑰分割,等等。按時(shí)間分割密鑰可實(shí)現(xiàn)讓各個(gè)用戶在不同的時(shí)期使用不同的密鑰,使用戶的使用權(quán)具有時(shí)間限制。分割的實(shí)現(xiàn)有兩種方式: 靜態(tài)分割:在給用戶的加密設(shè)備注入密鑰時(shí)就給定了用戶的密碼連通范圍,即用戶只能使用注入的密鑰; 動(dòng)態(tài)分割:密鑰分配中心定期向規(guī)定范圍內(nèi)的用戶加密傳送一個(gè)用于控制分割范圍的通播密鑰(向指定用戶廣播的密鑰),即收到什么,使用什么。3.1.3密鑰管理的基本內(nèi)容密鑰管理所涉及的工作內(nèi)容如圖3-1所示。用戶經(jīng)注冊(cè)后獲得在系統(tǒng)中合法使用密鑰的權(quán)力,并經(jīng)初始化后正式成為使用者。系統(tǒng)為用戶生成其所使用的密鑰,若非初次使用,可以在以前的基礎(chǔ)上進(jìn)行
6、密鑰更新。用戶可以自行保管自己的密鑰或委托系統(tǒng)代為保管,如果是后者,則每次進(jìn)入系統(tǒng)后需要從系統(tǒng)中將密鑰恢復(fù)處理。用戶獲得密鑰后需要安裝在自己的環(huán)境中,以實(shí)現(xiàn)與相應(yīng)應(yīng)用的銜接。為保證安全性,用戶還可以將密鑰備份在系統(tǒng)中。如果使用非對(duì)稱密鑰,則用戶的密鑰需要首先在CA中進(jìn)行注冊(cè),然后才可使用。如果密鑰丟失(但未泄露),則用戶可以重新恢復(fù)密鑰;如果密鑰已泄露或不再需要,則要將其撤銷。由于被密鑰作用的數(shù)據(jù)可能仍然存在,因此被撤銷的密鑰不能立即丟棄,要保存在密鑰檔案庫(kù)中,以備使用這些數(shù)據(jù)時(shí)需要。如果確信相關(guān)數(shù)據(jù)也結(jié)束生命周期,則對(duì)應(yīng)的密鑰可以銷毀。圖3-1密鑰管理的總體結(jié)構(gòu) 3.2身 份 認(rèn) 證3.2.
7、1認(rèn)證的基本原理1認(rèn)證的概念身份認(rèn)證是在計(jì)算機(jī)網(wǎng)絡(luò)中確認(rèn)操作者身份的過(guò)程。在現(xiàn)實(shí)生活中,人們的身份主要是通過(guò)各種證件來(lái)確定的。計(jì)算機(jī)網(wǎng)絡(luò)信息系統(tǒng)中,各種計(jì)算資源(如文件、數(shù)據(jù)庫(kù)、應(yīng)用系統(tǒng))也需要認(rèn)證機(jī)制的保護(hù),確保這些資源被應(yīng)該使用的人使用。在計(jì)算機(jī)網(wǎng)絡(luò)世界中,一切信息包括用戶的身份信息都是用一組特定的數(shù)據(jù)來(lái)表示的,計(jì)算機(jī)只能識(shí)別用戶的數(shù)字身份,所有對(duì)用戶的授權(quán)也是針對(duì)用戶數(shù)字身份的授權(quán)。為了保護(hù)網(wǎng)絡(luò)資源及落實(shí)安全政策,需要提供可追究責(zé)任的機(jī)制。這里涉及3個(gè)概念:認(rèn)證、授權(quán)和審計(jì)。 認(rèn)證(Authentication):對(duì)用戶身份或用戶訪問(wèn)對(duì)象的資格的驗(yàn)證。認(rèn)證能防止攻擊者假冒合法用戶獲取訪問(wèn)
8、權(quán)限。 授權(quán)(Authorization):授權(quán)是指當(dāng)用戶身份被確認(rèn)合法后,賦予該用戶進(jìn)行文件和數(shù)據(jù)等操作的權(quán)限。這種權(quán)限包括讀、寫(xiě)、執(zhí)行及從屬權(quán)等。 審計(jì)(Auditing):每一個(gè)人都應(yīng)該為自己所做的操作負(fù)責(zé),所以在做完事情之后都要留下記錄,以便核查責(zé)任。用戶對(duì)資源的訪問(wèn)過(guò)程如圖3-2所示。圖3-2用戶對(duì)資源的訪問(wèn)過(guò)程 身份認(rèn)證分為單向認(rèn)證和雙向認(rèn)證。如果通信的雙方只需要一方被另一方認(rèn)證身份,這樣的認(rèn)證過(guò)程就是單向認(rèn)證。在雙向認(rèn)證過(guò)程中,通信雙方需要相互認(rèn)證對(duì)方的身份。2身份認(rèn)證的方法在真實(shí)世界中,對(duì)用戶的身份認(rèn)證基本方法可以分為三種: 根據(jù)你所知道的信息來(lái)證明你的身份(what you
9、know,你知道什么); 根據(jù)你所擁有的東西來(lái)證明你的身份(what you have,你有什么); 直接根據(jù)獨(dú)一無(wú)二的身體特征來(lái)證明你的身份(who you are,你是誰(shuí)),比如指紋、面貌等。在網(wǎng)絡(luò)世界中,身份認(rèn)證的手段與真實(shí)世界中的一致,為了達(dá)到更高的身份認(rèn)證安全性,某些場(chǎng)景中,會(huì)從上面三種方法中挑選其中的兩種混合使用,即所謂的雙因素認(rèn)證。表3-1幾種身份認(rèn)證技術(shù)特點(diǎn)的比較 3.2.2認(rèn)證協(xié)議1. 基于口令的認(rèn)證1) 靜態(tài)口令認(rèn)證技術(shù)(1) 靜態(tài)口令基本原理。靜態(tài)口令是使用最早、最廣泛的認(rèn)證手段。因其實(shí)現(xiàn)簡(jiǎn)單、使用方便,得到了廣泛的應(yīng)用。它的基本原理是:用戶在注冊(cè)階段生成用戶名和初始口令
10、,系統(tǒng)在其數(shù)據(jù)庫(kù)中保存用戶的信息列表(用戶名ID+口令PW)。當(dāng)用戶登錄認(rèn)證時(shí),將自己的用戶名和口令上傳給服務(wù)器,服務(wù)器通過(guò)查詢用戶信息數(shù)據(jù)庫(kù)來(lái)驗(yàn)證用戶上傳的認(rèn)證信息是否和數(shù)據(jù)庫(kù)中保存的用戶列表信息相匹配。如果匹配,則認(rèn)為用戶是合法用戶;否則拒絕服務(wù),并將認(rèn)證結(jié)果回傳給客戶端。用戶定期改變口令,以保證安全性。具體的認(rèn)證過(guò)程見(jiàn)圖3-3。圖3-3靜態(tài)口令認(rèn)證過(guò)程 (2) 靜態(tài)口令認(rèn)證機(jī)制的安全性分析??诹钚孤妒强诹钫J(rèn)證系統(tǒng)面臨的最大威脅。用戶口令通常是一組字符串,長(zhǎng)度不會(huì)太長(zhǎng)。為了記憶方便常選擇有規(guī)律或有意義的字符串,如生日、人名、電話號(hào)碼等。另外,口令明文傳輸和不加密存放使得靜態(tài)口令認(rèn)證系統(tǒng)的安
11、全性很差。主要存在以下問(wèn)題: 網(wǎng)絡(luò)竊聽(tīng)。很多網(wǎng)絡(luò)服務(wù)在詢問(wèn)和驗(yàn)證遠(yuǎn)程用戶認(rèn)證信息時(shí),認(rèn)證信息都是以明文形式進(jìn)行傳輸?shù)?,如大量的通信協(xié)議(如Telnet、FTP、HTTP等)都使用明文傳輸。這意味著網(wǎng)絡(luò)中的竊聽(tīng)者只需使用協(xié)議分析器就能查看到認(rèn)證信息,從而分析出用戶的口令。 截取/重放。有的系統(tǒng)會(huì)將服務(wù)器中用戶信息加密后存放,用戶在傳輸認(rèn)證信息時(shí)也先進(jìn)行加密。這樣雖然能防止竊聽(tīng)者直接獲得口令,但使用截取/重放攻擊,攻擊者只要在新的登錄請(qǐng)求中將截獲的信息提交給服務(wù)器,就可以冒充登錄。 字典攻擊。某些攻擊者利用用戶口令使用生日、人名等有意義的單詞或數(shù)字的特點(diǎn),使用字典的單詞來(lái)嘗試用戶的口令,這就是所謂
12、的字典攻擊。因此,許多系統(tǒng)都建議用戶在口令中加入特殊字符,以增加口令的安全性。 窮舉攻擊。如果用戶口令較短,攻擊者就會(huì)使用字符串的全集作為字典,來(lái)對(duì)用戶口令進(jìn)行猜測(cè)。它是字典攻擊的一種特殊形式。 偽造服務(wù)器攻擊。最常見(jiàn)的是網(wǎng)絡(luò)釣魚(yú),即攻擊者通過(guò)偽造服務(wù)器來(lái)騙取用戶認(rèn)證信息,然后冒充用戶進(jìn)行正常登錄。 口令泄露。攻擊者通過(guò)窺探、社交工程、垃圾搜索、植入木馬等手段,竊得用戶口令;或用戶自己不慎將口令告訴別人或?qū)⒖诹顚?xiě)在其他地方被別人看到,造成口令的泄露。由于靜態(tài)口令存在的缺陷,基于靜態(tài)口令的身份認(rèn)證正逐漸退出歷史舞臺(tái)。近年來(lái),許多專家提出了其他的身份認(rèn)證方式,如:生物認(rèn)證、智能卡認(rèn)證、動(dòng)態(tài)口令認(rèn)證
13、等。動(dòng)態(tài)口令認(rèn)證因其具有高安全性、可靠、簡(jiǎn)單、容易實(shí)現(xiàn)、成本低、投資規(guī)模小等特點(diǎn),而得到廣泛的應(yīng)用。2) 動(dòng)態(tài)口令認(rèn)證技術(shù)1981年,美國(guó)科學(xué)家Lamport首次提出了利用散列函數(shù)產(chǎn)生一次性口令的思想。1991年貝爾通信研究中心(Bell Core)用DES加密算法首次研制出基于挑戰(zhàn)/應(yīng)答式動(dòng)態(tài)口令身份認(rèn)證系統(tǒng)S/KEY口令序列認(rèn)證系統(tǒng),后改用MD5算法作為散列函數(shù)產(chǎn)生動(dòng)態(tài)口令。1997年著名的RSA Security公司成功研制出基于時(shí)間同步的動(dòng)態(tài)口令認(rèn)證系統(tǒng)RSA Secure ID。從上世紀(jì)90年代開(kāi)始,動(dòng)態(tài)口令認(rèn)證系統(tǒng)在網(wǎng)銀、電子商務(wù)。政府等領(lǐng)域大量成功地應(yīng)用,其中金融行業(yè)特別是銀行業(yè)
14、占有將近1/3的市場(chǎng)份額。(1) 動(dòng)態(tài)口令基本原理。動(dòng)態(tài)口令也叫一次性口令。它的基本原理是:在用戶登錄過(guò)程中,基于用戶口令加入不確定因子,對(duì)用戶口令和不確定因子進(jìn)行單向散列函數(shù)變換,所得的結(jié)果作為認(rèn)證數(shù)據(jù)提交給認(rèn)證服務(wù)器。認(rèn)證服務(wù)器接收到用戶的認(rèn)證數(shù)據(jù)后,把用戶的認(rèn)證數(shù)據(jù)和自己用同樣的散列算法計(jì)算出的數(shù)值進(jìn)行比對(duì),從而實(shí)現(xiàn)對(duì)用戶身份的認(rèn)證。散列函數(shù)在認(rèn)證過(guò)程中起著至關(guān)重要的作用,它把可變輸入長(zhǎng)度串(預(yù)映射)轉(zhuǎn)換成固定長(zhǎng)度輸出串(散列值)且單方向運(yùn)行,即從預(yù)映射的值很容易計(jì)算散列值,但要從散列值推出預(yù)映射值非常困難,使得攻擊者通過(guò)網(wǎng)絡(luò)竊聽(tīng)截取登錄信息卻無(wú)法反推出用戶口令。在認(rèn)證過(guò)程中,用戶口令不
15、在網(wǎng)絡(luò)上傳輸,不直接用于驗(yàn)證用戶的身份,用戶口令和不確定因子使用散列算法生成的數(shù)據(jù)才是直接用于用戶身份認(rèn)證的數(shù)據(jù),且每次都采用不同的不確定因子來(lái)生成認(rèn)證數(shù)據(jù),從而每次提交的認(rèn)證數(shù)據(jù)都不相同,提高了登錄過(guò)程的安全性。(2) 動(dòng)態(tài)口令認(rèn)證機(jī)制的分類。根據(jù)加入不確定因子的選擇方式不同,常用動(dòng)態(tài)口令認(rèn)證機(jī)制有時(shí)間同步機(jī)制、事件同步機(jī)制和挑戰(zhàn)/應(yīng)答機(jī)制三種。 時(shí)間同步機(jī)制。時(shí)間同步機(jī)制就是以時(shí)間作為不確定因子。它的原理是:每個(gè)用戶都持有相應(yīng)的時(shí)間同步令牌,令牌內(nèi)置時(shí)鐘、種子密鑰和加密算法。時(shí)間同步令牌根據(jù)當(dāng)前時(shí)間和種子密鑰每60秒動(dòng)態(tài)生成一個(gè)動(dòng)態(tài)口令。用戶需要訪問(wèn)系統(tǒng)時(shí),將令牌生成的動(dòng)態(tài)口令傳送到認(rèn)證服
16、務(wù)器,服務(wù)器通過(guò)其種子密鑰副本和當(dāng)前時(shí)間計(jì)算出所期望的驗(yàn)證值,對(duì)用戶進(jìn)行驗(yàn)證。它的優(yōu)點(diǎn)是操作簡(jiǎn)單、易于管理,缺點(diǎn)是需要認(rèn)證服務(wù)器和用戶令牌的時(shí)鐘嚴(yán)格保持同步,否則因網(wǎng)絡(luò)延遲很容易造成正常認(rèn)證失敗,在分布式環(huán)境下很難管理。 事件同步機(jī)制。事件同步機(jī)制又稱為L(zhǎng)amport方式。事件同步機(jī)制是以事件(次數(shù)N作為變量。在初始化階段選取口令PW、迭代數(shù)N及一個(gè)單向數(shù)列函數(shù)H0,計(jì)算Y=Hn(PW)(Hn()表示進(jìn)行n次散列運(yùn)算),把Y和N的值存放到服務(wù)器上。在登錄階段,用戶端計(jì)算Y=Hn-1(PW)的值,將其提交給服務(wù)器,服務(wù)器端計(jì)算Z=H(Y),將Z值同服務(wù)器上保存的Y值進(jìn)行比較。如果Z=Y,則驗(yàn)證成
17、功。然后用Y的值代替服務(wù)器上Y的值作為下次的驗(yàn)證值,同時(shí)將N的值遞減1。這種認(rèn)證方式的優(yōu)點(diǎn)是容易實(shí)現(xiàn),不需要特殊硬件,可以在批次運(yùn)作環(huán)境下使用;缺點(diǎn)是安全性依賴于單向散列函數(shù),不宜在分布式網(wǎng)絡(luò)環(huán)境下使用,由于N是有限的,用戶登錄N次后必須重新初始化口令序列,且很難抵擋小數(shù)攻擊。 挑戰(zhàn)/應(yīng)答異步認(rèn)證機(jī)制。該機(jī)制就是以挑戰(zhàn)數(shù)作為變量。每個(gè)用戶同樣需要持有相應(yīng)的挑戰(zhàn)/應(yīng)答令牌。令牌內(nèi)置種子密鑰和加密算法。用戶在訪問(wèn)系統(tǒng)時(shí),服務(wù)器隨機(jī)生成一個(gè)挑戰(zhàn)數(shù)并將其發(fā)送給用戶,用戶將收到的挑戰(zhàn)數(shù)用手工輸入到挑戰(zhàn)/應(yīng)答令牌中,挑戰(zhàn)/應(yīng)答令牌利用內(nèi)置的種子密鑰和加密算法計(jì)算出相應(yīng)的應(yīng)答數(shù),將應(yīng)答數(shù)上傳給服務(wù)器,服務(wù)器
18、根據(jù)存儲(chǔ)的種子密鑰副本和加密算法計(jì)算出相應(yīng)的驗(yàn)證數(shù),和用戶上傳的應(yīng)答數(shù)進(jìn)行比較來(lái)實(shí)施認(rèn)證。認(rèn)證過(guò)程見(jiàn)圖3-4。該方式的優(yōu)點(diǎn)是沒(méi)有同步的問(wèn)題,可以保證很高的安全性,是目前最安全可靠的認(rèn)證方式;缺點(diǎn)是需要特殊硬件支持,用戶需多次手工輸入數(shù)據(jù),易造成較多的輸入失誤,操作過(guò)程繁瑣,易被偽造服務(wù)器攻擊,服務(wù)器端每次都要產(chǎn)生隨機(jī)數(shù),增加了系統(tǒng)開(kāi)銷。圖3-4挑戰(zhàn)/應(yīng)答式動(dòng)態(tài)口令認(rèn)證過(guò)程 (3) 動(dòng)態(tài)口令認(rèn)證機(jī)制安全性分析。動(dòng)態(tài)口令采用的是一次一密機(jī)制,它在原理上是不可破的。下面針對(duì)常用的攻擊手段對(duì)動(dòng)態(tài)口令認(rèn)證系統(tǒng)的安全性進(jìn)行分析。 網(wǎng)絡(luò)竊聽(tīng):因?yàn)樵诰W(wǎng)絡(luò)上傳輸?shù)牡卿浛诹钍墙?jīng)過(guò)單向散列變換后的數(shù)據(jù),用戶口令并不
19、在網(wǎng)上傳輸,所以網(wǎng)路即使被竊聽(tīng),攻擊者也無(wú)法從得到的信息推出用戶口令。 截取/重放:因?yàn)榧尤肓瞬淮_定因子,用戶每次提交的認(rèn)證數(shù)據(jù)都不相同,攻擊者截取的認(rèn)證數(shù)據(jù)在下次認(rèn)證中沒(méi)有任何意義。 字典/窮舉攻擊:因?yàn)槭褂昧穗p因子(用戶口令和不確定因子)進(jìn)行散列變換生成動(dòng)態(tài)口令,使攻擊者利用字典/窮舉攻擊變得困難,但如果用戶口令太短,則也容易被攻擊者攻破。 偽造服務(wù)器攻擊:大多數(shù)模式只實(shí)現(xiàn)了服務(wù)器對(duì)用戶的認(rèn)證,并沒(méi)有對(duì)服務(wù)器進(jìn)行認(rèn)證,尤其是基于事件的認(rèn)證機(jī)制不能抵御小數(shù)攻擊。但現(xiàn)在有許多改進(jìn)算法結(jié)合證書(shū)、密碼技術(shù)很好地克服了這一缺點(diǎn)。 口令泄露:只能有效抵御。因?yàn)橛脩羧绻煌咨票9芸诹?,口令還是易被攻擊者
20、通過(guò)窺探、垃圾搜索等手段獲取的,但動(dòng)態(tài)口令認(rèn)證機(jī)制能抵御社交工程攻擊。動(dòng)態(tài)口令技術(shù)能抵御大部分針對(duì)靜態(tài)口令認(rèn)證的網(wǎng)絡(luò)攻擊,提高了安全性,特別是能有效抵御網(wǎng)絡(luò)竊聽(tīng)、截取/重放、社交工程等攻擊,但不能有效抵御偽造服務(wù)器攻擊和來(lái)自內(nèi)部的攻擊?,F(xiàn)在有許多的改進(jìn)方案,彌補(bǔ)了動(dòng)態(tài)口令無(wú)法實(shí)現(xiàn)雙向認(rèn)證和無(wú)法克服來(lái)自內(nèi)部攻擊的缺點(diǎn),并正在逐步取代傳統(tǒng)的靜態(tài)口令認(rèn)證方式。隨著認(rèn)證市場(chǎng)的巨大需求,改進(jìn)的先進(jìn)的的動(dòng)態(tài)口令認(rèn)證機(jī)制將越來(lái)越應(yīng)用廣泛。2. 基于對(duì)稱密碼的認(rèn)證協(xié)議1) Needham-Schroeder認(rèn)證協(xié)議著名的Needham-Schroeder認(rèn)證協(xié)議出現(xiàn)于1978年。首先需建立被稱為鑒別服務(wù)器的可
21、信權(quán)威機(jī)構(gòu)(密鑰分發(fā)中心KDC),該機(jī)構(gòu)擁有每個(gè)用戶的秘密密鑰。若用戶A欲與用戶B通信,則用戶A向鑒別服務(wù)器申請(qǐng)會(huì)話密鑰。在會(huì)話密鑰的分配過(guò)程中,雙方身份得以鑒別。(1) A KDC:A | B | Ra(2) KDC A:EKa Ra | B | Ks | EKb Ks |A (3) A B:EKb Ks | A(4) B A:EKs Rb(5) A B:EKs Rb-1具體認(rèn)證過(guò)程見(jiàn)圖3-5,其中KDC是密鑰分發(fā)中心,Ra、Rb是一次性隨機(jī)數(shù),保密密鑰Ka和Kb分別是A和KDC、B和KDC之間共享的密鑰,Ks是由KDC分發(fā)的A與B的會(huì)話密鑰,EX表示使用密鑰X加密。Needham-Schr
22、oeder認(rèn)證協(xié)議使用了多次挑戰(zhàn)/響應(yīng)協(xié)議。(1) A告訴KDC,A想與B通信,明文消息中包含一個(gè)大的隨機(jī)數(shù)Ra。(2) KDC發(fā)送一個(gè)使用A和KDC之間共享的密鑰Ka加密的消息,消息包括由KDC分發(fā)的A與B的會(huì)話密鑰Ks,A的隨機(jī)數(shù)Ra,B的名字,一個(gè)只有B能看懂的許可證。A的隨機(jī)數(shù)Ra保證了該消息是新的而不是攻擊者重放的,B的名字保證了第一條明文消息中的B未被更改,許可證EKbKs | A使用B和KDC之間共享的密鑰Kb加密。圖3-5Needham-Schroeder認(rèn)證過(guò)程(3) A將許可證EKbKs | A發(fā)給B。(4) B解密許可證EKbKs | A,獲得會(huì)話密鑰Ks,然后產(chǎn)生隨機(jī)數(shù)
23、Rb,B向A發(fā)送消息EKsRb。(5) A向B發(fā)送消息EKsRb-1,以證明是真正的A與B通信。以上完成了雙向認(rèn)證,并同時(shí)實(shí)現(xiàn)了秘密通信。假定攻擊方已經(jīng)掌握A和B之間通信的一個(gè)老的會(huì)話密鑰(如經(jīng)過(guò)蠻力攻擊等),則入侵者I可以在第3步冒充A利用老的會(huì)話密鑰欺騙B。除非B記住所有以前使用的與A通信的會(huì)話密鑰,否則B無(wú)法判斷這是一個(gè)重放攻擊。i3 I(A) B:EKb Ks | Ai4 B I(A):EKs Rbi5 I(A) B:EKs Rb-1這里I(A)表示I假冒A。Needham和Schroeder于1987年發(fā)表了一個(gè)協(xié)議修正了這個(gè)漏洞。Denning-Sacco協(xié)議使用時(shí)間戳修正這個(gè)漏洞
24、。這里介紹Gavin Lowe在1997年給出的基于Denning-Sacco協(xié)議的改進(jìn)版本:(1) A KDC:A | B(2) KDC A:EKa B | Ks | T | EKb Ks | A | T(3) A B:EKb Ks | A | T(4) B A:EKs Rb(5) A B:EKs Rb-1其中T表示時(shí)間戳。T記錄了KDC發(fā)送消息(2)時(shí)的時(shí)間,A、B根據(jù)時(shí)間戳驗(yàn)證消息的“新鮮性”,從而避免了重放攻擊。2) Otway-Rees認(rèn)證協(xié)議Otway-Rees認(rèn)證協(xié)議也是基于對(duì)稱密碼的,它只含四條消息。具體認(rèn)證過(guò)程見(jiàn)圖3-6。圖3-6Otway-Rees認(rèn)證過(guò)程 (1) A B:
25、A | B | R | EKa A | B | R |Ra(2) B KDC:R | A | B | EKa A | B | R |Ra | EKb A | B | R | Rb(3) KDC B:R | EKb Rb | Ks | EKa Ra | Ks(4) B A:R | EKa Ra | Ks其中:(1) A產(chǎn)生一消息,包括用和KDC共享的密鑰Ka加密的一個(gè)索引號(hào)R、A的名字、B的名字和一隨機(jī)數(shù)Ra。(2) B用A消息中的加密部分構(gòu)造一條新消息。包括用和KDC共享的密鑰Kb加密的一個(gè)索引號(hào)R、A的名字、B的名字和一新隨機(jī)數(shù)Rb。(3) KDC檢查兩個(gè)加密部分中的索引號(hào)R是否相同;如果相
26、同,就認(rèn)為從B來(lái)的消息是有效的。KDC產(chǎn)生一個(gè)會(huì)話密鑰Ks用Kb和Ka分別加密后傳送給B,每條消息都包含KDC接收到的隨機(jī)數(shù)。(4) B把用A的密鑰加密的消息連同索引號(hào)R一起傳給A。3. 基于公鑰密碼的認(rèn)證協(xié)議首先假定雙方已經(jīng)知道對(duì)方的公開(kāi)密鑰,如通過(guò)交換證書(shū)。下面介紹幾種常見(jiàn)的基于公鑰密碼的認(rèn)證協(xié)議。1) ISO認(rèn)證協(xié)議ISO認(rèn)證協(xié)議的基本步驟如下:(1) A B:Ra(2) B A:Certb | Rb | Sb(Ra | Rb | B)其中,Ra、Rb是大的隨機(jī)數(shù);Certb是B的證書(shū);Sb()表示使用B的私有密鑰進(jìn)行數(shù)字簽名。如果需要雙向認(rèn)證,需要第三步:(3) A B:Certa |
27、 Sa(Ra | Rb | A)這里,Sa()表示使用A的的私有密鑰進(jìn)行數(shù)字簽名。2) Diffie-Hellman密鑰交換協(xié)議Diffie-Hellman算法發(fā)明于1976年,是第一個(gè)公開(kāi)密鑰算法。Diffie-Hellman算法不能用于加密與解密,但可用于密鑰分配。密鑰交換協(xié)議(Key Exchange Protocol)是指兩人或多人之間通過(guò)一個(gè)協(xié)議取得密鑰并用于通信加密。在實(shí)際的密碼應(yīng)用中密鑰交換是很重要的一個(gè)環(huán)節(jié)。比如說(shuō),利用對(duì)稱加密算法進(jìn)行秘密通信,雙方首先需要建立一個(gè)共享密鑰。如果雙方?jīng)]有約定好密鑰,就必須進(jìn)行密鑰交換。如何使得密鑰到達(dá)接收者和發(fā)送者手里是件很復(fù)雜的事情,最早利用
28、公鑰密碼思想提出一種允許陌生人建立共享秘密密鑰的協(xié)議,叫Diffle-Hellman密鑰交換。Diffie-Hellman密鑰交換算法是基于有限域中計(jì)算離散對(duì)數(shù)的困難性問(wèn)題之上的。離散對(duì)數(shù)問(wèn)題是指對(duì)任意正整數(shù)x,計(jì)算gx mod P是容易的;但是一般地已知g、Y和P求x使Y=gx (mod P)在計(jì)算上幾乎不可能的。當(dāng)Alice和Bob要進(jìn)行秘密通信時(shí),他們可以按如下步驟建立共享密鑰:(1) Alice選取大的隨機(jī)數(shù)x,并計(jì)算X=gx (mod P),Alice將g、P、X傳送給Bob。(2) Bob選取大的隨機(jī)數(shù)y,并計(jì)算Y=gy (mod P),Bob將Y傳送給Alice。(3) Alic
29、e計(jì)算K=Yx (mod P);Bob計(jì)算K=Xy (mod P),易見(jiàn),K=K=gxy (mod P)。Alice和Bob獲得了相同的秘密值K。雙方以K作為加解密鑰,以對(duì)稱密鑰算法進(jìn)行保密通信。監(jiān)聽(tīng)者可以獲得g、P、X、Y,但由于算不出x、y,所以得不到共享密鑰K。雖然Diffie-Hellman密鑰交換算法十分巧妙,但由于沒(méi)有認(rèn)證功能,存在中間人攻擊,如圖3-7所示。當(dāng)Alice和Bob交換數(shù)據(jù)時(shí),Trudy攔截通信信息,并冒充Alice欺騙Bob,冒充Bob欺騙Alice。圖3-7中間人攻擊 其過(guò)程如下:(1) Alice選取大的隨機(jī)數(shù)x,并計(jì)算X=gx (mod P),Alice將g、
30、P、X傳送給Bob,但被Trudy攔截。(2) Trudy冒充Alice選取大的隨機(jī)數(shù)z,并計(jì)算Z=gz (mod P),Trudy將Z傳送給Bob。(3) Trudy冒充Bob選取大的隨機(jī)數(shù)z,并計(jì)算Z=gz (mod P),Trudy將Z傳送給Alice。(4) Bob選取大的隨機(jī)數(shù)y,并計(jì)算Y=gy (mod P),Bob將Y傳送給Alice,但被Trudy攔截。由(1)、(3),Alice與Trudy共享了一個(gè)秘密密鑰gxy;由(2)、(4),Trudy與Bob共享了一個(gè)秘密密鑰gyz。站間協(xié)議(Station-To-Station Protocol)是一個(gè)密鑰協(xié)商協(xié)議,它能夠挫敗這種
31、中間人攻擊,其方法是讓A、B分別對(duì)消息簽名。(1) A B :gx(2) B A :gy | Ek(Sb(gy | gx)(3) A B :Ek(Sa(gx | gy)其中,建立的會(huì)話密鑰是k=gxy。站間協(xié)議的一個(gè)改進(jìn)版本沒(méi)有使用加密,建立的會(huì)話密鑰仍然是k=gxy。(1) A B:gx(2) B A:gy | Sb(gy | gx)(3) A B:Sa(gx | gy)站間協(xié)議具有前向保密性(Forward Secret)。前向保密性是指長(zhǎng)期密鑰被攻破后,利用長(zhǎng)期密鑰建立的會(huì)話密鑰仍具有保密性。站間協(xié)議中A、B的私鑰泄露不影響會(huì)話密鑰的安全。4. 零知識(shí)身份證明零知識(shí)證明(Zero-Kno
32、wledge Proof)的思想是:證明者Peggy擁有某些知識(shí)(如某些長(zhǎng)期沒(méi)有解決的難問(wèn)題的解決方法),零知識(shí)證明就是在不將該知識(shí)的內(nèi)容泄露給驗(yàn)證者Victor的前提下,Peggy向Victor證明自己擁有該知識(shí)??梢允褂枚囱ɡ觼?lái)解釋零知識(shí),如圖3-8所示,C和D之間存在一個(gè)密門(mén),并且只有知道咒語(yǔ)的人才能打開(kāi)。Peggy知道咒語(yǔ)并想對(duì)Victor證明,但證明過(guò)程中不想泄露咒語(yǔ)。圖3-8零知識(shí)洞穴 步驟如下:(1) Victor站在A點(diǎn);(2) Peggy一直走進(jìn)洞穴,到達(dá)C點(diǎn)或者D點(diǎn);(3) 在Peggy消失在洞穴中之后,Victor走到B點(diǎn);(4) Victor隨機(jī)選擇左通道或者右通道,
33、要求Peggy從該通道出來(lái);(5) Peggy從Victor要求的通道出來(lái),如果有必要就用咒語(yǔ)打開(kāi)密門(mén);(6) Peggy和Victor重復(fù)步驟(1)至(5)n次。如果Peggy不知道這個(gè)咒語(yǔ),那么只能從進(jìn)去的路出來(lái);如果在協(xié)議的每一輪中Peggy都能按Victor要求的通道出來(lái),那么Peggy所有n次都猜中的概率是1/2n。經(jīng)過(guò)16輪后,Peggy只有1/65 536的機(jī)會(huì)猜中。于是Victor可以假定,如果所有16次Peggy的證明都是有效的,那么她一定知道開(kāi)啟C點(diǎn)和D點(diǎn)間的密門(mén)的咒語(yǔ)。這里介紹著名的Feige-Fiat-shamir零知識(shí)身份認(rèn)證協(xié)議的一個(gè)簡(jiǎn)化方案??尚刨囍俨眠x定一個(gè)隨機(jī)
34、模數(shù)n,n為兩個(gè)大素?cái)?shù)乘積,實(shí)際中至少為512位或長(zhǎng)達(dá)1024位。仲裁方產(chǎn)生隨機(jī)數(shù)v,使x2=v mod n,即v為模n的平方剩余,且有x-1 mod n存在。以v作為Peggy的公鑰,而后計(jì)算最小的整數(shù)s:s=sqrt(v-1) mod n作為Peggy的私鑰。實(shí)施身份證明的協(xié)議如下:(1) 用戶Peggy取隨機(jī)數(shù)r(rSCU,系統(tǒng)根據(jù)主體和客體的敏感標(biāo)記來(lái)決定訪問(wèn)模式。訪問(wèn)模式包括:下讀(Read Down):用戶級(jí)別大于文件級(jí)別的讀操作;上寫(xiě)(Write Up):用戶級(jí)別小于文件級(jí)別的寫(xiě)操作;下寫(xiě)(Write Down):用戶級(jí)別等于文件級(jí)別的寫(xiě)操作;上讀(Read Up):用戶級(jí)別小于
35、文件級(jí)別的讀操作。Bell-Lapadula安全模型所制定的原則是利用不上讀/不下寫(xiě)來(lái)保證數(shù)據(jù)的保密性,見(jiàn)圖3-14。即不允許低信任級(jí)別的用戶讀高敏感度的信息,也不允許高敏感度的信息寫(xiě)入低敏感度區(qū)域,禁止信息從高級(jí)別流向低級(jí)別。強(qiáng)制訪問(wèn)控制通過(guò)這種梯度安全標(biāo)簽實(shí)現(xiàn)信息的單向流通。Biba安全模型所制定的原則是利用不下讀/不上寫(xiě)來(lái)保證數(shù)據(jù)的完整性,見(jiàn)圖3-15。在實(shí)際應(yīng)用中,完整性保護(hù)主要是為了避免應(yīng)用程序修改某些重要的系統(tǒng)程序或系統(tǒng)數(shù)據(jù)庫(kù)。MAC通常用于多級(jí)安全軍事系統(tǒng)。強(qiáng)制訪問(wèn)控制對(duì)專用的或簡(jiǎn)單的系統(tǒng)是有效的,但對(duì)通用、大型系統(tǒng)并不那么有效。圖3-14Bell-Lapadula安全模型 圖3
36、-15Biba安全模型 3.3.4基于角色的訪問(wèn)控制1基于角色的訪問(wèn)控制的基本思想1) 用戶、角色、許可基于角色的訪問(wèn)控制(RBAC)的要素包括用戶、角色、許可等基本定義。在RBAC中,用戶就是一個(gè)可以獨(dú)立訪問(wèn)計(jì)算機(jī)系統(tǒng)中的數(shù)據(jù)或者用數(shù)據(jù)表示的其他資源的主體。角色是指一個(gè)組織或任務(wù)中的工作或者位置,它代表了一種權(quán)利、資格和責(zé)任。許可(特權(quán))就是允許對(duì)一個(gè)或多個(gè)客體執(zhí)行的操作。一個(gè)用戶可經(jīng)授權(quán)而擁有多個(gè)角色,一個(gè)角色可由多個(gè)用戶構(gòu)成;每個(gè)角色可擁有多種許可,每個(gè)許可也可授權(quán)給多個(gè)不同的角色。每個(gè)操作可施加于多個(gè)客體(受控對(duì)象),每個(gè)客體也可以接受多個(gè)操作。用戶、角色、許可間的關(guān)系如圖3-16所示
37、。圖3-16用戶、角色、許可的關(guān)系 RBAC的基本思想是:授權(quán)給用戶的訪問(wèn)權(quán)限,通常由用戶在一個(gè)組織中擔(dān)當(dāng)?shù)慕巧珌?lái)確定。RBAC中許可被授權(quán)給角色,角色被授權(quán)給用戶,用戶不直接與許可關(guān)聯(lián)。RBAC對(duì)訪問(wèn)權(quán)限的授權(quán)由管理員唯一管理。RBAC根據(jù)用戶在組織內(nèi)所處的角色作出訪問(wèn)授權(quán)與控制。授權(quán)規(guī)定是強(qiáng)加給用戶的,用戶不能自主地將訪問(wèn)權(quán)限傳給他人。這是一種非自主型集中式訪問(wèn)控制方式。例如,在醫(yī)院里,醫(yī)生這個(gè)角色可以開(kāi)處方,但他無(wú)權(quán)將開(kāi)處方的權(quán)力傳給護(hù)士。2) 角色繼承為了提高效率,避免相同權(quán)限的重復(fù)設(shè)置,RBAC采用了“角色繼承”的概念,其定義了一些角色,它們有自己的屬性,但可能還繼承其他角色的許可。
38、角色繼承把角色組織起來(lái),能夠很自然地反映組織內(nèi)部人員之間的職權(quán)、責(zé)任關(guān)系。角色繼承可以用祖先關(guān)系來(lái)表示。如圖3-17所示,角色2是角色1的“父親”,它包含角色1的許可。在角色繼承關(guān)系圖中,處于最上面的角色擁有最大的訪問(wèn)權(quán)限,越下端的角色擁有的權(quán)限越小。角色層次表包括上一級(jí)角色標(biāo)識(shí)、下一級(jí)角色標(biāo)識(shí)。上一級(jí)角色能夠繼承下一級(jí)角色的許可。圖3-17角色繼承的實(shí)例 3) 角色分配與授權(quán)用戶/角色分配表包括用戶標(biāo)識(shí)、角色標(biāo)識(shí)。系統(tǒng)管理員通過(guò)為用戶分配角色、取消用戶的某個(gè)角色等操作管理用戶/角色分配表。用戶/角色授權(quán)表包括用戶標(biāo)識(shí)、角色標(biāo)識(shí)、可用性。我們稱一個(gè)角色r授權(quán)給一個(gè)用戶u,要么是角色r分配給用戶
39、u,要么是角色r通過(guò)一個(gè)分配給用戶u的角色繼承而來(lái)。用戶/角色授權(quán)表記錄了用戶通過(guò)用戶/角色分配表以及角色繼承而取得的所有角色??捎眯詾檎鏁r(shí),用戶才真正可以使用該角色賦予的許可。4) 角色限制角色限制包括角色互斥與角色基數(shù)限制。對(duì)于某些特定的操作集,某一個(gè)用戶不可能同時(shí)獨(dú)立地完成所有這些操作。角色互斥可以有靜態(tài)和動(dòng)態(tài)兩種實(shí)現(xiàn)方式。(1) 靜態(tài)角色互斥:只有當(dāng)一個(gè)角色與用戶所屬的其他角色彼此不互斥時(shí),這個(gè)角色才能授權(quán)給該用戶。(2) 動(dòng)態(tài)角色互斥:只有當(dāng)一個(gè)角色與一主體的任何一個(gè)當(dāng)前活躍角色都不互斥時(shí),該角色才能成為該主體的另一個(gè)活躍角色。靜態(tài)互斥角色表包括角色標(biāo)識(shí)1、角色標(biāo)識(shí)2。系統(tǒng)管理員為用
40、戶添加角色時(shí)參考。動(dòng)態(tài)互斥角色表包括角色標(biāo)識(shí)1、角色標(biāo)識(shí)2。在用戶創(chuàng)建會(huì)話選擇活躍角色集時(shí)參考。角色基數(shù)限制是指在創(chuàng)建角色時(shí),要指定角色的基數(shù)。在一個(gè)特定的時(shí)間段內(nèi),有一些角色只能由一定人數(shù)的用戶占用。5) 角色激活用戶是一個(gè)靜態(tài)的概念,會(huì)話則是一個(gè)動(dòng)態(tài)的概念。一次會(huì)話是用戶的一個(gè)活躍進(jìn)程,它代表用戶與系統(tǒng)交互。用戶與會(huì)話是一對(duì)多關(guān)系,一個(gè)用戶可同時(shí)打開(kāi)多個(gè)會(huì)話。一個(gè)會(huì)話構(gòu)成一個(gè)用戶到多個(gè)角色的映射,即會(huì)話激活了用戶授權(quán)角色集的某個(gè)子集,這個(gè)子集稱為活躍角色集?;钴S角色集決定了本次會(huì)話的許可集。安全策略實(shí)質(zhì)上表明的是所討論的那個(gè)系統(tǒng)在進(jìn)行一般操作時(shí),在安全范圍內(nèi)什么是允許的,什么是不允許的。不
41、像ACL只支持低級(jí)的用戶/許可關(guān)系,RBAC支持角色/許可、角色/角色的關(guān)系,由于RBAC的訪問(wèn)控制是在更高的抽象級(jí)別上進(jìn)行的,系統(tǒng)管理員可以通過(guò)角色定義、角色分配、角色設(shè)置、角色分層、角色限制來(lái)實(shí)現(xiàn)組織的安全策略。2RBAC系統(tǒng)結(jié)構(gòu)1) RBAC系統(tǒng)結(jié)構(gòu)RBAC系統(tǒng)結(jié)構(gòu)由RBAC數(shù)據(jù)庫(kù)、身份認(rèn)證模塊、系統(tǒng)管理模塊、會(huì)話管理模塊組成。RBAC數(shù)據(jù)庫(kù)與各模塊的對(duì)應(yīng)關(guān)系見(jiàn)圖3-18。圖3-18RBAC數(shù)據(jù)庫(kù)與各模塊的對(duì)應(yīng)關(guān)系圖 身份認(rèn)證模塊通過(guò)用戶標(biāo)識(shí)、用戶口令來(lái)確認(rèn)用戶身份。此模塊僅使用RBAC數(shù)據(jù)庫(kù)的USERS表。系統(tǒng)管理模塊主要完成用戶/角色的增減(使用USERS表、ROLES表)、用戶/角
42、色的分配(使用USERS表、ROLES表、用戶/角色分配表、用戶/角色授權(quán)表)、角色/許可的分配(使用ROLES表、PERMISSIONS表、角色/許可授權(quán)表)、定義角色間的關(guān)系(使用ROLES表、角色層次表、靜態(tài)互斥角色表、動(dòng)態(tài)互斥角色表)。其中,每個(gè)操作都帶有參數(shù),每個(gè)操作都有一定的前提條件,操作使RBAC數(shù)據(jù)庫(kù)發(fā)生動(dòng)態(tài)變化。系統(tǒng)管理員使用該模塊初始化RBAC數(shù)據(jù)庫(kù)并維護(hù)RBAC數(shù)據(jù)庫(kù)。系統(tǒng)管理員的操作包括添加用戶、刪除用戶、添加角色、刪除角色、設(shè)置角色可用性、為角色增加許可、取消角色的某個(gè)許可、為用戶分配角色、取消用戶的某個(gè)角色、設(shè)置用戶授權(quán)角色的可用性、添加角色繼承關(guān)系、取消角色繼承、
43、添加一個(gè)靜態(tài)角色互斥關(guān)系、刪除一個(gè)靜態(tài)角色互斥關(guān)系、添加一個(gè)動(dòng)態(tài)角色互斥關(guān)系、刪除一個(gè)動(dòng)態(tài)角色互斥關(guān)系和設(shè)置角色基數(shù)等。會(huì)話管理模塊結(jié)合RBAC數(shù)據(jù)庫(kù)管理會(huì)話。包括會(huì)話的創(chuàng)建與取消以及對(duì)活躍角色的管理。此模塊使用USERS表、ROLES表、動(dòng)態(tài)互斥角色表、會(huì)話表和活躍角色表。2) RBAC系統(tǒng)的運(yùn)行步驟(1) 用戶登錄時(shí)向身份認(rèn)證模塊發(fā)送用戶標(biāo)識(shí)、用戶口令,確認(rèn)用戶身份。(2) 會(huì)話管理模塊從RBAC數(shù)據(jù)庫(kù)檢索該用戶的授權(quán)角色集并送回用戶。(3) 用戶從中選擇本次會(huì)話的活躍角色集,在此過(guò)程中會(huì)話管理模塊維持動(dòng)態(tài)角色互斥。(4) 會(huì)話創(chuàng)建成功,本次會(huì)話的授權(quán)許可體現(xiàn)在菜單與按鈕上,如不可用顯示為
44、灰色。(5) 在此會(huì)話過(guò)程中,系統(tǒng)管理員若要更改角色或許可,則可在此會(huì)話結(jié)束后進(jìn)行更改或立即終止此會(huì)話后再進(jìn)行更改。3.4公鑰基礎(chǔ)設(shè)施3.4.1需要解決的問(wèn)題首先看下例。Alice和Bob準(zhǔn)備進(jìn)行如下的秘密通信:Alice Bob:我叫Alice,我的公開(kāi)密鑰是Ka,你選擇一個(gè)會(huì)話密鑰K,用Ka加密后傳送給我。Bob Alice:使用Ka加密會(huì)話密鑰K;Alice Bob:使用K加密傳輸信息;Bob Alice:使用K加密傳輸信息。如果Mallory是Alice和Bob通信線路上的一個(gè)攻擊者,并且能夠截獲傳輸?shù)乃行畔ⅲ琈allory將會(huì)截取Alice的公開(kāi)密鑰Ka并將自己的公開(kāi)密鑰Km傳送給
45、Bob。當(dāng)Bob用“Alice”的公開(kāi)密鑰(實(shí)際上是Mallory的公開(kāi)密鑰)加密會(huì)話密鑰K傳送給Alice時(shí),Mallory截取它,并用他的私鑰解密獲取會(huì)話密鑰K,然后再用Alice的公開(kāi)密鑰重新加密會(huì)話密鑰K,并將它傳送給Alice。由于Mallory截獲了Alice與Bob會(huì)話密鑰K,從而可以獲取他們的通信內(nèi)容并且不被發(fā)現(xiàn)。Mallory的這種攻擊稱為中間人攻擊。上述攻擊的成功本質(zhì)上在于Bob收到的Alice的公開(kāi)密鑰可能是攻擊者假冒的,即無(wú)法確定獲取的公開(kāi)密鑰的真實(shí)身份,從而無(wú)法保證信息傳輸?shù)谋C苄?、不可否認(rèn)性、數(shù)據(jù)交換的完整性。為了解決這些安全問(wèn)題,目前初步形成了一套完整的Inter
46、net安全解決方案,即廣泛采用的公鑰基礎(chǔ)設(shè)施(Pubic Key Infrastructure,PKI)。從字面上去理解,PKI就是利用公共密鑰理論和技術(shù)建立的提供安全服務(wù)的基礎(chǔ)設(shè)施。所謂基礎(chǔ)設(shè)施,就是在某個(gè)大環(huán)境下普遍適用的系統(tǒng)和準(zhǔn)則。在現(xiàn)實(shí)生活中,如電力系統(tǒng),它提供電能,我們可以把電燈、電視、電吹風(fēng)機(jī)等看成是電力系統(tǒng)這個(gè)基礎(chǔ)設(shè)施的一些應(yīng)用。公共密鑰基礎(chǔ)設(shè)施則是希望從技術(shù)上解決網(wǎng)上身份認(rèn)證、信息的保密性、信息的完整性和不可抵賴性等安全問(wèn)題,為網(wǎng)絡(luò)應(yīng)用提供可靠的安全服務(wù)。CA機(jī)構(gòu),又稱為證書(shū)授證(Certificate Authority)中心,是PKI的核心。CA是受一個(gè)或多個(gè)用戶信任,提供
47、用戶身份驗(yàn)證的第三方機(jī)構(gòu),承擔(dān)公鑰體系中公鑰的合法性檢驗(yàn)的責(zé)任。目前,我國(guó)一些單位和部門(mén)都已建成了自己的一套CA體系。其中較有影響的如中國(guó)電信CA安全認(rèn)證體系(CTCA)、上海電子商務(wù)CA認(rèn)證中心(SHECA)和中國(guó)金融認(rèn)證中心(CFCA)等。國(guó)外的一些大的網(wǎng)絡(luò)安全公司也紛紛推出一系列基于PKI的網(wǎng)絡(luò)安全產(chǎn)品,如美國(guó)的Verisign、IBM、SUN,加拿大的Entrust等安全產(chǎn)品供應(yīng)商,為用戶提供了一系列的客戶端和服務(wù)器端的安全產(chǎn)品,為電子商務(wù)的發(fā)展以及政府辦公網(wǎng)、EDI等提供了安全保證。3.4.2信任模型與PKI體系結(jié)構(gòu)1直接信任與第三方信任在ITU-T推薦標(biāo)準(zhǔn)X.509規(guī)范中給出了信任
48、定義:實(shí)體A認(rèn)定實(shí)體B將嚴(yán)格地按A所期望的那樣行動(dòng),則A信任B。這里稱A是信任者,B是被信任者。從定義可以看出,信任涉及對(duì)某種事件、情況的預(yù)測(cè)、期望和行為。信任是信任者對(duì)被信任者的一種態(tài)度,是對(duì)被信任者的一種預(yù)期,相信被信任者的行為能夠符合自己的愿望。按照有無(wú)第三方可信機(jī)構(gòu)參與,信任可劃分為直接信任和第三方推薦信任。1) 直接信任直接信任是最簡(jiǎn)單的信任形式。兩個(gè)實(shí)體之間無(wú)須第三方介紹而直接建立起來(lái)的信任關(guān)系稱為直接信任,如圖3-19所示。2) 第三方信任第三方信任是指兩個(gè)實(shí)體以前沒(méi)有建立起信任關(guān)系,但雙方與共同的第三方有信任關(guān)系,第三方為兩者的可信任性進(jìn)行了擔(dān)保,由此建立起來(lái)的信任關(guān)系。第三方
49、信任的實(shí)質(zhì)是第三方的推薦信任,如圖3-20所示,是目前網(wǎng)絡(luò)安全中普遍采用的信任模式。圖3-19直接信任 第三方的認(rèn)證代理就是稱謂的“認(rèn)證中心”(CA)。一個(gè)認(rèn)證中心是一個(gè)可信任的實(shí)體,通常是國(guó)家認(rèn)定的權(quán)威機(jī)構(gòu),它的核心職責(zé)就是審查認(rèn)證某實(shí)體的身份,證明該實(shí)體是不是他所聲稱的實(shí)體,然后由CA發(fā)放給實(shí)體數(shù)字證書(shū),作為CA信任他的一種證明。這樣,通過(guò)第三方信任,任何信任第三方的人便可以信任這個(gè)實(shí)體。證書(shū)將用戶公鑰和名字等其他信息綁定起來(lái),CA使用它的簽名私鑰對(duì)證書(shū)信息進(jìn)行數(shù)字簽名。CA機(jī)構(gòu)的數(shù)字簽名使得攻擊者不能偽造和篡改證書(shū),CA的數(shù)字簽名對(duì)證書(shū)提供了安全和信任的兩個(gè)元素:第一,證書(shū)上的有效的數(shù)字
50、簽名是證書(shū)完整性的保證。第二,由于CA是唯一有權(quán)使用它的簽名私鑰的實(shí)體,保證了只有CA能做那樣的簽名,CA不能否認(rèn)它簽名的證書(shū)(抗抵賴性)。如果兩個(gè)CA交換密鑰信息,這樣每個(gè)CA都可以有效地驗(yàn)證另一方CA密鑰的可信任性,我們稱這樣的過(guò)程為交叉認(rèn)證。交叉認(rèn)證是第三方信任的擴(kuò)展,即一個(gè)CA的用戶信任其他所有自己CA交叉認(rèn)證的CA用戶,如圖3-21所示。圖3-21擴(kuò)展的第三方信任模型 在第三方信任中,也可由普通用戶通過(guò)擔(dān)當(dāng)CA并使其公鑰被其他人所認(rèn)證來(lái)建立自己的信任網(wǎng)絡(luò)。一個(gè)典型的例子是:在PGP中當(dāng)用戶簽署另一個(gè)人的密鑰時(shí),他就成為了這個(gè)密鑰的介紹人。當(dāng)這個(gè)過(guò)程進(jìn)行下去時(shí),就建立了一個(gè)信任網(wǎng)絡(luò)。例
51、如,A收到一個(gè)據(jù)稱屬于B的證書(shū),這個(gè)證書(shū)是由A不認(rèn)識(shí)的C簽署的,但是C的證書(shū)是由A認(rèn)識(shí)并且信任的D簽署的。在這種情況下,A可以決定信任B的密鑰(即信任從D到C再到B的密鑰鏈),也可以決定不信任B的密鑰(認(rèn)為“未知的”B與“已知的”D之間的距離太遠(yuǎn))。這種模型一般不適合用在貿(mào)易、金融或政府環(huán)境中,因?yàn)樵谶@些環(huán)境下,通常希望或需要對(duì)用戶的信任實(shí)行某種控制。在可信任的第三方(公證人)的概念之上也可建立公證機(jī)制,以確保在兩個(gè)實(shí)體間交換的信息的某些性質(zhì)不致變化,例如,它的來(lái)源、完整性或者它被發(fā)出或收到的時(shí)間。2PKI的體系結(jié)構(gòu)CA是PKI的核心。根據(jù)CA間的關(guān)系,PKI的體系結(jié)構(gòu)可以有三種情況:?jiǎn)蝹€(gè)CA
52、的結(jié)構(gòu)、分級(jí)(層次)結(jié)構(gòu)和網(wǎng)狀結(jié)構(gòu)。1) 單個(gè)CA的結(jié)構(gòu)單個(gè)CA的結(jié)構(gòu)是最基本的PKI結(jié)構(gòu),PKI中的所有用戶對(duì)此單個(gè)CA給予信任,它是PKI系統(tǒng)內(nèi)單一的用戶信任點(diǎn),它為PKI中的所有用戶提供PKI服務(wù)。這種結(jié)構(gòu)只需建立一個(gè)根CA,所有的用戶都能通過(guò)該CA實(shí)現(xiàn)相互認(rèn)證。但單個(gè)CA的結(jié)構(gòu)不易擴(kuò)展到支持大量的或者不同的群體的用戶。2) 分級(jí)(層次)結(jié)構(gòu)在現(xiàn)實(shí)生活中,一個(gè)證書(shū)機(jī)構(gòu)很難得到所有用戶的信賴并接受它所發(fā)行的所有用戶證書(shū),而且這個(gè)證書(shū)機(jī)構(gòu)也很難對(duì)所有潛在注冊(cè)用戶有足夠全面的了解,這就需要多個(gè)CA??梢允褂弥鲝年P(guān)系或者使用對(duì)等關(guān)系將單個(gè)獨(dú)立的CA擴(kuò)展成支持不同群體的更大的、更為多樣化的PKI。
53、一個(gè)以主從CA關(guān)系建立的PKI稱做分級(jí)(層次)結(jié)構(gòu)的PKI。在這種結(jié)構(gòu)下,所有的用戶都信任最高層的根CA,上一層CA向下一層CA發(fā)放公鑰證書(shū)。若一個(gè)持有由特定CA發(fā)證的公鑰用戶要與由另一個(gè)CA發(fā)放公鑰證書(shū)的用戶進(jìn)行安全通信,則需要解決跨域的認(rèn)證,這一認(rèn)證過(guò)程在于建立一個(gè)從根出發(fā)的可信賴的證書(shū)鏈。分級(jí)結(jié)構(gòu)的PKI系統(tǒng)易于升級(jí)和增加新的認(rèn)證域用戶,因?yàn)橹恍枰鵆A與該認(rèn)證域的CA建立信任關(guān)系。證書(shū)路徑由于其單向性,可生成從用戶證書(shū)到可信任點(diǎn)的簡(jiǎn)單的、相對(duì)較短的路徑。用戶基于分級(jí)結(jié)構(gòu)中的CA的位置可隱含地知道一個(gè)證書(shū)用于哪種應(yīng)用。分級(jí)結(jié)構(gòu)的PKI依賴于一個(gè)單一的可信任點(diǎn)即根CA。根CA安全性的削弱,
54、將導(dǎo)致整個(gè)PKI系統(tǒng)安全性的削弱,根CA的故障對(duì)整個(gè)PKI系統(tǒng)是災(zāi)難性的。另外一個(gè)缺點(diǎn)是構(gòu)建一個(gè)全球共同的根CA可能在政治上是無(wú)法做到的。另外,由一組彼此分離的CA過(guò)渡到分級(jí)結(jié)構(gòu)的PKI,算法的多樣性更加深了互通操作的復(fù)雜程度。3) 網(wǎng)狀結(jié)構(gòu)以對(duì)等CA關(guān)系建立的交叉認(rèn)證擴(kuò)展了CA域之間的第三方信任關(guān)系,這樣的PKI系統(tǒng)稱為網(wǎng)狀結(jié)構(gòu)的PKI。交叉認(rèn)證包含兩個(gè)操作,如圖3-22所示。圖3-22交叉認(rèn)證 第一個(gè)操作是兩個(gè)域之間信任關(guān)系的建立,這通常是一次性操作。在雙邊交叉認(rèn)證的情況下,每個(gè)CA簽發(fā)一張“交叉證書(shū)”。第二個(gè)操作由客戶端軟件來(lái)做。這個(gè)操作包含了驗(yàn)證由已經(jīng)交叉認(rèn)證的CA簽發(fā)的用戶證書(shū)的可信
55、賴性。這個(gè)操作需要經(jīng)常執(zhí)行。例如CA1、CA2通過(guò)相互頒發(fā)證書(shū),來(lái)實(shí)現(xiàn)兩個(gè)信任域內(nèi)網(wǎng)絡(luò)用戶的相互信任。U如果要驗(yàn)證U2證書(shū)的合法性,則首先需要驗(yàn)證CA2對(duì)U2證書(shū)的簽名,然后驗(yàn)證CA1對(duì)CA2證書(shū)的簽名,因?yàn)閁1信任CA1,所以信任U2證書(shū)。U1通過(guò)這樣一個(gè)證書(shū)鏈來(lái)驗(yàn)證U2證書(shū)的合法性。通常,用戶信任為他們發(fā)放證書(shū)的CA。CA之間相互發(fā)放證書(shū),網(wǎng)狀PKI中的所有CA都可能是可信任點(diǎn),證書(shū)對(duì)描述了他們雙向的信任關(guān)系。然而,正因?yàn)檫@種雙向的可信任模型,從用戶證書(shū)到可信任點(diǎn)建立證書(shū)的路徑是不確定的。因?yàn)榇嬖诙喾N選擇,使得路徑發(fā)現(xiàn)較為困難。3CTCA的體系結(jié)構(gòu)完整的PKI包括認(rèn)證策略的制定(包括遵循的
56、技術(shù)標(biāo)準(zhǔn)、各CA之間的上下級(jí)或同級(jí)關(guān)系、安全策略、安全程度、服務(wù)對(duì)象、管理原則和框架等)、認(rèn)證規(guī)則、運(yùn)作制度的制定、所涉及的各方法律關(guān)系內(nèi)容以及技術(shù)的實(shí)現(xiàn)。從功能上來(lái)說(shuō),一個(gè)CA可以劃分為:接受用戶證書(shū)申請(qǐng)的證書(shū)受理者(RS)、證書(shū)發(fā)放的審核部門(mén)(Registration Authority,RA)、證書(shū)發(fā)放的操作部門(mén)(CP)一般稱這部分為CA,以及記錄證書(shū)作廢的證書(shū)作廢表(又叫黑名單CRL),如圖3-23所示。圖3-23CA構(gòu)成 RA即證書(shū)發(fā)放審核部門(mén),它負(fù)責(zé)對(duì)證書(shū)申請(qǐng)者進(jìn)行資格審查,并決定是否同意給該申請(qǐng)者發(fā)放證書(shū)。如果審核錯(cuò)誤或?yàn)椴粷M足資格的人發(fā)放了證書(shū),所引起的一切后果都由該部門(mén)承擔(dān)。
57、CP為證書(shū)發(fā)放的操作部門(mén),負(fù)責(zé)為已授權(quán)的申請(qǐng)者制作、發(fā)放和管理證書(shū),并承當(dāng)因操作運(yùn)營(yíng)錯(cuò)誤所造成的一切后果,包括失密和為沒(méi)有獲得授權(quán)者發(fā)放證書(shū)等。CP可以由審核授權(quán)部門(mén)自己擔(dān)任,也可以委托給第三方擔(dān)任。RS即證書(shū)受理者,它用于接受用戶的證書(shū)申請(qǐng)請(qǐng)求,轉(zhuǎn)發(fā)給CP和RA進(jìn)行響應(yīng)的處理。CRL是證書(shū)作廢表,其中記錄尚未過(guò)期但已經(jīng)聲明作廢的用戶證書(shū)序列號(hào),供證書(shū)使用者在認(rèn)證與之通信的對(duì)方證書(shū)是否作廢時(shí)查詢。業(yè)務(wù)受理點(diǎn)作為CA 系統(tǒng)對(duì)外提供服務(wù)的一個(gè)窗口,為用戶提供面對(duì)面的證書(shū)申請(qǐng)和發(fā)放服務(wù);同時(shí),業(yè)務(wù)受理點(diǎn)可以擔(dān)任用戶證書(shū)發(fā)放的審核部門(mén),當(dāng)面審核用戶提交的資料,決定是否為用戶發(fā)放證書(shū)。3.4.3證書(shū)1證
58、書(shū)的概念證書(shū)是公開(kāi)密鑰體制的一種密鑰管理媒介。證書(shū)提供了一種在Internet上驗(yàn)證身份的方式,其作用類似于司機(jī)的駕駛執(zhí)照或日常生活中的身份證。證書(shū)包含了能夠證明證書(shū)持有者身份的可靠信息,是持有者在網(wǎng)絡(luò)上證明自己身份的憑證。證書(shū)是由權(quán)威機(jī)構(gòu),又稱證書(shū)授權(quán)(Certificate Authority,CA)中心發(fā)行的。證書(shū)一方面可以用來(lái)向系統(tǒng)中的其他實(shí)體證明自己的身份,另一方面由于每份證書(shū)都攜帶著證書(shū)持有者的公鑰,所以證書(shū)也可以向接受者證實(shí)某人或某個(gè)機(jī)構(gòu)對(duì)公開(kāi)密鑰的擁有,同時(shí)也起著公鑰分發(fā)的作用。數(shù)字證書(shū)可用于方便、快捷、安全地發(fā)送電子郵件、訪問(wèn)安全站點(diǎn)、網(wǎng)上招標(biāo)投標(biāo)、網(wǎng)上簽約、網(wǎng)上訂購(gòu)、安全網(wǎng)
59、上公文傳送、網(wǎng)上辦公、網(wǎng)上繳費(fèi)、網(wǎng)上繳稅、網(wǎng)上購(gòu)物等網(wǎng)上的安全電子事務(wù)處理和安全電子交易活動(dòng)。從證書(shū)的最終使用者來(lái)看,數(shù)字證書(shū)可分為系統(tǒng)證書(shū)和用戶證書(shū)。系統(tǒng)證書(shū)指CA系統(tǒng)自身的證書(shū),包括CA中心的證書(shū)、業(yè)務(wù)受理點(diǎn)的證書(shū)以及CA系統(tǒng)操作員的證書(shū);用戶證書(shū)從應(yīng)用角度,可將其分為個(gè)人用戶證書(shū)、企業(yè)用戶證書(shū)和服務(wù)器證書(shū)。從證書(shū)的用途來(lái)看,數(shù)字證書(shū)可分為簽名證書(shū)和加密證書(shū)。簽名證書(shū)用于對(duì)用戶信息進(jìn)行簽名,以保證信息的不可否認(rèn)性。加密證書(shū)用于對(duì)用戶傳送的信息進(jìn)行加密,以保證信息的真實(shí)性和完整性。在使用中必須為用戶配置兩對(duì)密鑰(簽名密鑰對(duì)、加密密鑰對(duì))、兩張證書(shū)。簽名密鑰對(duì)由簽名私鑰和驗(yàn)證公鑰組成。為保證其
60、唯一性,簽名私鑰絕對(duì)不能夠作備份和存檔,丟失后只需重新生成新的密鑰對(duì),原來(lái)的簽名可以使用舊公鑰的備份來(lái)驗(yàn)證。驗(yàn)證公鑰需要存檔,用于驗(yàn)證舊的數(shù)字簽名。用作數(shù)字簽名的這一對(duì)密鑰一般可以有較長(zhǎng)的生命期。加密密鑰對(duì)由加密公鑰和脫密私鑰組成。為防止密鑰丟失時(shí)丟失數(shù)據(jù),脫密私鑰應(yīng)該進(jìn)行備份, 同時(shí)還可能需要進(jìn)行存檔,以便能在任何時(shí)候脫密歷史密文數(shù)據(jù)。加密公鑰無(wú)須備份和存檔,加密公鑰丟失時(shí),只須重新產(chǎn)生密鑰對(duì)。加密密鑰對(duì)通常用于分發(fā)會(huì)話密鑰,這種密鑰應(yīng)該頻繁更換,故加密密鑰對(duì)的生命周期較短。CA系唯一般支持多種安全級(jí)別證書(shū)的發(fā)放。例如:一級(jí)證書(shū)(操作員證書(shū)),由CA中心受理審核和發(fā)放,一般應(yīng)用于系統(tǒng)內(nèi)部的服
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 不過(guò)退款協(xié)議合同范本
- 2025年遼寧貨運(yùn)從業(yè)資格證考試技巧和方法
- 化工師徒合同范本
- 出讓合同范本
- 買(mǎi)木頭合同范本
- 作為甲方合同范本
- 制氫設(shè)備銷售合同范本
- 農(nóng)業(yè)項(xiàng)目施工合同范本
- 冰糖橙水果合同范本
- 上海別墅合同范本
- 2024-2025年中國(guó)鋰電池隔膜行業(yè)未來(lái)發(fā)展趨勢(shì)分析及投資規(guī)劃建議研究報(bào)告
- 軟件系統(tǒng)項(xiàng)目實(shí)施方案(共3篇)
- 2025年山東藥品食品職業(yè)學(xué)院高職單招職業(yè)技能測(cè)試近5年常考版參考題庫(kù)含答案解析
- 2025年恩施市福牛物業(yè)有限公司招聘筆試參考題庫(kù)含答案解析
- 《滾動(dòng)軸承-》課件
- 2025年中國(guó)CAR-T免疫細(xì)胞治療行業(yè)市場(chǎng)發(fā)展前景研究報(bào)告-智研咨詢發(fā)布
- 《化妝品包裝材料相容性試驗(yàn)評(píng)估指南》
- 中華人民共和國(guó)保守國(guó)家秘密法實(shí)施條例
- 《環(huán)境影響評(píng)價(jià)》全套教學(xué)課件
- XX小學(xué)法治副校長(zhǎng)(派出所民警)法制教育課講稿
- (2024年)肺栓塞的護(hù)理課件
評(píng)論
0/150
提交評(píng)論