HTTP認證之基本認證——Basic(一)

1、概述

Basic認證是一種較爲簡單的HTTP認證方式,客戶端經過明文(Base64編碼格式)傳輸用戶名和密碼到服務端進行認證,一般須要配合HTTPS來保證信息傳輸的安全。瀏覽器

image

2、剖析

1.當打開須要認證的頁面時,會彈出一個對話框,要求輸入用戶名和密碼緩存

image

2.使用Fiddler監聽請求,能夠看到在未進行認證或認證失敗的狀況下,服務端會返回401 Unauthorized給客戶端,並附帶Challenge(質詢),即在Response Header中添加WWW-Authenticate標頭,瀏覽器識別到Basic後彈出對話框
Realm表示Web服務器中受保護文檔的安全域(好比公司財務信息域和公司員工信息域),用來指示須要哪一個域的用戶名和密碼,用" "包括起來(截圖中沒有,但最好加上)。安全

3.輸入正確的用戶名和密碼,認證成功後,瀏覽器會將憑據信息緩存起來,那麼之後再進入時,無需重複手動輸入用戶名和密碼。
查看HTTP請求,能夠看到Request Header中添加了Authorization標頭,格式爲:Authorization: <type> <credentials>服務器

  • 類型爲「Basic」
  • 憑證爲「MTIzOjEyMw==」,是經過將「用戶名:密碼」格式的字符串通過的Base64編碼獲得的。而Base64不屬於加密範疇,能夠被逆向解碼,等同於明文,所以Basic傳輸認證信息是不安全的

3、缺陷

1.用戶名和密碼明文(Base64)傳輸,須要配合HTTPS來保證信息傳輸的安全。
2.即便密碼被強加密,第三方仍可經過加密後的用戶名和密碼進行重放攻擊。
3.沒有提供任何針對代理和中間節點的防禦措施。
4.假冒服務器很容易騙過認證,誘導用戶輸入用戶名和密碼。
接下來,我會帶你們一塊兒去了解更爲安全的摘要認證——Digest。編碼

相關文章
相關標籤/搜索