ECDSA 暗号を使用するように Application Load Balancer の TLS/SSL リスナーを設定するには、どうすればよいですか?

所要時間2分
0

Application Load Balancer のセキュリティポリシーには、RSA 暗号と ECDSA 暗号がリスト化されていますしかし、Load Balancer に接続すると、RSA 暗号だけが選択されることが確認されています。

簡単な説明

Application Load Balancer の HTTPS リスナーには複数の証明書を設定することができます。ただし、HTTPS リスナーにはセキュリティポリシーが必要です。各セキュリティポリシーには、RSA と ECDSA の両暗号化アルゴリズムの暗号が含まれています。TLS ハンドシェイク中、Application Load Balancer は選択処理ロジックを使用して、HTTPS 接続に使用する Application Load Balancer 証明書を決定します。選択した証明書が RSA または ECDSA (楕円曲線) キーで作成されている場合、Application Load Balancer は暗号化を行うのに RSA または ECDSA 暗号を使用します。

解決方法

ECDSA 暗号をApplication Load Balancer で使用するには、次の手順を実行します。

新しい ECDSA 証明書を作成するか、ACM にインポートして HTTPS リスナーにバインドする

新しい ECDSA 証明書を作成する

まず、証明書の要件を決定します。次に、AWS Certificate Manager (ACM) に ECDSA 証明書をリクエストします

ECDSA 証明書を ACM にインポートする

認証局と協力してドメインの ECDSA 証明書を .pem 形式で取得したら、新しい ECDSA 証明書を ACM にインポートします

ECDSA 証明書を作成するか ACM にインポートしたら、証明書を Application Load Balancer に関連付けます

(オプション) ロードバランサーのTLSリスナーがサポートする暗号をテストする

どのプロトコルと暗号が使用されているかをテストするには、sslscan など、オープンソースのコマンドラインツールを使用します。

注: サードパーティ製のユーティリティを追加で使用しなくても、sslscan を使用すれば、すべての暗号を網羅した情報を取得することができます。例えば、curl を使用した場合は、個々の暗号スイートを指定する必要があります。つまり、curl などのサードパーティ製ユーティリティには、TLS プロトコルと暗号スイートを指定する、当該ユーティリティの個別リクエストが必要です。

sslscan コマンドは、任意の Amazon Elastic Compute Cloud (Amazon EC2) Linux インスタンスまたはローカルシステムにインストールすることで実行可能です。テストするロードバランサーが発信元 IP アドレスからの TLS 接続を受け入れるかどうかを確認します。

Amazon Linux EC2 インスタンスで sslscan を使用するには、次の手順を実行してください。

  1. Extra Packages for Enterprise Linux (EPEL) リポジトリを有効化します。

  2. Amazon EC2 Linux インスタンスに sslscan をインストールします。

sudo yum install sslscan
  1. どの暗号がサポートされているか Application Load Balancer をスキャンするには、次のコマンドを実行します。example.com は自身のドメイン名に置き換えてください。
[ec2-user@ ~]$ sslscan --show-ciphers example.com | grep Accepted

以下の出力例は、Application Load Balancer で脆弱性スキャンを実行した結果を示しています。この例では、ロードバランサーは P-256 ECDSA 証明書とデフォルトのセキュリティポリシーを使用しています。

    Accepted  TLSv1  256 bits  ECDHE-ECDSA-AES256-SHA
    Accepted  TLSv1  128 bits  ECDHE-ECDSA-AES128-SHA
    Accepted  TLS11  256 bits  ECDHE-ECDSA-AES256-SHA
    Accepted  TLS11  128 bits  ECDHE-ECDSA-AES128-SHA
    Accepted  TLS12  256 bits  ECDHE-ECDSA-AES256-GCM-SHA384
    Accepted  TLS12  256 bits  ECDHE-ECDSA-AES256-SHA384
    Accepted  TLS12  256 bits  ECDHE-ECDSA-AES256-SHA
    Accepted  TLS12  128 bits  ECDHE-ECDSA-AES128-GCM-SHA256
    Accepted  TLS12  128 bits  ECDHE-ECDSA-AES128-SHA256
    Accepted  TLS12  128 bits  ECDHE-ECDSA-AES128-SHA

次の出力例では、ロードバランサーは RSA 2048 証明書とデフォルトのセキュリティポリシーを使用しています。

    Accepted  TLSv1  256 bits  ECDHE-RSA-AES256-SHA
    Accepted  TLSv1  256 bits  AES256-SHA
    Accepted  TLSv1  128 bits  ECDHE-RSA-AES128-SHA
    Accepted  TLSv1  128 bits  AES128-SHA
    Accepted  TLS11  256 bits  ECDHE-RSA-AES256-SHA
    Accepted  TLS11  256 bits  AES256-SHA
    Accepted  TLS11  128 bits  ECDHE-RSA-AES128-SHA
    Accepted  TLS11  128 bits  AES128-SHA
    Accepted  TLS12  256 bits  ECDHE-RSA-AES256-GCM-SHA384
    Accepted  TLS12  256 bits  ECDHE-RSA-AES256-SHA384
    Accepted  TLS12  256 bits  ECDHE-RSA-AES256-SHA
    Accepted  TLS12  256 bits  AES256-GCM-SHA384
    Accepted  TLS12  256 bits  AES256-SHA256
    Accepted  TLS12  256 bits  AES256-SHA
    Accepted  TLS12  128 bits  ECDHE-RSA-AES128-GCM-SHA256
    Accepted  TLS12  128 bits  ECDHE-RSA-AES128-SHA256
    Accepted  TLS12  128 bits  ECDHE-RSA-AES128-SHA
    Accepted  TLS12  128 bits  AES128-GCM-SHA256
    Accepted  TLS12  128 bits  AES128-SHA256
    Accepted  TLS12  128 bits  AES128-SHA

Application Load Balancer で ECDSA 証明書を正しく設定した場合、出力にはネゴシエートによる ECDHE-ECDSA-* 暗号スイートが示されます。出力に他の暗号スイートが表示される場合は、Application Load Balancer のセキュリティポリシーを確認の上、更新してください

AWS公式
AWS公式更新しました 1年前
コメントはありません

関連するコンテンツ