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

面試官:為什么HTTPS是安全的?

開發 后端
首先先通過對 HTTP 中間人攻擊的來了解到 HTTP 為什么是不安全的,然后再從安全攻防的技術演變一直到 HTTPS 的原理概括,希望能讓大家對 HTTPS 有個更深刻的了解。

 1. HTTP 協議

在談論 HTTPS 協議之前,先來回顧一下 HTTP 協議的概念。

1.1 HTTP 協議介紹

HTTP 協議是一種基于文本的傳輸協議,它位于 OSI 網絡模型中的應用層。

HTTP 協議是通過客戶端和服務器的請求應答來進行通訊,目前協議由之前的 RFC 2616 拆分成立六個單獨的協議說明(RFC 7230、RFC 7231、RFC 7232、RFC 7233、RFC 7234、RFC 7235),通訊報文如下:

  •  請求 
  1. POST http://www.baidu.com HTTP/1.1  
  2. Host: www.baidu.com  
  3. Connection: keep-alive  
  4. Content-Length: 7  
  5. User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36  
  6. wd=HTTP 
  •  響應 
  1. HTTP/1.1 200 OK  
  2. Connection: Keep-Alive  
  3. Content-Encoding: gzip  
  4. Content-Type: text/html;charset=utf-8  
  5. Date: Thu, 14 Feb 2019 07:23:49 GMT  
  6. Transfer-Encoding: chunked  
  7. <html>...</html> 

1.2 HTTP 中間人攻擊

HTTP 協議使用起來確實非常的方便,但是它存在一個致命的缺點:不安全。

我們知道 HTTP 協議中的報文都是以明文的方式進行傳輸,不做任何加密,這樣會導致什么問題呢?下面來舉個例子:

    1.  小明在 JAVA 貼吧發帖,內容為我愛JAVA:    

    2.  被中間人進行攻擊,內容修改為我愛PHP    

    3.  小明被群嘲(手動狗頭)

可以看到在 HTTP 傳輸過程中,中間人能看到并且修改 HTTP 通訊中所有的請求和響應內容,所以使用 HTTP 是非常的不安全的。

1.3 防止中間人攻擊

這個時候可能就有人想到了,既然內容是明文那我使用對稱加密的方式將報文加密這樣中間人不就看不到明文了嗎,于是如下改造:

    1.  雙方約定加密方式    

    2.  使用 AES 加密報文    

這樣看似中間人獲取不到明文信息了,但其實在通訊過程中還是會以明文的方式暴露加密方式和秘鑰,如果第一次通信被攔截到了,那么秘鑰就會泄露給中間人,中間人仍然可以解密后續的通信:

那么對于這種情況,我們肯定就會考慮能不能將秘鑰進行加密不讓中間人看到呢?答案是有的,采用非對稱加密,我們可以通過 RSA 算法來實現。

在約定加密方式的時候由服務器生成一對公私鑰,服務器將公鑰返回給客戶端,客戶端本地生成一串秘鑰(AES_KEY)用于對稱加密,并通過服務器發送的公鑰進行加密得到(AES_KEY_SECRET),之后返回給服務端,服務端通過私鑰將客戶端發送的AES_KEY_SECRET進行解密得到AEK_KEY,最后客戶端和服務器通過AEK_KEY進行報文的加密通訊,改造如下:

可以看到這種情況下中間人是竊取不到用于AES加密的秘鑰,所以對于后續的通訊是肯定無法進行解密了,那么這樣做就是絕對安全了嗎?

所謂道高一尺魔高一丈,中間人為了對應這種加密方法又想出了一個新的破解方案,既然拿不到AES_KEY,那我就把自己模擬成一個客戶端和服務器端的結合體,在用戶->中間人的過程中中間人模擬服務器的行為,這樣可以拿到用戶請求的明文,在中間人->服務器的過程中中間人模擬客戶端行為,這樣可以拿到服務器響應的明文,以此來進行中間人攻擊:

這一次通信再次被中間人截獲,中間人自己也偽造了一對公私鑰,并將公鑰發送給用戶以此來竊取客戶端生成的AES_KEY,在拿到AES_KEY之后就能輕松的進行解密了。

中間人這樣為所欲為,就沒有辦法制裁下嗎,當然有啊,接下來我們看看 HTTPS 是怎么解決通訊安全問題的。

2. HTTPS 協議

2.1 HTTPS 簡介

HTTPS 其實是SSL+HTTP的簡稱,當然現在SSL基本已經被TLS取代了,不過接下來我們還是統一以SSL作為簡稱,SSL協議其實不止是應用在HTTP協議上,還在應用在各種應用層協議上,例如:FTP、WebSocket。

其實SSL協議大致就和上一節非對稱加密的性質一樣,握手的過程中主要也是為了交換秘鑰,然后再通訊過程中使用對稱加密進行通訊,大概流程如下:

這里我只是畫了個示意圖,其實真正的 SSL 握手會比這個復雜的多,但是性質還是差不多,而且我們這里需要關注的重點在于 HTTPS 是如何防止中間人攻擊的。

通過上圖可以觀察到,服務器是通過 SSL 證書來傳遞公鑰,客戶端會對 SSL 證書進行驗證,其中證書認證體系就是確保SSL安全的關鍵,接下來我們就來講解下CA 認證體系,看看它是如何防止中間人攻擊的。

2.2 CA 認證體系

上一節我們看到客戶端需要對服務器返回的 SSL 證書進行校驗,那么客戶端是如何校驗服務器 SSL 證書的安全性呢。

  •  權威認證機構

    在 CA 認證體系中,所有的證書都是由權威機構來頒發,而權威機構的 CA 證書都是已經在操作系統中內置的,我們把這些證書稱之為CA根證書:

  •  簽發證書

 我們的應用服務器如果想要使用 SSL 的話,需要通過權威認證機構來簽發CA證書,我們將服務器生成的公鑰和站點相關信息發送給CA簽發機構,再由CA簽發機構通過服務器發送的相關信息用CA簽發機構進行加簽,由此得到我們應用服務器的證書,證書會對應的生成證書內容的簽名,并將該簽名使用CA簽發機構的私鑰進行加密得到證書指紋,并且與上級證書生成關系鏈。

這里我們把百度的證書下載下來看看:

可以看到百度是受信于GlobalSign G2,同樣的GlobalSign G2是受信于GlobalSign R1,當客戶端(瀏覽器)做證書校驗時,會一級一級的向上做檢查,直到最后的根證書,如果沒有問題說明服務器證書是可以被信任的。

  •  如何驗證服務器證書

那么客戶端(瀏覽器)又是如何對服務器證書做校驗的呢,首先會通過層級關系找到上級證書,通過上級證書里的公鑰來對服務器的證書指紋進行解密得到簽名(sign1),再通過簽名算法算出服務器證書的簽名(sign2),通過對比sign1和sign2,如果相等就說明證書是沒有被篡改也不是偽造的。

這里有趣的是,證書校驗用的 RSA 是通過私鑰加密證書簽名,公鑰解密來巧妙的驗證證書有效性。

這樣通過證書的認證體系,我們就可以避免了中間人竊取AES_KEY從而發起攔截和修改 HTTP 通訊的報文。

總結

首先先通過對 HTTP 中間人攻擊的來了解到 HTTP 為什么是不安全的,然后再從安全攻防的技術演變一直到 HTTPS 的原理概括,希望能讓大家對 HTTPS 有個更深刻的了解。 

 

責任編輯:龐桂玉 來源: JAVA高級架構
相關推薦

2021-05-13 07:58:05

HTTPSHTTP安全

2021-05-12 08:20:53

開發

2023-12-06 09:10:28

JWT微服務

2023-12-20 14:35:37

Java虛擬線程

2021-09-07 10:44:33

Java 注解開發

2022-07-06 13:48:24

RedisSentinel機制

2024-03-13 07:53:57

弱引用線程工具

2024-01-11 08:12:20

重量級監視器

2024-02-22 15:36:23

Java內存模型線程

2021-12-08 06:53:29

面試動態代理

2022-09-29 07:30:57

數據庫索引字段

2020-10-24 15:50:54

Java值傳遞代碼

2021-01-21 07:53:29

面試官Promis打印e

2025-06-16 08:10:00

2022-02-08 08:14:07

Context數據線程

2022-12-27 08:39:54

MySQL主鍵索引

2024-11-26 17:43:51

2021-12-20 10:30:33

forforEach前端

2022-12-22 21:01:11

2020-04-16 08:22:11

HTTPS加解密協議
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日本精品裸体写真集在线观看 | 亚洲色图图片 | 国产亚韩 | 亚洲综合网站 | 国产一区二区三区四区五区加勒比 | 久草视| 欧美日韩一区在线观看 | 免费xxxx大片国产在线 | 国产免费一区二区三区网站免费 | 日韩在线小视频 | 91伦理片| 日韩精品视频在线 | 久艹网站 | 亚洲国产精品福利 | 久热久 | 久久精品免费一区二区 | 亚洲一区精品在线 | 成人国产精品久久 | 欧美日韩精品一区二区三区四区 | 欧美午夜在线 | 麻豆毛片 | 久久亚洲一区二区三区四区 | 欧美中文字幕在线 | 国产精品久久 | 精品国产乱码久久久久久蜜臀 | 久久久久久久一区 | 国产精品久久久久久久久免费高清 | 日本 欧美 三级 高清 视频 | 蜜桃视频一区二区三区 | 99精品国产一区二区三区 | 亚洲xx在线 | 中文字幕在线一区二区三区 | 久久伊| 精品99在线 | 天天色天天色 | 久久精品亚洲 | 国产一区二区在线免费观看 | 国产精品亚洲综合 | 一区二区三区不卡视频 | 成人在线视频一区 | 毛片黄片免费看 |