TLS1.3 握手過程特性的整理

一、密碼協商算法

  TLS協議中,密碼協商的過程當中Client在ClientHello中提供四種optionapp

    第一:client 支持的加密套件列表,密碼套件裏面中能出現Client支持的AEAD算法或者HKDF哈希對,加密

   第二:  Supported_group 的擴展和 Key_share的 擴展,其中Supported_groups這個擴展代表了Client支持的(EC)DHE group 而 key_share 擴展代表了Client包含一些或者所有(EC)DHE共享。設計

   第三: signature_agrorithms 簽名算法和 signature_algorithms_cert這個擴展展現了具體的簽名算法   signature_algorithms 這個擴展展現了Client能夠支持哪些簽名算法,signature_algorithms_cert這個擴展展現了具體的證書籤名算法server

  第四: pre_shared_key 預共享祕鑰和 pre_key_exchange_modes擴展,預共享祕鑰擴展包含了Client能夠識別的堆成祕鑰標識 , psk_key_exchange_modes擴展代表了可能能夠和psk一塊兒使用的的祕鑰交換模式。it

 二、TLS協議中的兩大主要組成部分io

握手協議:cli

  握手協議主要處理通訊雙方之間認證的全部流程,包括祕鑰協商,參數協商、創建共享祕鑰。握手洗衣被設計用來抵抗篡改,若是鏈接未受到攻擊,則活動攻擊者不該該強制對方協商不一樣的參數擴展

記錄協議:密碼

  使用有握手協議創建的參數來保護通訊雙方的流量,記錄協議將流量分紅一系列的記錄,美衣伊閣記錄獨立的使用祕鑰保護機密性

三、TLS1.3 支持的基本祕鑰交換模式

      (EC)DHE 基於有限域或橢圓曲線的Diffe-Hellman、     PSK-only    、PSK with(EC)DHE

四、下面是TLS1.3 握手協議的過程

  Client                                           Server

Key  ^ ClientHello
Exch | + key_share*
     | + signature_algorithms*
     | + psk_key_exchange_modes*
     v + pre_shared_key*       -------->
                                                  ServerHello  ^ Key
                                                 + key_share*  | Exch
                                            + pre_shared_key*  v
                                        {EncryptedExtensions}  ^  Server
                                        {CertificateRequest*}  v  Params
                                               {Certificate*}  ^
                                         {CertificateVerify*}  | Auth
                                                   {Finished}  v
                               <--------  [Application Data*]
     ^ {Certificate*}
Auth | {CertificateVerify*}
     v {Finished}              -------->
       [Application Data]      <------->  [Application Data]

 +表示在之前標註的消息中發送的值得注意擴展

*表示 可選的或者依賴必定條件的消息/擴展 ,不老是發送

() 表示消息從 Client-early-traffic_serect 導出的祕鑰保護  

{} 表示使用一個[sender]handshake_traffic-serect 導出的祕鑰保護

[]表示消息使用 [sender]_application_trafic_serect_N導出的祕鑰保護

   握手能夠被認爲是三個階段:

     第一個階段是 :   祕鑰交換---- 創建共享祕鑰數據並選擇密碼參數,在這個階段以後全部的數據都會被加密,

     第二個階段:   server參數  : 創建其餘的握手參數 (Client是否被認證, 應用層協議支持等)

     第三個階段  : 認證Server (並選擇性的認證Client  )提供祕鑰確認和握手的完整性

相關文章
相關標籤/搜索