Classic Load Balancer、Application Load Balancer、および Network Load Balancer は SSL/TLS セッションの再開をサポートしていますか?

最終更新日: 2020 年 5 月 26 日

Classic Load Balancer、Application Load Balancer、および Network Load Balancer は Secure Sockets Layer/Transport Layer Security (SSL/TLS) セッションの再開をサポートしていますか?

解決方法

SSL/TLS セッションの再開は、全タイプのロードバランサーでサポートされていますが、サポートされる接続方法はタイプに応じて異なります。

SSL/TLS 接続方法

TLS ハンドシェイクには、フルと簡略の 2 つのタイプがあります。フルハンドシェイクは 1 度だけ実行され、フルハンドシェイク後にクライアントがサーバーとの SSL/TLS セッションを確立します。それ以降の接続には、以前にネゴシエートされたセッションをより迅速に再開するために簡略ハンドシェイクが使用されます。

TLS 接続を確立または再開するには、次の 2 つの方法があります。

  • SSL セッション ID – この方法は、完全にネゴシエートされた接続が終了された後も、セッションのセキュリティパラメータがしばらくの間維持されるクライアントとサーバーの両方に基づくものです。セッションの再開を使用する予定のサーバーが、セッションに対してセッション ID と呼ばれる一意の識別子を割り当てます。次に、サーバーがそのセッション ID を ServerHello メッセージでクライアントに返します。以前のセッションを再開するには、クライアントが ClientHello メッセージで適切なセッション ID を送信する必要があります。サーバーがキャッシュ内に対応するセッションを検出し、セッションを再開するリクエストを受け入れる場合、サーバーは同じセッション識別子を返して、簡略ハンドシェイクを続行します。それ以外の場合には、サーバーが新しいセッション ID を発行し、フルハンドシェイクに切り替えます。
  • SSL セッションチケット – このメソッドにサーバー側のストレージは必要ありません。サーバーは、すべてのセッションデータを収集し、暗号化してから、チケットの形式でクライアントに返します。それ以降の接続では、クライアントがサーバーにそのチケットを送信します。次に、サーバーがチケットの整合性をチェックして内容を復号化し、その情報を使用してセッションを再開します。サーバーまたはクライアントがこの拡張機能をサポートしない場合は、SSL に組み込まれているセッション識別子メカニズムにフォールバックできます。

各ロードバランサータイプでサポートされている SSL/TLS 接続方法

  • Classic Load Balancer はセッション ID ベースでの SSL/TLS セッションの再開をサポートしていますが、セッションチケットベースでの SSL セッションの再開はサポートしていません。SSL セッションキャッシングはノードレベルでサポートされます。クライアントがノード A から受け取った SSL セッション ID を使用してノード B に接続する場合、SSL ハンドシェイクはフルハンドシェイクに戻ります。その後、ノード B によって新しい SSL セッション ID が生成されます。
  • Application Load Balancer は、セッション ID ベースおよびセッションチケットベース両方での SSL セッションの再開をサポートします。セッション ID とセッションチケットは、どちらもノードレベルでサポートされます。クライアントがノード A から受け取った SSL セッション ID またはセッションチケットを使用してノード B に接続する場合、SSL ハンドシェイクはフルハンドシェイクに戻ります。その後、新しい SSL セッション ID とセッションチケットがノード B によって生成されます。
  • Network Load Balancer がセッションの再開用にサポートするのはセッションチケットのみです。セッションチケットを使用した再開は、リージョンレベルでサポートされます。クライアントは、任意の IP アドレスを使用して Network Load Balancer との TLS セッションを再開できます。

この記事はお役に立ちましたか?

改善できることはありますか?


さらにサポートが必要な場合