TLS1 3 認證和秘鑰建立握手環節的分析

2022-06-10 04:45:07 字數 2097 閱讀 6480

1、clienthello 中的引數

clienthello---   在 extension中的擴充套件中包含 ( supported_version 、 supported_groups、 signatureschemlist、key_shared )

2、伺服器接收到之後需要選擇支援的最高版本協議,秘鑰分發演算法和選擇的公鑰,加密簽名演算法、以及random_s、session_id 回覆 serverhello,算出自己前主秘鑰,緊接著使用自己選擇的加密方式加密傳送乙個 encryption_extension報文,接著伺服器加密傳送ca證書與數字簽名,然後等待客戶端的回覆 finished

3、客戶端收到伺服器的 severhello報文之後,計算前主秘鑰,解密接下來收到的檔案,驗證其正確性,如果存在問題,傳送警告報文,然後終端此次握手。重新建立握手,如果正確加密傳送finished 報文,之後可以傳送加密的資料報文。

4、伺服器計算主秘鑰,收到finished報文之後,加密傳送finished 報文,然後握手成功,可以選擇新的會話 tickets報文 

第二部分:

對tls 1.3的rcf文件部分重新進行整一遍

1.2 major difference from tls1.2

傳統的加密演算法被精簡了,剩下的都是有關認證加密的關聯

客戶端和服務端,服務讀研收到客戶端的clienthello之後,響應客戶端傳送serverhello ,如果選擇(ec)dhe 秘鑰建立方法,serverhello包含 「key_share」的擴充套件  但是如果選擇的是psk秘鑰建立serverhello中包含「pre_shared_key」擴充套件,表明客戶端提供的psks被選擇,注意實現方式可以同時選擇 ( ec)dhe 和 psk兩種方式。當選擇兩種方式的時候兩個擴充套件都應該包括

握手協議的作用:

握手協議的作用是協議安全引數的連線,握手訊息提供給記錄層,

第三部分:

tls1.3的握手優化

client傳送 clienthello , extension中攜帶支援的橢圓曲線型別,且對自己支援的橢圓曲線型別計算公鑰(point),公鑰放在extension中的 keyshare中

server端回覆 serverhello和 certificate等,server選擇的橢圓曲線引數,然後乘以橢圓曲線的base point得到公鑰 (point),然後提取clienthello中的key_share拓展中對應的公鑰,計算主金鑰。公鑰(point)放在serverhello的key_share擴充套件中。client收到server的公鑰(point)之後計算主金鑰。

第四部分:  tls1.3的全握手

1、client傳送clienthello  攜帶的資訊如下:

2、server傳送severhello 攜帶資訊如下:

support_version 擴充套件,包含自己從client的support_version中選擇的tls協議的版本號,(之前tls1.2沒有)

key_share擴充套件,包含自己選中的橢圓曲線,以及自己計算出來的公鑰(之前tls1.2沒有)

3、sever 傳送 change cipher spec (允許不傳送,在這一步中我們直接不做處理)

4、server端傳送 encrypted  extension (加密)

serverhello 之後必須立刻傳送  encryption extension ,這是第乙個被加密的資料,和秘鑰協商沒有關係(之前tls1.2沒有)

5、server端傳送 certificate(加密)

這個報文和之前的協議沒有太大的差別,唯一的是證書鏈中的每個證書後面都有乙個 extension(雙向認證)

6、server端傳送certificate verify(加密)

certificate verify 生成的額邏輯是當前所有的握手報文解析簽名

7、server端回覆finished (加密)

8、客戶端傳送 change cipher spec (允許不傳送 ,在實驗中我們不新增這一步)

9、client傳送加密的finished

10、server 傳送 new session  ticket  (可選)

其實上面的說法還是不夠,全面,後續還要對參與的引數等 從新分析   之後開始對協議形式化的分析 。所以現在還是卡在這部分的分析上面 

TLS 證書和秘鑰

建立 ca 配置檔案 mkdir root ssl cd root ssl cfssl print defaults config config.json cfssl print defaults csr csr.json 根據config.json檔案的格式建立如下的ca config.json檔...

科普 什麼是TLS1 3

tls1.3是一種新的加密協議,它既能提高各地網際網路使用者的訪問速度,又能增強安全性。我們在訪問許多網頁的時候,常常會在瀏覽器的位址列上看到乙個鎖的圖示,並使用 https 代替傳統的 http 這裡的 s 代表著安全。當你連線到乙個https站點時,你和該站點之間的通訊會被加密,這會顯著提高瀏覽...

Ansible秘鑰認證

環境 ansible端 192.168.178.14 被控節點 192.168.178.13 在ansible端 etc ansible hosts檔案內新增被控節點ip 上面報錯的解決方法是 先在ansible 伺服器上使用ssh 登陸一下 etc ansible hosts 裡面配置的伺服器 也...