VPN anonyme grâce à Zero-Knowledge Auth (ZKA)

Notre infographie explique ZKA en image.

Zero-Knowledge Auth (ZKA) est notre nouveau protocole qui assure le plus haut niveau d’anonymat pour notre VPN. La plupart des fournisseurs de VPN ne sont pas du tout confidentiels car ils stockent de nombreuses informations vous concernant, comme votre nom et votre adresse, vos informations de paiement et les protocoles de votre trafic Internet. Il existe des sociétés de VPN dignes de confiance qui promettent de ne pas enregistrer votre utilisation de leurs services. Elles tiennent généralement leur promesse et ne recueillent pas de données vous concernant. Toutefois, nous mettons toujours la confiance entre leurs mains. Si elles font l’objet d’une violation de données, des informations personnelles peuvent toujours être divulguées. Et l’entreprise elle-même a techniquement le pouvoir de connaître les sites que vous visitez.

ZKA révolutionne l’ensemble du processus, de l’inscription jusqu’à l’utilisation du VPN. Il n’est plus nécessaire de partager des informations personnelles. Lorsque vous vous connectez au VPN, vous n’avez même pas besoin d’un numéro de compte anonymisé pour vous connecter. Continuez à lire ci-dessous pour une explication détaillée.

Inscription à ZKA

La première étape pour utiliser le VPN SnowHaze de manière anonyme consiste à générer une paire de clés cryptographiques (Pour en savoir plus sur la cryptographie, cliquez ici). Un code secret est d’abord généré en effectuant un calcul aléatoire sur votre appareil. Cela permet de s’assurer que ce code est solide. Nous l’appelons Master Secret et il est à la base de toutes les opérations suivantes. Une paire de clés (clé privée et clé publique) est ensuite dérivée de votre Master Secret. Le Master Secret sert de point de départ de sorte que les clés qui en sont dérivées sont toujours les mêmes. Comme vous êtes le seul à connaître votre Master Secret, vous seul pouvez dériver votre paire de clés. La clé publique est envoyée au serveur, où elle est stockée en tant que nouvelle entrée dans la base de données. Le serveur ne connaît que la clé publique et associera à votre clé publique toutes les informations telles que les paiements et la validité. Le serveur ne connaît pas votre Master Secret, c’est pourquoi il doit être stocké en toute sécurité. Si vous perdez votre Master Secret, il est impossible de récupérer votre abonnement. Les utilisateurs qui ne veulent pas perdre le Master Secret ont la possibilité de s’inscrire avec leur adresse email et un mot de passe, comme la plupart d’entre nous sont habitués à le faire sur d’autres comptes. Dans ce cas, votre Master Secret est chiffré avec votre mot de passe et stocké en toute sécurité sur le serveur. Le serveur ne peut pas le voir, car il est stocké sous forme cryptée. Votre adresse email n’est pas non plus visible pour le serveur car il a été haché (Pour en savoir plus sur le hachage, cliquez ici). Le serveur ne voit jamais ni votre Master Secret, ni votre email, ni votre mot de passe. Lorsque vous vous connectez, vous demandez la version cryptée de votre Master Secret au serveur, et vous la décryptez sur votre appareil. Le Master Secret peut alors être utilisé pour obtenir la paire de clés et se connecter. Notez qu’à tout moment, vous pouvez ajouter une adresse email et un mot de passe à votre inscription ou délier votre adresse email et votre mot de passe de votre inscription.

Paiement ZKA

L’étape suivante consiste à activer votre inscription en ajoutant un paiement. Vous choisissez une option d’abonnement et vous payez soit par carte de crédit, soit anonymement en cryptomonnaies ou en espèces. Votre paiement réussi est envoyé au serveur avec votre clé publique. Le serveur peut alors créditer votre clé publique. A partir de maintenant, vous êtes autorisé à vous connecter au serveur VPN. Pour vous connecter à un serveur VPN, vous devez prouver que vous avez le droit d’accès. Cela se fait à l’aide de jetons.

Génération de jetons ZKA

Le serveur génère régulièrement (par exemple une fois par semaine) des jetons de connexion. Tous les jetons nouvellement générés sont regroupés de manière aléatoire dans des “boîtes” et chaque boîte est attribuée à un utilisateur. Le serveur ne sait pas quel utilisateur reçoit quels jetons, ni quels jetons sont regroupés dans une boîte. Lorsque vous voulez utiliser le VPN pour la première fois, votre appareil demande d’abord la boîte contenant les jetons et la stocke sur votre appareil. Ensuite, la nouvelle boîte contenant les nouveaux jetons est régulièrement mise à jour (par exemple, une fois par semaine).

Connexion au VPN ZKA

Avant de se connecter à un serveur VPN, votre appareil prend au hasard un jeton dans la boîte et l’envoie au serveur. Le serveur vous permet de vous connecter si le jeton est valide. La seule information qui est échangée avec le serveur est le jeton. N’oubliez pas que les jetons ont été placés au hasard dans les boîtes, qui ont été distribuées au hasard parmi les utilisateurs. Le serveur ne connaît que la clé publique d’un utilisateur, et envoie simplement la boîte de jetons à l’utilisateur qui la demande en utilisant la clé privée correspondante. Rien ne permet de remonter jusqu’à la clé publique lorsque l’on se connecte au serveur.

Utilisation du VPN ZKA

Puisque vous avez un jeton valide, le serveur vous permet de vous connecter. Votre trafic Internet est maintenant crypté et redirigé sur le serveur VPN. L’adresse IP que les sites web voient est celle du serveur VPN. Cela permet de cacher votre véritable adresse IP et de protéger votre emplacement. Le serveur n’enregistre rien sur votre trafic et ne peut pas lier deux connexions distinctes à un utilisateur. Profitez du premier service VPN véritablement anonyme.

Vérification de ZKA

Si vous êtes encore en train de lire ceci, il est évident que nous avons réussi à vous intéresser. En tant qu’esprit malin, vous pourriez vous demander : “Ça a l’air bien, mais comment puis-je savoir que ce que vous décrivez est identique à ce qui fonctionne sur le serveur ?” Bonne question, nous pensions que vous vous poseriez la question. Vous pouvez le vérifier vous-même.

Il existe un processus dédié dans une enclave du serveur, qui est chargé de générer et de distribuer les jetons. Cette technologie d’Intel, appelée Software Guard Extensions (SGX), garantit que le code fonctionnant dans cette enclave n’a pas été altéré. Comme tout le code est open source, vous pouvez vérifier que l’empreinte digitale de l’enclave est la même que celle du code. Cela vous donne la preuve que nous utilisons le même code sur nos serveurs de production.

Visitez notre page Github pour le script de vérification et plus de détails https://github.com/snowhaze/zka-sgx

About the Author

Yvan

Co-Founder of Illotros GmbH, which created SnowHaze