<?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.2.9 -->

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
]>

<?rfc toc="yes"?>
<?rfc sortrefs="yes"?>
<?rfc symrefs="yes"?>

<rfc ipr="trust200902" docName="draft-ietf-sacm-coswid-07" category="std">

  <front>
    <title abbrev="COSWID">Concise Software Identifiers</title>

    <author initials="H." surname="Birkholz" fullname="Henk Birkholz">
      <organization abbrev="Fraunhofer SIT">Fraunhofer SIT</organization>
      <address>
        <postal>
          <street>Rheinstrasse 75</street>
          <city>Darmstadt</city>
          <code>64295</code>
          <country>Germany</country>
        </postal>
        <email>henk.birkholz@sit.fraunhofer.de</email>
      </address>
    </author>
    <author initials="J." surname="Fitzgerald-McKay" fullname="Jessica Fitzgerald-McKay">
      <organization>Department of Defense</organization>
      <address>
        <postal>
          <street>9800 Savage Road</street>
          <city>Ft. Meade</city>
          <region>Maryland</region>
          <country>USA</country>
        </postal>
        <email>jmfitz2@nsa.gov</email>
      </address>
    </author>
    <author initials="C." surname="Schmidt" fullname="Charles Schmidt">
      <organization>The MITRE Corporation</organization>
      <address>
        <postal>
          <street>202 Burlington Road</street>
          <city>Bedford</city>
          <region>Maryland</region>
          <code>01730</code>
          <country>USA</country>
        </postal>
        <email>cmschmidt@mitre.org</email>
      </address>
    </author>
    <author initials="D." surname="Waltermire" fullname="David Waltermire">
      <organization abbrev="NIST">National Institute of Standards and Technology</organization>
      <address>
        <postal>
          <street>100 Bureau Drive</street>
          <city>Gaithersburg</city>
          <region>Maryland</region>
          <code>20877</code>
          <country>USA</country>
        </postal>
        <email>david.waltermire@nist.gov</email>
      </address>
    </author>

    <date year="2018" month="October" day="23"/>

    <area>Security</area>
    <workgroup>SACM Working Group</workgroup>
    <keyword>Internet-Draft</keyword>

    <abstract>


<t>This document defines a concise representation of ISO/IEC 19770-2:2015 Software Identification (SWID) tags
that are interoperable with the XML schema definition of ISO/IEC 19770-2:2015 and augmented for
application in Constrained-Node Networks. Next to the inherent capability of SWID tags to express
arbitrary context information, Concise SWID (CoSWID) tags support the definition of additional semantics via
well-defined data definitions incorporated by extension points.</t>



    </abstract>


  </front>

  <middle>


<section anchor="introduction" title="Introduction">

<t>SWID tags have several use-applications including but not limited to:</t>

<t><list style="symbols">
  <t>Software Inventory Management, a part of the Software Asset Management <xref target="SAM"/>
process, which requires an accurate list of discernible deployed software
components.</t>
  <t>Vulnerability Assessment, which requires a semantic link between standardized
vulnerability descriptions and software components installed on IT-assets <xref target="X.1520"/>.</t>
  <t>Remote Attestation, which requires a link between reference integrity
measurements (RIM) and security logs of measured software components
<xref target="I-D.birkholz-tuda"/>.</t>
</list></t>

<t>SWID tags, as defined in ISO-19770-2:2015 <xref target="SWID"/>, provide a standardized
XML-based record format that identifies and describes a specific release of a
software component. Different software components, and even different releases of a
particular software component, each have a different SWID tag record associated
with them. SWID tags are meant to be flexible and able to express a broad set of metadata
about a software component.</t>

<t>While there are very few required fields in SWID tags, there are many optional
fields that support different use scenarios. While a
SWID tag consisting of only required fields might be a few hundred bytes in
size, a tag containing many of the optional fields can be many orders of
magnitude larger. Thus, real-world instances of SWID tags can be fairly large, and the communication of
SWID tags in use-applications such as those described earlier can cause a large
amount of data to be transported. This can be larger than acceptable for
constrained devices and networks. Concise SWID (CoSWID) tags significantly reduce the amount of
data transported as compared to a typical SWID tag. This reduction is enabled
through the use of CBOR, which maps human-readable labels of that content to
more concise integer labels (indices). The use of CBOR to express SWID information in CoSWID tags allows both CoSWID and SWID tags to be part of an
enterprise security solution for a wider range of endpoints and environments.</t>

<section anchor="intro-lifecycle" title="The SWID Tag Lifecycle">

<t>In addition to defining the format of a SWID tag record, ISO/IEC 19770-2:2015
defines requirements concerning the SWID tag lifecycle. Specifically, when a
software component is installed on an endpoint, that product’s SWID tag is also
installed. Likewise, when the product is uninstalled or replaced, the SWID tag
is deleted or replaced, as appropriate. As a result, ISO/IEC 19770-2:2015 describes
a system wherein there is a correspondence between the set of installed software
components on an endpoint, and the presence of the correspondingsponding SWID tags
for these components on that endpoint. CoSWIDs share the same lifecycle requirements
as a SWID tag.</t>

<t>The following is an excerpt (with some modifications and reordering) from NIST Interagency Report (NISTIR) 8060: Guidelines for the Creation of Interoperable SWID Tags <xref target="SWID-GUIDANCE"/>, which describes the tag types used within the lifecycle defined in ISO-19770-2:2015.</t>

<t><list style='empty'>
  <t>The SWID specification defines four types of SWID tags: primary, patch, corpus, and supplemental.</t>
</list></t>

<t><list style="numbers">
  <t>Primary Tag - A SWID or CoSWID tag that identifies and describes a software component is installed on a computing device.</t>
  <t>Patch Tag - A SWID or CoSWID tag that identifies and describes an installed patch which has made incremental changes to a software component installed on a computing device.</t>
  <t>Corpus Tag - A SWID or CoSWID tag that identifies and describes an installable software component in its pre-installation state. A corpus tag can be used to represent metadata about an installation package or installer for a software component, a software update, or a patch.</t>
  <t>Supplemental Tag - A SWID or CoSWID tag that allows additional information to be associated with a referenced SWID tag. This helps to ensure that SWID Primary and Patch Tags provided by a software provider are not modified by software management tools, while allowing these tools to provide their own software metadata.</t>
</list></t>

<t><list style='empty'>
  <t>Corpus, primary, and patch tags have similar functions in that they describe the existence and/or presence of different types of software (e.g., software installers, software installations, software patches), and, potentially, different states of software components. In contrast, supplemental tags furnish additional information not contained in corpus, primary, or patch tags. All four tag types come into play at various points in the software lifecycle, and support software management processes that depend on the ability to accurately determine where each software component is in its lifecycle.</t>
</list></t>

<figure title="Use of Tag Types in the Software Lifecycle" anchor="fig-lifecycle"><artwork><![CDATA[
                                  +------------+
                                  v            |
Installation     Product       Product      Product       Product
  Media      -> Installed  ->  Patched   -> Upgraded   -> Removed
 Deployed

 Corpus         Primary        Primary      xPrimary      xPrimary
                Supplemental   Supplemental xSupplemental xSuplemental
                               Patch        xPatch
                                            Primary
                                            Supplemental

]]></artwork></figure>

<t><list style='empty'>
  <t><xref target="fig-lifecycle"/> illustrates the steps in the software lifecycle and the relationships among those lifecycle events supported by the four types of SWID and CoSWID tags, as follows:</t>
</list></t>

<t><list style='empty'>
  <t><list style="symbols">
    <t>Software Deployment. Before the software component is installed (i.e., pre-installation), and while the product is being deployed, a corpus tag provides information about the installation files and distribution media (e.g., CD/DVD, distribution package).</t>
    <t>Software Installation. A primary tag will be installed with the software component (or subsequently created) to uniquely identify and describe the software component. Supplemental tags are created to augment primary tags with additional site-specific or extended information. While not illustrated in the figure, patch tags may also be installed during software installation to provide information about software fixes deployed along with the base software installation.</t>
    <t>Software Patching. When a new patch is applied to the software component, a new patch tag is provided, supplying details about the patch and its dependencies. While not illustrated in the figure, a corpus tag can also provide information about the patch installer, and patching dependencies that need to be installed before the patch.</t>
    <t>Software Upgrading. As a software component is upgraded to a new version, new primary and supplemental tags replace existing tags, enabling timely and accurate tracking of updates to software inventory. While not illustrated in the figure, a corpus tag can also provide information about the upgrade installer, and dependencies that need to be installed before the upgrade.</t>
    <t>Software Removal. Upon removal of the software component, relevant SWID tags are removed. This removal event can trigger timely updates to software inventory reflecting the removal of the product and any associated patch or supplemental tags.</t>
  </list></t>
</list></t>

<t>Note: While not fully illustrated in the figure, supplemental tags can be associated with any corpus, primary, or patch tag to provide additional metadata about an installer, installed software, or installed patch respectively.</t>

<t>Each of the different SWID and CoSWID tag types provide different sets of
information. For example, a “corpus tag” is used to
describe a software component’s installation image on an installation media, while a
“patch tag” is meant to describe a patch that modifies some other software component.</t>

</section>
<section anchor="concise-swid-extensions" title="Concise SWID Extensions">

<t>This document defines the CoSWID format, a more concise representation of SWID information in the Concise
Binary Object Representation (CBOR) <xref target="RFC7049"/>. This is described via the Concise
Data Definition Language (CDDL) <xref target="I-D.ietf-cbor-cddl"/>. The resulting CoSWID data
definition is interoperable with the XML schema definition of ISO-19770-2:2015
<xref target="SWID"/>. The vocabulary, i.e., the CDDL names of the types and members used in
the CoSWID data definition, are mapped to more concise labels represented as
small integer values. The names used in the CDDL data definition and the mapping to
the CBOR representation using integer labels is based on the vocabulary of the
XML attribute and element names defined in ISO/IEC 19770-2:2015.</t>

<t>The corresponding CoSWID data definition includes two kinds of augmentation.</t>

<t><list style="symbols">
  <t>The explicit definition of types for attributes that are typically stored in
the “any attribute” of an ISO-19770-2:2015 in XML representation. These are
covered in <xref target="model-global-attributes"/> and <xref target="model-any-element"/> of this document.</t>
  <t>The inclusion of extension points in the CoSWID data definition that allow for
additional uses of CoSWID tags that go beyond the original scope of
ISO-19770-2:2015 tags. These are covered in <xref target="model-payload"/> and <xref target="model-evidence"/>.</t>
</list></t>

</section>
<section anchor="requirements-notation" title="Requirements Notation">

<t>The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”,
“SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “NOT RECOMMENDED”, “MAY”, and
“OPTIONAL” in this document are to be interpreted as described in RFC
2119, BCP 14 <xref target="RFC2119"/>.</t>

</section>
</section>
<section anchor="concise-swid-data-definition" title="Concise SWID Data Definition">

<t>The following is a CDDL representation for a CoSWID tag. This CDDL represetation is intended to be parallel to the XML schema definition in the ISO/IEC 19770-2:2015 <xref target="SWID"/> specification, allowing both SWID and CoSWID tags to represent a common set of SWID information and to support all SWID tag use
cases.  To achieve this end, the CDDL representation includes every SWID tag field and attribute. The CamelCase notation used in the XML schema definition is changed to a hyphen-separated
notation (e.g. ResourceCollection is named resource-collection in the CoSWID data definition).
This deviation from the original notation used in the XML representation reduces ambiguity when referencing
certain attributes in corresponding textual descriptions. An attribute referred by its name in CamelCase
notation explicitly relates to XML SWID tags, an attribute referred by its name in
hyphen-separated notation explicitly relates to CoSWID tags. This approach simplifies the
composition of further work that reference both XML SWID and CoSWID documents.</t>

<t>Human-readable names of members in the CDDL data definition are mapped to integer indices via a block of rules at the bottom
of the definition. The 67 character strings of the SWID vocabulary that would have to be
stored or transported in full if using the original vocabulary are replaced.</t>

<!-- The following is repetitive of information presented earlier in the document and in later sections. -->
<!--
CoSWIDs are tailored to be used in the domain of constrained-node networks. A
typical endpoint is capable of storing the SWID tag of installed software, a constrained-node
might lack that capability. CoSWID addresses these constraints and the corresponding specification is
augmented to retain the usefulness of the SWID information tagging approach in the thing-2-thing domain. Specific examples include, but are
not limited to using the hash algorithms in the IANA Named Information tables or
including firmware attributes addressing devices that do not necessarily provide a file-system for CoSWID tag storage.
-->

<t>In CBOR, an array is encoded using bytes that identify the array, and the array’s length or stop point (see <xref target="RFC7049"/>). To make items that support 1 or more values, the following CDDL notion is used.</t>

<figure><artwork type="CDDL"><![CDATA[
_name_ = (_label_: _data_ / [ 2* _data_ ])
]]></artwork></figure>

<t>The CDDL above allows for a more effecient CBOR encoding of the data when a single value is used by avoiding the need to first encode the array. An array is used for two or more values. This modeling pattern is used frequently in the CoSWID CDDL data definition in such cases.</t>

<t>The following subsections describe the different parts of the CoSWID model.</t>

<section anchor="model-concise-software-identity" title="The concise-software-identity Object">

<t>The CDDL for the main concise-software-identity object is as follows:</t>

<figure><artwork type="CDDL"><![CDATA[
concise-software-identity = {
  global-attributes,
  tag-id,
  tag-version,
  ? corpus,
  ? patch,
  ? supplemental,
  swid-name,
  ? software-version,
  ? version-scheme,
  ? media,
  ? software-meta-entry,
  ? entity-entry,
  ? link-entry,
  ? ( payload-entry / evidence-entry ),
  ? any-element-entry,
}
tag-id = (0: text)
swid-name = (1: text)
entity-entry = (2: entity / [ 2* entity ])
evidence-entry = (3: evidence)
link-entry = (4: link / [ 2* link ])
software-meta-entry = (5: software-meta / [ 2* software-meta ])
payload-entry = (6: payload)
any-element-entry = (7: any-element-map / [ 2* any-element-map ])
corpus = (8: bool)
patch = (9: bool)
media = (10: text)
supplemental = (11: bool)
tag-version = (12: integer)
software-version = (13: text)
version-scheme = (14: text)
]]></artwork></figure>

<!-- The items are ordered ensure that tag metadata appears first, followed by general software metadata, entity information, link relations, and finally payload or evidence data. This ordering attempts to provide the most significant metadata that a parser may need first, followed by metadata that may support more specific use-applications.-->

<t>The following describes each child item of the concise-software-identity object model.</t>

<t><list style="symbols">
  <t>global-attributes: A list of items including an optional language definition to support the
processing of text-string values and an unbounded set of any-attribute items. Described in <xref target="model-global-attributes"/>.</t>
  <t>tag-id (label 0): An textual identifier uniquely referencing a (composite) software component. The tag
identifier MUST be globally unique. There are no strict guidelines on
how this identifier is structured, but examples include a 16 byte GUID (e.g.
class 4 UUID) <xref target="RFC4122"/>.</t>
  <t>tag-version (label 12): An integer value that indicates if a specific release of a software component has more than
one tag that can represent that specific release. Typically, the initial value of this field is set to 0, and the value is monotonically increased for subsequent tags produced for the same software component release. This item is used when a
CoSWID tag producer creates and releases an incorrect tag that they subsequently
want to fix, but no underlying changes have been made to the product the CoSWID tag
represents. This could happen if, for example, a patch is distributed that has a
link reference that does not cover all the various software releases it can
patch. A newer CoSWID tag for that patch can be generated and the tag-version
value incremented to indicate that the data is updated.</t>
  <t>corpus (label 8): A boolean value that indicates if the tag identifies and describes an installable software component in its pre-installation state. Installable software includes a installation package or installer for a software component, a software update, or a patch. If the CoSWID tag represents installable software, the corpus item MUST be set to “true”. If not provided the default value MUST be considered “false”.</t>
  <t>patch (label 9): A boolean value that indicates if the tag identifies and describes an installed patch which has made incremental changes to a software component installed on a computing device. Typically, an installed patch has made a set of file modifications to pre-installed software, and does not alter the version number or the descriptive metadata of an installed software
component. If a CoSWID tag is for a patch, it MUST contain the patch item
and its value MUST be set to “true”. If not provided the default value MUST be considered “false”.</t>
  <t>supplemental (label 11): A boolean value that indicates if the tag is providing additional information to be associated with another referenced SWID or CoSWID tag. Tags using this item help to ensure that primary and patch tags provided by a software provider are not modified by software management tools, while allowing these tools to provide their own software metadata for a software component. If a CoSWID tag is a supplemntal tag, it MUST contain the supplemental item and its value MUST be set to “true”. If not provided the default value MUST be considered “false”.</t>
  <t>swid-name (label 1): This textual item provides the software component name as it would typically be
referenced.  For example, what would be seen in the add/remove software dialog in an operating system,
or what is specified as the name of a packaged software component
or a patch identifier name.</t>
  <t>software-version (label 13): A textual value representing the specific underlying release or development version of the software component.</t>
  <t>version-scheme (label 14): An 8-bit integer or textual value representing the versioning scheme used for the software-version item. If an integer value is used it MUST be a value from the registry (see section <xref target="iana-version-scheme"/> or a value in the private use range: 32768-65,535.</t>
  <t>media (label 10): This text value is a hint to the tag consumer to understand what this tag
applies to. This item represents a
query as defined by the W3C Media Queries Recommendation (see
http://www.w3.org/TR/css3-mediaqueries/). A hint to the consumer of the link to
what the target item is applicable for.</t>
  <t>software-meta-entry (label 5): An open-ended collection of key/value data related to this CoSWID.
A number of predefined attributes can be used within this item providing for
common usage and semantics across the industry.  The data definition of this entry allows for any additional
attribute to be included, though it is recommended that industry
norms for new attributes are defined and followed to the degree possible. Described in <xref target="model-software-meta"/>.</t>
  <t>entity-entry (label 2): Specifies the organizations related to the software component referenced by this
CoSWID tag. Described in <xref target="model-entity"/>.</t>
  <t>link-entry (label 4): Provides a means to establish a relationship arc between the tag and another item. A link can be used to establish relationships between tags and to reference other resources that are related to the
CoSWID tag, e.g.
vulnerability database associations, ROLIE feeds, MUD files, software download location, etc).
This is modeled after the HTML “link” element.  Described in <xref target="model-link"/>.</t>
</list></t>

<!-- TODO: Review from here -->

<t><list style="symbols">
  <t>payload-entry (label 6): The items that may be installed on a system entity when the software component
is installed.  Note that payload may be a superset of the items installed and -
depending on optimization mechanisms in respect to that system entity - may or
may not include every item that could be created or executed on the
corresponding system entitiy when software components are installed.
In general, payload will be used to indicate the files that may be installed
with a software component. Therefore payload will often be a superset of those
files (i.e. if a particular optional sub-component is not installed, the files
associated with that software component may be included in payload, but not
installed in the system entity). Described in <xref target="model-payload"/>.</t>
  <t>evidence-entry (label 3): This item is used to provide results from a scan of a system where software that
does not have a CoSWID tag is discovered. This information is not provided by
the software-creator, and is instead created when a system is being scanned and
the evidence for why software is believed to be installed on the device is
provided in the evidence item. Described in <xref target="model-evidence"/>.</t>
  <t>any-element-entry (label 7): A default map that can contain arbitrary map members and even nested maps (which
would also be any-elements). In essence, the any-element allows items not
defined in this CDDL data definition to be included in a Concise Software
Identifier. Described in <xref target="model-any-element"/>.</t>
</list></t>

<section anchor="determining-the-tag-type" title="Determining the tag type">

<t>The operational model for SWID and CoSWID tags introduced in <xref target="intro-lifecycle"/>. The following rules can be used to determine the type of a CoSWID tag.</t>

<t><list style="symbols">
  <t>Corpus Tag: A CoSWID tag MUST be considered a corpus tag if the corpus item is “true”.</t>
  <t>Primary Tag: A CoSWID tag MUST be considered a primary tag if the corpus, patch, and supplemental items are “false”.</t>
  <t>Patch Tag: A CoSWID tag MUST be considered a patch tag if the patch item is “true” and the corpus item is “false”.</t>
  <t>Supplemental Tag: A CoSWID tag MUST be considered a supplemental tag if the supplemental item is set to “true”.</t>
</list></t>

<t>A tag that does not match one of the above rules MUST be considered an invalid, unsupported tag type.</t>

<!-- TODO: relocate the following requirement -->
<t>If a patch modifies the version number or the descriptive metadata of the software, then a new tag representing these details SHOULD be installed, and the old tag SHOULD be removed.</t>

</section>
<section anchor="concise-software-identity-co-constraints" title="concise-software-identity Co-constraints">

<t><list style="symbols">
  <t>Only one of the corpus, patch, and supplemental items MUST be set to “true”, or all of the corpus, patch, and supplemental items MUST be set to “false” or be omitted.</t>
  <t>If the patch item is set to “true”, the the tag SHOULD contain at least one link with the rel(ation) item value of “patches” and an href item specifying an association with the software that was patched.</t>
  <t>If the supplemental item is set to “true”, the the tag SHOULD contain at least one link with the rel(ation) item value of “supplements” and an href item specifying an association with the software that is supplemented.</t>
  <t>If all of the corpus, patch, and supplemental items are “false”, or if the corpus item is set to “true”, then a software-version item MUST be included with a value set to the version of the software component. This ensures that primary and corpus tags have an identifiable software version.</t>
</list></t>

</section>
</section>
<section anchor="model-global-attributes" title="The global-attributes Group">

<t>The global-attributes group provides a list of items including an optional
language definition to support the processing of text-string values and an
unbounded set of any-attribute items allowing for additional items to be
provided as a general point of extension in the model.</t>

<t>The CDDL for the global-attributes is as follows:</t>

<figure><artwork type="CDDL"><![CDATA[
global-attributes = (
  ? lang,
  * any-attribute,
)

label = text / int

any-attribute = (
  label => text / int / [ 2* text ] / [ 2* int ]
)

lang = (15: text)
]]></artwork></figure>

<t>The following describes each child item of this object.</t>

<t><list style="symbols">
  <t>lang (index 15): A language tag or corresponding IANA index integer that
conforms with IANA Language Subtag Registry <xref target="RFC5646"/>. <!--TODO: there are no index values in the IANA Language Subtag Registry.--></t>
  <t>any-attribute: This sub-group provides a means to include arbitrary information
via label (key) item value pairs where both keys and values can be
either a single integer or text string, or an array of integers or text strings.</t>
</list></t>

</section>
<section anchor="model-any-element" title="The any-element-map Entry">

<t>The CDDL for the any-element-entry object is as follows:</t>

<figure><artwork type="CDDL"><![CDATA[
any-element-map = {
  global-attributes,
  * label => any-element-map / [ 2* any-element-map ],
}
any-element-entry = (7: any-element-map / [ 2* any-element-map ])
]]></artwork></figure>

<t>The following describes each child item of this object.</t>

<t><list style="symbols">
  <t>global-attributes: The global-attributes group described in <xref target="model-global-attributes"/>.</t>
  <t>label: a single or multiple <!--TODO: BROKEN: this map does not have a leaf that is a textual (or other value).--></t>
</list></t>

</section>
<section anchor="model-entity" title="The entity Object">

<t>The CDDL for the entity object is as follows:</t>

<figure><artwork type="CDDL"><![CDATA[
entity = {
  global-attributes,
  entity-name,
  ? reg-id,
  role,
  ? thumbprint,
  extended-data,
}

any-uri = text

extended-data = (30: any-element-map / [ 2* any-element-map ])
entity-name = (31: text)
reg-id = (32: any-uri)
role = (33: text / [2* text])
thumbprint = (34: hash-entry)
]]></artwork></figure>

<t>The following describes each child item of this object.</t>

<t><list style="symbols">
  <t>global-attributes: The global-attributes group described in <xref target="model-global-attributes"/>.</t>
  <t>entity-name (index 32): The text-string name of the organization claiming a particular role in the CoSWID
tag.</t>
  <t>reg-id (index 32): The registration id is intended to uniquely identify a naming authority in a
given scope (e.g. global, organization, vendor, customer, administrative domain,
etc.) that is implied by the referenced naming authority. The value of an
registration ID MUST be a RFC 3986 URI. The scope SHOULD be the scope of an
organization. In a given scope, the registration id MUST be used consistently.</t>
  <t>role (index 33): The relationship(s) between this organization and this tag. The role of tag creator
is required for every CoSWID tag. The role of an entity may include any role
value, but the pre-defined roles include: “aggregator”, “distributor”,
“licensor”, “software-creator”, and “tag-creator”. These pre-defined role index and text values are defined in <xref target="indexed-entity-role"/>. Use of index values instead of text for these pre-defined roles allows a CoSWID to be more concise.</t>
  <t>thumbprint (index 34): The value of the thmbprint item provides an integer-based hash algorithm identifier (hash-alg-id) and a byte string string value (hash-value) that contains the corresponding hash value (i.e. the
thumbprint) of the signing entities certificate(s). If the hash-alg-id is not known, then the integer value “0” MUST be used. This ensures parity between the SWID tag specification <xref target="SWID"/>, which does not allow an algorithm to be identified for this field. See <xref target="model-hash-entry"/> for more details on the use of the hash-entry data structure.</t>
  <t>extended-data (index 30): An open-ended collection of elements that can be used to attach arbitrary
metadata to an entity item.</t>
</list></t>

</section>
<section anchor="model-link" title="The link Object">

<t>The CDDL for the link object is as follows:</t>

<figure><artwork type="CDDL"><![CDATA[
link = {
  global-attributes,
  ? artifact,
  href,
  ? media
  ? ownership,
  rel,
  ? media-type,
  ? use,
}
artifact = (37: text)
href = (38: any-uri)
media = (10: any-uri)
ownership = (39: "shared" / "private" / "abandon")
rel = (40: text)
media-type = (41: text)
use = (42: "optional" / "required" / "recommended")
]]></artwork></figure>

<t>The following describes each child item of this object.</t>

<t><list style="symbols">
  <t>global-attributes: The global-attributes group described in <xref target="model-global-attributes"/>.</t>
  <t>artifact (index: 37): For installation media (rel=”installation-media”), this item value indicates the path of the installer executable or script that can be run to launch the referenced installation. Items with the same artifact name should be considered mirrors of each other, allowing the installation media to be downloaded from any of the described sources.</t>
  <t>href (index 38): The link to the item being referenced. The “href” item’s value can point to several different things, and can be any of the following:
  <list style="symbols">
      <t>If no URI scheme is provided, then the URI is to be interpreted as being relative to the URI of the CoSWID tag. For example, “./folder/supplemental.coswid”.</t>
      <t>a physical resource location with any system-acceptable URI scheme (e.g., file:// http:// https:// ftp://)</t>
      <t>a URI with “coswid:” as the scheme, which refers to another CoSWID by tag-id. This
URI would need to be resolved in the context of the system by software
that can lookup other CoSWID tags. For example, “coswid:2df9de35-0aff-4a86-ace6-f7dddd1ade4c” references the tag with the tag-id value “2df9de35-0aff-4a86-ace6-f7dddd1ade4c”.</t>
      <t>a URI with “swidpath:” as the scheme, which refers to another CoSIWD via an
XPATH query. This URI would need to be resolved in the context of the system
entity via dedicated software components that can lookup other CoSWID tags and
select the appropriate tag based on an XPATH query. Examples include:</t>
      <t>swidpath://SoftwareIdentity[Entity/@regid=’http://contoso.com’] would retrieve all CoSWID tags that include an entity where the regid is “Contoso” or swidpath://SoftwareIdentity[Meta/@persistentId=’b0c55172-38e9-4e36-be86-92206ad8eddb’] would match CoSWID tags with the persistent-id value “b0c55172-38e9-4e36-be86-92206ad8eddb”.</t>
      <t>See XPATH query standard : http://www.w3.org/TR/xpath20/ <!--FIXME: Concise XPATH representation is covered in the YANG-CBOR I-D--></t>
    </list></t>
  <t>media (index 10): See media defined in <xref target="model-concise-software-identity"/>.</t>
  <t>ownership (index 39): Determines the relative strength of ownership of the software components. Valid
enumerations are: abandon, private, shared</t>
  <t>rel (index 40): The relationship between this CoSWID and the target file. Relationships can be
identified by referencing the IANA registration library: https://www.iana.org/assignments/link-relations/link-relations.xhtml.</t>
  <t>media-type (index 41): The IANA MediaType for the target file; this provides the consumer with
intelligence of what to expect. See
http://www.iana.org/assignments/media-types/media-types.xhtml for more details
on link type.</t>
  <t>use (index 42): Determines if the target software is a hard requirement or not. Valid
enumerations are: required, recommended, optional.</t>
</list></t>

</section>
<section anchor="model-software-meta" title="The software-meta Object">

<t>The CDDL for the software-meta object is as follows:</t>

<figure><artwork type="CDDL"><![CDATA[
software-meta = {
  global-attributes,
  ? activation-status,
  ? channel-type,
  ? colloquial-version,
  ? description,
  ? edition,
  ? entitlement-data-required,
  ? entitlement-key,
  ? generator,
  ? persistent-id,
  ? product,
  ? product-family,
  ? revision,
  ? summary,
  ? unspsc-code,
  ? unspsc-version,
}
activation-status = (43: text)
channel-type = (44: text)
colloquial-version = (45: text)
description = (46: text)
edition = (47: text)
entitlement-data-required = (48: bool)
entitlement-key = (49: text)
generator = (50: text)
persistent-id = (51: text)
product = (52: text)
product-family = (53: text)
revision = (54: text)
summary = (55: text)
unspsc-code = (56: text)
unspsc-version = (57: text)
]]></artwork></figure>

<t>The following describes each child item of this object.</t>

<t><list style="symbols">
  <t>global-attributes: The global-attributes group described in <xref target="model-global-attributes"/>.</t>
  <t>activation-status (index 43): Identification of the activation status of this software title (e.g. Trial,
Serialized, Licensed, Unlicensed, etc).  Typically, this is used in supplemental
tags.</t>
  <t>channel-type (index 44): Provides information on which channel this particular software was targeted for
(e.g. Volume, Retail, OEM, Academic, etc). Typically used in supplemental tags.</t>
  <t>colloquial-version (index 45): The informal or colloquial version of the product (i.e. 2013). Note that this
version may be the same through multiple releases of a software component where
the version specified in entity is much more specific and will change for each
software release.
Note that this representation of version is typically used to identify a group
of specific software releases that are part of the same release/support
infrastructure (i.e. Fabrikam Office 2013).  This version is used for string
comparisons only and is not compared to be an earlier or later
release (that is done via the entity version). <!--FIXME: consistency --></t>
  <t>description (index 46): A longer, detailed description of the software.  This description can be
multiple sentences (differentiated from summary, which is a very short,
one-sentence description).</t>
  <t>edition (index 47): The variation of the product (Extended, Enterprise, Professional, Standard etc).</t>
  <t>entitlement-data-required (index 48): An indicator to determine if there should be accompanying proof of entitlement
when a software license reconciliation is completed.</t>
  <t>entitlement-key (index 49): A vendor-specific textual key that can be used to reconcile the validity of an
entitlement. (e.g. serial number, product or license key).</t>
  <t>generator (index 50): The name of the software tool that created a CoSWID tag.  This item is typically
used if tags are created on the fly or via a catalog-based analysis for data
found on a computing device.</t>
  <t>persistent-id (index 51): A GUID used to represent products installed where the products are related, but may be different versions.</t>
  <t>product (index 52): The base name of the product (e.g. <!--FIXME: what are appropriate examples?-->).</t>
  <t>product-family (index 53): The overall product family this software belongs to.  Product family is not used
to identify that a product is part of a suite, but is instead used when a set of
products that are all related may be installed on multiple different devices.
For example, an enterprise backup system may consist of a backup services,
multiple different backup services that support mail services, databases and ERP
systems, as well as individual software components that backup client system
entities. In such an usage scenario, all software components that are part of
the backup system would have the same product-family name so they can be grouped
together in respect to reporting systems.</t>
  <t>revision (index 54): The informal or colloquial representation of the sub-version of the given
product (ie, SP1, R2, RC1, Beta 2, etc).  Note that the version
will provide very exact version details,
the revision is intended for use in environments where reporting on the informal
or colloquial representation of the software is important (for example, if for a
certain business process, an organization recognizes that it must have, for
example “ServicePack 1” or later of a specific product installed on all devices,
they can use the revision data value to quickly identify any devices that do not
meet this requirement).
Depending on how a software organizations distributes revisions, this value
could be specified in a primary (if distributed as an upgrade) or supplemental
(if distributed as a patch) CoSWID tag.</t>
  <t>summary (index 55): A short (one-sentence) description of the software.</t>
  <t>unspsc-code (index 56): An 8 digit code that provides UNSPSC classification of the software component this SWID tag identifies.  For more information see, http://www.unspsc.org/.</t>
  <t>unspsc-version (index 57): The version of the UNSPSC code used to define the UNSPSC code value. For more information see, http://www.unspsc.org/.</t>
</list></t>

</section>
<section anchor="the-resource-collection-definition" title="The Resource Collection Definition">

<section anchor="model-hash-entry" title="The hash-entry Array">

<t>CoSWID add explicit support for the representation of hash entries using algorithms that are
registered at the Named Information Hash Algorithm Registry via the hash-entry member (label 58).</t>

<figure><artwork type="CDDL"><![CDATA[
hash-entry = (58: [ hash-alg-id: int, hash-value: bstr ] )
]]></artwork></figure>

<t>The number used as a value for hash-alg-id MUST refer an ID in the Named Information Hash Algorithm
Registry; other hash algorithms MUST NOT be used. The hash-value MUST represent the raw hash value of the hashed resource generated using the hash algorithm indicated by the hash-alg-id.</t>

</section>
<section anchor="model-resource-collection" title="The resource-collection Group">

<t>A list of items both used in evidence (discovered by an inventory process) and
payload (installed in a system entity) content of a CoSWID tag document to
structure and differentiate the content of specific CoSWID tag types. Potential
content includes directories, files, processes, resources or firmwares.</t>

<t>The CDDL for the resource-collection group is as follows:</t>

<figure><artwork type="CDDL"><![CDATA[
resource-collection = (
  ? directory-entry,
  ? file-entry,
  ? process-entry,
  ? resource-entry
)

directory = {
  filesystem-item,
  path-elements,
}

file = {
  filesystem-item,
  ? size,
  ? file-version,
  ? hash-entry,
}

process = {
  global-attributes,
  process-name,
  ? pid,
}

resource = {
  global-attributes,
  type,
}

filesystem-item = (
  global-attributes,
  ? key,
  ? location,
  fs-name,
  ? root,
)

directory-entry = (16: directory / [ 2* directory ])
file-entry = (17: file / [ 2* file ])
process-entry = (18: process / [ 2* process ])
resource-entry = (19: resource / [ 2* resource ])
size = (20: integer)
file-version = (21: text)
key = (22: bool)
location = (23: text)
fs-name = (24: text)
root = (25: text)
path-elements = (26: { * file-entry,
                       * directory-entry,
                     }
                )
process-name = (27: text)
pid = (28: integer)
type = (29: text)
]]></artwork></figure>

<t>The following describes each child item or group for these groups.</t>

<t><list style="symbols">
  <t>filesystem-item: A list of items both used in representing the nodes of a file-system hierarchy,
i.e. directory items that allow one or more directories to be defined in the
file structure, and file items that allow one or more files to be specified for
a given location.</t>
  <t>global-attributes: The global-attributes group described in <xref target="model-global-attributes"/>.</t>
  <t>directory-entry (index 16): A directory item allows one or more directories to be defined in the file
structure.</t>
  <t>file-entry (index 17): A file element that allows one or more files to be specified for a given
location.</t>
  <t>process-entry (index 18): Provides process (software component in execution) information for data that
will show up in a devices process table.</t>
  <t>resource-entry (index 19): A set of items that can be used to provide arbitrary resource information about
an application installed on a system entity, or evidence collected from a
system entity.</t>
  <t>size (index 20): The file size in bytes of the file.</t>
  <t>file-version (index 21): The version of the file.</t>
  <t>key (index 22): Files that are considered important or required for the use of a software
component.  Typical key files would be those which, if not available on a system
entity, would cause the software component not to execute or function properly.
Key files will typically be used to validate that a software component
referenced by the CoSWID tag document is actually installed on a specific system
entity.</t>
  <t>location (index 23): The directory or location where a file was found or can expected to be located.
This text-string is intended to include the filename itself.  This SHOULD be the
relative path from the location represented by the root item.</t>
  <t>fs-name (index 24): The file name or directory name without any path characters.</t>
  <t>root (index 25): A system-specific root folder that the location item is an offset from. If this
is not specified the assumption is the root is the same folder as the location
of the CoSWID tag. The text-string value represents a path expression relative
to the CoSWID tag document location in the (composite) file-system hierarchy.</t>
  <t>path-elements (index 26): Provides the ability to apply a directory structure to the path expressions for
files defined in a payload or evidence item.</t>
  <t>process-name (index 27): The process name as it will be found in the system entity’s process table.</t>
  <t>pid (index 28): The process ID for the process in execution that can be included in the process
item as part of an evidence tag.</t>
  <t>type (index 29): The type of resource represented via a text-string  (typically, registry-key,
port or root-uri).</t>
</list></t>

</section>
<section anchor="model-payload" title="The payload Object">

<t>The CDDL for the payload object is as follows:</t>

<figure><artwork type="CDDL"><![CDATA[
payload = {
  global-attributes,
  resource-collection,
  * $$payload-extension
}
]]></artwork></figure>

<t>The following describes each child item of this object.</t>

<t><list style="symbols">
  <t>global-attributes: The global-attributes group described in <xref target="model-global-attributes"/>.</t>
  <t>resource-collection: The resource-collection group described in <xref target="model-resource-collection"/>.</t>
  <t>$$payload-extension: This CDDL socket (see <xref target="I-D.ietf-cbor-cddl"/> section 3.9) can be used to extend the payload model, allowing well-formed extensions to be defined in additional CDDL descriptions.</t>
</list></t>

</section>
<section anchor="model-evidence" title="The evidence Object">

<t>The CDDL for the evidence object is as follows:</t>

<figure><artwork type="CDDL"><![CDATA[
evidence = {
  global-attributes,
  resource-collection,
  ? date,
  ? device-id,
  * $$evidence-extension
}
date = (35: time)
device-id = (36: text)
]]></artwork></figure>

<t>The following describes each child item of this object.</t>

<t><list style="symbols">
  <t>global-attributes: The global-attributes group described in <xref target="model-global-attributes"/>.</t>
  <t>resource-collection: The resource-collection group described in <xref target="model-resource-collection"/>.</t>
  <t>date (index 35): The date and time evidence represented by an evidence item was gathered.</t>
  <t>device-id (index 36): A text-string identifier for a device evidence was gathered from.</t>
  <t>$$evidence-extension:  This CDDL socket (see <xref target="I-D.ietf-cbor-cddl"/> section 3.9) can be used to extend the evidence model, allowing well-formed extensions to be defined in additional CDDL descriptions.</t>
</list></t>

</section>
</section>
<section anchor="full-cddl-definition" title="Full CDDL Definition">

<t>In order to create a valid CoSWID document the structure of the corresponding CBOR message MUST
adhere to the following CDDL data definition.</t>

<figure><artwork type="CDDL"><![CDATA[
concise-software-identity = {
  global-attributes,
  tag-id,
  tag-version,
  ? corpus,
  ? patch,
  ? supplemental,
  swid-name,
  ? software-version,
  ? version-scheme,
  ? media,
  ? software-meta-entry,
  entity-entry,
  ? link-entry,
  ? ( payload-entry // evidence-entry ),
  * $$coswid-extension 
}

any-uri = text
label = text / int

any-attribute = (
  label => text / int / [ 2* text ] / [ 2* int ]
)

global-attributes = (
  ? lang,
  * any-attribute,
)

resource-collection = (
  ? directory-entry,
  ? file-entry,
  ? process-entry,
  ? resource-entry
)

file = {
  filesystem-item,
  ? size,
  ? file-version,
  ? hash-entry,
}

filesystem-item = (
  global-attributes,
  ? key,
  ? location,
  fs-name,
  ? root,
)

directory = {
  filesystem-item,
  path-elements,
}

process = {
  global-attributes,
  process-name,
  ? pid,
}

resource = {
  global-attributes,
  type,
}

entity = {
  global-attributes,
  entity-name,
  ? reg-id,
  role,
  ? thumbprint,
  * $$entity-extension,
}

evidence = {
  global-attributes,
  resource-collection,
  ? date,
  ? device-id,
  * $$evidence-extension 
}

link = {
  global-attributes,
  ? artifact,
  href,
  ? media
  ? ownership,
  rel,
  ? media-type,
  ? use,
}

software-meta = {
  global-attributes,
  ? activation-status,
  ? channel-type,
  ? colloquial-version,
  ? description,
  ? edition,
  ? entitlement-data-required,
  ? entitlement-key,
  ? generator,
  ? persistent-id,
  ? product,
  ? product-family,
  ? revision,
  ? summary,
  ? unspsc-code,
  ? unspsc-version,
}

payload = {
  global-attributes,
  resource-collection,
  * $$payload-extension 
}

tag-id = (0: text)
swid-name = (1: text)
entity-entry = (2: entity / [ 2* entity ])
evidence-entry = (3: evidence)
link-entry = (4: link / [ 2* link ])
software-meta-entry = (5: software-meta / [ 2* software-meta ])
payload-entry = (6: payload)
corpus = (8: bool)
patch = (9: bool)
media = (10: [ + [ media-expression,
                     ? [ media-operation,
                         media-expression,
                       ]
                 ]
             ])
media-operation = text
media-expression = media-environment / [ media-prefix,
                                         media-environment,
                                         media-attribute,
                                         media-value,
                                       ]
media-prefix = text
media-environment = text
media-attribute = text
media-value = text
supplemental = (11: bool)
tag-version = (12: integer)
software-version = (13: text)
version-scheme = (14: version-schemes  / extended-value)
version-schemes = multipartnumeric / multipartnumeric-suffix / alphanumeric / decimal / semver
multipartnumeric = 1
multipartnumeric-suffix = 2
alphanumeric = 3
decimal = 4
semver = 16384
lang = (15: text)
directory-entry = (16: directory / [ 2* directory ])
file-entry = (17: file / [ 2* file ])
process-entry = (18: process / [ 2* process ])
resource-entry = (19: resource / [ 2* resource ])
size = (20: integer)
file-version = (21: text)
key = (22: bool)
location = (23: text)
fs-name = (24: text)
root = (25: text)
path-elements = (26: { * file-entry,
                       * directory-entry,
                     }
                )
process-name = (27: text)
pid = (28: integer)
type = (29: text)
entity-name = (31: text)
reg-id = (32: any-uri)
role = (33: roles / extended-value / [ 2* roles / extended-value ] )
extended-value = text / uint
roles= aggregator / distributor / licensor / software-creator / tag-creator
aggregator=0
distributor=1
licensor=2
software-creator=3
tag-creator=4
thumbprint = (34: [ hash-alg-id: int,
                    hash-value: bstr,
                  ]
             )
date = (35: time)
device-id = (36: text)
artifact = (37: text)
href = (38: any-uri)
ownership = (39: shared / private / abandon / extended-value )
shared=0
private=1
abandon=2
rel = (40: rels / extended-value )
rels = ancestor / component / feature / installationmedia / packageinstaller / parent / patches / requires / see-also / supersedes / rel-supplemental
ancestor=0
component=1
feature=2
installationmedia=3
packageinstaller=4
parent=5
patches=6
requires=7
see-also=8
supersedes=9
rel-supplemental=10
media-type = (41: text)
use = (42: optional / required / recommended / extended-value )
optional=0
required=1
recommended=2
activation-status = (43: text)
channel-type = (44: text)
colloquial-version = (45: text)
description = (46: text)
edition = (47: text)
entitlement-data-required = (48: bool)
entitlement-key = (49: text)
generator = (50: text)
persistent-id = (51: text)
product = (52: text)
product-family = (53: text)
revision = (54: text)
summary = (55: text)
unspsc-code = (56: text)
unspsc-version = (57: text)
hash-entry = (58: [ hash-alg-id: int,
                    hash-value: bstr,
                  ]
             )
]]></artwork></figure>

</section>
</section>
<section anchor="coswid-indexed-label-values" title="CoSWID Indexed Label Values">

<section anchor="indexed-version-scheme" title="Version Scheme">

<t>The following are an initial set of values for use in the version-scheme item for the version schemes defined in the ISO/IEC 19770-2:2015 <xref target="SWID"/> specification. Index value in parens indicates the index value to use in the version-scheme item.</t>

<t><list style="symbols">
  <t>multipartnumeric (index 1): Numbers separated by dots, where the numbers are interpreted as integers (e.g.,1.2.3, 1.4.5, 1.2.3.4.5.6.7)</t>
  <t>multipartnumeric+suffix (index 2): Numbers separated by dots, where the numbers are interpreted as integers with an additional string suffix(e.g., 1.2.3a)</t>
  <t>alphanumeric (index 3): Strictly a string, sorting is done alphanumerically</t>
  <t>decimal (index 4): A floating point number (e.g., 1.25 is less than 1.3)</t>
  <t>semver (index 16384): Follows the <xref target="SEMVER"/> specification</t>
</list></t>

<t>The values above are registered in the “SWID/CoSWID Version Schema Values” registry defined in section <xref target="iana-version-scheme"/>. Additional valid values will likely be registered over time in this registry.</t>

</section>
<section anchor="indexed-entity-role" title="Entity Role Values">

<t>The following table indicates the index value to use for the entity roles defined in the ISO/IEC 19770-2:2015 <xref target="SWID"/> specification.</t>

<texttable>
      <ttcol align='left'>Index</ttcol>
      <ttcol align='left'>Role Name</ttcol>
      <c>0</c>
      <c>Reserved</c>
      <c>1</c>
      <c>tagCreator</c>
      <c>2</c>
      <c>softwareCreator</c>
      <c>3</c>
      <c>aggregator</c>
      <c>4</c>
      <c>distributor</c>
      <c>5</c>
      <c>licensor</c>
</texttable>

<t>The values above are registered in the “SWID/CoSWID Entity Role Values” registry defined in section <xref target="iana-entity-role"/>. Additional valid values will likely be registered over time. Additionally, the index values 226 through 255 have been reserved for private use.</t>

</section>
</section>
<section anchor="iana" title="IANA Considerations">

<t>This document will include requests to IANA:</t>

<t><list style="symbols">
  <t>Integer indices for SWID content attributes and information elements.</t>
  <t>Content-Type for CoAP to be used in COSE.</t>
</list></t>

<t>This document has a number of IANA considerations, as described in
the following subsections.</t>

<section anchor="iana-version-scheme" title="SWID/CoSWID Version Schema Values Registry">

<t>This document uses unsigned 16-bit index values to version-scheme item values. The
initial set of version-scheme values are derived from the textual version scheme names
defined in the ISO/IEC 19770-2:2015 specification <xref target="SWID"/>.</t>

<t>This document defines a new a new registry entitled
“SWID/CoSWID Version Schema Values”. Future registrations for this
registry are to be made based on <xref target="RFC8126"/> as follows:</t>

<texttable>
      <ttcol align='left'>Range</ttcol>
      <ttcol align='left'>Registration Procedures</ttcol>
      <c>0-16383</c>
      <c>Standards Action</c>
      <c>16384-32767</c>
      <c>Specification Required</c>
      <c>32768-65535</c>
      <c>Reserved for Private Use</c>
</texttable>

<t>Initial registrations for the SWID/CoSWID Version Schema Values registry
are provided below.</t>

<texttable>
      <ttcol align='left'>Index</ttcol>
      <ttcol align='left'>Role Name</ttcol>
      <ttcol align='left'>Specification</ttcol>
      <c>0</c>
      <c>Reserved</c>
      <c>&#160;</c>
      <c>1</c>
      <c>multipartnumeric</c>
      <c>See <xref target="indexed-version-scheme"/></c>
      <c>2</c>
      <c>multipartnumeric+suffix</c>
      <c>See <xref target="indexed-version-scheme"/></c>
      <c>3</c>
      <c>alphanumeric</c>
      <c>See <xref target="indexed-version-scheme"/></c>
      <c>4</c>
      <c>decimal</c>
      <c>See <xref target="indexed-version-scheme"/></c>
      <c>5-16383</c>
      <c>Unassigned</c>
      <c>&#160;</c>
      <c>16384</c>
      <c>semver</c>
      <c><xref target="SEMVER"/></c>
      <c>16385-32767</c>
      <c>Unassigned</c>
      <c>&#160;</c>
      <c>32768-65535</c>
      <c>Reserved for Private Use</c>
      <c>&#160;</c>
</texttable>

</section>
<section anchor="iana-entity-role" title="SWID/CoSWID Entity Role Values Registry">

<t>This document uses unsigned 8-bit index values to represent entity-role values. The
initial set of Entity roles are derived from the textual role names
defined in the ISO/IEC 19770-2:2015 specification <xref target="SWID"/>.</t>

<t>This document defines a new a new registry entitled
“SWID/CoSWID Entity Role Values”. Future registrations for this
registry are to be made based on <xref target="RFC8126"/> as follows:</t>

<texttable>
      <ttcol align='left'>Range</ttcol>
      <ttcol align='left'>Registration Procedures</ttcol>
      <c>0-31</c>
      <c>Standards Action</c>
      <c>32-127</c>
      <c>Specification Required</c>
      <c>128-255</c>
      <c>Reserved for Private Use</c>
</texttable>

<t>Initial registrations for the SWID/CoSWID Entity Role Values registry
are provided below.</t>

<texttable>
      <ttcol align='left'>Index</ttcol>
      <ttcol align='left'>Role Name</ttcol>
      <ttcol align='left'>Specification</ttcol>
      <c>0</c>
      <c>Reserved</c>
      <c>&#160;</c>
      <c>1</c>
      <c>tagCreator</c>
      <c>See <xref target="indexed-entity-role"/></c>
      <c>2</c>
      <c>softwareCreator</c>
      <c>See <xref target="indexed-entity-role"/></c>
      <c>3</c>
      <c>aggregator</c>
      <c>See <xref target="indexed-entity-role"/></c>
      <c>4</c>
      <c>distributor</c>
      <c>See <xref target="indexed-entity-role"/></c>
      <c>5</c>
      <c>licensor</c>
      <c>See <xref target="indexed-entity-role"/></c>
      <c>6-49</c>
      <c>Unassigned</c>
      <c>&#160;</c>
      <c>50-225</c>
      <c>Unassigned</c>
      <c>&#160;</c>
      <c>225-255</c>
      <c>Reserved for Private Use</c>
      <c>&#160;</c>
</texttable>

</section>
<section anchor="media-type-registration" title="Media Type Registration">

<section anchor="swidcbor-media-type-registration" title="swid+cbor Media Type Registration">

<t>Type name: application</t>

<t>Subtype name: swid+cbor</t>

<t>Required parameters: none</t>

<t>Optional parameters: none</t>

<t>Encoding considerations: Must be encoded as using <xref target="RFC7049"/>. See
RFC-AAAA for details.</t>

<t>Security considerations: See <xref target="sec-sec"/> of RFC-AAAA.</t>

<t>Interoperability considerations: Applications MAY ignore any key
value pairs that they do not understand. This allows
backwards compatible extensions to this specification.</t>

<t>Published specification: RFC-AAAA</t>

<t>Applications that use this media type: The type is used by Software
asset management systems, Vulnerability assessment systems, and in
applications that use remote integrity verification.</t>

<t>Fragment identifier considerations: Fragment identification for
application/swid+cbor is supported by using fragment identifiers as
specified by RFC-AAAA. [Section to be defined]</t>

<t>Additional information:</t>

<t>Magic number(s): first five bytes in hex: da 53 57 49 44</t>

<t>File extension(s): coswid</t>

<t>Macintosh file type code(s): none</t>

<t>Macintosh Universal Type Identifier code: org.ietf.coswid
conforms to public.data</t>

<t>Person &amp; email address to contact for further information:
Henk Birkholz &lt;henk.birkholz@sit.fraunhofer.de&gt;</t>

<t>Intended usage: COMMON</t>

<t>Restrictions on usage: None</t>

<t>Author: Henk Birkholz &lt;henk.birkholz@sit.fraunhofer.de&gt;</t>

<t>Change controller: IESG</t>

</section>
</section>
<section anchor="coap-content-format-registration" title="CoAP Content-Format Registration">

<t>IANA is requested to assign a CoAP Content-Format ID for the CoSWID
media type in the “CoAP Content-Formats” sub-registry, from the “IETF
Review or IESG Approval” space (256..999), within the “CoRE
Parameters” registry <xref target="RFC7252"/>:</t>

<texttable title="CoAP Content-Format IDs" anchor="tbl-coap-content-formats">
      <ttcol align='left'>Media type</ttcol>
      <ttcol align='left'>Encoding</ttcol>
      <ttcol align='left'>ID</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <c>application/swid+cbor</c>
      <c>-</c>
      <c>TBDcf</c>
      <c>RFC-AAAA</c>
</texttable>

</section>
<section anchor="cbor-tag-registration" title="CBOR Tag Registration">

<t>IANA is requested to allocate a tag in the CBOR Tags Registry,
preferably with the specific value requested:</t>

<texttable>
      <ttcol align='left'>Tag</ttcol>
      <ttcol align='left'>Data Item</ttcol>
      <ttcol align='left'>Semantics</ttcol>
      <c>1398229316</c>
      <c>map</c>
      <c>Concise Software Identifier (CoSWID) [RFC-AAAA]</c>
</texttable>

</section>
</section>
<section anchor="sec-sec" title="Security Considerations">

<t>SWID and CoSWID tags contain public information about software components and, as
such, do not need to be protected against disclosure on an endpoint.
Similarly, SWID tags are intended to be easily discoverable by
applications and users on an endpoint in order to make it easy to
identify and collect all of an endpoint’s SWID tags.  As such, any
security considerations regarding SWID tags focus on the application
of SWID tags to address security challenges, and the possible
disclosure of the results of those applications.</t>

<t>A signed SWID tag whose signature has been validated can be relied upon to be
unchanged since it was signed.  If the SWID tag was created by the
software provider, is signed, and the software provider can be authenticated as the originator of the signature, then the tag can be considered authoritative.
In this way, an authoritative SWID tag contains information about a software product provided by the maintainer of the product, who is expected to be an expert in their own product. Thus, authoritative SWID tags can be trusted to represent authoritative information about the software product.  Having an authoritative SWID tag can be useful when the information in the
tag needs to be trusted, such as when the tag is being used to convey
reference integrity measurements for software components.  By contrast, the data contained in unsigned
tags cannot be trusted to be unmodified.</t>

<t>SWID tags are designed to be easily added and removed from an
endpoint along with the installation or removal of software components.
On endpoints where addition or removal of software components is
tightly controlled, the addition or removal of SWID tags can be
similarly controlled.  On more open systems, where many users can
manage the software inventory, SWID tags may be easier to add or
remove.  On such systems, it may be possible to add or remove SWID
tags in a way that does not reflect the actual presence or absence of
corresponding software components.  Similarly, not all software
products automatically install SWID tags, so products may be present
on an endpoint without providing a corresponding SWID tag.  As such,
any collection of SWID tags cannot automatically be assumed to
represent either a complete or fully accurate representation of the
software inventory of the endpoint.  However, especially on devices
that more strictly control the ability to add or remove applications,
SWID tags are an easy way to provide an preliminary understanding of
that endpoint’s software inventory.</t>

<t>Any report of an endpoint’s SWID tag collection provides
information about the software inventory of that endpoint.  If such a
report is exposed to an attacker, this can tell them which software
products and versions thereof are present on the endpoint.  By
examining this list, the attacker might learn of the presence of
applications that are vulnerable to certain types of attacks.  As
noted earlier, SWID tags are designed to be easily discoverable by an
endpoint, but this does not present a significant risk since an
attacker would already need to have access to the endpoint to view
that information.  However, when the endpoint transmits its software
inventory to another party, or that inventory is stored on a server
for later analysis, this can potentially expose this information to
attackers who do not yet have access to the endpoint.  As such, it is
important to protect the confidentiality of SWID tag information that
has been collected from an endpoint, not because those tags
individually contain sensitive information, but because the
collection of SWID tags and their association with an endpoint
reveals information about that endpoint’s attack surface.</t>

<t>Finally, both the ISO-19770-2:2015 XML schema definition and the
Concise SWID data definition allow for the construction of “infinite”
SWID tags or SWID tags that contain malicious content with the intent
if creating non-deterministic states during validation or processing of SWID tags. While software
product vendors are unlikely to do this, SWID tags can be created by any party and the SWID tags
collected from an endpoint could contain a mixture of vendor and non-vendor created tags. For this
reason, tools that consume SWID tags ought to treat the tag contents as potentially malicious and
should employ input sanitizing on the tags they ingest.</t>

</section>
<section anchor="acknowledgments" title="Acknowledgments">

</section>
<section anchor="change-log" title="Change Log">

<t>Changes from version 06 to version 07:</t>

<t><list style="symbols">
  <t>Added version-scheme definitions</t>
  <t>Added stubs for additional extension points</t>
  <t>Added value registry request</t>
  <t>Added media type registration request</t>
  <t>Added content format registration request</t>
  <t>Added CBOR tag registration request</t>
  <t>Fixed any-element-map</t>
  <t>Removed RIM appedix to be addressed in complementary draft</t>
  <t>Removed CWT appendix</t>
  <t>Flagged firmware resource colletion appendix for revision</t>
</list></t>

<t>Changes from version 05 to version 06:</t>

<t><list style="symbols">
  <t>Improved quantities</t>
  <t>Included proposals for implicet enumerations that were NMTOKENS</t>
  <t>Added extension points</t>
  <t>Improved exemplary firmware-resource extension</t>
</list></t>

<t>Changes from version 04 to version 05:</t>

<t><list style="symbols">
  <t>Clarified language around SWID and CoSWID to make more consistant use of these terms.</t>
  <t>Added language describing CBOR optimizations for single vs. arrays in the model front matter.</t>
  <t>Fixed a number of gramatical, spelling, and wording issues.</t>
  <t>Documented extension points that use CDDL sockets.</t>
  <t>Converted IANA registration tables to markdown tables, reserving the 0 value for use when a value is not known.</t>
  <t>Updated a number of references to their current versions.</t>
</list></t>

<t>Changes from version 03 to version 04:</t>

<t><list style="symbols">
  <t>Re-index label values in the CDDL.</t>
  <t>Added a section describing the CoSWID model in detail.</t>
  <t>Created IANA registries for entity-role and version-scheme</t>
</list></t>

<t>Changes from version 02 to version 03:</t>

<t><list style="symbols">
  <t>Updated CDDL to allow for a choice between a payload or evidence</t>
  <t>Re-index label values in the CDDL.</t>
  <t>Added item definitions</t>
  <t>Updated references for COSE, CBOR Web Token, and CDDL.</t>
</list></t>

<t>Changes from version 01 to version 02:</t>

<t><list style="symbols">
  <t>Added extensions for Firmware and CoSWID use as Reference Integrity Measurements (CoSWID RIM)</t>
  <t>Changes meta handling in CDDL from use of an explicit use of items to a more flexible unconstrained collection of items.</t>
  <t>Added sections discussing use of COSE Signatures and CBOR Web Tokens</t>
</list></t>

<t>Changes from version 00 to version 01:</t>

<t><list style="symbols">
  <t>Added CWT usage for absolute SWID paths on a device</t>
  <t>Fixed cardinality of type-choices including arrays</t>
  <t>Included first iteration of firmware resource-collection</t>
</list></t>

<t>Changes since adopted as a WG I-D -00:</t>

<t><list style="symbols">
  <t>Removed redundant any-attributes originating from the ISO-19770-2:2015 XML schema definition</t>
  <t>Fixed broken multi-map members</t>
  <t>Introduced a more restrictive item (any-element-map) to represent custom maps, increased restriction on types for the any-attribute, accordingly</t>
  <t>Fixed X.1520 reference</t>
  <t>Minor type changes of some attributes (e.g. NMTOKENS)</t>
  <t>Added semantic differentiation of various name types (e,g. fs-name)</t>
</list></t>

<t>Changes from version 00 to version 01:</t>

<t><list style="symbols">
  <t>Ambiguity between evidence and payload eliminated by introducing explicit members (while still</t>
  <t>allowing for “empty” SWID tags)</t>
  <t>Added a relatively restrictive COSE envelope using cose_sign1 to define signed CoSWID (single signer only, at the moment)</t>
  <t>Added a definition how to encode hashes that can be stored in the any-member using existing IANA tables to reference hash-algorithms</t>
</list></t>

<t>Changes from version 01 to version 02:</t>

<t><list style="symbols">
  <t>Enforced a more strict separation between the core CoSWID definition and additional usage by
moving content to corresponding appendices.</t>
  <t>Removed artifacts inherited from the reference schema provided by ISO (e.g. NMTOKEN(S))</t>
  <t>Simplified the core data definition by removing group and type choices where possible</t>
  <t>Minor reordering of map members</t>
  <t>Added a first extension point to address requested flexibility for extensions beyond the
any-element</t>
</list></t>

</section>
<section anchor="contributors" title="Contributors">

</section>


  </middle>

  <back>

    <references title='Normative References'>





<reference  anchor="RFC2119" target='https://www.rfc-editor.org/info/rfc2119'>
<front>
<title>Key words for use in RFCs to Indicate Requirement Levels</title>
<author initials='S.' surname='Bradner' fullname='S. Bradner'><organization /></author>
<date year='1997' month='March' />
<abstract><t>In many standards track documents several words are used to signify the requirements in the specification.  These words are often capitalized. This document defines these words as they should be interpreted in IETF documents.  This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t></abstract>
</front>
<seriesInfo name='BCP' value='14'/>
<seriesInfo name='RFC' value='2119'/>
<seriesInfo name='DOI' value='10.17487/RFC2119'/>
</reference>



<reference  anchor="RFC4108" target='https://www.rfc-editor.org/info/rfc4108'>
<front>
<title>Using Cryptographic Message Syntax (CMS) to Protect Firmware Packages</title>
<author initials='R.' surname='Housley' fullname='R. Housley'><organization /></author>
<date year='2005' month='August' />
<abstract><t>This document describes the use of the Cryptographic Message Syntax (CMS) to protect firmware packages, which provide object code for one or more hardware module components.  CMS is specified in RFC 3852.  A digital signature is used to protect the firmware package from undetected modification and to provide data origin authentication. Encryption is optionally used to protect the firmware package from disclosure, and compression is optionally used to reduce the size of the protected firmware package.  A firmware package loading receipt can optionally be generated to acknowledge the successful loading of a firmware package.  Similarly, a firmware package load error report can optionally be generated to convey the failure to load a firmware package.  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='4108'/>
<seriesInfo name='DOI' value='10.17487/RFC4108'/>
</reference>



<reference  anchor="RFC5646" target='https://www.rfc-editor.org/info/rfc5646'>
<front>
<title>Tags for Identifying Languages</title>
<author initials='A.' surname='Phillips' fullname='A. Phillips' role='editor'><organization /></author>
<author initials='M.' surname='Davis' fullname='M. Davis' role='editor'><organization /></author>
<date year='2009' month='September' />
<abstract><t>This document describes the structure, content, construction, and semantics of language tags for use in cases where it is desirable to indicate the language used in an information object.  It also describes how to register values for use in language tags and the creation of user-defined extensions for private interchange.  This document  specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t></abstract>
</front>
<seriesInfo name='BCP' value='47'/>
<seriesInfo name='RFC' value='5646'/>
<seriesInfo name='DOI' value='10.17487/RFC5646'/>
</reference>



<reference  anchor="RFC7049" target='https://www.rfc-editor.org/info/rfc7049'>
<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='2013' month='October' />
<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></abstract>
</front>
<seriesInfo name='RFC' value='7049'/>
<seriesInfo name='DOI' value='10.17487/RFC7049'/>
</reference>



<reference  anchor="RFC7252" target='https://www.rfc-editor.org/info/rfc7252'>
<front>
<title>The Constrained Application Protocol (CoAP)</title>
<author initials='Z.' surname='Shelby' fullname='Z. Shelby'><organization /></author>
<author initials='K.' surname='Hartke' fullname='K. Hartke'><organization /></author>
<author initials='C.' surname='Bormann' fullname='C. Bormann'><organization /></author>
<date year='2014' month='June' />
<abstract><t>The Constrained Application Protocol (CoAP) is a specialized web transfer protocol for use with constrained nodes and constrained (e.g., low-power, lossy) networks.  The nodes often have 8-bit microcontrollers with small amounts of ROM and RAM, while constrained networks such as IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs) often have high packet error rates and a typical throughput of 10s of kbit/s.  The protocol is designed for machine- to-machine (M2M) applications such as smart energy and building automation.</t><t>CoAP provides a request/response interaction model between application endpoints, supports built-in discovery of services and resources, and includes key concepts of the Web such as URIs and Internet media types.  CoAP is designed to easily interface with HTTP for integration with the Web while meeting specialized requirements such as multicast support, very low overhead, and simplicity for constrained environments.</t></abstract>
</front>
<seriesInfo name='RFC' value='7252'/>
<seriesInfo name='DOI' value='10.17487/RFC7252'/>
</reference>



<reference  anchor="RFC8126" target='https://www.rfc-editor.org/info/rfc8126'>
<front>
<title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
<author initials='M.' surname='Cotton' fullname='M. Cotton'><organization /></author>
<author initials='B.' surname='Leiba' fullname='B. Leiba'><organization /></author>
<author initials='T.' surname='Narten' fullname='T. Narten'><organization /></author>
<date year='2017' month='June' />
<abstract><t>Many protocols make use of points of extensibility that use constants to identify various protocol parameters.  To ensure that the values in these fields do not have conflicting uses and to promote interoperability, their allocations are often coordinated by a central record keeper.  For IETF protocols, that role is filled by the Internet Assigned Numbers Authority (IANA).</t><t>To make assignments in a given registry prudently, guidance describing the conditions under which new values should be assigned, as well as when and how modifications to existing values can be made, is needed.  This document defines a framework for the documentation of these guidelines by specification authors, in order to assure that the provided guidance for the IANA Considerations is clear and addresses the various issues that are likely in the operation of a registry.</t><t>This is the third edition of this document; it obsoletes RFC 5226.</t></abstract>
</front>
<seriesInfo name='BCP' value='26'/>
<seriesInfo name='RFC' value='8126'/>
<seriesInfo name='DOI' value='10.17487/RFC8126'/>
</reference>


<reference anchor="X.1520" >
  <front>
    <title>Recommendation ITU-T X.1520 (2014), Common vulnerabilities and exposures</title>
    <author >
      <organization></organization>
    </author>
    <date year="2011" month="April" day="20"/>
  </front>
</reference>
<reference anchor="SAM" >
  <front>
    <title>Information technology - Software asset management - Part 5: Overview and vocabulary</title>
    <author >
      <organization></organization>
    </author>
    <date year="2013" month="November" day="15"/>
  </front>
  <seriesInfo name="ISO/IEC" value="19770-5:2013"/>
</reference>
<reference anchor="SWID" >
  <front>
    <title>Information technology - Software asset management - Part 2: Software identification tag</title>
    <author >
      <organization></organization>
    </author>
    <date year="2015" month="October" day="01"/>
  </front>
  <seriesInfo name="ISO/IEC" value="19770-2:2015"/>
</reference>
<reference anchor="SWID-GUIDANCE" target="https://doi.org/10.6028/NIST.IR.8060">
  <front>
    <title>Guidelines for the Creation of Interoperable Software Identification (SWID) Tags</title>
    <author initials="D." surname="Waltermire" fullname="David Waltermire">
      <organization>National Institute for Standards and Technology</organization>
    </author>
    <author initials="B.A." surname="Cheikes" fullname="Brant A. Cheikes">
      <organization>The MITRE Corporation</organization>
    </author>
    <author initials="L." surname="Feldman" fullname="Larry Feldman">
      <organization>G2, Inc</organization>
    </author>
    <author initials="G." surname="Witte" fullname="Greg Witte">
      <organization>G2, Inc</organization>
    </author>
    <date year="2016" month="April"/>
  </front>
  <seriesInfo name="NISTIR" value="8060"/>
</reference>
<reference anchor="SEMVER" target="https://semver.org/spec/v2.0.0.html">
  <front>
    <title>Semantic Versioning 2.0.0</title>
    <author initials="T." surname="Preston-Werner" fullname="Tom Preston-Werner">
      <organization></organization>
    </author>
    <date year="n.d."/>
  </front>
</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.ietf-ace-cbor-web-token">
<front>
<title>CBOR Web Token (CWT)</title>

<author initials='M' surname='Jones' fullname='Michael Jones'>
    <organization />
</author>

<author initials='E' surname='Wahlstroem' fullname='Erik Wahlstroem'>
    <organization />
</author>

<author initials='S' surname='Erdtman' fullname='Samuel Erdtman'>
    <organization />
</author>

<author initials='H' surname='Tschofenig' fullname='Hannes Tschofenig'>
    <organization />
</author>

<date month='March' day='19' year='2018' />

<abstract><t>CBOR Web Token (CWT) is a compact means of representing claims to be transferred between two parties.  The claims in a CWT are encoded in the Concise Binary Object Representation (CBOR) and CBOR Object Signing and Encryption (COSE) is used for added application layer security protection.  A claim is a piece of information asserted about a subject and is represented as a name/value pair consisting of a claim name and a claim value.  CWT is derived from JSON Web Token (JWT) but uses CBOR rather than JSON.</t></abstract>

</front>

<seriesInfo name='Internet-Draft' value='draft-ietf-ace-cbor-web-token-15' />
<format type='TXT'
        target='http://www.ietf.org/internet-drafts/draft-ietf-ace-cbor-web-token-15.txt' />
</reference>




    </references>

    <references title='Informative References'>





<reference  anchor="RFC4122" target='https://www.rfc-editor.org/info/rfc4122'>
<front>
<title>A Universally Unique IDentifier (UUID) URN Namespace</title>
<author initials='P.' surname='Leach' fullname='P. Leach'><organization /></author>
<author initials='M.' surname='Mealling' fullname='M. Mealling'><organization /></author>
<author initials='R.' surname='Salz' fullname='R. Salz'><organization /></author>
<date year='2005' month='July' />
<abstract><t>This specification defines a Uniform Resource Name namespace for UUIDs (Universally Unique IDentifier), also known as GUIDs (Globally Unique IDentifier).  A UUID is 128 bits long, and can guarantee uniqueness across space and time.  UUIDs were originally used in the Apollo Network Computing System and later in the Open Software Foundation\'s (OSF) Distributed Computing Environment (DCE), and then in Microsoft Windows platforms.</t><t>This specification is derived from the DCE specification with the kind permission of the OSF (now known as The Open Group).  Information from earlier versions of the DCE specification have been incorporated into this document.  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='4122'/>
<seriesInfo name='DOI' value='10.17487/RFC4122'/>
</reference>



<reference  anchor="RFC4949" target='https://www.rfc-editor.org/info/rfc4949'>
<front>
<title>Internet Security Glossary, Version 2</title>
<author initials='R.' surname='Shirey' fullname='R. Shirey'><organization /></author>
<date year='2007' month='August' />
<abstract><t>This Glossary provides definitions, abbreviations, and explanations of terminology for information system security. The 334 pages of entries offer recommendations to improve the comprehensibility of written material that is generated in the Internet Standards Process (RFC 2026). The recommendations follow the principles that such writing should (a) use the same term or definition whenever the same concept is mentioned; (b) use terms in their plainest, dictionary sense; (c) use terms that are already well-established in open publications; and (d) avoid terms that either favor a particular vendor or favor a particular technology or mechanism over other, competing techniques that already exist or could be developed.  This memo provides information for the Internet community.</t></abstract>
</front>
<seriesInfo name='FYI' value='36'/>
<seriesInfo name='RFC' value='4949'/>
<seriesInfo name='DOI' value='10.17487/RFC4949'/>
</reference>



<reference  anchor="RFC7228" target='https://www.rfc-editor.org/info/rfc7228'>
<front>
<title>Terminology for Constrained-Node Networks</title>
<author initials='C.' surname='Bormann' fullname='C. Bormann'><organization /></author>
<author initials='M.' surname='Ersue' fullname='M. Ersue'><organization /></author>
<author initials='A.' surname='Keranen' fullname='A. Keranen'><organization /></author>
<date year='2014' month='May' />
<abstract><t>The Internet Protocol Suite is increasingly used on small devices with severe constraints on power, memory, and processing resources, creating constrained-node networks.  This document provides a number of basic terms that have been useful in the standardization work for constrained-node networks.</t></abstract>
</front>
<seriesInfo name='RFC' value='7228'/>
<seriesInfo name='DOI' value='10.17487/RFC7228'/>
</reference>



<reference anchor="I-D.ietf-cbor-cddl">
<front>
<title>Concise data definition language (CDDL): a notational convention to express CBOR and JSON data structures</title>

<author initials='H' surname='Birkholz' fullname='Henk Birkholz'>
    <organization />
</author>

<author initials='C' surname='Vigano' fullname='Christoph Vigano'>
    <organization />
</author>

<author initials='C' surname='Bormann' fullname='Carsten Bormann'>
    <organization />
</author>

<date month='August' day='23' year='2018' />

<abstract><t>This document proposes a notational convention to express CBOR data structures (RFC 7049).  Its main goal is to provide an easy and unambiguous way to express structures for protocol messages and data formats that use CBOR or JSON.</t></abstract>

</front>

<seriesInfo name='Internet-Draft' value='draft-ietf-cbor-cddl-05' />
<format type='TXT'
        target='http://www.ietf.org/internet-drafts/draft-ietf-cbor-cddl-05.txt' />
</reference>



<reference anchor="I-D.birkholz-tuda">
<front>
<title>Time-Based Uni-Directional Attestation</title>

<author initials='A' surname='Fuchs' fullname='Andreas Fuchs'>
    <organization />
</author>

<author initials='H' surname='Birkholz' fullname='Henk Birkholz'>
    <organization />
</author>

<author initials='I' surname='McDonald' fullname='Ira McDonald'>
    <organization />
</author>

<author initials='C' surname='Bormann' fullname='Carsten Bormann'>
    <organization />
</author>

<date month='March' day='13' year='2017' />

<abstract><t>This memo documents the method and bindings used to conduct time- based uni-directional attestation between distinguishable endpoints over the network.</t></abstract>

</front>

<seriesInfo name='Internet-Draft' value='draft-birkholz-tuda-04' />
<format type='TXT'
        target='http://www.ietf.org/internet-drafts/draft-birkholz-tuda-04.txt' />
</reference>



<reference anchor="I-D.ietf-sacm-rolie-softwaredescriptor">
<front>
<title>Definition of the ROLIE Software Descriptor Extension</title>

<author initials='S' surname='Banghart' fullname='Stephen Banghart'>
    <organization />
</author>

<author initials='D' surname='Waltermire' fullname='David Waltermire'>
    <organization />
</author>

<date month='July' day='15' year='2018' />

<abstract><t>This document uses the "information-type" extension point as defined in the Resource-Oriented Lightweight Information Exchange (ROLIE) [RFC8322] Section 7.1.2 to better support Software Record and Software Inventory use cases.  This specification registers a new ROLIE information-type, "software-descriptor", that allows for the categorization of information relevant to software description activities and formats.  In particular, the usage of the ISO 19770-2:2015 (SWID Tag) and the Concise SWID (COSWID) formats in ROLIE are standardized.  Additionally, this document discusses requirements and usage of other ROLIE elements in order to best syndicate software description information.</t></abstract>

</front>

<seriesInfo name='Internet-Draft' value='draft-ietf-sacm-rolie-softwaredescriptor-03' />
<format type='TXT'
        target='http://www.ietf.org/internet-drafts/draft-ietf-sacm-rolie-softwaredescriptor-03.txt' />
</reference>



<reference anchor="I-D.ietf-sacm-terminology">
<front>
<title>Security Automation and Continuous Monitoring (SACM) Terminology</title>

<author initials='H' surname='Birkholz' fullname='Henk Birkholz'>
    <organization />
</author>

<author initials='J' surname='Lu' fullname='Jarrett Lu'>
    <organization />
</author>

<author initials='J' surname='Strassner' fullname='John Strassner'>
    <organization />
</author>

<author initials='N' surname='Cam-Winget' fullname='Nancy Cam-Winget'>
    <organization />
</author>

<author initials='A' surname='Montville' fullname='Adam Montville'>
    <organization />
</author>

<date month='June' day='13' year='2018' />

<abstract><t>This memo documents terminology used in the documents produced by SACM (Security Automation and Continuous Monitoring).</t></abstract>

</front>

<seriesInfo name='Internet-Draft' value='draft-ietf-sacm-terminology-15' />
<format type='TXT'
        target='http://www.ietf.org/internet-drafts/draft-ietf-sacm-terminology-15.txt' />
</reference>




    </references>


<section anchor="coswid-attributes-for-firmware-label-60" title="CoSWID Attributes for Firmware (label 60)">

<t>NOTE: this appendix is subject to revision based potential convergence of:</t>

<t><list style="symbols">
  <t>draft-moran-suit-manifest, and</t>
  <t>draft-birkholz-suit-coswid-manifest</t>
</list></t>

<t>The ISO-19770-2:2015 specification of SWID tags assumes the existence of a file system a software
component is installed and stored in. In the case of constrained-node networks
<xref target="RFC7228"/> or network equipment this assumption might not apply. Concise software instances in the
form of (modular) firmware are often stored directly on a block device that is a hardware component
of the constrained-node or network equipment. Multiple differentiable block devices or segmented
block devices that contain parts of modular firmware components (potentially each with their own
instance version) are already common at the time of this writing.</t>

<t>The optional attributes that annotate a firmware package address specific characteristics of pieces
of firmware stored directly on a block-device in contrast to software deployed in a file-system.
In essence, trees of relative path-elements expressed by the directory and file structure in CoSWID
tags are typically unable to represent the location of a firmware on a constrained-node (small
thing). The composite nature of firmware and also the actual composition of small things require a
set of attributes to address the identification of the correct component in a composite thing for
each individual piece of firmware. A single component also potentially requires a number of distinct
firmware parts that might depend on each other (versions). These dependencies can be limited to the
scope of the component itself or extend to the scope of a larger composite device. In addition, it
might not be possible (or feasible) to store a CoSWID tag document (permanently) on a small thing
along with the corresponding piece of firmware.</t>

<t>To address the specific characteristics of firmware, the extension points <spanx style="verb">$$payload-extension</spanx> and <spanx style="verb">$$evidence-extension</spanx> are
used to allow for an additional type of resource description—firmware-entry—thereby increasing
the self-descriptiveness and flexibility of CoSWID. The optional use of the extension points
<spanx style="verb">$$payload-extension</spanx> and <spanx style="verb">$$evidence-extension</spanx> in respect to firmware MUST adhere to the following CDDL data definition.</t>

<figure><artwork type="CDDL"><![CDATA[
<CODE BEGINS>
$$payload-extension  //= (suit.manifest-entry,)
$$evidence-extension  //= (suit.manifest-entry,)

suit-manifest = {
  suit.manifest-version,
  suit.digest-info,
  suit.text-reference,
  suit.nonce,
  suit.sequence-number,
  ? suit.pre-condition,
  ? suit.post-condition,
  ? suit.directives,
  ? suit.resources,
  ? suit.processors,
  ? suit.targets,
  ? suit.extensions,
}

suit.manifest-entry = (59: suit-manifest / [ 2* suit-manifest ] )
suit.manifest-version = (60: 1)
suit.digest-info = (61: [ suit.digest-algorithm,
                          ? suit.digest-parameters,
                        ]
                   )
suit.digest-algorithm = uint
suit.digest-parameters = bytes
suit.text-reference = (62: bytes)
suit.nonce = (63: bytes)
suit.sequence-number = (64: uint)
suit.pre-condition = (suit.id-condition // suit.time-condition // suit.image-condition // suit.custom-condition)
suit.post-condition = (suit.image-condition // suit.custom-condition)
suit.id-condition = (65: [ + [ suit.vendor / suit.class / suit.device,
                               suit.uuid,
                             ]
                         ]
                    ) 
suit.vendor = 0
suit.class = 1
suit.device = 2
suit.uuid = bstr .size 16
suit.time-condition = (66: [ + [ suit.install-after / suit.best-before,
                                 suit.timestamp,
                               ]
                           ]
                      )
suit.install-after = 0
suit.best-before = 1
suit.timestamp = uint .size 8
suit.image-condition = (67: [ + [ suit.current-content / suit.not-current-content,
                                  suit.storage-identifier,
                                  ? suit.digest,
                                ]
                            ]
                       )
suit.current-content = 0
suit.not-current-content = 1
suit.digest = bytes
suit.storage-identifier = bytes
suit.custom-condition = (68: [ nint,
                               suit.condition-parameters,
                             ]
                        )
suit.condition-parameters = bytes
suit.directives = (69: { + int => bytes } )
suit.resources = (70: [ + [ suit.resource-type,
                            suit.uri-list,
                            suit.digest,
                            suit.onode,
                            ? suit.size,
                          ]
                      ] 
                 )
suit.resource-type = suit.payload / suit.dependency / suit.key / suit.alias
suit.payload = 0
suit.dependency = 1
suit.key = 2
suit.alias = 3
suit.uri-list = { + int => text }
suit.size = uint
suit.onode = bytes
suit.processors = (71: [ + [ suit.decrypt / suit.decompress / suit.undiff / suit.relocate / suit.unrelocate,
                             suit.parameters,
                             suit.inode,
                             suit.onode,
                           ]
                       ]
                  )
suit.decrypt = 0
suit.decompress = 1
suit.undiff = 2
suit.relocate = 3
suit.unrelocate = 4
suit.parameters = bytes
suit.inode = bytes
suit.targets = (72: [ + [ suit.component-id,
                          suit.storage-identifier,
                          suit.inode,
                          ? suit.encoding,
                        ]
                    ]
                )
suit.component-id = [ + bytes ]
suit.encoding = bytes
suit.extensions = (73: { + int => bytes } )
<CODE ENDS>
]]></artwork></figure>

<t>The members of the firmware group that constitutes the content of the firmware-entry is
based on the metadata about firmware Described in <xref target="RFC4108"/>. As with every semantic
differentiation that is supported by the resource-collection type, the use of firmware-entry is
optional. It is REQUIRED not to instantiate more than one firmware-entry, as the firmware group is
used in a map and therefore only allows for unique labels.</t>

<t>The optional cms-firmware-package member allows to include the actual firmware in the CoSWID tag
that also expresses its metadata as a byte-string. This option enables a CoSWID tag to be used as a
container or wrapper that composes both firmware and its metadata in a single document (which again
can be signed, encrypted and/or compressed). In consequence, a CoSWID tag about firmware can be
conveyed as an identifying document across endpoints or used as a reference integrity
measurement as usual. Alternatively, it can also convey an actual piece of firmware, serve its
intended purpose as a SWID tag and then - due to the lack of a location to store it - be discarded.</t>

</section>
<section anchor="signed-concise-swid-tags-using-cose" title="Signed Concise SWID Tags using COSE">

<t>SWID tags, as defined in the ISO-19770-2:2015 XML schema, can include cryptographic signatures to
protect the integrity of the SWID tag. In general, tags are signed by the tag creator (typically,
although not exclusively, the vendor of the software component that the SWID tag identifies).
Cryptographic signatures can make any modification of the tag detectable, which is especially
important if the integrity of the tag is important, such as when the tag is providing reference
integrity measurements for files.</t>

<t>The ISO-19770-2:2015 XML schema uses XML DSIG to support cryptographic signatures. CoSWID tags
require a different signature scheme than this. COSE (CBOR Object Signing and Encryption) provides the required mechanism <xref target="RFC8152"/>. Concise SWID can be wrapped in a COSE Single Signer Data Object
(cose-sign1) that contains a single signature. The following CDDL defines a more restrictive subset
of header attributes allowed by COSE tailored to suit the requirements of Concise SWID.</t>

<figure><artwork type="CDDL"><![CDATA[
<CODE BEGINS>
signed-coswid = #6.997(COSE-Sign1-coswid) ; see TBS7 in current COSE I-D

label = int / tstr  ; see COSE I-D 1.4.
values = any        ; see COSE I-D 1.4.

unprotected-signed-coswid-header = {
    1 => int,                   ; algorithm identifier
    3 => "application/coswid",  ; request for CoAP IANA registry to become an int
    * label => values,
}

protected-signed-coswid-header = {
    4 => bstr,                  ; key identifier
    * label => values,
}

COSE-Sign1-coswid = [
    protected: bstr .cbor protected-signed-coswid-header,
    unprotected: unprotected-signed-coswid-header,
    payload: bstr .cbor concise-software-identity,
    signature: bstr,
]
<CODE ENDS>
]]></artwork></figure>
<!--  LocalWords:  SWID verifier TPM filesystem discoverable
 -->

</section>


  </back>

<!-- ##markdown-source:
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
a3WVoofkyQyAc/vbYCp8WknAQXboOiFXDPaVcBDXEY5t4mzLCbmIUhaEJCeg
7drvlfkBPm3tXR+ZX+u82cH/RgcOztZLrNFJ73zTwcWC6zphj+xIwfrvrFXW
lK9Qe7u71Et+UXH02Z9j3cRr1lpHyZR9H5gXaBQbbOQcHDy2eFyv8zD3XPk4
/VNVhz2/gFzPqyDXa5eQ6wU15HrdReR6XVXkel4ZucZ3Xh25nkti4R4EdeR6
3YXkOirJ9YQgcbySQ0zTi770ol4jz0WvI5mQtgrSCfW+Op9QL9rBnjpTHPVc
jqNeR5Ij+XSDvrrXqbDuNTXWvQ6Vda9DZy2DqQa616GC7jkdtDdMuPGeFlog
3aEe3oylrCDuhRrinqci7jkdscw4ULRvmnaoapeZeSryzTMKlOQ9qyWXLnxF
+T1nD1Xl8sVjzmrqZXLRvbKnl3K59JrJXBTf9fwovtthvQt/88BdV37P3fm9
xqVvB23Rfz1mGvN9347bqO+ehn175KLXCPzuSeS31yQW8GrstwzdCri4dw6t
kIteO+ZCaWUr6ELh4qIuekHYRe+BuIv2e3cKXORFryP0wp5uir0IfmnwhSKQ
RF8oXWdv1F4r/iJ44hbIB8bJKV+PQ52iiuJJu7xnr7u+Z+8rCnz2Hqjw2XtU
ic/eX1vjs3dvkc9eR43OXrtIZy9MUvBH81v4f0Z/p0EgOHf8+51ta3MIb2qK
/x7brcHb7cFnH3XubnB76zZHghfyyDlwEVj5KTTD+nX3TH3DUlxvX/+xfx9/
5aecOOfRn31UgPA6m1DyQBK+8TkU/zlrzPTZxpKuvftquvbuL+ra21DVNXxa
GSz2q5lNOPVM80s8AOwMCvcBBfVlE/iq+SiuVjOEzS4IAksgzrbhNJ1k6MS4
izVIoOte1OrtudlvP9UOn5sh8Ht+n8/NAXAX0u1zcwigoJ6xn+ODp4e9dp7I
3l9ktO49zmrd+0qzde/r7da9TsN1b7PlutcyXfe6bde9TuN1r2297j3KfL3x
TLXt1xuafmk/9yDcMmH3umzYvbYRu7cx5V1vQ867XpD0jlNMNU+L3arutx9x
6o1nVpRZkSxDXz43Lj8XHhmXngt+aXYuPEGN5FzwyMvLBcfE9vJ8D1HedvN8
H+9U7uf50KMd8unzAyY2+hPOUDunX4efWvceNp3XOps1ryM8o019VG+DQqrX
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

-->

</rfc>

