什么是Kerberos身份驗(yàn)證協(xié)議
什么是Kerberos身份驗(yàn)證協(xié)議
kerberos是由MIT開(kāi)發(fā)的提供網(wǎng)絡(luò)認(rèn)證服務(wù)的系統(tǒng)。它可用來(lái)為網(wǎng)絡(luò)上的各種server提供認(rèn)證服務(wù),使得口令不再是以明文方式在網(wǎng)絡(luò)上傳輸,并且聯(lián)接之間通訊是加密的。它和PKI認(rèn)證的原理不一樣,PKI使用公鑰體制(不對(duì)稱密碼體制),kerberos基于私鑰體制(對(duì)稱密碼體制)。Kerberos稱為可信的第三方驗(yàn)證協(xié)議,意味著它運(yùn)行在獨(dú)立于任何客戶機(jī)或服務(wù)器的服務(wù)器之上。此名稱來(lái)自看守地獄入口的三頭犬。
Kerberos服務(wù)器稱為AS(驗(yàn)證服務(wù)器)。當(dāng)客戶端需要訪問(wèn)某個(gè)服務(wù)器時(shí),客戶端訪問(wèn)Kerberos服務(wù)器以獲取票證。擁有票證意味著具有訪問(wèn)權(quán)限。這一點(diǎn)首先假設(shè)客戶端和服務(wù)器都信任“第三方”Kerberos驗(yàn)證服務(wù)器。
IETF管理Kerberos規(guī)范,但Microsoft已獲得一些特權(quán),可以更改此協(xié)議以滿足Windows 2000中的需要。Kerberos版本5身份驗(yàn)證協(xié)議提供了一種相互驗(yàn)證(通過(guò)服務(wù)器和客戶端相互驗(yàn)證或者一臺(tái)服務(wù)與其他服務(wù)器之間相互驗(yàn)證)的身份驗(yàn)證機(jī)制。Kerberos5協(xié)議假設(shè)客戶端和服務(wù)器之間的初始身份驗(yàn)證在一個(gè)開(kāi)放式的網(wǎng)絡(luò)進(jìn)行,此時(shí)通過(guò)網(wǎng)絡(luò)被傳輸?shù)臄?shù)據(jù)包將能被監(jiān)測(cè)以及隨意修改。這是一個(gè)被虛擬的環(huán)境,可是換句話說(shuō),當(dāng)今Internet上可能有許多這樣的例子,一名攻擊者能夠偽裝成其他的客戶端或者服務(wù)器,偷聽(tīng)二臺(tái)合法且正常在通信的服務(wù)器和客戶端之間數(shù)據(jù)傳輸,甚至于篡改他們之間傳輸?shù)臄?shù)據(jù)。
Kerberos由MIT的Project Athena創(chuàng)建,后者是20世紀(jì)80年代后期進(jìn)行的企業(yè)范圍計(jì)算的測(cè)試項(xiàng)目。Kerberos可用于公共用途。
Kerberos為遠(yuǎn)程登錄提供安全性并可提供單個(gè)登錄解決方案,以便用戶不需要每次訪問(wèn)新服務(wù)器時(shí)都登錄。AS將所有用戶的密碼存儲(chǔ)在中央數(shù)據(jù)庫(kù)中。它頒發(fā)憑據(jù),而客戶端使用憑據(jù)來(lái)訪問(wèn)AS領(lǐng)域內(nèi)的服務(wù)器。適用領(lǐng)域包括AS服務(wù)器跟蹤的所有用戶和服務(wù)器,這一點(diǎn)下面將解釋。AS服務(wù)器由一個(gè)管理人員在物理上進(jìn)行保護(hù)和管理。由于它驗(yàn)證用戶身份,因此應(yīng)用程序服務(wù)器免除此任務(wù),它們“信任”AS為特定客戶頒發(fā)的憑據(jù)。
在需要加密的任何通信中,為所涉及的雙方獲取加密密鑰時(shí)總是有安全風(fēng)險(xiǎn)。在轉(zhuǎn)換過(guò)程中可能會(huì)危及密鑰的安全。一個(gè)重要的Kerberos特性是AS提供一種方法,可以安全地將加密密鑰分發(fā)到需要參與安全事務(wù)的客戶端和服務(wù)器。此共享密鑰稱為會(huì)話密鑰。
AS在領(lǐng)域中進(jìn)行操作,而領(lǐng)域是在其中設(shè)置特定安全策略的安全域。領(lǐng)域可以信任其他領(lǐng)域,意味著如果某個(gè)用戶在一個(gè)領(lǐng)域中經(jīng)過(guò)AS的驗(yàn)證,則信任領(lǐng)域不需要用戶重新進(jìn)行驗(yàn)證即可訪問(wèn)其領(lǐng)域中的服務(wù)器。換句話說(shuō),它相信另一個(gè)AS已正確地識(shí)別和驗(yàn)證了某個(gè)用戶。
Kerberos提供三種安全等級(jí):
1)只在網(wǎng)絡(luò)開(kāi)始連接時(shí)進(jìn)行認(rèn)證,認(rèn)為連接建立起來(lái)后的通信是可靠的,認(rèn)證式網(wǎng)絡(luò)文件系統(tǒng)(Authenticated network file system) 使用此種安全等級(jí);
2)安全消息(sage messages)傳遞:對(duì)每次消息都進(jìn)行認(rèn)證工作,但是不保證每條消息不被泄露;
3)私有消息(private messages)傳遞:不僅對(duì)每條消息進(jìn)行認(rèn)證,而且對(duì)每條消息進(jìn)行加密。Kerberos在發(fā)送密碼時(shí)就采用私有消息模式。
下面是Kerberos的一些重要特性:
?在此處的討論中,客戶端指代表用戶操作的軟件。
?在客戶端可訪問(wèn)服務(wù)器之前,它必須從AS獲得憑據(jù)。
?客戶端訪問(wèn)服務(wù)器時(shí)需要的憑據(jù)包括服務(wù)器票證。服務(wù)器票證具有特定的時(shí)間參數(shù)并只允許特定客戶機(jī)上的特定用戶訪問(wèn)特定服務(wù)器。一個(gè)用戶可能同時(shí)擁有數(shù)個(gè)票證以訪問(wèn)多個(gè)服務(wù)器。
?最初的目標(biāo)是從AS獲取TGT(票證授予票證)給予客戶端。TGT(不要與服務(wù)器票證混淆)類似于許可或許可證。使用TGT,客戶端即具有權(quán)力從TGS(票證授予服務(wù)器)獲取服務(wù)器票證。TGS可能運(yùn)行在AS計(jì)算機(jī)上。
?TGT的目的是消除用戶在每次希望訪問(wèn)新服務(wù)器時(shí)必須鍵入密碼的需要。當(dāng)TGS收到包含TGT的票證的請(qǐng)求時(shí),它使用TGT中的信息驗(yàn)證用戶,并且不需要用戶重新輸入密碼。
?TGT包含用戶ID和網(wǎng)絡(luò)地址,以及TGS的ID。它還包含時(shí)間戳,而時(shí)間戳提供一些保護(hù)來(lái)防范黑客。另外,它還包含首要的會(huì)話密鑰(會(huì)話密鑰最后分發(fā)給客戶端和用戶要訪問(wèn)的目標(biāo)服務(wù)器)。使用只有AS和TGS知道的密鑰加密TGT。從而在TGT從AS發(fā)送出去后只有TGS 可以對(duì)TGT進(jìn)行解密。
?AS并不將TGT直接發(fā)送到目標(biāo)服務(wù)器,而將它發(fā)送到客戶端,在此處保存它,以用于將來(lái)的所有票證請(qǐng)求。當(dāng)該用戶試圖訪問(wèn)服務(wù)器時(shí),TGT被發(fā)送到TGS。TGS將TGT解密并將其內(nèi)容與用戶提供的信息進(jìn)行比較,以確定真實(shí)性,然后返回目標(biāo)服務(wù)器的票證給用戶。
驗(yàn)證和授權(quán)方案在圖K-1中進(jìn)行了圖解,并在下面進(jìn)行了概述:
1.第一步是客戶端獲取TGT。本步驟還驗(yàn)證該用戶。TGT的一個(gè)簡(jiǎn)單請(qǐng)求發(fā)送到AS。AS具有客戶端密碼的一個(gè)副本,它使用從用戶密碼導(dǎo)出的密鑰加密TGT。
2.當(dāng)客戶端收到此響應(yīng)時(shí),系統(tǒng)提示用戶輸入可解密此響應(yīng)的密碼。只有可信的用戶才能輸入可解密響應(yīng)的密碼,因此本方案可有效地驗(yàn)證用戶。
3.響應(yīng)一旦解密,客戶端即具有TGT的一個(gè)副本。為訪問(wèn)服務(wù)器,客戶端發(fā)送請(qǐng)求(請(qǐng)求中包含目標(biāo)服務(wù)器ID、用戶ID和TGT)給TGS來(lái)證實(shí)用戶的真實(shí)性。
4.TGS解密TGT并查看其內(nèi)容。如果所有內(nèi)容都已檢查出,則TGS生成目標(biāo)服務(wù)器的服務(wù)器票證,并用與目標(biāo)服務(wù)器一起共享的密鑰加密它。服務(wù)器票證再次由TGS使用從用戶密碼導(dǎo)出的密鑰加密,并返回到客戶端。
5.客戶端解密響應(yīng)以提取服務(wù)器票證和會(huì)話密鑰。然后票證與用戶ID一起轉(zhuǎn)發(fā)到目標(biāo)服務(wù)器。請(qǐng)注意,票證還包含加密形式的用戶ID。
6.目標(biāo)服務(wù)器解密票證,并將隨票證發(fā)送的用戶ID與在票證中加密的用戶ID進(jìn)行比較。如果它們相符,則用戶被授予服務(wù)器訪問(wèn)權(quán)限。
票證包含會(huì)話密鑰,該密鑰也已發(fā)送到客戶端。現(xiàn)在,客戶端和服務(wù)器都具有會(huì)話密鑰,它們可以使用它加密和解密通過(guò)網(wǎng)絡(luò)發(fā)送的消息,從而提供了私密通信。
對(duì)驗(yàn)證進(jìn)程的一種增強(qiáng)方法是要求用戶輸入令牌ID(令牌ID的獲取位置是生成令牌的類似于信用卡的設(shè)備)。用戶隨身攜帶令牌卡。令牌卡顯示與服務(wù)器同步的值,且用戶在登錄時(shí)輸入這些值。
Kerberos方案實(shí)現(xiàn)對(duì)稱 (單鑰或密鑰)加密技術(shù),因此一些供應(yīng)商對(duì)最初的用戶驗(yàn)證支持公鑰驗(yàn)證方案。Microsoft正在其Kerberos實(shí)現(xiàn)中提供此功能,并已向IETF提交建議,建議使用此技術(shù)。
圖K-1 Kerbero 驗(yàn)證方案
Kerberos的優(yōu)點(diǎn):
Kerberos系統(tǒng)對(duì)用戶的口令進(jìn)行加密后作為用戶的私鑰,避免口令在信道的顯式傳輸,
實(shí)現(xiàn)較高的安全性;
用戶在使用構(gòu)成中,僅在登錄時(shí)要求輸入口令,實(shí)現(xiàn)對(duì)合法用戶的透明性;
Kerberos可以較方便地實(shí)現(xiàn)用戶數(shù)的動(dòng)態(tài)改變。
Kerberos的缺點(diǎn):
Kerberos服務(wù)器與用戶共享的秘密是用戶的口令字,服務(wù)器在回應(yīng)時(shí)不驗(yàn)證用戶的真實(shí)性,假設(shè)只有合法用戶擁有口令字。如攻擊者記錄申請(qǐng)回答報(bào)文,就易形成代碼本攻擊。
Kerberos服務(wù)器與用戶共享的秘密是用戶的口令字,服務(wù)器在回應(yīng)時(shí)不驗(yàn)證用戶的真實(shí)性,假設(shè)只有合法用戶擁有口令字。如攻擊者記錄申請(qǐng)回答報(bào)文,就易形成代碼本攻擊。
AS和TGS是集中式管理,容易形成瓶頸,系統(tǒng)的性能和安全也嚴(yán)重依賴于AS和TGS的性能和安全。在AS和TGS前應(yīng)該有訪問(wèn)控制,以增強(qiáng)AS和TGS的安全。
隨用戶數(shù)增加,密鑰管理較復(fù)雜。Kerberos擁有每個(gè)用戶的口令字的散列值,AS與TGS負(fù)責(zé)戶間通信密鑰的分配。當(dāng)N個(gè)用戶想同時(shí)通信時(shí),仍需要N*(N-1)/2個(gè)密鑰。
?非常好我支持^.^
(140) 97.9%
不好我反對(duì)
(3) 2.1%
相關(guān)閱讀:
- [電子說(shuō)] NTLM身份驗(yàn)證:揭秘Windows網(wǎng)絡(luò)安全的秘密武器 2023-09-23
- [電子說(shuō)] 使用ATSHA204A和PIC16單片機(jī)對(duì)消耗品進(jìn)行身份驗(yàn)證 2023-09-18
- [電子說(shuō)] Vivado統(tǒng)一Web安裝程序:下載和安裝過(guò)程中無(wú)法繞過(guò)用戶帳戶身份驗(yàn)證階段 2023-07-11
- [電子說(shuō)] 使用安全身份驗(yàn)證器保護(hù)您的醫(yī)療設(shè)備端點(diǎn) 2023-06-30
- [嵌入式技術(shù)] 如何在Spring Security中實(shí)現(xiàn)基于API密鑰的身份驗(yàn)證 2023-06-29
- [電子說(shuō)] 安全身份驗(yàn)證器如何確保患者安全 2023-06-29
- [電子說(shuō)] 為什么身份驗(yàn)證器應(yīng)該是智能鎖的鑰匙 2023-06-28
- [電子說(shuō)] 無(wú)需成為密碼學(xué)專家即可實(shí)施安全身份驗(yàn)證 2023-06-26
( 發(fā)表人:admin )