成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

是時候理解下HTTPS及背后的加密原理了

網絡 網絡管理 開發工具
HTTP(超文本傳輸安全協議),是以安全為目標的 HTTP 通道,簡單講是 HTTP 的安全版。本文,就來深入介紹下其原理。

HTTPS(超文本傳輸安全協議),是以安全為目標的 HTTP 通道,簡單講是 HTTP 的安全版。本文,就來深入介紹下其原理。

為什么需要 HTTPS

使用 HTPPS 的原因其實很簡單,就是因為 HTTP 的不安全。

[[264137]]

當我們往服務器發送比較隱私的數據時,如果使用 HTTP 進行通信。那么安全性將得不到保障。

首先數據在傳輸的過程中,數據可能被中間人抓包拿到,那么數據就會被中間人竊取。

其次數據被中間人拿到后,中間人可能對數據進行修改或者替換,然后發往服務器。

服務器收到數據后,也無法確定數據有沒有被修改或替換,當然,如果服務器也無法判斷數據就真的是來源于客戶端。

總結下來,HTTP 存在三個弊端:

  • 無法保證消息的保密性
  • 無法保證消息的完整性和準確性
  • 無法保證消息來源的可靠性

HTTPS 就是為了解決上述問題應運而生的。

HTTPS 基本概念

為了解決 HTTP 中存在的問題,HTTPS 采用了一些加解密,數字證書,數字簽名的技術來實現。下面先介紹一下這些技術的基本概念。

對稱加密與非對稱加密

為了保證消息的保密性,就需要用到加密和解密。加解密算法目前主流的分為對稱加密和非對稱加密。

①對稱加密(共享密匙加密):客戶端和服務器公用一個密匙用來對消息加解密,這種方式稱為對稱加密。

客戶端和服務器約定好一個加密的密匙。客戶端在發消息前用該密匙對消息加密,發送給服務器后,服務器再用該密匙進行解密拿到消息。

對稱加密的優點:對稱加密解決了 HTTP 中消息保密性的問題。

對稱加密的缺點:對稱加密雖然保證了消息保密性,但是因為客戶端和服務器共享一個密匙,這樣就使得密匙特別容易泄露。因為密匙泄露風險較高,所以很難保證消息來源的可靠性、消息的完整性和準確性。

②非對稱加密(公有密匙加密):既然對稱加密中,密匙那么容易泄露,那么我們可以采用一種非對稱加密的方式來解決。

采用非對稱加密時,客戶端和服務端均擁有一個公有密匙和一個私有密匙。公有密匙可以對外暴露,而私有密匙只有自己可見。

使用公有密匙加密的消息,只有對應的私有密匙才能解開。反過來,使用私有密匙加密的消息,只有公有密匙才能解開。

這樣客戶端在發送消息前,先用服務器的公匙對消息進行加密,服務器收到后再用自己的私匙進行解密。

非對稱加密的優點:

  • 非對稱加密采用公有密匙和私有密匙的方式,解決了 HTTP 中消息保密性問題,而且使得私有密匙泄露的風險降低。
  • 因為公匙加密的消息只有對應的私匙才能解開,所以較大程度上保證了消息的來源性以及消息的準確性和完整性。

非對稱加密的缺點:

  • 非對稱加密時需要使用到接收方的公匙對消息進行加密,但是公匙不是保密的,任何人都可以拿到,中間人也可以。

那么中間人可以做兩件事,是中間人可以在客戶端與服務器交換公匙的時候,將客戶端的公匙替換成自己的。

這樣服務器拿到的公匙將不是客戶端的,而是服務器的。服務器也無法判斷公匙來源的正確性。

第二件是中間人可以不替換公匙,但是他可以截獲客戶端發來的消息,然后篡改,然后用服務器的公匙加密再發往服務器,服務器將收到錯誤的消息。

  • 非對稱加密的性能相對對稱加密來說會慢上幾倍甚至幾百倍,比較消耗系統資源。正是因為如此,HTTPS 將兩種加密結合了起來。

數字證書與數字簽名

為了解決非對稱加密中公匙來源的不安全性。我們可以使用數字證書和數字簽名來解決。

①數字證書的申請

在現實中,有一些專門的權威機構用來頒發數字證書,我們稱這些機構為認證中心(CA,Certificate Authority)。

我們(服務器)可以向這些 CA 來申請數字證書。申請的過程大致是:自己本地先生成一對密匙,然后拿著自己的公匙以及其他信息(比如說企業名稱啊什么的)去 CA 申請數字證書。

CA 在拿到這些信息后,會選擇一種單向 Hash 算法(比如說常見的 MD5)對這些信息進行加密,加密之后的東西我們稱之為摘要。

單向 Hash 算法有一種特點就是單向不可逆的,只要原始內容有一點變化,加密后的數據都將會是千差萬別(當然也有很小的可能性會重復,有興趣的小伙伴了解一下鴿巢原理),這樣就防止了信息被篡改。

生成摘要后還不算完,CA 還會用自己的私匙對摘要進行加密,摘要加密后的數據我們稱之為數字簽名。

CA 將會把我們的申請信息(包含服務器的公匙)和數字簽名整合在一起,由此而生成數字證書。然后 CA 將數字證書傳遞給我們。

②數字證書怎么起作用

服務器在獲取到數字證書后,服務器會將數字證書發送給客戶端,客戶端就需要用 CA 的公匙解密數字證書并驗證數字證書的合法性。

那我們如何能拿到 CA 的公匙呢?我們的電腦和瀏覽器中已經內置了一部分權威機構的根證書,這些根證書中包含了 CA 的公匙。

之所以是根證書,是因為現實生活中,認證中心是分層級的,也就是說有認證中心,也有下面的各個子級的認證中心,是一個樹狀結構,計算機中內置的是機構的根證書,不過不用擔心,根證書的公匙在子級也是適用的。

客戶端用 CA 的公匙解密數字證書,如果解密成功則說明證書來源于合法的認證機構。解密成功后,客戶端就拿到了摘要。

此時,客戶端會按照和 CA 一樣的 Hash 算法將申請信息生成一份摘要,并和解密出來的那份做對比,如果相同則說明內容完整,沒有被篡改。

客戶端安全的從證書中拿到服務器的公匙就可以和服務器進行安全的非對稱加密通信了。服務器想獲得客戶端的公匙也可以通過相同方式。

下圖用圖解的方式說明一般的證書申請及其使用過程:

HTTPS 原理

通過上面的學習,我們了解了對稱加密與非對稱加密的特點和優缺點,以及數字證書的作用。

HTTPS 沒有采用單一的技術去實現,而是根據他們的特點,充分的將這些技術整合進去,以達到性能與安全較大化

這套整合的技術我們稱之為 SSL(安全套接層)。所以 HTTPS 并非是一項新的協議,它只是在 HTTP 上披了一層加密的外殼。

HTTPS 的建立,先看一下流程圖:

這里把 HTTPS 建立到斷開分為 6 個階段,12 個過程。下面將對 12 個過程一 一做解釋:

  • 客戶端通過發送 Client Hello 報文開始 SSL 通信。報文中包含客戶端支持的 SSL 的指定版本、加密組件(Cipher Suite)列表(所使用的加密算法及密匙長度等)。
  • 服務器可進行 SSL 通信時,會以 Server Hello 報文作為應答。和客戶端一樣,在報文中包含 SSL 版本以及加密組件。服務器的加密組件內容是從接收到的客戶端加密組件內篩選出來的。
  • 服務器發送證書報文。報文中包含公開密匙證書。
  • 服務器發送 Server Hello Done 報文通知客戶端,最初階段的 SSL 握手協商部分結束。
  • SSL 握手結束之后,客戶端以 Client Key Exchange 報文作為回應。報文包含通信加密中使用的一種被稱為 Pre-master secret 的隨機密碼串。該報文已用步驟 3 中的公開密匙進行加密。
  • 接著客戶端繼續發送 Change Cipher Spec 報文。該報文會提示服務器,在此報文之后的通信會采用 Pre-master secret 密匙加密。
  • 客戶端發送 Finished 報文。該報文包含連接至今全部報文的整體校驗值。這次握手協商是否能夠成功,要以服務器是否能夠正確解密該報文作為判定標準。
  • 服務器同樣發送 Change Cipher Spec 報文。
  • 服務器同樣發送 Finished 報文。
  • 服務器和客戶端的 Finished 報文交換完畢之后,SSL 連接就算建立完成。當然,通信會受到 SSL 的保護。從此處開始進行應用層協議的通信,即發送 HTTP 請求。
  • 應用層協議通信,即發送 HTTP 響應。
  • 由客戶端斷開連接。斷開連接時,發送 close_notify 報文。上圖做了一些省略,這步之后再發送 TCP FIN 報文來關閉與 TCP 的通信。

另外,在以上流程圖中,應用層發送數據時會附加一種叫做 MAC(Message Authentication Code)的報文摘要。MAC 能夠查知報文是否遭到篡改,從而保證報文的完整性。

下面再用圖解來形象的說明一下,此圖比上面數字證書的圖更加的詳細一些(圖片來源于《圖解 HTTP》):

經過上面的介紹,我們可以看出 HTTPS 先是利用數字證書保證服務器端的公匙可以安全無誤的到達客戶端。

然后再用非對稱加密安全的傳遞共享密匙,用共享密匙安全的交換數據。

HTTPS 的使用

HTTPS 那么的安全,是不是我們在什么場景下都要去使用 HTTPS 進行通信呢?答案是否定的。

①HTTPS 雖然提供了消息安全傳輸的通道,但是每次消息的加解密十分耗時,消耗系統資源。

所以,除非在一些對安全性比較高的場景下,比如銀行系統,購物系統中我們必須要使用HTTPS 進行通信,其他一些對安全性要求不高的場景,我們其實沒必要使用 HTTPS。

②使用 HTTPS 需要使用到數字證書,但是一般權威機構頒發的數字證書都是收費的,而且價格也是不菲的。

所以對于一些個人網站來講,如果對安全性要求不高,也沒必要使用 HTTPS。

 

責任編輯:武曉燕 來源: Hollis
相關推薦

2019-04-09 11:07:15

HTTPS加密安全

2019-08-20 14:01:22

HTTPSSSL協議

2023-05-29 08:12:38

2023-11-07 07:21:04

2014-07-07 10:04:32

2024-03-15 09:06:48

HTTPSCA私鑰

2022-03-22 09:16:24

HTTPS數據安全網絡協議

2021-05-19 15:40:54

HTTPS前端加密

2017-10-23 13:20:37

2021-11-29 08:00:00

安全加密技術數據安全

2017-05-04 16:35:45

2015-10-21 15:55:04

HTTPHTTPS

2019-12-11 16:56:37

HTTPS對稱加密Java

2011-07-11 16:05:42

MySQL索引

2019-12-04 09:18:40

HTTPS協議HTTP

2021-12-03 10:30:25

WOT技術峰會技術

2023-11-16 09:01:37

Hadoop數據庫

2024-02-19 08:17:10

Kafka消息隊列收發消息

2019-12-24 11:00:51

NVMeSSDSATA

2019-09-11 08:37:16

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 91精品国产综合久久久久久 | 国产一区中文字幕 | 黄网站在线播放 | 国产欧美一区二区三区久久人妖 | 91久久精品国产91久久性色tv | 色性av| 久久久999国产精品 中文字幕在线精品 | 黄视频网址 | 中国美女撒尿txxxxx视频 | 一区精品视频 | 97精品国产97久久久久久免费 | 国产高清av免费观看 | 日韩一区二区三区av | 精品国产一区二区三区日日嗨 | 亚洲精品白浆高清久久久久久 | 久久这里只有精品首页 | 三级免费网 | 日韩在线电影 | 九九九视频在线观看 | 亚洲精品福利视频 | 免费看爱爱视频 | 欧美一区二区三区小说 | 在线免费观看黄视频 | 日本久久精品视频 | www.一区二区三区 | 久久国产成人午夜av影院武则天 | a在线视频观看 | 综合久久av| 亚洲免费视频一区 | 亚洲天天 | 国产伦精品一区二区三区精品视频 | 黄在线免费观看 | 久久网一区二区 | 欧美成人a| a级大片免费观看 | 欧美精品综合在线 | 久久999 | 亚洲黄色高清视频 | 国产精品污污视频 | 日韩在线不卡视频 | 日日日干干干 |