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

HTTPS - TLS 1.3 為何性能和安全性更高?

安全 數(shù)據(jù)安全 通信技術(shù)
TLS v1.2 支持的加密套件很多,在兼容老版本上做的很全,里面有些加密強(qiáng)度很弱和一些存在安全漏洞的算法很可能會被攻擊者利用,為業(yè)務(wù)帶來潛在的安全隱患

2008 年 8 月 TLS v1.2 發(fā)布,時隔 10 年,TLS v1.3 于 2018 年 8 月發(fā)布,在性能優(yōu)化和安全性上做了很大改變,同時為了避免新協(xié)議帶來的升級沖突,TLS v1.3 也做了兼容性處理,通過增加擴(kuò)展協(xié)議來支持舊版本的客戶端和服務(wù)器。

安全性

TLS v1.2 支持的加密套件很多,在兼容老版本上做的很全,里面有些加密強(qiáng)度很弱和一些存在安全漏洞的算法很可能會被攻擊者利用,為業(yè)務(wù)帶來潛在的安全隱患。TLS v1.3 移除了這些不安全的加密算法,簡化了加密套件,對于服務(wù)端握手過程中也減少了一些選擇。

  • 移除 MD5、SHA1 密碼散列函數(shù)的支持,推薦使用 SHA2(例如,SHA-256)。
  • 移除 RSA 及所有靜態(tài)密鑰(密鑰協(xié)商不具有前向安全特性)。
  • 溢出 RC4 流密碼、DES 對稱加密算法。
  • 密鑰協(xié)商時的橢圓曲線算法增加 https://www.wanweibaike.net/wiki-X25519 支持。
  • 支持帶 Poly1305消息驗(yàn)證碼 的 ChaCha20 流加密算法,流加密也是一種對稱加密算法。
  • 移除了 CBC 分組模式,TLS v1.3 對稱加密僅支持 AES GCM、AES CCM、ChaCha20**-**Poly1305 三種模式。
  • 服務(wù)端 “Server Hello” 之后的消息都會加密傳輸,因此常規(guī)抓包分析就會有疑問為什么看不到證書信息。

性能優(yōu)化

性能優(yōu)化一個顯著的變化是簡化了 TLS 握手階段,由 TLS v1.2 的 2-RTT 縮短為 1-RTT,同時在第一次建立鏈接后 TLS v1.3 還引入了 0-RTT 概念。

來源 https://www.a10networks.com/wp-content/uploads/differences-between-tls-1.2-and-tls-1.3-full-handshake.png

 

密鑰協(xié)商在 TLS v1.2 中需要客戶端/服務(wù)端雙方交換隨機(jī)數(shù)和服務(wù)器發(fā)送完證書后,雙方各自發(fā)送 “Clent/Server Key Exchange” 消息交換密鑰協(xié)商所需參數(shù)信息。在安全性上,TLS v1.3 移除了很多不安全算法,簡化了密碼套件,現(xiàn)在已移除了 “Clent/Server Key Exchange” 消息,在客戶端發(fā)送 “Client Hello” 消息時在擴(kuò)展協(xié)議里攜帶支持的橢圓曲線名稱、臨時公鑰、簽名信息。服務(wù)器收到消息后,在 “Server Hello” 消息中告訴客戶端選擇的密鑰協(xié)商參數(shù),由此可少了一次消息往返(1-RTT)。

  1.    Client                                           Server 
  2.  
  3. Key  ^ ClientHello 
  4. Exch | + key_share* 
  5.      | + signature_algorithms* 
  6.      | + psk_key_exchange_modes* 
  7.      v + pre_shared_key*       --------> 
  8.                                                   ServerHello  ^ Key 
  9.                                                  + key_share*  | Exch 
  10.                                             + pre_shared_key*  v 
  11.                                         {EncryptedExtensions}  ^  Server 
  12.                                         {CertificateRequest*}  v  Params 
  13.                                                {Certificate*}  ^ 
  14.                                          {CertificateVerify*}  | Auth 
  15.                                                    {Finished}  v 
  16.                                <--------  [Application Data*] 
  17.      ^ {Certificate*} 
  18. Auth | {CertificateVerify*} 
  19.      v {Finished}              --------> 
  20.        [Application Data]      <------->  [Application Data] 
  21.                                                  
  22.                        The basic full TLS handshake 

當(dāng)訪問之前訪問過的站點(diǎn)時,客戶端可以通過利用先前會話中的 預(yù)共享密鑰 (PSK) 將第一條消息上的數(shù)據(jù)發(fā)送到服務(wù)器,實(shí)現(xiàn) “零往返時間(0-RTT)”。

  1. Client                                               Server 
  2.  
  3. ClientHello 
  4. + early_data 
  5. + key_share* 
  6. + psk_key_exchange_modes 
  7. + pre_shared_key 
  8. (Application Data*)     --------> 
  9.                                                 ServerHello 
  10.                                            + pre_shared_key 
  11.                                                + key_share* 
  12.                                       {EncryptedExtensions} 
  13.                                               + early_data* 
  14.                                                  {Finished} 
  15.                         <--------       [Application Data*] 
  16. (EndOfEarlyData) 
  17. {Finished}              --------> 
  18. [Application Data]      <------->        [Application Data] 
  19.  
  20.               Message Flow for a 0-RTT Handshake 

TLS v1.3 抓包分析

以一次客戶端/服務(wù)端完整的 TLS 握手為例,通過抓包分析看下 TLS v1.3 的握手過程。下圖是抓取的 www.zhihu.com 網(wǎng)站數(shù)據(jù)報(bào)文,且對報(bào)文做了解密處理,否則 “Change Cipher Spec” 報(bào)文后的數(shù)據(jù)都已經(jīng)被加密是分析不了的。抓包請參考 “網(wǎng)絡(luò)協(xié)議那些事兒 - 如何抓包并破解 HTTPS 加密數(shù)據(jù)?”。

image.png

TLS v1.3 握手過程如下圖所示:

tls-1-3-full-handshake.jpg

Client Hello

握手開始客戶端告訴服務(wù)端自己的 Random、Session ID、加密套件等。

除此之外,TLS v1.3 需要關(guān)注下 “擴(kuò)展協(xié)議”,TLS v1.3 通過擴(kuò)展協(xié)議做到了 “向前兼容“,客戶端請求的時候告訴服務(wù)器它支持的協(xié)議、及一些其它擴(kuò)展協(xié)議參數(shù),如果老版本不識別就忽略。

下面看幾個主要的擴(kuò)展協(xié)議:

  • supported_versions:客戶端支持的 TLS 版本,供服務(wù)器收到后選擇。
  • supported_groups:支持的橢圓曲線名稱
  • key_share:橢圓曲線名稱和對應(yīng)的臨時公鑰信息。
  • signature_algorithms:簽名
  1. Transport Layer Security 
  2.     TLSv1.3 Record Layer: Handshake Protocol: Client Hello 
  3.         Version: TLS 1.0 (0x0301) 
  4.         Handshake Protocol: Client Hello 
  5.             Handshake Type: Client Hello (1) 
  6.             Version: TLS 1.2 (0x0303) 
  7.             Random: 77f485a55b836cbaf4328ea270082cdf35fd8132aa7487eae19997c8939a292a 
  8.             Session ID: 8d4609d9f0785880eb9443eff3867a63c23fb2e23fdf80d225c1a5a25a900eee 
  9.             Cipher Suites (16 suites) 
  10.                 Cipher Suite: Reserved (GREASE) (0x1a1a) 
  11.                 Cipher Suite: TLS_AES_128_GCM_SHA256 (0x1301) 
  12.                 Cipher Suite: TLS_AES_256_GCM_SHA384 (0x1302) 
  13.                 Cipher Suite: TLS_CHACHA20_POLY1305_SHA256 (0x1303) 
  14.             Extension: signature_algorithms (len=18
  15.             Extension: supported_groups (len=10
  16.                 Supported Groups (4 groups) 
  17.                     Supported Group: Reserved (GREASE) (0xcaca) 
  18.                     Supported Group: x25519 (0x001d) 
  19.                     Supported Group: secp256r1 (0x0017) 
  20.                     Supported Group: secp384r1 (0x0018) 
  21.             Extension: key_share (len=43
  22.                 Type: key_share (51) 
  23.                 Key Share extension 
  24.                     Client Key Share Length: 41 
  25.                     Key Share Entry: Group: Reserved (GREASE), Key Exchange length: 1 
  26.                     Key Share Entry: Group: x25519, Key Exchange length: 32 
  27.                       Group: x25519 (29) 
  28.                       Key Exchange Length: 32 
  29.                       Key Exchange: 51afc57ca38df354f6d4389629e222ca2654d88f2800cc84f8cb74eefd473f4b 
  30.             Extension: supported_versions (len=11
  31.                 Type: supported_versions (43) 
  32.                 Supported Versions length: 10 
  33.                 Supported Version: TLS 1.3 (0x0304) 
  34.                 Supported Version: TLS 1.2 (0x0303) 

Server Hello

服務(wù)端收到客戶端請求后,返回選定的密碼套件、Server Random、選定的橢圓曲線名稱及對應(yīng)的公鑰(Server Params)、支持的 TLS 版本。

這次的密碼套件看著短了很多 TLS_AES_256_GCM_SHA384,其中用于協(xié)商密鑰的參數(shù)是放在 key_share 這個擴(kuò)展協(xié)議里的。

  1. TLSv1.3 Record Layer: Handshake Protocol: Server Hello 
  2.     Content Type: Handshake (22) 
  3.     Handshake Protocol: Server Hello 
  4.         Handshake Type: Server Hello (2) 
  5.         Version: TLS 1.2 (0x0303) 
  6.         Random: 1f354a11aea2109ba22e26d663a70bddd78a87a79fed85be2d03d5fc9deb59a5 
  7.         Session ID: 8d4609d9f0785880eb9443eff3867a63c23fb2e23fdf80d225c1a5a25a900eee 
  8.         Cipher Suite: TLS_AES_256_GCM_SHA384 (0x1302) 
  9.         Compression Method: null (0) 
  10.         Extensions Length: 46 
  11.         Extension: supported_versions (len=2
  12.             Supported Version: TLS 1.3 (0x0304) 
  13.         Extension: key_share (len=36
  14.             Type: key_share (51) 
  15.             Key Share extension 
  16.                 Key Share Entry: Group: x25519, Key Exchange length: 32 
  17.                     Group: x25519 (29) 
  18.                     Key Exchange: ac1e7f0dd5a4ee40fd088a8c00113178bafb2df59e0d6fc74ce77452732bc44d 

服務(wù)端此時拿到了 Client Random、Client Params、Server Random、Server Params 四個參數(shù),可優(yōu)先計(jì)算出預(yù)主密鑰。在 TLS v1.2 中是經(jīng)歷完第一次消息往返之后,客戶端優(yōu)先發(fā)起請求。

在計(jì)算出用于對稱加密的會話密鑰后,服務(wù)端發(fā)出 Change Cipher Spec 消息并切換到加密模式,之后的所有消息(證書、證書驗(yàn)證)傳輸都會加密處理,也減少了握手期間的明文傳遞。

Certificate、Certificate Verify、Finished

除了 Certificate 外,TLS v1.3 還多了個 “Certificate Verify” 消息,使用服務(wù)器私鑰對握手信息做了一個簽名,強(qiáng)化了安全措施。

  1. Transport Layer Security 
  2.     TLSv1.3 Record Layer: Handshake Protocol: Certificate 
  3.     TLSv1.3 Record Layer: Handshake Protocol: Certificate Verify 
  4.         Handshake Protocol: Certificate Verify 
  5.             Signature Algorithm: rsa_pss_rsae_sha256 (0x0804) 
  6.                 Signature Hash Algorithm Hash: Unknown (8) 
  7.                 Signature Hash Algorithm Signature: Unknown (4) 
  8.             Signature length: 256 
  9.             Signature: 03208990ec0d4bde4af8e2356ae7e86a045137afa5262ec7c82d55e95ba23b6eb5876ebb… 
  10.     TLSv1.3 Record Layer: Handshake Protocol: Finished 
  11.         Handshake Protocol: Finished 
  12.             Verify Data 

客戶端切換加密模式

客戶端獲取到 Client Random、Client Params、Server Random、Server Params 四個參數(shù)計(jì)算出最終會話密鑰后,也會發(fā)起 “Certificate Verify”、“Finished” 消息,當(dāng)客戶端和服務(wù)端都發(fā)完 “Finished” 消息后握手也就完成了,接下來就可安全的傳輸數(shù)據(jù)了。

image.png

 

責(zé)任編輯:趙寧寧 來源: 編程界
相關(guān)推薦

2013-02-27 16:27:37

2009-08-20 08:43:54

2020-07-23 10:05:00

物聯(lián)網(wǎng)安全醫(yī)療安全物聯(lián)網(wǎng)設(shè)備

2015-05-11 10:42:17

混合云性能混合云安全SLA

2011-06-30 11:04:05

JTS

2014-07-21 09:29:58

中文域名

2023-11-27 08:01:59

2010-12-07 09:51:43

Linux安全性netfilteriptables

2024-02-26 08:33:51

并發(fā)編程活躍性安全性

2009-11-30 09:41:38

2009-11-06 09:59:55

2009-12-04 10:17:47

公共DNS服務(wù)

2011-03-15 15:11:52

2015-06-15 10:48:25

2010-12-27 14:16:42

2024-01-09 16:00:39

2022-02-16 11:56:28

HTTPHTTPS數(shù)據(jù)傳輸

2017-12-29 15:16:28

2023-06-01 15:17:17

2018-07-12 05:17:21

區(qū)塊鏈數(shù)據(jù)中心數(shù)據(jù)安全
點(diǎn)贊
收藏

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