3 ms·
So far I've seen very little evidence that this will work. Unless some true mechanism can be found for remotely verifying that you are loading your code into a
by Canada 12y ago
So far I've seen very little evidence that this will work. Unless some true mechanism can be found for remotely verifying that you are loading your code into a known environment then there's no way to know that you're running in a secure enclave in the first place.
The best attempt I've seen is sending a computation to be performed by the remote side and trying to infer the state of the CPU cache based on how long it takes to answer. If the timing is off then the cache must have been in an unexpected state and therefore unexpected code must have been executing on the machine. It's clever, but not practical.
What has Intel come up with that's any better? What's described in your link could simply be emulated in software. How would the remote side know the difference?
- wmf 12y agoIn SGX, each processor will have a non-extractable private key and certificate. The certificate isn't emulatable.
- walterbell 12y agoThere's a long technical discussion in the first reference given in the article. Remove the space in the link.
- comex 12y agoSGX includes microcode-based crypto which allows an enclave to both sign and encrypt things using keys based on a hash of the contents of the enclave and some master private key locked away in the CPU. I haven't looked into exactly how this works (although I'd love to defeat it some day when it's released...), but it can't be emulated in software unless you manage to extract the private key. https://software.intel.com/sites/default/files/article/413939/hasp-2013-innovative-technology-for-attestation-and-sealing.pdf https://software.intel.com/sites/default/files/article/41393...
- Canada 12y agoSo, Intel plans to embed a key, signed by some well known root key, in each CPU. I might have skipped over a step or two here, but basically the idea is that only Intel would have the necessary signing key to be able to spoof attestations? Whoever wants to run their code in the enclave would send over a sort of bootloader, which would be responsible for acquiring the signed attestation from the CPU and sending it back. If the signature is good, then the actual code to be run in the enclave can be uploaded. Something about this feels wrong... but then again if Intel wanted to backdoor its CPUs we'd all be screwed anyway, so it's hard to see how this feature could hurt. If applications want anti-virus to be able to get at their data, then they'll just have to provide an explicit interface to do that. If this becomes widely deployed, that root key would be pretty valuable!