Aller au contenu principal
Cryptographie

Dérivation normale

La dérivation normale (non-hardened) permet de générer des clés filles publiquement à partir d'une xpub. Pratique pour les watch-only et marchands. Mais dangereuse si combinée avec la fuite d'une clé fille privée. À l'usage exclusif des branches « adresse » sous un compte hardened.

Définition

La dérivation normale (non-hardened) est l'une des deux modes de dérivation définis par BIP-32. Elle permet de générer une clé fille à partir d'une clé parente en utilisant un index inférieur à 2^31 (par exemple m/0/3, sans apostrophe). Particularité importante : à partir de la clé publique parente seule (xpub), on peut dériver toutes les clés publiques filles, sans connaître la clé privée parente. C'est ce qui rend possible les wallets watch-only.

L'avantage : watch-only et marchands

Cette propriété est précieuse pour plusieurs cas d'usage :

  • Marchands : un site e-commerce peut générer une nouvelle adresse de réception pour chaque client à partir d'une xpub stockée en clair sur le serveur, sans risque que la compromission du serveur n'entraîne le vol des fonds.
  • Wallets watch-only : suivre le solde et les transactions d'un cold wallet sans manipuler les clés privées.
  • Comptables : vérifier que les fonds entrent bien sur les bonnes adresses sans pouvoir les déplacer.

Le piège majeur : combinaison xpub + clé fille privée

Voici la vulnérabilité de la dérivation normale. Si un attaquant obtient :

  1. La clé publique étendue parente (xpub).
  2. Une seule clé privée fille (n'importe laquelle).

Alors il peut, par soustraction modulaire dans la courbe elliptique, retrouver la clé privée parente, puis dériver toutes les autres clés privées filles. La compromission d'une seule clé fille emporte donc tout le wallet. Ce scénario peut se produire si vous exportez la clé privée d'une adresse pour signer un message, et qu'elle fuit, alors que la xpub est partagée publiquement.

Hardened vs normal

| | Dérivation normale | Dérivation hardened | |---|---|---| | Notation | m/0/3 | m/0'/3' | | Index | < 2^31 | ≥ 2^31 | | xpub permet de dériver des clés publiques filles ? | Oui | Non | | Compromission d'une clé fille privée | Compromet le parent | N'affecte pas le parent | | Utilisation recommandée | Branches d'adresses sous un compte | Comptes et niveaux supérieurs |

La règle BIP-44

BIP-44 et ses successeurs (BIP-49, 84, 86) appliquent cette logique : tout ce qui précède le niveau « account » est hardened, et les niveaux « change » et « address_index » sont en dérivation normale. Cela permet d'isoler chaque compte tout en bénéficiant des avantages watch-only au niveau des adresses.

À retenir

La dérivation normale n'est pas dangereuse en soi : elle est dangereuse mal utilisée. Tant que vous restez dans les chemins standardisés (BIP-44/49/84/86), la séparation entre niveaux hardened (comptes) et non-hardened (adresses) protège vos fonds. Voir aussi dérivation endurcie.

Termes lies

← Retour au glossaire complet

Glossaire inspire du dictionnaire de Loic Morel sur Pandul.fr.