HTTP和HTTPS的區別 傳輸層的TLS本質


先了解加密的幾種方式

加密無處不在 ,加密方式主要是分為兩種 :對稱加密非對稱加密

對稱加密算法和非對稱加密算法只不過是密碼學中的兩種加密算法罷了,所謂的算法就是一種可以將信息從一種形式轉變為另一種形式的規則。

 對稱加密

對稱密鑰加密,又稱為對稱加密、私鑰加密、共享秘鑰加密,是密碼學中的一類加密算法。這類算法在加密和解密時使用相同的密鑰,或是使用兩個可以簡單地相互推算的密鑰。

對稱加密也可以理解為一方通過密鑰將信息加密之后,把密文傳給另一方,另一方通過這個相同的密鑰將密文解密,轉換成可以理解的明文。簡單的可以理解為一把鑰匙既能加鎖,還能用同一把鑰匙進行            解鎖。

常見的對稱加密算法:DES、3DES、AES、Blowfish、IDEA、RC5、RC6;

對稱加密的算法非常之多,一般使用中用AES就基本夠用了。

非對稱加密

  • 概念:公開秘鑰加密,也稱為非對稱加密,一種密碼學算法類型,在這種密碼學方法中,需要一對密鑰,一個是私人密鑰,另一個則是公開密鑰。這兩個密鑰是數學相關,是某用戶密鑰加密后所得的信息,只能用該用戶的解密密鑰才能解密。如果知道了其中一個,並不能計算出另外一個。因此如果公開了一對密鑰中的一個,並不會危害到另外一個的秘密性質。稱公開的密鑰為公鑰,不公開的密鑰為私鑰。
  • 非對稱加密的使用方式就是,比如A想將數據傳輸給B,那么首先A會向B索取一份公鑰,A拿到公鑰之后,通過該公鑰對數據進行非對稱加密,然后將密文傳輸給B,B收到密文之后通過私鑰將其進行解密,從而得到數據內容。也就是說一把鎖可以使用兩把鑰匙進行解密。
  • 常見的非對稱加密算法:RSA、Elgamal、背包算法、Rabin。
  • RSA這種加密算法應用非常廣泛,如SSH、HTTPS、TLS、電子證書、電子簽名、電子身份證等。

加密方式總結

  • 對稱加密加密與解密使用的是同樣的密鑰,所以速度快,但由於需要將密鑰在網絡傳輸,所以安全性不高;
  • 非對稱加密使用了一對密鑰,公鑰和私鑰,所以安全性高,但加密與解密速度慢;
  • 解決的方法是將對稱加密的密鑰使用非對稱加密的公鑰進行加密,然后發送出去,接收方使用私鑰進行解密得到對稱加密的密鑰,然后雙方可以使用對稱加密來進行溝通。

深度研究TLS

TLS的前身是SSL,HTTP + TLS = HTTPS

TLS協議允許C/S模型的應用程序跨網絡通訊,旨在防止竊聽和篡改的方式進行溝通。

TLS協議的優勢在於它是與應用層協議獨立無關的。高層的應用層協議(例如:HTTP、FTP、Telnet等等)能透明的建立於TLS協議之上。

TLS協議在應用層協議通信之前就已經完成加密算法、通信密鑰的協商以及服務器認證工作。在此之后應用層協議所傳送的數據都會被加密,從而保證通信的私密性。
TLS協議是可選的,所以如果需要使用就必須配置客戶端和服務器,有兩種主要方式實現這一目標:一個是使用統一的TLS協議端口號(例如:用於HTTPS的端口443);

另一個是客戶端請求服務器連接到TLS時使用特定的協議機制 (例如:郵件、新聞協議和STARTTLS)。一旦客戶端和服務器都同意使用TLS協議,

他們通過使用一個握手過程協商出一個有狀態的連接以傳輸數據[1]。通過握手,客戶端和服務器協商各種參數用於建立安全連接:
1. 當客戶端連接到支持TLS協議的服務器要求建立安全連接並列出了受支持的密碼組合(加密密碼算法和加密哈希函數),握手開始。
2. 服務器從該列表中決定加密和散列函數,並通知客戶端。
3. 服務器發回其數字證書,此證書通常包含服務器的名稱、受信任的證書頒發機構(CA)和服務器的公鑰。
4. 客戶端確認其頒發的證書的有效性。
5. 為了生成會話密鑰用於安全連接,客戶端使用服務器的公鑰加密隨機生成的密鑰,並將其發送到服務器,只有服務器才能使用自己的私鑰解密。
6. 利用隨機數,雙方生成用於加密和解密的對稱密鑰。
7. 這就是 TLS 協議的握手,握手完畢后的連接是安全的,直到連接(被)關閉。如果上述任何一個步驟失敗,TLS 握手過程就會失敗,並且斷開所有的連接。

http與https的概念

http:是互聯網上應用最為廣泛的一種網絡協議,是一個客戶端和服務器端請求和應答的標准(TCP),用於從www服務器傳輸超文本到本地瀏覽器的傳輸協議,它可以使瀏覽器更加高效,使網絡傳輸減少;

https:是以安全為目標的http通道,簡單講是http的安全版,即http下加入SSL層,https的安全基礎是SSL,因此加密的詳細內容就需要SSL;

https協議的主要作用可以分為兩種:一種是簡歷一個信息安全通道,來保證數據傳輸的安全;另一種是確認網站的真實性。

SSL/TLS:安全套接字(Secure Socket Layer,SSL)協議是Web瀏覽器與Web服務器之間安全交換信息的協議,提供兩個基本的安全服務:鑒別和保密。這里TLS是SSL的一種實現。

 SSL證書的說明:

SSL證書是數字證書的一種,類似於駕駛證、護照和營業執照的電子副本。因為配置在服務器上,也稱為SSL服務器證書;

SSL證書就是遵守SSL協議,由受信任的數字證書頒發機構CA,在驗證服務器身份后頒發,具有服務器身份驗證和數據傳輸加密功能;

一個有效、可信的SSL數字證書包括一個公共密鑰和一個私用密鑰。公共密鑰用於加密信息,私用密鑰用於解譯加密的信息;

如果你的網站使用SSL證書,客戶就知道他們的交易安全可靠,並且充分信賴你的網站。

 

SSL證書優勢

對比傳統的加密方式,SSL證書有以下幾點優勢:

簡單快捷:只需要申請一張證書,部署在服務器上,就可以在有效期內不用做其他操作;

顯示直觀:部署SSL證書后,通過https訪問網站,能在地址欄或地址欄右側直接看到加密鎖標志,直觀地表明網站是加密的。使用EV證書,還能直接在地址欄看到公司名稱;

身份認證:這是別的加密方式都不具備的,能在證書里面看到網站所有者公司信息,進而確認網站的有效性和真實性,不會被釣魚網站欺騙。

 

http與https的區別

對比傳統的加密方式SSL證書有以下幾點優勢:

https協議需要到CA申請證書,一般免費證書很少,需要交費;

http是超文本傳輸協議,信息是明文傳輸,https則是具有安全性的ssl加密傳輸協議;

http和https使用的是安全不同的連接方式,用的端口也不一樣,前者是80,后者是443;

http的連接很簡單,是無狀態的;

https是由SSL+HTTP協議構建的可進行加密傳輸、身份認證的網絡協議,要比http協議安全。

 

塊(Block)加密 & 流(Stream)加密

世界上的數據分為兩種:Block and Stream —— auxten

Block

塊很容易理解,數據就在那里,無論你讀或者不讀。塊的一個顯著特征就是支持“隨機讀寫”,你可以對數據Block正向讀、倒着讀、跳着讀、躺着讀。磁盤和內存都是這類數據。大多數加密算法對Block的支持是原生的,也就是說Block是大多數加密算法的加密、解密最小單元。

Stream

流就像水管一樣,打開水龍頭,來什么你就收什么。流的一個顯著特征就是不支持“隨機讀寫”。由於解密的過程會對之前的數據有依賴,對流進行加密難度系數要比塊加密要高。流的一個典型場景就是網絡數據傳輸,如:HTTPS、SSH等協議。

 

生成數字簽名:

一般來說,不直接對消息進行簽名,而是對消息的哈希值進行簽名,步驟如下。

 (1)對消息進行哈希計算,得到哈希值
(2)利用私鑰對哈希值進行加密,生成簽名
(3)將簽名附加在消息后面,一起發送過去
(4)驗證簽名
(5)收到消息后,提取消息中的簽名
(6)用公鑰對簽名進行解密,得到哈希值1。
(7)對消息中的正文進行哈希計算,得到哈希值2。
(8)比較哈希值1和哈希值2,如果相同,則驗證成功。

 

 從協議分層模型方面來講,TCP/IP由四個層次組成:網絡接口層、網間網層、傳輸層、應用層。

 OSI的7層從上到下分別是 7 應用層 6 表示層 5 會話層 4 傳輸層 3 網絡層 2 數據鏈路層 1 物理層

 

 

 每層協議之間對應的協議

 

 

 

 圖片來源於網絡

 

 

 

 ps:願所求皆所願,所盼皆所期。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM