Phill:

This is really a description of IDevID certificates that are installed by a 
factory, and then replaced by LDevID certificates that are issed by the device 
owner at the time of installation.  NETCONF already supports that model.What am 
I missing?

Russ

> On Mar 16, 2025, at 11:31 PM, Phillip Hallam-Baker <ph...@hallambaker.com> 
> wrote:
> 
> A common requirement in device security is to know that a key is bound to a 
> device with some degree of hardware assurance such that the key can be used 
> on the device but not extracted from it.
> 
> FIPS-140 specifies a set of assurance levels but there is value in even the 
> lightest of lightweight assurance levels. By far the largest risk of key 
> disclosure comes from administrative error, backing up the private key file 
> in plaintext, selling a host machine on EBay without wiping the disks, etc. 
> etc. Yes, Kocher side channel attacks are important if you are going to do it 
> right but the bar to measurable improvement in security turns out to be 
> really really low.
> 
> So what if we could add a means of attesting that a key that the manufacturer 
> of the device has absolutely no knowledge of is bound to a device that is 
> completely compatible with SSL/1.0 thru TLS/1.3? No protocol changes needed. 
> The only change comes in the key generation step and the manner in which the 
> hardware key is used.
> 
> 
> Step 1: Device generation
> 
> Manufacturer generates an ECC private key pair {x.P, x} and an assertion 
> A(x.P) that the private key corresponding to x.P is bound to the device 
> accredited under the trust chain of your choice.
> 
> This assertion does not expire. The manufacturer has absolutely no 
> involvement in the protocol after the device ships.
> 
> 
> Step 2: Key generation
> 
> Since Alice does not trust the manufacturer at all or in any degree, Alice is 
> going to generate her own keypair {y.P, y}.
> 
> Alice also generates P(x.P, y.P) a proof of possession for y consisting of 
> Sig (x.P, y)
> 
> 
> Step 3: Certificate request
> 
> A certificate request is generated for the public key z.P = x.P + y.P with an 
> attestation section containing A(x.P) and P(x.P, y.P)
> 
> The CA verifies that z.P is consistent with the claims specified in A(x.P) 
> and P(x.P, y.P), if the check succeeds, the CA adds an extension to the cert 
> saying the key is dependent on the bound key x.P.
> 
> [Alternatively, the extension can specify A(x.P) and P(x.P, y.P) allowing 
> endpoints to do the validation, this can be achieved either directly or 
> through a self validating URI such as an EARL.]
> 
> 
> Step 4: Performing TLS (or other protocol)
> 
> Key operations involving x have to be submitted to whatever security module 
> holds x. This API is extended to support the operation Sign (Data, keyID, 
> offset), the caller specifies Sign (Data, "boundKey", y)
> 
> This is not a threshold signature protocol, it is a threshold key protocol 
> where the key produced by adding x+y is used for signature. So we don't have 
> to worry about all the 'concurrency' issues to do with combining the results 
> of two signature operations. There is a single signature operation occurring 
> but under a key that is not known to either the manufacturer or the user.
> 
> 
> Impact
> 
> This approach is completely backwards compatible. An attested TLS certificate 
> works in every circumstance that legacy certificates work with absolutely no 
> protocol changes. The only difference in use is that a relying party that 
> requires the attestation can see it in the certificate.
> 
> The Manufacturer is required to do the attestation bit but their involvement 
> is minimal, they have to develop some sort of secure enclave and provide an 
> api to use the key with a user specified offset.
> 
> The Key Generation app used by the client needs to be slightly modified but 
> this is minimal
> 
> The CA needs to do some additional validation checks but these are easy to 
> specify and enforce.
> 
> The TLS library doesn't need to change very much beyond being able to present 
> a private key to a crypto provider. This might fit into existing plug and 
> play crypto schemes or it might not. This is something that is fixable and 
> should be fixed.
> 
> The big win for security is that disclosure of the private key y doesn't lead 
> to a breach unless the manufacturer also suffers a breach. The value y can be 
> stored unencrypted.
> 
> 
> Key Rollover
> 
> Yup, the device bound key never changes. We can spin up a new y as many times 
> as we like but x never changes. Nor is there any value in changing it. Any 
> mechanism you try to construct for rolling over the bound key is going to 
> increase rather than decrease attack surface. Yes, I am aware that you could 
> put in place a route for rollover of the bound key via the manufacturer 
> but... just no, not needed, not useful.
> 
> 
> Post Quantum
> 
> Yup, depends on ECC so if you want PQC as well, you would need to have a 
> hybrid config until someone works out how to do threshold securely in PQC. 
> Yes, I can do threshold in ML-KEM, I can also break that scheme.
> 
> 
> Draft
> 
> Will spin up the draft when I get home. My MacBook is refusing to run my 
> dotNET code for my Word->XML2RFC converter. Anyone know how to bypass the 
> malware protection checks?
> 
> 
> Patents
> 
> Yeah, probably covered by prior art I disclosed in the Mesh documents and in 
> public presentations many years back. I am not intending to make a claim. If 
> someone does, please remember who provides relevant expert witness services...
> _______________________________________________
> TLS mailing list -- tls@ietf.org
> To unsubscribe send an email to tls-le...@ietf.org

Attachment: signature.asc
Description: Message signed with OpenPGP

_______________________________________________
TLS mailing list -- tls@ietf.org
To unsubscribe send an email to tls-le...@ietf.org

Reply via email to