this post was submitted on 07 Feb 2024
739 points (97.7% liked)

Technology

59123 readers
2310 users here now

This is a most excellent place for technology news and articles.


Our Rules


  1. Follow the lemmy.world rules.
  2. Only tech related content.
  3. Be excellent to each another!
  4. Mod approved content bots can post up to 10 articles per day.
  5. Threads asking for personal tech support may be deleted.
  6. Politics threads may be removed.
  7. No memes allowed as posts, OK to post as comments.
  8. Only approved bots from the list below, to ask if your bot can be added please contact us.
  9. Check for duplicates before posting, duplicates may be removed

Approved Bots


founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 67 points 9 months ago* (last edited 9 months ago) (2 children)

I thought the point of the TPM was that the keys would be kept internally to the TPM at all times and that any data lanes would only be used for transferring payload. Why are they sending keys between the TPM and the CPU?

[–] [email protected] 43 points 9 months ago

There are some functions like that, like Passkey signing. For Bitlocker, the encryption/decryption key is transferred to the CPU (and RAM) in order for it to operate. The problem described here has been around for a while, but putting it on a key like that makes the attack method available to "everyone". There has been a solution for a while too: 1) put in pre-boot Bitlocker PIN, and 2) use integrated TPM like the article mentions.

[–] [email protected] 18 points 9 months ago (1 children)

Because the CPU has to decrypt the bulk of the data coming from the disc. And it needs a key to do that. Unless we route all traffic through the TPM to decrypt the disc. The CPU needs a key to do that

[–] [email protected] 4 points 9 months ago (1 children)

Surely some smart key exchange algorithm could be used for that, e.g. the CPU provides a public key to the TPM and the TPM encrypts the symmetric disk key with that public key. Similar to how TLS works.

[–] [email protected] 8 points 9 months ago (3 children)

The private key would have to stored in clear text somewhere. Potentially if you had non volatile space on cpu that to store the private key, that might work. But if you’re going to do that, might as well just use an ftpm.

[–] [email protected] 2 points 9 months ago (1 children)

Why not store it directly in the TPM, if that's the device that will do that initial decryption?

[–] [email protected] 1 points 9 months ago (2 children)

You can't do that since vulnerability is the connection between the TPM and the CPU, you need to encrypt that path.

[–] [email protected] 2 points 9 months ago (1 children)

Pretty sure they meant if you need to keep a persistent public/private pair you can keep them in the tpm and initiate the exchange from there

[–] [email protected] 1 points 9 months ago

That's correct. I'm guessing if it hasn't been implemented yet, then there is some technical roadblock I'm currently missing.

[–] [email protected] 2 points 9 months ago

The TPM comes out from the factory with a private key stored in it. The CPU has the public key.

You turn on the laptop for the first time, and the communication between the CPU and the TPM is encrypted from the start.

That's what I'm referring to. Can't this be done? I'm guessing it's not that easy because I'm sure computer designers have already considered this idea.

[–] [email protected] 2 points 9 months ago

Right and not to mention pairing the cpu and tpm for key exchange to avoid mitm attacks...

[–] [email protected] 1 points 9 months ago (1 children)

Just generate one anew. You don't need to use the same one each time

[–] [email protected] 1 points 9 months ago (1 children)

What do you mean by that? Generate a new private/public key pair every time you setup a new TPM? Or when you boot the system or something?

[–] [email protected] 1 points 9 months ago* (last edited 9 months ago)

On each connection. Or boot. Whenever you need

Edit: to be clear, this would still be vulnerable to mitm attacks without a user entered password on top but at least you can't just read the secrets from the bus. E2: And having a password wouldn't be fully secure without such a scheme neither