Re: [PATCH v24 00/24] Intel SGX foundations

From: Jarkko Sakkinen
Date: Tue Feb 25 2020 - 05:15:25 EST


On Mon, Feb 24, 2020 at 02:34:56PM +0800, ää(ææé) wrote:
> On Sat, Nov 30, 2019 at 01:13:02AM +0200, Jarkko Sakkinen wrote:
> > Intel(R) SGX is a set of CPU instructions that can be used by applications
> > to set aside private regions of code and data. The code outside the enclave
> > is disallowed to access the memory inside the enclave by the CPU access
> > control.
> >
> > There is a new hardware unit in the processor called Memory Encryption
> > Engine (MEE) starting from the Skylake microacrhitecture. BIOS can define
> > one or many MEE regions that can hold enclave data by configuring them with
> > PRMRR registers.
> >
> > The MEE automatically encrypts the data leaving the processor package to
> > the MEE regions. The data is encrypted using a random key whose life-time
> > is exactly one power cycle.
> >
> > The current implementation requires that the firmware sets
> > IA32_SGXLEPUBKEYHASH* MSRs as writable so that ultimately the kernel can
> > decide what enclaves it wants run. The implementation does not create
> > any bottlenecks to support read-only MSRs later on.
> >
> > You can tell if your CPU supports SGX by looking into /proc/cpuinfo:
> >
> > cat /proc/cpuinfo | grep sgx
>
> Tested-by: Chunyang Hui <sanqian.hcy@xxxxxxxxxx>
>
> Occlum project (https://github.com/occlum/occlum) is a libOS built on top of
> Intel SGX feature. We ran Occlum tests using patch v24 on SGX hardware with
> the Flexible Launch Control (FLC) feature and didn't find any problems.
> As Occlum core developers, we would like these patches to be merged soon.

Thank you.

I updated the commit:

https://github.com/jsakkine-intel/linux-sgx/commit/3475daeca0793d9ef69204d4981af3cacd888409

/Jarkko