iT邦幫忙

2025 iThome 鐵人賽

DAY 15
0
IT 管理

從零開始的網際網路隨筆系列 第 15

Day14- HTTPS 的 S 到底安全再哪裡(上)

  • 分享至 

  • xImage
  •  

我們已經看過很多不安全的封包了,道理我都懂,但是為了看懂 https 的封包有幾件是我們需要先知道

TLS 交握

TLS(transport layer secure) 儘管已經替代了 SSL(secure socket layer) 但是還是有很多人把這兩者混為一談,為了方便,我們接下來都用 TLS 來稱呼。另外 TLS 與 TLS 憑證不同,前者是 https 加密的一種方法,後者是機器去辨別伺服器是否是其本身的重要依據。我們今天著重討論 TLS 這事情上。

簡單知道 TLS 之後,如果我們要和網站伺服器建立連線,就需要進行 TLS 交握。而使用 wireshark 可以知道在 TLS 交握前先需要進行 TCP 三向交握。所以示意圖會長這樣
tls-handshake

TLS 1.3 交握過程如下:

  1. client hello: 用戶端發送 client hello 訊息,內含通訊協定版本、用戶端隨機數和密碼套件清單、用於計算預主金鑰(pre-master secret)的參數。
  2. 伺服器產生主金鑰(master secret): 伺服器會用客戶端傳的隨機數、預主金鑰的參數及伺服器的隨機數,產生主金鑰
  3. server hello: 伺服器會發送 client hello 的回覆,內含 TLS 憑證、伺服器選擇的密碼套件,並且因已經生成主金鑰所以會傳 finished
  4. 用戶端驗證簽章和憑證,產生主金鑰,傳送 finished 訊息
  5. 實現安全對稱加密

從上述的過程可以知道,TLS 交握本身事先進行非對稱式加密得到主金鑰,然後從主金鑰延伸出會話金鑰(session key) 後才進行 非對稱式加密

不過為了避免混淆有些名詞還需要解釋

  • 預主金鑰(pre-master secret): 是組成主金鑰的重要元件,由客戶端傳給伺服器
  • 主金鑰(master secret): 由預主金鑰、客戶端的隨機數和伺服器端的隨機數所組成的,供後面延伸其他金鑰使用
  • 會話金鑰(session key): 由主金鑰延伸出來,為後續 https 的連線做到加密的作用。

接下來,我們擷取機器到 www.fju.edu.tw ,應該就可以得到此 封包 但好像哪裡怪怪的?怎麼只剩下 TLSv1.2 ?

明天繼續...

參考文章:
TLS交握是甚麼及過程 cloudflare
Differences between the terms "pre-master secret", "master secret", "private key", and "shared secret"? stackexchange-cryptograph


上一篇
Day13-關於我在雲端上傳輸資料給其他人的方法
下一篇
Day15- HTTPS 的 S 到底安全再哪裡(下)
系列文
從零開始的網際網路隨筆16
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言