| rfc9654.original | rfc9654.txt | |||
|---|---|---|---|---|
| Internet Engineering Task Force H. Sharma, Ed. | Internet Engineering Task Force (IETF) H. Sharma, Ed. | |||
| Internet-Draft Netskope Inc | Request for Comments: 9654 Netskope Inc | |||
| Obsoletes: 8954 (if approved) 22 May 2024 | Obsoletes: 8954 August 2024 | |||
| Updates: 6960 (if approved) | Updates: 6960 | |||
| Intended status: Standards Track | Category: Standards Track | |||
| Expires: 23 November 2024 | ISSN: 2070-1721 | |||
| Online Certificate Status Protocol (OCSP) Nonce Extension | Online Certificate Status Protocol (OCSP) Nonce Extension | |||
| draft-ietf-lamps-ocsp-nonce-update-11 | ||||
| Abstract | Abstract | |||
| RFC 8954 imposed the size constraints on the optional Nonce extension | RFC 8954 imposed size constraints on the optional Nonce extension for | |||
| for the Online Certificate Status Protocol (OCSP). OCSP is used for | the Online Certificate Status Protocol (OCSP). OCSP is used to check | |||
| checking the status of a certificate, and the Nonce extension is used | the status of a certificate, and the Nonce extension is used to | |||
| to cryptographically bind an OCSP response message to a particular | cryptographically bind an OCSP response message to a particular OCSP | |||
| OCSP request message. | request message. | |||
| Some environments use cryptographic algorithms that generate a Nonce | Some environments use cryptographic algorithms that generate a Nonce | |||
| value that is longer than 32 octets. This document updates the | value that is longer than 32 octets. This document also modifies the | |||
| maximum allowed length of Nonce to 128 octets. This document also | "Nonce" section of RFC 6960 to clearly define and differentiate the | |||
| modifies Nonce section to clearly define the encoding format and | encoding format and values for easier implementation and | |||
| values distinctively for an easier implementation and understanding. | understanding. This document obsoletes RFC 8954, which includes | |||
| This document obsoletes RFC 8954 and provides updated ASN.1 modules | updated ASN.1 modules for OCSP, and updates RFC 6960. | |||
| for OCSP, updates RFC 6960. | ||||
| Status of This Memo | Status of This Memo | |||
| This Internet-Draft is submitted in full conformance with the | This is an Internet Standards Track document. | |||
| 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 https://datatracker.ietf.org/drafts/current/. | ||||
| Internet-Drafts are draft documents valid for a maximum of six months | This document is a product of the Internet Engineering Task Force | |||
| and may be updated, replaced, or obsoleted by other documents at any | (IETF). It represents the consensus of the IETF community. It has | |||
| time. It is inappropriate to use Internet-Drafts as reference | received public review and has been approved for publication by the | |||
| material or to cite them other than as "work in progress." | Internet Engineering Steering Group (IESG). Further information on | |||
| Internet Standards is available in Section 2 of RFC 7841. | ||||
| This Internet-Draft will expire on 23 November 2024. | Information about the current status of this document, any errata, | |||
| and how to provide feedback on it may be obtained at | ||||
| https://www.rfc-editor.org/info/rfc9654. | ||||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2024 IETF Trust and the persons identified as the | Copyright (c) 2024 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents (https://trustee.ietf.org/ | Provisions Relating to IETF Documents | |||
| license-info) in effect on the date of publication of this document. | (https://trustee.ietf.org/license-info) in effect on the date of | |||
| Please review these documents carefully, as they describe your rights | publication of this document. Please review these documents | |||
| and restrictions with respect to this document. Code Components | carefully, as they describe your rights and restrictions with respect | |||
| extracted from this document must include Revised BSD License text as | to this document. Code Components extracted from this document must | |||
| described in Section 4.e of the Trust Legal Provisions and are | include Revised BSD License text as described in Section 4.e of the | |||
| provided without warranty as described in the Revised BSD License. | Trust Legal Provisions and are provided without warranty as described | |||
| in the Revised BSD License. | ||||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction | |||
| 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 2 | 1.1. Requirements Language | |||
| 2. OCSP Extensions . . . . . . . . . . . . . . . . . . . . . . . 3 | 2. OCSP Extensions | |||
| 2.1. Nonce Extension . . . . . . . . . . . . . . . . . . . . . 3 | 2.1. Nonce Extension | |||
| 3. Security Considerations . . . . . . . . . . . . . . . . . . . 4 | 3. Security Considerations | |||
| 3.1. Replay Attack . . . . . . . . . . . . . . . . . . . . . . 4 | 3.1. Replay Attack | |||
| 4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 5 | 4. IANA Considerations | |||
| Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . 5 | 5. References | |||
| References . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 | 5.1. Normative References | |||
| Normative References . . . . . . . . . . . . . . . . . . . . . 5 | 5.2. Informative References | |||
| Informative References . . . . . . . . . . . . . . . . . . . . 6 | Appendix A. ASN.1 Modules | |||
| Appendix A. ASN.1 Modules . . . . . . . . . . . . . . . . . . . 6 | A.1. OCSP in ASN.1 - 1998 Syntax | |||
| A.1. OCSP in ASN.1 - 1998 Syntax . . . . . . . . . . . . . . . 6 | A.2. OCSP in ASN.1 - 2008 Syntax | |||
| A.2. OCSP in ASN.1 - 2008 Syntax . . . . . . . . . . . . . . . 10 | Acknowledgements | |||
| Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 14 | Author's Address | |||
| 1. Introduction | 1. Introduction | |||
| Nonce extension was previously defined in Section 4.4.1 of [RFC6960]. | The Nonce extension was previously defined in Section 4.4.1 of | |||
| The Nonce cryptographically binds an OCSP request and a response. It | [RFC6960]. The Nonce cryptographically binds an OCSP request and a | |||
| guarantees the freshness of an OCSP response and to avoid replay | response. It guarantees the freshness of an OCSP response and avoids | |||
| attacks. This extension was updated in [RFC8954]. [RFC8954] limits | replay attacks. This extension was updated in [RFC8954]. [RFC8954] | |||
| the maximum Nonce length to 32 octets. To support cryptographic | limits the maximum Nonce length to 32 octets. To support | |||
| algorithms that generate a Nonce that is longer than 32 octets, this | cryptographic algorithms that generate a Nonce that is longer than 32 | |||
| document updates the maximum allowed size of the Nonce to 128 octets. | octets, this document updates the maximum allowed size of the Nonce | |||
| In addition, this document recommends that the OCSP requester and | to 128 octets. In addition, this document recommends that the OCSP | |||
| responder use a Nonce with a minimum length of 32 octets. | requester and responder use a Nonce with a minimum length of 32 | |||
| octets. | ||||
| 1.1. Requirements Language | 1.1. Requirements Language | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
| "OPTIONAL" in this document are to be interpreted as described in BCP | "OPTIONAL" in this document are to be interpreted as described in | |||
| 14 [RFC2119] [RFC8174] when, and only when, they appear in all | BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
| capitals, as shown here. | capitals, as shown here. | |||
| 2. OCSP Extensions | 2. OCSP Extensions | |||
| The message formats for OCSP requests and responses are defined in | The message formats for OCSP requests and responses are defined in | |||
| [RFC6960] and Nonce extension was updated in [RFC8954]. [RFC6960] | [RFC6960] and the Nonce extension was updated in [RFC8954]. | |||
| also defines the standard extensions for OCSP messages based on the | [RFC6960] also defines the standard extensions for OCSP messages | |||
| extension model employed in X.509 version 3 certificates (see | based on the extension model employed in X.509 version 3 certificates | |||
| [RFC5280]). [RFC8954] replaces this section to limit the minimum and | (see [RFC5280]). [RFC8954] replaces Section 4.4.1 of [RFC6960] to | |||
| maximum length for the Nonce value. This document extends the | limit the minimum and maximum length for the Nonce value. This | |||
| maximum allowed nonce length to 128 octets and does not change the | document extends the maximum allowed nonce length to 128 octets and | |||
| specifications of any of the other standard extensions defined in | does not change the specifications of any of the other extensions | |||
| [RFC6960]. | defined in [RFC6960]. | |||
| 2.1. Nonce Extension | 2.1. Nonce Extension | |||
| The Nonce cryptographically binds a request and a response to prevent | The Nonce cryptographically binds a request and a response to prevent | |||
| replay attacks. The Nonce is included as one of the | replay attacks. The Nonce is included as one of the | |||
| requestExtensions in requests; in responses, it would be included as | requestExtensions in requests; in responses, it is included as one of | |||
| one of the responseExtensions. In both the request and the response, | the responseExtensions. In both the request and the response, the | |||
| the Nonce will be identified by the object identifier id-pkix-ocsp- | Nonce is identified by the object identifier id-pkix-ocsp-nonce, | |||
| nonce, while the extnValue is the encoded value of Nonce. If the | while the extnValue is the encoded value of Nonce. If the Nonce | |||
| Nonce extension is present, then the length of the Nonce MUST be at | extension is present, then the length of the Nonce MUST be at least 1 | |||
| least 1 octet and can be up to 128 octets. [RFC8954] compliant | octet and can be up to 128 octets. Implementations compliant with | |||
| implementations will be unable to process nonces generated per the | [RFC8954] will not be able to process nonces generated per the new | |||
| new specification with sizes in excess of the limit of 32 octets that | specification with sizes in excess of the limit (32 octets) specified | |||
| was specified in [RFC8954]. | in [RFC8954]. | |||
| An OCSP requester that implements this document MUST use a minimum | An OCSP requester that implements the extension in this document MUST | |||
| length of 32 octets for Nonce in the Nonce extension. | use a minimum length of 32 octets for Nonce in the Nonce extension. | |||
| An OCSP responder , supporting the Nonce extension, MUST accept Nonce | An OCSP responder that supports the Nonce extension MUST accept Nonce | |||
| lengths of at least 16 octets and up to and including 32 octets. | lengths of at least 16 octets and up to and including 32 octets. A | |||
| Responder MAY choose to respond without the Nonce extension for | responder MAY choose to respond without the Nonce extension for | |||
| requests where the length of the Nonce is in between 1 octet and 15 | requests in which the length of the Nonce is in between 1 octet and | |||
| octets or 33 octets and 128 octets. | 15 octets or 33 octets and 128 octets. | |||
| Responders, that implements this document MUST reject any OCSP | Responders that implement the extension in this document MUST reject | |||
| request that has a Nonce with a length of either 0 octets or more | any OCSP request that has a Nonce with a length of either 0 octets or | |||
| than 128 octets, with the malformedRequest OCSPResponseStatus as | greater than 128 octets, with the malformedRequest OCSPResponseStatus | |||
| described in Section 4.2.1 of [RFC6960]. | as described in Section 4.2.1 of [RFC6960]. | |||
| The value of the Nonce MUST be generated using a cryptographically | The value of the Nonce MUST be generated using a cryptographically | |||
| strong pseudorandom number generator (see [RFC4086]). The minimum | strong pseudorandom number generator (see [RFC4086]). The minimum | |||
| Nonce length of 1 octet is defined to provide backward compatibility | Nonce length of 1 octet is defined to provide backward compatibility | |||
| with older OCSP requester that follow [RFC6960]. | with older OCSP requesters that follow [RFC6960]. | |||
| id-pkix-ocsp OBJECT IDENTIFIER ::= { id-ad-ocsp } | id-pkix-ocsp OBJECT IDENTIFIER ::= { id-ad-ocsp } | |||
| id-pkix-ocsp-nonce OBJECT IDENTIFIER ::= { id-pkix-ocsp 2 } | id-pkix-ocsp-nonce OBJECT IDENTIFIER ::= { id-pkix-ocsp 2 } | |||
| Nonce ::= OCTET STRING(SIZE(1..128)) | Nonce ::= OCTET STRING(SIZE(1..128)) | |||
| Example of an encoded OCSP Nonce extension with 32 octet Nonce in | ||||
| hexadecimal format. | ||||
| 30 2f 06 09 2b 06 01 05 05 07 30 01 02 04 22 04 | The following is an example of an encoded OCSP Nonce extension with a | |||
| 20 dd 49 d4 07 2c 44 9d a1 c3 17 bd 1c 1b df fe | 32-octet Nonce in hexadecimal format. | |||
| db e1 50 31 2e c4 cd 0a dd 18 e5 bd 6f 84 bf 14 | ||||
| c8 | ||||
| Here is the decoded version of the above example. | 30 2f 06 09 2b 06 01 05 05 07 30 01 02 04 22 04 | |||
| Offset, Length and Object Identifier are in decimal. | 20 dd 49 d4 07 2c 44 9d a1 c3 17 bd 1c 1b df fe | |||
| db e1 50 31 2e c4 cd 0a dd 18 e5 bd 6f 84 bf 14 | ||||
| c8 | ||||
| Offset Length | Here is the decoded version of the above example. Offset, Length, | |||
| 0 47 : SEQUENCE { | and Object Identifier are in decimal. | |||
| 2 9 : OBJECT IDENTIFIER ocspNonce (1 3 6 1 5 5 7 48 1 2) | ||||
| 13 34 : OCTET STRING, encapsulates { | Offset Length | |||
| 15 32 : OCTET STRING | 0 47 : SEQUENCE { | |||
| : DD 49 D4 07 2C 44 9D A1 C3 17 BD 1C 1B DF FE DB | 2 9 : OBJECT IDENTIFIER ocspNonce | |||
| : E1 50 31 2E C4 CD 0A DD 18 E5 BD 6F 84 BF 14 C8 | : (1 3 6 1 5 5 7 48 1 2) | |||
| : } | 13 34 : OCTET STRING, encapsulates { | |||
| : } | 15 32 : OCTET STRING | |||
| : DD 49 D4 07 2C 44 9D A1 C3 17 BD 1C 1B DF FE DB | ||||
| : E1 50 31 2E C4 CD 0A DD 18 E5 BD 6F 84 BF 14 C8 | ||||
| : } | ||||
| : } | ||||
| 3. Security Considerations | 3. Security Considerations | |||
| The security considerations of OCSP, in general, are described in | The security considerations of OCSP, in general, are described in | |||
| [RFC6960]. During the interval in which the previous OCSP response | [RFC6960]. During the interval in which the previous OCSP response | |||
| for a certificate is not expired but the responder has a changed | for a certificate is not expired but the responder has a changed | |||
| status for that certificate, a copy of that OCSP response can be used | status for that certificate, a copy of that OCSP response can be used | |||
| to indicate that the status of the certificate is still valid. | to indicate that the status of the certificate is still valid. | |||
| Including a requester's nonce value in the OCSP response makes sure | Including a requester's nonce value in the OCSP response ensures that | |||
| that the response is the latest response from the server and not an | the response is the most recent response from the server and not an | |||
| old copy. | old copy. | |||
| 3.1. Replay Attack | 3.1. Replay Attack | |||
| The Nonce extension is used to avoid replay attacks. Since the OCSP | The Nonce extension is used to avoid replay attacks. Since the OCSP | |||
| responder may choose not to send the Nonce extension in the OCSP | responder may choose not to send the Nonce extension in the OCSP | |||
| response even if the requester has sent the Nonce extension in the | response even if the requester has sent the Nonce extension in the | |||
| request [RFC5019], an on-path attacker can intercept the OCSP request | request [RFC5019], an on-path attacker can intercept the OCSP request | |||
| and respond with an earlier response from the server without the | and respond with an earlier response from the server without the | |||
| Nonce extension. This can be mitigated by configuring the server to | Nonce extension. This can be mitigated by configuring the server to | |||
| use a short time interval between the thisUpdate and nextUpdate | use a short time interval between the thisUpdate and nextUpdate | |||
| fields in the OCSP response. | fields in the OCSP response. | |||
| 4. IANA Considerations | 4. IANA Considerations | |||
| For the ASN.1 Module in Appendix A.1, IANA is requested to assign an | For the ASN.1 modules in Appendixes A.1 and A.2, IANA has assigned | |||
| object identifier (OID) for the module identifier to replace TBD1. | the following object identifiers (OIDs) in the "SMI Security for PKIX | |||
| The OID for the module should be allocated in the "SMI Security for | Module Identifier" registry (1.3.6.1.5.5.7.0): | |||
| PKIX Module Identifier" registry (1.3.6.1.5.5.7.0), and the | ||||
| Description for the new OID should be set to "id-mod-ocsp-2024-88". | ||||
| For the ASN.1 Module in Appendix A.2, IANA is requested to assign an | ||||
| object identifier (OID) for the module identifier to replace TBD2. | ||||
| The OID for the module should be allocated in the "SMI Security for | ||||
| PKIX Module Identifier" registry (1.3.6.1.5.5.7.0), and the | ||||
| Description for the new OID should be set to "id-mod-ocsp-2024-08". | ||||
| Acknowledgements | ||||
| The authors of this document wish to thank Mohit Sahni for his work | +=======+=====================+ | |||
| to produce [RFC8954]. | | Value | Description | | |||
| +=======+=====================+ | ||||
| | 111 | id-mod-ocsp-2024-88 | | ||||
| +-------+---------------------+ | ||||
| | 112 | id-mod-ocsp-2024-08 | | ||||
| +-------+---------------------+ | ||||
| The authors wish to thank Russ Housley, Corey Bonnell, Michael | Table 1 | |||
| StJohns and Carl Wallace for the feedback and suggestions. | ||||
| References | 5. References | |||
| Normative References | 5.1. Normative References | |||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
| DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
| <https://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
| [RFC4086] Eastlake 3rd, D., Schiller, J., and S. Crocker, | [RFC4086] Eastlake 3rd, D., Schiller, J., and S. Crocker, | |||
| "Randomness Requirements for Security", BCP 106, RFC 4086, | "Randomness Requirements for Security", BCP 106, RFC 4086, | |||
| DOI 10.17487/RFC4086, June 2005, | DOI 10.17487/RFC4086, June 2005, | |||
| <https://www.rfc-editor.org/info/rfc4086>. | <https://www.rfc-editor.org/info/rfc4086>. | |||
| skipping to change at page 6, line 19 ¶ | skipping to change at line 242 ¶ | |||
| <https://www.rfc-editor.org/info/rfc6960>. | <https://www.rfc-editor.org/info/rfc6960>. | |||
| [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
| 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | |||
| May 2017, <https://www.rfc-editor.org/info/rfc8174>. | May 2017, <https://www.rfc-editor.org/info/rfc8174>. | |||
| [RFC8954] Sahni, M., Ed., "Online Certificate Status Protocol (OCSP) | [RFC8954] Sahni, M., Ed., "Online Certificate Status Protocol (OCSP) | |||
| Nonce Extension", RFC 8954, DOI 10.17487/RFC8954, November | Nonce Extension", RFC 8954, DOI 10.17487/RFC8954, November | |||
| 2020, <https://www.rfc-editor.org/info/rfc8954>. | 2020, <https://www.rfc-editor.org/info/rfc8954>. | |||
| Informative References | 5.2. Informative References | |||
| [Err5891] RFC Errata, Erratum ID 5891, RFC 6960, | ||||
| <https://www.rfc-editor.org/errata/eid5891>. | ||||
| [RFC5912] Hoffman, P. and J. Schaad, "New ASN.1 Modules for the | [RFC5912] Hoffman, P. and J. Schaad, "New ASN.1 Modules for the | |||
| Public Key Infrastructure Using X.509 (PKIX)", RFC 5912, | Public Key Infrastructure Using X.509 (PKIX)", RFC 5912, | |||
| DOI 10.17487/RFC5912, June 2010, | DOI 10.17487/RFC5912, June 2010, | |||
| <https://www.rfc-editor.org/info/rfc5912>. | <https://www.rfc-editor.org/info/rfc5912>. | |||
| [Errata5891] | ||||
| RFC Errata, Erratum ID 5891, RFC 6960, | ||||
| <https://www.rfc-editor.org/errata/eid5891>. | ||||
| Appendix A. ASN.1 Modules | Appendix A. ASN.1 Modules | |||
| This section includes the ASN.1 modules for OCSP and replaces the | This section includes the ASN.1 modules for OCSP and replaces the | |||
| entirity of Section 5 of [RFC8954]. It addresses Errata id 5891 | entirety of Section 5 of [RFC8954]. It addresses Errata ID 5891 | |||
| [Errata5891] as well. | [Err5891] as well. | |||
| Appendix A.1 includes an ASN.1 module that conforms to the 1998 | Appendix A.1 includes an ASN.1 module that conforms to the 1998 | |||
| version of ASN.1 for all syntax elements of OCSP. This module | version of ASN.1 for all syntax elements of OCSP. This module | |||
| replaces the modules Appendix B.1 of [RFC6960]. | replaces the module in Appendix B.1 of [RFC6960]. | |||
| Appendix A.2 includes an ASN.1 module, corresponding to the module | Appendix A.2 includes an ASN.1 module, corresponding to the module | |||
| present in A.1, that conforms to the 2008 version of ASN.1. This | present in Appendix A.1, that conforms to the 2008 version of ASN.1. | |||
| module replaces the modules in Section 4 of [RFC5912] and | This module replaces the modules in Section 4 of [RFC5912] and | |||
| Appendix B.2 of [RFC6960]. Although a 2008 ASN.1 module is provided, | Appendix B.2 of [RFC6960]. Although a 2008 ASN.1 module is provided, | |||
| the module in Appendix A.1 remains the normative module as per the | the module in Appendix A.1 remains the normative module per the | |||
| policy of the PKIX working group. | policy of the PKIX Working Group. | |||
| A.1. OCSP in ASN.1 - 1998 Syntax | A.1. OCSP in ASN.1 - 1998 Syntax | |||
| OCSP-2024-88 | ||||
| {iso(1) identified-organization(3) dod(6) internet(1) | ||||
| security(5) mechanisms(5) pkix(7) id-mod(0) | ||||
| id-mod-ocsp-2024-88(TBD1)} | ||||
| DEFINITIONS EXPLICIT TAGS ::= | <CODE BEGINS> | |||
| OCSP-2024-88 | ||||
| BEGIN | { iso(1) identified-organization(3) dod(6) internet(1) | |||
| security(5) mechanisms(5) pkix(7) id-mod(0) | ||||
| id-mod-ocsp-2024-88(111) } | ||||
| IMPORTS | DEFINITIONS EXPLICIT TAGS ::= | |||
| BEGIN | ||||
| -- PKIX Certificate Extensions | IMPORTS | |||
| AuthorityInfoAccessSyntax, CRLReason, GeneralName | AuthorityInfoAccessSyntax, CRLReason, GeneralName | |||
| FROM PKIX1Implicit88 { iso(1) identified-organization(3) | FROM PKIX1Implicit88 -- From [RFC5280] | |||
| dod(6) internet(1) security(5) mechanisms(5) pkix(7) | { iso(1) identified-organization(3) dod(6) | |||
| id-mod(0) id-pkix1-implicit(19) } | internet(1) security(5) mechanisms(5) pkix(7) | |||
| id-mod(0) id-pkix1-implicit(19) } | ||||
| Name, CertificateSerialNumber, Extensions, | Name, CertificateSerialNumber, Extensions, | |||
| id-kp, id-ad-ocsp, Certificate, AlgorithmIdentifier | id-kp, id-ad-ocsp, Certificate, AlgorithmIdentifier | |||
| FROM PKIX1Explicit88 { iso(1) identified-organization(3) | FROM PKIX1Explicit88 -- From [RFC5280] | |||
| dod(6) internet(1) security(5) mechanisms(5) pkix(7) | { iso(1) identified-organization(3) dod(6) | |||
| id-mod(0) id-pkix1-explicit(18) }; | internet(1) security(5) mechanisms(5) pkix(7) | |||
| id-mod(0) id-pkix1-explicit(18) } ; | ||||
| OCSPRequest ::= SEQUENCE { | OCSPRequest ::= SEQUENCE { | |||
| tbsRequest TBSRequest, | tbsRequest TBSRequest, | |||
| optionalSignature [0] EXPLICIT Signature OPTIONAL } | optionalSignature [0] EXPLICIT Signature OPTIONAL } | |||
| TBSRequest ::= SEQUENCE { | TBSRequest ::= SEQUENCE { | |||
| version [0] EXPLICIT Version DEFAULT v1, | version [0] EXPLICIT Version DEFAULT v1, | |||
| requestorName [1] EXPLICIT GeneralName OPTIONAL, | requestorName [1] EXPLICIT GeneralName OPTIONAL, | |||
| requestList SEQUENCE OF Request, | requestList SEQUENCE OF Request, | |||
| requestExtensions [2] EXPLICIT Extensions OPTIONAL } | requestExtensions [2] EXPLICIT Extensions OPTIONAL } | |||
| Signature ::= SEQUENCE { | Signature ::= SEQUENCE { | |||
| signatureAlgorithm AlgorithmIdentifier, | signatureAlgorithm AlgorithmIdentifier, | |||
| signature BIT STRING, | signature BIT STRING, | |||
| certs [0] EXPLICIT SEQUENCE OF Certificate OPTIONAL } | certs [0] EXPLICIT SEQUENCE OF | |||
| Certificate OPTIONAL } | ||||
| Version ::= INTEGER { v1(0) } | Version ::= INTEGER { v1(0) } | |||
| Nonce ::= OCTET STRING(SIZE(1..128)) | Nonce ::= OCTET STRING (SIZE(1..128)) | |||
| Request ::= SEQUENCE { | Request ::= SEQUENCE { | |||
| reqCert CertID, | reqCert CertID, | |||
| singleRequestExtensions [0] EXPLICIT Extensions OPTIONAL } | singleRequestExtensions [0] EXPLICIT | |||
| Extensions OPTIONAL } | ||||
| CertID ::= SEQUENCE { | CertID ::= SEQUENCE { | |||
| hashAlgorithm AlgorithmIdentifier, | hashAlgorithm AlgorithmIdentifier, | |||
| issuerNameHash OCTET STRING, -- Hash of issuer's DN | issuerNameHash OCTET STRING, -- Hash of issuer's DN | |||
| issuerKeyHash OCTET STRING, -- Hash of issuer's public key | issuerKeyHash OCTET STRING, -- Hash of issuer's public key | |||
| serialNumber CertificateSerialNumber } | serialNumber CertificateSerialNumber } | |||
| OCSPResponse ::= SEQUENCE { | OCSPResponse ::= SEQUENCE { | |||
| responseStatus OCSPResponseStatus, | responseStatus OCSPResponseStatus, | |||
| responseBytes [0] EXPLICIT ResponseBytes OPTIONAL } | responseBytes [0] EXPLICIT ResponseBytes OPTIONAL } | |||
| OCSPResponseStatus ::= ENUMERATED { | OCSPResponseStatus ::= ENUMERATED { | |||
| successful (0), -- Response has valid confirmations | successful (0), -- Response has valid confirmations | |||
| malformedRequest (1), -- Illegal confirmation request | malformedRequest (1), -- Illegal confirmation request | |||
| internalError (2), -- Internal error in issuer | internalError (2), -- Internal error in issuer | |||
| tryLater (3), -- Try again later | tryLater (3), -- Try again later | |||
| -- (4) is not used | -- (4) is not used | |||
| sigRequired (5), -- Must sign the request | sigRequired (5), -- Must sign the request | |||
| unauthorized (6) -- Request unauthorized | unauthorized (6) -- Request unauthorized | |||
| } | } | |||
| ResponseBytes ::= SEQUENCE { | ResponseBytes ::= SEQUENCE { | |||
| responseType OBJECT IDENTIFIER, | responseType OBJECT IDENTIFIER, | |||
| response OCTET STRING } | response OCTET STRING } | |||
| BasicOCSPResponse ::= SEQUENCE { | BasicOCSPResponse ::= SEQUENCE { | |||
| tbsResponseData ResponseData, | tbsResponseData ResponseData, | |||
| signatureAlgorithm AlgorithmIdentifier, | signatureAlgorithm AlgorithmIdentifier, | |||
| signature BIT STRING, | signature BIT STRING, | |||
| certs [0] EXPLICIT SEQUENCE OF Certificate OPTIONAL } | certs [0] EXPLICIT SEQUENCE OF | |||
| Certificate OPTIONAL } | ||||
| ResponseData ::= SEQUENCE { | ResponseData ::= SEQUENCE { | |||
| version [0] EXPLICIT Version DEFAULT v1, | version [0] EXPLICIT Version DEFAULT v1, | |||
| responderID ResponderID, | responderID ResponderID, | |||
| producedAt GeneralizedTime, -- The format for | producedAt GeneralizedTime, | |||
| -- GeneralizedTime is as | -- The format for GeneralizedTime is | |||
| -- specified in Section | -- as specified in Section 4.1.2.5.2 | |||
| -- 4.1.2.5.2 of [RFC5280] | -- [RFC5280] | |||
| responses SEQUENCE OF SingleResponse, | responses SEQUENCE OF SingleResponse, | |||
| responseExtensions [1] EXPLICIT Extensions OPTIONAL } | responseExtensions [1] EXPLICIT Extensions OPTIONAL } | |||
| ResponderID ::= CHOICE { | ResponderID ::= CHOICE { | |||
| byName [1] Name, | byName [1] Name, | |||
| byKey [2] KeyHash } | byKey [2] KeyHash } | |||
| KeyHash ::= OCTET STRING -- SHA-1 hash of responder's public key | KeyHash ::= OCTET STRING | |||
| -- (i.e., the SHA-1 hash of the value of the | -- SHA-1 hash of responder's public key (i.e., the | |||
| -- BIT STRING subjectPublicKey [excluding | -- SHA-1 hash of the value of the BIT STRING | |||
| -- the tag, length, and number of unused | -- subjectPublicKey [excluding the tag, length, and | |||
| -- bits] in the responder's certificate) | -- number of unused bits] in the responder's | |||
| -- certificate) | ||||
| SingleResponse ::= SEQUENCE { | SingleResponse ::= SEQUENCE { | |||
| certID CertID, | certID CertID, | |||
| certStatus CertStatus, | certStatus CertStatus, | |||
| thisUpdate GeneralizedTime, | thisUpdate GeneralizedTime, | |||
| nextUpdate [0] EXPLICIT GeneralizedTime OPTIONAL, | nextUpdate [0] EXPLICIT GeneralizedTime OPTIONAL, | |||
| singleExtensions [1] EXPLICIT Extensions OPTIONAL } | singleExtensions [1] EXPLICIT Extensions OPTIONAL } | |||
| CertStatus ::= CHOICE { | CertStatus ::= CHOICE { | |||
| good [0] IMPLICIT NULL, | good [0] IMPLICIT NULL, | |||
| revoked [1] IMPLICIT RevokedInfo, | revoked [1] IMPLICIT RevokedInfo, | |||
| unknown [2] IMPLICIT UnknownInfo } | unknown [2] IMPLICIT UnknownInfo } | |||
| RevokedInfo ::= SEQUENCE { | RevokedInfo ::= SEQUENCE { | |||
| revocationTime GeneralizedTime, | revocationTime GeneralizedTime, | |||
| revocationReason [0] EXPLICIT CRLReason OPTIONAL } | revocationReason [0] EXPLICIT CRLReason OPTIONAL } | |||
| UnknownInfo ::= NULL | UnknownInfo ::= NULL | |||
| ArchiveCutoff ::= GeneralizedTime | ArchiveCutoff ::= GeneralizedTime | |||
| AcceptableResponses ::= SEQUENCE OF OBJECT IDENTIFIER | AcceptableResponses ::= SEQUENCE OF OBJECT IDENTIFIER | |||
| ServiceLocator ::= SEQUENCE { | ServiceLocator ::= SEQUENCE { | |||
| issuer Name, | issuer Name, | |||
| locator AuthorityInfoAccessSyntax } | locator AuthorityInfoAccessSyntax } | |||
| CrlID ::= SEQUENCE { | CrlID ::= SEQUENCE { | |||
| crlUrl [0] EXPLICIT IA5String OPTIONAL, | crlUrl [0] EXPLICIT IA5String OPTIONAL, | |||
| crlNum [1] EXPLICIT INTEGER OPTIONAL, | crlNum [1] EXPLICIT INTEGER OPTIONAL, | |||
| crlTime [2] EXPLICIT GeneralizedTime OPTIONAL } | crlTime [2] EXPLICIT GeneralizedTime OPTIONAL } | |||
| PreferredSignatureAlgorithms ::= SEQUENCE OF PreferredSignatureAlgorithm | PreferredSignatureAlgorithms ::= SEQUENCE OF | |||
| PreferredSignatureAlgorithm | ||||
| PreferredSignatureAlgorithm ::= SEQUENCE { | PreferredSignatureAlgorithm ::= SEQUENCE { | |||
| sigIdentifier AlgorithmIdentifier, | sigIdentifier AlgorithmIdentifier, | |||
| certIdentifier AlgorithmIdentifier OPTIONAL } | certIdentifier AlgorithmIdentifier OPTIONAL } | |||
| -- Object Identifiers | ||||
| id-kp-OCSPSigning OBJECT IDENTIFIER ::= { id-kp 9 } | id-kp-OCSPSigning OBJECT IDENTIFIER ::= { id-kp 9 } | |||
| id-pkix-ocsp OBJECT IDENTIFIER ::= { id-ad-ocsp } | id-pkix-ocsp OBJECT IDENTIFIER ::= { id-ad-ocsp } | |||
| id-pkix-ocsp-basic OBJECT IDENTIFIER ::= { id-pkix-ocsp 1 } | id-pkix-ocsp-basic OBJECT IDENTIFIER ::= { id-pkix-ocsp 1 } | |||
| id-pkix-ocsp-nonce OBJECT IDENTIFIER ::= { id-pkix-ocsp 2 } | id-pkix-ocsp-nonce OBJECT IDENTIFIER ::= { id-pkix-ocsp 2 } | |||
| id-pkix-ocsp-crl OBJECT IDENTIFIER ::= { id-pkix-ocsp 3 } | id-pkix-ocsp-crl OBJECT IDENTIFIER ::= { id-pkix-ocsp 3 } | |||
| id-pkix-ocsp-response OBJECT IDENTIFIER ::= { id-pkix-ocsp 4 } | id-pkix-ocsp-response OBJECT IDENTIFIER ::= { id-pkix-ocsp 4 } | |||
| id-pkix-ocsp-nocheck OBJECT IDENTIFIER ::= { id-pkix-ocsp 5 } | id-pkix-ocsp-nocheck OBJECT IDENTIFIER ::= { id-pkix-ocsp 5 } | |||
| id-pkix-ocsp-archive-cutoff OBJECT IDENTIFIER ::= { id-pkix-ocsp 6 } | id-pkix-ocsp-archive-cutoff OBJECT IDENTIFIER ::= { id-pkix-ocsp 6 } | |||
| id-pkix-ocsp-service-locator OBJECT IDENTIFIER ::= { id-pkix-ocsp 7 } | id-pkix-ocsp-service-locator OBJECT IDENTIFIER ::= { id-pkix-ocsp 7 } | |||
| id-pkix-ocsp-pref-sig-algs OBJECT IDENTIFIER ::= { id-pkix-ocsp 8 } | id-pkix-ocsp-pref-sig-algs OBJECT IDENTIFIER ::= { id-pkix-ocsp 8 } | |||
| id-pkix-ocsp-extended-revoke OBJECT IDENTIFIER ::= { id-pkix-ocsp 9 } | id-pkix-ocsp-extended-revoke OBJECT IDENTIFIER ::= { id-pkix-ocsp 9 } | |||
| END | END | |||
| <CODE ENDS> | ||||
| A.2. OCSP in ASN.1 - 2008 Syntax | A.2. OCSP in ASN.1 - 2008 Syntax | |||
| OCSP-2024-08 | <CODE BEGINS> | |||
| {iso(1) identified-organization(3) dod(6) internet(1) | OCSP-2024-08 | |||
| security(5) mechanisms(5) pkix(7) id-mod(0) | { iso(1) identified-organization(3) dod(6) internet(1) | |||
| id-mod-ocsp-2024-08(TBD2)} | security(5) mechanisms(5) pkix(7) id-mod(0) | |||
| id-mod-ocsp-2024-08(112) } | ||||
| DEFINITIONS EXPLICIT TAGS ::= | DEFINITIONS EXPLICIT TAGS ::= | |||
| BEGIN | ||||
| BEGIN | IMPORTS | |||
| Extensions{}, EXTENSION | ||||
| FROM PKIX-CommonTypes-2009 -- From [RFC5912] | ||||
| { iso(1) identified-organization(3) dod(6) | ||||
| internet(1) security(5) mechanisms(5) pkix(7) | ||||
| id-mod(0) id-mod-pkixCommon-02(57) } | ||||
| IMPORTS | AlgorithmIdentifier{}, DIGEST-ALGORITHM, | |||
| SIGNATURE-ALGORITHM, PUBLIC-KEY | ||||
| FROM AlgorithmInformation-2009 -- From [RFC5912] | ||||
| { iso(1) identified-organization(3) dod(6) | ||||
| internet(1) security(5) mechanisms(5) pkix(7) | ||||
| id-mod(0) id-mod-algorithmInformation-02(58) } | ||||
| Extensions{}, EXTENSION | AuthorityInfoAccessSyntax, GeneralName, | |||
| FROM PKIX-CommonTypes-2009 -- From [RFC5912] | CrlEntryExtensions, CRLReason | |||
| {iso(1) identified-organization(3) dod(6) internet(1) security(5) | FROM PKIX1Implicit-2009 -- From [RFC5912] | |||
| mechanisms(5) pkix(7) id-mod(0) id-mod-pkixCommon-02(57)} | { iso(1) identified-organization(3) dod(6) | |||
| internet(1) security(5) mechanisms(5) pkix(7) | ||||
| id-mod(0) id-mod-pkix1-implicit-02(59) } | ||||
| AlgorithmIdentifier{}, DIGEST-ALGORITHM, SIGNATURE-ALGORITHM, PUBLIC-KEY | Name, Certificate, CertificateSerialNumber, | |||
| FROM AlgorithmInformation-2009 -- From [RFC5912] | id-kp, id-ad-ocsp | |||
| {iso(1) identified-organization(3) dod(6) internet(1) security(5) | FROM PKIX1Explicit-2009 -- From [RFC5912] | |||
| mechanisms(5) pkix(7) id-mod(0) | { iso(1) identified-organization(3) dod(6) | |||
| id-mod-algorithmInformation-02(58)} | internet(1) security(5) mechanisms(5) pkix(7) | |||
| id-mod(0) id-mod-pkix1-explicit-02(51) } | ||||
| AuthorityInfoAccessSyntax, GeneralName, CrlEntryExtensions, CRLReason | sa-dsaWithSHA1, sa-rsaWithMD2, | |||
| FROM PKIX1Implicit-2009 -- From [RFC5912] | sa-rsaWithMD5, sa-rsaWithSHA1 | |||
| {iso(1) identified-organization(3) dod(6) internet(1) security(5) | FROM PKIXAlgs-2009 -- From [RFC5912] | |||
| mechanisms(5) pkix(7) id-mod(0) id-mod-pkix1-implicit-02(59)} | { iso(1) identified-organization(3) dod(6) | |||
| internet(1) security(5) mechanisms(5) pkix(7) | ||||
| id-mod(0) id-mod-pkix1-algorithms2008-02(56) } ; | ||||
| Name, CertificateSerialNumber, id-kp, id-ad-ocsp, Certificate | OCSPRequest ::= SEQUENCE { | |||
| FROM PKIX1Explicit-2009 -- From [RFC5912] | tbsRequest TBSRequest, | |||
| {iso(1) identified-organization(3) dod(6) internet(1) security(5) | optionalSignature [0] EXPLICIT Signature OPTIONAL } | |||
| mechanisms(5) pkix(7) id-mod(0) id-mod-pkix1-explicit-02(51)} | ||||
| sa-dsaWithSHA1, sa-rsaWithMD2, sa-rsaWithMD5, sa-rsaWithSHA1 | TBSRequest ::= SEQUENCE { | |||
| FROM PKIXAlgs-2009 -- From [RFC5912] | version [0] EXPLICIT Version DEFAULT v1, | |||
| {iso(1) identified-organization(3) dod(6) internet(1) security(5) | requestorName [1] EXPLICIT GeneralName OPTIONAL, | |||
| mechanisms(5) pkix(7) id-mod(0) | requestList SEQUENCE OF Request, | |||
| id-mod-pkix1-algorithms2008-02(56)}; | requestExtensions [2] EXPLICIT Extensions | |||
| {{ re-ocsp-nonce | re-ocsp-response | | ||||
| re-ocsp-preferred-signature-algorithms, | ||||
| ... }} OPTIONAL } | ||||
| OCSPRequest ::= SEQUENCE { | Signature ::= SEQUENCE { | |||
| tbsRequest TBSRequest, | signatureAlgorithm AlgorithmIdentifier | |||
| optionalSignature [0] EXPLICIT Signature OPTIONAL } | { SIGNATURE-ALGORITHM, {...}}, | |||
| signature BIT STRING, | ||||
| certs [0] EXPLICIT SEQUENCE OF | ||||
| Certificate OPTIONAL } | ||||
| TBSRequest ::= SEQUENCE { | Version ::= INTEGER { v1(0) } | |||
| version [0] EXPLICIT Version DEFAULT v1, | ||||
| requestorName [1] EXPLICIT GeneralName OPTIONAL, | ||||
| requestList SEQUENCE OF Request, | ||||
| requestExtensions [2] EXPLICIT Extensions {{re-ocsp-nonce | | ||||
| re-ocsp-response, ..., | ||||
| re-ocsp-preferred-signature-algorithms}} OPTIONAL } | ||||
| Signature ::= SEQUENCE { | Nonce ::= OCTET STRING (SIZE(1..128)) | |||
| signatureAlgorithm AlgorithmIdentifier | ||||
| { SIGNATURE-ALGORITHM, {...}}, | ||||
| signature BIT STRING, | ||||
| certs [0] EXPLICIT SEQUENCE OF Certificate OPTIONAL } | ||||
| Version ::= INTEGER { v1(0) } | Request ::= SEQUENCE { | |||
| reqCert CertID, | ||||
| singleRequestExtensions [0] EXPLICIT Extensions | ||||
| {{ re-ocsp-service-locator, | ||||
| ... }} OPTIONAL } | ||||
| Nonce ::= OCTET STRING(SIZE(1..128)) | CertID ::= SEQUENCE { | |||
| hashAlgorithm AlgorithmIdentifier | ||||
| { DIGEST-ALGORITHM, {...}}, | ||||
| issuerNameHash OCTET STRING, -- Hash of issuer's DN | ||||
| issuerKeyHash OCTET STRING, -- Hash of issuer's public key | ||||
| serialNumber CertificateSerialNumber } | ||||
| Request ::= SEQUENCE { | OCSPResponse ::= SEQUENCE { | |||
| reqCert CertID, | responseStatus OCSPResponseStatus, | |||
| singleRequestExtensions [0] EXPLICIT Extensions | responseBytes [0] EXPLICIT ResponseBytes OPTIONAL } | |||
| { {re-ocsp-service-locator, | ||||
| ...}} OPTIONAL } | ||||
| CertID ::= SEQUENCE { | OCSPResponseStatus ::= ENUMERATED { | |||
| hashAlgorithm AlgorithmIdentifier | successful (0), -- Response has valid confirmations | |||
| {DIGEST-ALGORITHM, {...}}, | malformedRequest (1), -- Illegal confirmation request | |||
| issuerNameHash OCTET STRING, -- Hash of issuer's DN | internalError (2), -- Internal error in issuer | |||
| issuerKeyHash OCTET STRING, -- Hash of issuer's public key | tryLater (3), -- Try again later | |||
| serialNumber CertificateSerialNumber } | -- (4) is not used | |||
| sigRequired (5), -- Must sign the request | ||||
| unauthorized (6) -- Request unauthorized | ||||
| } | ||||
| OCSPResponse ::= SEQUENCE { | RESPONSE ::= TYPE-IDENTIFIER | |||
| responseStatus OCSPResponseStatus, | ||||
| responseBytes [0] EXPLICIT ResponseBytes OPTIONAL } | ||||
| OCSPResponseStatus ::= ENUMERATED { | ResponseSet RESPONSE ::= { basicResponse, ... } | |||
| successful (0), -- Response has valid confirmations | ||||
| malformedRequest (1), -- Illegal confirmation request | ||||
| internalError (2), -- Internal error in issuer | ||||
| tryLater (3), -- Try again later | ||||
| -- (4) is not used | ||||
| sigRequired (5), -- Must sign the request | ||||
| unauthorized (6) -- Request unauthorized | ||||
| } | ||||
| RESPONSE ::= TYPE-IDENTIFIER | ResponseBytes ::= SEQUENCE { | |||
| responseType RESPONSE.&id ({ResponseSet}), | ||||
| response OCTET STRING (CONTAINING RESPONSE. | ||||
| &Type({ResponseSet}{@responseType}))} | ||||
| ResponseSet RESPONSE ::= {basicResponse, ...} | basicResponse RESPONSE ::= | |||
| { BasicOCSPResponse IDENTIFIED BY id-pkix-ocsp-basic } | ||||
| ResponseBytes ::= SEQUENCE { | BasicOCSPResponse ::= SEQUENCE { | |||
| responseType RESPONSE. | tbsResponseData ResponseData, | |||
| &id ({ResponseSet}), | signatureAlgorithm AlgorithmIdentifier | |||
| response OCTET STRING (CONTAINING RESPONSE. | { SIGNATURE-ALGORITHM, | |||
| &Type({ResponseSet}{@responseType}))} | { sa-dsaWithSHA1 | | |||
| sa-rsaWithSHA1 | | ||||
| sa-rsaWithMD5 | | ||||
| sa-rsaWithMD2, | ||||
| ... }}, | ||||
| signature BIT STRING, | ||||
| certs [0] EXPLICIT SEQUENCE OF | ||||
| Certificate OPTIONAL } | ||||
| basicResponse RESPONSE ::= | ResponseData ::= SEQUENCE { | |||
| { BasicOCSPResponse IDENTIFIED BY id-pkix-ocsp-basic } | version [0] EXPLICIT Version DEFAULT v1, | |||
| responderID ResponderID, | ||||
| producedAt GeneralizedTime, | ||||
| responses SEQUENCE OF SingleResponse, | ||||
| responseExtensions [1] EXPLICIT Extensions | ||||
| {{ re-ocsp-nonce | | ||||
| re-ocsp-extended-revoke, | ||||
| ... }} OPTIONAL } | ||||
| BasicOCSPResponse ::= SEQUENCE { | ResponderID ::= CHOICE { | |||
| tbsResponseData ResponseData, | byName [1] Name, | |||
| signatureAlgorithm AlgorithmIdentifier{SIGNATURE-ALGORITHM, | byKey [2] KeyHash } | |||
| {sa-dsaWithSHA1 | sa-rsaWithSHA1 | | ||||
| sa-rsaWithMD5 | sa-rsaWithMD2, ...}}, | ||||
| signature BIT STRING, | ||||
| certs [0] EXPLICIT SEQUENCE OF Certificate OPTIONAL } | ||||
| ResponseData ::= SEQUENCE { | KeyHash ::= OCTET STRING | |||
| version [0] EXPLICIT Version DEFAULT v1, | -- SHA-1 hash of responder's public key | |||
| responderID ResponderID, | -- (excluding the tag and length and number | |||
| producedAt GeneralizedTime, | -- of unused bits) | |||
| responses SEQUENCE OF SingleResponse, | ||||
| responseExtensions [1] EXPLICIT Extensions | ||||
| {{re-ocsp-nonce, ..., | ||||
| re-ocsp-extended-revoke}} OPTIONAL } | ||||
| ResponderID ::= CHOICE { | SingleResponse ::= SEQUENCE { | |||
| byName [1] Name, | certID CertID, | |||
| byKey [2] KeyHash } | certStatus CertStatus, | |||
| thisUpdate GeneralizedTime, | ||||
| nextUpdate [0] EXPLICIT GeneralizedTime OPTIONAL, | ||||
| singleExtensions [1] EXPLICIT Extensions | ||||
| {{ re-ocsp-crl | | ||||
| re-ocsp-archive-cutoff | | ||||
| CrlEntryExtensions, | ||||
| ... }} OPTIONAL } | ||||
| KeyHash ::= OCTET STRING -- SHA-1 hash of responder's public key | CertStatus ::= CHOICE { | |||
| -- (excluding the tag and length fields) | good [0] IMPLICIT NULL, | |||
| revoked [1] IMPLICIT RevokedInfo, | ||||
| unknown [2] IMPLICIT UnknownInfo } | ||||
| SingleResponse ::= SEQUENCE { | RevokedInfo ::= SEQUENCE { | |||
| certID CertID, | revocationTime GeneralizedTime, | |||
| certStatus CertStatus, | revocationReason [0] EXPLICIT CRLReason OPTIONAL } | |||
| thisUpdate GeneralizedTime, | ||||
| nextUpdate [0] EXPLICIT GeneralizedTime OPTIONAL, | ||||
| singleExtensions [1] EXPLICIT Extensions{{re-ocsp-crl | | ||||
| re-ocsp-archive-cutoff | | ||||
| CrlEntryExtensions, ...} | ||||
| } OPTIONAL } | ||||
| CertStatus ::= CHOICE { | UnknownInfo ::= NULL | |||
| good [0] IMPLICIT NULL, | ||||
| revoked [1] IMPLICIT RevokedInfo, | ||||
| unknown [2] IMPLICIT UnknownInfo } | ||||
| RevokedInfo ::= SEQUENCE { | ArchiveCutoff ::= GeneralizedTime | |||
| revocationTime GeneralizedTime, | ||||
| revocationReason [0] EXPLICIT CRLReason OPTIONAL } | ||||
| UnknownInfo ::= NULL | AcceptableResponses ::= SEQUENCE OF RESPONSE.&id({ResponseSet}) | |||
| ArchiveCutoff ::= GeneralizedTime | ServiceLocator ::= SEQUENCE { | |||
| issuer Name, | ||||
| locator AuthorityInfoAccessSyntax } | ||||
| AcceptableResponses ::= SEQUENCE OF RESPONSE.&id({ResponseSet}) | CrlID ::= SEQUENCE { | |||
| crlUrl [0] EXPLICIT IA5String OPTIONAL, | ||||
| crlNum [1] EXPLICIT INTEGER OPTIONAL, | ||||
| crlTime [2] EXPLICIT GeneralizedTime OPTIONAL } | ||||
| ServiceLocator ::= SEQUENCE { | PreferredSignatureAlgorithms ::= SEQUENCE OF | |||
| issuer Name, | PreferredSignatureAlgorithm | |||
| locator AuthorityInfoAccessSyntax } | ||||
| CrlID ::= SEQUENCE { | PreferredSignatureAlgorithm ::= SEQUENCE { | |||
| crlUrl [0] EXPLICIT IA5String OPTIONAL, | sigIdentifier AlgorithmIdentifier | |||
| crlNum [1] EXPLICIT INTEGER OPTIONAL, | { SIGNATURE-ALGORITHM, {...} }, | |||
| crlTime [2] EXPLICIT GeneralizedTime OPTIONAL } | certIdentifier AlgorithmIdentifier {PUBLIC-KEY, {...}} | |||
| OPTIONAL } | ||||
| PreferredSignatureAlgorithms ::= SEQUENCE OF PreferredSignatureAlgorithm | -- Certificate Extensions | |||
| PreferredSignatureAlgorithm ::= SEQUENCE { | ext-ocsp-nocheck EXTENSION ::= { | |||
| sigIdentifier AlgorithmIdentifier{SIGNATURE-ALGORITHM, {...}}, | SYNTAX NULL IDENTIFIED BY id-pkix-ocsp-nocheck } | |||
| certIdentifier AlgorithmIdentifier{PUBLIC-KEY, {...}} OPTIONAL | ||||
| } | ||||
| -- Request Extensions | ||||
| ext-ocsp-nocheck EXTENSION ::= { SYNTAX NULL IDENTIFIED | re-ocsp-nonce EXTENSION ::= { | |||
| BY id-pkix-ocsp-nocheck } | SYNTAX Nonce IDENTIFIED BY id-pkix-ocsp-nonce } | |||
| re-ocsp-response EXTENSION ::= { | ||||
| SYNTAX AcceptableResponses IDENTIFIED BY | ||||
| id-pkix-ocsp-response } | ||||
| re-ocsp-nonce EXTENSION ::= { SYNTAX Nonce | re-ocsp-service-locator EXTENSION ::= { | |||
| IDENTIFIED BY id-pkix-ocsp-nonce } | SYNTAX ServiceLocator IDENTIFIED BY | |||
| id-pkix-ocsp-service-locator } | ||||
| re-ocsp-response EXTENSION ::= { SYNTAX AcceptableResponses IDENTIFIED | re-ocsp-preferred-signature-algorithms EXTENSION ::= { | |||
| BY id-pkix-ocsp-response } | SYNTAX PreferredSignatureAlgorithms IDENTIFIED BY | |||
| id-pkix-ocsp-pref-sig-algs } | ||||
| re-ocsp-service-locator EXTENSION ::= { SYNTAX ServiceLocator | -- Response Extensions | |||
| IDENTIFIED BY | ||||
| id-pkix-ocsp-service-locator } | ||||
| re-ocsp-preferred-signature-algorithms EXTENSION ::= { | re-ocsp-crl EXTENSION ::= { | |||
| SYNTAX PreferredSignatureAlgorithms | SYNTAX CrlID IDENTIFIED BY id-pkix-ocsp-crl } | |||
| IDENTIFIED BY id-pkix-ocsp-pref-sig-algs } | ||||
| re-ocsp-archive-cutoff EXTENSION ::= { | ||||
| SYNTAX ArchiveCutoff IDENTIFIED BY | ||||
| id-pkix-ocsp-archive-cutoff } | ||||
| re-ocsp-crl EXTENSION ::= { SYNTAX CrlID IDENTIFIED BY | re-ocsp-extended-revoke EXTENSION ::= { | |||
| id-pkix-ocsp-crl } | SYNTAX NULL IDENTIFIED BY id-pkix-ocsp-extended-revoke } | |||
| re-ocsp-archive-cutoff EXTENSION ::= { SYNTAX ArchiveCutoff | -- Object Identifiers | |||
| IDENTIFIED BY | ||||
| id-pkix-ocsp-archive-cutoff } | ||||
| re-ocsp-extended-revoke EXTENSION ::= { SYNTAX NULL IDENTIFIED BY | id-kp-OCSPSigning OBJECT IDENTIFIER ::= { id-kp 9 } | |||
| id-pkix-ocsp-extended-revoke } | id-pkix-ocsp OBJECT IDENTIFIER ::= id-ad-ocsp | |||
| id-pkix-ocsp-basic OBJECT IDENTIFIER ::= { id-pkix-ocsp 1 } | ||||
| id-pkix-ocsp-nonce OBJECT IDENTIFIER ::= { id-pkix-ocsp 2 } | ||||
| id-pkix-ocsp-crl OBJECT IDENTIFIER ::= { id-pkix-ocsp 3 } | ||||
| id-pkix-ocsp-response OBJECT IDENTIFIER ::= { id-pkix-ocsp 4 } | ||||
| id-pkix-ocsp-nocheck OBJECT IDENTIFIER ::= { id-pkix-ocsp 5 } | ||||
| id-pkix-ocsp-archive-cutoff OBJECT IDENTIFIER ::= { id-pkix-ocsp 6 } | ||||
| id-pkix-ocsp-service-locator OBJECT IDENTIFIER ::= { id-pkix-ocsp 7 } | ||||
| id-pkix-ocsp-pref-sig-algs OBJECT IDENTIFIER ::= { id-pkix-ocsp 8 } | ||||
| id-pkix-ocsp-extended-revoke OBJECT IDENTIFIER ::= { id-pkix-ocsp 9 } | ||||
| END | ||||
| <CODE ENDS> | ||||
| id-kp-OCSPSigning OBJECT IDENTIFIER ::= { id-kp 9 } | Acknowledgements | |||
| id-pkix-ocsp OBJECT IDENTIFIER ::= id-ad-ocsp | ||||
| id-pkix-ocsp-basic OBJECT IDENTIFIER ::= { id-pkix-ocsp 1 } | ||||
| id-pkix-ocsp-nonce OBJECT IDENTIFIER ::= { id-pkix-ocsp 2 } | ||||
| id-pkix-ocsp-crl OBJECT IDENTIFIER ::= { id-pkix-ocsp 3 } | ||||
| id-pkix-ocsp-response OBJECT IDENTIFIER ::= { id-pkix-ocsp 4 } | ||||
| id-pkix-ocsp-nocheck OBJECT IDENTIFIER ::= { id-pkix-ocsp 5 } | ||||
| id-pkix-ocsp-archive-cutoff OBJECT IDENTIFIER ::= { id-pkix-ocsp 6 } | ||||
| id-pkix-ocsp-service-locator OBJECT IDENTIFIER ::= { id-pkix-ocsp 7 } | ||||
| id-pkix-ocsp-pref-sig-algs OBJECT IDENTIFIER ::= { id-pkix-ocsp 8 } | ||||
| id-pkix-ocsp-extended-revoke OBJECT IDENTIFIER ::= { id-pkix-ocsp 9 } | ||||
| END | The authors of this document thank Mohit Sahni for his work to | |||
| produce [RFC8954]. | ||||
| The authors also thank Russ Housley, Corey Bonnell, Michael StJohns, | ||||
| Tomas Gustavsson, and Carl Wallace for their feedback and | ||||
| suggestions. | ||||
| Author's Address | Author's Address | |||
| Himanshu Sharma (editor) | Himanshu Sharma (editor) | |||
| Netskope Inc | Netskope Inc | |||
| 2445 Augustine Dr 3rd floor | 2445 Augustine Dr 3rd floor | |||
| Santa Clara, California 95054 | Santa Clara, California 95054 | |||
| United States of America | United States of America | |||
| Email: himanshu@netskope.com | Email: himanshu@netskope.com | |||
| URI: www.netskope.com | URI: www.netskope.com | |||
| End of changes. 116 change blocks. | ||||
| 417 lines changed or deleted | 450 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. | ||||