draft-ietf-sidr-rpki-oob-setup-00.txt | draft-ietf-sidr-rpki-oob-setup-01.txt | |||
---|---|---|---|---|
Network Working Group R. Austein | Network Working Group R. Austein | |||
Internet-Draft Dragon Research Labs | Internet-Draft Dragon Research Labs | |||
Intended status: Standards Track December 11, 2013 | Intended status: Standards Track July 2, 2014 | |||
Expires: June 14, 2014 | Expires: January 3, 2015 | |||
An Out-Of-Band Setup Protocol For RPKI Production Services | An Out-Of-Band Setup Protocol For RPKI Production Services | |||
draft-ietf-sidr-rpki-oob-setup-00 | draft-ietf-sidr-rpki-oob-setup-01 | |||
Abstract | Abstract | |||
This note describes a simple out-of-band protocol to ease setup of | This note describes a simple out-of-band protocol to ease setup of | |||
the RPKI provisioning and publication protocols between two parties. | the RPKI provisioning and publication protocols between two parties. | |||
The protocol is encoded in a small number of XML messages, which can | The protocol is encoded in a small number of XML messages, which can | |||
be passed back and forth by any mutually agreeable secure means. | be passed back and forth by any mutually agreeable secure means. | |||
This setup protocol is not part of the provisioning or publication | This setup protocol is not part of the provisioning or publication | |||
protocol, rather, it is intended to simplify configuration of these | protocol, rather, it is intended to simplify configuration of these | |||
skipping to change at page 1, line 38 | skipping to change at page 1, line 38 | |||
Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
Drafts is at http://datatracker.ietf.org/drafts/current/. | Drafts is at http://datatracker.ietf.org/drafts/current/. | |||
Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
This Internet-Draft will expire on June 14, 2014. | This Internet-Draft will expire on January 3, 2015. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2013 IETF Trust and the persons identified as the | Copyright (c) 2014 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
(http://trustee.ietf.org/license-info) in effect on the date of | (http://trustee.ietf.org/license-info) in effect on the date of | |||
publication of this document. Please review these documents | publication of this document. Please review these documents | |||
carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
described in the Simplified BSD License. | described in the Simplified BSD License. | |||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
2. Overview of the BPKI . . . . . . . . . . . . . . . . . . . . 3 | 2. Overview of the BPKI . . . . . . . . . . . . . . . . . . . . 3 | |||
3. Protocol Elements . . . . . . . . . . . . . . . . . . . . . . 4 | 3. Protocol Elements . . . . . . . . . . . . . . . . . . . . . . 4 | |||
3.1. Nomenclature . . . . . . . . . . . . . . . . . . . . . . 4 | 3.1. Nomenclature . . . . . . . . . . . . . . . . . . . . . . 4 | |||
3.2. Common Protocol Elements . . . . . . . . . . . . . . . . 5 | 3.2. Common Protocol Elements . . . . . . . . . . . . . . . . 5 | |||
3.3. Protocol Messages . . . . . . . . . . . . . . . . . . . . 5 | 3.3. Protocol Messages . . . . . . . . . . . . . . . . . . . . 5 | |||
3.3.1. <child_request/> . . . . . . . . . . . . . . . . . . 6 | 3.3.1. <child_request/> . . . . . . . . . . . . . . . . . . 5 | |||
3.3.2. <parent_response/> . . . . . . . . . . . . . . . . . 6 | 3.3.2. <parent_response/> . . . . . . . . . . . . . . . . . 6 | |||
3.3.3. <publisher_request/> . . . . . . . . . . . . . . . . 8 | 3.3.3. <publisher_request/> . . . . . . . . . . . . . . . . 8 | |||
3.3.4. <repository_response/> . . . . . . . . . . . . . . . 9 | 3.3.4. <repository_response/> . . . . . . . . . . . . . . . 9 | |||
3.4. <authorization/> . . . . . . . . . . . . . . . . . . . . 10 | 3.4. <authorization/> . . . . . . . . . . . . . . . . . . . . 10 | |||
3.5. <error/> . . . . . . . . . . . . . . . . . . . . . . . . 11 | 3.5. <error/> . . . . . . . . . . . . . . . . . . . . . . . . 11 | |||
4. Protocol Walk-Through . . . . . . . . . . . . . . . . . . . . 12 | 4. Protocol Walk-Through . . . . . . . . . . . . . . . . . . . . 12 | |||
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 16 | 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 17 | |||
6. Security Considerations . . . . . . . . . . . . . . . . . . . 16 | 6. Security Considerations . . . . . . . . . . . . . . . . . . . 17 | |||
7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 17 | 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 17 | |||
8. Normative References . . . . . . . . . . . . . . . . . . . . 17 | 8. Normative References . . . . . . . . . . . . . . . . . . . . 17 | |||
Appendix A. RelaxNG Schema . . . . . . . . . . . . . . . . . . . 17 | Appendix A. RelaxNG Schema . . . . . . . . . . . . . . . . . . . 17 | |||
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 19 | Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 19 | |||
1. Introduction | 1. Introduction | |||
This note describes a small XML-based out-of-band protocol used to | This note describes a small XML-based out-of-band protocol used to | |||
set up relationships between parents and children in the RPKI | set up relationships between parents and children in the RPKI | |||
provisioning protocol ([RFC6492]) and between publishers and | provisioning protocol ([RFC6492]) and between publishers and | |||
skipping to change at page 3, line 10 | skipping to change at page 3, line 10 | |||
code, or a carrier pigeon. | code, or a carrier pigeon. | |||
Since much of the purpose of this protocol is key exchange, | Since much of the purpose of this protocol is key exchange, | |||
authentication and integrity of the key exchange MUST be ensured via | authentication and integrity of the key exchange MUST be ensured via | |||
external means. Typically such means will tie directly to a new or | external means. Typically such means will tie directly to a new or | |||
existing business relationship | existing business relationship | |||
2. Overview of the BPKI | 2. Overview of the BPKI | |||
Several protocols related to RPKI provisioning use signed CMS | Several protocols related to RPKI provisioning use signed CMS | |||
messages to authenticate the underlying XML-based protocols. | messages ([RFC5652]) to authenticate the underlying XML-based | |||
Verification of these CMS messages requires X.509 certificates. The | protocols. Verification of these CMS messages requires X.509 | |||
PKI that holds these certificates is distinct from the RPKI, and | certificates. The PKI that holds these certificates is distinct from | |||
contains no RFC 3779 resources. We refer to this as the "Business | the RPKI, and contains no RFC 3779 resources. We refer to this as | |||
PKI" (BPKI), to distinguish it from the RPKI. The "B" is a hint that | the "Business PKI" (BPKI), to distinguish it from the RPKI. The "B" | |||
the certificate relationships in the BPKI are likely to follow and | is a hint that the certificate relationships in the BPKI are likely | |||
become part of existing contractual relationships between the issuers | to follow and become part of existing contractual relationships | |||
and subjects of this PKI. | between the issuers and subjects of this PKI. | |||
The RPKI provisioning protocol does not dictate a particular | The RPKI provisioning protocol does not dictate a particular | |||
structure for the BPKI, beyond the basic requirement that it be | structure for the BPKI, beyond the basic requirement that it be | |||
possible for one party to sign and the other party to verify the CMS | possible for one party to sign and the other party to verify the CMS | |||
messages. This allows a certain amount of flexibility to allow an | messages. This allows a certain amount of flexibility to allow an | |||
Internet registry to reuse an existing PKI as the BPKI if that makes | Internet registry to reuse an existing PKI as the BPKI if that makes | |||
sense in their context. | sense in their context. | |||
In order to keep this protocol simple, we adopt a somewhat | In order to keep this protocol simple, we adopt a somewhat | |||
constrained model of the BPKI. The first two operations in this | constrained model of the BPKI. The first two operations in this | |||
skipping to change at page 4, line 19 | skipping to change at page 4, line 19 | |||
Issuer: CN = Bob CA | Issuer: CN = Bob CA | |||
Subject: CN = Bob CA | Subject: CN = Bob CA | |||
Public Key: [Bob CA Public Key] | Public Key: [Bob CA Public Key] | |||
BasicConstraints: cA = TRUE | BasicConstraints: cA = TRUE | |||
Alice sends Bob her self-signed BPKI certificate, and Bob cross- | Alice sends Bob her self-signed BPKI certificate, and Bob cross- | |||
certifies its public key and subject name under Bob's own self-signed | certifies its public key and subject name under Bob's own self-signed | |||
BPKI certificate: | BPKI certificate: | |||
Issuer: CN = Bob CA | Issuer: CN = Bob CA | |||
Subject: CN = Alice CA | Subject: CN = Alice CA | |||
Public Key: [Alice CA Public Key] | Public Key: [Alice CA Public Key] | |||
BasicConstraints: cA = TRUE, pathLenConstraint = 0 | BasicConstraints: cA = TRUE, pathLenConstraint = 0 | |||
Later, when Bob receives a CMS message from Alice, Bob can verify | Later, when Bob receives a CMS message from Alice, Bob can verify | |||
this message via a trust chain back to Bob's own trust anchor: | this message via a trust chain back to Bob's own trust anchor: | |||
Issuer: CN = Alice CA | Issuer: CN = Alice CA | |||
Subject: CN = Alice EE | Subject: CN = Alice EE | |||
Public Key: [Alice EE Public Key] | Public Key: [Alice EE Public Key] | |||
[[Need some text detailing required and allowed values in the | [[Need some text detailing required and allowed values in the | |||
certificates: 2048-bit RSA, what extensions, .... But once we go | certificates: 2048-bit RSA, what extensions, .... But once we go | |||
there we also have to provide a path for algorithm agility.]] | there we also have to provide a path for algorithm agility.]] | |||
3. Protocol Elements | 3. Protocol Elements | |||
Each message in the protocol is a distinct XML element in the "http:/ | Each message in the protocol is a distinct XML element in the "http:/ | |||
/www.hactrn.net/uris/rpki/rpki-setup/" XML namespace. | /www.hactrn.net/uris/rpki/rpki-setup/" XML namespace. | |||
skipping to change at page 7, line 33 | skipping to change at page 7, line 25 | |||
provisioning protocol messages to the child. | provisioning protocol messages to the child. | |||
offer: If an <offer/> element is present, the parent is offering | offer: If an <offer/> element is present, the parent is offering | |||
publication service to the child. The <offer/> element, if | publication service to the child. The <offer/> element, if | |||
present, is empty. | present, is empty. | |||
referral: If a <referral/> element is present, it suggests a third- | referral: If a <referral/> element is present, it suggests a third- | |||
party publication services that the child might use, and contains: | party publication services that the child might use, and contains: | |||
referrer: A referrer attribute, containing the handle by which | referrer: A referrer attribute, containing the handle by which | |||
the publication repository knows the parent, | the publication repository knows the parent, | |||
contact_uri: An optional contact_uri attribute that the child may | contact_uri: An optional contact_uri attribute that the child may | |||
be able to follow for more information, and | be able to follow for more information, and | |||
Authorization token: The text of the <referral/> element is the | Authorization token: The text of the <referral/> element is the | |||
Base64 encoding of a signed authorization token granting the | Base64 encoding of a signed authorization token granting the | |||
child the right to use a portion of the parent's namespace | child the right to use a portion of the parent's namespace at | |||
at the publication repository in question. See Section 3.4 | the publication repository in question. See Section 3.4 for | |||
for details on the authorization token. | details on the authorization token. | |||
--------------------------------------------------------------------- | --------------------------------------------------------------------- | |||
<parent_response | <parent_response | |||
child_handle="Bob-42" | child_handle="Bob-42" | |||
parent_handle="Alice" | parent_handle="Alice" | |||
service_uri="http://alice.example/rpki-up-down/Alice/Bob-42" | service_uri="http://a.example/up-down/Alice/Bob-42" | |||
version="1" | version="1" | |||
xmlns="http://www.hactrn.net/uris/rpki/rpki-setup/"> | xmlns="http://www.hactrn.net/uris/rpki/rpki-setup/"> | |||
<parent_bpki_ta> | <parent_bpki_ta> | |||
WW91IGNhbiBoYWNrIGFueXRoaW5nIHlvdSB3YW50IHdpdGggVEVDTyBhbmQgRERU | WW91IGNhbiBoYWNrIGFueXRoaW5nIHlvdSB3YW50IHdpdGggVEVDTyBhbmQgRERU | |||
</parent_bpki_ta> | </parent_bpki_ta> | |||
<offer/> | <offer/> | |||
</parent_response> | </parent_response> | |||
--------------------------------------------------------------------- | --------------------------------------------------------------------- | |||
--------------------------------------------------------------------- | --------------------------------------------------------------------- | |||
<parent_response | <parent_response | |||
child_handle="Carol" | child_handle="Carol" | |||
parent_handle="Bob" | parent_handle="Bob" | |||
service_uri="http://bob.example/rpki-up-down/Bob/Carol" | service_uri="http://bob.example/up-down/Bob/Carol" | |||
version="1" | version="1" | |||
xmlns="http://www.hactrn.net/uris/rpki/rpki-setup/"> | xmlns="http://www.hactrn.net/uris/rpki/rpki-setup/"> | |||
<parent_bpki_ta> | <parent_bpki_ta> | |||
R29kIGlzIHJlYWwgdW5sZXNzIGRlY2xhcmVkIGludGVnZXI= | R29kIGlzIHJlYWwgdW5sZXNzIGRlY2xhcmVkIGludGVnZXI= | |||
</parent_bpki_ta> | </parent_bpki_ta> | |||
<referral | <referral | |||
referrer="Alice/Bob-42"> | referrer="Alice/Bob-42"> | |||
R28sIGxlbW1pbmdzLCBnbyE= | R28sIGxlbW1pbmdzLCBnbyE= | |||
</referral> | </referral> | |||
</parent_response> | </parent_response> | |||
skipping to change at page 8, line 50 | skipping to change at page 8, line 44 | |||
publisher_bpki_ta: The <publisher_bpki_ta/> element is the | publisher_bpki_ta: The <publisher_bpki_ta/> element is the | |||
publisher's BPKI identity, a self-signed X.509 BPKI certificate. | publisher's BPKI identity, a self-signed X.509 BPKI certificate. | |||
This certificate is the issuer of the BPKI EE certificates | This certificate is the issuer of the BPKI EE certificates | |||
corresponding to private keys that the publisher will use to sign | corresponding to private keys that the publisher will use to sign | |||
publication protocol messages to the repository. | publication protocol messages to the repository. | |||
referral: If a <referral/> element is present, it contains: | referral: If a <referral/> element is present, it contains: | |||
referrer: A referrer attribute containing the publication handle | referrer: A referrer attribute containing the publication handle | |||
of the referring parent, and | of the referring parent, and | |||
Authorization token: The text of the <referral/> element is the | Authorization token: The text of the <referral/> element is the | |||
Base64 encoding of a signed authorization token granting the | Base64 encoding of a signed authorization token granting the | |||
publisher the right to use a portion of its parent's | publisher the right to use a portion of its parent's namespace | |||
namespace at this repository. See Section 3.4 for details | at this repository. See Section 3.4 for details on the | |||
on the authorization token. | authorization token. | |||
These fields are copies of values that a parent provided to the | These fields are copies of values that a parent provided to the | |||
child in the <parent_response/> message (see Section 3.3.2). The | child in the <parent_response/> message (see Section 3.3.2). The | |||
referrer attribute is present to aid lookup of the corresponding | referrer attribute is present to aid lookup of the corresponding | |||
certificate by the repository. Note that the repository operator | certificate by the repository. Note that the repository operator | |||
makes the final decision on whether to grant publication service | makes the final decision on whether to grant publication service | |||
to the prospective publisher. The <referral/> element just | to the prospective publisher. The <referral/> element just | |||
conveys a parent's grant of permission to use a portion of that | conveys a parent's grant of permission to use a portion of that | |||
parent's namespace. | parent's namespace. | |||
skipping to change at page 10, line 11 | skipping to change at page 10, line 8 | |||
sia_base: The sia_base attribute is the rsync:// URI for the base of | sia_base: The sia_base attribute is the rsync:// URI for the base of | |||
the publication space allocated to the publisher. | the publication space allocated to the publisher. | |||
repository_bpki_ta: The <repository_bpki_ta/> element is the | repository_bpki_ta: The <repository_bpki_ta/> element is the | |||
repository's BPKI identity, a self-signed X.509 BPKI certificate. | repository's BPKI identity, a self-signed X.509 BPKI certificate. | |||
--------------------------------------------------------------------- | --------------------------------------------------------------------- | |||
<repository_response | <repository_response | |||
publisher_handle="Alice/Bob-42" | publisher_handle="Alice/Bob-42" | |||
service_uri="http://alice.example/rpki-publication/Alice/Bob-42" | service_uri="http://a.example/publication/Alice/Bob-42" | |||
sia_base="rsync://alice.example/rpki/Alice/Bob-42/" | sia_base="rsync://a.example/rpki/Alice/Bob-42/" | |||
version="1" | version="1" | |||
xmlns="http://www.hactrn.net/uris/rpki/rpki-setup/"> | xmlns="http://www.hactrn.net/uris/rpki/rpki-setup/"> | |||
<repository_bpki_ta> | <repository_bpki_ta> | |||
WW91IGNhbiBoYWNrIGFueXRoaW5nIHlvdSB3YW50IHdpdGggVEVDTyBhbmQgRERU | WW91IGNhbiBoYWNrIGFueXRoaW5nIHlvdSB3YW50IHdpdGggVEVDTyBhbmQgRERU | |||
</repository_bpki_ta> | </repository_bpki_ta> | |||
</repository_response> | </repository_response> | |||
--------------------------------------------------------------------- | --------------------------------------------------------------------- | |||
3.4. <authorization/> | 3.4. <authorization/> | |||
skipping to change at page 10, line 45 | skipping to change at page 10, line 42 | |||
is the rsync:// URI of the base of the namespace which the | is the rsync:// URI of the base of the namespace which the | |||
referrer is delegating. | referrer is delegating. | |||
bpki_ta: The <bpki_ta/> element is the identity of the entity to | bpki_ta: The <bpki_ta/> element is the identity of the entity to | |||
whom the referrer is delegating the portion of the namespace named | whom the referrer is delegating the portion of the namespace named | |||
in the authorized_sia_base attribute. The identity is represented | in the authorized_sia_base attribute. The identity is represented | |||
as a self-signed X.509 BPKI certificate. | as a self-signed X.509 BPKI certificate. | |||
--------------------------------------------------------------------- | --------------------------------------------------------------------- | |||
<authorization | <authorization | |||
authorized_sia_base="rsync://alice.example/rpki/Alice/Bob-42/Carol/" | authorized_sia_base="rsync://a.example/rpki/Alice/Bob-42/Carol/" | |||
version="1" | version="1" | |||
xmlns="http://www.hactrn.net/uris/rpki/rpki-setup/"> | xmlns="http://www.hactrn.net/uris/rpki/rpki-setup/"> | |||
SSd2ZSBoYWQgZnVuIGJlZm9yZS4gIFRoaXMgaXNuJ3QgaXQu | SSd2ZSBoYWQgZnVuIGJlZm9yZS4gIFRoaXMgaXNuJ3QgaXQu | |||
</authorization> | </authorization> | |||
--------------------------------------------------------------------- | --------------------------------------------------------------------- | |||
3.5. <error/> | 3.5. <error/> | |||
The <error/> element is an optional message which can be used in | The <error/> element is an optional message which can be used in | |||
response to any of the core protocol messages described in | response to any of the core protocol messages described in | |||
skipping to change at page 11, line 36 | skipping to change at page 11, line 36 | |||
version: The version attribute specifies the protocol version. This | version: The version attribute specifies the protocol version. This | |||
note describes protocol version 1. | note describes protocol version 1. | |||
reason: The reason attribute contains a code indicating what was | reason: The reason attribute contains a code indicating what was | |||
wrong with the message. This version of the protocol defines the | wrong with the message. This version of the protocol defines the | |||
following codes: | following codes: | |||
syntax-error: Receiver could not parse the offending message. | syntax-error: Receiver could not parse the offending message. | |||
authentication-failure: Receiver could not authenticate the | authentication-failure: Receiver could not authenticate the | |||
offending message. | offending message. | |||
refused: Receiver refused to perform the requested action. | refused: Receiver refused to perform the requested action. | |||
Offending message: The <error/> element contains a verbatim copy of | Offending message: The <error/> element contains a verbatim copy of | |||
the message to which this error applies. | the message to which this error applies. | |||
--------------------------------------------------------------------- | --------------------------------------------------------------------- | |||
<error | <error | |||
reason="refused" | reason="refused" | |||
version="1" | version="1" | |||
skipping to change at page 13, line 9 | skipping to change at page 13, line 16 | |||
Alice offers publication service, so she offers to let Bob use it; | Alice offers publication service, so she offers to let Bob use it; | |||
Alice doesn't have to do this, she could just omit this and leave Bob | Alice doesn't have to do this, she could just omit this and leave Bob | |||
to find publication service on his own, but Alice is trying to be | to find publication service on his own, but Alice is trying to be | |||
helpful to her customer Bob. Bob doesn't have to accept Alice's | helpful to her customer Bob. Bob doesn't have to accept Alice's | |||
offer, but may choose to do so. | offer, but may choose to do so. | |||
--------------------------------------------------------------------- | --------------------------------------------------------------------- | |||
<parent_response | <parent_response | |||
child_handle="Bob-42" | child_handle="Bob-42" | |||
parent_handle="Alice" | parent_handle="Alice" | |||
service_uri="http://alice.example/rpki-up-down/Alice/Bob-42" | service_uri="http://a.example/up-down/Alice/Bob-42" | |||
version="1" | version="1" | |||
xmlns="http://www.hactrn.net/uris/rpki/rpki-setup/"> | xmlns="http://www.hactrn.net/uris/rpki/rpki-setup/"> | |||
<parent_bpki_ta> | <parent_bpki_ta> | |||
WW91IGNhbiBoYWNrIGFueXRoaW5nIHlvdSB3YW50IHdpdGggVEVDTyBhbmQgRERU | WW91IGNhbiBoYWNrIGFueXRoaW5nIHlvdSB3YW50IHdpdGggVEVDTyBhbmQgRERU | |||
</parent_bpki_ta> | </parent_bpki_ta> | |||
<offer/> | <offer/> | |||
</parent_response> | </parent_response> | |||
--------------------------------------------------------------------- | --------------------------------------------------------------------- | |||
o <parent_bpki_ta/> is Alice's own self-signed BPKI certificate. | o <parent_bpki_ta/> is Alice's own self-signed BPKI certificate. | |||
skipping to change at page 13, line 50 | skipping to change at page 14, line 10 | |||
<repository_response/> message in response. Alice recognizes Bob as | <repository_response/> message in response. Alice recognizes Bob as | |||
one of her own children, because she's already seen Bob's self-signed | one of her own children, because she's already seen Bob's self-signed | |||
BPKI certificate, so she allocates publication space to Bob under her | BPKI certificate, so she allocates publication space to Bob under her | |||
own publication space, so that relying parties who rsync her products | own publication space, so that relying parties who rsync her products | |||
will pick up Bob's products automatically without needing an | will pick up Bob's products automatically without needing an | |||
additional fetch operation. | additional fetch operation. | |||
--------------------------------------------------------------------- | --------------------------------------------------------------------- | |||
<repository_response | <repository_response | |||
publisher_handle="Alice/Bob-42" | publisher_handle="Alice/Bob-42" | |||
service_uri="http://alice.example/rpki-publication/Alice/Bob-42" | service_uri="http://a.example/publication/Alice/Bob-42" | |||
sia_base="rsync://alice.example/rpki/Alice/Bob-42/" | sia_base="rsync://a.example/rpki/Alice/Bob-42/" | |||
version="1" | version="1" | |||
xmlns="http://www.hactrn.net/uris/rpki/rpki-setup/"> | xmlns="http://www.hactrn.net/uris/rpki/rpki-setup/"> | |||
<repository_bpki_ta> | <repository_bpki_ta> | |||
WW91IGNhbiBoYWNrIGFueXRoaW5nIHlvdSB3YW50IHdpdGggVEVDTyBhbmQgRERU | WW91IGNhbiBoYWNrIGFueXRoaW5nIHlvdSB3YW50IHdpdGggVEVDTyBhbmQgRERU | |||
</repository_bpki_ta> | </repository_bpki_ta> | |||
</repository_response> | </repository_response> | |||
--------------------------------------------------------------------- | --------------------------------------------------------------------- | |||
Bob should now have everything he needs to talk to Alice both for | Bob should now have everything he needs to talk to Alice both for | |||
provisioning and for publication. | provisioning and for publication. | |||
skipping to change at page 14, line 46 | skipping to change at page 15, line 9 | |||
Bob's <parent_response/> to Carol also looks a lot like Alice's | Bob's <parent_response/> to Carol also looks a lot like Alice's | |||
response to Bob, except that Bob includes a <referral/> element | response to Bob, except that Bob includes a <referral/> element | |||
instead of an <offer/> element. Carol is an only child, so Bob | instead of an <offer/> element. Carol is an only child, so Bob | |||
leaves her name alone: | leaves her name alone: | |||
--------------------------------------------------------------------- | --------------------------------------------------------------------- | |||
<parent_response | <parent_response | |||
child_handle="Carol" | child_handle="Carol" | |||
parent_handle="Bob" | parent_handle="Bob" | |||
service_uri="http://bob.example/rpki-up-down/Bob/Carol" | service_uri="http://bob.example/up-down/Bob/Carol" | |||
version="1" | version="1" | |||
xmlns="http://www.hactrn.net/uris/rpki/rpki-setup/"> | xmlns="http://www.hactrn.net/uris/rpki/rpki-setup/"> | |||
<parent_bpki_ta> | <parent_bpki_ta> | |||
R29kIGlzIHJlYWwgdW5sZXNzIGRlY2xhcmVkIGludGVnZXI= | R29kIGlzIHJlYWwgdW5sZXNzIGRlY2xhcmVkIGludGVnZXI= | |||
</parent_bpki_ta> | </parent_bpki_ta> | |||
<referral | <referral | |||
referrer="Alice/Bob-42"> | referrer="Alice/Bob-42"> | |||
R28sIGxlbW1pbmdzLCBnbyE= | R28sIGxlbW1pbmdzLCBnbyE= | |||
</referral> | </referral> | |||
</parent_response> | </parent_response> | |||
skipping to change at page 15, line 25 | skipping to change at page 15, line 34 | |||
repository. The Base64-encoded authorization token is an | repository. The Base64-encoded authorization token is an | |||
<authorization/> element in a CMS message that can be verified | <authorization/> element in a CMS message that can be verified | |||
against Bob's self-signed BPKI certificate, using a BPKI EE | against Bob's self-signed BPKI certificate, using a BPKI EE | |||
certificate included in the CMS wrapper. The <authorization/> text | certificate included in the CMS wrapper. The <authorization/> text | |||
is Carol's self-signed BPKI certificate; Bob's signature over this | is Carol's self-signed BPKI certificate; Bob's signature over this | |||
element indicates Bob's permission for Carol to use the indicated | element indicates Bob's permission for Carol to use the indicated | |||
portion of Bob's publication space. | portion of Bob's publication space. | |||
--------------------------------------------------------------------- | --------------------------------------------------------------------- | |||
<authorization | <authorization | |||
authorized_sia_base="rsync://alice.example/rpki/Alice/Bob-42/Carol/" | authorized_sia_base="rsync://a.example/rpki/Alice/Bob-42/Carol/" | |||
version="1" | version="1" | |||
xmlns="http://www.hactrn.net/uris/rpki/rpki-setup/"> | xmlns="http://www.hactrn.net/uris/rpki/rpki-setup/"> | |||
SSd2ZSBoYWQgZnVuIGJlZm9yZS4gIFRoaXMgaXNuJ3QgaXQu | SSd2ZSBoYWQgZnVuIGJlZm9yZS4gIFRoaXMgaXNuJ3QgaXQu | |||
</authorization> | </authorization> | |||
--------------------------------------------------------------------- | --------------------------------------------------------------------- | |||
Carol, not wanting to have to run a publication service, presents | Carol, not wanting to have to run a publication service, presents | |||
Bob's referral to Alice in the hope that Alice will let Carol use | Bob's referral to Alice in the hope that Alice will let Carol use | |||
Alice's publication service. So Carol constructs a | Alice's publication service. So Carol constructs a | |||
<publisher_request/> message including the referral information | <publisher_request/> message including the referral information | |||
skipping to change at page 16, line 19 | skipping to change at page 16, line 31 | |||
its signature, and unpacks it. When the signature proves valid and | its signature, and unpacks it. When the signature proves valid and | |||
the contained BPKI TA matches Carol's, Alice knows that Bob is | the contained BPKI TA matches Carol's, Alice knows that Bob is | |||
willing to let Carol use a portion of Bob's namespace. Given this, | willing to let Carol use a portion of Bob's namespace. Given this, | |||
Alice is willing to provide publication service to Carol in the | Alice is willing to provide publication service to Carol in the | |||
subtree allocated by Bob for this purpose, so Alice sends back a | subtree allocated by Bob for this purpose, so Alice sends back a | |||
<repository_response/>: | <repository_response/>: | |||
--------------------------------------------------------------------- | --------------------------------------------------------------------- | |||
<repository_response | <repository_response | |||
publisher_handle="Alice/Bob-42/Carol" | publisher_handle="Alice/Bob-42/Carol" | |||
service_uri="http://alice.example/rpki-publication/Alice/Bob-42/Carol" | service_uri="http://a.example/publication/Alice/Bob-42/Carol" | |||
sia_base="rsync://alice.example/rpki/Alice/Bob-42/Carol/" | sia_base="rsync://a.example/rpki/Alice/Bob-42/Carol/" | |||
version="1" | version="1" | |||
xmlns="http://www.hactrn.net/uris/rpki/rpki-setup/"> | xmlns="http://www.hactrn.net/uris/rpki/rpki-setup/"> | |||
<repository_bpki_ta> | <repository_bpki_ta> | |||
WW91IGNhbiBoYWNrIGFueXRoaW5nIHlvdSB3YW50IHdpdGggVEVDTyBhbmQgRERU | WW91IGNhbiBoYWNrIGFueXRoaW5nIHlvdSB3YW50IHdpdGggVEVDTyBhbmQgRERU | |||
</repository_bpki_ta> | </repository_bpki_ta> | |||
</repository_response> | </repository_response> | |||
--------------------------------------------------------------------- | --------------------------------------------------------------------- | |||
Once Carol receives this response, Carol should be good to go. | Once Carol receives this response, Carol should be good to go. | |||
skipping to change at page 17, line 17 | skipping to change at page 17, line 28 | |||
The author would like to thank: Byron Ellacott, George Michaelson, | The author would like to thank: Byron Ellacott, George Michaelson, | |||
Leif Johansson, Matsuzaki Yoshinobu, Michael Elkins, Randy Bush, | Leif Johansson, Matsuzaki Yoshinobu, Michael Elkins, Randy Bush, | |||
Seiichi Kawamura, Tim Bruijnzeels, and anybody else who helped along | Seiichi Kawamura, Tim Bruijnzeels, and anybody else who helped along | |||
the way whose name the author has temporarily forgotten. | the way whose name the author has temporarily forgotten. | |||
8. Normative References | 8. Normative References | |||
[I-D.ietf-sidr-publication] | [I-D.ietf-sidr-publication] | |||
Weiler, S., Sonalker, A., and R. Austein, "A Publication | Weiler, S., Sonalker, A., and R. Austein, "A Publication | |||
Protocol for the Resource Public Key Infrastructure | Protocol for the Resource Public Key Infrastructure | |||
(RPKI)", draft-ietf-sidr-publication-04 (work in | (RPKI)", draft-ietf-sidr-publication-05 (work in | |||
progress), October 2013. | progress), February 2014. | |||
[RFC5280] Cooper, D., Santesson, S., Farrell, S., Boeyen, S., | [RFC5280] Cooper, D., Santesson, S., Farrell, S., Boeyen, S., | |||
Housley, R., and W. Polk, "Internet X.509 Public Key | Housley, R., and W. Polk, "Internet X.509 Public Key | |||
Infrastructure Certificate and Certificate Revocation List | Infrastructure Certificate and Certificate Revocation List | |||
(CRL) Profile", RFC 5280, May 2008. | (CRL) Profile", RFC 5280, May 2008. | |||
[RFC5652] Housley, R., "Cryptographic Message Syntax (CMS)", RFC | [RFC5652] Housley, R., "Cryptographic Message Syntax (CMS)", RFC | |||
5652, STD 70, September 2009. | 5652, STD 70, September 2009. | |||
[RFC6492] Huston, G., Loomans, R., Ellacott, B., and R. Austein, "A | [RFC6492] Huston, G., Loomans, R., Ellacott, B., and R. Austein, "A | |||
End of changes. 27 change blocks. | ||||
51 lines changed or deleted | 49 lines changed or added | |||
This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |