Cyber Security Academy · レッスン

TLSハンドシェイク

安全なセッションの開始方法を理解します

レッスン 1/413 ステップ

「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フィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. TLSハンドシェイク
  2. 暗号スイート
  3. 証明書の検証
  4. よくあるTLS攻撃
← Cyber Security Academyに戻る