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


導航

一、概述

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

image

二、剖析

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傳輸認證信息是不安全的

三、缺陷

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM