RFC 5816

ESSCertIDv2 Update for RFC 3161

πŸ“… published April 2010, from ietf

RFC 5816: ESSCertIDv2 Update for RFC 3161 πŸŽ€

Okay bestie, this one is a fresh little update to RFC 3161 πŸ¦‹ It was written by Stefan Santesson (3xA Security, Sweden) and Nick Pope (Thales, United Kingdom) and published in March 2010. It's a Standards Track document, so it's an official Internet standard, not just a suggestion πŸ’… Its ISSN is 2070-1721. It updates RFC 3161 and doesn't obsolete anything 🌸

Abstract

okay so this doc updates RFC 3161 ✨ It lets you use ESSCertIDv2 (from RFC 5035) to specify the hash of a signer certificate, and it works when that hash is calculated with something other than SHA-1. πŸ”₯

Status of This Memo

This is an Internet Standards Track document πŸ’œ

This is a product of the Internet Engineering Task Force (IETF), and it represents the consensus of the IETF community 🫢 It got public review and was approved for publication by the Internet Engineering Steering Group (IESG). If you want more info on Internet Standards, check Section 2 of RFC 5741 πŸ“š

For the current status, any errata, and how to give feedback, go to http://www.rfc-editor.org/info/rfc5816 🌈

Copyright (c) 2010 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) as they stand on the publication date. Please read these carefully, because they describe your rights and restrictions. Code components pulled out of this document must include the Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions, and they come without warranty as described in that license πŸ™ˆ

This document may contain material from IETF Documents or IETF Contributions published or made publicly available before November 10, 2008. The people who control the copyright in some of that material may not have given the IETF Trust permission to allow modifications outside the IETF Standards Process. Unless you get an adequate license from those copyright holders, this document may not be modified outside the IETF Standards Process, and derivative works of it may not be created outside that process. The one exceptions are formatting it for publication as an RFC or translating it into languages other than English πŸ’…

Table of Contents

   1. Introduction ....................................................2
      1.1. Terminology ................................................2
   2. Updates to RFC 3161 .............................................3
      2.1. Changes to Section 2.4.1, Request Format ...................3
      2.2. Changes to Section 2.4.2, Response Format ..................3
           2.2.1. Signature of Time-Stamp Token .......................3
           2.2.2. Verifying the Time-Stamp Token ......................4
   3. Security Considerations .........................................4
   4. References ......................................................5
      4.1. Normative References .......................................5
      4.2. Informative References .....................................5

1. Introduction ✨

So RFC 3161 [RFC3161] is the time-stamping protocol, and it needs Cryptographic Message Syntax (CMS) SignedData [RFC5652] to put a digital signature on the time-stamp token. That signature has to include a signed attribute that identifies the signer's certificate 🧚

That identifier only lets SHA-1 [SHA1] be the hash algorithm used to make the identifier value πŸ₯Ί

The mechanism in [RFC3161] used ESSCertID from RFC 2634 [ESS]. Then RFC 5035 [ESSV2] updated it with ESSCertIDv2 so that any hash algorithm can be used πŸ‘‘

The changes this document makes to RFC 3161 [RFC3161] let ESSCertIDv2 be used to include an identifier of the signing certificate, as defined in RFC 5035 [ESSV2] πŸ’–

1.1. Terminology

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. Updates to RFC 3161 🌸

2.1. Changes to Section 2.4.1, Request Format

This is the last paragraph on Page 5 ✨

Old:

If the certReq field is present and set to true, the TSA's public
key certificate that is referenced by the ESSCertID identifier
inside a SigningCertificate attribute in the response MUST be
provided by the TSA in the certificates field from the SignedData
structure in that response.  That field may also contain other
certificates.

New:

If the certReq field is present and set to true, the TSA's public
key certificate that is referenced by the ESSCertID [ESS] field
inside a SigningCertificate attribute or by the ESSCertIDv2
[ESSV2] field inside a SigningCertificateV2 attribute in the
response MUST be provided by the TSA in the certificates field
from the SignedData structure in that response.  That field may
also contain other certificates.

2.2. Changes to Section 2.4.2, Response Format

2.2.1. Signature of Time-Stamp Token

This is the fifth paragraph on Page 8, right before the TSTInfo definition πŸ¦‹

Old:

The time-stamp token MUST NOT contain any signatures other than
the signature of the TSA.  The certificate identifier (ESSCertID)
of the TSA certificate MUST be included as a signerInfo attribute
inside a SigningCertificate attribute.

New:

The time-stamp token MUST NOT contain any signatures other than
the signature of the TSA.  The certificate identifier (either
ESSCertID [ESS] or ESSCertIDv2 [ESSV2]) of the TSA certificate
MUST be included as a signerInfo attribute inside a
SigningCertificate attribute.

Note: As mentioned in RFC 5035 [ESSV2], the SigningCertificateV2
      attribute MUST be used if any algorithm other than SHA-1 is
      used and SHOULD NOT be used for SHA-1.

Note: For backwards compatibility, in line with RFC 5035, both
      ESSCertID and ESSCertIDv2 MAY be present.  Systems MAY
      ignore ESSCertIDv2 if RFC 5035 has not been implemented.

2.2.2. Verifying the Time-Stamp Token

This is the third paragraph on Page 11 🫢

Old:

The purpose of the tsa field is to give a hint in identifying the
name of the TSA.  If present, it MUST correspond to one of the
subject names included in the certificate that is to be used to
verify the token.  However, the actual identification of the
entity that signed the response will always occur through the use
of the certificate identifier (ESSCertID Attribute) inside a
SigningCertificate attribute which is part of the signerInfo (See
Section 5 of [ESS]).

New:

The purpose of the tsa field is to give a hint in identifying the
name of the TSA.  If present, it MUST correspond to one of the
subject names included in the certificate that is to be used to
verify the token.  However, the actual identification of the
entity that signed the response will always occur through the use
of the certificate identifier (ESSCertID inside a
SigningCertificate attribute or ESSCertIDv2 inside a
SigningCertificateV2 attribute) that is part of the signerInfo
(see Section 5 of [ESS] and Section 3 of [ESSV2]).

3. Security Considerations πŸ”₯

This document takes on the security considerations of RFC 5035 [ESSV2] and adds some extra explanations in this section πŸ’…

ESSCertID gives a way to identify the certificate used to verify the signature on a time stamp, and it's based on the SHA-1 hash algorithm. ESSCertIDv2 is there so implementers can comply with policies that require phasing out all uses of SHA-1 😭

The update in this document is motivated by interoperability and by migration to other hash algorithms. It is not about fixing new security issues 🌈

4. References πŸ“š

4.1. Normative References

[RFC2119]   Bradner, S., "Key words for use in RFCs to Indicate
            Requirement Levels", BCP 14, RFC 2119, March 1997.

[ESS]       Hoffman, P., Ed., "Enhanced Security Services for
            S/MIME", RFC 2634, June 1999.

[ESSV2]     Schaad, J., "Enhanced Security Services (ESS) Update:
            Adding CertID Algorithm Agility", RFC 5035, August 2007.

[RFC3161]   Adams, C., Cain, P., Pinkas, D., and R. Zuccherato,
            "Internet X.509 Public Key Infrastructure Time-Stamp
            Protocol (TSP)", RFC 3161, August 2001.

[RFC5652]   Housley, R., "Cryptographic Message Syntax (CMS)",
            RFC 5652, September 2009.

4.2. Informative References

[SHA1]      Secure Hash Standard. FIPS Pub 180-1. National Institute
            of Standards and Technology. 17 April 1995.

Authors' Addresses πŸ’–

Stefan Santesson
3xA Security AB
Sweden

EMail: sts@aaa-sec.com


Nick Pope
Thales Information Systems Security
Long Crendon, Aylesbury
United Kingdom

EMail: nick.pope@thales-esecurity.com
πŸ“¦ where this page comes from