Hello,
Je suis en plein apprentissage du protocole Duniter et je trouve que quelque chose manque. Il n’y a qu’une seule paire de clef publique/privée pour une identité.
Ca signifie que si je me fait voler ma clef privée, c’est totalement mort pour mon identité. Bon dit comme ça, c’est logique, mais ça rend l’authentification rapide impossible (du moins sans prendre des “gros” risques).
Si on me vole mon via scan QR code, je ne peut pas juste bloquer ce QR code.
Encore pire si un client contient une faille qui permet de récupérer la clef privée.
Même je réagit au vol très tôt, je ne peut que révoquer mon compte et vite transférer mon solde ailleurs. Il n’y a pas de changement de mot de passe possible comme sur la plupart des applications.
L’idéal pour éviter tout problème est de toujours ce connecter avec le login / pass mais ce n’est pas pratique (même avec un gestionnaire de mot de passe).
Un contournement actuel est d’utiliser un portefeuille pour limiter les dégâts. Mais encore une fois ce n’est pas pratique (puisqu’il faut faire des transferts préalable, et donc une connexion “lente” par login / pass).
Toute les applications modernes ont un système pour se connecter plus rapidement sans avoir à rentrer login / pass à chaque fois. Empreinte digitale / code pin / …
Ses systèmes réduisent la sécurité mais c’est “ok” puisque la sécurité est réduite uniquement sur le périphérique de l’utilisateur. Dans l’idéal, il est même possible de couper cet accès moins sécurisé à distance si on perd le périphérique qui l’utilisait.
Coté Duniter, si on pouvait avoir plusieurs clef publique par identité, cela permettrais d’utiliser une paire de clef public/privée par application (et périphérique du coup) et pouvoir couper un accès rapide d’un périphérique à distance en cas de problème (faille, vol, …). A partir de la, on peut implémenter des raccourcis pour payer plus vite, sans risquer de compromettre la clef privée principale. (Comme l’oauth en somme…). Les applications n’ont alors pas besoin de connaître la clef privée “primaire”.
En résumé : une clef publique “primaire” pour tout les opérations (révocation, retirer/ajouter d’autres clefs “secondaire”, certifications…), et N clef “secondaires” pour effectuer des seulement des transactions. Ne pas permettre une autre méthode que login / pass lors de la connexion via un client avec la clef “primaire”.
Peut-être que ce que je propose n’est tout simplement pas possible, je ne suis pas encore capable de le déterminer tout seul
Désolé par avance si j’ai raté un post du forum qui parle de ça (j’ai cherché! ); j’imagine bien que je suis pas le premier à être gêné par ce système.