52
GPA435 – SE et PS Sécurité Informatique Étude de cas: iOS Version 2013

GPA435 – SE et PS Sécurité Informatique Étude de cas: iOS Version 2013

Embed Size (px)

Citation preview

Page 1: GPA435 – SE et PS Sécurité Informatique Étude de cas: iOS Version 2013

GPA435 – SE et PS

Sécurité InformatiqueÉtude de cas: iOSVersion 2013

Page 2: GPA435 – SE et PS Sécurité Informatique Étude de cas: iOS Version 2013

Introduction● Sécurité Informatique en pratique

Système d’exploitation mobile iOS• Dérivé de OS X des ordinateurs d’Apple;• Mise en distribution depuis 2007 pour iPhone et iPod Touch;• Aujourd’hui il est disponible sur iPad et AppleTV.

Mesures de sécurité• Publiées publiquement au mois de mai 2012;• http://

images.apple.com/ipad/business/docs/iOS_Security_May12.pdf

2

Ne pas confondre l’interface graphique avec le système d’exploitation. iOS est un ensemble de programmes (code) permettant l’opération des appareils mobiles de la multinationale Apple.

Cet étude de cas analyse les mesures de sécurité de intégrées dans le système d’exploitation iOS.

Page 3: GPA435 – SE et PS Sécurité Informatique Étude de cas: iOS Version 2013

Sécurité informatique: iOS● Anneaux de protection

Modèle simplifié

3

Deux éléments remarquables:

a) Le chiffrement (cryptographie) est au cœur de la protection;

b) L’isolement des applications (App Sandbox) pour éliminer les contaminations.

Matériel

Logiciel

Page 4: GPA435 – SE et PS Sécurité Informatique Étude de cas: iOS Version 2013

Sécurité informatique: iOS● La chaîne de démarrage du système

4

Au démarrage d’un appareil iOS:

a) Le processeur exécute le Boot ROM – un micro-programme résidant dans le circuit intégré du processeur au moment de sa fabrication. Le Boot ROM contient une clé cryptographique (Root key) qui sert à vérifier l’authenticité du module LLB.

b) Vérification et exécution du module LLB. Ce Bootloader est un programme qui réside dans la mémoire ROM de l’appareil mobile (firmware) et dont le rôle essentiel est l’initialisation des modules matériels de l’appareil. Le LLB est modifiable par la mise à jour du Firmware. Le LLB contient une clé cryptographique qui sert à vérifier l’authenticité du module suivant le iBoot.

c) Le iBoot est un module firmware dont le rôle est de vérifier l’authenticité du noyau iOS et le charger en mémoire pour l’exécution.

Page 5: GPA435 – SE et PS Sécurité Informatique Étude de cas: iOS Version 2013

Sécurité informatique: iOS● La chaîne de démarrage

Utilise des clés cryptographiques pour vérifier l’authenticité des modules logiciels avant:• Leur chargement en mémoire;• Leur exécution par le processeur.

La clé de base (Root Key)• Est inscrite dans le circuit intégré du processeur au moment

de sa fabrication! La chaîne de confiance

• Boot ROM possède la clé de base pour vérifier le LLB;• LLB possède la clé pour vérifier iBoot;• iBoot possède la clé pour vérifier le noyau d’iOS.

5

Nous verrons l’action des clés cryptographiques plus loin dans cette présentation.

Page 6: GPA435 – SE et PS Sécurité Informatique Étude de cas: iOS Version 2013

Sécurité informatique: iOS● La chaîne de confiance: cas des mises à jour

Il est nécessaire de maintenir la chaîne de confiance tout en permettant les mise à jour• Les mises à jour rehaussent la fonctionnalité des appreils;• Les mises à jour permettent de contrer les attaques ou

palier aux défaillances de sécurité. Lors d’une mise à jour

• L’appareil transmet aux serveurs de mise à jour:• Les modules logiciels disponibles dans l’appareil;• Un nombre pseudo-aléatoire (*);• ID de l’appareil (**).

6

(*) Ce nombre pseudo-aléatoire (en anglais anti-replay value ou nonce) sert à initier une communication avec les serveurs de mise à jour. À la fin de la communication, ce nombre est mémorisé avec le ID de l’appareil par les serveurs et on ne peut plus initier une communication avec ce même nombre. D’où son nom en anglais (number once – nonce).

(**) L’ID de l’appareil est un numéro unique possiblement inscrit dans le circuit intégré du processeur. Pour obtenir ce numéro de votre appreil, voir: http://theiphonewiki.com/wiki/ECID

Page 7: GPA435 – SE et PS Sécurité Informatique Étude de cas: iOS Version 2013

Sécurité informatique: iOS● La chaîne de confiance: cas des mises à jour

Lors d’une mise à jour• L’appareil transmet aux serveurs de mise à jour:

• Les modules logiciels disponibles dans l’appareil;• Un nombre pseudo-aléatoire (nonce);• ID de l’appareil (ECID).

• Les serveurs dressent une liste de mises à jour permises pour l’appareil en fonction des données reçues;

• Les serveurs encodent les mises à jour en utilisant l’ID de l’appareil et transmettent le tout;

• Les serveurs permettent les “upgrades” pas les “downgrades” pour contrer les attaques et le hacking par exploitation des vulnérabilités déclarées.

• Après la réception des mises à jour, l’appareil déchiffre (decrypt) les fichiers reçus et lance chaîne de démarrage.

7

Page 8: GPA435 – SE et PS Sécurité Informatique Étude de cas: iOS Version 2013

Sécurité informatique: iOS● Sécurité des Apps

Contrôle lors de la création et distribution• Élimination des Apps malicieuses par la gestion de la

distribution (AppStore);• Élimination des Apps malicieuses par la signature

électronique• Utilisation d’un certificat de sécurité d’Apple (*);• Les Apps de base (Safari, Mail, Calendar, etc.) sont signées par

Apple;• Les Apps développées par des tierces parties doivent être

validées et signées par Apple en suivant le processus de “iOS Developper Program” (iDEP);

• Les Apps développées par une entreprise pour des usages internes (in-house use) passent par le même processus iDEP. De plus, un profile spécial est téléchargé dans l’appareil afin de pouvoir exécuter ces Apps.

8

(*) Un certificat de sécurité est un fichier qui authentifie la source d’une information, d’une entreprise, etc. Dans ce cas, Apple transmet une clé de chiffrement (encryption) et un certificat qui authentifie la clé qui signe les Apps.

Page 9: GPA435 – SE et PS Sécurité Informatique Étude de cas: iOS Version 2013

Sécurité informatique: iOS● Sécurité des Apps

Contrôle lors de l’exécution• Les Apps sont cadrées dans des carrés de sable (Sandbox)

• Il s’agit de la sécurité par l’isolement;• Chaque App possède son propre dossier pour ses fichiers – les

fichiers systèmes sont accessibles seulement à travers iOS;• Chaque App possède sa partie de mémoire vive – au démarrage

d’une App, sa partie de mémoire vive est réservée aléatoirement dans la mémoire vive de l’appareil mobile;

• Les Apps ne peuvent communiquer directement entre elles;• Le processeur participe dans le contrôle en refusant l’accès des

Apps à la mémoire marquée “non exécutable”, “système” ou utilisée par iOS.

9

C’est pourquoi une App erratique ne cause, normalement, pas de problème aux autres Apps.

Page 10: GPA435 – SE et PS Sécurité Informatique Étude de cas: iOS Version 2013

Sécurité informatique: iOS● Sécurité par le chiffrement (encryption)

Chiffrement par le matériel• Le moteur de chiffrement est un co-processeur placé entre

le module de transfert de données (Direct Memory Access – DMA) et la mémoire flash de l’appareil• Algorithmes utilisés: AES 256 Crypto et SHA-1;• La clé de chiffrement est une combinaison de UID et GID inscrite

dans le circuit intégré du moteur de chiffrement lors de sa fabrication• UID: unique pour chaque processeur;• GID: identifie la classe des processeurs (appareils mobiles).

• La clé de chiffrement est réputée d’être inaccessible;• D’autres clés sont générées par un générateur de nombres

pseudo-aléatoires.• Les clés générées sont effacées après usage par une

technologie appelée “Effaceable Storage”• Active directement les circuits électroniques qui emmagasine

les données!• Effaceable Storage est une toute petite zone de mémoire. 10

Page 11: GPA435 – SE et PS Sécurité Informatique Étude de cas: iOS Version 2013

Sécurité informatique: iOS● Sécurité par le chiffrement (encryption)

Chiffrement par le matériel• Le moteur de chiffrement est un co-processeur placé entre

le module de transfert de données (Direct Memory Access – DMA) et la mémoire flash de l’appareil• Algorithmes utilisés: AES 256 Crypto et SHA-1;• La clé de chiffrement est une combinaison de UID et GID inscrite

dans le circuit intégré du moteur de chiffrement lors de sa fabrication• UID: unique pour chaque processeur;• GID: identifie la classe des processeurs (appareils mobiles).

• La clé de chiffrement est réputée d’être inaccessible;• D’autres clés sont générées par un générateur de nombres

pseudo-aléatoires.• Les clés générées sont effacées après usage par une

technologie appelée “Effaceable Storage”• Active directement les circuits électroniques qui emmagasine

les données!• Effaceable Storage est une toute petite zone de mémoire. 11

Faisons un petit détour…

Petite histoire des techniques de chiffrement

Page 12: GPA435 – SE et PS Sécurité Informatique Étude de cas: iOS Version 2013

Sécurité informatique: iOS● Sécurité par le chiffrement (encryption)

Concept de base• Chiffre de César ou chiffrement par décalage

monoalphabétique

• C’est une permutation circulaire d’un même alphabet;• La longueur du décalage est la clé du chiffrement;• En voici un exemple tiré de Wikipedia:

original : Wikipedia l'encyclopedie libreencodé : ZLNLSHGLD O'HQFBFORSHGLH OLEUH

12

Curiosité historique:Le Dictateur César utilisant un décalage de 3 .

Page 13: GPA435 – SE et PS Sécurité Informatique Étude de cas: iOS Version 2013

Sécurité informatique: iOS● Sécurité par le chiffrement (encryption)

Concept de base• Le chiffrement de César est un cas particulier du

chiffrement par substitution;• Théoriquement 26! > 4 x 1026 possibilités;• Pour l’époque (~ 80 av. J.-C.), le déchiffrement par la force

brute n’est pas envisageable; • Par contre, ce cryptage est faible puisque nous pouvons

discerner facilement les répétitions:

original : Wikipedia l'encyclopedie libreencodé : ZLNLSHGLD O'HQFBFORSHGLH OLEUH

• En général, ce genre de chiffrement par substitution monoalphabétique est vulnérable à la cryptanalyse (*).

13

(*) Science qui consiste à déchiffrer un message chiffré sans la clé de déchiffrement.

Page 14: GPA435 – SE et PS Sécurité Informatique Étude de cas: iOS Version 2013

Sécurité informatique: iOS● Sécurité par le chiffrement (encryption)

Concept de base• Le chiffrement des Francs-maçons est un autre cas

particulier du chiffrement par substitution;• Théoriquement 26! > 4 x 1026 possibilités;• Un exemple de chiffrement par cette technique;

14

Quel est le mot chiffré?

Malheureusement, le chiffrement des francs-maçons (Pigpen Cipher) est aussi vulnérable que le chiffrement de César.

Page 15: GPA435 – SE et PS Sécurité Informatique Étude de cas: iOS Version 2013

Sécurité informatique: iOS● Sécurité par le chiffrement (encryption)

Concept de base• Le chiffrement ADFGVX;• Introduit par l’armée allemande à la fin de la Première

Guerre Mondiale;• C’est un chiffrement fort;

15

A D F G V X

A 8 p 3 d 1 n

D l t 4 o a h

F 7 k b c 5 z

G j u 6 w g m

V x s v i r 2

X 9 e y 0 f q

Le chiffrement s’effectue en deux étapes:

1. Encoder le message par substitution des lettres;2. Transposer le message chiffré par un mot clé.

Le tableau ADFGVX contient 36 éléments – 26 lettres et 10 chiffres.

Page 16: GPA435 – SE et PS Sécurité Informatique Étude de cas: iOS Version 2013

Sécurité informatique: iOS● Sécurité par le chiffrement (encryption)

Concept de base• Le chiffrement ADFGVX;

16

A D F G V X

A 8 p 3 d 1 n

D l t 4 o a h

F 7 k b c 5 z

G j u 6 w g m

V x s v i r 2

X 9 e y 0 f q

Le chiffrement s’effectue en deux étapes:

1. Encoder le message par substitution des lettres• Chaque lettre du message à chiffrer est représenté

par deux codes;• Les colonnes donnent le premier code;• Les lignes donnent le deuxième code.

Par exemple:

Lancer assaultAV DG AX FD XF VA DG VG VG DG

GV DA

Page 17: GPA435 – SE et PS Sécurité Informatique Étude de cas: iOS Version 2013

Sécurité informatique: iOS● Sécurité par le chiffrement (encryption)

Concept de base• Le chiffrement ADFGVX;

17

c h a t

A V D G

A X F D

X F V A

D G V G

V G D G

G V D A

Le chiffrement s’effectue en deux étapes:

2. Transposition du message chiffré par une clé• Le message codé est retranscrit dans un nouveau

tableau dont la première ligne contient le mot clé;• Puis échanger la position des colonnes jusqu’à ce

que les lettres du mot clé soit classées en ordre alphabétique.

Par exemple:

Lancer assaultAV DG AX FD XF VA DG VG VG DG

GV DA

Mot clé: chatÉcrire le message codé de gauche vers la droite et de haut vers le bas.

Page 18: GPA435 – SE et PS Sécurité Informatique Étude de cas: iOS Version 2013

Sécurité informatique: iOS● Sécurité par le chiffrement (encryption)

Concept de base• Le chiffrement ADFGVX;

18

c h a t

A V D G

A X F D

X F V A

D G V G

V G D G

G V D A

a c h t

D A V G

F A X D

V X F A

V D G G

D V G G

D G V A

Le tableau à gauche est obtenu par permutation des colonnes selon l’ordre alphabétique du mot clé.

c h a t

classé en ordre alphabétique devient

a c h t

Page 19: GPA435 – SE et PS Sécurité Informatique Étude de cas: iOS Version 2013

Sécurité informatique: iOS● Sécurité par le chiffrement (encryption)

Concept de base• Le chiffrement ADFGVX;

19

a c h t

D A V G

F A X D

V X F A

V D G G

D V G G

D G V A

Finalement le message chiffré est obtenu en prenant la lecture des colonnes de gauche à droite et de haut vers le bas:

DF VV DD AA XD VG VX FG GV GD AG GA

Ainsi,Lancer assault

AV DG AX FD XF VA DG VG VG DG GV DA

Chat

DF VV DD AA XD VG VX FG GV GD AG GA

Message original

Message codéClé

Message chiffré

Page 20: GPA435 – SE et PS Sécurité Informatique Étude de cas: iOS Version 2013

Sécurité informatique: iOS● Sécurité par le chiffrement (encryption)

Concept de base• Le chiffrement Vigenère est une technique substitution

polyalphabétique;• Un caractère peut-être substitué par différents caractères;• Paru en 1568 d’après une description de Blaise de Vigenère• Principe:

• Pour chiffrer un message nous aurons besoin d’une table et une clé;

• Cette clé est un mot, une phrase ou un texte;• Pour chaque caractère du message, une lettre de la clé est

utilisée dans la substitution;• Donc, plus la clé est longue, plus le message sera bien chiffré.

20

Super! On peut donc utiliser un roman, un poème comme clé de chiffrement!

Page 21: GPA435 – SE et PS Sécurité Informatique Étude de cas: iOS Version 2013

Sécurité informatique: iOS

21

Voici la table de Vigenère:

Pour chaque lettre du message à chiffrer:• On identifie la colonne;• On prend une lettre de la clé pour identifier la

ligne;• La lettre chiffrée est l’intersection entre la

colonne et la ligne.

Les lettres de la clé sont à prendre dans l’ordre et on répète en boucle autant de fois que nécessaire.

Exemple:

j’adore ecouter la radio toute la journee

m usiqu emusiqu em usiqu emusi qu emusiqu

V’UVWHY IOIMBUL PM LSLYI XAOLM BU NAOJVUY

La clé est le mot : musique

Page 22: GPA435 – SE et PS Sécurité Informatique Étude de cas: iOS Version 2013

Sécurité informatique: iOS● Sécurité par le chiffrement (encryption)

Messages non déchiffrés – énigmes de l’histoire

22

• Messages laissés par le tueur en série surnommé Zodiac Killer;

• Actif juillet 1966 – avril 1974;• Jamais retracé.

Page 23: GPA435 – SE et PS Sécurité Informatique Étude de cas: iOS Version 2013

Sécurité informatique: iOS● Sécurité par le chiffrement (encryption)

Messages non déchiffrés – énigmes de l’histoire

23

• Manuscrit de Voynich;• Début 15e siècle;• Possiblement produit en

Italie;• Voynich est le nom d’un de

ses propriétaires (1912);• Ressemble à une référence

sur la médecine et les plantes médicinales.

Page 24: GPA435 – SE et PS Sécurité Informatique Étude de cas: iOS Version 2013

Sécurité informatique: iOS● Sécurité par le chiffrement (encryption)

Chiffrement par le matériel• Le moteur de chiffrement est un co-processeur placé entre

le module de transfert de données (Direct Memory Access – DMA) et la mémoire flash de l’appareil• Algorithmes utilisés: AES 256 Crypto et SHA-1;• La clé de chiffrement est une combinaison de UID et GID inscrite

dans le circuit intégré du moteur de chiffrement lors de sa fabrication• UID: unique pour chaque processeur;• GID: identifie la classe des processeurs (appareils mobiles).

• La clé de chiffrement est réputée d’être inaccessible;• D’autres clés sont générées par un générateur de nombres

pseudo-aléatoires.• Les clés générées sont effacées après usage par une

technologie appelée “Effaceable Storage”• Active directement les circuits électroniques qui emmagasine

les données!• Effaceable Storage est une toute petite zone de mémoire. 24

Le chiffrement moderne…

C’est la faute à César, F

rancs-maçons, ADFGVX, Vigenère

Page 25: GPA435 – SE et PS Sécurité Informatique Étude de cas: iOS Version 2013

Sécurité informatique: iOS● Sécurité par le chiffrement (encryption)

AES 256 Crypto• Advanced Encryption Standard est un standard développé

par les Belges Joan Daemen et Vincent Rijmen;• Adopté par le NIST (National Institute of Standards and

Technology) en 2001;• Devenu le standard de facto du commerce américain en

2002;• Recommandé par le NSA (National Security Agency) pour le

cryptage des document “Top Secret”;• Le chiffre suivant l’acronyme indique le nombre de bits

utilisés par la clé de chiffrement;• Il existe une panoplie d’implantation de ce standard –

évidemment, toujours utiliser une implantation de source sûre ;-)).http://en.wikipedia.org/wiki/AES_implementations

25

Page 26: GPA435 – SE et PS Sécurité Informatique Étude de cas: iOS Version 2013

Sécurité informatique: iOS● Sécurité par le chiffrement (encryption)

AES 256 Crypto• AES est bidirectionnel

• Chiffrement (cryptage) et déchiffrement (décryptage);• Opère au niveau des bits

• Peut chiffrer n’importe quel type de fichiers et données;• Une même clé pour le chiffrement et déchiffrement;• Jusqu’à présents des attaques théoriques ont été

présentées sur des modèles simplifiés de l’algorithme;• Des attaques sur des systèmes d’implantation ont été

présentées;• Selon toute vraisemblance, il n’y aura pas de défaillance de

sécurité pour les prochaines années.

26

Page 27: GPA435 – SE et PS Sécurité Informatique Étude de cas: iOS Version 2013

Sécurité informatique: iOS● Sécurité par le chiffrement (encryption)

AES 256 Crypto• La base de AES repose sur quatre opérations:

27

AddRoundKey

La clé de chiffrement ou une partie de cette clé est utilisée pour générer des nouveaux blocs de données.

a) Générer une sous-clé par rotation, multiplication, des bits;

b) Combiner cette sous-clé avec les données à l’aide de l’opérateur Ou-exclusif (XOR).

128 bits de données organisées en blocs de 4 x 4 octets

Clé ou une partie de la clé de chiffrement

Nouveaux blocs de données

Page 28: GPA435 – SE et PS Sécurité Informatique Étude de cas: iOS Version 2013

Sécurité informatique: iOS● Sécurité par le chiffrement (encryption)

AES 256 Crypto• La base de AES repose sur quatre opérations:

28

SubBytes

Substituer un octet par un autre octet

a) Le S représente une transformation arithmétique qui consiste à trouver le réciproque du nombre dans le domaine binaire.

Blocs de données à transformer

Nouveaux blocs de données

La branche des mathématiques impliquée est l’arithmétique des champs finis de la théorie des nombres.

Page 29: GPA435 – SE et PS Sécurité Informatique Étude de cas: iOS Version 2013

Sécurité informatique: iOS● Sécurité par le chiffrement (encryption)

AES 256 Crypto• La base de AES repose sur quatre opérations:

29

ShiftRows

Décaler les bits des lignes

a) Les bits de la première ligne ne sont pas décalés;b) Les bits de la 2e ligne sont décalés vers la gauche

d’un octet;c) Les bits de la 3e ligne sont décalés vers la gauche de

deux octets;d) Les bits de la 4e ligne sont décalés vers la gauche de

trois octets.

Blocs de données à transformer

Nouveaux blocs de données

Page 30: GPA435 – SE et PS Sécurité Informatique Étude de cas: iOS Version 2013

Sécurité informatique: iOS● Sécurité par le chiffrement (encryption)

AES 256 Crypto• La base de AES repose sur quatre opérations:

30

MixColumms

Combiner quatre octets d’une colonne

a) Quatre octets d’entrée génèrent quatre octets à la sortie;

b) Ressemble à une multiplication polynomiale mais dans le domaine binaire.

Blocs de données à transformer

Nouveaux blocs de données

Page 31: GPA435 – SE et PS Sécurité Informatique Étude de cas: iOS Version 2013

Sécurité informatique: iOS● Sécurité par le chiffrement (encryption)

AES 256 Crypto• Algorithme

• KeyExpansion—créer des sous-clés selon un schéma préétabli.• Initial Round

• 1.AddRoundKey.• • Rounds

• SubBytes• ShiftRows• MixColumns• AddRoundKey

• • Final Round

• SubBytes• ShiftRows• AddRoundKey

31

10 répétition pour des clés de 128 bits12 répétition pour des clés de 192-bits.14 répétition pour des clés de 256 bits.

Page 32: GPA435 – SE et PS Sécurité Informatique Étude de cas: iOS Version 2013

Sécurité informatique: iOS● Sécurité par le chiffrement (encryption)

AES 256 Crypto• Algorithme

• KeyExpansion—créer des sous-clés selon un schéma préétabli.• Initial Round

• 1.AddRoundKey.• • Rounds

• SubBytes• ShiftRows• MixColumns• AddRoundKey

• • Final Round

• SubBytes• ShiftRows• AddRoundKey

32

10 répétition pour des clés de 128 bits12 répétition pour des clés de 192-bits.14 répétition pour des clés de 256 bits.

Page 33: GPA435 – SE et PS Sécurité Informatique Étude de cas: iOS Version 2013

Sécurité informatique: iOS● Sécurité par le chiffrement (encryption)

AES 256 Crypto• Démo

• http://www.nakov.com/blog/2011/12/26/online-aes-encryptor-decryptor-javascript/

33

Prendre les octets

Le mot de passe est la clé du cryptage

Afficher le résultat du cryptage en ASCII

Exécuter le cryptage avec le résulat et la même clé

Page 34: GPA435 – SE et PS Sécurité Informatique Étude de cas: iOS Version 2013

Sécurité informatique: iOS● Sécurité par le chiffrement (encryption)

AES 256 Crypto• Déchiffrement par la force brute

• Essayer toutes les combinaisons

34

• Il y a croissance exponentielle dans le nombre de combinaisons;

• Si nous pouvons essayer chacune des combinaisons en 1 pico-seconde (10-12 sec): 1,1 x 1065 secondes.;

• 1 année possède 3.15569 x 107 secondes• Alors 1,1 x 1065 secondes représentent 3.49 x 1057

années;• Selon la théorie du Big Bang: l’Univers date de

13.77 x 109 années;• On estime qu’il y a entre 1022 à 1024 étoiles dans

l’Univers observable.

Page 35: GPA435 – SE et PS Sécurité Informatique Étude de cas: iOS Version 2013

Sécurité informatique: iOS● Sécurité par la signature (électronique)

SHA-1• Secure Hash Algorithm est une fonction de hachage

cryptographique publiée par le NSA (National Security Agency);

• Cette fonction sert à produire une signature de 160 bits à partir d’un ensemble de données;

• L’objectif consiste à générer une signature unique pour un ensemble de données – il n’existe pas deux ensembles de données produisant la même signature – pas de collision;

• Puisqu’il s’agit d’une fonction cryptographique, on ne peut pas retrouver les données à partir de sa signature;

• Donc, la signature permet la vérification du contenu d’un document –détection de modification et assure l’intégrité.

35

Page 36: GPA435 – SE et PS Sécurité Informatique Étude de cas: iOS Version 2013

Sécurité informatique: iOS● Sécurité par la signature (électronique)

SHA-1• Quatre fonctions binaires:

• X, Y et Z sont des bits de données• (X AND Y) OR (NOT X AND Z)• (X AND Z) OR (Y AND NOT Z)• (X EXOR Y EXOR Z)• Y EXOR (X AND NOT Z)

• Opère sur des blocs de 512 bits de données;• La taille maximale des données 264 – 1 bits ~

17592186044415 Mo;• 2005: collision provoquée sur un modèle réduit de SHA-1;• 2005: collision provoquée sur le modèle complet de SHA-1

en 269 opérations;• 2006: collision provoquée sur un modèle réduit en 235

opérations;• 2010 et 2012: des efforts utilisant le Cloud Computing pour

provoquer des collisions sur le modèle complet – sans résultat.

36

Page 37: GPA435 – SE et PS Sécurité Informatique Étude de cas: iOS Version 2013

Sécurité informatique: iOS● Sécurité par la signature (électronique)

SHA-1• Démo: https://www.pidder.com/pidcrypt/?page=sha1

37

Données à signer

Signature électronique

40 caractères hex = 160 bits

Texte provient de: http://www.lipsum.com/

Page 38: GPA435 – SE et PS Sécurité Informatique Étude de cas: iOS Version 2013

Sécurité informatique: iOS● Sécurité par la signature (électronique)

SHA-1• Démo: https://www.pidder.com/pidcrypt/?page=sha1

38

Modification d’un caractère

Signature électronique différente

Page 39: GPA435 – SE et PS Sécurité Informatique Étude de cas: iOS Version 2013

Sécurité informatique: iOS● Sécurité trivia

Combien y-a-t-il de combinaisons sur le passcode des iPhones, iPad?• 104 = 100 000;• Facile à trouver par la force brute. Par contre,

• Après 6 essais : attendre 1 minute;• Après 7 essais: attendre 15 minutes;• Après 9 essais: attendre 60 minutes;• Après 10 essais: ??

Voler la mémoire flash d’un iPhone et l’installer sur un autre?• Pas utile car le contenu des fichiers est chiffré en utilisant

comme clé de chiffrement le UID et le GID. Le UID est unique pour chacun des iPhones et on ne peut pas l’obtenir (emmagasiné dans le circuit intégré).

39

Page 40: GPA435 – SE et PS Sécurité Informatique Étude de cas: iOS Version 2013

Sécurité informatique: iOS● Sécurité trivia

La protection accordée aux fichiers• Protection complète

• Accèes par passcode;• Au verrouillage de l’appareil, la clé de

chiffrement/déchiffrement est effacée.• Protection complète exceptée ouverte

• Même que Protection Complète;• Ne pas appliquée aux fichiers ouverts.

• Protection complète jusqu’à l’authentification• Même que Protection Complète;• La clé de chiffrement/déchiffrement est réutilisée.

• Sans protection• Sans protection supplémentaire;• Utilise le chiffrement du système des fichiers.

40

Page 41: GPA435 – SE et PS Sécurité Informatique Étude de cas: iOS Version 2013

Sécurité informatique: iOS● Sécurité trivia

Accès à l’Internet via le fureteur Safari• Le fureteur demande une page sécurisée (Ex: https://);• Le serveur WEB transmet une clé de chiffrement avec son

certificat au fureteur;• Le fureteur vérifie le certifcat (est-ce encore valide?);• Le fureteur utilise la clé de chiffrement pour:

• Chiffrer une clé aléatoire;• Utiliser la clé aléatoire pour chiffrer la requête;• Transmet le tout au serveur WEB.

• Le serveur WEB déchiffrement les données reçues et utilise la clé reçue pour déchiffrer la requête du fureteur;

• Le serveur WEB transmet la page demandée chiffrée par la clé aléatoire;

• Le fureteur utilise la clé aléatoire pour déchiffrer la page reçue.

41

Il s’agit d’un mode d’opération du SSL (Secure Socket Layer)

Page 42: GPA435 – SE et PS Sécurité Informatique Étude de cas: iOS Version 2013

Sécurité informatique: iOS● Sécurité trivia

Accès à l’Internet via le fureteur Safari• Comment les serveurs WEB peuvent-ils reconnaître les

appareils mobiles et transmettre leurs pages en format mobile?

• Les fureteurs transmettent leurs requêtes en fournissant l’en-tête “User-Agent”

Mozilla/[version] ([system and browser information]) [platform] ([platform details]) [extensions].• Par exemple:Mozilla/5.0 (iPad; U; CPU OS 3_2_1 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Mobile/7B405 Safari/525.20

• iPad; U; CPU OS 3_2_1 like Mac OS X; en-us donne le système informatique sur lequel le fureteur s’opère;

• ApleWebKit/531.21.10 indique la plateforme logicielle sur laquelle le fureteur fonctionne;

• KHTML, like Gecko indique que le “layout engine” du fureteur est celui du projet KDE (Linux);

• Mobile/7B405 indique qu’il est en version mobile;• Safari/525.20 indique qu’il est Safari.

42

Bingo!

Page 43: GPA435 – SE et PS Sécurité Informatique Étude de cas: iOS Version 2013

● Sécurité trivia Qu’est-ce que le jailbreaking?

• Briser la chaîne de confiance;• Comment briser cette chaîne?

• Voler les clés de chiffrement – le UID est verrouillé à un et un seul appareil;

• Décrypter le chiffrement – on l’a vu précédemment pas du tout pratique;

• Voler la signature électronique – ça ne donne rien – de toute façon les signatures sont publiques;

• Que faire alors?

• Exploiter les “bugs” et vulnérabilités du système d’exploitation iOS!

Sécurité informatique: iOS

43

Page 44: GPA435 – SE et PS Sécurité Informatique Étude de cas: iOS Version 2013

● Sécurité trivia Qu’est-ce que le jailbreaking?

• Le noyau du iOS est basé sur le noyau XNU et ce dernier est du domaine public;http://en.wikipedia.org/wiki/XNU

• On peut alors auditer le code source pour trouver les vulnérabilités intéressantes pour attaquer iOS(problèmes de design, erreurs de programmation, etc.)• Problèmes de design;• Erreurs de programmation;• Etc.

• Les jailbreakers vont surtout intéressés par des vulnérabilités qui leur donneront les privilèges d’accès suprêmes – les privilèges du “root” (*)

Sécurité informatique: iOS

44

(*) Les privilèges d’accès du root sont supérieurs à ceux de l’administrateur!

Page 45: GPA435 – SE et PS Sécurité Informatique Étude de cas: iOS Version 2013

● Sécurité trivia Quel est le scénario préféré pour les jailbreakers?

• Devenir root lors de la séquence de démarrage;• Charger et exécuter un noyau trafiqué;• Noyau trafiqué arrête toutes les mesures de sécurité du

iOS;

Comment ont-ils réussi?• Ils obtiennent une image binaire du Boot ROM en testant

des messages de contrôle du port USB de son iPod;• Image binaire est ensuite convertie en langage assemblé du

processeur ARM• Une fois le programme Boot ROM en main, les jailbreakers

peut désormais chercher des vulnérabilités;• Ils découvrent qu’en mettant des zéros dans les registres

SHA-1, le Boot ROM peut charger un petit programme au début du Boot ROM lui-même;

• Le code de ce petit programme peut alors briser la chaîne de confiance.

Sécurité informatique: iOS

45

Boot

RO

M e

xplo

it

Page 46: GPA435 – SE et PS Sécurité Informatique Étude de cas: iOS Version 2013

● Sécurité trivia Ils utilisent le mode de mise à jour du firmware

(DFU – Device Firmware Update)• Le Boot ROM charge et exécute iBoot;• L’iBoot charge et exécute le noyau;• Le noyau charge et exécute les services nécessaires pour la

mise à jour du firmware.

Les « exploits » nécessaires …• Remplacer le Boot ROM par un programme trafiqué

• Mettre à zéro les registres SHA-1;• Le Boot ROM original charge le programme traffiqué et par le

fait même écrase le Boot ROM original;• Le programme trafiqué prend le contrôle d’exécution.

Sécurité informatique: iOS

46

Page 47: GPA435 – SE et PS Sécurité Informatique Étude de cas: iOS Version 2013

● Sécurité trivia Les « exploits » nécessaires …

• Le Boot ROM trafiqué charge iBoot

Sécurité informatique: iOS

47

iBSS et iBEC sont des modules de iBoot. On les modifie pour permettre le chargement et l’exécution du noyau trafiqué.

Plus précisément, on enlève la partie vérification de signature électronique. C’est nécessaire parce que le noyau trafiqué ne possède pas la bonne signature!

Page 48: GPA435 – SE et PS Sécurité Informatique Étude de cas: iOS Version 2013

● Sécurité trivia Les « exploits » nécessaires …

• Une fois le noyau trafiqué est chargé en mémoire, on peut l’exécuter mais en mode “Debug”

• Le “debugger” GDB est open-source et disponible;

Sécurité informatique: iOS

48

En contrôlant le noyau trafiqué par le debugger, on peut maintenant l’exécuter pas-à-pas, le faire sauter sur une autre ligne de code et même exécuter des fonctions!

Page 49: GPA435 – SE et PS Sécurité Informatique Étude de cas: iOS Version 2013

● Sécurité trivia Les « exploits » nécessaires …

• “Kernel Heap overflow” force le noyau à nous retourner une adresse mémoire système pour écrire un petit programme sous forme d’octects et exécuter le petit programme avec les privilèges du noyau;

• Le petit programme fait ensuite désactiver les mesures de sécurité du iOS;• Les jailbreakers ont réussi à localiser le code qui valide la

signature électronique: wm_page_validate_cs();• Les jailbreaker ont modifié le comportement de cette fonction

en faisant exécuter le processeur des instructions autres que celles prévues;

• Autrement dit, le noyau iOS est mené à exécuter une mauvaise logique dans la validation de la signature des Apps.

• L’approche pour implanter cet exploit est le ROP;• Return-Oriented Programming;• Il n’y a pas injection de code dans l’espace mémoire;• On récupère des bouts de code en mémoire

Sécurité informatique: iOS

49

Page 50: GPA435 – SE et PS Sécurité Informatique Étude de cas: iOS Version 2013

● Sécurité trivia Les « exploits » nécessaires …

• L’approche pour implanter cet exploit est le ROP (Return-Oriented Programming);• Il n’y a pas injection de code dans l’espace mémoire;• On récupère des bouts de code en mémoire utiles à l’attaque et

faire l’exécution du processeur parmi ces bouts de code;• Une analogie:

Sécurité informatique: iOS

50

Gens du pays, c'est votre tourDe vous laisser parler d'amourGens du pays, c'est votre tourDe vous laisser parler d'amour.

Gens, laisser votre pays.

ROP

Page 51: GPA435 – SE et PS Sécurité Informatique Étude de cas: iOS Version 2013

● Sécurité trivia

Sécurité informatique: iOS

51

Enfin,

• Exploit des registres SHA-1: colmaté• Exploit du Boot Rom: colmaté;• Exploit du Kernel Debug: colmaté;• Exploit du Kernel Heap Overflow:

colmaté?• ??

Page 52: GPA435 – SE et PS Sécurité Informatique Étude de cas: iOS Version 2013

Fin de la présentation