《圖解HTTP》閱讀筆記(下)

本篇是《圖解HTTP》閱讀筆記(下),主要是http安全相關的內容。web

第7章 確保Web安全的HTTPS

#HTTP的缺點

1.通訊使用明文(不加密),內容可能會被竊聽
2.不驗證通訊方的身份,所以有可能遭遇假裝
3.沒法證實報文的完整性,因此有可能已經遭到篡改
瀏覽器

#加密處理防止被竊聽

加密的方式大概有兩種
1.通訊的加密,也就是經過SSL或TLS的組合使用(注:TSL是以SSL爲原型開發的協議,有時會統一稱改協議爲SSL),將整個通訊線路進行加密處理。這須要客戶端與服務器創建起安全的通訊線路以後,才能開始通訊。
2.內容的加密,就是對HTTP協議傳輸的內容自己進行加密。爲了作到內容的加密,前提是要求客戶端和服務器端同時具有加密和解密的機制。
安全

#使用證書驗證通訊方身份

在HTTP協議通訊時,因爲不存在確認通訊方的步驟,任何人均可以發起請求。另外,服務器只要接收到請求,無論對方是誰都會返回一個響應。這就會帶來通訊雙方身份都有可能被假裝的問題。
SSL協議提供了一種稱爲證書的手段,用於肯定通訊的雙方。證書由值得信任的第三方機構頒發。經過證書,證實通訊方就是意料中的服務器;客戶端持有證書,便可完成我的身份的確認。
服務器

#報文完整性的保證

一般,咱們使用兩種方式確保報文的完整性:
a.使用MD5和SHA-1等散列值校驗的方式;
b.用數字簽名的方式確認文件
可是這些方式都沒法百分比保證去人結果的正確,PGP和MD5自己被改寫,用戶是沒法意識到的。HTTPS能夠比較好的解決這個問題。網絡

#HTTPS

HTTPS的組成是:HTTP+加密+認證+完整性保護 (解決HTTP的三個主要問題)
也就是說,咱們把添加了加密以及認證機制的HTTP稱爲HTTPS(HTTP Secure)
一般,HTTP直接和TCP通訊,當使用SSL時,則變成先和SSL通訊,而後由SSL和TCP通訊。SSL是獨立於HTTP的協議,是當今應用最爲普遍的網絡安全技術。加密

#加密的方式

1.共享密鑰加密
也就是加密和解密使用同一個密鑰的方式。過程是這樣的:發送端使用密鑰對內容進行加密,而後將加密過的內容和密鑰,一塊兒發送給接收方。
這就存在一個明顯的問題了,若是通訊被監聽,密鑰就可能會落入攻擊者之手,加密就失去了意義。
2.公開密鑰加密
公開密鑰加密使用一對非對稱的密鑰:私有密鑰,公開密鑰。
公開密鑰用於對內容加密,發送密文的一方使用對方的公開密鑰進行加密處理,對方收到被加密的信息後,使用私有密鑰進行解密。這種方式不須要發送用於解密的私有密鑰,能夠避免密鑰的泄露。設計

#混合使用加密方式

既然公開密鑰加密方式優於共享密鑰加密方式,那HTTPS使用的是哪一種呢?
HTTPS使用的是二者並用的混合加密機制。由於公開密鑰加密會消耗更多的CPU和內存,消耗更多的資源,處理速度要慢。合理的方式是,在交換密鑰環節使用公開密鑰加密方式,以後的創建通訊交換報文節點,則採用共享密鑰加密的方式。
orm

#證書認證的方式和原理

咱們已經瞭解了加密的方式和原理,那麼證書是怎麼確認通訊雙發身份的呢。
首先服務器運營人員向數字證書認證機構申請公開密鑰,數字認證機構確認申請者身份後,會對申請的公開密鑰作數字簽名,而後分配給申請者這個已經簽名的公開密鑰,最後將這個公開密鑰放入到共鑰證書後綁定在一塊兒。
通訊的時候,服務器將認證機構頒發的共鑰證書發送給客戶端,客戶端使用數字機構認證的公開密鑰對那張證書上的數字簽名進行驗證,驗證經過後,能夠確認兩件事情:a.服務器的公開密鑰是真實有效的數字機構認證的;b.服務器的公開密鑰是值得信賴的。
固然,多數瀏覽器會事先在瀏覽器內部植入經常使用認證機構的公開密鑰。
網絡安全

第8章 確認訪問用戶身份的認證

某些web頁面只想讓特定的人瀏覽,就須要對用戶的身份進行認證。覈對的信息一般有:
1.密碼:只有本人才知道的字符串信息
2.動態令牌:僅限於本人持有的設備內顯示的一次性密碼
3.數字認證:僅限本人持有的信息
4.生物認證:指紋、虹膜等
5.IC卡等
HTTP使用的認證方式有: 1.BASIC認證
2.DIGEST認證
3.SSL客戶端認證
4.FormBase認證
圖片

第9章 基於HTTP的功能追加協議

#SPDY
#AJAX
#Comet
#WebSocket
#HTTP/2.0
#WebDAV

第10章 構建web內容的技術

#HTML(HyperText Markup Language)

超文本標記語言。超文本是一種文檔系統,可將文檔中任意位置的信息與其它信息(文本或圖片)創建關聯,即超連接文本。

#CSS(Cascading Style Sheets)

CSS的理念就是讓文檔的結構和設計分離,達到解耦的目的。

#動態HTML(Dynamic HTML)

指使用客戶端腳本語言將靜態的HTML內容變成動態的技術的總稱。

#DOM

DOM是用於操做HTML文檔和XML文檔的API。

第11章 Web的攻擊技術

#因輸出值轉義不徹底引起的安全漏洞

1.跨站腳本攻擊(Cross-Site Scripting,XSS)
2.SQL注入攻擊
3.OS命令注入攻擊
4.HTTP首部注入攻擊
5.郵件首部注入攻擊
6.目錄遍歷攻擊
7.遠程文件包含漏洞

#因設置或設計上的缺陷引起的安全漏洞

1.強制瀏覽
2.不正確的錯誤信息處理
3.開放重定向

#因會話管理疏忽引起的安全漏洞

1.會話劫持
2.會話固定攻擊
3.跨站點請求僞造(Cross-Site Request Forgeries,CSRF)

#其它安全漏洞

1.密碼破解 2.點擊劫持 3.DoS攻擊 4.後門程序

相關文章
相關標籤/搜索