![網(wǎng)絡(luò)安全與保密(第二版)課件:身份認證及其應(yīng)用_第1頁](http://file4.renrendoc.com/view12/M04/3B/36/wKhkGWXnluWASyxHAAEypo_U13U011.jpg)
![網(wǎng)絡(luò)安全與保密(第二版)課件:身份認證及其應(yīng)用_第2頁](http://file4.renrendoc.com/view12/M04/3B/36/wKhkGWXnluWASyxHAAEypo_U13U0112.jpg)
![網(wǎng)絡(luò)安全與保密(第二版)課件:身份認證及其應(yīng)用_第3頁](http://file4.renrendoc.com/view12/M04/3B/36/wKhkGWXnluWASyxHAAEypo_U13U0113.jpg)
![網(wǎng)絡(luò)安全與保密(第二版)課件:身份認證及其應(yīng)用_第4頁](http://file4.renrendoc.com/view12/M04/3B/36/wKhkGWXnluWASyxHAAEypo_U13U0114.jpg)
![網(wǎng)絡(luò)安全與保密(第二版)課件:身份認證及其應(yīng)用_第5頁](http://file4.renrendoc.com/view12/M04/3B/36/wKhkGWXnluWASyxHAAEypo_U13U0115.jpg)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
身份認證及其應(yīng)用8.1引言8.2身份認證的方法8.3第三方認證8.4X.5098.5數(shù)字證書8.6驗證證書8.7CA系統(tǒng)結(jié)構(gòu)參考文獻思考題
身份認證是網(wǎng)絡(luò)安全的基礎(chǔ),它是對訪問者進行授權(quán)的前提,是網(wǎng)絡(luò)安全的重要機制之一。本章將主要介紹身份認證的有關(guān)理論,同時,對第三方認證問題和認證中心也進行了相應(yīng)的介紹。
從對計算機系統(tǒng)或網(wǎng)絡(luò)的一般訪問過程來看,身份認證是用戶獲得訪問權(quán)限的第一步。如果用戶身份得不到系統(tǒng)的認可,即授權(quán),他就無法進入該系統(tǒng)并進而訪問系統(tǒng)資源。從這個意義來講,身份認證是安全防御的第一道防線,它是防止非授權(quán)用戶或進程進入計算機系統(tǒng)的有效安全保障措施。
8.1引言
身份認證即身份識別與驗證(IdentificationandAuthentication,簡稱I&A)是計算機安全的重要組成部分,它是大多數(shù)訪問控制的基礎(chǔ),也是建立用戶審計能力的基礎(chǔ)。訪問控制通常要求計算機系統(tǒng)能夠識別和區(qū)分用戶,而且通常是基于最小特權(quán)原理(LeastPrivilegeTheorem,系統(tǒng)中的每個主體執(zhí)行授權(quán)任務(wù)時,僅被授予完成任務(wù)所必需的最小訪問權(quán)限)。用戶審計要求計算機系統(tǒng)上的各種活動與特定的個人相關(guān)聯(lián),以便系統(tǒng)識別出各用戶。
8.2身份認證的方法
識別是用戶向系統(tǒng)提供聲明身份的方法;驗證則是建立這種聲明有效性的手段。計算機系統(tǒng)識別用戶依賴的是系統(tǒng)接收到的驗證數(shù)據(jù)。這樣驗證就面臨著這些考驗:收集驗證數(shù)據(jù)問題、安全地傳輸數(shù)據(jù)問題以及怎樣知道使用計算機系統(tǒng)的用戶就是當(dāng)初驗證通過的用戶問題。目前用來驗證用戶身份的方法有:
(1)用戶知道什么(Somethingtheuserknows))(秘密如口令、個人身份號碼(PIN)、密鑰等)。
(2)用戶擁有什么(才)(令牌如ATM卡或智能卡等)。
(3)用戶是誰(Somethingtheuseris)(生物特征如聲音識別、手寫識別或指紋識別等)。
8.2.1基于用戶知道什么的身份認證
最普通的身份認證形式是用戶標識(ID)和口令(Password)的組合,如圖8-1所示。這種技術(shù)僅僅依賴于用戶知道什么的事實。通常采用的是基于知識的傳統(tǒng)口令技術(shù),但也有其它技術(shù),如密鑰。
通常,口令系統(tǒng)的運作需要用戶輸入用戶標識和口令(或PIN碼)。系統(tǒng)對輸入的口令與此前為該用戶標識存貯的口令進行比較。如果匹配,該用戶就可得到授權(quán)并獲得訪問權(quán)。
圖8-1基于用戶名和口令的身份認證
口令的優(yōu)點:口令作為安全措施已經(jīng)很長時間并成功地為計算機系統(tǒng)提供了安全保護。它已經(jīng)集成到很多操作系統(tǒng)中,用戶和系統(tǒng)管理員對它非常熟悉。在可控環(huán)境下管理適當(dāng)?shù)脑?,口令系統(tǒng)可提供有效的安全保護。
口令存在的問題:由于口令系統(tǒng)的安全依賴于口令的保密性。由于用戶為了方便記憶而在設(shè)置口令時常使用姓名拼音、生日、電話號碼等,這樣口令就會很容易地被猜出。另外只要用戶訪問一個新的服務(wù)器,都必須提供新口令。
8.2.2基于用戶擁有什么的身份認證
盡管某些身份認證技術(shù)是完全基于用戶擁有什么,但是它在一定程度上還是和基于用戶知道什么的技術(shù)結(jié)合在一起的。這種結(jié)合比單一地采用一種技術(shù)的安全性大大提高了(如圖8-2所示)。通常基于用戶擁有什么的身份認證技術(shù)使用的是令牌,這里介紹兩種令牌:記憶令牌和智能卡。
圖8-2基于數(shù)字證書的身份認證
記憶令牌只存儲信息,不對信息進行處理,令牌上信息的讀取和寫入是用專門的讀/寫設(shè)備來完成的。記憶令牌的最通用形式是磁卡(就像信用卡背面一樣有一條磁條)。通常用于計算機認證的記憶令牌是ATM卡,它是采用用戶擁有什么(卡)和用戶知道什么(身份識別碼)的組合。
記憶令牌的優(yōu)點在于:當(dāng)它和身份識別碼一起使用時比單獨使用口令的機制更安全,因為攻擊者很難獲得這樣的令牌以進入計算機系統(tǒng)。但是它也面臨一些問題:需要專門的讀取器;令牌的丟失問題等。
智能卡通過在令牌中采用集成電路以增加其功能。同樣智能卡還需要用戶提供身份識別碼或口令等基于用戶知道的知識的認證手段。智能卡一般由于其采用的物理特性、接口、協(xié)議的不同而不同。根據(jù)物理特性不同,智能卡分為信用卡型智能卡(內(nèi)嵌微處理器)和類似計算器、鑰匙、便攜式物體的智能卡。對于接口來說,一般有人工接口和電子接口兩種,人工接口多采用顯示器或鍵盤式,而電子接口多采用專門的讀寫器。智能卡所采用的認證協(xié)議有靜態(tài)的口令交換協(xié)議、動態(tài)口令生成協(xié)議、提問-應(yīng)答式協(xié)議等。
智能卡有著很大的靈活性并解決了很多認證問題。它比記憶令牌有著更大的安全性。另外,它可提供一次性口令機制,這樣使得安全性大大地提高了。
8.2.3基于用戶是誰的身份認證
基于用戶是誰的身份認證是基于用戶獨有的識別特征。這種機制采用的是生物特征(Biometrics)識別技術(shù),它依賴的是用戶獨特的生物特征來認證用戶的身份。這些生物特征包括:
(1)生理特征(Physiologicalcharacteristic)是指對人體某部分進行直接測量所獲得的數(shù)據(jù),代表性的生理特征有指紋、視網(wǎng)膜、臉型、掌紋等。
(2)行為特征(Behavioralcharacteristic)是指對個人習(xí)慣性動作的度量,是對人體特征的間接性測量。代表性的行為特征有聲紋、手寫簽名、擊鍵模式等。
上述這些啟發(fā)于人的身體特征具有不可復(fù)制、不易遺忘或丟失的特點,而且人的指紋、掌紋、臉型、發(fā)音、虹膜、視網(wǎng)膜、骨架等都具有唯一性和穩(wěn)定性的特征,為實現(xiàn)更安全更方便的身份認證提供了物理條件。生物特征與人體是唯一綁定的,防偽性好,不易偽造或被盜。所以相應(yīng)的各種基于人體的生物特征識別技術(shù)研究越來越被人們所重視。以下重點對指紋識別和擊鍵模式識別進行介紹。
8.2.4指紋識別技術(shù)
指紋識別技術(shù)是通過計算機實現(xiàn)的身份識別手段,也是當(dāng)今應(yīng)用最為廣泛的生物特征識別技術(shù)。指紋由于其具有終身不變性、唯一性和方便性,已幾乎成為生物特征識別的代名詞。
指紋是指人的手指末端正面皮膚上凸凹不平產(chǎn)生的紋線。紋線有規(guī)律的排列形成不同的紋型。一般的分被分成五大類型:左環(huán)類、右環(huán)類、旋渦螺旋類(Whorl也就是“斗”)、拱類、尖拱類,如圖8-3所示。這種分類是利用指紋的總體全局特征,是基于指紋脊(Ridges)或谷(Valleys)的整體流向以及指紋的核心點。指紋分類的主要目的是方便大容量指紋庫的管理,并減小搜索空間,加速指紋匹配過程。
圖8-3指紋總體分類
另外一種指紋的特征就是其局部特征,即紋線的起點、終點、結(jié)合點和分叉點等,它們稱為指紋的細節(jié)特征點(Minutiae)。圖8-4給出最常見的七種細節(jié)特征點。
圖8-4七種細節(jié)特征點
指紋識別即指通過比較不同指紋的細節(jié)特征點來進行鑒別。采用的特征矢量如:[類型、x\y坐標、角度]。圖8-5給出了紋線端點和分叉點的坐標及其與水平方向的夾角。由于每個人的指紋不同,就是同一人的十指之間,指紋也有明顯區(qū)別,因此,根據(jù)指紋所計算得出的特征矢量可用于身份鑒定。
圖8-5特征點的坐標和角度
指紋識別系統(tǒng)是一個典型的模式識別系統(tǒng),包括指紋圖像獲取、處理、特征提取和比對等模塊,如圖8-6所示。
圖8-6指紋識別系統(tǒng)
指紋圖像采集。通過專門的指紋采集儀可以采集活體指紋圖像。目前常用的指紋采集設(shè)備有三種,光學(xué)式、硅芯片式、超聲波式。
光學(xué)指紋采集器具有使用時間長,對溫度等環(huán)境因素的適應(yīng)能力強,分辨率較高的優(yōu)點。但是由于受光路限制,無畸變型采集器尺寸較大,通常有較嚴重的光學(xué)畸變,采集窗口表面往往有痕跡遺留現(xiàn)象。CCD器件可能因壽命老化,有降低圖像質(zhì)量等缺陷。
硅芯片式指紋采集器出現(xiàn)于20世紀90年代末。硅傳感器為電容的一個極板,手指則是另一極板,利用手指紋線的脊和谷相對于平滑的硅傳感器之間的電容差,形成8比特的灰度圖像。
超聲波式指紋采集器,可能是最準確的指紋采集器。這種采集器發(fā)射超聲波,根據(jù)經(jīng)過手指表面,采集器表面和空氣的回波來測量反射距離,從而可以得到手指表面凹凸不平的圖像。超聲波可以穿透灰塵和汗?jié)n等,從而得到優(yōu)質(zhì)的圖像。
指紋圖像處理。在實際應(yīng)用中,由于受手指本身的因素和采集條件的影響,采集到的指紋圖像會不同程度地受到各種噪聲的干擾,在進行分類和細節(jié)匹配之前一般要對采集到的指紋圖像做增強處理。指紋圖像增強的目的是對低質(zhì)量的灰度指紋圖進行增強,得到清晰的紋線結(jié)構(gòu)。
指紋圖像增強算法多數(shù)是基于方向場估計的圖像濾波算法。圖像處理涉及指紋區(qū)域檢測、圖像質(zhì)量判斷、方向圖和頻率估計、圖像增強、指紋圖像二值化和細化等。
指紋形態(tài)和細節(jié)特征提取。指紋形態(tài)特征,包括中心(上、下)和三角點(左、右)等,指紋的細節(jié)特征點主要包括紋線的起點、終點、結(jié)合點和分叉點等。
指紋匹配。可以根據(jù)指紋的紋形進行粗匹配,進而利用指紋形態(tài)和細節(jié)特征進行精確匹配,給出兩枚指紋的相似性得分。根據(jù)應(yīng)用的不同,對指紋的相似性得分進行排序或給出是否為同一指紋的判決結(jié)果。
指紋識別過程。具有登記和識別兩過程,用戶需要先采集指紋,然后計算機系統(tǒng)自動進行特征提取,提取后的特征將作為模板保存在數(shù)據(jù)庫或其它指定的地方。在識別或驗證階段,用戶首先要采集指紋,然后計算機系統(tǒng)自動進行特征提取,提取后的待驗特征將與數(shù)據(jù)庫中的模板進行比對,并給出比對結(jié)果。在很多場合,用戶可能要輸入其它的一些輔助信息,以幫助系統(tǒng)進行匹配,如帳號、用戶名等。這是個通用過程,對所有的生物特征識別技術(shù)都適用。
8.2.5擊鍵特征識別
許多常見的生物特征識別技術(shù),如指紋識別技術(shù)、面部特征識別技術(shù)、語音識別技術(shù)、虹膜識別技術(shù)等,是需要配備額外的特征采集設(shè)備才能使用的,因此應(yīng)用起來不太方便。而擊鍵特征作為人的一種行為特征,與其它生物特征相比,不需要特殊的硬件設(shè)備,只需要常規(guī)的鍵盤即可。擊鍵特征完全靠軟件捕獲,所以任何接受鍵盤輸入事件的系統(tǒng)均可運用這項技術(shù)。
生物擊鍵特征識別技術(shù)通過用戶固有的擊鍵特性對用戶身份進行識別,避免了信息系統(tǒng)單純依靠口令認證用戶身份的不安全性。同時比起其它識別技術(shù)而言具有更大的自主性和靈活性。
擊鍵特征包括用戶在敲擊鍵盤時對按鍵的壓力、速度和節(jié)奏。每個人由于習(xí)慣、情緒、環(huán)境的不同,擊鍵特征都存在差異。但是在正常情況下輸入熟悉的字符串時,他的擊鍵特征分布卻是相對簇集的,總是在某一個范圍之內(nèi)擺動。
通??梢杂冒存I壓下時刻和釋放時刻兩個時刻作為基本參數(shù)提取用戶的擊鍵特性。最常見的擊鍵特性有如下四種:
(1)
P-P(Press-Press)時延:相鄰兩次壓下按鍵之間的時間間隔。
(2)
R-R(Release-Release)時延:相鄰兩次釋放按鍵之間的時間間隔。
(3)
P-R(Press-Release)時延:壓下當(dāng)前按鍵到釋放該按鍵的時間間隔。
(4)
R-P(Release-Press)時延:釋放前一按鍵到壓下后一按鍵的時間間隔。
對于具體的某個用戶,通過預(yù)先多次采集其擊鍵數(shù)據(jù)可以構(gòu)成一個擊鍵數(shù)據(jù)集,其中的樣品均屬于與該用戶相對應(yīng)的模式類。
8.3第三方認證
所謂第三方認證,就是在相互不認識的實體之間提供安全通信。最早實現(xiàn)第三方認證的是Kerberos認證系統(tǒng),它的誕生為分布式系統(tǒng)的I&A提供了一種第三方認證機制。而另一個第三方認證系統(tǒng)是基于X.509數(shù)字證書。
Kerberos的缺點是它在實體之間的I&A僅依靠密鑰技術(shù),或?qū)ΨQ密碼系統(tǒng)。近年來,Kerberos的擴充也支持了X.509認證。X.509標準是由國際標準化組織(InternationalStandardsOrganization,ISO)開發(fā)的許多標準中的一部分,其目標就是要解決分布式計算的安全問題。X.509認證是基于公開密鑰,或者非對稱密碼系統(tǒng)的,它克服了Kerberos存在的問題。
8.3.1Kerberos概述
Kerberos是為TCP/IP網(wǎng)絡(luò)設(shè)計的可信第三方認證協(xié)議。網(wǎng)絡(luò)上的Kerberos服務(wù)器起著可信仲裁者的作用。Kerberos可提供安全的網(wǎng)絡(luò)鑒別,允許個人訪問網(wǎng)絡(luò)中不同的機器。Kerberos基于對稱密碼學(xué)(采用的是DES,但也可用其它算法替代),它與網(wǎng)絡(luò)上的每個實體分別共享一個不同的秘密密鑰,是否知道該秘密密鑰便是身份的證明。
Kerberos最初是在麻省理工學(xué)院(MIT)為Athena項目而開發(fā)的,Kerberos模型是基于Needham和Schroeder[1]提議的可信第三方協(xié)議。Kerberos的設(shè)計目標[2]就是提供一種安全、可靠、透明、可伸縮的認證服務(wù)。在Kerberos模型中,主要包括以下幾個部分:客戶機、服務(wù)器、認證服務(wù)器(AuthenticationServer)、票據(jù)授予服務(wù)器(Ticket-GrantingServer)。其組成如圖8-7所示。
圖8-7Kerberos組成
Kerberos有一個所有客戶和自己安全通信所需的秘密密鑰數(shù)據(jù)庫(KDC),也就是說Kerberos知道每個人的秘密密鑰,故而它能產(chǎn)生消息,向每個實體證實另一個實體的身份。Kerberos還能產(chǎn)生會話密鑰,只供一個客戶機和一個服務(wù)器(或兩個客戶機之間)使用,會話密鑰用來加密雙方的通信消息,通信完畢,會話密鑰即被銷毀。
Kerberos使用DES加密。Kerberos第4版提供非標準的鑒別模型。該模型的弱點是:它無法檢測密文的某些改變。Kerberos第5版使用CBC模式。
8.3.2KerberosV4認證消息對話
下面我們討論第4版Kerberos身份認證進程的處理過程。
(1)在客戶登錄到本地工作站以后,客戶向認證服務(wù)器(AS)發(fā)送一個服務(wù)請求,請求獲得指定應(yīng)用服務(wù)器的“憑證(Credentials)”(如圖8-8所示[消息1])。所獲憑證可直接用于應(yīng)用服務(wù)器或票據(jù)授予服務(wù)器(TGS)。
圖8-8Kerberos認證消息交換過程
①?C
AS:IDc||IDtgs||TS1
該消息包含客戶ID,以及票據(jù)授予服務(wù)器的ID和時間戳。
(2)認證服務(wù)器(AS)以憑證作為響應(yīng),并用客戶的密鑰加密(如圖8-8所示[消息2])憑證。憑證由下面幾部分組成:票據(jù)授予服務(wù)器“票據(jù)(ticket)”;臨時加密密鑰Kc,tgs(稱為會話密鑰)。
②?AS
C:EKc[Kc,tgs||IDtgs||TS2||Lifetime2||Tickettgs]
Tickettgs=EKtgs[Kc,tgs||IDv||ADc||IDtgs||TS2||Lifetime2]
其中,票據(jù)Tickettgs用AS和TGS之間的共享密鑰EKtgs加密,從而確保客戶和其它對手無法修改其內(nèi)容。為了防止對手以后再次使用票據(jù)來欺騙TGS,票據(jù)還包含了時間戳以及生命周期(票據(jù)的合法時間段)。EKc是指用客戶同AS共享的口令來加密該憑證,確保只有正確的客戶才能恢復(fù)憑證。Lifetime2是該憑證的生命周期。
(3)擁有了票據(jù)和會話密鑰,客戶C就做好了向TGS服務(wù)器靠近的準備??蛻粝騎GS服務(wù)器發(fā)送消息請求獲得訪問某個特定應(yīng)用服務(wù)器的票據(jù)Ticketv(如圖8-8所示[消息3])。
③?C
TGS:IDv||Tickettgs||Authenticatorc
Authenticatorc
=
EKc,tgs[IDc||ADc||TS3]
Tickettgs
=
EKtgs[Kc,tgs||IDv||ADc||IDtgs||TS2||Lifetime2]
該消息包含了身份驗證器(Authenticatorc),它包括了C用戶的ID和地址以及時間戳。與票據(jù)不同的是,票據(jù)可以重復(fù)使用,而身份驗證器只能使用一次,而且生命周期很短。TGS可以用與AS共享的密鑰解密票據(jù)。這個票據(jù)指出已經(jīng)向用戶C提供了會話密鑰Kc,tgs。然后TGS可以檢查身份驗證器來證明客戶的名稱和地址是否與票據(jù)中的名稱和接受消息的地址相同。如果都相同,TGS可以確保票據(jù)的發(fā)送方是票據(jù)的真正擁有者。
(4)
TGS服務(wù)器返回應(yīng)用服務(wù)器票據(jù)以應(yīng)答(如圖8-8所示[消息4])客戶請求。
④?TGS
C:EKc,tgs[Kc,v||IDv||TS4||Ticketv]
?Ticketv=EKv[Kc,v||IDc||ADc||IDv||TS4||Lifetime4]
此消息已經(jīng)用TGS和C共享的會話密鑰進行了加密,它包含了C和服務(wù)器V共享的會話密鑰Kc,v,V的ID和票據(jù)的時間戳。票據(jù)本身也包含了同樣的會話密鑰。
現(xiàn)在C就擁有了V可重用的票據(jù)授予的票據(jù)。當(dāng)C出具此票據(jù)時,如消息5所示,它就發(fā)出了身份驗證碼。應(yīng)用服務(wù)器可以解密票據(jù),恢復(fù)會話密鑰并解密身份驗證碼。
(5)客戶將該ticket(包含了客戶的身份證明和會話密鑰的拷貝,這些都以服務(wù)器的密鑰加密)傳送給應(yīng)用服務(wù)器(如圖8-8所示[消息5])。
⑤?C
V:Ticketv||Authenticatorc
Ticketv
=EKv[Kc,v||IDc||ADc||IDv||TS4||Lifetime4]
Authenticatorc?=?EKc,v[IDc||ADc||TS5]
(6)現(xiàn)在客戶和應(yīng)用服務(wù)器已經(jīng)共享會話密鑰,如果需要互相身份驗證,服務(wù)器可以發(fā)送消息6進行響應(yīng),以證明自己的身份。服務(wù)器返回身份驗證碼中的時間戳值+1,再用會話密鑰進行加密。C可以將消息解密,恢復(fù)增加1后的時間戳。因為消息是由會話密鑰加密的,所以,C能夠保證只有V才能創(chuàng)建它。消息的內(nèi)容向C保證它不是以前的應(yīng)答。
⑥?V
C:EKc,v[TS5+1]
共享的會話密鑰還可用于加密雙方進一步的通信或交換加密下一步通信用的單獨子會話密鑰。
在上述六個消息當(dāng)中,消息1和2只在用戶首次登錄系統(tǒng)時使用。消息3和4在用戶每次申請某個特定應(yīng)用服務(wù)器的服務(wù)時使用。消息5則用于每個服務(wù)的認證。消息6可選,只用于互相認證。
8.3.3Kerberos基礎(chǔ)結(jié)構(gòu)和交叉領(lǐng)域認證
當(dāng)一個系統(tǒng)跨越多個組織時,就不可能用單個認證服務(wù)器實現(xiàn)所有的用戶注冊。相反,需要多個認證服務(wù)器,各自負責(zé)系統(tǒng)中部分用戶和服務(wù)器的認證。我們稱某個特定認證服務(wù)器所注冊的用戶和服務(wù)器的全體為一個領(lǐng)域(Realm)。交叉域認證允許一個委托人(Principal)向注冊在另外一個域的服務(wù)器驗明自己的身份。
要支持交叉領(lǐng)域認證,Kerberos必須滿足以下三個條件:
(1)
Kerberos服務(wù)器在數(shù)據(jù)庫中必須擁有所有用戶ID和所有參與用戶口令哈希后的密鑰。所有用戶都已經(jīng)注冊到Kerberos服務(wù)器。
(2)
Kerberos服務(wù)器必須與每個服務(wù)器共享保密密鑰。所有的服務(wù)器已經(jīng)注冊到Kerberos服務(wù)器。
(3)不同領(lǐng)域的Kerberos服務(wù)器之間共享一個保密密鑰。這兩個Kerberos服務(wù)器要互相注冊。
.
一個Kerberos客戶(委托人)為了向遠程領(lǐng)域驗證自己身份,首先需要從本地認證服務(wù)器(AS)獲得一張遠程領(lǐng)域的票據(jù)授予票(ticketgrantingticket)。這就要求委托人所在的本地認證服務(wù)器同驗證人所在的遠程領(lǐng)域認證服務(wù)器共享一個保密密鑰(條件3)。然后委托人使用該票據(jù)授予票據(jù)從遠程認證服務(wù)器交換票據(jù)信息。遠程認證服務(wù)器利用共享的交叉域保密密鑰來驗證來自外來領(lǐng)域的票據(jù)授予票據(jù)的有效性。如果有效,向委托人發(fā)放新票據(jù)和會話密鑰。交叉領(lǐng)域之間的認證流程如圖8-9所示。圖8-9交叉領(lǐng)域認證
8.3.4Kerberos版本5
KerberosV5在RFC4120中定義。下面只對版本5對版本4所做的改進進行簡單描述。版本5在兩個方面解決了版本4的局限性:環(huán)境缺陷和技術(shù)缺陷。因為版本4在設(shè)計之初是在雅典娜項目背景下的,并沒有考慮通用環(huán)境下的身份認證問題,從而導(dǎo)致了環(huán)境缺陷。
(1)加密系統(tǒng)的相關(guān)性:版本4需要使用DES。DES的出口管制和DES的強度都成了問題所在。在版本5中,可以用加密類型標識符進行標記,所以可以使用任何一種加密技術(shù)。
(2)?Internet協(xié)議相關(guān)性:版本4中只能使用IP地址,而版本5中網(wǎng)絡(luò)地址可以使用類型和長度進行標記,允許使用任何類型的網(wǎng)絡(luò)地址。
(3)消息字節(jié)順序:版本4中發(fā)送字節(jié)順序由發(fā)送方自定。版本5中所有的消息結(jié)構(gòu)都用抽象語法標記1號(AbstractSyntaxNotationNo1)和基本編碼規(guī)則(BasicEncodingRules)進行定義。
(4)票據(jù)的生命周期:版本4中生命周期的數(shù)值編碼為8位數(shù)(以5分鐘為單位)。所以其最大生命周期為28?×?5?=?1280分鐘。這對某些應(yīng)用來說太短。在版本5中,票據(jù)包括顯式的開始時間和結(jié)束時間,允許票據(jù)具有任意生命周期。
(5)身份驗證轉(zhuǎn)發(fā):版本5支持多跳(multi-hop)交叉領(lǐng)域認證,允許密鑰的層次共享。也就是說每個領(lǐng)域同其子女和父母共享一個密鑰。例如,領(lǐng)域同edu領(lǐng)域共享一把密鑰,同時,edu領(lǐng)域還和,,等領(lǐng)域共享一把密鑰。如果同之間沒有共享密鑰可用,來自的客戶hu@要向域進行身份認證,可以首先通過領(lǐng)域獲得一張來自edu領(lǐng)域的票據(jù)授予票據(jù),然后利用該票據(jù)授予票據(jù)從edu認證服務(wù)器獲得領(lǐng)域的票據(jù)授予票據(jù),最終獲得注冊到認證服務(wù)器的某應(yīng)用服務(wù)器票據(jù)。最后的票據(jù)內(nèi)記錄了所有經(jīng)過的中間領(lǐng)域。最末尾的服務(wù)器決定是否信任這些領(lǐng)域。
除了環(huán)境缺陷外,版本4自身還存在一些技術(shù)缺陷。在文獻[4]有詳細論述,版本5試圖解決這些缺陷。這些缺陷主要有:
(1)雙重加密:前面的消息2和4中,提供給客戶的票據(jù)加密了兩次,第一次用目標服務(wù)器的密鑰,第二次用客戶機知道的保密密鑰。實際上第二次的加密是浪費計算資源,完全沒有必要。
(2)?PCBC加密:版本4中的加密利用了非標準的DES模式。這種模式已經(jīng)證明對涉及到密文塊互相交換的攻擊是薄弱的。版本5提供了顯式的完整性機制,允許用標準的CBC方式進行加密。
(3)會話密鑰:每個票據(jù)都包括一個會話密鑰,客戶機用它來加密要發(fā)送給票據(jù)相關(guān)服務(wù)的身份驗證碼。而且,客戶機和服務(wù)器還可以用會話密鑰來保護會話中傳送的消息。但是,因為可以重復(fù)使用同樣的票據(jù)來獲得特定的服務(wù),所以要冒一定的風(fēng)險:對手可能重放發(fā)送給客戶機和服務(wù)器的老會話中的消息。在版本5種,客戶機和服務(wù)器可以協(xié)商出一個子會話密鑰,只在一次連接中使用。每次客戶機的新訪問都需要一個新的子會話密鑰。
(4)口令攻擊:兩種版本對密鑰攻擊來說都很脆弱。AS對發(fā)送給客戶機的消息都用密鑰進行加密,而該密鑰都是以用戶共享的口令為基礎(chǔ)的。對手可以捕獲該消息,然后采用口令窮舉法進行攻擊。
8.4X.509
認證即證明、確認個體的身份。傳統(tǒng)的認證方式多采用面對面的方式,或者以一些如筆跡、習(xí)慣動作及面貌等生理特征來辨識對方。而在互聯(lián)網(wǎng)逐漸深入每個人生活之中的今天,每一位網(wǎng)絡(luò)用戶都可以運用網(wǎng)絡(luò)來進行各種活動,對于認證的需求也更是大大提高。
為了在開放網(wǎng)絡(luò)上實現(xiàn)遠程的網(wǎng)絡(luò)用戶身份認證,ITU于1988年制定了認證體系標準“開放性系統(tǒng)互連—目錄服務(wù):認證體系X.509”。
X.509作為定義目錄業(yè)務(wù)的X.500系列的一個組成部分,是由ITU—T建議的,這里所說的目錄實際上是維護用戶信息數(shù)據(jù)庫的服務(wù)器或分布式服務(wù)器集合,用戶信息包括用戶名到網(wǎng)絡(luò)地址的映射和用戶的其它屬性。X.509定義了X.500目錄向用戶提供認證業(yè)務(wù)的一個框架,目錄的作用是存放用戶的公鑰證書。X.509還定義了基于公鑰證書的認證協(xié)議。由于X.509中定義的證書結(jié)構(gòu)和認證協(xié)議已被廣泛應(yīng)用于S/MIME、IPSec、SSL/TLS以及SET等諸多應(yīng)用過程,因此X.509已成為一個重要的標準。
X.509的最初發(fā)布日期是1988年,1993年對初稿進行了修訂,1995年發(fā)布了第三版。
X.509的基礎(chǔ)是公鑰密碼體制和數(shù)字簽名,但其中未特別指明使用哪種密碼體制(建議使用RSA),也未特別指明數(shù)字簽名中使用哪種哈希函數(shù)。1988年公布的第一版中描述了一個建議的哈希,但由于其安全性問題而在第二版中去掉了。
在X.509中,對于認證推出了“簡單認證”及“強認證”兩種不同安全度的認證等級,并且描述了公開密鑰證書格式、證書管理、證書路徑處理、目錄數(shù)據(jù)樹結(jié)構(gòu)及密鑰產(chǎn)生,并提到如何將認證中心之間交叉認證的證書儲存于目錄中,以減少證書驗證時必須從目錄服務(wù)中獲得的證書信息。
X.509主要內(nèi)容包括:
(1)簡單認證(SimpleAuthentication)程序:在此部分,X.509建議了安全度較低的身份認證程序,此部分所定義的驗證程序使用最常見的口令(Password)認證的技術(shù)來識別通信雙方。只要用戶可以提供正確的口令,就認為他/她是合法用戶。該認證體系僅能提供較簡單、有限的保護,以防止未授權(quán)的存取訪問。
(2)強認證(StrongAuthentication)程序:該程序提出了一個高安全度的身份認證機制。其驗證程序是使用公開密鑰密碼學(xué)的技術(shù),來識別通信雙方。強認證可分為“單向的”、“雙向的”及“三向的”三種認證方式,分別提供不同安全層次的安全認證。對于公開密鑰證書的使用有詳細的定義,以強化其認證能力。
(3)密鑰及證書管理:因為強認證程序中需要公開密鑰密碼系統(tǒng)的支持來實現(xiàn)其認證目的。這部分內(nèi)容就是針對密鑰以及證明密鑰正確性的證書管理。
(4)證書擴充及證書吊銷列表擴充(CertificateandCRLextensions):由于1988年版的X.509中對于證書及證書吊銷列表的定義并不是很完善,所以在1995年針對這些問題,提出X.509修正案,對這兩部分作了一些修正與補充,以彌補舊版X.509的不足。最終于1997年6月將這兩部分合二為一,為最新版的X.509文件。
8.4.1認證協(xié)議—簡單認證過程
X.509所提出的簡單認證方式,與一般常見的UNIX系統(tǒng)基于口令的認證方式類似。它是根據(jù)每位用戶所提供的用戶名以及一個只有收、發(fā)雙方知道的用戶密碼,來實現(xiàn)安全程度較低的認證程序。
簡單驗證中的認證方式,并未以加密的方式保護口令及用戶ID,最多只使用單向函數(shù)的保護,非常容易實現(xiàn),可以提供安全需求較低的封閉區(qū)域的認證。X.509提供的簡單認證有下列三種運行方式:
(1)用戶將其口令及用戶ID,未做任何加密保護,直接以明文方式傳送給接收端,其執(zhí)行步驟如圖8-10所示,這種認證方式的主要缺陷在于明文傳輸用戶代號和口令。
圖8-10口令及用戶代號認證
(2)用戶將其個人口令、用戶ID、一個隨機數(shù)和/或時間戳,在經(jīng)過一單向函數(shù)保護后,傳送至接收瑞。
(3)用戶用上面(2)方式所述的方法,先經(jīng)一次單向函數(shù)保護所有數(shù)據(jù),然后再連同另一組隨機數(shù)和/或時間戳,再經(jīng)過第二次的單向函數(shù)保護后,傳送至接收端。
在(2)及(3)兩種認證方式中,發(fā)方A送至收方B的信息內(nèi)容都經(jīng)過單向函數(shù)運算的雜湊值,將此雜湊值經(jīng)網(wǎng)絡(luò)傳給對方,密碼的明文不會出現(xiàn)在網(wǎng)絡(luò)上,如圖8-11所示。
圖8-11(2)和(3)認證方法
在(2)及(3)兩種認證方法中,因為用戶的口令并不直接送到網(wǎng)絡(luò)上,而是經(jīng)單向函數(shù)f1及f2的運算后,再送到網(wǎng)絡(luò),所以即使在網(wǎng)絡(luò)上被攻擊者攔截到,因為有單向函數(shù)的保護,仍然很難反推出用戶口令。且在以單向函數(shù)保護的運算過程中,又加入時間戳和隨機數(shù)一起運算,所以攻擊者若將信息重發(fā),雖然可以通過驗證,因“時間戳”是記錄送方送出的時間,若是與收方收到的時間相差得太多,可以確定是攻擊者的重發(fā),欲假冒合法用戶,應(yīng)該予以拒絕,如此可以防止重放攻擊。
另外,在X.509中有說明,(3)方法中的兩次單向函數(shù)的算法,不一定要不同,并沒有強制規(guī)定,可以隨應(yīng)用系統(tǒng)的需要自由使用。
簡單認證程序在安全性的考慮上比較簡單,只可以讓收方B認證發(fā)方A為合法用戶,無法讓發(fā)方A也可以認證收方B,達到收發(fā)雙方相互認證的安全程度。所以簡單認證程序,比較適合在較封閉的區(qū)域內(nèi)使用;若是在一般的開放性系統(tǒng)中,面對廣域網(wǎng)絡(luò),“簡單認證”在安全的需求上就嫌不足了,應(yīng)該有更強的認證方式,以保證遠程認證的正確性。在X.509中定義的“強認證”,即可達到更強的認證目的。
8.4.2認證協(xié)議—
強認證程序
X.509以公開密鑰密碼的技術(shù)能夠讓通信雙方容易共享密鑰的特點,并利用公鑰密碼系統(tǒng)中數(shù)字簽名的功能,強化網(wǎng)絡(luò)上遠程認證的能力,定義出強認證程序,以達到所謂“強認證”的目的。
取得用戶公鑰
當(dāng)網(wǎng)絡(luò)用戶面對因特網(wǎng)時,若想在網(wǎng)絡(luò)上做秘密的通信,以傳統(tǒng)密碼學(xué)而言,通信雙方必須先共享一把密鑰,這種先決條件在目前互聯(lián)網(wǎng)環(huán)境上要實現(xiàn)并不容易。1976年,由Diffie及Hellman兩位密碼學(xué)者所提出的公開密鑰概念,很有效地解決了傳統(tǒng)密碼學(xué)上網(wǎng)絡(luò)共享密鑰的問題,從而讓網(wǎng)絡(luò)上的通信雙方可以很容易實現(xiàn)秘密通信。在此之后,隨著Knapsack、RSA及ELGamal等公開密鑰密碼系統(tǒng)的提出,更增加了公開密鑰系統(tǒng)的實用性,但相對的也衍生出另一問題,就是網(wǎng)絡(luò)上密鑰的確認問題。
試想,在圖8-12中,當(dāng)網(wǎng)絡(luò)用戶Bob自網(wǎng)絡(luò)上獲得一把宣稱是另一用戶Alice的公開密鑰時,Bob如何相信這把公開密鑰是屬于Alice的?在網(wǎng)絡(luò)環(huán)境下,無法真正看到對方,直接拿到對方的公鑰,任意一個用戶(如圖8-12的Cherry)都可能仿冒Alice傳送假的公開密鑰給Bob,讓Bob誤以為他所通信的對方就是A,而實際上Bob是與另一不知名的攻擊者通信。此種攻擊法之所以能夠成功,究其原因在于用戶的公鑰,并未與用戶的身份緊密相結(jié)合。公鑰必須讓他人可以辨別、驗證且、無法偽造,且與個人的身份相結(jié)合,才可以有效防止此類攻擊的發(fā)生。
圖8-12公鑰的偽造
目前最常用來防止上述攻擊法的機制,即所謂的認證中心(CertificateAuthority,CA)技術(shù),通過為每位網(wǎng)絡(luò)用戶簽發(fā)電子證書來防止這類攻擊。
此方法如圖8-13所示,以類似傳統(tǒng)大使館頒發(fā)、登記公民簽證的方式,由大家所相信的公正第三者或認證機構(gòu)(CA),以數(shù)字簽名的技術(shù),將每一個用戶的公鑰與個人的身份數(shù)據(jù)簽署成電子證書(以下簡稱證書)。當(dāng)用戶收到它人的證書之后,可以經(jīng)過一定的驗證程序,確定所收到的證書無誤,確信此證書內(nèi)所含的公開密鑰、身份數(shù)據(jù)及其它相關(guān)內(nèi)容,確實是證書上聲稱的主體(Subject)的,而不是其它主體用戶的。如此可將用戶身份與用戶的公鑰緊密的結(jié)合在一起,讓攻擊者無法偽冒他人,傳送假的公鑰欺騙其它網(wǎng)絡(luò)用戶。
圖8-13證書和公鑰
這種利用公正的第三者幫我們認證用戶公鑰的方式,可以將用戶必須認證網(wǎng)絡(luò)上每一個用戶公鑰的問題,縮減到只需認證用戶所信任的公正第三方的公鑰正確性的問題,大大增加了公開密鑰的實用性。
在X.509中提到證書必須符合下列兩個特點:
(1)所有可取得認證中心公鑰的用戶,可以認證任何由該認證中心簽發(fā)的證書。
(2)除認證中心本身以外,其它任何人修改證書的動作都會被察覺、檢測出來。
由于證書有上述的兩個特點,我們可以直接把證書放到證書目錄服務(wù)中,讓用戶自由訪問存取,不需要再使用其它額外的措施保護它。而數(shù)字簽名的技術(shù)恰好合乎上述兩種特性。認證中心會以自己的私鑰為用戶簽發(fā)證書,而當(dāng)用戶拿到證書之后,可以使用認證中心的公鑰驗證所獲得證書的正確性,進而相信證書中所含的信息是正確的,進而相信證書所含的公鑰是正確的。
在X.509中,認證中心對一些用戶的相關(guān)數(shù)據(jù),例如,用戶姓名、用戶識別碼、公鑰的內(nèi)容、簽發(fā)者的身份數(shù)據(jù)以及其它用戶的相關(guān)數(shù)據(jù),以認證中心的密鑰,運用數(shù)字簽名技術(shù)生成一個數(shù)字簽名,之后將用戶的有關(guān)數(shù)據(jù)、認證中心的簽名算法與數(shù)字簽名,合成一電子文件,就是所謂的數(shù)字證書。
8.5數(shù)字證書
數(shù)字證書包含用戶身份信息、用戶公鑰信息以及證書發(fā)行機構(gòu)對該證書的數(shù)字簽名信息。證書發(fā)行機構(gòu)的數(shù)字簽名可以確保證書信息的真實性,用戶公鑰信息可以保證數(shù)字信息傳輸?shù)耐暾?,用戶的?shù)字簽名可以保證數(shù)字信息的不可抵賴性。
數(shù)字證書是各類終端實體和最終用戶在網(wǎng)上進行信息交流及商務(wù)活動的身份證明,在電子交易的各個環(huán)節(jié),交易的各方都需驗證對方數(shù)字證書的有效性,從而解決相互間的信任問題。
用戶的數(shù)字證書是X.509的核心,證書由某個可信的證書發(fā)放機構(gòu)CA建立,并由CA或用戶自己將其放入公共目錄中,以供其它用戶訪問。目錄服務(wù)器本身并不負責(zé)為用戶創(chuàng)建公鑰證書,其作用僅僅是為用戶訪問公鑰證書提供方便。
X.509中數(shù)字證書的一般格式如圖8-14所示,本章附錄給出了數(shù)字證書的樣例。
圖8-14X.509的證書和證書吊銷列表格式
證書中的數(shù)據(jù)域有:
(1)版本號:若默認,則為第1版。如果證書中需有發(fā)行者唯一識別符(InitiatorUniqueIdentifier)或主體唯一識別符(SubjectUniqueIdentifier),則版本號為2,如果有一個或多個擴充項,則版本號為3。
(2)序列號:為一整數(shù)值,由同一CA發(fā)放的每個證書的序列號是唯一的。
(3)簽名算法識別符:簽署證書所用的算法及相應(yīng)的參數(shù)。
(4)發(fā)行者名稱:指建立和簽署證書的CA名稱。
(5)有效期:包括證書有效期的起始時間和終止時間。
(6)主體名稱:指證書所屬用戶的名稱,即這一證書用來證明私鑰用戶所對應(yīng)的公開密鑰。
(7)主體的公開密鑰信息:包括主體的公開密鑰、使用這一公開密鑰的算法的標識符及相應(yīng)的參數(shù)。
(8)發(fā)行者唯一識別符:這一數(shù)據(jù)項是可選的,當(dāng)發(fā)行者(CA)名稱被重新用于其它實體時,則用這一識別符來唯一標識發(fā)行者。
(9)主體唯一識別符:這一數(shù)據(jù)項也是可選的,當(dāng)主體的名稱被重新用于其它實體時,則用這一識別符來唯一地識別主體。
(10)擴充域:其中包括一個或多個擴充的數(shù)據(jù)項,僅在第3版中使用。
(11)簽名:CA用自己的秘密密鑰對上述域的哈希值進行數(shù)字簽名的結(jié)果。此外,這個域還包括簽名算法標識符。
X.509中使用以下表示法來定義證書:
CA《A》=CA{V,SN,AI,CA,TA,A,AP}
其中,Y《X》表示證書發(fā)放機構(gòu)Y向用戶X發(fā)放的證書,Y{I}表示Y對I的哈希值簽名,它由I和附加的加密哈希碼構(gòu)成。
8.5.1證書的獲取
CA為用戶產(chǎn)生的證書應(yīng)有以下特性:
(1)其它任一用戶只要得到CA的公開密鑰,就能由此得到CA為該用戶簽署的公開密鑰。
(2)除CA以外,任何其它人都不能以不被察覺的方式修改證書的內(nèi)容。
因為證書是不可偽造的,因此無需對存放證書的目錄施加特別的保護。
如果所有用戶都由同一CA為其簽署證書,則這一CA就必須取得所有用戶的信任。用戶證書除了能放在目錄中供他人訪問外,還可以由用戶直接把證書發(fā)給其它用戶。用戶B得到A的證書后,可相信用A的公開密鑰加密的消息不會被他人獲悉,還相信用A的秘密密鑰簽署的消息是不可偽造的。
如果用戶數(shù)量極多,則僅一個CA負責(zé)為用戶簽署證書就有點不現(xiàn)實。通常應(yīng)有多個CA,每個CA為一部分用戶發(fā)行、簽署證書。
設(shè)用戶A已從證書發(fā)放機構(gòu)X1處獲取了公開密鑰證書,用戶B已從X2處獲取了證書。如果A不知X2的公開密鑰,他雖然能讀取B的證書,但卻無法驗證用戶B證書中X2的簽名,因此B的證書對A來說是沒有用處的。然而,如果兩個CA:X1和X2彼此間已經(jīng)安全地交換了公開密鑰,則A可通過以下過程獲取B的公開密鑰:
(1)
A從目錄中獲取由X1簽署的X2的證書X1《X2》,因A知道X1的公開密鑰,所以能驗證X2的證書,并從中得到X2的公開密鑰。
(2)?A再從目錄中獲取由X2簽署的B的證書X2《B》,并由X2的公開密鑰對此加以驗證,然后從中得到B的公開密鑰。
以上過程中,A是通過一個證書鏈來獲取B的公開密鑰,證書鏈可表示為:
X1《X2》X2《B》
類似地,B能通過相反的證書鏈獲取A的公開密鑰,表示為X2《X1》X1《A》;
以上證書鏈中只涉及兩個證書,同樣有N個證書的證書鏈可表示為:
X1《X2》X2《X3》…XN《B》
此時任意兩個相鄰的CAXi和Xi+1已彼此間為對方建立了證書,對每一CA來說,由其它CA為這一CA建立的所有證書都應(yīng)存放于目錄中,并使用戶知道所有證書相互之間的連接關(guān)系,從而可獲取另一用戶的公鑰證書。X.509建議將所有CA以層次結(jié)構(gòu)組織起來,如圖8-15所示。用戶A可從目錄中得到相應(yīng)的證書以建立到B的以下證書鏈:
X《W》W《V》V《U》U《Y》Y《Z》Z《B》
并通過該證書鏈獲取B的公開密鑰。
圖8-15X.509的層次結(jié)構(gòu)
類似地,B可建立以下證書鏈以獲取A的公開密鑰:
Z《Y》Y《U》U《V》V《W》W《X》X《A》
8.5.2證書的吊銷
從證書的格式上我們可以看到,每一證書都有一個有效期,然而有些證書還未到截止日期前就會被發(fā)放該證書的CA吊銷,這可能是由于用戶的秘密密鑰已被泄漏,或者該用戶不再由該CA來認證,或者CA為該用戶簽署證書的秘密密鑰已經(jīng)泄露。為此,每一CA還必須維護一個證書吊銷列表CRL(CertificateRevocationList),其中存放所有未到期而被提前吊銷的證書,包括該CA發(fā)放給用戶和發(fā)放給其它CA的證書。CRL還必須由該CA簽字,然后存放于目錄以供他人查詢。
CRL中的數(shù)據(jù)域包括發(fā)行者CA的名稱、建立CRL的日期、計劃公布下一CRL的日期以及每一被吊銷的證書數(shù)據(jù)域。被吊銷的證書數(shù)據(jù)域包括該證書的序列號和被吊銷的日期。因為對一個CA來說,它發(fā)放的每一證書的序列號是唯一的,所以可用序列號來識別每一證書。
所以每一用戶收到他人消息中的證書時,都必須通過目錄檢查這一證書是否已被吊銷。為避免搜索目錄引起的延遲以及因此而增加的費用,用戶自己也可維護一個有效證書和被吊銷證書的局部緩存區(qū)。
8.6驗證證書
當(dāng)持證人甲想與持證人乙通信時,他首先查找證書數(shù)據(jù)庫并得到一個從甲到乙的證書路徑(certificationpath)和乙的公開密鑰。在X.509中強認證的實現(xiàn)是借助用戶所擁有的密鑰,來證明他的身份,其先決條件就是前述的認證中心體系已建設(shè)完成,將用戶的公鑰與個人身份緊密關(guān)聯(lián)在一起,讓公開密鑰密碼系統(tǒng)能夠順利運作。在X.509中的強認證就是基于公開密鑰密碼系統(tǒng),達到三種不同信賴程度的認證。
在X.509中定義的“強認證”程序包含了三種不同信賴程度的認證,分別是“單向認證”(One-wayauthentication)、“雙向認證”(Two-wayauthentication)以及“三向認證”(Three-wayauthentication)。以下簡述三種認證的運作方式,(以下程序都是假設(shè)收方可以正確的驗證對方的證書,但沒有限定是以何種方法驗證證書)。
8.6.1單向認證
單向認證,只包含一條信息,可達到下列認證的功能:
(1)由發(fā)送方送出的身份識別數(shù)據(jù),可以確認發(fā)送方的身份。
(2)由發(fā)送方送出的身份識別數(shù)據(jù),確實是要送給接收方的。
(3)可以確保發(fā)送方送出的身份識別數(shù)據(jù)的完整性,且可確認數(shù)據(jù)是發(fā)送方所送出的。
其認證程序如圖8-16所描述,詳細工作方式如下:
圖8-16單向認證
(1)發(fā)送方A先產(chǎn)生一不重復(fù)的數(shù)字rA用以抵御重放攻擊、防止偽造。
(2)發(fā)送方A將下列信息送至接收方B:
B,A{tA,rA,B}
X{I}表示X(在此為A)對數(shù)據(jù)I(此即為tA,rA,B)的簽名。
tA可以包含一或兩個時間,一為識別數(shù)據(jù)產(chǎn)生的時間,另一為該識別數(shù)據(jù)逾期的時間。
若要以此簽名證明某數(shù)據(jù)(SgnData)的來源時,則應(yīng)表示為
A{tA,rA,B,SgnData}
若要傳送機密數(shù)據(jù)(EncData)給收方B,例如認證程序之后的通信用的秘密密鑰,則可將機密數(shù)據(jù)加入簽名中,信息變成
A(tA,rA,B,sgnData,BP[encData])
XP[I]表示用X(在此為B)的公開密鑰加密數(shù)據(jù)I。
(3)收方B收到后,執(zhí)行下列動作:
①?B以事先定義的方法,即前面所述的從認證中心取得證書,獲得發(fā)送方A的公鑰,并檢查A的證書是否逾期或被注銷。
②驗證簽名,以確定數(shù)據(jù)的完整性。
③檢查此文件的識別數(shù)據(jù),B是否此文件的收方。
④檢查時間戳tA,是否在有效期限之內(nèi)。
⑤檢查rA是否重復(fù)出現(xiàn)過。
(在X.509中建議數(shù)字rA可以包含兩部分:一部分是順序累加的部分,另一部分是真正隨機選取的部分??梢詸z查順序累加的部分是否重復(fù)出現(xiàn)過。)
rA在tA有效期限之內(nèi)是有效的。也就是說rA順序累加的部分,在tA有效期限之內(nèi)A不會再使用。
8.6.2雙向認證
“雙向認證”,包含有兩道信息,除了前述“單向認證”的發(fā)送方送出的信息之外,收方還需產(chǎn)生一道回復(fù)信息給發(fā)方。而其在安全上達到的功能,除了前面所介紹的“單向認證”所能達到的三項認證功能外,還可達到下列認證功能:
(1)由收方送回給發(fā)方的身份識別數(shù)據(jù),且可確認數(shù)據(jù)是收方所產(chǎn)生的,信息的接收端確實是發(fā)方。
(2)可以保證由收方送回給發(fā)方的身份識別數(shù)據(jù)的完整性。
(3)雙方可以共享身份識別數(shù)據(jù)中的秘密部分。(可選)
其認證程序如圖8-17所描述,詳細工作方式如下:
前3步驟與“單向認證”相同,自第4步驟執(zhí)行方式如下:
圖8-17雙向認證
(4)收方B產(chǎn)生一不重復(fù)的數(shù)字rB,用以抵御重放攻擊以防止偽造。
(5)收方B將下列信息送至發(fā)方A:
B{tB,rB,A,rA}
tB可以包含一或兩個時間,一為識別數(shù)據(jù)產(chǎn)生時間,另一為該識別數(shù)據(jù)逾期時間。若要以此簽名證明其數(shù)據(jù)(sgnData)的來源時,可將數(shù)據(jù)加入簽名中,信息變成:
B{tB,rB,A,rA,sgnData}
若要順便傳送機密數(shù)據(jù)encData給收方B,如認證程序之后的通信用的秘密密鑰,則可將機密數(shù)據(jù)加入簽名中,信息變成:
B{tB,rB,A,rA,sgnData,AP[encData]}
(6)發(fā)方A收到后,執(zhí)行下列動作:
①以B的公鑰驗證簽名,以確定數(shù)據(jù)的完整性。
②檢查此文件的識別數(shù)據(jù),A是否此文件的收方。
③檢查時間戳tB,是否在有效期限之內(nèi)。
④檢查rB是否重復(fù)出現(xiàn)過(與單向認證一樣,此項根據(jù)需要選擇是否檢查)。
8.6.3三向認證
“三向認證”,除了前述“雙向認證”的信息之外,發(fā)方還需要再發(fā)送一道應(yīng)答信息給發(fā)方。其功能可達到前面雙向識別的功能,但是不需要檢查時間戳,只需檢查不重復(fù)隨機數(shù)是否正確即可。(因為前兩個認證程序中收、發(fā)雙方必須要有一個所謂的“同步時鐘”,才可以順利執(zhí)行。但考慮網(wǎng)絡(luò)的延遲及雙方的計算機系統(tǒng)時間的誤差,要求兩方的時間同步,在技術(shù)上比較難實現(xiàn);若只需檢查隨機數(shù),雖然是較“雙向認證”多一道信息的驗證,但是技術(shù)上較容易實現(xiàn))。
其認證程序如圖8-18所描述。詳細工作方式如下:
前6個步驟與“雙向認證”類似,但步驟2與步驟5所送出的時間戳tB及tA可以為零,步驟3與步驟6不用檢查時間戳,自第7步驟執(zhí)行方式如下:
圖8-18三向認證
(7)送方A檢查收到的不重復(fù)數(shù)字rA,與步驟1所產(chǎn)生的不重復(fù)數(shù)字是否相同。
(8)送方A將識別數(shù)據(jù)A{rB,B}回傳給B。
(9)收方B收到后,執(zhí)行下列動作。
①以A的公鑰驗證簽名,以確定數(shù)據(jù)的完整性。
②收方B檢查收到的不重復(fù)數(shù)字rB與步驟5所產(chǎn)生的不重復(fù)數(shù)字是否相同。
8.7CA系統(tǒng)結(jié)構(gòu)
公開密鑰基礎(chǔ)設(shè)施(PublicKeyInfrastructure,PKI)是一個用公鑰密碼學(xué)技術(shù)來實施和提供安全服務(wù)的具有普適性(Pervasive)的安全基礎(chǔ)設(shè)施。所謂的普適性基礎(chǔ)就是一個大環(huán)境的基本框架,一個基礎(chǔ)設(shè)施可視為一個普適性基礎(chǔ)。整個PKI的基礎(chǔ)框架由ITU-TX.509建議標準定義?;ヂ?lián)網(wǎng)工程任務(wù)組(IETF)的公鑰基礎(chǔ)設(shè)施X.509小組以它為基礎(chǔ)開發(fā)了適合于互聯(lián)網(wǎng)環(huán)境下的、基于數(shù)字證書的形式化模型(PKIX)。
而認證機構(gòu)(CertificationAuthority,CA)是PKIX的核心,是信任的發(fā)源地。CA負責(zé)產(chǎn)生數(shù)字證書和發(fā)布證書撤銷列表,以及管理各種證書的相關(guān)事宜。通常為了減輕CA的處理負擔(dān),專門用另外一個單獨機構(gòu)即注冊機構(gòu)(RegistrationAuthority,RA)來實現(xiàn)用戶的注冊、申請以及部分其它管理功能。
下面我們以O(shè)penCA認證系統(tǒng)為例說明CA的工作流程。整個CA采用圖8-19所示的體系結(jié)構(gòu)模型。
圖8-19CA系統(tǒng)結(jié)構(gòu)
在OpenCA身份認證系統(tǒng)當(dāng)中,整個CA由注冊機構(gòu)(RA)、認證中心(CA)、CA管理員平臺、訪問控制系統(tǒng)以及目錄服務(wù)器組成。RA和CA以及CA和數(shù)據(jù)庫之間的通信都是基于SSL協(xié)議的加密傳輸。
8.7.1CA服務(wù)器
CA是整個認證機構(gòu)的核心,它保存了根CA的私鑰,對其安全等級要求最高。CA服務(wù)器具有產(chǎn)生證書,實現(xiàn)密鑰備份等功能。這些功能應(yīng)盡量獨立實施。CA服務(wù)器通過安全連接同RA和LDAP服務(wù)器實現(xiàn)安全通信。
CA的主要功能如表8-1所示。
8.7.2RA服務(wù)器
RA服務(wù)器相對復(fù)雜一些。它運行于安全(實現(xiàn)雙向認證)的apache服務(wù)器上??紤]安全性,我們把RA分成兩部分:RA操作員和RA服務(wù)器??蛻糁荒茉L問到RA操作員,不能直接和RA服務(wù)器通信。所以RA操作員是因特網(wǎng)用戶進入CA的訪問點??蛻敉ㄟ^RA操作員實現(xiàn)證書申請、撤銷、查詢等功能。RA服務(wù)器也配有LDAP服務(wù)器。RA服務(wù)器由RA管理員管理。
RA服務(wù)器的功能如表8-2所示。
RA操作員的功能主要有:
(1)獲取根CA證書。
(2)證書撤銷列表。
(3)驗證證書申請用戶身份。
(4)證書申請及列表。
(5)獲得已申請的證書。
(6)發(fā)布有效證書列表。
(7)證書撤銷請求。
RA操作員和RA服務(wù)器之間的通信都通過安全Web會話實現(xiàn)(Apache+mod_ssl)。RA操作員的數(shù)量沒有限制。
(注意:RA的證書是通過bin/目錄下的腳本程序reqcert.bin和racert.bin來實現(xiàn)的,產(chǎn)生的證書具有?.p12格式,可以直接導(dǎo)入到RA的Netscape瀏覽器中)。
8.7.3證書目錄服務(wù)器(CADirectoryServiceServer)
認證中心頒發(fā)的證書只是捆綁了特定實體的身份和公鑰,但是沒有提供如何找到該實體證書的方法。因此,必須使用某種穩(wěn)定可靠的、規(guī)模可擴充的在線數(shù)據(jù)庫系統(tǒng)來實現(xiàn)證書的獲取。目錄服務(wù)器就是為此目的而建的。
認證中心所簽發(fā)的所有證書都存放在目錄服務(wù)器上,當(dāng)終端用戶需要確認證書信息時,通過LDAP協(xié)議下載證書或者吊銷證書列表,或者通過OCSP(在線證書狀態(tài)協(xié)議)協(xié)議,向目錄服務(wù)器查詢證書的當(dāng)前狀況。
LDAP代表輕量級目錄訪問協(xié)議(LightweightDirectoryAccessProtocol)。LDAP訪問協(xié)議運行于TCP/IP之上。
LDAP信息是基于目錄項(entries)的概念。一個目錄項是屬性的集合,這些屬性具有全局唯一的可識別名DN(Globally-uniqueDistinguishedName)。DN用于無二義性的引用一個目錄項。每個目錄項的屬性都包括一個類型和一個或多個值。類型通常是一些很好記憶的字符串,像“cn”代表通用名(commonname),或者“mail”代表email地址。值的語法依賴于屬性類型。例如,cn屬性可能包含值BabsJensen,mail屬性包含值babs@,屬性jpegPhoto包含JPEG(binary)格式的圖片。
LDAP協(xié)議是基于客戶/服務(wù)器模式的。客戶向服務(wù)器提出查詢請求。服務(wù)器負責(zé)在目錄上進行必要的操作。
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 環(huán)境管理在企業(yè)發(fā)展中的作用研究
- 生產(chǎn)流程優(yōu)化基于數(shù)據(jù)的決策支持方案
- 珠寶鑒定與法律法規(guī)關(guān)系解析
- 安保安全措施方案
- 2023九年級化學(xué)下冊 第九章 現(xiàn)在生活與化學(xué)9.4 化學(xué)物質(zhì)與健康第3課時 治病用的藥品、防范有害化學(xué)物質(zhì)、保護身體健康說課稿 科粵版
- Unit1 Making friends Part A Letters and sounds(說課稿)-2024-2025學(xué)年人教PEP版(2024)英語三年級上冊
- 3 學(xué)習(xí)有方法 說課稿-2024-2025學(xué)年道德與法治三年級上冊統(tǒng)編版
- Unit 3 Fascinating parks Discover Useful Structures 說課稿 -2024-2025學(xué)年高中英語人教版(2019)選擇性必修第一冊
- 《2 拉拉手交朋友》說課稿-2023-2024學(xué)年道德與法治一年級上冊統(tǒng)編版
- 2023六年級數(shù)學(xué)上冊 三 分數(shù)除法 1分數(shù)除法第1課時 倒數(shù)的認識說課稿 西師大版
- 貨運有限公司2024年春節(jié)后復(fù)工復(fù)產(chǎn)安全生產(chǎn)方案
- 2024年孝感中小學(xué)教師招聘真題
- 社交禮儀-儀態(tài)禮儀
- 2024暑期夏日露營潮趣互動音樂節(jié)(唱享潮夏旋律季)活動策劃方案
- 臨床成人ICU患者外周動脈導(dǎo)管管理要點
- 2024年長沙衛(wèi)生職業(yè)學(xué)院單招職業(yè)適應(yīng)性測試題庫及參考答案
- 死亡病例討論模板
- 《讓學(xué)生創(chuàng)造著長大》讀書心得
- 畢業(yè)旅游活動設(shè)計與實施方案
- 宜城安達特種水泥有限公司雙寨子礦區(qū)鋁土礦礦產(chǎn)資源開發(fā)利用與生態(tài)復(fù)綠方案
- 2024-2026招商信諾人壽中國健康指數(shù)白皮書
評論
0/150
提交評論