I'm assuming that this draft will get modified to point to the
-signed-objects draft so I'm going to skip commenting on the CMS
paragraphs. Here are my comments on the rest of the draft:
1) One thing I noted about this draft (and the -roa draft) is that
it's going to need an ASN.1 module (well it will be needed before the
proto write-up is accepted). The OID for the module should probably
come from the same arc as the content type but it's not necessary.
Below is a suggested module (not sure whether you want an IMPLICIT or
an EXPLICIT module).
There are two changes that needs to be made in Section 4.1.3.2 (1.a
and 1.b) and one optional change (1.c):
1.a) The constraints comes between the SEQUENCE and the OF and the
bounds need to be brackets.
OLD:
fileList SEQUENCE OF (SIZE 0..MAX) FileAndHash
NEW:
fileList SEQUENCE SIZE (0..MAX) OF FileAndHash
1.b) Need comma on "file" line.
OLD:
FileAndHash ::= SEQUENCE {
file IA5String
hash BIT STRING
}
NEW:
FileAndHash ::= SEQUENCE {
file IA5String,
hash BIT STRING
}
1.c) If number is similar to CRLNumber should we add a constraint like
CRLNumber has:
OLD:
manifestNumber INTEGER,
NEW:
manifestNumber INTEGER (0..MAX),
1.d) Here's module (incorporates 1.a and 1.c) that could go in an
Appendix:
------------------------------------------------------
RPKIManifest { iso(1) identified-organization(3)
dod(6) internet(1) security(5) mechanisms(5) smime(7)
mod(0) TBD }
DEFINITIONS EXPLICIT TAGS ::=
BEGIN
-- EXPORTS ALL --
-- IMPORTS NOTHING --
-- Manifest Content Type: OID
id-smime OBJECT IDENTIFIER ::= { iso(1) member-body(2)
us(840) rsadsi(113549) pkcs(1) pkcs9(9) 16 }
id-ct OBJECT IDENTIFIER ::= { id-smime 1 }
id-ct-rpkiManifest OBJECT IDENTIFIER ::= { id-ct 26 }
-- Manifest Content Type: eContent
Manifest ::= SEQUENCE {
version [0] INTEGER DEFAULT 0,
manifestNumber INTEGER (0..MAX),
thisUpdate GeneralizedTime,
nextUpdate GeneralizedTime,
fileHashAlg OBJECT IDENTIFIER,
fileList SEQUENCE SIZE (0..MAX) OF FileAndHash
}
FileAndHash ::= SEQUENCE {
file IA5String,
hash BIT STRING
}
END
------------------------------------------------------
2) Abstract:
r/Resource Public Key Infrastructure/Resource Public Key
Infrastructure (RPKI)
r/CRL/Certificate Revocation List (CRL)
3) Sec 1: r/CRLs/Certificate Revocation Lists (CRLs)
4) Sec 1.1: r/ [RFC5280]>/[RFC5280]
5) Sec 1.1: Add that familiarity with -signed-objects and -res-certs
is assumed.
6) Sec 1.1 & 13: Add normative reference to 2119.
And, r/RFC 2119/RFC-2119 [RFC2119].
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
7) Sec 2: Add reference to res-certs for single-use/multi-use (I know
it's in the next section, but the reference should appear the 1st time
these terms are used)
8) Sec 2:
r/SIA/Subject Information Access (SIA)
r/OID/Object Identifier (OID)
9) Sec 2: r/EE's key/EE's private key
10) Sec 3: If we're going to retain the "one-time-use" and
"sequential-use" concepts they should be discussed in the -res-certs
draft and probably also in the -arch drafts?
11) No comments on 4 modulo 4.1.3.2.*
12) Sec 4.1.3.2.1: r/CRLS/CRLs
13) Sec 4.1.3.2.1: r/"sequential-use EE/"sequential-use" EE
14) Sec 4.1.3.2.1.1: r/The version number of this version of the
manifest specification is 0. /The version number of the Manifest MUST
be 0.
15) Sec 4.1.3.2.1.2: If this field is analogous to CRLNumber I think
you need to say something about how big the integer can be. I suggest
tweaking the text from RFC 5280:
Manifest numbers can be expected to contain long integers. Manifest
verifiers MUST be able to handle number values up to 20 octets.
Conforming Manifest issuers MUST NOT use number values longer than 20
octets.
16) Sec 4.1.3.2.1.3/4: Need to say something about the format for the
date. Just point or copy the text from 5280:
GeneralizedTime values MUST be expressed in Greenwich Mean Time (Zulu)
and MUST include seconds (i.e., times are YYYYMMDDHHMMSSZ), even where
the number of seconds is zero. GeneralizedTime values MUST NOT
include fractional seconds.
17) Sec 4.1.3.2.1.4: r/the nextUpdate field of the manifest MUST match
that of the CRL,/the nextUpdate field of the manifest MUST match the
CRL's nextUpdate field,
18) Sec 4.1.3.2.1.6: Should there be an upper bound on the length of
the IA5String? You're probably also going to need to say something
about why IA5String is okay (i.e., why aren't you supporting
internationalized file names).
19) Sec 6: I have to ask why Sec 6 is in this document and not in the
res-cert document?
20) Sec 7: List only the additional checks that aren't in -signed-objects
21) Sec 8:
r/should placed/SHOULD be placed
r/should/SHOULD
22) Sec 8.1: r/relying party should/relying party SHOULD
23) Sec 8.2-.6: r/this situation should/this situation SHOULD X7
24) Sec 8.6: Indicates that thisUpdate can be used if there's more
than one valid CRL. Shouldn't we be using the CRLNumber extension?
It's required and that is what it's for.
25) Sec 9: t might be worth noting that the first CRL issued by the CA
is goign to be an empty CRL (i.e., one that has no entries).
26) Sec 10: Add that the security considerations of -signed-objects apply.
27) Sec 10: r/structure ./structure.
28) Sec 13: Refer to 6019 instead of 4049.
29) Sec 13 & 1: Probably need to add a reference to ASN.1 [X.208-88].
Maybe put in the intro that "This document defines the Abstract
Syntax Notation One (ASN.1) [X.208-88] for the Manifest object."
30) We should probably say something about the required encoding
scheme (BER or DER) for the content and add a reference to [X.209-88].
I like DER, but I'd understand using BER if these are going to get
really large. Have folks already generated these - which did they use?
31) It would be awesome if there were example encodings (hex dumps)
provided in an Appendix. If the res-certs profile had CA and EE cert
examples, you could use them in the example. It would tie it all up
nicely. It would also make it feel more "real" because you actually
got an implementation to generate this thingie (or you got somebody
smart who can hand code ASN.1 ;).
NOTE: Comments 29, 30, and 31 also apply to the -roa draft.
Cheers,
spt
[email protected] wrote:
A New Internet-Draft is available from the on-line Internet-Drafts directories.
This draft is a work item of the Secure Inter-Domain Routing Working Group of
the IETF.
Title : Manifests for the Resource Public Key Infrastructure
Author(s) : R. Austein, et al.
Filename : draft-ietf-sidr-rpki-manifests-07.txt
Pages : 27
Date : 2010-05-12
This document defines a "manifest" for use in the Resource Public Key
Infrastructure. A manifest is a signed object that contains a
listing of all the signed objects in the repository publication point
associated with an authority responsible for publishing in the
repository. For each certificate, CRL, or other type of signed
objects issued by the authority that are published at this repository
publication point, the manifest contains both the name of the file
containing the object, and a hash of the file content. Manifests are
intended to enable a Relying Party to detect certain forms of attacks
against a repository. Specifically, if a Relying Party checks a
manifest's contents against the signed objects retrieved from a
repository publication point, then the Relying Party can detect
"stale" (valid) data and deletion of signed objects.
A URL for this Internet-Draft is:
http://www.ietf.org/internet-drafts/draft-ietf-sidr-rpki-manifests-07.txt
Internet-Drafts are also available by anonymous FTP at:
ftp://ftp.ietf.org/internet-drafts/
Below is the data which will enable a MIME compliant mail reader
implementation to automatically retrieve the ASCII version of the
Internet-Draft.
------------------------------------------------------------------------
_______________________________________________
sidr mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/sidr
_______________________________________________
sidr mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/sidr