1. 程式人生 > >NTLM 和 Kerberos 安全認證過程簡述

NTLM 和 Kerberos 安全認證過程簡述

NTLM採用一種質詢/應答訊息交換模式

1、身份認證使用者名稱驗證:客戶端向伺服器端傳送使用者名稱若使用者名稱驗證通過,伺服器端生成隨機數,然後向客戶端傳送該隨機數字。

2、身份認證密碼認證:(1)密碼摘要資訊認證:客戶端軟體利用MD5或者SHA雜湊生成密碼的摘要資訊,並利用摘要對隨機數字進行加密。(2)客戶端傳送利用摘要加密的隨機數字給伺服器端。

3、服務端向DC伺服器請求相關資訊進行驗證:伺服器向DC請求使用者名稱相關資訊包括使用者名稱、密碼摘要、儲存的隨機數字

4,安全驗證通過與否測試:伺服器端利用儲存的使用者密碼的摘要資訊,對隨機數進行加密。然後將兩個加密後的隨機數字進行比較。如果兩者相同,則通過使用者身份認證。

Kerberos 使用對稱金鑰密碼學,並提供端到端的安全性。

KDC是kerberos認證的可信第三方;KDC維護所有網路成員的金鑰;票證授予票證TGT理解為一張名片;

1、伺服器端KDC.AS驗證使用者名稱,驗證通過後,利用使用者的密碼作為金鑰,加密TGT返回客戶端。

2、客戶端利用密碼作為金鑰解密TGT,然後傳送TGT+某服務請求給KDC.TGS

3、KDC.TGS驗證TGT資訊後,然後向客戶端返回ST,其中ST包含兩個相同的SessionID+客戶端使用者的身份標識,第一個用KDC儲存的使用者共享金鑰加密,第二個用KDC儲存的某請求服務共享金鑰加密。

4、客戶端利用自己與KDC共享金鑰解密,獲取自己與某服務請求的伺服器進行通訊的會話金鑰;接著新增自己的認證資訊,然後將含兩個認證資訊的ST傳送於某服務請求伺服器。

5、某請求伺服器利用自己與KDC共享金鑰解密,獲取自己與某服務請求的伺服器進行通訊的會話金鑰;某請求伺服器解密認證資訊後與KDC儲存認證資訊進行比對 ,然後開始處理服務,並利用會話金鑰加密返回給客戶端。