Une proposition pour fabriquer une "Toile de confiance" SSH en mode Web3

« keygen » peut fabriquer la clef duniter et ipfs à partir du keygen ssh (avec clef à courbe elliptique: ECC) et les convertir en clef duniter (secret.dunikey) et ipfs (IPNS)

ssh-keygen -t ed25519 -C "userA"
keygen -i ~/.ssh/id_ed25519 -t duniter -o ~/.zen/Asecret.dunikey
keygen -i ~/.ssh/id_ed25519 -t ipfs -o ~/.zen/Asecret.ipns

On va utiliser « natools » pour faire voyager les données en sécurité dans IPFS :wink:

natools.py encrypt -p $UserBPubKey -i ~/.zen/file.clear -o ~/.zen/file.toB.enc

« jaklis » va servir distribuer la toile de confiance.
On envoi entre 1 et 100 G1 aux UserXPubKey des clefs SSH avec lesquelles ont veut signifier un niveau de confiance.

UserB devra faire de même avec le même montant (ou pas, on verra plus tard ce cas…)

MACHINE A
jaklis.py -k ~/.zen/secretA.dunikey pay -a 100 -p ${UserBPubKey} -c "ASTRO#SSH" -m 

MACHINE B
jaklis.py -k ~/.zen/secretB.dunikey pay -a 100 -p ${UserAPubKey} -c "ASTRO#SSH" -m 

Maintenant.
Il reste à maintenir à jour et appliquer la ToileDeConfiance ASTRO#SSH

Pour cela, jaklis va extraire l’historique des transactions reçues qui portent le tag ASTRO#SSH

jaklis.py history -p UserAPubKey

+---------------------------------------------------------------------------------------------------------------------------------------
|        Date        |    De / À    |   Ḡ1    |  DU/ḡ1  | Commentaire                   |
|---------------------------------------------------------------------------------------------------------------------------------------
| 04/04/2023 à 20:01 | HV7o…jG61:Bu6 | 100.00    |  ~~~   | ASTRO#SSH        
|---------------------------------------------------------------------------------------------------------------------------------------
| 04/04/2023 à 20:01 | 54yA…UvJm:3px | 70.00    | ~~~   | ASTRO#SSH

Extraire et vérifier qu’au moins une TX entrante et sortante existent (leur somme fait 0)… (« jq »)

Puis pour établir le droit de se connecter en SSH par exemple, UserA et UserB peuvent inscrire leur clef publique SSH dans ~/.ssh/authorized_keys et ~/.ssh/known_hosts.

Pour agrémenter cette phase on peut utiliser IPFS (et natools)

# Récup les paquets pour A depuis les machines SSH comptabilisé à 0
ipfs cat /ipns/IPNSUserB/file.toA.enc
ipfs cat /ipns/IPNSUserC/file.toA.enc

Y’a encore quelqu’un qui lit ?

Voila le principe pour utiliser la G1 et établir une nouvelle « toile de confiance », et faire passer des fichiers ou des messages entre les clefs. On étendre ce principe à d’autres « toiles de confiance » en définissant une nomenclature pour les ASTRO#TAG…


Cette façon permet de partager des données de façon simple et sécurisé.
Le Web3 regorge de surprise… La distribution de clefs publiques (dérivées) permet de relier vos applications…

Ca vous intéresse?