Upload
others
View
5
Download
0
Embed Size (px)
Citation preview
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
>>>>>
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
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 ☺
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
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é)