Question:
Quelle est la différence de sécurité entre une connexion VPN et SSL?
Jonas
2011-01-06 19:12:46 UTC
view on stackexchange narkive permalink

Je voudrais concevoir une application client-serveur où le serveur est placé sur Internet. Je suppose que je pourrais configurer la connexion client-serveur en utilisant VPN (utilise-t-il IPSec?) Ou en utilisant une connexion SSL (éventuellement https). Quelles sont les différences entre VPN / IPsec et SSL / https pour sécuriser une connexion client-serveur sur Internet?

plus d'informations sur votre clientèle cible et la nature de votre application vous aideraient à obtenir une meilleure réponse et nous aideraient à éviter de nous lancer dans des tangentes indépendantes :)
Comment choisir un fournisseur VPN? http://security.stackexchange.com/questions/3973/how-do-i-pick-a-vpn-provider
Pour une compréhension claire du VPN: regardez cette vidéo http://www.youtube.com/watch?v=KFODy-dHcU8
Huit réponses:
#1
+77
Thomas Pornin
2011-01-06 20:12:58 UTC
view on stackexchange narkive permalink

VPN signifie «réseau privé virtuel». C'est un concept générique qui désigne une partie d'un plus grand réseau (par exemple l'Internet en général) qui est logiquement isolée du plus grand réseau par des moyens non matériels (c'est ce que signifie «virtuel»): ce n'est pas que nous utilisons distinct câbles et interrupteurs; au contraire, l'isolement est effectué par l'utilisation de la cryptographie.

SSL (maintenant connu sous le nom de TLS) est une technologie qui utilise un support de transport bidirectionnel et fournit un support bidirectionnel sécurisé . Il nécessite que le support de transport sous-jacent soit "principalement fiable" (lorsqu'il n'est pas attaqué, les octets de données sont transférés dans l'ordre, sans perte ni répétition). SSL assure la confidentialité, l'intégrité (les modifications actives sont détectées de manière fiable) et une certaine authentification (généralement une authentification serveur, éventuellement une authentification client-serveur mutuelle si vous utilisez des certificats des deux côtés).

Donc, VPN et SSL ne sont pas du même niveau. Une implémentation VPN nécessite une certaine cryptographie à un moment donné. Certaines implémentations VPN utilisent en fait SSL, ce qui donne un système en couches: le VPN transfère les paquets IP (du réseau virtuel) en les sérialisant sur une connexion SSL, qui elle-même utilise TCP comme support de transport, qui est construit sur des paquets IP (sur le réseau physique non protégé). IPsec est une autre technologie qui est plus profondément intégrée dans les paquets, qui supprime certaines de ces couches et est donc un peu plus efficace (moins de surcharge de bande passante). D'un autre côté, IPsec doit être géré assez profondément dans le code réseau du système d'exploitation, alors qu'un VPN basé sur SSL n'a besoin que d'un moyen de détourner le trafic entrant et sortant; le reste peut être en panne dans un logiciel de niveau utilisateur.

Si j'ai bien compris votre question, vous avez une application dans laquelle certaines machines doivent communiquer sur Internet. Vous avez des exigences de sécurité et envisagez d'utiliser SSL (sur TCP sur IP) ou éventuellement HTTPS (qui est HTTP sur SSL sur TCP sur IP), ou de configurer un VPN entre le client et le serveur et en utilisant TCP "clair" dans ce réseau privé (le point du VPN est qu'il vous donne un réseau sécurisé où vous n'avez plus à vous soucier de la confidentialité). Avec SSL, votre code de connexion doit être conscient de la sécurité; du point de vue de la programmation, vous n'ouvrez pas une connexion SSL comme s'il s'agissait "d'une simple socket". Certaines bibliothèques le rendent relativement simple, mais vous devez quand même gérer la sécurité au niveau de l'application. Un VPN, en revanche, est configuré au niveau du système d'exploitation, donc la sécurité n'est pas entre votre application sur le client et votre application sur le serveur, mais entre le système d'exploitation client et le système d'exploitation du serveur: ce n'est pas la même sécurité modèle, bien que dans de nombreuses situations, la différence ne soit pas pertinente.

En pratique, un VPN signifie qu'une étape de configuration est nécessaire sur le système d'exploitation client. C'est assez invasif. L'utilisation de deux applications VPN sur le même client peut être problématique (en termes de sécurité, car le client agit alors comme un pont qui relie deux VPN qui devraient nominalement être isolés l'un de l'autre, et également en pratique, en raison de collisions d'adresse espace). Si le client est un client, lui faire configurer correctement un VPN ressemble à une tâche impossible. Cependant , un VPN signifie que les applications n'ont pas besoin d'être conscientes de la sécurité, ce qui facilite grandement l'intégration de logiciels tiers dans votre application.

Pour ajouter à ce qui précède, étant donné que de nombreuses applications n'implémentent pas correctement les bibliothèques SSL, ce qui entraîne de sérieux compromis de sécurité, il peut être judicieux d'envisager d'utiliser un VPN pour vous assurer de ne pas vous fier à l'implémentation SSL individuelle de chaque application, plutôt qu'à une seule. qui a été bien audité (solutions VPN open-source comme OpenVPN).
Pour clarifier, SSL se produit au niveau de la couche 7 dans le modèle OSI - chaque application doit avoir sa propre implémentation. (la plupart) les VPN fonctionnent au niveau de la couche réseau (3), ce qui signifie que tout ce qui se passe aux couches supérieures n'est au moins pas exposé à nu au Big Bad Internet. Cela ne signifie pas qu'ils sont en sécurité, cette hypothèse peut être dangereuse.
Sauf erreur, du point de vue pratique, on utilise le VPN comme un réseau ** privé **. Globalement / Pratiquement, SSL est destiné au public public, VPN vise un réseau privé. * C'est certainement trop simpliste. Si c'est le cas, ne blâmez pas, mais expliquez. *
@Strukt: vous préservez l'intimité de votre maison en fermant la porte. Les gens, de l'extérieur, voient la surface de la porte fermée.
@ThomasPornin ouais, c'est la confidentialité * virtuelle *. On voit la porte, mais on ne sait pas ce qu'il y a derrière ... SSL fait de même, ce n'est pas une porte mais des tuyaux si on veut. Bref, pour moi ** SSL et VPN chiffrent tous les deux les données de trafic, mais SSL permet à quiconque d'obtenir / publier des données, tandis que le VPN ne traite les données qu'avec les clients autorisés. ** Non?
@Strukt: no. SSL est la porte, VPN est le contenu de la maison. Vous n'obtenez pas l'un ou l'autre; ils ne doivent pas être opposés. SSL est une technologie qui garantit certaines propriétés de sécurité, qui sont une belle pierre angulaire pour une variété d'utilisations, l'un d'entre eux étant "un VPN". (Je suppose que lorsque vous lisez "SSL", vous pensez "Site Web avec` https: // `, ce qui est probablement la source de la confusion terminologique.)
Merci. C'est pourquoi je suis déroutant. Penser https. Btw j'étais sûr que VPN crypte les données. Lorsque j'utilise OpenVPN, il y a une sous-couche OpenSSL à l'intérieur. Eh bien, avec OpenSSL uniquement, les données sont cryptées. Avec VPN, ils ne sont * trafiqués * qu'avec des clients connus / authentifiés. VPN = SSL + authentification * avant * connexion = La clé pour entrer dans la maison + la clé pour "décrypter" l'intérieur. Alors que SSL n'est qu'une question de cryptage. ... toujours incorrecte ? // SSL est un cryptage, VPN est un réseau. Et la confidentialité virtuelle est assurée par: l'authentification SSL +.
#2
+15
David Stubley
2011-01-06 19:48:57 UTC
view on stackexchange narkive permalink

Les deux ont des problèmes de sécurité s'ils ne sont pas configurés correctement. Mais commençons par quelques définitions:

Cisco a une bonne définition d'un VPN:

VPN peut prendre plusieurs formes. Un VPN peut se trouver entre deux systèmes d'extrémité ou entre deux ou plusieurs réseaux. Un VPN peut être construit en utilisant des tunnels ou un cryptage (à pratiquement n'importe quelle couche de la pile de protocoles), ou les deux, ou encore construit en utilisant MPLS ou l'une des méthodes de «routeur virtuel». Un VPN peut être constitué de réseaux connectés au réseau d'un fournisseur de services par des lignes louées, Frame Relay ou ATM, ou un VPN peut être composé d'abonnés commutés se connectant à des services centralisés ou à d'autres abonnés commutés. https://www.cisco.com/c/en_in/products/security/vpn-endpoint-security-clients/what-is-vpn.html

Quant à SSL:

SSL (Secure Sockets Layer), également appelé TLS (Transport Layer Security), est un protocole qui permet à deux programmes de communiquer entre eux de manière sécurisée. Comme TCP / IP, SSL permet aux programmes de créer des «sockets», des points de terminaison pour la communication et d'établir des connexions entre ces sockets. Mais SSL, qui repose sur TCP, ajoute la capacité supplémentaire de chiffrement. http://www.boutell.com/newfaq/definitions/ssl.html

En ce qui concerne votre question, la principale différence est que SSL utilise souvent du navigateur pour crypter les données entre l'utilisateur final et le serveur, et est couramment utilisé pour les zones de sites Web qui nécessitent la protection de la confidentialité et de l'intégrité des données.

VPN / IPSEC nécessite un logiciel client VPN spécifique et est généralement pour fournir un accès à distance à des systèmes ou des réseaux. Il y a aussi la possibilité d'opter pour L2TP ou L2F au lieu d'IPSEC.

Cependant, les VPN SSL sont de plus en plus répandus comme moyen de fournir un accès aux réseaux / systèmes via le navigateur Web. Cette approche présente de nombreux avantages car elle utilise le navigateur Web commun pour activer la connexion sécurisée. La granularité de cette approche est également un bon moyen de contrôler les accès à des applications spécifiques.

En ce qui concerne les problèmes de sécurité -

SSL -

  • Des cyphers de sécurité faibles pourraient conduire à la capacité de mener des attaques de type homme du milieu contre l'utilisateur final, entraînant une perte de confidentialité / intégrité des données.

    • Mélange mal configuré du contenu HTTP / HTTPS pourrait également entraîner une perte de confidentialité / intégrité des données.

IPSEC -

Btw @David tous les VPN SSL ne sont pas limités aux clients navigateur. Il existe des produits VPN SSL (les noms m'échappent) qui livrent un client, qui peut rediriger tous les paquets TCP / IP via le tunnel SSL, pas seulement les requêtes HTTPS visant le serveur.
@AviD - tout à fait d'accord, à titre d'exemple OpenVPN fait ce que vous dites - "OpenVPN est un VPN SSL complet qui implémente l'extension de réseau sécurisé OSI couche 2 ou 3 en utilisant le protocole SSL / TLS standard de l'industrie." Mais vous êtes de retour à l'utilisation du logiciel installé sur le client.
Oui, mais l'installation et la distribution sont alors beaucoup plus simples. Cela peut toujours être diffusé sur le Web ...
#3
+7
AviD
2011-01-07 02:09:11 UTC
view on stackexchange narkive permalink

Quelques très bonnes réponses ici, je ne répéterai pas ce qui a déjà été dit.
Cependant, un point qui me manque - SSL est beaucoup plus facile à configurer de manière ad hoc, surtout si vous ne le faites pas Je n'ai pas besoin de certificats clients.
IPsec, d'autre part, requiert toujours des certificats clients (en supposant une configuration normale et typique), et il y a aussi d'autres difficultés dans la configuration initiale et la distribution.

En tant que tel, IPsec est généralement plus adapté à un réseau contrôlé, et moins sur l'Internet sauvage et inconnu. Pour plus d’informations, consultez cette autre question: " Informations sur IPsec (Internet Protocol Security)".

Ainsi, pour revenir à votre question réelle, dans presque tous les cas où vous mettez le serveur sur Internet, vous ne vous attendez pas à ce que vos utilisateurs se connectent en utilisant un VPN. (Des exceptions existent, bien sûr.)
Au lieu de cela, configurez simplement les certificats SSL sur votre serveur, pointez vos clients vers celui-ci et vous êtes prêt à partir (assurez-vous simplement de valider explicitement le certificat, en fonction de la langue / technologie / bibliothèque que vous utilisez ...)

#4
+5
Eugene Kogan
2011-01-25 00:27:42 UTC
view on stackexchange narkive permalink

Examinez-vous ces options pour créer un VPN sécurisé? SSL est généralement plus facile à déployer et mieux pris en charge pour un type de VPN de bureau à réseau, par exemple lorsqu'un employé à domicile se connecte au réseau de l'entreprise. Si vous effectuez un déploiement plus complexe, tel qu'un VPN chiffré de réseau à réseau (par exemple, entre deux organisations différentes), alors IPSEC fournira un meilleur contrôle et plus d'options de personnalisation.

Il existe un livre blanc décent sur le sujet par Juniper Networks, bien qu'il puisse être biaisé par les points forts de leurs produits.

ce livre blanc dit qu'ipsec est utilisé pour connecter deux branches distantes. Un seul utilisateur distant ne peut-il pas connecter un seul ordinateur à la branche distante? Pourquoi n'y est-il pas question?
#5
+2
Christian
2011-01-06 19:35:35 UTC
view on stackexchange narkive permalink

Cela pourrait être une réponse très longue, mais je vais essayer la plus courte.

Lorsque vous utilisez https, votre navigateur (agit comme un client SSL) ne cryptera que cette connexion au serveur Web.

Lorsque vous utilisez VPN, vous avez besoin d'un client spécial et établissez un tunnel entre le client et le serveur. Ensuite, vous pouvez configurer le trafic qui passe par le tunnel. Cela peut être tout ou simplement votre trafic http.

Lorsque vous souhaitez uniquement configurer une application client / serveur capable de communiquer avec http, la solution la plus simple doit être le trafic https, lorsqu'il doit être chiffré . Il est beaucoup plus compliqué de configurer un VPN et de le maintenir.

#6
+2
nealmcb
2011-01-06 23:12:05 UTC
view on stackexchange narkive permalink

Cela dépend de votre modèle de menace, de la nature du protocole client-serveur dont vous avez besoin et de vos clients.

Est-ce destiné aux utilisateurs finaux non avertis? Utilisez ensuite SSL - à ce stade, la complexité du VPN ne fera que désactiver de nombreux utilisateurs potentiels.

Voulez-vous déployer le client en tant qu'application de navigateur (peut-être avec javascript)? Là encore, https / ssl semble être la voie à suivre.

Le serveur a-t-il jamais besoin d'avertir le client de manière asynchrone? Alors HTTPS n'est peut-être pas ce que vous voulez (bien qu'il puisse être fait pour le faire).

Quel est le risque de phishing? S'il était facile pour les attaquants d'attirer les gens vers eux en tant que MITM, SSL est probablement meilleur car il authentifie chaque serveur auprès du client. Un VPN typique, une fois configuré, n'aide pas l'utilisateur à éviter un attaquant qui s'est introduit dans d'autres hôtes sur le VPN. Ce ne serait probablement pas un risque énorme, mais encore une fois, cela dépend de ce que vous faites.

Si vous déployez cela dans le cloud (client et serveur), alors vous pouvez obtenir une sorte de VPN presque gratuitement, ce qui peut répondre à des menaces très occasionnelles.

#7
+2
Steve
2011-01-25 00:07:47 UTC
view on stackexchange narkive permalink

Eh bien, la différence est un peu comme la différence entre un cercle et un carré (les deux sont des formes, mais diffèrent grandement). Ils sécurisent tous les deux les communications, mais le font à différents niveaux et de différentes manières. IPSEC est un cryptage et une autorisation filaires, tandis que SSL est spécifique à l'application.

IPSEC a un contrôle d'accès alors que SSL n'en a pas.

Pouvez-vous être plus précis avec ce que vous essayez de comprendre?

sécurisation des données au niveau IP (ipsec) y a-t-il un avantage par rapport à la sécurisation des données au niveau de l'application (ssl)?
#8
  0
inf3rno
2017-12-19 02:46:46 UTC
view on stackexchange narkive permalink

Je suis loin d'être un expert en sécurité, mais je pense que la différence la plus importante entre les deux ne réside pas dans les autres réponses.

Par VPN, la communication se déroule de cette façon:

  Client HTTP <- [raw] -> Client VPN <- [crypté] -> VPN server <- [raw] -> HTTP server  

Par HTTP, cela se passe de cette façon:

  client HTTP <- [crypté] -> serveur HTTP  

Ainsi, par VPN, les données non protégées peuvent voyager sur le réseau local des clients et sur le réseau local réseau des serveurs. Si vous ne faites pas entièrement confiance à ces réseaux, il est judicieux d'utiliser des HTTP. Sachez que le VPN et les paires client-client HTTP, serveur-serveur ne sont pas nécessairement sur des ordinateurs identiques, par ex. les routeurs peuvent être configurés pour être des serveurs ou des clients VPN.

Étant donné que ces technologies fonctionnent à un niveau différent, elles ne sont pas mutuellement exclusives, vous pouvez donc utiliser les deux si vous voulez une autre couche de protection et que vous ne le faites pas faites attention à la baisse de performance qui l'accompagne ou vous pouvez simplement utiliser l'un d'eux, qui correspond le mieux à vos besoins. Pour autant que je sache, les deux technologies sont considérées comme sécurisées si elles sont correctement configurées.



Ce Q&R a été automatiquement traduit de la langue anglaise.Le contenu original est disponible sur stackexchange, que nous remercions pour la licence cc by-sa 2.0 sous laquelle il est distribué.
Loading...