pikesaku’s blog

個人的な勉強メモです。記載内容について一切の責任は持ちません。

TLSのお勉強

https://hayashier.com/article/tls-getting-started/amp/

3wayハンドシェイク

やってる事は大きく以下3つ
接続方法のネゴシエーション
認証およびマスターシークレットの共有
完全性検証の3つに分けられます。

暗号スイート
TLSの目的を実現する手段
その手段を実現するにあたっての情報の交換方法

クライアント側は自身が対応している暗号スイートを優先度順にしてリストを送る。
通常は、サーバー側は自身で対応している暗号スイートの中で、クライアントから提示されたリストの上から選択


Server Order Preference等の設定が行われている場合は、サーバー側のリストの上から選択

暗号スイート

例)
ECDHE-ECDSA-AES128-SHA256
4つの要素からなり、それぞれ以下の内容を実現する方法を表現

ECDHE : 鍵交換
ECDSA : 認証
AES128 : 暗号
SHA256 : データ完全性

例)AES128-SHA256
→4情報なし

# openssl ciphers -v

上記実行するとわかる。

AES128-SHA256 TLSv1.2 Kx=RSA Au=RSA Enc=AES(128) Mac=SHA256

鍵交換
→Kx=RSA

認証
Au=RSA

暗号
→Enc=AES(128)

データ完全性
Mac=SHA256

以下に表記と意味がわかる対応表があり。

https://www.ipa.go.jp/security/ipg/documents/tls_cipher_suite_config_20200707.pdf
1.1.3. 一般的な名称と OpenSSL での名称の対応表

鍵交換

ここも理解する
https://qiita.com/angel_p_57/items/8ca86cc0ec0ca3a27105