multi signature : Pourquoi est-il mauvais de diviser une graine de portefeuille de manière redondante ?
J’ai beaucoup lu sur la sécurité des portefeuilles et cela semble être universellement considéré comme une mauvaise idée (voir par exemple cette vidéo ou cette réponse), mais j’ai du mal à comprendre pourquoi ce n’est pas un bon choix dans certaines circonstances.
Disons que j’ai trois emplacements modérément sécurisés dans lesquels je peux stocker des informations – ma propre maison et les maisons d’une famille proche, peut-être. Je veux organiser les choses pour que l’accès aux informations à deux de ces endroits me permette d’accéder à mon bitcoin, au cas où un endroit subirait une catastrophe naturelle ou un vol, mais je ne veux pas que quiconque puisse accéder à mes pièces simplement en ayant l’accès à l’un de ces emplacements.
Je crée un portefeuille avec une graine de 24 mots. Je n’utilise pas l’algorithme de partage secret de Shamir, car je vois que cela est largement déconseillé (voir par exemple cet article) et constitue une source potentielle de risque de cryptographie que je ne comprends pas entièrement. Au lieu de cela, j’utilise un schéma naïf que je peux exécuter entièrement à la main où pour chaque groupe de trois mots dans la graine, je les sépare comme ceci :
Emplacement A
Emplacement B
Emplacement C
mot 1
mot 1
mot 2
mot 2
mot 3
mot 3
Ainsi chacun des trois emplacements a 2/3 des mots, soit 16 mots. Il est facile de confirmer (par expérience, si nécessaire) que je peux reconstruire la graine complète à partir de deux des trois emplacements.
Si un attaquant accède aux mots à un seul endroit, il lui suffit de deviner huit mots pour accéder aux fonds. C’est superficiellement 8 * 11 = 88 bits d’entropie, mais comme la graine contient des bits de somme de contrôle, je vais réduire cela à 80 bits en pratique.
nous allons entrer par effraction pour voler les mots d’un emplacement mais nous avons également trouvé ces mots de départ bitcoin ! « ), est-il ridicule de considérer est-ce acceptable ?
L’alternative évidente semble être un schéma multisig 2 sur 3. Si chacun de ces portefeuilles utilise une graine de 12 mots, un attaquant ayant accès à un seul emplacement doit deviner 12 mots ou 128 bits d’entropie, ce qui est évidemment plus fort. D’autre part, avec 2 sur 3 multisig :
- Un attaquant ayant accès à un seul emplacement obtiendra une copie des clés publiques principales que je dois stocker à chaque emplacement et pourra donc voir le solde du portefeuille et les transactions, ce qui peut inciter à une attaque ciblée ou compromettre ma vie privée d’une autre manière.
- La nécessité de stocker les clés publiques principales dans chaque emplacement ajoute un niveau de complexité et de risque à la sauvegarde. Je suis probablement plus susceptible de perdre mon bitcoin par erreur que par les actions d’un attaquant, quel que soit le schéma que je choisis. Si le papier à un endroit quelconque subit des dommages mineurs, je serai peut-être encore capable de distinguer un mot de départ – c’est de l’anglais, après tout, et je sais qu’il vient d’une certaine liste de mots – alors que la chaîne de caractères charabia qui est le la clé publique principale n’a pas cette redondance supplémentaire.
J’ai l’impression que ce programme de division des semences a son propre ensemble de compromis, mais il n’est pas évident pour moi qu’il soit carrément mauvais. Qu’est-ce que je rate?