Pour répondre à plusieurs interrogations, le travail réalisé par Sergei Skorobogatov a pris plusieurs mois et mobilisé des compétences rares et des ressources humaines et matérielles non accessibles au premier venu.
Le reverse engineering de la mémoire flash de l'iPhone 5c a consisté à :
- obtenir le diagramme et la schématique du circuit du SoC A6 de l'iphone 5c qui n'est pas disponible publiquement. Le composant de mémoire flash utilisé dans le package LGA60 n'est pas documenté par les fabricants (Toshiba, SK hynix, Samsung et SanDisk).
- Sergei a mis en évidence qu'Apple utilise un contrôleur mémoire dédié avec un brochage de la puce NAND modifié pour qu'une tentative de reverse endommage la puce (permutation des broches VCC et GND).Le protocole a du être reversé par écoute du bus et acquisition des commandes.
L'analyse montre que l'accès aux composant NAND sur la carte est protégé par des écrans métalliques soudés, par une résine epoxy et enfin par une proximité de 0,05 mm avec le PCB. Cela rend le déssoudage de la NAND délicat à cause du risque d'endommager la puce mémoire. Là il faut des compétences et du savoir-faire. Le processus a été complexe.
Ensuite, il a fallu connecter les broches de la NAND avec des straps au PCB. L'iPhone plantait car une distorsion des signaux de communication provenait du parasitage de la capacitance et de l'inductance à cause du déport des broches avec des fils. Les problèmes à ce stade ont été nombreux. La source d'horloge du SoC a aussi requis l'insertion de résistance sur les lignes du signal.
Un circuit imprimé spécifique a été construit pour connecter un oscilloscope et un analyseur logique aux broches de la NAND pour l'écoute du bus.
Une rétro-ingénierie du protocole a permis d'implémenter les commandes pour la lecture, l'effacement et l'écriture de la mémoire flash. Ce reverse a requis la construction d'un programmateur de circuit intégré pour débuguer les commandes avec la puce NAND et comprendre l'agencement des blocs et unités d'informations.
Le backup de la puce NAND a été effectué sur une autre puce NAND identique provenant d'un autre iPhone grâce à une carte de test spécialement conçue à base de microcontroleur PIC PIC24EP512GP806. Le backup de 8 Go a duré 1h20...
Après le backup, la puce NAND a été reconnectée à l'iPhone. Après le boot (35 sec), 6 mots de passe sont entrés puis l'iPhone est éteint car à partir du 7ème mots de passe infructueux, le délai d'attente s'incrémente trop. Il faut encore attendre 10 sec avant de retirer la NAND et la brancher sur la carte de test. Un balayage de la NAND comparé au backup permet de trouver les blocs à effacer puis à réécrire. La mémoire NAND est éteinte puis reconnectée à l'iPhone et on continue à tester les mots de passe par 6. Il faut environs 40 heures pour un passcode de 4 digits (cela devient prohibitif pour 6 à 8 digits). Comme la méthode ne tient pas compte du wear levelling, une usure prématurée de la mémoire flash peut la rendre inutilisable, il a donc fallu pouvoir la cloner.
Le clonage a eu aussi son lot de surprise, le processus a permis de créer un clone de la NAND (y compris pour des pages mémoires fantômes supérieures à 16 Go!). L'iPhone a réussi à démarrer depuis le clone de la NAND.
En conclusion, il sfaut comprendre qu'il s'agit d'un PoC dans un cadre académique. La méthode n'est donc pas automatisée et requiert des interventions manuelles (beaucoup de branchement/débranchement de la puce NAND). Avec un passcode >= 6 digits, les tests deviennent trés long.
Le coût "réduit" ne concerne que la quincaillerie électronique nécessaire pour reproduire le PoC. Le coût réelle du reverse et de l'analyse est très différent. L'étude nécessite un oscilloscope, un analyseur logique, une station de soudage de précision, un PC, des iPhones, un microscope électronique, sans parler des 4 mois de jours/hommes de plusieurs experts. La facture réelle se chiffre en centaines de K€. Pour que la méthode soit industrielle, il faudrait monter un banc de test automatisé évitant les interventions manuelles. Ce n'est pas l'objet de ce très bon travail académique, il s'agissait de démontrer la faisabilité ce qui a été fait, dont acte !
La video de démo par Sergei sur Youtube:
10 |
0 |