對kerberos的理解–經典對話讀後

來源:互聯網
上載者:User

kerberos是一個基於對稱金鑰的認證系統,事實上它有時候比基於非對稱金鑰的pki工作的更好,特別是在小規模網路架構時,管理上更加集中和方便,甚至效率更高。那篇經典對話相信很多人都能將之讀完,但是讀完之後同樣很多人需要時間來消化,事實上那篇對話並不僅僅是在講kerberos的原理,它更多的意義在於展示了一種研究問題的方法,從簡單到複雜,一點一點的彌補漏洞,最終加上眾多的權衡,得到一個既安全又高效並且可行的方案。本文簡要概括kerberos的具體過程。
     kerberos有三個最重要的規則,一是從不在網上傳輸明文,這保證了認證過程的保密性,這是一切的前提,二是在認證和被認證雙方共用一個秘密,這保證了認證的根本,即不可冒充和不可偽造性,那麼kerberos是怎麼做到的呢,三是存在一個公信度很高的受信任機構,這保證了認證本身的保密和不可冒充,在認證體繫上,kerberos是集權的,而pki是相對民主的?kerberos的過程大致分為兩步,第一步是准入認證,第二步是通訊認證,首先看第一步的過程:
1.首先新接入網路的用戶端需要從受信任的機構擷取一份准入聲明,也就是獲得受信機構的信任,它只需要簡單發送使用者名稱到該機構;
2.受信機構通過使用者名稱查到使用者的密碼,然後產生一份准入認證(包含用戶端的資訊)和一個用戶端和受信機構共用的一個共用密鑰,用用戶端的口令加密後發送給用戶端;
3.用戶端收到加密的准入認證和共用密鑰之後會用只有自己和受信機構知道的自己的密鑰進行解密,得到共用密鑰,至此,客戶成為準入的;
注意:每個伺服器進入網路也同樣需要進行同樣的准入認證,過程稍有不同但是大致一致。
下面是第二步:
1.接下來如果用戶端需要和某個伺服器通訊,那麼它會將伺服器的id連同自己的准入認證用和受信機構共用的祕密金鑰加密後連同一個驗證器(用共用祕密金鑰加密的使用者資訊)以及使用者資訊的明文一同傳給受信機構;
2.受信機構收到請求後,將驗證使用者的准入性,通過使用者名稱查詢共用密鑰,用共用密鑰解密驗證器後和明文使用者資訊對比,如果一致則通過認證;
3.受信機構根據請求的伺服器id產生一個該伺服器和用戶端共用的密鑰,然後用受信機構和用戶端的共用密鑰將它和使用者資訊以及伺服器資訊以及時間戳記資訊加密後傳回用戶端;
注意:使用者資訊以及伺服器資訊以及時間戳記資訊本身中包含用戶端和伺服器的共用密鑰並且是用被請求伺服器的祕密金鑰加密的,因此用戶端不可能得到更多的資訊,不可能偽造和伺服器通訊的憑證。
4.用戶端收到包後用和受信機構共用的密鑰解開包,取出和伺服器共用的密鑰,然後用該祕密金鑰加密一段用戶端的資訊--驗證器,將這個加密資訊和從受信機構解出的剩下部分一併發給伺服器;
5.伺服器收到後,先用自己的密鑰解密第4步中所謂的剩下的那一部分,從中得到那個自己和用戶端共用的口令,然後用這個口令解密客戶傳來的驗證器,比對資訊,如果正確則通過驗證。
     上面就是整個kerberos的認證過程,其中省略了用時間戳記限制使用時間的機制(我本人不喜歡這樣的機制,感覺很不完美),要點就是伺服器的秘密不能讓用戶端知道,但是用戶端只有掌握了伺服器的秘密才能讓伺服器徹底認為它是受信的,試想你僅將秘密告訴你信任的人,反過來一個人如果知道你的秘密那麼你很大程度要信任他,使這樣嗎?kerberos可不敢保證,用戶端可能儲存那個秘密,進而可能讓很多用戶端都知道伺服器的秘密,於是就出現了上述複雜的kerberos機制。在rsa出現之後,上面的一切只用兩步就能搞定,一個是加密一個是簽名,並且協商密鑰時可以用數位信封,可以用dh,但是要知道非對稱金鑰體系是需要代價的,在小規模網路,kerberos有著很大的用武之地,但是KDC的單點故障對安全影響很大,所以必須盡一切力量保護kdc,而pki就不用,畢竟密鑰資訊已經內建進數位憑證了。順便指出的是,ssl握手中的密鑰協商過程也可以採用kerberos的方式協商一個密鑰,過程如下:用戶端已經得到受信機構提供的和某一個伺服器通訊的憑證,包含經用戶端和受信機構共用祕密金鑰加密的用戶端和伺服器共用的口令以及一個同樣包含該口令的“認證”,此處的“認證”就是那篇經典對話中的“票”(經伺服器的祕密金鑰加密),在ssl的ClientKeyExchange訊息中,用戶端將“認證”和經和伺服器共用的口令加密的pre_master_secret一起發給伺服器,伺服器用自己的密鑰解密“認證”,然後取出和用戶端共用的口令,解密pre_master_secret。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.