Le diskGenie de la societé iStorage est un disque dur externe USB qui a la particularité de chiffrer son contenu et d’autoriser l’accès aux données uniquement lorsque l’utilisateur à saisi un mot de passe.
Afin de tester la résistance du disque, de nombreuses pistes ont été explorées afin de valider le fonctionnement correct du disque.
Analyse fonctionnelle
Lecture avec un autre contrôleur
La première idée qui vient à l’esprit sur ce genre de matériel est de confirmer le chiffrement des données en ouvrant le boîtier et en connectant le disque à un contrôleur SATA-USB classique. Si le chiffrement n’est pas opérant, les données peuvent être lues directement.
Dans le cas du diskGenie, les données sont entièrement chiffrées et ne permettent donc pas de lire le contenu du disque de cette manière.
Gestion du chiffrement
Comme indiqué dans la documentation, le disque utilise un chiffrement AES-256. Les données sont donc chiffrées avec une clé unique qui est utilisée pour le chiffrement et le déchiffrement du disque. Pour autant que la clé de chiffrement soit fixe, la réinitialisation aux valeurs d’usine du boîtier pourrait alors permettre de déchiffrer le disque avec le mot de passe initial (123456). Cette attaque a été tentée, mais à nouveau sans succès.
Analyse électronique
La prochaine étape est de valider le fonctionnement électronique du boîtier afin d’écarter un possible bypass électronique du mot de passe.
Comme on peut le voir ici, le circuit fait appel à peu de composants intégrés, ce qui va faciliter la suite de l’analyse.
Analyse des composants
Les composants principaux du circuit sont les suivants :
INITIO INIC-1607E
Il s’agit du composant principal de ce circuit. Le constructeur en donne une description assez explicite : “Bridge Controller IC SATA to USB with AES”.
Après plusieurs recherches, impossible de trouver la datasheet du produit, il a fallu prendre contact avec iStorage pour récupérer une partie de la documentation qui ne soit pas sous NDA. Le pinning de la puce est donné dans la documentation comme suit :
PIC16F883
Il s’agit d’un microcontrôleur fabriqué par Microchip. Très utilisé dans l’industrie et par les amateurs d’électronique (du moins avant la démocratisation de l’Arduino).
La documentation étant disponible librement sur le site de Microchip, trouver le pinning du circuit est facile :
Analyse du circuit
Une fois les composants identifiés, il est nécessaire de découvrir les connexions entre eux afin de déterminer les tâches de chaque puce. A l’aide d’un multimètre et de (beaucoup de) patience, le schéma global du circuit peut être obtenu :
Comme on peut le voir, le PIC est utilisé pour l’interprétation du code entré sur le clavier. Il est également relié au INIC-1607E. Si ce lien entre le microcontrôleur et le contrôleur de disque permet l’activation du disque, il y a deux options :
- Le PIC envoie un signal “OK” au INIC-1607E
- Le PIC envoie la clé de chiffrement au contrôleur de disque.
Dans le premier cas, il est possible de rejouer ce signal à l’aide d’un second microcontrôleur.
Afin de tester cela, l’utilisation d’un oscilloscope numérique est obligatoire. Plusieurs séries de mesures ont été effectuées :
- Saisie d’un mot de passe incorrect
- Saisie du bon mot de passe
- Réinitialisation et saisie du bon mot de passe
Les mesures effectuées montrent un signal entièrement différent des signaux émis entre deux connexions au boîtier. Preuve qu’au moins une partie de la clé est transmise au contrôleur.
Conclusion
Après avoir testé de nombreuses attaques, ce boîtier semble apte à protéger correctement les données qu’il contient. Mention très bien pour la gestion du chiffrement, perfectible dans d’autres boîtiers du même type.
Cependant, il reste une possibilité pour un attaquant déterminé de démonter le microcontrôleur et ainsi d’accéder directement au contenu de celui-ci. Il n’a pas été possible de tenter cette attaque par manque de matériel.
Dernière recommandation, choisir un bon mot de passe. Le clavier étant exclusivement numérique, un mot de passe facilement devinable détruit complètement la protection. Sachant qu’il est possible de faire jusqu’a 100 essais avant de bloquer complètement le disque, cela laisse une fenêtre suffisamment grande pour tenter des valeurs familières au propriétaire du disque.
http://hackaday.com/tag/istorage/
C’est bien du même boîtier dont il est question? Si c’est le cas, une time attack est possible et le mot de passe est trouvé en 10 x [longueur du mdp] essais, dans le pire des cas. Et comme on a droit à 50 + 50 essais après reset, au moins tous les mdp de 10 caractères sont trouvés. Pas franchement apte à protéger quoi que ce soit…
Très bon blog, BTW
Effectivement, il s’agit du même boîtier. Je vais mettre à jour l’article pour parler de ce cas.
Encore merci pour l’info !