Un chercheur en sécurité réussit à casser la sécurité du Nano S
Un portefeuille matériel pour monnaies cryptographiques du français Ledger
Les portefeuilles matériels sont ce qui se fait de mieux en matière de sécurité pour protéger ses jetons de monnaies cryptographiques. Ils ne sont pour autant pas inviolables comme l’a démontré un hacker avec le Nano S – une solution proposée par la société française Ledger et vendue en millions d’exemplaires à travers le monde.
Saleem Rashid pointe une vulnérabilité due à un choix de design du hardware wallet. En son sein, un processeur cryptographique – ST31H320 – muni d’une interface UART et un microcontrôleur STM32F042K6 chargé de la gestion de l’affichage, du clavier de l’appareil et de la connexion USB avec un PC.
D’après le chercheur en sécurité, le nœud du problème dans cette architecture est le fait qu’un attaquant puisse modifier le firmware du microcontrôleur STM32 pour contourner les vérifications de sécurité gérées par le processeur cryptographique. Et pour cause, le processeur cryptographique ne peut « voir » le firmware du STM32 pour l’authentifier. Pour parvenir à attester de l’authenticité du firmware du STM32, les ingénieurs de Ledger ont mis sur pied un stratagème consistant à charger le contenu entier de la mémoire flash du microcontrôleur au travers de l’interface UART ; un problème quand on sait que cette manière de faire revient à demander à un criminel de produire son extrait de casier judiciaire.
Le hacker s’est appuyé sur cette brèche pour parvenir à poser une backdoor sur la fonction de génération des clés privées de l’appareil. « Si vous êtes calés en langage C, vous noterez que j’ai remplacé un appel système au générateur de nombres aléatoires par un appel à une fonction qui définit toutes les entropies à zéro », explique-t-il.
Certes, l’exploitation de la vulnérabilité mise en lumière par le chercheur requiert que l’attaquant dispose d’un accès physique à l’appareil, une condition qui est souvent considérée comme étant difficile à remplir, mais qui dans ce cas l’a probablement été à plusieurs reprises au travers des revendeurs tiers. Un acteur malveillant qui contrôle le générateur de nombres aléatoires contrôle les clés privées et peut donc soutirer les jetons de cryptomonnaies d’un acquéreur de l’appareil.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 diff --git a/src/bolos_ux_onboarding_3_new.c b/src/bolos_ux_onboarding_3_new.c index ce1849c..b950ae7 100644 --- a/src/bolos_ux_onboarding_3_new.c +++ b/src/bolos_ux_onboarding_3_new.c @@ -395,7 +395,7 @@ void screen_onboarding_3_new_init(void) { #else G_bolos_ux_context.onboarding_kind = BOLOS_UX_ONBOARDING_NEW_24; - cx_rng((unsigned char *)G_bolos_ux_context.string_buffer, 32); + os_memset(G_bolos_ux_context.string_buffer, 0, 32); G_bolos_ux_context.words_buffer_length = bolos_ux_mnemonic_from_data( (unsigned char *)G_bolos_ux_context.string_buffer, 32, (unsigned char *)G_bolos_ux_context.words_buffer,
Saleem Rashid a fait part de ses trouvailles à Ledger France en novembre 2017 et un correctif est disponible pour le Nano S depuis le 6 mars. L’entreprise met un nouveau firmware à la disposition des consommateurs et ce dernier leur sera proposé en téléchargement dès connexion de l’appareil à un ordinateur. Les trouvailles du chercheur en sécurité concernent également le Nano Blue pour lequel un correctif se fait toujours attendre.
Source
Billet Rashid
Votre opinion
Faites-vous usage des portefeuilles matériels proposés par Ledger ? Si oui, pour quelle raison ?
Partager