Network Working Group J. Snijders
Internet-Draft Fastly
Intended status: Standards Track March 8, 2021
Expires: September 9, 2021
Resource Public Key Infrastructure (RPKI) object profile for Signed
Checklist (RSC)
draft-ietf-sidrops-rpki-rsc-01
Abstract
This document defines a Cryptographic Message Syntax (CMS) profile
for a general purpose listing of checksums (a 'checklist'), for use
with the Resource Public Key Infrastructure (RPKI). The objective is
to allow an attestation, in the form of a listing of one or more
checksums of arbitrary digital objects (files), to be signed "with
resources", and for validation to provide a means to confirm a
specific Internet Resource Holder produced the Signed Checklist. The
profile is intended to provide for the signing of an arbitrary
checksum listing with a specific set of Internet Number Resources.
Requirements Language
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in BCP
14 [RFC2119] [RFC8174] when, and only when, they appear in all
capitals, as shown here.
Status of This Memo
This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
This Internet-Draft will expire on September 9, 2021.
Snijders Expires September 9, 2021 [Page 1]
Internet-Draft RPKI Signed Checklist March 2021
Copyright Notice
Copyright (c) 2021 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(https://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
2. RSC Profile and Distribution . . . . . . . . . . . . . . . . 3
3. The RSC ContentType . . . . . . . . . . . . . . . . . . . . . 3
4. The RSC eContent . . . . . . . . . . . . . . . . . . . . . . 3
4.1. version . . . . . . . . . . . . . . . . . . . . . . . . . 5
4.2. resources . . . . . . . . . . . . . . . . . . . . . . . . 5
4.3. digestAlgorithm . . . . . . . . . . . . . . . . . . . . . 5
4.4. checkList . . . . . . . . . . . . . . . . . . . . . . . . 5
5. Operational Considerations . . . . . . . . . . . . . . . . . 5
6. RSC Validation . . . . . . . . . . . . . . . . . . . . . . . 5
7. Security Considerations . . . . . . . . . . . . . . . . . . . 6
8. Implementation status - RFC EDITOR: REMOVE BEFORE PUBLICATION 6
9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 6
9.1. OID . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
9.2. File Extension . . . . . . . . . . . . . . . . . . . . . 7
9.3. Media Type . . . . . . . . . . . . . . . . . . . . . . . 7
10. References . . . . . . . . . . . . . . . . . . . . . . . . . 8
10.1. Normative References . . . . . . . . . . . . . . . . . . 8
10.2. Informative References . . . . . . . . . . . . . . . . . 8
Appendix A. Acknowledgements . . . . . . . . . . . . . . . . . . 9
Appendix B. Document changelog - RFC EDITOR: REMOVE BEFORE
PUBLICATION . . . . . . . . . . . . . . . . . . . . 9
B.1. changes from -00 -> -01 . . . . . . . . . . . . . . . . . 9
B.2. individual submission phase . . . . . . . . . . . . . . . 9
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 9
1. Introduction
This document defines a Cryptographic Message Syntax (CMS) [RFC5652]
profile for a general purpose listing of checksums (a 'checklist'),
for use with the Resource Public Key Infrastructure (RPKI) [RFC6480].
Snijders Expires September 9, 2021 [Page 2]
Internet-Draft RPKI Signed Checklist March 2021
The objective is to allow an attestation, in the form of a listing of
one or more checksums of arbitrary files, to be signed "with
resources", and for validation to provide a means to confirm a given
Internet Resource Holder produced the RPKI Signed Checklist (RSC).
The profile is intended to provide for the signing of a checksum
listing with a specific set of Internet Number Resources.
Signed Checklists are expected to facilitate inter-domain business
use-cases which depend on an ability to verify resource holdership.
RPKI-based validation processes are expected to become the industry
norm for automated Bring Your Own IP (BYOIP) on-boarding or
establishment of physical interconnection between Autonomous Systems.
The RSC concept borrows heavily from RTA [I-D.ietf-sidrops-rpki-rta],
Manifests [RFC6486], and OpenBSD's [signify] utility. The main
difference between RSC and RTA is that the RTA profile allows
multiple signers to attest a single digital object through a checksum
of its content, while the RSC profile allows a single signer to
attest the existence of multiple digital objects. A single signer
profile is considered a simplification for both implementers and
operators.
2. RSC Profile and Distribution
RSC follows the Signed Object Template for the RPKI [RFC6488] with
one exception. Because RSCs MUST NOT be distributed through the
global RPKI repository system, the Subject Information Access (SIA)
extension is omitted from the RSC's X.509 EE certificate.
What constitutes suitable transport for RSC files is deliberately
unspecified. It might be a USB stick, a web interface secured with
conventional HTTPS, PGP-signed email, a T-shirt printed with a QR
code, or a carrier pigeon.
3. The RSC ContentType
The ContentType for an RSC is defined as rpkiSignedChecklist, and has
the numerical value of 1.2.840.113549.1.9.16.1.TBD.
This OID MUST appear both within the eContentType in the
encapContentInfo object as well as the ContentType signed attribute
in the signerInfo object (see [RFC6488]).
4. The RSC eContent
The content of an RSC indicates that a checklist for arbitrary
digital objects has been signed "with resources". An RSC is formally
defined as:
Snijders Expires September 9, 2021 [Page 3]
Internet-Draft RPKI Signed Checklist March 2021
RpkiSignedChecklist-2021
{ iso(1) member-body(2) us(840) rsadsi(113549)
pkcs(1) pkcs9(9) smime(16) mod(0) TBD }
DEFINITIONS EXPLICIT TAGS ::=
BEGIN
IMPORTS
CONTENT-TYPE, Digest, DigestAlgorithmIdentifier
FROM CryptographicMessageSyntax-2009 -- in [RFC5911]
{ iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1)
pkcs-9(9) smime(16) modules(0) id-mod-cms-2004-02(41) }
ASIdOrRange, IPAddressFamily
FROM IPAddrAndASCertExtn -- in [RFC3779]
{ iso(1) identified-organization(3) dod(6) internet(1)
security(5) mechanisms(5) pkix(7) mod(0)
id-mod-ip-addr-and-as-ident(30) } ;
ct-rpkiSignedChecklist CONTENT-TYPE ::=
{ TYPE RpkiSignedChecklist IDENTIFIED BY
id-ct-signedChecklist }
id-ct-signedChecklist OBJECT IDENTIFIER ::=
{ iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1)
pkcs-9(9) id-smime(16) id-ct(1) TBD }
RpkiSignedChecklist ::= SEQUENCE {
version [0] INTEGER DEFAULT 0,
resources ResourceBlock,
digestAlgorithm DigestAlgorithmIdentifier,
checkList SEQUENCE SIZE (1..MAX) OF FilenameAndHash }
FilenameAndHash ::= SEQUENCE {
filename IA5String OPTIONAL,
hash Digest }
ResourceBlock ::= SEQUENCE {
asID [0] AsList OPTIONAL,
ipAddrBlocks [1] IPList OPTIONAL }
-- at least one of asID or ipAddrBlocks MUST be present
( WITH COMPONENTS { ..., asID PRESENT} |
WITH COMPONENTS { ..., ipAddrBlocks PRESENT } )
AsList ::= SEQUENCE (SIZE(1..MAX)) OF ASIdOrRange
IPList ::= SEQUENCE (SIZE(1..MAX)) OF IPAddressFamily
Snijders Expires September 9, 2021 [Page 4]
Internet-Draft RPKI Signed Checklist March 2021
END
4.1. version
The version number of the RpkiSignedChecklist MUST be 0.
4.2. resources
The resources contained here are the resources used to mark the
attestation, and MUST match the set of resources listed by the EE
certificate carried in the CMS certificates field.
4.3. digestAlgorithm
The digest algorithm used to create the message digest of the
attested digital object. This algorithm MUST be a hashing algorithm
defined in [RFC7935].
4.4. checkList
This field is a sequence of FilenameAndHash objects. There is one
FilenameAndHash entry for each arbitrary object referenced on the
Signed Checklist. Each FilenameAndHash is an ordered pair of the
name of the directory entry containing the digital object and the
message digest of the digital object. The filename field is
OPTIONAL.
5. Operational Considerations
When creating digital objects of a plain-text nature (such as ASCII,
UTF-8, HTML, Javascript, XML, etc) it is RECOMMENDED to convert such
objects into a lossless compressed form. Distributing plain-text
objects within a compression envelope (such as GZIP [RFC1952]) might
help avoid unexpected canonicalization at intermediate systems (which
in turn would lead to checksum verification errors). Validator
implementations are expected to treat a checksummed digital object as
string of arbitrary single octets.
6. RSC Validation
To validate an RSC the relying party MUST perform all the validation
checks specified in [RFC6488] as well as the following additional
RSC-specific validation steps.
o The message digest of each referenced digital object, using the
digest algorithm specified in the the digestAlgorithm field, MUST
be calculated and MUST match the value given in the messageDigest
Snijders Expires September 9, 2021 [Page 5]
Internet-Draft RPKI Signed Checklist March 2021
field of the associated FileAndHash, for the RSC entry to be
considered valid.
o If a filename field is present, the field's content MUST contain
only characters specified in the Portable Filename Character Set
as defined in [POSIX].
7. Security Considerations
Relying parties are hereby warned that the data in a RPKI Signed
Checklist is self-asserted. These data have not been verified by the
Certificate Authority (CA) that issued the CA certificate to the
entity that issued the EE certificate used to validate the Signed
Checklist.
8. Implementation status - RFC EDITOR: REMOVE BEFORE PUBLICATION
This section records the status of known implementations of the
protocol defined by this specification at the time of posting of this
Internet-Draft, and is based on a proposal described in RFC 7942.
The description of implementations in this section is intended to
assist the IETF in its decision processes in progressing drafts to
RFCs. Please note that the listing of any individual implementation
here does not imply endorsement by the IETF. Furthermore, no effort
has been spent to verify the information presented here that was
supplied by IETF contributors. This is not intended as, and must not
be construed to be, a catalog of available implementations or their
features. Readers are advised to note that other implementations may
exist.
According to RFC 7942, "this will allow reviewers and working groups
to assign due consideration to documents that have the benefit of
running code, which may serve as evidence of valuable experimentation
and feedback that have made the implemented protocols more mature.
It is up to the individual working groups to use this information as
they see fit".
o A signer and validator implementation [rpki-rsc-demo] based on
perl and OpenSSL was provided by Tom Harrison from APNIC.
o A validator implementation based on OpenBSD's rpki-client is
expected to be published after IANA Early Allocation of the OIDs.
9. IANA Considerations
Snijders Expires September 9, 2021 [Page 6]
Internet-Draft RPKI Signed Checklist March 2021
9.1. OID
The IANA has registered the OID for the RPKI Signed Checklist in the
registry created by [RFC6488] as follows:
Name OID Specification
---------------------------------------------------------
Checklists 1.2.840.113549.1.9.16.1.TBD [RFC-TBD]
9.2. File Extension
The IANA has added an item for the Signed Checklist file extension to
the "RPKI Repository Name Scheme" created by [RFC6481] as follows:
Filename Extension RPKI Object Reference
-----------------------------------------------------------
.sig Signed Checklist [RFC-TBD]
9.3. Media Type
The IANA has registered the media type application/rpki-checklist as
follows:
Type name: application
Subtype name: rpki-checklist
Required parameters: None
Optional parameters: None
Encoding considerations: binary
Security considerations: Carries an RPKI Signed Checklist
[RFC-TBD].
Interoperability considerations: None
Published specification: This document.
Applications that use this media type: RPKI operators.
Additional information:
Content: This media type is a signed object, as defined
in [RFC6488], which contains a payload of a list of
checksums as defined above in this document.
Magic number(s): None
File extension(s): .sig
Macintosh file type code(s):
Person & email address to contact for further information:
Job Snijders <job@fastly.com>
Intended usage: COMMON
Restrictions on usage: None
Author: Job Snijders <job@fastly.com>
Change controller: Job Snijders <job@fastly.com>
Snijders Expires September 9, 2021 [Page 7]
Internet-Draft RPKI Signed Checklist March 2021
10. References
10.1. Normative References
[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>.
[RFC5652] Housley, R., "Cryptographic Message Syntax (CMS)", STD 70,
RFC 5652, DOI 10.17487/RFC5652, September 2009,
<https://www.rfc-editor.org/info/rfc5652>.
[RFC6481] Huston, G., Loomans, R., and G. Michaelson, "A Profile for
Resource Certificate Repository Structure", RFC 6481,
DOI 10.17487/RFC6481, February 2012,
<https://www.rfc-editor.org/info/rfc6481>.
[RFC6486] Austein, R., Huston, G., Kent, S., and M. Lepinski,
"Manifests for the Resource Public Key Infrastructure
(RPKI)", RFC 6486, DOI 10.17487/RFC6486, February 2012,
<https://www.rfc-editor.org/info/rfc6486>.
[RFC6488] Lepinski, M., Chi, A., and S. Kent, "Signed Object
Template for the Resource Public Key Infrastructure
(RPKI)", RFC 6488, DOI 10.17487/RFC6488, February 2012,
<https://www.rfc-editor.org/info/rfc6488>.
[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>.
[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>.
10.2. Informative References
[I-D.ietf-sidrops-rpki-rta]
Michaelson, G., Huston, G., Harrison, T., Bruijnzeels, T.,
and M. Hoffmann, "A profile for Resource Tagged
Attestations (RTAs)", draft-ietf-sidrops-rpki-rta-00 (work
in progress), January 2021.
[POSIX] IEEE and The Open Group, "The Open Group's Base
Specifications, Issue 7", 2016,
<https://publications.opengroup.org/standards/unix/c165>.
Snijders Expires September 9, 2021 [Page 8]
Internet-Draft RPKI Signed Checklist March 2021
[RFC1952] Deutsch, P., "GZIP file format specification version 4.3",
RFC 1952, DOI 10.17487/RFC1952, May 1996,
<https://www.rfc-editor.org/info/rfc1952>.
[RFC6480] Lepinski, M. and S. Kent, "An Infrastructure to Support
Secure Internet Routing", RFC 6480, DOI 10.17487/RFC6480,
February 2012, <https://www.rfc-editor.org/info/rfc6480>.
[rpki-rsc-demo]
Harrison, T., "A proof-of-concept for constructing and
validating RPKI Signed Checklists (RSCs).", February 2021,
<https://github.com/APNIC-net/rpki-rsc-demo>.
[signify] Unangst, T. and M. Espie, "signify - cryptographically
sign and verify files", May 2014,
<https://man.openbsd.org/signify>.
Appendix A. Acknowledgements
The author wishes to thank George Michaelson, Tom Harrison, Geoff
Huston, Randy Bush, Stephen Kent, Matt Lepinski, Rob Austein, Ted
Unangst, and Marc Espie for prior art. The author thanks Russ
Housley for reviewing the ASN.1 notation and providing suggestions.
The author would like to thank Nimrod Levy, Tom Harrison, Ben
Maddison, and Tim Bruijnzeels for document review and suggestions.
Appendix B. Document changelog - RFC EDITOR: REMOVE BEFORE PUBLICATION
B.1. changes from -00 -> -01
o Readability improvements
o Update document category to match the registry allocation policy
requirement.
B.2. individual submission phase
o On-the-wire change: the 'Filename' switched from 'required' to
'optional'. Some SIDROPS Working Group participants proposed a
checksum itself is the most minimal information required to
address digital objects.
Author's Address
Snijders Expires September 9, 2021 [Page 9]
Internet-Draft RPKI Signed Checklist March 2021
Job Snijders
Fastly
Amsterdam
Netherlands
Email: job@fastly.com
Snijders Expires September 9, 2021 [Page 10]