ASFWS 2013 - Rump Session - Sécurité d’un token OTP Nicolas ruff

818 vues

Publié le

Publié dans : Technologie
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
818
Sur SlideShare
0
Issues des intégrations
0
Intégrations
5
Actions
Partages
0
Téléchargements
8
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

ASFWS 2013 - Rump Session - Sécurité d’un token OTP Nicolas ruff

  1. 1. Sécurité d'un token hardware Nicolas RUFF EADS Innovation Works nicolas.ruff(à)eads.net
  2. 2. Une cible bien connue de l'ASFWS
  3. 3. Démontage • 4 pins évidentes: VCC, GND, DATA, CLK • Des pastilles • Pas de référence visible
  4. 4. Décapsulation
  5. 5. Décapsulation • HT49R50A-1 – Un microcontrôleur Holtek, 8 bits, spécialisé pour le pilotage LCD • http://www.holtek.com.tw/english/docum/uc/49x50.htm • http://www.holtek.com.tw/pdf/uc/ht49x50v240.pdf – Coût unitaire: probablement quelques centimes 
  6. 6. Description du composant • Les pastilles correspondent probablement à pins de programmation "in-circuit" • Le protocole de programmation est référencé "ICP-1A" chez Holtek – http://www.holtek.com.tw/Chinese/tech/tool/MainPage2.aspx • … mais apparemment non documenté  • Il utilise 11 broches – – – – – PA0 – PA6 OSC (OSC1 ou OSC3 ?) VSS (câblé à OSC) VDD VPP (alias RESB ou RESET)
  7. 7. Documentation officielle
  8. 8. Connect the dots A5 A2 A6 CLK A3 GND VSS VCC VDD DATA A1 A0 A4 (A3) RES OSC1 OSC3
  9. 9. Connect the dots
  10. 10. Lecture du composant • Le programmateur Elnec supporte les microcontrôleurs Holtek 
  11. 11. Lecture du composant • … mais le "code protection bit" est à 1 – Seule une zone de données semble lisible
  12. 12. Extraction du code • Pour extraire le code, il est nécessaire de comprendre le protocole de programmation – … mais comment peut-il y avoir autant de données transférées en si peu de cycles ?
  13. 13. Extraction du code • Une attaque est-elle possible ? – http://www.cl.cam.ac.uk/~sps32/mcu_lock.html ✘Effacement du "code protection bit" avec un faisceau d'UV • Il faut trouver l'emplacement du fusible • Le risque d'effacer une partie du code est important ✘Power Glitch / Clock Glitch • Les MCU Holtek sont relativement résistant contre cette attaque
  14. 14. Extraction du code • Si vous voulez m'aider à chercher le fusible … – http://commons.wikimedia.org/wiki/File:HOLTEK_ HT49R50A-1_A217K0092.jpg
  15. 15. A partir de ce point, tout n'est qu' HYPOTHÈSES …
  16. 16. • Question(s) – A quoi servent les pins documentés ? • Injecter la seed ? – Une fois que la RAM est alimentée par la pile ? • Relire la seed ? – Si oui: #fail … – Quel est le protocole de communication sur ces pins ? • Requière l'accès au code du MCU  – Un brute-force du protocole semble peu réaliste • Hypothèse(s) – Le MCU est programmé en usine par les pins non documentés – Si les pins documentés sont liés à la programmation de la seed • Il pourrait être possible d'extraire la seed discrètement – Avec 4 trous de la taille d'une épingle au dos du token • Il pourrait être possible d'injecter votre propre seed – Si vous ne faites pas confiance au vendeur
  17. 17. Conclusion • N'hésitez pas à contribuer • Si vous voulez des échantillons gratuits, demandez à Sylvain  • Si vous voulez fabriquer votre propre token, cela vous coûtera probablement moins de 5€/unité

×