Sécurité d'un token hardware
Nicolas RUFF
EADS Innovation Works
nicolas.ruff(à)eads.net
Une cible bien connue de l'ASFWS
Démontage
• 4 pins évidentes: VCC, GND, DATA, CLK
• Des pastilles
• Pas de référence visible
Décapsulation
Décapsulation
• HT49R50A-1
– Un microcontrôleur Holtek, 8 bits, spécialisé pour le
pilotage LCD
• http://www.holtek.com.tw...
Description du composant
• Les pastilles correspondent probablement à pins de programmation
"in-circuit"
• Le protocole de...
Documentation officielle
Connect the dots
A5
A2
A6
CLK
A3
GND
VSS

VCC
VDD
DATA

A1
A0

A4
(A3)

RES
OSC1

OSC3
Connect the dots
Lecture du composant
• Le programmateur Elnec supporte les
microcontrôleurs Holtek 
Lecture du composant
• … mais le "code protection bit" est à 1
– Seule une zone de données semble lisible
Extraction du code
• Pour extraire le code, il est nécessaire de comprendre le
protocole de programmation
– … mais comment...
Extraction du code
• Une attaque est-elle possible ?
– http://www.cl.cam.ac.uk/~sps32/mcu_lock.html
✘Effacement du "code p...
Extraction du code
• Si vous voulez m'aider à chercher le fusible …
– http://commons.wikimedia.org/wiki/File:HOLTEK_
HT49R...
A partir de ce point, tout n'est qu'

HYPOTHÈSES …
• Question(s)
– A quoi servent les pins documentés ?
• Injecter la seed ?
– Une fois que la RAM est alimentée par la pile ...
Conclusion
• N'hésitez pas à contribuer

• Si vous voulez des échantillons gratuits,
demandez à Sylvain 
• Si vous voulez...
Upcoming SlideShare
Loading in …5
×

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

911 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
911
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
8
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

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é

×