Internet DRAFT - draft-hallambaker-ocspdigest
draft-hallambaker-ocspdigest
Internet Engineering Task Force P. Hallam-Baker
Internet-Draft Comodo Group Inc.
Intended status: Standards Track R. Stradling
Expires: April 22, 2013 Comodo CA Ltd.
October 19, 2012
OCSP Digest Extension
draft-hallambaker-ocspdigest-01
Abstract
The OCSP digest extension creates a strong cryptographic binding
between an OCSP token and the certificate it asserts a status value
for. Support for the digest identifier extension permits a
certificate issuer to employ a high assurance cryptographic digest
function such as SHA2 to attest to the authenticity of their
certificates in a fashion that is fully downwards compatible with
legacy clients that only support SHA1.
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 http://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 April 22, 2013.
Copyright Notice
Copyright (c) 2012 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
(http://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
Hallam-Baker & Stradling Expires April 22, 2013 [Page 1]
Internet-Draft OCSP Extensions October 2012
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. Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1. Requirements Language . . . . . . . . . . . . . . . . . . . 3
2. Purpose . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.1. Digest Agility . . . . . . . . . . . . . . . . . . . . . . 3
2.2. Transparency Requirement . . . . . . . . . . . . . . . . . 4
2.3. The Current OCSP Protocol . . . . . . . . . . . . . . . . . 5
3. Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.1. OCSP Request . . . . . . . . . . . . . . . . . . . . . . . 6
3.2. OCSP Response . . . . . . . . . . . . . . . . . . . . . . . 7
3.2.1. Transparency requirement . . . . . . . . . . . . . . . 7
4. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 7
5. Security Considerations . . . . . . . . . . . . . . . . . . . . 7
5.1. Disclosing non existence of certificates . . . . . . . . . 8
5.2. Client disclosure of certificate digest identifier . . . . 8
5.3. Client detection of service compromise . . . . . . . . . . 8
5.4. Verifying service compliance . . . . . . . . . . . . . . . 8
6. For discussion. . . . . . . . . . . . . . . . . . . . . . . . . 8
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 9
8. Normative References . . . . . . . . . . . . . . . . . . . . . 9
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 9
Hallam-Baker & Stradling Expires April 22, 2013 [Page 2]
Internet-Draft OCSP Extensions October 2012
1. Definitions
1.1. Requirements Language
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 RFC 2119 [RFC2119].
2. Purpose
The OCSP digest identifier is provides a mechanism that permits a new
cryptographic digest function to be used to authenticate an X.509v3
certificate in a manner that is fully backwards compatible with
deployed browsers. This capability overcomes a 'deployment deadlock'
condition that would otherwise make deployment of new cryptographic
digest algorithms unacceptable to many certifcate users.
A second advantage of the OCSP digest identifier is to provide an
affirmative demonstration that the OCSP responder had actual
knowledge of the existence of the certificate whose status is being
queried. This provides a transparency control on the operation of
the Certificate Authority issuing the certificate. A Certificate
Authority that has lost track of which certificates have been
legitimately issued will be unable to determine if a response MUST or
MUST NOT contain the digest identifier extension.
2.1. Digest Agility
Although the SSL Certificate industry has successfully completed a
transition from use of the MD5 digest algorithm to SHA-1, this
transition was a straightforward one as every Web browser that
supported MD5 also provided support for SHA-1. Recent cryptanalytic
work on the SHA-1 algorithm strongly suggest that while the use of
SHA-1 in TLS should not be an immediate cause for concern it is
prudent to ensure that there is a viable transition plan to use of
SHA-2, preferably a plan that can be put into effect at short notice.
Although the X.509v3 certificate format has supported use of SHA-2 as
a cryptographic digest since the algorithm was first published in
2001, there is currently no viable transition plan that permits SHA-2
to be deployed in a manner that will be acceptable to most operators
of Web sites that use the certificates.
Merely adding support for a new cryptographic algorithm does little
to improve the security of a system against attack. In general a
reduction in risk will only be realized by withdrawing the old
algorithm from use.
Hallam-Baker & Stradling Expires April 22, 2013 [Page 3]
Internet-Draft OCSP Extensions October 2012
The TLS protocol and X.509v3 certificates are widely used to ensure
the accountability, authenticity and confidentiality of Web
transactions. One consequence of this widespead use is that the
population of Web browsers has become highly hetrogeneous. While
many Web users only use the latest Web browsers with the most up to
date security features, a significant proportion of Web users do not.
In particular there remains a significant number of Web users whose
browsers are ten or more years old.
The use of older Web browsers has significant consequences for
merchants using the Web to offer products and/or services. A
merchant whose Web site is not accessible to 5% of the population of
Web browsers risks losing 5% of their sales. Although most Web
merchants are interested in offering their customers 'security',
their motivation for doing so is to encourage them to do business
with them. Thus a security feature that causes the merchant to lose
more customers than it gains will be unacceptable to them.
Certificate Authorities will not issue certificates for which there
is no market and browser providers cannot insist on the use of a
credential format that no sites want and no Certificate Authority
will issue. Deployment of SHA-2 has thus reached a deadlock
condition in which none of the parties involved can or will act until
all the other parties have acted first.
Although most Certificate issuers have the technical capability to
offer digital certificates that use the SHA-2 algorithm, there is
currently no demand for such certificates except for use in closed
environments where the legacy browser constraints do not apply.
The OCSP digest identifier extension permits an OCSP response to
identify the certificate whose status it reports using a
cryptographic digest of the certificate. This provides a stronger
binding between that OCSP token and the certificate to which it
applies than the current protocol permits.
In a typical deployment scenario, the certificate itself would be
signed using a SHA-1 digest to ensure backwards compatibility with
legacy browsers and the OCSP token would contain a digest identifier
extension that uses the SHA-2 algorithm or better. This approach
2.2. Transparency Requirement
A transparency requirement is a constraint on the operation of a
service that may be verified by through access to public information
alone.
A transparency requirement is thus a stronger criteria than an audit
Hallam-Baker & Stradling Expires April 22, 2013 [Page 4]
Internet-Draft OCSP Extensions October 2012
requirement that may require privileged access to verify.
The digest identifier extension MAY be used to enforce a transparency
requirement that an OCSP responder mantain a complete and accurate
log of all certificates issued and accurately reports the existence
status of the certificate(s) for which OCSP requests are made.
Such a transparency requirement would typically be placed on an OCSP
service that is operated by a Certification Authority to provide
transparency with respect to compliance with a breach notification
requirement.
2.3. The Current OCSP Protocol
The OCSP protocol defines an online service that reports the status
of an issued X.509v3 certificate. The original protocol permitted an
OCSP response to specify the certificate it reported status of by
means of a CertID structure specified as follows:
CertID ::= SEQUENCE {
hashAlgorithm AlgorithmIdentifier,
issuerNameHash OCTET STRING, -- Hash of Issuer's DN
issuerKeyHash OCTET STRING, -- Hash of Issuers public key
serialNumber CertificateSerialNumber }
While the issuerNameHash and serialNumber should be unique, this is a
matter of convention rather than a cryptographic guarantee, a
convention that an attacker might be able to subvert in the case that
a CA was breached.
The original justification made for only supporting a weak binding to
the certificate in the CertID structure was that it should be
possible to operate an OCSP service from information contained in
CRLs alone
This particular requirement is rejected. A protocol specification
should not attempt to enforce a lowest common denominator for
security. Services that have additional information available should
not be unable to deliver it to clients merely because other services
might not have that information.
It is certainly legitimate for a relying party making use of an OCSP
responder to consider a service that reports the status 'good' for a
certificate that has never been issued to be defective. An
accomodation made in a specification to permit a certain level of
service to be offered by constrained services should not prevent
Hallam-Baker & Stradling Expires April 22, 2013 [Page 5]
Internet-Draft OCSP Extensions October 2012
other services that are not limited from offering a greater degree of
security.
In this case a purpose of the specification is precisely to determine
whether the OCSP responder has actual knowledge of the certificates
issued.
3. Syntax
The digest identifier extension MAY be used in CRLs or OCSP requests
and responses. The extension has the following format:
cabf-ocsp-digest OBJECT IDENTIFIER ::= { cabf 2 }
DigestData ::= SEQUENCE {
hashAlgorithm AlgorithmIdentifier,
CertHash OCTET STRING}
The CertHash contains the digest value of the certificate to which
the enclosing status assertion or request applies.
3.1. OCSP Request
When specified in an OCSP request as a singleRequestExtensions entry,
the Digest Identifier extension provides an additional means of
identifying the certificate whose status is being queried rather than
a replacement for the existing CertID structure.
Should an OCSP responder detect an inconsistency between the contents
of the CertID structure and the Digest Identifier extension, there
are three possible explanations:
o The discrepancy is due to an unintentional software error in
either the client software or the CA infrastructure
o The discrepancy is due to an OCSP request being intentionally
misformed.
o The digest algorithm that was originally used to sign the digital
certificate has been compromised and the OCSP request was made by
client software that recieved a compromised certificate.
An OCSP responder that is able to do so SHOULD take approrpiate steps
to determine the cause of such discrepancies.
Hallam-Baker & Stradling Expires April 22, 2013 [Page 6]
Internet-Draft OCSP Extensions October 2012
3.2. OCSP Response
When specified in an OCSP request as a singleExtensions entry, the
Digest Identifier extension provides an additional means of
identifying the certificate whose status is being reported.
If the contents of either the CertID or the Digest Identifier
extension are inconsistent with the certificate being querried, the
response entry SHOULD be rejected as not matching the specified
certificate.
If no matching response entries are present in a response, a client
SHOULD consider the status of the certificate to be unknown.
3.2.1. Transparency requirement
An OCSP responder MUST NOT present a digest identifier extension as a
singleExtensions entry unless it has actual knowledge that the
corresponding certificate exists.
An external policy MAY verify compliance with the transparency
requirement by generating a sequence of queries for certificates that
are known to exist and dummy queries for certificates that are known
not to exist.
to pass the transparency requirement, an OCSP responder MUST return
the appropriate response to each type of query:
o If the certificate exists: A response with a digest identifier
extension.
o Otherwise: A response that indicates an invalid status for the
certificate and does not contain a digest identifier extension.
Note that it is possible for a third party to determine compliance
with the transparency requirement on a statistical basis even if the
OCSP request discloses the digest identifier of the corresponding
certificate in some way.
4. Acknowledgements
[List of CABForum and PKIX contributors]
5. Security Considerations
Hallam-Baker & Stradling Expires April 22, 2013 [Page 7]
Internet-Draft OCSP Extensions October 2012
5.1. Disclosing non existence of certificates
The deployed OCSP infrastructure only permits a client to determine
that a certificate has not been revoked. Some OCSP responders return
the OCSP status 'good' in cases where the status of the certificate
is not known. Some OCSP clients have identical behavior in the case
that the returned status is 'good' and 'unknown'.
Consistent use of the digest identifier permits a client to
distinguish these cases.
5.2. Client disclosure of certificate digest identifier
A client may disclose the digest identifier of an issued certificate
in an OCSP request, thus providing the service with the information
necessary to form a response in the case that it is not entitled to
do so by reason of not having actual knowledge of the existence of
the certificate.
5.3. Client detection of service compromise
Steps that a client should take in the event that a service
compromise is detected are outside the scope of this document.
5.4. Verifying service compliance
A third party may verify the compliance of an OCSP service with the
transparency requirement by following the process specified in
section Section 3.2.1.
6. For discussion.
[RFC EDITOR: DELETE PRIOR TO PUBLICATION]
Does the OCSP Request use make any sense at all? It does provide the
starting point for an early detection system for bad crypto but that
is all. Also it is quite possible that TLS OCSP stapling will render
the need for the request moot by the time a digest breach occurs.
If the request extension use was removed it would mean that the
responder was providing an effective proof that the status source had
specific knowledge of the certificate whose status was being queried.
(This proof would be further strengthened by use of a MAC)
Such proof would be relevant in determining if a responder had actual
knowledge of the certificates it reported the status of. If a query
is made for a certificate that is known does not or should not exist,
Hallam-Baker & Stradling Expires April 22, 2013 [Page 8]
Internet-Draft OCSP Extensions October 2012
the responder should respond with a generic 'unknown' error response.
If the responder attempts to return a digest value in such cases, the
responses are clearly spurious.
This scheme could be further strengthened by adding an extension OID
to the certificate to specify that the OCSP responder will always
return the digest identifier extension. This enables a relying
application to reject any non conformant responses as spurious.
7. IANA Considerations
No action by IANA is required.
8. Normative References
[RFC1035] Mockapetris, P., "Domain names - implementation and
specification", STD 13, RFC 1035, November 1987.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC4366] Blake-Wilson, S., Nystrom, M., Hopwood, D., Mikkelsen, J.,
and T. Wright, "Transport Layer Security (TLS)
Extensions", RFC 4366, April 2006.
[X.509] International Telecommunication Union, "ITU-T
Recommendation X.509 (11/2008): Information technology -
Open systems interconnection - The Directory: Public-key
and attribute certificate frameworks", ITU-T
Recommendation X.509, November 2008.
[X.680] International Telecommunication Union, "ITU-T
Recommendation X.680 (11/2008): Information technology -
Abstract Syntax Notation One (ASN.1): Specification of
basic notation", ITU-T Recommendation X.680,
November 2008.
Authors' Addresses
Phillip Hallam-Baker
Comodo Group Inc.
Email: philliph@comodo.com
Hallam-Baker & Stradling Expires April 22, 2013 [Page 9]
Internet-Draft OCSP Extensions October 2012
Rob Stradling
Comodo CA Ltd.
Email: rob.stradling@comodo.com
Hallam-Baker & Stradling Expires April 22, 2013 [Page 10]