偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

面試突擊:為什么要用HTTPS?它有什么用?

網(wǎng)絡(luò) 通信技術(shù)
在說(shuō) HTTPS 之前,我們先要了解 HTTP,因?yàn)?HTTP 是 HTTPS 通訊的基礎(chǔ)。HTTP(HyperText Transport Protocol)超文本傳輸協(xié)議,它用于傳輸客戶端和服務(wù)器端的數(shù)據(jù)。

說(shuō)到 HTTPS 相信大部分人都是不陌生,因?yàn)槟壳拔覀兪褂玫慕^大數(shù)網(wǎng)站都是基于 HTTPS 的,比如以下這些:

圖片

圖片

圖片

那么問(wèn)題來(lái)了,他們?yōu)槭裁匆褂?HTTPS 呢?HTTPS 有哪些過(guò)人之處呢?

1.HTTP

在說(shuō) HTTPS 之前,我們先要了解 HTTP,因?yàn)?HTTP 是 HTTPS 通訊的基礎(chǔ)。HTTP(HyperText Transport Protocol)超文本傳輸協(xié)議,它用于傳輸客戶端和服務(wù)器端的數(shù)據(jù)。HTTP 使用很簡(jiǎn)單也很方便,但卻存在以下 3 個(gè)致命問(wèn)題:

使用明文通訊,內(nèi)容可以被竊聽(tīng)。

不驗(yàn)證通訊方的真實(shí)身份,可能會(huì)遭到偽裝。

無(wú)法證明報(bào)文的完整性,很容易被篡改。

鑒于以上問(wèn)題,所以現(xiàn)在的系統(tǒng)會(huì)使用 HTTPS 來(lái)替代 HTTP。

2.HTTPS

首先來(lái)說(shuō),HTTPS 并不是一種新的協(xié)議,而是在 HTTP 協(xié)議的基礎(chǔ)上添加了加密機(jī)制 SSL(Secure Socket Layer)或 TLS(Transport Layer Security)。HTTPS = HTTP + 加密 + 認(rèn)證 + 完整性保護(hù)。

SSL 和 TLS

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

2.1 解決信任問(wèn)題

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

圖片

HTTPS 解決信任問(wèn)題采用的是數(shù)字證書(shū)的解決方案,也就是服務(wù)器在創(chuàng)建之初,會(huì)先向一個(gè)大家都認(rèn)可的第三方平臺(tái)申請(qǐng)一個(gè)可靠的數(shù)字證書(shū),然后在客戶端訪問(wèn)(服務(wù)器端)時(shí),服務(wù)器端會(huì)先給客戶端一個(gè)數(shù)字證書(shū),以證明自己是一個(gè)可靠的服務(wù)器端,而非“中間人”。此時(shí)瀏覽器會(huì)負(fù)責(zé)效驗(yàn)和核對(duì)數(shù)字證書(shū)的有效性,如果數(shù)字證書(shū)有問(wèn)題,那么客戶端會(huì)立即停止通訊,如果沒(méi)問(wèn)題才會(huì)執(zhí)行后續(xù)的流程,如下圖所示:

圖片

有了數(shù)字證書(shū)之后,就可以驗(yàn)證服務(wù)器端的真實(shí)身份了,這樣就解決了“中間人攻擊”的問(wèn)題,也解決了偽裝的問(wèn)題。

2.2 解決明文傳輸和完整性問(wèn)題

雖然上面我們已經(jīng)解決了信任問(wèn)題,然而因?yàn)橥ㄓ嶋p方是明文通訊的,所以在通訊時(shí)依然存在通訊內(nèi)容被竊聽(tīng)的風(fēng)險(xiǎn),此時(shí)應(yīng)該怎么辦呢?于是我們想到,使用加密來(lái)解決信息暴露的問(wèn)題。

加密的分類

加密主要分為兩大類:對(duì)稱加密和非對(duì)稱加密。

在對(duì)稱加密中,有一個(gè)共享秘鑰,通過(guò)這把共享秘鑰可以實(shí)現(xiàn)信息的加密和信息的解密,它的特點(diǎn)是加密和解密的速度很快,但因?yàn)楣蚕砻罔€的問(wèn)題,一旦共享秘鑰被截獲,那么所謂的加密和解碼也就是一紙空談了。

  • 在非對(duì)稱加密中,有一對(duì)秘鑰:公鑰和私鑰,使用公鑰可以加密信息,但不能解密信息,使用私鑰可以解密信息。它的特點(diǎn)是服務(wù)器端保存私鑰,不對(duì)外暴露,只將公鑰發(fā)送給客戶端,而其他人即使拿到公鑰,也解密不了加密的信息,所以此方式更安全,但非對(duì)稱加密的執(zhí)行速度比較慢。
  • 那在 HTTPS 中要使用對(duì)稱加密還是非對(duì)稱加密呢?使用對(duì)稱加密,速度快,但不安全;使用非對(duì)稱加密安全,但速度慢。只有小孩做選擇,成年人都要,所以 HTTPS 中既使用了非對(duì)稱加密也使用了對(duì)稱加密,它的整個(gè)交互流程是這樣的:

圖片

HTTPS 執(zhí)行流程如下:

  • 客戶端使用 HTTPS 訪問(wèn)服務(wù)器端。
  • 服務(wù)器端返回?cái)?shù)字證書(shū),以及使用非對(duì)稱加密,生成一個(gè)公鑰給客戶端(私鑰服務(wù)器端自己保留)。
  • 客戶端驗(yàn)證數(shù)字證書(shū)是否有效,如果無(wú)效,終止訪問(wèn),如果有效:

使用對(duì)稱加密生成一個(gè)共享秘鑰;

使用對(duì)稱加密的共享秘鑰加密數(shù)據(jù);

使用非對(duì)稱加密的公鑰加密(對(duì)稱加密生成的)共享秘鑰。

發(fā)送加密后的秘鑰和數(shù)據(jù)給服務(wù)器端。

  • 服務(wù)器端使用私鑰解密出客戶端(使用對(duì)稱加密生成的)共享秘鑰,再使用共享秘鑰解密出數(shù)據(jù)的具體內(nèi)容。
  • 之后客戶端和服務(wù)器端就使用共享秘鑰加密的內(nèi)容內(nèi)容進(jìn)行交互了。

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

使用加密的方式也間接的保證了數(shù)據(jù)的完整性問(wèn)題,如果是不完整的數(shù)據(jù)或有多余的數(shù)據(jù),那么在解密時(shí)會(huì)報(bào)錯(cuò),這樣就能間接的保證數(shù)據(jù)的完整性了。

總結(jié)

使用 HTTP 協(xié)議存在明文通訊和中間人攻擊等問(wèn)題,但這些問(wèn)題在 HTTPS 中得到了有效的解決,HTTPS 通過(guò)數(shù)字證書(shū)解決了中間人攻擊的問(wèn)題,使用加密手段解決了明文通訊和數(shù)據(jù)完整性的問(wèn)題。

參考 & 鳴謝

《圖解HTTP》 

《圖解TCP/IP網(wǎng)絡(luò)知識(shí)輕松入門(mén)》

責(zé)任編輯:武曉燕 來(lái)源: Java面試真題解析
相關(guān)推薦

2022-05-30 07:34:33

三范式Java

2022-05-05 07:38:32

volatilJava并發(fā)

2022-05-07 07:35:44

工具讀寫(xiě)鎖Java

2022-02-16 22:37:00

流式SQLSQL數(shù)據(jù)庫(kù)

2022-03-21 07:40:08

線程池Executors方式

2022-07-27 07:36:01

TCP可靠性

2023-09-19 16:37:47

網(wǎng)絡(luò)

2022-09-20 22:27:08

事務(wù)失效public 修飾

2022-01-24 07:01:20

安全多線程版本

2023-12-06 09:10:28

JWT微服務(wù)

2022-03-02 07:36:37

池化技術(shù)Java線程池

2022-07-25 07:07:35

TCP客戶端服務(wù)器

2021-12-30 19:36:48

GoDubboJava

2022-01-07 14:05:33

DubboGoJava

2022-01-18 06:59:50

HashMap循環(huán)底層

2020-02-21 08:00:00

網(wǎng)頁(yè)廣告診斷

2022-01-27 07:02:52

JavaHashMap單線程

2022-05-26 09:24:09

volatile懶漢模式

2009-01-09 23:06:41

服務(wù)器SCSI硬盤(pán)PC

2020-04-07 16:12:56

Go編程語(yǔ)言開(kāi)發(fā)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)