Online Certificate Revocation Protocol

Massimiliano Pala <madwolf@hackmasters.net> Sat, 09 June 2001 09:42 UTC

Received: from above.proper.com (above.proper.com [208.184.76.39]) by ietf.org (8.9.1a/8.9.1a) with SMTP id FAA12397 for <pkix-archive@odin.ietf.org>; Sat, 9 Jun 2001 05:42:18 -0400 (EDT)
Received: (from majordomo@localhost) by above.proper.com (8.9.3/8.9.3) id BAA18780 for ietf-pkix-bks; Sat, 9 Jun 2001 01:59:26 -0700 (PDT)
Received: from mail.hackmasters.net (IDENT:postfix@[217.133.253.247]) by above.proper.com (8.9.3/8.9.3) with ESMTP id BAA18750 for <ietf-pkix@imc.org>; Sat, 9 Jun 2001 01:59:18 -0700 (PDT)
Received: from hackmasters.net (galadriel.mpcnet.org [10.5.122.180]) by mail.hackmasters.net (Postfix) with ESMTP id EF23F3CC4 for <ietf-pkix@imc.org>; Sat, 9 Jun 2001 12:03:31 +0200 (CEST)
Message-ID: <3B21E657.17A69B3A@hackmasters.net>
Date: Sat, 09 Jun 2001 11:03:19 +0200
From: Massimiliano Pala <madwolf@hackmasters.net>
Reply-To: madwolf@openca.org
Organization: OpenCA
X-Mailer: Mozilla 4.77 [en] (X11; U; Linux 2.2.18 i686)
X-Accept-Language: en
MIME-Version: 1.0
To: ietf-pkix@imc.org
Subject: Online Certificate Revocation Protocol
Content-Type: multipart/signed; protocol="application/x-pkcs7-signature"; micalg="sha1"; boundary="------------ms007A4E020BD417C022590E63"
Sender: owner-ietf-pkix@mail.imc.org
Precedence: bulk
List-Archive: <http://www.imc.org/ietf-pkix/mail-archive/>
List-ID: <ietf-pkix.imc.org>
List-Unsubscribe: <mailto:ietf-pkix-request@imc.org?body=unsubscribe>
List-ID: <ietf-pkix.imc.org>

Hi all,

I've posted some days ago the idea of having a definition of a revocation
protocol to be adopted by clients when asking for revocation. Some have
objected there are some reference to rfcs covering the revRequests, however,
to me, a different structure (and a protocol definition -- I have not
found anywhere a revocation protocol, is there any ? Where, if any, can
I find it ?) could be more appropriate.

To have an example of what I am talking of I post a proposed revRequest
structure ( am I not an ace on ASN.1 so there are probably errors... ).

Let me know your comments and suggestions.


Proposed Request Syntax
=======================

   OCRPRequest     ::=     SEQUENCE {
       Version             [0]     EXPICIT Version DEFAULT v1,
       requestorName       [1]     EXPLICIT GeneralName,
       producedAt          [2]     EXPLICIT Time,
       validUntil          [3]     EXPLICIT Time,
       requestList                 SEQUENCE OF Request,  
       optionalSignature   [2]     EXPLICIT Signature OPTIONAL }

   Signature       ::=     SEQUENCE {
       signatureAlgorithm      AlgorithmIdentifier,
       signature               BIT STRING,
       certs               [0] EXPLICIT SEQUENCE OF Certificate
   OPTIONAL}

   Version         ::=             INTEGER  {  v1(0) }

   Request         ::=     SEQUENCE {
       hashAlgorithm               AlgorithmIdentifier,
       reqCert                     CertID,
       revCode                     Crin,
       reason                      CRLReason,
       comment                     UTF8string OPTIONAL,
       RequestExtensions   [0]     EXPLICIT Extensions OPTIONAL }

   CertID          ::=     SEQUENCE {
       serialNumber        CertificateSerialNumber,
       issuerNameHash      OCTET STRING, -- Hash of Issuer's DN
       issuerKeyHash       OCTET STRING, -- Hash of Issuers public key
       revCodeHash         OCTET STRING, -- Hash of Revocation Secret Code
                                            and of the serialNumber (Crin) }
 
   Crin            ::=     SEQUENCE {
       serialNumber        CertificateSerialNumber,
       certificateCrin     OCTET STRING  -- Certificate's Revocation
                                            Secret Code }

Hash Explanations
=================
       
   serialNumber is the serial number of the certificate for which status
   is being requested. issuerNameHash is the hash of the Issuer's
   distinguished name. The hash shall be calculated over the DER encoding
   of the issuer's name field in the certificate being checked.
   issuerKeyHash is the hash of the Issuer's public key. The hash shall
   be calculated over the value (excluding tag and length) of the subject
   public key field in the issuer's certificate. revCodeHash is the hash
   of the certificate's Crin. The hash shall be calculated over the DER
   encoding of the Crin. The hash algorithm used for both these hashes,
   is identified in hashAlgorithm.

   The importance of having the revCodeHash to be calculated over the
   Crin is to have a POP of the certificate without having to sign the
   request -- this is left OPTIONAL and depends on the CA's adopted
   Policy.
   
-- 

C'you,

	Massimiliano Pala

--o-------------------------------------------------------------------------
Massimiliano Pala [OpenCA Project Manager]                madwolf@openca.org
                                                     madwolf@hackmasters.net
http://www.openca.org                            Tel.:   +39 (0)59  270  094
http://openca.sourceforge.net                    Mobile: +39 (0)347 7222 365