✏️

RFC 8608: BGPsecアルゴリズム、鍵フォーマット、署名フォーマット

2024/05/22に公開

要旨

本文書は、BGPsec(ボーダー・ゲートウェイ・プロトコル・セキュリティ)で使用するアルゴリズム、アルゴリズム・パラメータ、非対称鍵フォーマット、非対称鍵サイズ、署名フォーマットを規定する。本文書は、文書用と実験のアルゴリズムIDを追加して修正することによって、RFC 7935 (「リソース公開鍵基盤で使用するアルゴリズムと鍵のサイズのプロファイル」)を更新し、RFC 8208 (「BGPsecアルゴリズム、鍵フォーマット、署名フォーマット」)を廃止し、未割り当てのアルゴリズムIDの範囲を完全に埋めるように修正し、読みやすいように文書を再構成した。

本文書には、BGPsec UPDATEメッセージの例と、メッセージの生成に使用される秘密鍵、及びこれらの署名の検証するために必要な証明書も含まれている。

本文書の位置付け

本文書は、インターネット標準化過程の文書である。

この文書はInternet Engineering Task Force (IETF)の成果物である。IETFコミュニティのコンセンサスを表すものである。公開レビューを受けており、Internet Engineering Steering Group (IESG)によって公開が承認されている。インターネット標準の詳細については、RFC 7841のセクション 2を参照のこと。

本文書の現在のステータス、正誤表、および文書に対するフィードバックの提供方法に関する情報は、https://www.rfc-editor.org/info/rfc8608 で入手できる。

著作権表示

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

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

1. はじめに

本文書は以下を規定する。

  • デジタル署名アルゴリズムとパラメータ、
  • ハッシュ・アルゴリズムとパラメータ、
  • アルゴリズム識別子の割り当てと分類、
  • 公開鍵と秘密鍵のフォーマット、及び
  • 署名フォーマット

は、リソース公開鍵基盤(RPKI)認証局(CA)及びBGPsec(ボーダー・ゲートウェイ・プロトコル・セキュリティ)スピーカー(ルータ)が使用する。CAは、BGPsecルータ証明書[RFC8209]の要求を処理するときにこれらのアルゴリズムを使用する。BGPsecルータがこれらのアルゴリズムを使用する例としては、BGPsec証明書の要求[RFC8209]、BGPsec UPDATEメッセージの署名[RFC8205]、BGPsec UPDATEメッセージの署名検証[RFC8205]などがある。

本文書は[RFC7935]を更新し、a) BGPsecスピーカーのみが発行するBGPsec証明書要求のための様々なアルゴリズム、b) 指定されたBGPsec署名アルゴリズムに必要な、BGPsec証明書用の様々なサブジェクト公開鍵情報フォーマット、c) 指定されたBGPsec署名アルゴリズムに必要な、BGPsec署名の様々な署名フォーマットのサポートを追加する。BGPsec証明書は、[RFC8209]で定義されているBGPsec拡張鍵使用法を使用することで、他のRPKI証明書と区別する。BGPsecは、ルータ間で交換されるプロトコルのサイズを最小限に抑えるために、他のRPKIとは異なるアルゴリズム[RFC6090] [DSS]を使用する。

付録A(非規範的)は、BGPsec UPDATEメッセージの例と、メッセージの生成に使用された秘密鍵、及び署名検証に必要な証明書を含む。

1.1. 用語

本文書のキーワード「MUST」、「MUST NOT」、「REQUIRED」、「SHALL」、「SHALL NOT」、「SHOULD」、「SHOULD NOT」、「RECOMMENDED」、「NOT RECOMMENDED」、「MAY」、および「OPTIONAL」は、ここに示すように、すべて大文字で表示される場合に限り、 BCP 14 [RFC2119] [RFC8174]の記述に従って解釈される。

1.2. RFC 8208からの変更点

本セクションでは、[RFC8208]と本文書の間の重要な変更点を説明する。

  • アルゴリズムIDタイプを含むセクション2.1を追加した。また、これらのIDの解釈についても説明する。

  • 対応するアルゴリズム・スイート識別子の値に合わせて、セクション2と3を再構成した。

  • 未割り当てのアルゴリズム・スイート識別子値の範囲を修正した。

  • 文書用アルゴリズム・スイート識別子の値を追加した。

  • 実験アルゴリズム・スイート識別子の値を追加した。

  • 付録AのIPv6の例のネクストホップIPを、プライベート使用のIPv6アドレスを使用するように変更した。

2. アルゴリズム

CA証明書、BGPsecルータ証明書、及び証明書失効リスト(CRL)の署名を計算するために使用するアルゴリズムは、[RFC7935]のセクション2で規定されているとおりである。本セクションでは、BGPsec[RFC8205] [DSS]で使用するアルゴリズムについて説明する。例えば、これらのアルゴリズムは、BGPsecルータがBGPsec UPDATEメッセージに署名し、検証するために使用される。どのアルゴリズムが使用しているかを識別するために、BGPsec UPDATEメッセージは、BGPsec UPDATEメッセージの各Signature_Blockに対応するアルゴリズムIDを含む。

2.1. アルゴリズムIDの種類

BGPsec UPDATEメッセージのアルゴリズムは、Signature_Block 内のアルゴリズム・スイート識別子フィールド(アルゴリズムID)によって識別する([RFC8205]のセクション3.2を参照)。

本文書では、以下の5種類のアルゴリズムIDを規定する:

  • 予約済みアルゴリズムID
    予約済みアルゴリズムIDは、値0x00 (0)と0xFF (255)である。これらのIDは、 Signature_Blockで使用してはならず(MUST NOT)、遭遇した場合、ルータは BGPsec UPDATEメッセージを不正なものとして扱わなければならない(MUST)[RFC4271]。

  • 署名アルゴリズムID
    署名アルゴリズムは、本文書のセクション2.2で定義する。署名アルゴリズムを使用したBGPsec UPDATE署名と検証の処理については、[RFC8205]のセクション4.2と5.2で詳細に説明する。

  • 未割り当てのアルゴリズム ID
    このタイプのアルゴリズムIDは将来の割り当てに自由に使用でき、アルゴリズムが正式に割り当てられるまで使用してはならない(MUST NOT)(セクション7を参照)。ルータが BGPsec UPDATEメッセージのSignature_Blockの1つで未割り当てのアルゴリズムIDに遭遇した場合、ルータは[RFC8205]のセクション5.2に規定しているように、未サポートのアルゴリズムとして、Signature_Blockを処理する必要がある(SHOULD)。

  • 実験アルゴリズムID
    実験アルゴリズムIDは0xF7 (247)から0xFA (250)の範囲である。実験が展開例を正確に記述できるようにするには、公に割り当てられたアルゴリズムIDの使用は不適切であり、予約された実験アルゴリズムIDのブロックが必要である。これにより、実験が展開されたネットワークで割り当てられたアルゴリズムIDと衝突しないことが保証され、運用システム上でルーティング要素の文字通りの設定を実行するための実験が不適切に使用されることによる、ネットワークの運用上の完全性に対するリスクを軽減する。実験ネットワークの外部でこのタイプのアルゴリズムIDに遭遇したルータは、[RFC8205]のセクション5.2で規定しているように、サポートされていないアルゴリズムと同じように処理する必要がある(SHOULD)。

  • 文書用アルゴリズムID
    文書用アルゴリズムIDは0xFB (251)から0xFE (254)の範囲である。文書が展開例を正確に説明できるようにするため、公に割り当てられたアルゴリズムIDの使用は不適切であり、文書用アルゴリズムIDの予約ブロックが必要である。これにより、文書が展開されたネットワークで割り当てられたアルゴリズムIDと衝突しないことが保証され、運用システム上でルーティング要素の文字通りの設定を実行するための文書が不適切な使用されることによる、ネットワークの運用上の完全性に対するリスクを軽減する。このタイプのアルゴリズムIDに遭遇したルータは、[RFC8205]のセクション5.2で規定しているように、サポートされていないアルゴリズムと同じように処理する必要がある(SHOULD)。

2.2. 署名アルゴリズム

2.2.1. アルゴリズムID 0x01 (1) - (ECDSA P-256)

  • 使用する署名アルゴリズムは、曲線P-256[RFC6090] [DSS]の楕円曲線デジタル署名アルゴリズム(ECDSA)でなければならない(MUST)。

  • 使用するハッシュ・アルゴリズムはSHA-256[SHS]でなければならない(MUST)。

ハッシュ・アルゴリズムは、証明書やBGPsec UPDATEメッセージではそれ自体では識別しない。ハッシュ・アルゴリズムは、以下のようにハッシュ・アルゴリズムとデジタル署名アルゴリズムを組み合わせたOIDで表される。

  • ecdsa-with-SHA256 OID[RFC5480]は、公開鍵暗号化標準#10(PKCS #10)のsignatureAlgorithmフィールド[RFC2986]または証明書要求メッセージ・フォーマット(CRMF)のPOPOSigningKeyアルゴリズム・フィールド[RFC4211]に記載しなければならない(MUST)。OIDがどこに配置されるかは、生成される証明書要求フォーマットに依存する。

  • BGPsec UPDATEメッセージでは、SHA-256アルゴリズム・スイート識別子値 0x1を持つECDSA(セクション7を参照)がSignature_Blockリストのアルゴリズム・スイート識別子フィールドを含む。

3. 非対称鍵ペアのフォーマット

CA証明書、BGPsecルータ証明書、及びCRLの署名を計算するために使用する鍵フォーマットは、[RFC7935]のセクション3に規定しているとおりである。本セクションでは、BGPsecルータ証明書要求及びBGPsecルータ証明書に含まれる鍵フォーマットを取り上げる。

3.1. アルゴリズムID 0x01 (1)の非対称鍵ペア - (ECDSA P-256)

証明書要求とBGPsec UPDATEメッセージの署名を計算するために使用するECDSA秘密鍵は、P-256曲線ドメイン・パラメータ[RFC5480]と関連付けなければならない(MUST)。公開鍵ペアは非圧縮形式を使用しなければならない(MUST)。

3.1.1. 公開鍵のフォーマット

サブジェクトの公開鍵は、subjectPublicKeyInfo[RFC5280]を含む。これは、algorithmとsubjectPublicKeyという2つのサブフィールドを持つ。構造体とそのサブ構造体の値を以下に示す:

  • algorithm(AlgorithmIdentifierタイプ): [RFC5480]のセクション2.1.1で規定しているように、algorithmフィールドでid-ecPublicKey OIDを使用しなければならない(MUST)。関連パラメータの値は、[RFC5480]のセクション2.1.1.1で規定しているように、secp256r1でなければならない(MUST)。

  • subjectPublicKey: ECPointは、[RFC5480]のセクション2.2で規定しているように、証明書のsubjectPublicKeyフィールドを符号化するために使用しなければならない(MUST)。

3.1.2. 秘密鍵のフォーマット

ローカル・ポリシーによって秘密鍵のフォーマットが決まる。

4. 署名フォーマット

証明書とCRLの署名フィールドの構造は、[RFC7935]のセクション4で規定しているとおりでなければならない(MUST)。これは、他のRPKI証明書で使用されるのと同じフォーマットである。証明書要求とBGPsec UPDATEメッセージの署名フィールドの構造は、[RFC3279]のセクション2.2.3で規定するとおりでなければならない(MUST)。

5. 追加要件

BGPsecは、許容可能なレベルの暗号セキュリティを維持するため、鍵サイズの更新と、異なる署名とハッシュ・アルゴリズム・セットの採用が、時間の経過とともに必要になると想定される。このプロファイルは、そのような将来の要件を指定するために、必要に応じて更新する必要がある。

このような鍵サイズとアルゴリズムの移行を実装するための推奨手順は、[RFC6916]で規定している。

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

[RFC3279]、[RFC5480]、[RFC6090]、[RFC7935]、[RFC8209]のセキュリティに関する考慮事項は、証明書にも適用する。[RFC3279]、[RFC6090]、[RFC7935]、[RFC8209]のセキュリティに関する考慮事項は、証明書要求にも適用する。[RFC3279]、[RFC6090]、[RFC8205]のセキュリティに関する考慮事項は、BGPsec UPDATEメッセージにも適用する。この仕様の結果として、新しいセキュリティの考慮事項を導入することはない。

7. IANA に関する考慮事項

Internet Assigned Numbers Authority (IANA)は、リソース公開鍵基盤(RPKI)グループに「BGPsecアルゴリズム・スイート・レジストリ」を作成した。IANAによって割り当てられた1オクテットの「BGPsecアルゴリズム・スイート・レジストリ」識別子は、BGPsec Signature_Blockリストのアルゴリズム・スイート識別子フィールドで使用されるダイジェスト・アルゴリズムと署名アルゴリズムを識別する。

[RFC8208]に従い、IANAはダイジェスト・アルゴリズムSHA-256[SHS]とP-256曲線上の署名アルゴリズムECDSA[RFC6090] [DSS]の1つのアルゴリズム・スイート識別子をに登録した。この識別子はまだ有効であり、IANAは本文書を参照するように登録を更新した。

IANA は、「未割り当て」アドレス空間の範囲を「0x2-0xEF」から「0x02-0xF6」に変更した。

アルゴリズム・スイート識別子 ダイジェスト・アルゴリズム 署名アルゴリズム 仕様
0x02-0xF6 未割り当て 未割り当て

さらに、IANAは「実験」と「文書」用に以下のアドレス空間を登録した:

アルゴリズム・スイート識別子 ダイジェスト・アルゴリズム 署名アルゴリズム 仕様
0xF7-0xFA 実験 実験 本文書
0xFB-0xFE 文書 文書 本文書

RPKIグループの「BGPsecアルゴリズム・スイート」レジストリには、以下の値が含まれるようになった:

アルゴリズム・スイート識別子 ダイジェスト・アルゴリズム 署名アルゴリズム 仕様
0x00 予約済み 予約済み 本文書
0x01 文書 文書 [SHS]、[DSS]、[RFC6090]、本文書
0x02-0xF6 未割り当て 未割り当て 本文書
0xF7-0xFA 実験 実験 本文書
0xFB-0xFE 文書 文書 本文書
0xFF 予約済み 予約済み 本文書

将来の割り当ては、[RFC8126]で定義されている標準化対応プロセスを使用して行われる。割り当ては、1オクテットのアルゴリズム・スイート識別子の値と、関連するダイジェスト・アルゴリズム名及び署名アルゴリズム名で構成される。

8. 参考文献

8.1. 引用規約

[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997, <https://www.rfc-editor.org/info/rfc2119>.

[RFC2986] Nystrom, M. and B. Kaliski, "PKCS #10: Certification Request Syntax Specification Version 1.7", RFC 2986, DOI 10.17487/RFC2986, November 2000, <https://www.rfc-editor.org/info/rfc2986>.

[RFC3279] Bassham, L., Polk, W., and R. Housley, "Algorithms and Identifiers for the Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile", RFC 3279, DOI 10.17487/RFC3279, April 2002, <https://www.rfc-editor.org/info/rfc3279>.

[RFC4211] Schaad, J., "Internet X.509 Public Key Infrastructure Certificate Request Message Format (CRMF)", RFC 4211, DOI 10.17487/RFC4211, September 2005, <https://www.rfc-editor.org/info/rfc4211>.

[RFC4271] Rekhter, Y., Ed., Li, T., Ed., and S. Hares, Ed., "A Border Gateway Protocol 4 (BGP-4)", RFC 4271, DOI 10.17487/RFC4271, January 2006, <https://www.rfc-editor.org/info/rfc4271>.

[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>.

[RFC5480] Turner, S., Brown, D., Yiu, K., Housley, R., and T. Polk, "Elliptic Curve Cryptography Subject Public Key Information", RFC 5480, DOI 10.17487/RFC5480, March 2009, <https://www.rfc-editor.org/info/rfc5480>.

[RFC6090] McGrew, D., Igoe, K., and M. Salter, "Fundamental Elliptic Curve Cryptography Algorithms", RFC 6090, DOI 10.17487/RFC6090, February 2011, <https://www.rfc-editor.org/info/rfc6090>.

[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>.

[RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for Writing an IANA Considerations Section in RFCs", BCP 26, RFC 8126, DOI 10.17487/RFC8126, June 2017, <https://www.rfc-editor.org/info/rfc8126>.

[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, May 2017, <https://www.rfc-editor.org/info/rfc8174>.

[RFC8205] Lepinski, M., Ed. and K. Sriram, Ed., "BGPsec Protocol Specification", RFC 8205, DOI 10.17487/RFC8205, September 2017, <https://www.rfc-editor.org/info/rfc8205>.

[RFC8208] Turner, S. and O. Borchert, "BGPsec Algorithms, Key Formats, and Signature Formats", RFC 8208, DOI 10.17487/RFC8208, September 2017, <https://www.rfc-editor.org/info/rfc8208>.

[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>.

[DSS] National Institute of Standards and Technology, "Digital Signature Standard (DSS)", NIST FIPS Publication 186-4, DOI 10.6028/NIST.FIPS.186-4, July 2013, <https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-4.pdf>.

[SHS] National Institute of Standards and Technology, "Secure Hash Standard (SHS)", NIST FIPS Publication 180-4, DOI 10.6028/NIST.FIPS.180-4, August 2015, <https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf>.

8.2. 参考規約

[RFC5398] Huston, G., "Autonomous System (AS) Number Reservation for Documentation Use", RFC 5398, DOI 10.17487/RFC5398, December 2008, <https://www.rfc-editor.org/info/rfc5398>.

[RFC6979] Pornin, T., "Deterministic Usage of the Digital Signature Algorithm (DSA) and Elliptic Curve Digital Signature Algorithm (ECDSA)", RFC 6979, DOI 10.17487/RFC6979, August 2013, <https://www.rfc-editor.org/info/rfc6979>.

付録A. 例

A.1. トポロジーと実験の説明

トポロジー:

AS(64496)----AS(65536)----AS(65537)

アナウンスするプレフィックス:

AS(64496)、192.0.2.0/24、2001:db8::/32

この例で使用する署名アルゴリズムはECDSA P-256で、本文書のセクション7で規定しているアルゴリズム・スイート識別子ID 0x01 (1)を使用する。

A.2. 鍵

この例では、結果を決定論的にするため、ECDSAアルゴリズムに静的なkを与えた。

すべての署名操作に使用するkは、[RFC6979]の付録A.2.5「SHA-256による署名、message = 'sample'」から取得した。

注: 以下の証明書は有効期限が切れているが、本文書の制約の範囲内では引き続き使用できる。

k = A6E3C57DD01ABE90086538398355DD4C3B17AA873382B0F24D6129493D8AAD60

AS64496の鍵:

SKI: AB4D910F55CAE71A215EF3CAFE3ACC45B5EEC154

秘密鍵:
x = D8AA4DFBE2478F86E88A7451BF075565709C575AC1C136D081C540254CA440B9

公開鍵:
Ux = 7391BABB92A0CB3BE10E59B19EBFFB214E04A91E0CBA1B139A7D38D90F77E55A
Uy = A05B8E695678E0FA16904B55D9D4F5C0DFC58895EE50BC4F75D205A25BD36FF5

OpenSSL 1.0.1e-fipsを使用したルータ鍵証明書の例2013年2月11日

Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 38655612 (0x24dd67c)
    Signature Algorithm: ecdsa-with-SHA256
        Issuer: CN=ROUTER-0000FBF0
        Validity
            Not Before: Jan  1 05:00:00 2017 GMT
            Not After : Jul  1 05:00:00 2018 GMT
        Subject: CN=ROUTER-0000FBF0
        Subject Public Key Info:
            Public Key Algorithm: id-ecPublicKey
                Public-Key: (256 bit)
                pub:
                    04:73:91:ba:bb:92:a0:cb:3b:e1:0e:59:b1:9e:bf:
                    fb:21:4e:04:a9:1e:0c:ba:1b:13:9a:7d:38:d9:0f:
                    77:e5:5a:a0:5b:8e:69:56:78:e0:fa:16:90:4b:55:
                    d9:d4:f5:c0:df:c5:88:95:ee:50:bc:4f:75:d2:05:
                    a2:5b:d3:6f:f5
                ASN1 OID: prime256v1
        X509v3 extensions:
            X509v3 Key Usage:
                Digital Signature
            X509v3 Subject Key Identifier:
                AB:4D:91:0F:55:CA:E7:1A:21:5E:
                F3:CA:FE:3A:CC:45:B5:EE:C1:54
            X509v3 Extended Key Usage:
                1.3.6.1.5.5.7.3.30
            sbgp-autonomousSysNum: critical
                Autonomous System Numbers:
                  64496
                Routing Domain Identifiers:
                  inherit

    Signature Algorithm: ecdsa-with-SHA256
         30:44:02:20:07:b7:b4:6a:5f:a4:f1:cc:68:36:39:03:a4:83:
         ec:7c:80:02:d2:f6:08:9d:46:b2:ec:2a:7b:e6:92:b3:6f:b1:
         02:20:00:91:05:4a:a1:f5:b0:18:9d:27:24:e8:b4:22:fd:d1:
         1c:f0:3d:b1:38:24:5d:64:29:35:28:8d:ee:0c:38:29

-----BEGIN CERTIFICATE-----
MIIBiDCCAS+gAwIBAgIEAk3WfDAKBggqhkjOPQQDAjAaMRgwFgYDVQQDDA9ST1VU
RVItMDAwMEZCRjAwHhcNMTcwMTAxMDUwMDAwWhcNMTgwNzAxMDUwMDAwWjAaMRgw
FgYDVQQDDA9ST1VURVItMDAwMEZCRjAwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNC
AARzkbq7kqDLO+EOWbGev/shTgSpHgy6GxOafTjZD3flWqBbjmlWeOD6FpBLVdnU
9cDfxYiV7lC8T3XSBaJb02/1o2MwYTALBgNVHQ8EBAMCB4AwHQYDVR0OBBYEFKtN
kQ9VyucaIV7zyv46zEW17sFUMBMGA1UdJQQMMAoGCCsGAQUFBwMeMB4GCCsGAQUF
BwEIAQH/BA8wDaAHMAUCAwD78KECBQAwCgYIKoZIzj0EAwIDRwAwRAIgB7e0al+k
8cxoNjkDpIPsfIAC0vYInUay7Cp75pKzb7ECIACRBUqh9bAYnSck6LQi/dEc8D2x
OCRdZCk1KI3uDDgp
-----END CERTIFICATE-----

AS(65536)の鍵:

SKI: 47F23BF1AB2F8A9D26864EBBD8DF2711C74406EC

秘密鍵:
x = 6CB2E931B112F24554BCDCAAFD9553A9519A9AF33C023B60846A21FC95583172

公開鍵:
Ux = 28FC5FE9AFCF5F4CAB3F5F85CB212FC1E9D0E0DBEAEE425BD2F0D3175AA0E989
Uy = EA9B603E38F35FB329DF495641F2BA040F1C3AC6138307F257CBA6B8B588F41F

OpenSSL 1.0.1e-fipsを使用したルータ鍵証明書の例2013年2月11日

Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 3752143940 (0xdfa52c44)
    Signature Algorithm: ecdsa-with-SHA256
        Issuer: CN=ROUTER-00010000
        Validity
            Not Before: Jan  1 05:00:00 2017 GMT
            Not After : Jul  1 05:00:00 2018 GMT
        Subject: CN=ROUTER-00010000
        Subject Public Key Info:
            Public Key Algorithm: id-ecPublicKey
                Public-Key: (256 bit)
                pub:
                    04:28:fc:5f:e9:af:cf:5f:4c:ab:3f:5f:85:cb:21:
                    2f:c1:e9:d0:e0:db:ea:ee:42:5b:d2:f0:d3:17:5a:
                    a0:e9:89:ea:9b:60:3e:38:f3:5f:b3:29:df:49:56:
                    41:f2:ba:04:0f:1c:3a:c6:13:83:07:f2:57:cb:a6:
                    b8:b5:88:f4:1f
                ASN1 OID: prime256v1
        X509v3 extensions:
            X509v3 Key Usage:
                Digital Signature
            X509v3 Subject Key Identifier:
                47:F2:3B:F1:AB:2F:8A:9D:26:86:
                4E:BB:D8:DF:27:11:C7:44:06:EC
            X509v3 Extended Key Usage:
                1.3.6.1.5.5.7.3.30
            sbgp-autonomousSysNum: critical
                Autonomous System Numbers:
                  65536
                Routing Domain Identifiers:
                  inherit

    Signature Algorithm: ecdsa-with-SHA256
         30:45:02:21:00:8c:d9:f8:12:96:88:82:74:03:a1:82:82:18:
         c5:31:00:ee:35:38:e8:fa:ae:72:09:fe:98:67:01:78:69:77:
         8c:02:20:5f:ee:3a:bf:10:66:be:28:d3:b3:16:a1:6b:db:66:
         21:99:ed:a6:e4:ad:64:3c:ba:bf:44:fb:cb:b7:50:91:74

-----BEGIN CERTIFICATE-----
MIIBijCCATCgAwIBAgIFAN+lLEQwCgYIKoZIzj0EAwIwGjEYMBYGA1UEAwwPUk9V
VEVSLTAwMDEwMDAwMB4XDTE3MDEwMTA1MDAwMFoXDTE4MDcwMTA1MDAwMFowGjEY
MBYGA1UEAwwPUk9VVEVSLTAwMDEwMDAwMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcD
QgAEKPxf6a/PX0yrP1+FyyEvwenQ4Nvq7kJb0vDTF1qg6Ynqm2A+OPNfsynfSVZB
8roEDxw6xhODB/JXy6a4tYj0H6NjMGEwCwYDVR0PBAQDAgeAMB0GA1UdDgQWBBRH
8jvxqy+KnSaGTrvY3ycRx0QG7DATBgNVHSUEDDAKBggrBgEFBQcDHjAeBggrBgEF
BQcBCAEB/wQPMA2gBzAFAgMBAAChAgUAMAoGCCqGSM49BAMCA0gAMEUCIQCM2fgS
loiCdAOhgoIYxTEA7jU46Pqucgn+mGcBeGl3jAIgX+46vxBmvijTsxaha9tmIZnt
puStZDy6v0T7y7dQkXQ=
-----END CERTIFICATE-----

A.3. BGPsec IPv4

AS(65536)からAS(65537)へのBGPsec IPv4 UPDATE:

BGPsec UPDATEのバイナリ形式 (TCP-DUMP):

FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
01 03 02 00 00 00 EC 40 01 01 02 80 04 04 00 00
00 00 80 0E 0D 00 01 01 04 C6 33 64 64 00 18 C0
00 02 90 1E 00 CD 00 0E 01 00 00 01 00 00 01 00
00 00 FB F0 00 BF 01 47 F2 3B F1 AB 2F 8A 9D 26
86 4E BB D8 DF 27 11 C7 44 06 EC 00 48 30 46 02
21 00 EF D4 8B 2A AC B6 A8 FD 11 40 DD 9C D4 5E
81 D6 9D 2C 87 7B 56 AA F9 91 C3 4D 0E A8 4E AF
37 16 02 21 00 90 F2 C1 29 AB B2 F3 9B 6A 07 96
3B D5 55 A8 7A B2 B7 33 3B 7B 91 F1 66 8F D8 61
8C 83 FA C3 F1 AB 4D 91 0F 55 CA E7 1A 21 5E F3
CA FE 3A CC 45 B5 EE C1 54 00 48 30 46 02 21 00
EF D4 8B 2A AC B6 A8 FD 11 40 DD 9C D4 5E 81 D6
9D 2C 87 7B 56 AA F9 91 C3 4D 0E A8 4E AF 37 16
02 21 00 8E 21 F6 0E 44 C6 06 6C 8B 8A 95 A3 C0
9D 3A D4 37 95 85 A2 D7 28 EE AD 07 A1 7E D7 AA
05 5E CA

AS(64496)からAS(65536)への署名

Digest: 21 33 E5 CA A0 26 BE 07 3D 9C 1B 4E FE B9 B9 77
9F 20 F8 F5 DE 29 FA 98 40 00 9F 60 47 D0 81 54
Signature: 30 46 02 21 00 EF D4 8B 2A AC B6 A8 FD 11 40 DD
9C D4 5E 81 D6 9D 2C 87 7B 56 AA F9 91 C3 4D 0E
A8 4E AF 37 16 02 21 00 8E 21 F6 0E 44 C6 06 6C
8B 8A 95 A3 C0 9D 3A D4 37 95 85 A2 D7 28 EE AD
07 A1 7E D7 AA 05 5E CA

AS(65536)からAS(65537)への署名

Digest: 01 4F 24 DA E2 A5 21 90 B0 80 5C 60 5D B0 63 54
22 3E 93 BA 41 1D 3D 82 A3 EC 26 36 52 0C 5F 84
Signature: 30 46 02 21 00 EF D4 8B 2A AC B6 A8 FD 11 40 DD
9C D4 5E 81 D6 9D 2C 87 7B 56 AA F9 91 C3 4D 0E
A8 4E AF 37 16 02 21 00 90 F2 C1 29 AB B2 F3 9B
6A 07 96 3B D5 55 A8 7A B2 B7 33 3B 7B 91 F1 66
8F D8 61 8C 83 FA C3 F1

人間が判読できる出力は、bgpsecトラフィック・ジェネレータであるbgpsec-ioを使用して生成し、Wiresharkライクな出力を使用する。

UPDATEメッセージを送信する

  +--marker: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
  +--length: 259
  +--type: 2 (UPDATE)
  +--withdrawn_routes_length: 0
  +--total_path_attr_length: 236
     +--ORIGIN: INCOMPLETE (4 bytes)
     |  +--Flags: 0x40 (Well-Known, Transitive, Complete)
     |  +--Type Code: ORIGIN (1)
     |  +--Length: 1 byte
     |  +--Origin: INCOMPLETE (1)
     +--MULTI_EXIT_DISC (7 bytes)
     |  +--Flags: 0x80 (Optional, Non-transitive, Complete)
     |  +--Type Code: MULTI_EXIT_DISC (4)
     |  +--Length: 4 bytes
     |  +--data: 00 00 00 00
     +--MP_REACH_NLRI (16 bytes)
     |  +--Flags: 0x80 (Optional, Non-transitive, Complete)
     |  +--Type Code: MP_REACH_NLRI (14)
     |  +--Length: 13 bytes
     |  +--Address family: IPv4 (1)
     |  +--Subsequent address family identifier: Unicast (1)
     |  +--Next hop network address: (4 bytes)
     |  |  +--Next hop: 198.51.100.100
     |  +--Subnetwork points of attachment: 0
     |  +--Network layer reachability information: (4 bytes)
     |     +--192.0.2.0/24
     |     +--MP Reach NLRI prefix length: 24
     |     +--MP Reach NLRI IPv4 prefix: 192.0.2.0
     +--BGPSEC Path Attribute (209 bytes)
        +--Flags: 0x90 (Optional, Complete, Extended Length)
        +--Type Code: BGPSEC Path Attribute (30)
        +--Length: 205 bytes
        +--Secure Path (14 bytes)
        |  +--Length: 14 bytes
        |  +--Secure Path Segment: (6 bytes)
        |  |  +--pCount: 1
        |  |  +--Flags: 0
        |  |  +--AS number: 65536 (1.0)
        |  +--Secure Path Segment: (6 bytes)
        |     +--pCount: 1
        |     +--Flags: 0
        |     +--AS number: 64496 (0.64496)
        +--Signature Block (191 bytes)
           +--Length: 191 bytes
           +--Algo ID: 1
           +--Signature Segment: (94 bytes)
           |  +--SKI: 47F23BF1AB2F8A9D26864EBBD8DF2711C74406EC
           |  +--Length: 72 bytes
           |  +--Signature: 3046022100EFD48B   2AACB6A8FD1140DD
           |                9CD45E81D69D2C87   7B56AAF991C34D0E
           |                A84EAF3716022100   90F2C129ABB2F39B
           |                6A07963BD555A87A   B2B7333B7B91F166
           |                8FD8618C83FAC3F1
           +--Signature Segment: (94 bytes)
              +--SKI: AB4D910F55CAE71A215EF3CAFE3ACC45B5EEC154
              +--Length: 72 bytes
              +--Signature: 3046022100EFD48B   2AACB6A8FD1140DD
                            9CD45E81D69D2C87   7B56AAF991C34D0E
                            A84EAF3716022100   8E21F60E44C6066C
                            8B8A95A3C09D3AD4   379585A2D728EEAD
                            07A17ED7AA055ECA

A.4. BGPsec IPv6

AS(65536)からAS(65537)へのBGPsec IPv6 UPDATE:

BGP/BGPsec UPDATE (TCP-DUMP)のバイナリ形式:

FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
01 10 02 00 00 00 F9 40 01 01 02 80 04 04 00 00
00 00 80 0E 1A 00 02 01 10 20 01 00 10 00 00 00
00 00 00 00 00 C6 33 64 64 00 20 20 01 0D B8 90
1E 00 CD 00 0E 01 00 00 01 00 00 01 00 00 00 FB
F0 00 BF 01 47 F2 3B F1 AB 2F 8A 9D 26 86 4E BB
D8 DF 27 11 C7 44 06 EC 00 48 30 46 02 21 00 EF
D4 8B 2A AC B6 A8 FD 11 40 DD 9C D4 5E 81 D6 9D
2C 87 7B 56 AA F9 91 C3 4D 0E A8 4E AF 37 16 02
21 00 D1 B9 4F 62 51 04 6D 21 36 A1 05 B0 F4 72
7C C5 BC D6 74 D9 7D 28 E6 1B 8F 43 BD DE 91 C3
06 26 AB 4D 91 0F 55 CA E7 1A 21 5E F3 CA FE 3A
CC 45 B5 EE C1 54 00 48 30 46 02 21 00 EF D4 8B
2A AC B6 A8 FD 11 40 DD 9C D4 5E 81 D6 9D 2C 87
7B 56 AA F9 91 C3 4D 0E A8 4E AF 37 16 02 21 00
E2 A0 2C 68 FE 53 CB 96 93 4C 78 1F 5A 14 A2 97
19 79 20 0C 91 56 ED F8 55 05 8E 80 53 F4 AC D3

AS(64496)からAS(65536)への署名:

Digest: 8A 0C D3 E9 8E 55 10 45 82 1D 80 46 01 D6 55 FC
52 11 89 DF 4D B0 28 7D 84 AC FC 77 55 6D 06 C7
Signature: 30 46 02 21 00 EF D4 8B 2A AC B6 A8 FD 11 40 DD
9C D4 5E 81 D6 9D 2C 87 7B 56 AA F9 91 C3 4D 0E
A8 4E AF 37 16 02 21 00 E2 A0 2C 68 FE 53 CB 96
93 4C 78 1F 5A 14 A2 97 19 79 20 0C 91 56 ED F8
55 05 8E 80 53 F4 AC D3

AS(65536)からAS(65537)への署名:

Digest: 44 49 EC 70 8D EC 5C 85 00 C2 17 8C 72 FE 4C 79
FF A9 3C 95 31 61 01 2D EE 7E EE 05 46 AF 5F D0
Signature: 30 46 02 21 00 EF D4 8B 2A AC B6 A8 FD 11 40 DD
9C D4 5E 81 D6 9D 2C 87 7B 56 AA F9 91 C3 4D 0E
A8 4E AF 37 16 02 21 00 D1 B9 4F 62 51 04 6D 21
36 A1 05 B0 F4 72 7C C5 BC D6 74 D9 7D 28 E6 1B
8F 43 BD DE 91 C3 06 26

人間が判読できる出力は、bgpsecトラフィック・ジェネレータであるbgpsec-ioを使用して生成し、Wiresharkライクな出力を使用する。

UPDATEメッセージを送信する

  +--marker: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
  +--length: 272
  +--type: 2 (UPDATE)
  +--withdrawn_routes_length: 0
  +--total_path_attr_length: 249
     +--ORIGIN: INCOMPLETE (4 bytes)
     |  +--Flags: 0x40 (Well-Known, Transitive, Complete)
     |  +--Type Code: ORIGIN (1)
     |  +--Length: 1 byte
     |  +--Origin: INCOMPLETE (1)
     +--MULTI_EXIT_DISC (7 bytes)
     |  +--Flags: 0x80 (Optional, Non-transitive, Complete)
     |  +--Type Code: MULTI_EXIT_DISC (4)
     |  +--Length: 4 bytes
     |  +--data: 00 00 00 00
     +--MP_REACH_NLRI (29 bytes)
     |  +--Flags: 0x80 (Optional, Non-transitive, Complete)
     |  +--Type Code: MP_REACH_NLRI (14)
     |  +--Length: 26 bytes
     |  +--Address family: IPv6 (2)
     |  +--Subsequent address family identifier: Unicast (1)
     |  +--Next hop network address: (16 bytes)
     |  |  +--Next hop: fd00:0000:0000:0000:0000:0000:c633:6464
     |  +--Subnetwork points of attachment: 0
     |  +--Network layer reachability information: (5 bytes)
     |     +--2001:db8::/32
     |     +--MP Reach NLRI prefix length: 32
     |     +--MP Reach NLRI IPv6 prefix: 2001:db8::
     +--BGPSEC Path Attribute (209 bytes)
        +--Flags: 0x90 (Optional, Complete, Extended Length)
        +--Type Code: BGPSEC Path Attribute (30)
        +--Length: 205 bytes
        +--Secure Path (14 bytes)
        |  +--Length: 14 bytes
        |  +--Secure Path Segment: (6 bytes)
        |  |  +--pCount: 1
        |  |  +--Flags: 0
        |  |  +--AS number: 65536 (1.0)
        |  +--Secure Path Segment: (6 bytes)
        |     +--pCount: 1
        |     +--Flags: 0
        |     +--AS number: 64496 (0.64496)
        +--Signature Block (191 bytes)
           +--Length: 191 bytes
           +--Algo ID: 1
           +--Signature Segment: (94 bytes)
           |  +--SKI: 47F23BF1AB2F8A9D26864EBBD8DF2711C74406EC
           |  +--Length: 72 bytes
           |  +--Signature: 3046022100EFD48B   2AACB6A8FD1140DD
           |                9CD45E81D69D2C87   7B56AAF991C34D0E
           |                A84EAF3716022100   D1B94F6251046D21
           |                36A105B0F4727CC5   BCD674D97D28E61B
           |                8F43BDDE91C30626
           +--Signature Segment: (94 bytes)
              +--SKI: AB4D910F55CAE71A215EF3CAFE3ACC45B5EEC154
              +--Length: 72 bytes
              +--Signature: 3046022100EFD48B   2AACB6A8FD1140DD
                            9CD45E81D69D2C87   7B56AAF991C34D0E
                            A84EAF3716022100   E2A02C68FE53CB96
                            934C781F5A14A297   1979200C9156EDF8
                            55058E8053F4ACD3

謝辞

著者らは、本文書が完全に基づいている[RFC7935]を作成してくれたジェフ・ヒューストンとジョージ・ミケルソンに感謝したい。また、ロケ・ガリアーノ、デビッド・マンデルバーグ、トム・ペッチ、サム・ワイラー、スティーブン・ケントの各氏のレビューとコメントにも感謝する。メフメット・アダリエ、コティカラプディ・スリラム、ダグ・モンゴメリーは付録Aにあるテストベクタの開発に尽力してくれた。さらに、本文書のセクション2.1の表現を借用した[RFC5398]の著者ジェフ・ヒューストンにも再度感謝したい。

著者のアドレス

ショーン・ターナー
sn3rd
メール: sean@sn3rd.com

オリバー・ボーチャート
NIST
100 Bureau Drive
Gaithersburg, MD 20899
アメリカ合衆国
メール: oliver.borchert@nist.gov

更新履歴

  • 2024.5.22
GitHubで編集を提案

Discussion