Securite

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.

Z-Text Team·Engineering
15 décembre 20256 min de lecture

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. Cet article explique comment elles fonctionnent ensemble pour offrir une defense en profondeur a vos messages.

Couche 1 : Protection blockchain

La premiere couche de chiffrement provient de la blockchain BitcoinZ elle-meme. Les transactions protegees utilisent les zk-SNARKs (Zero-Knowledge Succinct Non-Interactive Arguments of Knowledge) pour chiffrer toutes les donnees de transaction.

Lorsqu'un message Z-Text est envoye sous forme de transaction protegee, les elements suivants sont dissimules a tous les observateurs du reseau :

  • L'adresse de l'expediteur
  • L'adresse du destinataire
  • Le montant de la transaction
  • Le champ memo (ou le message est stocke)

Seul le detenteur de la cle de visualisation de la z-address du destinataire peut dechiffrer le champ memo et lire le contenu du message. Cela protege contre la surveillance passive du reseau et l'analyse blockchain.

Couche 2 : Chiffrement par cle de contact

La seconde couche ajoute un chiffrement de bout en bout par-dessus la protection blockchain. Lors du processus de poignee de main, Z-Text etablit une cle secrete partagee entre deux contacts en utilisant l'echange de cles Elliptic Curve Diffie-Hellman (ECDH).

Avant qu'un message ne soit place dans le memo de la transaction, il est chiffre avec cette cle partagee. Cela signifie que meme si quelqu'un obtient la cle de visualisation de la z-address (par coercition, vol ou une vulnerabilite future), il ne peut toujours pas lire les messages sans la cle de contact derivee separement.

L'echange de cles par poignee de main

La cle de contact est etablie par un protocole de poignee de main sans tiers de confiance :

  1. Alice envoie une demande de poignee de main a la z-address de Bob, contenant sa cle publique ephemere (chiffree dans le memo d'une transaction protegee)
  2. Bob accepte en renvoyant sa cle publique ephemere a Alice (egalement via une transaction protegee)
  3. Alice et Bob derivent independamment le meme secret partage en utilisant ECDH
  4. Ce secret partage devient la cle de chiffrement symetrique pour tous les futurs messages

L'elegance de cette approche reside dans le fait que meme l'echange de cles est protege par la couche 1. Un observateur ne peut ni voir les cles publiques echangees, ni meme detecter qu'une poignee de main est en cours.

Pourquoi deux couches sont importantes

Chaque couche protege contre des scenarios d'attaque differents :

  • La couche 1 seule protege contre les observateurs du reseau et les analystes blockchain, mais est vulnerable a la compromission de la cle de visualisation
  • La couche 2 seule protege contre la compromission de la cle de visualisation, mais serait vulnerable si les messages etaient envoyes en clair sur la chaine
  • Les deux couches ensemble exigent qu'un attaquant compromette simultanement deux systemes cryptographiques independants

C'est le principe de la defense en profondeur applique au chiffrement des messages. Aucun point de defaillance unique ne peut exposer vos messages.

Primitives cryptographiques

La pile de chiffrement de Z-Text utilise des primitives cryptographiques bien etablies :

  • zk-SNARKs (Groth16) pour les transactions protegees de la couche 1
  • ECDH sur Curve25519 pour l'echange de cles
  • ChaCha20-Poly1305 pour le chiffrement symetrique de la couche 2
  • BLAKE2b pour la derivation de cles

Toutes les operations cryptographiques sont effectuees dans le noyau Rust de l'application, tirant parti d'implementations en temps constant pour prevenir les attaques par canal auxiliaire de synchronisation.

Implications pratiques

Pour l'utilisateur, le chiffrement a deux couches est completement transparent. L'application gere automatiquement l'ensemble de l'echange de cles et du chiffrement. Les messages apparaissent dans une interface de discussion familiere sans aucune indication de la cryptographie sophistiquee qui se deroule en arriere-plan.

Le resultat est un niveau de securite des messages qui depasse ce que toute messagerie centralisee peut offrir — non pas parce que la cryptographie est plus complexe, mais parce que le modele de confiance est fondamentalement different. Il n'y a pas de serveur a assigner en justice, pas d'entreprise a contraindre, et pas de cle unique qui deverrouille tout.

#encryption#zk-snarks#security#privacy
PartagerTwitter

Articles connexes