asfws 2013 - rump session - sécurité d’un token otp nicolas ruff

Post on 19-May-2015

420 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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/english/docum/uc/49x50.htm

• http://www.holtek.com.tw/pdf/uc/ht49x50v240.pdf

– Coût unitaire: probablement quelques centimes

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)

Documentation officielle

Connect the dots

CLK VCC

GND DATA

A5

A2

A1

A0

A6

A4RES

OSC1

OSC3

(A3)

A3

VSS

VDD

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 peut-il y avoir autant de données transférées en si

peu de cycles ?

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

Extraction du code

• Si vous voulez m'aider à chercher le fusible …

– http://commons.wikimedia.org/wiki/File:HOLTEK_HT49R50A-1_A217K0092.jpg

HYPOTHÈSES …A partir de ce point, tout n'est qu'

• 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

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é

top related