Apache HTTP Server 2.4 版
說明 | 使用 MD5 Digest 驗證進行使用者驗證 |
---|---|
狀態 | 延伸模組 |
模組識別碼 | auth_digest_module |
來源檔案 | mod_auth_digest.c |
此模組實作 HTTP Digest 驗證 (RFC2617),提供一種替代 mod_auth_basic
的方式,其中密碼並不會以明文方式傳輸。然而,與基本驗證相比,這並非會帶來顯著的安全優勢。另一方面,透過 Digest 驗證在伺服器上儲存密碼的安全性遠低於基本驗證。因此,使用基本驗證並透過 mod_ssl
加密整個連線是更好的替代方案。
若要使用 MD5 Digest 驗證,請如下列範例所示,設定要保護的位置
<Location "/private/"> AuthType Digest AuthName "private area" AuthDigestDomain "/private/" "http://mirror.my.dom/private2/" AuthDigestProvider file AuthUserFile "/web/auth/.digest_pw" Require valid-user </Location>
AuthDigestDomain
應該列出將受此設定保護的位置。
在 AuthUserFile
指令中引用的密碼檔案可以使用 htdigest
工具建立和管理。
摘要驗證原先意在比基本驗證更安全,但已不再符合此設計目標。中間人攻擊者很容易地強迫瀏覽器降級到基本驗證。而且由於摘要驗證使用的雜湊演算法太快了,因此即使是被動竊聽者也能使用當今的顯示卡硬體暴力破解密碼。另一個問題是伺服器上密碼的儲存不安全。竊取來的 htdigest 檔案內容可用於摘要驗證。因此強烈建議使用 mod_ssl
來加密整個連線。
mod_auth_digest
僅能正確使用於支援共享記憶體的平台上。
說明 | 用於計算摘要驗證中挑戰和回應雜湊的演算法 |
---|---|
語法 | AuthDigestAlgorithm MD5|MD5-sess |
預設值 | AuthDigestAlgorithm MD5 |
內容 | directory, .htaccess |
覆寫 | AuthConfig |
狀態 | 延伸模組 |
模組 | mod_auth_digest |
AuthDigestAlgorithm
指令用來選擇計算挑戰和回應雜湊的演算法。
MD5-sess
尚未正確實作。說明 | 摘要驗證中屬於相同保護區的 URI |
---|---|
語法 | AuthDigestDomain URI [URI] ... |
內容 | directory, .htaccess |
覆寫 | AuthConfig |
狀態 | 延伸模組 |
模組 | mod_auth_digest |
AuthDigestDomain
指令讓您可以指定一個或多個 URI,將其放置在相同的保護區中 (例如,使用相同的領域及使用者名稱/密碼資訊)。指定的 URI 是前置詞;用戶端會假設所有「較低層」的 URI 也受到相同的使用者名稱/密碼保護。這些 URI 可以是絕對 URI (例如,包含 scheme、主機名稱、連接埠等) 或相對 URI。
此指令應該總是會被指定,且至少要包含此區塊的根 URI (集合)。省略的話會導致用戶端對傳送至該伺服器的每個要求都傳送 Authorization 標頭。
指定的 URI 也可以指向不同的伺服器,如果遇到這種情況,用戶端 (了解時) 接著就會在多個伺服器之間共用使用者名稱/密碼資訊,而不會每次都詢問使用者。
說明 | 伺服器隨機數的有效時間 |
---|---|
語法 | AuthDigestNonceLifetime 秒數 |
預設值 | AuthDigestNonceLifetime 300 |
內容 | directory, .htaccess |
覆寫 | AuthConfig |
狀態 | 延伸模組 |
模組 | mod_auth_digest |
AuthDigestNonceLifetime
指令控制伺服器隨機數的有效時間。當用戶端使用逾期的隨機數與伺服器聯絡時,伺服器將會搭配 stale=true
傳回 401。如果 seconds
大於 0,則指定隨機數的有效時間;此設定可能永遠不會短於 10 秒。如果 seconds
小於 0,則隨機數永遠不會過期。
說明 | 設定此位置的驗證提供者 |
---|---|
語法 | AuthDigestProvider |
預設值 | AuthDigestProvider file |
內容 | directory, .htaccess |
覆寫 | AuthConfig |
狀態 | 延伸模組 |
模組 | mod_auth_digest |
AuthDigestProvider
指令設定哪個提供者用於驗證此位置的使用者。預設的 file
提供者是由
模組實作。確保伺服器中有所選的提供者模組。mod_authn_file
請參閱
、mod_authn_dbm
、mod_authn_file
和 mod_authn_dbd
以取得提供者。mod_authn_socache
說明 | 決定在摘要驗證中使用的保護品質 |
---|---|
語法 | AuthDigestQop none|auth|auth-int [auth|auth-int] |
預設值 | AuthDigestQop auth |
內容 | directory, .htaccess |
覆寫 | AuthConfig |
狀態 | 延伸模組 |
模組 | mod_auth_digest |
AuthDigestQop
指令決定使用的 保護品質。auth
只驗證 (使用者名稱/密碼);auth-int
驗證加完整性檢查 (實體的 MD5 hash 也會計算並檢查);none
會讓模組使用舊的 RFC-2069 摘要演算法 (不包含完整性檢查)。同時指定 auth
和 auth-int
,瀏覽器可以選擇使用哪一種。none
僅應在瀏覽器因為某種原因不喜歡收到的 challenge 時使用。
auth-int
尚未實作。說明 | 配置共用記憶體的容量,用於追蹤用戶端 |
---|---|
語法 | AuthDigestShmemSize |
預設值 | AuthDigestShmemSize 1000 |
內容 | 伺服器設定 |
狀態 | 延伸模組 |
模組 | mod_auth_digest |
AuthDigestShmemSize
指令定義伺服器啟動時將配置的共用記憶體容量,用於追蹤用戶端。請注意,共用記憶體區段不能設定為小於追蹤至少一名用戶端所需的空間。此數值與您的系統有關。如果您想要找出確切數值,您可以將
設定為 AuthDigestShmemSize
0
的值,並在嘗試啟動伺服器後讀取錯誤訊息。
通常以 Bytes 來顯示 size,但您可在數字後面加上 K
或 M
表示您的值是 KBytes 或 MBytes。例如,下列指令全部都是等效的
AuthDigestShmemSize 1048576 AuthDigestShmemSize 1024K AuthDigestShmemSize 1M