OpenID ファウンデーション・ジャパン

進化するTLS暗号スイートへのFAPIの適応

By staff | 2026年04月14日

FAPIは導入が広がり、実装が成熟してきました。そして今、継続メンテナンスが初期の実装と同様に重要となっています。特に管理が難しい課題の一つが、TLS暗号スイートの扱いです。

FAPIは、広く普及しているインターネット標準仕様を前提としています。これまでこの設計方針は有効でしたが、同時にこれは、前提とした標準仕様のライフサイクルに伴う変化の影響を受けることを意味します。暗号スイートは不変ではなく、研究者や標準化団体によって、新たに追加されたり、分類が見直されたり、非推奨とされたりするためです。

この記事では、FAPIワーキンググループが、この課題にIANA(Internet Assigned Numbers Authority)レジストリへの準拠によってどう対応しようとしているかを説明します。FAPI仕様と適合性テストの今後の変更点を解説し、実装コミュニティがTLS 1.3へ移行すべき理由を述べます。

暗号スイートの進化の仕組み

インターネットコミュニティは、以下の複数の仕組みを組み合わせてTLS暗号スイートを管理しています:

IANAレジストリでは、各暗号スイートのエントリに以下の情報が関連付けられています:

  • 定義しているRFC
  • 適用可能なプロトコルバージョン(TLS 1.2、TLS 1.3)
  • 現在のステータス(推奨、非推奨、予約済み)

これは意図的な設計です。標準化団体は、安全で有用と判断されれば新たな暗号スイートを導入しますが、より優れた代替手段が登場したり脆弱性が発見されたりすれば、既存のものを非推奨とします。このモデルゆえに、静的に「許可リスト」を定めても、それはいずれ時代遅れになってしまうのです。

FAPI 2.0とBCP 195

FAPI 2.0セキュリティプロファイルは、TLSのセキュリティ要件を、現在RFC 9325として公開されているBCP 195に委ねています。これは仕様策定時点では適切な判断でした。しかし、RFC 9325自体がその適用範囲を明示的に限定している点に注意が必要です。

  • TLS 1.2の場合RFC 9325 セクション4.2は、以下のごく限られたAES-GCM暗号スイートのみを挙げ、他を推奨していません。
    • TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
    • TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
    • TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
    • TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
  • TLS 1.3の場合RFC 9325 セクション4.3は、暗号に関する全てのガイダンスをRFC 8446に委ねています。RFC 8446 セクション9.1は以下の暗号を定義しています。
    • TLS_AES_128_GCM_SHA256
    • TLS_AES_256_GCM_SHA384
    • TLS_CHACHA20_POLY1305_SHA256

重要なのは、RFC 8446がこれらのアルゴリズムを、TLSのバージョンに関わらず、「現代的で安全な構成」として扱っていることです。

ChaCha20-Poly1305と、静的BCP適用の限界

最近の一件が、暗号スイートを静的に規定することの難しさを露呈しました。

あるFAPI 2.0準拠の実装が、TLS 1.2接続でサーバーがTLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256という暗号スイートを提示したために、適合性テストに失敗したのです。その理由は、FAPI 2.0適合性テストがTLS 1.2に対してBCP 195(RFC 9325)を厳格に解釈し、上記の限られたAES-GCMスイートしか許可していなかったのです。

しかし、ChaCha20-Poly1305は強力な現代的暗号であり、RFC 8446 セクション9.1で定義されている通り、TLS 1.3では実装が必須の暗号スイートです。また、AESのハードウェアアクセラレーションを持たないプラットフォームでのパフォーマンス向上を目的に設計されています。

この事例は、RFC 9325のTLS 1.2用リストを厳密に適用することが、IETFのより広範な意図(強力な現代的暗号を推奨する)と矛盾する場合があることを示しました。実際には、適合性テストの要求と、現実世界での暗号技術のベストプラクティスとの間に齟齬が生じる結果となったのです。

FAPIをIANAレジストリに準拠させる

この問題を受け、FAPIワーキンググループは、TLS暗号管理に対するより明確で持続可能なアプローチを公式に定めようとしています。

  • FAPIは、特定のBCP文書の改訂版に縛られるのではなく、暗号に関する要件をIANA TLS暗号スイートレジストリに合わせます
  • レジストリに登録され、「推奨」ステータスを持つ暗号スイートは、FAPIでも使用可能とします
  • これは、各暗号を定義するRFCの内容と整合する形で、TLSのバージョンを跨いで適用されます
  • 適合性テストもこの動的なモデルを反映するよう更新されます
  • この方針を反映するため、FAPI 1.0およびFAPI 2.0の正誤表を更新します。

新しい暗号の自動的な段階的導入

IANAが新たな推奨暗号スイートを登録した場合:

  • FAPI適合性テストはそれを自動的に受け入れます
  • 基本的な利用資格を得るために、FAPI仕様そのものの改訂は必要ありません
  • 実装コミュニティは、適合性認証を失うリスクなく、新しい暗号を採用できます
  • これにより、FAPIが暗号技術の進歩の妨げになることがなくなります

非推奨暗号の予測可能な段階的廃止

暗号スイートが非推奨とされたり、推奨ステータスから外されたりした場合、その移行は予測可能な段階的アプローチに従います:

  1. 初期段階: 適合性テストが警告を発します
  2. 移行期間: 実装コミュニティに移行の猶予期間が与えられます
  3. 最終段階: 非推奨暗号は適合性テストを通過できなくなります

具体的なタイムラインは別途公表されますが、その意図は、FAPIやBCPガイダンスで既に想定されている12か月の期間と整合する、明確で混乱の少ない移行の機会を提供することにあります。

TLS 1.3がデフォルトとなる

前述のライフサイクルガイダンスはTLS 1.2と1.3の両方に適用されますが、戦略的な方向性は明白です。実装コミュニティはTLS 1.3の導入を最優先すべきです。

IETFは、プロトコルに関する見解を明確に転換し、TLS 1.3を必須とし、TLS 1.2はオプションサポートに移行する方針を示しています。

この立場は、近く更新予定のRFC 9325に反映され、正式な変更となります。以下は、RFC化が目前(AUTH48段階終了済み)のドラフト draft-ietf-uta-require-tls13-12 のセクション5からの抜粋です:

...この文書は、[RFC9325]のセクション3.1.1に記載された推奨事項に対し、以下の2点を変更する:

    1. 同セクションはTLS 1.3を「サポートすべき(SHOULD)」としているが、本ドラフトは新規にTLSを利用するプロトコルではTLS 1.3を「サポートしなければならない(MUST)」 と規定する。
  • 同セクションはTLS 1.2を「サポートしなければならない(MUST)」としているが、本ドラフトはTLS 1.2は「サポートしてもよい(MAY)」とする

FAPIの実装環境においても、これは進むべき道筋を明確に示すものです。可能な限りTLS 1.3を有効化し、優先して使用すべきです。 TLS 1.2は、運用上やむを得ない場合にのみ維持してください。

今後の変更点とスケジュール

近日中に、正誤表の草案やテストスイートの変更を含む詳細を共有する予定です。計画されている更新は以下の通りです。

  • FAPI 1.0 正誤表:
    • 暗号スイートと鍵長の規定を以下の文に置き換えます:
      1. [BCP 195]で許可されている鍵長を要求し、使用しなければならない
      2. [IANA TLSP]で非推奨とされているアルゴリズムを使用してはならない
  • FAPI 2.0 正誤表 (近日公開):
    • サーバーは、「Transport Layer Security (TLS) Parameters」レジストリグループ内の「TLS Cipher Suites」レジストリにおいて、許可されており、かつ非推奨とされていない暗号スイートのみを使用しなければならない
    • クライアントは、同レジストリにおいて推奨されている暗号スイートのみを許可すべきである
  • FAPI 2.0 適合性テスト更新: 近い将来に実施予定
  • FAPI 1.0 適合性テスト更新: その後を予定

これらの更新には、前述のIANAレジストリ準拠アプローチが盛り込まれます。

FAPI関係者が次に取るべき行動

すべてのFAPI関係者には、以下のステップを実施されることをお勧めします。

  1. 現在のTLS設定を確認する
    • 現在使用している暗号スイートを特定する
    • それらをIANAレジストリおよびTLS 1.3のデフォルト設定と照合する
  2. TLS 1.3導入の準備状況を評価する
    • TLS 1.3を有効化し、優先プロトコルとして設定する
    • クライアントとサーバー間での動作互換性を検証する
  3. 暗号ライフサイクル管理の計画を立てる
    • 将来の暗号追加や削除を見越した計画を立てる
    • 可能な限り、静的な許可リストをコードに直接埋め込む(ハードコード)ことを避ける

エコシステム間の協業

FAPIは、オープンバンキングおよびオープンファイナンス分野におけるセキュリティのグローバル標準として主導的立場にあり、安全で相互運用可能なデータ共有を実現するため多くの国で採用されています。この規模で相互運用性と高いセキュリティを維持するには、関係者間の調整、透明性、そして予測可能性が不可欠です。

FAPIワーキンググループは、強力で現代的(モダン)な実装が不利益を被ることなく、かつ高いセキュリティ水準を維持できるようにすることを目指しています。FAPIをIANAレジストリにより密接に連携させ、TLS 1.3への移行を推進する今回のアプローチは、エコシステムの長期的な健全な発展を最もよく支えるものと考えています。

参考文献

アーカイブ