Ledger Wallet en mode offline : Transactions signées sans connexion internet et broadcast ultérieur

Un utilisateur détient des actifs numériques importants et souhaite réduire l’exposition au risque réseau autant que possible. La menace classique provient de malwares, de phishing, ou d’interception lors de la transmission de données sur internet. Une stratégie efficace consiste à signer les transactions sur une machine entièrement déconnectée du réseau, puis à diffuser la transaction signée depuis un autre appareil connecté. Ledger Live offre les outils nécessaires pour ce workflow, mais peu d’utilisateurs comprennent comment l’implémenter correctement avec un ledger wallet.

Cette approche, souvent appelée mode offline ou air-gapped signing, transforme le risque en convertissant une machine connectée en simple outil de diffusion, sans accès aux clés privées sécurisées. Les clés restent exclusivement sur le Secure Element du Ledger, jamais exposées à l’environnement de signature. Pour un utilisateur paranoïaque ou responsable de patrimoines substantiels, comprendre ce processus dépasse le confort : c’est une nécessité de sécurité opérationnelle.

Interface Ledger Live montrant la configuration de transaction hors ligne et la séparation entre machine de signature et machine de diffusion

Pourquoi le mode offline transforme le modèle de risque d’un ledger wallet

Un ledger wallet connecté à internet demeure un appareil robuste, car les clés privées sécurisées sont isolées dans le Secure Element. Cependant, plusieurs surfaces de risque subsistent : le système d’exploitation peut contenir des failles, l’application Ledger Live peut être compromise, un réseau malveillant peut injecter des instructions de transaction falsifiées, ou des données de métadonnées peuvent être exfiltrées lors de la synchronisation de la blockchain. Chacune de ces menaces est rare avec Ledger, mais pas impossible.

Le mode offline élimine ou réduit drastiquement plusieurs de ces vecteurs en instituant une séparation physique. Une machine déconnectée du réseau ne peut pas être visée par des malwares provenant d’internet, des man-in-the-middle sur le Wi-Fi ou Ethernet, ou des serveurs compromis. Le seul vecteur d’attaque qui subsiste est l’introduction locale de malwares avant le déconnexion, une approche moins probable et plus coûteuse pour l’assaillant moyen.

Le workflow fonctionne ainsi : une première machine, totalement isolée, exécute Ledger Live et crée une transaction non signée. Cette transaction est ensuite transférée vers la machine de signature (connectée au Ledger), qui signe la transaction à l’aide du Secure Element. La transaction signée est alors retournée à la première machine ou transférée vers une troisième machine connectée à internet, qui la diffuse sur le réseau blockchain. Aucune clé privée ne quitte jamais le Ledger, et la machine connectée au réseau ne voit jamais les clés.

Pour un utilisateur maintenant un ledger wallet avec des montants élevés, cette séparation offre un gain de sécurité tangible. La probabilité d’une attaque coordonnée contre trois machines distinctes est inférieure à celle d’une attaque contre une seule machine connectée. Le compromis, bien sûr, est la complexité opérationnelle et le temps requis pour chaque transaction.

Configuration matérielle : trois machines ou deux machines avec deux profils réseau

La configuration minimale consiste en deux machines. La première demeure déconnectée du réseau en permanence ; la seconde reste connectée. La machine hors ligne crée et prépare les transactions ; la machine en ligne diffuse les transactions signées. Un utilisateur paranoïaque peut aller plus loin avec trois machines : une pour la préparation, une pour la signature Ledger, et une pour la diffusion réseau. Cette réduplication augmente la sécurité mais complique la logistique.

Pour la machine hors ligne, les points critiques sont : l’absence de Wi-Fi, la désactivation du Bluetooth, l’absence de disques externes modifiables connectés, et l’absence d’interfaces réseau matériel activées. Si la machine possède un port Ethernet, il doit rester physiquement inaccessible ou désactivé dans le BIOS. Le système d’exploitation peut être Linux, Windows ou macOS ; Linux est généralement préféré par les utilisateurs axés sur la sécurité, car l’installation minimale peut être plus facile à auditer. Une distribution dédiée comme Tails ou une installation Ubuntu Server légère suffit.

La machine de signature n’a besoin que de connectivité Ledger, soit via USB-C ou USB-A (Nano S), Bluetooth (Nano X), ou USB-C (Stax). Cette machine peut avoir un accès réseau, mais elle n’a pas besoin de maintenir une synchronisation complète de la blockchain. La machine de diffusion, enfin, exécute Ledger Live en mode connecté et peut être un ordinateur portable standard, un navigateur web, ou une interface ligne de commande vers un nœud local.

Un piège courant : les utilisateurs supposent que la machine hors ligne peut être “hors ligne la plupart du temps”. Ce n’est pas assez robuste. Une machine qui est parfois connectée peut avoir des services planifiés, des mises à jour en arrière-plan, ou des connexions réseau fantômes. Pour une véritable isolation, la machine doit être déconnectée depuis le moment où elle a été mise en place pour ce rôle.

Préparation des transactions non signées avec Ledger Live

Sur la machine hors ligne, Ledger Live fonctionne sans connexion au réseau blockchain. Cela signifie que l’application ne peut pas récupérer les soldes actuels, les frais de réseau, ou les données UTXO (pour Bitcoin). L’utilisateur doit préparer manuellement ou importer les données de transaction nécessaires. Ledger Live compatible avec les transactions non signées permet de créer une transaction en spécifiant manuellement les données d’entrée.

Pour Bitcoin, cela signifie identifier les UTXOs à dépenser, leurs positions précises dans la blockchain, et leurs valeurs. Pour Ethereum, cela signifie connaître le nonce actuel du compte, le prix du gas estimé, et la limite de gas appropriée. Pour d’autres chaînes, les paramètres spécifiques diffèrent. Un utilisateur peut obtenir ces données à partir d’un explorateur blockchain public, d’un nœud personnel en ligne, ou d’une API telle que Alchemy ou Infura.

Ledger Live sur la machine hors ligne affiche une interface de composition de transaction. L’utilisateur entre le destinataire, le montant, les frais (si applicables), et d’autres paramètres. L’application génère une représentation binaire ou hexadécimale de la transaction non signée. Cette représentation peut être sauvegardée sur un fichier texte, un code QR imprimé, une clé USB physique, ou tout autre support permettant le transfert vers la machine de signature.

Un détail crucial : la transaction non signée ne contient pas les signatures. Elle contient uniquement les données de la transaction elle-même. Un attaquant qui obtient une copie de la transaction non signée ne peut pas la diffuser sur le réseau, car elle sera rejetée sans les signatures du détenteur des clés. C’est pourquoi le transfert du fichier ou du code QR de la machine hors ligne vers la machine connectée est relativement sans risque.

Signature sur le Ledger : le cœur isolé

Une fois la transaction non signée transférée, la machine de signature reçoit ce fichier ou code QR. Ledger Live est ensuite exécuté sur cette machine avec le Ledger connecté. L’application importe la transaction non signée et affiche les détails : adresse de destination, montant, frais estimés, et chaîne de destination. L’utilisateur peut vérifier chaque paramètre sur l’écran du Ledger lui-même, ce qui constitue une protection contre les injections de malwares logiciels.

Le Secure Element du Ledger, une puce cryptographique isolée, signe la transaction en utilisant la clé privée qui n’a jamais quitté le matériel. Aucune clé privée n’est jamais affichée sur l’écran, jamais transmise au système d’exploitation, jamais exposée à la RAM de l’ordinateur. L’écran du Ledger affiche les détails critiques de la transaction, y compris l’adresse de destination et le montant, permettant à l’utilisateur de confirmer avant la signature finale.

Une fois la signature approuvée, le Ledger retourne la transaction signée à l’application Ledger Live. Cette transaction signée contient les signatures cryptographiques prouvant que le détenteur de la clé privée a approuvé cette transaction spécifique. Contrairement à la transaction non signée, la transaction signée peut maintenant être acceptée et traitée par le réseau blockchain. Elle peut être stockée sur un fichier, un code QR, ou directement transférée vers la machine de diffusion.

Broadcasting de la transaction signée et vérification en chaîne

La machine de diffusion, maintenant connectée à internet, reçoit la transaction signée. Un utilisateur peut utiliser plusieurs méthodes pour la diffuser : un explorateur blockchain (comme Etherscan pour Ethereum), le client de ligne de commande d’un nœud, une API publique, ou Ledger Live lui-même en mode connecté. La transaction est envoyée aux nœuds du réseau, qui la valident et la propagent.

La validation inclut vérifier que les signatures sont valides, que les entrées n’ont pas déjà été dépensées, que le solde du compte est suffisant, et que les autres règles de consensus sont respectées. Cette validation se produit entièrement sur le réseau blockchain, sans besoin d’accès aux clés privées. Si la transaction est valide, elle est ajoutée au mempool et incluse dans le bloc suivant.

Un détail souvent négligé : la machine de diffusion ne connaît pas la destination de la transaction ou l’identité du signataire, sauf si elle scrute les données publiques. De son point de vue, elle diffuse simplement une chaîne de caractères hexadécimale. Cela signifie qu’un attaquant ayant compromis la machine de diffusion ne peut pas modifier la transaction ; il peut seulement la rejeter ou refuser de la diffuser, ce qui est visible et détectable.

Pour vérifier la diffusion, l’utilisateur consulte un explorateur blockchain avec l’identifiant de transaction (hash). Une fois confirmée dans un bloc, la transaction est immuable. Ce processus demeure valide qu’il s’agisse de Bitcoin, d’Ethereum, de tokens ERC-20, ou d’autres actifs numériques. Le workflow de signature hors ligne demeure identique en termes de sécurité fondamentale.

Pièges opérationnels et erreurs courantes dans l’exécution hors ligne

L’erreur la plus fréquente est l’import accidentel de la clé privée ou du seed phrase sur la machine de diffusion. Si cela se produit, l’isolation s’effondre. Un utilisateur doit sauvegarder la graine de manière externe, jamais sur une machine connectée. Pour le mode offline, le seed phrase est stocké exclusivement sur le Ledger ou dans un coffre physique sécurisé, jamais digitalisé sur les machines du workflow.

Un second piège : utiliser une transaction non signée incorrectement. Si l’utilisateur transfère une transaction déjà signée vers la machine hors ligne, croyant qu’elle est non signée, puis la re-signe, la deuxième signature invalide la première. Cela ne crée pas une double dépense, mais gaspille le travail. Pour éviter cela, les noms de fichiers doivent être explicites : “tx_unsigned.hex” et “tx_signed.hex”.

Un troisième piège : oublier de noter ou de vérifier le nonce pour les transactions basées sur les comptes (Ethereum, Polygon, etc.). Si deux transactions ont le même nonce, le réseau n’accepte que la première. Sur une machine hors ligne sans accès au réseau, il est facile de créer un nonce incorrect. L’utilisateur doit obtenir le nonce actuel avant de commencer le processus et incrémenter manuellement après chaque transaction.

Enfin, un risque opérationnel : perdre la trace de quelle machine a quel rôle. Un utilisateur paranoïaque qui maintient plusieurs machines déconnectées peut confondre laquelle est déconnectée et laquelle est connectée. Des étiquettes physiques, des noms d’hôte explicites, et une documentation écrite aident à prévenir des erreurs coûteuses. Une transaction envoyée vers la mauvaise adresse, même depuis une machine isolée, ne peut pas être récupérée.

Ledger Live compatible et limitations en mode offline

Ledger Live compatible avec le mode offline exécute la majorité de ses fonctionnalités sans connexion réseau. L’affichage du solde, l’historique des transactions précédentes, et les conversions de prix dépendent cependant d’une synchronisation antérieure. En mode offline complet, l’application fonctionne sur les données mises en cache. Si l’appareil a été mis en place en mode offline depuis le début, aucune donnée en cache n’est disponible.

Certaines fonctionnalités Ledger Live ne sont pas disponibles hors ligne. Le staking direct, les récompenses de cashback, la connexion aux dApps via le navigateur Web3 intégré, et l’obtention de taux de change en temps réel requièrent une connexion internet. Pour un utilisateur utilisant le mode offline, ces fonctionnalités sont reléguées à la machine de diffusion, qui ne contrôle pas les clés. Cela est acceptable si l’utilisateur accepte que la machine connectée ne peut initier que des transactions, pas les signer.

Un avantage de Ledger : les firmware et les applications de coins sont généralement à jour sur le matériel, indépendamment de la connexion logicielle. Le Ledger ne dépend pas de Ledger Live pour fonctionner ; Live est simplement l’interface. Un utilisateur peut créer une transaction avec une version légèrement obsolète de Ledger Live et signer avec un Ledger à jour. La vérification des signatures reste valide tant que les normes cryptographiques demeurent cohérentes.

Un dernier point de compatibilité : les codes QR. Ledger Live peut exporter et importer des transactions via des codes QR, éliminant le besoin de clés USB ou d’autres supports physiques. Un appareil photo sur la machine de signature peut capturer un code QR sur l’écran de la machine hors ligne. Cela introduit un risque théorique si la caméra est compromise, mais en pratique, les codes QR non chiffrés contiennent uniquement des données de transaction, pas des clés. Vous pouvez télécharger et découvrir comment configurer un ledger wallet sur la machine de diffusion une fois que vous êtes prêt à diffuser.

Automatisation minimale et scripting sécurisé pour le mode offline

Pour les utilisateurs avancés, des scripts peuvent automatiser le workflow. Un script Python, par exemple, peut lire une transaction non signée depuis un fichier, afficher les détails, et demander une confirmation de l’utilisateur avant de la transférer. Cependant, le scripting sur une machine potentiellement compromise réduit la sécurité à moins que le script lui-même ne soit examiné attentivement et limité en privilèges.

Une approche plus sûre consiste à maintenir le workflow aussi manuel que possible, afin que chaque étape soit consciente et vérifiable. Un utilisateur peut utiliser des outils en ligne de commande tels que bitcoind, geth, ou d’autres clients blockchain pour construire et diffuser des transactions, mais cela dépasse le confort ergonomique du ledger wallet habituel. Le compromis entre sécurité et facilité d’utilisation est personnel : un utilisateur détenant des patrimoines importants peut accepter un processus de deux heures par transaction si cela élimine le risque réseau. Un autre peut préférer la connectivité pour la commodité.

Un détail important : les scripts ou outils deviennent une partie de la chaîne de sécurité. Un script malveillant peut altérer une transaction non signée avant sa signature, ou sauvegarder des données de transaction pour une exfiltration ultérieure. Un utilisateur déploient un script doit le source depuis un référentiel connu, le vérifier ligne par ligne, et l’exécuter dans un environnement restreint (par exemple, sans accès aux clés, avec peu de privilèges de fichier).

Questions fréquemment posées

Un ledger wallet en mode offline offre-t-il une sécurité totale contre le piratage ?

Non. Le mode offline réduit les vecteurs d’attaque réseau, mais les risques locaux, physiques, et opérationnels demeurent. Une machine compromise avant sa déconnexion, un malware persistant dans le firmware, ou une erreur humaine (comme l’import accidentel de la clé privée) peuvent tous compromettre la sécurité. Le mode offline augmente la sécurité pour la plupart des menaces courantes, pas pour toutes les menaces possibles.

Comment transférer une transaction non signée de la machine hors ligne vers le Ledger sans risquer les clés ?

Utilisez des codes QR, des clés USB physiques, ou des fichiers texte sur un support inerte. Les données non signées ne contiennent pas de clés privées ; un attaquant qui les intercepte ne peut pas signer ou diffuser la transaction. Le Ledger signe la transaction sur le matériel en utilisant la clé interne, puis retourne la transaction signée. Vérifiez l’intégrité de chaque transfert et maintenez des registres explicites.

Puis-je utiliser un ledger wallet standard connecté en mode offline, ou dois-je configurer un nouveau portefeuille ?

Vous pouvez utiliser le même ledger wallet (même seed, même clés). Ledger Live en mode offline accède aux clés sur le matériel sans connexion réseau. Les données sur les soldes, l’historique ou les prix proviennent du cache Ledger Live si disponible. Il n’est pas nécessaire de créer un nouveau portefeuille pour le mode offline ; seule la configuration de la machine change.


Comments

Leave a Reply

Your email address will not be published. Required fields are marked *