Penglai: Verifiable and Scalable TEE system

26
Penglai: Verifiable and Scalable TEE system FOSDEM 2021 Shanghai Jiao Tong University IPADS · Dong Du

Transcript of Penglai: Verifiable and Scalable TEE system

Penglai: Verifiable and Scalable TEE system

FOSDEM 2021

Shanghai Jiao Tong University IPADS · Dong Du

Enclave/TEE: Trusted Execution Environment

• Enclave/TEE– A trusted execution environment (TEE) is a secure area of a main processor. It

guarantees code and data loaded inside to be protected with respect to confidentiality and integrity —— Wikipedia

• Two major functionalities– Remote attestation: whether a remote node is the enclave with legal code– Isolation: untrusted SW/HW can not access enclave’s data

• Enclave’s capability: restrict data access– Data is only transferred among attested nodes

The Rising TEE

¯ Intel SGX/TDX ¯ AMD SEV ¯ ARM TrustZone ¯ Keystone, Penglai

• Cloud vendors utilize TEE/Enclave to protect data– 2018,Microsoft Azure proposes Confidential Computing based on Intel SGX– 2019,Amazon proposes Nitro Enclave to protect sensitive user data– 2020,Google Cloud introduces the Secure VM based on AMD SEV

• Confidential computing consortium– Arm, AMD, Intel, Redhat, Facebook, Google– Huawei, Ali Cloud, Tencent, Baidu, Byte dancing

Penglai: Verifiable and Scalable RISC-V Enclave

• Secure hardware extensions– sPMP(Supervisor-mode Physical Memory Protection)

• Security monitor– Lightweight software/firmware in RISC-V Machine-mode– Formal verification-oriented design– Remote attestation, runtime management and isolation

• Secure runtime frameworks– ARM PSA, global platform

– Easy to port existing secure applications4

Hardware

M-Mode

S-Mode

U-Mode

RISC-V modes

Penglai Enclave: HW-SW Co-design for Security

Bus

OTPTrue RNG

Memory(DRAM, SRAM)

外围硬件设备外围硬件

设备Peripherals

Flash etc. External storage

IOPMPIOPMP IOPMP IOPMP

Each IOPMP node can beconnected with multiple IOdevices

PMP/sPMP

RISC-VCore

RISC-VCore

RISC-VCore

PMP/sPMP PMP/sPMP PMP/sPMP

RISC-V Core

Monitor

Enclave Enclave …

IOPMP & PMP areconfigured bymonitor

sPMP is an extensionproposed by Penglai

Software Architecture

• Based on RISC-V-v1.10 spec

• Components: Monitor and Enclave App– Monitor: sPMP/PMP/IOPMP configurations, isolation, enclave management– Enclave App is responsible for executing tasks

• Enclave App includes Host Enclave App and Secure Enclave App– Host Enclave App: security non-sensitive tasks in REE (rich execution environment)

– Secure Enclave App: security sensitive tasks in TEE

• Service Enclave App: secure storage, encryption, etc.

• Designed for both MMU and non-MMU (e.g., MCU) devices

• Formal verification-oriented design

Penglai Architecture on MMU Chips

Non-sensitive code/data

Host Enclave AppUserSensitive

code/data

Secure Enclave App

OSKernel module

SBI interface wrapper

ioctl()

Supervisor

Hypervisor(Unused)

Enclave management

Security MonitorMachine

Monitor call Monitor call

UntrustedTrusted

Memory isolation(sPMP/PMP)Hardware

property:

Cache partition

FS code/data

Enclave Service

Secure communication channel

Penglai Architecture on non-MMU Chips (M+U)

Normal RTOS Regions/Bare-metal regions

Secure Service Regions

Trust App

Usermode

machinemode

Penglai Secure Bootloader

Host SDK Trust SDK

PMPmgmt.

Region Mgmt. /Comm.

Secure Monitor

Some FreeRTOSinstructions arereplaced to ecall

tasktasktasktasktask Secure Storage

Remote Attest

TLS

Trust App1

Emulate (privileged)instructions inmonitor to avoidmodifications onFreeRTOS

Penglai Architecture on non-MMU Chips (M+S+U)

Normal RTOS Regions/Bare-metal regions

Secure Service Regions

Trust App

Usermode

Supervisor mode

Penglai Secure Bootloader

Host SDK Trust SDK

RTOS taskmgr. /ISR

PMP mgmt. Region Mgmt. / Comm.

Secure Monitor

tasktasktasktasktask

Machine mode

HostDriver

Driver to handlethe requestsfrom SDK

Trust App1

Modification onRTOS is minor

Secure Storage

Remote Attest

TLS

Formal Verification

• Motivation– Hardware provides basic primitives: isolation (PMP,

sPMP), cache partition, and others– Software monitor is responsible for implementing

others• The only software TCB, security sensitive• Formal methods!

10

• Pangolin framework: formal verification– Formal specification describing functionalities– Verify functionalities and higher security properties– Based on model checking and symbolic execution

Formal Verification

11

Preprocess

PengLaiBinary

Pangolin(based on Serval)

instructions

symbols

offsets

Symbolic Execution

PengLai

Implementation Specification

statesinvariantsconsistency

Modeling

Emulatedhardware

PC

GPRs

CSRs

memory

State

REGS

Enclave

pages

more...

Formal Verification-Oriented Design

• Big monitor lock– Sufficient for monitor yet more verifiable [1]

• Eliminate/restrict unbounded loops

• Verification friendly interface– Constrained pointers in arguments

12[1] Peters, S., Danis, A., Elphinstone, K. and Heiser, G., 2015, July. For a microkernel, a big lock is fine. In Proceedings of the 6th Asia-Pacific Workshop on Systems (pp. 1-7).

Formal Verification

• Verified modules– RISC-V boot process、IPC calls、helper functions

• Future work– Enclave management– Enclave fork

– Others

13

Secure Functionalities

• Memory isolation

• Interrupt isolation

• Secure storage

• Secure usage of peripherals

Memory Isolation

• Utilize sPMP + PMP for enclave memoryisolation

Secure monitorMachinemode

Supervisormode

Usermode

Isolationbased on

PMP

PMP-basedisolation

sPMP-based

isolation

EnclaveD

EnclaveE

EnclaveC

EnclaveB

EnclaveA

sPMP couldprovides betterscalability.

sPMP-based

isolationPMP-based

isolation

sPMP (S-mode PMP)

• For IoT devices (MMU-less)– Enable S-mode OS to limit the physical addresses accessible

by U-mode software

16

sPMP (S-mode PMP)

17

• S-mode virtualization for scalable enclaves

sPMP (S-mode PMP)

• sPMP entries– 8-bit configuration register (SMAP enabled by default)– XLEN-bit address register

18

address register (RV32)

address[33:2] (WARL)31 0

configuration register format

R(WARL)

0

1

W(WARL)

1

1

X(WARL)

2

1

A(WARL)

3

2

WIRI

4

1

S(WARL)

5

1

7 6

WIRI

1

Supervisor Address Execute Write Read

Refer the proposal in RISC-V/TEE group for details.

Interrupt Isolation

• Goal: interrupts are only visible to the target Enclave Apps

• Controllers provide different granularities on configuration– PLIC: configure whether external interrupts should be directed to S-mode

– CLIC/ECLIC: could configure whether individual interrupt should be directedto S-mode

• Different isolation mechanisms for different controllers

Interrupt Isolation: Platform-Level Interrupt Controller

• External interrupts are always trapped into M-mode

• Monitor is responsible for interrupt redirection

EnclaveA

Machinemode

EnclaveB

S-mode/u-mode

SecureMonito

r

External interrupt,always trap intomachine mode

Ack interrupt, query which enclave isconnected to the interrupt, and jumpto the handler。

The entry of interrupt handleris specified through monitorcalls (or it could allowmonitor directly jumps to theentry in stvec)

Interrupts are assigned to enclaves,which are configured duringinitialization through a configuration file

Interrupt Isolation: Core-Local Interrupt Controller• If s-mode exists and the

interrupt is related to therunning enclave, it is handledby the enclave directly

Machinemode

S-mode

SecureMonito

r

S-ModeHandler

Relations between interrupts and enclaves are configured by monitor during initialization through a configuration file.When switching to a new enclave, all the interrupts assigned to enclave are configured to be directed toS-mode, and others will be trapped into the monitor.

u-mode

Running

Enclave A Enclave B

Interrupts(belong Enclave A)

Case I

Machinemode

S-mode

SecureMonito

r

S-ModeHandler

u-mode

Running

Enclave A Enclave BCase II

S-ModeHandler

• If the interrupts are not assignedto the running enclave, it will trapinto the monitor, which willredirect interrupts to the targetenclave

S-ModeHandler

Configure the interruptto be directed to S-mode, and switch toEnclave-B

Interrupts(belong Enclave B)

Secure Storage

EnclaveApp

Storage

Secure storage is provisioned by specific Service Enclave

Enclave App invokes the Storage Service Enclave through IPC. According to different scenarios, callers canuse Global Platform API or PSA API.

Secure storage guarantees privacy and integrity protection on data, and can defend replay attacks.

GP API / PSA API

Storage Service Enclave

Encryption module

File system

For MCU devices, storage is usually the fixedregion in internal flash, which is protected byPMP.

For non-MCU devices, our solutions utilizeRPMB regions in EMMC/UFS as the storage(under development now)

Secure Usage of PeripheralsRestricting the requests issued by RISC-V Core through PMP/sPMP

Restricting the (DMA) requests issued by device through IOPMP (WIP)

- Each I/O device should be assigned with a master id

- Configure the permissions of the master id throughIOPMP

BUS

Device-2(mid=2)

Device-1(mid=1)

IOPMP IOPMP

Device-3(mid=3)

Device-4

Channel-1(mid=4)

Channel-2(mid=5)

PMP/sPMP

RISC-V Core

Scenarios: Secure Communication

TEE NSSDK

Cryptography API SecureStorage

Secure App Secure App

Untrusted Apps

Task Management

TEE

TEE TA SDK

KeyManagemen

t

Normal world

Secure Services

Untrusted Apps

SSL/TLS

Attestation

• TEE NSSDK/TEE_TA SDK: functionalities to allow communication between Enclaves and Untrusted Apps, and among Enclaves

• Support mainstream crypto algorithms forencryption/description/hashing/integrity.

• TEE-enhanced SSL/TLS protocols

• Support both PSA and GP API

Penglai: Verifiable and Scalable TEE• Verifiable

– Formal verification-oriented design– Pangolin framework

• Scalable– Utilize scalable hardware isolation mechanism: PMP + S-mode PMP– Running up to 1000 (concurrently) enclaves in Qemu/FPGA

• Security functionalities– Memory isolation, secure storage, interrupts, and peripherals

• Open-sourced– https://github.com/Penglai-Enclave/Penglai-Enclave

T h a n k s