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

面試必問:說一下 HTTPS 的執行流程?

開發 前端
使用 HTTP 協議存在明文通訊和中間人攻擊等問題,但這些問題在 HTTPS 中得到了有效的解決,HTTPS 通過數字證書解決了中間人攻擊的問題,使用加密手段解決了明文通訊和數據完整性的問題。

說到 HTTPS 相信大部分人都是不陌生,因為目前我們使用的絕大數網站都是基于 HTTPS 的,比如以下這些:

圖片

圖片

圖片

那么問題來了,他們為什么要使用 HTTPS 呢?HTTPS 有哪些過人之處呢?

1、HTTP

在說 HTTPS 之前,我們先要了解 HTTP,因為 HTTP 是 HTTPS 通訊的基礎。HTTP(HyperText Transport Protocol)超文本傳輸協議,它用于傳輸客戶端和服務器端的數據。HTTP 使用很簡單也很方便,但卻存在以下 3 個致命問題:

  1. 使用明文通訊,內容可以被竊聽。
  2. 不驗證通訊方的真實身份,可能會遭到偽裝。
  3. 無法證明報文的完整性,很容易被篡改。

鑒于以上問題,所以現在的系統會使用 HTTPS 來替代 HTTP。

2、HTTPS

首先來說,HTTPS 并不是一種新的協議,而是在 HTTP 協議的基礎上添加了加密機制 SSL(Secure Socket Layer)或 TLS(Transport Layer Security)。HTTPS = HTTP + 加密 + 認證 + 完整性保護。

SSL 和 TLS

SSL(Secure Socket Layer)最早是由瀏覽器開發廠商網景公司開發的,此公司開發了 SSL 3.0 及 3.0 之前的版本,之后便將 SSL 交給了 IETF(Internet Engineering Task Force)Internet 工程任務組的手中,IETF 以 SSL 3.0 為基礎開發了 TLS 1.0,所以可以認為 TLS 是 SSL 的“新版本”。

(1)解決信任問題

作為 HTTPS 來說,首先要解決的就是信任問題,也就是身份效驗的問題,如果不解決信任問題就會存在服務器偽裝,也就是“中間人攻擊”的問題。所謂的中間人攻擊指的是,正常情況下本該是客戶端和服務端直接進行交互的,但此處沖出來一個“壞人”(中間人),它包含在客戶端和服務器端之間,用于盜取和篡改雙方通訊的內容,如下圖所示:

圖片

HTTPS 解決信任問題采用的是數字證書的解決方案,也就是服務器在創建之初,會先向一個大家都認可的第三方平臺申請一個可靠的數字證書,然后在客戶端訪問(服務器端)時,服務器端會先給客戶端一個數字證書,以證明自己是一個可靠的服務器端,而非“中間人”。此時瀏覽器會負責效驗和核對數字證書的有效性,如果數字證書有問題,那么客戶端會立即停止通訊,如果沒問題才會執行后續的流程,如下圖所示:

圖片

有了數字證書之后,就可以驗證服務器端的真實身份了,這樣就解決了“中間人攻擊”的問題,也解決了偽裝的問題。

(2)解決明文傳輸和完整性問題

雖然上面我們已經解決了信任問題,然而因為通訊雙方是明文通訊的,所以在通訊時依然存在通訊內容被竊聽的風險,此時應該怎么辦呢?于是我們想到,使用加密來解決信息暴露的問題。

加密的分類

加密主要分為兩大類:對稱加密和非對稱加密。

  • 在對稱加密中,有一個共享秘鑰,通過這把共享秘鑰可以實現信息的加密和信息的解密,它的特點是加密和解密的速度很快,但因為共享秘鑰的問題,一旦共享秘鑰被截獲,那么所謂的加密和解碼也就是一紙空談了。
  • 在非對稱加密中,有一對秘鑰:公鑰和私鑰,使用公鑰可以加密信息,但不能解密信息,使用私鑰可以解密信息。它的特點是服務器端保存私鑰,不對外暴露,只將公鑰發送給客戶端,而其他人即使拿到公鑰,也解密不了加密的信息,所以此方式更安全,但非對稱加密的執行速度比較慢。

那在 HTTPS 中要使用對稱加密還是非對稱加密呢?使用對稱加密,速度快,但不安全;使用非對稱加密安全,但速度慢。只有小孩做選擇,成年人都要,所以 HTTPS 中既使用了非對稱加密也使用了對稱加密,它的整個交互流程是這樣的:

圖片

HTTPS 執行流程如下:

  1. 客戶端使用 HTTPS 訪問服務器端。
  2. 服務器端返回數字證書,以及使用非對稱加密,生成一個公鑰給客戶端(私鑰服務器端自己保留)。
  3. 客戶端驗證數字證書是否有效,如果無效,終止訪問,如果有效:
  1. 使用對稱加密生成一個共享秘鑰;
  2. 使用對稱加密的共享秘鑰加密數據;
  3. 使用非對稱加密的公鑰加密(對稱加密生成的)共享秘鑰。
  4. 發送加密后的秘鑰和數據給服務器端。
  1. 服務器端使用私鑰解密出客戶端(使用對稱加密生成的)共享秘鑰,再使用共享秘鑰解密出數據的具體內容。
  2. 之后客戶端和服務器端就使用共享秘鑰加密的內容內容進行交互了。

這樣,HTTPS 既保證了安全性,同時又保證了高效性,可謂魚和熊掌兼得。

使用加密的方式也間接的保證了數據的完整性問題,如果是不完整的數據或有多余的數據,那么在解密時會報錯,這樣就能間接的保證數據的完整性了。

總結

使用 HTTP 協議存在明文通訊和中間人攻擊等問題,但這些問題在 HTTPS 中得到了有效的解決,HTTPS 通過數字證書解決了中間人攻擊的問題,使用加密手段解決了明文通訊和數據完整性的問題。

責任編輯:姜華 來源: Java面試真題解析
相關推薦

2023-02-02 07:06:10

2023-02-07 06:47:58

JVM 模塊Java 虛擬機

2021-12-09 12:22:28

MyBatis流程面試

2022-01-13 06:59:40

HashMap底層面試

2021-07-28 10:08:19

類加載代碼塊面試

2022-06-29 11:01:05

MySQL事務隔離級別

2023-09-12 14:56:13

MyBatis緩存機制

2022-09-27 21:14:54

Spring事務傳播機制

2022-06-07 12:03:33

Java內存模型

2022-06-06 15:33:20

線程Java釋放鎖

2023-02-18 13:34:14

Nacos健康檢查機制

2025-03-10 07:05:07

2023-11-01 07:25:54

Kafka消息傳遞系統

2023-03-06 08:27:33

Redis數據類型

2024-02-21 16:42:00

2024-02-27 15:23:48

RedLock算法Redis

2020-07-30 07:58:36

加密算法

2022-09-05 07:06:59

BeanSpring

2022-02-16 14:20:46

HashTableHashMap線程安全

2023-12-29 13:45:00

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩高清国产一区在线 | 国产成人精品一区二区三区在线观看 | 欧美精品一区二区三区在线 | 成人欧美一区二区三区黑人孕妇 | 一区二区三区四区在线视频 | 亚洲精品在线免费观看视频 | 丁香五月网久久综合 | 精品少妇一区二区三区在线播放 | 99re视频在线 | 国产剧情一区 | 国产一区在线视频 | 久久精品国产亚洲夜色av网站 | 成人依人 | 中文字幕日韩一区 | 久久久国产亚洲精品 | 91在线一区| 久久在看 | 99热99| 国产高潮av | 一级无毛片 | 亚洲免费视频网站 | 久久成人av电影 | 精品国产伦一区二区三区观看说明 | 成人3d动漫一区二区三区91 | 成人在线观看网址 | 日韩一区三区 | 欧美三级久久久 | 欧美久久久 | 亚洲福利一区二区 | 午夜精品一区二区三区在线视 | 91av久久久 | 国产不卡一区 | 日韩一区不卡 | 不卡av在线 | 亚洲成人第一页 | 日韩欧美三区 | 香蕉av免费| 天堂免费看片 | 在线观看亚洲欧美 | 在线免费观看黄网 | 欧洲一级视频 |