Loïc Morel@Loic_Pandul
Acheter une Ledger sur le site officiel ne suffit pas.
- Même sur le vrai site, le colis peut être intercepté dans la chaîne logistique. Aucune supply chain n'est immunisée contre des attaques puisqu'il y a du facteur humain à chaque étape.
- Le site officiel lui-même peut être compromis.
- Vous pouvez penser être sur le vrai site, mais vous ne l'êtes pas.
L'origine d'achat n'est jamais une garantie de l'authenticité du produit que vous recevez chez vous.
Pour éviter les clones de hww frauduleux, la meilleure défense est de prendre le temps de réaliser la vérification d'authenticité. Le processus est différent pour chaque marque, mais justement celui de Ledger est un des plus évolués :
À l'usine :
- Chaque ledger génère une paire de clés unique en usine. La clé privé ne sort jamais du SE de la Ledger.
- La clé publique, elle, est envoyée au HSM de Ledger (un HSM, en gros, c'est un module matériel qui est utilisé par un serveur et qui permet de stocker et utiliser des clés cryptographiques de manière sécurisée, sans jamais qu'elles ne sortent).
- La clé publique de la ledger est signée par la clé racine de Ledger dans leur HSM.
- cette signature est renvoyée à la ledger qui est encore en usine. C'est son "attestation", et elle est stockée dans le hww. Aucun clone frauduleux de Ledger ne peut produire cette attestation sans la clé privée de Ledger, qui ne quitte jamais leur HSM.
À la réception de votre Ledger :
- Vous installez Ledger Wallet (Live). Le HSM envoie à votre Ledger un challenge (c'est juste un nombre aléatoire).
- La Ledger signe ce challenge avec sa clé privée (celle générée à l'usine).
- Elle renvoie au HSM le challenge signé + son attestation. Celui-ci valide ensuite si oui ou non la Ledger est authentique.
Il y a donc 2 vérifications ici : la vérification de l'attestation prouve que le HSM a bien, un jour, en usine, signé la clé publique présentée. Mais un attaquant pourrait très bien copier une attestation d'un vrai Ledger sur un faux Ledger, donc il y a une seconde vérification avec la signature du challenge, qui permet de prouver que la Ledger possède bien la clé privée correspondant à la clé publique de l'attestation.
On est donc sur que cette Ledger sort bien de l'usine officielle.
Mais même avec tout cela, il reste un dernier piège : l'application Ledger Wallet aussi peut être contrefaite.
C'est exactement l'attaque utilisée contre les acheteurs du faux Ledger chinois. Le QR code dans la boite pointe vers une fausse app Ledger où le genuine check était codé en dur pour toujours renvoyer "succès".
Il faut donc également vérifier l'authenticité et l'intégrité du logiciel Ledger Wallet. Pour l'intégrité : vous vérifiez le hash du binaire. Pour l'authentiicité : vous vérifiez que la signature correspond à la clé publique de Ledger.
Pour un niveau de vérification maximal, vous pouvez récupérer la clé publique depuis plusieurs sources indépendantes.
Le bon mode opératoire pour éviter ce genre d'attaque est donc :
- Téléchargez Ledger Wallet depuis le site officiel.
- Vérifiez hash et signature avec la clé PGP récupérée sur au moins deux sources indépendantes.
- Lancez le genuine check avec cette app vérifiée. S'il réussit, vous pouvez utiliser votre ledger.
Le risque ne tombe évidemment jamais à zéro, mais c'est l'empilement de vérifications qui le rend négligeable.
Ça peut paraitre compliqué, mais en réalité c'est plutôt simple, et surtout c'est à faire une seule fois, lors de l'initialisation.