Security and confidential computing
axel simon
- ffice of the CTO
enarx.io
Security and confidential computing axel simon office of the CTO - - PowerPoint PPT Presentation
Security and confidential computing axel simon office of the CTO enarx.io The Problem The Need for Confidentiality and Integrity Banking & Finance Government & Public Sector Telco IoT HIPAA GDPR
axel simon
enarx.io
The Need for Confidentiality and Integrity
Virtualization Stack
Middleware Userspace Kernel Firmware Hypervisor BIOS | EFI CPU | Management Engine Bootloader Application
Container Stack
Middleware Userspace Container Engine Firmware Bootloader BIOS | EFI CPU | Management Engine Hypervisor Kernel Application
Virtualization Stack
as seen by xkcd (xkcd.com/2166)
What’s a TEE?
Middleware Userspace Kernel Firmware Hypervisor BIOS | EFI CPU | Management Engine Bootloader Application
TEE
What’s a TEE?
Middleware Userspace Kernel Firmware Hypervisor BIOS | EFI CPU | Management Engine Bootloader Application
TEE Only the CPU has access
What’s a TEE?
Middleware Userspace Kernel Firmware Hypervisor BIOS | EFI CPU | Management Engine Bootloader Application
TEE Only the CPU has access What happens when
access?
What’s a TEE?
Middleware Userspace Kernel Firmware Hypervisor BIOS | EFI CPU | Management Engine Bootloader Application
TEE Only the CPU has access What happens when
access? Blocked by CPU
Trusted Execution Environments
TEE TEE is a protected area within the host, for execution of sensitive workloads Host
TEE provides:
Trusted Execution Environments
TEE TEE is a protected area within the host, for execution of sensitive workloads Host
TEE provides:
Trusted Execution Environments
TEE Host
valid TEE?” Tenant
TEE provides:
Trusted Execution Summary
Tenant TEE
valid TEE?”
Host Attestation
TEE provides:
Trusted Execution Summary
Tenant TEE Attestation Attestation includes:
Code + Data (Encrypted) Host
Trusted Execution Models
Process-Based
VM-Based
Not a TEE: TrustZone, TPM
Trusted Execution: Process-Based
PROS
CONS
Trusted Execution: Virtual Machine-Based
PROS
CONS
Enarx
27
Enarx Keep “Server” “Client” Tenant
Attestation handshake Workload delivery (encrypted)
Host
CPU + firmware Workload runs
Enarx Architecture
VM-Based Keep Process-Based Keep SGX Sanctum SEV PEF WebAssembly WASI Language Bindings (libc, etc.)
W3C standards
Application MKTME
Enarx Architecture
VM-Based Keep Process-Based Keep SGX SEV WebAssembly WASI Language Bindings (libc, etc.)
W3C standards
Application Intel AMD
Breaking things down with SGX
Process-Based Keep SGX Application
Breaking things down with SGX
Process-Based Keep Application SGX
Breaking things down with SGX
Process-Based Keep SGX Application
CONFIDENTIAL Designator
SGX demo
Breaking things down with SEV
VM-Based Keep SEV Application
Breaking things down with SEV
VM-Based Keep SEV Application
Breaking things down with SEV
VM-Based Keep SEV Application
CONFIDENTIAL Designator
SEV demo
Where we’d like to be
VM-Based Keep SEV Process-Based Keep SGX Application
Where we’d like to be
VM-Based Keep SEV Process-Based Keep SGX Application
Where we’d like to be
VM-Based Keep SEV Process-Based Keep SGX Application Application Same binary
Where we’d like to be Where we are
VM-Based Keep SEV Process-Based Keep SGX Application Application Same binary
CONFIDENTIAL Designator
CONFIDENTIAL Designator
Layers - process-based Keep
Trusted via Measurement Root of Trust Distrusted CPU (Intel) Kernel Loader Shim WASM (JIT) WASI Application Enarx
Silicon architecture-dependent
Enarx Keep
Silicon architecture-dependent
Layers (now) - process-based Keep
CPU (Intel) Kernel Loader Shim Application Enarx
Layers - VM-based Keep
Trusted via Measurement Root of Trust Distrusted CPU (AMD) Kernel Loader (VMM) Shim WASM (JIT) WASI Application Enarx
Silicon architecture-dependent
Enarx Keep
Silicon architecture-dependent
Layers (now) - process-based Keep
CPU (AMD) Kernel Loader (VMM) Shim Application Enarx
Where we’d like to be Where we are
Same binary CPU (AMD) Kernel Loader (VMM) Shim ELF static-PIE binary Enarx Kernel Loader Shim CPU (Intel) ELF static-PIE binary Enarx
Where we’d like to be next
One binary CPU (AMD) Kernel Loader (VMM) Shim Enarx Kernel Loader Shim CPU (Intel) Wasm binary WASM (JIT) WASI Enarx
50
51
Website: https://enarx.io Code: https://github.com/enarx License: Apache 2.0 Language: Rust
Daily stand-ups open to all! Check the website wiki for details.
52
Website: https://enarx.io Code: https://github.com/enarx License: Apache 2.0 Language: Rust
Daily stand-ups open to all! Check the website wiki for details.
https://enarx.io