5967
INFORMATIONAL
The application/pkcs10 Media Type
Authors: S. Turner
Date: August 2010
Working Group: NON WORKING GROUP
Stream: IETF
Updates:
RFC 2986
Abstract
This document specifies a media type used to carry PKCS #10 certification requests as defined in RFC 2986. It carries over the original specification from RFC 2311, which recently has been moved to Historic status, and properly links it to RFC 2986. This document is not an Internet Standards Track specification; it is published for informational purposes.
RFC 5967
INFORMATIONAL
Internet Engineering Task Force (IETF) S. Turner
Request for Comments: 5967 IECA
Updates: <a href="./rfc2986">2986</a> August 2010
Category: Informational
ISSN: 2070-1721
<span class="h1">The application/pkcs10 Media Type</span>
Abstract
This document specifies a media type used to carry PKCS #10
certification requests as defined in <a href="./rfc2986">RFC 2986</a>. It carries over the
original specification from <a href="./rfc2311">RFC 2311</a>, which recently has been moved
to Historic status, and properly links it to <a href="./rfc2986">RFC 2986</a>.
Status of This Memo
This document is not an Internet Standards Track specification; it is
published for informational purposes.
This document is a product of the Internet Engineering Task Force
(IETF). It represents the consensus of the IETF community. It has
received public review and has been approved for publication by the
Internet Engineering Steering Group (IESG). Not all documents
approved by the IESG are a candidate for any level of Internet
Standard; see <a href="./rfc5741#section-2">Section 2 of RFC 5741</a>.
Information about the current status of this document, any errata,
and how to provide feedback on it may be obtained at
<a href="https://www.rfc-editor.org/info/rfc5967">http://www.rfc-editor.org/info/rfc5967</a>.
Copyright Notice
Copyright (c) 2010 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to <a href="https://www.rfc-editor.org/bcp/bcp78">BCP 78</a> and the IETF Trust's Legal
Provisions Relating to IETF Documents
(<a href="http://trustee.ietf.org/license-info">http://trustee.ietf.org/license-info</a>) 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
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.
<span class="grey">Turner Informational [Page 1]</span>
<span id="page-2" ></span>
<span class="grey"><a href="./rfc5967">RFC 5967</a> application/pkcs10 Media Type August 2010</span>
This document may contain material from IETF Documents or IETF
Contributions published or made publicly available before November
10, 2008. The person(s) controlling the copyright in some of this
material may not have granted the IETF Trust the right to allow
modifications of such material outside the IETF Standards Process.
Without obtaining an adequate license from the person(s) controlling
the copyright in such materials, this document may not be modified
outside the IETF Standards Process, and derivative works of it may
not be created outside the IETF Standards Process, except to format
it for publication as an RFC or to translate it into languages other
than English.
<span class="h2"><a class="selflink" id="section-1" href="#section-1">1</a>. Introduction</span>
[<a id="ref-RFC2311">RFC2311</a>] first defined the application/pkcs10 media type. When
[<a href="./rfc2633" title=""S/MIME Version 3 Message Specification"">RFC2633</a>] was published, the application/pkcs10 section was dropped,
but for some reason the text was not incorporated into the PKCS #10
document [<a href="./rfc2986" title=""PKCS #10: Certification Request Syntax Specification Version 1.7"">RFC2986</a>]. [<a href="./rfc2311" title=""S/MIME Version 2 Message Specification"">RFC2311</a>] was moved to Historic status by
[<a href="./rfc5751" title=""Secure/Multipurpose Internet Mail Extensions (S/MIME) Version 3.2 Message Specification"">RFC5751</a>]. To ensure the IANA media type registration points to a
non-Historic document, this document updates [<a href="./rfc2986" title=""PKCS #10: Certification Request Syntax Specification Version 1.7"">RFC2986</a>] with the
definition of the application/pkcs10 media type and an IANA
registration based on [<a href="./rfc4288" title=""Media Type Specifications and Registration Procedures"">RFC4288</a>].
The text for <a href="#section-2">Section 2</a> is adapted from <a href="./rfc2311#section-3.7">Section 3.7 of [RFC2311]</a>.
<span class="h3"><a class="selflink" id="section-1.1" href="#section-1.1">1.1</a>. Requirements Terminology</span>
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 [<a href="./rfc2119" title=""Key words for use in RFCs to Indicate Requirement Levels"">RFC2119</a>].
<span class="h2"><a class="selflink" id="section-2" href="#section-2">2</a>. Creating a Certification Request</span>
A typical application that allows a user to generate cryptographic
information has to submit that information to a Certification
Authority (CA), who transforms it into a certificate. PKCS #10
[<a href="./rfc2986" title=""PKCS #10: Certification Request Syntax Specification Version 1.7"">RFC2986</a>] describes a syntax for certification requests.
The details of certification requests and the process of obtaining a
certificate are beyond the scope of this memo. Instead, only the
format of data used in application/pkcs10 is defined.
<span class="h3"><a class="selflink" id="section-2.1" href="#section-2.1">2.1</a>. Format of the application/pkcs10 Body</span>
PKCS #10 defines the ASN.1 type CertificationRequest for use in
submitting a certification request. For transfer to a CA, this
abstract syntax needs to be encoded and identified in a unique
<span class="grey">Turner Informational [Page 2]</span>
<span id="page-3" ></span>
<span class="grey"><a href="./rfc5967">RFC 5967</a> application/pkcs10 Media Type August 2010</span>
manner. When the media type application/pkcs10 is used, the body
MUST be a CertificationRequest.
A robust application SHOULD output Distinguished Encoding Rules
(DER), but allow Basic Encoding Rules (BER) or DER on input.
Data produced by BER or DER is 8-bit, but some transports are limited
to 7-bit data. In such cases, a suitable 7-bit transfer encoding
MUST be applied; in MIME-compatible transports, the base64 encoding
[<a href="./rfc4648" title=""The Base16, Base32, and Base64 Data Encodings"">RFC4648</a>] SHOULD be used with application/pkcs10, although any 7-bit
transfer encoding may work.
<span class="h3"><a class="selflink" id="section-2.2" href="#section-2.2">2.2</a>. Sending and Receiving an application/pkcs10 Body Part</span>
For sending a certificate-signing request, the application/pkcs10
message format MUST be used to convey a PKCS #10 certificate-signing
request. Note that for sending certificates and Certificate
Revocation Lists (CRLs) without any signed content, the
application/pkcs7-mime message format MUST be used to convey a
degenerate PKCS #7 signedData "certs-only" message [<a href="./rfc5751" title=""Secure/Multipurpose Internet Mail Extensions (S/MIME) Version 3.2 Message Specification"">RFC5751</a>].
To send an application/pkcs10 body, the application generates the
cryptographic information for the user. The details of the
cryptographic information are beyond the scope of this memo.
Step 1. The cryptographic information is placed within a PKCS #10
CertificationRequest.
Step 2. The CertificationRequest is encoded according to BER or DER
(preferred, DER).
Step 3. As a typical step, the encoded CertificationRequest is also
base64 encoded so that it is 7-bit data suitable for transfer
in ESMTP. This then becomes the body of an
application/pkcs10 body part.
The result might look like this:
Content-Type: application/pkcs10; name=smime.p10
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=smime.p10
rfvbnj756tbBghyHhHUujhJhjH77n8HHGT9HG4VQpfyF467GhIGfHfYT6
7n8HHGghyHhHUujhJh4VQpfyF467GhIGfHfYGTrfvbnjT6jH7756tbB9H
f8HHGTrfvhJhjH776tbB9HG4VQbnj7567GhIGfHfYT6ghyHhHUujpfyF4
0GhIGfHfQbnj756YT64V
<span class="grey">Turner Informational [Page 3]</span>
<span id="page-4" ></span>
<span class="grey"><a href="./rfc5967">RFC 5967</a> application/pkcs10 Media Type August 2010</span>
A typical application only needs to send a certification request. It
is a Certification Authority that has to receive and process the
request. The steps for recovering the CertificationRequest from the
message are straightforward but are not presented here. The
procedures for processing the certification request are beyond the
scope of this document.
<span class="h2"><a class="selflink" id="section-3" href="#section-3">3</a>. IANA Considerations</span>
IANA has updated the registration for the application/pkcs10 media
subtype in the Application Media Types registry using the filled-in
template from <a href="https://www.rfc-editor.org/bcp/bcp13">BCP 13</a> [<a href="./rfc4288" title=""Media Type Specifications and Registration Procedures"">RFC4288</a>] given below.
<span class="h3"><a class="selflink" id="section-3.1" href="#section-3.1">3.1</a>. Registration of Media Subtype application/pkcs10</span>
The media subtype for a PKCS #10 certification request is
application/pkcs10.
Type name: application
Subtype name: pkcs10
Required parameters: None
Optional parameters: None
Encoding considerations: binary; see <a href="#section-2">Section 2</a>.
Security considerations:
Clients use a certification request to request that a
Certification Authority certify a public key. The
certification request is digitally signed. Also, see
<a href="#section-6">Section 6</a>.
Interoperability considerations: See <a href="#section-2">Section 2</a>.
Published specification: This specification.
Applications which use this media type:
Applications that support PKCS #10 certification requests
[<a href="./rfc2986" title=""PKCS #10: Certification Request Syntax Specification Version 1.7"">RFC2986</a>].
Additional information:
Magic number(s): None
File extension(s): .p10
<span class="grey">Turner Informational [Page 4]</span>
<span id="page-5" ></span>
<span class="grey"><a href="./rfc5967">RFC 5967</a> application/pkcs10 Media Type August 2010</span>
Macintosh File Type Code(s):
Person & email address to contact for further information:
Sean Turner <turners@ieca.com>
Restrictions on usage: none
Author: Sean Turner <turners@ieca.com>
Intended usage: COMMON
Change controller: The IESG
<span class="h2"><a class="selflink" id="section-4" href="#section-4">4</a>. Security Considerations</span>
The security considerations of [<a href="./rfc2986" title=""PKCS #10: Certification Request Syntax Specification Version 1.7"">RFC2986</a>] and [<a href="./rfc5751" title=""Secure/Multipurpose Internet Mail Extensions (S/MIME) Version 3.2 Message Specification"">RFC5751</a>] apply; no new
security considerations are introduced by this document.
<span class="h2"><a class="selflink" id="section-5" href="#section-5">5</a>. Acknowledgements</span>
I wish to thank the authors of <a href="./rfc2311">RFC 2311</a>, Steve Dusse, Paul Hoffman,
Blake Ramsdell, Laurence Lundblade, and Lisa Repka.
I would also like to thank Bjoern Hoehrmann for his review of the
media subtype application.
<span class="h2"><a class="selflink" id="section-6" href="#section-6">6</a>. References</span>
<span class="h3"><a class="selflink" id="section-6.1" href="#section-6.1">6.1</a>. Normative References</span>
[<a id="ref-RFC2119">RFC2119</a>] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", <a href="https://www.rfc-editor.org/bcp/bcp14">BCP 14</a>, <a href="./rfc2119">RFC 2119</a>, March 1997.
[<a id="ref-RFC2986">RFC2986</a>] Nystrom, M. and B. Kaliski, "PKCS #10: Certification
Request Syntax Specification Version 1.7", <a href="./rfc2986">RFC 2986</a>,
November 2000.
[<a id="ref-RFC4288">RFC4288</a>] Freed, N. and J. Klensin, "Media Type Specifications and
Registration Procedures", <a href="https://www.rfc-editor.org/bcp/bcp13">BCP 13</a>, <a href="./rfc4288">RFC 4288</a>, December 2005.
[<a id="ref-RFC4648">RFC4648</a>] Josefsson, S., "The Base16, Base32, and Base64 Data
Encodings", <a href="./rfc4648">RFC 4648</a>, October 2006.
[<a id="ref-RFC5751">RFC5751</a>] Ramsdell, B. and S. Turner, "Secure/Multipurpose Internet
Mail Extensions (S/MIME) Version 3.2 Message
Specification", <a href="./rfc5751">RFC 5751</a>, January 2010.
<span class="grey">Turner Informational [Page 5]</span>
<span id="page-6" ></span>
<span class="grey"><a href="./rfc5967">RFC 5967</a> application/pkcs10 Media Type August 2010</span>
[<a id="ref-X.690">X.690</a>] ITU-T Recommendation X.690 (2002) | ISO/IEC 8825-1:2002.
Information Technology - ASN.1 encoding rules:
Specification of Basic Encoding Rules (BER), Canonical
Encoding Rules (CER) and Distinguished Encoding Rules
(DER).
<span class="h3"><a class="selflink" id="section-6.2" href="#section-6.2">6.2</a>. Informative References</span>
[<a id="ref-RFC2311">RFC2311</a>] Dusse, S., Hoffman, P., Ramsdell, B., Lundblade, L., and
L. Repka, "S/MIME Version 2 Message Specification", <a href="./rfc2311">RFC</a>
<a href="./rfc2311">2311</a>, March 1998.
[<a id="ref-RFC2633">RFC2633</a>] Ramsdell, B., Ed., "S/MIME Version 3 Message
Specification", <a href="./rfc2633">RFC 2633</a>, June 1999.
Author's Address
Sean Turner
IECA, Inc.
3057 Nutley Street, Suite 106
Fairfax, VA 22031
USA
EMail: [email protected]
Turner Informational [Page 6]
Annotations
Select text to annotate