Ce thread propose une solution au problème de sécurité évoqué ici : Mettez-vous vos identifiants membre dans une instance hébergée de Césium ? - Communication - Forum Monnaie Libre
La présente proposition implique une modification du protocole DUP, c’est pourquoi je la poste ici.
L’idée est de préserver une simplicité d’usage pour les utilisateurs finaux tout en garantissant la sécurité : les utilisateurs finaux pourront toujours se connecter directement avec leur compte membre sur une instance Cesium hébergée, mais cela ne posera plus aucun problème de sécurité pour la monnaie.
Rappel important :
Ce n’est pas à la commune de vous prémunir d’un cambriolage chez vous, mais la commune va vous garantir le fonctionnement des réseaux d’eau, le nettoyage de la voirie, etc… De la même façon, nous cherchons ici à garantir collectivement le bon fonctionnement de notre monnaie et du réseau informatique qui la porte, et c’est tout !
→ L’utilisateur final se connectant a son compte membre sur une instance Cesium hébergée s’exposera donc toujours au mêmes risques pour lui-même (mais cela n’exposera plus la monnaie).
Changements dans la user story de création d’un compte membre
Dans la dernière étape de la phase de création du compte membre (juste avant la validation finale), ajout d’une case a cocher (décochée par défaut), avec le texte suivant : “Compte membre calculant. (Compte restreint, ne cliquez que si vous savez ce que vous faites !)”.
les mots “membre calculant” seraient un lien qui ouvre une popup (ou pointe sur une page web) qui aura pour titre “Qu’est que qu’un membre calculant ?” et qui expliquerai les restrictions d’usages que cela inclus (la restriction : impossible de se connecter a un compte membre calculant sur Cesium web).
L’objectif de cette user story est que le néophyte soit incité a ne pas cocher cette case.
Généralement un membre ne vas pas se mettre a calculer des blocks alors qu’il rentre a peine dans la toile (a l’exception des informaticiens), donc c’est pertinent.
Si le membre en question souhaite au bout d’un certain temps, devenir membre calculant, il devra révoquer son compte membre et en créer un nouveau et cochant la case “membre calculant”, cela créer une barrière a l’entrée qui permet de s’assurer que :
- Le membre est capable de révoquer un compte (il saura donc révoquer son compte membre si celui ci est compromis un jour).
- Le membre a pris le temps de se renseigner avant de faire ça (on n’a pas envie de perdre toutes ses certif, le fait que ça ai un coût fait qu’on ne vas le faire que si on estime que ça en vaut la peine). Ça va éviter les membres qui installent Duniter comme ça et laissent tourner s’en sent soucier et qui ne savent pas le configurer (des fois ça marche sans aucune config sous windows). Ce qui sécurisera davantage le réseau car ce type de membres calculants “inconscients” ne suivent pas les mises a jours de sécurité.
Enfin l’identité de membre calculant ainsi créer devra recevoir au moins sigPowQty
certifications provenant de membres eux-mêmes calculants pour devenir membre (sigPowQty
a déterminer entre 1 et 5 compris).
Changements dans le protocole DUBP
- Ajout d’un champ dans le document identité indiquant si l’identité est “calculante” ou pas (un booléen).
- Ajout d’un paramètre
sigPowQty
(ou autre nom) indiquant le nombre minimal de certifications provenant d’identité calculante qu’il faut avoir a tout moment (comprendre “a tout block”) → comportement identique a sigQty.
Et c’est tout. Il ne sera pas possible de modifier le caractère calculant ou non d’un compte. Ça réduit les changements de protocole a faire tout en fournissant plus de sécurité.
Pourquoi sigPowQty
?
Parce que sans ça, la monnaie est toujours exposée a un risque conséquent si de nombreuses clés privés sont dérobés suite a un piratage d’une instance Cesium hébergée. Certes ses clés privés correspondront exclusivement a des membres non-calculants, mais avec ces nombreuses clés les pirates pourront créer des faux comptes calculant et prendre le contrôle total de la blockchain s’ils dépassent les deux tiers des membres calculants.
Avec sigPowQty
, les faux comptes ainsi créer ne peuvent pas devenir calculants, or la proportion de membres calculants a vocation a être faible en cas de passage a l’échelle (moins de 1%), donc la quantité de faux compte créer sera la plupart du temps importante fasse au nombre de membres calculants mais négligeable face au nombres total de membres N.
Un exemple :
Supposons qu’on ai 100 membres calculant pour 10_000 membres. Il suffit de créer 70 faux comptes pour prendre le contrôle de la blockchain, par contre pour fausser le DU il faudrait créer beaucoup plus de faux comptes, l’impact de ses 70 faux comptes étant de moins de 1% sur N, le DU serait impacté de moins de 1 centime, donc c’est négligeable.
Tout ça pour dire que la prise de contrôle de la blockchain par majorité de faux compte calculant est une attaque infiniment plus dangereuse que de fausser le DU ou/et diminuer la confiance de la toile par des attaques sybil. Donc nous devons concentrer nos efforts en premier lieu sur cette 1ère attaque, d’où ma proposition.
NB: les informaticiens qui rejoignent le projet et qui sont bien sensibiliser aux problématiques de sécurité avant de devenir membre de la Ğ1 peuvent très bien créer une identité calculante dés la 1ère fois, il ne pourront juste jamais ce connecter sur leur compte membre via Cesium hébergé, m’enfin les informaticiens sont aussi ceux qui ont le plus de facilité a installer Cesium en local ou utiliser un client lourd comme Sakia ou Silkaj.
L’idée est de ne pas complexifier l’usage de la Ğ1 pour les simples utilisateurs, il y aura toujours des gens pour qui installer Cesium en local restera une barrière d’accès trop complexe, ce type de personne ne doivent de toute façon pas être en mesure de devenir membre calculant, j’estime que cela nécessite un minimum d’aisance sur un ordinateur. En revanche, ce types de personnes doivent avoir le droit d’utiliser la Ğ1, et il y en a plus qu’on ne pourrais le penser, j’ai encore eu le cas au dernier apéro de Montpellier mercredi, une dame qui ne savais pas installer un programme, ça lui a déjà demander des efforts importants pour réussir a utiliser Cesium sur le web pour créer son compte, elle n’aura jamais de Cesium local, en ça sert a rien de lui installer a sa place si elle n’est pas capable de le mettre a jours elle même.
Vos avis ?