Konubinix' opinionated web of thoughts

Intel Sgx

Intel’s hardware implementation of the enclave concept.

private regions of memory, called enclaves, whose contents are protected and unable to be either read or saved by any process outside the enclave itself

Should be fips 140-2 Level 3, (not 4) since it is indicated not to handle side-channel attacks.

flexible launch control

What is Flexible Launch Control?

The Intel SGX DCAP primitives require a new feature called Flexible Launch Control, which allows the platform owner, versus Intel, to control which enclaves are launched. This includes which enclaves are granted access to the Platform Provisioning Identifier (PPID) used with the Certificate Retrieval Service.  The enclave requesting access to the PPID can be signed by the attestation service provider. One of the purposes of the Launch Enclave is to prevent abuse of the PPID in privacy sensitive environments.

Building an attestation service requires integration with the operating system, and we are working with the Linux Kernel community to get this up-streamed as soon as possible.  Note that you are not required to build your own Quoting Enclave.

https://software.intel.com/content/www/us/en/develop/blogs/an-update-on-3rd-party-attestation.html

Ma compréhension

SGX est un ensemble de fonctionnalités de la suite des processeurs intel post 2018 permettant un chiffrement/déchiffrement à la volée de la DRAM avec une clé cryptographique embarquée dans le processeur.

Elle permet la réduction de la surface d’attaque à l’interface entre le processeur et la partie logicielle et entre le code de la partie chiffrée et le reste de l’application. [1]

Il y a très peu de limitations à ce qui peut tourner de façon chiffrée, mais, dû à la corrélation entre nombre de bugs et taille de code et au sur coût de chiffrer à la volée, il est conseillé de réduire la partie chiffrée au minimum nécessaire à garantir la confidentialité du code. [2]

Il est important de comprendre que, dans le modèle de confiance de SGX, le circuit imprimé contenant le processeur est la seule entité de confiance, incluant la SRAM associée. La DRAM est considérée non de confiance. [3]

Bien que SGX tente de rendre l’écriture de programmes simples, il est nécessaire de comprendre les vocabulaire de SGX pour développer des application compatibles :

Pour protéger la mémoire, voir how does sgx protects my data?

Notes pointant ici

Bibliographie

References

[1]
[2]
Intel® software guard extensions (intel® sgx) developer guide, https://download.01.org/intel-sgx/sgx-linux/2.12/docs/Intel_SGX_Developer_Guide.pdf.
[3]
GUERON, S., A Memory Encryption Engine Suitable for General Purpose Processors, https://eprint.iacr.org/2016/204.pdf.