摘要訪問認證是一種協議規定的web伺服器用來同網頁瀏覽器進行認證資訊協商的方法。它在密碼發出前,先對其應用雜湊函式,這相對於http基本認證傳送明文而言,更安全。從技術上講,摘要認證是使用隨機數來阻止進行密碼分析的md5加密雜湊函式應用。它使用http協議。
一、摘要認證基本流程:
1.客戶端請求 (無認證)
2.伺服器響應
服務端返回401未驗證的狀態,並且返回www-authenticate資訊,包含了驗證方式digest,realm,qop,nonce,opaque的值。其中:
digest:認證方式;
realm:領域,領域引數是強制的,在所有的盤問中都必須有,它的目的是鑑別sip訊息中的機密,在sip實際應用中,它通常設定為sip**伺服器所負責的網域名稱;
qop:保護的質量,這個引數規定伺服器支援哪種保護方案,客戶端可以從列表中選擇乙個。值 「auth」表示只進行身份查驗, 「auth-int」表示進行查驗外,還有一些完整性保護。需要看更詳細的描述,請參閱rfc2617;
nonce:為一串隨機值,在下面的請求中會一直使用到,當過了存活期後服務端將重新整理生成乙個新的nonce值;
opaque:乙個不透明的(不讓外人知道其意義)資料字串,在盤問中傳送給使用者。
3.客戶端請求 (使用者名稱 "mufasa", 密碼 "circle of life")
客戶端接受到請求返回後,進行hash運算,返回authorization引數
其中:realm,nonce,qop由伺服器產生;
uri:客戶端想要訪問的uri;
nc:「現時」計數器,這是乙個16進製制的數值,即客戶端傳送出請求的數量(包括當前這個請求),這些請求都使用了當前請求中這個「現時」值。例如,對乙個給定的「現時」值,在響應的第乙個請求中,客戶端將傳送「nc=00000001」。這個指示值的目的,是讓伺服器保持這個計數器的乙個副本,以便檢測重複的請求。如果這個相同的值看到了兩次,則這個請求是重複的;
cnonce:這是乙個不透明的字串值,由客戶端提供,並且客戶端和伺服器都會使用,以避免用明文文字。這使得雙方都可以查驗對方的身份,並對訊息的完整性提供一些保護;
response:這是由使用者**軟體計算出的乙個字串,以證明使用者知道口令。
html**
response計算過程:ha1=md5(a1)=md5(username:realm:password)
如果 qop 值為「auth」或未指定,那麼 ha2 為
ha2=md5(a2)=md5(method:digesturi)
如果 qop 值為「auth-int
」,那麼 ha2 為
ha2=md5(a2)=md5(method:digesturi:md5(entitybody))
如果 qop 值為「auth」或「auth-int
」,那麼如下計算 response:
response=md5(ha1:nonce:noncecount:clientnonce:qop:ha2)
如果 qop 未指定,那麼如下計算 response:
response=md5(ha1:nonce:ha2)
請求頭:
4.伺服器響應
當伺服器接收到摘要響應,也要重新計算響應中各引數的值,並利用客戶端提供的引數值,和伺服器上儲存的口令,進行比對。如果計算結果與收到的客戶響應值是相同的,則客戶已證明它知道口令,因而客戶的身份驗證通過。
二、服務端驗證
編寫乙個自定義訊息處理器
WebApi 安全認證
無論是mvc或者是webapi安全驗證一般都踩用過濾器,這裡我們採用乙個自定義過濾器來實現webapi呼叫前的安全驗證 示例如下 實體類 1.產品類 namespace websecuritydemo.models public string pname 2.使用者資訊類 namespace web...
Web Api 智慧型Api介面
web api 智慧型api介面php版本 本api完全免費使用,我們將盡可能提供最快最穩定的伺服器,歡迎們提供贊助!贊助我們 因本站伺服器資源有限,同時建議有條件的朋友可以購買該api資料及程式,詳詢qq56559574 引數說明 天氣 msg 天氣深圳 中英翻譯 msg 翻譯i love you...
初識web API介面及Restful介面規範
明確了請求方式,提供對應後台所需引數,請求url鏈結可以得到後台的響應資料 url 返回資料的url 請求方式 get,post,put,patch.請求引數 json或xml格式的key value型別資料 響應結果 返回json或xml格式的key value型別資料 參照某種規則 規範 書寫u...