Privacy 3.0: Outils de chiffrement pour le web décentralisé

De nombreuses organisations s’appuient sur la cryptographie pour protéger notre vie privée et, depuis longtemps, nous faisons confiance à ces organisations pour crypter nos données personnelles de manière rigoureuse et responsable. Mais quand ce qui ne devrait jamais arriver arrive, HealthNet, Equifax, Cambridge Analytica, nous sommes obligés de confronter notre dépendance à ces tiers.

En tant que réseaux décentralisés, les Blockchains offrent un moyen de contourner les institutions centralisées et de supprimer le besoin de faire confiance à une seule partie. Cela signifie une plus grande transparence, puisque le réseau voit et valide chaque transaction. Cependant, cette transparence retrouvée rend également les activités des utilisateurs beaucoup plus vulnérables. Sans environnements appropriés préservant la confidentialité, les utilisateurs de l’infrastructure décentralisée d’une Blockchain peuvent souffrir de la transparence même qu’elle procure.

Modèle de confidentialité Bitcoin: le pseudonyme comme leurre
Le Bitcoin est l’application la plus populaire de la Blockchain, et beaucoup de ses descendants partagent son modèle de confidentialité. Le réseau ne stocke pas d’adresses IP ni d’informations personnelles. Au lieu de cela, il s’appuie sur des adresses pseudonymes cryptographiques pour protéger les identités de ses utilisateurs. Un utilisateur – appelons-le Dorian – génère une nouvelle adresse chaque fois qu’il encaisse un paiement. Dorian donne au payeur ce nouveau numéro de compte sans historique. Le payeur ne peut pas deviner beaucoup d’infos concernant Dorian.

La principale préoccupation vient quand Dorian dépense son argent. Une transaction en Bitcoin a souvent plusieurs entrées et sorties. Nous pouvons faire les hypothèses suivantes (pas toujours vraies, comme nous le verrons plus loin):

Quand une transaction a de nombreuses entrées, le propriétaire de celles-ci est la même personne.
Lorsqu’une transaction a deux sorties, l’une ira au bénéficiaire, et l’autre sera l’argent de changement (sortie de transaction non dépensée).
Un mauvais acteur peut explorer le graphe des transactions et regrouper les adresses susceptibles d’appartenir à la même personne. Tout ce qu’il faut pour exposer les titulaires de compte est d’associer un de ces pseudonymes à une identité. Alors c’est comme dérouler une pelote de ficelles.

Concrètement, lorsque vous divulguez votre identité avec un paiement, le bénéficiaire peut deviner votre relevé bancaire. Et ils peuvent suivre vos futures transactions. Plus inquiétant encore, le bénéficiaire n’est peut-être pas celui qui vous espionne. Une ICO peut être assignée, un échange peut être piraté, ou un site d’achat peut avoir des cookies curieux.

Les machines et les algorithmes d’analyse sont bien meilleurs pour l’exploration de données que les humains. Ils peuvent récupérer des données sur les réseaux sociaux, combiner plusieurs sources de données et construire un modèle probabiliste associant des adresses et des identités. En pratique, le modèle de confidentialité que notre écosystème a hérité du Bitcoin est très faible.

Dorian se trouve être passionné par les Blockchains. Il écrit un article de Medium qui se termine par une section “please tip” et un “please follow me on Twitter”. Vous l’avez deviné: il y a une adresse BTC, la même qu’il a incluse dans sa signature sur son forum favori, que vous comprendrez ne ferait que compromettre sa vie privée. Vous lui donnez un pourboire (parce que vous aimez son travail) et lui envoyez un message privé sur Twitter pour le remercier de ses efforts. Il veut vous retourner la faveur et dit au monde combien vous êtes généreux. Il tweete, “Merci @xxxxxxxxxxxxxxxxx pour votre conseil.” Merci à Dorian, maintenant vous êtes vulnérable aussi. Un algorithme simple recherche les transactions entrantes dans l’adresse de pointe de Dorian. Il les filtre à travers une période de temps – disons, entre son article et son tweet – et signale les expéditeurs de votre identité. Aujourd’hui, des outils sophistiqués qui utilisent des techniques d’apprentissage automatique et de regroupement peuvent être conçus pour enlever l’anonymat à la plupart des chaînes de blocs.

Le protocole Gossip: Comprendre les schémas de réseau à travers les nœuds de honeypot
Une autre préoccupation concerne l’analyse des métadonnées de nos communications personnelles (la preuve la plus infâme dans les révélations d’Edward Snowden sur le programme de surveillance de la NSA, PRISM). Dans une étude sur l’anonymat du réseau du Bitcoin, les chercheurs ont collecté des données en créant un faux honeypot (pot de miel). A l’époque, le nœud connecté avait plus de pairs que blockchain.info.

L’étude a révélé plusieurs modèles. Parfois, un ordinateur envoyait une seule transaction – ce qui impliquait probablement une association entre une adresse IP et une adresse BTC. Un autre modèle était lié aux mises à niveau logicielles. Ils semblaient déclencher une vague de transactions à partir d’une seule adresse IP. L’heuristique a aidé à mapper plus de 1000 adresses IP à BTC, ce qui, à l’époque, représentait environ 2% du réseau. Cette recherche a été menée il y a 5 ans – une éternité dans l’espace des cryptos. Plus les transactions de la Blockchain d’entropie sont nombreuses, plus il est facile de les lier aux identités.

Maintenir des «portefeuilles» isolés avec divers pseudonymes est une tâche laborieuse pour nous, humains. Nous favorisons naturellement l’utilisation d’une seule adresse pour recevoir les paiements. L’Ethereum suit actuellement ce modèle de compte. Il nous encourage à réutiliser la même adresse pour toutes nos transactions, ce qui signifie que ses propriétés de confidentialité par défaut sont pires que celle du Bitcoin.

Le besoin de confidentialité sur les Blockchains est légitime et vital pour chaque dApp(applications décentralisées sur Ethereum), et pas seulement pour les transactions bancaires et financières. Un système de vote devra être caché si vous avez voté, quand vous avez voté, et concernant pour qui vous avez voté. Une configuration de la chaîne d’approvisionnement devrait dissimuler les relations d’affaires entre les participants. Une transaction symbolique ERC-20 devrait cacher la valeur et les participants, tout en garantissant une conservation de masse.

Systèmes de préservation de la vie privée
Les normes de confidentialité dépendent de l’industrie et des compromis que nous sommes prêts à faire. Pour les transferts d’actifs – crypto-monnaies, jetons ERC-20 – une bonne confidentialité signifie préserver la confidentialité du graphique des transactions. Les transactions doivent être insubmersibles et impossibles à retracer, et les participants doivent rester anonymes. Les définitions suivantes du livre blanc CryptoNote aident à clarifier les normes qu’un système de protection de la vie privée doit respecter:

  • Désolidarisation: pour deux transactions sortantes, il est impossible de prouver qu’elles ont été envoyées à la même personne.
  • Non traçabilité: pour chaque transaction entrante, tous les expéditeurs possibles sont équiprobables.

Portons cela à la métaphore du grand livre. On verrait apparaître des lignes (débit, crédit, solde), sans savoir qui est impliqué. Une façon d’y arriver serait d’utiliser un service de mixage (plus de détails plus tard). Cependant, les informations provenant de ces “lignes” peuvent être liées à une source de données non-blockchain, et le bouclier de confidentialité peut ne pas tenir. Nous avons besoin de plus. Nous devons cacher les montants. Cette «ligne apparaissant» ne devrait divulguer ni les participants, ni les montants, mais elle devrait contenir des données qui garantissent un état cohérent au livre blanc.

Le système devrait faire en sorte que nous ne créons pas d’actifs à l’improviste ni ne doubleons les dépenses. Un schéma de cryptage anonyme qui fait exactement cela est celui du Zerocash. Du point de vue de la Blockchain, cela signifie que nous ne stockons plus à l’état mondial. Nous stockons des preuves que l’état du monde est cohérent et que les transitions d’état sont valides. Il devient de la responsabilité de l’utilisateur de maintenir son propre état mondial.

Il est important de noter qu’une grosse part de travail consiste à dissimuler des montants de transaction: services de mélange, transactions confidentielles, preuves de connaissances nulles. Malheureusement, ces constructions ne généralisent pas bien le calcul arbitraire.

Couche de calcul de l’Ethereum anonyme
Le ledger n’est qu’une application des Blockchains. Donc, si une Blockchain n’est pas un ledger, qu’est-ce que c’est?

Des projets comme l’Ethereum rendent ce protocole programmable. L’Ethereum ajoute une couche de calcul via des contrats intelligents et la machine virtuelle de l’Ethereum. Un contrat intelligent peut implémenter un registre, un système de vote, un jeu, et plus encore – les possibilités sont illimitées et cela fait partie de l’enthousiasme autour de la Blockchain.

La Blockchain est un protocole de réplication de machine d’état, produisant un journal ordonné linéairement à travers de nombreux pairs.

Les choses deviennent plus compliquées, cependant, en essayant d’aborder la confidentialité pour cette couche de calcul. Nous avons deux façons de voir cela: soit calculer en plein jour (et s’assurer que l’exécuteur d’un calcul ne peut pas comprendre ce qu’il calcule), soit calculer hors chaîne et prouver que nous l’avons bien fait.

Ces problèmes ont été étudiés au cours des 30 dernières années et impliquent une variété de sujets:

  • Calcul multipartite sécurisé (SMPC)
  • Environnement d’exécution approuvé (TEE)
  • Vérification de calcul
  • Cryptage entièrement homomorphique (FHE)
  • Indistinctionnabilité Obfuscation ( obscurrissante )
  • Zéro preuves de connaissances

L’exécution de contrats intelligents obscurcissants semble idéale mais peut ne pas être pratique. Par exemple, calculer un simple zk-SNARK (preuve de connaissance zéro) peut prendre 1min +. La vérification de la preuve sur le réseau principal de  l’Ethereum peut coûter 1M + de gaz. Au taux d’aujourd’hui, c’est 3 $ de frais de transaction.

Une clé publique FHE offrant des propriétés de sécurité similaires à 2048bits poids de la clé RSA environ 2Go. Le cyphertext souffre de cela et sera un fardeau.

Sur le papier, l’approche qui semble nuire le moins serait le TEE. Plusieurs projets dans l’espace (Enigma, Corda, Sawtooth) ont choisi de faire d’Intel SGX un citoyen de première classe. L’obfuscation intelligente de contrat serait accomplie en faisant confiance au matériel pour cacher ce qu’il fait (même à son propriétaire) et pour fournir une attestation de quel programme il exécute. Actuellement, il faut contacter les serveurs d’Intel pour vérifier cette attestation. TEE est quelque chose dont nous sommes très excités et nous regardons pour voir si elle évolue après les vulnérabilités récentes qui ont été soulevées – attaques de cache, Spectre (patch matériel, n’importe qui?).

Méthodes actuelles de préservation de la confidentialité
Dans quelle mesure les systèmes de protection de la vie privée sont-ils pratiques? Comment se débrouillent-ils en ce qui concerne le chiffrement par câble, le chiffrement au repos, l’analyse de réseau et de métadonnées? Sont-ils adaptés aux réseaux privés ou publics? J’observe les catégories suivantes:

  • Services de mélange

L’idée générale derrière les services de mixage est que si beaucoup de pairs acceptent de joindre leurs entrées et sorties dans la même transaction, personne ne peut dire quelle entrée est associée à quelle sortie. Divers protocoles s’appuient sur des services de mixage tels que Blindcoin, Coinjoin, CoinShuffle, XIM et TumbleBit.

  • Cryptage anonyme

Ces schémas peuvent masquer l’origine, la destination et les montants des transactions à l’aide d’outils de chiffrement tels que Zero Knowledge Proofs, Pedersen Commitments et Ring Signatures. Les approches cryptographiques sur chaîne comprennent Zerocash, Mimblewimble et le protocole Monero.

  • Calcul multipartite sécurisé (SMPC)

Dans un SMPC, un nombre donné de participants, p1, p2, …, pN, ont chacun des données privées, respectivement d1, d2, …, dN. Les participants veulent calculer la valeur d’une fonction publique sur ces données privées: F (d1, d2, …, dN) tout en gardant leurs propres entrées secrètes. Un moyen qui peut être appliqué à l’exécution de contrats intelligents est d’exprimer le calcul en tant que circuit booléen en utilisant les portes ET et NON. Le circuit fonctionnerait avec des données cryptées et produirait un résultat lisible par une seule partie. Les techniques sous ce parapluie incluent des schémas de partage secrets, Enigma, Hawk ou Encryption entièrement homomorphique. TrueBit vise l’exactitude des calculs grâce à l’incitation économique, mais cela ne fait pas grand-chose pour la vie privée.

  • Constructions hors chaîne

Une façon de préserver la vie privée consiste à ne pas utiliser le réseau principal pour effectuer des transactions confidentielles. La logique est implacable. Si de nombreuses parties souhaitent effectuer des transactions en privé, elles le font dans un réseau privé et s’installent sur le réseau principal si nécessaire. Les canaux d’état, le plasma, le sharding, les réseaux de consortiums privés ou les chaînes latérales pourraient correspondre à cette description. Le calcul se passe sur un réseau séparé et le résultat se termine sur le réseau principal. Comme l’a montré uPort, les constructions hors chaîne dérivent également les futures attaques. Une Blockchain est permanente: les données cryptées avec les algorithmes actuels peuvent être menacées en une décennie!

  • Vers une construction de Blockchain anonyme

Une construction de Blockchain performante, générale et complètement anonyme doit encore être construite. La conférence ZKP au MIT la semaine dernière semble être un grand pas dans la bonne direction.

Traduit librement depuis bravenewcoin.com


Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *