GFD.225
GFD.225
Groep, Nikhef*
CAOPS-WG Mike Jones, Jisc*
[email protected], Jens Jensen, RAL/STFC*
[email protected], Michael Helm, LBNL/ESNet
[email protected] Milan Sova, CESNET
Scott Rea, DigiCert Inc.
Reimer Karlsen-Masur, DFN-CERT
Ursula Epting, KIT
July 2016
Interoperable Certificate Profile
Status of This Document
This document provides recommendations to the OGF community.
Obsoletes
This document supersedes GFD.125 [1].
Copyright Notice
Copyright © Open Grid Forum (2003–2016). Some Rights Reserved. Distribution is unlimited.
See section 10 for the full copyright statement.
Dedication
This work is dedicated to the memory of our co-author, collaborator, and friend, Milan Sova.
Abstract
This document provides recommendations for the use of directory names, attributes, and ex-
tensions in X.509 certificates, such that they are usable by the majority of the infrastructures
supported by the Interoperable Global Trust Federation (IGTF) today—these used to be exclu-
sively grids but are now more general e-infrastructures and cyberinfrastructures. The intended
audience for this document includes issuers of X.509 certificates for use in such infrastructures,
and implementers of associated X.509 validation software.
Interoperability for X.509 identity certificates between the issuers of certificates and the software
that interprets them is becoming increasingly important as the number of participants in infras-
tructures that rely on X.509 certificates grows. It is difficult to predict which particular software
will be used by the parties relying on the certificate, and how this software interprets specific
name forms, attributes, and extensions. This document makes recommendations and defines
explicit restrictions on the certificate profile (i.e., the types of names and encoding of names
and extensions in certificates) to ensure that the certificate is interpreted by the relying party in
the way the issuer intended. It specifies and further restricts the certificate format as defined in
RFC 5280 [2] and the X.509 standard [3].
This document supersedes GFD.125 [1] by specifying additional constraints and providing further
clarification. Also, where GFD.125 provided guidance, this document provides recommendations.
Contents
Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1 Scope of this document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2 Self-signed and subordinate Certification Authority certificates . . . . . . . . . . . . . 5
2.1 General provisions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.2 Serial Number . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.3 Issuer and Subject names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.3.1 commonName . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.3.2 domainComponent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.3.3 countryName, stateOrProvinceName, localityName, organisationName and
organisationalUnitName . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.3.4 serialNumber . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.3.5 emailAddress . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.3.6 userID and uniqueIdentifier . . . . . . . . . . . . . . . . . . . . . . . . 8
2.4 Extensions in CA certificates . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.4.1 basicConstraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.4.2 keyUsage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.4.3 extendedKeyUsage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.4.4 nsCertType, nsComment, nsPolicyURL and nsRevocationURL . . . . . . 10
2.4.5 certificatePolicies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.4.6 cRLDistributionPoints . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.4.7 authorityKeyIdentifier and subjectKeyIdentifier . . . . . . . . . . . . . . 11
2.4.8 subjectAltName and issuerAltName . . . . . . . . . . . . . . . . . . . . 11
2.4.9 authorityInformationAccess . . . . . . . . . . . . . . . . . . . . . . . . 11
2.4.10 nameConstraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3 End-entity certificates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.1 General provisions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Notational Conventions
The key words “MUST”, “MUST NOT”, “SHOULD”, “SHOULD NOT”, “REQUIRED”,
“SHALL”, “SHALL NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” are to be inter-
preted as described in RFC 2119 [4].
1
If RFC 5280 and this document contradict each other, this document takes precedence.
be used.
Contrary to what may be deduced from the guidance given in X.521, multiple instances of the
organisationName attribute MAY be used in a single DN. It has been confirmed by experience
that all known software used in (grid, or similar) infrastructure deployments as of this writing
correctly handles their representation, and will collate the attributes in the proper order. Also,
multiple instances of the commonName attribute MAY be used.
Note, however, that the visual rendering of a multiple organisationName (O) or commonName
(CN) attributes in many browsers may not be complete, and usually only the first or the last
of these is displayed to the user. This only affects the visual representation, since the known
infrastructure middleware uses the entire DN for subject identification. If no O or OU attributes
appear in the DN, browsers4 might not use other components to show affiliation.
2.3.1 commonName
The commonName SHOULD be used in the subject distinguished name of a CA root certificate,
as it allows easy visual recognition of the CA name. As the CN of the subject DN is often the
most prominently displayed name of the CA, the CN SHOULD be a descriptive string displaying
4
In particular this applies to browsers based on the Mozilla NSS code base.
5
recommendation due to limitations in current implementations
6
Some older jglobus libraries do not calculate the correct issuer hash unless all Issuer RDNs are encoded as
printableString.
the human-readable name of the authority7 . In addition the use of the “O” entry is encouraged,
as it, too, is likely to be displayed.
2.3.2 domainComponent
If the countryName (C) attribute is used, the value of this attribute SHOULD contain the two-
letter ISO 3166 [6] encoding of the country’s name8,9 . The countryName, if used, MUST be
used at most once.
Any of the stateOrProvinceName (ST), localityName (L), organisationName (O), and
organisationalUnitName (OU) attributes MAY be used and SHOULD be used in the intended
X.501 sense.
The use of at least one descriptive organisationName (O) attribute in the DN is RECOM-
MENDED.
7
Having a commonName of just “CN=CA” will result in the display name of the CA in many browsers to
show just the string ‘CA’ as the name, which may result in confusion.
8
The designation UK is an well-known exception, mainly for historical reasons—GB is the official ISO 3166-1
representation for the United Kingdom of Great Britain and Northern Ireland, although in many contexts the
designation “UK” is used for the same. Either GB and UK MAY be used as designations. Note that the Ukraine
MUST be encoded as UA.
9
In case the countryName (C) is used as part of the varying part of the subject distinguished name (i.e., it
is not part of the constant DN prefix that defines the issuing namespace), the countryName (C) asserted in the
subject DN of an end-entity certificate SHOULD correspond the home country of the end-entity, and thus does
not necessarily reflect and is not necessarily the same as the country in which the CA is operating, or the country
code in the issuer DN. Therefore, in such cases the countryName attribute SHOULD NOT be part of a subject
DN naming prefix.
2.3.4 serialNumber
The attribute type serialNumber {2.5.4.5} MUST NOT be used in any Name10 .
2.3.5 emailAddress
The attribute type emailAddress MUST NOT be used in DNs. It has been deprecated in
RFC 5280, in favour of having an rfc822Name GeneralName in the subjectAltName extension,
and recent mail clients can deal with subjectAltName11,12 .
The attribute type userID or uid {0.9.2342.19200300.100.1.1} MUST NOT be used in DNs. The
attribute uniqueIdentifier {2.5.4.45} MUST NOT be used in DNs. Additionally, it is not relevant
for CA certificates of any kind13 .
no a priori requirement by (grid) software for any other extensions in the certificate.
Summary of extensions and attribute usage
Required basicConstraints, keyUsage, subjectKeyIdentifier,
authorityKeyIdentifier
Advised to use
for all CAs: cRLDistributionPoints,
Optional
for subordinate CAs: certificatePolicies, authorityInformationAccess
Should not be used extendedKeyUsage, nsPolicyURL, nsRevocationURL, nsComment,
nsCertType, nameConstraints (for grid-only CAs)
2.4.1 basicConstraints
2.4.2 keyUsage
2.4.3 extendedKeyUsage
The ns* extensions are deprecated and MUST NOT be included in any new CA certificates19 .
2.4.5 certificatePolicies
The presence of a certificatePolicies extension is not harmful, but adding this extension in self-
signed root CA certificates permanently binds this CA certificate to the particular instance of the
policies referenced and is thus not advisable20 . The certificatePolicies extension MAY be set for
subordinate CAs and if set MUST include only policy OIDs.
If present, it SHOULD NOT be marked critical.
2.4.6 cRLDistributionPoints
For a subordinate CA’s certificates, where a CDP is present, it MUST contain at least one http
URI22 pointing to a DER formatted CRL for its issuer.
No stipulation.
2.4.9 authorityInformationAccess
The authorityInformationAccess (AIA) extension for subordinate CAs MAY include OCSP infor-
mation24 and issuing CA location.
2.4.10 nameConstraints
The nameConstraints extension (OID {2.5.29.30}) is not relevant for grid purposes today and its
use is NOT RECOMMENDED25 .
22
A CDP should be a HTTP URI; as the CRL is already signed by the issuing CA, using HTTPS adds no
extra security and may cause problems. In particular, if the HTTPS endpoint is secured with a certificate from
the same CA as the certificate which is being checked, software attempting to fetch a CRL will then check the
host certificate validity, for which they need to fetch the CRL, for which they need to check the host certificate
validity,. . . Also, if the CA issuing the host certificate isn’t known to the browser, fetching the CRL is also likely
to fail.
23
Not including the subjectKeyIdentifier or authorityKeyIdentifier is not known to break any grid software.
24
Running an OCSP responder, according to current best practices, is recommended and it should be run as a
highly-available service on a 24x7 basis. If such a production OCSP responder is available, its access information
SHOULD be included in the AIA extension. If no highly-available OCSP service is present, there SHOULD NOT
be an OCSP end-point included in the AIA extension.
25
The interpretation of the nameConstraints extension varies significantly between implementations and there-
fore SHOULD be avoided in CA certificates, and is not relevant for end-entity certificates. Note that this applies
to CA-defined namespace constraints, and this is completely independent of any constraints on the subject signing
3 End-entity certificates
3.1 General provisions
All end-entity certificates MUST be in X.509 version 3 format, i.e. the version number MUST be
set to the value “2”, as the use of specific extensions, such as basicConstraints and keyUsage, is
required.
3.3.1 commonName
Note that additional FQDNs can be asserted in the subjectAltName extension in multiple dNSName
GeneralNames35 , e.g. to support name-based virtual hosting.
3.3.2 domainComponent
As mentioned in the beginning of section 3.3, the use of domainComponent (DC) is strongly
encouraged. The values must be DNS names registered to the authority (or the organisation
running the authority). The domainComponent entries must be the first RDNs in the DN, with
the top-level domain being the very first in the ASN.1 SEQUENCE, for example “DC=org” or
“DC=eu”.
The domainComponent attribute SHOULD be encoded with IA5String37 (see section 4.3.2).
The value of each domainComponent RDN MUST NOT contain characters other than the ASCII
characters: 0-9, a-z, A-Z, ’-’ (hyphen) and ’ ’ (underscore).
If the countryName (C) attribute is used, the value of this attribute SHOULD contain the two-
letter ISO3166 encoding of the country’s name38,39 . The countryName, if used, MUST be used
at most once.
Any of the stateOrProvinceName (ST), localityName (L), organisationName (O), and
organisationalUnitName (OU) attributes MAY be used and SHOULD be used in the intended
X.501 sense.
The use of at least one descriptive organisationName (O) attribute in the DN is RECOM-
MENDED.
35
Many browsers modern36 , such as Microsoft Internet Explorer version 6 and higher, or Mozilla Firefox
versions 1.5 and higher, will recognize these additional dNSNames in the subjectAltName and recognise it as valid
alternate names for the virtual web site.
37
OpenSSL 0.9.7c and older encoded domainComponent as PrintableString. However, all known software
should correctly parse domainComponent encoded as PrintableString or UTF8String.
38
The designation UK is an well-known exception, mainly for historical reasons—GB is the official ISO 3166-1
representation for the United Kingdom of Great Britain and Northern Ireland, although in many contexts the
designation “UK” is used for the same. Either GB and UK MAY be used as designations. Note that the Ukraine
MUST be encoded as UA.
39
In case the countryName (C) is used as part of the varying part of the subject distinguished name (i.e., it
is not part of the constant DN prefix that defines the issuing namespace), the countryName (C) asserted in the
subject DN of an end-entity certificate SHOULD correspond the home country of the end-entity, and thus does
not necessarily reflect and is not necessarily the same as the country in which the CA is operating, or the country
code in the issuer DN. Therefore, in such cases the countryName attribute should not be part of a unique subject
DN naming prefix.
3.3.4 serialNumber
The AttributeType serialNumber (i.e. {2.5.4.5}) MUST NOT be used in any Name40 .
Specifically, the serialNumber attribute MUST NOT be used to re-encode the certificate serial
number in the subject name41 .
3.3.5 emailAddress
The attributes streetAddress and postalCode are either not consistently represented in software,
or are not recognised as valid attributes44 . They MUST NOT45 be used.
There is no a priori requirement by grid software for any other extension in end entity certificates.
End-entity subject extensions and attribute recommendations
Required keyUsage, extendedKeyUsage
Advised to use basicConstraints, cRLDistributionPoints, certificatePolicies,
subjectAltName, authorityInformationAccess
Optional authorityKeyIdentifier, subjectKeyIdentifier, issuerAltName
SHOULD NOT be used nsCertType
3.4.1 basicConstraints
3.4.2 keyUsage
The keyUsage extension MUST be included in end-entity certificates, and it MUST be marked
critical.
For an end-entity certificate, the values that need to be set depend on certificate usage:
The digitalSignature and keyEncipherment values/bits MUST be set for authentication in SSL
sessions, and thus for typical grid usage, as otherwise grid authentication will not work. These
two are the only values that are actually required.
The keyAgreement, encipherOnly, and decipherOnly values/bits primarily apply to DH keys, and
need not normally be asserted in an end-entity certificate.
The nonRepudiation (contentCommitment) value/bit SHOULD NOT be set for server certificates
(including “host” and “service” certificates), as it implies that any use of the key would constitute
incontrovertible evidence that the signing was done in a conscious way, which is unlikely for a
server certificate. It SHOULD NOT be set in other end-entity certificates either, as the claims
made by this keyUsage are ill-defined or non-verifiable, and its interpretation by clients unclear. If
47
According to the ASN.1 encoding rules, a value “CA:FALSE” for basicConstraints is the default and thus
should not need to be encoded as an extension. However, discussions on the PKIX mailing list in April 2008,
leading up to RFC 5280, made clear that it would be strongly advisable to include it. It is not known if there is
client software that will incorrectly allow signing of subordinate certificates if this extension is absent.
48
Note that RFC 5280 forbids the use of pathLenConstraints in end-entity certificates. If it is included anyway,
it would have to allow for an unlimited path length to allow the user to issue proxy certificates [12].
it is set regardless, its assertion in personal end-entity certificates SHOULD be limited to special
purposes.
The dataEncipherment value/bit is RECOMMENDED in order to enable use of the certificates
with specific implementations of message-level security mechanisms where messages are to be
encrypted49 .
The keyCertSign and cRLSign values/bits MUST NOT be set in an end-entity certificate, unless
the certificate is explicitly intended for use in indirect CRL signing (see section 2.4.2).
3.4.3 extendedKeyUsage
nsCertType
This extension is deprecated. It MUST NOT be used in new certificates; the appropriate equiv-
alent values SHOULD be expressed in the extendedKeyUsage extension51 .
49
The dataEncipherment usage is intended to refer to the direct use of the RSA key in enciphering data,
and as such ought to bear no relevance to the encryption of documents with a session key, however some web
services stacks to date require this usage to be set in order to use the certificate for use in XML encryption
and message-level security. This has been verified for exchanging encrypted messages via GSISecureMessage as
implemented in the Globus Toolkit middleware. This includes the receiving entity’s certificate that must have the
dataEncipherment keyUsage extension set if keyUsage itself is set to be a critical extension.
50
This dual-use of host and service certificates action in both a server and a client role is required for, for
example, the Network Job Service (NJS) and the Gateway in the Unicore grid middleware, where one NJS may
forward a request to another NJS, and in this interaction the NJS acts as a client.
51
The extendedKeyUsage and nsCertType extensions are interrelated and partially cover the same purposes.
Either of these has to be present to ensure correct operation of grid and other software, and nsCertType MUST
NOT be used. For example for certificates issued to a Unicore NJS service, the nsCertType can be set to “server,
client” but the preferred way to expressing this is by setting eKU to “serverAuth, clientAuth”.
nsPolicyURL, nsRevocationURL
These attributes are deprecated and MUST NOT be used in end-entity certificates.
nsComment
This attribute is deprecated and SHOULD NOT be used in end-entity certificates52 . If it is
included, this extension MUST NOT be marked critical.
3.4.5 certificatePolicies
The certificatePolicies extension SHOULD be included and be used in accordance with RFC 5280
(section 4.2.1.4).For an IGTF CA, it is RECOMMENDED to use IGTF OIDs [13] to promote
interoperation.
3.4.6 cRLDistributionPoints
subjectKeyIdentifier
The subjectKeyIdentifier (SKI) extension MUST NOT be marked critical.
authorityKeyIdentifier
The authorityKeyIdentifier (AKI) is not usually interpreted by the software, and is considered
harmless to current known grid software. The AKI extension MUST NOT be marked critical.
If the AKI in an end-entity certificate contains information that changes when the issuer certificate
is modified, it may block a ‘smooth’ replacement of issuer certificates (e.g. when updating a CA
certificate to extend the expiry date). Thus, the authorityCertSerialNumber MUST NOT be used.
Possible other values in AKI include the directoryName of the authority that issued the issuer
certificate, which is safe to include as it should not change58 , or the keyIdentifier of the end-entity
issuing CA. If the keyIdentifier has been generated using one of the two recommended methods
from RFC 5280 (i.e., is purely derived from the public key value), it will not impair smooth
replacement.
The subjectAltName extension SHOULD be present for server certificates (including “host” and
“service” certificates in the grid context), and, if present, MUST contain at least one FQDN in
the dNSName GeneralName. If the certificate contains a CN, then the CN SHOULD consist of
the same FQDN as one of the subjectAltName dNSName values59 .
If an end-entity certificate needs to contain an rfc822 email address, this address SHOULD be
included in the subjectAltName as an rfc822Name GeneralName. The email address MUST NOT
form part of the Subject DN (see 3.3.5).
Multiple FQDNs, in host certificates, MAY be added as dNSName GeneralNames60 . Every name
that clients will use to connect to the server(s) SHOULD be contained in the subjectAltName
extension, cf. RFC2818, section 3.1 (server identity). There is no need to include the canonical
name if it is different from the name the clients use.
58
The DN of the CA must be changed at every rollover (due to software that does not allow two different CA
certificates with the same DN). But at rollover, the key should also be changed, and the end entity certificate
should continue to validate only under the old CA certificate.
59
If the certificate contains more than one CN, then one of them should be the same as the subjectAltName.
60
An example is a web server certificate where the server supports hosting of several secured web sites.
Wildcards in hostnames SHOULD NOT be used (they are not FQDNs); if used, the wildcard
SHOULD be a single ’*’ used as, and only as, the most specific (leftmost) entry in the domain
name (cf. RFC1034 [15], 3.1), e.g., ‘*.example.com’.
3.4.9 authorityInformationAccess
The authorityInformationAccess extension is used by the issuer to refer the validator to an OCSP
service that the issuer recommends using.
It is RECOMMENDED to include this extension if the issuer operates a production-quality OCSP
service. The extension SHOULD NOT be included unless it points to a highly-available service.
The extension MAY also contain a CRL URI, as described in RFC 4325, or the location of any
higher-level CA certificates, but it should be noted that regardless, a CRL http URI MUST also
be included in the cRLDistributionPoints extension.
The extension MUST NOT be marked critical.
3.4.10 nameConstraints
No additional stipulation.
4 General Considerations
4.1 Message Digest Algorithms
For the message digest that protects the certificate integrity, known-weak signatures or hash
functions, such as MD5 (RFC 1321 [16]) and SHA-1 (RFC 3174 [17]), MUST NOT be used in
new certificates (RFC 6151 [18]), since the MD5 hash function known to have collisions, and
SHA-1 has been shown to provide less than 80 bits of security. The current most secure hash
function that is supported by the entire target audience of the CA SHOULD be used. In particular
SHA-2 (RFC 6234 [19]) SHOULD be used and a digest function at least as strong as SHA-256
MUST be used61 .
tions64,65 .
RFC 2252 defines PrintableString as consisting of ‘a’–‘z’, ‘A’–‘Z’, ‘0’–‘9’, and the characters ‘"’,
‘(’, ‘)’, ‘+’, ‘,’, ‘-’, ‘.’, ‘/’, ‘:’, ‘?’, ‘ ’.
Summary of PrintableString Characters and encodings
character(s) name Equivalent Unicode name and code point [22]
‘a’–‘z’, Latin alphanumeric LATIN SMALL LETTER A (U+0061) –
LATIN SMALL LETTER Z (U+007A)
‘A’–‘Z’, LATIN CAPITAL LETTER A (U+0041) –
LATIN CAPITAL LETTER Z (U+005A)
‘0’–‘9’, DIGIT ZERO (U+0030) –
DIGIT NINE (U+0039)
‘"’ double quote QUOTATION MARK (U+0022)
‘(’, ‘)’ left and right parentheses LEFT PARENTHESIS (U+0028),
RIGHT PARENTHESIS(U+0029)
‘+’ plus PLUS SIGN (U+002B)
‘,’ comma COMMA (U+002C)
‘-’ minus/hyphen HYPHEN-MINUS (U+002D)
‘.’ dot/period FULL STOP (U+002E)
‘/’ forward slash66 SOLIDUS (U+002F)
‘:’ colon COLON (U+003A)
‘?’ question mark QUESTION MARK (U+003F)
‘ ’ space SPACE (U+0020)
This set is almost consistent with the PrintableString definition of RFC 1778, differing only in
allowing ‘'’ single quote {APOSTROPHE (U+0027)}, instead of ‘"’ double quote {QUOTATION
MARK (U+0022)}.
64
Non-7-bit ASCII characters have different string representations in different pieces of software, and cannot
easily be passed around between locales, or be read from log files. Use of such characters will result in undefined
or inconsistent behaviour, e.g. in subsequent authorisation. Often, only the string representation is available, e.g.
in a log file, and for security reasons such as incident response it should be possible to type the DN from a printed
or aural representation of it.
65
Current versions of OpenSSL (1.0.1) actually encode many RDNs by default as UTF8String even when the
value could be encoded as a PrintableString.
66
OpenSSL uses forward slash (“/”) in the one-line string representation to separate RDNs, making the use
of the forward slash potentially confusing. But since there is always an equal sign (=) after the name of a RDN
component in this representation and the equal sign is not part of the allowed character set, a proper parser should
be able to parse this correctly.
4.3.2 IA5String
IA5Strings are strings consisting entirely of 8-bit representation of characters from the ASCII
7-bit character set—defined as the International Alphabet No.5, now known as the International
Reference Alphabet (IRA) [23].
4.3.3 UTF8String
For the purposes of this document, a UTF8String consists of a subset of the character set defined
in ISO/IEC 10646 [24], with the following provisions:
(a) A UTF-8 encoded string MUST NOT contain non-printable characters (ASCII 31 and
below, or ASCII 127).
(b) Character codes where the character representation is subject to national or regional vari-
ations SHOULD NOT be used.
(c) In particular, diacritical marks and other combining marks MUST NOT be used.
(d) For security reasons, an implementation SHOULD check for illegal characters and illegal
UTF-8.
(e) COLON (‘:’) SHOULD NOT be used (see 4.3.1).
The characters are encoded in UTF-8 according to RFC 3629 [25]. In particular, every character
is encoded in one octet.
67
OpenSSL follows RFC 1778’s definition of PrintableString.
68
The COLON (“:”) character is used as a field separator in ‘htpasswd’ files with FakeBasicAuth as used in
Apache mod ssl and cannot be escaped in that format. Subjects with a colon in their DN will not be listable in
this file format.
69
While PrintableString encodings are supposed to be case insensitive [2], in practice most grid software uses
case sensitive comparisons. A related problem is found with consecutive spaces which are supposed to be collapsed
to a single space.
RFC 4514 string representation CN=My Authority 1, O=MyOrg Authorities, DC=example, DC=org
OpenSSL oneline representation /DC=org/DC=example/O=MyOrg Authorities/CN=My Authority 1
ASN.1 sequence SEQUENCE
SET
SEQUENCE
OBJECT :domainComponent
IA5STRING :org
SET
SEQUENCE
OBJECT :domainComponent
IA5STRING :example
SET
SEQUENCE
OBJECT :organization
PRINTABLESTRING :MyOrg Authorities
SET
SEQUENCE
OBJECT :commonName
PRINTABLESTRING :My Authority 1
RFC 4514 string representation CN=My Authority 1, O=MyOrg Authorities, C=lu
OpenSSL oneline representation /C=lu/O=MyOrg Authorities/CN=My Authority 1
ASN.1 sequence SEQUENCE
SET
SEQUENCE
OBJECT :country
PRINTABLESTRING :lu
SET
SEQUENCE
OBJECT :organization
PRINTABLESTRING :MyOrg Authorities
SET
SEQUENCE
OBJECT :commonName
PRINTABLESTRING :My Authority 1
While for an end-entity names “Jürgen Schmidt”, the following forms could be used:
6 Security Considerations
The correct and complete interpretation of any and all parts of a certificate is essential to main-
taining the integrity of the system that relies on them. Inconsistencies in name ordering and
representation, as well as the use of non-standard attributes and extensions that are not well
tested with the validation software and subsequent authorisation systems may leave holes in a de-
ployment which relies upon X.509 certificates. Where such adverse interactions are known, they
have been highlighted in the corresponding sections of this document. However, the absence of
any such warnings may not be construed as to mean that no security issues exist.
7 Contributors
This document captures the collective knowledge of many people, and the editors are grateful for
the essential contributions made to this document by the members of the Interoperable Global
Trust Federation (IGTF, see http://www.gridpma.org/), the individual certification authorities
and their staff, and relying parties that have conducted the experiments and tests, and the
contributions from the participants in the Open Grid Forum (www.ogf.org) CAOPS Working
Group.
David L. Groep (Editor)
Nikhef
PObox 41882,
NL 1009 DB, Amsterdam, The Netherlands
Email: [email protected]
Michael A. S. Jones (Editor)
Jisc
6th Floor, Churchgate House
56 Oxford Street
Oxford Road, Manchester
United Kingdom
Email: [email protected]
Jens Jensen (Editor)
Scientific Computing Department
R89, F22
STFC Rutherford Appleton Laboratory
Harwell Oxford Campus
Chilton
Didcot
Oxfordshire, OX11 0QX
Email: [email protected]
of claims of rights made available for publication and any assurances of licenses to be made
available, or the result of an attempt made to obtain a general license or permission for the use
of such proprietary rights by implementers or users of this specification can be obtained from the
OGF Secretariat.
The OGF invites any interested party to bring to its attention any copyrights, patents or patent
applications, or other proprietary rights which may cover technology that may be required to
practice this recommendation. Please address the information to the OGF Executive Director.
9 Disclaimer
This document and the information contained herein is provided on an “As Is” basis and the OGF
disclaims all warranties, express or implied, including but not limited to any warranty that the use
of the information herein will not infringe any rights or any implied warranties of merchantability
or fitness for a particular purpose.
11 References
[1] David L. Groep, Michael Helm, Jens Jensen, Milan Sova, Scott Rea, Reimer Karlsen-Masur,
Ursula Epting, and Mike Jones. Grid Certificate Profile. GFD-C.125, March 2008. URL
http://www.ogf.org/documents/GFD.125.pdf.
[2] D. Cooper, S. Santesson, S. Farrell, S. Boeyen, R. Housley, and W. Polk. Internet X.509
Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile. RFC
5280 (Proposed Standard), May 2008. URL https://www.ietf.org/rfc/rfc5280.txt.
Updated by RFC 6818.
[3] International Telecommunication Union. The directory: Public-key and attribute certificate
frameworks. ITU-T Recommendation X.509, November 2008. URL http://www.itu.int/
rec/T-REC-X.509.
[4] Scott Bradner. Key words for use in RFCs to Indicate Requirement Levels. RFC 2119 (Best
Current Practice), March 1997. URL https://www.ietf.org/rfc/rfc2119.txt.
[5] R. Housley and S. Santesson. Update to DirectoryString Processing in the Internet X.509
Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile. RFC 4630
(Proposed Standard), 2006. URL https://www.ietf.org/rfc/rfc4630.txt. Obsoleted
by RFC 5280.
[6] ISO (International Standards Organization) 3166 Maintenance Agency. Country Codes -
ISO 3166. URL http://www.iso.org/iso/country_codes.htm.
[7] International Telecommunication Union. The directory: Selected attribute types. ITU-T
Recommendation X.520, November 2008. URL http://www.itu.int/rec/T-REC-X.520.
[8] Vivek Kaushik. Digital Certificate Extensions: Should “Basic Constraints” Be Marked
Critical?, September 2007. URL https://www.netrust.net/docs/whitepapers/
BasicConstraints_whitepaper_v1.0.pdf.
[9] David L. Groep and Jens Jensen (eds.). Relying Party Defined Namespace Constraints
Policies in a Policy Bridge PKI Environment. GFD.189, June 2011. URL http://www.ogf.
org/documents/GFD.189.pdf.
[10] S. Farrell, R. Housley, and S. Turner. An Internet Attribute Certificate Profile for Authoriza-
tion. RFC 5755 (Proposed Standard), January 2010. URL https://www.ietf.org/rfc/
rfc5755.txt.
[11] D. Crocker. STANDARD FOR THE FORMAT OF ARPA INTERNET TEXT MESSAGES.
RFC 822 (INTERNET STANDARD), August 1982. URL https://www.ietf.org/rfc/
rfc822.txt. Obsoleted by RFC 2822 (which in turn is obsoleted by RFC 5322), updated
by RFCs 1123, 2156, 1327, 1138, 1148.
[12] S. Tuecke, V. Welch, D. Engert, L. Pearlman, and M. Thompson. Internet X.509 Public
Key Infrastructure (PKI) Proxy Certificate Profile. RFC 3820 (Proposed Standard), 2004.
URL https://www.ietf.org/rfc/rfc3820.txt.
[15] P. Mockapetris. Domain names - concepts and facilities. RFC 1034, November 1987.
updated by RFCs 1101, 1183, 1348, 1876, 1982, 2065, 2181, 2308, 2535, 4033-5, 4343,
4035, 4592, 5936.
[16] R. Rivest. The MD5 Message-Digest Algorithm. RFC 1321 (Informational), April 1992.
URL https://www.ietf.org/rfc/rfc1321.txt. Updated by RFC 6151.
[17] D. Eastlake 3rd and P. Jones. US Secure Hash Algorithm 1 (SHA1). RFC 3174 (Informa-
tional), September 2001. URL https://www.ietf.org/rfc/rfc3174.txt. Updated by
RFCs 4634, 6234.
[18] S. Turner and L. Chen. Updated Security Considerations for the MD5 Message-Digest
and the HMAC-MD5 Algorithms. RFC 6151 (Informational), March 2011. URL https:
//www.ietf.org/rfc/rfc6151.txt.
[19] D. Eastlake 3rd and T. Hansen. US Secure Hash Algorithms (SHA and SHA-based HMAC
and HKDF). RFC 6234 (Informational), May 2011. URL https://www.ietf.org/rfc/
rfc6234.txt.
[20] International Telecommunication Union. The directory: Selected object classes. ITU-T
Recommendation X.521, November 2008. URL http://www.itu.int/rec/T-REC-X.521.
[22] The Unicode Consortium. The Unicode standard, version 6.3.0, 2013. URL http://www.
unicode.org/versions/Unicode6.3.0/. visited on 2014-06-30.
[24] ISO 10646. Information technology – Universal Coded Character Set (UCS), 2012. URL
http://standards.iso.org/ittf/PubliclyAvailableStandards/c056921_ISO_
IEC_10646_2012.zip.
[25] F. Yergeau. UTF-8, a transformation format of ISO 10646. RFC 3629 (INTERNET STAN-
DARD), November 2003. URL https://www.ietf.org/rfc/rfc3629.txt.
[26] Burt Kaliski. Twirl and rsa key sizes, May 2003. URL http://www.rsasecurity.com/
rsalabs/node.asp?id=2004. visited on 2007-10.
[27] Elaine Barker, William Barker, William Burr, William Polk, and Miles Smid. NIST
SP800-57: Recommendation for Key Management Part 1: General(Revised). Tech-
nical report, 2007. URL http://csrc.nist.gov/publications/nistpubs/800-57/
sp800-57-Part1-revised2_Mar08-2007.pdf.