Et si le FBI avait tenté de cracker un téléphone Android ?

Shutterstock

Le département de la Justice américaine a réussi à débloquer un iPhone 5c utilisé par Rizwan Farook qui, avec sa femme, avait tué 14 personnes à San Bernardino, en Californie, en décembre dernier. Ce drame très médiatique a confronté les forces fédérales à Apple, qui a reçu plusieurs injonctions pour permettre aux forces de l’ordre d’accéder aux données de ce téléphone en contournant, entre autres, son mot de passe.

Le FBI a déclaré s’être appuyé sur une entreprise tierce pour cracker les données cryptées du téléphone, soulevant quelques questions sur la sécurité des iPhone et si les agences fédérales doivent ou peuvent les contourner.

Mais si le téléphone en question était un modèle Android ? Les enjeux techniques et légaux auraient-ils été les mêmes ?

Quand le match Apple-FBI a percé dans les médias, en tant que chercheurs et utilisateurs d’Android, la première chose que nous avons faite est de lire sa documentation sur ses méthodes de cryptage.

Nous avons tenté de reproduire ce que le FBI voulait faire sur un téléphone Android.

Les méthodes simples

Le cryptage des données sur smartphones implique une clé créée par le téléphone. Elle combine :

  • le code de déblocage de l’utilisateur s’il y en a un (souvent un nombre de quatre à six chiffres)

  • Une combinaison longue et unique, propre à l’appareil de l’individu. Les hackers peuvent tenter de décoder cette clé directement – et c’est très difficile – soit une combinaison du mot de passe et de la série spécifique au portable, caché et aussi difficile à deviner.

Décoder ce cryptage avancé peut être très difficile, mais, parfois, avoir accès aux données cryptées d’un téléphone ne demande aucun décodage. Voilà pourquoi :

  • Une application dédiée peut être installée sur le téléphone cible pour en extrait des informations. En mars 2011, Google a installé à distance un programme ayant nettoyé les téléphones infectés par des logiciels nocifs. Il n’est pas certain qu’Android le permette encore.

  • De nombreuses applications utilisent les API de sauvegarde. Les informations préservées, et accessibles sur le site de back-up dépendent des applications installées sur le téléphone.

  • Si les données cibles sont stockées sur une carde SD détachable, elles sont potentiellement décodées. Seules les versions plus récentes d’Android permettent le cryptage d’une carte SD entière ; toutes les applications ne cryptent pas des données sur un tel support.

  • Quelques téléphones sont biométriques, pouvant être débloquées avec une photo des empreintes digitales de l’utilisateur.

  • Certaines personnes ont modifié les interfaces de leurs téléphones pour avoir des privilèges « de fabrique » – accéder aux données au-delà de ce qui s’affiche en temps normal – et affaiblir potentiellement la sécurité.

Mais si ces options ne sont pas disponibles, le décryptage est la solution restante. Dans ce qu’on appelle une « attaque à la force brute », un téléphone peut être débloqué en tentant toutes les combinaisons de code possibles jusqu’à ce que la bonne soit trouvée et que le portable se débloque, ses données avec.

Commencer l’attaque

Représentation abstraite de dérivation de clés de chiffrement sur Android. William Enck and Adwait Nadkarni, CC BY-ND

Il existe deux types d’attaques de force brute : en ligne et hors ligne. D’une certaine manière, une attaque hors ligne est plus aisée – en transférant les données de l’appareil sur un ordinateur puissant, des logiciels dédiés peuvent générer toutes les combinaisons de mots de passe possibles.

Mais les attaques hors ligne peuvent aussi être bien plus difficiles, puisqu’elles demandent d’essayer chaque clé de cryptage possible, ou de deviner le mot de passe de l’utilisateur et la clé unique rattachée au modèle (un identifiant unique pour Apple, une clé hardware sur les nouvelles versions d’Android).

Essayer toutes les combinaisons possibles pour une clé AES 128-bit demande d’essayer toutes les solutions potentielles parmi 10 puissance 38 – plus qu’il n’en faut pour faire réfléchir un superordinateur pour plus d’un milliard de milliards d’années.

Trouver le mot de passe peut être relativement rapide. Pour un code PIN à six chiffres avec des caractères numériques seulement, il n’y a qu’un million d’options. Si des lettres et des symboles spéciaux tels que « $ » et « # » sont autorisés, il y aurait davantage d’options, mais seulement quelques milliards. En revanche, comprendre la clé spécifique à l’appareil serait aussi difficile que de décoder la clé de cryptage.

Envisager une attaque en ligne

Ce qui nous laisse l’attaque en ligne, directement sur le téléphone. Avec la clé de modèle déjà disponible sur l’interface, cela réduit la tâche au bien moins pénible jeu de deviner tous les mots de passe potentiels.

Cependant, le téléphone peut être configuré pour résister aux attaques en ligne. Par exemple, le téléphone peut demander un délai entre deux tentatives ratées pour le mot de passe, voire supprimer les données après un certain nombre de tentatives ratées.

L’iOS d’Apple possède chacune de ces fonctions, augmentant la longueur de ses délais après chaque tentative et, si l’utilisateur le choisit, de tout effacer après dix mots de passe rentrés.

Attaquer un téléphone Android

Que se passe-t-il quand un téléphone verrouillé Android commence à être forcé ? Les constructeurs ne fabriquent pas leurs modèles de la même manière. Nous avons utilisé un Nexus 4 utilisant Android 5.1.1, cryptage du disque entier activé.

Android ajoute un délai de 30 secondes chaque fois qu’il y a 5 tentatives qui ont échoué. Capture d’image du quarantième essai. William Enck and Adwait Nadkarni, CC BY-ND

Nous avons commencé avec un téléphone allumé mais avec un écran de déverrouillage. Android permet les codes PIN, les mots de passe et les verrouillages « à chemin », dans lequel l’utilisateur doit relier une série de neuf points dans le bon ordre. Nous avons mené un test pour chacun, et assigné manuellement un mot de passe pour le téléphone. Nos tentatives de déblocage, elles, étaient générées au hasard.

Après cinq tentatives ratées, Android impose un délai de trente secondes d’attente avant une autre tentative. À l’inverse d’un iPhone, le temps d’attente n’augmente pas proportionnellement. Après 40 tentatives, il n’y a que trente secondes à attendre tous les cinq essais. Le compteur de tentative tournait toujours mais le téléphone conservait toujours ses données. (Les téléphones Android fabriqués par d’autres constructeurs que celui testé peuvent insérer des délais plus longs, comme pour l’iOS).

C’est une première contrainte de temps pour un pirate. Forcer un code PIN à six chiffres peut, dans le pire des scénarios, demander autour de 69 jours. Si le mot de passe passe à six caractères, même en n’utilisant que des minuscules, ce temps passe à plus de 58 ans.

En répétant une attaque sur un téléphone venant d’être éteint et rallumé, on nous a demandé de redémarrer l’appareil après dix tentatives erronées. Après 20 tentatives et deux redémarrages, Android a affiché un compte à rebours jusqu’à un reset total. Nous avons continué, et à la trentième tentative, – comme l’indique l’écran et la documentation d’Android – l’appareil a effectué un formatage de « fabrique », effaçant toutes les données.

Il reste juste une tentative avant que l’appareil n’efface ses données. William Enck and Adwait Nadkarni, CC BY-ND

Utiliser des outils spéciaux

A San Bernardino, l’iPhone 5c appartenait à l’employeur de l’un des tireurs, et possédait un programme de gestion de mobile (Mobile Device Management, MDM) permettant à la firme de le suivre à la trace et d’utiliser le téléphone à distance. Une telle application MDM est habituellement installée en tant qu’application pour « Administrateur de l’appareil » sur un téléphone Android, et en tant qu’outils « Apple Configurator » pour iOS.

Notre test MDM formate avec succès le mot de passe. William Enck and Adwait Nadkarni, CC BY-ND

Nous avons construit notre propre application MDM sur Android, et vérifié que le le mot de passe pouvait être formaté sans le consentement de l’utilisateur ; cela a également mis à jour les clés de cryptage du téléphone.

Nous pouvions ensuite utiliser le nouveau mot de passe pour débloquer le téléphone au démarrage (pour que cette attaque marche à distance, le téléphone doit impérativement être connecté à Internet et l’application MDM doit déjà être programmée pour changer le mot de passe sur commande, depuis un serveur distant MDM.

Comprendre où trouver de l’aide

Si un pirate a besoin d’aide de la part d’un constructeur ou d’un éditeur de logiciels, Android se targue d’un éventail de possibilités plus élevé.

Le plus souvent, le logiciel d’exploitation est signé d’un code qui prouve son authenticité, code demandé par le téléphone au préalable de l’installation. Seule la compagnie avec le bon code peut créer une mise à jour du système d’exploitation – lequel peut contenir une « porte dérobée » ou n’importe quelle faille pour un pirate qui a sollicité l’assistance de la compagnie. Pour les iPhone, l’interlocuteur c’est Apple. Mais de nombreuses firmes construisent et distribuent des téléphones Android.

Google, le constructeur numéro un, signe ses mises à jour pour son produit vedette : le Nexus. Samsung fait de même avec ses produits. Les opérateurs téléphoniques comme AT&T et Verizon peuvent le faire également. Enfin, de nombreux utilisateurs utilisent une version personnalisée d’Android (comme Cyanogenmod). Le FBI doit demander, ou faire coopérer ces firmes pour produire des logiciels permettant de casser les protections.

Comparaison entre iOS et Android

Les anciennes versions des systèmes d’exploitation sont plus vulnérables, un système d’exploitation peut être craqué en moins de dix secondes. De même, les failles logicielles des constructeurs peuvent compromettre la sécurité des deux appareils.

Mais nous avons trouvé des différences pour les attaques en ligne. Android a une configuration de base plus sécurisée pour les attaques en ligne au démarrage, mais notre Nexus 4 ne permet pas à l’utilisateur de fixer un nombre maximal de tentatives depuis l’écran de déblocage. Les appareils faisant tourner iOS demandent à l’utilisateur de configurer ces options en avance.

La sécurité d’Android peut aussi être affaiblie par un logiciel de contrôle à distance. Bien que le FBI ait été incapable d’accéder à l’iPhone 5c en changeant le mot de passe de cette manière, nous avons réussi la même opération avec un appareil Android.

This article was originally published in English

The Conversation is a non-profit + your donation is tax deductible. Help knowledge-based, ethical journalism today.