ALBに新しいセキュリティポリシーが追加されました (Forward Secrecy / TLS1.2 Only)

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

中山(順)です。

少し前(2018年6月6日)の話になりますが、ALBに新しいセキュリティポリシーが2つ追加されました。

Application Load Balancer Adds New Security Policies Including Policy for Forward Secrecy

どんなポリシー?

ポリシーの内容とポイントは以下の通りです。

ELBSecurityPolicy-FS-2018-06

Forward Secrecyに準拠するための暗号化方式をサポートしています。

AWS CLIで詳細を確認してみましょう。

aws elbv2 describe-ssl-policies \
    --names ELBSecurityPolicy-FS-2018-06 \
    --output table

結果は以下の通りです。

---------------------------------------------------
|               DescribeSSLPolicies               |
+-------------------------------------------------+
||                  SslPolicies                  ||
|+-----------------------------------------------+|
||                     Name                      ||
|+-----------------------------------------------+|
||  ELBSecurityPolicy-FS-2018-06                 ||
|+-----------------------------------------------+|
|||                   Ciphers                   |||
||+--------------------------------+------------+||
|||              Name              | Priority   |||
||+--------------------------------+------------+||
|||  ECDHE-ECDSA-AES128-GCM-SHA256 |  1         |||
|||  ECDHE-RSA-AES128-GCM-SHA256   |  2         |||
|||  ECDHE-ECDSA-AES128-SHA256     |  3         |||
|||  ECDHE-RSA-AES128-SHA256       |  4         |||
|||  ECDHE-ECDSA-AES128-SHA        |  5         |||
|||  ECDHE-RSA-AES128-SHA          |  6         |||
|||  ECDHE-ECDSA-AES256-GCM-SHA384 |  7         |||
|||  ECDHE-RSA-AES256-GCM-SHA384   |  8         |||
|||  ECDHE-ECDSA-AES256-SHA384     |  9         |||
|||  ECDHE-RSA-AES256-SHA384       |  10        |||
|||  ECDHE-RSA-AES256-SHA          |  11        |||
|||  ECDHE-ECDSA-AES256-SHA        |  12        |||
||+--------------------------------+------------+||
|||                SslProtocols                 |||
||+---------------------------------------------+||
|||  TLSv1                                      |||
|||  TLSv1.1                                    |||
|||  TLSv1.2                                    |||
||+---------------------------------------------+||

ELBSecurityPolicy-TLS-1-2-Ext-2018-06

SSLプロトコルとしてTLS1.2のみをサポートするセキュリティポリシーです。

各サービス事業者はTLS1.2以上の利用を推奨しています。 以下の記事はマイクロソフトさんの例です。

[IT 管理者向け] TLS 1.2 への移行を推奨しています

また、いくつかのサービスでも実際にTLS1.2のみのサポートへ移行しています。

Deep Security as a Service環境におけるTLS1.2未満の無効化について

AWS CLIで詳細を確認してみましょう。

aws elbv2 describe-ssl-policies \
    --names ELBSecurityPolicy-TLS-1-2-Ext-2018-06 \
    --output table

結果は以下の通りです。

---------------------------------------------------
|               DescribeSSLPolicies               |
+-------------------------------------------------+
||                  SslPolicies                  ||
|+-----------------------------------------------+|
||                     Name                      ||
|+-----------------------------------------------+|
||  ELBSecurityPolicy-TLS-1-2-Ext-2018-06        ||
|+-----------------------------------------------+|
|||                   Ciphers                   |||
||+--------------------------------+------------+||
|||              Name              | Priority   |||
||+--------------------------------+------------+||
|||  ECDHE-ECDSA-AES128-GCM-SHA256 |  1         |||
|||  ECDHE-RSA-AES128-GCM-SHA256   |  2         |||
|||  ECDHE-ECDSA-AES128-SHA256     |  3         |||
|||  ECDHE-RSA-AES128-SHA256       |  4         |||
|||  ECDHE-ECDSA-AES128-SHA        |  5         |||
|||  ECDHE-RSA-AES128-SHA          |  6         |||
|||  ECDHE-ECDSA-AES256-GCM-SHA384 |  7         |||
|||  ECDHE-RSA-AES256-GCM-SHA384   |  8         |||
|||  ECDHE-ECDSA-AES256-SHA384     |  9         |||
|||  ECDHE-RSA-AES256-SHA384       |  10        |||
|||  ECDHE-RSA-AES256-SHA          |  11        |||
|||  ECDHE-ECDSA-AES256-SHA        |  12        |||
|||  AES128-GCM-SHA256             |  13        |||
|||  AES128-SHA256                 |  14        |||
|||  AES128-SHA                    |  15        |||
|||  AES256-GCM-SHA384             |  16        |||
|||  AES256-SHA256                 |  17        |||
|||  AES256-SHA                    |  18        |||
||+--------------------------------+------------+||
|||                SslProtocols                 |||
||+---------------------------------------------+||
|||  TLSv1.2                                    |||
||+---------------------------------------------+||

いきなり適用しちゃっていいの?

ちょっと落ち着いてください。

クライアントによってはこれらの暗号化方式/プロトコルをサポートしていない場合があります。 詳細は以下のブログをご覧ください。

ELB のセキュリティポリシー変更はブラウザの対応プロトコルを考慮して慎重に

実際にアクセスしているクライアントは?

CloudFrontやALBを利用している場合、アクセスログにUserAgentが記録されます。

ALB:アクセスログのエントリ

CloudFront:ログファイル形式

分析はAthenaがお手軽でしょう。

Application Load Balancer ログのクエリ

Amazon CloudFront ログのクエリ

弊社ブログでも紹介されております。

Amazon Athena RegexSerDe を利用して ALB ログを探索する

Amazon Athena で CloudFront のアクセスログを集計する

まとめ

時間と共に従来の暗号化方式やプロトコルは脆弱なものになってしまいます。 やむを得ない事情で古いクライアントをサポートしなければならないケースはあると思いますが、 少しずつでもあるべき姿へ近づけていきましょう。

現場からは以上です。