kerberos的認證原理

kerberos介紹

重要術語

1. KDChtml

全稱:key distributed center安全

做用:整個安全認證過程的票據生成管理服務,其中包含兩個服務,AS和TGS網絡

2. ASide

全稱:authentication servicepost

做用:爲client生成TGT的服務性能

3. TGS加密

全稱:ticket granting servicespa

做用:爲client生成某個服務的ticket .net

4. AD設計

全稱:account database

做用:存儲全部client的白名單,只有存在於白名單的client才能順利申請到TGT

5. TGT

全稱:ticket-granting ticket

做用:用於獲取ticket的票據

6.client

想訪問某個server的客戶端

7. server

提供某種業務的服務

 

認證流程

概述

 

圖1 kerberos認證流程

圖1展現了kerberos的認證流程,整體分爲3步。

  1. client與AS交互

  2. client與TGS交互

  3. client與server交互

 

詳細分析

kerberos爲何要採用3步交互的形式來完成安全認證,那就要從kerberos的使用場景提及。

相比kerberos,https可能更爲熟悉一點,經過證書和非對稱加密的方式,讓客戶端能夠安全的訪問服務端,但這僅僅是客戶端安全,經過校驗,客戶端能夠保證服務端是安全可靠的,而服務端卻沒法得知客戶端是否是安全可靠的。這也是互聯網的一種特性。而kerberos能夠支持雙向認證,就是說,能夠保證客戶端訪問的服務端是安全可靠的,服務端回覆的客戶端也是安全可靠的。

想證實client和server都是可靠的,必然要引入第三方公證平臺,這裏就是AS和TGS兩個服務。

  1. 1.client向kerberos服務請求,但願獲取訪問server的權限。kerberos獲得了這個消息,首先得判斷client是不是可信賴的,也就是白名單黑名單的說法。這就是AS服務完成的工做,經過在AD中存儲黑名單和白名單來區分client。成功後,AS返回TGT(向TGS申請ticket的票據)給client。

  2. 2.client獲得了TGT後,繼續向kerberos的TGS請求,但願獲取訪問某個server的權限。kerberos又獲得這個消息,這時候經過client消息中的TGT,判斷出client擁有了這個權限,給了client訪問server的權限ticket。

  3. 3.client獲得ticket後,終於能夠成功訪問server。這個ticket只是針對這個server,其餘server須要再次向TGS申請ticket(門票)。

經過這3步,一次請求就完成了。固然這裏會有個問題,這樣也沒比https快啊。解釋一下

1. 整個過程TGT的獲取只須要一次,其中有超時的概念,時間範圍內TGT都是有效的,也就是說通常狀況訪問server只須要直接拿到ticket便可

2. 整個過程採用的是對稱加密,相對於非對稱加密會有性能上的優點

3. kerberos的用戶管理很方便,只須要更新AD中的名單便可

 

固然整個過程的通訊都是加密的,這裏設計到兩層加密,由於全部的認證都是經過client,也就是說kerberos沒有和server直接交互,這樣的緣由是kerberos並不知道server的狀態,也沒法保證同時和server,client之間通訊的順序,由client轉發可讓client保證流程順序。

第一層加密,kerberos對發給server數據的加密,防止client獲得這些信息篡改。

第二層加密,kerberos對發給client數據的加密,防止其餘網絡監聽者獲得這些信息。

client和server的通訊也是如此

 

// 對kerberos通俗易懂的介紹

http://blog.csdn.net/wulantian/article/details/42418231

相關文章
相關標籤/搜索