draft-ietf-sidr-rpki-rtr-rfc6810-bis-00.txt | draft-ietf-sidr-rpki-rtr-rfc6810-bis-01.txt | |||
---|---|---|---|---|
Network Working Group R. Bush | Network Working Group R. Bush | |||
Internet-Draft Internet Initiative Japan | Internet-Draft Internet Initiative Japan | |||
Intended status: Standards Track R. Austein | Intended status: Standards Track R. Austein | |||
Expires: September 12, 2014 Dragon Research Labs | Expires: October 6, 2014 Dragon Research Labs | |||
March 11, 2014 | April 4, 2014 | |||
The Resource Public Key Infrastructure (RPKI) to Router Protocol | The Resource Public Key Infrastructure (RPKI) to Router Protocol | |||
draft-ietf-sidr-rpki-rtr-rfc6810-bis-00 | draft-ietf-sidr-rpki-rtr-rfc6810-bis-01 | |||
Abstract | Abstract | |||
In order to verifiably validate the origin Autonomous Systems of BGP | In order to verifiably validate the origin Autonomous Systems of BGP | |||
announcements, routers need a simple but reliable mechanism to | announcements, routers need a simple but reliable mechanism to | |||
receive Resource Public Key Infrastructure (RFC 6480) prefix origin | receive Resource Public Key Infrastructure (RFC 6480) prefix origin | |||
data from a trusted cache. This document describes a protocol to | data from a trusted cache. This document describes a protocol to | |||
deliver validated prefix origin data to routers. | deliver validated prefix origin data to routers. | |||
Status of This Memo | Status of This Memo | |||
skipping to change at page 1, line 35 | skipping to change at page 1, line 35 | |||
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 September 12, 2014. | This Internet-Draft will expire on October 6, 2014. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2014 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 | |||
skipping to change at page 7, line 24 | skipping to change at page 7, line 24 | |||
header which end with the length field. | header which end with the length field. | |||
Flags: The lowest order bit of the Flags field is 1 for an | Flags: The lowest order bit of the Flags field is 1 for an | |||
announcement and 0 for a withdrawal. For a Prefix PDU (IPv4 or | announcement and 0 for a withdrawal. For a Prefix PDU (IPv4 or | |||
IPv6), the flag indicates whether this PDU announces a new right | IPv6), the flag indicates whether this PDU announces a new right | |||
to announce the prefix or withdraws a previously announced right; | to announce the prefix or withdraws a previously announced right; | |||
a withdraw effectively deletes one previously announced Prefix PDU | a withdraw effectively deletes one previously announced Prefix PDU | |||
with the exact same Prefix, Length, Max-Len, and Autonomous System | with the exact same Prefix, Length, Max-Len, and Autonomous System | |||
Number (ASN). Similarly, for a Router Key PDU, the flag indicates | Number (ASN). Similarly, for a Router Key PDU, the flag indicates | |||
whether this PDU announces a new Router Key or deletes one | whether this PDU announces a new Router Key or deletes one | |||
previously announced Router Key PDU with the exact same AS | previously announced Router Key PDU with the exact same AS Number, | |||
Numbers, subjectKeyIdentifier, and subjectPublicKeyInfo. | subjectKeyIdentifier, and subjectPublicKeyInfo. | |||
Prefix Length: An 8-bit unsigned integer denoting the shortest | Prefix Length: An 8-bit unsigned integer denoting the shortest | |||
prefix allowed for the prefix. | prefix allowed for the prefix. | |||
Max Length: An 8-bit unsigned integer denoting the longest prefix | Max Length: An 8-bit unsigned integer denoting the longest prefix | |||
allowed by the prefix. This MUST NOT be less than the Prefix | allowed by the prefix. This MUST NOT be less than the Prefix | |||
Length element. | Length element. | |||
Prefix: The IPv4 or IPv6 prefix of the ROA. | Prefix: The IPv4 or IPv6 prefix of the ROA. | |||
skipping to change at page 13, line 21 | skipping to change at page 13, line 21 | |||
| | | | | | |||
| Length=8 | | | Length=8 | | |||
| | | | | | |||
`-------------------------------------------' | `-------------------------------------------' | |||
5.10. Router Key | 5.10. Router Key | |||
0 8 16 24 31 | 0 8 16 24 31 | |||
.-------------------------------------------. | .-------------------------------------------. | |||
| Protocol | PDU | | | | | Protocol | PDU | | | | |||
| Version | Type | Flags | AS Count | | | Version | Type | Flags | zero | | |||
| 1 | 9 | | | | | 1 | 9 | | | | |||
+-------------------------------------------+ | +-------------------------------------------+ | |||
| | | | | | |||
| Length | | | Length | | |||
| | | | | | |||
+-------------------------------------------+ | +-------------------------------------------+ | |||
| | | | | | |||
| Subject Key Identifier | | | Subject Key Identifier | | |||
| 20 octets | | | 20 octets | | |||
| | | | | | |||
+-------------------------------------------+ | +-------------------------------------------+ | |||
| | | | | | |||
| AS Numbers | | | AS Number | | |||
| | | | | | |||
+-------------------------------------------+ | +-------------------------------------------+ | |||
| | | | | | |||
| Subject Public Key Info | | | Subject Public Key Info | | |||
| | | | | | |||
`-------------------------------------------' | `-------------------------------------------' | |||
In addition to the normal boilerplate fields of an RPKI-Router PDU, | In addition to the normal boilerplate fields of an RPKI-Router PDU, | |||
the Router Key PDU has the following fields. | the Router Key PDU has the following fields. | |||
Subject Key Identifier is the 20-octet subjectKeyIdentifier (SKI) | Subject Key Identifier is the 20-octet subjectKeyIdentifier (SKI) | |||
value for the Router Key, as described in [RFC6487]. | value for the Router Key, as described in [RFC6487]. | |||
AS Numbers contains one or more Autonomous System Numbers. The | AS Number one Autonomous System Number. | |||
number of ASNs is specified in the AS Count field. To simplify | ||||
comparision, the ASNs within this field MUST be sorted into | ||||
increasing numerical order considered as unsigned big-endian | ||||
32-bit integers. | ||||
Subject Public Key Info is the Router Key's subjectPublicKeyInfo as | Subject Public Key Info is the Router Key's subjectPublicKeyInfo as | |||
described in [I-D.ietf-sidr-bgpsec-algs]. This is the full ASN.1 | described in [I-D.ietf-sidr-bgpsec-algs]. This is the full ASN.1 | |||
DER encoding of the subjectPublicKeyInfo, including the ASN.1 tag | DER encoding of the subjectPublicKeyInfo, including the ASN.1 tag | |||
and length values of the subjectPublicKeyInfo SEQUENCE. | and length values of the subjectPublicKeyInfo SEQUENCE. | |||
The cache server MUST ensure that it has told the router client to | ||||
have one and only one Router Key PDU for a unique {SKI, ASN, Subject | ||||
Public Key} at any one point in time. Should the router client | ||||
receive a Router Key PDU with a {SKI, ASN, Subject Public Key} | ||||
identical to one it already has active, it SHOULD raise a Duplicate | ||||
Announcement Received error. | ||||
Note that a particular ASN may appear in multiple Router Key PDUs | ||||
with different Subject Public Key values, while a particular Subject | ||||
Public Key value may appear in multiple Router Key PDUs with | ||||
different ASNs. In the interest of keeping the announcement and | ||||
withdrawal semantics as simple as possible for the router, this | ||||
protocol makes no attempt to compress either of these cases. | ||||
Also note that it is possible, albeit very unlikely, for multiple | ||||
distinct Subject Public Key values to hash to the same SKI. For this | ||||
reason, implementations MUST compare Subject Public Key values as | ||||
well as SKIs when detecting duplicate PDUs. | ||||
5.11. Error Report | 5.11. Error Report | |||
This PDU is used by either party to report an error to the other. | This PDU is used by either party to report an error to the other. | |||
Error reports are only sent as responses to other PDUs. | Error reports are only sent as responses to other PDUs. | |||
The Error Code is described in Section 12. | The Error Code is described in Section 12. | |||
If the error is generic (e.g., "Internal Error") and not associated | If the error is generic (e.g., "Internal Error") and not associated | |||
with the PDU to which it is responding, the Erroneous PDU field MUST | with the PDU to which it is responding, the Erroneous PDU field MUST | |||
skipping to change at page 25, line 49 | skipping to change at page 25, line 49 | |||
3: Invalid Request (fatal): The cache server believes the client's | 3: Invalid Request (fatal): The cache server believes the client's | |||
request to be invalid. | request to be invalid. | |||
4: Unsupported Protocol Version (fatal): The Protocol Version is not | 4: Unsupported Protocol Version (fatal): The Protocol Version is not | |||
known by the receiver of the PDU. | known by the receiver of the PDU. | |||
5: Unsupported PDU Type (fatal): The PDU Type is not known by the | 5: Unsupported PDU Type (fatal): The PDU Type is not known by the | |||
receiver of the PDU. | receiver of the PDU. | |||
6: Withdrawal of Unknown Record (fatal): The received PDU has Flag=0 | 6: Withdrawal of Unknown Record (fatal): The received PDU has Flag=0 | |||
but a record for the {Prefix, Len, Max-Len, ASN} tuple does not | but a matching record ({Prefix, Len, Max-Len, ASN} tuple for an | |||
exist in the receiver's database. | IPvX PDU, {SKI, ASN, Subject Public Key} tuple for a Router Key | |||
PDU) does not exist in the receiver's database. | ||||
7: Duplicate Announcement Received (fatal): The received PDU has an | 7: Duplicate Announcement Received (fatal): The received PDU has | |||
identical {Prefix, Len, Max-Len, ASN} tuple as a PDU which is | Flag=1 but a matching record ({Prefix, Len, Max-Len, ASN} tuple | |||
still active in the router. | for an IPvX PDU, {SKI, ASN, Subject Public Key} tuple for a Router | |||
Key PDU) is already active in the router. | ||||
13. Security Considerations | 13. Security Considerations | |||
As this document describes a security protocol, many aspects of | As this document describes a security protocol, many aspects of | |||
security interest are described in the relevant sections. This | security interest are described in the relevant sections. This | |||
section points out issues which may not be obvious in other sections. | section points out issues which may not be obvious in other sections. | |||
Cache Validation: In order for a collection of caches as described | Cache Validation: In order for a collection of caches as described | |||
in Section 11 to guarantee a consistent view, they need to be | in Section 11 to guarantee a consistent view, they need to be | |||
given consistent trust anchors to use in their internal validation | given consistent trust anchors to use in their internal validation | |||
skipping to change at page 28, line 23 | skipping to change at page 28, line 25 | |||
5 Unsupported PDU Type | 5 Unsupported PDU Type | |||
6 Withdrawal of Unknown Record | 6 Withdrawal of Unknown Record | |||
7 Duplicate Announcement Received | 7 Duplicate Announcement Received | |||
255 Reserved | 255 Reserved | |||
IANA has added an SSH Connection Protocol Subsystem Name, as defined | IANA has added an SSH Connection Protocol Subsystem Name, as defined | |||
in [RFC4250], of "rpki-rtr". | in [RFC4250], of "rpki-rtr". | |||
15. Acknowledgments | 15. Acknowledgments | |||
The authors wish to thank Steve Bellovin, Rex Fernando, Paul Hoffman, | The authors wish to thank Steve Bellovin, Tim Bruijnzeels, Rex | |||
Russ Housley, Pradosh Mohapatra, Keyur Patel, Sandy Murphy, Robert | Fernando, Paul Hoffman, Russ Housley, Pradosh Mohapatra, Keyur Patel, | |||
Raszuk, John Scudder, Ruediger Volk, and David Ward. Particular | David Mandelberg, Sandy Murphy, Robert Raszuk, John Scudder, Ruediger | |||
thanks go to Hannes Gredler for showing us the dangers of unnecessary | Volk, Matthias Waehlisch, and David Ward. Particular thanks go to | |||
fields. | Hannes Gredler for showing us the dangers of unnecessary fields. | |||
16. References | 16. References | |||
16.1. Normative References | 16.1. Normative References | |||
[I-D.ietf-sidr-bgpsec-algs] | [I-D.ietf-sidr-bgpsec-algs] | |||
Turner, S., "BGP Algorithms, Key Formats, & Signature | Turner, S., "BGP Algorithms, Key Formats, & Signature | |||
Formats", draft-ietf-sidr-bgpsec-algs-05 (work in | Formats", draft-ietf-sidr-bgpsec-algs-06 (work in | |||
progress), September 2013. | progress), March 2014. | |||
[RFC1982] Elz, R. and R. Bush, "Serial Number Arithmetic", RFC 1982, | [RFC1982] Elz, R. and R. Bush, "Serial Number Arithmetic", RFC 1982, | |||
August 1996. | August 1996. | |||
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
Requirement Levels", RFC 2119, BCP 14, March 1997. | Requirement Levels", RFC 2119, BCP 14, March 1997. | |||
[RFC2385] Heffernan, A., "Protection of BGP Sessions via the TCP MD5 | [RFC2385] Heffernan, A., "Protection of BGP Sessions via the TCP MD5 | |||
Signature Option", RFC 2385, August 1998. | Signature Option", RFC 2385, August 1998. | |||
End of changes. 12 change blocks. | ||||
25 lines changed or deleted | 42 lines changed or added | |||
This html diff was produced by rfcdiff 1.33. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |