SecuriteSysEmbarqué

Download Report

Transcript SecuriteSysEmbarqué

Sécurité des systèmes embarqués
3SLE
Mbarki Aymen
2015/2016
1
Produits embarqués sécurisés
2
Types de produits embarqués sécurisés
•Cartes à puce
–Contact
–Sans contact
–Dual interface
•Tag RFID
•NFC
•Tokens
–USB
•Set top box
•Documents officiels:
–Carte d’identité
–Passeport
–Permis de conduire
3
Historique de la carte à puce
•1974-1975: R. Moreno brevette une carte pouvant contenir beaucoup de données
–Inventeur de la carte à puce
•1977: M. Ugon ajoute
–Une NVM
–Un microprocesseur
•1984: premières cartes bancaires
•1984: premières cartes téléphoniques
•1991: invention de la carte SIM
•1998: cartes Vitale
•1998-1999: boom de la carte SIM
–Cartes les plus vendues encore aujourd’hui
•Dans plus en plus de produits depuis:
–Cartes de fidélité, Pay-TV, …
4
Qu’est-ce qu’une carte à puce?
•Un morceaux de silicone sur une carte plastique
•Très bon moyen de stocker peu de données sensibles
5
Carte à puce contact
•VCC: tension d’alimentation de la carte
•RST: signal de remise à zéro
•CLK: signal d’horloge
•GND: masse électrique
•VPP: tension de programmation
•I/O: entrées/sorties des données
6
Carte sans contact
•Caractéristiques proches d’une carte contact sans
connexion électrique
•Energie fournie par le champ magnétique émis par le
lecteur
7
Carte à puce duale
•Possède à la fois les technologies contact et
sans contact
•Remplace peu à peu les cartes contact
8
Tags RFID
•Plus simple que les cartes à puces
•Peut ne pas avoir de microprocesseur
•Coût très réduit
•Exemples d’applications:
–Magasinage, transport de colis, suivis
dans les hôpitaux, etc.
9
NFC
•Near Field Communication
•Peut fonctionner en 3 modes
–Lecteur
•Agit comme un lecteur sans contact et
peut parler avec une carte sans contact
–Carte
•Se comporte comme une carte sans
contact et peut parler avec un lecteur
–Peer-to-peer
•Effectue un lien entre 2 participants (ex:
téléphones).
10
Exemples d'usages
Accès et démarrage d'un véhicule à l'aide de son téléphone
mobile
Paiement du stationnement à une borne acceptant le paiement
sans contact
Gestion de coupons de réduction dans un magasin, gestion de
points de fidélité chez les commerçants
Contrôle d'accès à des locaux en accès réservé
Dans le domaine des jeux vidéo
11
Acteurs de marché
Un peut de publicité
12
Cryptographie embarquée
13
Pourquoi ajouter de la sécurité?
•Vol de services
–Attaques sur des fournisseurs de services (TV satellite, cartes
d’accès, …)
•Accès à l’information
–Récupération et extraction d’informations
–Récupérer des secrets commerciaux
–Vol d’identité
•Clonage et surproduction
–Copier pour faire des profits sans coûts de R&D
–Production en masse à faible coût par des sous-traitants
14
Qui a besoin de puces sécurisées?
•Demande de plus en plus importante
–Industrie automobile, fournisseurs de services
–Banques, applications militaires
•Puces sécurisées sont partout
–Électronique grand consommation (authentification, protection contre la copie)
–Contrôle du marché de l’après-vente (accessoires, pièces de rechange)
–Contrôle d’accès (tags RF, cartes)
–Contrôle de services (téléphones portables, TV satellite)
–Protection de la propriété intellectuelle (IP) (sofware, algorithmes)
•Challenges
–Comment concevoir une puce sécurisée? (ingénierie sécurité/crypto)
–Comment évaluer sa résistance? (estimation du coût d’une faiblesse)
–Comment trouver la meilleur solution? (compromis temps/argent)
15
Comment concevoir un système sécurisé?
•Pour quelles raisons attaquerait-on votre système?
–Scénarios d’attaques et enjeux (vol, accès, etc)
•Qui l’attaquerait?
–Classe de l’attaquant: extérieur, initié, organisation
•Quels outils utiliseraient-ils pour attaquer?
–Catégories d’attaques: side-channel, faute, reverse engineering
•Comment se protéger de ces attaques?
–Estimer le danger: comprendre les enjeux, le coût, la probabilité
–Développer des protections adéquates aux point faibles
–Faire une évaluation de sécurité
–Choisir des composants sûrs pour construire le système : cryptographie forte
16
Cryptographie
•La cryptographie permet d’assurer
–Intégrité : Un attaquant ne peut pas modifier un message
–Confidentialité : Un attaquant ne doit pas pouvoir lire des
messages
–Authenticité : Un attaquant ne doit pas pouvoir se faire
passer pour quelqu’un d’autre
–Non-répudiation: Un attaquant ne doit pas pouvoir dénier
avoir fait un échange
17
Principe de Kerkhoff
•Les algorithmes de cryptographie modernes sont basés sur le principe de Kerkhoff:
–Un crypto système n’a pas à être secret et doit pouvoir tomber dans les mains d’un
attaquant sans poser de problème
•La sécurité des crypto systèmes est basée sur le fait que la clé soit gardée secrète!
•Quelques raisons pour ce principe:
–Il est plus facile de garder une clé secrète qu’un algorithme
–Les clés peuvent être changées plus facilement que les algorithmes
–Communication avec d’autres plus facile
–Les algorithmes publics subissent un examen public détaillé
18
Attaques logiques et physiques
19
Attaquer un système embarqué sécurisé –
attaque logique
•Les clés stockées et utilisées dans les objets sécurisés ne doivent
jamais quitter l’objet
•Le but des attaques logiques est de révéler la clé en utilisant
seulement l’interface de communication
Attaquant
communication
Objet sécurisé
20
Attaques logiques
•Faiblesses basées sur des vulnérabilités software
•L’attaquant essaye de casser le système en envoyant
des messages spéciaux
•Attaques typiques: buffer overflow, format string
attack, ...
21
Autre type d’attaque?
•Les attaques logiques considèrent que l’attaquant a le contrôle
complet sur l’interface de communication
•Il existe de nombreux scénarios où ces attaques sont les plus
importantes (ex: communication via internet)
•Pour les objets embarqués, la situation est différente. L’attaquant
a souvent accès à beaucoup plus que seulement l’interface de
communication. Il possède physiquement l’objet en question.
22
Exemple: Pay TV
•Les entreprises de pay TV donnent des cartes à puces à
leurs clients qui payent pour voir un certain contenu.
23
Exemple: Pay TV
•La compagnie ne peut pas supposer que tous ses client
sont honnêtes. Un client peut vouloir dupliquer sa carte
pour ses amis
24
Autres exemples
•Porte-monnaie électronique: le client peut vouloir s’ajouter de l’argent
•DRM: le client peut vouloir copier le contenu (film, musique, ...) pour
ses amis
•Protection des marques: le client peut vouloir utiliser des encres,
batteries moins chères
•Résumé: beaucoup de scénarios où casser le système à un intérêt pour
l’utilisateur
• l’attaquant est en possession de l’objet attaqué et peut donc utiliser
d’autres chemins d’attaques plus puissants
25
Attaques physiques sur systèmes embarqués
•Attaques logiques ne se basent que sur des informations
récupérées lors de communications
Attaquant
communication
Objet sécurisé
•Attaques physiques observent et manipulent les propriétés du
système ou de son environnement
Manipulation
Attaquant
communication
Objet sécurisé
Observation
26
Attaques physiques
•Dans une attaque physique, l’attaquant fait quasiment ce
qu’il veut avec l’objet
•Avec assez de ressources, l’attaquant réussiera toujours à
casser le système en plus ou moins de temps
•En pratique, le but est de rendre les attaques tellement
difficiles à réaliser qu’elles deviennent inutiles
27
Basiques du design hardware d’un circuit
28
Pourquoi s’intéresser au hardware?
•Certaines attaques spécifiques à l’embarqué utilisent
l’implémentation physique du composant pour exploiter
une faiblesse
•Il
faut
avoir
une
compréhension
globale
du
fonctionnement d’un composant pour pouvoir se protéger
29
Caractéristiques physiques d’une carte à puce
•Micro-processeur de 8, 16 ou 32 bits
•De 2Ko à 32Ko de mémoire RAM
•De 32Ko à 512Ko de mémoire non volatile (Flash/ROM)
•Surface de quelques mm2
•Modules de sécurité
30
Design synchrone
•La grande majorité des circuits sont synchrones
•Propriétés d’un circuit synchrone
–Un état est stocké dans des éléments mémoires (registres,
RAM, portes logiques, ...)
–Des éléments de circuits combinatoires effectuent des calculs
–Un signal d’horloge déclenche la mise à jour des éléments
mémoires
•Les circuits synchrones sont des finite state machine (automate
fini) déclenché par un signal d’horloge
31
Processus de développement du
hardware
•A un certain niveau, la conception du
hardware est similaire à du software
•Comme en software, il existe des niveaux
d’abstractions qui permettent de gérer la
complexité
32
Modélisation et description HDL
•Le processus de design commence par une modélisation
du hardware en software
•Un modèle de haut-niveau est constamment raffinée
jusqu’à obtenir une description du design au register-
transfer-level (RTL)
•Au niveau RTL, le hardware est décrit en utilisant un
language de description (HDLs)
–Ex: Verilog, VHDL
•A ce niveau, le hardware peut être vu comme une FSM
qui met à jour son état à chaque coup d’horloge
33
Code HDL
Implémentation d’une porte AND
c = a AND b
34
Synthèse du design
•Pour chaque technologie de logique, il existe
des librairies de portes logiques
–Ex: NAND, OR, AND, …
•L’outil de synthèse transforme la description
HDL en des portes logiques de la librairie
•La sortie de la synthèse est une netlist
–Graphe où chaque nœud est une porte logique
35
Layout
•Les portes sont placées et connectées
•Dans cette étape, de nombreuses contraintes
physiques doivent être prises en compte
–Placer proches les portes connectées
–Minimiser le surcoût du placement
•Le layout est une description géométrique du
design qui décrit à quel endroit doit être placé
chaque élément
36
Exemples de layout
Layout d’un circuit complet
Layout d’un inverseur CMOS
37
Câblage d’une partie
d’un circuit en 3D
38
Fabrication
•Après la création du layout, il
est
envoyé
à
l’usine
de
fabrication
•Technologies courantes:
–120nm, 90nm
•Taille des wafers
–200mm, 300mm
39
Wafer
40
Découpe, Test et Packaging
•Une fois le wafer produit, il reste à
–Découper: séparer tous les circuits présents
sur le wafer
–Tester: le processus de fabrication n’est pas
parfait, il faut donc tester tous les circuits
produits
–Packager: protège le circuit dans un petit
bloc de matériel semi-conducteur pour le
protéger de la corrosion et de dommages
physiques
41
Découpe, Test, Packaging
42
Résumé d’un design hardware
•Le design hardware est un processus complexe avec
beaucoup de niveaux d’abstraction
•Les étapes d’optimisations présentes à chaque niveau
peuvent influencer la sécurité finale du composant
43
Optimisation et sécurité
44
Principaux axes d’optimisations
•Bande passante
•Consommation de courant
•Qualité/Fiabilité
•Taille mémoire/surface
45
Bande passante vs. sécurité
•La vitesse de bande passante est souvent un facteur déterminant
dans le succès d’un produit
•En sécurité embarquée, il existe une attaque physique appelée
timing attack
–Principe: retrouver une information secrète traitée par la carte
en mesurant le temps d’exécution du software qui tourne
–Chaque optimisation qui produit des temps d’exécution
dépendant de la valeur des données est potentiellement une faille
de sécurité
46
Exemple: vérification d’un code PIN
•Une donnée secrète est stockée dans la carte
–Ex: un code PIN, 8 octets (caractères)
•Comme un mot de passe sur un PC, l’authentification est basée
sur le secret
•Il existe généralement une fonction dédiée:
–Reçoit la valeur de PIN (le challenge)
–Compare le challenge au PIN stocké
–Donne accès si la comparaison est réussie
47
Algorithme naïf
Comment l’attaquer?
48
Comment retrouver le PIN?
•L’attaque ne suppose aucune limite sur le nombre de challenges possibles
–Pas réaliste, généralement un compteur enregistre le nombre d’échec et la
carte est bloquée avec 3 essais faux
•Implémentation de l’attaque
–Pour chacune des 256 valeurs possibles n0 de 𝐶[0] (peu importe la valeur
des autres octets)
–Mesure 𝜏(n0) le temps d’exécution de chaque commande
–Toutes les commandes doivent s’exécuter dans le même temps, sauf une
•Sélectionner 𝜏∗=max(𝜏 n0*)
• n0* est le vrai octet du PIN secret 𝑃[0]
–Affecter 𝑛0∗ à 𝐶[0] et itérer sur les octets suivants 𝐶[𝑖]
•Compléxité:
–Pire cas: 8*256 commandes
–Au lieu de 2568 en recherche exhaustive (brute force)
49
Possible contre-mesure
50
Contre-mesure pour une timing attack
•Le temps d’exécution des programmes doit être
complètement indépendant des valeurs critiques
–Ex: éviter toutes branches conditionnelles dépendant
de valeurs sensibles
•Augmente forcément le temps d’exécution : Réduit la
bande passante
51
Consommation de courant vs. sécurité
•En général, la consommation instantanée de courant et la
dissipation d’énergie totale sont des éléments cruciaux
d’objets embarqués
–Besoin de courant seulement lorsque des valeurs
changent (CMOS)
•En sécurité embarquée, il existe une attaque physique
appelée power analysis attack
–Principe: retrouver une information secrète traitée par
la carte en mesurant sa consommation de courant
–Ces attaques sont très puissantes et ne demandent qu’un
simple oscilloscope
52
Consommation de courant
•La grande majorité des systèmes embarqués utilisent la technologie
CMOS
•La consommation de courant instantanée de ces systèmes dépend de
–L’instruction exécutée
–La donnée traitée
•Si la contre-mesure pour le code PIN était implémentée en ajoutant des
« NOP » pour équilibrer le temps d’exécution
–L’attaquant mesure la consommation de courant et détecte si une
instruction NOP est exécutée ou non
53
Contre-mesure pour une power analysis attack
•Très difficile de s’en protéger
–Encore aujourd’hui, il est très difficile de s’en protéger
complètement
–Les
contre-mesures
vont
dépendre
fortement
de
l’algorithme à protéger
•Ces contre-mesures ajoutent de la complexité : Plus de
consommation
54
Qualité/Fiabilité vs. sécurité
•Un système embarqué doit fonctionner correctement dans la limite de
ses caractéristiques (voltage fourni, fréquence d’horloge, température)
–Le comportement d’un système en dehors de ces conditions n’est
pas gênant
•En sécurité embarquée, il existe une attaque physique appelée fault
attack
–Principe: retrouver une information secrète traitée par la carte en
altérant le fonctionnement du système
–Ces attaques sont très puissantes et peuvent permettre de
retrouver un secret en analysant seulement quelques pairs
d’exécutions correctes/fautées
55
Effets d’une fault attack
•Une attaque par faute peut affecter
–Le déroulement du programme: instructions modifiées,
sautées, ...
–L’intégrité des données: leur valeur change
•Sur des composants non sécurisés contre les fautes, tout types de
fautes peut s’appliquer
56
Contre-mesure pour une fault attack
•Protections au niveau hardware
–Détecteurs de tension, lumière, fréquence, ...
•Protections au niveau software
–Redondance, duplication
•Il faut aussi que le composant soit résistant si le système est soumis
à des conditions anormales de fonctionnement
57
Taille mémoire/surface vs. sécurité
•La surface d’un composant est proportionnelle à son coût de
fabrication
•On essaye donc d’optimiser au maximum la surface occupée
–Aucune attention n’est portée à quelle information est
transférée sur quel niveau de métal
•En sécurité embarquée, il existe une attaque physique appelée
probing attack
–Principe: retrouver une information secrète traitée par la carte
en utilisant des outils d’analyse de défaillance
58
Probing attack
•Une des attaques les plus chères à mettre en
place
•Idée basique
–Manipuler ou lire des signaux sur le
composant pour compromettre la sécurité du
système
•Exemple
–Placer une sonde directement sur le bus de
données qui va transporter la valeur du secret
lors de son utilisation
59
Résumé
•Il faut distinguer sécurité logique de sécurité physique qui a un
impact crucial sur la conception d’un circuit
•La sécurité n’est pas une caractéristique du produit mais un des
paramètres de conception
•La sécurité impacte toutes les stratégies d’optimisations
classiques, il faut faire des compromis
60
Classification des attaques
physiques
61
Attaques physiques
•Deux critères principaux
•Comportement de l’attaquant
–Actif: il agit, modifie le comportement du circuit
–Passif: il observe certains propriétés physiques du circuit
•Degré d’implication de l’attaquant
–Invasive: il n’a aucune limite (coûteux)
–Semi-invasive: il peut enlever le packaging mais ne touche pas à
la structure interne du circuit (abordable)
–Non-invasive: observe et manipule le circuit sans modifications
physiques (très peu coûteux)
62
Principe d’une attaque active
•Manipuler/Modifier le circuit pour exploiter des faiblesses
•Changer le comportement général du circuit
–Activer le mode de test
–Désactiver les contre-mesures, détecteurs
–Changer le programme (sauter la vérification PIN, etc)
•Insérer des fautes dans les calculs crypto
–L’attaquant faute l’algorithme pendant son exécution et récupère
le résultat fauté
–Il exploite des propriétés mathématiques de l’algo pour retrouver
la clé
63
Principe d’une attaque passive
•Observer les propriétés physiques du circuit pour retrouver le secret
•Le secret est manipulé par le circuit (lors d’opérations crypto par ex)
•Des informations sur le secret peuvent être observée en surveillant
–Le temps d’exécution
–La consommation de courant
–Les émanations électromagnétiques
64
Attaques physiques principales
Active
Passive
Non-invasive
Glitching, changement
de température, faible
voltage, …
Attaques par canaux
cachés (side-channel
attack)
Semi-invasive
Attaques par lumière,
radiation, …
Attaques EM,
inspection optique
Invasive
FIB
Probing
65
Active invasive attack
•Le composant est manipulé
et modifié par l’attaquant
•Le circuit peut être modifié
par un focused ion beam
(FIB) (sonde ionique
focalisée)
•Equipement très coûteux
mais possibilités énormes
pour l’attaquant
66
Active semi-invasive attack
•Injection de faute (fault
attack)
–Composant dépackagé et
placé sous un microscope
–Les transistors peuvent
être changés d’état par
une lumière forte et
focalisées (laser)
67
Active non-invasive attack
•Perturber le fonctionnement du composant sans le dépackager
•Glitching
–Perturber l’alimentation en courant du composant pendant
son fonctionnement peut provoquer des sauts d’instruction
–Perturber l’horloge extérieure peut provoquer des
corruptions de données ou des sauts d’instruction
•Température
–Modifications aléatoires dans la RAM
68
Passive invasive attack
•Microprobing:
–Sonder des signaux sur le composant à l’aide
de microprobes
–Injection de signaux et observation des
réactions du composant
–Sert à extraire des clés secrètes ou du contenu
de mémoire
69
Passive semi-invasive attacks
•Attaques side-channel qui demande de dépackager le
composant: émanations EM
–Plus coûteux
–Plus précis que la consommation de courant
70
Passive semi-invasive attacks
•Attaque par émissions optique
–Les transistors émettent des
photons lorsqu’ils changent
d’états
–De 10-2 à 10-4 photos par
changement
–Ces émissions peuvent être
détectées par des caméras CCD
ou des photomultiplicateurs
71
Passive non-invavise attacks: side-channel attacks
•Idée: révéler le secret en observant les propriétés physiques du
composant
•Timing attack
–Mesure le temps d’exécution
•Power attack
–Mesure la consommation de courant
–Peu coûteux en équipement: un PC avec un oscilloscope et une
petite résistance sur l’alimentation en courant du composant
–Attaque très efficace
–Deux méthode basiques: attaque simple (SPA) et différentielle
(DPA)
72
SPA
•SPA utilise les motifs présents dans l’implémentation qui sont liés
aux données sensibles
•Stratégie d’attaque
–Connaître l’algorithme utilisé
–Phase de reverse engineering
•Pas de code conditionnel sur des données secrètes
•Contremesure au niveau algorithme
–Structure du code
–Randomisation des données
•Contremesure au niveau hardware
–Ajouter du bruit
–Désynchronisations
73
DPA
•La DPA utilise un nombre important de courbes de consommations
•La fonction crypto attaquée est exécutée avec des entrée connues
et différentes
•L’attaquant choisit un bit intermédiaire d’une valeur qui dépend du
secret (et des entrées)
•Quand ce bit est traité, la courbe de consommation va légèrement
dépendre de sa valeur
•En séparant les courbes en 2 ensembles suivant le bit, la différence
de leur moyenne montre une différence si (et quand) le bit est traité
74
Conclusions
•Il n’existe pas de protection absolue
–Avec assez de temps et ressources toute contremesure peut
être cassée
•L’objectif en pratique est de rendre un système tellement
cher à attaquer que ce n’est plus rentable pour un attaquant
•Domaine en constante évolution
–Protections doivent tenir compte des possibles évolutions du
matériel et techniques des attaquants
75