3 ms·
The Intel instruction specification details which access control checks are performed when executing instructions. In most of the speculative execution bugs, th
by warkdarrior 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).
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.