您好,登錄后才能下訂單哦!
最近在工作中調試vmware identity manager 產品的SSO功能,有機會深入了解了一下Kerberos的工作原理,隨筆記錄一下,以作將來回顧之用。
什么是Kerberos,參看wiki- https://en.wikipedia.org/wiki/Kerberos_(protocol)。簡單說Kerberos是一種網絡認證協議,它是通過使用秘鑰加密的方式來提供客戶端,服務器程序之間的安全認證。例如,微軟Windows2000以后的系統認證過程就是基于Kerberos的。
為什么叫Kerberos,Kerberos傳說是希臘神話中的守護地獄的一條有三個頭的大狗,貌似在哈利波特第一部<哈利波特與魔法石>也有一只三頭狗。三個頭代表了Kerberos協議中的三方,Client,Server和KDC.
圖片出處: http://mccltd.net/blog/?p=1053
網上對Kerberos的協議介紹有好多,http://blog.csdn.net/wulantian/article/details/42418231這篇博客是講的比較透徹深入的,然而讀下來恐怕還是比較燒腦,時間一長恐怕也就忘記了。本文中對Kerberos的介紹會通過一個簡單的例子來進行,來幫助粗線條地理解Kerberos的認證方式,會和具體的協議細節有所差異。
我們假設一個場景,戰爭年代,有兩個地下工作者張三,李四在被派到某處從事秘密工作,現在張三因為工作需要,找到了開酒館掩護身份的酒館老板李四,張三現在要做的事情,就是向李四證明我就是張三,不是釣魚執法的,這是一個典型的認證的過程。
那怎么做呢?張三,李四的派出機構早就給他們設計好了認證過程,在這里的派出機構就是Kerberos協議中的KDC,比如微軟的AD域服務器。在兩人出發之前,發給了每個人一把鑰匙(對應用戶密碼或者密碼hash數值),派出機構也保留了一把備用鑰匙(AD域服務器上保存著每個域用戶的密碼或者密碼hash數值)。張三,李四就分別對應client和server了。
1. 張三要向派出機構報告一下:我要和李四接頭,給我一個接頭暗號唄。
2. 派出機構收到張三要和李四接頭的請求以后,就發了兩個小盒子給張三,并且上了鎖,只能用兩人自己的鑰匙才能打開。
第一個盒子里面有一張紙條寫著接頭暗號:寶塔鎮河妖。張三的鑰匙可以打開這個盒子
第二個盒子里面有兩張紙條,一張紙條也寫著接頭暗號:寶塔鎮河妖。第二張紙條寫著:來人是張三。zh只有李四的鑰匙才能打開這個盒子。張三是打不開這個盒子的,確保張三不會篡改里面的內容。
3. 張三收到兩個小盒子以后,就用自己的鑰匙打開了第一個小盒子,看到接頭暗號:寶塔鎮河妖。
4. 然后張三就帶著第二個盒子去找開酒館的李四了,見到李四,張三把第二個盒子交給李四,并且說出了接頭暗號:寶塔鎮河妖,并且宣稱自己是張三。
5. 李四用自己的鑰匙打開了張三帶給他的盒子,看到了接頭暗號是寶塔鎮河妖。然后又看到另外一張紙條上寫著來人是張三。嗯,都對得上。他就是張三,那現在先把酒擺上喝點,咱們談談下一步的工作安排吧。
這個例子用來講述Kerberos的基本的工作原理,當然Kerberos協議要比這個例子復雜的多。所以您可千萬別較真,要是我鑰匙丟了怎么辦,有人把小盒子掉一個包之類的,該怎么辦?這些就是Kerberos協議要進一步解決的問題了,就需要您自己去看Kerberos協議的細節了。
關于作者:Sam Zhao,EUC解決方案部門經理。在軟件開發,測試,項目管理方面有13年IT從業經歷,發表過五個專利以及合著書一部
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。