Re:TPM–Fail: TPM Meets Timing and Lattice Attacks
by xyzzyz on Tuesday November 12, 2019 @11:52PM
(#21521263)
If you look at IBM's TPM 2.0 implementation[1], you can see that they don't use any well tested libraries for crypto primitives, but rather uses what looks like home-cooked crypto implementation.
Microsoft, on the other hand, seems to support OpenSSL and wolfSSL in their simulator[2].
[1] - http://ibmswtpm.sourceforge.net/ibmswtpm2.html [2] - https://github.com/microsoft/ms-tpm-20-ref
Re:TPM–Fail: TPM Meets Timing and Lattice Attacks
by wolf550e on Wednesday November 13, 2019 @12:51AM
(#21521457)
You're not supposed to use the IBM TPM emulator for anything except developing software that talks to a real TPM without using a real TPM.
Re:TPM–Fail: TPM Meets Timing and Lattice Attacks
by xyzzyz on Wednesday November 13, 2019 @02:21AM
(#21521792)
Sure, but what exactly do you think real TPM manufacturers are putting inside them? They must run some crypto code, do you think they won’t just reuse IBMs emulator? Or that they will come up with something more secure?
Re:TPM–Fail: TPM Meets Timing and Lattice Attacks
by wolf550e on Wednesday November 13, 2019 @03:07AM
(#21521969)
I hope that's what happens, yes.
Re:TPM–Fail: TPM Meets Timing and Lattice Attacks
by matthewaveryusa on Wednesday November 13, 2019 @12:52AM
(#21521459)
IBM's implementation is really scary. I read through the codebase and my WTF meter went through the roof. It looks like the codebase of some evil genius that invented a world of coding practices of his own.
Re:TPM–Fail: TPM Meets Timing and Lattice Attacks
by xyzzyz on Wednesday November 13, 2019 @02:18AM
(#21521780)
You’ll find it interesting then that this codebase is mostly consisting of reference implementation. These WTF practices are straight from TPM 2.0 standard. See https://trustedcomputinggroup.org/wp-content/uploads/TPM-Rev...
Re:TPM–Fail: TPM Meets Timing and Lattice Attacks
by devnullbyte on Wednesday November 13, 2019 @07:46AM
(#21523411)
The researchers used the intel tpm2-tss stack.
Re:TPM–Fail: TPM Meets Timing and Lattice Attacks
by wolf550e on Thursday November 14, 2019 @03:41PM
(#21539173)
tpm2-tss is not an implementation of a TPM, it's a client of the TPM protocol that talks to a server. The server in this protocol can be a real TPM reached by a linux device file or a TPM arbitrator (in kernel on in userspace) or a TPM emulator (the IBM one linked above), etc.
tpm2-tools are CLI utilities that use the tpm2-tss library.
The reference implementation of TPM 2.0 leaves the choice of the crypto library up to the platform vendor. If my suspicions are correct, it sounds like some of the platform vendors decided to use crypto libraries vulnerable to timing attacks. Hmmm...