Re: [Suit] SUIT Architecture document review

Kathleen Moriarty <kathleen.moriarty.ietf@gmail.com> Wed, 16 October 2019 11:29 UTC

Return-Path: <kathleen.moriarty.ietf@gmail.com>
X-Original-To: suit@ietfa.amsl.com
Delivered-To: suit@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 2F3631201DB for <suit@ietfa.amsl.com>; Wed, 16 Oct 2019 04:29:04 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.996
X-Spam-Level:
X-Spam-Status: No, score=-1.996 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, MIME_QP_LONG_LINE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id V0xKBKaZ6lPd for <suit@ietfa.amsl.com>; Wed, 16 Oct 2019 04:29:01 -0700 (PDT)
Received: from mail-qt1-x833.google.com (mail-qt1-x833.google.com [IPv6:2607:f8b0:4864:20::833]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id D79A21201DC for <suit@ietf.org>; Wed, 16 Oct 2019 04:29:00 -0700 (PDT)
Received: by mail-qt1-x833.google.com with SMTP id j31so35511548qta.5 for <suit@ietf.org>; Wed, 16 Oct 2019 04:29:00 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=content-transfer-encoding:from:mime-version:subject:date:message-id :references:cc:in-reply-to:to; bh=x0LTvp7dBtbDyquRnZhgXeOWwPcJyWAX7izqYGeT2Rg=; b=CGdSEdnnwRRaTopPGrusAdMlsrQJP7pGjIXCD9Qkt2/bsFE5+ekIx94sh7Z+mdc9IO 14bdSXsWHOrzB9AV2/YEWAUmL3E+h6s+TSBCzrqdG9g7CBXxKlG1ytLbfrpb6WLspEoc cKyTvkqIUjE9IIOpJ6aeZV237Psf4XS20Js6IhTK+NIs3jX0jE05wL5UxRqtlI77wM5x iccYwEMycw64cVD9M4Mjc1dOcohru6nepBjZhK8HQDdKzIx85RsUyazx1F7C0fIPebTp YtC8RlE8TGpT595z/OOhXD4419MuiKbL+t5mY8H3u1DU4vawsH59WwJ81bVXBgqxK6vl 7L3g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:content-transfer-encoding:from:mime-version :subject:date:message-id:references:cc:in-reply-to:to; bh=x0LTvp7dBtbDyquRnZhgXeOWwPcJyWAX7izqYGeT2Rg=; b=S7wAyYVmNm2+0kwQ3XukjprNoITl1sTXKP261mIwLNzBtet7ypOzKqYH2UioWMV8AJ sDdQQk1umXvYLhIus2j1q5PbUKOp1W05l7bIsnJap3t2QtvCKhx8wDPhSKsryVIruejT cFZ2/aCG1bZThh0NZJ4+TKK0VdGqU3ckdZ2C0s3M6e67JdLpR4bM/9PWEIPSE7MjcDIV iHsU1Mb171zumJNgq4hnRbD/yLyBJyqMAIPqONF6/wahahUr9O6GJNv2H1cwbCKFMmvA 0swUpJ5x3uoyJ7bXLAPK5JFW9f9fb2CNu7XyyoOFaz5HpZvZ/ZppuWL4uE4R7OYVOTDb eMCg==
X-Gm-Message-State: APjAAAVcC3wi7+38qvOJGxjbsYCkqqAwF+m+PJ//9SqEMAdoDhhua865 7bQzkNtJ4nSel/p8ZxH6pZqau5awyLA=
X-Google-Smtp-Source: APXvYqwEJarMPj3HBWBi93nLEg9UAFWjV+9m+eON5JZxW9pFmeQuuW/y7Ti+i0Deci93pMM0GyIfmg==
X-Received: by 2002:a0c:91bd:: with SMTP id n58mr42527769qvn.62.1571225339493; Wed, 16 Oct 2019 04:28:59 -0700 (PDT)
Received: from [192.168.1.4] (146-115-73-78.s5196.c3-0.arl-cbr1.sbo-arl.ma.cable.rcncustomer.com. [146.115.73.78]) by smtp.gmail.com with ESMTPSA id z72sm12561867qka.115.2019.10.16.04.28.58 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 16 Oct 2019 04:28:58 -0700 (PDT)
Content-Type: multipart/alternative; boundary="Apple-Mail-C6E94B5A-B36B-4BB1-82DC-53D12237A2D5"
Content-Transfer-Encoding: 7bit
From: Kathleen Moriarty <kathleen.moriarty.ietf@gmail.com>
Mime-Version: 1.0 (1.0)
Date: Wed, 16 Oct 2019 07:28:58 -0400
Message-Id: <6F8C5374-5881-44C7-805F-354A08253002@gmail.com>
References: <VI1PR08MB53604B1D9121DC24D28D4B4AFA920@VI1PR08MB5360.eurprd08.prod.outlook.com>
Cc: "suit@ietf.org" <suit@ietf.org>
In-Reply-To: <VI1PR08MB53604B1D9121DC24D28D4B4AFA920@VI1PR08MB5360.eurprd08.prod.outlook.com>
To: Hannes Tschofenig <Hannes.Tschofenig@arm.com>
X-Mailer: iPhone Mail (17A860)
Archived-At: <https://mailarchive.ietf.org/arch/msg/suit/58KsOiVLrEzXeDc5zU3tfJU9XXg>
Subject: Re: [Suit] SUIT Architecture document review
X-BeenThere: suit@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Software Updates for Internet of Things <suit.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/suit>, <mailto:suit-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/suit/>
List-Post: <mailto:suit@ietf.org>
List-Help: <mailto:suit-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/suit>, <mailto:suit-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 16 Oct 2019 11:29:04 -0000

Hi Hannes,

Sent from my mobile device

> On Oct 16, 2019, at 5:14 AM, Hannes Tschofenig <Hannes.Tschofenig@arm.com> wrote:
> 
> 
> Hi Kathleen,
>  
> Thanks for the review.
> A few remarks below:
>  
> Abstract:
> I thought one of the goals was to update firmware for IoT, but also to scale up to larger systems as well.  The abstract seems very specific to constrained devices.  Should the language be adjusted or has the focus changed?
> [Hannes] When you say “larger systems” what do you mean? There are Windows, Linux and mobile devices out there that already have a perfectly fine software update mechanism and we are not trying to replace it with this work. For those devices that run regular operating systems the lightweight design of the software update mechanism is apparently less of a concern compared to the design of a firmware update mechanism for low end IoT devices, as you have witnessed in the discussions on this list. When you say “large system” are you then referring to a system that runs Windows, Linux or something similar or do you have some other system in mind?

Yes, bios or other firmware updates across numerous platforms that may have methods that are secure, but not consistent could be interesting.  This is for larger than IoT, but not OS or software to your point as this is difficult for enterprises that have to manage the diverse sets of systems using different processes.  It might include devices, appliances, servers, desktops, and storage.

>  
> Introduction:
> If the scope does include larger devices, then this is a problem for them as well for both security and inconsistency across platforms.  It's harder than it needs to be and that's amplified when you think about IoT.
>  
> [Hannes] See above.
>  
> Section 2:
> For the Firmware definition, is the last sentence referring to both "firmware" and "image" as interchangeable or something else?  I think adjusting the last couple of sentences may be helpful to some readers.
>  
> [Hannes] Corrected the definition to refer to firmware image, firmware, and image.
>  
Thank you.

> Section 3.2:
> If not link, network, or transport layer security, what does this rely upon?  If it is object-level security and I am assuming it is, please state that explicitly possibly referring to where confidentiality protection is specified.
>  
> [Hannes] Clarified that we are talking about protecting the manifest and firmware rather than the underling transport of them. Here is the new text I came up with:
>  
> ------
>  
> ## Friendly to broadcast delivery
>  
> This architecture does not specify any specific broadcast protocol.
> However, given that broadcast may be desirable for some networks,
> updates must cause the least disruption possible both in metadata
> and firmware transmission.
>  
> For an update to be broadcast friendly, it cannot rely on link
> layer, network layer, or transport layer security. A solution has
> to rely on security protection applied to the manifest and firmware image
> instead. In addition,
> the same manifest must be deliverable to many devices, both those
> to which it applies and those to which it does not, without a
> chance that the wrong device will accept the update. Considerations
> that apply to network broadcasts apply equally to the use of
> third-party content distribution networks for payload distribution.
>  

That’s a little better, thank you.
> ------
>  
>  
> Section 3.3:
>  
> Current text:
> "The use of post-quantum secure signature mechanisms, such as hash-
>    based signatures, should be explored."
> Since this is the architecture document, if they are defined elsewhere, the document should point to that rather than saying "should be explored".
>  
> [Hannes] I changed the text in the following way:
>  
> ------
>  
> ## Use state-of-the-art security mechanisms
>  
> End-to-end security between the author and the device is shown in
> {{architecture}}.
>  
> Authentication ensures that the device can cryptographically identify
> the author(s) creating firmware images and manifests. Authenticated
> identities may be used as input to the authorization process.
>  
> Integrity protection ensures that no third party can modify the manifest
> or the firmware image.
>  
> For confidentiality protection of the firmware image, it must be done in such a
> way that every intended recipient can decrypt it. The information
> that is encrypted individually for each device must maintain
> friendliness to Content Distribution Networks, bulk storage, and
> broadcast protocols.
>  
> A manifest specification must support different cryptographic algorithms
> and algorithm extensibility. Because of the nature of
> unchangeable code in ROM for use with bootloaders the use of
> post-quantum secure signature mechanisms, such as hash-based
> signatures {{I-D.ietf-cose-hash-sig}}, are attractive because they
> maintain security in presence of quantum computers.
>  
> A mandatory-to-implement set of algorithms has to be defined offering
> a key length of 112-bit symmetric key or security or more, as outlined
> in Section 20 of RFC 7925 {{RFC7925}}. This corresponds to a 233 bit
> ECC key or a 2048 bit RSA key.
> ------
Great, thank you.
>  
> Some other well received architecture documents provided pointers to the related documents that filled out stated components of the architecture.  If the WG were to hold this to be published until other document were complete, this could provide the same mapping between the requirements, architecture, and implementation of the architecture with the various specifications.
>  
>  
> Section 3.6
> I think this is the first time "fw" is used.  Maybe just spell out firmware with a search and replace?
>  
> [Hannes] Changed the figure where I abbreviated “Firmware Consumer” with “fw consumer”.
Thank you.
>  
> Section 3.11:
> Typo in the following sentence:
>    "TEEs may obtain TAs from different authors and those TAs may
>    require personalization data, such as payment information, to be
>    securely be conveyed to the TEE."
> s/to be securely be conveyed/to be securely conveyed/
>  
> [Hannes] Fixed.
>  
> Section 4;
> Typo in the following sentence:
>    "The credential used to must be directly or indirectly
>    related to the trust anchor installed at the device by the Trust
>    Provisioning Authority."
> s/The credential used to must/The credential used must/
>  
> [Hannes] Fixed.
>  
> Section 8
> This says downloads can be large, so I think that's to accommodate more than IoT, is that right and the abstract/intro can be updated?
>  
> [Hannes] I replaced the term “large” with the following explanatory text:
>  
> “
> (*) Because firmware images are often multiple kilobytes, sometimes
> exceeding one hundred kilobytes, in size for low end IoT devices and even
> several megabytes large for IoT devices running full-fletched operating systems
> like Linux the protocol mechanism for retrieving these images needs
> to offer features like congestion control, flow control, fragmentation
> and reassembly, and mechanisms to resume interrupted or corrupted transfers.
>  “
>  
> The point I was trying to get across is that you actually need to implement a number of
> transport protocol features to transfer a firmware image.

The explanation does improve that point, thank you.
>  
> The following sentence is readable, but super long:
>    If the application image contains the firmware consumer
>    functionality, as described above, then it is necessary that a
>    working image is left on the device to ensure that the bootloader can
>    roll back to a working firmware image to re-do the firmware download
>    since the bootloader itself does not have enough functionality to
>    fetch a firmware image plus manifest from a firmware server over the
>    Internet. 
> Perhaps break it up?
>  
> [Hannes] Here is a try:
>  
> “
> If the application image contains the firmware consumer
> functionality, as described above, then it is necessary that a
> working image is left on the device. This allows the bootloader to
> roll back to a working firmware image to execute a firmware download
> if the bootloader itself does not have enough functionality to
> fetch a firmware image plus manifest from a firmware server over the
> Internet.  A multi-stage bootloader may soften this requirement at
> the expense of a more sophisticated boot process.
> “

That’s better, thanks.
>  
>  
> Security considerations:
> Should this mention the end-to-end encryption?  Is it provided at the object level?
>  
> [Hannes] Encryption is now discussed in the requirements section, as explained in one of my earlier comments.
>  

Thank you, 
Kathleen 
> Also, if the intent is to scale above constrained devices, the text should state that as this section also specifies IoT.
>  
>  
> Thank you for all of your work on the document.  It's easy to read and comprehensive.
>  
> Best regards,
> Kathleen
>  
>  
> Ciao
> Hannes
>  
> 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.