真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Kerberos學習(一)

Kerberos古已有之,是由MIT開發(fā),對三方進行驗證鑒權的服務安全管理系統(tǒng),很好的體現(xiàn)了西方三權分立的思想。名字來源于希臘神話地獄三個腦袋的看門狗,這只狗在哈利波特中也路過臉。

我們提供的服務有:成都網(wǎng)站設計、成都網(wǎng)站制作、外貿(mào)網(wǎng)站建設、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認證、綏寧ssl等。為1000多家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務,是有科學管理、有技術的綏寧網(wǎng)站制作公司

Kerberos學習(一)

對,跳吧,跳進坑里去吧。一入K坑深似海,從此作者不早起。

系統(tǒng)設計上采?用客戶端/服務器?結(jié)構與DES加密技術,并且能夠進?行行相互認證,即客戶端和服務器?端均可對對?方進?行行身份認證??梢?用于防?止竊聽、防?止replay攻擊、保護數(shù)據(jù)完整性等場合,是?一種應?用對稱密鑰體制進?行行密鑰管理理的系統(tǒng)。百度百科

哪怕是一個最基本的用戶登錄驗證體系,都會包含三個部分,驗證,授權,請求服務。Kerberos也不例外,同樣分為這三個階段。

Kerberos有幾個關鍵的服務或者是功能我們必須了解,其中KDC是核心,全稱叫做Key Distributed Center,我們可以把它想象成銀行的數(shù)據(jù)庫。所有初始的驗證授權工作都是在這里進行的。然后你可以把ATM提供鈔票這個事作為服務來看待(Desired Network Service)。

Kerberos學習(一)

Kerberos有幾個關鍵的服務或者是功能我們必須了解,其中KDC是核心,全稱叫做Key Distributed Center,我們可以把它想象成銀行的數(shù)據(jù)庫。所有初始的驗證授權工作都是在這里進行的。然后你可以把ATM提供鈔票這個事作為服務來看待(Desired Network Service)。

第一步是驗證(Authentication),你必須證明自己是自己,這會需要你提供一個認證主體,這就是Kerberos里面的Principal,你可以把它想象成銀行卡,如果你沒有Principal,那么就相當于你去銀行取錢沒有帶卡一樣。當然ATM取錢是不需要×××的,所以你必須確保你的銀行卡及密碼不會落入劫匪的手里,顯然不在朋友圈炫富是你需要注意的事,不是Kerberos的事。

那么Principal就相當于是你的銀行卡,帶卡之后需要做什么呢,當然你要給出銀行卡的密碼,如同現(xiàn)實世界一樣,無論是你,還是你的親屬只要他有你的銀行卡,有你的密碼,就可以從ATM取錢。Kerberos也是這樣,每一個Principal都有其對應的密碼,這是這個Principal在創(chuàng)建時必須要做的一件事,同時你要保護好自己的密碼。不過這里有一點不同的地方,Kerberos的Principal的密碼并不是用來做用戶身份識別用的,密碼是用來加密傳輸票據(jù)來用的,所以密碼是不會在網(wǎng)絡上傳輸?shù)摹?/p>

Kerberos學習(一)

客戶端,也就是你,給出了銀行卡,輸入了密碼,然后客戶端Kerberos會用你給出的密碼用DES算法加密一段數(shù)據(jù),我們稱之為TGT(Ticket-Granting Ticket),這個TGT會發(fā)送給KDC的AS服務,也就是Authentication Service。然后AS會用本地的Kerberos用戶數(shù)據(jù)庫中的數(shù)據(jù)對客戶端給過來的TGT進行比對,如果結(jié)果一致,則發(fā)還一個驗證通過的TGT給client,如果不一致,則拒絕提供下一步的服務。

Kerberos學習(一)

假設ATM通過銀行的數(shù)據(jù)庫認可了你的身份,那么接下來就要看你是要取錢,還是要轉(zhuǎn)賬,在這里我們需要把取錢和轉(zhuǎn)賬的權限分開以便做說明,而現(xiàn)實世界里,ATM既能取錢也能轉(zhuǎn)賬。

接下來,客戶端需要發(fā)送第二個假面TGT給KDC的票據(jù)批準服務(Ticket Granting Service),看看當前這張銀行卡是不是具有轉(zhuǎn)賬的權力。

Kerberos學習(一)

如果這張銀行卡具有轉(zhuǎn)賬的權力,則TGS會發(fā)還給Client一個新的TGT,告訴Client,你的身份確認無誤,具備轉(zhuǎn)賬的權力,你可以操作轉(zhuǎn)賬選項了(Desired Network Service)

Kerberos學習(一)

然后Client會拿這這張票據(jù)去請求轉(zhuǎn)賬。而轉(zhuǎn)賬操作當然也會對KDC發(fā)起請求,類似Client,在這里不再贅述

大致的流程是這樣的,不過我想,對于初次接觸Kerberos的人來說,一個值得區(qū)別理解的概念是,Kerberos并不是用來保護服務器或者操作系統(tǒng)的,那是SSH干的事。Kerberos更多的是用來保護基于操作系統(tǒng)的應用服務的,比如MySQL,PostgreSQL,Hadoop,HBase這樣的服務請求。換句話說,SSH做的工作是詢問你是誰。而Kerberos的工作是驗證你要干什么?

接下來,我們需要知道Kerberos中的一些關鍵性的名詞定義以方便我們的理解。

KDC,我們已經(jīng)知道了,kerberos的核心服務。

Principal,身份認證主體,如果仍然理解困難,那么把它想象成你的SSH用戶名吧。

Keytab,基于Principal生成的密鑰文件,如果不明白,把它想象成SSH的免密碼登錄的私鑰。

TGT,使用密碼或者keytab作為密鑰生成的加密數(shù)據(jù),作為請求KDC服務的票據(jù)數(shù)據(jù)包,但并不包含密碼或者密鑰。

SPNEGO,并不包含在Kerberos的標準服務中,是微軟擴展的一個插件,主要用來作基于Kerberos的HTTP服務的保護,全稱是Simple Protected GSSAPI Negotiation。換句話說,是用Kerberos來保護HTTP服務請求,比如Rest服務。

Kerberos第一篇的最后,我們來拆解一個Principal來了解這張銀行卡的構成。

xianglei/dmp-master1.hadoop@HADOOP.COM

一個完整的Principal由3個部分構成。

用戶名/FQDN(Full Quafilied Domain Name)的主機名@REALM(受保護的域,全大寫)

  1. 當然這個用戶名需要是Linux下存在的用戶

  2. FQDN全限定域名,就是一定要帶上hostname.domain這種形式,當然,如果你的主機并沒有給出domain,那么不寫域名也可以。反正就是要全部的主機名加域名(如果存在域名的話)。但實際上,在Kerberos里面,這個并不稱之為主機名,而是叫做Instance,實例名,他可以不是任何服務器的主機名稱,但是便于理解和認識,我們還是先把他當初主機名來看待吧。

  3. REALM,受到Kerberos保護的域名稱,就是一類或一組受到Kerberos保護服務的服務器集合,你可以想象成Windows里面的域。由于一個KDC可以同時保護多個域,比如你可以在一個KDC上既保護HADOOP服務器組,也保護MYSQL服務器組,所以我們通常會使用域名來進行區(qū)別。

如果你的hostname里面使用了domain name,那么你必須在Principal的第二部分寫完整,否則KDC將無法驗證主機的合法性,加密的tgt是要帶著主機名信息的。

還有,特別需要注意的是,這里面第二部分的domain(域名),第三部分的realm(域),在中文里的字是一樣,但是英文單詞完全不同,他們所表達的含義也完全不同。由于通常Kerberos的Realm部分也會寫成域名的形式,所以就會讓人迷惑,而實際上,你把realm部分理解成windows里面的workgroup或者home這種域也是可以的。名稱可以隨便起,不一定用你的真實域名。只是個區(qū)分不同服務集合的代號。

下一篇寫安裝配置?


文章名稱:Kerberos學習(一)
本文地址:http://weahome.cn/article/jjsgsh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部