重要なお知らせ:GoogleとYahooは2024年4月よりDMARCを義務付けます。
PowerDMARC

TLSハンドシェイクとは何ですか?

TLSハンドシェイクとは

TLSハンドシェイクとは

読書時間 4

TLS暗号化という、インターネット通信を保護するための認証プロトコルです。TLSのハンドシェイクは、非対称暗号を使用してサーバーとの接続を保護するプロセスです。TLS証明書を使用するウェブサイトは、HTTPSプロトコルを活用して安全にサーバーに接続することができます。このブログでは、TLSハンドシェイクの手順、作業方法など、TLSハンドシェイクを詳しく解説しています。

TLSハンドシェイクとは何ですか?

実生活で行うハンドシェイクのように、TLSのハンドシェイクは導入部である。これは、2つのサーバー間で、互いを認め、検証し、暗号コードを設定し、セッションキーに合意するためにメッセージを交換する安全な通信を示します。 

TLSのハンドシェイクプロセスは、最初の「Hello」から始まり、クライアントとサーバーが安全な接続を介して会話できる段階まで続きます。 

TLSハンドシェイクはどのように行われるのか?

TLSハンドシェイクとは何かということが分かったところで、その仕組みを見てみましょう。

そのため、TLSハンドシェイクプロセスは、ウェブサイトやアプリケーションのサーバーにTLS証明書が設定されている場合にのみ機能します。この証明書には、サーバーの身元を確認するためのドメイン所有者とサーバーの公開鍵に関する重要な詳細が含まれています。この一連のプロセスにより、TLS接続が確立されました。したがって、ユーザーがTLS対応のウェブサイトにアクセスするよう要求すると、ユーザーのデバイスとウェブブラウザの間でTLSハンドシェイクが始まり、次の一連の詳細が交換されます。 

TLSハンドシェイクは、すべての通信のための暗号スイートを確立する。暗号スイートは、安全な通信接続を確立するために使用される一連のアルゴリズムとして説明される。TLSハンドシェイクの重要な役割は、どの暗号スイートを使用するかを決定することです。TLSは、公開鍵暗号方式を使用して、暗号化されていないチャネルで一致するセッション鍵を設定します。 

また、ハンドシェイクでは、公開鍵を使ってサーバーをチェックすることで、送信者の真偽を確認します。公開鍵は一方向の暗号化鍵で、元の送信者以外は暗号化されたデータを復号化することはできません。元の送信者は、データを復号するために自分の秘密鍵を使用します。 

TLSハンドシェイクの失敗とは、接続が終了し、クライアントに「503 Service Unavailable」のエラーメッセージが表示されることを意味します。 

TLSとSSLハンドシェイクの比較

SSLSecure Sockets Layerの略で、HTTPのために作られたオリジナルのセキュリティプロトコルです。SSLはTLSに取って代わられ、SSLハンドシェイクはTSLハンドシェイクと呼ばれるようになった。

TLSハンドシェイクはいつ行われるのか?

ユーザーが安全な接続でウェブサイトを閲覧するよう要求すると、ブラウザはウェブサイトのオリジンサーバーに問い合わせます。また、その他の通信チャネルで HTTPS を使用する場合にも発生します。これには、セキュリティで保護されたネットワーク上でのAPIコールやDNSが含まれます。

TLSハンドシェイクの手順

TLSのハンドシェーク手順は、クライアントとサーバー間で転送される一連のデータグラム、またはメッセージで構成されています。正確な手順は、使用する鍵交換アルゴリズムの種類と、両側がサポートする暗号スイートによって異なります。以下は、その例です。

ステップ1:「クライアントハロー」メッセージ

クライアントのサーバーは、ウェブサイトのメインサーバーに「hello」メッセージを送信して、TLSハンドシェイクプロセスを開始する。このメッセージは、サポートするTLSバージョンや暗号スイートなどの重要な詳細と、「クライアントランダム」と呼ばれるいくつかのランダムなバイトで構成されています。

ステップ2:「Server Hello」メッセージ

サーバはクライアントのHelloメッセージに対して、SSL証明書、サーバが選択した暗号スイート、サーバが生成した「サーバランダム」文字列を持つレスポンスを送信することで返信する。 

ステップ3:認証

このTLSハンドシェイクのステップでは、クライアントはサーバーのSSL証明書を発行機関に確認する。これは、サーバーが本物であること、クライアントがドメイン所有者と通信していることを確認するために行われます。

ステップ4:プレマスターシークレット

プレマスターシークレットは、別のランダムなバイト列で、クライアントから送信されます。これは公開鍵で暗号化され、サーバーが秘密鍵を使って復号化することができます。 

ステップ5:秘密鍵の使用

プレマスターの秘密はサーバーによって復号化される。

ステップ6:セッションキーの作成

クライアントとサーバは、クライアントランダム、サーバランダム、およびプリマスタシークレットからセッションキーを作成します。3つの結果はすべて同じでなければなりません。

ステップ7:クライアントの準備完了

クライアントはセッションキーで暗号化された "finished "メッセージを送信する。

ステップ8:サーバーの準備

サーバーはセッションキーで暗号化された "finished "メッセージを送信する。 

ステップ9:安全な対称型暗号の実現 

これは最後のTLSハンドシェイクステップである。これが完了すると、セッションキーを使用して通信が継続される。

TLS 1.3ハンドシェイク-何が違うのか?

TLS 1.3はRSAをサポートしていないため、手順が若干異なります。

クライアントハロー

クライアントは、プロトコルバージョン、クライアントランダム、暗号スイートのリストを含む「クライアントハロー」メッセージを送信する。TLS 1.3バージョンでは暗号スイートのサポートがないため、暗号スイートの数は減少する。 

このメッセージには、プレマスターの秘密を評価するためのパラメータも含まれる。これは、TLS 1.3 のハンドシェイクと TLS 1.0, 1.1, 1.2 のハンドシェイクの主な違いである、ハンドシェイクの長さを短縮するものです。 

サーバーがマスターシークレットを作成

このステップでは、サーバはクライアントのランダムとクライアントのパラメータと暗号スイートを受け取る。自身のサーバランダムを生成する際に、マスターシークレットを生成する。

サーバーのハローとフィニッシュ

Server helloには、サーバ証明書、暗号署名、サーバランダム、選択された暗号スイートが含まれる。また、マスターシークレットを持っているので、「終了」メッセージも送信する。 

最終ステップとクライアントの完成

クライアントは署名と証明書を検証し、マスターシークレットを生成し、"Finished "メッセージを送信する。

安全な対称型暗号を実現

TLSハンドシェイク終了後、セッションキーを用いて通信を継続する。

TLSレポートの読み方

TLS レポートは、配信性の問題とともに、MTA-STS認証中の TLS ハンドシェイクのずれに関する貴重な情報を提供することができます。PowerDMARCの TLS-RPTは、元の JSON ファイルから解析された、人間が読める形式のレポートを提供します。

TLSのレポートを読むには、無料トライアルを開始する必要があります。

なぜビジネスやウェブアプリケーションはTLSハンドシェイクを使うべきなのか?

HTTPS は HTTP 拡張の保護バージョンであるため、TLS ハンドシェイクは Web アプリケーションを違反行為やその他のサイバー攻撃から保護します。TLS証明書を持つウェブサイトは、HTTPSプロトコルを利用して、ユーザーに安全に接続することができます。その目的は、個人データ、財務データ、ログイン情報など、機密情報を保護することです。

モバイル版を終了する