<?xml version='1.0' encoding='utf-8'?>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc2629 version 1.3.30 -->
<!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent">
<?rfc toc="yes"?>
<?rfc sortrefs="yes"?>
<?rfc symrefs="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-cbor-file-magic-01" category="bcp" obsoletes="" updates="" submissionType="IETF" xml:lang="en" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.5.0 -->
  <front>
    <title abbrev="cbor-file-magic">On storing CBOR encoded items on stable storage</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-cbor-file-magic-01"/>
    <author initials="M." surname="Richardson" fullname="Michael Richardson">
      <organization>Sandelman Software Works</organization>
      <address>
        <email>mcr+ietf@sandelman.ca</email>
      </address>
    </author>
    <date year="2021" month="April" day="21"/>
    <area>Internet</area>
    <workgroup>CBOR Working Group</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <t>This document proposes an on-disk format for CBOR objects that
is friendly to common on-disk recognition systems like the Unix file(1) command.</t>
      <t>This document is being discussed at: https://github.com/cbor-wg/cbor-magic-number</t>
    </abstract>
  </front>
  <middle>
    <section anchor="introduction" numbered="true" toc="default">
      <name>Introduction</name>
      <t>Since very early in computing, operating systems have sought ways to mark which files could be processed by which programs.</t>
      <t>For instance, the Unix file(1) command, which has existed since 1973 <xref target="file" format="default"/>, has been able to identify many file formats for decades.
Many systems (Linux, MacOS, Windows) will select the correct application based upon the file contents, if the system can not determine it by other means: for instance, the classic MacOS maintained a resource fork that includes media type ("MIME type") information and therefore ideally never needs to know what anything about the file.
Other systems do this by file extensions.</t>
      <t>While having a media type associated with the file is a better solution in general, when files become disconnected from their type information, such as when attempting to do forensics on a damaged system,
then being able to identify a file type can become very important.</t>
      <t>It is noted that in the media type registration, that a magic number is asked for, if available, as is a file extension.</t>
      <t>A challenge for the file(1) program is often that it can be confused by the encoding vs the content.
For instance, an Android "apk" used to transfer and store an application may be identified as a ZIP file.
Both OpenOffice or MSOffice files are ZIP files of XML files.
(Unless OpenOffice files are flat (fodp) files, in which case they may appear to be generic XML files.)</t>
      <t>As CBOR becomes a more and more common encoding for a wide variety of artifacts, identifying them as just "CBOR" is probably not sufficient.
This document provides a way to encode a magic number into the beginning of a CBOR format file.
Two options are presented: typically a CBOR Protocol author will specify one.</t>
      <t>A CBOR Protocol is a specification which uses CBOR as its encoding.
Examples of CBOR Protocols currently under development include CoSWID <xref target="I-D.ietf-sacm-coswid" format="default"/>, and EAT <xref target="I-D.ietf-rats-eat" format="default"/>.
COSE itself <xref target="RFC8152" format="default"/> is considered infrastructure, however the encoding of public keys in CBOR as described in <xref target="I-D.mattsson-cose-cbor-cert-compress" format="default"/> would be an identified CBOR Protocol.</t>
      <t>A major inspiration for this document is observing the mess in ASN.1 based systems where most files are PEM encoded, identified by the extension "pem", confusing public keys, private keys, certificate requests and SIME content.</t>
      <t>These proposals are invasive to how CBOR protocols are written to disk, but in both cases, the
proposed envelope does not require that the tag be transfered on the wire.</t>
      <t>In addition to the on-disk identification aspects, there are some protocols which may benefit from having such a magic number on the wire if they presently using a different (legacy) encoding scheme.
The presence of the identifiable magic sequence signals that CBOR is being used or a legacy scheme.</t>
    </section>
    <section anchor="requirements-for-a-magic-number" numbered="true" toc="default">
      <name>Requirements for a Magic Number</name>
      <t>A magic number is ideally a unique fingerprint, present in the first 4 or 8 bytes of the file,
which does not change when the contents change, and does not depend upon the length of the file.</t>
      <t>Less ideal solutions have a pattern that needs to be matched, but in which some bytes need to be ignored.
While the Unix file(1) command can be told to ignore bytes, this can lead to ambiguities.</t>
    </section>
    <section anchor="protocol" numbered="true" toc="default">
      <name>Protocol</name>
      <t>There are two variations of this practice.  Both use CBOR Tags in a way that results in a deterministic first 8 to 12 bytes.</t>
      <section anchor="the-cbor-protocol-specific-tag" numbered="true" toc="default">
        <name>The CBOR Protocol Specific Tag</name>
        <t>CBOR Protocol designers should obtain a tag for each major type of object that they might store on disk.
As there are more than 4 million available 4-byte tags, there should be little issue in allocating a few to each available CBOR Protocol.</t>
        <t>The policy is First Come First Served, so all that is required is an email to IANA, having filled in the small template provided in section 9.2 of <xref target="RFC8949" format="default"/>.</t>
        <t>This tag should be allocated by the author of the CBOR Protocol, and to be in the four-byte range, it should be at least 0x01000000 (decimal 16777216) in value.</t>
        <t>The use of a sequence of four US-ASCII codes which are mnemonic to the protocol is encouraged, but not required.</t>
      </section>
      <section anchor="cbor-tag-wrapped" numbered="true" toc="default">
        <name>CBOR Tag Wrapped</name>
        <t>This proposal starts with the Self-described CBOR tag, 55799, as described in <xref target="RFC8949" format="default"/> section 3.4.6.</t>
        <t>A second CBOR Tag is then allocated to describe the specific Protocol involved, as described above.</t>
        <t>This proposal wraps the CBOR value as tags usually do.
Applications that need to send the CBOR value across a constrained link may wish to remove the two tags if the use is implicitly understood.
This is a decision of the CBOR Protocol specification.</t>
      </section>
      <section anchor="cbor-tag-sequence" numbered="true" toc="default">
        <name>CBOR Tag Sequence</name>
        <t>This proposal makes use of CBOR Sequences as described in <xref target="RFC8742" format="default"/>.</t>
        <t>This proposal consists of two tags and a constant string for a total of 12 bytes.</t>
        <ol spacing="normal" type="1"><li>The file shall start with the Self-described CBOR Sequence tag, 55800.</li>
          <li>The file shall continue with a CBOR tag, from the First Come First Served space, which uniquely identifies the CBOR Protocol.  The use of a four-byte tag is encouraged.</li>
          <li>The three byte CBOR byte string containing 0x42_4F_52. When encoded it shows up as "CBOR"</li>
        </ol>
        <t>The first part identifies the file as being CBOR, and does so with all the desirable properties explained in <xref target="RFC8949" format="default"/> section 3.4.6.
Specifically, it does not seem to conflict with any known file types, and it is not valid Unicode in any Unicode encoding.</t>
        <t>The second part identifies which CBOR Protocol is used, as described above.</t>
        <t>The third part is a constant value 0x43_42_4f_52, "CBOR".
That is, it the three byte sequence 0x42_4f_52 ("BOR").
This is the data item that is tagged.</t>
        <t>The actual CBOR Protocol value then follows as the next data item(s) in the CBOR sequence, without a need for any further specific tag.
The use of a CBOR Sequence allows the application to trivially remove the first item with the two tags.</t>
        <t>This means that should a file be reviewed by a human (directly in an editor, or in a hexdump display), it will include the string "CBOR" prominently.
This value is also included simply because the two tags need to tag something.</t>
      </section>
    </section>
    <section anchor="security-considerations" numbered="true" toc="default">
      <name>Security Considerations</name>
      <t>This document provides a way to identify CBOR Protocol objects.
Clearly identifying CBOR contents on disk may have a variety of impacts.</t>
      <t>The most obvious is that it may allow malware to identify interesting objects on disk, and then corrupt them.</t>
    </section>
    <section anchor="iana-considerations" numbered="true" toc="default">
      <name>IANA Considerations</name>
      <t>There are no IANA actions.
This section documents the allocation that was done.</t>
      <section anchor="cbor-sequence-tag" numbered="true" toc="default">
        <name>CBOR Sequence Tag</name>
        <t>IANA has allocated tag 55800 as the CBOR Sequence tag.
This tag is from the First Come/First Served area.</t>
        <t>The value has been picked to have properties similiar to the 55799 tag.</t>
        <t>The hexadecimal representation is: 0xd9_\d9_f8.</t>
        <t>This is not valid UTF-8: the first 0xd9 puts the value into the three-byte value of UTF-8, but the 0xd9 as the second value is not a valid second byte for UTF-8.</t>
        <t>This is not valid UTF-16: the byte sequence 0xd9d9 (in either endian order), puts this value into the UTF-16 high-half zone, which would signal that this a 32-bit Unicode value.  However, the following 16-bit big-endian value 0xf8.. is not a valid second sequence according to <xref target="RFC2781" format="default"/>.
On a little-endian system, it would be necessary to examine the fourth byte to determine if it is valid.  That next byte is determined by the subsequent encoding, and <xref target="RFC8949" format="default"/> section 3.4.6 has already determined that no valid CBOR encodings result in a valid UTF-16.</t>
        <artwork name="" type="" align="left" alt=""><![CDATA[
Data Item: byte string
Semantics: indicates that the file contains CBOR Sequences
]]></artwork>
      </section>
    </section>
    <section anchor="acknowledgements" numbered="true" toc="default">
      <name>Acknowledgements</name>
      <t>The CBOR WG brainstormed this protocol on January 20, 2021.</t>
    </section>
    <section anchor="changelog" numbered="true" toc="default">
      <name>Changelog</name>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="BCP14" target="https://www.rfc-editor.org/info/rfc8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author initials="B." surname="Leiba" fullname="B. Leiba">
              <organization/>
            </author>
            <date year="2017" month="May"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol  specifications.  This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the  defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC8949" target="https://www.rfc-editor.org/info/rfc8949">
          <front>
            <title>Concise Binary Object Representation (CBOR)</title>
            <author initials="C." surname="Bormann" fullname="C. Bormann">
              <organization/>
            </author>
            <author initials="P." surname="Hoffman" fullname="P. Hoffman">
              <organization/>
            </author>
            <date year="2020" month="December"/>
            <abstract>
              <t>The Concise Binary Object Representation (CBOR) is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation. These design goals make it different from earlier binary serializations such as ASN.1 and MessagePack.</t>
              <t>This document obsoletes RFC 7049, providing editorial improvements, new details, and errata fixes while keeping full compatibility with the interchange format of RFC 7049.  It does not create a new version of the format.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="94"/>
          <seriesInfo name="RFC" value="8949"/>
          <seriesInfo name="DOI" value="10.17487/RFC8949"/>
        </reference>
        <reference anchor="RFC8742" target="https://www.rfc-editor.org/info/rfc8742">
          <front>
            <title>Concise Binary Object Representation (CBOR) Sequences</title>
            <author initials="C." surname="Bormann" fullname="C. Bormann">
              <organization/>
            </author>
            <date year="2020" month="February"/>
            <abstract>
              <t>This document describes the Concise Binary Object Representation (CBOR) Sequence format and associated media type "application/cbor-seq".  A CBOR Sequence consists of any number of encoded CBOR data items, simply concatenated in sequence.</t>
              <t>Structured syntax suffixes for media types allow other media types to build on them and make it explicit that they are built on an existing media type as their foundation.  This specification defines and registers "+cbor-seq" as a structured syntax suffix for CBOR Sequences.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8742"/>
          <seriesInfo name="DOI" value="10.17487/RFC8742"/>
        </reference>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="file" target="https://en.wikipedia.org/wiki/File_%28command%29">
          <front>
            <title>file (command)</title>
            <author>
              <organization>Wikipedia</organization>
            </author>
            <date year="2021" month="January" day="20"/>
          </front>
        </reference>
        <reference anchor="ilbm" target="https://en.wikipedia.org/wiki/ILBM">
          <front>
            <title>Interleaved BitMap</title>
            <author>
              <organization>Wikipedia</organization>
            </author>
            <date year="2021" month="January" day="20"/>
          </front>
        </reference>
        <reference anchor="I-D.ietf-sacm-coswid" target="https://www.ietf.org/archive/id/draft-ietf-sacm-coswid-17.txt">
          <front>
            <title>Concise Software Identification Tags</title>
            <author fullname="Henk Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <author fullname="Jessica Fitzgerald-McKay">
              <organization>National Security Agency</organization>
            </author>
            <author fullname="Charles Schmidt">
              <organization>The MITRE Corporation</organization>
            </author>
            <author fullname="David Waltermire">
              <organization>National Institute of Standards and Technology</organization>
            </author>
            <date month="February" day="22" year="2021"/>
            <abstract>
              <t>   ISO/IEC 19770-2:2015 Software Identification (SWID) tags provide an
   extensible XML-based structure to identify and describe individual
   software components, patches, and installation bundles.  SWID tag
   representations can be too large for devices with network and storage
   constraints.  This document defines a concise representation of SWID
   tags: Concise SWID (CoSWID) tags.  CoSWID supports a similar set of
   semantics and features as SWID tags, as well as new semantics that
   allow CoSWIDs to describe additional types of information, all in a
   more memory efficient format.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-sacm-coswid-17"/>
        </reference>
        <reference anchor="I-D.ietf-rats-eat" target="https://www.ietf.org/archive/id/draft-ietf-rats-eat-09.txt">
          <front>
            <title>The Entity Attestation Token (EAT)</title>
            <author fullname="Giridhar Mandyam">
              <organization>Qualcomm Technologies Inc.</organization>
            </author>
            <author fullname="Laurence Lundblade">
              <organization>Security Theory LLC</organization>
            </author>
            <author fullname="Miguel Ballesteros">
              <organization>Qualcomm Technologies Inc.</organization>
            </author>
            <author fullname="Jeremy O'Donoghue">
              <organization>Qualcomm Technologies Inc.</organization>
            </author>
            <date month="March" day="7" year="2021"/>
            <abstract>
              <t>   An Entity Attestation Token (EAT) provides a signed (attested) set of
   claims that describe state and characteristics of an entity,
   typically a device like a phone or an IoT device.  These claims are
   used by a relying party to determine how much it wishes to trust the
   entity.

   An EAT is either a CWT or JWT with some attestation-oriented claims.
   To a large degree, all this document does is extend CWT and JWT.

Contributing

   TBD

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-eat-09"/>
        </reference>
        <reference anchor="RFC8152" target="https://www.rfc-editor.org/info/rfc8152">
          <front>
            <title>CBOR Object Signing and Encryption (COSE)</title>
            <author initials="J." surname="Schaad" fullname="J. Schaad">
              <organization/>
            </author>
            <date year="2017" month="July"/>
            <abstract>
              <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size.  There is a need for the ability to have basic security services defined for this data format. This document defines the CBOR Object Signing and Encryption (COSE) protocol.  This specification describes how to create and process signatures, message authentication codes, and encryption using CBOR for serialization.  This specification additionally describes how to represent cryptographic keys using CBOR.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8152"/>
          <seriesInfo name="DOI" value="10.17487/RFC8152"/>
        </reference>
        <reference anchor="I-D.mattsson-cose-cbor-cert-compress" target="https://www.ietf.org/archive/id/draft-mattsson-cose-cbor-cert-compress-08.txt">
          <front>
            <title>CBOR Encoded X.509 Certificates (C509 Certificates)</title>
            <author fullname="Shahid Raza">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Joel Höglund">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Göran Selander">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="John Preuß Mattsson">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="Martin Furuhed">
              <organization>Nexus Group</organization>
            </author>
            <date month="February" day="22" year="2021"/>
            <abstract>
              <t>   This document specifies a CBOR encoding of X.509 certificates.  The
   resulting certificates are called C509 Certificates.  The CBOR
   encoding supports a large subset of RFC 5280 and significantly
   reduces the size of certificates compatible with e.g.  RFC 7925, IEEE
   802.1AR (DevID), CNSA, and CA/Browser Forum Baseline Requirements.
   When used to re-encode DER encoded X.509 certificates, the CBOR
   encoding can in many cases reduce the size of RFC 7925 profiled
   certificates with over 50%.  The CBOR encoded structure can
   alternatively be signed directly ("natively signed"), which does not
   require re-encoding for the signature to be verified.  The document
   also specifies COSE headers as well as a TLS certificate type for
   C509 certificates.

   NOTE: "C509" is a placeholder, name to be decided by the COSE WG.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-mattsson-cose-cbor-cert-compress-08"/>
        </reference>
        <reference anchor="RFC2781" target="https://www.rfc-editor.org/info/rfc2781">
          <front>
            <title>UTF-16, an encoding of ISO 10646</title>
            <author initials="P." surname="Hoffman" fullname="P. Hoffman">
              <organization/>
            </author>
            <author initials="F." surname="Yergeau" fullname="F. Yergeau">
              <organization/>
            </author>
            <date year="2000" month="February"/>
            <abstract>
              <t>This document describes the UTF-16 encoding of Unicode/ISO-10646, addresses the issues of serializing UTF-16 as an octet stream for transmission over the Internet, discusses MIME charset naming as described in [CHARSET-REG], and contains the registration for three MIME charset parameter values: UTF-16BE (big-endian), UTF-16LE (little- endian), and UTF-16.  This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2781"/>
          <seriesInfo name="DOI" value="10.17487/RFC2781"/>
        </reference>
      </references>
    </references>
    <section anchor="example-from-openswan" numbered="true" toc="default">
      <name>Example from Openswan</name>
      <t>The Openswan IPsec project has a daemon ("pluto"), and two control programs ("addconn", and "whack").
They communicate via a Unix-domain socket, over which a C-structure containing pointers to strings is serialized using a bespoke mechanism.
This is normally not a problem as the structure is compiled by the same compiler; but when there are upgrades it is possible for the daemon and the control programs to get out of sync by the bespoke serialization.
As a result, there are extra compensations to deal with shutting the daemon down.
During testing it is sometimes the case that upgrades are backed out.</t>
      <t>In addition, when doing unit testing, the easiest way to load policy is to use the
normal policy reading process, but that is not normally loaded in the daemon.
Instead the IPC that is normally sent across the wire is compiled/serialized and placed in a file.
The above magic number is included in the file, and also on the IPC in order to distinguish the "shutdown" command CBOR operation.</t>
      <t>In order to reduce the problems due to serialization, the serialization is being changed to CBOR.
Additionally, this change allows the IPC to be described by CDDL, and for any language that encode to CBOR can be used.</t>
      <t>IANA has allocated the tag 1330664270, or 0x4f_50_ 53_ 4e for this purpose.
As a result, each file and each IPC is prefixed with:</t>
      <t>In diagnostic notation:
~~~~
55800(1330664270(h'424F52'))
~~~~</t>
      <t>Or in hex:
~~~~
00000000  d9 d9 f9 da 4f 50 53 4e  43 42 4f 52              |....OPSNCBOR|
~~~~</t>
    </section>
    <section anchor="contributors" numbered="false" toc="include" removeInRFC="false">
      <name>Contributors</name>
      <contact initials="C." surname="Bormann" fullname="Carsten Bormann">
        <organization/>
        <address>
          <email>cabo@tzi.org</email>
        </address>
      </contact>
      <contact initials="J.'." surname="Sipek" fullname="Josef 'Jeff' Sipek">
        <organization/>
        <address>
          <email>jeffpc@josefsipek.net</email>
        </address>
      </contact>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAPw4gGAAA51abW/bSJL+zl/R8GAxNk5SbMWJY92HG8dJ9jyIx8E4gxwO
AYIW2ZI6JtncbtKyZjb32++pqm6SspMF7ozdiUw1u+v1qaeqPZ1Os9a2pVmo
m1qF1nlbr9Xl65vflalzV5hC2dZUQTn6Vi9Lw4v02mR6ufTmfqHypfPTlS3N
tNJrm2eFy2tdYcPC61U7taZdTR+tmR6fZBm2q4svunQ11ra+M1lmG88fQzs/
Pj4/nmfaG71QV3VrfG3abLteiGyfnL8jQf/uXddkd9thzfQNnZrlul2oZd5k
WWMXCj8/qVzXqgtGae/1Th3aldJlqXYmHCnn1UaHjdoYbzKlWpcv6At8DM63
3qzCgrcozEp3ZRuwIn2/q+Rr+jXTXbtxfpFl2VTZGk+vZ+p3m2+0L4KrsVwM
c02PTLn/lfNQ7hYmMWUFSW/dqt1CfVaVTjKVtuVCVbn/NzLpLyEtneU6y3JX
t94uu5aOV2oaT7rUPrSmVq+dx0o6pt8o10v3S/unneHg0Ru/umBW6udfzWr1
s7q1jbkbv/QVj5v8l6+0KNCXM3JLVtP2rb03dPbryw8npwv1+7vLVydnp3hA
n85Pzxfx49npHBay9Wr8EsXGgk+K0XhAT9Rh7ioIXhwdyHfarw0ce7Bp2yYs
nj0z9Wxr7yBIYTUp8ox+e/YOr3752/xVfPlv83N5PblH8Q8b/FN6mx8WusXR
8+P5CSJ0Oj/O8NSWy2pfMg610uh7JMdr217r5v8k3dX719f/b3mm06nSy9B6
ncPuHzc2KORbV5m6VY13DRwTFMLH1dPChjslRqZ/JHHc8qvJKYA3us3w8spb
UxfljiKazOWGV73J3bq2raXU3wVGgdLeGbxr1B+1fWCnHZ4cqWjn2WOB8Hlp
KE2xX96FAHtRWibzrG276ZYzvP2M8WG7ln8FIuquWhovGle2KErgw0+U5t4V
XU5SZdmtrXOj7o3fKaM9tLA1CdN0LU6dKNcYr+ljL/8GTkNOd+tNq7Z6x4lc
aX+nthvkIisUsENXFpCcDJobFnu5iyvwaO11FaDrO9gUSQ4Uy83kh0aZxBeB
L8o8WIhRqMBin5yfPVd//UXrv32b8IKlQa4yyEIuW8CGdrWDgPWOt43eDOzO
wuS6MBDkmr5OCh6+t3X3MFHXOr+5nSCc6sJtgXBbC6wLpoTzWdTceU+fddOU
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
higAAA==

-->

</rfc>
