🦑

RFC 8897: リソース公開鍵基盤(RPKI)リライング・パーティーの要件

2024/04/12に公開

要旨

本文書は、リソース公開鍵基盤(RPKI)で使用されるリライング・パーティー(RP)のソフトウェア要件について、1つの評価基準を提供する。複数のRPKIのRFCに記載されている要件が引用しているため、実装者はこれらの要件を把握しやすくしている。時間の経過とともに、このRFCは更新され、ここで説明するRFCで規定している要件とガイダンスの変更が反映される予定である。

本文書の位置付け

本文書はインターネット標準化過程の仕様書ではない。情報提供を目的として公開する。

本文書はインターネット・エンジニアリング・タスク・フォース(IETF)の成果物である。IETFコミュニティのコンセンサスを表すものである。文書は公開レビューを受けており、インターネット・エンジニアリング・ステアリング・グループ(IESG)によって公開が承認されている。IESGによって承認されたすべての文書が、あらゆるレベルのインターネット標準の候補となるわけではない。RFC 7841のセクション2を参照のこと。

文書の現在の位置付け、正誤表、フィードバックの提供方法に関する情報は、http://www.rfc-editor.org/info/rfc8897 で入手できる。

著作権表示

Copyright (c) 2020 IETFトラストおよび文書の著者として特定された人物。無断転載を禁じる。

本文書は、BCP 78および文書の発行日において有効なIETF文書に関するIETFトラストの法的規定(https://trustee.ietf.org/license-info)に従うものとする。これらの文書には、本文書に関するあなたの権利と制限が記載されているため、注意深く確認して欲しい。文書から抽出されたコード・コンポーネントには、トラスト法的条項のセクション4.eに記載されている簡易BSDライセンスのテキストを含まなければならず、簡易BSDライセンスに記載されているように保証なしで提供する。

1. はじめに

RPKIリライング・パーティー(RP)のソフトウェアは、RPKIリポジトリ・システムに保存されているインターネット番号リソース(INR)データを取得し、検証するために、ネットワーク事業者などが使用する。RPKIデータを検証することで、RPは、どの自律システム(AS)がIPアドレス・プレフィックスの経路発信を許可されているかについてのアサーションを検証できる。また、RPKIデータは公開鍵とBGPルータ間のバインディングを確立し、各ルータが示すことを許可されているAS番号を示す。

安全なインターネット・ルーティング[RFC6480]をサポートするためにRPソフトウェアに課せられる必須要件は、多数のプロトコル固有のRFCとベスト・カレント・プラクティRFCに散らばっている。以下のRFCがこれらの要件を定義している。

RFC 6481 (リポジトリ構造)
RFC 6482 (ROA形式)
RFC 6486 (マニフェスト)
RFC 6487 (証明書とCRLプロファイル)
RFC 6488 (RPKI署名済みオブジェクト)
RFC 6489 (鍵ロールオーバー)
RFC 6810 (RPKI to Routerプロトコル)
RFC 6916 (アルゴリズムのアジリティ)
RFC 7935 (アルゴリズム)
RFC 8209 (ルータ証明書)
RFC 8210 (RPKI to Routerプロトコル、バージョン 1)
RFC 8360 (証明書検証手順)
RFC 8630 (トラストアンカー・ロケーター)

RPKI RPの要件がこれら13の文書に分散しているため、実装者はこれらの要件すべてに対応していると確信することが難しくなる。さらに、優れたソフトウェア・エンジニアリング実践では、RPシステムを互いに独立し、影響を与えない機能を持つコンポーネントに分割し、それらのコンポーネントを分散させることが求められる場合がある。収集されたRPソフトウェア要件の分類法は、RPの役割を明確にするのに役立つ。

RPソフトウェアの要件を1つの文書に統合し、関連するすべてのRFCへのポインタを記載するため、本文書はRPに課せられる一連の基本要件の概要を示し、RPKIで使用するRPのソフトウェア要件に関する1つの評価基準を提供する。要件は以下の4つのグループに分類できる。

  • RPKIリポジトリ・オブジェクトのフェッチとキャッシュ

  • 証明書および証明書失効リスト(CRL)の処理

  • RPKIリポジトリ署名済みオブジェクトの処理

  • RPKIデータの検証済みキャッシュの配布

本文書は、これらのRFCが更新されたり、追加のRFCが更新されるたびに、新規または変更された要件を反映して更新される。

2. RPKIリポジトリ・オブジェクトのフェッチとキャッシュ

RPソフトウェアは、対象とするリポジトリがサポートする同期メカニズム([rsync]やRRDP[RFC8182]など)を使用して、リポジトリ・システムからRPKI署名済みオブジェクトをダウンロードし、ローカル・キャッシュを更新する。これらのメカニズムは、RPが最後にリポジトリをチェックした時点以降に追加または新しいバージョンに置き換えられたオブジェクトのみをダウンロードする。RPソフトウェアはRPKIデータを検証し、それを使用して、どのASがアドレス・プレフィックスの経路発信を許可されているか、またどのルータが指定されたASに代わってBGP UPDATEに署名することを許可されているかを識別する認証データを生成する。

2.1. TALの設定と処理

RPKIでは、各RPはトラストアンカー(TA)・セットを選択する。既存のINR割り当て階層構造に従い、IANAおよび/または5つの地域インターネット・レジストリ(RIR)が、RPのデフォルトのTAとなる明らかな候補である。

RPはTAを直接取得しない。トラストアンカー・ロケータ(TAL)・セットは、RPソフトウェアが各TAの真正性を検索・検証するために使用する。

TALの設定と処理は[RFC8630]のセクション3で規定されている。

2.2. 機関およびサブジェクト情報拡張を使用したRPKIオブジェクトの検索

RPKIリポジトリ・システムは分散型であり、複数のリポジトリ・インスタンスで構成される。各リポジトリ・インスタンスには、1つ以上のリポジトリ公開ポイントが含まれる。RPソフトウェアは、(検証済み)証明書からサブジェクト情報アクセス(SIA)拡張および機関情報アクセス(AIA)拡張を使用して公開ポイントを検出する。

[RFC6481]のセクション5では、RPソフトウェアがSIA拡張とAIA拡張を使用して、すべてのRPKIオブジェクトの場所を特定する方法を指定している。リソース証明書のSIA拡張とAIA拡張の詳細な仕様は、[RFC6487]のセクション4.8.8と4.8.7に記載されている。

2.3. 鍵ロールオーバーへの対処

RPソフトウェアは、RPKIリポジトリ・システムとの同期頻度に関して、鍵のロールオーバー期間を考慮する。

鍵ロールオーバーを処理するためのRPソフトウェア要件は、[RFC6489]のセクション3および[RFC8634]のセクション3に記載されている。

2.4. アルゴリズム移行への対応

RPKIで使用される暗号アルゴリズム・セットは、時間とともに変わることが想定される。各RPは、アルゴリズム移行のために制定されたマイルストーンと、節目節目でどのような対応が必要かを認識しておくことが期待される。

アルゴリズムの移行に対応するためのRPソフトウェア要件は、[RFC6916]のセクション4に規定されている。

2.5. 効率的なキャッシュ維持のための戦略

各RPは、RPKIオブジェクトのローカル・キャッシュを維持することが期待される。キャッシュは、リポジトリ公開ポイントおよびローカルに選択したRPの処理制約によって許される頻度で最新の状態に更新し、リポジトリ公開ポイント・データとの一貫性を保つ必要がある。

[RFC6481]のセクション5の最後の段落は、ローカル・キャッシュの保守に関するガイダンスを規定している。

3. 証明書とCRLの処理

RPKIはX.509証明書とCRLを利用するが、[RFC6487]に記載されている標準形式でプロファイルしている。[RFC5280]で確立されたプロファイルに対する主な変更は、[RFC3779]で定義されているRPKI証明書の新しい拡張の使用が必須であることである。

3.1. リソース証明書と構文の検証

RPKI内の証明書はリソース証明書と呼ばれ、[RFC6487]に記載されているプロファイルに準拠することが求められる。RPは、リソース証明書が[RFC6487]のセクション4で確立されたプロファイルに準拠していることを検証することが求められる。これは、[RFC6487]のセクション4.8で義務付けられているすべての拡張が存在し、各拡張の値が[RFC6487]で指定された範囲内になければならないことを意味する。さらに、[RFC6487]のセクション4.8で除外されている拡張は省略しなければならない。

[RFC6487]のセクション7.1では、[RFC3779]に記述されている拡張を検証する際にRPソフトウェアが従う手順を規定している。

3.2. 証明書パスの検証

最初に、発行者の証明書内のINRがサブジェクトの証明書内のINRを包含することが求められる。これは、暗号検証(つまり、親証明書の公開鍵を使用して、各証明書の署名を検証する)に加えて、証明書パスの検証に必要な原則の1つである。

[RFC6487]のセクション7.2では、証明書パスの検証を実行するためにRPソフトウェアが従うべき手順を規定している。

運用上の脆弱性を軽減したい認証局(CA)は、新しいOID[RFC8360]に移行し、代替のRPKI検証アルゴリズムを使用するようRPソフトウェアに通知する。RPは、[RFC8360]のセクション4に記載されている、偶発的なオーバークレームに対処するための修正手順に対応することが期待される。

3.3. CRL処理

CAおよびRPに課せられるCRL処理要件は、[RFC6487]のセクション5に記載されている。RPKIにおけるCRLは厳しく制限されており、 AuthorityKeyIdentifier([RFC6487]のセクション4.8.3)およびCRLNumber([RFC5280]のセクション5.2.3)拡張のみが許可され、この拡張が存在することが求められる。他のCRL拡張やCRLEntry拡張は許可されない。RPソフトウェアは、これらの制約が満たされていることを検証する必要がある。RPKI内の各CRLは、CRLを発行したCAの証明書の公開鍵を使用して検証しなければならない。

RPKIでは、RPはCRLに関連付けられた公開ポイントに関連付けられたマニフェストと一致しないCRLを扱う場合、特別な注意を払うことが期待される。

マニフェストと一致しないCRLの処理は、[RFC6486]のセクション6.6の第5段落に記載されているように、ローカルポリシーの問題である。

4. RPKIリポジトリ署名済みオブジェクトの処理

4.1. 基本的な署名済みオブジェクトの構文チェック

RPがRPKIリポジトリの署名済みオブジェクトを使用する前に、RPソフトウェアは署名済みオブジェクトの構文をチェックする必要がある。

[RFC6488]のセクション3に、リポジトリの署名済みオブジェクトの最上位構文を検証するために、RPソフトウェアが実行する必要があるすべての手順が列挙されている。

これらのチェックは必要だが、十分ではないことに留意する。セクション4.2に記載されているように、署名済みオブジェクトの特定のタイプに基づいて、追加の検証チェックを実行しなければならない。

4.2. 署名済みオブジェクトの各タイプの構文と検証

4.2.1. マニフェスト

マニフェストが有効かどうかを判断するには、RPソフトウェアは[RFC6488]に記載されている一般的な署名済みオブジェクトのチェックに加えて、マニフェスト固有のチェックを実行する必要がある。

マニフェストに対する具体的な検査は[RFC6486]のセクション4に記載されている。マニフェストが無効であることを示すこれらのチェックのいずれかが失敗した場合、マニフェストは破棄され、RPソフトウェアはマニフェストが存在しないかのように動作する。

4.2.2. ROA

経路オリジン認可(ROA)を検証するには、RPソフトウェアは[RFC6488]に記載されているすべての検査とROA固有の追加の検証手順を実行する必要がある。エンド・エンティティ(EE)証明書(ROAに含まれる)に存在するIPアドレス委任拡張[RFC3779]は、ROAに含まれる各IPアドレス・プレフィックスを包含していなければならない。

ROA検証の詳細は、[RFC6482]のセクション4に記載されている。

4.2.3. ゴーストバスターズ

ゴーストバスターズ・レコードはオプションである。RPK 内の発行ポイントには、関連するゴーストバスターズ・レコードを0個以上持つことができる。CAが少なくとも1つのゴーストバスターズ・レコードを持つ場合、RPソフトウェアは、このゴーストバスターズ・レコードが[RFC6488]で定義されている署名済みオブジェクトの構文に準拠していることを検証する必要がある。

この署名済みオブジェクトのペイロードは、(厳密に)プロファイルされたvCardである。RPソフトウェアは、ゴーストバスターズのペイロードが[RFC6493]のプロファイルに準拠する形式であることを検証する必要がある。

4.2.4. BGPsecルータ証明書の検証

BGPsecルータ証明書はリソース証明書であるため、[RFC6487]に準拠する必要がある。さらに、証明書はAS識別子委任拡張([RFC6487]のセクション4.8.11)を含まなければならず、IPアドレス委任拡張([RFC6487]のセクション4.8.10)を含んではならない。BGPsecルータ証明書に使用される検証手順は、[RFC6487]のセクション7に記載されている検証手順に似ているが、[RFC8209]のセクション3で定義されている制約を使用する。

BGPsecルータで使用する暗号アルゴリズムは、[RFC8608]に記載されていることに留意すること。現在、[RFC8608]と[RFC7935]で指定されているアルゴリズムは異なっている。BGPsec RPソフトウェアは、BGPsec証明書、RPKI CA証明書、RPKI CRLの署名の検証するために必要なアルゴリズムと同様に、BGPsec署名の検証に使用するアルゴリズムをサポートする必要がある。

4.3. マニフェスト・データの利用方法

与えられた公開ポイントに対して、RPソフトウェアは[RFC6486]のセクション6.1で指定されているテストを実行し、公開ポイントでのマニフェストの状態を判断する必要がある。マニフェストは有効化無効のどちらかに分類され、有効なマニフェストは最新か古いかのどちらかである。RPは、ローカル(RP)ポリシーに従って、マニフェストの状態に基づいてマニフェストの利用方法を決定する。

マニフェストに存在しない有効なオブジェクトが公開ポイントに存在する場合、[RFC6486]はそのようなオブジェクトに関するRPの特定の動作を義務付けていない。

マニフェストが存在しない場合、RPは公開ポイントに存在するすべての有効な署名済みオブジェクトを受け入れることが期待される ([RFC6486]のセクション6.2参照)。マニフェストが古かったり無効であったりして、RPが最新の有効なマニフェストを取得する手段を持たない場合、RPはゴーストバスターズ・レコードを通じて、リポジトリ・マネージャーに連絡し、その後はローカル(RP)ポリシーに従って決定を下すことが期待される([RFC6486]のセクション6.3および6.4参照)。

4.4. ゴーストバスターズ情報をどう扱うか

RPソフトウェアは、公開ポイントで古いマニフェストまたはCRL、あるいは期限切れのCA証明書またはROAに遭遇する可能性がある。RPは、ゴーストバスターズ・レコードの情報を使って、古い/期限切れのオブジェクトが見つかった公開ポイントの管理者に連絡することが期待される。ここでの目的は、関連するCAやリポジトリ管理者に、古いオブジェクトや期限切れのオブジェクトを更新するよう促すことにある。

5. 検証済みキャッシュの配布

AS内のBGPスピーカーは、RPKIデータの(ローカル)検証済みキャッシュから検証済みのオリジンASデータとルータ/ASNデータを定期的に更新要求する。 RPは、有効なデータをBGPスピーカーに直接転送するか、検証済みデータをBGPスピーカーにプロビジョニング(セットアップ)するキャッシュ・サーバに転送する。検証済みキャッシュ・データをBGPスピーカーに配信するように設計されたプロトコルの仕様は、[RFC6810]および[RFC8210]で提供されている。

6. ローカル・コントロール

ISPは、ローカル・フィルタと追加の形式で、RPKIデータに対する例外のローカル・ビューを確立したい場合がある。例えば、ネットワーク・オペレータは、有害なアクションから経路を保護するために、ローカル・オーバーライド機能を利用したいかもしれない[RFC8211]。この機能をネットワーク・オペレータに提供するために開発されたメカニズムは、「Simplified Local Internet Number Resource Management with the RPKI (RPKIを使用した簡易ローカル・インターネット番号リソース管理) (SLURM)」と呼ばれる。ISPがSLURMを実装したい場合、そのRPシステムは[RFC8416]で指定されている指示に従うことができる。

7. セキュリティに関する考慮事項

本文書は、セキュリティに関する新たな考慮事項を紹介するものではなく、実装者向けのリソースである。RPは、RPKIプロビジョニング側とルーティング・システムをリンクし、BGPスピーカーにグローバルRPKIデータの検証済みのローカル・ビューを確立する。RPのセキュリティは、BGPメッセージの交換にとって重要である。各RPの実装では、機能停止からの回復を容易にするために、キャッシュ・バックアップ管理の提供が期待される。また、RPソフトウェアは、安全でない環境で検証済みのキャッシュの配信を保護できる安全なトランスポート(IPsec[RFC4301]など)もサポートする必要がある。本文書では、RPKIセキュリティの安全な運用に不可欠な要素である、RPKI署名済みオブジェクトに適用される多くの検証動作に焦点を当てる。

8. IANA に関する考慮事項

本文書には IANAのアクションはない。

9. 参考文献

9.1. 引用規格

[RFC3779] Lynn, C., Kent, S., and K. Seo, "X.509 Extensions for IP Addresses and AS Identifiers", RFC 3779, DOI 10.17487/RFC3779, June 2004, https://www.rfc-editor.org/info/rfc3779.

[RFC5280] Cooper, D., Santesson, S., Farrell, S., Boeyen, S., Housley, R., and W. Polk, "Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile", RFC 5280, DOI 10.17487/RFC5280, May 2008, https://www.rfc-editor.org/info/rfc5280.

[RFC6481] Huston, G., Loomans, R., and G. Michaelson, "A Profile for Resource Certificate Repository Structure", RFC 6481, DOI 10.17487/RFC6481, February 2012, https://www.rfc-editor.org/info/rfc6481.

[RFC6482] Lepinski, M., Kent, S., and D. Kong, "A Profile for Route Origin Authorizations (ROAs)", RFC 6482, DOI 10.17487/RFC6482, February 2012, https://www.rfc-editor.org/info/rfc6482.

[RFC6486] Austein, R., Huston, G., Kent, S., and M. Lepinski, "Manifests for the Resource Public Key Infrastructure (RPKI)", RFC 6486, DOI 10.17487/RFC6486, February 2012, https://www.rfc-editor.org/info/rfc6486.

[RFC6487] Huston, G., Michaelson, G., and R. Loomans, "A Profile for X.509 PKIX Resource Certificates", RFC 6487, DOI 10.17487/RFC6487, February 2012, https://www.rfc-editor.org/info/rfc6487.

[RFC6488] Lepinski, M., Chi, A., and S. Kent, "Signed Object Template for the Resource Public Key Infrastructure (RPKI)", RFC 6488, DOI 10.17487/RFC6488, February 2012, https://www.rfc-editor.org/info/rfc6488.

[RFC6489] Huston, G., Michaelson, G., and S. Kent, "Certification Authority (CA) Key Rollover in the Resource Public Key Infrastructure (RPKI)", BCP 174, RFC 6489, DOI 10.17487/RFC6489, February 2012, https://www.rfc-editor.org/info/rfc6489.

[RFC6493] Bush, R., "The Resource Public Key Infrastructure (RPKI) Ghostbusters Record", RFC 6493, DOI 10.17487/RFC6493, February 2012, https://www.rfc-editor.org/info/rfc6493.

[RFC6810] Bush, R. and R. Austein, "The Resource Public Key Infrastructure (RPKI) to Router Protocol", RFC 6810, DOI 10.17487/RFC6810, January 2013, https://www.rfc-editor.org/info/rfc6810.

[RFC6916] Gagliano, R., Kent, S., and S. Turner, "Algorithm Agility Procedure for the Resource Public Key Infrastructure (RPKI)", BCP 182, RFC 6916, DOI 10.17487/RFC6916, April 2013, https://www.rfc-editor.org/info/rfc6916.

[RFC7935] Huston, G. and G. Michaelson, Ed., "The Profile for Algorithms and Key Sizes for Use in the Resource Public Key Infrastructure", RFC 7935, DOI 10.17487/RFC7935, August 2016, https://www.rfc-editor.org/info/rfc7935.

[RFC8209] Reynolds, M., Turner, S., and S. Kent, "A Profile for BGPsec Router Certificates, Certificate Revocation Lists, and Certification Requests", RFC 8209, DOI 10.17487/RFC8209, September 2017, https://www.rfc-editor.org/info/rfc8209.

[RFC8210] Bush, R. and R. Austein, "The Resource Public Key Infrastructure (RPKI) to Router Protocol, Version 1", RFC 8210, DOI 10.17487/RFC8210, September 2017, https://www.rfc-editor.org/info/rfc8210.

[RFC8360] Huston, G., Michaelson, G., Martinez, C., Bruijnzeels, T., Newton, A., and D. Shaw, "Resource Public Key Infrastructure (RPKI) Validation Reconsidered", RFC 8360, DOI 10.17487/RFC8360, April 2018, https://www.rfc-editor.org/info/rfc8360.

[RFC8608] Turner, S. and O. Borchert, "BGPsec Algorithms, Key Formats, and Signature Formats", RFC 8608, DOI 10.17487/RFC8608, June 2019, https://www.rfc-editor.org/info/rfc8608.

[RFC8630] Huston, G., Weiler, S., Michaelson, G., Kent, S., and T. Bruijnzeels, "Resource Public Key Infrastructure (RPKI) Trust Anchor Locator", RFC 8630, DOI 10.17487/RFC8630, August 2019, https://www.rfc-editor.org/info/rfc8630.

[RFC8634] Weis, B., Gagliano, R., and K. Patel, "BGPsec Router Certificate Rollover", BCP 224, RFC 8634, DOI 10.17487/RFC8634, August 2019, https://www.rfc-editor.org/info/rfc8634.

9.2. 参考規格

[RFC4301] Kent, S. and K. Seo, "Security Architecture for the Internet Protocol", RFC 4301, DOI 10.17487/RFC4301, December 2005, https://www.rfc-editor.org/info/rfc4301.

[RFC6480] Lepinski, M. and S. Kent, "An Infrastructure to Support Secure Internet Routing", RFC 6480, DOI 10.17487/RFC6480, February 2012, https://www.rfc-editor.org/info/rfc6480.

[RFC8182] Bruijnzeels, T., Muravskiy, O., Weber, B., and R. Austein, "The RPKI Repository Delta Protocol (RRDP)", RFC 8182, DOI 10.17487/RFC8182, July 2017, https://www.rfc-editor.org/info/rfc8182.

[RFC8211] Kent, S. and D. Ma, "Adverse Actions by a Certification Authority (CA) or Repository Manager in the Resource Public Key Infrastructure (RPKI)", RFC 8211, DOI 10.17487/RFC8211, September 2017, https://www.rfc-editor.org/info/rfc8211.

[RFC8416] Ma, D., Mandelberg, D., and T. Bruijnzeels, "Simplified Local Internet Number Resource Management with the RPKI (SLURM)", RFC 8416, DOI 10.17487/RFC8416, August 2018, https://www.rfc-editor.org/info/rfc8416.

[rsync] "rsync", http://rsync.samba.org/.

謝辞

デビッド・マンデルバーグ、ウェイ・ワン、ティム・ブリュインツェルス、ジョージ・ミケルソン、オレグ・ムラフスキー、各氏のレビュー、フィードバック、編集協力に感謝する。

著者のアドレス

ディ・マ
ZDNS
4 South 4th St. Zhongguancun
Haidian
Beijing, 100190
中国
メール: madi@zdns.cn

スティーブン・ケント
独立した
メール: kent@alum.mit.edu

変更履歴

  • 2024.4.12
GitHubで編集を提案

Discussion