Sécurité des noeuds Zcash, en savoir plus sur la correction du bug avec la version 2.0.7-3

maps-spot

Le 24 septembre dernier, l’équipe de développement de Zcash annonçait la publication d’un correctif logiciel pour un bug de sécurité reporté par Florian Tramèr, Dan Boneh, and Kenneth G. Paterson 11 jours plus tôt.

En quoi consistait la faille de sécurité ?

Selon l’état de nos connaissances, l’anomalie permettait de découvrir, pour toutes les transactions à destination d’adresses «shielded», l’adresse IP du destinataire. Par exemple, si Claire communiquait à Thomas son adresse Z pour être payée, Thomas était en mesure de découvrir l’adresse IP de Claire et ainsi de la géolocalisée.

Cette anomalie avait un impact massif sur le protocole Zcash qui fonde son développement sur l’anonymisation des transactions en circulation sur sa blockchain.

Dans quels cas l’anomalie pouvait-elle être exploitée ?

Tous ceux qui ont partagé publiquement leur(s) adresse(s) Z (zaddrs) ou communiqué celle-ci à des tiers sont concernés. Cela peut-être le cas si :

  • vous avez publié votre zaddrs sur votre site web, par email ou sur les réseaux sociaux,
  • vous l’avez communiqué à un pool pour recevoir vos primes de minage (sous réserve que l’adresse IP de votre portefeuille était différente de celle de vos mineurs, sinon le pool connaît toujours votre IP),
  • vous avez communiqué votre zaddrs dans le mémo d’une transaction «shielded».

Néanmoins, vous n’êtes pas concerné par l’anomalie si vous n’avez jamais utilisé vos adresses Z pour l’anonymat ou encore que vous avez toujours exécuté votre noeud Zcash sur le réseau Tor.

Que pouvez-vous faire pour palier au problème ?

Tout d’abord, il est primordial d’effectuer la mise à jour vers la version 2.0.7-3 de zcashd.

Ensuite, si vous utilisez un portefeuille tel que zecwallet (voir notre post sur les fonctionnalités de ce portefeuille ici), il est possible d’utiliser le réseau Tor pour améliorer l’anonymisation de vos transactions.

Enfin, vous pouvez détruire vos anciennes adresses Z après avoir généré un nouveau fichier wallet.dat et envoyé vos fonds dessus. Pour procéder:

  1. fermez votre portefeuille zcash,
  2. mettez à jour vers la version 2.0.7-3,
  3. renomnez votre fichier wallet.dat actuel en wallet.dat.old,
  4. relancez votre protefeuille zcash. Celui-ci va vous créer un nouveau fichier wallet.dat vierge,
  5. une fois le portefeuille ouvert, copiez votre nouvelle adresse Z et refermez le,
  6. rebaptisez le fichier wallet.dat nouvellement créé en wallet.dat.new, puis renomnez le fichier wallet.dat.old en wallet.dat,
  7. relancez votre protefeuille zcash, attendez la fin de la synchronisation puis envoyez vos fonds vers votre nouvelle adresse Z,
  8. attendez que la transaction soit confirmée sur la blockchain,
  9. refermez votre portefeuille, renomnez à nouveau votre fichier wallet.dat en wallet.dat.old et restaurez le nom wallet.dat.new en wallet.dat
  10. relancez votre protefeuille zcash, attendez la fin de la synchronisation et constatez l’arrivée de vos fonds dans votre nouvelle adresse,
  11. vous pouvez désormais détruire wallet.dat.old