WEB安全之web應用認證基本概念

2021-09-24 04:53:40 字數 2892 閱讀 4563

一、http常見認證機制

1、基本認證:

1)客戶端訪問乙個受http基本認證保護的資源

2)服務端返回乙個狀態碼401or403:沒有授權or沒有許可權登入,要求客戶端提供使用者名稱和密碼

3)客戶端將輸入的使用者名稱和密碼進行base64編碼後,採用非加密的明文形式給服務單,如:authorization: basic *********x

4)如果認證成功,服務端返回相應資料請求成功的code碼以及資源資料,如果認證失敗,則繼續返回401or403code碼,要求重新認證

特記事項:

1. http是無狀態的,同乙個客戶端對同乙個realm內資源的每乙個訪問會被要求進行認證。

2. 客戶端通常會快取使用者名稱和密碼,並和authentication realm一起儲存,所以,一般不需要你重新輸入使用者名稱和密碼。

3. 以非加密的明文方式傳輸,雖然轉換成了不易被人直接識別的字串,但是無法防止使用者名稱密碼被惡意盜用。

2、 摘要認證步驟:

1. 客戶端訪問乙個受http摘要認證保護的資源。

2. 伺服器返回401狀態以及nonce等資訊,要求客戶端進行認證。

3. 客戶端將以使用者名稱,密碼,nonce值,http方法, 和被請求的uri為校驗值基礎而加密(預設為md5演算法)的摘要資訊返回給伺服器。

認證必須的五個情報:

・ realm : 響應中包含資訊

・ nonce : 響應中包含資訊

・ username : 使用者名稱

・ digest-uri : 請求的uri

・ response : 以上面四個資訊加上密碼資訊,使用md5演算法得出的字串。

authorization:digest

username=「mufasa」, ← 客戶端已知資訊

realm="[email protected]",   ← 伺服器端質詢響應資訊

nonce=「dcd98b7102dd2f0e8b11d0f600bfb0c093」,  ← 伺服器端質詢響應資訊

uri="/dir/index.html", ← 客戶端已知資訊

qop=auth,   ← 伺服器端質詢響應資訊

nc=00000001, ← 客戶端計算出的資訊

cnonce=「0a4f113b」, ← 客戶端計算出的客戶端nonce

response=「6629fae49393a05397450978507c4ef1」, ← 最終的摘要資訊 ha3

opaque=「5ccc069c403ebaf9f0171e9517f40e41」  ← 伺服器端質詢響應資訊

4. 如果認證成功,則返回相應的資源。如果認證失敗,則仍返回401狀態,要求重新進行認證。

特記事項:

1. 避免將密碼作為明文在網路上傳遞,相對提高了http認證的安全性。

2. 當使用者為某個realm首次設定密碼時,伺服器儲存的是以使用者名稱,realm,密碼為基礎計算出的雜湊值(ha1),而非密碼本身。

3. 如果qop=auth-int,在計算ha2時,除了包括http方法,uri路徑外,還包括請求實體主體,從而防止put和post請求表示被人篡改。

4. 但是因為nonce本身可以被用來進行摘要認證,所以也無法確保認證後傳遞過來的資料的安全性。

※ nonce:隨機字串,每次返回401響應的時候都會返回乙個不同的nonce。

※ nounce:隨機字串,每個請求都得到乙個不同的nounce。

※ md5(message digest algorithm 5,資訊摘要演算法)

① 使用者名稱:realm:密碼 ⇒ ha1

② http方法:uri ⇒ ha2

③ ha1:nonce:nc:cnonce:qop:ha2 ⇒ ha3

◆ wsse(ws-security)認證  ← 擴充套件http認證

wsse usernametoken

伺服器端以nonce進行質詢,客戶端以使用者名稱,密碼,nonce,http方法,請求的uri等資訊為基礎產生的response資訊進行認證的方式。

※ 不包含密碼的明文傳遞

wsse認證步驟:

1. 客戶端訪問乙個受wsse認證保護的資源。

2. 伺服器返回401狀態,要求客戶端進行認證。

http/1.1 401 unauthorized

www-authenticate:wsse

realm="[email protected]",

profile=「usernametoken」 ← 伺服器期望你用usernametoken規則生成回應

※ usernametoken規則:客戶端生成乙個nonce,然後根據該nonce,密碼和當前日時來算出雜湊值。

3. 客戶端將生成乙個nonce值,並以該nonce值,密碼,當前日時為基礎,算出雜湊值返回給伺服器。

authorization:wsse profile=「usernametoken」

x-wsse:usernametoken

username=「mufasa」,

passworddigest=「z2y…」,

nonce=「dcd98b7102dd2f0e8b11d0f600bfb0c093」,

created=「2010-01-01t09:00:00z」

4. 如果認證成功,則返回相應的資源。如果認證失敗,則仍返回401狀態,要求重新進行認證。

web之困 現代web應用安全指南

web之困 現代web應用安全指南 在web安全領域有 聖經 的美譽,在世界範圍內被安全工作者和web從業人員廣為稱道,由來自google chrome瀏覽器團隊的世界頂級黑客 國際一流安全專家撰寫,是目前唯一深度探索現代web瀏覽器安全技術的專著。本書從瀏覽器設計的角度切入,以 瀏覽器的各主要特性...

Web應用安全認知

目前雲計算環境下的應用主要以web應用為主,本認證課程旨在幫助學員了解web應用的主要威脅,以及對常見的攻擊,如 sql注入攻擊 xss攻擊 檔案上傳攻擊等,有一定的理解。這樣才能更好的在開發或運維過程中預防和處理這些攻擊,以及減少帶來的影響。web 應用安全現狀方面,當前重點行業 如政務 教育 事...

Web應用安全測試

什麼是測試 經歷測試過程 給出檢驗或者證明 分配一項基於試驗的評估。安全測試則是按照一組標準比較系統或者應用程式安全狀態的過程。為什麼要測試 驗證是否達標,是否存在質量問題。另外 a.web安全漏洞嚴重,佔整個漏洞威脅的80 以上 一不留神就會造成經濟財產損失乃至觸犯法律 b.可以帶來不錯的工作,額...