Un Réseau Privé Virtuel (VPN) crypte toutes les données lorsqu’elles circulent entre votre ordinateur et un serveur VPN. Dans ce Guide complet de cryptage VPN, nous examinons en détail ce qu’est le cryptage et comment il est utilisé dans les connexions VPN.
Peut-être le plus important, nous expliquerons la gamme de termes de cryptage utilisés par les services VPN. Nous espérons qu’après avoir lu ce guide, vous comprendrez mieux ce sujet complexe et que vous serez mieux en mesure d’évaluer les revendications de sécurité formulées par les fournisseurs de VPN.
- Préliminaires
- Qu’Est-Ce Que Le Cryptage ?
- Les bases
- Longueur de la clé de chiffrement
- Chiffrements informatiques
- Longueur de la clé de chiffrement
- Secret direct parfait
- Protocoles de cryptage VPN
- PPTP
- AVANTAGES
- INCONVÉNIENTS
- Qu’est-ce que PPTP ?
- L2TP / IPSec
- PROS
- INCONVÉNIENTS
- Qu’est-ce que L2TP et IPSec?
- SSTP
- AVANTAGES
- INCONVÉNIENTS
- Qu’est-ce que SSTP ?
- IKEv2
- PROS
- INCONVÉNIENTS
- Qu’est-ce qu’IKEv2 ?
- OpenVPN
- PROS
- Qu’est-ce qu’OpenVPN ?
- Cryptage OpenVPN
- Chiffrements
- Blowfish
- AES
- Camellia
- Cryptage de la poignée de main
- RSA
- Diffie-Hellman et ECDH
- Authentification de hachage SHA
- Le SHA est-il sécurisé ?
- NIST
- AES-CBC vs AES-GCM
- OpenVPN UDP vs OpenVPN TCP
- Vaincre la censure avec OpenVPN sur le port TCP 443
- Résumés
- Protocoles VPN
- Cryptage OpenVPN
- Conclusion
Préliminaires
Si vous n’êtes pas sûr de ce qu’est un VPN et de ce que l’on peut faire pour vous, veuillez consulter notre Guide des VPN pour débutants.
Notre objectif est de présenter les principales fonctionnalités du cryptage VPN en termes aussi simples que possible. Bien qu’il n’y ait pas d’échappatoire, du fait que le cryptage est un sujet complexe.
Si même le terme de cryptage provoque un sursaut de vos yeux, mais que vous voulez toujours savoir à quoi faire attention dans un bon service VPN, vous pouvez passer directement aux résumés en utilisant la Table des matières.
Qu’Est-Ce Que Le Cryptage ?
» Commencez au début, dit le roi, très gravement, et continuez jusqu’à ce que vous arriviez à la fin: alors arrêtez-vous. »
Lewis Carroll, Alice au pays des merveilles
L’analogie la plus simple est que le chiffrement est un verrou. Si vous avez la bonne clé, la serrure est facile à ouvrir. Si quelqu’un n’a pas la bonne clé mais veut accéder au contenu d’un coffre-fort (c’est-à-dire vos données) protégé par ce verrou, il peut essayer de casser le verrou.
De la même manière que le verrou qui sécurise un coffre-fort bancaire est plus fort que celui qui sécurise une valise, certains chiffrements sont plus forts que d’autres chiffrements.
Si vous voulez un VPN avec le cryptage le plus puissant, consultez notre liste de VPN les plus sécurisés pour plus d’informations.
Les bases
Quand vous étiez enfant, avez-vous déjà joué au jeu dans lequel vous créiez un « message secret » en substituant une lettre du message par une autre? La substitution a été faite selon une formule choisie par vous.
Vous pourriez, par exemple, avoir remplacé chaque lettre du message original par une lettre de trois lettres derrière celle-ci dans l’alphabet. Si quelqu »un d »autre savait quelle était cette formule, ou était capable de l »élaborer, alors ils seraient capables de lire votre « message secret. »
Dans le jargon de la cryptographie, ce que vous faisiez était de « chiffrer » le message (les données) selon un algorithme mathématique très simple. Les cryptographes appellent cette formule un « chiffrement. »Pour le déchiffrer, vous avez besoin de la clé. Il s’agit d’un paramètre variable qui détermine la sortie finale du chiffrement. Sans ce paramètre, il est impossible de déchiffrer le chiffrement.
Si quelqu’un veut lire un message chiffré mais n’a pas la clé, il doit essayer de « casser » le chiffrement. Lorsque le chiffrement utilise un simple chiffrement de substitution de lettres, il est facile de le déchiffrer. Le chiffrement peut cependant être rendu plus sûr en complexifiant l’algorithme mathématique (le chiffrement).
Vous pouvez, par exemple, remplacer chaque troisième lettre du message par un numéro correspondant à la lettre.
Longueur de la clé de chiffrement
Les chiffrements informatiques modernes sont des algorithmes très complexes. Même avec l’aide de superordinateurs, ceux-ci sont très difficiles à craquer, voire impossibles à toutes fins pratiques. La façon la plus grossière de mesurer la force d’un chiffrement est la complexité de l’algorithme utilisé pour le créer.
Plus l’algorithme est complexe, plus le chiffrement est difficile à déchiffrer en utilisant ce que nous appelons une attaque par force brute.
Une attaque par force brute si une forme d’attaque très primitive est (également connue sous le nom de recherche de clés exhaustive), cela implique essentiellement d’essayer toutes les combinaisons de nombres possibles jusqu’à ce que la clé correcte soit trouvée.
Les ordinateurs effectuent tous les calculs en utilisant des nombres binaires: zéros et uns. La complexité d’un chiffrement dépend de sa taille de clé en bits – le nombre brut de uns et de zéros nécessaires pour exprimer son algorithme, où chaque zéro ou un est représenté par un seul bit.
Ceci est connu sous le nom de longueur de clé et représente également la faisabilité pratique d’effectuer avec succès une attaque par force brute sur un chiffrement donné.
Le nombre de combinaisons possibles (et donc la difficulté de les forcer brutalement) augmente de façon exponentielle avec la taille des touches. Utilisation du chiffrement AES (voir plus loin):
Pour mettre cela en perspective:
- En 2011, le supercalculateur le plus rapide du monde était le Fujitsu K. Il était capable d’une vitesse maximale Rmax de 10, 51 pétaflops. Sur la base de ce chiffre, il faudrait à Fujitsu K 1,02 x 10^ 18 – environ un milliard de milliards (un quintillion) – d’années pour casser une clé AES (Advanced Encryption Standard) de 128 bits par la force. C’est plus ancien que l’âge de l’univers (13,75 milliards d’années).
- Le supercalculateur le plus puissant au monde actuellement (2017) est le Sunway TaihuLight en Chine. Cette bête est capable d’une vitesse de pointe de 93,02 pétaflops. Cela signifie que l’ordinateur le plus puissant du monde prendrait encore environ 885 quadrillions d’années pour forcer brutalement une clé AES 128 bits.
- Le nombre d’opérations nécessaires pour forcer un chiffrement de 256 bits est de 3,31 x 10^56. C’est à peu près égal au nombre d’atomes dans l’univers!
Chiffrements informatiques
Alors que la longueur de la clé de chiffrement fait référence à la quantité de nombres bruts impliqués, les chiffrements sont les mathématiques – les formules ou algorithmes réels – utilisés pour effectuer le chiffrement. Comme nous venons de le voir, forcer brutalement les chiffrements informatiques modernes est extrêmement peu pratique.
Ce sont des faiblesses (parfois délibérées) de ces algorithmes de chiffrement qui peuvent entraîner une rupture du chiffrement. En effet, la sortie du chiffrement (mal conçu) peut encore révéler une certaine structure à partir des informations d’origine avant le chiffrement. Cela crée un ensemble réduit de combinaisons possibles à essayer, ce qui réduit en effet la longueur effective de la clé.
Le chiffre Blowfish, par exemple, est vulnérable à une attaque qui exploite les mathématiques derrière le problème d’anniversaire en théorie des probabilités. L’étude des faiblesses des algorithmes cryptographiques est connue sous le nom de cryptoanalyse.
Des longueurs de clé plus longues compensent ces faiblesses, car elles augmentent considérablement le nombre de résultats possibles.
Au lieu d’attaquer le chiffrement lui-même, un adversaire peut attaquer la clé elle-même. Cela peut affecter un site particulier ou certains produits logiciels. Mais la sécurité de l’algorithme de chiffrement est toujours intacte, et d’autres systèmes qui utilisent le même algorithme mais ont une génération sécurisée de clés ne sont pas affectés par la rupture.
Longueur de la clé de chiffrement
La force d’un chiffrement dépend à la fois des mathématiques du chiffrement lui-même et de sa longueur de clé exprimée en bits. Pour cette raison, les chiffrements sont généralement décrits avec la longueur de clé utilisée.
Donc AES-256 (le chiffrement AES avec une longueur de clé de 256 bits) est généralement considéré comme plus fort que AES-128. Notez que je dis généralement parce que nous avons affaire ici à des mathématiques très complexes (voir mes notes sur AES plus loin).
Il est important de noter que la longueur de clé à elle seule n’est pas un bon indicateur de la force d’un chiffrement. C’est la combinaison de la longueur de clé et du chiffrement qui compte. Les chiffrements utilisés pour le chiffrement asymétrique, par exemple, utilisent des tailles de clés beaucoup plus longues que celles utilisées pour le chiffrement symétrique pour fournir une protection équivalente.
Ce tableau est un peu obsolète, car il ne prend pas en compte les attaques plus récentes découvertes sur RSA. Il convient également de noter que la courbe elliptique et les variantes de Diffie-Hellman de RSA sont beaucoup plus fortes que les variantes traditionnelles. Mais j’espère que vous aurez l’idée.
Une chose à noter est que plus la longueur de clé est élevée, plus le calcul est impliqué, donc plus la puissance de traitement nécessaire. Cela a un impact sur la vitesse à laquelle les données peuvent être chiffrées et déchiffrées. Les fournisseurs de VPN et autres doivent donc décider de la meilleure façon d’équilibrer la sécurité et la convivialité pratique lors du choix des schémas de cryptage. Certains fournisseurs de VPN ont réussi à bien trouver cet équilibre. Pour plus d’informations, consultez notre guide des VPN rapides.
Nous discutons un peu plus tard des principaux chiffrements utilisés par les différents protocoles VPN, mais les chiffrements les plus courants que vous rencontrerez probablement sont Blowfish et AES. En plus de cela, RSA est utilisé pour chiffrer et déchiffrer les clés d’un chiffrement, et SHA-1 ou SHA-2 est utilisé comme fonction de hachage pour authentifier les données.
Cryptage asymétrique
Secret direct parfait
Le secret direct parfait (PFS) est également appelé utilisation de clés de chiffrement éphémères, ou simplement Secret direct (FS) par ceux qui ne sont pas à l’aise avec l’utilisation du mot « parfait. »
La communication en ligne sécurisée la plus moderne repose sur SSL/TLS. Il est utilisé par les sites Web HTTPS et le protocole OpenVPN. TLS (Transport Layer Security) est un protocole de chiffrement asymétrique. L’utilisation d’un chiffrement asymétrique signifie que les données sont sécurisées à l’aide d’une clé publique, qui est mise à la disposition de tous. Il ne peut cependant être déchiffré que par un destinataire prévu qui détient la clé privée correcte.
Cette clé privée doit être gardée secrète. S’il est volé ou fissuré par un adversaire, celui-ci peut facilement intercepter et lire toutes les communications qu’il sécurise.
Malheureusement, il est courant que des serveurs ou même des entreprises entières utilisent une seule clé de chiffrement privée pour sécuriser toutes les communications. Pourquoi? Parce que c’est facile. Cependant, si cette clé est compromise, un attaquant peut accéder à toutes les communications chiffrées avec elle.
Cette clé de chiffrement privée devient donc une « clé principale » qui peut être utilisée pour déverrouiller toutes les communications avec un serveur ou une entreprise. La NSA est connue pour avoir exploité cette faiblesse afin de collecter de vastes quantités de données censées être sécurisées.
La solution est le secret direct parfait. Il s’agit d’un système par lequel une nouvelle clé de chiffrement privée unique est générée pour chaque session. C’est une idée simple, même si les mathématiques de l’échange Diffie-Hellman sont complexes. Cela signifie que chaque session TLS a son propre jeu de clés. D’où le terme « clés éphémères » – elles sont utilisées une fois puis disparaissent.
Il n’y a donc pas de « clé principale » exploitable. Même si une session est compromise, c’est seulement cette session qui est compromise – pas toutes les autres sessions que quelqu’un a avec ce serveur ou cette entreprise !
Bien que rare, il est même possible d’actualiser les clés PFS au cours d’une session (par exemple, toutes les heures). Cela limite encore la quantité de données pouvant être interceptées par un adversaire, même si une clé privée est compromise.
Lorsque j’ai écrit cet article sur le sujet il y a quelques années, l’utilisation d’un secret parfait pour les sites Web HTTPS et les connexions OpenVPN était terriblement rare. Heureusement, cette situation a quelque peu changé. Bien qu’en aucun cas universelle, l’utilisation de clés éphémères a considérablement augmenté ces derniers temps.
Protocoles de cryptage VPN
Un protocole VPN est l’ensemble d’instructions (mécanisme) utilisé pour négocier une connexion cryptée sécurisée entre deux ordinateurs. Un certain nombre de ces protocoles VPN sont généralement pris en charge par des services VPN commerciaux. Les plus notables d’entre eux sont PPTP, L2TP/IPSec, OpenVPN, SSTP et IKEv2.
Je regarde chacun de ces éléments ci-dessous, mais OpenVPN est maintenant le protocole VPN standard de l’industrie utilisé par les services VPN commerciaux – pour une bonne raison. Il est très sécurisé et peut être utilisé sur presque tous les appareils compatibles VPN. Je vais donc dépenser de l’encre numérique supplémentaire pour discuter en détail d’OpenVPN.
PPTP
AVANTAGES
- Client intégré à presque toutes les plates-formes
- Très facile à configurer
INCONVÉNIENTS
- Très peu sûr
- Définitivement compromis par la NSA
- Facilement bloquée
Qu’est-ce que PPTP ?
Il s’agit uniquement d’un protocole VPN et repose sur diverses méthodes d’authentification pour assurer la sécurité. Parmi les fournisseurs de VPN commerciaux, il s’agit presque invariablement de MS-CHAP v2. Le protocole de chiffrement (similaire à un chiffrement standard) utilisé par PPTP est le chiffrement Point à point Microsoft (MPPE).
Le protocole PPTP (Point-to-Point Tunneling Protocol) a été développé par un consortium fondé par Microsoft pour la création de VPN sur des réseaux commutés. En tant que tel, PPTP est depuis longtemps le protocole standard pour les réseaux VPN d’entreprise.
PPTP est disponible en standard sur à peu près toutes les plates-formes et tous les appareils compatibles VPN. Il est facile à configurer, sans avoir besoin d’installer de logiciel supplémentaire. Cela garantit que PPTP reste un choix populaire à la fois pour les VPN professionnels et les services VPN commerciaux.
Il a également l’avantage de nécessiter une faible surcharge de calcul à implémenter so donc c’est rapide!
Malheureusement, PPTP n’est pas sécurisé. Du tout. Bien que maintenant que l’on ne trouve généralement que des clés de cryptage 128 bits, dans les années qui ont suivi sa première livraison avec Windows 95 OSR2 en 1999, un certain nombre de vulnérabilités de sécurité ont été mises en évidence.
Le plus grave d’entre eux est la possibilité d’une authentification MS-CHAP v2 non encapsulée. En utilisant cet exploit, PPTP a été craqué en deux jours. Microsoft a corrigé la faille, mais a lui-même émis une recommandation d’utiliser L2TP / IPSec ou SSTP à la place.
Il n’est pas surprenant que la NSA déchiffre presque certainement les communications cryptées PPTP en standard. Encore plus inquiétant est que la NSA a collecté de grandes quantités de données plus anciennes qui étaient cryptées lorsque PPTP était considéré comme sécurisé. Il peut presque certainement déchiffrer également ces données héritées.
PPTP nécessite à la fois le port TCP 1723 et le protocole GRE. Il est facile de pare-feu GRE, ce qui facilite le blocage des connexions PPTP.
L2TP / IPSec
PROS
- Généralement considéré comme sécurisé
- Facile à configurer
- Disponible sur toutes les plates-formes modernes
- Plus rapide qu’OpenVPN (peut-être)
INCONVÉNIENTS
- Peut être compromis par la NSA (non prouvé)
- Probablement délibérément affaibli par la NSA (non prouvé)
- Peut lutter avec des pare-feu restrictifs
- Souvent mal implémentés
Qu’est-ce que L2TP et IPSec?
Le protocole L2TP (Layer 2 Tunneling Protocol) est intégré à presque tous les systèmes d’exploitation modernes et à tous les périphériques compatibles VPN. Il est donc tout aussi simple et rapide à mettre en place que PPTP.
À lui seul, L2TP ne fournit aucun cryptage ni confidentialité au trafic qui le traverse, il est donc généralement implémenté avec la suite d’authentification IPSec (L2TP/ IPSec). Même si un fournisseur ne fait référence qu’à L2TP ou IPSec (comme certains le font), cela signifie presque certainement L2TP / IPSec.
L2TP/IPSec peut utiliser les chiffrements 3DES ou AES. 3DES est vulnérable aux attaques de collision Meet-in-the-middle et Sweet32, donc en pratique, il est peu probable que vous le rencontriez ces jours-ci.
Des problèmes peuvent survenir car le protocole L2TP/IPSec n’utilise qu’un nombre limité de ports. Cela peut entraîner des complications lorsqu’il est utilisé derrière des pare-feu NAT. Cette dépendance aux ports fixes rend également le protocole assez facile à bloquer.
L2TP/IPSec encapsule les données deux fois, ce qui ralentit les choses. Ceci est compensé par le fait que le chiffrement / déchiffrement se produit dans le noyau et que L2TP/IPSec permet le multi-threading. OpenVPN ne le fait pas. Le résultat est que L2TP / IPSec est théoriquement plus rapide qu’OpenVPN.
L2TP/IPSec utilisant le chiffrement AES n’a pas de vulnérabilités connues majeures, et s’il est correctement implémenté, il peut toujours être sécurisé. Cependant, les révélations d’Edward Snowden ont fortement laissé entendre que la norme était compromise par la NSA.
John Gilmore est spécialiste de la sécurité et membre fondateur de l’Electronic Frontier Foundation. Il explique qu’il est probable qu’IPSec ait été délibérément affaibli lors de sa phase de conception.
Un problème sans doute beaucoup plus important est que de nombreux services VPN implémentent mal L2TP / IPSec. Plus précisément, ils utilisent des clés pré-partagées (PSK) qui peuvent être téléchargées gratuitement à partir de leurs sites Web.
Ces PSK ne sont utilisées que pour authentifier la connexion, de sorte que même si elles sont compromises, les données restent cryptées en toute sécurité à l’aide d’AES. Un attaquant pourrait cependant utiliser la clé pré-partagée pour usurper l’identité d’un serveur VPN. Il pourrait alors écouter du trafic crypté ou même injecter des données malveillantes dans la connexion.
Résumé
Malgré quelques problèmes largement théoriques, L2TP/IPSec est généralement considéré comme sécurisé si des clés pré-partagées ouvertement publiées ne sont pas utilisées. Sa compatibilité intégrée avec de nombreux appareils peut en faire un très bon choix.
SSTP
AVANTAGES
- Très sécurisé
- Complètement intégré à Windows
- Support Microsoft
- Peut contourner la plupart des pare-feu
INCONVÉNIENTS
- Norme propriétaire appartenant à Microsoft
Qu’est-ce que SSTP ?
SSTP est un type de cryptage qui utilise SSL 3.0 et offre des avantages similaires à OpenVPN. Cela inclut la possibilité d’utiliser le port TCP 443 pour échapper à la censure. Une intégration étroite avec Windows peut le rendre plus facile à utiliser et plus stable qu’OpenVPN sur cette plate-forme.
Contrairement à OpenVPN, cependant, SSTP est un standard propriétaire appartenant à Microsoft. Cela signifie que le code n’est pas soumis à l’examen du public. L’historique de coopération de Microsoft avec la NSA et les spéculations sur d’éventuelles portes dérobées intégrées au système d’exploitation Windows n’inspirent pas confiance dans la norme.
Le protocole SSTP (Secure Socket Tunneling Protocol) a été introduit par Microsoft dans Windows Vista SP1. Bien qu’il soit maintenant disponible pour les VPN Linux, et même Mac OS X, il reste avant tout une plate-forme uniquement Windows.
Un autre problème est que SSL v3.0 est vulnérable à ce que l’on appelle l’attaque de CANICHE et n’est donc plus recommandé. On ne sait pas si ce problème affecte également le SSTP, mais encore une fois, n’inspire guère confiance.
Résumé
Sur le papier, SSTP offre de nombreux avantages d’OpenVPN. Cependant, le fait d’être une norme propriétaire de Microsoft mine gravement sa crédibilité.
IKEv2
PROS
- Rapide
- Stable – surtout lors du changement de réseau ou de la reconnexion après une connexion Internet perdue
- Sécurisé (si AES est utilisé)
- Facile à configurer (au moins chez l’utilisateur!)
- Le protocole est pris en charge sur les appareils Blackberry
INCONVÉNIENTS
- Non pris en charge sur de nombreuses plates-formes
- L’implémentation d’IKEv2 à l’extrémité du serveur est délicate, ce qui pourrait potentiellement entraîner des problèmes de développement
- Ne faites confiance qu’aux implémentations open source
Qu’est-ce qu’IKEv2 ?
La version 2 d’échange de clés Internet (IKEv2) a été développée conjointement par Microsoft et Cisco. Il est pris en charge nativement par les appareils Windows 7+, Blackberry et iOS. C’est pourquoi de nombreux services VPN iOS utilisent IKEv2 au lieu d’OpenVPN.
Des versions compatibles d’IKEv2 développées indépendamment ont été développées pour Linux et d’autres systèmes d’exploitation. Beaucoup de ces itérations sont open source. Comme toujours, je suggère de me méfier de tout ce qui est développé par Microsoft. Les versions open source d’IKEv2, cependant, ne devraient pas avoir de problèmes.
IKEv2 fait partie de la suite de protocoles IPSec. Il garantit la sécurité du trafic en remettant l’attribut SA (Association de sécurité) dans IPSec et améliore IKEv1 de plusieurs façons. IKEv2 est donc parfois appelé IKEv2/IPSec. IKEv1, d’autre part, est souvent appelé simplement IPSec.
Baptisé VPN Connect par Microsoft, IKEv2 est particulièrement efficace pour rétablir automatiquement une connexion VPN lorsque les utilisateurs perdent temporairement leurs connexions Internet. Par exemple, lors de l’entrée ou de la sortie d’un tunnel ferroviaire.
En raison de sa prise en charge du protocole MOBIKE (Mobility and Multihoming), IKEv2 est également très résistant à l’évolution des réseaux. Cela fait d’IKEv2 un excellent choix pour les utilisateurs de téléphones portables qui basculent régulièrement entre le WiFi domestique et les connexions mobiles, ou qui se déplacent régulièrement entre les hotspots.
IKEv2 n’est pas aussi courant que L2TP / IPSec car il est pris en charge sur beaucoup moins de plates-formes (bien que cette situation évolue rapidement). Il est cependant considéré au moins aussi bon, sinon supérieur à L2TP/ IPSec en termes de sécurité, de performances (vitesse), de stabilité et de capacité à établir (et rétablir) une connexion.
OpenVPN
PROS
- Très sécurisé (si PFS est utilisé)
- Hautement configurable
- Open-source
- Peut contourner les pare-feu
- Nécessite un logiciel tiers
Qu’est-ce qu’OpenVPN ?
OpenVPN est une technologie open source qui utilise la bibliothèque OpenSSL et les protocoles TLS, ainsi qu’un amalgame d’autres technologies, pour fournir une solution VPN solide et fiable. C’est maintenant le protocole VPN standard de l’industrie utilisé par les services VPN commerciaux – pour une bonne raison.
L’une des principales forces d’OpenVPN est qu’il est hautement configurable. Il n’est supporté nativement par aucune plate-forme, mais est disponible sur la plupart des plates-formes via des logiciels tiers. Les clients et applications OpenVPN personnalisés sont souvent disponibles auprès de fournisseurs VPN individuels, mais le code open source principal est développé par le projet OpenVPN.
De nombreux développeurs et contributeurs au projet OpenVPN travaillent également pour OpenVPN Technologies Inc., qui supervise le projet.
OpenVPN fonctionne mieux sur un port UDP, mais il peut être configuré pour fonctionner sur n’importe quel port (voir les notes plus loin). Cela inclut le port TCP 443, qui est utilisé par le trafic HTTPS régulier. En exécutant OpenVPN sur le port TCP 443, il est difficile de distinguer les connexions VPN du type de connexions sécurisées utilisées par les banques, les services de messagerie et les détaillants en ligne. Cela rend OpenVPN très difficile à bloquer.
Un autre avantage d’OpenVPN est que la bibliothèque OpenSSL utilisée pour fournir le chiffrement prend en charge un certain nombre de chiffrements. En pratique, cependant, seuls Blowfish et AES sont couramment utilisés par les services VPN commerciaux. J’en discute ci-dessous.
À la lumière des informations obtenues d’Edward Snowden, il semble que tant que le Secret parfait est utilisé, OpenVPN n’a pas été compromis ou affaibli par la NSA.
Un récent audit participatif d’OpenVPN est maintenant terminé, tout comme un autre audit financé par un accès Internet privé. Aucune vulnérabilité grave affectant la vie privée des utilisateurs n’a été découverte. Quelques vulnérabilités ont été découvertes qui rendaient les serveurs OpenVPN potentiellement ouverts à une attaque par déni de service (DoS), mais celles-ci ont été corrigées dans OpenVPN 2.4.2.
OpenVPN est généralement considéré comme le protocole VPN le plus sécurisé disponible et est largement pris en charge dans l’industrie VPN. Je vais donc discuter du cryptage OpenVPN en détail ci-dessous.
Cryptage OpenVPN
Le cryptage OpenVPN comprend deux parties : le cryptage du canal de données et le cryptage du canal de contrôle. Le cryptage des canaux de données est utilisé pour sécuriser vos données. Le cryptage du canal de contrôle sécurise la connexion entre votre ordinateur et le serveur VPN.
Toute défense n’est aussi forte que son point le plus faible, il est donc regrettable que certains fournisseurs de VPN utilisent un cryptage beaucoup plus fort sur un canal que l’autre (généralement plus fort sur le canal de contrôle).
Il n’est pas rare, par exemple, de voir un service VPN annoncé comme utilisant un chiffrement AES-256 avec un chiffrement par prise de contact RSA-4096 et une authentification par hachage SHA-512. Cela semble très impressionnant jusqu’à ce que vous réalisiez qu’il ne s’agit que du cryptage du canal de contrôle et non du canal de données, qui est crypté avec un simple Blowfish-128 avec authentification de hachage SHA1. Ceci est fait pour des raisons de marketing uniquement.
Si un cryptage différent est utilisé sur les canaux de données et de contrôle, la puissance réelle de la connexion OpenVPN est mesurée par la suite de cryptage la plus faible utilisée.
Pour une sécurité maximale, le cryptage des données et du canal de contrôle doit être aussi fort que possible. Cependant, plus le cryptage utilisé est puissant, plus la connexion sera lente, ce qui explique pourquoi certains fournisseurs se trompent sur le cryptage des canaux de données.
Le cryptage des canaux de contrôle est également appelé cryptage TLS car TLS est la technologie utilisée pour négocier en toute sécurité la connexion entre votre ordinateur et le serveur VPN. Il s’agit de la même technologie utilisée par votre navigateur pour négocier en toute sécurité une connexion à un site Web crypté HTTPS.
- Le chiffrement du canal de contrôle consiste en un chiffrement, un chiffrement par prise de contact et une authentification par hachage.
- Le chiffrement du canal de données consiste en une authentification de chiffrement et de hachage.
Les fournisseurs VPN utilisent souvent le même niveau de cryptage pour les canaux de contrôle et de données. Dans nos revues et tableaux « feux de circulation », nous ne les listons séparément que si des valeurs différentes sont utilisées pour chaque canal.
Si nous déclarons qu’un fournisseur utilise un chiffrement AES-256, cela signifie qu’un chiffrement AES-256 est utilisé à la fois pour les canaux de contrôle et de données.*
(* Cela devrait être le cas, au moins. Certains examens antérieurs ne respectent pas nos lignes directrices actuelles, mais ceux-ci devraient être éliminés progressivement à temps).
Chiffrements
OpenVPN peut utiliser un certain nombre de chiffrements à clé symétrique afin de sécuriser les données sur les canaux de contrôle et de données. En pratique, les seuls utilisés par les fournisseurs de VPN commerciaux sont Blowfish, AES et (très rarement) Camellia.
Blowfish
Blowfish-128 est le chiffrement par défaut utilisé par OpenVPN. Les tailles de clés peuvent en théorie varier de 32 bits à 448 bits, mais Blowfish-128 est la seule version que vous êtes susceptible de rencontrer dans la nature.
Blowfish est souvent considéré comme suffisamment sûr à des fins occasionnelles, mais présente des faiblesses connues. Il a été créé par le célèbre cryptographe Bruce Schneier, qui, en 2007, a déclaré: « À ce stade, cependant, je suis étonné qu’il soit toujours utilisé. »
À notre avis, l’utilisation de Blowfish-128 est acceptable comme deuxième ligne de défense sur le canal de données OpenVPN. Il ne doit cependant pas être considéré comme sécurisé lorsqu’il est utilisé sur le canal de contrôle.
AES
AES est devenu le chiffrement à clé symétrique » étalon-or » de l’industrie VPN. AES est certifié NIST et est presque universellement considéré comme très sécurisé. AES-256 est utilisé par le gouvernement américain pour protéger les données « sécurisées ».
Le fait qu’il ait une taille de bloc de 128 bits plutôt que la taille de bloc de 64 bits de Blowfish signifie également qu’il peut mieux gérer des fichiers plus volumineux (plus de 4 Go) que Blowfish. De plus, le jeu d’instructions AES bénéficie d’une accélération matérielle intégrée sur la plupart des plates-formes.
AES est généralement disponible en tailles de clés 128 bits et 256 bits (AES 192 bits existe également). AES-128 reste sécurisé pour autant que quiconque le sache. Compte tenu de ce que nous savons maintenant de l’ampleur de l’assaut de la NSA contre les normes de cryptage, la plupart des experts s’accordent cependant à dire que l’AES-256 offre une marge de sécurité plus élevée.
Juste pour s’assurer que personne ne trouve jamais ce sujet trop facile, cependant, il y a un débat sur cette question. AES-128 a un calendrier clé plus fort que AES-256, ce qui conduit certains experts très éminents à affirmer que AES-128 est en fait plus fort que AES-256.
Le consensus général, cependant, est que AES-256 est plus fort.
Camellia
Camellia est un chiffrement sécurisé moderne et est au moins aussi sûr et rapide que AES. Il est disponible en tailles de clés de 128, 192 et 256 bits. Grâce à la certification NIST et à son utilisation par le gouvernement américain, l’AES est presque toujours utilisé à la place du camélia.
Mais comme je le discute ci-dessous, il y a des raisons de ne pas faire confiance aux chiffrements certifiés NIST. Le fait que Camellia soit un chiffrement non-NIST est la principale raison de le choisir plutôt que AES. Cette option n’est cependant que rarement disponible.
Il est également intéressant de noter que le camélia n’est pas aussi éprouvé pour sa faiblesse que l’EI.
Cryptage de la poignée de main
Afin de négocier en toute sécurité une connexion entre votre appareil et un serveur VPN, OpenVPN utilise une poignée de main TLS. Cela permet au client OpenVPN et au serveur VPN d’établir les clés secrètes avec lesquelles ils communiquent.
Pour protéger cette prise de contact, TLS utilise généralement le cryptosystème à clé publique RSA. Il s’agit d’un algorithme de chiffrement et de signature numérique utilisé pour identifier les certificats TLS/SSL. Il peut cependant également utiliser un échange de clés Diffie-Hellman ou ECDH à la place.
RSA
RSA est un système de chiffrement asymétrique – une clé publique est utilisée pour chiffrer les données, mais une clé privée différente est utilisée pour les déchiffrer. C’est la base de la sécurité sur Internet depuis environ 20 ans.
Il est maintenant bien établi que RSA avec une longueur de clé de 1024 bits (RSA-1024) ou moins n’est pas sécurisé et a presque certainement été craqué par la NSA. Il y a donc eu un mouvement concerté entre les sociétés Internet pour migrer loin de RSA-1024.
Malheureusement, certains services VPN continuent d’utiliser RSA-1024 pour protéger les poignées de main. Ce n’est pas bon.
RSA-2048 et supérieur est toujours considéré comme sécurisé. En soi, RSA ne fournit pas de secret direct parfait (PFS). Ceci peut cependant être mis en œuvre en incluant un échange de clés Diffie-Hellman (DH) ou à courbe elliptique Diffie-Hellman (ECDH) dans sa suite de chiffrement.
Dans ce cas, la force de la clé DH ou ECDH n’a pas d’importance car elle n’est utilisée que pour fournir une Parfaite confidentialité en avant. La connexion est sécurisée à l’aide de RSA.
Parce que cela peut semer la confusion, je noterai également que le cryptosystème RSA n’a rien à voir avec la société technologique américaine déshonorée RSA Security LLC. Cette société a délibérément affaibli ses produits phares de cryptage BSAFE après avoir été soudoyée à 10 millions de dollars par la NSA.
Diffie-Hellman et ECDH
L’échange de clés cryptographiques Diffie-Hellman (DH) est un chiffrement de poignée de main alternatif (rival) parfois utilisé par OpenVPN. Cela a généralement une longueur de clé de 2048 bits ou 4096 bits. Notez que tout ce qui est inférieur à DH-2048 doit être évité en raison de la susceptibilité à l’attaque logjam.
Le principal avantage d’une poignée de main Diffie-Hellman par rapport à RSA est qu’elle fournit nativement une Parfaite Confidentialité en avant. Comme déjà noté, cependant, le simple ajout d’un échange de clé DH à une poignée de main RSA atteint une fin similaire.
Diffie-Hellman a provoqué une énorme controverse sur sa réutilisation d’un ensemble limité de nombres premiers. Cela le rend vulnérable à la fissuration par un adversaire puissant, tel que la NSA. Diffie-Hellman à lui seul, par conséquent, ne permet pas un cryptage sécurisé de la poignée de main. C’est bien, cependant, lorsqu’il est utilisé dans le cadre d’une suite de chiffrement RSA.
La courbe elliptique Diffie-Hellman (ECDH) est une forme de cryptographie plus récente qui n’est pas vulnérable à cette attaque. En effet, il utilise les propriétés d’un type particulier de courbe algébrique au lieu de grands nombres premiers pour chiffrer les connexions.
ECDH peut être utilisé dans le cadre d’une poignée de main RSA pour fournir une confidentialité parfaite, ou peut chiffrer de manière sécurisée une poignée de main seule (avec une signature ECDSA). Cela fournit également PFS.
La longueur de clé ECDH commence à 384 bits. Ceci est considéré comme sécurisé, mais lorsqu’il est utilisé seul pour sécuriser une poignée de main TLS, le plus long sera le mieux (en termes de sécurité, de toute façon).
Authentification de hachage SHA
On parle également d’authentification de données ou de code d’authentification de message de hachage (HMAC).
L’algorithme de hachage sécurisé (SHA) est une fonction de hachage cryptographique utilisée (entre autres) pour authentifier les données et les connexions SSL/TLS. Cela inclut les connexions OpenVPN.
Il crée une empreinte digitale unique d’un certificat TLS valide, qui peut être validée par n’importe quel client OpenVPN. Même le plus petit changement est détectable. Si le certificat est falsifié, cela sera immédiatement détecté et la connexion refusée.
Ceci est important pour prévenir une attaque de l’homme du milieu (MitM), où un adversaire tente de détourner votre connexion OpenVPN vers l’un de ses propres serveurs au lieu de votre fournisseur VPN. Il pourrait le faire, par exemple, en piratant votre routeur.
Si un adversaire peut casser le hachage du certificat TLS authentique de votre fournisseur, il peut inverser le hachage pour créer un certificat falsifié. Votre logiciel VPN ouvert authentifierait alors la connexion comme authentique.
Le SHA est-il sécurisé ?
Lorsqu’il est utilisé pour protéger les sites Web HTTPS, SHA-1 est cassé. Cela est connu depuis un certain temps. Les sites Web SHA-1 peuvent toujours être trouvés, mais sont en cours de suppression. La plupart des navigateurs émettent désormais un avertissement lorsque vous essayez de vous connecter à un site Web sécurisé avec SHA-1.
Les fonctions de hachage SHA-2 et SHA-3 sont maintenant recommandées à la place et sont sécurisées. SHA-2 comprend SHA-256, SHA-384 et SHA-512. CependantOpen
OpenVPN utilise uniquement SHA pour HMAC. Je ne pense pas qu’il soit utile d’entrer dans trop de détails ici, mais l’authentification par hachage SHA fait partie de l’algorithme HMAC. Attaquer HMAC intégré avec SHA-1 est beaucoup plus difficile que de simplement attaquer la fonction de hachage SHA-1 elle-même.
En d’autres termes, le HMAC SHA-1 utilisé par OpenVPN est considéré comme sécurisé et il existe une preuve mathématique de cela. Bien sûr, HMAC SHA-2 et HMAC SHA-3 sont encore plus sûrs! En effet, le récent audit d’OpenVPN reconnaît que HMAC SHA-1 est sécurisé, mais recommande plutôt de passer à HMAC SHA-2 ou HMAC SHA-3.Les notes
NIST
AES, RSA, SHA-1 et SHA-2 ont toutes été développées et/ou certifiées par le National Institute of Standards and Technology (NIST) des États-Unis. C’est un organisme qui, de son propre aveu, travaille en étroite collaboration avec la NSA dans le développement de ses chiffrements.
Compte tenu de ce que nous savons maintenant des efforts systématiques de la NSA pour affaiblir ou créer des portes dérobées dans les normes internationales de cryptage, il y a tout lieu de remettre en question l’intégrité des algorithmes du NIST.
Le NIST réfute bien sûr fermement de telles allégations:
« Le NIST n’affaiblirait pas délibérément une norme cryptographique. »
Il a également invité le public à participer à un certain nombre de normes de cryptage proposées à venir, dans le but de renforcer la confiance du public.
Le New York Times a cependant accusé la NSA de contourner les normes de cryptage approuvées par le NIST en introduisant des portes dérobées indétectables ou en subvertissant le processus de développement public pour affaiblir les algorithmes.
Cette méfiance a encore été renforcée lorsque RSA Security (une division d’EMC) a demandé en privé aux clients de cesser d’utiliser un algorithme de cryptage qui contiendrait une faille conçue par la NSA. Cet algorithme avait également été approuvé par le NIST.
De plus, Dual_EC_DRBG (Générateur de bits Aléatoires Déterministes à courbe Elliptique Double) est une norme de chiffrement conçue par le NIST. Il est connu pour être peu sûr depuis des années.
En 2006, l’Université de technologie d’Eindhoven aux Pays-Bas a noté qu’une attaque contre elle était assez facile à lancer sur « un PC ordinaire. »Les ingénieurs de Microsoft ont également signalé une porte dérobée suspectée dans l’algorithme.
Malgré ces préoccupations, où le NIST est en tête, l’industrie suit. Microsoft, Cisco, Symantec et RSA incluent tous l’algorithme dans les bibliothèques cryptographiques de leurs produits. C’est en grande partie parce que le respect des normes du NIST est une condition préalable à l’obtention de contrats du gouvernement américain.
Les normes cryptographiques certifiées par le NIST sont à peu près omniprésentes dans le monde entier, dans tous les domaines de l’industrie et des entreprises qui dépendent de la confidentialité. Cela rend toute la situation plutôt effrayante.
Peut-être précisément parce que ces normes reposent tant sur ces normes, les experts en cryptographie n’ont pas voulu faire face au problème.
AES-CBC vs AES-GCM
Jusqu’à récemment, le seul chiffrement AES que vous étiez susceptible de rencontrer dans le monde VPN était AES-CBC (Cipher Block Chaining). Cela fait référence au mode de chiffrement par bloc, un sujet complexe qui ne vaut pas vraiment la peine d’être abordé ici. Bien que CBC puisse théoriquement présenter certaines vulnérabilités, le consensus général est que CBC est sécurisé. CBC est, en effet, recommandé dans le manuel d’OpenVPN.
OpenVPN prend désormais également en charge AES-GCM (mode Galios/Counter).
- GCM fournit l’authentification, éliminant le besoin d’une fonction de hachage HMAC SHA.
- Il est également légèrement plus rapide que CBC car il utilise l’accélération matérielle (en threadant sur plusieurs cœurs de processeur).
AES-CBC reste le mode d’utilisation le plus courant en général, mais nous commençons maintenant à rencontrer AES-GCM » dans la nature. »Compte tenu des avantages de GCM, cette tendance ne devrait que se poursuivre. D’un point de vue cryptographique, tho9ugh, AES-CBC et AES-GCM sont très sécurisés.
OpenVPN UDP vs OpenVPN TCP
OpenVPN peut s’exécuter sur TCP (Protocole de contrôle de transmission) ou UDP (Protocole de Datagramme utilisateur).
- TCP = fiable. Chaque fois qu’un ordinateur envoie un paquet réseau en utilisant TCP, il attend la confirmation que le paquet est arrivé avant d’envoyer le paquet suivant. Si aucune confirmation n’est reçue, il renverra le paquet. C’est ce qu’on appelle la correction d’erreur. Il y a une « livraison garantie » de toutes les données, mais cela peut être assez lent.
- UDP = rapide. En utilisant UDP, aucune correction d’erreur de ce type n’est effectuée. Les paquets sont simplement envoyés et reçus sans accusé de réception ni tentatives. Cela rend UDP beaucoup plus rapide que TCP, mais moins fiable.
Si vous avez le choix, je suggère d’utiliser le protocole UDP plus rapide, sauf si vous rencontrez des problèmes de connexion. C’est la stratégie par défaut adoptée par la plupart des fournisseurs de VPN.
Vaincre la censure avec OpenVPN sur le port TCP 443
L’un des grands avantages d’OpenVPN est qu’il peut être exécuté sur n’importe quel port, y compris le port TCP 443. Il s’agit du port utilisé par HTTPS, le protocole crypté qui sécurise tous les sites Web sécurisés.
Sans HTTPS, aucune forme de commerce en ligne, comme les achats ou les opérations bancaires, ne serait possible. Il est donc très rare que ce port soit bloqué.
En prime, le trafic VPN sur le port TCP 443 peut être acheminé à l’intérieur du cryptage TLS de la même manière que celui utilisé par HTTPS. Cela le rend beaucoup plus difficile à repérer en utilisant des techniques avancées d’inspection approfondie des paquets. Le port TCP 443 est donc le port privilégié pour éviter les blocs VPN.
De nombreux fournisseurs de VPN offrent la possibilité de modifier le numéro de port utilisé par OpenVPN à l’aide de leur logiciel personnalisé.
Même si le vôtre ne le fait pas, de nombreux fournisseurs VPN prennent en charge OpenVPN en utilisant le port TCP 443 au niveau du serveur. Vous pouvez y basculer avec une simple modification de votre configuration OpenVPN (.fichier ovpn). Il vaut donc la peine de poser des questions à votre fournisseur de VPN à ce sujet.
Il convient de noter que les ingénieurs réseau n’aiment pas cette tactique car TCP sur TCP est très inefficace. Quand il s’agit de vaincre la censure, cependant, cela fonctionne souvent.
SSTP utilise le port TCP 443 par défaut.
Résumés
Protocoles VPN
- PPTP est très peu sûr et doit être évité. Bien que sa facilité d’installation et sa compatibilité multiplateforme soient attrayantes, L2TP/ IPSec présente les mêmes avantages et est beaucoup plus sécurisé.
- L2TP / IPSec est une bonne solution VPN pour une utilisation non critique. Cela est particulièrement vrai sur les appareils hérités qui ne prennent pas en charge OpenVPN. Il a cependant été gravement compromis par la NSA.
- SSTP offre la plupart des avantages d’OpenVPN, mais n’est avant tout qu’un protocole Windows. Cela signifie qu’il est mieux intégré dans le système d’exploitation, mais il est mal pris en charge par les fournisseurs VPN grâce à cette limitation. De plus, sa nature propriétaire et le fait qu’elle ait été créée par Microsoft signifient que je ne lui fais pas confiance.
- IKEv2 est un très bon protocole (sécurisé et rapide). Les utilisateurs mobiles, en particulier, peuvent même le préférer à OpenVPN en raison de sa capacité améliorée à se reconnecter lorsqu’une connexion Internet est interrompue. Pour les utilisateurs de Blackberry, c’est à peu près la seule option disponible. Utilisez des versions open source dans la mesure du possible.
- OpenVPN est le protocole VPN recommandé dans la plupart des circonstances. Il est rapide, fiable, sécurisé et open source. Il n’a pas de vrais inconvénients, en soi., mais pour être vraiment sûr, il est important qu’il soit bien mis en œuvre. Cela signifie un cryptage fort avec une Parfaite confidentialité en Avant.
Cryptage OpenVPN
En matière de cryptage, le diable est dans les détails. Il est courant de voir les fournisseurs de VPN dire qu’ils utilisent un cryptage AES OpenVPN » ultra-fort 256 bits « , mais cela ne nous en dit pas grand-chose en réalité. AES-256 est en effet un chiffrement puissant, mais si d’autres aspects de la suite de chiffrement utilisée sont faibles, vos données ne seront pas sécurisées.
- Chiffrement – cela protège vos données réelles. AES-256 est maintenant la norme de l’industrie et est recommandé.
- Poignée de main – cela sécurise votre connexion au serveur VPN. RSA-2048+ ou ECDH-384+ sont sécurisés. Il est important de noter que les poignées de main RSA-1024 et Diffie-Hellman ne le sont pas.
- Authentification par hachage – crée une empreinte digitale unique, qui est utilisée pour valider les données et les certificats TLS (c’est-à-dire pour vérifier que le serveur auquel vous vous connectez est vraiment celui auquel vous pensez vous connecter). HMAC SHA-1 est tout à fait correct, mais HMAC SHA-2 (SHA-256, SHA-384 et SHA-512) et HMAC SHA-3 sont encore plus sûrs! Notez que l’authentification par hachage n’est pas requise si le chiffrement AES-GCM est utilisé.
- Perfect Forward Secrecy (PFS) – cela garantit que de nouvelles clés de chiffrement sont créées pour chaque session. OpenVPN ne doit pas être considéré comme sécurisé à moins que PFS ne soit implémenté. Cela peut être fait soit en incluant un échange de clés Diffie-Hellman ou ECDH dans une poignée de main RSA, soit une poignée de main DH ou ECDH.
- Le chiffrement n’est aussi sûr que son point le plus faible. Cela signifie que les paramètres de chiffrement doivent être puissants à la fois sur les canaux de données et de contrôle.
- L’utilisation de longueurs de bits plus élevées pour les chiffrements et les clés est presque toujours plus sécurisée, mais cela a un coût en vitesse.
OpenVPN négociera les chiffrements entre le client et le serveur à volonté. À moins que des paramètres très spécifiques ne soient définis, OpenVPN peut utiliser par défaut des paramètres faibles. Au minimum, OpenVPN utilisera par défaut le chiffrement Blowfish-128, la prise de contact RSA-1024 sans PFS et l’authentification de hachage HMAC SHA-1.
Conclusion
J’espère que vous avez maintenant une meilleure compréhension de ce qui fait une connexion VPN sécurisée. Cependant, lorsqu’il s’agit de configurer correctement un VPN, le cryptage n’est que la moitié de l’histoire. L’autre moitié veille à ce qu’aucun trafic n’entre ou ne quitte votre ordinateur en dehors de la connexion VPN.
Pour en savoir plus à ce sujet, veuillez consulter notre Guide complet sur les fuites IP.