Amplify Console にホスティングした環境で TLS 1.0/1.1 が無効化されているか確認してみた

こんにちは、アノテーション テクニカルサポートチームの中野です。

Amplify Console でホスティングした環境は、デフォルトで暗号化されます。

Amplify Hosting provides encryption for data in-transit by default.

一方、各企業のポリシーによっては、特別な理由がない限り TLS1.0/1.1 の利用は禁止や非推奨としているところもあるかと考えられます。

そのため、Amplify Console が TLS1.0 や TLS1.1 を適用しているか確認してみました。

SSL/TLS の動向

IPA の「TLS 暗号設定ガイドライン」にも記載の通り、TLS 1.0/1.1 の利用を非推奨としており、以下のブログでも紹介されている通り、各ブラウザで無効化が行われています。

主要ブラウザの開発元が2020年前半にかけてTLS 1.0/1.1を無効化すると発表がありました。無効化が行われるとTLS 1.0/1.1を利用しているサイトで警告の表示や、表示できない問題が発生しますので事前に準備が必要です。

まず、結論

  • Amplify Console では、TLS バージョンの無効化や指定はできない
  • Amplify Console のセキュリティポリシーは、すべてのアプリケーションで TLSv1.2_2019 が適用済み
  • TLSv1.2_2019 の最小 TLS バージョンは、TLS1.2

確認したこと

確認したことを以下に記載します。

GitHub Issue の報告

2022/3 現在、GitHub Issue の報告だと、Amplify Console で作成されたアプリは、TLSv1.2_2019 が全アプリに適用済みとのことでした。

All existing apps in all regions have been updated to use the TLSv1.2_2019 policy. New apps will use that policy as well.

TLSv1.2_2019 のドキュメント

以下のブログにも記載の通り、Amplify Console でホスティングした環境は、自動で CloudFront をセットアップしてくれます。
一方、こちらの CloudFront は我々から確認することはできないので、CloudFront の SSL/TLS のセキュリティポリシーを手動で設定することもできません

Amplify Console の静的サイトのホスティングは、コンテンツ配信に CDN である CloudFront を自動でセットアップしてくれます。だがしかし、ここで作られる CloudFront のリソースはユーザには見えないのです。

しかしながら、前述の通り、Amplify Console では TLSv1.2_2019 のセキュリティポリシーが全アプリで適用されているため、最低のセキュリティーポリシーである TLSv1.2 以上が適用されています。

ツールで確認してみた

Amplify Console で Web サイトをホスティングして確認してみました。
sslscan を利用して、Amplify Console の SSL/TLS のバージョンをチェックしてみます。

インストール方法などは以下のブログを参照ください。

以下の実行結果の通り、TLS1.0/1.1 は無効化されています。 一方で、TLS1.2/1.3 が有効化されていることが確認できました。

$ sslscan https://dev.********.amplifyapp.com/
Version: 2.0.12-static
OpenSSL 1.1.1n  15 Mar 2022

Connected to xx.xx.xx.xx

Testing SSL server dev.********.amplifyapp.com on port 443 using SNI name
dev.********.amplifyapp.com

  SSL/TLS Protocols:
SSLv2     disabled
SSLv3     disabled
TLSv1.0   disabled
TLSv1.1   disabled
TLSv1.2   enabled
TLSv1.3   enabled

  TLS Fallback SCSV:
Server supports TLS Fallback SCSV

  TLS renegotiation:
Session renegotiation not supported

  TLS Compression:
OpenSSL version does not support compression
Rebuild with zlib1g-dev package for zlib support

  Heartbleed:
TLSv1.3 not vulnerable to heartbleed
TLSv1.2 not vulnerable to heartbleed

  Supported Server Cipher(s):
Preferred TLSv1.3  128 bits  TLS_AES_128_GCM_SHA256        Curve 25519 DHE 253
Accepted  TLSv1.3  256 bits  TLS_AES_256_GCM_SHA384        Curve 25519 DHE 253
Accepted  TLSv1.3  256 bits  TLS_CHACHA20_POLY1305_SHA256  Curve 25519 DHE 253
Preferred TLSv1.2  128 bits  ECDHE-RSA-AES128-GCM-SHA256   Curve 25519 DHE 253
Accepted  TLSv1.2  256 bits  ECDHE-RSA-AES256-GCM-SHA384   Curve 25519 DHE 253
Accepted  TLSv1.2  256 bits  ECDHE-RSA-CHACHA20-POLY1305   Curve 25519 DHE 253

  Server Key Exchange Group(s):
TLSv1.3  128 bits  secp256r1 (NIST P-256)
TLSv1.3  192 bits  secp384r1 (NIST P-384)
TLSv1.3  128 bits  x25519
TLSv1.2  128 bits  secp256r1 (NIST P-256)
TLSv1.2  192 bits  secp384r1 (NIST P-384)
TLSv1.2  128 bits  x25519

  SSL Certificate:
Signature Algorithm: sha256WithRSAEncryption
RSA Key Strength:    2048

Subject:  *.xxxxxxxxxx.amplifyapp.com
Altnames: DNS:*.xxxxxxxxxx.amplifyapp.com, DNS:xxxxxxxxxx.amplifyapp.com
Issuer:   Amazon

Not valid before: Mar 24 00:00:00 2022 GMT
Not valid after:  Apr 23 23:59:59 2023 GMT

最後に

Amplify Console はフルマネージド型の Web ホスティングしてくれる便利なサービスですが、セキュリティ面で問題がないか心配になるかと思います。そういった場合は、公式のドキュメントや GitHub Issue など確認してみると情報が見つかるかもしれません。

アノテーション株式会社について

アノテーション株式会社は、クラスメソッド社のグループ企業として「オペレーション・エクセレンス」を担える企業を目指してチャレンジを続けています。「らしく働く、らしく生きる」のスローガンを掲げ、様々な背景をもつ多様なメンバーが自由度の高い働き方を通してお客様へサービスを提供し続けてきました。現在当社では一緒に会社を盛り上げていただけるメンバーを募集中です。少しでもご興味あれば、アノテーション株式会社 WEB サイトをご覧ください。