版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第6章 Kerberos and PKI 本章講述應(yīng)用層網(wǎng)絡(luò)安全技術(shù)的工業(yè)標(biāo)準(zhǔn): 應(yīng)用層認(rèn)證與數(shù)字簽名。這包括基于對稱密碼學(xué)的標(biāo)準(zhǔn)與基于公開密碼學(xué)的標(biāo)準(zhǔn)。對稱密碼學(xué)的標(biāo)準(zhǔn)有Kerberos,公開密碼學(xué)的標(biāo)準(zhǔn)有PKI和X.509。第1節(jié) Kerberos V4 概述第2節(jié) Kerberos V4 設(shè)計思想與要求第3節(jié) 基本安全需求的解決方案 第4節(jié) Kerberos V4 實際執(zhí)行過程第5節(jié) Kerberos V4域間訪問第6節(jié) 公鑰基礎(chǔ)設(shè)施PKI 第7節(jié) X.509 本章內(nèi)容第1節(jié) Kerberos V4解決的問題 Kerberos是MIT開發(fā)的一種認(rèn)證服務(wù)標(biāo)準(zhǔn),開發(fā)Kerberos的目的是要
2、解決這樣的問題:在開放的環(huán)境中,使用工作站的用戶希望訪問服務(wù)器上所提供的服務(wù),我們希望服務(wù)器能夠只為授權(quán)訪問的用戶提供服務(wù)并認(rèn)證服務(wù)要求。在這樣的環(huán)境中,不能依靠工作站來正確地識別網(wǎng)絡(luò)服務(wù)的用戶。具體地說在這樣的環(huán)境中存在三種威脅:三種威脅 (1) 一個用戶可能會訪問一個工作站,并聲稱是另一個用戶,對工作站進(jìn)行某些操作。 (2) 一個用戶可能會修改工作站的網(wǎng)絡(luò)地址,從而使工作站所發(fā)出的請求看上去好像是另外一個工作站發(fā)出的。 (3) 一個用戶可能竊聽通信,并利用重放攻擊得到服務(wù)器的訪問權(quán)限,或者破壞服務(wù)器的服務(wù)。 Kerberos Version 4 這三種威脅都可能導(dǎo)致一個未授權(quán)用戶,訪問他不
3、應(yīng)該訪問的數(shù)據(jù)或者服務(wù)。 Kerberos是一種基于對稱密鑰、在網(wǎng)絡(luò)上實施認(rèn)證的服務(wù)。主要是用于兩個不熟悉的實體之間的認(rèn)證。大家可以想象在現(xiàn)實中兩個不熟悉的實體之間如何實現(xiàn)認(rèn)證的,然后再來看網(wǎng)絡(luò)中Kerberos的認(rèn)證過程,就非常容易理解。 網(wǎng)絡(luò)中的認(rèn)證 在網(wǎng)絡(luò)認(rèn)證中,情況也是一樣的,需要有一個比較權(quán)威的開介紹信(證明信)、發(fā)身份證、工作證等的機(jī)構(gòu),這個機(jī)構(gòu)就是KDC?,F(xiàn)實世界中這樣的權(quán)威機(jī)構(gòu)是根據(jù)什么來為一個人開介紹信、發(fā)身份證、工作證的呢(名單與照片)。網(wǎng)絡(luò)中KDC這樣做有什么問題?,F(xiàn)實世界有公章和公章的保存問題,在網(wǎng)絡(luò)中有KDC的數(shù)據(jù)庫與數(shù)據(jù)庫的保護(hù)問題。 第2節(jié) Kerberos 的設(shè)
4、計思想 目前的網(wǎng)絡(luò)環(huán)境主要有兩種體系結(jié)構(gòu)B/S結(jié)構(gòu)和C/S結(jié)構(gòu)。Kerberos是專為C/S的體系結(jié)構(gòu)設(shè)計的安全標(biāo)準(zhǔn),主要針對上面的三種威脅。采用下面的三種設(shè)計思想: (1) Rely on client workstation to assure the identity of its user or users and rely on server to enforce a security policy based on user identification; Kerberos 的設(shè)計思想 (2) Require that client systems authenticate the
5、mselves to server, but trust the client system concerning the identity of its users; (3) Require the user to provide Identity for each service invoked. Also require that servers prove their identity to clients.Kerberos 的設(shè)計思想 在一個封閉的小的環(huán)境中,所有的系統(tǒng)都是由單個的機(jī)構(gòu)所擁有并負(fù)責(zé),前一個或者兩個策略就可以了,但在大的開放的環(huán)境中,需要能夠支持網(wǎng)絡(luò)互連,這樣第3個策略
6、就是必不可少的。Kerberos支持第3項策略,Kerberos適用于分布式C/S體系結(jié)構(gòu),運(yùn)用一個或多個Kerberos服務(wù)器提供認(rèn)證服務(wù)。Kerberos的設(shè)計要求 (1) 安全:網(wǎng)絡(luò)竊聽者無法得到能夠冒充一個用戶的必要的信息。更一般地說Kerberos應(yīng)該是是強(qiáng)大的,潛在攻擊者不能從Kerberos中發(fā)現(xiàn)連接的弱點。 (2) 可靠:對于那些依靠Kerberos提供訪問控制的服務(wù)來講,沒有Kerberos的服務(wù),就沒有相應(yīng)的服務(wù),所以Kerberos應(yīng)當(dāng)是高度可靠的,為此需要采用分布式服務(wù)器結(jié)構(gòu),使得一個系統(tǒng)能夠備份另外一個系統(tǒng)。Kerberos的設(shè)計要求 (3) 透明:理想情況下,除了要
7、求用戶輸入口令以外,用戶應(yīng)當(dāng)不知道發(fā)生了認(rèn)證。 (4) 可擴(kuò)展性:系統(tǒng)應(yīng)該能夠支持大量的用戶與服務(wù)器,這就要求采用分布式的、模塊化的計算模式或體系結(jié)構(gòu)(Architecture)Kerberos要求的實現(xiàn)機(jī)制 為了滿足上述要求,Kerberos采用了可信的第三方認(rèn)證服務(wù)機(jī)制。即客戶與服務(wù)器都相信第三者能夠作為它們互相認(rèn)證的媒介。假設(shè)Kerberos協(xié)議的設(shè)計沒有漏洞,if the design of Kerberos server is secure,so is the authentication services that are based on Kerberos。Kerberos 在C
8、/S計算模式下,當(dāng)Alice第1次登錄到工作站時,需要輸入自己的帳號和口令。從登錄到登出這一段時間稱為一個登錄會話,在某個登錄會話中可能需要訪問遠(yuǎn)程資源,這些遠(yuǎn)程資源需要認(rèn)證她的身份才允許訪問。 Kerberos就是一種基于對稱密碼學(xué)的、在網(wǎng)絡(luò)上實施這樣認(rèn)證的服務(wù)。 Kerberos有兩個版本V4和V5。V4用戶量較大、結(jié)構(gòu)較簡單、性能較好,所以我們主要講述V4,理解了V4,V5就很好理解了。Kerberos細(xì)節(jié) 對于網(wǎng)絡(luò)安全工業(yè)標(biāo)準(zhǔn)協(xié)議,如果從整體上看,根本無法理解為什么需要設(shè)計這樣繁瑣的協(xié)議,而且給人的印象往往是無法分清主次。因此本章開始我們將采用不同的順序來研究網(wǎng)絡(luò)安全的標(biāo)準(zhǔn)。首先一步一
9、步講清楚設(shè)計每一步是為了實現(xiàn)什么安全功能,對協(xié)議的每個步驟都解釋清楚之后,我們再從總體結(jié)構(gòu)上來看協(xié)議,從而全面理解協(xié)議。達(dá)到既見樹木,也見森林的效果。 第3節(jié) 最基本的安全需求 在一個不設(shè)防的網(wǎng)絡(luò)環(huán)境中,任何用戶都可以向任何服務(wù)器請求服務(wù)。這里面明顯的安全問題就是假冒。一個攻擊者可能冒充是另一個用戶,從而獲得另一個用戶訪問服務(wù)器的特權(quán)。甚至利用另一個用戶的名義做一些壞事,栽臟陷害另一個用戶。為了防止出現(xiàn)這樣的問題,服務(wù)器必須能夠確認(rèn)請求服務(wù)的用戶身份。當(dāng)然可以要求各個服務(wù)器在與用戶的交互過程中完成這項任務(wù),但在網(wǎng)絡(luò)環(huán)境中可能給服務(wù)器造成實際負(fù)擔(dān)?;景踩枨蟮慕鉀Q 另一個選擇是安裝一個Auth
10、entication Server-AS (認(rèn)證服務(wù)器),該AS知道所有用戶的口令,并將這些口令存儲到一個中央數(shù)據(jù)庫中。此外AS還需要與每個服務(wù)器共享一個單獨(dú)的對稱密鑰,這些密鑰已經(jīng)通過某種物理的方法或者某種安全的方式完成了分配。當(dāng)需要認(rèn)證時,執(zhí)行下面的協(xié)議?;景踩枨蟮慕鉀Q基本安全需求的解決用戶對服務(wù)器的訪問 在這個對話過程中Alice登錄工作站要求訪問服務(wù)器,要求Alice輸入口令然后發(fā)送一個消息給AS,如上述第1步。AS檢查數(shù)據(jù)庫,根據(jù)ID看Alice輸入的口令是否正確,是否允許訪問相應(yīng)的資源。如果都沒有問題,AS認(rèn)為Alice是可信的,并說服S,Alice是可信的。為此AS需要給Al
11、ice一個證明(Ticket),證明清楚地表明Alice的ID、網(wǎng)絡(luò)地址、以及S的ID。將此信息用AS與S共享的對稱密鑰加密(?)后發(fā)給Alice的工作站C。用戶對服務(wù)器的訪問 現(xiàn)在C能夠向S申請服務(wù),C將Alice的ID與證明發(fā)給S,S用密鑰解密證明票據(jù),然后驗證Alice的ID與解密出來的票據(jù)中ID是否相同,如果相同S就認(rèn)為C是可信的,并向其提供相應(yīng)的服務(wù)。舉一個簡單的例子。上述第三步中的每個信息都很重要,各個信息的用處。上述會話過程的分析 上述會話過程協(xié)議解決了開放網(wǎng)絡(luò)中的認(rèn)證問題,但又有一些問題。 (1) 如果每個證明只能一次性使用,Alice想在一天內(nèi)多次訪問同樣的資源,就需要重復(fù)申
12、請證明,效率將會非常低。如果設(shè)計一種允許證明重用的機(jī)制,那么就可以解決這樣的問題。Kerberos采用允許C保存證明的方法,在一個登錄會話過程中重復(fù)使用同一個證明。上述會話過程的分析 (2) 第2個問題是上述會話過程的第1個消息中傳遞的是明文信息,竊聽者能夠捕捉到Alice的口令,并獲得與Alice相同的訪問有關(guān)資源的權(quán)限。為解決上述兩個問題Kerberos引入了一個新的方案,該方案采用了一個提供票據(jù)的服務(wù)器(Ticket granting server- TGS),并避免了明文傳輸。新方案如下:會話過程分析 這個協(xié)議的大概過程是這樣的:Alice首先向AS請求認(rèn)證與訪問票據(jù)提供服務(wù)器的Tic
13、ket, 并保存這個Ticket。每次需要訪問某種資源時,就出示該Ticket,用該Ticket實現(xiàn)TGS對她的認(rèn)證。通過認(rèn)證后,TGS就為她簽發(fā)一個訪問某種服務(wù)的服務(wù)Ticket。Alice就可以用這個Ticket向相應(yīng)的服務(wù)器實現(xiàn)認(rèn)證,并要求提供相應(yīng)的服務(wù)。會話過程分析 (1) 省略;(2) 中所用的加密密鑰是由Alice的口令產(chǎn)生的,工作站收到這個消息后提示Alice輸入口令,生成密鑰、嘗試解密信息,如果口令正確,Ticket將被成功解密。因為只有Alice知道它的口令,從而解密Ticket,因此Kerberos通過口令獲得了機(jī)密性,而不需要以明文方式傳遞口令,從而解決了第二個問題。而A
14、lice從AS獲得的Ticket,可以重復(fù)運(yùn)用于申請服務(wù)Ticket,這決了第1個問題。但我們希望攻擊者不能得到Ticket并使用它。 會話過程分析 如果我們不采取進(jìn)一步的措施,攻擊者可能捕捉到這個Ticket,并等到Alice離開工作站之后,它就可以訪問Alice工作站,或者將它自己的工作站的網(wǎng)絡(luò)地址,修改成Alice的工作站的網(wǎng)絡(luò)地址。從而利用這個Ticket冒充Alice欺騙TGS,獲得自己的不當(dāng)利益。會話過程分析 為防止這種情況出現(xiàn),Kerberos在Ticket中設(shè)計了時標(biāo)timestamp, 表明Ticket的發(fā)放日期、時間、壽命、有效期等。Alice的工作站從AS得到的Ticke
15、t是用AS和TGS共享的對稱密鑰加密的,這就防止了任何人修改Ticket。同時因為TGT是用基于用戶的口令產(chǎn)生的密鑰加密的,這保證只有正確的用戶才能恢復(fù)出TGT,這也提供了一種認(rèn)證機(jī)制。會話過程分析 現(xiàn)在Alice有了AS所簽發(fā)的TGT (Ticket granting Ticket),就可以通過下面的步驟訪問任何服務(wù)器。(3) 工作站將自己的身份、希望訪問的服務(wù)器以及前面得到的TGT告訴TGS,從TGS申請一個Service Granting Ticket-SGT。TGS解密TGT,通過IDtgs 來檢驗是否正確解密。驗證Lifetime是否失效,比較TGT中的用戶ID,網(wǎng)絡(luò)地址與實際發(fā)送信
16、息的用戶ID、網(wǎng)絡(luò)地址是否相同,如果都沒有問題。TGS就給Alice前發(fā)一個SGT,用于請求相應(yīng)的服務(wù)。會話過程分析 SGT與TGT具有相同的結(jié)構(gòu),不同的是SGT需要用TGS與S共享的對稱密鑰加密。有了SGT,Alice就可以通過下面的步驟訪問相應(yīng)的服務(wù)器,獲得相應(yīng)的服務(wù)。(5) 工作站將Alice的ID,SGT發(fā)送給服務(wù)器,服務(wù)器通過SGT的內(nèi)容實現(xiàn)對Alice的認(rèn)證。這種方案對于一個會話只要求Alice輸入一次口令,并能保護(hù)她的口令。 第4節(jié) Kerberos的實際情況 前面的協(xié)議解決了主要的問題,但又出現(xiàn)兩個問題:第1個是關(guān)于TGT壽命的問題,如果壽命太短,Alice可能仍然需要重復(fù)申請
17、,如果壽命太長,攻擊者仍然有機(jī)會進(jìn)行重放攻擊。攻擊者可以通過竊聽捕捉到TGT或者SGT,然后實施攻擊。這樣Kerberos需要滿足一個新的要求:網(wǎng)絡(luò)服務(wù)必須能夠證明使用TGT與SGT的人,就是TGT或SGT的受益人或者說合法持有人。Kerberos的實際情況 第二個問題是我們只考慮了服務(wù)器如何認(rèn)證一個用戶,而沒有考慮用戶如何認(rèn)證一個服務(wù)器。而沒有這樣的認(rèn)證,攻擊者可能設(shè)計一個假服務(wù)器,引誘客戶輸入自己的機(jī)密信息,并不提供任何服務(wù)。實際的Kerberos還必須解決這兩個問題。那么實際的Kerberos是如何解決這兩個問題的呢? 為了解決第1個問題,Kerberos要求AS以一種安全的方式向Ali
18、ce和TGS提供一個機(jī)密信息。然后Alice可以再以安全的方式向TGS出示Kerberos的實際情況 該機(jī)密信息以證明自己的身份。一種有效的方法就是用一個密鑰加密這個機(jī)密消息,這個秘密就是AS為Alice和TGS創(chuàng)造一個共享的對稱密鑰,在Kerberos中稱為會話密鑰(Session Key)。安全的方式就是用Alice的口令所產(chǎn)生的對稱密鑰加密。有了會話密鑰和Ticket,Alice就可以訪問TGS。認(rèn)證信息交換過程 認(rèn)證信息交換過程,消息(1)增加了時標(biāo)TS1,讓AS能夠確定該消息是一個新消息,而不是過去某個消息的重放。消息(2)增加了一個秘密Kc,tgs、 一個時標(biāo)、一個Ticket壽命
19、,這些消息Alice和TGS可以分別看到,并使得Alice能夠確信該TGT是為訪問TGS而產(chǎn)生的,且能夠知道TGT的有效期。Tickettgs用AS與TGS共享的密鑰加密,Alice不能看到其中的內(nèi)容,但是可以發(fā)給TGS,TGS能解密其中的內(nèi)容,并認(rèn)證Alice的身份。TGS信息交換過程 這個過程增加了一個認(rèn)證信息,該認(rèn)證信息只使用一次,而且壽命很短。TGS解密Tickettgs 與Authenticatorc,并比較兩者的身份與網(wǎng)絡(luò)地址,如果匹配,TGS知道發(fā)送Tickettgs的人就是Tickettgs的擁有者。事實上Tickettgs等于告訴TGS,任何使用Kc,tgs的用戶就是Alic
20、e。 Tickettgs 并不是證明身份的方法,而是一種密鑰分配方法。TGS信息交換過程 證明用戶的身份靠的是Authenticatorc 因為認(rèn)證信息只能用一次,而且壽命很短,攻擊者能夠在Tickettgs 和Authenticatorc的有效期內(nèi)同時使用這兩者進(jìn)行攻擊的可能性大大降低。TGS反饋給Alice的信息為Alice和服務(wù)器建立一個共享的對稱密鑰?,F(xiàn)在Alice有了可重復(fù)使用的訪問S的SGT。認(rèn)證信息交換過程 當(dāng)Alice訪問S時,需要出示她的SGT,并同時發(fā)送一個Authenticatorc ,S能夠解密SGT ,恢復(fù)會話密鑰,并解密Authenticatorc。如果需要互認(rèn)證,
21、服務(wù)器還要出示自己的認(rèn)證信息,在Kerberos中,該信息為用會話密鑰加密的Alice的時標(biāo)1。因為只有Alice和服務(wù)器知道會話密鑰Kc,s 所以如果Alice能夠用這樣的密鑰解密,說明這個信息是服務(wù)器所產(chǎn)生的,而不是某個消息的重放。認(rèn)證信息交換過程 這樣,在最后階段,Alice與服務(wù)器之間獲得了一個共享的對稱密鑰,這個密鑰可以用來加密他們之間的通信信息,或者用于產(chǎn)生新的隨機(jī)數(shù)。到此為止,我們講述了一個一個的局部細(xì)節(jié),現(xiàn)在,我們跳出局部看整體,看一看Kerberos的全貌。Kerberos整體過程各個信息的作用 消息(1):Alice請求一個TGT。 IDc: 工作站告訴AS Alice的身
22、份。 IDtgs: 工作站告訴AS Alice希望訪問的TGS。 TS1: 讓AS驗證Alice時鐘與AS的時 鐘同步。 消息(2): AS頒發(fā)一個TGTKc: 利用Alice的口令產(chǎn)生的對稱密鑰,使得 Alice和AS能夠驗證口令,并保護(hù)信息的內(nèi)容。Kc,tgs: AS臨時產(chǎn)生的Alice和TGS的共享對稱密鑰。IDtgs: 確認(rèn)TGT是為TGS所產(chǎn)生的。TS2:告訴Alice TGT的頒發(fā)時間。Lifetime:規(guī)定了TGT的有效時間。Tickettgs:Alice訪問TGS的Ticket。 消息(3):Alice請求一個SGT。Alice告訴TGS,她想訪問的服務(wù)器S IDs 。Tick
23、ettgs 表明Alice已經(jīng)過AS的認(rèn)證。Authenticatorc Alice產(chǎn)生的用于驗證有效性的認(rèn)證信息。 消息(4): TGS反饋的SGT 。Tickets: Alice用于訪問S的門票。Tickettgs : 可重用的Ticket,免得Alice重復(fù)輸入口令。第5節(jié) Kerberos域與多Kerberos 一個由Kerberos服務(wù)器、一定數(shù)量的用戶與一些應(yīng)用服務(wù)器所組成的Kerberos環(huán)境的運(yùn)行條件: (1) Kerberos服務(wù)器的數(shù)據(jù)庫中必須擁有所有用戶的ID與經(jīng)散列的口令。所有用戶都必須在Kerberos服務(wù)器注冊。 (2) Kerberos服務(wù)器必須與每一個服務(wù)器共享
24、一個密鑰,所有服務(wù)器必須在Kerberos服務(wù)器注冊。Kerberos域與多Kerberos 上述的一個運(yùn)行環(huán)境構(gòu)成一個Kerberos域,不同管理機(jī)構(gòu)服務(wù)器與客戶組成不同的域,要一個域中有其他管理域中注冊的服務(wù)器或用戶一般是不切實際的,或者不符合管理的策略。然而一個域中的用戶可能需要訪問其他域中的服務(wù)器,如果通過認(rèn)證,一個域中的服務(wù)器也許樂意為其他域中的用戶提供服務(wù)。域間訪問 Kerberos提供了一種支持域間認(rèn)證訪問的機(jī)制,對于支持域間訪問機(jī)制的Kerberos服務(wù)器,需要增加一個新的要求:兩個互操作域的Kerberos服務(wù)器之間需要共享一個對稱密鑰,兩個服務(wù)器需要相互注冊。還要求兩個域中
25、的Kerberos服務(wù)器相互信任對方的認(rèn)證結(jié)果。第6節(jié) PKI 前面我們在講述所有的安全機(jī)制時,都有一個前提:通信的雙方共享一個對稱密鑰,或者他們能夠協(xié)商一個對稱密鑰。但卻沒有說明他們?nèi)绾文軌蚬蚕硪粋€密鑰或者協(xié)商一個密鑰。在講公開密鑰加密算法時,我們說公鑰加密算法的主要用處就是密鑰分配、數(shù)字簽名、認(rèn)證。Alice和Bob之間要建立保密通信,Alice必須知道Bob的公開密鑰,或者Bob知道Alice的公開密鑰。但我們沒有說明Alice如何能夠得到Bob的公開密鑰。公開密鑰的獲得 一般來說Alice要獲得Bob的公開密鑰可以有三種方法:(1) 直接向Bob索要他的公開密鑰;(2) 可以從公開密鑰
26、數(shù)據(jù)庫中獲得;(3) 從某個第三者Carol處獲得。但這三種方法都存在問題。比如第一種方法可能受到中間人攻擊,這樣中間人就可以讀懂他們之間傳遞的信息;第二種方法中Bush可能用自己的公開密鑰替代數(shù)據(jù)庫中Bob的公開密鑰,這樣所有發(fā)給Bob的消息,Bush都可以解密;第三種方法Carol的可信性是一個關(guān)鍵問題。解決方法 直觀上可以采用下面比較簡單的解決方案:(1) 物理方法獲得。比如Bob可以當(dāng)面寫給Alice或者Bob將他的公開密鑰存到一個軟盤上,將該軟盤當(dāng)面交給Alice。這種方式非常安全,但有明顯的局限。(2) Bob可以用電郵將公開密鑰告訴Alice,并通過電話告訴公開密鑰的單向散列函數(shù)
27、值,Alice驗證單向散列函數(shù)值是否正確,從而確保得到Bob的正確公鑰。 解決方法(3) 從一個雙方都信任的第三者處得到Bob的公開密鑰;如果雙方互不認(rèn)識,就很難找到雙方相信的第三者。(4) 從一個可信的中間機(jī)構(gòu)得到Bob的公開密鑰。這類似于公證機(jī)構(gòu)。公鑰基礎(chǔ)設(shè)施 Public Key Infrastructure 就是為了確保Alice能夠準(zhǔn)確地獲得Bob的真正公開密鑰而建立的一系列基礎(chǔ)設(shè)施,采用的是建立具有公信力的中間機(jī)構(gòu)的方式。通過這樣的方式還可以實現(xiàn)認(rèn)證。PKI的基本結(jié)構(gòu) 證書是一種經(jīng)過簽名的消息,用來確定某個實體與某個公開密鑰的綁定關(guān)系。 PKI的基本結(jié)構(gòu)包括證書的申請、證書的簽發(fā)、
28、證書的獲取、證書的撤銷、證書的驗證五個環(huán)節(jié)(舉例)。需要建立簽發(fā)證書的權(quán)威的、有公信力的機(jī)構(gòu)。確立標(biāo)準(zhǔn)的證書內(nèi)容格式。建立保存證書的數(shù)據(jù)庫。建立證書的驗證機(jī)制-證書鏈。制定證書的撤銷機(jī)制。這就是PKI研究的內(nèi)容。證書的簽發(fā)機(jī)構(gòu)CA 證書的簽發(fā)機(jī)構(gòu)應(yīng)該是具有公信力的權(quán)威機(jī)構(gòu),那么在實際中我們應(yīng)該相信誰呢?關(guān)于應(yīng)該信任誰的問題,人們提出了各種各樣的信任模型,比如有壟斷模型、壟斷加注冊模型、受托CA模型、寡頭模型、無政府模型、自頂向下模型、自底向上模型、名稱約束模型、相對名稱模型等。證書的簽發(fā)機(jī)構(gòu)CA 一個實體相信什么樣的實體是有隨意性的,不同的人可能相信不同的實體,而同一個實體對于不同的人也表現(xiàn)出
29、不同的可信度。這個問題是一個非常復(fù)雜非技術(shù)問題。我們不研究應(yīng)該誰相信誰的問題,我們假設(shè)在任何組織內(nèi)都存在一個大家都相信的機(jī)構(gòu),在更大的組織內(nèi)也有一個大家都相信的機(jī)構(gòu)。這樣的大家信任的機(jī)構(gòu),我們稱為Certificate Authority,簡稱CA。這就解決了誰簽發(fā)證書的問題。證書的申請 證書的申請是比較簡單的事情,用戶提供自己的姓名、公鑰,證明自己擁有相應(yīng)的私鑰,希望使用的有效期,是用于簽名還是用密鑰交換、還是兩者都用。并提供有關(guān)自己的某些特定信息。然后在這些信息上數(shù)字簽名,并將整個數(shù)據(jù)包發(fā)給CA。 CA做一些努力來驗證用戶提供的信息是正確的。就會簽發(fā)一份證書給申請人。 第7節(jié) X.509
30、PKI通常用一種分布式的層次化數(shù)據(jù)庫作為輔助工具,這種數(shù)據(jù)庫以層次結(jié)構(gòu)的名稱為索引,與某個名稱相關(guān)聯(lián)的是該名稱所對應(yīng)的各種信息,我們把這種系統(tǒng)同稱為目錄服務(wù)。DNS就是一種被廣泛應(yīng)用的目錄服務(wù),正是由于DNS的廣泛應(yīng)用才使Internet能夠流行。X.509是一種目錄服務(wù)標(biāo)準(zhǔn),其中包括用于查詢目錄服務(wù)的語言LDAP (Lightweight Directory Access Protocol )。DNS提供了目錄服務(wù)中低端的、但足以滿足需求的功能,它除了提供基于名稱進(jìn)行查找的功能之外,沒有提供其他的功能。證書的內(nèi)容X.509 X.509能提供許多比DNS應(yīng)用復(fù)雜得多的目錄服務(wù)。X.509是一種
31、比較難用的證書格式,但是看起來它會成為所有PKI的基礎(chǔ)。因此,在許多網(wǎng)絡(luò)安全的應(yīng)用中,我們常常聽說某某應(yīng)用支持X.509證書的發(fā)放,這表明該系統(tǒng)功能強(qiáng)大,因此學(xué)習(xí)網(wǎng)絡(luò)安全,必須要認(rèn)識X.509的真面目。證書的內(nèi)容X.509 X.509是國際電信聯(lián)盟推薦的用于目錄服務(wù)的一部分內(nèi)容。目錄服務(wù)事實上是一個維護(hù)用戶信息數(shù)據(jù)庫的服務(wù)器的集合。這里的信息包括用戶名稱與網(wǎng)絡(luò)地址的對應(yīng)關(guān)系以及用戶的其他一些屬性。X.509定義了X.509目錄向其用戶提供認(rèn)證服務(wù)的框架規(guī)定。這個目錄可以作為公鑰證書的數(shù)據(jù)庫,供用戶查詢。每個證書包括用CA的私有密鑰簽名的用戶的公開密鑰。此外,還定義了基于公鑰認(rèn)證的不同的認(rèn)證協(xié)議
32、。證書的內(nèi)容X.509 X.509有三個版本V1(1988、1990)、V2(1993)、V3(1995、2000)。X.509默認(rèn)的算法為公開密鑰的RSA算法,在簽名之前需要對消息進(jìn)行散列運(yùn)算,但并沒有規(guī)定采用哪一個單向散列算法。X.509的核心思想是將公開密鑰與一個用戶關(guān)聯(lián)起來。假設(shè)證書由一個CA簽發(fā),并存放在CA或者用戶的目錄服務(wù)器中,目錄服務(wù)器為用戶提供訪問目錄、獲得公開密鑰的服務(wù)。下面是X.509規(guī)定的證書格式。證書的內(nèi)容X.509 版本號:用來區(qū)分X.509的不同版本號(?) 序列號:由CA給予每一個證書的分配唯一的數(shù)字型編號,當(dāng)證書被取消時,實際上是將此證書的序列號放入由CA簽發(fā)
33、的CRL中;這也是序列號唯一的原因。 簽名算法標(biāo)識符:用來指定用CA簽發(fā)證書時所使用的簽名算法HASH算法及參數(shù)。因為后面有重復(fù),所以這一部分信息實際上沒有多少用處。證書的內(nèi)容X.509 有效期限:證書有效的時間包括兩個日期:證書開始生效和證書失效的日期和時間。2006.10.18.00:00 2008.12.30.23:59 唯一標(biāo)示符的應(yīng)用:區(qū)分相同名稱的不同主體。 簽名:CA對上述所有的信息進(jìn)行散列運(yùn)算,并用CA的私有密鑰加密從而實現(xiàn)簽名。 擴(kuò)展:擴(kuò)展是只有第3版才有的一種機(jī)制,這種機(jī)制的目的是使使用更加靈活,比 證書的內(nèi)容X.509如用戶有分別用于驗證數(shù)字簽名與密鑰分配的公鑰,在這里就
34、可以注明用途?;蛘邔⒃撟C書與用戶的Email地址聯(lián)系起來等。X.509用下面的記號來定義一份證書: CA=CAV,SN,AI,CA,TA,A,Ap其中,Y表示由Y簽發(fā)給X的證書,YA表示Y對A的簽名,其中包含證書內(nèi)容的散列函數(shù)值。獲得證書 由CA生成的用戶證書具有下面的特點:任何能夠獲得CA公鑰的人都可以驗證該CA簽發(fā)的用戶的證書;除了CA以外,沒有人能夠修改證書而不被發(fā)現(xiàn)。這樣因為證書不可偽造、不可修改,證書就可以存放在目錄中而不需要采取特殊的措施加以保護(hù)。如果所有用戶都是從同一個CA獲取證書,說明他們相信同一個CA。所有用戶的證書可以存在同一個目錄中供所有用戶訪問。Alice也可以將它的證
35、書直接發(fā)送給Bob。不管哪種情況,Bob都可以獲得Alice的證書證書鏈 因為每個用戶的公鑰證書都要用CA的公開密鑰進(jìn)行驗證。CA的公鑰的完整性與真實性就非常重要。如果用戶很多,范圍很大,CA本身的公鑰的保證與可信性就成問題。一個可行的辦法就是將用戶群縮小到一個能夠控制的范圍內(nèi)。這樣就出現(xiàn)了這樣的情況:Alice和Bob的CA不同。那么這種情況下,Alice如何得到Bob的證書呢? 假設(shè)Alice有一個CA1簽發(fā)的證書,Bob有一證書鏈個CA2簽發(fā)的證書,那么可以用下面的程序獲得Bob的證書:(1) Alice登錄目錄,獲得CA1簽發(fā)的CA2的證書,因為Alice知道CA1的公鑰,所以能夠驗證CA2的證書,獲得CA2的公鑰;(2) 因為Alice已經(jīng)知道了CA2的公鑰,就可以利用該公鑰驗證Bob的公鑰證書
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024版離婚后子女撫養(yǎng)權(quán)變更及財產(chǎn)分割合同樣本3篇
- 2024年度汽車維修配件委托汽車運(yùn)輸合同3篇
- 2024版綠色建筑節(jié)能改造技術(shù)咨詢與服務(wù)合同示范文本3篇
- 2024版預(yù)制構(gòu)件購銷合同(文化遺產(chǎn)保護(hù)工程)2篇
- 2024版辦公樓租賃合同(含專屬商務(wù)配套服務(wù))2篇
- 二零二四年企業(yè)額度借款合同實施細(xì)則2篇
- 2024版購買保險產(chǎn)品的合同范本3篇
- 2024年度供應(yīng)鏈終止合同3篇
- 2024萬達(dá)商鋪租賃合同書及商業(yè)運(yùn)營支持協(xié)議3篇
- 2024全新苗木供應(yīng)合同范本下載
- 初中英語五選四中考專項練習(xí)
- 新生兒聽力篩查工作管理制度
- 天津市2022-2023學(xué)年六年級上學(xué)期數(shù)學(xué)期末試卷(含答案)
- DD 2019-11 地-井瞬變電磁法技術(shù)規(guī)程
- 老人及兒童合理用藥課件
- 重型再生障礙性貧血造血干細(xì)胞移植治療課件
- 2024屆貴陽市八年級物理第一學(xué)期期末檢測試題含解析
- 新教材部編版道德與法治五年級上冊第四單元測試題及答案
- 農(nóng)村原民辦代課教師教齡補(bǔ)助申請表
- 高邊坡專項施工方案樣本
- 2023年污水站設(shè)備維修 污水處理廠設(shè)備維護(hù)方案(五篇)
評論
0/150
提交評論