idnits 2.17.1 draft-ietf-sidr-roa-format-09.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- ** There are 4 instances of too long lines in the document, the longest one being 1 character in excess of 72. == There are 1 instance of lines with private range IPv4 addresses in the document. If these are generic example addresses, they should be changed to use any of the ranges defined in RFC 6890 (or successor): 192.0.2.x, 198.51.100.x or 203.0.113.x. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == The document seems to lack the recommended RFC 2119 boilerplate, even if it appears to use RFC 2119 keywords -- however, there's a paragraph with a matching beginning. Boilerplate error? (The document does seem to have the reference to RFC 2119 which the ID-Checklist requires). -- The document seems to lack a disclaimer for pre-RFC5378 work, but may have content which was first submitted before 10 November 2008. If you have contacted all the original authors and they are all willing to grant the BCP78 rights to the IETF Trust, then this is fine, and you can ignore this comment. If not, you may need to add the pre-RFC5378 disclaimer. (See the Legal Provisions document at https://trustee.ietf.org/license-info for more information.) -- however, there's a paragraph with a matching beginning. Boilerplate error? -- The document date (November 9, 2010) is 4914 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) == Missing Reference: 'SIGN-OBJ' is mentioned on line 234, but not defined -- Looks like a reference, but probably isn't: '0' on line 138 == Unused Reference: 'ALGS' is defined on line 274, but no explicit reference was found in the text == Unused Reference: 'RESCERT' is defined on line 278, but no explicit reference was found in the text == Unused Reference: 'CP' is defined on line 292, but no explicit reference was found in the text == Unused Reference: 'REPOS' is defined on line 295, but no explicit reference was found in the text == Unused Reference: 'RFC4049' is defined on line 299, but no explicit reference was found in the text -- No information found for draft-ietf-sidr-rpki-alg - is the name correct? -- Possible downref: Normative reference to a draft: ref. 'ALGS' -- No information found for draft-ietf-sidr-rpki-signed-object - is the name correct? -- Possible downref: Normative reference to a draft: ref. 'SIGNOBJ' -- Obsolete informational reference (is this intentional?): RFC 4049 (Obsoleted by RFC 6019) Summary: 1 error (**), 0 flaws (~~), 9 warnings (==), 8 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 1 Secure Inter-Domain Routing (sidr) M. Lepinski 2 Internet Draft S. Kent 3 Expires: May 9, 2011 D. Kong 4 Intended Status: Proposed Standard BBN Technologies 5 November 9, 2010 7 A Profile for Route Origin Authorizations (ROAs) 8 draft-ietf-sidr-roa-format-09.txt 10 Status of this Memo 12 This Internet-Draft is submitted to IETF in full conformance with the 13 provisions of BCP 78 and BCP 79. 15 Internet-Drafts are working documents of the Internet Engineering 16 Task Force (IETF), its areas, and its working groups. Note that 17 other groups may also distribute working documents as Internet- 18 Drafts. 20 Internet-Drafts are draft documents valid for a maximum of six months 21 and may be updated, replaced, or obsoleted by other documents at any 22 time. It is inappropriate to use Internet-Drafts as reference 23 material or to cite them other than as "work in progress." 25 The list of current Internet-Drafts can be accessed at 26 http://www.ietf.org/ietf/1id-abstracts.txt 28 The list of Internet-Draft Shadow Directories can be accessed at 29 http://www.ietf.org/shadow.html 31 This Internet-Draft will expire on January 28, 2011. 33 Copyright Notice 35 Copyright (c) 2010 IETF Trust and the persons identified as the 36 document authors. All rights reserved. 38 This document is subject to BCP 78 and the IETF Trust's Legal 39 Provisions Relating to IETF Documents 40 (http://trustee.ietf.org/license-info) in effect on the date of 41 publication of this document. Please review these documents 42 carefully, as they describe your rights and restrictions with respect 43 to this document. Code Components extracted from this document must 44 include Simplified BSD License text as described in Section 4.e of 45 the Trust Legal Provisions and are provided without warranty as 46 described in the Simplified BSD License. 48 Abstract 50 This document defines a standard profile for Route Origin 51 Authorizations (ROAs). A ROA is a digitally signed object that 52 provides a means of verifying that an IP address block holder has 53 authorized an Autonomous System (AS) to originate routes to that one 54 or more prefixes within the address block. 56 Table of Contents 58 1. Introduction...................................................2 59 1.1. Terminology...............................................3 60 2. The ROA ContentType............................................3 61 3. The ROA eContent...............................................3 62 3.1. version...................................................4 63 3.2. asID......................................................4 64 3.3. ipAddrBlocks..............................................4 65 4. ROA Validation.................................................5 66 5. Security Considerations........................................5 67 6. IANA Considerations............................................6 68 7. Acknowledgments................................................6 69 8. References.....................................................7 70 8.1. Normative References......................................7 71 8.2. Informative References....................................7 72 Authors' Addresses................................................8 73 Pre-5378 Material Disclaimer......................................8 75 1. Introduction 77 The primary purpose of the Internet IP Address and Autonomous System 78 (AS) Number Resource Public Key Infrastructure (RPKI) system is to 79 improve routing security. As part of this system, a mechanism is 80 needed to allow entities to verify that an AS has been given 81 permission by an IP address block holder to advertise routes to one 82 or more prefixes within that block. A ROA provides this function. 84 The ROA makes use of the template for RPKI digitally signed objects 85 [SIGNOBJ], which defines a Crytopgraphic Message Syntax (CMS) 86 [RFC5652] wrapper for the ROA content as well as a generic validation 87 procedure for RPKI signed objects. Therefore, to complete the 88 specification of the ROA (see Section 4 of [SIGNOBJ]), this document 89 defines: 91 1. The OID that identifies the signed object as being a ROA. (This 92 OID appears within the eContentType in the encapContentInfo 93 object as well as the ContentType signed attribute in the 94 signerInfo object.) 96 2. The ASN.1 syntax for the ROA eContent. (This is the payload 97 that specifies the AS being authorized to originate routes as 98 well as the prefixes to which the AS may originate routes.) 100 3. An additional step required to validate ROAs (in addition to 101 the validation steps specified in [SIGNOBJ]). 103 1.1. Terminology 105 It is assumed that the reader is familiar with the terms and concepts 106 described in "Internet X.509 Public Key Infrastructure Certificate 107 and Certificate Revocation List (CRL) Profile" [RFC5280] and "X.509 108 Extensions for IP Addresses and AS Identifiers" [RFC3779]. 110 Additionally, this document makes use of the RPKI signed object 111 profile [SIGN-OBJ] and thus familiarity with that document is also 112 assumed. 114 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 115 "SHOULD", "SHOULD NOT", "RECOMMENDED", ''NOT RECOMMENDED'', "MAY", and 116 "OPTIONAL" in this document are to be interpreted as described in 117 RFC-2119 [RFC2119]. 119 2. The ROA ContentType 121 The ContentType for a ROA is defined as routeOriginAttestation and 122 has the numerical value of 1.2.840.113549.1.9.16.1.24. 124 This OID MUST appear both within the eContentType in the 125 encapContentInfo object as well as the ContentType signed attribute 126 in the signerInfo object (see [SIGNOBJ]). 128 3. The ROA eContent 130 The content of a ROA identifies a single AS that has been authorized 131 by the address space holder to originate routes and a list of one or 132 more IP address prefixes that will be advertised. If the address 133 space holder needs to authorize multiple ASes to advertise the same 134 set of address prefixes, the holder issues multiple ROAs, one per AS 135 number. A ROA is formally defined as: 137 RouteOriginAttestation ::= SEQUENCE { 138 version [0] INTEGER DEFAULT 0, 139 asID ASID, 140 ipAddrBlocks SEQUENCE (SIZE(1..MAX)) OF ROAIPAddressFamily } 142 ASID ::= INTEGER 144 ROAIPAddressFamily ::= SEQUENCE { 145 addressFamily OCTET STRING (SIZE (2..3)), 146 addresses SEQUENCE (SIZE (1..MAX)) OF ROAIPAddress } 148 ROAIPAddress ::= SEQUENCE { 149 address IPAddress, 150 maxLength INTEGER OPTIONAL } 152 IPAddress ::= BIT STRING 154 Note that this content appears as the eContent within the 155 encapContentInfo (see [SIGNOBJ]). 157 3.1. version 159 The version number of the RouteOriginAttestation MUST be 0. 161 3.2. asID 163 The asID field contains the AS number that is authorized to originate 164 routes to the given IP address prefixes. 166 3.3. ipAddrBlocks 168 The ipAddrBlocks field encodes the set of IP address prefixes to 169 which the AS is authorized to originate routes. Note that the syntax 170 here is more restrictive than that used in the IP Address Delegation 171 extension defined in RFC 3779. That extension can represent arbitrary 172 address ranges, whereas ROAs need to represent only prefixes. 174 Within the ROAIPAddressFamily structure, addressFamily contains the 175 Address Family Identifier (AFI) of an IP address family. This 176 specification only supports IPv4 and IPv6. Therefore, addressFamily 177 MUST be either 0001 or 0002. 179 Within a ROAIPAddress structure, the addresses field represents 180 prefixes as a sequence of type IPAddress. (See [RFC3779] for more 181 details). If present, the maxLength MUST be an integer greater than 182 or equal to the length of the accompanying prefix and less than or 183 equal to the length (in bits) of an IP address in the address family 184 (32 for IPv4 and 128 for IPv6). When present, the maxLength specifies 185 the maximum length of IP address prefix that the AS is authorized to 186 advertise. (For example, if the IP Address prefix is 10.0/16 and the 187 maxLength is 24, the AS is authorized to advertise any more specific 188 prefix having length at most 24. That is, in this example, the AS 189 would be authorized to advertise 10.0/16, 10.0.128/20, or 190 10.0.255/24, but not 10.0.255.0/25.) When the maxLength is not 191 present, the AS is only authorized to advertise exactly the prefix 192 specified in the ROA. 194 Note that a valid ROA may contain an IP Address prefix (within a 195 ROAIPAddress element) that is encompassed by another IP Address 196 prefix (within a separate ROAIPAddress element). For example, a ROA 197 may contain the prefix 10.0/16 with maxLength 18, as well as the 198 prefix 10.0.0/24 with maxLength 24. (Such a ROA would authorize the 199 indicated AS to advertise any prefix beginning with 10.0 with length 200 at least 16 and no greater than 18, as well as the specific prefix 201 10.0.0/24.) Additionally, a ROA MAY contain two ROAIPAddress elements 202 where the IP Address prefix is identical in both cases. However, this 203 is NOT RECOMMENDED as in such a case the ROAIPAddress with the 204 shorter maxLength grants no additional privileges to the indicated AS 205 and thus can be omitted without changing the meaning of the ROA. 207 4. ROA Validation 209 Before a relying party can use a ROA to validate a routing 210 announcement, the relying party MUST first validate the ROA. To 211 validate a ROA the relying party MUST perform all the validation 212 checks specified in [SIGNOBJ] as well as the following additional 213 ROA-specific validation step. 215 1. The IP Address Delegation extension [RFC3779] is present in the 216 End-Entity (EE) certificate (contained within the ROA) and each IP 217 address prefix(es) in ROA is contained within the set of IP 218 addresses specified by the EE certificate's IP address delegation 219 extension. 221 5. Security Considerations 223 There is no assumption of confidentiality for the data in a ROA; it 224 is anticipated that ROAs will be stored in repositories that are 225 accessible to all ISPs, and perhaps to all Internet users. There is 226 no explicit authentication associated with a ROA, since the PKI used 227 for ROA validation provides authorization but not authentication. 228 Although the ROA is a signed, application layer object, there is no 229 intent to convey non-repudiation via a ROA. 231 The purpose of a ROA is to convey authorization for an AS to 232 originate a route to the prefix(es) in the ROA. Thus the integrity of 233 a ROA MUST be established. The ROA specification makes use of the 234 RPKI signed object format, thus all security considerations in [SIGN- 235 OBJ] also apply to ROAs. Additionally, the signed object profile uses 236 the CMS signed message format for integrity, and thus ROA inherit all 237 security considerations associated with that data structure. 239 The right of the ROA signer to authorize the target AS to originate 240 routes to the prefix(es) is established through use of the address 241 space and AS number PKI described in [ARCH]. Specifically one MUST 242 verify the signature on the ROA using an X.509 certificate issued 243 under this PKI, and check that the prefix(es) in the ROA match those 244 in the address space extension in the certificate. 246 6. IANA Considerations 248 None. 250 7. Acknowledgments 252 The authors wish to thank Charles Gardiner and Russ Housley for their 253 help and contributions. Additionally, the authors would like to thank 254 Rob Austein, Roque Gagliano, Danny McPherson and Sam Weiler for their 255 careful reviews and helpful comments. 257 8. References 259 8.1. Normative References 261 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 262 Requirement Levels", BCP 14, RFC 2119, March 1997. 264 [RFC5652] Housley, R., ''Cryptographic Message Syntax'', RFC 5652, 265 September 2009. 267 [RFC3779] Lynn, C., Kent, S., and Seo, K., ''X.509 Extensions for IP 268 Addresses and AS Identifiers'', RFC 3779, June 2004. 270 [RFC5280] Cooper, D., et. al., ''Internet X.509 Public Key 271 Infrastructure and Certificate Revocation List (CRL) 272 Profile'', RFC 5280, May 2008. 274 [ALGS] Huston, G., ''A Profile for Algorithms and Key Sizes for use 275 in the Resource Public Key Infrastructure'', draft-ietf- 276 sidr-rpki-alg, May 2010 278 [RESCERT] Huston, G., Michaelson, G., and Loomans, R., ''A Profile for 279 X.509 PKIX Resource Certificates'', draft-ietf-sidr-res- 280 certs, November 2010. 282 [SIGNOBJ] Lepinski, M., Chi, A., and Kent, S., ''Generic Signed 283 Objects for the Resource Public Key Infrastructure'', draft- 284 ietf-sidr-rpki-signed-object, September 2010. 286 8.2. Informative References 288 [ARCH] Lepinski, M. and Kent, S., "An Infrastructure to Support 289 Secure Internet Routing," draft-ietf-sidr-arch, September 290 2010. 292 [CP] Seo, K., et. al., ''A Certificate Policy for the Resource 293 PKI,'' draft-ietf-sidr-cp, November 2010. 295 [REPOS] Huston, G., Michaelson, G., and Loomans, R., "A Profile for 296 Resource Certificate Repository Structure", draft-ietf- 297 sidr-repos-struct, November 2010. 299 [RFC4049] Housley, R., ''BinaryTime: An Alternative Format for 300 Representing Time in ASN.1,'' RFC 4049, April 2005. 302 Authors' Addresses 304 Matt Lepinski 305 BBN Technologies 306 10 Moulton Street 307 Cambridge MA 02138 309 Email: mlepinski@bbn.com 311 Stephen Kent 312 BBN Technologies 313 10 Moulton Street 314 Cambridge MA 02138 316 Email: skent@bbn.com 318 Derrick Kong 319 BBN Technologies 320 10 Moulton Street 321 Cambridge MA 02138 323 Email: dkong@bbn.com 325 Pre-5378 Material Disclaimer 327 This document may contain material from IETF Documents or IETF 328 Contributions published or made publicly available before November 329 10, 2008. The person(s) controlling the copyright in some of this 330 material may not have granted the IETF Trust the right to allow 331 modifications of such material outside the IETF Standards Process. 333 Without obtaining an adequate license from the person(s) controlling 334 the copyright in such materials, this document may not be modified 335 outside the IETF Standards Process, and derivative works of it may 336 not be created outside the IETF Standards Process, except to format 337 it for publication as an RFC or to translate it into languages other 338 than English.