HTTP摘要認證

HTTP摘要認證是一種協定規定的Web伺服器用來同網頁瀏覽器進行認證信息協商的方法。它在密碼發出前,先對其套用哈希函式,這相對於HTTP基本認證傳送明文而言,更安全。 從技術上講,摘要認證是使用隨機數來阻止進行密碼分析的MD5加密哈希函式套用。它使用HTTP協定。

概述

摘要訪問認證最初由RFC 2069中被定義。RFC 2069大致定義了一個傳統的由伺服器生成隨機數來維護安全性的摘要認證架構。認證回響由下列組成(HA1、HA2、A1、及A2為字元串變數的名稱):

HTTP摘要認證 HTTP摘要認證
HTTP摘要認證 HTTP摘要認證
HTTP摘要認證 HTTP摘要認證

RFC 2069隨後被RFC 2617( HTTP 認證:基本及摘要訪問認證)。RFC 2617引入了一系列安全增強的選項;“保護質量”(qop)、隨機數計數器由客戶端增加、以及客戶生成的隨機數。這些增強為了防止如選擇明文攻擊的密碼分析。

HTTP摘要認證 HTTP摘要認證

如果 qop 值為“auth”或未指定,那么 HA2 為

HTTP摘要認證 HTTP摘要認證

如果 qop 值為“auth-int”,那么 HA2 為

HTTP摘要認證 HTTP摘要認證

如果 qop 值為“auth”或“auth-int”,那么如下計算 response:

HTTP摘要認證 HTTP摘要認證

如果 qop 未指定,那么如下計算 response:

HTTP摘要認證 HTTP摘要認證

上面所述的這種當 qop 未指定的情況,也就是遵循簡化的RFC 2069標準。

MD5 安全問題對摘要認證的影響

在 HTTP 摘要認證中使用 MD5 加密是為了達成"不可逆的",也就是說,當輸出已知的時候,確定原始的輸入應該是相當困難的。如果密碼本身太過簡單,也許可以通過嘗試所有可能的輸入來找到對應的輸出(窮舉攻擊),甚至可以通過字典或者適當的查找表加快查找速度。

HTTP 構架由Phillip Hallam-Baker於1993年在CERN設計成的,並且沒有吸收後續認證系統的改進,如基於密鑰的雜湊訊息驗證碼HMAC的發展。雖然所使用的密碼結構是基於MD5雜湊函式的,在2004年,通常認為衝突攻擊不會影響明文(如密碼)未被得知的套用。但是,在2006年的聲明 (Kim, Biryukov2, Preneel, Hong,"On the Security of HMAC and NMAC Based on HAVAL MD4 MD5 SHA-0 and SHA-1") 導致了一些包括關於 MD5 套用的疑慮。不過,至今為止,MD5 衝突攻擊沒有被視為對摘要認證的威脅,並且RFC 2617允許伺服器實現一些機制來檢測衝突以及重放攻擊。

HTTP摘要認證優勢和劣勢

優勢

HTTP摘要認證目的在於比傳統摘要認證構架更安全;例如,“明顯強於(如)CRAM-MD5……”。 (RFC 2617)

一些HTTP摘要認證的安全性增強如下:

•密碼並非直接在摘要中使用,而是 HA1 = MD5(username:realm:password)。這就允許一些實現(如,JBossDIGESTAuth)僅存儲 HA1 而不是明文密碼。

•在RFC 2617中引入了客戶端隨機數nonce(cnonce),這將使客戶端能夠防止選擇明文攻擊,否則像彩虹表(Rainbow table)這類東西就會成為摘要認證構架的威脅。

•伺服器隨機數 nonce 允許包含時間戳。因此伺服器可以檢查客戶端提交的隨機數 nonce,以防止重放攻擊。

•伺服器也可以維護一個最近發出或使用過的伺服器隨機數nonce的列表以防止重用。

劣勢

摘要訪問認證有意成為一個安全性的折衷。它意圖代替非加密的HTTP基本認證。但是,它沒有被設計為替換強認證協定,例如公鑰密碼學或Kerberos認證。

在安全性方面,摘要訪問認證有幾個缺點:

•RFC 2617中的許多安全選項都是可選的。如果伺服器沒有指定保護質量(qop),客戶端將以降低安全性的早期的RFC 2069的模式操作。

•摘要訪問認證容易受到中間人攻擊。舉例而言,一個中間人攻擊者可以告知客戶端使用基本訪問認證或早期的RFC 2069摘要訪問認證模式。進一步而言,摘要訪問認證沒有提供任何機制幫助客戶端驗證伺服器的身份。

•一些伺服器要求密碼以可逆加密算法存儲。但是,僅存儲用戶名、realm、和密碼的摘要是可能的。

•它阻止了使用強密碼哈希函式(如bcrypt)保存密碼(因為無論是密碼、或者用戶名、realm、密碼的摘要都要求是可恢復的)。

可替代的認證協定

一些可以用於Web應用程式的強認證協定包括:

•公鑰密碼學認證(通常隨HTTPS/SSL客戶端整數一起實現)。

•Kerberos或SPNEGO認證,主要是在配置為Integrated Windows Authentication(IWA)的微軟的IIS使用。

•Secure Remote Password protocol(適用於HTTPS/TLS層)。

常用的弱明文協定:

•HTTP基本認證構架

•HTTP+HTML表單認證

使用HTTPS網路加密同時使用這些弱明文協定解決了許多摘要訪問認證試圖要防止的許多威脅。

相關詞條

相關搜尋

熱門詞條

聯絡我們