3 ms·
What is correctly? You have to understand that SGX was built on an existing infrastructure, without rebuilding the chip. Intel architects ignored side channels
by ngneer 7y ago
What is correctly? You have to understand that SGX was built on an existing infrastructure, without rebuilding the chip. Intel architects ignored side channels for years. So the security specification was being met, except it had ignored a crucial threat. Small comfort. My point is that "correctly" for security can only be defined in the context of a threat model. If the model is incomplete, then you are exposed. I am not aware of a complete threat model for TEE design. And the reason is clear. The threats develop over time, springing into existence as an emergent property of complex designs rewarded by a market that is not keen on incentivizing secure design.
- warkdarrior 7y agoThe Intel instruction specification details which access control checks are performed when executing instructions. In most of the speculative execution bugs, the Intel implementors decided to skip those checks for performance reasons. Note that this is a implementation correctness issue, not a security issue (which is defined only for a threat model). The SGX design was created on top of the instruction specification, not on top of specific buggy processors. Hence the vulnerability! The threat model for SGX did not consider incorrect processor implementation.
- saagarjha 7y ago> The Intel instruction specification details which access control checks are performed when executing instructions. In most of the speculative execution bugs, the Intel implementors decided to skip those checks for performance reasons. Note that this is a implementation correctness issue, not a security issue (which is defined only for a threat model). Note that the access checks are only bypassed when executing speculatively, because they get reordered to occur before the checks take place. It's not that the checks aren't there; it's that they're too late and this allows for tainting micro-architectural buffers with the side effects of the invalid loads.
- ngneer 7y agoI think we are on the same page. I was referring to the specific SGX implementation that relied on existing processor infrastructure, and you are making the argument that no system can be secure that is built on a faulty implementation. No amount of threat modeling will help you if an implementation does not perform its function. All threat models are built under the implicit assumption that the implementation they will help derive will be correct. The threat model helps to answer the question of which function should be realized. Whether that function is in fact realized or not is a different matter. With the speculative execution bugs, the function being realized unintentionally deviated from the specified access checks.