天天看點

(chap8 确認通路使用者身份的認證) DIGES認證(摘要認證)

1. 定義

為了彌補BASIC不加密的缺點,DIGEST同樣适用質詢/響應的方式,但不會像BASIC直接發送明文,給對方的隻是相應摘要以及知訊碼産生的計算結果,是以比起BASIC認證,密碼洩露的可能性較小。

(chap8 确認通路使用者身份的認證) DIGES認證(摘要認證)

2. 步驟

(chap8 确認通路使用者身份的認證) DIGES認證(摘要認證)

step1.

請求需認證的資源時,伺服器會随着狀态碼401 Authorization Required,傳回帶 www-Authenticate首部字段的響應。該字段内包含質問響應方式認證所需的臨時質詢碼(随機數,nonce )。

  • 首部字段www-Authenticate 内必須包含realm和 nonce這兩個字段的資訊。用戶端就是依靠向伺服器回送這兩個值進行認證的。
  • nonce

    一種每次随傳回的401響應生成的任意随機字元串。該字元串通常推薦由Base64編碼的十六進制數的組成形式,但實際内容依賴伺服器的具體實作。

step2

接收到401狀态碼的用戶端,傳回的響應中包含DIGEST認證必須的首部字段Authorization資訊。 首部字段Authorization 内必須包含username、realm .nonce. uri和 response的字段資訊。

  • realm和 nonce就是之前從伺服器接收到的響應中的字段。
  • username是realm限定範圍内可進行認證的使用者名。
  • uri ( digest-uri)即 Request-URI 的值,但考慮到繪代理轉發後Request-URI的值可能被修改,是以事先會複制一份副本儲存在uri内。
  • response 也可叫做Request-Digest,存放經過MD5運算後的密碼字元串,形成響應碼。

    響應中其他的實體請參見第6章的請求首部字段Authorization。

step3

接收到包含首部字段Authorization請求的伺服器,會确認認證資訊的正确性。認證通過後則傳回包含Request-URI資源的響應。

并且這時會在首部字段Authentication-Info寫入一些認證成功的相關資訊。

3. 特點

  • DIGEST認證提供了高于BASIC認證的安全等級,但是和HTTPS的用戶端認證相比仍舊很弱。
  • DIGEST認證提供防止密碼被竊聽的保護機制,但并不存在防止使用者僞裝的保護機制。
  • DIGEST認證和 BASIC認證一樣,使用上不那麼便捷靈活,且仍達不到多數Web 網站對高度安全等級的追求标準。是以它的适用範圍也有所受限。