日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

FreeBSD 上使用Kerberos 5認證( 二 )


Authenticator: 在客戶端向服務端進行認證時,伴隨Ticket一起發(fā)送的另外一個部分,它的作用是證明發(fā)送Ticket 的用戶就是擁有Ticket的用戶,即防止重放攻擊 。它的主要內容是一個時間戳(客戶端發(fā)送Ticket的時間),在rfc1510中有它的完整的ASN.1定義 。
AS(Authentication Server): 為用戶分發(fā)TGT(Ticket Granting Ticket)的服務器 。
TGT(Ticket Granting Ticket): 用戶向TGS(Ticket Granting Server)證明自己身份的Ticket.
TGS(Ticket Granting Server): 為用戶分發(fā)到最終目的Ticket的服務器,用戶使用這個Ticket向自己要求提供服務的服務器證明自己的身份 。在實現上,AS和TGS實際上是由同一程序完成的,因為它們的實現機制并沒有太大的差別,只是在加密所發(fā)出的Ticket時所使用的密鑰不同(AS使用用戶的密鑰,而TGS使用會話密鑰) 。
KDC(Key Distribution Center):密鑰發(fā)放中心,通常將AS和TGS統(tǒng)稱為KDC,有時也把AS 單獨稱為KDC 。
3.認證過程
1) ClIEnt → KDC:用戶cnhawk向密鑰分配中心(KDC)申請TGT;
2) KDC → Client:通過KDC的用戶密碼認證,cnhawk得到KDC發(fā)放的TGT;
3) Client → KDC:申請取得用戶cnhawk所需要的host/s;
4) KDC → Client:KDC根據用戶cnhawk提供的TGT,KDC向cnhawk發(fā)放host/s;
5) Client → Server:用戶cnhawk向Server提供cnhawk,TGT和host/s ;Server根據主機的上保存的host/s和用戶cnhawk的信息來驗證cnhawk的登陸申請 。
6) Server → Client:Server確認,發(fā)送信息給Client允許cnhawk登陸Server 。
4.一個應用實例
為了更清楚的說明Kerberos 5認證協(xié)議,實際應用中的例子(具體例子可以在我們后邊的實際應用中看到):假設某一局域網A,它的DNS域為the9.com;Realm為THE9.COM;Kerberos的數據庫,AS以及TGS服務器都在主機test1.the9.com上 。A中主機test2.the9.com上的用戶cnhawk對應的Principal為cnhawk/test2.the9.com@THE9.COM;A中的另一臺主機test3.the9.com上的telnet服務器對應的Principal為host/test3.the9.com@THE9.COM 。Rlogin的客戶端程序telnet和服務端程序telnetd都是支持Kerberos的,即都支持Kerberos認證協(xié)議 。cnhawk想用telnet遠程登錄到A中的另一臺主機test3.the9.com上這時cnhawk所要完成的步驟是:
① 運行kinit程序 。kinit程序的作用是向AS申請TGT,并將獲得的TGT和會話密鑰放在保存Credential的文件中 。為此,cnhawk在命令行上鍵入:
% kinit cnhawk/test1.the9.comkinit程序在收到AS發(fā)回的消息后,就提示cnhawk輸入passWord:
% kinit cnhawk/test1.the9.com cnhawk/test1.the9.com@THE9.COM"s Password: 在cnhawk正確的輸入password后,kinit程序將這個password用約定的算法轉化為cnhawk的密鑰,并用這個密鑰解密從TGS發(fā)回的消息,從而獲得下一步使用的Credential 。到此,kinit程序結束 。由此可見,cnhawk的password并沒有在網上傳輸,在網上傳輸的只是由cnhawk的密鑰加密后的東西 。② 運行telnet的客戶端程序telnet,為此cnhawk在命令行上鍵入:
test1# telnet -a -l cnhawk test3.the9.com telnet程序首先在保存Credential的文件中尋找未過期的TGT,并把它交給TGS,從而獲得訪問test3.the9.com上rlogin服務的Ticket 。接下來,它把這個Ticket和Authenticator一起發(fā)送給test3.the9.com的服務器程序telnetd 。telnetd在驗證了cnhawk的身份后,就搜索本地cnhawk主目錄下的文件“.k5login”,在“.k5login”文件中放有允許用rlogin遠程登錄到cnhawk帳戶下的Principal 。在找到了cnhawk/test1.the9.com@THE9.COM之后,telnetd就申請一個虛擬終端,并fork一個shell,這時在test1.the9.com的終端上就會顯示:test1# telnet -a -l cnhawk test3.the9.com
Trying test3.the9.com...
Connected to test3.the9.com.
Escape character is "^]".
[ Trying mutual KERBEROS5 (host/test3.the9.com@THE9.COM)... ]

推薦閱讀