HTTPS系列筆記記錄(一):HTTPS 和SSL/TLS協議原理詳解

前言:

HTTPS(也稱爲HTTP over Transport Layer SecurityTLS),HTTP over SSLHTTP Secure)是一種通過算機網絡

安全通信通信協議,廣泛應用於互聯網,比喻Google,百度......。簡單的來說HTTPS是HTTP的升級安全版。

作用:

HTTPS提供了與正在通信的網站和相關聯的Web服務器的身份驗證,可以防止中間人攻擊。另外,它提供客戶端和服務器之間

的通信的雙向加密,這樣可以防止竊聽篡改或僞造通信內容。 實際上,這提供了一個合理的保證,即一個人準確地與想要的通信

網站(而不是冒名頂替者)溝通,以及確保用戶和網站之間的通信內容不能被讀取或僞造任何第三方。

概念:

兩種不同的通信協議區別:


1、HTTP 協議(HyperText Transfer Protocol,超文本傳輸協議)
:是客戶端瀏覽器或其他程序與Web服務器之間的應用層通信協
2、HTTPS 協議(HyperText Transfer Protocol over Secure Socket Layer):可以理解爲HTTP+SSL/TLS,即 HTTP 下加入 SSL
層,,HTTPS 的安全基礎是 SSL,因此加密的詳細內容就需要 SSL,用於安全的 HTTP 數據傳輸。


如上圖HTTPS比HTTP多了一層SSL/TLS。

SSL:

SSL(Secure Socket Layer,安全套接字層):1994年爲 Netscape 所研發,SSL 協議位於 TCP/IP 協議與各種應用層協議
間,爲數據通訊提供安全支持。

TLS:

TLS(Transport Layer Security,傳輸層安全):其前身是 SSL,它最初的幾個版本(SSL 1.0、SSL 2.0、SSL 3.0)由
公司開發,1999年從 3.1 開始被 IETF 標準化並改名,發展至今已經有 TLS 1.0、TLS 1.1、TLS 1.2 三個版本。SSL3.0和
TLS1.0由於存在安全漏洞,已經很少被使用到。目前使用最廣泛的是TLS 1.1、TLS 1.2。

HTTP和HTTPS的區別:

HTTPS URL以“https://”開頭,默認使用端口 443,而HTTP URL以“http://”開頭,默認使用端口80。

HTTP不加密,並且容易受到中間人和竊聽攻擊的攻擊,從而可以讓攻擊者訪問網站帳戶和敏感信息,並修改網頁以注入惡意
軟件或廣告。HTTPS旨在抵禦這種攻擊,並被認爲是安全的(除SSL的舊版本)。

網絡層編輯]

HTTP操作在TCP / IP模型的最高層,即應用層 ; TLS安全協議(作爲同一層的較低子層進行操作),在傳輸之前對HTTP消息進行加密,並在到達時解密消息。嚴格來說,HTTPS不是單獨的協議,而是指通過加密的 SSL / TLS連接使用普通HTTPHTTPS消息中的所有內容都被加密,包括頭文件和請求/響應加載。除了下面的限制部分描述的可能的CCA加密攻擊之外,攻擊者只能知道雙方之間發生連接及其域名和IP地址。

加密算法:

講述一下,基本上常見加密算法下面講述這些加密的概念:

1、首先講述一下什麼是“加密”和“解密”:

通俗來講,你可以把“加密“,“解密”理解爲互逆的數學運算,比喻數學中的加法和減法、乘法和除法的互爲逆算法。
加密的一個過程就是把“明文”變成“密文"的過程,相反,解密的把“密文”變成“明文”,在這兩個操作中都需要一個很關鍵的東西
就是“密鑰”,來參與運算。

2、什麼是"對稱加密"?

所謂“對稱加密”就是,“加密”和“解密”都是使用相同的【密鑰】。舉個例子,zip,rar的壓縮文件,如果在壓縮的時候輸入了密
,其他人需要知道輸入的密碼才能解壓這個文件。否則解壓不了,這裏的密碼相當於這個“密鑰”。

對稱加密:有流式、分組兩種,加密和解密都是使用的同一個密鑰。

例如:DES、AES-GCM、3DES,TDEA,Blowfish,RC5等等

3、什麼是“非對稱加密”?

所謂“非對稱加密”就是,加密”和“解密”都是使用不相同的【密鑰】。有公鑰和私鑰兩種來進行加密和解密,如果使用公鑰加密
那麼就是私鑰解密;如果是私鑰加密,那麼就是公鑰解密。兩個是不同的密鑰,所以非對稱相比對稱加密更加安全。非對稱加密
算法性能較低,但是安全性超強,由於其加密特性,非對稱加密算法能加密的數據長度也是有限的。
例如:RSA、DSA、ECDSA、 DH、ECDHE

4、哈希算法

將任意長度的信息轉換爲較短的固定長度的值,通常其長度要比信息小得多,且算法不可逆。

例如:MD5、SHA-1、SHA-2、SHA-256 等

5、數字簽名

簽名就是在信息的後面再加上一段內容(信息經過hash後的值),可以證明信息沒有被修改過。hash值一般都會加密後(

也就是簽名)再和信息一起發送,以保證這個hash值不被修改。

詳解Http訪問過程:



如上圖所示,HTTP請求過程中,客戶端與服務器之間沒有任何身份確認的過程,數據全部明文傳輸,“裸奔”在互聯網上,所以很容易遭到黑客的攻擊劫持讓系統癱瘓,如下:


如上圖所示:當客戶端發送請求很容易被黑客截獲,如果黑客冒充目標服務器,則可返回任意信息給客戶端,不被客戶端所察覺,我們經常會聽到“劫持”一次,所以使用直接使用HTTP傳輸是有風險的。

HTTP 向 HTTPS 演化的過程

對稱加密:

爲了防止上述現象的發生,人們想到一個辦法:對傳輸的信息加密(即使黑客把信息截獲,也無法破解)



如上圖,上圖是使用的對稱加密,之前我們在講述加密方法的時候說到過,對稱加密就是客戶端和服務端都是使用的同一個密鑰進行加密和解密。但是密鑰被第三方獲取,第三方也能解密,安全性相對較低。有如下常見的幾個缺點:

1、在互聯網時代,肯定不是單機了,所以存在不同的客戶端和服務端的服務器,如果客戶端和服務端服務器非常龐大,雙方都要維護大量的密鑰,從而大大的增加了維護成本。

2、因服務器的安全級別都有所不一樣,所以密鑰容易被泄露。

非對稱加密:



如上圖:客戶端和服務端之間是通過非對稱加密,客戶端使用公鑰或(私鑰)加密後進行數據傳輸至服務端,服務端使用私鑰或(公鑰)進行解密。非對稱加密也有如下缺點:

1、黑客如果獲取了客戶端的公鑰或(私鑰)也能進行解密,獲取其內容。


以上方法都存有缺陷,那麼有什麼方法可以防止數據被截獲、黑客獲取密鑰進行解密的以上的問題,那麼就是SSL證書。申購地址:阿里雲  又拍雲,還有其它網站也提供此服務。


如上圖所示,在第 ② 步時服務器發送了一個SSL證書給客戶端,SSL 證書中包含的具體內容有:


(1)證書的發佈機構CA
(2)證書的有效期
(3)公鑰
(4)證書所有者
(5)簽名
等等.............

1、客戶端在接受到服務端發來的SSL證書時,會對證書的真僞進行校驗,以瀏覽器爲例說明如下:
(1)首先瀏覽器讀取證書中的證書所有者、有效期等信息進行一一校驗
(2)瀏覽器開始查找操作系統中已內置的受信任的證書發佈機構CA,與服務器發來的證書中的頒發者CA比對,用於校驗證書是否爲合法機構頒發,一般都是通過第三方數字認證機構的數字簽名來頒發服務器的證書。 
(3)如果找不到,瀏覽器就會報錯,說明服務器發來的證書是不可信任的。
(4)如果找到,那麼瀏覽器就會從操作系統中取出  頒發者CA的公鑰,然後對服務器發來的證書裏面的簽名進行解密
(5)瀏覽器使用相同的hash算法計算出服務器發來的證書的hash值,將這個計算的hash值與證書中籤名做對比
(6)對比結果一致,則證明服務器發來的證書合法,沒有被冒充
(7)此時瀏覽器就可以讀取證書中的公鑰,用於後續加密了


2、所以通過發送SSL證書的形式,既解決了公鑰獲取問題,又解決了黑客冒充問題,一箭雙鵰,HTTPS加密過程也就此形成
    所以相比HTTP,HTTPS 傳輸更加安全
(1) 所有信息都是加密傳播,黑客無法竊聽。
(2) 具有校驗機制,一旦被篡改,通信雙方會立刻發現。
(3) 配備身份證書,防止身份被冒充。

總結:

從上述所描述的,HTTP---》HTTPS的協議增加了很多的握手和加密、解密的複雜過程。但能保證數據的安全傳輸。在飛速發展的互聯網時代,保證數據的安全性很重要,同時也提供了系統的安全性,防止黑客入侵,導致系統癱瘓。
HTTPS的缺點:

(1)SSL 證書費用很高,以及其在服務器上的部署、更新維護非常繁瑣
(2)HTTPS 降低用戶訪問速度(多次握手)
(3)網站改用HTTPS 以後,由HTTP 跳轉到 HTTPS 的方式增加了用戶訪問耗時(多數網站採用302跳轉)
(4)HTTPS 涉及到的安全算法會消耗 CPU 資源,需要增加大量機器(https訪問過程需要加解密)
(5)HTTPS比HTTP要慢2--100倍。SSL的慢分兩種。一種是指通信慢。另一種是指由於大量消耗CPU及內存等資源,導致處理速度變慢。和使用 HTTP 相比,網絡負載可能會變慢 2 到 100 倍。除去和TCP 連接、發送 HTTP 請求/響應以外,還必須進行 SSL 通信,因此整體上處理通信量不可避免會增加。另一點是 SSL 必須進行加密處理。在服務器和客戶端都需要進行加密和解密的運算處理。因此從結果上講,比起 HTTP 會更多地消耗服務器和客戶端的硬件資源,導致負載增強。針對速度變慢這一問題,並沒有根本性的解決方案,我們會使用SSL 加速器這種(專用服務器)硬件來改善該問題。該硬件爲SSL 通信專用硬件相對軟件來講能夠提高數倍SSL的計算速度。僅在SSL處理時發揮SSL加速器的功效以分擔負載。
……………



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章