[remark] Infineon TPM firmware update on the HP t620 thin client

by Ciprian Dorin Craciun (https://volution.ro/ciprian) on 

Updating the Infineon TPM firmware on an HP t620 thin client, which is vulnerable to the ROCA attack (that allows an attacker to recover the RSA private key).

// permanent-link // Lobsters // HackerNews // index // RSS





I'll try to keep this brief and technical (and not even slightly ranty), because it is a very niche subject, and if solving it hadn't been so convoluted and full of hidden gotchas (and consumed almost half a day), I would have just tucked the whole experience under the "another day in the IT paradise, which almost doesn't kill you, but certainly doesn't make you happier" category.

But, given how much grief and anguish it has caused me, I hope to spare the next unfortunate human being that tries to undertake it.


Some context:

So, one would expect to just download some disk image, write it to a USB, boot it, follow the next-next-next instructions, hope the update doesn't brick your system (not that such a thing happened to me in the past), and be done with it.

Regrettably, it's not the case... (Else, our lives would have been boring and without enough heart pumping action to make us feel alive!)

Foremost, Infineon washed their hands of the whole debacle, and just pushed the device integrators under the bus leaving each of them doing their own stuff; see:
Information on TPM firmware update for Microsoft Windows systems as announced on Microsoft's patchday on October 10th 2017

What choose HP to do? What any reputable cost-savvy enterprise hardware manufacturer chooses to do when faced with a similar problem: provide you with a Windows executable (that works only on certain versions of said OS)...

Am I using Linux? Too bad...


So, what are the steps to update the Infineon TPM firmware?

Good job!


How do you check that your TPM isn't any more vulnerable to the ROCA attack?

You just need the public part of an RSA key generated on the TPM chip, and pass it to the online ROCA vulnerability checker available at:
https://keychest.net/roca

How do you get the public part of an RSA key generated on device?

Stay tuned for another rant... No, really, there isn't a straight-forward solution...

I've managed to checkout and compile the tpm-sign example from the (not sponsored by Google, but happens to be hosted on their GitHub account) Go-TPM project:
https://github.com/google/go-tpm/blob/main/examples/tpm-sign

You could then:


How should you proceed in the future when another vulnerability is found in your HP t620?

Just recycle it, or stop relying on the TPM, because even as of today HP considers this device as end-of-life.