摘要:首發地址識別認證與安全第三部分的章提供了一系列的技術和機器,可用來跟蹤身份,進行安全性檢測,控制對內容的訪問。安全使用基本認證的唯一方式就是將其與配合使用。加密之前的原始報文通常被稱為明文或。
WilsonLiu"s blog 首發地址
識別,認證與安全第三部分的4章提供了一系列的技術和機器,可用來跟蹤身份,進行安全性檢測,控制對內容的訪問。
客戶端識別與cookie機制 第十一章HTTP最初是一個匿名,無狀態的請求/響應協議。服務器處理來自客戶端的請求,然后向客戶端回送一條響應。web服務器幾乎沒有什么信息可以用來判定是哪個用戶發送的請求,也無法記錄來訪用戶的請求序列。
用戶識別機制承載用戶身份信息的HTTP首部
客戶端IP地址跟蹤,通過用戶的IP地址對其進行識別
用戶登錄,用認證方式來識別用戶
胖URL,一種在URL中嵌入識別信息的技術
cookie,一種功能強大且高效的持久身份識別技術
HTTP首部下表給出了7種常見的用來承載用戶相關信息的HTTP請求首部。后面3個首部是擴展類型的請求首部。
首部名稱 | 描述 |
---|---|
From | 用戶的E-mail地址 |
User-Agent | 用戶的瀏覽器軟件 |
Referer | 用戶是從這個頁面上依照鏈接跳轉過來的 |
Authorization | 用戶名和密碼 |
Client-IP | 客戶端的IP地址 |
X-Forwarded-For | 客戶端的IP地址 |
Cookie | 服務器產生的ID標簽 |
為了使web站點的登錄更加簡便,HTTP中包含了一種內建機制,可以用WWW-Authenticate首部和Authorization首部向web站點傳送用戶的相關信息。一旦登錄,瀏覽器就可以不斷地在每條發往這個站點的請求中發送這個登錄信息了。
缺點:保密性不強,不能跨站點,不同的站點需要重新輸入賬戶密碼。
胖URL可以通過胖URL將服務器上若干個獨立的HTTP事務捆綁成一個"會話"或"訪問"。用戶首次訪問這個web站點時,會生成一個唯一的ID,用服務器可以識別的方式將這個ID添加到URL中,然后服務器就會將客戶端重新導向這個胖URL。
問題:
丑陋的URL
無法共享URL
破壞緩存
額外的服務器負荷
逃逸口
在會話間是非持久的
cookiecookie是當前識別用戶,實現持久會話的最好方式。最初由網景公司開發,但現在所有的主要瀏覽器都支持他。
cookie的類型可以籠統的分為:會話cookie和持久cookie。會話cookie和持久cookie的唯一區別就是他們的過期時間。 如果設置了Discard參數,或者沒有設置Expires或Max-Age參數來說明擴展的過期時間,這個cookie就是一個會話cookie。
不同的站點使用不同的cookiecookie的域屬性
產生cookie的服務器可以向Set-Cookie響應首部添加一個Domain屬性來控制哪些站點開業看到那個cookie。
Set-cookie: user="wilson";domain="wilsonliu.cn"
則用戶訪問的任何以wilsonliu.cn結尾的站點都會講此cookie發布出去。
cookie的路徑屬性
cookie規范甚至允許用戶將cookie與部分web站點關聯起來。可以通過Path屬性來實現這一功能。
Set-cookie: year="21";domain="wilsonliu.cn";path=/year/
則只會在/year/下的站點時才會發布此cookie。
cookie成分 cookie版本0 (Netscape)Set-Cookie首部
Name=Value
Expires
domain
Path
Secure
cookie首部
客戶端發送請求時,會將所有與域,路徑,安全過濾器匹配的未過期的cookie都發送給這個站點。
Set-Cookie2
Name = Value
Version
Comment
CommentURL
Discard
domain
Max-Age
Path
Port
Secure
cookie首部
版本1的cookie會帶回與傳輸的每個cookie相關的附加信息,用來描述每個cookie途徑的過濾器。每個匹配的cookie都必須包含來自相應的Set-Cookie2首部的所有Domain,Port和Path屬性。
基本認證質詢首部
HTTP/1.0 401 Unauthorized WWW-Authenticate: Basic realm=quoted-realm
響應首部(通過base64編碼傳輸)
Authorization:Basic base64-username-and-password摘要認證 第十三章
基本認證便捷靈活,但極不安全。用戶名與密碼明文傳輸,也沒有采取任何措施防止對報文的篡改。安全使用基本認證的唯一方式就是將其與SSL配合使用。
摘要認證與基本認證兼容。但卻更為安全。
摘要認證的改進永遠不會以明文的方式在網絡上發送密碼
可以防止惡意用戶捕獲并重放認證的握手過程
可以有選擇地防止對報文內容的篡改
防范其他幾種常見的攻擊方式
用摘要保護密碼摘要認證遵循的箴言是"絕不通過網絡發送密碼"。客戶端不會發送密碼,而是會發送一個“指紋”或密碼的"摘要",這是密碼的不可逆擾碼。
單向摘要摘要是"對信息主體的濃縮"。摘要是一種單向函數,主要用于將無限的輸入值轉換為有限的濃縮輸出值。常見的摘要函數MD5,會將任意長度的字節序列轉換為一個128位的摘要。
有時也將摘要函數稱為加密的校驗和,單向散列函數或指紋函數。
使用單向摘要就無需以明文形式發送密碼,沒有哪個而已用戶能夠輕易地從摘要中解碼出原始密碼。
但是僅僅隱藏密碼并不能避免危險,因為即便不知道密碼,也可以截獲摘要,并重放給服務器。摘要和密碼一樣好用。
為防止此類重放攻擊的發生服務器可以向客戶端發送一個稱為隨機數(nonce)的特殊令牌,這個數會經常發生變化(可能是每毫秒,或者是每次認證都變化)。客戶端在計算摘要之前要先將這個隨機數令牌附加到密碼上去。
摘要的計算摘要認證的核心就是對公共信息,保密信息和有時限的隨機值這個組合的單項摘要。
數據與安全性相關的數據(A1) ——包含有用戶名,密碼,保護域和隨機數等內容
與報文有關的數據(A2) ——比如URL,請求方法和報文實體,A2有助于防止方法,資源或報文被篡改
預授權在普通的認證方式中,事務結束之前,每條請求都要有一次請求/質詢的循環。
如果客戶端事先知道下一個隨機數是什么,就可以取消這個請求/質詢循環。
服務器預先在Authentication-Info成功首部中發送下一個隨機數
服務器允許在一小段時間內使用同一個隨機數
客戶端和服務器使用同步的,可預測的隨機數生成算法
應該考慮的實際問題多重質詢
差錯處理
保護空間
重寫URI
緩存
安全性考慮首部篡改
重放攻擊
多重認證機制
詞典攻擊
惡意代理攻擊和中間人攻擊
選擇明文攻擊
存儲密碼
安全HTTP 第十四章 保護HTTP的安全服務器認證
客戶端認證
完整性
加密
效率
普適性
管理的可擴展性
適應性
在社會的可行性
HTTPSHTTPS是最流行的HTTP安全形式,它是由網景公司首創,所有主要的瀏覽器和服務器都支持此協議。
使用HTTPS時,所有的HTTP請求和響應數據在發送到網絡之前,都要進行加密。HTTPS在HTTP下面提供了一個傳輸級的密碼安全層——可以使用SSL,也可以使用其后繼者,傳輸層安全(Transport Layer Security,TLS)。
大部分困難的編碼及解碼工作都是在SSL庫中完成的,所以web客戶端和服務器在使用安全HTTP時無需過多地修改器協議處理邏輯。在大多數情況下,只需要用SSL的輸入/輸出調用取代TCP的調用,再增加其他幾個調用來配置和管理安全信息就行了。
數字加密密碼 對文本進行編碼,使偷窺者無法識別的算法
密鑰 改變密碼行為的數字化參數
對稱密鑰加密系統 編/解碼使用相同密鑰的算法
不對稱密鑰加密系統 編/解碼使用不同密鑰的算法
公開密鑰加密系統 一種能夠使數百萬計算機便捷地發送機密報文的系統
數字簽名 用來驗證報文未被偽造或篡改的校驗和
數字證書 由一個可信的組織驗證和簽發的識別信息
密碼密碼學基于一種名為密碼(cipher)的秘密代碼。密碼是一套編碼方案——一種特殊的報文編碼方式和一種稍后使用的相應解碼方式的結合體。加密之前的原始報文通常被稱為明文(plaintext或cleartext)。使用了密碼之后的編碼報文通常被稱作密文(ciphertext)。
使用密鑰的密碼編碼算法和編碼機器都可能落入敵人手中,所以大部分機器上都有一些盤號,可以將其設置為大量不同的值以改變密碼的工作方式。這些密碼參數被稱為密鑰(key),要在密碼機中輸入正確的密鑰,解密過程才能正確進行。
對稱密鑰加密技術編碼時使用的密鑰值和解碼時一樣,這就是對稱密鑰(symmetric-key)。
保持密鑰的機密狀態是很重要的,在很多情況下,編/解碼算法都是眾所周知的,因此密鑰就是唯一保密的東西了。好的加密算法會迫使攻擊者試遍每一個可能的密鑰,才能破解代碼。用暴力去嘗試所有的密鑰值稱為枚舉攻擊(enumeration attack)。可用密鑰的數量取決于密鑰中的位數,以及可能的密鑰中有多少是有效的。
對稱密鑰加密技術的缺點之一就是發送者和接受者在互相對話之前,一定要有一個共享的保密密鑰。每對通信實體都需要自己的私有密鑰。如果有N個節點,每個節點都要和其他所有的N-1個節點進行安全對話,總共需要N的平方個保密密鑰,這將是一個管理噩夢。
公開密鑰加密技術公開密鑰使用了2個非對稱密鑰:一個用來對主機報文編碼,另外一個用來對主機報文解碼。編碼密鑰是眾所周知的,但只要主機才知道私有的解密密鑰。
所有的公開密鑰非對稱加密系統所面臨的共同挑戰是,要確保即便有人擁有了下面所有的線索,也無法計算出保密的私有密鑰:
公開密鑰
一小片攔截下來的密文(可通過對網絡的嗅探獲取)
一條報文及與之相關的密文(對任意一段文本運行加密器就可以得到)
混合加密系統和會話密鑰
兩節點間通過便捷的公開密鑰加密技術建立起安全通信,然后再用那條安全的通道產生并發送臨時的隨即對稱密鑰,通過更快的對稱加密技術對其余的數據進行加密。
數字簽名除了加/解密報文之外,還可以用加密系統對報文進行簽名(sign),以說明是誰編寫的報文,同時證明報文未被篡改過。這種技術被稱為數字簽名(digital signing)。
客戶端將變長報文提取為定長的摘要
客戶端對摘要應用了一個"簽名"函數,這個函數會將用戶的私有密鑰作為參數。因為只有用戶才知道私有密鑰,所以正確的簽名函數會說明簽名者就是其所有者。
一旦計算出簽名,客戶端就將其附加在報文的末尾,并將報文和簽名都發送給對方。
在接收端,會用公開密鑰對簽名進行檢查,如果不匹配則表示已被篡改。
使用數字簽名的好處
簽名可以驗證是作者編寫了這條報文,只有作者才會有最機密的私有密鑰,因此,只有作者才能計算出這些校驗和。校驗和就像來自作者的個人“簽名”一樣。
簽名可以防止報文被篡改,如果有惡意攻擊者在報文傳輸過程中對其進行了修改,校驗和就不再匹配了。由于校驗和只有作者保密的私有密鑰才能產生,所以攻擊者無法為篡改了的報文偽造出正確的校驗碼。
數字證書數字證書中包含了由某個受信任組織擔保的用戶或公司的相關信息。數字證書都是由官方的"證書頒發機構"以數字方式簽發的。
通過HTTPS建立了一個安全web事務之后,現代瀏覽器都會自動獲取所連接服務器的數字證書。如果服務器沒有證書,安全連接就會失敗。瀏覽器收到證書的時候會對簽名頒發機構進行檢查。
HTTPS將HTTP協議與一組強大的對稱,非對稱和基于證書的加密技術結合在一起,使得HTTPS不僅很安全,而且很靈活,很容易在處于無序狀態的,分散的全球互聯網上進行管理。
客戶端會對web資源執行某事務時,他會去檢查URL的方案,如果URL的方案是https,客戶端就會打開一條到服務器端口443(而不是傳統的http默認的80端口)的連接,然后與服務器進行SSL"握手",以二進制格式與服務器交換一些SSL安全參數,附加上加密的HTTP命令。
站點證書的有效性日期檢測
簽名頒發者可信度檢測
簽名檢測
站點身份檢測
通過代理以隧道形式傳輸安全流量客戶端通常會用web代理服務器代表它們來訪問web服務器。但只要客戶端開始用服務器的公開密鑰對發往服務器的數據進行加密,代理就再也不能讀取HTTP首部了!就無法知道應該將請求轉向何處了。
為了使HTTPS與代理配合工作,可以用HTTPS SSL隧道協議。使用HTTPS隧道協議,客戶端首先告訴代理,它想要連接的安全主機和端口。這是在開始加密之前,以明文形式告知的。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/35778.html
摘要:首發地址識別認證與安全第三部分的章提供了一系列的技術和機器,可用來跟蹤身份,進行安全性檢測,控制對內容的訪問。安全使用基本認證的唯一方式就是將其與配合使用。加密之前的原始報文通常被稱為明文或。 WilsonLius blog 首發地址 識別,認證與安全 第三部分的4章提供了一系列的技術和機器,可用來跟蹤身份,進行安全性檢測,控制對內容的訪問。 客戶端識別與cookie機制 第十一章 H...
摘要:首發地址識別認證與安全第三部分的章提供了一系列的技術和機器,可用來跟蹤身份,進行安全性檢測,控制對內容的訪問。安全使用基本認證的唯一方式就是將其與配合使用。加密之前的原始報文通常被稱為明文或。 WilsonLius blog 首發地址 識別,認證與安全 第三部分的4章提供了一系列的技術和機器,可用來跟蹤身份,進行安全性檢測,控制對內容的訪問。 客戶端識別與cookie機制 第十一章 H...
摘要:在使用分塊編碼時,可以沒有,此時,數據是分為一系列的塊來發送的,每塊都有大小說明。實體摘要為檢測實體主體的數據是否被修改過,發送方可以在生成初始的主體時,生成一個數據的校驗和。分塊編碼把報文分割為若干個大小已知的塊。 WilsonLius blog 首發地址 實體和編碼 每天都有數以億計的各種媒體對象經由HTTP傳送,如圖像,文本,影片以及軟件程序等。HTTP會確保它的報文被正確的傳送...
摘要:在使用分塊編碼時,可以沒有,此時,數據是分為一系列的塊來發送的,每塊都有大小說明。實體摘要為檢測實體主體的數據是否被修改過,發送方可以在生成初始的主體時,生成一個數據的校驗和。分塊編碼把報文分割為若干個大小已知的塊。 WilsonLius blog 首發地址 實體和編碼 每天都有數以億計的各種媒體對象經由HTTP傳送,如圖像,文本,影片以及軟件程序等。HTTP會確保它的報文被正確的傳送...
閱讀 3133·2021-11-19 09:40
閱讀 2430·2021-10-14 09:42
閱讀 1698·2021-09-22 15:34
閱讀 1441·2019-08-30 15:55
閱讀 775·2019-08-29 12:59
閱讀 412·2019-08-28 18:28
閱讀 1817·2019-08-26 13:42
閱讀 1518·2019-08-26 13:29