Re: [Suit] How are firmware and firmware versions expressed in manifest?

Eliot Lear <> Sat, 06 June 2020 09:04 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 4EC143A0FBF for <>; Sat, 6 Jun 2020 02:04:04 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -9.6
X-Spam-Status: No, score=-9.6 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_MED=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: (amavisd-new); dkim=pass (1024-bit key)
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id aZCYKUGczAH1 for <>; Sat, 6 Jun 2020 02:04:02 -0700 (PDT)
Received: from ( []) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 7182D3A0FBA for <>; Sat, 6 Jun 2020 02:04:01 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;;; l=39996; q=dns/txt; s=iport; t=1591434241; x=1592643841; h=from:message-id:mime-version:subject:date:in-reply-to:cc: to:references; bh=RwRZq7XeDnu9zV8GqUel0P6uzg4VeETF3gdwDDYy47I=; b=cN1SXij0q2wXjIWM1d3DIPQSb6hNHlyXsBjCPqOmiUbYhpftVv759TBD ssAoNRaIpKwgNH59gEfuGR5kXvR8tWjMcF/HDDcL/Dz4PrCBYyHkfTnFk 6I4wzCQiKGIR5XLTI3Bpu6OOxMBGZ9KP9M9S3X0epkUAE56PEYu+gX5zp s=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0A+AwDhWtte/xbLJq1mHAEBAQEBAQc?= =?us-ascii?q?BARIBAQQEAQGCCoEjWIEfVAEgEiyEJIkBiAiBAYh+kBWBaAsBAQEMAQEjDAQ?= =?us-ascii?q?BAYFQgnQCgjUlOBMCAwEBCwEBBQEBAQIBBgRthVsMhXIBAQEBAgEjTQkFBwQ?= =?us-ascii?q?LEQQBAQEgAQYDAgIhJQkIBhODJgGCSwMOIA+vY3aBMoVRgwkNgiKBOIswgTm?= =?us-ascii?q?CACZrJxyBT0kHLj6BfiCBewESAYM1M4ItBI5eMxyjZyRMgmOCfYIOji9lhGQ?= =?us-ascii?q?DHYJoNYhdgzaBOI1ijmQDjmmNcoNNAgQGBQIVgWoiQyNwMxoIGxVlAYI+CTU?= =?us-ascii?q?SGQ2QTBeBAwECgXWCU4hZPwMwAjUCBgEHAQEDCZAVAQE?=
X-IronPort-AV: E=Sophos; i="5.73,479,1583193600"; d="scan'208,217"; a="26819288"
Received: from (HELO ([]) by with ESMTP/TLS/DHE-RSA-SEED-SHA; 06 Jun 2020 09:03:57 +0000
Received: from [] ([]) by (8.15.2/8.15.2) with ESMTPS id 05693sYx017360 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Sat, 6 Jun 2020 09:03:55 GMT
From: Eliot Lear <>
Message-Id: <>
Content-Type: multipart/alternative; boundary="Apple-Mail=_30AA7F1B-56CB-444B-BB9B-D942054AE99A"
Mime-Version: 1.0 (Mac OS X Mail 13.4 \(3608.\))
Date: Sat, 6 Jun 2020 11:03:54 +0200
In-Reply-To: <>
Cc: Michael Richardson <>, Dick Brooks <>, "" <>, Henk Birkholz <>
To: Hannes Tschofenig <>
References: <> <8b6d01d639d0$62614150$2723c3f0$> <> <20437.1591317129@localhost> <1076601d63b3a$d53f5d90$7fbe18b0$> <> <> <5820.1591393073@localhost> <>
X-Mailer: Apple Mail (2.3608.
X-Outbound-SMTP-Client:, []
Archived-At: <>
Subject: Re: [Suit] How are firmware and firmware versions expressed in manifest?
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Software Updates for Internet of Things <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Sat, 06 Jun 2020 09:04:04 -0000

The NTIA is conducting an effort relatied to this known as SBOM (Software Bill of Materials).  They are in trials with healthcare delivery organizations (HDOs) medical device manufacturers (MDMs) and software providers, including people from the Linux Foundation.  There are several different formats discussed, including Software ID Tags (SWID) (ISO-19770) and Software Package Data Exchange (SPDX) which looks very much like what you showed, Dick.  NTIA takes no position on what formats are used.  NIST is planning to move toward SWID as they transition away from the structure used in the National Vulnerability Database (NVD).  I take no position on which of these formats is better, so long as a downstream consumer can easily determine which format is being presented ;-)

The goal of SBOM is to provide transparency throughout the supply chain as to what is running on an IoT device.  SBOMs at a minimum are intended to provide a manifest, and then optionally some additional stuff like a dependency graph, licensing information, and maybe some additional security attributes such as access requirements, and links assertions about whether a particular component has a vulnerability or has been patched.

The US FDA is planning to require SBOMs as a part of pre-sales qualification.

There are great many open issues with regard to SBOMs, some of which this group and the TEEP folk may wish to pursue.  The biggest issue is around naming.  When referring to Java, is that or or does it matter?  When referring to a supplier, is that IBM or Red Hat (or if it’s REALLY old software, Cygnus)?

A similar issue arises with versioning.  Is that openssl 1.0.1 version patched or unpatched and how does one know?

Another issue is how an SBOM is retrieved.  What is its well known location?  Does the BOM reside on the device, and is there an interface to retrieve it?  If not, where else is it?  Is it even retrievable?  Does it require permissions to do so if it resides at a vendor locale, and if so, how is versioning managed?

This is the basis for draft-lear-opsawg-mud-sbom-00.txt that Scott Rose from NIST and I put together, and would like to present at opsawg.  The goal of that draft is simply a means o discovery to determine how to retrieve an SBOM.  An example of how one would use this extension for an on-the-box approach in its simplest form would be that the manufacturer advertises a RESTful interface at /.well-known/sbom and returns its favorite format (let’s say SPDX).  The back end interface could be as simple as ‘cat /var/lib/dkpg/installed’ or perhaps a bit more complex using a more secure interface to retrieve a signed manifest.

Anyway, I provide this information mostly without fully understanding the context here, but it seems relevant, given the line of discussion.  NTIA project information can be found at


> On 6 Jun 2020, at 10:19, Hannes Tschofenig <> wrote:
> I think the BOM terminology is misleading because hardware is not software. The bill of material to produce an IoT product typically does not change (unless you desolder parts) while the software and configuration will regularly change.
> Leaving that aside, I believe someone active in COSWID needs to clarify what COSWID does. My understanding was that it documents the software libraries on devices. Whether it would be " libcurl 1.0.2" alone or all the libraries that are used to build "libcurl 1.0.2" is a granularity question that the COSWID specs should / could also answer. That's why I thought it would be useful to have it included in the manifest (as supplementary information; as a severable field).
> If COSWID does not do this then someone needs to explain to me what purpose it serves.
> Ciao
> Hannes
> -----Original Message-----
> From: Michael Richardson < <>>
> Sent: Friday, June 5, 2020 11:38 PM
> To: Hannes Tschofenig < <>>
> Cc: Eliot Lear < <>>; Dick Brooks < <>>; <>; Saad EL JAOUHARI < <>>; Henk Birkholz < <>>
> Subject: Re: [Suit] How are firmware and firmware versions expressed in manifest?
> Hannes Tschofenig <> wrote:
>> FWIW I thought that COSWID would provide information about the software
>> libraries on a device.
> No, AFAIK, it just identifies the materials. (i.e. "libcurl 1.0.2")
> Assembling them into a BOM requires another process:
>  "curl 1.0.2" contains "libcurl 1.0.2", "curl-main",
>                        "libssl 1.1.1f", "glibc 2.19", "pcre 1.0.2"
> I could mis-understand though.
> --
> ]               Never tell me the odds!                 | ipv6 mesh networks [
> ]   Michael Richardson, Sandelman Software Works        |    IoT architect   [
> ]        |   ruby on rails    [
> IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.