はじめに
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はすでにマイクロソフトでは安全ではないと明言しています。
以下は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の資料を確認してみてください。
また、CRYPTREC などを参考にしてみてください。
暗号スイートの選択
結局どの暗号スイートを選択するべきなのでしょうか。
基本的にサーバー側の要件とクライアント側の要件になります。
考えられるサーバーの要件
- 運用年数:いつまで運用するのか?これは暗号強度によってサポート期間が変わってきます。TLS暗号設定ガイドラインには以下のように資料があります。また、暗号強度要件設定基準の暗号強度によっても確認することができます。

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

鍵を交換しないで2030年まで運用することはあまり考えにくいことですが192ビット以上では2070年まで現状では利用可となっています。
そのほかにも様々な要件があります。興味がある人は確認してみてください。
考えられるクライアント側の要件
- ブラウザの対応:現在ではほぼすべてのブラウザでTLS1.3までサポートしているので問題ないと思います。
- アプリの対応:これは開発側の対応次第だとおもいますが、今時のSDKならTLS1.3に対応できるのではないでしょうか?(ちゃんとそれぞれ調べてね
その他にも証明書の発行機関によっては指定がある場合もあります。
そんな感じで要件にあった形で選択してください。
まとめ
Application Gatewayに関して言えば、証明書の発行機関などにもよりますが、一番強度がつい良いものを選択しておけば問題ないのではないでしょうか。

