32
Le TEE, nouvelle ligne de défense dans les mobiles SSTIC 2013 Hervé Sibert 2013-06-07

  Le TEE, nouvelle ligne de défense dans les mobiles for pdfx...Les fondamentaux de TrustZone ∙ Le bit NS: 0=Secure, 1=Non-Secure ∙ Propagé sur le bus interne, il matérialise

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Le TEE, nouvelle ligne de défense dans les mobiles

SSTIC 2013

Hervé Sibert

2013-06-07

Le TEE, nouvelle ligne de défense dans l... Date: 2013-06-07 COMPANY UNCLASSIFIED2 (32)

Disclaimer

© Copyright ST-Ericsson 2013. All rights reserved.

The contents of this document are subject to change without prior notice.

ST-Ericsson makes no representation or warranty of any nature whatsoever (neither expressed nor

implied) with respect to the matters addressed in this document, including but not limited to

warranties of merchantability or fitness for a particular purpose, interpretability or interoperability

or, against infringement of third party intellectual property rights, and in no event shall

ST-Ericsson be liable to any party for any direct, indirect, incidental and or consequential damages

and or loss whatsoever (including but not limited to monetary losses or loss of data), that might

arise from the use of this document or the information in it.

ST-Ericsson and the ST-Ericsson logo are trademarks of the ST-Ericsson group of companies or

used under a license from STMicroelectronics NV or Telefonaktiebolaget LM Ericsson.

All other names are the property of their respective owners.

For more information on ST-Ericsson, visit www.stericsson.com

Le TEE, nouvelle ligne de défense dans l... Date: 2013-06-07 COMPANY UNCLASSIFIED3 (32)

Plateforme mobile

• Quasi-téléphone• matériel : PCB avec SoC, BB, NVM, DDR, ports, écran tactile…• système : OS Linux, Android

>>>>>

Késako TEE?

Le TEE, nouvelle ligne de défense dans l... Date: 2013-06-07 COMPANY UNCLASSIFIED5 (32)

[1990, 2007]

RTOS propriétaire

Framework applicatif

propriétaire

Fonctions sensibles

Changement de paradigme

Couche d’adaptation

JVM (J2ME)

“Apps”

[2007,?]

Linux

Native apps

Fonctions sensibles ???

Android framework

Dalvik

Apps

HW de sécurité(secrets, crypto…)

HW de sécurité(secrets, crypto…)

Peu déployé, restreint au mobile

Chaque fabricant de SoC a le sien, pas ou peu de suivi

Pas de standards

Plusieurs fournisseurs, portage spécifique

Ouvert ou “ouvrable”…

Le TEE, nouvelle ligne de défense dans l... Date: 2013-06-07 COMPANY UNCLASSIFIED6 (32)

REE TEE

TEE = Trusted Execution Environment

Fonctions sensibles

Linux

Native apps

Séquencement des fonctions sensibles

Framework Android

Dalvik

Apps

HW de sécurité(secrets, crypto…)

Les fonctionnalités sensibles sont déportées dans le TEE, mais leur gestion demeure extérieure au TEE.

Le TEE, nouvelle ligne de défense dans l... Date: 2013-06-07 COMPANY UNCLASSIFIED7 (32)

Le TEE, ses fonctionnalités

∙ Dédié à la gestion des fonctions sensibles et du code dont l’exécution dans l’OS normal exposerait la sécurité aux attaques

∙ Contrôle du boot sécurisé

∙ Fonctions de sécurité

∙ Stockage sécurisé

∙ IHM sécurisée (écran tactile, affichage)

∙ Canaux sécurisés avec SIM, Secure Element

∙ Fonctions d’isolation

∙ Isolation du code et des données (propres et applicatives) vs OS normal

∙ Protection des clés sur lesquelles reposent les fonctions de sécurité

∙ Isolation entre les différentes applications du TEE (code et données)

Le TEE, nouvelle ligne de défense dans l... Date: 2013-06-07 COMPANY UNCLASSIFIED8 (32)

Le TEE

∙ GlobalPlatform est une alliance d’industriels du domaine de la carte à puce et du paiement, centrée sur le Secure Element, rassemblant fabricants de carte à puce, de SoCs, professionnels du paiement, opérateurs, OEMs, vendeurs de solutions de sécurité, labos…

∙ GlobalPlatform a commencé à définir un TEE standard il y a ~5 ans

∙ Volonté de contrôler une migration potentielle de la sécurité vers le SoC

∙ Standardisation des interfaces

∙ TEE Internal API : développement de “Trusted Applications” dans le TEE

∙ TEE Client API : communication avec les TAs depuis l’OS

� Encourager le développement logiciel dans le TEE

� Simplifier la migration d’un TEE à l’autre pour les fabricants

∙ Programme de certification pour l’apport de garanties de sécurité

∙ Programme de conformité pour assurer l’interopérabilité des “GP TEEs”

Le TEE, nouvelle ligne de défense dans l... Date: 2013-06-07 COMPANY UNCLASSIFIED9 (32)

Bases matérielles pour un TEE

Processeur virtuel Processeur virtuel Processeur virtuel Processeur virtuel (ex. ARM TrustZone)(ex. ARM TrustZone)(ex. ARM TrustZone)(ex. ARM TrustZone)

CPU

Crypto HW

eSRAM

ROM PériphsOTP

SoC

DDR eMMC

CPUCrypto

HWeSRAM

ROM PériphsOTP

SoC

DDR eMMC

CPU

Crypto HW

eSRAM

ROM PériphsOTP

SoC

DDR eMMC

CPUSécu

Copro de sécurité

Processeur onProcesseur onProcesseur onProcesseur on----SoCSoCSoCSoC Processeur externeProcesseur externeProcesseur externeProcesseur externe

Késako TrustZone?

Le TEE, nouvelle ligne de défense dans l... Date: 2013-06-07 COMPANY UNCLASSIFIED11 (32)

Monde “Normal” Monde “Securisé”

CPUInterruptions, Caches, MMU

eRO

M

eSRA

M

Périphériques

DD

R

ICN

ARM TrustZone en bref

CPUInterruptions, Caches, MMU

eRO

M

eSRA

M

Périphériques

DD

R

ICNFirewall

Le TEE, nouvelle ligne de défense dans l... Date: 2013-06-07 COMPANY UNCLASSIFIED12 (32)

Les composants clés supportent état normal et état sécurisé

ARM TrustZone en bref

TZ CPUInterruptions, Caches, MMU

eRO

M

eSRA

M

DD

R

Périphériques

TZ

TZ

TZ

TZ

TZ

TZ-compatibleICN

Le TEE, nouvelle ligne de défense dans l... Date: 2013-06-07 COMPANY UNCLASSIFIED13 (32)

Les fondamentaux de TrustZone

∙ Le bit NS: 0=Secure, 1=Non-Secure

∙ Propagé sur le bus interne, il matérialise la sécurité des accès processeurs

∙ Isolation au sein du CPU

∙ Nouveaux modes: secure privileged/user

∙ Le mode moniteur, invoqué via l’instruction Secure Monitor Call ou une interruption sécurisée, héberge le code qui sauve/restaure les registres du mode lors de l’entrée/la sortie

Secure HW

TEE apps

Monit

or

OS User

Shared/non-secure HW

TEE core

OS Kernel

SECURE MODES NORMAL MODES

USER

PRIVILEGED

MONITORMODE

USER

PRIVILEGED

∙ Chaque mode a ses tables MMU

∙ Les pages peuvent être taguées secure/non-secure

∙ Le bit NS propagé lors d’un accès CPU à la mémoire est à 0 si le processeur est en mode secure et si l’adresse cible est taguée secure

∙ TZIC: chaque interruption (IRQ/FIQ) peut être secure/non-secure

∙ Chaque ligne de cache est taguée suivant l’accès qui l’a mise en cache

Le TEE, nouvelle ligne de défense dans l... Date: 2013-06-07 COMPANY UNCLASSIFIED14 (32)

Mais encore ?

∙ Isolation hors du CPU

∙ La MMU autorise les accès suivant les descripteurs

∙ Les descripteurs MMU du monde normal peuvent permettre l’accès à une page taguée “secure” du côté sécurisé, en l’absence d’autres protections

∙ Protection matérielle des accès hors du CPU

∙ Registres internes du SoC – l’accessibilité suivant la valeur du bit NS est définie lors de la conception

∙ TrustZone Memory Wrapper – devant une mémoire, n’autorise que les accès avec NS=0 jusqu’à une frontière définie dans un registre (contrôlé par le monde sécurisé)

∙ TrustZone Protection Controller – devant les (contrôleurs de) périphériques, permet de filtrer les accès suivant la valeur du bit NS

∙ Extensions

∙ Des DMAs compatibles TZ permettent d’effectuer des transactions “pour le compte” du mode secure

∙ Du matériel spécifique permet des filtrages plus fins que S/NS

Le TEE, nouvelle ligne de défense dans l... Date: 2013-06-07 COMPANY UNCLASSIFIED15 (32)

TrustZone dans la poche

∙ Tous les CPU ARMs depuis ARM1176

∙ En particulier tous les Cortex Ax

∙ Mais…

∙ …encore faut-il que le SoC permette un usage cohérent de TrustZone

∙ Le CPU démarre en mode secure

∙ Si TrustZone n’est pas utilisé, pas de raison d’en sortir…

∙ Si le bit NS n’est pas utilisé au niveau des mémoires/périphériques, pas d’utilisation intéressante possible

∙ Dans la pratique

∙ Les SoCs de la plupart des smartphones récents sont pensés pour un usage cohérent de TrustZone…

∙ …mais les garanties de sécurité sont presque inexistantes.

Bonne protection contre un rootkit TZ ☺

Une recette de TEE

Le TEE, nouvelle ligne de défense dans l... Date: 2013-06-07 COMPANY UNCLASSIFIED17 (32)

Premier ingrédient: un secure boot

∙ Racine de confiance matérielle

∙ OTP contenant au moins une clé publique, une clé symétrique unique, un identifiant public unique

∙ Protection des accès au mode secure par test de chip et debug (JTAG)

∙ ROM boot

∙ Initialisation limitée de la plateforme, en mode secure

∙ Chargement en RAM on-chip, vérification et exécution du SW boot, depuis USB, UART, eMMC…

∙ SW boot

∙ Initialisation complète de la plateforme (contrôleur DDR, power mgmt…)

∙ Contrôle du mode de boot (provisioning/production/…)

∙ Initialisation du TEE

∙ Passage du CPU en mode “normal” pour le boot Android

Le TEE, nouvelle ligne de défense dans l... Date: 2013-06-07 COMPANY UNCLASSIFIED18 (32)

ModemBoot semblable à celui de l’AP

DDReSRAM pub

eSRAM sec

Chaîne de confiance du boot

AP HW

Boot ROM

Initial SW boot

OTPHW crypto…

SW boot 2

OS loader

OS

Charge, valide avec un service TEE, initialise et exécute

FW Modem

1

2

3

7

Root PK

App keysTEE keys

1 2 34 5

6 Un service TEE charge le SW boot du modem en DDR, règle le firewall, démarre le modem

7 Les threads de l’OS déclenchent le chargement dynamique des TAs, exécutées comme des extensions des threads

Binaires signés avec les clés Root, TEE, AppRégion DDR sécurisé

Région DDR Modem

ST-Ericsson TEEcontrôlant boot,debug, contrôle

d’accès mémoire,ressources de sécurité.

Trusted Apps

TEE core

5

Canal sé

curi

séTEE-m

odem

6

4

Le TEE, nouvelle ligne de défense dans l... Date: 2013-06-07 COMPANY UNCLASSIFIED19 (32)

Second ingrédient: un TEE…

GlobalPlatform TEE Internal API

TEE Core

TrustZone HW resourcescrypto, timers, watchdog, fuses,

secure storage, modem control…

TEE Libs

Kernel Trusted

AppsMonitor

PR

IVIL

EG

ED

(S

ecure

eSR

AM

)U

SER

(S

ecure

DD

R)

TEE Driver

Wrapper API

Native OS Applications

GlobalPlatform TEE Client API

USER

PR

IVIL

EG

ED

OS TEE

Admin Agent

Le TEE, nouvelle ligne de défense dans l... Date: 2013-06-07 COMPANY UNCLASSIFIED20 (32)

201320122011201020092008

…disponible

2007

Decision de concevoir le TEE ST-Ericsson fondée sur :- L’utilisation du TEE comme coeur de la sécurité

plateforme commune ST-Ericsson,- Le besoin des clients de garder le contrôle sur la

sécurité, excluant une solution commerciale

TEE v1 TEE v2

Premier standard TEE (pas de spécifications)

Device CommitteeSpécifications TEE + conformité + certification

Déployé sur NovaThor U8500, support de la TEE Client API

En déploiement, conforme aux spécifications TEE v1.0

ST

-Eri

csso

n T

EE

Sta

nd

ard

s Contribution aux spécifications, aux tests de conformité, à la définition de la certification

Le TEE, nouvelle ligne de défense dans l... Date: 2013-06-07 COMPANY UNCLASSIFIED21 (32)

…coopératif

∙ Gestion de nombreuses fonctions critiques du système en collaboration avec l’OS

∙ Multi-coeurs

∙ Caches

∙ Power state

∙ Resets

∙ Contrôle de configuration du système de sécurité

∙ Debug et tests

∙ Power, clock

∙ Mémoires

∙ Filtres sur le bus

Le TEE, nouvelle ligne de défense dans l... Date: 2013-06-07 COMPANY UNCLASSIFIED22 (32)

…joli (?)

∙ Small is beautiful

∙ Les Trusted Applications sont réduites au maximum

∙ Limitation de la surface d’attaque dans le monde sécurisé

∙ L’orchestration reste du ressort de l’OS

∙ Le TEE hérite du scheduling de l’OS

∙ Le besoin en mémoire est réduit

∙ Le Paging-on-demand permet de conserver une exécution “on-chip” du mode “secure privileged”

∙ Chargement dynamique des Trusted Applications

∙ Les binaires des TAs sont stockées dans un répertoire spécifique

∙ Le driver TEE fournit le binaire TA demandé lorsqu’un client ouvre une session avec cette TA

Le TEE, nouvelle ligne de défense dans l... Date: 2013-06-07 COMPANY UNCLASSIFIED23 (32)

…utilisable

∙ Build

∙ Basé sur la toolchain Android (gcc, make)

∙ Toolchain unique pour Android et le TEE

∙ Outils de signature intégrés dans la toolchain

∙ Gestion de conf avec git, revue de code avec gerrit

∙ Debug

∙ printf, qui repasse la sortie au driver TEE,

∙ JTAG et RAM dump, si le debug du mode secure est activé

∙ Développement de TAs

∙ Trusted Applications SDK extrait du git TEE

∙ Interface client côté Linux : GlobalPlatform TEE Client API v1.0c, interface interne pour les TAs : GlobalPlatform TEE Internal API v1.0

∙ http://www.globalplatform.org/specificationsdevice.asp

Le TEE, nouvelle ligne de défense dans l... Date: 2013-06-07 COMPANY UNCLASSIFIED24 (32)

Troisième ingrédient : des applications

Applications natives de l’OS

OS

TEE driver

Plateforme HW(ex. CPU ARM avec TrustZone)

Monde normal Monde sécurisé

TEE Core

TAs

TEE

Navig

ate

urr

Pla

yer

vid

eo H

D

Applicati

ons

entr

epri

se

Affichage

Blocs “security-aware”

Modem

HW Video

Crypto, clés, OTP

HDMI

Ecran tactile

Interfaces externes

NFC

Réseau

Secure Element, SIM

SIM

lock, IM

EI

TA

de

paie

ment

Contr

ôle

des

flux v

ideo

Flux

Protection de contenus

Paiement/ Services bancaires

Protection du SIMlock/IMEI

Le TEE, nouvelle ligne de défense dans l... Date: 2013-06-07 COMPANY UNCLASSIFIED25 (32)

Exemples d’applications

ModemTEE

MultimediaAffichage

Input

OS

Protection de contenus

L’OS orchestre la fonctionnalité maisne peut dérober oucorrompre des données sensibles

Le TEE, nouvelle ligne de défense dans l... Date: 2013-06-07 COMPANY UNCLASSIFIED26 (32)

Exemples d’applications

ModemTEE

MultimediaAffichage

Input

Entrée sécurisée de code PINServices bancaires

$$$

****

OS

L’OS orchestre la fonctionnalité maisne peut dérober oucorrompre des données sensibles

Le TEE, nouvelle ligne de défense dans l... Date: 2013-06-07 COMPANY UNCLASSIFIED27 (32)

Exemples d’applications

ModemTEE

MultimediaAffichage

Input

Gestion de deviceSubsidy Lock - SIMlock

L’OS orchestre la fonctionnalité maisne peut dérober oucorrompre des données sensibles

OS

Et la sécurité ?

Le TEE, nouvelle ligne de défense dans l... Date: 2013-06-07 COMPANY UNCLASSIFIED29 (32)

Dans le TEE ST-Ericsson

∙ Vérification du code

∙ Le noyau du TEE est chargé et vérifié par le secure boot, on-chip

∙ Les TAs sont signées et leur signature est vérifiée au chargement

∙ Isolation

∙ Le noyau du TEE est exécuté on-chip, en mode Secure privileged

∙ Les TAs tournent en DDR en mode Secure user

∙ La MMU Secure (descripteurs en ROM et RAM on-chip protégée par HW) permet d’isoler les TAs du noyau et les TAs entre elles

∙ Stockage sécurisé

∙ Les données des TAs sont protégées cryptographiquement et stockéesdans un FS Linux

∙ NVM dédiée TEE (RPMB de l’eMMC) pour la protection contre le rollback

∙ Autres protections

∙ NX pour les user TAs et le noyau (partiellement), todo : ASLR

Le TEE, nouvelle ligne de défense dans l... Date: 2013-06-07 COMPANY UNCLASSIFIED30 (32)

Cible de sécurité

∙ Un intermédiaire entre OS ouvert et Secure Element

∙ Pas (ou peu) de résistance aux attaques matérielles

∙ Beaucoup plus intégré au SoC qu’un SE � plus de fonctionnalités, plus de ressources, mais aussi plus d’interactions et de surface d’attaque

∙ Attaques sur TrustZone

∙ Par canaux cachés (timing…)

∙ Autres ? (bugs HW / absence de séparation physique)

∙ Attaques sur TEE

∙ Dan Rosenberg, http://vulnfactory.org/blog/2013/04/08/motorola-bootloader-unlocking/

∙ GlobalPlatform TEE Internal API = C…

∙ Une cible de choix

∙ “Next generation mobile rootkits”, Thomas Roth, Black Hat EU ’13

Le TEE, nouvelle ligne de défense dans l... Date: 2013-06-07 COMPANY UNCLASSIFIED31 (32)

Profil de Protection TEE

Plateforme matérielle

TEE

Base HW du TEE

GP TEE

HW

TEE complet

REE (OS) TA

GP TEE Internal API

TA TA

Cible de l’évaluation = “plateforme” TEE

Frontière avec les TAs = GP TEE Internal APIGP TEE Client API

Agent de communication REE

Agent de comm. TEE

communication

Frontière avec l’OS =interface(s) de communication

Base HW certifiée = HW utilisé pour protéger et fournirles services TEE GP

Initialisation : le processus d’initialisation du TEE, bien que non standardisé, doit répondre aux exigences de sécurité

Objectif = prévention contre les attaques reproductibles aisémentModèle d’attaque = attaque SW/HW pour déterminer une vulnérabilité exploitable par logiciel uniquement, puis attaque logicielleNiveau d’assurance EAL2+ (potentiel d’attaque augmenté)

Stay [email protected]

ON PEUT

JOUER AVEC ?