Technologie

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.

Z-Text Team·Engineering
28 novembre 20257 min de lecture

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.

#cryptography#key-exchange#diffie-hellman#blockchain
PartagerTwitter

Articles connexes