自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

一文科普:白話HTTPS

安全 應(yīng)用安全
Mac筆記本、Windows臺式機、Linux主機。像這三種類型,它們硬件不同,系統(tǒng)不同,服務(wù)端處理的編程語言不同。它們之間卻可以在網(wǎng)絡(luò)的世界了自由聯(lián)通??康氖鞘裁茨?
  • HTTPS是傳輸協(xié)議嗎?
  • HTTPS與HTTP有什么關(guān)系?
  • HTTPS為什么會安全?

[[264698]]

閑扯一下

Mac筆記本、Windows臺式機、Linux主機。像這三種類型,它們硬件不同,系統(tǒng)不同,服務(wù)端處理的編程語言不同。它們之間卻可以在網(wǎng)絡(luò)的世界了自由聯(lián)通??康氖鞘裁茨?

靠的是它們遵守相同的規(guī)則(如:HTTP)。應(yīng)用層用什么格式(語言編碼,報文字段)封裝報文、傳輸層如何將大量的數(shù)據(jù)分段,并給每幀數(shù)據(jù)添加編號和端口信息、網(wǎng)絡(luò)層如何給沒幀數(shù)據(jù)添加IP地址,目標(biāo)MAC地址、數(shù)據(jù)鏈路層如何將數(shù)字信息通過網(wǎng)卡發(fā)出去。

HTTPS是傳輸協(xié)議嗎?

目前常見的應(yīng)用層協(xié)議

 

 

一文科普:白話HTTPS

 

好像沒有看到HTTPS啊?

沒錯,HTTPS并非TCP/IP協(xié)議族中的一員,它其實是HTTP協(xié)議+SSL協(xié)議的組合體,是披著SSL外衣的HTTP。

HTTPS與HTTP有什么關(guān)系?

HTTP實現(xiàn)的功能:一種機制簡單(這也是從早期眾多傳輸協(xié)議中走出來的原因)的超文本傳輸協(xié)議,為客戶端和服務(wù)器通信服務(wù),是處在TCP/IP協(xié)議族中的應(yīng)用層協(xié)議。

HTTP在發(fā)送請求時,采用四層架構(gòu)。

應(yīng)用層:提供多種應(yīng)用服務(wù),如:HTTP FTP DNS等,可以直接提供給開發(fā)者使用。

傳輸層:網(wǎng)絡(luò)間數(shù)據(jù)的傳輸,如:TCP TDP,報文數(shù)據(jù)分割打包成幀

網(wǎng)絡(luò)層:處理網(wǎng)絡(luò)中流動的數(shù)據(jù)包,在復(fù)雜的網(wǎng)絡(luò)段中選擇一條傳輸路線,將數(shù)據(jù)包送到目的地。將現(xiàn)實中的寄快遞(在快遞上寫上收件地址等信息,送到快遞點(類似于路由器))

數(shù)據(jù)鏈路層:處理鏈接網(wǎng)絡(luò)的硬件部分,如:網(wǎng)絡(luò)適配器,硬件驅(qū)動,操作系統(tǒng),光纖。

 

一文科普:白話HTTPS

 

HTTP請求過程中的重要概念!

1.數(shù)據(jù)包在網(wǎng)絡(luò)層怎么走的呢?

在數(shù)據(jù)包傳輸過程中,需要不斷使用地址解析協(xié)議(IP和MAC地址對應(yīng)的表,互相反查),進行路由選擇(將數(shù)據(jù)包丟給一個路由器,路由器會根據(jù)數(shù)據(jù)包上帶的地址,自動分揀,傳給它認(rèn)為比較好的下一站路,直到到達目的地)

 

一文科普:白話HTTPS

 

2.TCP通訊三次握手

  • 客戶端先發(fā)送一個SYN(synchronize)
  • 服務(wù)端收到后,返回一個SYN(synchronize)/ACK(acknowledgement)
  • 客戶端發(fā)送一個ACK(acknowledgement)

3.DNS域名解析服務(wù):在瀏覽器輸入url后,點擊enter。

  • 網(wǎng)絡(luò)首先會拿填寫的域名到dns服務(wù)器查詢對應(yīng)的IP地址。
  • 瀏覽器將請求傳給返回的IP地址。

4.HTTP與HTTPS通信的區(qū)別

 

一文科普:白話HTTPS

 

只是在應(yīng)用層與傳輸層之間添加了一個SSL層

HTTPS為什么會安全?

既然HTTPS是披著SSL外衣的HTTP,那SSL是什么呢?

SSL是安全套接字層,是目前比較成熟的提供可靠數(shù)據(jù)傳輸?shù)陌踩珔f(xié)議。SSL可以提供證書認(rèn)證,數(shù)據(jù)加密,完整性保護等保護性策略。

數(shù)據(jù)加密原理

SSL采用的加密策略是:非對此加密+對稱加密的混合加密方式

  • 對成加密:單純的對稱加密,加密解密的效率高,但是在客戶端于服務(wù)端共享密鑰時,容易被中間劫持泄露,不夠安全
  • 非對稱加密:是新一代加密方案,加密解密銷量低,但是可以實現(xiàn)密鑰的安全傳輸,想通過公鑰解出私鑰難道極大,基本不可能。

最中采用交換共享密鑰時,使用非對稱加密。然后用共享密鑰加密。這樣既避免了密鑰被劫持,又保證了效率

數(shù)據(jù)完整性策略

采用報文摘要的策略,防止報文主題被修改。

在報文發(fā)送前,先通過md5-base64加密,得到一個報文主體的摘要,把這個摘要放到請求首部中,等服務(wù)器收到信息,采用同樣的算法,加密報文主體,根據(jù)得到的結(jié)果是否和報文摘要一致來判斷數(shù)據(jù)的完整性。

SSL和TLS的關(guān)系

目前常見的加密協(xié)議有兩個SSL3.0和TLS1.0,它們之間有什么區(qū)別呢?

  • SSL:是有瀏覽器開發(fā)商網(wǎng)景通信公司發(fā)起并開發(fā)到了SSL3.0版本
  • TLS(Transport Layer Security):后面主導(dǎo)權(quán)移交給了IETF組織,他們在SSL3.0基礎(chǔ)上開發(fā)了 TLS一系列版本。它們是“父子”關(guān)系。

HTTPS協(xié)議安全通信步驟

HTTPS協(xié)議安全通信步驟中有三個主角元素:客戶端,服務(wù)器,第三方可信任的證書頒發(fā)機構(gòu)。

過程如下:

  1. 服務(wù)器的運維人員向“第三方可信任的證書頒發(fā)機構(gòu)”提供公司的有效信息+公鑰。
  2. “第三方可信任的證書頒發(fā)機構(gòu)”認(rèn)證公司有效,就用“第三方可信任的證書頒發(fā)機構(gòu)”的私鑰給服務(wù)器的公鑰簽名,然后創(chuàng)建一個證書,證書中加入了公鑰+公鑰簽名結(jié)果,發(fā)給服務(wù)器。服務(wù)器運營人員需要支付一定的費用。
  3. 客服端安裝瀏覽器,瀏覽器內(nèi)部內(nèi)置了“第三方可信任的證書頒發(fā)機構(gòu)”的根證書,里面包含了“第三方可信任的證書頒發(fā)機構(gòu)”的公鑰信息
  4. //正式開始SSL通信
  5. 客戶端發(fā)送請求給ClientHello到服務(wù)器,請求報文中包含客戶端支持的SSL指定版本號,加密組件列表(使用的加密算法和密鑰長度)
  6. 服務(wù)端收到請求后,也回發(fā)生個ClientHello回應(yīng),里面包含了使用的SSL版本和加密組件(該加密組件是從客戶端發(fā)生的列表中篩選出來的)
  7. 緊接著服務(wù)器發(fā)生證書報文(Certificate),將服務(wù)器申請的公鑰證書傳給客戶端
  8. 然后服務(wù)器發(fā)生一個Server Hello Done報文給客戶端,表示初期階段的SSL握手協(xié)商結(jié)束。
  9. 客戶端收到服務(wù)器發(fā)來的公鑰證書后,拿本地存儲的第三方機構(gòu)根證書中的公鑰對證書中的簽名信息解密,如果解密的結(jié)構(gòu)同證書中的原始服務(wù)器公鑰信息一樣,證明服務(wù)器可信。
  10. 接著客戶端在本地生成一個隨機密碼字符串。用服務(wù)器的公鑰加密這個字符串,將得到的結(jié)果傳遞給服務(wù)器器。
  11. 然后客戶端再發(fā)送一個Change Cipher Spec報文(修改加密規(guī)則說明)給服務(wù)器,告訴服務(wù)器下面的通信將采用剛才的隨機密碼字符串作為加密密鑰。
  12. 客戶端發(fā)生一個Finish報文,報文中包含了從連接到現(xiàn)在所有報文的整體校驗碼,上面一系列的握手協(xié)商是否能成功,就看服務(wù)器能否正確解密這個Finish報文了。
  13. 服務(wù)器正確解密后,也發(fā)送個Change Cipher Spec報文(修改加密規(guī)則說明)給客戶端。
  14. 服務(wù)端也發(fā)送個Finish報文讓客戶端解密驗證。
  15. 等客戶端、服務(wù)器兩者的Finished報文都正常交換后,SSL連接算是正式建立完成。下面的通信就會受到SSL的加密保護。
  16. 現(xiàn)在客戶端就可以安全的給服務(wù)器發(fā)送簡單的應(yīng)用層協(xié)議(http)了,并得到受保護的響應(yīng)
  17. 通訊完成,由客戶端發(fā)送close_notify報文,通知服務(wù)器斷開鏈接。

 

責(zé)任編輯:武曉燕 來源: 今日頭條
相關(guān)推薦

2021-12-16 14:45:09

https架構(gòu)服務(wù)端

2020-10-22 09:35:11

線程池核心線程阻塞隊列

2021-03-06 08:04:46

NginxHttpHttps

2020-05-20 22:37:42

HTTPSSSL雙向驗證

2020-03-31 14:40:24

HashMap源碼Java

2024-04-12 12:19:08

語言模型AI

2020-08-27 07:34:50

Zookeeper數(shù)據(jù)結(jié)構(gòu)

2023-12-22 19:59:15

2020-10-26 09:18:50

RedisCluste

2021-08-04 16:06:45

DataOps智領(lǐng)云

2022-03-24 08:51:48

Redis互聯(lián)網(wǎng)NoSQL

2013-10-29 10:14:10

文科教授大數(shù)據(jù)

2021-03-22 10:05:59

netstat命令Linux

2023-09-08 08:20:46

ThreadLoca多線程工具

2022-12-20 07:39:46

2018-09-28 14:06:25

前端緩存后端

2023-11-20 08:18:49

Netty服務(wù)器

2023-04-26 15:43:24

容器編排容器編排工具

2023-12-21 17:11:21

Containerd管理工具命令行

2022-09-22 09:00:46

CSS單位
點贊
收藏

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