2012-10-18 31 views
0

對於Web應用程序,服務器決定要遵循哪種身份驗證方法,還是客戶端。服務器是否決定要遵循哪種驗證方法?

像NTLM和Kerberos Browser這樣的認證方法是特定的。

在Intranet Web應用程序中,與NTLM和Kerberos相比,BASIC和Diget的地位如何?

謝謝:)

回答

0

正如RFC 2617討論的,它需要雙方的合作。

當需要證書來訪問資源時,服務器將發送一個401響應,其中包含一個或多個WWW-Authenticate標題,用於指示它支持的身份驗證類型。如果有多個WWW-Authenticate頭文件,則客戶端「必須選擇使用它理解的最強認證方案並根據該挑戰請求證書。」

因此,一個響應可以是:

WWW-Authenticate: Basic realm="protected area" 
WWW-Authenticate: Digest 
     realm="protected area" 
     qop="auth" 
     nonce="ea9c8142787af00ec11bd0eac248cac930" 
     opaque="cdc069ca3ffe57acff21c259deadbeef" 
WWW-Authenticate: Negotiate 

這表明該服務器願意,通過說「SPNEGO」在RFC 2617和NTLM或Kerberos描述接受基本和摘要機制(在協商機制)上述RFC 4559

然後客戶端必須決定哪個方案是最強的,然後再發送請求。這是達到所討論的用戶代理,但這些機制的額定在假定的弱點強度(因此最優選的是最後):

  1. Basic不提供安全性,明文口令可以是瑣碎地恢復。只應在安全性爲零或層已經使用TLS加密時才使用。

  2. Digest詢問/響應機制依賴於的是,在這一點上,不被認爲是強加密的哈希算法。

  3. NTLM是這種挑戰/響應機制,一個家庭 - 甚至在其最強(NTLMv2的)依靠哈希算法不強加密。然而,NTLM的一個優點是,Windows計算機上的用戶在登錄過程中密碼被散列,這樣他們就可以成爲算法的輸入,從而允許對網站進行「單點登錄」而無需重新輸入密碼。

  4. Kerberos提供使用可信密鑰分發中心(KDC)的安全認證,是企業內部網的最佳選擇,但不太可能是一個可行的機制,以在互聯網上的所有客戶端。

任何這些協議的弱點的影響可以通過保護會話使用TLS來提供傳輸的加密減少,而應絕對任何不信任的網絡上執行(即,在大型互聯網) 。

相關問題