天天看點

圖解HTTP之确認通路使用者身份的認證(八)

某些 Web 頁面隻想讓特定的人浏覽,或者幹脆僅本人可見。為達到這個目标,必不可少的就是認證功能。

計算機本身無法判斷坐在顯示器前的使用者的身份。進一步說,也無法确認網絡的那頭究竟有誰。可見,為了弄清究竟是誰在通路伺服器,就得讓對方的用戶端自報家門。

為确認 ueno 本人是否真的具有通路系統的權限,就需要核對“登入者本人才知道的資訊”、“登入者本人才會有的資訊”。

核對的資訊通常是指以下這些。

密碼;動态令牌;數字證書;生物認證;IC卡等。

圖解HTTP之确認通路使用者身份的認證(八)

HTTP 使用的認證方式

BASIC認證(基礎認證)HTTP/1.0

圖解HTTP之确認通路使用者身份的認證(八)

步驟一:請求資源,需要BASIC認證,伺服器傳回401;

步驟二:接收到401之後,用戶端将使用者ID和密碼發送給伺服器,Base64處理“使用者名ID:密碼”

步驟三:伺服器端接收到資訊後驗證,傳回響應。200或者401

BASIC不安全,用Base64編碼

DIGEST認證(摘要認證)

質詢響應:一開始一方會先發送認證要求給另一方,接着用另一方發送的質詢碼計算生成響應碼。最後将響應碼傳回給對方進行認證的方式。

圖解HTTP之确認通路使用者身份的認證(八)

步驟一:請求資源,響應401以及相應字段。質詢碼nonce

步驟二:接收到401後,響應相應資料,由質詢碼nonce計算

步驟三:驗證資料後響應200/401

SSL 用戶端認證

SSL 用戶端認證是借由HTTPS的用戶端證書完成認證的方式。憑借用戶端證書認證,伺服器可确認通路是否來自已登入的用戶端。

SSL 用戶端認證之前,在用戶端必須安裝相應證書

步驟一:接受請求,傳回Certificate Request封包,需要用戶端提供證書

步驟二:使用者選擇證書以後以Client Certificate封包發給伺服器

步驟三:伺服器端驗證通過後,獲驗證書内容的公鑰,開始HTTPS加密通信

圖解HTTP之确認通路使用者身份的認證(八)

SSL用戶端認證采用雙因素認證,即證書認證和表單認證。

基于表單認證

Web頁面,輸入使用者名和密碼的登入

一般會使用Cookie來管理Session會話狀态。

圖解HTTP之确認通路使用者身份的認證(八)

步驟一:輸入使用者名、密碼等以POST方式發送給伺服器端

步驟二:伺服器端驗證通過後,将狀态以及生成的SessionID綁定記錄後,設定Set-Cookie響應屬性,傳回響應

步驟三:用戶端接收後,将SessionID座位Cookie存入本地,下次請求自動發送該Cookie

為了安全可在Cookie内加入httponly屬性

繼續閱讀