Le Shamir's Secret Sharing et le modèle hybride de Drop
La façon dont un portefeuille protège votre clé ressemble à un choix technique. C’est aussi un choix qui concerne des personnes : qui peut déplacer votre argent, qui peut le perdre et à qui vous devez faire confiance. Les décisions techniques sont des décisions morales.
La page Modèle de Sécurité décrit comment Drop protège votre clé. Cette page traite d’une décision qui la sous-tend : pourquoi nous n’utilisons pas le Shamir's Secret Sharing, la méthode la plus courante pour diviser une clé, et ce que ce choix coûte.
Le Shamir's Secret Sharing en bref
Le Shamir's Secret Sharing (SSS) divise une clé privée en morceaux appelés parts et vous laisse choisir combien il en faut pour la reconstituer, par exemple 2 parmi 3. Quiconque en détient moins n’apprend rien sur la clé, et une part peut être perdue sans que la clé le soit. La méthode date de 1979 et est utilisée dans tout le secteur.
Un portefeuille SSS typique conserve une part sur votre appareil, une chez le fournisseur et une part de récupération que vous gardez vous-même.
Drop divise plutôt la clé en deux parts, et les deux sont toujours nécessaires. Contrairement au SSS, il n’existe aucune part supplémentaire capable de reconstruire la clé privée.
Trois décisions
Qui garde la part de secours ?
Avec le SSS, vous. Pouvoir perdre une part est son principal attrait, et cela suppose une part de secours conservée quelque part : un fichier, un stockage cloud, un code imprimé. C’est une chose de plus que vous pouvez perdre ou laisser fuiter.
Avec Drop, il n’y a pas de part de secours et rien de plus à conserver.
Le coût : perdre une part n’est pas envisageable, les sauvegardes nous reviennent donc, ainsi qu’à votre second appareil.
À qui demande-t-on quand quelque chose est volé ?
Avec le SSS, peut-être à personne. Si la part de récupération se retrouve à côté de la part de l’appareil, sur le même téléphone, le même compte cloud ou la même sauvegarde d’ordinateur, quiconque accède à cet unique endroit détient la clé entière. Il n’y a ni étape d’approbation, ni limite, ni alerte, puisque deux parts suffisent.
Avec Drop, un fichier copié ou une sauvegarde volée ne suffisent jamais. Avec un passkey pris en charge, la part de votre côté est inutilisable sans ce passkey, et notre service ne libère l’autre part que pour une requête approuvée par votre passkey.
Qu’est-ce qui peut mal tourner dans l’arithmétique ?
Avec le SSS, plus qu’on ne le penserait. Il repose sur une arithmétique qui laisse place à des erreurs que les tests ordinaires ne détectent pas. Un audit indépendant de la bibliothèque open source de Privy, conçue avec soin et largement utilisée, a montré que dans certains cas moins de parts que prévu pouvaient permettre de retrouver une partie d’un secret. Privy l’a corrigé et l’a expliqué ouvertement. Le SSS ne sait pas non plus détecter qu’une part est fausse : en combiner une mauvaise produit une autre clé, sans avertissement.
Avec Drop, les deux parts sont combinées de la manière la plus simple qui soit. Cela conserve la propriété pour laquelle le SSS est apprécié, à savoir qu’une part seule ne révèle rien, avec bien moins de risques d’erreur. Drop vérifie aussi que la clé reconstituée correspond à l’adresse de votre portefeuille avant de l’utiliser.
Le coût : la flexibilité. « 2 parmi 3 » est précisément ce que l’arithmétique supplémentaire permet d’obtenir.
Comment nous compensons ce coût
- Trois copies de sauvegarde de notre côté. Nous conservons pour l’instant trois copies de sauvegarde des parts chiffrées côté serveur, et pourrions passer à davantage de réplicas : une dans une base de données de sauvegarde, une dans une base de données d’un compte AWS séparé et isolé, et une sur du matériel hors ligne
- Un second appareil de votre côté. Associez-en un avec Sauvegarder le Passkey, afin que la perte d’un appareil ne vous bloque pas
- Une porte de sortie. Vous pouvez exporter votre clé privée à tout moment. Dès lors, la protection de cette copie ne dépend plus que de vous