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. 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)
11. Lecture du composant
• … mais le "code protection bit" est à 1
– Seule une zone de données semble lisible
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. 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. Extraction du code
• Si vous voulez m'aider à chercher le fusible …
– http://commons.wikimedia.org/wiki/File:HOLTEK_
HT49R50A-1_A217K0092.jpg
15. A partir de ce point, tout n'est qu'
HYPOTHÈSES …
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. 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é