La poignee de main blockchain : echange de cles sans tiers de confiance
Avant que deux utilisateurs Z-Text puissent echanger des messages, ils doivent effectuer une poignee de main cryptographique. Cet article explique son fonctionnement et son importance pour la securite.
Avant que deux utilisateurs de Z-Text puissent echanger des messages, ils doivent effectuer une "poignee de main" — un protocole cryptographique qui etablit une cle de chiffrement partagee. Cet article explique son fonctionnement et pourquoi il est important pour la securite.
Pourquoi une poignee de main ?
Dans les messageries chiffrees traditionnelles, un serveur central sert d'intermediaire pour l'echange de cles. Lorsque vous envoyez un message a quelqu'un sur Signal, leur serveur facilite l'accord initial sur les cles. Cela fonctionne bien mais introduit une dependance de confiance — vous faites confiance au serveur pour delivrer les bonnes cles.
Z-Text n'a pas de serveurs. La poignee de main est entierement realisee a travers des transactions blockchain, la rendant sans tiers de confiance et verifiable. Aucun intermediaire ne peut falsifier ou observer l'echange de cles.
Le protocole
La poignee de main de Z-Text suit un protocole d'echange de cles Diffie-Hellman modifie, adapte pour la livraison via blockchain :
Etape 1 : Initiation
Alice souhaite envoyer un message a Bob. Elle connait la z-address de Bob. L'application d'Alice genere une paire de cles ephemeres et cree une transaction protegee vers la z-address de Bob. Le memo de la transaction contient la cle publique ephemere d'Alice et sa z-address.
Puisqu'il s'agit d'une transaction protegee, personne observant la blockchain ne peut voir qu'Alice a envoye quoi que ce soit a Bob, ni ce que contient le memo.
Etape 2 : Detection
Lorsque Bob synchronise son portefeuille, son application detecte la transaction entrante et lit le memo. Elle reconnait qu'il s'agit d'une demande de poignee de main grace a un marqueur de protocole specifique dans le format du memo.
L'application de Bob affiche la demande de poignee de main avec la z-address d'Alice, lui proposant d'accepter ou de refuser.
Etape 3 : Reponse
Si Bob accepte, son application genere sa propre paire de cles ephemeres et envoie une transaction de reponse a la z-address d'Alice. Le memo contient la cle publique ephemere de Bob.
Etape 4 : Derivation de cle
Alice et Bob possedent desormais les cles publiques ephemeres l'un de l'autre. Chacun calcule independamment le secret partage en utilisant l'echange de cles Elliptic Curve Diffie-Hellman (ECDH). Les proprietes mathematiques d'ECDH garantissent que les deux parties aboutissent au meme secret partage sans qu'il ne soit jamais transmis.
Ce secret partage est ensuite utilise comme base pour deriver les cles de chiffrement symetrique pour tous les futurs messages entre Alice et Bob.
Proprietes de securite
La poignee de main blockchain offre plusieurs proprietes de securite importantes :
- Confidentialite : L'echange de cles est dissimule dans des transactions protegees, invisible pour les observateurs
- Integrite : La preuve de travail de la blockchain garantit que les transactions ne peuvent pas etre falsifiees
- Authenticite : Seul le detenteur de la cle privee de la z-address peut creer la reponse de poignee de main
- Pas d'attaque de l'homme du milieu : Sans serveur central, il n'y a pas d'intermediaire pouvant substituer les cles
Comparaison avec le protocole Signal
Le protocole Signal utilise un serveur central pour stocker et delivrer les pre-cles. Bien que cela permette un echange de cles asynchrone (vous pouvez envoyer un message a quelqu'un qui est hors ligne), cela necessite de faire confiance aux serveurs de Signal pour delivrer les bonnes cles.
La poignee de main blockchain de Z-Text est egalement asynchrone (Bob n'a pas besoin d'etre en ligne lorsqu'Alice envoie la demande), mais le mecanisme de livraison est la blockchain decentralisee plutot qu'un serveur d'entreprise. Les etapes de la poignee de main sont detectees via le push mempool G-stream, se completant en quelques secondes par etape, et le modele de confiance est fondamentalement plus solide.
Considerations pratiques
La poignee de main se complete generalement en quelques secondes par etape via le push mempool G-stream. Chaque etape necessite de faibles frais de transaction en BTCZ. Une fois etablie, la cle partagee est stockee localement et n'a pas besoin d'etre renouvelee — tous les futurs messages entre les deux contacts utilisent la meme cle.
Si un contact est supprime puis ajoute a nouveau, une nouvelle poignee de main doit etre effectuee, generant un tout nouveau secret partage.
Articles connexes
Double chiffrement : comment Z-Text protege vos messages
La plupart des messageries chiffrees reposent sur une seule couche de chiffrement. Z-Text utilise deux couches de chiffrement independantes, chacune protegeant contre des vecteurs de menace differents.
Pourquoi la messagerie decentralisee est essentielle
Des milliards de messages transitent quotidiennement par des serveurs centralises. La messagerie decentralisee offre un modele fondamentalement different ou aucune entite unique ne controle l'infrastructure.