RFC 6494
Certificate Profile and Certificate Management for SEcure Neighbor Discovery (SEND)
RFC 6494: Certificate Profile and Certificate Management for SEcure Neighbor Discovery (SEND) π
Okay bestie, this one is a standards track doc from the IETF, dated February 2012. It was written by R. Gagliano (Cisco Systems), S. Krishnan (Ericsson), and A. Kukec (Enterprise Architects). It has ISSN 2070-1721, and it updates RFC 3971. The header doesn't list anything it obsoletes, so nothing gets retired here πΈ
Abstract β¨
SEND (SEcure Neighbor Discovery) uses X.509v3 certificates to check that a router is actually allowed to be a router π This doc sets up a certificate profile for SEND that's built on resource certificates, and it also lists the extended key usage values SEND needs.
Status of This Memo π
This is an Internet Standards Track document, so it's officially serious business π
It's a product of the Internet Engineering Task Force (IETF) and it represents the consensus of the IETF community. It went through public review and got approved for publication by the Internet Engineering Steering Group (IESG). If you want more on Internet Standards, check Section 2 of RFC 5741 π¦
For the current status, any errata, and where to send feedback, go to http://www.rfc-editor.org/info/rfc6494.
Copyright Notice π
Copyright (c) 2012 IETF Trust and the persons identified as the document authors. All rights reserved π
This doc is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents, which you can find at http://trustee.ietf.org/license-info (as in effect on the publication date). Please read those carefully, because they spell out your rights and restrictions for this doc. Any Code Components pulled out of this document have to include the Simplified BSD License text, as described in Section 4.e of the Trust Legal Provisions, and they come with no warranty, as described in the Simplified BSD License π«Ά
Table of Contents ποΈ
1. Introduction ....................................................2
2. Requirements Notation ...........................................3
3. Terminology .....................................................3
4. SEND Certificate Profile ........................................4
4.1. Unconstrained Certified Subnet Prefixes ....................4
5. Deployment Models ...............................................5
6. Trust Anchor Material ...........................................5
7. Extended Key Usage Values .......................................6
8. CRL Profile and Revocation ......................................7
8.1. Online Certificate Status Protocol (OCSP) Considerations ...7
9. Certificate Validation ..........................................8
10. IANA Considerations ............................................8
11. Security Considerations ........................................8
12. Acknowledgements ...............................................8
13. References .....................................................9
13.1. Normative References ......................................9
13.2. Informative References ....................................9
Appendix A. Router Authorization Certificate Example ..............10
Appendix B. ASN.1 Module ..........................................11
1. Introduction πΈ
SEND [RFC3971] uses X.509v3 certificates that include the [RFC3779] extension for IPv6 addresses. The point is to certify that a router is authorized to advertise the IPv6 prefix for the Neighbor Discovery (ND) protocol π The SEND spec already has a basic certificate profile, but this doc replaces the profile for Router Authorization Certificates from [RFC3971]. So certificates used in SEND (by routers, proxies, or address owners) MUST conform to this certificate profile and MAY conform to the original profile in [RFC3971] β¨
The Resource Public Key Infrastructure (RPKI) is the global PKI that backs up who gets which IP address space π RPKI is the centralized model from Section 6.2 of [RFC3971]. Consequently, SEND will use the RPKI Certificate Profile and the certificate validation process detailed in [RFC6487]. Consequently, the certificate validation method in [RFC3971] gets updated with the one in [RFC6487] π₯
Here's the tricky bit: the [RFC3779] IPv6 address extension doesn't say what a node is allowed to do with the certified IPv6 space. So you'd have no idea why the certificate was issued π To fix that, you use the ExtKeyUsageSyntax field (optional in RPKI certificates) of the X.509 certificate to say why it was issued. This doc specifies four extended key usage values for SEND: one for routers, two for proxies, and one for address owners π
RFC 3971 described two deployment models, centralized and decentralized. This doc describes the different deployment models that work with the SEND certificates defined here π¦
2. Requirements Notation π
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119] π
3. Terminology π
Here's the glossary, copied exactly as it appears:
Certified IPv6 address space IPv6 address space included in an
X.509v3 certificate using the extension
for IPv6 addresses [RFC3779].
End-entity (EE) An entity in the PKI that is not a
Certification Authority (CA).
ISP Internet Service Provider.
NIR National Internet Registry.
RIR Regional Internet Registry.
RPKI Resource PKI established in accordance
with [RFC6480].
RPKI certificates Certificates as defined in [RFC6487].
SEND certificates Certificates as described in [RFC3971]
and extended in this document. They
are end-entity certificates that belong
either to SEND routers, SEND hosts, or
SEND proxies:
* Router Authorization Certificates as
defined in [RFC3971].
* Owner Authorization Certificates as
defined in [RFC3971].
* Secure Proxy ND Certificates as
defined in [RFC6496].
SEND KeyPurposeId An Extended Key Usage (EKU) value for
SEND, such as the four introduced in
this document.
4. SEND Certificate Profile π
SEND certificates MUST comply with the RPKI resource profile in [RFC6487] π There's an example Router Authorization Certificate in Appendix A.
Sections 2, 4.9.10, and 4.9.11 of [RFC6487] say that RFC 3779 resource extensions MUST be marked as critical and MUST be present in all resource certificates. So SEND certificates MUST include the IP Address Delegation extension [RFC3779]. That extension MUST include at least one address block for the IPv6 Address Family (AFI=0002), as described in Section 4.9.10 of [RFC6487]. And SEND certificates MUST NOT have more than one IP Address Delegation extension π«Ά
4.1. Unconstrained Certified Subnet Prefixes π
Section 7.3 of [RFC3971] defines the Unconstrained Certified subnet prefixes category. It does this by using certificates that have either the null prefix or no prefix extension at all π
With the RPKI Certificate Profile, prefix extensions are mandatory, and the null prefix MUST be validated π But a certificate can inherit its parent's prefix or range by using the "inherit" element for the IPv6 Address Family Identifier (AFI), as defined in [RFC3779]. [RFC6487] allows the use of the "inherit" element π
So this doc updates Section 7.3 of [RFC3971] by adding the following text under Unconstrained:
Network operators that do not want to constrain routers to route particular subnet prefixes, but rather inherit those prefixes from the routers' parent certificates, should configure routers with certificates containing the "inherit" element for the IPv6 AFI.
5. Deployment Models π§
RFC 3971 describes two deployment models, centralized and decentralized. They were told apart by whether there's one trust anchor or many πΈ This doc brings in two new deployment models that aren't based on how many trust anchors there are, but on where SEND is deployed π
The local SEND deployment model covers cases where SEND is confined to one administrative domain. In this setup, SEND deployment MAY be done independently of whether there's deployment higher up in the RPKI hierarchy. For example, an end user could run local SEND without needing RPKI deployed at their ISP π This model needs local trust anchors and configured islands of trust. It MAY also include Unique Local Addresses (ULAs) [RFC4193] π
The public SEND deployment models cover cases where SEND deployment is linked to RPKI deployment, as described in [RFC6480]. Trust anchor material MAY be part of a different administrative domain, like RIRs, NIRs, or ISPs. It's a global model that's great for mobile users π
These two models aren't mutually exclusive, so a hybrid model that mixes features from both is totally possible π¦ In one hybrid setup, most IP address resources (like global unicast addresses) get certified under the global RPKI, while some others (like ULAs) get certified under local trust anchors β¨
6. Trust Anchor Material π
Relying parties (like end hosts that implement SEND and process these router certificates) MUST be configured with one or more trust anchors so they can validate the routers' certificates π [RFC6495] and Section 6.5 of [RFC3971] list the trust anchor configuration options for end hosts using SEND π
In the local SEND deployment model, you can use as a trust anchor a certificate whose RFC 3779 address extension includes the prefix ::/0. In that case, no new trust anchor material is needed when renumbering. However, if you move from the local deployment model to the public deployment model, new trust anchor material will have to be distributed to relying parties π₯
7. Extended Key Usage Values β¨
okay bestie, so the Internet PKI doc [RFC5280] defines the extended key usage X.509 certificate extension π. It lists one or more purposes the certified public key can be used for π . It can team up with the key usage extension, which says what the key is intended for. The EKU extension is optional in [RFC6487] for end-entity certs, but it MUST be present when you're issuing end-entity certificates for SEND π«Ά.
here's the EKU extension syntax again, just so you have it handy π:
ExtKeyUsageSyntax ::= SEQUENCE SIZE (1..MAX) OF KeyPurposeId
KeyPurposeId ::= OBJECT IDENTIFIER
this spec defines four KeyPurposeId values π¦. One is for authorizing routers (Router Authorization Certificates). Two are for authorizing proxies (Secure Proxy ND Certificates). And one is for address owners (Owner Authorization Certificates) π. more KeyPurposeId values can show up later in Standards Track docs, so keep your eyes open π.
the router authorization value (id-kp-sendRouter) means the cert was issued so the router can send Router Advertisement (RA) and Redirect messages for any prefix(es) covered by the IP address space in the X.509 extensions for IP addresses πΈ. "covered" here follows the definition in Section 7.1 of [RFC6487], so go check that if you want the full picture π€.
the proxied routing authorization value (id-kp-sendProxiedRouter) means the cert was issued so the proxy can proxy RA and Redirect messages for any prefix(es) inside that same IP address space π§.
the owner authorization value (id-kp-sendOwner) means the node is allowed to use any address(es) inside that IP address space π. for any address in that cert, the node can assign it to an interface, send and receive traffic to and from it, and send or respond to NS, NA, and RS messages about that address. it's giving full owner energy πβ¨.
the proxied owner authorization value (id-kp-sendProxiedOwner) means the proxy can handle Neighbor Solicitation (NS), Neighbor Advertisement (NA), and Router Solicitation (RS) messages for any address inside that IP address space π.
the OIDs are below π :
send-kp OBJECT IDENTIFIER ::=
{ iso(1) identified-organization(3) dod(6) internet(1)
security(5) mechanisms(5) pkix(7) kp(3) }
id-kp-sendRouter OBJECT IDENTIFIER ::= { id-kp 23 }
id-kp-sendProxiedRouter OBJECT IDENTIFIER ::= { id-kp 24 }
id-kp-sendOwner OBJECT IDENTIFIER ::= { id-kp 25 }
id-kp-sendProxiedOwner OBJECT IDENTIFIER ::= { id-kp 26 }
as [RFC6487] explains, the extended key usage extension, if it's there, MUST be non-critical π.
relying parties MUST require the extended key usage extension to be present in a cert π§. they MAY also require one particular KeyPurposeId value to be there, like id-kp-sendRouter or id-kp-sendProxiedRouter. if there are multiple KeyPurposeId values, relying parties don't need to recognize all of them, as long as the one they require is included π«Ά. and here's the big one: relying parties MUST reject any cert that doesn't contain at least one SEND KeyPurposeId, even if it includes the anyExtendedKeyUsage OID defined in [RFC5280] π«π. no sneaking through with "any" π
ββοΈ.
8. CRL Profile and Revocation π
RPKI needs Certificate Revocation Lists (CRLs) [RFC6487] π. the host is responsible for getting the CRLs it needs and running the certificate validation method from [RFC6487] π .
8.1. Online Certificate Status Protocol (OCSP) Considerations π΅οΈββοΈ
a host MAY use OCSP [RFC2560] to check whether a certificate has been revoked πΈ.
since [RFC6487] is the base certificate profile for SEND, the host SHOULD NOT assume certs will have an OCSP server URI in their Authority Information Access (AIA) extension π. this is especially true in the SEND public deployment model, because OCSP services aren't required by [RFC6484] π€·ββοΈ. don't count on it, bestie π .
9. Certificate Validation β
this section updates Section 6.3.1 of [RFC3971] by adding new validations without causing any conflict π.
the host MUST perform the certificate validation method described in [RFC6487] π. certs that use the "inherit" element, where a parent prefix or range has to exist, are handled as described in [RFC3779] π§©.
the host MUST also verify that the KeyPurposeId value for the Neighbor Discovery message type is present, as described in Section 7 π. no skipping this step, periodt π .
10. IANA Considerations π
this document uses object identifiers to identify the EKUs, plus the ASN.1 (Abstract Syntax Notation One) module in Appendix B π§. the EKUs and the ASN.1 module OID are registered in an arc that IANA delegated to the PKIX Working Group π.
11. Security Considerations π¨
okay this part is SERIOUS bestie, so listen up ππ₯. the certification authority has to make sure the correct extended key usage values go into every certificate it issues π. relying parties can accept or reject a certificate for a given use based on what these extensions say β . if the EKU field is represented incorrectly, the relying party might reject a perfectly fine certificate, or accept one it should have rejected π.
since a SEND certificate attests that its subject is authorized to play a given role in the SEND protocol, certificates with incorrect EKU values can enable some of the same attacks that SEND was built to prevent π¨π.
for example, if a malicious host can get a certificate that lets it act as a router for a given prefix, then it can pretend to be a router for that prefix π. it could do this to attract traffic from local nodes π±. not it, absolutely not π ββοΈ.
12. Acknowledgements π«Ά
the authors want to thank Alberto Garcia, Stephen Kent, Sean Turner, Roni Even, Richard Barnes, Alexey Melnikov, Jari Arkko, David Harrington, and Tim Polk for their reviews and suggestions on earlier versions of this document ππΈ. the whole squad showed up π.
13. References π
13.1. Normative References π
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC2560] Myers, M., Ankney, R., Malpani, A., Galperin, S., and C.
Adams, "X.509 Internet Public Key Infrastructure Online
Certificate Status Protocol - OCSP", RFC 2560, June 1999.
[RFC3779] Lynn, C., Kent, S., and K. Seo, "X.509 Extensions for IP
Addresses and AS Identifiers", RFC 3779, June 2004.
[RFC3971] Arkko, J., Ed., Kempf, J., Zill, B., and P. Nikander,
"SEcure Neighbor Discovery (SEND)", RFC 3971, March 2005.
[RFC4193] Hinden, R. and B. Haberman, "Unique Local IPv6 Unicast
Addresses", RFC 4193, October 2005.
[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, May 2008.
[RFC6484] Kent, S., Kong, D., Seo, K., and R. Watro, "Certificate
Policy (CP) for the Resource Public Key Infrastructure
(RPKI)", BCP 173, RFC 6484, February 2012.
[RFC6487] Huston, G., Michaelson, G., and R. Loomans, "A Profile for
X.509 PKIX Resource Certificates", RFC 6487,
February 2012.
[RFC6495] Gagliano, R., Krishnan, S., and A. Kukec, "Subject Key
Identifier (SKI) SEcure Neighbor Discovery (SEND) Name
Type Fields", RFC 6495, February 2012.
13.2. Informative References π
[RFC6480] Lepinski, M. and S. Kent, "An Infrastructure to Support
Secure Internet Routing", RFC 6480, February 2012.
[RFC6496] Krishnan, S., Laganier, J., Bonola, M., and A. Garcia-
Martinez, "Secure Proxy ND Support for SEcure Neighbor
Discovery (SEND)", RFC 6496, February 2012.
Appendix A. Router Authorization Certificate Example β¨
okay so this is the example cert, aka the "here's what it actually looks like" moment π it's a full text dump of a router authorization cert, so you can see every field lined up like an outfit check π
Certificate:
Data:
Version: 3 (0x2)
Serial Number: 249 (0xf9)
Signature Algorithm: sha256WithRSAEncryption
Issuer: CN=EXAMPLE-CA-2342342652346
Validity
Not Before: Jul 2 10:06:32 2010 GMT
Not After : Jul 2 10:06:32 2011 GMT
Subject: CN=SEND-EXAMPLE-123432
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
Public-Key: (2048 bit)
Modulus:
00:b7:06:0d:8e:f7:39:0a:41:52:93:59:a8:f5:63:
3f:2e:3d:24:17:9d:19:aa:09:ff:c0:2a:f3:c6:99:
d7:34:0d:bf:f1:e9:73:b5:8f:dc:d4:91:d6:5d:cb:
9c:b8:2b:41:63:c1:8f:f7:48:54:02:89:07:24:c3:
b0:6e:11:5a:7d:c0:38:88:4b:d9:3b:93:c7:ca:4d:
a4:00:a2:d3:6d:14:15:8f:15:08:4d:4e:b3:8a:cc:
de:2d:e0:7a:9b:c0:6e:14:f6:a7:ae:b9:e0:c5:18:
60:75:3d:d3:50:00:47:0d:86:5b:1c:a0:85:81:af:
2b:84:98:49:7d:60:a2:e8:4f:6d:40:ba:d5:fe:de:
de:41:53:c7:c4:f4:d3:1a:41:cd:dc:9f:08:43:33:
48:00:57:e4:56:93:7d:dd:19:12:e8:bf:26:b3:4b:
30:ac:b8:9c:b1:37:05:18:3c:7b:6b:26:d7:c9:15:
c9:4a:eb:1b:fa:92:38:46:27:44:96:8a:a1:12:c1:
09:77:4a:7b:a5:07:88:a6:36:30:98:70:79:b6:44:
7e:b1:c9:4c:5b:11:56:e8:14:50:f7:f8:e5:ed:f1:
ac:a4:31:46:36:77:05:c9:63:fe:c3:ab:54:e2:bd:
79:1d:14:d1:c2:80:36:d3:be:e6:c7:a2:47:59:1b:
75:9f
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Authority Key Identifier:
keyid:4C:5D:56:82:15:8A:67:A6:8C:69:67:68:88
:6F:15:E5:C9:96:58:EB
X509v3 CRL Distribution Points:
Full Name:
URI:rsync://rsync.example.exampledomain/
EXAMPLE-CA-2342342652346/EXAMPLE-CA.crl
X509v3 Subject Key Identifier:
B8:69:EB:36:23:F1:C4:21:65:DD:13:76:EE:90:AF
:F7:CD:E3:61:CD
X509v3 Key Usage: critical
Digital Signature
sbgp-ipAddrBlock: critical
IPv6:
2001:db8:cafe:bebe::/64
X509v3 Extended Key Usage:
1.3.6.1.5.5.7.3.23
Signature Algorithm: sha256WithRSAEncryption
92:14:38:6e:45:83:1b:cb:7c:45:0d:bc:7f:6e:36:bf:82:cc:
7e:00:91:ea:f4:24:43:cc:00:3c:3f:c2:99:0c:c6:b9:20:2e:
ca:dc:df:94:0d:c9:a1:75:c4:5c:39:a1:cf:9f:e1:40:9c:aa:
a9:80:76:d1:3a:91:d9:db:2f:cd:3c:05:50:52:eb:28:47:d0:
ab:d3:fd:6f:30:17:16:7f:c6:0f:2b:25:bb:db:29:d7:bb:4e:
f3:7c:2d:e1:04:b7:f0:bc:d5:8a:ba:8c:0d:39:22:48:02:d1:
67:fb:35:5c:b6:83:03:63:7c:73:03:70:20:de:fb:d7:12:ed:
6f:a1:ff:b2:a6:39:fb:55:9a:07:bd:68:40:0f:6f:d5:24:34:
cf:e8:dd:76:33:2a:d0:b9:1b:ae:a8:68:86:17:f8:13:35:0e:
f6:04:ec:2a:39:88:06:70:c6:e8:56:87:f7:35:54:2a:28:2c:
92:47:a9:89:39:d7:72:24:21:9d:02:52:f9:7c:76:7f:e9:cd:
09:6e:82:f4:da:6c:f9:72:b2:64:98:b5:0c:6a:38:8d:81:e5:
fc:50:46:6f:38:40:56:06:92:5a:e0:86:5d:55:f5:7b:85:b2:
68:4f:49:72:e0:fa:2c:bf:9e:7d:aa:28:17:ca:04:b8:ae:69:
c9:04:28:12
Appendix B. ASN.1 Module π§
this is the ASN.1 module, the bit that defines the OID arc and the extended key usage values. it's giving official paperwork energy but it's so necessary π
SENDCertExtns { iso(1) identified-organization(3) dod(6) internet(1)
security(5) mechanisms(5) pkix(7) id-mod(0)
id-mod-send-cert-extns(71) }
DEFINITIONS IMPLICIT TAGS ::=
BEGIN
-- OID Arc
id-kp OBJECT IDENTIFIER ::=
{ iso(1) identified-organization(3) dod(6) internet(1)
security(5) mechanisms(5) pkix(7) kp(3) }
-- Extended Key Usage Values
id-kp-sendRouter OBJECT IDENTIFIER ::= { id-kp 23 }
id-kp-sendProxiedRouter OBJECT IDENTIFIER ::= { id-kp 24 }
id-kp-sendOwner OBJECT IDENTIFIER ::= { id-kp 25 }
id-kp-sendProxiedOwner OBJECT IDENTIFIER ::= { id-kp 26 }
END
Authors' Addresses π«Ά
the people who wrote this, with their contact info, so you can slide into their inbox if you have questions π
Roque Gagliano
Cisco Systems
Avenue des Uttins 5
Rolle 1180
Switzerland
EMail: rogaglia@cisco.com
Suresh Krishnan
Ericsson
8400 Decarie Blvd.
Town of Mount Royal, QC
Canada
Phone: +1 514 345 7900 x42871
EMail: suresh.krishnan@ericsson.com
Ana Kukec
Enterprise Architects
46/525 Collins St.
Melbourne, VIC 3000
Australia
EMail: ana.kukec@enterprisearchitects.com
π¦ where this page comes from
- ietf: rfc6494 2012-02
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms