PKI applications (C2)

Standards and protocols

Pascal Steichen (MSSI-uni.lu) - 12/01/2008

1. "Implementing" the directive (1999/93/EC)

"Implementing" the directive (1999/93/EC)

1.1. CEN/ISSS E-sign workshop

1.2. ETSI TC/ESI

1.3. Examples

1.3.1. CWA 14167-1

Security Requirements for Trustworthy Systems Managing Certificates for Electronic Signatures - Part 1: System Security Requirements

According to Annex II of Dir.1999/93/EC, CSPs must:

"use trustworthy systems and products which are protected against modification and which must ensure the technical and cryptographic security of the processes supported by them".

CWA 14167-1

CWA 14167-1

CWA 14167-1

CWA 14167-1

1.3.2. ETSI TS 101 456

Policy requirements for certification authorities issuing qualified certificates

  1. a qualified certificate policy for qualified certificates issued to the public, requiring use of secure signature-creation devices;
  2. a qualified certificate policy for qualified certificates issued to the public.

1.3.3. ETSI TS 102 042

Policy requirements for certification authorities issuing public key certificates

  1. An extended Normalized Certificate Policy (NCP+) which offers
    • the same quality as that offered by the Qualified Certificate Policy (QCP) as defined in TS 101 456
    • but without the legal constraints implied by the Electronic Signature Directive (1999/93/EC)
    • and, instead of requiring the use of a Secure Signature Creation, requires the use of a secure user device.
  2. A Normalized Certificate Policy (NCP) which offers
    • the same quality as that offered by the Qualified Certificate Policy (QCP) as defined in TS 101 456
    • but without the legal constraints implied by the Electronic Signature Directive (1999/93/EC)
    • and without requiring the use of a Secure Signature Creation Device.
  3. A Lightweight Certificate Policy (LCP) which incorporates less demanding policy requirements (e.g. physical presence).

1.3.4. CWA 14355

Guidelines for the implementation of Secure Signature-Creation Devices

2. X.509 Public Key Certificate - RFC 3280

Structure of an X.509 certificate (RFC 3280):

     Certificate ::= SEQUENCE {
     	TBSCertificate ::= SEQUENCE {
          	version,		(default v1)
  	        serialNumber,
          	signature,	       	(algorithm)
          	issuer,          	(DN, e.g. c=LU,o=Uni)
          	validity,
          	subject,         	(DN, c=LU,o=Uni,cn=Pascal Steichen)
          	subjectPublicKeyInfo,	(public key and algorithms used)
          	issuerUniqueID,		(optional)
          	subjectUniqueID,	(optional)
          	extensions
          }
          signatureAlgorithm,		(algorithm)
          signatureValue			(CA's signature)
          }

2.1. Certificate Extensions

     Extension ::= SEQUENCE {
           extnID,	(identifier)
           critical,	(criticality - boolean)
           extnValue	(valeur)
     }

The standard extensions can be grouped as follows:

  1. informations on keys
  2. informations on the certificat usages
  3. user and CA attributes
  4. co-certification constraints

2.1.1. informations on keys

informations on keys

2.1.2. informations on the certificat usages

2.1.3. user and CA attributes

2.1.4. co-certification constraints

2.2. Example

Example

3. IETF - Internet X.509 Public Key Infrastructure (PKIX)

PKIX standardisation areas:

IETF - Internet X.509 Public Key Infrastructure (PKIX)

Subject RFC
Certificate and Certificate Revocation List (CRL) Profile RFC 3280
Certificate Management Protocol (CMP) RFC 4210
Operational protocols RFC 3494 (LDAP), RFC 2585, RFC 2560 (OCSP)
Certificate Policy and Certification Practices Framework RFC 3647
Time–stamping and data–certification services RFC 3628, RFC 3161

3.1. PKI - Public-Key Infrastructure

A PKI is a set of hardware, software, people, policies and procedures needed to create, manage, store, distribute and revoke PKCs based on public–key cryptography.

A PKI consists of five types of components.

Type of component Description
Certification Authorities (CAs) to issue and revoke PKCs
Registration Authorities (RAs) to vouch for the binding between public keys and certificate holder identities and other attributes
Certificate holders (end entities, EE) to sign and encrypt digital documents
Clients (end entities, EE) to validate digital signatures and their certification path from a known public key of a trusted CA
Repositories to store and make available certificates and Certificate Revocation Lists (CRLs)

PKI Management Operations

At a high level, the set of operations for which management messages are defined can be grouped as follows.

PKI Management Operations

PKI Management Operations

4. Certificate revocation list (CRL) - RFC 3280

    CertificateList ::= SEQUENCE {
  	TBSCertList ::=    SEQUENCE  {
  		version,	(optional)
       		signature,      (algorithm)
       		issuer,
       		thisUpdate,
       		nextUpdate,	(optional)
       		revokedCertificates       SEQUENCE OF SEQUENCE {
            		userCertificate,	(certificate serial number),
            		revocationDate,         
            		crlEntryExtensions      (optional)
           	},		(optional)
       		crlExtensions,	(optional)
  	}
       	signatureAlgorithm, 	(algorithm)
       	signatureValue,
    }

4.1. CRL Entry Extensions

      reasonCode ::= < CRLReason >
  
      CRLReason ::= ENUMERATED {
           unspecified             (0),
           keyCompromise           (1),
           cACompromise            (2),
           affiliationChanged      (3),
           superseded              (4),
           cessationOfOperation    (5),
           certificateHold         (6),
           removeFromCRL           (8),
           privilegeWithdrawn      (9),
           aACompromise           (10) }

4.2. Basic Certificate Processing

The basic path processing actions to be performed for a certificate validation:

  1. The certificate was signed with the working_public_key_algorithm using the working_public_key and the working_public_key_parameters.
  2. The certificate validity period includes the current time.
  3. At the current time, the certificate is not revoked and is not on hold status.
  4. The certificate issuer name is the working_issuer_name.

5. Online Certificate Status Protocol (OCSP) - RFC 2560

In lieu of or as a supplement to checking against a periodic CRL, it may be necessary to obtain timely information regarding the revocation status of a certificate (e.g. high-value funds transfer or large stock trades). -> OCSP

Online Certificate Status Protocol (OCSP) - RFC 2560

Online Certificate Status Protocol (OCSP) - RFC 2560

Online Certificate Status Protocol (OCSP) - RFC 2560

6. Certificate Policy and Certification Practices Framework - RFC 3647

Certificate Policy and Certification Practices Framework - RFC 3647

Certificate Policy and Certification Practices Framework - RFC 3647

6.1. Recommended CP or CPS outline

In order to comply with the RFC, the drafters of a compliant CP or CPS are strongly advised to adhere to the following outline:

  1. INTRODUCTION
  2. PUBLICATION AND REPOSITORY RESPONSIBILITIES
  3. IDENTIFICATION AND AUTHENTICATION
  4. CERTIFICATE LIFE-CYCLE OPERATIONAL REQUIREMENTS
  5. FACILITY, MANAGEMENT, AND OPERATIONAL CONTROLS
  6. TECHNICAL SECURITY CONTROLS
  7. CERTIFICATE, CRL, AND OCSP PROFILES
  8. COMPLIANCE AUDIT AND OTHER ASSESSMENTS
  9. OTHER BUSINESS AND LEGAL MATTERS

7. Time-Stamping Authorities (TSAs) - RFC 3628

A timestamp or a time mark (which is an audit record kept in a secure audit trail from a trusted third party) applied to a digital signature value proves that the digital signature was created before the date included in the time-stamp or time mark.

To prove the digital signature was generated while the signer’s certificate was valid, the digital signature must be verified and the following conditions satisfied:

  1. the time-stamp (or time mark) was applied before the end of the validity period of the signer’s certificate,
  2. the time-stamp (or time mark) was applied either while the signer’s certificate was not revoked or before the revocation date of the certificate.

The European Directive 1999/93/EC defines certification service provider as "an entity or a legal or natural person who issues certificates or provides other services related to electronic signatures". One example of a certification-service-provider is a Time-Stamping Authority.

7.1. Time-Stamp Token

  1. The time-stamp token shall include an identifier for the time-stamp policy;
  2. Each time-stamp token shall have a unique identifier;
  3. The time values the TSU uses in the time-stamp token shall be traceable to at least one of the real time values distributed by a UTC(k) laboratory.
  4. The time included in the time-stamp token shall be synchronized with UTC within the accuracy defined in this policy and, if present, within the accuracy defined in the time-stamp token itself;
  5. If the time-stamp provider’s clock is detected as being out of the stated accuracy then time-stamp tokens shall not be issued.
  6. The time-stamp token shall include a representation (e.g., hash value) of the datum being time-stamped as provided by the requestor;

  7. The time-stamp token shall be signed using a key generated exclusively for this purpose.
  8. The time-stamp token shall include further :
    • where applicable, an identifier for the country in which the TSA is established;
    • an identifier for the TSA;
    • an identifier for the unit which issues the time-stamps.

Time-Stamping Authorities (TSAs)

Non-repudiation services require the ability to establish the existence of data before specified times. This protocol may be used as a building block to support such services.

Time-Stamping Authorities (TSAs)

7.2. Time-Stamp Protocol (TSP) - RFC 3161 - Request Format

     TimeStampReq ::= SEQUENCE {
          version                      INTEGER < v1(1) >,
          messageImprint               MessageImprint,
            --a hash algorithm OID and the hash value of the data to be
            --time-stamped
          reqPolicy             TSAPolicyId               OPTIONAL,
          nonce                 INTEGER                   OPTIONAL,
          certReq               BOOLEAN                   DEFAULT FALSE,
          extensions            [0] IMPLICIT Extensions   OPTIONAL }
  
     MessageImprint ::= SEQUENCE   {
          hashAlgorithm               AlgorithmIdentifier,
          hashedMessage               OCTET STRING }

7.3. Time-Stamp Protocol (TSP) - RFC 3161 - Response Format

     TimeStampResp ::= SEQUENCE {
          status                    PKIStatusInfo,
          timeStampToken            TimeStampToken   OPTIONAL  }
  
     PKIStatusInfo ::= SEQUENCE {
          status         PKIStatus,
          statusString PKIFreeText        OPTIONAL,
          failInfo       PKIFailureInfo   OPTIONAL }
     PKIStatus ::= INTEGER {
          granted                 (0),
          -- when the PKIStatus contains the value zero a TimeStampToken, as
             requested, is present.
          grantedWithMods         (1),
           -- when the PKIStatus contains the value one a TimeStampToken,
             with modifications, is present.
          rejection               (2),
          waiting                 (3),
          revocationWarning       (4),
           -- this message contains a warning that a revocation is
           -- imminent
          revocationNotification (5)
           -- notification that a revocation has occurred }

8. Public-Key Cryptography Standards (PKCS)

Version Name Comments
PKCS#1 2.1 RSA Cryptography Standard See RFC 3447. Defines the format of RSA encryption.
PKCS#3 1.4 Diffie-Hellman Key Agreement Standard A cryptographic protocol that allows two parties that have no prior knowledge of each other to jointly establish a shared secret key over an insecure communications channel.
PKCS#5 2.0 Password-based Encryption Standard See RFC 2898 and PBKDF2.
PKCS#6 1.5 Extended-Certificate Syntax Standard Defines extensions to the old v1 X.509 certificate specification. Obsoleted by v3 of the same.
PKCS#7 1.5 Cryptographic Message Syntax Standard See RFC 2315. Used to sign and/or encrypt messages under a PKI. Used also for certificate dissemination (for instance as a response to a PKCS#10 message). Formed the basis for S/MIME, which is now based on RFC 3852, an updated Cryptographic Message Syntax Standard (CMS).
PKCS#8 1.2 Private-Key Information Syntax Standard
PKCS#9 2.0 Selected Attribute Types Defines selected attribute types for use in PKCS #6 extended certificates, PKCS #7 digitally signed messages, PKCS #8 private-key information, and PKCS #10 certificate-signing requests.
PKCS#10 1.7 Certification Request Standard See RFC 2986. Format of messages sent to a certification authority to request certification of a public key. See certificate signing request.
PKCS#11 2.20 Cryptographic Token Interface (Cryptoki) An API defining a generic interface to cryptographic tokens (see also Hardware Security Module).
PKCS#12 1.0 Personal Information Exchange Syntax Standard Defines a file format commonly used to store private keys with accompanying public key certificates, protected with a password-based symmetric key.
PKCS#13 Elliptic Curve Cryptography Standard (Under development)
PKCS#14 Pseudo-random Number Generation (Under development)
PKCS#15 1.1 Cryptographic Token Information Format Standard Defines a standard allowing users of cryptographic tokens to identify themselves to applications, independent of the application's Cryptoki implementation (PKCS #11) or other API. RSA has relinquished IC-card-related parts of this standard to ISO/IEC 7816-15.[1]