[轉]www-authenticate認證過程淺析
一、www-authenticate簡介
www-authenticate是早期的一種簡單的,有效的使用者身份認證技術。
很多網站驗證都採用這種簡單的驗證方式來完成對客戶端請求的資料的合法性進行驗證。尤其在嵌入式領域中,此方法使用較多。
缺點:這種認證方式在傳輸過程中是明碼傳輸的,採用的使用者名稱密碼加密方式為BASE-64,其解碼過程非常簡單,網路上很容易搜尋到編解碼的原始碼。採用這種認證方式對於普通使用者是較安全的,但稍懂TCP/IP協議和HTTP傳輸協議和驗證過程的,破解這種驗證使用者名稱和密碼是非常簡單的。所以其認證技術並不是很安全。
二、認證過程
其基本認證過程如下(以下事例假設服務端開啟了www-authenticate認證功能):
1、首先客戶端(一般情況為使用者操作的WEB瀏覽器)會根據使用者輸入的資訊向服務端傳送HTTP請求,比如使用者要訪問www.baidu.com網站,瀏覽器根據此資訊向該網站的伺服器傳送一個(可能是多個)WEB請求。
2、 服務端收到請求後,首先會解析傳送來的資料中是否包含有:
“Authorization: Basic YWRtaW46YWRtaW4=”這種格式的資料,如果沒有這樣的資料,則服務端會發送HTTP資訊頭“WWW-Authenticate: Basic realm=“.””到客戶端,要求客戶端傳送合法的使用者名稱和密碼到服務端。(在傳送此資訊頭的同時也附帶驗證失敗時顯示的頁面提示資訊,如:、
3、當客戶端(瀏覽器)收到帶有類似“WWW-Authenticate: Basic realm=“.””的資訊後,將會彈出一個對話方塊,要求使用者輸入驗證資訊。
4、使用者輸入使用者名稱:admin 密碼:admin後,瀏覽器將以下面這種格式將資料傳送給伺服器端:
“Authorization: Basic YWRtaW46YWRtaW4=”(以上均不包含雙引號)Authorization: Basic為www-authenticate認證的標準HTTP資訊頭,YWRtaW46YWRtaW4=是經BASE-64加密後的使用者名稱和密碼,經解密後的格式為 admin:admin
5、伺服器收到帶有使用者驗證資訊的資料後,就會解析資料,將使用者名稱和密碼提取出來進行驗證其有效性,如果使用者名稱和密碼全部合法,則將使用者請求的頁面資料傳送給客戶端,瀏覽器將收到的資料還原為網頁內容。如果使用者驗證資訊不合法,則返回錯誤資訊。
三、使用www-authenticate認證的優缺點
優點:使用www-authenticate認證,在服務端做的事情較少,有一部分驗證處理都是在客戶端的瀏覽器完成的。像是否需要二次輸入使用者資訊,彈出怎樣的使用者資訊對話方塊,這些都是瀏覽器做的事,服務端並不需要再編寫使用者對話方塊之類的東西,也不需要判斷客戶端IP是否是同一個。
缺點:驗證方式太簡單,容易被破解。