draft-ietf-sacm-coswid-14.txt | draft-ietf-sacm-coswid-15.txt | |||
---|---|---|---|---|
SACM Working Group H. Birkholz | SACM Working Group H. Birkholz | |||
Internet-Draft Fraunhofer SIT | Internet-Draft Fraunhofer SIT | |||
Intended status: Standards Track J. Fitzgerald-McKay | Intended status: Standards Track J. Fitzgerald-McKay | |||
Expires: November 1, 2020 Department of Defense | Expires: 2 November 2020 Department of Defense | |||
C. Schmidt | C. Schmidt | |||
The MITRE Corporation | The MITRE Corporation | |||
D. Waltermire | D. Waltermire | |||
NIST | NIST | |||
April 30, 2020 | 1 May 2020 | |||
Concise Software Identification Tags | Concise Software Identification Tags | |||
draft-ietf-sacm-coswid-14 | draft-ietf-sacm-coswid-15 | |||
Abstract | Abstract | |||
ISO/IEC 19770-2:2015 Software Identification (SWID) tags provide an | ISO/IEC 19770-2:2015 Software Identification (SWID) tags provide an | |||
extensible XML-based structure to identify and describe individual | extensible XML-based structure to identify and describe individual | |||
software components, patches, and installation bundles. SWID tag | software components, patches, and installation bundles. SWID tag | |||
representations can be too large for devices with network and storage | representations can be too large for devices with network and storage | |||
constraints. This document defines a concise representation of SWID | constraints. This document defines a concise representation of SWID | |||
tags: Concise SWID (CoSWID) tags. CoSWID supports the same features | tags: Concise SWID (CoSWID) tags. CoSWID supports the same features | |||
as SWID tags, as well as additional semantics that allow CoSWIDs to | as SWID tags, as well as additional semantics that allow CoSWIDs to | |||
skipping to change at page 1, line 43 ¶ | skipping to change at page 1, line 43 ¶ | |||
Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
Drafts is at https://datatracker.ietf.org/drafts/current/. | Drafts is at https://datatracker.ietf.org/drafts/current/. | |||
Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
This Internet-Draft will expire on November 1, 2020. | This Internet-Draft will expire on 2 November 2020. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2020 IETF Trust and the persons identified as the | Copyright (c) 2020 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents | Provisions Relating to IETF Documents (https://trustee.ietf.org/ | |||
(https://trustee.ietf.org/license-info) in effect on the date of | license-info) in effect on the date of publication of this document. | |||
publication of this document. Please review these documents | Please review these documents carefully, as they describe your rights | |||
carefully, as they describe your rights and restrictions with respect | and restrictions with respect to this document. Code Components | |||
to this document. Code Components extracted from this document must | extracted from this document must include Simplified BSD License text | |||
include Simplified BSD License text as described in Section 4.e of | as described in Section 4.e of the Trust Legal Provisions and are | |||
the Trust Legal Provisions and are provided without warranty as | provided without warranty as described in the Simplified BSD License. | |||
described in the Simplified BSD License. | ||||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
1.1. The SWID and CoSWID Tag Lifecycle . . . . . . . . . . . . 4 | 1.1. The SWID and CoSWID Tag Lifecycle . . . . . . . . . . . . 4 | |||
1.2. Concise SWID Format . . . . . . . . . . . . . . . . . . . 7 | 1.2. Concise SWID Format . . . . . . . . . . . . . . . . . . . 7 | |||
1.3. Requirements Notation . . . . . . . . . . . . . . . . . . 7 | 1.3. Requirements Notation . . . . . . . . . . . . . . . . . . 7 | |||
2. Concise SWID Data Definition . . . . . . . . . . . . . . . . 7 | 2. Concise SWID Data Definition . . . . . . . . . . . . . . . . 7 | |||
2.1. Character Encoding . . . . . . . . . . . . . . . . . . . 8 | 2.1. Character Encoding . . . . . . . . . . . . . . . . . . . 8 | |||
2.2. Concise SWID Extensions . . . . . . . . . . . . . . . . . 9 | 2.2. Concise SWID Extensions . . . . . . . . . . . . . . . . . 9 | |||
2.3. The concise-swid-tag Map . . . . . . . . . . . . . . . . 11 | 2.3. The concise-swid-tag Map . . . . . . . . . . . . . . . . 11 | |||
2.4. concise-swid-tag Co-constraints . . . . . . . . . . . . . 15 | 2.4. concise-swid-tag Co-constraints . . . . . . . . . . . . . 16 | |||
2.5. The global-attributes Group . . . . . . . . . . . . . . . 16 | 2.5. The global-attributes Group . . . . . . . . . . . . . . . 16 | |||
2.6. The entity-entry Map . . . . . . . . . . . . . . . . . . 17 | 2.6. The entity-entry Map . . . . . . . . . . . . . . . . . . 17 | |||
2.7. The link-entry Map . . . . . . . . . . . . . . . . . . . 18 | 2.7. The link-entry Map . . . . . . . . . . . . . . . . . . . 19 | |||
2.8. The software-meta-entry Map . . . . . . . . . . . . . . . 22 | 2.8. The software-meta-entry Map . . . . . . . . . . . . . . . 23 | |||
2.9. The Resource Collection Definition . . . . . . . . . . . 26 | 2.9. The Resource Collection Definition . . . . . . . . . . . 26 | |||
2.9.1. The hash-entry Array . . . . . . . . . . . . . . . . 26 | 2.9.1. The hash-entry Array . . . . . . . . . . . . . . . . 26 | |||
2.9.2. The resource-collection Group . . . . . . . . . . . . 26 | 2.9.2. The resource-collection Group . . . . . . . . . . . . 26 | |||
2.9.3. The payload-entry Map . . . . . . . . . . . . . . . . 29 | 2.9.3. The payload-entry Map . . . . . . . . . . . . . . . . 30 | |||
2.9.4. The evidence-entry Map . . . . . . . . . . . . . . . 30 | 2.9.4. The evidence-entry Map . . . . . . . . . . . . . . . 30 | |||
2.10. Full CDDL Definition . . . . . . . . . . . . . . . . . . 30 | 2.10. Full CDDL Definition . . . . . . . . . . . . . . . . . . 31 | |||
3. Determining the Type of CoSWID . . . . . . . . . . . . . . . 36 | 3. Determining the Type of CoSWID . . . . . . . . . . . . . . . 37 | |||
4. CoSWID Indexed Label Values . . . . . . . . . . . . . . . . . 37 | 4. CoSWID Indexed Label Values . . . . . . . . . . . . . . . . . 37 | |||
4.1. Version Scheme . . . . . . . . . . . . . . . . . . . . . 37 | 4.1. Version Scheme . . . . . . . . . . . . . . . . . . . . . 37 | |||
4.2. Entity Role Values . . . . . . . . . . . . . . . . . . . 38 | 4.2. Entity Role Values . . . . . . . . . . . . . . . . . . . 39 | |||
4.3. Link Ownership Values . . . . . . . . . . . . . . . . . . 39 | 4.3. Link Ownership Values . . . . . . . . . . . . . . . . . . 41 | |||
4.4. Link Rel Values . . . . . . . . . . . . . . . . . . . . . 40 | 4.4. Link Rel Values . . . . . . . . . . . . . . . . . . . . . 42 | |||
4.5. Link Use Values . . . . . . . . . . . . . . . . . . . . . 42 | 4.5. Link Use Values . . . . . . . . . . . . . . . . . . . . . 44 | |||
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 43 | 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 44 | |||
5.1. CoSWID Items Registry . . . . . . . . . . . . . . . . . . 43 | 5.1. CoSWID Items Registry . . . . . . . . . . . . . . . . . . 44 | |||
5.2. SWID/CoSWID Value Registries . . . . . . . . . . . . . . 46 | 5.2. SWID/CoSWID Value Registries . . . . . . . . . . . . . . 47 | |||
5.2.1. Registration Proceedures . . . . . . . . . . . . . . 46 | 5.2.1. Registration Proceedures . . . . . . . . . . . . . . 48 | |||
5.2.2. Private Use of Index and Name Values . . . . . . . . 46 | 5.2.2. Private Use of Index and Name Values . . . . . . . . 48 | |||
5.2.3. Expert Review Guidelines . . . . . . . . . . . . . . 47 | 5.2.3. Expert Review Guidelines . . . . . . . . . . . . . . 48 | |||
5.2.4. SWID/CoSWID Version Scheme Value Registry . . . . . . 47 | 5.2.4. SWID/CoSWID Version Scheme Value Registry . . . . . . 49 | |||
5.2.5. SWID/CoSWID Entity Role Value Registry . . . . . . . 49 | 5.2.5. SWID/CoSWID Entity Role Value Registry . . . . . . . 50 | |||
5.2.6. SWID/CoSWID Link Ownership Value Registry . . . . . . 50 | 5.2.6. SWID/CoSWID Link Ownership Value Registry . . . . . . 52 | |||
5.2.7. SWID/CoSWID Link Relationship Value Registry . . . . 51 | 5.2.7. SWID/CoSWID Link Relationship Value Registry . . . . 53 | |||
5.2.8. SWID/CoSWID Link Use Value Registry . . . . . . . . . 53 | 5.2.8. SWID/CoSWID Link Use Value Registry . . . . . . . . . 54 | |||
5.3. swid+cbor Media Type Registration . . . . . . . . . . . . 54 | ||||
5.4. CoAP Content-Format Registration . . . . . . . . . . . . 55 | 5.3. swid+cbor Media Type Registration . . . . . . . . . . . . 55 | |||
5.5. CBOR Tag Registration . . . . . . . . . . . . . . . . . . 55 | 5.4. CoAP Content-Format Registration . . . . . . . . . . . . 57 | |||
5.6. URI Scheme Registrations . . . . . . . . . . . . . . . . 55 | 5.5. CBOR Tag Registration . . . . . . . . . . . . . . . . . . 57 | |||
5.6.1. "swid" URI Scheme Registration . . . . . . . . . . . 56 | 5.6. URI Scheme Registrations . . . . . . . . . . . . . . . . 57 | |||
5.6.2. "swidpath" URI Scheme Registration . . . . . . . . . 56 | 5.6.1. "swid" URI Scheme Registration . . . . . . . . . . . 57 | |||
5.7. CoSWID Model for use in SWIMA Registration . . . . . . . 57 | 5.6.2. "swidpath" URI Scheme Registration . . . . . . . . . 58 | |||
6. Security Considerations . . . . . . . . . . . . . . . . . . . 58 | 5.7. CoSWID Model for use in SWIMA Registration . . . . . . . 59 | |||
7. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 59 | 6. Security Considerations . . . . . . . . . . . . . . . . . . . 60 | |||
8. Change Log . . . . . . . . . . . . . . . . . . . . . . . . . 60 | 7. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 61 | |||
9. References . . . . . . . . . . . . . . . . . . . . . . . . . 65 | 8. Change Log . . . . . . . . . . . . . . . . . . . . . . . . . 62 | |||
9.1. Normative References . . . . . . . . . . . . . . . . . . 65 | 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 67 | |||
9.2. Informative References . . . . . . . . . . . . . . . . . 67 | 9.1. Normative References . . . . . . . . . . . . . . . . . . 67 | |||
Appendix A. Signed Concise SWID Tags using COSE . . . . . . . . 68 | 9.2. Informative References . . . . . . . . . . . . . . . . . 69 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 69 | Appendix A. Signed Concise SWID Tags using COSE . . . . . . . . 70 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 71 | ||||
1. Introduction | 1. Introduction | |||
SWID tags, as defined in ISO-19770-2:2015 [SWID], provide a | SWID tags, as defined in ISO-19770-2:2015 [SWID], provide a | |||
standardized XML-based record format that identifies and describes a | standardized XML-based record format that identifies and describes a | |||
specific release of software, a patch, or an installation bundle, | specific release of software, a patch, or an installation bundle, | |||
which are referred to as software components in this document. | which are referred to as software components in this document. | |||
Different software components, and even different releases of a | Different software components, and even different releases of a | |||
particular software component, each have a different SWID tag record | particular software component, each have a different SWID tag record | |||
associated with them. SWID tags are meant to be flexible and able to | associated with them. SWID tags are meant to be flexible and able to | |||
express a broad set of metadata about a software component. | express a broad set of metadata about a software component. | |||
SWID tags are used to support a number of processes including but not | SWID tags are used to support a number of processes including but not | |||
limited to: | limited to: | |||
o Software Inventory Management, a part of a Software Asset | * Software Inventory Management, a part of a Software Asset | |||
Management [SAM] process, which requires an accurate list of | Management [SAM] process, which requires an accurate list of | |||
discernible deployed software components. | discernible deployed software components. | |||
o Vulnerability Assessment, which requires a semantic link between | * Vulnerability Assessment, which requires a semantic link between | |||
standardized vulnerability descriptions and software components | standardized vulnerability descriptions and software components | |||
installed on IT-assets [X.1520]. | installed on IT-assets [X.1520]. | |||
o Remote Attestation, which requires a link between reference | * Remote Attestation, which requires a link between reference | |||
integrity measurements (RIM) and security logs of measured | integrity measurements (RIM) and security logs of measured | |||
software components [I-D.birkholz-rats-tuda]. | software components [I-D.birkholz-rats-tuda]. | |||
While there are very few required fields in SWID tags, there are many | While there are very few required fields in SWID tags, there are many | |||
optional fields that support different uses. A SWID tag consisting | optional fields that support different uses. A SWID tag consisting | |||
of only required fields might be a few hundred bytes in size; | of only required fields might be a few hundred bytes in size; | |||
however, a tag containing many of the optional fields can be many | however, a tag containing many of the optional fields can be many | |||
orders of magnitude larger. Thus, real-world instances of SWID tags | orders of magnitude larger. Thus, real-world instances of SWID tags | |||
can be fairly large, and the communication of SWID tags in usage | can be fairly large, and the communication of SWID tags in usage | |||
scenarios, such as those described earlier, can cause a large amount | scenarios, such as those described earlier, can cause a large amount | |||
skipping to change at page 5, line 39 ¶ | skipping to change at page 5, line 37 ¶ | |||
v | | v | | |||
Software Software Software Software Software | Software Software Software Software Software | |||
Deployment -> Installation -> Patching -> Upgrading -> Removal | Deployment -> Installation -> Patching -> Upgrading -> Removal | |||
Corpus Primary Primary xPrimary xPrimary | Corpus Primary Primary xPrimary xPrimary | |||
Supplemental Supplemental Supplemental xSupplemental xSuplemental | Supplemental Supplemental Supplemental xSupplemental xSuplemental | |||
Patch xPatch | Patch xPatch | |||
Primary | Primary | |||
Supplemental | Supplemental | |||
Figure 1: Use of Tag Types in the Software Lifecycle | Figure 1: Use of Tag Types in the Software Lifecycle | |||
Figure 1 illustrates the steps in the software lifecycle and the | Figure 1 illustrates the steps in the software lifecycle and the | |||
relationships among those lifecycle events supported by the four | relationships among those lifecycle events supported by the four | |||
types of SWID and CoSWID tags. The figure identifies the types of | types of SWID and CoSWID tags. The figure identifies the types of | |||
tags that can be deployed and previously deployed tags that are | tags that can be deployed and previously deployed tags that are | |||
typically removed (indicated by an "x" prefix) at each lifecycle | typically removed (indicated by an "x" prefix) at each lifecycle | |||
stage, as follows: | stage, as follows: | |||
* Software Deployment. Before the software component is | - Software Deployment. Before the software component is | |||
installed (i.e., pre-installation), and while the product is | installed (i.e., pre-installation), and while the product is | |||
being deployed, a corpus tag provides information about the | being deployed, a corpus tag provides information about the | |||
installation files and distribution media (e.g., CD/DVD, | installation files and distribution media (e.g., CD/DVD, | |||
distribution package). | distribution package). | |||
* Software Installation. A primary tag will be installed with | - Software Installation. A primary tag will be installed with | |||
the software component (or subsequently created) to uniquely | the software component (or subsequently created) to uniquely | |||
identify and describe the software component. Supplemental | identify and describe the software component. Supplemental | |||
tags are created to augment primary tags with additional site- | tags are created to augment primary tags with additional site- | |||
specific or extended information. While not illustrated in the | specific or extended information. While not illustrated in the | |||
figure, patch tags can also be installed during software | figure, patch tags can also be installed during software | |||
installation to provide information about software fixes | installation to provide information about software fixes | |||
deployed along with the base software installation. | deployed along with the base software installation. | |||
* Software Patching. A new patch tag is provided, when a patch | - Software Patching. A new patch tag is provided, when a patch | |||
is applied to the software component, supplying details about | is applied to the software component, supplying details about | |||
the patch and its dependencies. While not illustrated in the | the patch and its dependencies. While not illustrated in the | |||
figure, a corpus tag can also provide information about the | figure, a corpus tag can also provide information about the | |||
patch installer and patching dependencies that need to be | patch installer and patching dependencies that need to be | |||
installed before the patch. | installed before the patch. | |||
* Software Upgrading. As a software component is upgraded to a | - Software Upgrading. As a software component is upgraded to a | |||
new version, new primary and supplemental tags replace existing | new version, new primary and supplemental tags replace existing | |||
tags, enabling timely and accurate tracking of updates to | tags, enabling timely and accurate tracking of updates to | |||
software inventory. While not illustrated in the figure, a | software inventory. While not illustrated in the figure, a | |||
corpus tag can also provide information about the upgrade | corpus tag can also provide information about the upgrade | |||
installer and dependencies that need to be installed before the | installer and dependencies that need to be installed before the | |||
upgrade. | upgrade. | |||
* Software Removal. Upon removal of the software component, | - Software Removal. Upon removal of the software component, | |||
relevant SWID tags are removed. This removal event can trigger | relevant SWID tags are removed. This removal event can trigger | |||
timely updates to software inventory reflecting the removal of | timely updates to software inventory reflecting the removal of | |||
the product and any associated patch or supplemental tags. | the product and any associated patch or supplemental tags. | |||
As illustrated in the figure, supplemental tags can be associated | As illustrated in the figure, supplemental tags can be associated | |||
with any corpus, primary, or patch tag to provide additional metadata | with any corpus, primary, or patch tag to provide additional metadata | |||
about an installer, installed software, or installed patch | about an installer, installed software, or installed patch | |||
respectively. | respectively. | |||
Understanding the use of CoSWIDs in the software lifecycle provides a | Understanding the use of CoSWIDs in the software lifecycle provides a | |||
skipping to change at page 9, line 13 ¶ | skipping to change at page 9, line 17 ¶ | |||
data type (see [W3C.REC-xmlschema-2-20041028] section 3.3.4) to | data type (see [W3C.REC-xmlschema-2-20041028] section 3.3.4) to | |||
ensure compatibility with the SWID specification where these names | ensure compatibility with the SWID specification where these names | |||
are used. | are used. | |||
2.2. Concise SWID Extensions | 2.2. Concise SWID Extensions | |||
The CoSWID data definition contains two features that are not | The CoSWID data definition contains two features that are not | |||
included in the SWID data definition on which it is based. These | included in the SWID data definition on which it is based. These | |||
features are: | features are: | |||
o The explicit definition of types for some attributes in the ISO- | * The explicit definition of types for some attributes in the ISO- | |||
19770-2:2015 XML representation that are typically represented by | 19770-2:2015 XML representation that are typically represented by | |||
the "any attribute" in the SWID model. These are covered in | the "any attribute" in the SWID model. These are covered in | |||
Section 2.5. | Section 2.5. | |||
o The inclusion of extension points in the CoSWID data definition | * The inclusion of extension points in the CoSWID data definition | |||
using CDDL sockets (see [RFC8610] section 3.9). The use of CDDL | using CDDL sockets (see [RFC8610] section 3.9). The use of CDDL | |||
sockets allow for well-formed extensions to be defined in | sockets allow for well-formed extensions to be defined in | |||
supplementary CDDL descriptions that support additional uses of | supplementary CDDL descriptions that support additional uses of | |||
CoSWID tags that go beyond the original scope of ISO-19770-2:2015 | CoSWID tags that go beyond the original scope of ISO-19770-2:2015 | |||
tags. This extension mechanism can also be used to update the | tags. This extension mechanism can also be used to update the | |||
CoSWID format as revisions to ISO-19770-2 are published. | CoSWID format as revisions to ISO-19770-2 are published. | |||
The following CDDL sockets (extension points) are defined in this | The following CDDL sockets (extension points) are defined in this | |||
document, which allow the addition of new information structures to | document, which allow the addition of new information structures to | |||
their respective CDDL groups. | their respective CDDL groups. | |||
+---------------------+---------------------------+---------------+ | +---------------------+---------------------------+---------------+ | |||
| Map Name | CDDL Socket | Defined in | | | Map Name | CDDL Socket | Defined in | | |||
+---------------------+---------------------------+---------------+ | +=====================+===========================+===============+ | |||
| concise-swid-tag | $$coswid-extension | Section 2.3 | | | concise-swid-tag | $$coswid-extension | Section 2.3 | | |||
| | | | | +---------------------+---------------------------+---------------+ | |||
| entity-entry | $$entity-extension | Section 2.6 | | | entity-entry | $$entity-extension | Section 2.6 | | |||
| | | | | +---------------------+---------------------------+---------------+ | |||
| link-entry | $$link-extension | Section 2.7 | | | link-entry | $$link-extension | Section 2.7 | | |||
| | | | | +---------------------+---------------------------+---------------+ | |||
| software-meta-entry | $$software-meta-extension | Section 2.8 | | | software-meta-entry | $$software-meta-extension | Section 2.8 | | |||
| | | | | +---------------------+---------------------------+---------------+ | |||
| file-entry | $$file-extension | Section 2.9.2 | | | file-entry | $$file-extension | Section 2.9.2 | | |||
| | | | | +---------------------+---------------------------+---------------+ | |||
| directory-entry | $$directory-extension | Section 2.9.2 | | | directory-entry | $$directory-extension | Section 2.9.2 | | |||
| | | | | +---------------------+---------------------------+---------------+ | |||
| process-entry | $$process-extension | Section 2.9.2 | | | process-entry | $$process-extension | Section 2.9.2 | | |||
| | | | | +---------------------+---------------------------+---------------+ | |||
| resource-entry | $$resource-extension | Section 2.9.2 | | | resource-entry | $$resource-extension | Section 2.9.2 | | |||
| | | | | +---------------------+---------------------------+---------------+ | |||
| payload-entry | $$payload-extension | Section 2.9.3 | | | payload-entry | $$payload-extension | Section 2.9.3 | | |||
| | | | | +---------------------+---------------------------+---------------+ | |||
| evidence-entry | $$evidence-extension | Section 2.9.4 | | | evidence-entry | $$evidence-extension | Section 2.9.4 | | |||
+---------------------+---------------------------+---------------+ | +---------------------+---------------------------+---------------+ | |||
Table 1: CoSWID CDDL Group Extension Points | Table 1: CoSWID CDDL Group Extension Points | |||
The CoSWID Items Registry defined in Section 5.1 provides a | The CoSWID Items Registry defined in Section 5.1 provides a | |||
registration mechanism allowing new items, and their associated index | registration mechanism allowing new items, and their associated index | |||
values, to be added to the CoSWID model through the use of the CDDL | values, to be added to the CoSWID model through the use of the CDDL | |||
sockets described in the table above. This registration mechanism | sockets described in the table above. This registration mechanism | |||
provides for well-known index values for data items in CoSWID | provides for well-known index values for data items in CoSWID | |||
extensions, allowing these index values to be recognized by | extensions, allowing these index values to be recognized by | |||
implementations supporting a given extension. | implementations supporting a given extension. | |||
The following additional CDDL sockets are defined in this document to | The following additional CDDL sockets are defined in this document to | |||
allow for adding new values to corresponding type-choices (i.e. to | allow for adding new values to corresponding type-choices (i.e. to | |||
represent enumerations) via custom CDDL data definitions. | represent enumerations) via custom CDDL data definitions. | |||
+------------------+-----------------+-------------+ | +------------------+-----------------+-------------+ | |||
| Enumeration Name | CDDL Socket | Defined in | | | Enumeration Name | CDDL Socket | Defined in | | |||
+------------------+-----------------+-------------+ | +==================+=================+=============+ | |||
| version-scheme | $version-scheme | Section 4.1 | | | version-scheme | $version-scheme | Section 4.1 | | |||
| | | | | +------------------+-----------------+-------------+ | |||
| role | $role | Section 4.2 | | | role | $role | Section 4.2 | | |||
| | | | | +------------------+-----------------+-------------+ | |||
| ownership | $ownership | Section 4.3 | | | ownership | $ownership | Section 4.3 | | |||
| | | | | +------------------+-----------------+-------------+ | |||
| rel | $rel | Section 4.4 | | | rel | $rel | Section 4.4 | | |||
| | | | | +------------------+-----------------+-------------+ | |||
| use | $use | Section 4.5 | | | use | $use | Section 4.5 | | |||
+------------------+-----------------+-------------+ | +------------------+-----------------+-------------+ | |||
Table 2: CoSWID CDDL Enumeration Extension Points | Table 2: CoSWID CDDL Enumeration Extension Points | |||
A number of SWID/CoSWID value registries are also defined in | A number of SWID/CoSWID value registries are also defined in | |||
Section 5.2 that allow new values to be registered with IANA for the | Section 5.2 that allow new values to be registered with IANA for the | |||
enumerations above. This registration mechanism supports the | enumerations above. This registration mechanism supports the | |||
definition of new well-known index values and names for new | definition of new well-known index values and names for new | |||
enumeration values used by both SWID and CoSWID. This registration | enumeration values used by both SWID and CoSWID. This registration | |||
mechanism allows new standardized enumerated values to be shared | mechanism allows new standardized enumerated values to be shared | |||
between both specifications (and implementations) over time, and | between both specifications (and implementations) over time, and | |||
references to the IANA registries will be added to the next revision | references to the IANA registries will be added to the next revision | |||
of [SWID]. | of [SWID]. | |||
2.3. The concise-swid-tag Map | 2.3. The concise-swid-tag Map | |||
The CDDL data definition for the root concise-swid-tag map is as | The CDDL data definition for the root concise-swid-tag map is as | |||
follows and this rule and its constraints MUST be followed when | follows and this rule and its constraints MUST be followed when | |||
creating or validating a CoSWID tag: | creating or validating a CoSWID tag: | |||
concise-swid-tag = { | concise-swid-tag = { | |||
global-attributes, | global-attributes, | |||
tag-id => text / bstr .size 16, | tag-id => text / bstr .size 16, | |||
tag-version => integer, | tag-version => integer, | |||
? corpus => bool, | ? corpus => bool, | |||
? patch => bool, | ? patch => bool, | |||
? supplemental => bool, | ? supplemental => bool, | |||
software-name => text, | software-name => text, | |||
? software-version => text, | ? software-version => text, | |||
? version-scheme => $version-scheme, | ? version-scheme => $version-scheme, | |||
? media => text, | ? media => text, | |||
? software-meta => software-meta-entry / [ 2* software-meta-entry ], | ? software-meta => software-meta-entry / [ 2* software-meta-entry ], | |||
entity => entity-entry / [ 2* entity-entry ], | entity => entity-entry / [ 2* entity-entry ], | |||
? link => link-entry / [ 2* link-entry ], | ? link => link-entry / [ 2* link-entry ], | |||
? (( payload => payload-entry ) // ( evidence => evidence-entry )), | ? (( payload => payload-entry ) // ( evidence => evidence-entry )), | |||
* $$coswid-extension, | * $$coswid-extension, | |||
} | } | |||
tag-id = 0 | tag-id = 0 | |||
software-name = 1 | software-name = 1 | |||
entity = 2 | entity = 2 | |||
evidence = 3 | evidence = 3 | |||
link = 4 | link = 4 | |||
software-meta = 5 | software-meta = 5 | |||
payload = 6 | payload = 6 | |||
corpus = 8 | corpus = 8 | |||
patch = 9 | patch = 9 | |||
media = 10 | media = 10 | |||
supplemental = 11 | supplemental = 11 | |||
tag-version = 12 | tag-version = 12 | |||
software-version = 13 | software-version = 13 | |||
version-scheme = 14 | version-scheme = 14 | |||
$version-scheme /= multipartnumeric | $version-scheme /= multipartnumeric | |||
$version-scheme /= multipartnumeric-suffix | $version-scheme /= multipartnumeric-suffix | |||
$version-scheme /= alphanumeric | $version-scheme /= alphanumeric | |||
$version-scheme /= decimal | $version-scheme /= decimal | |||
$version-scheme /= semver | $version-scheme /= semver | |||
$version-scheme /= uint / text | $version-scheme /= uint / text | |||
multipartnumeric = 1 | multipartnumeric = 1 | |||
multipartnumeric-suffix = 2 | multipartnumeric-suffix = 2 | |||
alphanumeric = 3 | alphanumeric = 3 | |||
decimal = 4 | decimal = 4 | |||
semver = 16384 | semver = 16384 | |||
The following describes each member of the concise-swid-tag root map. | The following describes each member of the concise-swid-tag root map. | |||
o global-attributes: A list of items including an optional language | * global-attributes: A list of items including an optional language | |||
definition to support the processing of text-string values and an | definition to support the processing of text-string values and an | |||
unbounded set of any-attribute items. Described in Section 2.5. | unbounded set of any-attribute items. Described in Section 2.5. | |||
o tag-id (index 0): A 16 byte binary string or textual identifier | * tag-id (index 0): A 16 byte binary string or textual identifier | |||
uniquely referencing a software component. The tag identifier | uniquely referencing a software component. The tag identifier | |||
MUST be globally unique. If represented as a 16 byte binary | MUST be globally unique. If represented as a 16 byte binary | |||
string, the identifier MUST be a valid universally unique | string, the identifier MUST be a valid universally unique | |||
identifier as defined by [RFC4122]. There are no strict | identifier as defined by [RFC4122]. There are no strict | |||
guidelines on how this identifier is structured, but examples | guidelines on how this identifier is structured, but examples | |||
include a 16 byte GUID (e.g. class 4 UUID) [RFC4122], or a text | include a 16 byte GUID (e.g. class 4 UUID) [RFC4122], or a text | |||
string appended to a DNS domain name to ensure uniqueness across | string appended to a DNS domain name to ensure uniqueness across | |||
organizations. | organizations. | |||
o tag-version (index 12): An integer value that indicate the | * tag-version (index 12): An integer value that indicate the | |||
specific release revision of the tag. Typically, the initial | specific release revision of the tag. Typically, the initial | |||
value of this field is set to 0 and the value is monotonically | value of this field is set to 0 and the value is monotonically | |||
increased for subsequent tags produced for the same software | increased for subsequent tags produced for the same software | |||
component release. This value allows a CoSWID tag producer to | component release. This value allows a CoSWID tag producer to | |||
correct an incorrect tag previously released without indicating a | correct an incorrect tag previously released without indicating a | |||
change to the underlying software component the tag represents. | change to the underlying software component the tag represents. | |||
For example, the tag version could be changed to add new metadata, | For example, the tag version could be changed to add new metadata, | |||
to correct a broken link, to add a missing payload entry, etc. | to correct a broken link, to add a missing payload entry, etc. | |||
When producing a revised tag, the new tag-version value MUST be | When producing a revised tag, the new tag-version value MUST be | |||
greater than the old tag-version value. | greater than the old tag-version value. | |||
o corpus (index 8): A boolean value that indicates if the tag | * corpus (index 8): A boolean value that indicates if the tag | |||
identifies and describes an installable software component in its | identifies and describes an installable software component in its | |||
pre-installation state. Installable software includes a | pre-installation state. Installable software includes a | |||
installation package or installer for a software component, a | installation package or installer for a software component, a | |||
software update, or a patch. If the CoSWID tag represents | software update, or a patch. If the CoSWID tag represents | |||
installable software, the corpus item MUST be set to "true". If | installable software, the corpus item MUST be set to "true". If | |||
not provided, the default value MUST be considered "false". | not provided, the default value MUST be considered "false". | |||
o patch (index 9): A boolean value that indicates if the tag | * patch (index 9): A boolean value that indicates if the tag | |||
identifies and describes an installed patch that has made | identifies and describes an installed patch that has made | |||
incremental changes to a software component installed on an | incremental changes to a software component installed on an | |||
endpoint. Typically, an installed patch has made a set of file | endpoint. Typically, an installed patch has made a set of file | |||
modifications to pre-installed software and does not alter the | modifications to pre-installed software and does not alter the | |||
version number or the descriptive metadata of an installed | version number or the descriptive metadata of an installed | |||
software component. If a CoSWID tag is for a patch, the patch | software component. If a CoSWID tag is for a patch, the patch | |||
item MUST be set to "true". If not provided, the default value | item MUST be set to "true". If not provided, the default value | |||
MUST be considered "false". | MUST be considered "false". | |||
Note: If the software component's version number is modified, then | Note: If the software component's version number is modified, then | |||
the correct course of action would be to replace the previous | the correct course of action would be to replace the previous | |||
primary tag for the component with a new primary tag that | primary tag for the component with a new primary tag that | |||
reflected this new version. In such a case, the new tag would | reflected this new version. In such a case, the new tag would | |||
have a patch item value of "false" or would omit this item | have a patch item value of "false" or would omit this item | |||
completely. | completely. | |||
o supplemental (index 11): A boolean value that indicates if the tag | * supplemental (index 11): A boolean value that indicates if the tag | |||
is providing additional information to be associated with another | is providing additional information to be associated with another | |||
referenced SWID or CoSWID tag. This allows tools and users to | referenced SWID or CoSWID tag. This allows tools and users to | |||
record their own metadata about a software component without | record their own metadata about a software component without | |||
modifying SWID primary or patch tags created by a software | modifying SWID primary or patch tags created by a software | |||
provider. If a CoSWID tag is a supplemental tag, the supplemental | provider. If a CoSWID tag is a supplemental tag, the supplemental | |||
item MUST be set to "true". If not provided, the default value | item MUST be set to "true". If not provided, the default value | |||
MUST be considered "false". | MUST be considered "false". | |||
o software-name (index 1): This textual item provides the software | * software-name (index 1): This textual item provides the software | |||
component's name. This name is likely the same name that would | component's name. This name is likely the same name that would | |||
appear in a package management tool. | appear in a package management tool. | |||
o software-version (index 13): A textual value representing the | * software-version (index 13): A textual value representing the | |||
specific release or development version of the software component. | specific release or development version of the software component. | |||
o version-scheme (index 14): An integer or textual value | * version-scheme (index 14): An integer or textual value | |||
representing the versioning scheme used for the software-version | representing the versioning scheme used for the software-version | |||
item. If an integer value is used it MUST be an index value in | item. If an integer value is used it MUST be an index value in | |||
the range -256 to 65535. Integer values in the range -256 to -1 | the range -256 to 65535. Integer values in the range -256 to -1 | |||
are reserved for testing and use in closed environments (see | are reserved for testing and use in closed environments (see | |||
section Section 5.2.2). Integer values in the range 0 to 65535 | section Section 5.2.2). Integer values in the range 0 to 65535 | |||
correspond to registered entries in the IANA "SWID/CoSWID Version | correspond to registered entries in the IANA "SWID/CoSWID Version | |||
Scheme Value" registry (see section Section 5.2.4. If a string | Scheme Value" registry (see section Section 5.2.4. If a string | |||
value is used it MUST be a private use name as defined in section | value is used it MUST be a private use name as defined in section | |||
Section 5.2.2. String values based on a Version Scheme Name from | Section 5.2.2. String values based on a Version Scheme Name from | |||
the IANA "SWID/CoSWID Version Scheme Value" registry MUST NOT be | the IANA "SWID/CoSWID Version Scheme Value" registry MUST NOT be | |||
used, as these values are less concise than their index value | used, as these values are less concise than their index value | |||
equivalent. | equivalent. | |||
o media (index 10): This text value is a hint to the tag consumer to | * media (index 10): This text value is a hint to the tag consumer to | |||
understand what target platform this tag applies to. This item | understand what target platform this tag applies to. This item | |||
represents a query as defined by the W3C Media Queries | represents a query as defined by the W3C Media Queries | |||
Recommendation (see [W3C.REC-css3-mediaqueries-20120619]). | Recommendation (see [W3C.REC-css3-mediaqueries-20120619]). | |||
o software-meta (index 5): An open-ended map of key/value data | * software-meta (index 5): An open-ended map of key/value data | |||
pairs. A number of predefined keys can be used within this item | pairs. A number of predefined keys can be used within this item | |||
providing for common usage and semantics across the industry. Use | providing for common usage and semantics across the industry. Use | |||
of this map allows any additional attribute to be included in the | of this map allows any additional attribute to be included in the | |||
tag. It is expected that industry groups will use a common set of | tag. It is expected that industry groups will use a common set of | |||
attribute names to allow for interoperability within their | attribute names to allow for interoperability within their | |||
communities. Described in Section 2.8. | communities. Described in Section 2.8. | |||
o entity (index 2): Provides information about one or more | * entity (index 2): Provides information about one or more | |||
organizations responsible for producing the CoSWID tag, and | organizations responsible for producing the CoSWID tag, and | |||
producing or releasing the software component referenced by this | producing or releasing the software component referenced by this | |||
CoSWID tag. Described in Section 2.6. | CoSWID tag. Described in Section 2.6. | |||
o link (index 4): Provides a means to establish relationship arcs | * link (index 4): Provides a means to establish relationship arcs | |||
between the tag and another items. A given link can be used to | between the tag and another items. A given link can be used to | |||
establish the relationship between tags or to reference another | establish the relationship between tags or to reference another | |||
resource that is related to the CoSWID tag, e.g. vulnerability | resource that is related to the CoSWID tag, e.g. vulnerability | |||
database association, ROLIE feed [RFC8322], MUD resource | database association, ROLIE feed [RFC8322], MUD resource | |||
[RFC8520], software download location, etc). This is modeled | [RFC8520], software download location, etc). This is modeled | |||
after the HTML "link" element. Described in Section 2.7. | after the HTML "link" element. Described in Section 2.7. | |||
o payload (index 6): This item represents a collection of software | * payload (index 6): This item represents a collection of software | |||
artifacts (described by child items) that compose the target | artifacts (described by child items) that compose the target | |||
software. For example, these artifacts could be the files | software. For example, these artifacts could be the files | |||
included with an installer for a corpus tag or installed on an | included with an installer for a corpus tag or installed on an | |||
endpoint when the software component is installed for a primary or | endpoint when the software component is installed for a primary or | |||
patch tag. The artifacts listed in a payload may be a superset of | patch tag. The artifacts listed in a payload may be a superset of | |||
the software artifacts that are actually installed. Based on user | the software artifacts that are actually installed. Based on user | |||
selections at install time, an installation might not include | selections at install time, an installation might not include | |||
every artifact that could be created or executed on the endpoint | every artifact that could be created or executed on the endpoint | |||
when the software component is installed or run. Described in | when the software component is installed or run. Described in | |||
Section 2.9.3. | Section 2.9.3. | |||
o evidence-entry (index 3): This item can be used to record the | * evidence-entry (index 3): This item can be used to record the | |||
results of a software discovery process used to identify untagged | results of a software discovery process used to identify untagged | |||
software on an endpoint or to represent indicators for why | software on an endpoint or to represent indicators for why | |||
software is believed to be installed on the endpoint. In either | software is believed to be installed on the endpoint. In either | |||
case, a CoSWID tag can be created by the tool performing an | case, a CoSWID tag can be created by the tool performing an | |||
analysis of the software components installed on the endpoint. | analysis of the software components installed on the endpoint. | |||
Described in Section 2.9.4. | Described in Section 2.9.4. | |||
o $$coswid-extension: This CDDL socket is used to add new | * $$coswid-extension: This CDDL socket is used to add new | |||
information structures to the concise-swid-tag root map. See | information structures to the concise-swid-tag root map. See | |||
Section 2.2. | Section 2.2. | |||
2.4. concise-swid-tag Co-constraints | 2.4. concise-swid-tag Co-constraints | |||
The following co-constraints apply to the information provided in the | The following co-constraints apply to the information provided in the | |||
concise-swid-tag group. | concise-swid-tag group. | |||
o The patch and supplemental items MUST NOT both be set to "true". | * The patch and supplemental items MUST NOT both be set to "true". | |||
o If the patch item is set to "true", the tag SHOULD contain at | * If the patch item is set to "true", the tag SHOULD contain at | |||
least one link item (see section Section 2.7) with both the rel | least one link item (see section Section 2.7) with both the rel | |||
item value of "patches" and an href item specifying an association | item value of "patches" and an href item specifying an association | |||
with the software that was patched. | with the software that was patched. | |||
o If the supplemental item is set to "true", the tag SHOULD contain | * If the supplemental item is set to "true", the tag SHOULD contain | |||
at least one link item with both the rel item value of | at least one link item with both the rel item value of | |||
"supplemental" and an href item specifying an association with the | "supplemental" and an href item specifying an association with the | |||
software that is supplemented. | software that is supplemented. | |||
o If all of the corpus, patch, and supplemental items are "false", | * If all of the corpus, patch, and supplemental items are "false", | |||
or if the corpus item is set to "true", then a software-version | 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 | item MUST be included with a value set to the version of the | |||
software component. This ensures that primary and corpus tags | software component. This ensures that primary and corpus tags | |||
have an identifiable software version. | have an identifiable software version. | |||
2.5. The global-attributes Group | 2.5. The global-attributes Group | |||
The global-attributes group provides a list of items, including an | The global-attributes group provides a list of items, including an | |||
optional language definition to support the processing of text-string | optional language definition to support the processing of text-string | |||
values, and an unbounded set of any-attribute items allowing for | values, and an unbounded set of any-attribute items allowing for | |||
skipping to change at page 16, line 39 ¶ | skipping to change at page 17, line 5 ¶ | |||
) | ) | |||
any-attribute = ( | any-attribute = ( | |||
label => text / int / [ 2* text ] / [ 2* int ] | label => text / int / [ 2* text ] / [ 2* int ] | |||
) | ) | |||
label = text / int | label = text / int | |||
The following describes each child item of this group. | The following describes each child item of this group. | |||
o lang (index 15): A textual language tag that conforms with IANA | * lang (index 15): A textual language tag that conforms with IANA | |||
"Language Subtag Registry" [RFC5646]. The context of the | "Language Subtag Registry" [RFC5646]. The context of the | |||
specified language applies to all sibling and descendant textual | specified language applies to all sibling and descendant textual | |||
values, unless a descendant object has defined a different | values, unless a descendant object has defined a different | |||
language tag. Thus, a new context is established when a | language tag. Thus, a new context is established when a | |||
descendant object redefines a new language tag. All textual | descendant object redefines a new language tag. All textual | |||
values within a given context MUST be considered expressed in the | values within a given context MUST be considered expressed in the | |||
specified language. | specified language. | |||
o any-attribute: This sub-group provides a means to include | * any-attribute: This sub-group provides a means to include | |||
arbitrary information via label/index ("key") value pairs. Labels | arbitrary information via label/index ("key") value pairs. Labels | |||
can be either a single integer or text string. Values can be a | can be either a single integer or text string. Values can be a | |||
single integer, a text string, or an array of integers or text | single integer, a text string, or an array of integers or text | |||
strings. | strings. | |||
2.6. The entity-entry Map | 2.6. The entity-entry Map | |||
The CDDL for the entity-entry map follows: | The CDDL for the entity-entry map follows: | |||
entity-entry = { | entity-entry = { | |||
skipping to change at page 17, line 28 ¶ | skipping to change at page 17, line 43 ¶ | |||
entity-name = 31 | entity-name = 31 | |||
reg-id = 32 | reg-id = 32 | |||
role = 33 | role = 33 | |||
thumbprint = 34 | thumbprint = 34 | |||
$role /= tag-creator | $role /= tag-creator | |||
$role /= software-creator | $role /= software-creator | |||
$role /= aggregator | $role /= aggregator | |||
$role /= distributor | $role /= distributor | |||
$role /= licensor | $role /= licensor | |||
$role /= maintainer | ||||
$role /= uint / text | $role /= uint / text | |||
tag-creator=1 | tag-creator=1 | |||
software-creator=2 | software-creator=2 | |||
aggregator=3 | aggregator=3 | |||
distributor=4 | distributor=4 | |||
licensor=5 | licensor=5 | |||
maintainer=6 | ||||
The following describes each child item of this group. | The following describes each child item of this group. | |||
o global-attributes: The global-attributes group described in | * global-attributes: The global-attributes group described in | |||
Section 2.5. | Section 2.5. | |||
o entity-name (index 32): The textual name of the organizational | * entity-name (index 32): The textual name of the organizational | |||
entity claiming the roles specified by the role item for the | entity claiming the roles specified by the role item for the | |||
CoSWID tag. | CoSWID tag. | |||
o reg-id (index 32): The registration id value is intended to | * reg-id (index 32): The registration id value is intended to | |||
uniquely identify a naming authority in a given scope (e.g. | uniquely identify a naming authority in a given scope (e.g. | |||
global, organization, vendor, customer, administrative domain, | global, organization, vendor, customer, administrative domain, | |||
etc.) for the referenced entity. The value of an registration ID | etc.) for the referenced entity. The value of an registration ID | |||
MUST be a RFC 3986 URI. The scope SHOULD be the scope of an | 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 | organization. In a given scope, the registration id MUST be used | |||
consistently for CoSWID tag production. | consistently for CoSWID tag production. | |||
o role (index 33): An integer or textual value representing the | * role (index 33): An integer or textual value representing the | |||
relationship(s) between the entity, and this tag or the referenced | relationship(s) between the entity, and this tag or the referenced | |||
software component. If an integer value is used it MUST be an | software component. If an integer value is used it MUST be an | |||
index value in the range -256 to 255. Integer values in the range | index value in the range -256 to 255. Integer values in the range | |||
-256 to -1 are reserved for testing and use in closed environments | -256 to -1 are reserved for testing and use in closed environments | |||
(see section Section 5.2.2). Integer values in the range 0 to 255 | (see section Section 5.2.2). Integer values in the range 0 to 255 | |||
correspond to registered entries in the IANA "SWID/CoSWID Entity | correspond to registered entries in the IANA "SWID/CoSWID Entity | |||
Role Value" registry (see section Section 5.2.5. If a string | Role Value" registry (see section Section 5.2.5. If a string | |||
value is used it MUST be a private use name as defined in section | value is used it MUST be a private use name as defined in section | |||
Section 5.2.2. String values based on a Role Name from the IANA | Section 5.2.2. String values based on a Role Name from the IANA | |||
"SWID/CoSWID Entity Role Value" registry MUST NOT be used, as | "SWID/CoSWID Entity Role Value" registry MUST NOT be used, as | |||
these values are less concise than their index value equivalent. | these values are less concise than their index value equivalent. | |||
The following additional requirements exist for the use of the | The following additional requirements exist for the use of the | |||
"role" item: | "role" item: | |||
* An entity item MUST be provided with the role of "tag-creator" | - An entity item MUST be provided with the role of "tag-creator" | |||
for every CoSWID tag. This indicates the organization that | for every CoSWID tag. This indicates the organization that | |||
created the CoSWID tag. | created the CoSWID tag. | |||
* An entity item SHOULD be provided with the role of "software- | - An entity item SHOULD be provided with the role of "software- | |||
creator" for every CoSWID tag, if this information is known to | creator" for every CoSWID tag, if this information is known to | |||
the tag creator. This indicates the organization that created | the tag creator. This indicates the organization that created | |||
the referenced software component. | the referenced software component. | |||
o thumbprint (index 34): The value of the thumbprint item provides | * thumbprint (index 34): The value of the thumbprint item provides | |||
an integer-based hash algorithm identifier (hash-alg-id) and a | an integer-based hash algorithm identifier (hash-alg-id) and a | |||
byte string value (hash-value) that contains the corresponding | byte string value (hash-value) that contains the corresponding | |||
hash value (i.e. the thumbprint) of the signing entity's public | hash value (i.e. the thumbprint) of the signing entity's public | |||
key certificate. This provides an indicator of which entity | key certificate. This provides an indicator of which entity | |||
signed the CoSWID tag, which will typically be the tag creator. | signed the CoSWID tag, which will typically be the tag creator. | |||
If the hash-alg-id is not known, then the integer value "0" MUST | If the hash-alg-id is not known, then the integer value "0" MUST | |||
be used. This ensures parity between the SWID tag specification | be used. This ensures parity between the SWID tag specification | |||
[SWID], which does not allow an algorithm to be identified for | [SWID], which does not allow an algorithm to be identified for | |||
this field. See Section 2.9.1 for more details on the use of the | this field. See Section 2.9.1 for more details on the use of the | |||
hash-entry data structure. | hash-entry data structure. | |||
o $$entity-extension: This CDDL socket can be used to extend the | * $$entity-extension: This CDDL socket can be used to extend the | |||
entity-entry group model. See Section 2.2. | entity-entry group model. See Section 2.2. | |||
2.7. The link-entry Map | 2.7. The link-entry Map | |||
The CDDL for the link-entry map follows: | The CDDL for the link-entry map follows: | |||
link-entry = { | link-entry = { | |||
global-attributes, | global-attributes, | |||
? artifact => text, | ? artifact => text, | |||
href => any-uri, | href => any-uri, | |||
skipping to change at page 20, line 14 ¶ | skipping to change at page 20, line 29 ¶ | |||
$use /= optional | $use /= optional | |||
$use /= required | $use /= required | |||
$use /= recommended | $use /= recommended | |||
$use /= uint / text | $use /= uint / text | |||
optional=1 | optional=1 | |||
required=2 | required=2 | |||
recommended=3 | recommended=3 | |||
The following describes each member of this map. | The following describes each member of this map. | |||
o global-attributes: The global-attributes group described in | * global-attributes: The global-attributes group described in | |||
Section 2.5. | Section 2.5. | |||
o artifact (index: 37): To be used with rel="installation-media", | * artifact (index: 37): To be used with rel="installation-media", | |||
this item's value provides the path to the installer executable or | this item's value provides the path to the installer executable or | |||
script that can be run to launch the referenced installation. | script that can be run to launch the referenced installation. | |||
Links with the same artifact name MUST be considered mirrors of | Links with the same artifact name MUST be considered mirrors of | |||
each other, allowing the installation media to be acquired from | each other, allowing the installation media to be acquired from | |||
any of the described sources. | any of the described sources. | |||
o href (index 38): A URI for the referenced resource. The "href" | * href (index 38): A URI for the referenced resource. The "href" | |||
item's value can be, but is not limited to, the following (which | item's value can be, but is not limited to, the following (which | |||
is a slightly modified excerpt from [SWID]): | is a slightly modified excerpt from [SWID]): | |||
* If no URI scheme is provided, then the URI is to be interpreted | - 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, | as being relative to the URI of the CoSWID tag. For example, | |||
"./folder/supplemental.coswid". | "./folder/supplemental.coswid". | |||
* a physical resource location with any acceptable URI scheme | - a physical resource location with any acceptable URI scheme | |||
(e.g., file:// http:// https:// ftp://) | (e.g., file:// http:// https:// ftp://) | |||
* a URI with "swid:" as the scheme refers to another SWID or | - a URI with "swid:" as the scheme refers to another SWID or | |||
CoSWID by the referenced tag's tag-id. This URI needs to be | CoSWID by the referenced tag's tag-id. This URI needs to be | |||
resolved in the context of the endpoint by software that can | resolved in the context of the endpoint by software that can | |||
lookup other SWID or CoSWID tags. For example, "swid:2df9de35- | lookup other SWID or CoSWID tags. For example, "swid:2df9de35- | |||
0aff-4a86-ace6-f7dddd1ade4c" references the tag with the tag-id | 0aff-4a86-ace6-f7dddd1ade4c" references the tag with the tag-id | |||
value "2df9de35-0aff-4a86-ace6-f7dddd1ade4c". | value "2df9de35-0aff-4a86-ace6-f7dddd1ade4c". | |||
* a URI with "swidpath:" as the scheme, which refers to another | - a URI with "swidpath:" as the scheme, which refers to another | |||
CoSIWD via an XPATH query. This URI would need to be resolved | CoSIWD via an XPATH query. This URI would need to be resolved | |||
in the context of the system entity via software components | in the context of the system entity via software components | |||
that can lookup other CoSWID tags and select the appropriate | that can lookup other CoSWID tags and select the appropriate | |||
tag based on an XPATH query [W3C.REC-xpath20-20101214]. | tag based on an XPATH query [W3C.REC-xpath20-20101214]. | |||
Examples include: | Examples include: | |||
+ swidpath://SoftwareIdentity[Entity/@regid='http://contoso.co | o swidpath://SoftwareIdentity[Entity/@regid='http://contoso.co | |||
m'] would retrieve all SWID or CoSWID tags that include an | m'] would retrieve all SWID or CoSWID tags that include an | |||
entity where the regid is "Contoso" | entity where the regid is "Contoso" | |||
+ swidpath://SoftwareIdentity[Meta/@persistentId='b0c55172-38e | o swidpath://SoftwareIdentity[Meta/@persistentId='b0c55172-38e | |||
9-4e36-be86-92206ad8eddb'] would match all SWID or CoSWID | 9-4e36-be86-92206ad8eddb'] would match all SWID or CoSWID | |||
tags with the persistent-id value | tags with the persistent-id value | |||
"b0c55172-38e9-4e36-be86-92206ad8eddb" | "b0c55172-38e9-4e36-be86-92206ad8eddb" | |||
o media (index 10): A hint to the consumer of the link to what | * media (index 10): A hint to the consumer of the link to what | |||
target platform the link is applicable to. This item represents a | target platform the link is applicable to. This item represents a | |||
query as defined by the W3C Media Queries Recommendation (see | query as defined by the W3C Media Queries Recommendation (see | |||
[W3C.REC-css3-mediaqueries-20120619]). See also media defined in | [W3C.REC-css3-mediaqueries-20120619]). See also media defined in | |||
Section 2.3. | Section 2.3. | |||
o ownership (index 39): An integer or textual value used when the | * ownership (index 39): An integer or textual value used when the | |||
"href" item references another software component to indicate the | "href" item references another software component to indicate the | |||
degree of ownership between the software component referenced by | degree of ownership between the software component referenced by | |||
the COSWID tag and the software component referenced by the link. | the COSWID tag and the software component referenced by the link. | |||
If an integer value is used it MUST be an index value in the range | If an integer value is used it MUST be an index value in the range | |||
-256 to 255. Integer values in the range -256 to -1 are reserved | -256 to 255. Integer values in the range -256 to -1 are reserved | |||
for testing and use in closed environments (see section | for testing and use in closed environments (see section | |||
Section 5.2.2). Integer values in the range 0 to 255 correspond | Section 5.2.2). Integer values in the range 0 to 255 correspond | |||
to registered entries in the IANA "SWID/CoSWID Link Ownership | to registered entries in the IANA "SWID/CoSWID Link Ownership | |||
Value" registry (see section Section 5.2.6. If a string value is | Value" registry (see section Section 5.2.6. If a string value is | |||
used it MUST be a private use name as defined in section | used it MUST be a private use name as defined in section | |||
Section 5.2.2. String values based on a Ownership Type Name from | Section 5.2.2. String values based on a Ownership Type Name from | |||
the IANA "SWID/CoSWID Link Ownership Value" registry MUST NOT be | the IANA "SWID/CoSWID Link Ownership Value" registry MUST NOT be | |||
used, as these values are less concise than their index value | used, as these values are less concise than their index value | |||
equivalent. | equivalent. | |||
o rel (index 40): An integer or textual value that identifies the | * rel (index 40): An integer or textual value that identifies the | |||
relationship between this CoSWID and the target resource | relationship between this CoSWID and the target resource | |||
identified by the "href" item. If an integer value is used it | identified by the "href" item. If an integer value is used it | |||
MUST be an index value in the range -256 to 65535. Integer values | MUST be an index value in the range -256 to 65535. Integer values | |||
in the range -256 to -1 are reserved for testing and use in closed | in the range -256 to -1 are reserved for testing and use in closed | |||
environments (see section Section 5.2.2). Integer values in the | environments (see section Section 5.2.2). Integer values in the | |||
range 0 to 65535 correspond to registered entries in the IANA | range 0 to 65535 correspond to registered entries in the IANA | |||
"SWID/CoSWID Link Relationship Value" registry (see section | "SWID/CoSWID Link Relationship Value" registry (see section | |||
Section 5.2.7. If a string value is used it MUST be either a | Section 5.2.7. If a string value is used it MUST be either a | |||
private use name as defined in section Section 5.2.2 or a | private use name as defined in section Section 5.2.2 or a | |||
"Relation Name" from the IANA "Link Relation Types" registry: | "Relation Name" from the IANA "Link Relation Types" registry: | |||
skipping to change at page 22, line 10 ¶ | skipping to change at page 22, line 28 ¶ | |||
defined in the IANA "SWID/CoSWID Link Relationship Value" registry | defined in the IANA "SWID/CoSWID Link Relationship Value" registry | |||
matches a Relation Name defined in the IANA "Link Relation Types" | matches a Relation Name defined in the IANA "Link Relation Types" | |||
registry, the index value in the IANA "SWID/CoSWID Link | registry, the index value in the IANA "SWID/CoSWID Link | |||
Relationship Value" registry MUST be used instead, as this | Relationship Value" registry MUST be used instead, as this | |||
relationship has a specialized meaning in the context of a SWID/ | relationship has a specialized meaning in the context of a SWID/ | |||
CoSWID tag. String values based on a Relationship Type Name from | CoSWID tag. String values based on a Relationship Type Name from | |||
the IANA "SWID/CoSWID Link Relationship Value" registry MUST NOT | the IANA "SWID/CoSWID Link Relationship Value" registry MUST NOT | |||
be used, as these values are less concise than their index value | be used, as these values are less concise than their index value | |||
equivalent. | equivalent. | |||
o media-type (index 41): A link can point to arbitrary resources on | * media-type (index 41): A link can point to arbitrary resources on | |||
the endpoint, local network, or Internet using the href item. Use | the endpoint, local network, or Internet using the href item. Use | |||
of this item supplies the resource consumer with a hint of what | of this item supplies the resource consumer with a hint of what | |||
type of resource to expect. Media types are identified by | type of resource to expect. Media types are identified by | |||
referencing a "Name" from the IANA "Media Types" registry: | referencing a "Name" from the IANA "Media Types" registry: | |||
http://www.iana.org/assignments/media-types/media-types.xhtml. | http://www.iana.org/assignments/media-types/media-types.xhtml. | |||
o use (index 42): An integer or textual value used to determine if | * use (index 42): An integer or textual value used to determine if | |||
the referenced software component has to be installed before | the referenced software component has to be installed before | |||
installing the software component identified by the COSWID tag. | installing the software component identified by the COSWID tag. | |||
If an integer value is used it MUST be an index value in the range | If an integer value is used it MUST be an index value in the range | |||
-256 to 255. Integer values in the range -256 to -1 are reserved | -256 to 255. Integer values in the range -256 to -1 are reserved | |||
for testing and use in closed environments (see section | for testing and use in closed environments (see section | |||
Section 5.2.2). Integer values in the range 0 to 255 correspond | Section 5.2.2). Integer values in the range 0 to 255 correspond | |||
to registered entries in the IANA "Link Use Value Value" registry | to registered entries in the IANA "Link Use Value Value" registry | |||
(see section Section 5.2.8. If a string value is used it MUST be | (see section Section 5.2.8. If a string value is used it MUST be | |||
a private use name as defined in section Section 5.2.2. String | a private use name as defined in section Section 5.2.2. String | |||
values based on an Link Use Type Name from the IANA "SWID/CoSWID | values based on an Link Use Type Name from the IANA "SWID/CoSWID | |||
Link Use Value" registry MUST NOT be used, as these values are | Link Use Value" registry MUST NOT be used, as these values are | |||
less concise than their index value equivalent. | less concise than their index value equivalent. | |||
o $$link-extension: This CDDL socket can be used to extend the link- | * $$link-extension: This CDDL socket can be used to extend the link- | |||
entry map model. See Section 2.2. | entry map model. See Section 2.2. | |||
2.8. The software-meta-entry Map | 2.8. The software-meta-entry Map | |||
The CDDL for the software-meta-entry map follows: | The CDDL for the software-meta-entry map follows: | |||
software-meta-entry = { | software-meta-entry = { | |||
global-attributes, | global-attributes, | |||
? activation-status => text, | ? activation-status => text, | |||
? channel-type => text, | ? channel-type => text, | |||
skipping to change at page 23, line 43 ¶ | skipping to change at page 23, line 47 ¶ | |||
persistent-id = 51 | persistent-id = 51 | |||
product = 52 | product = 52 | |||
product-family = 53 | product-family = 53 | |||
revision = 54 | revision = 54 | |||
summary = 55 | summary = 55 | |||
unspsc-code = 56 | unspsc-code = 56 | |||
unspsc-version = 57 | unspsc-version = 57 | |||
The following describes each child item of this group. | The following describes each child item of this group. | |||
o global-attributes: The global-attributes group described in | * global-attributes: The global-attributes group described in | |||
Section 2.5. | Section 2.5. | |||
o activation-status (index 43): A textual value that identifies how | * activation-status (index 43): A textual value that identifies how | |||
the software component has been activated, which might relate to | the software component has been activated, which might relate to | |||
specific terms and conditions for its use (e.g. Trial, | specific terms and conditions for its use (e.g. Trial, | |||
Serialized, Licensed, Unlicensed, etc) and relate to an | Serialized, Licensed, Unlicensed, etc) and relate to an | |||
entitlement. This attribute is typically used in supplemental | entitlement. This attribute is typically used in supplemental | |||
tags as it contains information that might be selected during a | tags as it contains information that might be selected during a | |||
specific install. | specific install. | |||
o channel-type (index 44): A textual value that identfies which | * channel-type (index 44): A textual value that identfies which | |||
sales, licensing, or marketing channel the software component has | sales, licensing, or marketing channel the software component has | |||
been targeted for (e.g. Volume, Retail, OEM, Academic, etc). | been targeted for (e.g. Volume, Retail, OEM, Academic, etc). | |||
This attribute is typically used in supplemental tags as it | This attribute is typically used in supplemental tags as it | |||
contains information that might be selected during a specific | contains information that might be selected during a specific | |||
install. | install. | |||
o colloquial-version (index 45): A textual value for the software | * colloquial-version (index 45): A textual value for the software | |||
component's informal or colloquial version. Examples may include | component's informal or colloquial version. Examples may include | |||
a year value, a major version number, or similar value that are | a year value, a major version number, or similar value that are | |||
used to identify a group of specific software component releases | used to identify a group of specific software component releases | |||
that are part of the same release/support cycle. This version can | that are part of the same release/support cycle. This version can | |||
be the same through multiple releases of a software component, | be the same through multiple releases of a software component, | |||
while the software-version specified in the concise-swid-tag group | while the software-version specified in the concise-swid-tag group | |||
is much more specific and will change for each software component | is much more specific and will change for each software component | |||
release. This version is intended to be used for string | release. This version is intended to be used for string | |||
comparison only and is not intended to be used to determine if a | comparison only and is not intended to be used to determine if a | |||
specific value is earlier or later in a sequence. | specific value is earlier or later in a sequence. | |||
o description (index 46): A textual value that provides a detailed | * description (index 46): A textual value that provides a detailed | |||
description of the software component. This value MAY be multiple | description of the software component. This value MAY be multiple | |||
paragraphs separated by CR LF characters as described by | paragraphs separated by CR LF characters as described by | |||
[RFC5198]. | [RFC5198]. | |||
o edition (index 47): A textual value indicating that the software | * edition (index 47): A textual value indicating that the software | |||
component represents a functional variation of the code base used | component represents a functional variation of the code base used | |||
to support multiple software components. For example, this item | to support multiple software components. For example, this item | |||
can be used to differentiate enterprise, standard, or professional | can be used to differentiate enterprise, standard, or professional | |||
variants of a software component. | variants of a software component. | |||
o entitlement-data-required (index 48): A boolean value that can be | * entitlement-data-required (index 48): A boolean value that can be | |||
used to determine if accompanying proof of entitlement is needed | used to determine if accompanying proof of entitlement is needed | |||
when a software license reconciliation process is performed. | when a software license reconciliation process is performed. | |||
o entitlement-key (index 49): A vendor-specific textual key that can | * entitlement-key (index 49): A vendor-specific textual key that can | |||
be used to identify and establish a relationship to an | be used to identify and establish a relationship to an | |||
entitlement. Examples of an entitlement-key might include a | entitlement. Examples of an entitlement-key might include a | |||
serial number, product key, or license key. For values that | serial number, product key, or license key. For values that | |||
relate to a given software component install (i.e., license key), | relate to a given software component install (i.e., license key), | |||
a supplemental tag will typically contain this information. In | a supplemental tag will typically contain this information. In | |||
other cases, where a general-purpose key can be provided that | other cases, where a general-purpose key can be provided that | |||
applies to all possible installs of the software component on | applies to all possible installs of the software component on | |||
different endpoints, a primary tag will typically contain this | different endpoints, a primary tag will typically contain this | |||
information. | information. | |||
o generator (index 50): The name (or tag-id) of the software | * generator (index 50): The name (or tag-id) of the software | |||
component that created the CoSWID tag. If the generating software | component that created the CoSWID tag. If the generating software | |||
component has a SWID or CoSWID tag, then the tag-id for the | component has a SWID or CoSWID tag, then the tag-id for the | |||
generating software component SHOULD be provided. | generating software component SHOULD be provided. | |||
o persistent-id (index 51): A globally unique identifier used to | * persistent-id (index 51): A globally unique identifier used to | |||
identify a set of software components that are related. Software | identify a set of software components that are related. Software | |||
components sharing the same persistent-id can be different | components sharing the same persistent-id can be different | |||
versions. This item can be used to relate software components, | versions. This item can be used to relate software components, | |||
released at different points in time or through different release | released at different points in time or through different release | |||
channels, that may not be able to be related through use of the | channels, that may not be able to be related through use of the | |||
link item. | link item. | |||
o product (index 52): A basic name for the software component that | * product (index 52): A basic name for the software component that | |||
can be common across multiple tagged software components (e.g., | can be common across multiple tagged software components (e.g., | |||
Apache HTTPD). | Apache HTTPD). | |||
o product-family (index 53): A textual value indicating the software | * product-family (index 53): A textual value indicating the software | |||
components overall product family. This should be used when | components overall product family. This should be used when | |||
multiple related software components form a larger capability that | multiple related software components form a larger capability that | |||
is installed on multiple different endpoints. For example, some | is installed on multiple different endpoints. For example, some | |||
software families may consist of server, client, and shared | software families may consist of server, client, and shared | |||
service components that are part of a larger capability. Email | service components that are part of a larger capability. Email | |||
systems, enterprise applications, backup services, web | systems, enterprise applications, backup services, web | |||
conferencing, and similar capabilities are examples of families. | conferencing, and similar capabilities are examples of families. | |||
Use of this item is not intended to represent groups of software | Use of this item is not intended to represent groups of software | |||
that are bundled or installed together. The persistent-id or link | that are bundled or installed together. The persistent-id or link | |||
items SHOULD be used to relate bundled software components. | items SHOULD be used to relate bundled software components. | |||
o revision (index 54): A string value indicating an informal or | * revision (index 54): A string value indicating an informal or | |||
colloquial release version of the software. This value can | colloquial release version of the software. This value can | |||
provide a different version value as compared to the software- | provide a different version value as compared to the software- | |||
version specified in the concise-swid-tag group. This is useful | version specified in the concise-swid-tag group. This is useful | |||
when one or more releases need to have an informal version label | when one or more releases need to have an informal version label | |||
that differs from the specific exact version value specified by | that differs from the specific exact version value specified by | |||
software-version. Examples can include SP1, RC1, Beta, etc. | software-version. Examples can include SP1, RC1, Beta, etc. | |||
o summary (index 55): A short description of the software component. | * summary (index 55): A short description of the software component. | |||
This MUST be a single sentence suitable for display in a user | This MUST be a single sentence suitable for display in a user | |||
interface. | interface. | |||
o unspsc-code (index 56): An 8 digit UNSPSC classification code for | * unspsc-code (index 56): An 8 digit UNSPSC classification code for | |||
the software component. For more information see | the software component. For more information see | |||
https://www.unspsc.org/. | https://www.unspsc.org/. | |||
o unspsc-version (index 57): The version of UNSPSC used to define | * unspsc-version (index 57): The version of UNSPSC used to define | |||
the unspsc-code value. | the unspsc-code value. | |||
o $$meta-extension: This CDDL socket can be used to extend the | * $$meta-extension: This CDDL socket can be used to extend the | |||
software-meta-entry group model. See Section 2.2. | software-meta-entry group model. See Section 2.2. | |||
2.9. The Resource Collection Definition | 2.9. The Resource Collection Definition | |||
2.9.1. The hash-entry Array | 2.9.1. The hash-entry Array | |||
CoSWID adds explicit support for the representation of hash entries | CoSWID adds explicit support for the representation of hash entries | |||
using algorithms that are registered in the IANA "Named Information | using algorithms that are registered in the IANA "Named Information | |||
Hash Algorithm Registry" using the hash member (index 7) and the | Hash Algorithm Registry" using the hash member (index 7) and the | |||
corresponding hash-entry type. | corresponding hash-entry type. | |||
skipping to change at page 26, line 36 ¶ | skipping to change at page 27, line 5 ¶ | |||
2.9.2. The resource-collection Group | 2.9.2. The resource-collection Group | |||
A list of items both used in evidence (created by a software | A list of items both used in evidence (created by a software | |||
discovery process) and payload (installed in an endpoint) content of | discovery process) and payload (installed in an endpoint) content of | |||
a CoSWID tag document to structure and differentiate the content of | a CoSWID tag document to structure and differentiate the content of | |||
specific CoSWID tag types. Potential content includes directories, | specific CoSWID tag types. Potential content includes directories, | |||
files, processes, or resources. | files, processes, or resources. | |||
The CDDL for the resource-collection group follows: | The CDDL for the resource-collection group follows: | |||
path-elements-group = ( ? directory => directory-entry / [ 2* directory-entry ], | path-elements-group = ( ? directory => directory-entry / [ 2* directory-entry ], | |||
? file => file-entry / [ 2* file-entry ], | ? file => file-entry / [ 2* file-entry ], | |||
) | ) | |||
esource-collection = ( | ||||
path-elements-group, | ||||
? process => process-entry / [ 2* process-entry ], | ||||
? resource => resource-entry / [ 2* resource-entry ], | ||||
* $$resource-collection-extension, | ||||
) | ||||
filesystem-item = ( | esource-collection = ( | |||
global-attributes, | path-elements-group, | |||
? key => bool, | ? process => process-entry / [ 2* process-entry ], | |||
? location => text, | ? resource => resource-entry / [ 2* resource-entry ], | |||
fs-name => text, | * $$resource-collection-extension, | |||
? root => text, | ) | |||
) | filesystem-item = ( | |||
global-attributes, | ||||
? key => bool, | ||||
? location => text, | ||||
fs-name => text, | ||||
? root => text, | ||||
) | ||||
file-entry = { | file-entry = { | |||
filesystem-item, | filesystem-item, | |||
? size => integer, | ? size => integer, | |||
? file-version => text, | ? file-version => text, | |||
? hash => hash-entry, | ? hash => hash-entry, | |||
* $$file-extension, | * $$file-extension, | |||
} | } | |||
directory-entry = { | directory-entry = { | |||
filesystem-item, | filesystem-item, | |||
path-elements => { path-elements-group }, | path-elements => { path-elements-group }, | |||
* $$directory-extension, | * $$directory-extension, | |||
} | } | |||
process-entry = { | process-entry = { | |||
global-attributes, | global-attributes, | |||
process-name => text, | process-name => text, | |||
? pid => integer, | ? pid => integer, | |||
* $$process-extension, | * $$process-extension, | |||
} | } | |||
resource-entry = { | resource-entry = { | |||
global-attributes, | global-attributes, | |||
type => text, | type => text, | |||
* $$resource-extension, | * $$resource-extension, | |||
} | } | |||
directory = 16 | directory = 16 | |||
file = 17 | file = 17 | |||
process = 18 | process = 18 | |||
resource = 19 | resource = 19 | |||
size = 20 | size = 20 | |||
file-version = 21 | file-version = 21 | |||
key = 22 | key = 22 | |||
location = 23 | location = 23 | |||
fs-name = 24 | fs-name = 24 | |||
root = 25 | root = 25 | |||
path-elements = 26 | path-elements = 26 | |||
process-name = 27 | process-name = 27 | |||
pid = 28 | pid = 28 | |||
type = 29 | type = 29 | |||
The following describes each member of the groups and maps | The following describes each member of the groups and maps | |||
illustrated above. | illustrated above. | |||
o filesystem-item: A list of common items used for representing the | * filesystem-item: A list of common items used for representing the | |||
filesystem root, relative location, name, and significance of a | filesystem root, relative location, name, and significance of a | |||
file or directory item. | file or directory item. | |||
o global-attributes: The global-attributes group described in | * global-attributes: The global-attributes group described in | |||
Section 2.5. | Section 2.5. | |||
o directory (index 16): A directory item allows child directory and | * directory (index 16): A directory item allows child directory and | |||
file items to be defined within a directory hierarchy for the | file items to be defined within a directory hierarchy for the | |||
software component. | software component. | |||
o file (index 17): A file item allows details about a file to be | * file (index 17): A file item allows details about a file to be | |||
provided for the software component. | provided for the software component. | |||
o process (index 18): A process item allows details to be provided | * process (index 18): A process item allows details to be provided | |||
about the runtime behavior of the software component, such as | about the runtime behavior of the software component, such as | |||
information that will appear in a process listing on an endpoint. | information that will appear in a process listing on an endpoint. | |||
o resource (index 19): A resource item can be used to provide | * resource (index 19): A resource item can be used to provide | |||
details about an artifact or capability expected to be found on an | details about an artifact or capability expected to be found on an | |||
endpoint or evidence collected related to the software component. | endpoint or evidence collected related to the software component. | |||
This can be used to represent concepts not addressed directly by | This can be used to represent concepts not addressed directly by | |||
the directory, file, or process items. Examples include: registry | the directory, file, or process items. Examples include: registry | |||
keys, bound ports, etc. The equivalent construct in [SWID] is | keys, bound ports, etc. The equivalent construct in [SWID] is | |||
currently under specified. As a result, this item might be | currently under specified. As a result, this item might be | |||
further defined through extension in the future. | further defined through extension in the future. | |||
o size (index 20): The file's size in bytes. | * size (index 20): The file's size in bytes. | |||
o file-version (index 21): The file's version as reported by | * file-version (index 21): The file's version as reported by | |||
querying information on the file from the operating system. | querying information on the file from the operating system. | |||
o key (index 22): A boolean value indicating if a file or directory | * key (index 22): A boolean value indicating if a file or directory | |||
is significant or required for the software component to execute | is significant or required for the software component to execute | |||
or function properly. These are files or directories that can be | or function properly. These are files or directories that can be | |||
used to affirmatively determine if the software component is | used to affirmatively determine if the software component is | |||
installed on an endpoint. | installed on an endpoint. | |||
o location (index 23): The filesystem path where a file is expected | * location (index 23): The filesystem path where a file is expected | |||
to be located when installed or copied. The location MUST be | to be located when installed or copied. The location MUST be | |||
either relative to the location of the parent directory item | either relative to the location of the parent directory item | |||
(preferred) or relative to the location of the CoSWID tag if no | (preferred) or relative to the location of the CoSWID tag if no | |||
parent is defined. The location MUST NOT include a file's name, | parent is defined. The location MUST NOT include a file's name, | |||
which is provided by the fs-name item. | which is provided by the fs-name item. | |||
o fs-name (index 24): The name of the directory or file without any | * fs-name (index 24): The name of the directory or file without any | |||
path information. | path information. | |||
o root (index 25): A filesystem-specific name for the root of the | * root (index 25): A filesystem-specific name for the root of the | |||
filesystem. The location item is considered relative to this | filesystem. The location item is considered relative to this | |||
location if specified. If not provided, the value provided by the | location if specified. If not provided, the value provided by the | |||
location item is expected to be relative to its parent or the | location item is expected to be relative to its parent or the | |||
location of the CoSWID tag if no parent is provided. | location of the CoSWID tag if no parent is provided. | |||
o path-elements (index 26): This group allows a hierarchy of | * path-elements (index 26): This group allows a hierarchy of | |||
directory and file items to be defined in payload or evidence | directory and file items to be defined in payload or evidence | |||
items. | items. | |||
o process-name (index 27): The software component's process name as | * process-name (index 27): The software component's process name as | |||
it will appear in an endpoint's process list. | it will appear in an endpoint's process list. | |||
o pid (index 28): The process ID identified for a running instance | * pid (index 28): The process ID identified for a running instance | |||
of the software component in the endpoint's process list. This is | of the software component in the endpoint's process list. This is | |||
used as part of the evidence item. | used as part of the evidence item. | |||
o type (index 29): A string indicating the type of resource. | * type (index 29): A string indicating the type of resource. | |||
o $$resource-collection-extension: This CDDL socket can be used to | * $$resource-collection-extension: This CDDL socket can be used to | |||
extend the resource-collection group model. This can be used to | extend the resource-collection group model. This can be used to | |||
add new specialized types of resources. See Section 2.2. | add new specialized types of resources. See Section 2.2. | |||
o $$file-extension: This CDDL socket can be used to extend the file- | * $$file-extension: This CDDL socket can be used to extend the file- | |||
entry group model. See Section 2.2. | entry group model. See Section 2.2. | |||
o $$directory-extension: This CDDL socket can be used to extend the | * $$directory-extension: This CDDL socket can be used to extend the | |||
directory-entry group model. See Section 2.2. | directory-entry group model. See Section 2.2. | |||
o $$process-extension: This CDDL socket can be used to extend the | * $$process-extension: This CDDL socket can be used to extend the | |||
process-entry group model. See Section 2.2. | process-entry group model. See Section 2.2. | |||
o $$resource-extension: This CDDL socket can be used to extend the | * $$resource-extension: This CDDL socket can be used to extend the | |||
resource-entry group model. See Section 2.2. | resource-entry group model. See Section 2.2. | |||
2.9.3. The payload-entry Map | 2.9.3. The payload-entry Map | |||
The CDDL for the payload-entry map follows: | The CDDL for the payload-entry map follows: | |||
payload-entry = { | payload-entry = { | |||
global-attributes, | global-attributes, | |||
resource-collection, | resource-collection, | |||
* $$payload-extension, | * $$payload-extension, | |||
} | } | |||
The following describes each child item of this group. | The following describes each child item of this group. | |||
o global-attributes: The global-attributes group described in | * global-attributes: The global-attributes group described in | |||
Section 2.5. | Section 2.5. | |||
o resource-collection: The resource-collection group described in | * resource-collection: The resource-collection group described in | |||
Section 2.9.2. | Section 2.9.2. | |||
o $$payload-extension: This CDDL socket can be used to extend the | * $$payload-extension: This CDDL socket can be used to extend the | |||
payload-entry group model. See Section 2.2. | payload-entry group model. See Section 2.2. | |||
2.9.4. The evidence-entry Map | 2.9.4. The evidence-entry Map | |||
The CDDL for the evidence-entry map follows: | The CDDL for the evidence-entry map follows: | |||
evidence-entry = { | evidence-entry = { | |||
global-attributes, | global-attributes, | |||
resource-collection, | resource-collection, | |||
? date => time, | ? date => time, | |||
? device-id => text, | ? device-id => text, | |||
* $$evidence-extension, | * $$evidence-extension, | |||
} | } | |||
date = 35 | date = 35 | |||
device-id = 36 | device-id = 36 | |||
The following describes each child item of this group. | The following describes each child item of this group. | |||
o global-attributes: The global-attributes group described in | * global-attributes: The global-attributes group described in | |||
Section 2.5. | Section 2.5. | |||
o resource-collection: The resource-collection group described in | * resource-collection: The resource-collection group described in | |||
Section 2.9.2. | Section 2.9.2. | |||
o date (index 35): The date and time the information was collected | * date (index 35): The date and time the information was collected | |||
pertaining to the evidence item. | pertaining to the evidence item. | |||
o device-id (index 36): The endpoint's string identifier from which | * device-id (index 36): The endpoint's string identifier from which | |||
the evidence was collected. | the evidence was collected. | |||
o $$evidence-extension: This CDDL socket can be used to extend the | * $$evidence-extension: This CDDL socket can be used to extend the | |||
evidence-entry group model. See Section 2.2. | evidence-entry group model. See Section 2.2. | |||
2.10. Full CDDL Definition | 2.10. Full CDDL Definition | |||
In order to create a valid CoSWID document the structure of the | In order to create a valid CoSWID document the structure of the | |||
corresponding CBOR message MUST adhere to the following CDDL data | corresponding CBOR message MUST adhere to the following CDDL data | |||
definition. | definition. | |||
concise-swid-tag = { | concise-swid-tag = { | |||
global-attributes, | global-attributes, | |||
tag-id => text / bstr .size 16, | tag-id => text / bstr .size 16, | |||
tag-version => integer, | tag-version => integer, | |||
? corpus => bool, | ? corpus => bool, | |||
? patch => bool, | ? patch => bool, | |||
? supplemental => bool, | ? supplemental => bool, | |||
software-name => text, | software-name => text, | |||
? software-version => text, | ? software-version => text, | |||
? version-scheme => $version-scheme, | ? version-scheme => $version-scheme, | |||
? media => text, | ? media => text, | |||
? software-meta => software-meta-entry / [ 2* software-meta-entry ], | ? software-meta => software-meta-entry / [ 2* software-meta-entry ], | |||
entity => entity-entry / [ 2* entity-entry ], | entity => entity-entry / [ 2* entity-entry ], | |||
? link => link-entry / [ 2* link-entry ], | ? link => link-entry / [ 2* link-entry ], | |||
? (( payload => payload-entry ) // ( evidence => evidence-entry )), | ? (( payload => payload-entry ) // ( evidence => evidence-entry )), | |||
* $$coswid-extension, | * $$coswid-extension, | |||
} | } | |||
any-uri = text | any-uri = text | |||
label = text / int | label = text / int | |||
$version-scheme /= multipartnumeric | $version-scheme /= multipartnumeric | |||
$version-scheme /= multipartnumeric-suffix | $version-scheme /= multipartnumeric-suffix | |||
$version-scheme /= alphanumeric | $version-scheme /= alphanumeric | |||
$version-scheme /= decimal | $version-scheme /= decimal | |||
$version-scheme /= semver | $version-scheme /= semver | |||
$version-scheme /= uint / text | $version-scheme /= uint / text | |||
any-attribute = ( | any-attribute = ( | |||
label => text / int / [ 2* text ] / [ 2* int ] | label => text / int / [ 2* text ] / [ 2* int ] | |||
) | ) | |||
global-attributes = ( | global-attributes = ( | |||
? lang => text, | ? lang => text, | |||
* any-attribute, | * any-attribute, | |||
) | ) | |||
hash-entry = [ | hash-entry = [ | |||
hash-alg-id: int, | hash-alg-id: int, | |||
hash-value: bytes, | hash-value: bytes, | |||
] | ] | |||
entity-entry = { | entity-entry = { | |||
global-attributes, | global-attributes, | |||
entity-name => text, | entity-name => text, | |||
? reg-id => any-uri, | ? reg-id => any-uri, | |||
role => $role / [ 2* $role ], | role => $role / [ 2* $role ], | |||
? thumbprint => hash-entry, | ? thumbprint => hash-entry, | |||
* $$entity-extension, | * $$entity-extension, | |||
} | ||||
} | $role /= tag-creator | |||
$role /= software-creator | ||||
$role /= aggregator | ||||
$role /= distributor | ||||
$role /= licensor | ||||
$role /= maintainer | ||||
$role /= uint / text | ||||
$role /= tag-creator | link-entry = { | |||
$role /= software-creator | global-attributes, | |||
$role /= aggregator | ? artifact => text, | |||
$role /= distributor | href => any-uri, | |||
$role /= licensor | ? media => text, | |||
$role /= uint / text | ? ownership => $ownership, | |||
rel => $rel, | ||||
? media-type => text, | ||||
? use => $use, | ||||
* $$link-extension | ||||
} | ||||
link-entry = { | $ownership /= shared | |||
global-attributes, | $ownership /= private | |||
? artifact => text, | $ownership /= abandon | |||
href => any-uri, | $ownership /= uint / text | |||
? media => text, | ||||
? ownership => $ownership, | ||||
rel => $rel, | ||||
? media-type => text, | ||||
? use => $use, | ||||
* $$link-extension | ||||
} | ||||
$ownership /= shared | $rel /= ancestor | |||
$ownership /= private | $rel /= component | |||
$ownership /= abandon | $rel /= feature | |||
$ownership /= uint / text | $rel /= installationmedia | |||
$rel /= packageinstaller | ||||
$rel /= parent | ||||
$rel /= patches | ||||
$rel /= requires | ||||
$rel /= see-also | ||||
$rel /= supersedes | ||||
$rel /= supplemental | ||||
$rel /= uint / text | ||||
$rel /= ancestor | $use /= optional | |||
$rel /= component | $use /= required | |||
$rel /= feature | $use /= recommended | |||
$rel /= installationmedia | $use /= uint / text | |||
$rel /= packageinstaller | ||||
$rel /= parent | ||||
$rel /= patches | ||||
$rel /= requires | ||||
$rel /= see-also | ||||
$rel /= supersedes | ||||
$rel /= supplemental | ||||
$rel /= uint / text | ||||
$use /= optional | software-meta-entry = { | |||
$use /= required | global-attributes, | |||
$use /= recommended | ? activation-status => text, | |||
$use /= uint / text | ? channel-type => text, | |||
? colloquial-version => text, | ||||
? description => text, | ||||
? edition => text, | ||||
? entitlement-data-required => bool, | ||||
? entitlement-key => text, | ||||
? generator => text, | ||||
? persistent-id => text, | ||||
? product => text, | ||||
? product-family => text, | ||||
? revision => text, | ||||
? summary => text, | ||||
? unspsc-code => text, | ||||
? unspsc-version => text, | ||||
* $$software-meta-extension, | ||||
} | ||||
software-meta-entry = { | path-elements-group = ( ? directory => directory-entry / [ 2* directory-entry ], | |||
global-attributes, | ? file => file-entry / [ 2* file-entry ], | |||
? activation-status => text, | ) | |||
? channel-type => text, | ||||
? colloquial-version => text, | ||||
? description => text, | ||||
? edition => text, | ||||
? entitlement-data-required => bool, | ||||
? entitlement-key => text, | ||||
? generator => text, | ||||
? persistent-id => text, | ||||
? product => text, | ||||
? product-family => text, | ||||
? revision => text, | ||||
? summary => text, | ||||
? unspsc-code => text, | ||||
? unspsc-version => text, | ||||
* $$software-meta-extension, | ||||
} | ||||
path-elements-group = ( ? directory => directory-entry / [ 2* directory-entry ], | resource-collection = ( | |||
? file => file-entry / [ 2* file-entry ], | path-elements-group, | |||
) | ? process => process-entry / [ 2* process-entry ], | |||
? resource => resource-entry / [ 2* resource-entry ], | ||||
* $$resource-collection-extension, | ||||
) | ||||
resource-collection = ( | file-entry = { | |||
path-elements-group, | filesystem-item, | |||
? process => process-entry / [ 2* process-entry ], | ? size => uint, | |||
? resource => resource-entry / [ 2* resource-entry ], | ? file-version => text, | |||
* $$resource-collection-extension, | ? hash => hash-entry, | |||
) | * $$file-extension, | |||
} | ||||
file-entry = { | directory-entry = { | |||
filesystem-item, | filesystem-item, | |||
? size => uint, | ? path-elements => { path-elements-group }, | |||
? file-version => text, | * $$directory-extension, | |||
? hash => hash-entry, | } | |||
* $$file-extension, | ||||
} | ||||
directory-entry = { | process-entry = { | |||
filesystem-item, | global-attributes, | |||
? path-elements => { path-elements-group }, | process-name => text, | |||
* $$directory-extension, | ? pid => integer, | |||
} | * $$process-extension, | |||
} | ||||
process-entry = { | resource-entry = { | |||
global-attributes, | global-attributes, | |||
process-name => text, | type => text, | |||
? pid => integer, | * $$resource-extension, | |||
* $$process-extension, | } | |||
} | ||||
resource-entry = { | ||||
global-attributes, | ||||
type => text, | ||||
* $$resource-extension, | ||||
} | ||||
filesystem-item = ( | filesystem-item = ( | |||
global-attributes, | global-attributes, | |||
? key => bool, | ? key => bool, | |||
? location => text, | ? location => text, | |||
fs-name => text, | fs-name => text, | |||
? root => text, | ? root => text, | |||
) | ) | |||
payload-entry = { | payload-entry = { | |||
global-attributes, | global-attributes, | |||
resource-collection, | resource-collection, | |||
* $$payload-extension, | * $$payload-extension, | |||
} | } | |||
evidence-entry = { | evidence-entry = { | |||
global-attributes, | global-attributes, | |||
resource-collection, | resource-collection, | |||
? date => time, | ? date => time, | |||
? device-id => text, | ? device-id => text, | |||
* $$evidence-extension, | * $$evidence-extension, | |||
} | } | |||
; "global map member" integer indexes | ; "global map member" integer indexes | |||
tag-id = 0 | tag-id = 0 | |||
software-name = 1 | software-name = 1 | |||
entity = 2 | entity = 2 | |||
evidence = 3 | evidence = 3 | |||
link = 4 | link = 4 | |||
software-meta = 5 | software-meta = 5 | |||
payload = 6 | payload = 6 | |||
hash = 7 | hash = 7 | |||
corpus = 8 | corpus = 8 | |||
patch = 9 | patch = 9 | |||
media = 10 | media = 10 | |||
supplemental = 11 | supplemental = 11 | |||
tag-version = 12 | tag-version = 12 | |||
software-version = 13 | software-version = 13 | |||
version-scheme = 14 | version-scheme = 14 | |||
lang = 15 | lang = 15 | |||
directory = 16 | directory = 16 | |||
file = 17 | file = 17 | |||
process = 18 | process = 18 | |||
resource = 19 | resource = 19 | |||
size = 20 | size = 20 | |||
file-version = 21 | file-version = 21 | |||
key = 22 | key = 22 | |||
location = 23 | location = 23 | |||
fs-name = 24 | fs-name = 24 | |||
root = 25 | root = 25 | |||
path-elements = 26 | path-elements = 26 | |||
process-name = 27 | process-name = 27 | |||
pid = 28 | pid = 28 | |||
type = 29 | type = 29 | |||
entity-name = 31 | entity-name = 31 | |||
reg-id = 32 | reg-id = 32 | |||
role = 33 | role = 33 | |||
thumbprint = 34 | thumbprint = 34 | |||
date = 35 | date = 35 | |||
device-id = 36 | device-id = 36 | |||
artifact = 37 | artifact = 37 | |||
href = 38 | href = 38 | |||
ownership = 39 | ownership = 39 | |||
rel = 40 | rel = 40 | |||
media-type = 41 | media-type = 41 | |||
use = 42 | use = 42 | |||
activation-status = 43 | activation-status = 43 | |||
channel-type = 44 | channel-type = 44 | |||
colloquial-version = 45 | colloquial-version = 45 | |||
description = 46 | description = 46 | |||
edition = 47 | edition = 47 | |||
entitlement-data-required = 48 | entitlement-data-required = 48 | |||
entitlement-key = 49 | entitlement-key = 49 | |||
generator = 50 | generator = 50 | |||
persistent-id = 51 | persistent-id = 51 | |||
product = 52 | product = 52 | |||
product-family = 53 | product-family = 53 | |||
revision = 54 | revision = 54 | |||
summary = 55 | summary = 55 | |||
unspsc-code = 56 | unspsc-code = 56 | |||
unspsc-version = 57 | unspsc-version = 57 | |||
; "version-scheme" integer indexes | ; "version-scheme" integer indexes | |||
multipartnumeric = 1 | multipartnumeric = 1 | |||
multipartnumeric-suffix = 2 | multipartnumeric-suffix = 2 | |||
alphanumeric = 3 | alphanumeric = 3 | |||
decimal = 4 | decimal = 4 | |||
semver = 16384 | semver = 16384 | |||
; "role" integer indexes | ; "role" integer indexes | |||
tag-creator=1 | tag-creator=1 | |||
software-creator=2 | software-creator=2 | |||
aggregator=3 | aggregator=3 | |||
distributor=4 | distributor=4 | |||
licensor=5 | licensor=5 | |||
maintainer=6 | ||||
; "ownership" integer indexes | ; "ownership" integer indexes | |||
shared=1 | shared=1 | |||
private=2 | private=2 | |||
abandon=3 | abandon=3 | |||
; "rel" integer indexes | ; "rel" integer indexes | |||
ancestor=1 | ancestor=1 | |||
component=2 | component=2 | |||
feature=3 | feature=3 | |||
installationmedia=4 | installationmedia=4 | |||
packageinstaller=5 | packageinstaller=5 | |||
parent=6 | parent=6 | |||
patches=7 | patches=7 | |||
requires=8 | requires=8 | |||
see-also=9 | see-also=9 | |||
supersedes=10 | supersedes=10 | |||
; supplemental=11 ; this is already defined earlier | ||||
; "use" integer indexes | ; "use" integer indexes | |||
optional=1 | optional=1 | |||
required=2 | required=2 | |||
recommended=3 | recommended=3 | |||
3. Determining the Type of CoSWID | 3. Determining the Type of CoSWID | |||
The operational model for SWID and CoSWID tags was introduced in | The operational model for SWID and CoSWID tags was introduced in | |||
Section 1.1, which described four different CoSWID tag types. The | Section 1.1, which described four different CoSWID tag types. The | |||
following additional rules apply to the use of CoSWID tags to ensure | following additional rules apply to the use of CoSWID tags to ensure | |||
that created tags properly identify the tag type. | that created tags properly identify the tag type. | |||
The first matching rule MUST determine the type of the CoSWID tag. | The first matching rule MUST determine the type of the CoSWID tag. | |||
skipping to change at page 37, line 25 ¶ | skipping to change at page 38, line 5 ¶ | |||
4.1. Version Scheme | 4.1. Version Scheme | |||
The following table contains a set of values for use in the concise- | The following table contains a set of values for use in the concise- | |||
swid-tag group's version-scheme item. These values match the version | swid-tag group's version-scheme item. These values match the version | |||
schemes defined in the ISO/IEC 19770-2:2015 [SWID] specification. | schemes defined in the ISO/IEC 19770-2:2015 [SWID] specification. | |||
Index value indicates the value to use as the version-scheme item's | Index value indicates the value to use as the version-scheme item's | |||
value. The Version Scheme Name provides human-readable text for the | value. The Version Scheme Name provides human-readable text for the | |||
value. The Definition describes the syntax of allowed values for | value. The Definition describes the syntax of allowed values for | |||
each entry. | each entry. | |||
+-------+-------------------------+---------------------------------+ | +-------+-------------------------+--------------------------------+ | |||
| Index | Version Scheme Name | Definition | | | Index | Version Scheme Name | Definition | | |||
+-------+-------------------------+---------------------------------+ | +=======+=========================+================================+ | |||
| 1 | multipartnumeric | Numbers separated by dots, | | | 1 | multipartnumeric | Numbers separated by dots, | | |||
| | | where the numbers are | | | | | where the numbers are | | |||
| | | interpreted as integers (e.g., | | | | | interpreted as integers (e.g., | | |||
| | | 1.2.3, 1.4.5, 1.2.3.4.5.6.7) | | | | | 1.2.3, 1.4.5, 1.2.3.4.5.6.7) | | |||
| | | | | +-------+-------------------------+--------------------------------+ | |||
| 2 | multipartnumeric+suffix | Numbers separated by dots, | | | 2 | multipartnumeric+suffix | Numbers separated by dots, | | |||
| | | where the numbers are | | | | | where the numbers are | | |||
| | | interpreted as integers with an | | | | | interpreted as integers with | | |||
| | | additional textual suffix | | | | | an additional textual suffix | | |||
| | | (e.g., 1.2.3a) | | | | | (e.g., 1.2.3a) | | |||
| | | | | +-------+-------------------------+--------------------------------+ | |||
| 3 | alphanumeric | Strictly a string, sorting is | | | 3 | alphanumeric | Strictly a string, sorting is | | |||
| | | done alphanumerically | | | | | done alphanumerically | | |||
| | | | | +-------+-------------------------+--------------------------------+ | |||
| 4 | decimal | A floating point number (e.g., | | | 4 | decimal | A floating point number (e.g., | | |||
| | | 1.25 is less than 1.3) | | | | | 1.25 is less than 1.3) | | |||
| | | | | +-------+-------------------------+--------------------------------+ | |||
| 16384 | semver | Follows the [SEMVER] | | | 16384 | semver | Follows the [SEMVER] | | |||
| | | specification | | | | | specification | | |||
+-------+-------------------------+---------------------------------+ | +-------+-------------------------+--------------------------------+ | |||
Table 3: Version Scheme Values | Table 3: Version Scheme Values | |||
The values above are registered in the IANA "SWID/CoSWID Version | The values above are registered in the IANA "SWID/CoSWID Version | |||
Scheme Value" registry defined in section Section 5.2.4. Additional | Scheme Value" registry defined in section Section 5.2.4. Additional | |||
entries will likely be registered over time in this registry. | entries will likely be registered over time in this registry. | |||
These version schemes have partially overlapping value spaces. The | These version schemes have partially overlapping value spaces. The | |||
following gudelines help to ensure that the most specific version- | following gudelines help to ensure that the most specific version- | |||
scheme is used: | scheme is used: | |||
o "decimal" and "multipartnumeric" partially overlap in their value | * "decimal" and "multipartnumeric" partially overlap in their value | |||
space when a value matches a decimal number . When a corresponding | space when a value matches a decimal number . When a corresponding | |||
software-version item's value falls within this overlapping value | software-version item's value falls within this overlapping value | |||
space, the "decimal" version scheme SHOULD be used. | space, the "decimal" version scheme SHOULD be used. | |||
o "multipartnumeric" and "semver" partially overlap in their value | * "multipartnumeric" and "semver" partially overlap in their value | |||
space when a "multipartnumeric" value matches the semantic | space when a "multipartnumeric" value matches the semantic | |||
versioning syntax. When a corresponding software-version item's | versioning syntax. When a corresponding software-version item's | |||
value falls within this overlapping value space, the "semver" | value falls within this overlapping value space, the "semver" | |||
version scheme SHOULD be used. | version scheme SHOULD be used. | |||
o "alphanumeric" and other version schemes might overlap in their | * "alphanumeric" and other version schemes might overlap in their | |||
value space. When a corresponding software-version item's value | value space. When a corresponding software-version item's value | |||
falls within this overlapping value space, the other version | falls within this overlapping value space, the other version | |||
scheme SHOULD be used instead of "alphanumeric". | scheme SHOULD be used instead of "alphanumeric". | |||
4.2. Entity Role Values | 4.2. Entity Role Values | |||
The following table indicates the index value to use for the entity- | The following table indicates the index value to use for the entity- | |||
entry group's role item (see Section 2.6). These values match the | entry group's role item (see Section 2.6). These values match the | |||
entity roles defined in the ISO/IEC 19770-2:2015 [SWID] | entity roles defined in the ISO/IEC 19770-2:2015 [SWID] | |||
specification. The "Index" value indicates the value to use as the | specification. The "Index" value indicates the value to use as the | |||
role item's value. The "Role Name" provides human-readable text for | role item's value. The "Role Name" provides human-readable text for | |||
the value. The "Definition" describes the semantic meaning of each | the value. The "Definition" describes the semantic meaning of each | |||
entry. | entry. | |||
+-------+-----------------+-----------------------------------------+ | +-------+-----------------+----------------------------------------+ | |||
| Index | Role Name | Definition | | | Index | Role Name | Definition | | |||
+-------+-----------------+-----------------------------------------+ | +=======+=================+========================================+ | |||
| 1 | tagCreator | The person or organization that created | | | 1 | tagCreator | The person or organization that | | |||
| | | the containing SWID or CoSWID tag | | | | | created the containing SWID or CoSWID | | |||
| | | | | | | | tag | | |||
| 2 | softwareCreator | The person or organization entity that | | +-------+-----------------+----------------------------------------+ | |||
| | | created the software component. | | | 2 | softwareCreator | The person or organization entity that | | |||
| | | | | | | | created the software component. | | |||
| 3 | aggregator | From [SWID], "An organization or system | | +-------+-----------------+----------------------------------------+ | |||
| | | that encapsulates software from their | | | 3 | aggregator | From [SWID], "An organization or | | |||
| | | own and/or other organizations into a | | | | | system that encapsulates software from | | |||
| | | different distribution process (as in | | | | | their own and/or other organizations | | |||
| | | the case of virtualization), or as a | | | | | into a different distribution process | | |||
| | | completed system to accomplish a | | | | | (as in the case of virtualization), or | | |||
| | | specific task (as in the case of a | | | | | as a completed system to accomplish a | | |||
| | | value added reseller)." | | | | | specific task (as in the case of a | | |||
| | | | | | | | value added reseller)." | | |||
| 4 | distributor | From [SWID], "An entity that furthers | | +-------+-----------------+----------------------------------------+ | |||
| | | the marketing, selling and/or | | | 4 | distributor | From [SWID], "An entity that furthers | | |||
| | | distribution of software from the | | | | | the marketing, selling and/or | | |||
| | | original place of manufacture to the | | | | | distribution of software from the | | |||
| | | ultimate user without modifying the | | | | | original place of manufacture to the | | |||
| | | software, its packaging or its | | | | | ultimate user without modifying the | | |||
| | | labelling." | | | | | software, its packaging or its | | |||
| | | | | | | | labelling." | | |||
| 5 | licensor | From [SAM] as "software licensor", a | | +-------+-----------------+----------------------------------------+ | |||
| | | "person or organization who owns or | | | 5 | licensor | From [SAM] as "software licensor", a | | |||
| | | holds the rights to issue a software | | | | | "person or organization who owns or | | |||
| | | license for a specific software | | | | | holds the rights to issue a software | | |||
| | | [component]" | | | | | license for a specific software | | |||
+-------+-----------------+-----------------------------------------+ | | | | [component]" | | |||
+-------+-----------------+----------------------------------------+ | ||||
| 6 | maintainer | The person or organization that is | | ||||
| | | responsible for coordinating and | | ||||
| | | making updates to the source code for | | ||||
| | | the software component. This SHOULD | | ||||
| | | be used when the "maintainer" is a | | ||||
| | | different person or organization than | | ||||
| | | the original "softwareCreator". | | ||||
+-------+-----------------+----------------------------------------+ | ||||
Table 4: Entity Role Values | Table 4: Entity Role Values | |||
The values above are registered in the IANA "SWID/CoSWID Entity Role | The values above are registered in the IANA "SWID/CoSWID Entity Role | |||
Value" registry defined in section Section 5.2.5. Additional values | Value" registry defined in section Section 5.2.5. Additional values | |||
will likely be registered over time. Additionally, the index values | will likely be registered over time. Additionally, the index values | |||
128 through 255 and the name prefix "x_" have been reserved for | 128 through 255 and the name prefix "x_" have been reserved for | |||
private use. | private use. | |||
4.3. Link Ownership Values | 4.3. Link Ownership Values | |||
The following table indicates the index value to use for the link- | The following table indicates the index value to use for the link- | |||
entry group's ownership item (see Section 2.7). These values match | entry group's ownership item (see Section 2.7). These values match | |||
the link ownership values defined in the ISO/IEC 19770-2:2015 [SWID] | the link ownership values defined in the ISO/IEC 19770-2:2015 [SWID] | |||
specification. The "Index" value indicates the value to use as the | specification. The "Index" value indicates the value to use as the | |||
link-entry group ownership item's value. The "Ownership Type" | link-entry group ownership item's value. The "Ownership Type" | |||
provides human-readable text for the value. The "Definition" | provides human-readable text for the value. The "Definition" | |||
describes the semantic meaning of each entry. | describes the semantic meaning of each entry. | |||
+-------+-----------+-----------------------------------------------+ | +-------+-----------+-----------------------------------------------+ | |||
| Index | Ownership | Definition | | | Index | Ownership | Definition | | |||
| | Type | | | | | Type | | | |||
+-------+-----------+-----------------------------------------------+ | +=======+===========+===============================================+ | |||
| 1 | abandon | If the software component referenced by the | | | 1 | abandon | If the software component referenced by the | | |||
| | | CoSWID tag is uninstalled, then the | | | | | CoSWID tag is uninstalled, then the | | |||
| | | referenced software SHOULD not be uninstalled | | | | | referenced software SHOULD NOT be | | |||
| | | | | | | | uninstalled | | |||
+-------+-----------+-----------------------------------------------+ | ||||
| 2 | private | If the software component referenced by the | | | 2 | private | If the software component referenced by the | | |||
| | | CoSWID tag is uninstalled, then the | | | | | CoSWID tag is uninstalled, then the | | |||
| | | referenced software SHOULD be uninstalled as | | | | | referenced software SHOULD be uninstalled as | | |||
| | | well. | | | | | well. | | |||
| | | | | +-------+-----------+-----------------------------------------------+ | |||
| 3 | shared | If the software component referenced by the | | | 3 | shared | If the software component referenced by the | | |||
| | | CoSWID tag is uninstalled, then the | | | | | CoSWID tag is uninstalled, then the | | |||
| | | referenced software SHOULD be uninstalled if | | | | | referenced software SHOULD be uninstalled if | | |||
| | | no other components sharing the software. | | | | | no other components sharing the software. | | |||
+-------+-----------+-----------------------------------------------+ | +-------+-----------+-----------------------------------------------+ | |||
Table 5: Link Ownership Values | Table 5: Link Ownership Values | |||
The values above are registered in the IANA "SWID/CoSWID Link | The values above are registered in the IANA "SWID/CoSWID Link | |||
Ownership Value" registry defined in section Section 5.2.6. | Ownership Value" registry defined in section Section 5.2.6. | |||
Additional values will likely be registered over time. Additionally, | Additional values will likely be registered over time. Additionally, | |||
the index values 128 through 255 and the name prefix "x_" have been | the index values 128 through 255 and the name prefix "x_" have been | |||
reserved for private use. | reserved for private use. | |||
4.4. Link Rel Values | 4.4. Link Rel Values | |||
The following table indicates the index value to use for the link- | The following table indicates the index value to use for the link- | |||
entry group's rel item (see Section 2.7). These values match the | entry group's rel item (see Section 2.7). These values match the | |||
link rel values defined in the ISO/IEC 19770-2:2015 [SWID] | link rel values defined in the ISO/IEC 19770-2:2015 [SWID] | |||
specification. The "Index" value indicates the value to use as the | specification. The "Index" value indicates the value to use as the | |||
link-entry group ownership item's value. The "Relationship Type" | link-entry group ownership item's value. The "Relationship Type" | |||
provides human-readable text for the value. The "Definition" | provides human-readable text for the value. The "Definition" | |||
describes the semantic meaning of each entry. | describes the semantic meaning of each entry. | |||
+-------+-------------------+---------------------------------------+ | +-------+-------------------+---------------------------------------+ | |||
| Index | Relationship Type | Definition | | | Index | Relationship Type | Definition | | |||
+-------+-------------------+---------------------------------------+ | +=======+===================+=======================================+ | |||
| 1 | ancestor | The link references a SWID/CoSWID tag | | | 1 | ancestor | The link references a SWID/CoSWID | | |||
| | | for a previous release of this | | | | | tag for a previous release of this | | |||
| | | software. This can be useful to | | | | | software. This can be useful to | | |||
| | | define an upgrade path. | | | | | define an upgrade path. | | |||
| | | | | +-------+-------------------+---------------------------------------+ | |||
| 2 | component | The link references a SWID/CoSWID tag | | | 2 | component | The link references a SWID/CoSWID | | |||
| | | for a separate component of this | | | | | tag for a separate component of | | |||
| | | software. | | ||||
| | | | | ||||
| 3 | feature | The link references a configurable | | ||||
| | | feature of this software that can be | | ||||
| | | enabled or disabled without changing | | ||||
| | | the installed files. | | ||||
| | | | | ||||
| 4 | installationmedia | The link references the installation | | ||||
| | | package that can be used to install | | ||||
| | | this software. | | | | | this software. | | |||
| | | | | +-------+-------------------+---------------------------------------+ | |||
| 5 | packageinstaller | The link references the installation | | | 3 | feature | The link references a configurable | | |||
| | | software needed to install this | | | | | feature of this software that can | | |||
| | | software. | | | | | be enabled or disabled without | | |||
| | | | | | | | changing the installed files. | | |||
| 6 | parent | The link references a SWID/CoSWID tag | | +-------+-------------------+---------------------------------------+ | |||
| | | that is the parent of this | | | 4 | installationmedia | The link references the | | |||
| | | SWID/CoSWID tag. This relationship | | | | | installation package that can be | | |||
| | | can be used when multiple software | | | | | used to install this software. | | |||
| | | components are part of a software | | +-------+-------------------+---------------------------------------+ | |||
| | | bundle, where the "parent" is the | | | 5 | packageinstaller | The link references the | | |||
| | | SWID/CoSWID tag for the bundle, and | | | | | installation software needed to | | |||
| | | each child is a "component". In such | | | | | install this software. | | |||
| | | a case, each child component can | | +-------+-------------------+---------------------------------------+ | |||
| | | provide a "parent" link relationship | | | 6 | parent | The link references a SWID/CoSWID | | |||
| | | to the bundle's SWID/CoSWID tag, and | | | | | tag that is the parent of this | | |||
| | | the bundle can provide a "component" | | | | | SWID/CoSWID tag. This | | |||
| | | relationship can be used when | | ||||
| | | multiple software components are | | ||||
| | | part of a software bundle, where | | ||||
| | | the "parent" is the SWID/CoSWID | | ||||
| | | tag for the bundle, and each child | | ||||
| | | is a "component". In such a case, | | ||||
| | | each child component can provide a | | ||||
| | | "parent" link relationship to the | | ||||
| | | bundle's SWID/CoSWID tag, and the | | ||||
| | | bundle can provide a "component" | | ||||
| | | link relationship to each child | | | | | link relationship to each child | | |||
| | | software component. | | | | | software component. | | |||
| | | | | +-------+-------------------+---------------------------------------+ | |||
| 7 | patches | The link references a SWID/CoSWID tag | | | 7 | patches | The link references a SWID/CoSWID | | |||
| | | that this software patches. Typically | | | | | tag that this software patches. | | |||
| | | only used for patch SWID/CoSWID tags | | | | | Typically only used for patch | | |||
| | | (see Section 1.1). | | | | | SWID/CoSWID tags (see | | |||
| | | | | | | | Section 1.1). | | |||
+-------+-------------------+---------------------------------------+ | ||||
| 8 | requires | The link references a prerequisite | | | 8 | requires | The link references a prerequisite | | |||
| | | for installing this software. A patch | | | | | for installing this software. A | | |||
| | | SWID/CoSWID tag (see Section 1.1) can | | | | | patch SWID/CoSWID tag (see | | |||
| | | use this to represent base software | | | | | Section 1.1) can use this to | | |||
| | | or another patch that needs to be | | | | | represent base software or another | | |||
| | | installed first. | | | | | patch that needs to be installed | | |||
| | | | | | | | first. | | |||
+-------+-------------------+---------------------------------------+ | ||||
| 9 | see-also | The link references other software | | | 9 | see-also | The link references other software | | |||
| | | that may be of interest that relates | | | | | that may be of interest that | | |||
| | | to this software. | | | | | relates to this software. | | |||
| | | | | +-------+-------------------+---------------------------------------+ | |||
| 10 | supersedes | The link references another software | | | 10 | supersedes | The link references another | | |||
| | | that this software replaces. A patch | | | | | software that this software | | |||
| | | SWID/CoSWID tag (see Section 1.1) can | | | | | replaces. A patch SWID/CoSWID tag | | |||
| | | use this to represent another patch | | | | | (see Section 1.1) can use this to | | |||
| | | that this patch incorporates or | | | | | represent another patch that this | | |||
| | | replaces. | | | | | patch incorporates or replaces. | | |||
| | | | | +-------+-------------------+---------------------------------------+ | |||
| 11 | supplemental | The link references a SWID/CoSWID tag | | | 11 | supplemental | The link references a SWID/CoSWID | | |||
| | | that this tag supplements. Used on | | | | | tag that this tag supplements. | | |||
| | | supplemental SWID/CoSWID tags (see | | | | | Used on supplemental SWID/CoSWID | | |||
| | | Section 1.1). | | | | | tags (see Section 1.1). | | |||
+-------+-------------------+---------------------------------------+ | +-------+-------------------+---------------------------------------+ | |||
Table 6: Link Relationship Values | Table 6: Link Relationship Values | |||
The values above are registered in the IANA "SWID/CoSWID Link | The values above are registered in the IANA "SWID/CoSWID Link | |||
Relationship Value" registry defined in section Section 5.2.7. | Relationship Value" registry defined in section Section 5.2.7. | |||
Additional values will likely be registered over time. Additionally, | Additional values will likely be registered over time. Additionally, | |||
the index values 32768 through 65535 and the name prefix "x_" have | the index values 32768 through 65535 and the name prefix "x_" have | |||
been reserved for private use. | been reserved for private use. | |||
4.5. Link Use Values | 4.5. Link Use Values | |||
The following table indicates the index value to use for the link- | The following table indicates the index value to use for the link- | |||
entry group's use item (see Section 2.7). These values match the | entry group's use item (see Section 2.7). These values match the | |||
link use values defined in the ISO/IEC 19770-2:2015 [SWID] | link use values defined in the ISO/IEC 19770-2:2015 [SWID] | |||
specification. The "Index" value indicates the value to use as the | specification. The "Index" value indicates the value to use as the | |||
link-entry group use item's value. The "Use Type" provides human- | link-entry group use item's value. The "Use Type" provides human- | |||
readable text for the value. The "Definition" describes the semantic | readable text for the value. The "Definition" describes the semantic | |||
meaning of each entry. | meaning of each entry. | |||
+-------+-------------+---------------------------------------------+ | +-------+-------------+----------------------------------------+ | |||
| Index | Use Type | Definition | | | Index | Use Type | Definition | | |||
+-------+-------------+---------------------------------------------+ | +=======+=============+========================================+ | |||
| 1 | optional | From [SWID], "Not absolutely required; the | | | 1 | optional | From [SWID], "Not absolutely required; | | |||
| | | [Link]'d software is installed only when | | | | | the [Link]'d software is installed | | |||
| | | specified." | | | | | only when specified." | | |||
| | | | | +-------+-------------+----------------------------------------+ | |||
| 2 | required | From [SWID], "The [Link]'d software is | | | 2 | required | From [SWID], "The [Link]'d software is | | |||
| | | absolutely required for an operation | | | | | absolutely required for an operation | | |||
| | | software installation." | | | | | software installation." | | |||
| | | | | +-------+-------------+----------------------------------------+ | |||
| 3 | recommended | From [SWID], "Not absolutely required; the | | | 3 | recommended | From [SWID], "Not absolutely required; | | |||
| | | [Link]'d software is installed unless | | | | | the [Link]'d software is installed | | |||
| | | specified otherwise." | | | | | unless specified otherwise." | | |||
+-------+-------------+---------------------------------------------+ | +-------+-------------+----------------------------------------+ | |||
Table 7: Link Use Values | Table 7: Link Use Values | |||
The values above are registered in the IANA "SWID/CoSWID Link Use | The values above are registered in the IANA "SWID/CoSWID Link Use | |||
Value" registry defined in section Section 5.2.8. Additional values | Value" registry defined in section Section 5.2.8. Additional values | |||
will likely be registered over time. Additionally, the index values | will likely be registered over time. Additionally, the index values | |||
128 through 255 and the name prefix "x_" have been reserved for | 128 through 255 and the name prefix "x_" have been reserved for | |||
private use. | private use. | |||
5. IANA Considerations | 5. IANA Considerations | |||
skipping to change at page 43, line 28 ¶ | skipping to change at page 45, line 7 ¶ | |||
5.1. CoSWID Items Registry | 5.1. CoSWID Items Registry | |||
This registry uses integer values as index values in CBOR maps. | This registry uses integer values as index values in CBOR maps. | |||
This document defines a new registry titled "CoSWID Items". Future | This document defines a new registry titled "CoSWID Items". Future | |||
registrations for this registry are to be made based on [RFC8126] as | registrations for this registry are to be made based on [RFC8126] as | |||
follows: | follows: | |||
+------------------+-------------------------+ | +------------------+-------------------------+ | |||
| Range | Registration Procedures | | | Range | Registration Procedures | | |||
+------------------+-------------------------+ | +==================+=========================+ | |||
| 0-32767 | Standards Action | | | 0-32767 | Standards Action | | |||
| | | | +------------------+-------------------------+ | |||
| 32768-4294967295 | Specification Required | | | 32768-4294967295 | Specification Required | | |||
+------------------+-------------------------+ | +------------------+-------------------------+ | |||
Table 8: CoSWID Items Registration Proceedures | Table 8: CoSWID Items Registration Proceedures | |||
All negative values are reserved for Private Use. | All negative values are reserved for Private Use. | |||
Initial registrations for the "CoSWID Items" registry are provided | Initial registrations for the "CoSWID Items" registry are provided | |||
below. Assignments consist of an integer index value, the item name, | below. Assignments consist of an integer index value, the item name, | |||
and a reference to the defining specification. | and a reference to the defining specification. | |||
+---------------+---------------------------+---------------+ | +---------------+---------------------------+---------------+ | |||
| Index | Item Name | Specification | | | Index | Item Name | Specification | | |||
+---------------+---------------------------+---------------+ | +===============+===========================+===============+ | |||
| 0 | tag-id | RFC-AAAA | | | 0 | tag-id | RFC-AAAA | | |||
| | | | | +---------------+---------------------------+---------------+ | |||
| 1 | software-name | RFC-AAAA | | | 1 | software-name | RFC-AAAA | | |||
| | | | | +---------------+---------------------------+---------------+ | |||
| 2 | entity | RFC-AAAA | | | 2 | entity | RFC-AAAA | | |||
| | | | | +---------------+---------------------------+---------------+ | |||
| 3 | evidence | RFC-AAAA | | | 3 | evidence | RFC-AAAA | | |||
| | | | | +---------------+---------------------------+---------------+ | |||
| 4 | link | RFC-AAAA | | | 4 | link | RFC-AAAA | | |||
| | | | | +---------------+---------------------------+---------------+ | |||
| 5 | software-meta | RFC-AAAA | | | 5 | software-meta | RFC-AAAA | | |||
| | | | | +---------------+---------------------------+---------------+ | |||
| 6 | payload | RFC-AAAA | | | 6 | payload | RFC-AAAA | | |||
| | | | | +---------------+---------------------------+---------------+ | |||
| 7 | hash | RFC-AAAA | | | 7 | hash | RFC-AAAA | | |||
| | | | | +---------------+---------------------------+---------------+ | |||
| 8 | corpus | RFC-AAAA | | | 8 | corpus | RFC-AAAA | | |||
| | | | | +---------------+---------------------------+---------------+ | |||
| 9 | patch | RFC-AAAA | | | 9 | patch | RFC-AAAA | | |||
| | | | | +---------------+---------------------------+---------------+ | |||
| 10 | media | RFC-AAAA | | | 10 | media | RFC-AAAA | | |||
| | | | | +---------------+---------------------------+---------------+ | |||
| 11 | supplemental | RFC-AAAA | | | 11 | supplemental | RFC-AAAA | | |||
| | | | | +---------------+---------------------------+---------------+ | |||
| 12 | tag-version | RFC-AAAA | | | 12 | tag-version | RFC-AAAA | | |||
| | | | | +---------------+---------------------------+---------------+ | |||
| 13 | software-version | RFC-AAAA | | | 13 | software-version | RFC-AAAA | | |||
| | | | | +---------------+---------------------------+---------------+ | |||
| 14 | version-scheme | RFC-AAAA | | | 14 | version-scheme | RFC-AAAA | | |||
| | | | | +---------------+---------------------------+---------------+ | |||
| 15 | lang | RFC-AAAA | | | 15 | lang | RFC-AAAA | | |||
| | | | | +---------------+---------------------------+---------------+ | |||
| 16 | directory | RFC-AAAA | | | 16 | directory | RFC-AAAA | | |||
| | | | | +---------------+---------------------------+---------------+ | |||
| 17 | file | RFC-AAAA | | | 17 | file | RFC-AAAA | | |||
| | | | | +---------------+---------------------------+---------------+ | |||
| 18 | process | RFC-AAAA | | | 18 | process | RFC-AAAA | | |||
| | | | | +---------------+---------------------------+---------------+ | |||
| 19 | resource | RFC-AAAA | | | 19 | resource | RFC-AAAA | | |||
| | | | | +---------------+---------------------------+---------------+ | |||
| 20 | size | RFC-AAAA | | | 20 | size | RFC-AAAA | | |||
| | | | | +---------------+---------------------------+---------------+ | |||
| 21 | file-version | RFC-AAAA | | | 21 | file-version | RFC-AAAA | | |||
| | | | | +---------------+---------------------------+---------------+ | |||
| 22 | key | RFC-AAAA | | | 22 | key | RFC-AAAA | | |||
| | | | | +---------------+---------------------------+---------------+ | |||
| 23 | location | RFC-AAAA | | | 23 | location | RFC-AAAA | | |||
| | | | | +---------------+---------------------------+---------------+ | |||
| 24 | fs-name | RFC-AAAA | | | 24 | fs-name | RFC-AAAA | | |||
| | | | | +---------------+---------------------------+---------------+ | |||
| 25 | root | RFC-AAAA | | | 25 | root | RFC-AAAA | | |||
| | | | | +---------------+---------------------------+---------------+ | |||
| 26 | path-elements | RFC-AAAA | | | 26 | path-elements | RFC-AAAA | | |||
| | | | | +---------------+---------------------------+---------------+ | |||
| 27 | process-name | RFC-AAAA | | | 27 | process-name | RFC-AAAA | | |||
| | | | | +---------------+---------------------------+---------------+ | |||
| 28 | pid | RFC-AAAA | | | 28 | pid | RFC-AAAA | | |||
| | | | | +---------------+---------------------------+---------------+ | |||
| 29 | type | RFC-AAAA | | | 29 | type | RFC-AAAA | | |||
| | | | | +---------------+---------------------------+---------------+ | |||
| 31 | entity-name | RFC-AAAA | | | 31 | entity-name | RFC-AAAA | | |||
| | | | | +---------------+---------------------------+---------------+ | |||
| 32 | reg-id | RFC-AAAA | | | 32 | reg-id | RFC-AAAA | | |||
| | | | | +---------------+---------------------------+---------------+ | |||
| 33 | role | RFC-AAAA | | | 33 | role | RFC-AAAA | | |||
| | | | | +---------------+---------------------------+---------------+ | |||
| 34 | thumbprint | RFC-AAAA | | | 34 | thumbprint | RFC-AAAA | | |||
| | | | | +---------------+---------------------------+---------------+ | |||
| 35 | date | RFC-AAAA | | | 35 | date | RFC-AAAA | | |||
| | | | | +---------------+---------------------------+---------------+ | |||
| 36 | device-id | RFC-AAAA | | | 36 | device-id | RFC-AAAA | | |||
| | | | | +---------------+---------------------------+---------------+ | |||
| 37 | artifact | RFC-AAAA | | | 37 | artifact | RFC-AAAA | | |||
| | | | | +---------------+---------------------------+---------------+ | |||
| 38 | href | RFC-AAAA | | | 38 | href | RFC-AAAA | | |||
| | | | | +---------------+---------------------------+---------------+ | |||
| 39 | ownership | RFC-AAAA | | | 39 | ownership | RFC-AAAA | | |||
| | | | | +---------------+---------------------------+---------------+ | |||
| 40 | rel | RFC-AAAA | | | 40 | rel | RFC-AAAA | | |||
| | | | | +---------------+---------------------------+---------------+ | |||
| 41 | media-type | RFC-AAAA | | | 41 | media-type | RFC-AAAA | | |||
| | | | | +---------------+---------------------------+---------------+ | |||
| 42 | use | RFC-AAAA | | | 42 | use | RFC-AAAA | | |||
| | | | | +---------------+---------------------------+---------------+ | |||
| 43 | activation-status | RFC-AAAA | | | 43 | activation-status | RFC-AAAA | | |||
| | | | | +---------------+---------------------------+---------------+ | |||
| 44 | channel-type | RFC-AAAA | | | 44 | channel-type | RFC-AAAA | | |||
| | | | | +---------------+---------------------------+---------------+ | |||
| 45 | colloquial-version | RFC-AAAA | | | 45 | colloquial-version | RFC-AAAA | | |||
| | | | | +---------------+---------------------------+---------------+ | |||
| 46 | description | RFC-AAAA | | | 46 | description | RFC-AAAA | | |||
| | | | | +---------------+---------------------------+---------------+ | |||
| 47 | edition | RFC-AAAA | | | 47 | edition | RFC-AAAA | | |||
| | | | | +---------------+---------------------------+---------------+ | |||
| 48 | entitlement-data-required | RFC-AAAA | | | 48 | entitlement-data-required | RFC-AAAA | | |||
| | | | | +---------------+---------------------------+---------------+ | |||
| 49 | entitlement-key | RFC-AAAA | | | 49 | entitlement-key | RFC-AAAA | | |||
| | | | | +---------------+---------------------------+---------------+ | |||
| 50 | generator | RFC-AAAA | | | 50 | generator | RFC-AAAA | | |||
| | | | | +---------------+---------------------------+---------------+ | |||
| 51 | persistent-id | RFC-AAAA | | | 51 | persistent-id | RFC-AAAA | | |||
| | | | | +---------------+---------------------------+---------------+ | |||
| 52 | product | RFC-AAAA | | | 52 | product | RFC-AAAA | | |||
| | | | | +---------------+---------------------------+---------------+ | |||
| 53 | product-family | RFC-AAAA | | | 53 | product-family | RFC-AAAA | | |||
| | | | | +---------------+---------------------------+---------------+ | |||
| 54 | revision | RFC-AAAA | | | 54 | revision | RFC-AAAA | | |||
| | | | | +---------------+---------------------------+---------------+ | |||
| 55 | summary | RFC-AAAA | | | 55 | summary | RFC-AAAA | | |||
| | | | | +---------------+---------------------------+---------------+ | |||
| 56 | unspsc-code | RFC-AAAA | | | 56 | unspsc-code | RFC-AAAA | | |||
| | | | | +---------------+---------------------------+---------------+ | |||
| 57 | unspsc-version | RFC-AAAA | | | 57 | unspsc-version | RFC-AAAA | | |||
| | | | | +---------------+---------------------------+---------------+ | |||
| 58-4294967295 | Unassigned | | | | 58-4294967295 | Unassigned | | | |||
+---------------+---------------------------+---------------+ | +---------------+---------------------------+---------------+ | |||
Table 9: CoSWID Items Inital Registrations | Table 9: CoSWID Items Inital Registrations | |||
5.2. SWID/CoSWID Value Registries | 5.2. SWID/CoSWID Value Registries | |||
The following IANA registries provide a mechanism for new values to | The following IANA registries provide a mechanism for new values to | |||
be added over time to common enumerations used by SWID and CoSWID. | be added over time to common enumerations used by SWID and CoSWID. | |||
5.2.1. Registration Proceedures | 5.2.1. Registration Proceedures | |||
The following registries allow for the registration of index values | The following registries allow for the registration of index values | |||
and names. New registrations will be permitted through either the | and names. New registrations will be permitted through either the | |||
skipping to change at page 46, line 49 ¶ | skipping to change at page 48, line 30 ¶ | |||
5.2.2. Private Use of Index and Name Values | 5.2.2. Private Use of Index and Name Values | |||
The integer-based index values in the private use range (-1 to -256) | The integer-based index values in the private use range (-1 to -256) | |||
are intended for testing purposes and closed environments; values in | are intended for testing purposes and closed environments; values in | |||
other ranges SHOULD NOT be assigned for testing. | other ranges SHOULD NOT be assigned for testing. | |||
For names that correspond to private use index values, an | For names that correspond to private use index values, an | |||
Internationalized Domain Name prefix MUST be used to prevent name | Internationalized Domain Name prefix MUST be used to prevent name | |||
conflicts using the form: | conflicts using the form: | |||
" domain.prefix-name " | "domain.prefix-name" | |||
Where "domain.prefix" MUST be a valid Internationalized Domain Name | Where "domain.prefix" MUST be a valid Internationalized Domain Name | |||
as defined by [RFC5892], and "name" MUST be a unique name within the | as defined by [RFC5892], and "name" MUST be a unique name within the | |||
namespace defined by the "domain.prefix". Use of a prefix in this | namespace defined by the "domain.prefix". Use of a prefix in this | |||
way allows for a name to be used initially in the private use range, | way allows for a name to be used initially in the private use range, | |||
and to be registered at a future point in time. This is consistent | and to be registered at a future point in time. This is consistent | |||
with the guidance in [BCP178]. | with the guidance in [BCP178]. | |||
5.2.3. Expert Review Guidelines | 5.2.3. Expert Review Guidelines | |||
Designated experts MUST ensure that new registration requests meet | Designated experts MUST ensure that new registration requests meet | |||
the following additional guidelines: | the following additional guidelines: | |||
o The requesting specification MUST provide a clear semantic | * The requesting specification MUST provide a clear semantic | |||
definition for the new entry. This definition MUST clearly | definition for the new entry. This definition MUST clearly | |||
differentiate the requested entry from other previously registered | differentiate the requested entry from other previously registered | |||
entries. | entries. | |||
o The requesting specification MUST describe the intended use of the | * The requesting specification MUST describe the intended use of the | |||
entry, including any co-constraints that exist between the use of | entry, including any co-constraints that exist between the use of | |||
the entry's index value or name, and other values defined within | the entry's index value or name, and other values defined within | |||
the SWID/CoSWID model. | the SWID/CoSWID model. | |||
o Index values and names outside the private use space MUST NOT be | * Index values and names outside the private use space MUST NOT be | |||
used without registration. This is considered squatting and | used without registration. This is considered squatting and | |||
SHOULD be avoided. Designated experts MUST ensure that reviewed | SHOULD be avoided. Designated experts MUST ensure that reviewed | |||
specifications register all appropriate index values and names. | specifications register all appropriate index values and names. | |||
o Standards track documents MAY include entries registered in the | * Standards track documents MAY include entries registered in the | |||
range reserved for entries under the Specification Required | range reserved for entries under the Specification Required | |||
policy. This can occur when a standards track document provides | policy. This can occur when a standards track document provides | |||
further guidance on the use of index values and names that are in | further guidance on the use of index values and names that are in | |||
common use, but were not registered with IANA. This situation | common use, but were not registered with IANA. This situation | |||
SHOULD be avoided. | SHOULD be avoided. | |||
o All registered names MUST be valid according to the XML Schema | * All registered names MUST be valid according to the XML Schema | |||
NMTOKEN data type (see [W3C.REC-xmlschema-2-20041028] section | NMTOKEN data type (see [W3C.REC-xmlschema-2-20041028] section | |||
3.3.4). This ensures that registered names are compatible with | 3.3.4). This ensures that registered names are compatible with | |||
the SWID format [SWID] where they are used. | the SWID format [SWID] where they are used. | |||
o Registration of vanity names SHOULD be discouraged. The | * Registration of vanity names SHOULD be discouraged. The | |||
requesting specification MUST provide a description of how a | requesting specification MUST provide a description of how a | |||
requested name will allow for use by multiple stakeholders. | requested name will allow for use by multiple stakeholders. | |||
5.2.4. SWID/CoSWID Version Scheme Value Registry | 5.2.4. SWID/CoSWID Version Scheme Value Registry | |||
This document establishes a new registry titled "SWID/CoSWID Version | This document establishes a new registry titled "SWID/CoSWID Version | |||
Scheme Values". This registry provides index values for use as | Scheme Values". This registry provides index values for use as | |||
version-scheme item values in this document and version scheme names | version-scheme item values in this document and version scheme names | |||
for use in [SWID]. | for use in [SWID]. | |||
[TO BE REMOVED: This registration should take place at the following | [TO BE REMOVED: This registration should take place at the following | |||
location: https://www.iana.org/assignments/swid] | location: https://www.iana.org/assignments/swid] | |||
This registry uses the registration proceedures defined in | This registry uses the registration proceedures defined in | |||
Section 5.2.1 with the following associated ranges: | Section 5.2.1 with the following associated ranges: | |||
+-------------+-------------------------+ | +-------------+-------------------------+ | |||
| Range | Registration Procedures | | | Range | Registration Procedures | | |||
+-------------+-------------------------+ | +=============+=========================+ | |||
| 0-16383 | Standards Action | | | 0-16383 | Standards Action | | |||
| | | | +-------------+-------------------------+ | |||
| 16384-65535 | Specification Required | | | 16384-65535 | Specification Required | | |||
+-------------+-------------------------+ | +-------------+-------------------------+ | |||
Table 10: CoSWID Version Scheme Registration Proceedures | Table 10: CoSWID Version Scheme | |||
Registration Proceedures | ||||
Assignments MUST consist of an integer Index value, the Version | Assignments MUST consist of an integer Index value, the Version | |||
Scheme Name, and a reference to the defining specification. | Scheme Name, and a reference to the defining specification. | |||
Initial registrations for the "SWID/CoSWID Version Scheme Value" | Initial registrations for the "SWID/CoSWID Version Scheme Value" | |||
registry are provided below, which are derived from the textual | registry are provided below, which are derived from the textual | |||
version scheme names defined in [SWID]. | version scheme names defined in [SWID]. | |||
+-------------+-------------------------+-----------------+ | +-------------+-------------------------+-----------------+ | |||
| Index | Version Scheme Name | Specification | | | Index | Version Scheme Name | Specification | | |||
+-------------+-------------------------+-----------------+ | +=============+=========================+=================+ | |||
| 0 | Reserved | | | | 0 | Reserved | | | |||
| | | | | +-------------+-------------------------+-----------------+ | |||
| 1 | multipartnumeric | See Section 4.1 | | | 1 | multipartnumeric | See Section 4.1 | | |||
| | | | | +-------------+-------------------------+-----------------+ | |||
| 2 | multipartnumeric+suffix | See Section 4.1 | | | 2 | multipartnumeric+suffix | See Section 4.1 | | |||
| | | | | +-------------+-------------------------+-----------------+ | |||
| 3 | alphanumeric | See Section 4.1 | | | 3 | alphanumeric | See Section 4.1 | | |||
| | | | | +-------------+-------------------------+-----------------+ | |||
| 4 | decimal | See Section 4.1 | | | 4 | decimal | See Section 4.1 | | |||
| | | | | +-------------+-------------------------+-----------------+ | |||
| 5-16383 | Unassigned | | | | 5-16383 | Unassigned | | | |||
| | | | | +-------------+-------------------------+-----------------+ | |||
| 16384 | semver | [SEMVER] | | | 16384 | semver | [SEMVER] | | |||
| | | | | +-------------+-------------------------+-----------------+ | |||
| 16385-65535 | Unassigned | | | | 16385-65535 | Unassigned | | | |||
+-------------+-------------------------+-----------------+ | +-------------+-------------------------+-----------------+ | |||
Table 11: CoSWID Version Scheme Inital Registrations | Table 11: CoSWID Version Scheme Inital Registrations | |||
Registrations MUST conform to the expert review guidelines defined in | Registrations MUST conform to the expert review guidelines defined in | |||
Section 5.2.3. | Section 5.2.3. | |||
Designated experts MUST also ensure that newly requested entries | Designated experts MUST also ensure that newly requested entries | |||
define a value space for the corresponding version item that is | define a value space for the corresponding version item that is | |||
unique from other previously registered entries. Note: The inital | unique from other previously registered entries. Note: The inital | |||
registrations violate this requirement, but are included for | registrations violate this requirement, but are included for | |||
backwards compatibility with [SWID]. Guidelines on how to deconflict | backwards compatibility with [SWID]. Guidelines on how to deconflict | |||
these value spaces are defined in section Section 4.1. | these value spaces are defined in section Section 4.1. | |||
skipping to change at page 49, line 30 ¶ | skipping to change at page 51, line 7 ¶ | |||
in [SWID]. | in [SWID]. | |||
[TO BE REMOVED: This registration should take place at the following | [TO BE REMOVED: This registration should take place at the following | |||
location: https://www.iana.org/assignments/swid] | location: https://www.iana.org/assignments/swid] | |||
This registry uses the registration proceedures defined in | This registry uses the registration proceedures defined in | |||
Section 5.2.1 with the following associated ranges: | Section 5.2.1 with the following associated ranges: | |||
+---------+-------------------------+ | +---------+-------------------------+ | |||
| Range | Registration Procedures | | | Range | Registration Procedures | | |||
+---------+-------------------------+ | +=========+=========================+ | |||
| 0-127 | Standards Action | | | 0-127 | Standards Action | | |||
| | | | +---------+-------------------------+ | |||
| 128-255 | Specification Required | | | 128-255 | Specification Required | | |||
+---------+-------------------------+ | +---------+-------------------------+ | |||
Table 12: CoSWID Entity Role Registration Proceedures | Table 12: CoSWID Entity Role | |||
Registration Proceedures | ||||
Assignments consist of an integer Index value, a Role Name, and a | Assignments consist of an integer Index value, a Role Name, and a | |||
reference to the defining specification. | reference to the defining specification. | |||
Initial registrations for the "SWID/CoSWID Entity Role Value" | Initial registrations for the "SWID/CoSWID Entity Role Value" | |||
registry are provided below, which are derived from the textual | registry are provided below, which are derived from the textual | |||
entity role names defined in [SWID]. | entity role names defined in [SWID]. | |||
+-------+-----------------+-----------------+ | +-------+-----------------+-----------------+ | |||
| Index | Role Name | Specification | | | Index | Role Name | Specification | | |||
+-------+-----------------+-----------------+ | +=======+=================+=================+ | |||
| 0 | Reserved | | | | 0 | Reserved | | | |||
| | | | | +-------+-----------------+-----------------+ | |||
| 1 | tagCreator | See Section 4.2 | | | 1 | tagCreator | See Section 4.2 | | |||
| | | | | +-------+-----------------+-----------------+ | |||
| 2 | softwareCreator | See Section 4.2 | | | 2 | softwareCreator | See Section 4.2 | | |||
| | | | | +-------+-----------------+-----------------+ | |||
| 3 | aggregator | See Section 4.2 | | | 3 | aggregator | See Section 4.2 | | |||
| | | | | +-------+-----------------+-----------------+ | |||
| 4 | distributor | See Section 4.2 | | | 4 | distributor | See Section 4.2 | | |||
| | | | | +-------+-----------------+-----------------+ | |||
| 5 | licensor | See Section 4.2 | | | 5 | licensor | See Section 4.2 | | |||
| | | | | +-------+-----------------+-----------------+ | |||
| 6-255 | Unassigned | | | | 6 | maintainer | See Section 4.2 | | |||
+-------+-----------------+-----------------+ | ||||
| 7-255 | Unassigned | | | ||||
+-------+-----------------+-----------------+ | +-------+-----------------+-----------------+ | |||
Table 13: CoSWID Entity Role Inital Registrations | Table 13: CoSWID Entity Role Inital | |||
Registrations | ||||
Registrations MUST conform to the expert review guidlines defined in | Registrations MUST conform to the expert review guidlines defined in | |||
Section 5.2.3. | Section 5.2.3. | |||
5.2.6. SWID/CoSWID Link Ownership Value Registry | 5.2.6. SWID/CoSWID Link Ownership Value Registry | |||
This document establishes a new registry titled "SWID/CoSWID Link | This document establishes a new registry titled "SWID/CoSWID Link | |||
Ownership Values". This registry provides index values for use as | Ownership Values". This registry provides index values for use as | |||
link-entry ownership item values in this document and link ownership | link-entry ownership item values in this document and link ownership | |||
names for use in [SWID]. | names for use in [SWID]. | |||
[TO BE REMOVED: This registration should take place at the following | [TO BE REMOVED: This registration should take place at the following | |||
location: https://www.iana.org/assignments/swid] | location: https://www.iana.org/assignments/swid] | |||
This registry uses the registration proceedures defined in | This registry uses the registration proceedures defined in | |||
Section 5.2.1 with the following associated ranges: | Section 5.2.1 with the following associated ranges: | |||
+---------+-------------------------+ | +---------+-------------------------+ | |||
| Range | Registration Procedures | | | Range | Registration Procedures | | |||
+---------+-------------------------+ | +=========+=========================+ | |||
| 0-127 | Standards Action | | | 0-127 | Standards Action | | |||
| | | | +---------+-------------------------+ | |||
| 128-255 | Specification Required | | | 128-255 | Specification Required | | |||
+---------+-------------------------+ | +---------+-------------------------+ | |||
Table 14: CoSWID Link Ownership Registration Proceedures | Table 14: CoSWID Link Ownership | |||
Registration Proceedures | ||||
Assignments consist of an integer Index value, an Ownership Type | Assignments consist of an integer Index value, an Ownership Type | |||
Name, and a reference to the defining specification. | Name, and a reference to the defining specification. | |||
Initial registrations for the "SWID/CoSWID Link Ownership Value" | Initial registrations for the "SWID/CoSWID Link Ownership Value" | |||
registry are provided below, which are derived from the textual | registry are provided below, which are derived from the textual | |||
entity role names defined in [SWID]. | entity role names defined in [SWID]. | |||
+-------+---------------------+-----------------+ | +-------+---------------------+-----------------+ | |||
| Index | Ownership Type Name | Definition | | | Index | Ownership Type Name | Definition | | |||
+-------+---------------------+-----------------+ | +=======+=====================+=================+ | |||
| 0 | Reserved | | | | 0 | Reserved | | | |||
| | | | | +-------+---------------------+-----------------+ | |||
| 1 | abandon | See Section 4.3 | | | 1 | abandon | See Section 4.3 | | |||
| | | | | +-------+---------------------+-----------------+ | |||
| 2 | private | See Section 4.3 | | | 2 | private | See Section 4.3 | | |||
| | | | | +-------+---------------------+-----------------+ | |||
| 3 | shared | See Section 4.3 | | | 3 | shared | See Section 4.3 | | |||
| | | | | +-------+---------------------+-----------------+ | |||
| 4-255 | Unassigned | | | | 4-255 | Unassigned | | | |||
+-------+---------------------+-----------------+ | +-------+---------------------+-----------------+ | |||
Table 15: CoSWID Link Ownership Inital Registrations | Table 15: CoSWID Link Ownership Inital | |||
Registrations | ||||
Registrations MUST conform to the expert review guidlines defined in | Registrations MUST conform to the expert review guidlines defined in | |||
Section 5.2.3. | Section 5.2.3. | |||
5.2.7. SWID/CoSWID Link Relationship Value Registry | 5.2.7. SWID/CoSWID Link Relationship Value Registry | |||
This document establishes a new registry titled "SWID/CoSWID Link | This document establishes a new registry titled "SWID/CoSWID Link | |||
Relationship Values". This registry provides index values for use as | Relationship Values". This registry provides index values for use as | |||
link-entry rel item values in this document and link ownership names | link-entry rel item values in this document and link ownership names | |||
for use in [SWID]. | for use in [SWID]. | |||
[TO BE REMOVED: This registration should take place at the following | [TO BE REMOVED: This registration should take place at the following | |||
location: https://www.iana.org/assignments/swid] | location: https://www.iana.org/assignments/swid] | |||
This registry uses the registration proceedures defined in | This registry uses the registration proceedures defined in | |||
Section 5.2.1 with the following associated ranges: | Section 5.2.1 with the following associated ranges: | |||
+-------------+-------------------------+ | +-------------+-------------------------+ | |||
| Range | Registration Procedures | | | Range | Registration Procedures | | |||
+-------------+-------------------------+ | +=============+=========================+ | |||
| 0-32767 | Standards Action | | | 0-32767 | Standards Action | | |||
| | | | +-------------+-------------------------+ | |||
| 32768-65535 | Specification Required | | | 32768-65535 | Specification Required | | |||
+-------------+-------------------------+ | +-------------+-------------------------+ | |||
Table 16: CoSWID Link Relationship Registration Proceedures | Table 16: CoSWID Link Relationship | |||
Registration Proceedures | ||||
Assignments consist of an integer Index value, the Relationship Type | Assignments consist of an integer Index value, the Relationship Type | |||
Name, and a reference to the defining specification. | Name, and a reference to the defining specification. | |||
Initial registrations for the "SWID/CoSWID Link Relationship Value" | Initial registrations for the "SWID/CoSWID Link Relationship Value" | |||
registry are provided below, which are derived from the link | registry are provided below, which are derived from the link | |||
relationship values defined in [SWID]. | relationship values defined in [SWID]. | |||
+----------+------------------------+-----------------+ | +----------+------------------------+-----------------+ | |||
| Index | Relationship Type Name | Specification | | | Index | Relationship Type Name | Specification | | |||
+----------+------------------------+-----------------+ | +==========+========================+=================+ | |||
| 0 | Reserved | | | | 0 | Reserved | | | |||
| | | | | +----------+------------------------+-----------------+ | |||
| 1 | ancestor | See Section 4.4 | | | 1 | ancestor | See Section 4.4 | | |||
| | | | | +----------+------------------------+-----------------+ | |||
| 2 | component | See Section 4.4 | | | 2 | component | See Section 4.4 | | |||
| | | | | +----------+------------------------+-----------------+ | |||
| 3 | feature | See Section 4.4 | | | 3 | feature | See Section 4.4 | | |||
| | | | | +----------+------------------------+-----------------+ | |||
| 4 | installationmedia | See Section 4.4 | | | 4 | installationmedia | See Section 4.4 | | |||
| | | | | +----------+------------------------+-----------------+ | |||
| 5 | packageinstaller | See Section 4.4 | | | 5 | packageinstaller | See Section 4.4 | | |||
| | | | | +----------+------------------------+-----------------+ | |||
| 6 | parent | See Section 4.4 | | | 6 | parent | See Section 4.4 | | |||
| | | | | +----------+------------------------+-----------------+ | |||
| 7 | patches | See Section 4.4 | | | 7 | patches | See Section 4.4 | | |||
| | | | | +----------+------------------------+-----------------+ | |||
| 8 | requires | See Section 4.4 | | | 8 | requires | See Section 4.4 | | |||
| | | | | +----------+------------------------+-----------------+ | |||
| 9 | see-also | See Section 4.4 | | | 9 | see-also | See Section 4.4 | | |||
| | | | | +----------+------------------------+-----------------+ | |||
| 10 | supersedes | See Section 4.4 | | | 10 | supersedes | See Section 4.4 | | |||
| | | | | +----------+------------------------+-----------------+ | |||
| 11 | supplemental | See Section 4.4 | | | 11 | supplemental | See Section 4.4 | | |||
| | | | | +----------+------------------------+-----------------+ | |||
| 12-65535 | Unassigned | | | | 12-65535 | Unassigned | | | |||
+----------+------------------------+-----------------+ | +----------+------------------------+-----------------+ | |||
Table 17: CoSWID Link Relationship Inital Registrations | Table 17: CoSWID Link Relationship Inital Registrations | |||
Registrations MUST conform to the expert review guidlines defined in | Registrations MUST conform to the expert review guidlines defined in | |||
Section 5.2.3. | Section 5.2.3. | |||
Designated experts MUST also ensure that a newly requested entry | Designated experts MUST also ensure that a newly requested entry | |||
documents the URI schemes allowed to be used in an href associated | documents the URI schemes allowed to be used in an href associated | |||
skipping to change at page 53, line 20 ¶ | skipping to change at page 55, line 13 ¶ | |||
[SWID]. | [SWID]. | |||
[TO BE REMOVED: This registration should take place at the following | [TO BE REMOVED: This registration should take place at the following | |||
location: https://www.iana.org/assignments/swid] | location: https://www.iana.org/assignments/swid] | |||
This registry uses the registration proceedures defined in | This registry uses the registration proceedures defined in | |||
Section 5.2.1 with the following associated ranges: | Section 5.2.1 with the following associated ranges: | |||
+---------+-------------------------+ | +---------+-------------------------+ | |||
| Range | Registration Procedures | | | Range | Registration Procedures | | |||
+---------+-------------------------+ | +=========+=========================+ | |||
| 0-127 | Standards Action | | | 0-127 | Standards Action | | |||
| | | | +---------+-------------------------+ | |||
| 128-255 | Specification Required | | | 128-255 | Specification Required | | |||
+---------+-------------------------+ | +---------+-------------------------+ | |||
Table 18: CoSWID Link Use Registration Proceedures | Table 18: CoSWID Link Use | |||
Registration Proceedures | ||||
Assignments consist of an integer Index value, the Link Use Type | Assignments consist of an integer Index value, the Link Use Type | |||
Name, and a reference to the defining specification. | Name, and a reference to the defining specification. | |||
Initial registrations for the "SWID/CoSWID Link Use Value" registry | Initial registrations for the "SWID/CoSWID Link Use Value" registry | |||
are provided below, which are derived from the link relationship | are provided below, which are derived from the link relationship | |||
values defined in [SWID]. | values defined in [SWID]. | |||
+-------+--------------------+-----------------+ | +-------+--------------------+-----------------+ | |||
| Index | Link Use Type Name | Specification | | | Index | Link Use Type Name | Specification | | |||
+-------+--------------------+-----------------+ | +=======+====================+=================+ | |||
| 0 | Reserved | | | | 0 | Reserved | | | |||
| | | | | +-------+--------------------+-----------------+ | |||
| 1 | optional | See Section 4.5 | | | 1 | optional | See Section 4.5 | | |||
| | | | | +-------+--------------------+-----------------+ | |||
| 2 | required | See Section 4.5 | | | 2 | required | See Section 4.5 | | |||
| | | | | +-------+--------------------+-----------------+ | |||
| 3 | recommended | See Section 4.5 | | | 3 | recommended | See Section 4.5 | | |||
| | | | | +-------+--------------------+-----------------+ | |||
| 4-255 | Unassigned | | | | 4-255 | Unassigned | | | |||
+-------+--------------------+-----------------+ | +-------+--------------------+-----------------+ | |||
Table 19: CoSWID Link Use Inital Registrations | Table 19: CoSWID Link Use Inital Registrations | |||
Registrations MUST conform to the expert review guidlines defined in | Registrations MUST conform to the expert review guidlines defined in | |||
Section 5.2.3. | Section 5.2.3. | |||
5.3. swid+cbor Media Type Registration | 5.3. swid+cbor Media Type Registration | |||
skipping to change at page 55, line 19 ¶ | skipping to change at page 57, line 14 ¶ | |||
5.4. CoAP Content-Format Registration | 5.4. CoAP Content-Format Registration | |||
IANA is requested to assign a CoAP Content-Format ID for the CoSWID | 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 | media type in the "CoAP Content-Formats" sub-registry, from the "IETF | |||
Review or IESG Approval" space (256..999), within the "CoRE | Review or IESG Approval" space (256..999), within the "CoRE | |||
Parameters" registry [RFC7252]: | Parameters" registry [RFC7252]: | |||
+-----------------------+----------+------+-----------+ | +-----------------------+----------+------+-----------+ | |||
| Media type | Encoding | ID | Reference | | | Media type | Encoding | ID | Reference | | |||
+-----------------------+----------+------+-----------+ | +=======================+==========+======+===========+ | |||
| application/swid+cbor | - | TBD1 | RFC-AAAA | | | application/swid+cbor | - | TBD1 | RFC-AAAA | | |||
+-----------------------+----------+------+-----------+ | +-----------------------+----------+------+-----------+ | |||
Table 20: CoAP Content-Format IDs | Table 20: CoAP Content-Format IDs | |||
5.5. CBOR Tag Registration | 5.5. CBOR Tag Registration | |||
IANA is requested to allocate a tag in the "CBOR Tags" registry, | IANA is requested to allocate a tag in the "CBOR Tags" registry, | |||
preferably with the specific value requested: | preferably with the specific value requested: | |||
+------------+----------+-------------------------------------------+ | +------------+-----------+-----------------------------+ | |||
| Tag | Data | Semantics | | | Tag | Data Item | Semantics | | |||
| | Item | | | +============+===========+=============================+ | |||
+------------+----------+-------------------------------------------+ | | 1398229316 | map | Concise Software Identifier | | |||
| 1398229316 | map | Concise Software Identifier (CoSWID) | | | | | (CoSWID) [RFC-AAAA] | | |||
| | | [RFC-AAAA] | | +------------+-----------+-----------------------------+ | |||
+------------+----------+-------------------------------------------+ | ||||
Table 21: CoSWID CBOR Tag | Table 21: CoSWID CBOR Tag | |||
5.6. URI Scheme Registrations | 5.6. URI Scheme Registrations | |||
The ISO 19770-2:2015 SWID specification describes use of the "swid" | The ISO 19770-2:2015 SWID specification describes use of the "swid" | |||
and "swidpath" URI schemes, which are currently in use in | and "swidpath" URI schemes, which are currently in use in | |||
implementations. This document continues this use for CoSWID. The | implementations. This document continues this use for CoSWID. The | |||
following subsections provide registrations for these schemes in to | following subsections provide registrations for these schemes in to | |||
ensure that a permanent registration exists for these schemes that is | ensure that a permanent registration exists for these schemes that is | |||
suitable for use in the SWID and CoSWID specifications. | suitable for use in the SWID and CoSWID specifications. | |||
skipping to change at page 60, line 11 ¶ | skipping to change at page 62, line 11 ¶ | |||
grateful for the prior work of the 19770-2 contributors. | grateful for the prior work of the 19770-2 contributors. | |||
We are also grateful to the careful reviews provided by ... | We are also grateful to the careful reviews provided by ... | |||
8. Change Log | 8. Change Log | |||
[THIS SECTION TO BE REMOVED BY THE RFC EDITOR.] | [THIS SECTION TO BE REMOVED BY THE RFC EDITOR.] | |||
Changes from version 12 to version 14: | Changes from version 12 to version 14: | |||
o Moved key identifier to protected COSE header | * Moved key identifier to protected COSE header | |||
o Fixed index reference for hash | * Fixed index reference for hash | |||
o Removed indirection of CDDL type definition for filesystem-item | * Removed indirection of CDDL type definition for filesystem-item | |||
o Fixed quantity of resource and process | * Fixed quantity of resource and process | |||
o Updated resource-collection | * Updated resource-collection | |||
o Renamed socket name in software-meta to be consistent in naming | * Renamed socket name in software-meta to be consistent in naming | |||
o Aligned excerpt examples in I-D text with full CDDL | * Aligned excerpt examples in I-D text with full CDDL | |||
o Fixed titels where title was referring to group instead of map | * Fixed titels where title was referring to group instead of map | |||
o Added missig date in SEMVER | * Added missig date in SEMVER | |||
o Fixed root cardinality for file and directory, etc. | * Fixed root cardinality for file and directory, etc. | |||
o Transformed path-elements-entry from map to group for re-usability | * Transformed path-elements-entry from map to group for re-usability | |||
o Scrubbed IANA section | * Scrubbed IANA section | |||
o Removed redundant supplemental rule | * Removed redundant supplemental rule | |||
o Aligned discrepancy with ISO spec. | * Aligned discrepancy with ISO spec. | |||
o Addressed comments on typos. | * Addressed comments on typos. | |||
o Fixed kramdown nits and BCP reference. | * Fixed kramdown nits and BCP reference. | |||
o Addressed comments from WGLC reviewers. | * Addressed comments from WGLC reviewers. | |||
Changes in version 12: | Changes in version 12: | |||
o Addressed a bunch of minor editorial issues based on WGLC | * Addressed a bunch of minor editorial issues based on WGLC | |||
feedback. | feedback. | |||
o Added text about the use of UTF-8 in CoSWID. | * Added text about the use of UTF-8 in CoSWID. | |||
o Adjusted tag-id to allow for a UUID to be provided as a bstr. | * Adjusted tag-id to allow for a UUID to be provided as a bstr. | |||
o Cleaned up descriptions of index ranges throughout the document, | * Cleaned up descriptions of index ranges throughout the document, | |||
removing discussion of 8 bit, 16 bit, etc. | removing discussion of 8 bit, 16 bit, etc. | |||
o Adjusted discussion of private use ranges to use negative integer | * Adjusted discussion of private use ranges to use negative integer | |||
values and to be more clear throughout the document. | values and to be more clear throughout the document. | |||
o Added discussion around resolving overlapping value spaces for | * Added discussion around resolving overlapping value spaces for | |||
version schemes. | version schemes. | |||
o Added a set of expert review guidelines for new IANA registries | * Added a set of expert review guidelines for new IANA registries | |||
created by this document. | created by this document. | |||
o Added new registrations for the "swid" and "swidpath" URI schemes, | * Added new registrations for the "swid" and "swidpath" URI schemes, | |||
and for using CoSWID with SWIMA. | and for using CoSWID with SWIMA. | |||
Changes from version 03 to version 11: | Changes from version 03 to version 11: | |||
o Reduced representation complexity of the media-entry type and | * Reduced representation complexity of the media-entry type and | |||
removed the section describing the older data structure. | removed the section describing the older data structure. | |||
o Added more signature schemes from COSE | * Added more signature schemes from COSE | |||
o Included a minimal required set of normative language | * Included a minimal required set of normative language | |||
o Reordering of attribute name to integer label by priority | * Reordering of attribute name to integer label by priority | |||
according to semantics. | according to semantics. | |||
o Added an IANA registry for CoSWID items supporting future | * Added an IANA registry for CoSWID items supporting future | |||
extension. | extension. | |||
o Cleaned up IANA registrations, fixing some inconsistencies in the | * Cleaned up IANA registrations, fixing some inconsistencies in the | |||
table labels. | table labels. | |||
o Added additional CDDL sockets for resource collection entries | * Added additional CDDL sockets for resource collection entries | |||
providing for additional extension points to address future SWID/ | providing for additional extension points to address future SWID/ | |||
CoSWID extensions. | CoSWID extensions. | |||
o Updated section on extension points to address new CDDL sockets | * Updated section on extension points to address new CDDL sockets | |||
and to reference the new IANA registry for items. | and to reference the new IANA registry for items. | |||
o Removed unused references and added new references to address | * Removed unused references and added new references to address | |||
placeholder comments. | placeholder comments. | |||
o Added table with semantics for the link ownership item. | * Added table with semantics for the link ownership item. | |||
o Clarified language, made term use more consistent, fixed | * Clarified language, made term use more consistent, fixed | |||
references, and replacing lowercase RFC2119 keywords. | references, and replacing lowercase RFC2119 keywords. | |||
Changes from version 02 to version 03: | Changes from version 02 to version 03: | |||
o Updated core CDDL including the CDDL design pattern according to | * Updated core CDDL including the CDDL design pattern according to | |||
RFC 8428. | RFC 8428. | |||
Changes from version 01 to version 02: | Changes from version 01 to version 02: | |||
o Enforced a more strict separation between the core CoSWID | * Enforced a more strict separation between the core CoSWID | |||
definition and additional usage by moving content to corresponding | definition and additional usage by moving content to corresponding | |||
appendices. | appendices. | |||
o Removed artifacts inherited from the reference schema provided by | * Removed artifacts inherited from the reference schema provided by | |||
ISO (e.g. NMTOKEN(S)) | ISO (e.g. NMTOKEN(S)) | |||
o Simplified the core data definition by removing group and type | * Simplified the core data definition by removing group and type | |||
choices where possible | choices where possible | |||
o Minor reordering of map members | * Minor reordering of map members | |||
o Added a first extension point to address requested flexibility for | * Added a first extension point to address requested flexibility for | |||
extensions beyond the any-element | extensions beyond the any-element | |||
Changes from version 00 to version 01: | Changes from version 00 to version 01: | |||
o Ambiguity between evidence and payload eliminated by introducing | * Ambiguity between evidence and payload eliminated by introducing | |||
explicit members (while still | explicit members (while still | |||
o allowing for "empty" SWID tags) | * allowing for "empty" SWID tags) | |||
o Added a relatively restrictive COSE envelope using cose_sign1 to | * Added a relatively restrictive COSE envelope using cose_sign1 to | |||
define signed CoSWID (single signer only, at the moment) | define signed CoSWID (single signer only, at the moment) | |||
o Added a definition how to encode hashes that can be stored in the | * Added a definition how to encode hashes that can be stored in the | |||
any-member using existing IANA tables to reference hash-algorithms | any-member using existing IANA tables to reference hash-algorithms | |||
Changes since adopted as a WG I-D -00: | Changes since adopted as a WG I-D -00: | |||
o Removed redundant any-attributes originating from the ISO- | * Removed redundant any-attributes originating from the ISO- | |||
19770-2:2015 XML schema definition | 19770-2:2015 XML schema definition | |||
o Fixed broken multi-map members | * Fixed broken multi-map members | |||
o Introduced a more restrictive item (any-element-map) to represent | * Introduced a more restrictive item (any-element-map) to represent | |||
custom maps, increased restriction on types for the any-attribute, | custom maps, increased restriction on types for the any-attribute, | |||
accordingly | accordingly | |||
o Fixed X.1520 reference | * Fixed X.1520 reference | |||
o Minor type changes of some attributes (e.g. NMTOKENS) | * Minor type changes of some attributes (e.g. NMTOKENS) | |||
o Added semantic differentiation of various name types (e,g. fs- | * Added semantic differentiation of various name types (e,g. fs- | |||
name) | name) | |||
Changes from version 06 to version 07: | Changes from version 06 to version 07: | |||
o Added type choices/enumerations based on textual definitions in | * Added type choices/enumerations based on textual definitions in | |||
19770-2:2015 | 19770-2:2015 | |||
o Added value registry request | * Added value registry request | |||
o Added media type registration request | * Added media type registration request | |||
o Added content format registration request | * Added content format registration request | |||
o Added CBOR tag registration request | * Added CBOR tag registration request | |||
o Removed RIM appendix to be addressed in complementary draft | * Removed RIM appendix to be addressed in complementary draft | |||
o Removed CWT appendix | * Removed CWT appendix | |||
o Flagged firmware resource collection appendix for revision | * Flagged firmware resource collection appendix for revision | |||
o Made use of terminology more consistent | * Made use of terminology more consistent | |||
o Better defined use of extension points in the CDDL | * Better defined use of extension points in the CDDL | |||
o Added definitions for indexed values | * Added definitions for indexed values | |||
o Added IANA registry for Link use indexed values | * Added IANA registry for Link use indexed values | |||
Changes from version 05 to version 06: | Changes from version 05 to version 06: | |||
o Improved quantities | * Improved quantities | |||
o Included proposals for implicit enumerations that were NMTOKENS | * Included proposals for implicit enumerations that were NMTOKENS | |||
o Added extension points | * Added extension points | |||
o Improved exemplary firmware-resource extension | * Improved exemplary firmware-resource extension | |||
Changes from version 04 to version 05: | Changes from version 04 to version 05: | |||
o Clarified language around SWID and CoSWID to make more consistent | * Clarified language around SWID and CoSWID to make more consistent | |||
use of these terms. | use of these terms. | |||
o Added language describing CBOR optimizations for single vs. arrays | * Added language describing CBOR optimizations for single vs. arrays | |||
in the model front matter. | in the model front matter. | |||
o Fixed a number of grammatical, spelling, and wording issues. | * Fixed a number of grammatical, spelling, and wording issues. | |||
o Documented extension points that use CDDL sockets. | * Documented extension points that use CDDL sockets. | |||
o Converted IANA registration tables to markdown tables, reserving | * Converted IANA registration tables to markdown tables, reserving | |||
the 0 value for use when a value is not known. | the 0 value for use when a value is not known. | |||
o Updated a number of references to their current versions. | * Updated a number of references to their current versions. | |||
Changes from version 03 to version 04: | Changes from version 03 to version 04: | |||
o Re-index label values in the CDDL. | * Re-index label values in the CDDL. | |||
o Added a section describing the CoSWID model in detail. | * Added a section describing the CoSWID model in detail. | |||
o Created IANA registries for entity-role and version-scheme | * Created IANA registries for entity-role and version-scheme | |||
Changes from version 02 to version 03: | Changes from version 02 to version 03: | |||
o Updated CDDL to allow for a choice between a payload or evidence | * Updated CDDL to allow for a choice between a payload or evidence | |||
o Re-index label values in the CDDL. | * Re-index label values in the CDDL. | |||
o Added item definitions | * Added item definitions | |||
o Updated references for COSE, CBOR Web Token, and CDDL. | * Updated references for COSE, CBOR Web Token, and CDDL. | |||
Changes from version 01 to version 02: | Changes from version 01 to version 02: | |||
o Added extensions for Firmware and CoSWID use as Reference | * Added extensions for Firmware and CoSWID use as Reference | |||
Integrity Measurements (CoSWID RIM) | Integrity Measurements (CoSWID RIM) | |||
o Changes meta handling in CDDL from use of an explicit use of items | * Changes meta handling in CDDL from use of an explicit use of items | |||
to a more flexible unconstrained collection of items. | to a more flexible unconstrained collection of items. | |||
o Added sections discussing use of COSE Signatures and CBOR Web | * Added sections discussing use of COSE Signatures and CBOR Web | |||
Tokens | Tokens | |||
Changes from version 00 to version 01: | Changes from version 00 to version 01: | |||
o Added CWT usage for absolute SWID paths on a device | * Added CWT usage for absolute SWID paths on a device | |||
o Fixed cardinality of type-choices including arrays | * Fixed cardinality of type-choices including arrays | |||
o Included first iteration of firmware resource-collection | * Included first iteration of firmware resource-collection | |||
9. References | 9. References | |||
9.1. Normative References | 9.1. Normative References | |||
[BCP178] Saint-Andre, P., Crocker, D., and M. Nottingham, | [BCP178] Saint-Andre, P., Crocker, D., and M. Nottingham, | |||
"Deprecating the "X-" Prefix and Similar Constructs in | "Deprecating the "X-" Prefix and Similar Constructs in | |||
Application Protocols", BCP 178, RFC 6648, | Application Protocols", BCP 178, RFC 6648, | |||
DOI 10.17487/RFC6648, June 2012, | DOI 10.17487/RFC6648, June 2012, | |||
<https://www.rfc-editor.org/info/rfc6648>. | <https://www.rfc-editor.org/info/rfc6648>. | |||
skipping to change at page 66, line 40 ¶ | skipping to change at page 68, line 40 ¶ | |||
DOI 10.17487/RFC8412, July 2018, | DOI 10.17487/RFC8412, July 2018, | |||
<https://www.rfc-editor.org/info/rfc8412>. | <https://www.rfc-editor.org/info/rfc8412>. | |||
[RFC8610] Birkholz, H., Vigano, C., and C. Bormann, "Concise Data | [RFC8610] Birkholz, H., Vigano, C., and C. Bormann, "Concise Data | |||
Definition Language (CDDL): A Notational Convention to | Definition Language (CDDL): A Notational Convention to | |||
Express Concise Binary Object Representation (CBOR) and | Express Concise Binary Object Representation (CBOR) and | |||
JSON Data Structures", RFC 8610, DOI 10.17487/RFC8610, | JSON Data Structures", RFC 8610, DOI 10.17487/RFC8610, | |||
June 2019, <https://www.rfc-editor.org/info/rfc8610>. | June 2019, <https://www.rfc-editor.org/info/rfc8610>. | |||
[SAM] "Information technology - Software asset management - Part | [SAM] "Information technology - Software asset management - Part | |||
5: Overview and vocabulary", ISO/IEC 19770-5:2015, | 5: Overview and vocabulary", ISO/IEC 19770-5:2015, 15 | |||
November 2013. | November 2013. | |||
[SEMVER] Preston-Werner, T., "Semantic Versioning 2.0.0", | [SEMVER] Preston-Werner, T., "Semantic Versioning 2.0.0", | |||
<https://semver.org/spec/v2.0.0.html>. | <https://semver.org/spec/v2.0.0.html>. | |||
[SWID] "Information technology - Software asset management - Part | [SWID] "Information technology - Software asset management - Part | |||
2: Software identification tag", ISO/IEC 19770-2:2015, | 2: Software identification tag", ISO/IEC 19770-2:2015, 1 | |||
October 2015. | October 2015. | |||
[W3C.REC-css3-mediaqueries-20120619] | [W3C.REC-css3-mediaqueries-20120619] | |||
Rivoal, F., "Media Queries", World Wide Web Consortium | Rivoal, F., "Media Queries", World Wide Web Consortium | |||
Recommendation REC-css3-mediaqueries-20120619, June 2012, | Recommendation REC-css3-mediaqueries-20120619, 19 June | |||
<http://www.w3.org/TR/2012/REC-css3-mediaqueries- | 2012, <http://www.w3.org/TR/2012/REC-css3-mediaqueries- | |||
20120619>. | 20120619>. | |||
[W3C.REC-xmlschema-2-20041028] | [W3C.REC-xmlschema-2-20041028] | |||
Biron, P. and A. Malhotra, "XML Schema Part 2: Datatypes | Biron, P. and A. Malhotra, "XML Schema Part 2: Datatypes | |||
Second Edition", World Wide Web Consortium Recommendation | Second Edition", World Wide Web Consortium Recommendation | |||
REC-xmlschema-2-20041028, October 2004, | REC-xmlschema-2-20041028, 28 October 2004, | |||
<http://www.w3.org/TR/2004/REC-xmlschema-2-20041028>. | <http://www.w3.org/TR/2004/REC-xmlschema-2-20041028>. | |||
[W3C.REC-xpath20-20101214] | [W3C.REC-xpath20-20101214] | |||
Berglund, A., Boag, S., Chamberlin, D., Fernandez, M., | Berglund, A., Boag, S., Chamberlin, D., Fernandez, M., | |||
Kay, M., Robie, J., and J. Simeon, "XML Path Language | Kay, M., Robie, J., and J. Simeon, "XML Path Language | |||
(XPath) 2.0 (Second Edition)", World Wide Web Consortium | (XPath) 2.0 (Second Edition)", World Wide Web Consortium | |||
Recommendation REC-xpath20-20101214, December 2010, | Recommendation REC-xpath20-20101214, 14 December 2010, | |||
<http://www.w3.org/TR/2010/REC-xpath20-20101214>. | <http://www.w3.org/TR/2010/REC-xpath20-20101214>. | |||
[X.1520] "Recommendation ITU-T X.1520 (2014), Common | [X.1520] "Recommendation ITU-T X.1520 (2014), Common | |||
vulnerabilities and exposures", April 2011. | vulnerabilities and exposures", 20 April 2011. | |||
9.2. Informative References | 9.2. Informative References | |||
[CamelCase] | [CamelCase] | |||
"UpperCamelCase", August 2014, | "UpperCamelCase", 29 August 2014, | |||
<http://wiki.c2.com/?CamelCase>. | <http://wiki.c2.com/?CamelCase>. | |||
[I-D.birkholz-rats-tuda] | [I-D.birkholz-rats-tuda] | |||
Fuchs, A., Birkholz, H., McDonald, I., and C. Bormann, | Fuchs, A., Birkholz, H., McDonald, I., and C. Bormann, | |||
"Time-Based Uni-Directional Attestation", draft-birkholz- | "Time-Based Uni-Directional Attestation", Work in | |||
rats-tuda-02 (work in progress), March 2020. | Progress, Internet-Draft, draft-birkholz-rats-tuda-02, 9 | |||
March 2020, <http://www.ietf.org/internet-drafts/draft- | ||||
birkholz-rats-tuda-02.txt>. | ||||
[KebabCase] | [KebabCase] | |||
"KebabCase", December 2014, | "KebabCase", 18 December 2014, | |||
<http://wiki.c2.com/?KebabCase>. | <http://wiki.c2.com/?KebabCase>. | |||
[RFC4122] Leach, P., Mealling, M., and R. Salz, "A Universally | [RFC4122] Leach, P., Mealling, M., and R. Salz, "A Universally | |||
Unique IDentifier (UUID) URN Namespace", RFC 4122, | Unique IDentifier (UUID) URN Namespace", RFC 4122, | |||
DOI 10.17487/RFC4122, July 2005, | DOI 10.17487/RFC4122, July 2005, | |||
<https://www.rfc-editor.org/info/rfc4122>. | <https://www.rfc-editor.org/info/rfc4122>. | |||
[RFC8322] Field, J., Banghart, S., and D. Waltermire, "Resource- | [RFC8322] Field, J., Banghart, S., and D. Waltermire, "Resource- | |||
Oriented Lightweight Information Exchange (ROLIE)", | Oriented Lightweight Information Exchange (ROLIE)", | |||
RFC 8322, DOI 10.17487/RFC8322, February 2018, | RFC 8322, DOI 10.17487/RFC8322, February 2018, | |||
<https://www.rfc-editor.org/info/rfc8322>. | <https://www.rfc-editor.org/info/rfc8322>. | |||
[RFC8520] Lear, E., Droms, R., and D. Romascanu, "Manufacturer Usage | [RFC8520] Lear, E., Droms, R., and D. Romascanu, "Manufacturer Usage | |||
Description Specification", RFC 8520, | Description Specification", RFC 8520, | |||
DOI 10.17487/RFC8520, March 2019, | DOI 10.17487/RFC8520, March 2019, | |||
<https://www.rfc-editor.org/info/rfc8520>. | <https://www.rfc-editor.org/info/rfc8520>. | |||
[SWID-GUIDANCE] | [SWID-GUIDANCE] | |||
Waltermire, D., Cheikes, B., Feldman, L., and G. Witte, | Waltermire, D., Cheikes, B.A., Feldman, L., and G. Witte, | |||
"Guidelines for the Creation of Interoperable Software | "Guidelines for the Creation of Interoperable Software | |||
Identification (SWID) Tags", NISTIR 8060, April 2016, | Identification (SWID) Tags", NISTIR 8060, April 2016, | |||
<https://doi.org/10.6028/NIST.IR.8060>. | <https://doi.org/10.6028/NIST.IR.8060>. | |||
Appendix A. Signed Concise SWID Tags using COSE | Appendix A. Signed Concise SWID Tags using COSE | |||
SWID tags, as defined in the ISO-19770-2:2015 XML schema, can include | SWID tags, as defined in the ISO-19770-2:2015 XML schema, can include | |||
cryptographic signatures to protect the integrity of the SWID tag. | cryptographic signatures to protect the integrity of the SWID tag. | |||
In general, tags are signed by the tag creator (typically, although | In general, tags are signed by the tag creator (typically, although | |||
not exclusively, the vendor of the software component that the SWID | not exclusively, the vendor of the software component that the SWID | |||
skipping to change at page 69, line 47 ¶ | skipping to change at page 71, line 47 ¶ | |||
attribute in the unprotected header map of the COSE envelope of a | attribute in the unprotected header map of the COSE envelope of a | |||
CoSWID. The application of counter signing enables second parties to | CoSWID. The application of counter signing enables second parties to | |||
provide a signature on a signature allowing for a proof that a | provide a signature on a signature allowing for a proof that a | |||
signature existed at a given time (i.e., a timestamp). | signature existed at a given time (i.e., a timestamp). | |||
Authors' Addresses | Authors' Addresses | |||
Henk Birkholz | Henk Birkholz | |||
Fraunhofer SIT | Fraunhofer SIT | |||
Rheinstrasse 75 | Rheinstrasse 75 | |||
Darmstadt 64295 | 64295 Darmstadt | |||
Germany | Germany | |||
Email: henk.birkholz@sit.fraunhofer.de | Email: henk.birkholz@sit.fraunhofer.de | |||
Jessica Fitzgerald-McKay | Jessica Fitzgerald-McKay | |||
Department of Defense | Department of Defense | |||
9800 Savage Road | 9800 Savage Road | |||
Ft. Meade, Maryland | Ft. Meade, Maryland | |||
USA | United States of America | |||
Email: jmfitz2@nsa.gov | Email: jmfitz2@nsa.gov | |||
Charles Schmidt | Charles Schmidt | |||
The MITRE Corporation | The MITRE Corporation | |||
202 Burlington Road | 202 Burlington Road | |||
Bedford, Maryland 01730 | Bedford, Maryland 01730 | |||
USA | United States of America | |||
Email: cmschmidt@mitre.org | Email: cmschmidt@mitre.org | |||
David Waltermire | David Waltermire | |||
National Institute of Standards and Technology | National Institute of Standards and Technology | |||
100 Bureau Drive | 100 Bureau Drive | |||
Gaithersburg, Maryland 20877 | Gaithersburg, Maryland 20877 | |||
USA | United States of America | |||
Email: david.waltermire@nist.gov | Email: david.waltermire@nist.gov | |||
End of changes. 414 change blocks. | ||||
879 lines changed or deleted | 908 lines changed or added | |||
This html diff was produced by rfcdiff 1.47. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |