リソース公開鍵基盤(RPKI)、別名リソース認証は、インターネットのBGPルーティングインフラストラクチャのセキュリティ向上をサポートするために特別に設計された公開鍵基盤(PKI)フレームワークです。
RPKIは、インターネット番号リソース情報(自律システム番号やIPアドレスなど)を信頼アンカーに接続する手段を提供します。証明書の構造は、インターネット番号リソースの配布方法を反映しています。つまり、リソースはまずIANAによって地域インターネットレジストリ(RIR)に配布され、RIRはそれをローカルインターネットレジストリ(LIR)に配布し、LIRはそれを顧客に配布します。RPKIは、リソースの正当な所有者がインターネットルーティングプロトコルの動作を制御し、ルートハイジャックやその他の攻撃を防止するために使用できます。特に、RPKIは、 BGPルートオリジン検証(ROV)および自律システムプロバイダ認証(ASPA)によるボーダーゲートウェイプロトコル(BGP)のセキュリティ確保、およびセキュアネイバーディスカバリプロトコル(SEND)によるIPv6ネイバーディスカバリプロトコル(ND)のセキュリティ確保に使用されます。
RPKI アーキテクチャは RFC 6480 に文書化されています。RPKI 仕様は、RFC 6481、RFC 6484、RFC 6485、RFC 6486、RFC 6487、RFC 6488、RFC 6489、RFC 6490、RFC 6491、RFC 6492、RFC 6493 という一連の RFC に文書化されています。ROV は RFC 6482 と RFC 6483 に、SEND は RFC 6494 と RFC 6495 に文書化されています。これらの RFC は、IETFの SIDR ("Secure Inter-Domain Routing") ワーキンググループの成果物であり、[ 1 ] RFC 4593 に文書化された脅威分析に基づいています。プレフィックス発信元検証の実装は既にいくつか存在します。[ 2 ]
RPKIは、 IPアドレスとAS識別子(RFC 3779)の拡張機能を備えたX.509 PKI証明書(RFC 5280)を使用します。これにより、ローカルインターネットレジストリ(LIR)と呼ばれる地域インターネットレジストリのメンバーは、保有するインターネット番号リソースを一覧表示するリソース証明書を取得できます。この証明書にはID情報は含まれていませんが、保有者であることを検証可能な形で証明できます。リソース証明書を使用することで、LIRは、保有するプレフィックスとAS番号を使用して発信を許可したルートアナウンスに関する暗号化された証明を作成できます。これらの証明については、以下で説明します。
ルート発信元認証(ROA)[ 3 ]は、ルート発信元検証(ROV)に使用される特定のIPプレフィックスを発信する権限を持つ自律システム(AS)を示します。さらに、ASがアドバタイズする権限を持つプレフィックスの最大長を強制することもできます。暗号的に検証されたROAは検証済みROAペイロード(VRP)と呼ばれ、通常はルーティングフィルタリングを実行するためにルータに転送されます。
プレフィックスの最大長はオプション項目です。指定しない場合、ASは指定されたプレフィックスのみをアドバタイズする権限を持ちます。プレフィックスのより具体的なアナウンスは無効とみなされます。これは、集約を強制し、より具体的なプレフィックスのアナウンスによるハイジャックを防ぐための方法です。
指定されている場合、これはASがアドバタイズできる最も具体的なIPプレフィックスの長さを指定します。たとえば、IPアドレスプレフィックスが10.0.0.0 / 16で最大長が22の場合、ASは10.0.0.0 / 16以下の任意のプレフィックスをアドバタイズできますが、/ 22より具体的であってはなりません。したがって、この例では、ASは10.0.0.0 / 16、10.0.128.0 / 20、または10.0.252.0 / 22をアドバタイズできますが、10.0.255.0 / 24はアドバタイズできません。
特定の発信元ASとプレフィックスの組み合わせに対してROAが作成されると、1つ以上のルートアナウンスのRPKI有効性[ 4 ]に影響を及ぼします。それらは次のようになります。
無効な BGP アップデートは、ROA の設定ミスが原因である可能性もあることに注意してください。[ 5 ]
自律システムプロバイダ認証(ASPA)[ 6 ]は、BGP AS_PATHsにおいて自律システムの直接の上流隣接ネットワークとして表示することを許可するネットワークを規定します。これは、後述するBGPsecと比較して、BGPパス検証のよりシンプルな方法を提供します。
AS オペレーターは、BGP を介して受信した任意の AS_PATH でアップストリームとして表示される可能性のある他の ASN を指定するアテステーションを公開します。ASPA 検証には、BGP アナウンスがどこから受信されたかに応じて 2 つのバリアントがあります。[ 7 ]
BGP ASパスの先頭への追加は検証プロセスに影響を与えません。なぜなら、AS_PATH内の連続する重複AS番号は、検証プロセスの前に1つに統合されるからです。
ティア1のISPは、単一のエントリを含むASPAレコードを公開しAS0、これらのネットワークにはアップストリームがなく、それとは異なることを示唆するアナウンスは無効であることを示しています。[ 8 ]
Border Gateway Protocol Security (BGPsec) は、 RFC 8205で定義されたBorder Gateway Protocolのセキュリティ拡張であり、2017 年 9 月に公開された追加の RFC 8206 ~ 8209 で定義されています。BGPsec は、BGPsec UPDATE メッセージの受信者が受信した AS パスを暗号的に検証できるようにすることでセキュリティを提供します。[ 9 ] BGPsec は、BGP属性を新しい属性に置き換えます。[ 10 ] AS_PATHBGPsec_Path
BGPsecは、 RFC 8209で定義され、RPKIを通じて公開されるルータ証明書を使用します。検証者はこの証明書を取得し、UPDATEメッセージで受信したBGPsec署名を検証します。署名はルータが自身の秘密鍵を使用して作成し、対応するルータ証明書に含まれる公開鍵を使用して検証できます。
暗号署名の使用は、BGP アナウンスを送受信する際のルーターのリソースオーバーヘッドを大幅に増加させます。さらに、セキュリティ上の大きなメリットを得るには、BGPsec をルーターの大部分に展開する必要があります。これは、早期展開で即座にセキュリティ上のメリットが得られる ROV や ASPA とは対照的です。これらが、BGPsec がインターネットで実際に使用されていない主な理由であり、その実装がまばらである理由です。[ 11 ] 2026 年 6 月現在、インターネットの RPKI には有効なルーター証明書はゼロ件公開されています。これは、37 万件を超える ROA と数千件の ASPA と比較すると、ASPA がこの時点で完全に標準化されていないにもかかわらずです。
認証局を実行し、リソース証明書やROAなどの子オブジェクトを管理するためのオープンソースツール[ 12 ]が利用可能です。さらに、RIRはメンバーポータルでホスト型RPKIプラットフォームを提供しています。これにより、LIRはホスト型システムに依存するか、独自のソフトウェアを実行するかを選択できます。
このシステムは、RPKIオブジェクトを公開するために単一のリポジトリ公開ポイントを使用しません。代わりに、RPKIリポジトリシステムは、複数の分散型委任リポジトリ公開ポイントで構成されています。各リポジトリ公開ポイントは、1つ以上のRPKI証明書の公開ポイントに関連付けられています。実際には、これは、認証局を運営する場合、LIRはすべての暗号化資料を自ら公開することも、公開を第三者に委託することもできることを意味します。LIRがRIRが提供するホスト型システムを使用することを選択した場合、原則として公開はRIRリポジトリで行われます。
依拠当事者ソフトウェアは、 rsyncまたは RPKI リポジトリ デルタ プロトコル (RFC 8182)を使用してリポジトリ データの取得、キャッシュ、および検証を行います。 [ 13 ] 依拠当事者がリポジトリ データの完全かつ最新の状態を維持するためには、すべての公開ポイントと定期的に同期することが重要です。不完全または古いデータは、誤ったルーティング決定につながる可能性があります。[ 14 ] [ 15 ]
ROAなどの証明を検証した後、それらをBGPルーティング状態と比較し、ネットワークオペレーターの意思決定プロセスを支援することができます。これは手動で行うこともできますが、検証済みのプレフィックス発信元データは、RPKI to Router Protocol(RFC 6810)を使用してサポートされているルーターに送信することもできます。[ 16 ] Cisco Systemsは、RPKIデータセットを取得してルーター構成で使用するためのネイティブサポートを多くのプラットフォームで提供しています。[ 17 ] Juniperは、バージョン12.2以降を実行するすべてのプラットフォームでサポートを提供しています。[ 19 ] BIRDは、構成内の「RPKI」プロトコルを介してRPKI-to-Router Protocolをネイティブにサポートしており、これに基づいてROVとASPAを実行できます。Quaggaは、 BGP Secure Routing Extensions(BGP-SRx) [ 20 ]またはRTRlibに基づく完全にRFCに準拠したRPKI実装[ 21 ]を介してこの機能を取得します。 RTRlib [ 22 ]は、RTR プロトコルとプレフィックス発信元検証のオープンソース C 実装を提供します。このライブラリは、ルーティング ソフトウェアの開発者だけでなく、ネットワーク オペレーターにも役立ちます。[ 23 ]開発者は、RTRlib を BGP デーモンに統合して、実装を RPKI に拡張できます。ネットワーク オペレーターは、RTRlib を使用して監視ツールを開発できます (たとえば、キャッシュの適切な動作を確認したり、パフォーマンスを評価したりするために)。
RFC 6494は、IPv6で使用するためにRPKIを使用する近隣探索プロトコル(ND)のセキュア近隣探索プロトコル(SEND)セキュリティメカニズムの証明書検証方法を更新します。RFC 6494は、RFC 6487 RPKI証明書プロファイルを修正して利用するSEND証明書プロファイルを定義しており、このプロファイルにはRFC 3779 IPアドレス委任拡張機能が1つ含まれている必要があります。