rfc8769xml2.original.xml | rfc8769.xml | |||
---|---|---|---|---|
<?xml version='1.0' encoding='utf-8'?> | <?xml version='1.0' encoding='utf-8'?> | |||
<!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent"> | ||||
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?> | <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?> | |||
<?rfc toc="yes"?> | ||||
<?rfc symrefs="yes"?> | <rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" | |||
<?rfc sortrefs="yes"?> | docName="draft-schaad-cbor-content-02" category="info" version="3" | |||
<?rfc comments="yes"?> | submissionType="IETF" number="8769" consensus="true" symRefs="true" | |||
<rfc ipr="trust200902" docName="draft-schaad-cbor-content-02" category="info" ve | sortRefs="true" tocInclude="true" xml:lang="en"> | |||
rsion="3" submissionType="IETF"> | ||||
<front> | <front> | |||
<title>Cryptographic Message System (CMS) Content Types for Concise Binary O | ||||
bject Representation (CBOR)</title> | <title abbrev="CMS Content Types for CBOR">Cryptographic Message Syntax (CMS | |||
) Content Types for Concise Binary | ||||
Object Representation (CBOR)</title> | ||||
<seriesInfo name="RFC" value="8769" /> | ||||
<author initials="J." surname="Schaad" fullname="Jim Schaad"> | <author initials="J." surname="Schaad" fullname="Jim Schaad"> | |||
<organization>August Cellars</organization> | <organization>August Cellars</organization> | |||
<address> | <address> | |||
<email>ietf@augustcellars.com</email> | <email>ietf@augustcellars.com</email> | |||
</address> | </address> | |||
</author> | </author> | |||
<date/> | <date month="March" year="2020"/> | |||
<area>Security</area> | <area>Security</area> | |||
<abstract> | <abstract> | |||
<t> | <t> | |||
Concise Binary Object Representation (CBOR) is becoming a widely used me thod of doing content encoding. | Concise Binary Object Representation (CBOR) is becoming a widely used me thod of doing content encoding. | |||
Cryptographic Message System (CMS) is still a widely used method of doin g message-based security. | The Cryptographic Message Syntax (CMS) is still a widely used method of doing message-based security. | |||
This document defines a set of content types for CMS that hold CBOR cont ent. | This document defines a set of content types for CMS that hold CBOR cont ent. | |||
</t> | </t> | |||
</abstract> | </abstract> | |||
</front> | </front> | |||
<middle> | <middle> | |||
<section> | <section> | |||
<name>Introduction</name> | <name>Introduction</name> | |||
<t> | <t> | |||
Concise Binary Object Representation (CBOR) <xref target="RFC7049"/> is | Concise Binary Object Representation (CBOR) <xref target="RFC7049"/> | |||
a compact self-describing binary encoding formation that is starting to be used | is a compact self-describing binary encoding formation that is | |||
in many different applications. | starting to be used in many different applications. | |||
One of the primary uses of CBOR is in the Internet of Things where the c | One of the primary uses of CBOR is in the Internet of Things, the | |||
onstrained nature means that having minimal size of encodings becomes very impor | constrained nature of which means that having minimal size of | |||
tant. | encodings becomes very important. | |||
The use of the Cryptographic Message System (CMS) <xref target="RFC5652" | The Cryptographic Message Syntax (CMS) <xref | |||
/> is still one of the most common method for providing message-based security, | target="RFC5652"/> is still one of the most common methods for | |||
although in many cases the CBOR Object Signing and Encryption (COSE) <xref targe | providing message-based security, although in many cases, the CBOR | |||
t="RFC8152"/> message-based security system is starting to be used. | Object Signing and Encryption (COSE) <xref target="RFC8152"/> | |||
Given that CBOR is going to be transported using CMS, it makes sense to | message-based security system is starting to be used. | |||
define CMS content types for the purpose of denoting that the embedded content i | Given that CBOR is going to be transported using CMS, it makes sense | |||
s CBOR. | to define CMS content types for the purpose of denoting that the | |||
This document defines two new content types: CBOR Content Type and CBOR | embedded content is CBOR. | |||
Sequence Content Type <xref target="I-D.ietf-cbor-sequence"/>. | This document defines two new content types: CBOR content type and | |||
CBOR Sequence content type <xref target="RFC8742"/>. | ||||
</t> | </t> | |||
</section> | </section> | |||
<section> | <section> | |||
<name>CBOR Content Type</name> | <name>CBOR Content Type</name> | |||
<t> | <t> | |||
<xref target="RFC7049"/> defines an encoded CBOR item. | <xref target="RFC7049"/> defines an encoded CBOR item. | |||
This section defines a new content type for wrapping an encoded CBOR ite m in a CMS object. | This section defines a new content type for wrapping an encoded CBOR ite m in a CMS object. | |||
</t> | </t> | |||
<t> | <t> | |||
The following object identifier identifies the CBOR content type: | The following object identifier identifies the CBOR content type: | |||
</t> | </t> | |||
<sourcecode type="asn.1"><![CDATA[ | ||||
<artwork> | ||||
id-ct-cbor OBJECT IDENTIFIER ::= { iso(1) member-body(2) usa(840) | id-ct-cbor OBJECT IDENTIFIER ::= { iso(1) member-body(2) usa(840) | |||
rsadsi(113549) pkcs(1) pkcs9(9) smime(16) ct(1) TBD1 } | rsadsi(113549) pkcs(1) pkcs9(9) smime(16) ct(1) 44 }]]> | |||
</artwork> | </sourcecode> | |||
<t> | <t> | |||
The CBOR content type is intended to refer to a single object encoded us ing the CBOR encoding format <xref target="RFC7049"/>. | The CBOR content type is intended to refer to a single object encoded us ing the CBOR encoding format <xref target="RFC7049"/>. | |||
Nothing is stated about the specific CBOR object that is included. | Nothing is stated about the specific CBOR object that is included. | |||
CBOR can always be decoded to a tree as the encoding is self descriptive . | CBOR can always be decoded to a tree, as the encoding is self descriptiv e. | |||
</t> | </t> | |||
<t> | <t> | |||
The CBOR content type is intended to be encapsulated in the signed data | The CBOR content type is intended to be encapsulated in the signed | |||
and auth-enveloped data, but can be included in any CMS wrapper. | data and auth-enveloped data, but it can be included in any CMS wrapper. | |||
It cannot be predicted if the compressed CMS encapsulation will provide | It cannot be predicted whether the compressed CMS encapsulation will | |||
compression as the content may be binary rather than text. | provide compression, because the content may be binary rather than text. | |||
</t> | </t> | |||
<t> | <t> | |||
<xref target="RFC7193"/> defined an optional parameter "innerContent" to | <xref target="RFC7193"/> defined an optional parameter, | |||
allow for identification of what the inner content is for an application/cms me | "innerContent", to allow for identification of what the inner content | |||
dia type. | is for an application/cms media type. | |||
This document defines the string "cbor" as a new value that can be place | This document defines the string "cbor" as a new value that can be | |||
d here when a CBOR content type is used. | placed in this parameter when a CBOR content type is used. | |||
</t> | </t> | |||
</section> | </section> | |||
<section> | <section> | |||
<name>CBOR Sequence Content Type</name> | <name>CBOR Sequence Content Type</name> | |||
<t> | <t> | |||
<xref target="I-D.ietf-cbor-sequence"/> defines a CBOR Sequence as a con catenation of zero or more CBOR objects. | <xref target="RFC8742"/> defines a CBOR Sequence as a concatenation of z ero or more CBOR objects. | |||
This section defines a new content type for wrapping a CBOR Sequence in a CMS object. | This section defines a new content type for wrapping a CBOR Sequence in a CMS object. | |||
</t> | </t> | |||
<t> | <t> | |||
The following object identifier identifies the CBOR Sequence content typ e: | The following object identifier identifies the CBOR Sequence content typ e: | |||
</t> | </t> | |||
<artwork> | ||||
<sourcecode type="asn.1"><![CDATA[ | ||||
id-ct-cborSequence OBJECT IDENTIFIER ::= { iso(1) member-body(2) | id-ct-cborSequence OBJECT IDENTIFIER ::= { iso(1) member-body(2) | |||
usa(840) rsadsi(113549) pkcs(1) pkcs9(9) smime(16) ct(1) | usa(840) rsadsi(113549) pkcs(1) pkcs9(9) smime(16) ct(1) | |||
TBD2 } | 45 }]]> | |||
</artwork> | </sourcecode> | |||
<t> | <t> | |||
The CBOR Sequence content type is intended to refer to a sequence of obj ects encoded using the CBOR encoding format. | The CBOR Sequence content type is intended to refer to a sequence of obj ects encoded using the CBOR encoding format. | |||
The objects are concatenated without any markers delimiting the individu al CBOR objects. | The objects are concatenated without any markers delimiting the individu al CBOR objects. | |||
Nothing is stated about the specific CBOR objects that are included. | Nothing is stated about the specific CBOR objects that are included. | |||
CBOR can always be decoded to a tree as the encoding is self descriptive . | CBOR can always be decoded to a tree, because the encoding is self descr iptive. | |||
</t> | </t> | |||
<t> | <t> | |||
The CBOR Sequence content type is intended to be encapsulated in the sig | The CBOR Sequence content type is intended to be encapsulated in the | |||
ned data and auth-enveloped data, but can be included in any CMS wrapper. | signed data and auth-enveloped data, but it can be included in any CMS | |||
It cannot be predicted if the compressed CMS encapsulation will provide | wrapper. It cannot be predicted whether the compressed CMS encapsulation | |||
compression as the content may be binary rather than text. | will | |||
provide compression, because the content may be binary rather than text. | ||||
</t> | </t> | |||
<t> | <t> | |||
<xref target="RFC7193"/> defined an optional parameter "innerContent" to | <xref target="RFC7193"/> defined an optional parameter, "innerContent", | |||
allow for identification of what the inner content is for an application/cms me | to allow for identification of what the inner content is for an application/cms | |||
dia type. | media type. | |||
This document defines the string "cborSequence" as a new value that can | This document defines the string "cborSequence" as a new value that | |||
be placed here when a CBOR Sequence content type is used. | can be placed in this parameter when a CBOR Sequence content type is used | |||
. | ||||
</t> | </t> | |||
</section> | </section> | |||
<section> | <section> | |||
<name>ASN.1 Module</name> | <name>ASN.1 Module</name> | |||
<artwork> | ||||
<sourcecode type="asn.1"><![CDATA[ | ||||
CborContentTypes { iso(1) member-body(2) usa(840) | CborContentTypes { iso(1) member-body(2) usa(840) | |||
rsadsi(113549) pkcs(1) pkcs9(9) smime(16) modules(0) | rsadsi(113549) pkcs(1) pkcs9(9) smime(16) modules(0) | |||
id-mod-cbor-2019(TBD3) } | id-mod-cbor-2019(71) } | |||
DEFINITIONS EXPLICIT TAGS ::= | DEFINITIONS EXPLICIT TAGS ::= BEGIN | |||
BEGIN | ||||
IMPORTS | ||||
IMPORTS | ||||
CONTENT-TYPE | CONTENT-TYPE | |||
FROM CryptographicMessageSyntax-2010 | FROM CryptographicMessageSyntax-2010 | |||
{ iso(1) member-body(2) us(840) rsadsi(113549) | { iso(1) member-body(2) us(840) rsadsi(113549) | |||
pkcs(1) pkcs-9(9) smime(16) modules(0) id-mod-cms-2009(58) } | pkcs(1) pkcs-9(9) smime(16) modules(0) id-mod-cms-2009(58) } | |||
; | ; | |||
id-ct-cbor OBJECT IDENTIFIER ::= { iso(1) member-body(2) | id-ct-cbor OBJECT IDENTIFIER ::= { iso(1) member-body(2) | |||
us(840) rsadsi(113549) pkcs(1) pkcs9(9) smime(16) ct(1) | us(840) rsadsi(113549) pkcs(1) pkcs9(9) smime(16) ct(1) | |||
TBD1 } | 44 } | |||
id-ct-cborSequence OBJECT IDENTIFIER ::= { iso(1) member-body(2) | id-ct-cborSequence OBJECT IDENTIFIER ::= { iso(1) member-body(2) | |||
us(840) rsadsi(113549) pkcs(1) pkcs9(9) smime(16) ct(1) | us(840) rsadsi(113549) pkcs(1) pkcs9(9) smime(16) ct(1) | |||
TBD2 } | 45 } | |||
-- Content is encoded directly and does not have any ASN.1 | -- Content is encoded directly and does not have any ASN.1 | |||
-- structure | -- structure | |||
ct-Cbor CONTENT-TYPE ::= { IDENTIFIED BY id-ct-cbor } | ct-Cbor CONTENT-TYPE ::= { IDENTIFIED BY id-ct-cbor } | |||
-- Content is encoded directly and does not have any ASN.1 | -- Content is encoded directly and does not have any ASN.1 | |||
-- structure | -- structure | |||
ct-CborSequence CONTENT-TYPE ::= { | ct-CborSequence CONTENT-TYPE ::= { | |||
IDENTIFIED BY id-ct-cborSequence | IDENTIFIED BY id-ct-cborSequence | |||
} | } | |||
END | END]]> | |||
</artwork> | </sourcecode> | |||
</section> | </section> | |||
<section> | <section> | |||
<name>IANA Considerations</name> | <name>IANA Considerations</name> | |||
<t> | <t> | |||
In the "SMI Security for S/MIME Module Identifier" registry, create a ne | IANA has registered the following in the "SMI Security for S/MIME | |||
w entry to point to this document. | Module Identifier (1.2.840.113549.1.9.16.0)" subregistry within the | |||
SMI Numbers registry: | ||||
</t> | </t> | |||
<table> | <table> | |||
<thead> | <thead> | |||
<tr> | <tr> | |||
<td>Decimal</td><td>Description</td><td>References</td> | <th>Decimal</th> | |||
<th>Description</th> | ||||
<th>References</th> | ||||
</tr> | </tr> | |||
</thead> | </thead> | |||
<tbody> | <tbody> | |||
<tr> | <tr> | |||
<td>TBD3</td><td>id-mod-cbor-2019</td><td>[[This Document]]</td> | <td>71</td><td>id-mod-cbor-2019</td><td>RFC 8769</td> | |||
</tr> | </tr> | |||
</tbody> | </tbody> | |||
</table> | </table> | |||
<t> | <t> | |||
In the "SMI Security for S/MIME Content Types" registry, add two new ent | IANA has registered the following in the | |||
ries for id-ct-cbor and id-ct-cborSequence that point to this document. | "SMI Security for S/MIME CMS Content Type (1.2.840.113549.1.9.16.1)" | |||
subregistry within the SMI Numbers registry: | ||||
</t> | </t> | |||
<table> | <table> | |||
<thead> | <thead> | |||
<tr> | <tr> | |||
<td>Decimal</td><td>Description</td><td>References</td> | <th>Decimal</th><th>Description</th><th>References</th> | |||
</tr> | </tr> | |||
</thead> | </thead> | |||
<tbody> | <tbody> | |||
<tr> | <tr> | |||
<td>TBD1</td><td>id-ct-cbor</td><td>[[This Document]]</td> | <td>44</td><td>id-ct-cbor</td><td>RFC 8769</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td>TBD2</td><td>id-ct-cborSequence</td><td>[[This Document]]</td> | <td>45</td><td>id-ct-cborSequence</td><td>RFC 8769</td> | |||
</tr> | </tr> | |||
</tbody> | </tbody> | |||
</table> | </table> | |||
<t> | <t> | |||
In the table "CMS Inner Content Types" add two new entries: | IANA has registered the following in the "CMS Inner Content Types" | |||
subregistry within the "MIME Media Type Sub-Parameter Registries": | ||||
</t> | </t> | |||
<table> | <table> | |||
<thead> | <thead> | |||
<tr> | <tr> | |||
<td>Name</td><td>Object Identifier</td><td>Reference</td> | <th>Name</th><th>Object Identifier</th><th>Reference</th> | |||
</tr> | </tr> | |||
</thead> | </thead> | |||
<tbody> | <tbody> | |||
<tr> | <tr> | |||
<td>cbor</td><td>1.2.840.113549.1.9.16.1.TBD1</td><td>[[This Document] ]</td> | <td>cbor</td><td>1.2.840.113549.1.9.16.1.44</td><td>RFC 8769</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td>cborSequence</td><td>1.2.840.113549.1.9.16.1.TBD2</td><td>[[This D ocument]]</td> | <td>cborSequence</td><td>1.2.840.113549.1.9.16.1.45</td><td>RFC 8769</ td> | |||
</tr> | </tr> | |||
</tbody> | </tbody> | |||
</table> | </table> | |||
</section> | </section> | |||
<section> | <section> | |||
<name>Security Considerations</name> | <name>Security Considerations</name> | |||
<t> | <t> | |||
This document only provides identification for content types, it does no | This document only provides identification for content types; it does | |||
t introduce any new security issues by itself. | not introduce any new security issues by itself. | |||
The new content types mean that id-data does not need to be used to iden | The new content types mean that id-data does not need to be used to | |||
tify these content types and thus can reduce confusion. | identify these content types; they can therefore reduce confusion. | |||
</t> | </t> | |||
</section> | </section> | |||
</middle> | </middle> | |||
<back> | <back> | |||
<displayreference target="RFC5652" to="CMS"/> | <displayreference target="RFC5652" to="CMS"/> | |||
<displayreference target="RFC7049" to="CBOR"/> | <displayreference target="RFC7049" to="CBOR"/> | |||
<displayreference target="RFC8152" to="COSE"/> | <displayreference target="RFC8152" to="COSE"/> | |||
<displayreference target="I-D.ietf-cbor-sequence" to="CBOR-SEQ"/> | <displayreference target="RFC8742" to="CBOR-SEQ"/> | |||
<references> | <references> | |||
<name>Normative References</name> | <name>Normative References</name> | |||
<?rfc include="reference.RFC.5652.xml" ?> | <xi:include | |||
<?rfc include="reference.RFC.7049.xml" ?> | href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.56 | |||
<?rfc include="reference.RFC.8152.xml" ?> | 52.xml"/> | |||
<?rfc include="reference.RFC.7193.xml" ?> | ||||
<?rfc include="reference.I-D.ietf-cbor-sequence.xml" ?> | <xi:include | |||
</references> | href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7049.xm | |||
l"/> | ||||
<xi:include | ||||
href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8152.xm | ||||
l"/> | ||||
<xi:include | ||||
href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7193.xm | ||||
l"/> | ||||
<xi:include | ||||
href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.87 | ||||
42.xml"/> | ||||
</references> | ||||
</back> | </back> | |||
</rfc> | </rfc> | |||
End of changes. 38 change blocks. | ||||
86 lines changed or deleted | 116 lines changed or added | |||
This html diff was produced by rfcdiff 1.45. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |