Android and trusted execution environments - u'smile · TAM API Provisioning service mem TA mem mem...

15
Trusted Execution Environments (and Android) Jan-Erik Ekberg Director of Advanced Development, Trustonic 9.9.2015

Transcript of Android and trusted execution environments - u'smile · TAM API Provisioning service mem TA mem mem...

Page 1: Android and trusted execution environments - u'smile · TAM API Provisioning service mem TA mem mem code heap stack mem . SEAndroid will change things to come in Android6 ... Android

Trusted Execution Environments (and Android)

Jan-Erik Ekberg Director of Advanced Development, Trustonic

9.9.2015

Page 2: Android and trusted execution environments - u'smile · TAM API Provisioning service mem TA mem mem code heap stack mem . SEAndroid will change things to come in Android6 ... Android

Content: 1) What is a TEE 2) TEE on Android (today) 3) (Research) use cases

Page 3: Android and trusted execution environments - u'smile · TAM API Provisioning service mem TA mem mem code heap stack mem . SEAndroid will change things to come in Android6 ... Android

What is a TEE (Trusted Execution Environment) Hardware-assisted isolated execution - from ”normal world OS” and - between ”trusted applications”

Integrity of operation - ”part of” secure boot - trusted path - rollback protection

(Unique) access to secrets - secure storage - device authentication - remote attestation

(Availability) - code provisioning Ref & reading: [1] Vasudevan & al., [2] Asokan & al, [3] Ekberg & al

Access to secrets

Typical properties - fast / full memory access - runs at full processor speed - ”native binaries / ”standard C”

Page 4: Android and trusted execution environments - u'smile · TAM API Provisioning service mem TA mem mem code heap stack mem . SEAndroid will change things to come in Android6 ... Android

ARM TrustZone®

The isolation is defined by • Processor contexts • Memory access / MMU, caches • DMA / IRQs

TEE HW in 2015? ARM Trustzone?

New HW architectures are emerging: • Intel SGX / TrustLite (research)

Page 5: Android and trusted execution environments - u'smile · TAM API Provisioning service mem TA mem mem code heap stack mem . SEAndroid will change things to come in Android6 ... Android

Where do we find TEEs today?

- Most(many) middle to high-end Android & Windows phones - Set-top boxes, tablets & laptops

Page 6: Android and trusted execution environments - u'smile · TAM API Provisioning service mem TA mem mem code heap stack mem . SEAndroid will change things to come in Android6 ... Android

TEE usage on Android (Android 4.1~5)

Linux Kernel /dev/mobicore /dev/mobicore_user /dev/qsee /d/tzdbg/log

TEE OS

Dalvik / ART

Android NWd SWd

JNI

Clie

nt

AP

P

API

SP

TA

TAM

API Provisioning service

TA

Page 7: Android and trusted execution environments - u'smile · TAM API Provisioning service mem TA mem mem code heap stack mem . SEAndroid will change things to come in Android6 ... Android

_TLAPI_ENTRY void tlMain(const addr_t buf,const uint32_t len)

{

uint32_t secbuf;

if ((NULL==buf)||(buflen!=4)||!tlApiIsNwdBufferValid(buf, 4))

tlApiExit(EXIT_ERROR);

for (;;)

{

tlApiWaitNotification(TLAPI_INFINITE_TIMEOUT);

memcpy(&secbuf,buf,4); secbuf |= 0xDEAD; memcpy(buf,&secbuf,4);

tlApiNotify();

}

}

Simple Trusted Application A legacy TA. (A TA using standard GP TEE API does not fit on a slide)

TA

GCC + SDK

compile + link

TAbin

encrypt/sign

SDK

PKG Run on device or emulator

Open-source environments for testing GlobalPlatform TAs: OpenTEE (D) and OpTEE (E)

Page 8: Android and trusted execution environments - u'smile · TAM API Provisioning service mem TA mem mem code heap stack mem . SEAndroid will change things to come in Android6 ... Android

TEE interaction (Kinibi) (Android 4.1~4.4)

Linux Kernel /dev/mobicore /dev/mobicore_user /dev/qsee /d/tzdbg/log

TEE OS

Dalvik / ART

Android NWd SWd

JNI

Clie

nt

AP

P

API

SP

TAM

API Provisioning service mem

TA

mem

mem

code

heap stack

mem

Page 9: Android and trusted execution environments - u'smile · TAM API Provisioning service mem TA mem mem code heap stack mem . SEAndroid will change things to come in Android6 ... Android

SEAndroid will change things to come in Android6

Linux Kernel TEE OS

Dalvik / ART

Android NWd SWd

Clie

nt

AP

P

SP

TAM

TEE service API

- A problem specific to 3rd party use - Provides for caller authentication - Raises the abstraction level for the APIs (CJava)

TA

SEAndroid enforcement

/dev/mobicore /dev/mobicore_user /dev/qsee /d/tzdbg/log

Page 10: Android and trusted execution environments - u'smile · TAM API Provisioning service mem TA mem mem code heap stack mem . SEAndroid will change things to come in Android6 ... Android

Use cases

Page 11: Android and trusted execution environments - u'smile · TAM API Provisioning service mem TA mem mem code heap stack mem . SEAndroid will change things to come in Android6 ... Android

Tamrakar & al: [F]

1. Citizen EId:s with TEEs 1) For TEEs, we need device endorsment 2) Enrolment different from smart cards 3) Inter-service communication not as well developed as in PC context

Page 12: Android and trusted execution environments - u'smile · TAM API Provisioning service mem TA mem mem code heap stack mem . SEAndroid will change things to come in Android6 ... Android

2. Better EMVCo tokenization security with TEEs

Account

Customer PAN

Issuer (bank)

Account

Merchant

Payment Network (VISA / MC / ...)

Customer PAN

Token provider

EMV

Internet

Comm key

CVV key

Daily PANs for merchants

Token Token

NFC

Token

Token

dCVV

Token

dCVV

NO Change here! Token

CVV amount

amount

Customer PAN

amount

The tokenization is more or less orthogonal to modes of payment (offline, online, PinPresent..)

OK / nOK Token

Cust. CVV key

CVV

Using a TEE provides partial offline operation MWC’15 demonstrator

Page 13: Android and trusted execution environments - u'smile · TAM API Provisioning service mem TA mem mem code heap stack mem . SEAndroid will change things to come in Android6 ... Android

3.Private membership lookup (in cloud) (alternative to homomorphic enc. Solutions)

Kernel TEE OS

(Linux) NWd SWd

mem

mem

Lookup Service

TA

Encrypted channel to TEE

Producers and consumers

Having direct memory access separates a TEE from a smart card or HSM. Other examples include DRM and trusted path.

Page 14: Android and trusted execution environments - u'smile · TAM API Provisioning service mem TA mem mem code heap stack mem . SEAndroid will change things to come in Android6 ... Android

A. Vasudevan, E. Owusu, Z. Zhou, J. Newsome, and J.M. McCune. Trustworthy Execution on Mobile Devices: What security properties can my mobile platform give me? In Trust and Trustworthy Computing, vol. 7344 of LNCS, pp 159–178. Springer, 2012.

B. Asokan, N., Ekberg, J. E., Kostiainen, K., Rajan, A., Rozas, C., Sadeghi, A. R., ... & Wachsmann, C. (2014). Mobile Trusted Computing. Proceedings of the IEEE, 102(8), 1189-1206.

C. Ekberg, J. E., Kostiainen, K., & Asokan, N. (2014). The untapped potential of trusted execution environments on mobile devices. IEEE Security & Privacy, (4), 29-37.

D. McGillion & al (2015): Open-TEE - An Open Virtual Trusted Execution Environment, TrustCom’15 (http://arxiv.org/abs/1506.07367)

E. Linaro project: https://github.com/OP-TEE/optee_os

F. Tamrakar & al (2015): On ReHoming the Eld to TEEs : IEEE TrustCom

Links and references

Page 15: Android and trusted execution environments - u'smile · TAM API Provisioning service mem TA mem mem code heap stack mem . SEAndroid will change things to come in Android6 ... Android

People pay for better experiences

….security enables them

Thank you! Questions?