TLS1.3の仕組みについて
こんにちは、tangoです。
最近、Webサイト関連を学習する機会あり、HTTP、HTTPS、TLSを知りました。
その中で、TLSとはどういった通信をしているのだろうと気になりましたので、今回はTLSの仕組みを学習した内容をまとめました。
TLSとは
Transport Layer Security の略で、送受信時に、データを暗号化して送受信するためのプロトコル
Webサイト(HTTPS)等に利用され、一般的に「SSLやSSL/TLS」と言われることが多い。
TLS1.3通信フロー
TLS通信の仕組み
◇3Way Handshake
SYNパケットとACKパケットを用いて、TCP通信を確立する
◇TLS Handshake
データを暗号化するための共通鍵を生成する。
◇暗号化通信
TLS Handshake で生成された共通鍵を用いてデータを暗号化し送信する
◇Fin
通信を終了させる
機器情報とソースコード
◇機器
クライアント:ノートPC(Windows10)
Webサーバ:Raspberry Pi 3 model B(Debian GNU/Linux 11 (bullseye))
Apache2を導入済み
今回は、以下のWebページ(トップページ)にTLSプロトコルを用いて通信を行います。
◇ソースコード(Python)
GitHub:https://github.com/tango3304/TLS1.3
※参照データ:https://tex2e.github.io/rfc-translater/html/rfc8446.html
検証
◇Status Code 200
サーバ結果
クライアント結果
Wireshark
No.2880~2882
⇒3Way Handshake
No.2883~2889
⇒TLS Handshake
No.2890~2891
⇒暗号化通信
No.2893~2899
⇒Fin
◇Status Code 404
サーバ結果
クライアント結果
Wireshark
No.19~21
⇒3Way Handshake
No.22~28
⇒TLS Handshake
No.29~30
⇒暗号化通信
No.32~38
⇒Fin