Téléphones mobiles et chiffrement

Filtrer par catégorie :

06 Mai 2016 by Christophe Baland
apple

L’actualité a récemment porté l’attention des médias sur le chiffrement des téléphones portables, notamment au travers de l’affaire entre Apple et le FBI. Ce dernier demande, sans succès, à la firme de déchiffrer le téléphone utilisé par un terroriste. Cet article se propose comme objectif de faire le point sur les différentes méthodes de chiffrement utilisées sur les principaux systèmes d’exploitation mobiles.
 

Apple

Les téléphones de la marque Apple sont chiffrés par défaut depuis iOS 8, la version actuelle étant la version 9 (qui garde la même politique de chiffrement). De par la maîtrise que possède l’entreprise Apple sur le matériel autant que sur le logiciel de ses téléphones, elle peut aisément développer des fonctionnalités avancées de chiffrement sans craindre un défaut de compatibilité. Cette maîtrise permet également le déploiement massif de nouvelles mises à jour, ce qui explique que 79 % des iPhones fonctionnent avec la dernière version d’iOS, et 16 % avec l’avant dernière, amenant à un total de 95 % d’iPhones chiffrés1.

Tous les périphériques Apple dotés d’un processeur A7 ou supérieur intègrent un coprocesseur spécialisé dans la gestion des clés cryptographiques et des opérations de chiffrement. Ce coprocesseur, nommé Secure Enclave, utilise sa propre séquence d’amorçage sécurisée, et possède une gestion des mises à jour différente de celle du processeur applicatif. Son micronoyau est basé sur une version modifiée de L4 et sa mémoire est chiffrée, de même que les communications qu’il entretient avec les autres composants du système (notamment le Touch ID).

Les iPhone 3GS et supérieurs, les iPod Touch de 3ème génération et supérieurs et tous les iPad2 possèdent une puce de chiffrement en AES 256 localisée sur le chemin DMA (Direct Memory Access) entre le stockage flash et la mémoire principale du système3.

Chaque téléphone ou tablette se voit attribuer un numéro d’identification unique (UID), qui est une clé AES 256 bits intégrée au coprocesseur Secure Enclave au moment de la fabrication du périphérique, et qui ne peut être lue directement par aucun logiciel ni firmware : seul le module AES peut la lire. En principe, elle n’est connue ni d'Apple ni d’aucun de ses sous-traitants. Elle est également protégée contre les attaques physiques par une couche de silicone. C'est cette clé qui est systématiquement à la base des opérations de chiffrement, ce qui explique pourquoi Apple n’est pas en mesure de déchiffrer l’un de ses téléphones.

En effet, tout chiffrement effectué sur le téléphone le sera via une clé générée aléatoirement, elle-même chiffrée par une clé dérivée de l'UID (nommée "key0x89b"), ce qui signifie qu’une tentative de bruteforce devra se faire directement sur l’appareil visé. Ainsi, déplacer les puces de stockage compromettra la possibilité de déchiffrer les fichiers présents dessus du fait d’un UID différent ou inexistant.

Par ailleurs, toutes les clés de chiffrement générées sur le périphérique le sont grâce au générateur de nombre aléatoire physique utilisant un algorithme basé sur CTR_DRBG (Counter mode Deterministic Random Byte Generator4, standardisé par le NIST5). Ce RNG est présent au sein de la Secure Enclave.

Au moment de configurer la phrase de passe du téléphone (qui permet de déverrouiller le mobile, ce verrouillage étant optionnel), iOS active automatiquement la fonction « Data protection ». Cette fonction renforce la sécurité offerte par le module cryptographique physique en chiffrant certaines clés de ce module physique avec ladite phrase de passe, augmentant de facto l’entropie de ces clés. Cette phrase de passe peut être composée de quatre ou six chiffres, ou de caractères alphanumériques sans limitation. Cette phrase de passe est donc corrélée avec l’UID afin de fournir des clés de chiffrement plus robustes.

Afin de limiter les risques liés au bruteforce de la phrase de passe, Apple a mis en place certaines mesures de sécurité, notamment un délai minimum de 80ms entre chaque frappe. Il existe également un délai à attendre entre chaque tentative, résumé dans le tableau suivant :

Tentatives Délai
1 – 4 Aucun
5 1 minute
6 5 minutes
7-8 15 minutes
9 1 heure


A noter que pour les périphériques dotés d’un processeur A7 ou supérieur, le décompte n’est pas supprimé par un redémarrage de l’appareil, si celui-ci est effectué dans un délai imparti, ce qui empêche de bypasser le délai d’attente. Cette fonction est assurée par la Secure Enclave.

Il est également possible d’activer une fonctionnalité qui efface automatiquement les données du téléphone (notamment les clés de chiffrement) après dix mauvais essais consécutifs.

Apple assure qu’avec une phrase de passe composée de six caractères alphanumériques (lettres minuscules et majuscules), le temps nécessaire pour parvenir à débloquer le téléphone par bruteforce est de cinq ans et demi.

Une vision plus détaillée de l’architecture de chiffrement est disponible au sein du guide suivant.

Cependant, même si les données sont chiffrées sur le téléphone, certaines d’entre elles peuvent également être stockées en clair sur iCloud. Celles qui sont stockées chiffrées sur le cloud d’Apple (comme les sauvegardes automatiques) le sont par une clé dont Apple détient la copie6. Apple souhaiterait mettre fin à cette méthode, afin de ne plus être en mesure de fournir quelque information que ce soit aux forces de l’ordre le réclamant7.

Dans l'affaire opposant Apple au FBI, il semblerait que l'entreprise israélienne Cellebrite, spécialisée dans l'extraction de données de téléphones mobiles, ait aidé l'agence gouvernementale américaine à récupérer les données de l'iPhone 5C appartenant à l'un des terroristes.

 

Android

Depuis 2011, le chiffrement est proposé par Google au libre choix de l'utilisateur. C’est en 2014, avec Android 5.0, que le chiffrement devient activé par défaut même si la configuration finale est laissée au libre choix du fabricant. Dans les faits, la fonction est très souvent désactivée pour des raisons de performances, les fabricants contredisant les résultats des tests menés par Google qui montraient un impact minime sur les performances.

Depuis 2015 et l’arrivée d’Android 6.0, le chiffrement devient obligatoire dès un certain niveau de performance matérielle, à savoir une vitesse de chiffrement / déchiffrement supérieur à 50MiB/sec8. Cela signifie que les téléphones d’entrée de gamme ne sont pas concernés par la mesure. Les données sur carte SD peuvent également être chiffrées en même temps que le reste du système9.

A noter que certains constructeurs renforcent la sécurité Android, par exemple l'offre Samsung Knox (offre professionnelle) qui peut utiliser un Secure Element dans le téléphone et sur la carte SD.

D’une manière générale, Google n’est pas en mesure de déchiffrer un téléphone Android.

Du fait de la diversité des constructeurs et des ROM alternatives, très peu de téléphones Android sont aujourd’hui chiffrés : moins de 10 % selon les experts. Ce chiffre n’a rien d’étonnant compte tenu du fait que seuls 2,3 % des appareils tournent sur la dernière version d’Android, pourtant lancée en octobre 201510.

D’un point de vue technique, la fonction full disk encryption, qui assure donc le chiffrement du téléphone, utilise dm-crypt. Le chiffrement doit se faire au minimum en AES 128, de même que le chiffrement de la clé elle-même.

Le flux de chiffrement pour un nouveau téléphone peut être résumé comme suit :

  • Le système de fichier est détecté comme étant non chiffré
  • Début du processus de chiffrement (le système de fichier doit être démonté pendant ce temps)
  • Montage d’un tmpfs (Temporary File System)
  • Mise en place du framework afin de montrer la progression du processus
  • Quand le chiffrement est terminé, le framework est retiré
  • Le système de fichier, désormais chiffré, est monté
  • Lancement du framework.

La documentation complète décrivant les processus de chiffrement, notamment celui d'un téléphone déjà configuré, est disponible à cette adresse.

Des chercheurs ont montré, il y a quelques années, qu'une cold boot attack était possible sur les téléphones Android, permettant de récupérer les clés de chiffrement et le contenu de la RAM via l'outil FROST11.

Un bruteforce du code PIN de chiffrement est également possible12.

 

Windows Phone

Sous Windows Phone 8 et 8.1, le chiffrement du téléphone n'est possible qu'en passant par un serveur Exchange (interne ou en utilisant une solution Microsoft comme Office 365), et en choisissant une politique de sécurité adaptée. Le chiffrement est donc proposé comme une fonctionnalité davantage orientée vers les entreprises, bien que l'infrastructure Exchange ne semble pas nécessiter d’être explicitement déployée dans un cadre professionnel pour proposer la possibilité de chiffrement.

En passant par une offre Exchange mise à disposition par Microsoft, une clé de secours est disponible auprès de l'entreprise afin de déchiffrer le terminal. A contrario, si la solution est déployée en interne, Microsoft n'a pas la possibilité d'effectuer de récupération.

Dans tous les cas, le chiffrement est effectué par Bitlocker.

Pour Windows 10 Mobile, très peu d’information est disponible. Le chiffrement est possible pour tous les utilisateurs, et est également déployable en entreprise via une application de MDM (mobile device management).

Windows 10 Mobile pour entreprise offre une grande souplesse dans les possibilités de chiffrement, laissant au libre choix de l'administrateur la politique de chiffrement, l'algorithme ou encore la taille de la clé13. En utilisant Bitlocker, le chiffrement se fera par défaut avec une clé AES 128 bits.

Une liste de toutes les politiques est disponible à cette adresse.

Dans tous les cas, les données sur les cartes SD ne sont pas chiffrées par ces systèmes de sécurité, comme c’est le cas sur Android.


1http://www.wsj.com/news/article_email/google-faces-challenges-in-encrypting-android-phones-1457999906-lMyQjAxMTE2MDE3NjUxMDYzWj
2https://support.apple.com/en-us/HT202064
3https://www.apple.com/business/docs/iOS_Security_Guide.pdf
4https://tls.mbed.org/ctr-drbg-source-code
5http://csrc.nist.gov/publications/nistpubs/800-90A/SP800-90A.pdf
6http://www.silicon.fr/chiffrement-donnees-ios-8-juste-poudre-aux-yeux-96996.html
7http://www.frandroid.com/marques/apple/345760_apple-veut-chiffrer-completement-icloud-et-les-iphone-le-fbi-fait-la-grimace
8https://static.googleusercontent.com/media/source.android.com/en//compatibility/android-cdd.pdf
9https://static.googleusercontent.com/media/source.android.com/fr//security/reports/Google_Android_Security_2015_Report_Final.pdf
10http://www.itespresso.fr/android-chiffrement-jonction-evidente-124172.html
11http://www.extremetech.com/computing/150536-how-to-bypass-an-android-smartphones-encryption-and-security-put-it-in-the-freezer
12 Un exemple parmi d'autres : http://cyborg.ztrela.com/android-bruteforce-encryption.php/
13https://technet.microsoft.com/en-us/itpro/windows/keep-secure/windows-10-mobile-security-guide