Comment fonctionne le cryptage VPN
- Marie Fournier
- 6 avril 2022
Les réseaux privés virtuels (VPN en abrégé) utilisent une technique appelée cryptage pour rendre vos données transmises complètement illisibles par toute personne qui les intercepte.
Bien que les calculs derrière le cryptage soient incroyablement compliqués, utiliser et bénéficier du cryptage est incroyablement simple, grâce à la large disponibilité et à la compatibilité des logiciels VPN.
Dans ce guide complet, vous découvrirez tout ce que vous devez savoir sur le cryptage VPN :
- Qu’est-ce que le cryptage VPN et comment ça marche
- Les deux types de chiffrements de chiffrement (symétrique et asymétrique)
- Force de chiffrement et compromis vitesse/sécurité
- Les meilleurs paramètres de cryptage pour votre logiciel VPN
- Comment le chiffrement est ´ attaqué ª et comment se défendre
- La NSA et la collecte de données à grande échelle
- Perfect Forward Secrecy (Qu’est-ce que c’est et pourquoi vous voulez un VPN qui l’offre).
Les bases du cryptage VPN
Le but du cryptage est de coder vos données afin que seul votre destinataire soit en mesure de déchiffrer les données.
Il y a des siècles, les codes étaient simples parce que les ordinateurs n’existaient pas. Certains codes étaient même aussi simples que de remplacer 1 lettre par une autre (a=z, b=y et c=x) etc. Cette formule simple de 1 lettre = une autre lettre est connue sous le nom de clé.
C’est l’information secrète qui est nécessaire pour casser le code. Le cryptage VPN utilise le même concept, mais à une échelle beaucoup plus forte et plus compliquée.
Les ordinateurs nous permettent d’effectuer des opérations mathématiques extrêmement complexes en quelques fractions de seconde.
En utilisant une clé secrète avec des milliards de combinaisons possibles, un VPN peut chiffrer (encoder) vos données de telle manière qu’il est mathématiquement impossible de les décoder, sans savoir quelle clé vous avez utilisée pour les chiffrer.
Sans la bonne clé, vos données apparaîtront comme du charabia (connu sous le nom de texte chiffré).
Comprendre les termes de chiffrement courants
Examinons les termes les plus couramment utilisés en matière de cryptage VPN.
Malheureusement, les fournisseurs de VPN utilisent une terminologie quelque peu avancée même dans leur documentation d’aide, en supposant que les abonnés connaissent déjà ces concepts. Évidemment, ce n’est pas toujours le cas.
Ces aperçus devraient vous permettre de mieux comprendre les concepts les plus importants attachés au cryptage de données VPN.
Protocole VPN
Le protocole VPN est le cadre de transmission et de cryptage des données utilisé par votre fournisseur VPN. La plupart des VPN offrent un accès à plusieurs protocoles, notamment Wireguard, PPTP, L2TP/IPsec et OpenVPN.
Pour en savoir plus sur les protocoles VPN, visitez notre guide complet sur les protocoles VPN : ce guide vous présentera les avantages et les inconvénients de chacun, et quand choisir des protocoles spécifiques. Pour la plupart des utilisateurs, OpenVPN est le meilleur choix complet (tant que votre appareil le prend en charge).
Certains protocoles (tels que OpenVPN) sont extrêmement flexibles et permettent de multiples options concernant le transport et le cryptage. Par exemple, OpenVPN prend en charge la bibliothèque de chiffrement OpenSSL complète qui permet d’accéder à plus de 10 chiffrements de chiffrement uniques (algorithmes).
Clé
La clé est comme un mot de passe super fort qui n’est connu que de vous et du serveur VPN. La clé est utilisée pour chiffrer et déchiffrer les données que vous envoyez/recevez.
Longueur de clé
Les clés cryptographiques sont de longueurs différentes. En général, la règle est la suivante : plus la clé est longue, plus le cryptage est fort. Les longueurs de clé sont mesurées en ‘bits’. Un bit est une seule unité de code binaire (qui se compose uniquement de 1 et de 0). Les longueurs de clé courantes incluent 128 bits ou 256 bits.
Une clé de 128 bits est composée de 128 chiffres binaires. Étant donné que chaque bit peut avoir deux valeurs possibles (1 ou 0), une clé de 128 bits peut avoir 2 128 combinaisons possibles (environ 3,4 x 10 38). Si un supercalculateur pouvait vérifier 1 milliard de clés par seconde, il faudrait encore plus de 10 22 ans pour vérifier toutes les clés possibles.
En d’autres termes, même une force de cryptage de sécurité modérée comme AES-128 est extrêmement forte.
Prise de contact RSA
Cette prise de contact se produit au tout début d’une session OpenVPN. RSA est une méthode de chiffrement à clé publique qui vous permet d’échanger en toute sécurité des clés de chiffrement avec le serveur VPN chaque fois que vous lancez une connexion.
Cette technique permet d’utiliser une nouvelle clé unique à chaque fois que vous vous connectez à votre VPN. Sans cela, vous devrez continuer à utiliser la même clé encore et encore (non sécurisée) ou obtenir une nouvelle clé avant chaque session par e-mail ou par une autre méthode (pas pratique).
Nous discuterons davantage de RSA lorsque nous parlerons de chiffrement asymétrique, mais il s’agit essentiellement d’une technique qui utilise des mathématiques extrêmement complexes pour permettre à deux personnes (ou ordinateurs) d’échanger ouvertement des clés secrètes en public, sans que personne d’autre ne puisse réellement voler la clé.
La force de clé minimale recommandée pour l’établissement de liaison RSA est de 2 048 bits. Quelques fournisseurs de VPN proposent en fait des clés jusqu’à 4096 bits.
Algorithme de chiffrement
Le chiffrement ou l’algorithme est la méthode spécifique par laquelle votre fournisseur VPN crypte vos données. Chaque chiffrement a ses propres avantages et inconvénients.
Par exemple, certains chiffrements ont moins de faiblesses connues mais sont plus lents. D’autres ont du mal avec des tailles de fichiers supérieures à 1 Go.
Certains fournisseurs de VPN proposent plusieurs options de chiffrement différentes. Les chiffrements OpenVPN les plus couramment disponibles sont :
1. AES (Advanced Encryption Standard. Initialement connu sous le nom de chiffrement Rijndael)
2. Blowfish (un chiffrement plus ancien mais rapide créé par l’expert en sécurité Bruce Schneier )
AES est l’option la plus sécurisée largement disponible. Pratiquement tous les fournisseurs de VPN proposeront des chiffrements AES-128 et/ou AES-256 bits.
Authentification de hachage SHA
La plupart des services VPN incluent également la possibilité d’authentifier les messages envoyés via le VPN. Cela se fait en utilisant un hachage SHA (Secure Hash Algorithm) pour signer chaque paquet de données.
Un hachage est une fonction unidirectionnelle utilisée pour calculer une signature unique pour chaque paquet de données. Une fonction à sens unique signifie qu’il est très facile de calculer le hachage d’un message, mais pratiquement impossible de recréer le message d’origine à partir d’un hachage.
La signature hachée est ensuite transmise avec les données cryptées. Une fois que vous avez reçu et déchiffré les données, le VPN les hache à nouveau et compare le nouveau hachage au hachage qui a été envoyé avec le message. S’ils correspondent, les données sont authentiques.
Cela protège contre les attaques « actives » qui peuvent tenter d’intercepter vos communications et d’injecter différentes données. Vu que l’attaquant n’a pas ici la clé pour chiffrer les données injectées, les hachages ne correspondent pas.
Une autre caractéristique du hachage qui le rend si utile est que le simple fait de changer 1 caractère dans le message d’entrée modifiera considérablement la signature de hachage résultante.
Il existe 2 principaux algorithmes de hachage utilisés par les VPN pour signer et authentifier vos données :
- SHA-1 – il s’agit de la méthode d’authentification la plus rapide, mais elle est maintenant considérée comme modérément vulnérable. Un chercheur a estimé le coût de casser un seul hachage à 2,77 millions de dollars . Il est peu probable que quelqu’un dépense autant d’argent pour jouer avec vos données VPN, à moins que vous ne soyez un vrai fauteur de troubles ou une personne importante.
- SHA-2 – Il s’agit de la norme cryptographique actuelle qui comprend en fait un certain nombre d’algorithmes de hachage différents. Le plus populaire est le SHA-256. Cette méthode est plus sécurisée que SHA-1 mais un peu plus lente, donc l’utilisation de cet algorithme ralentira probablement légèrement la vitesse de votre VPN, sauf si vous êtes sur une machine très rapide.
Cryptage symétrique ou asymétrique
Lorsque vous utilisez OpenVPN ou L2TP/IPsec, vous utiliserez en fait 2 types d’algorithmes de chiffrement différents : symétrique et asymétrique.
Chiffrement symétrique
Le chiffrement symétrique signifie que vous utilisez la même clé pour chiffrer et déchiffrer les données. Cela signifie que vous et le serveur VPN utilisez la même clé partagée. Une fois la connexion VPN établie, toutes les données seront cryptées et transmises via des protocoles de cryptage symétriques.
AES et Blowfish sont tous deux des algorithmes symétriques.
L’avantage du chiffrement symétrique est qu’il est extrêmement efficace et rapide. Cela signifie qu’il ne nécessite pas beaucoup de puissance de traitement informatique pour chiffrer et déchiffrer les données.
Par conséquent, il est très utile pour transmettre rapidement de grandes quantités de données.
De plus, le chiffrement symétrique nécessite des tailles de clé beaucoup plus courtes pour fournir le même niveau de sécurité par rapport à un protocole asymétrique comme RSA. Les touches courtes signifient un calcul plus rapide et de meilleures vitesses.
Les tailles de clé symétriques typiques sont de 128, 192 et 256 bits.
La seule faiblesse du chiffrement symétrique
Le chiffrement symétrique a une faiblesse majeure. Vous avez besoin d’un moyen de partager la clé entre les deux parties échangeant des données en toute sécurité. Une méthode pour partager la clé serait d’utiliser un mot de passe, qui servirait de clé.
L’inconvénient de cette méthode est que chaque session VPN utiliserait la même clé (jusqu’à ce que vous changiez votre mot de passe), ce qui signifie que si la clé était découverte, cela permettrait à un attaquant de déchiffrer 100 % des données déjà chiffrées avec cette clé.
Quelle est la solution?
Utiliser une nouvelle clé symétrique pour chaque session VPN. De cette façon, si 1 clé est compromise, cela ne compromet pas les données des sessions passées ou futures. Mais comment échanger la clé en toute sécurité sur un réseau public ? C’est là qu’intervient le cryptage asymétrique.
Cryptage asymétrique
Le chiffrement asymétrique est une forme de cryptographie à clé publique dans laquelle chaque personne échangeant des données possède 2 clés :
1. Une clé publique (utilisée pour chiffrer les données)
2. Une clé privée (utilisée pour déchiffrer les données)
Les services VPN utilisent le chiffrement asymétrique pour échanger une nouvelle clé de chiffrement symétrique au début de chaque session VPN.
La façon dont cela fonctionne est la suivante :
Chaque personne échangeant des données possède 2 clés. Une clé est publique (tout le monde peut la voir) et l’autre est privée (personne ne devrait avoir cette clé à part vous).
Vos clés publiques et privées seront différentes les unes des autres, et également différentes des clés publiques et privées de la personne avec laquelle vous échangez des données.
Pour envoyer un message :
La personne A chiffrera le message avec la clé publique de la personne B.
Cette clé publique ne peut être utilisée que pour chiffrer le message, une fois chiffrée, elle ne peut pas être utilisée pour déchiffrer le message.
Ensuite, la personne B utilise sa clé privée pour déchiffrer le message de la personne A.
La raison pour laquelle cette méthode fonctionne est que les deux clés (publique et privée) sont mathématiquement liées de telle sorte que la clé privée peut être utilisée pour déchiffrer tous les messages chiffrés avec la clé publique.
Cependant, les nombres impliqués sont si importants et l’algorithme de chiffrement est conçu de telle manière qu’il est impossible de deviner la clé privée en fonction de la clé publique.
Ce type d’échange public est connu sous le nom d’échange de clés Diffie-Hellman et constitue la base du secret de transmission (dont nous parlerons plus tard).
Algorithmes asymétriques
L’algorithme de chiffrement asymétrique le plus courant est RSA , qui est utilisé dans OpenVPN pour échanger les clés de session symétriques. RSA utilisait couramment des clés 2048 bits ou 4096 bits. Parce que la clé publique est visible par tout le monde, les clés doivent être beaucoup plus longues pour être sécurisées.
Une clé de 2048 bits a 2 2048 combinaisons possibles, soit environ 3,23 x 10 616 combinaisons différentes !
L’inconvénient du cryptage asymétrique est qu’il n’est ni très rapide ni efficace (car les nombres impliqués sont si importants). Par conséquent, il n’est généralement utilisé qu’au début d’une session pour échanger les clés de chiffrement symétriques (beaucoup plus rapides).
Attaques sur le cryptage VPN
Dans le monde entier, des efforts massifs de décryptage sont entrepris par les gouvernements, les agences d’espionnage (comme la NSA) et les alliances d’espionnage (comme la Five Eyes Alliance ). Le but ultime est de pouvoir récolter et décrypter 100 % du trafic VPN crypté dans le monde.
Actuellement, ils sont loin de cette référence, mais les documents divulgués par Edward Snowden indiquent que la NSA connaît un certain succès avec ses programmes de décryptage, en particulier en ce qui concerne le décryptage du trafic PPTP et L2TP/IPsec. Jusqu’à présent, OpenVPN semble être relativement protégé.
Il existe deux principales catégories d’attaques :
Attaques actives
Les attaques actives contre le chiffrement sont généralement des attaques de l’homme du milieu qui impliquent la manipulation ou la modification des données envoyées vers/depuis votre ordinateur via le tunnel VPN.
L’objectif est d’identifier des modèles basés sur les données manipulées qui facilitent le décryptage des données ou la découverte de la clé secrète.
La meilleure défense contre les attaques actives est l’authentification par hachage, qui peut vérifier l’authenticité des paquets de données transmis. Presque tous les principaux fournisseurs de VPN intègrent automatiquement l’authentification dans leurs protocoles OpenVPN.
De plus, les attaques actives ne devraient pas être une préoccupation pour 99,99 % des utilisateurs de VPN. Une attaque active est une attaque ciblée contre un utilisateur, un service ou un ordinateur spécifique. Il est hautement improbable que les visiteurs de ce site fassent quoi que ce soit pour susciter ce niveau d’intérêt de la part d’une agence d’espionnage.
Attaques passives
Une attaque passive se produit généralement après la fin de la session VPN.
La forme la plus simple d’une attaque passive est une attaque par force brute, qui essaie simplement différentes combinaisons de touches jusqu’à ce que l’on réussisse à déchiffrer les données.
À mesure que les ordinateurs deviennent plus rapides, les attaques par force brute deviendront de plus en plus efficaces (mais cela peut être contré en rendant les clés VPN de plus en plus longues et complexes).
Les deux meilleures défenses contre les attaques passives sont :
1. Cryptage plus fort (clés plus longues. 256 bits contre 128 bits).
2. Perfect Forward Secrecy (utilisez une clé différente pour chaque session).
Quels paramètres de cryptage VPN devriez-vous utiliser ?
Nous sommes fréquemment interrogés sur l’algorithme, la force de cryptage et le mode d’authentification à utiliser. Nous allons ici clarifier les choses pour vous.
Règle #1 : Utilisez OpenVPN autant que possible
Il existe de nombreuses preuves que PPTP et L2TP/IPSec sont vulnérables ou entièrement compromis par les preuves de décryptage NSA.
D’un autre côté, il y a très peu de preuves que la NSA a réussi à casser le cryptage AES (l’algorithme le plus populaire utilisé avec OpenVPN).
OpenVPN est toujours le protocole intégré à la plupart des applications de bureau et mobiles VPN propriétaires.
Règle #2 : Vous n’avez probablement pas besoin d’un cryptage 256 bits (mais n’hésitez pas à l’utiliser quand même).
AES-128 est toujours considéré comme sécurisé et est régulièrement utilisé par les entreprises et les gouvernements pour des communications sécurisées. Il est peu probable que quelqu’un cible spécifiquement le décryptage de vos données, ou que la NSA soit vraiment intéressée par ce que vous faites réellement en ligne.
Étant donné que AES-128 est nettement plus rapide que AES-256, la plupart des utilisateurs feraient mieux de choisir le cryptage 128 bits (si vous souhaitez maximiser votre vitesse).
Si, toutefois, vous êtes généralement soucieux de garder vos données aussi sûres que possible (aussi longtemps que possible), utilisez définitivement le cryptage 256 bits.
Règle #3 : AES est plus sécurisé que Blowfish
Les deux algorithmes les plus courants proposés par les principaux fournisseurs de VPN sont AES (dans les versions 128-256 bits) et CBC Blowfish.
Blowfish a certaines vulnérabilités connues, et même son créateur (Bruce Schneier) recommande d’utiliser ses successeurs (Twofish ou Threefish), mais aucun des deux algos n’a été beaucoup adopté par les fournisseurs traditionnels.
Le seul inconvénient d’AES est qu’il s’agit d’une norme NIST qui a été approuvée (au moins en partie) avec la bénédiction de la NSA. Cela signifie-t-il qu’il s’agit d’une faiblesse cachée connue d’eux seuls ? Probablement pas, mais c’est possible. La NSA a apparemment tenté par le passé d’affaiblir délibérément les normes de chiffrement qu’elle pouvait casser.
Réflexions supplémentaires
Notre suggestion de base est la suivante. Si vous souhaitez maximiser vos performances tout en bénéficiant d’une sécurité solide, optez pour AES-128. Si la sécurité est bien plus importante pour vous qu’un léger ralentissement de votre connexion, optez un conseil pour AES-256.
Toutefois, si vous n’êtes pas sûr de l’algorithme utilisé par votre VPN, consultez leur documentation d’aide ou demandez simplement à l’assistance.
Vous devez toujours laisser l’authentification par hachage SHA activée (la plupart des VPN ne vous donnent pas la possibilité de la désactiver de toute façon). La gains de vitesse sont minimes par rapport aux avantages de sécurité de l’authentification des données.
Ainsi, si vous voulez plus de contrôle, choisissez un fournisseur VPN qui offre plus de paramètres de cryptage.
Secret de transmission parfait
Perfect Forward Secrecy (PFS) également connu sous le nom de « Forward Secrecy » est une méthode de communication sécurisée, où chaque session utilise une clé différente, et le déchiffrement ou la compromission d’une session n’augmente pas la vulnérabilité d’une autre.
Pour qu’un VPN utilise PFS, deux choses doivent être mises en place :
1. Chaque session VPN doit utiliser une clé de cryptage unique
2. La nouvelle clé ne doit pas être dérivée des clés précédentes (mais plutôt être générée de manière aléatoire).
La clé de PFS est l’échange de clés Diffie-Hellman dont nous avons parlé précédemment dans la section sur les clés asymétriques de cet article. Cette méthode d’échange de clé vous permet, à vous et au serveur VPN, d’échanger facilement une nouvelle clé de session chaque fois que vous vous connectez à un serveur VPN.
PFS est également de plus en plus utilisé avec les connexions Web sécurisées HTTPS. Google a été l’un des premiers à adopter la norme, mais des centaines de sites Web ont maintenant emboîté le pas.
Dans le passé, si la clé de cryptage d’un site Web était compromise, toutes les données transmises vers/depuis ce site étaient vulnérables. Désormais, chaque visite ou session sur le site Web est cryptée avec une nouvelle clé unique.
Comment vérifier le Perfect Forward Secrecy
Pour voir si votre banque ou votre site Web préféré utilise le secret de transmission parfait, cliquez simplement sur l’icône de cadenas à gauche de l’URL dans la barre de votre navigateur :
Cliquez ensuite sur la flèche en haut à droite, et cela fera apparaître une fenêtre avec plus d’informations. Vous recherchez une ligne dans les détails techniques indiquant ECDHE, ce qui signifie Elliptical Curve Diffie Hellman Exchange. Un échange DH est requis pour PFS.
Vérifiez les certificats des sites Web que vous utilisez le plus. S’ils n’utilisent pas PFS, faites-leur savoir que vous êtes inquiet de la gestion de vos données. De nos jours, il n’y a vraiment aucune excuse pour que les grandes institutions financières évitent de mettre en oeuvre les normes de cryptage les plus récentes.
Résumé et réflexions finales
Si vous avez lu cet article jusqu’ici, tout d’abord bravo vu le pavé ! Vous devriez maintenant avoir une bonne compréhension du fonctionnement du cryptage et du décryptage, de la différence entre le cryptage symétrique et asymétrique et de la manière dont ils fonctionnent ensemble pour créer un tunnel VPN sécurisé.
Pour résumer, voici les points principaux de cet article :
- Le chiffrement est basé sur des fonctions mathématiques qui déforment les données de manière très difficile à inverser sans avoir la clé secrète utilisée pour chiffrer les données en premier lieu.
- OpenVPN et IPsec utilisent à la fois le cryptage asymétrique et symétrique pour transmettre les données.
- La plupart des principaux services VPN sont compatibles PFS par défaut (si vous utilisez OpenVPN).
- Toutes les données de cette session sont ensuite chiffrées avec la clé symétrique. Le chiffrement symétrique est beaucoup plus rapide et plus efficace que le chiffrement asymétrique.
- Le cryptage AES 128 bits devrait être suffisamment puissant pour la plupart des utilisateurs et constitue un bon mélange de sécurité et de vitesse. Si vous avez besoin d’une sécurité maximale absolue, choisissez plutôt le cryptage 256 bits.
- Perfect Forward Secrecy utilise une clé symétrique unique pour chiffrer chaque session VPN. Cela signifie qu’un attaquant devrait déchiffrer chaque session séparément, et en déchiffrer une ne lui permettrait pas de déchiffrer les sessions VPN précédentes ou suivantes.
- L’authentification par hachage SHA est utilisée pour vérifier que vos données VPN entrantes/sortantes n’ont pas été modifiées ou falsifiées. Il empêche les attaques « actives ».
Plus de guides sur les VPN
VPN ou Pare-feu : Quelles sont les différences ?
Est-ce que Atlas VPN fonctionne avec Omegle ?
Accès à vie à Atlas VPN : Est-ce possible ?
Comment désinstaller Atlas VPN ?