3 ms·
You do not sign with a public key; you sign with a private key and verify with a public key. The presence of a public key within the update itself indicates th
by caf 13y ago
You do not sign with a public key; you sign with a private key and verify with a public key.
The presence of a public key within the update itself indicates that that public key must somehow be authenticated by the CPU. Two possible options are that the public key itself is signed by a master key, and the "master" public key is embedded within the CPU; or that the cryptographic hashes of all valid public keys are directly embedded within the CPU. The point of the second option would be to save area on the CPU die (a 256 bit hash can be saved in place of a 2048 bit public key).
- taway2012 13y agoThanks, I think I understand now. The chip verifies the update using the public key present in the blob. But before doing so, it checks the public key against some whitelist of valid public keys. The private key used to sign the blob is never present on the chip. Interesting. Seems pretty secure to me, and more secure than a straight-up HMAC. Thanks for answering my questions. I know a little about symmetric crypto, and your explanation has been very useful to expand my knowledge.