This document aims to explore the topic of trusted hardware and more specifically TEEs (Trusted Execution Environments).
TODO: Brief description of what is meant by trusted hardware and trusted execution environment.
Many of the projects listed below are taken from Intel SGX Explained by Victor Costan and Srinivas Devadas.
- Proof of Device: https://github.com/golemfactory/ProofOfDevice
https://en.wikipedia.org/wiki/Software_Guard_Extensions
Tutorials, wikis, etc.
- SGX Tutorial Series by Intel
- SGX 101 by the Systems Software & Security Lab from Georgia Institute of Technology led by Prof. Taesoo Kim
- Intel SGX Explained (pdf) -- https://eprint.iacr.org/2016/086/20170221:054353
- https://www.unboundtech.com/wp-content/uploads/2020/09/security-of-intelsgx-key-protection-data-privacy-apps.pdf
- https://www.researchgate.net/publication/342833256_Towards_Formalization_of_Enhanced_Privacy_ID_EPID-based_Remote_Attestation_in_Intel_SG
- USENIX ATC '19 - Secured Routines: Language-based Construction of Trusted Execution Environments
Curated lists
- A curated list of system papers using/about Intel SGX: https://github.com/vschiavoni/sgx-papers
- Reading list: http://ina.kaist.ac.kr/~dongsuh/SGXReadingList.html
- A Survey of Published Attacks on Intel SGX (pdf)-- https://arxiv.org/abs/2006.13598
- https://arstechnica.com/information-technology/2020/03/hackers-can-steal-secret-data-stored-in-intels-sgx-secure-enclave/
- https://lviattack.eu/ -- https://ieeexplore.ieee.org/document/9152763 (https://www.youtube.com/watch?v=99kVz-YGi6Y)
- https://github.com/lsds/spectre-attack-sgx
- https://news.hackreports.com/sgaxe-crosstalk-attacks-intel-sgx-vulnerability/
- PLATYPUS
- VoltPillager: Hardware undervolting attacks on Intel SGX with a $30 tool | paper | fosdem 2021 slides | PoC source code
- SGaxe, SGaxe slides, SGaxe talk
Signal Messaging Application
Each SGX enabled processor supports two statistically-unique values stored in fuses. These are known as the Root Provisioning Key and the Root Seal Key. The key transformation process operates on the Root Provisioning Key, seen here in Figure 5 (below). The Root Provisioning Key is randomly created and retained by Intel. It is the basis for how the processor demonstrates that it is a genuine Intel® SGX CPU at a specific TCB. This Root Provisioning Key is generated by a special purpose offline key generation facility, and is then delivered to Intel’s factory network. The Root Seal Key is created during processor manufacturing and is not retained by Intel. As shown in Figure 5 and Table 3 all keys except the Provisioning Key include the Root Seal Key in their derivations. This renders those keys unknown to Intel.
- https://software.intel.com/content/www/us/en/develop/download/intel-64-and-ia-32-architectures-sdm-volume-3d-system-programming-guide-part-4.html
- https://software.intel.com/content/www/us/en/develop/articles/innovative-technology-for-cpu-based-attestation-and-sealing.html
- https://sgx101.gitbook.io/sgx101/sgx-bootstrap/attestation
- https://www.idc.ac.il/en/schools/cs/research/documents/jackson-msc-thesis.pdf
- http://cse.sustech.edu.cn/faculty/~zhangfw/paper/hyperrace-idsc19.pdf
- https://software.intel.com/content/www/us/en/develop/download/intel-sgx-intel-epid-provisioning-and-attestation-services.html
- https://www.blackhat.com/docs/us-16/materials/us-16-Aumasson-SGX-Secure-Enclaves-In-Practice-Security-And-Crypto-Review.pdf
- https://www.aumasson.jp/data/talks/sgx_bh16.pdf
- https://community.intel.com/t5/Intel-Software-Guard-Extensions/Is-distributed-IAS-possible-in-the-future/td-p/1151653
- https://gts3.org/pages/overview.html
- https://arxiv.org/pdf/2006.13598v1.pdf
- https://www.researchgate.net/publication/342833256_Towards_Formalization_of_Enhanced_Privacy_ID_EPID-based_Remote_Attestation_in_Intel_SGX
- https://arxiv.org/pdf/1801.05863.pdf
David Champagne and Ruby B Lee. Scalable architectural support for trusted software. In High Performance Computer Architecture (HPCA), 2010 IEEE 16th International Symposium on, pages 1–12. IEEE, 2010.
Available at http://palms.princeton.edu/system/files/Bastion_Scalable+architectural+support+for+trusted+software.pdf
Slides by Dimitrios Skarlatos: http://cwfletcher.net/Content/598/lec18_bastion_dimitrioss.pdf
Christopher W Fletcher, Marten van Dijk, and Srinivas Devadas. A secure processor architecture for encrypted computation on untrusted programs. In Proceedings of the Seventh ACM Workshop on Scalable Trusted Computing, pages 3–8. ACM, 2012.
https://dspace.mit.edu/bitstream/handle/1721.1/99986/Devadas_A%20secure.pdf
Uses Oblivious RAM techniques in the CPU's memory controller. See Intel SGX Explained by Victor Costan and Srinivas Devadas, section 4.10.
Martin Maas, Eric Love, Emil Stefanov, Mohit Tiwari, Elaine Shi, Krste Asanovic, John Kubiatowicz, and Dawn Song. Phantom: Practical oblivious computation in a secure processor. In Proceedings of the 2013 ACM SIGSAC conference on Computer & communications security, pages 311–324. ACM, 2013.
https://www.cs.umd.edu/~elaine/docs/phantom.pdf
Uses Oblivious RAM techniques in the CPU's memory controller. See Intel SGX Explained by Victor Costan and Srinivas Devadas, section 4.10.