Azure

Azure Application Gateway の相互認証の暗号スイートを確認する

はじめに

Application Gateway の相互認証では暗号化イートを選択することができます。

その中でも推奨されるポリシーがあります。Azureでは現在TLS1.2を最低プロトコルバージョンとして推奨しています。これはNICTなどの情報によって今後も変更されていくことでしょう。

Application Gatewayで推奨される暗号スイート

2023/02/23 推奨されるポリシーはAppGwSslPolicy20220101です。

定義済み暗号スイートを確認していきます。こでは変更できないものです。

暗号スイート
TLS_AES_128_GCM_SHA256
TLS_AES_256_GCM_SHA384
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384

CustomV2 暗号スイート(TLS1.2)はさらに絞られています。

暗号スイート
TLS_AES_128_GCM_SHA256
TLS_AES_256_GCM_SHA384
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256

CBCはすでにマイクロソフトでは安全ではないと明言しています。

CBC の復号化の脆弱性 - .NET | Microsoft Learn
CBC の復号化の脆弱性 - .NET | Microsoft Learn

パディングを使用した暗号ブロック チェーン (CBC) モードの対称復号化でのタイミングに関する脆弱性を検出し、軽減する方法について説明します。

learn.microsoft.com

以下はopenssl ciphers -v で確認した場合の暗号強度です。CBCは入ってないです。

暗号スイート
TLS_AES_256_GCM_SHA384
TLS_AES_128_GCM_SHA256
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256

* OpenSSL 3.0.2 15 Mar 2022 (Library: OpenSSL 3.0.2 15 Mar 2022)

さらに暗号強度について知りたい場合はIPAの資料を確認してみてください。

TLS暗号設定ガイドライン 安全なウェブサイトのために(暗号設定対策編) | 情報セキュリティ | IPA 独立行政法人 情報処理推進機構
TLS暗号設定ガイドライン 安全なウェブサイトのために(暗号設定対策編) | 情報セキュリティ | IPA 独立行政法人 情報処理推進機構

www.ipa.go.jp

また、CRYPTREC などを参考にしてみてください。

CRYPTREC | トップページ
CRYPTREC | トップページ

www.cryptrec.go.jp

暗号スイートの選択

結局どの暗号スイートを選択するべきなのでしょうか。

基本的にサーバー側の要件とクライアント側の要件になります。

考えられるサーバーの要件

  • 運用年数:いつまで運用するのか?これは暗号強度によってサポート期間が変わってきます。TLS暗号設定ガイドラインには以下のように資料があります。また、暗号強度要件設定基準の暗号強度によっても確認することができます。

    暗号強度は末尾にビット数で決まることではないことに注意が必要です。

    鍵を交換しないで2030年まで運用することはあまり考えにくいことですが192ビット以上では2070年まで現状では利用可となっています。
    そのほかにも様々な要件があります。興味がある人は確認してみてください。

考えられるクライアント側の要件

  • ブラウザの対応:現在ではほぼすべてのブラウザでTLS1.3までサポートしているので問題ないと思います。
  • アプリの対応:これは開発側の対応次第だとおもいますが、今時のSDKならTLS1.3に対応できるのではないでしょうか?(ちゃんとそれぞれ調べてね

その他にも証明書の発行機関によっては指定がある場合もあります。

そんな感じで要件にあった形で選択してください。

まとめ

Application Gatewayに関して言えば、証明書の発行機関などにもよりますが、一番強度がつい良いものを選択しておけば問題ないのではないでしょうか。

-Azure
-