Recent submissions

Comment · 1 month ago
Joke's on them, I don't have the key either.
Comment · 1 month ago
Thanks for sharing Ted!
Comment · 1 month ago
What mjg59 says. The benchmarks are against a vTPM, that was what I had access to, and it's the environment I'm implementing the RATS side in.

Worth adding that not every outbound connection needs to go through the TPM (IMO). It's for the handful of services where the machine-identity actually matters, a secret store, or an HSM releasing key material onto an attested confidential VM, in my case.

Comment · 1 month ago
Comment · 1 month ago
Author here. All of it is mine, the library (https://github.com/bschaatsbergen/go-tpm-tls) and the benchmarks (https://github.com/bschaatsbergen/go-tpm-tls-bench) and the working notes. English isn't my first language, so I edit a lot, and I can see how that comes out flat. I've been over it once more; hopefully it reads better now. Thanks for saying so rather than just closing the tab.
Comment · 1 month ago
That's right, I'm learning in public here. That draft is a different direction though, they change the handshake: new TLS extensions carry the evidence, and the far end appraises the platform during the connection.

What I'm doing changes nothing on the wire, the verifying side has no idea a TPM is involved. In RATS (https://www.rfc-editor.org/rfc/rfc9334.html) we prove a machine is sound by measuring it and appraising the evidence. But after attestation the usual thing is to hand the machine a short-lived identity saying it is attested, and when that machine then authenticates over mTLS to something like an HSM, the thing that gives that machine its identity is a private key in a file. That bothered me. What I want is to tie the key in the TPM to the evidence of the confidential VM at issuance time, and let that be the identity the machine carries afterwards. Working notes while implementing RFC 9334.

Comment · 3 months ago
Author here, thanks for posting this. Been going deeper on TPMs lately, working through machine identity after remote attestation, the point where you've proven a machine is genuine but still need it to prove which machine it is to something like a secret store. crypto/tls takes any crypto.Signer, so this library slots a TPM-resident ke in and signs the handshake without the key ever leaving the hardware; happy to answer anything on the library or the attestation side.

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton