Re: [Secdispatch] [lamps] IDevID considerations document to secdispatch

Michael Richardson <> Thu, 23 July 2020 19:35 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 059F43A0CF3; Thu, 23 Jul 2020 12:35:01 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -1.899
X-Spam-Status: No, score=-1.899 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id CUXcAJ7CMsSS; Thu, 23 Jul 2020 12:34:58 -0700 (PDT)
Received: from ( []) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 96CB03A0C4D; Thu, 23 Jul 2020 12:34:58 -0700 (PDT)
Received: from localhost (localhost []) by (Postfix) with ESMTP id DD94438A32; Thu, 23 Jul 2020 15:14:29 -0400 (EDT)
Received: from ([]) by localhost (localhost []) (amavisd-new, port 10024) with LMTP id TsC2yniYBvz5; Thu, 23 Jul 2020 15:14:29 -0400 (EDT)
Received: from ( []) by (Postfix) with ESMTP id D397638A06; Thu, 23 Jul 2020 15:14:28 -0400 (EDT)
Received: from localhost (localhost [IPv6:::1]) by (Postfix) with ESMTP id 1D8851CB; Thu, 23 Jul 2020 15:34:56 -0400 (EDT)
From: Michael Richardson <>
To: Phillip Hallam-Baker <>, SPASM <>,
In-Reply-To: <>
References: <> <10463.1591763623@localhost> <13107.1591804306@localhost> <> <5843.1591897975@localhost> <> <20595.1593377487@localhost> <> <22303.1595374300@localhost> <> <19924.1595432391@localhost> <> <19403.1595518388@localhost> <>
X-Mailer: MH-E 8.6+git; nmh 1.7+dev; GNU Emacs 26.1
X-Face: $\n1pF)h^`}$H>Hk{L"x@)JS7<%Az}5RyS@k9X%29-lHB$Ti.V>2bi.~ehC0; <'$9xN5Ub# z!G,p`nR&p7Fz@^UXIn156S8.~^@MJ*mMsD7=QFeq%AL4m<nPbLgmtKK-5dC@#:k
MIME-Version: 1.0
Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha512; protocol="application/pgp-signature"
Date: Thu, 23 Jul 2020 15:34:56 -0400
Message-ID: <15413.1595532896@localhost>
Archived-At: <>
Subject: Re: [Secdispatch] [lamps] IDevID considerations document to secdispatch
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Security Dispatch <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Thu, 23 Jul 2020 19:35:01 -0000

Phillip Hallam-Baker <> wrote:
    > Just thought I would weigh in with some points.

Thank you.
I don't quite understand how XKMS can be used to provision private keys, but
I do agree that I do agree that the rest is a mess.

My goal is to just collect and describe the methods.

I originally started with the idea of being prescriptive about the shape of
of the PKI that is used to provision the certificates.  I am pulling back
from the prescriptive part, and instead I intend to just describe the
different considerations, giving them names.

    > There are no good choices for creating key pairs. All have drawbacks.

    > * Any key generated by the manufacturer can leak at multiple points in the
    > supply chain. But it can be welded to the device in such a way that it
    > cannot be extracted without extreme persuasion.

    > * Any key that is generated by the device can also be compromised through
    > an intentional side channel or by weak key generation. And once generated
    > can usually be extracted.

I am interested in why you say that the key can be welded into place
by the factory, but a key generated internally can't be welded in place in
the same way.
I think both strong and weak ways are possible in each case.

    > * Any key that is installed from an external source during onboarding can
    > be compromised during that process.


    > So none of the solutions are good. What should we do? The best answer is to
    > do all of them and combine the keys using threshold techniques. That allows
    > us to get a key that combines all the properties we want and is only
    > vulnerable if there are multiple failures.

    > The math is explained in this draft:

I would like to include this in my list, but we have a chicken and egg
situation on it.

    > There are some caveats. While the private key is as strong as the strongest
    > of the input keys, the public key is only as good as the weakest public
    > key. Which means that the validation process has to be carefully designed.
    > There are approaches I took out of the drafts that are secure but only when
    > implemented exactly right so I have described a conservative approach.

]               Never tell me the odds!                 | ipv6 mesh networks [
]   Michael Richardson, Sandelman Software Works        |    IoT architect   [
]        |   ruby on rails    [

Michael Richardson <>ca>, Sandelman Software Works
 -= IPv6 IoT consulting =-