TLSハンドシェイク
安全なセッションの開始方法を理解します
「TLSハンドシェイク」はCoddyKit上の無料Cyber Security Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCyber Security Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Cyber Security Academyコースには全4レッスンが含まれています。
TLSハンドシェイクとは
TLSハンドシェイクは、暗号化されたデータが流れる前に行われるネゴシエーションです。
これにより、クライアントとサーバーは暗号化パラメーターについて合意し、身元を確認し、共有秘密鍵を確立できます。
ハンドシェイクの目的
TLSハンドシェイクには、次の3つの目的があります。
- 認証:クライアントがサーバーの証明書を検証します。
- 鍵交換:双方が共有セッション鍵を導出します。
- ネゴシエーション:暗号スイートとプロトコルバージョンを選択します。
ClientHello
クライアントは、次の内容を含むClientHelloメッセージで通信を開始します。
- サポートしているTLSバージョン
- 使用できる暗号スイートのリスト
- 乱数値(クライアント乱数)
- SNI(ホスト名)などの拡張機能
ServerHello
サーバーはServerHelloで応答し、クライアントのリストからTLSバージョンと1つの暗号スイートを選択して、自身の乱数値も送信します。
続いて証明書を送信し、クライアントが身元を検証できるようにします。
サーバーの検証
クライアントは、サーバーの証明書チェーンについて、署名、有効期間、失効状態、ホスト名の一致を検証します。
検証に失敗すると、ハンドシェイクは中止され、データは送信されません。
鍵交換
最新のTLSではエフェメラルDiffie-Hellman(ECDHE)を使用します。双方が公開鍵の共有値を交換し、それぞれ独立に同じ共有秘密を計算します。
これにより前方秘匿性が得られます。後からサーバーの長期鍵が盗まれても、過去のセッションを復号することはできません。
セッション鍵の導出
双方は、共有秘密と両方の乱数値から対称セッション鍵を導出します。
コストの高い非対称暗号は、実際のデータに使う高速な共通鍵暗号を開始するためだけに使用されます。
Finishedメッセージ
双方が新しい鍵で暗号化したFinishedメッセージを送信します。このメッセージには、ハンドシェイク全体のハッシュが含まれます。
双方で検証できれば、ネゴシエーションが改ざんされておらず、鍵が一致していることを確認できます。
TLS 1.3による高速化
TLS 1.3では、ハンドシェイクが1回の往復(1-RTT)に簡略化され、安全でないオプションが削除されました。
さらに、0-RTTで以前のセッションを再開し、最初のメッセージでデータを送信することもできます。
ハンドシェイクの確認
OpenSSLを使うと、ネゴシエートされたバージョンや暗号スイートなど、ハンドシェイクの詳細を確認できます。
openssl s_client -connect example.com:443 -tls1_3重要な理由
ハンドシェイクは、セキュリティが確立されるか失われるかを左右する箇所です。欠陥のあるハンドシェイクやダウングレードされたハンドシェイクによって、その後のすべての通信が露出する可能性があります。
仕組みを理解すると、接続障害を診断し、攻撃を認識しやすくなります。
確認問題
ハンドシェイクでエフェメラルDiffie-Hellman(ECDHE)を使うと、どのような利点がありますか?
まとめ
TLSハンドシェイクの手順を学びました。
- ClientHello / ServerHelloでバージョンと暗号スイートをネゴシエートします。
- クライアントが証明書を検証します。
- ECDHEによって、前方秘匿性を備えた共有セッション鍵を導出します。
- TLS 1.3によって、ハンドシェイクがより高速で安全になりました。
次は、暗号スイートについて詳しく学びます。
AI チューターと学ぶ Cyber Security Academy — 無料
ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。
- コース
- 76
- レッスン
- 303
よくある質問
「TLSハンドシェイク」レッスンは無料ですか?
はい。「TLSハンドシェイク」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Cyber Security Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Cyber Security Academyコースには全4レッスンが含まれています。
「TLSハンドシェイク」で何を学びますか?
安全なセッションの開始方法を理解します ブラウザで直接実行するハンズオンコードでCyber Security Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Cyber Security Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのCyber Security Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。
「TLSハンドシェイク」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このCyber Security Academyレッスンでコードを書いて実行できますか?
はい。すべてのCyber Security Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。