Frage:
Was ist der Sicherheitsunterschied zwischen einer VPN- und einer SSL-Verbindung?
Jonas
2011-01-06 19:12:46 UTC
view on stackexchange narkive permalink

Ich möchte eine Client-Server-Anwendung entwerfen, bei der der Server im Internet platziert ist. Ich gehe davon aus, dass ich die Client-Server-Verbindung über VPN (mit IPSec?) Oder über eine SSL-Verbindung (möglicherweise https) einrichten kann. Was sind die Unterschiede zwischen VPN / IPsec und SSL / https zum Sichern einer Client-Server-Verbindung über das Internet?

Mehr Einblick in Ihren beabsichtigten Kundenstamm und die Art Ihrer Anwendung würde Ihnen helfen, eine bessere Antwort zu erhalten und zu vermeiden, dass wir uns auf nicht verwandte Tangenten einlassen :)
Wie wähle ich einen VPN-Anbieter aus? http://security.stackexchange.com/questions/3973/how-do-i-pick-a-vpn-provider
Für ein klares Verständnis von VPN: Sehen Sie sich dieses Video an: http://www.youtube.com/watch?v=KFODy-dHcU8
Acht antworten:
#1
+77
Thomas Pornin
2011-01-06 20:12:58 UTC
view on stackexchange narkive permalink

VPN bedeutet "Virtual Private Network". Es handelt sich um ein generisches Konzept, das einen Teil eines größeren Netzwerks (z. B. das Internet insgesamt) bezeichnet, der logisch vom größeren Netzwerk durch nicht hardwarebezogene Mittel isoliert ist (was "virtuell" bedeutet): Es ist nicht so, dass wir unterschiedliche verwenden Kabel und Schalter; Die Isolierung erfolgt vielmehr mithilfe von Kryptografie.

SSL (jetzt als TLS bekannt) ist eine Technologie, die ein bidirektionales Transportmedium verwendet und ein gesichertes bidirektionales Medium bereitstellt. Das zugrunde liegende Transportmedium muss "größtenteils zuverlässig" sein (wenn es nicht angegriffen wird, werden Datenbytes in der richtigen Reihenfolge ohne Verlust und ohne Wiederholung übertragen). SSL bietet Vertraulichkeit, Integrität (aktive Änderungen werden zuverlässig erkannt) und eine gewisse Authentifizierung (normalerweise Serverauthentifizierung, möglicherweise gegenseitige Client-Server-Authentifizierung, wenn Zertifikate auf beiden Seiten verwendet werden).

VPN und SSL stammen also nicht von der das selbe Level. Eine VPN -Implementierung erfordert irgendwann eine Kryptografie. Einige VPN-Implementierungen verwenden tatsächlich SSL, was zu einem geschichteten System führt: Das VPN überträgt IP-Pakete (des virtuellen Netzwerks), indem es sie über eine SSL-Verbindung serialisiert, die selbst TCP als Transportmedium verwendet, das über IP-Pakete (auf dem) aufgebaut ist physisches ungeschütztes Netzwerk). IPsec ist eine weitere Technologie, die tiefer in die Pakete integriert ist, einige dieser Schichten unterdrückt und daher etwas effizienter ist (weniger Bandbreiten-Overhead). Auf der anderen Seite muss IPsec ziemlich tief im Netzwerkcode des Betriebssystems verwaltet werden, während ein SSL-basiertes VPN nur eine Möglichkeit benötigt, eingehenden und ausgehenden Datenverkehr zu entführen. Der Rest kann in Software auf Benutzerebene ausgefallen sein.

Soweit ich Ihre Frage verstehe, haben Sie eine Anwendung, in der einige Computer über das Internet kommunizieren müssen. Sie haben einige Sicherheitsanforderungen und möchten entweder SSL (über TCP über IP) oder möglicherweise HTTPS (HTTP über SSL über TCP über IP) verwenden oder ein VPN zwischen Client und Server einrichten Verwenden von "einfachem" TCP in diesem privaten Netzwerk (der Punkt des VPN ist, dass Sie ein sicheres Netzwerk erhalten, in dem Sie sich nicht mehr um die Vertraulichkeit kümmern müssen). Bei SSL muss Ihr Verbindungscode die Sicherheit berücksichtigen. Aus programmtechnischer Sicht öffnen Sie eine SSL-Verbindung nicht so, als wäre es "nur ein Socket". Einige Bibliotheken machen es relativ einfach, aber dennoch müssen Sie die Sicherheit auf Anwendungsebene verwalten. Ein VPN hingegen wird auf Betriebssystemebene konfiguriert, sodass die Sicherheit nicht zwischen Ihrer Anwendung auf dem Client und Ihrer Anwendung auf dem Server besteht, sondern zwischen dem Client-Betriebssystem und dem Server-Betriebssystem. Dies ist nicht die gleiche Sicherheit Modell, obwohl sich in vielen Situationen herausstellt, dass der Unterschied nicht relevant ist.

In der Praxis bedeutet ein VPN, dass auf dem Client-Betriebssystem ein Konfigurationsschritt erforderlich ist. Es ist ziemlich invasiv. Die Verwendung von zwei VPN-basierten Anwendungen auf demselben Client kann problematisch sein (sicherheitstechnisch, da der Client dann als Brücke fungiert, die zwei VPNs miteinander verbindet, die nominell voneinander isoliert werden sollten, und auch in der Praxis aufgrund von Adresskollisionen Raum). Wenn der Client ein Kunde ist, scheint es eine unmögliche Aufgabe zu sein, ein VPN ordnungsgemäß zu konfigurieren. Allerdings bedeutet ein VPN, dass Anwendungen sich der Sicherheit nicht bewusst sein müssen. Dies erleichtert die Integration von Software von Drittanbietern in Ihre Anwendung erheblich.

Angesichts der Tatsache, dass viele Anwendungen SSL-Bibliotheken nicht ordnungsgemäß implementieren, was zu schwerwiegenden Sicherheitskompromissen führt, ist es möglicherweise ratsam, VPN zu verwenden, um sicherzustellen, dass Sie sich nicht auf die einzelne SSL-Implementierung jeder Anwendung verlassen, sondern auf eine das wurde gut geprüft (Open-Source-VPN-Lösungen wie OpenVPN).
Zur Verdeutlichung geschieht SSL auf Schicht 7 im OSI-Modell - jede Anwendung muss ihre eigene Implementierung haben. (die meisten) VPNs arbeiten auf der Netzwerkebene (3), was bedeutet, dass alles, was auf höheren Ebenen geschieht, zumindest nicht nackt dem Big Bad Internet ausgesetzt ist. Das bedeutet nicht, dass sie sicher sind, diese Annahme kann gefährlich sein.
Sofern ich mich nicht irre, verwendet man VPN aus praktischer Sicht als ** privates ** Netzwerk. Weltweit / praktisch ist SSL für das öffentliche Publikum gedacht, VPN zielt auf ein privates Netzwerk ab. * Das ist sicherlich zu einfach. Wenn ja, bitte nicht beschuldigen, sondern erklären. *
@Strukt: Sie bewahren die Privatsphäre Ihres Hauses, indem Sie die Tür schließen. Menschen von außen sehen die Oberfläche der geschlossenen Tür.
@ThomasPornin Ja, es ist * virtuelle * Privatsphäre. Man sieht die Tür, weiß aber nicht, was dahinter steckt ... SSL macht das Gleiche, es ist keine Tür, sondern Rohre, wenn man will. Kurz gesagt, für mich ** SSL und VPN verschlüsseln beide Verkehrsdaten, aber SSL ermöglicht es jedem, Daten abzurufen / zu veröffentlichen, während VPN Daten nur mit den autorisierten Clients verarbeitet. ** Nein?
@Strukt:-Nr. SSL ist die Tür, VPN ist der Inhalt des Hauses. Sie bekommen nicht das eine oder das andere; sie sind nicht zu widersprechen. SSL ist eine Technologie, die einige Sicherheitseigenschaften gewährleistet, die ein guter Baustein für eine Vielzahl von Verwendungszwecken sind, darunter "ein VPN". (Ich nehme an, wenn Sie "SSL" lesen, denken Sie "Website mit" https: // ", was wahrscheinlich die Ursache für die Terminologie-Verwirrung ist.)
Vielen Dank. Deshalb bin ich verwirrend. Denken https. Übrigens war ich mir sicher, dass VPN Daten verschlüsselt. Wenn ich OpenVPN verwende, befindet sich darin eine Unterschicht OpenSSL. Nun, nur mit OpenSSL werden Daten verschlüsselt. Mit VPN werden sie nur mit bekannten / authentifizierten Clients * verkehrt *. VPN = SSL + Authentifizierung * vor * Verbindung = Der Schlüssel zum Betreten des Hauses + der Schlüssel zum "Entschlüsseln" des Inneren. Während SSL nur eine Frage der Verschlüsselung ist. ... immer noch falsch ? // SSL ist Verschlüsselung, VPN ist Netzwerk. Der virtuelle Datenschutz wird gewährleistet durch: SSL + -Authentifizierung.
#2
+15
David Stubley
2011-01-06 19:48:57 UTC
view on stackexchange narkive permalink

Beide haben Sicherheitsprobleme, wenn sie nicht richtig konfiguriert sind. Beginnen wir jedoch zunächst mit einigen Definitionen:

Cisco hat eine gute Definition eines VPN:

VPN kann verschiedene Formen annehmen. Ein VPN kann sich zwischen zwei Endsystemen oder zwischen zwei oder mehr Netzwerken befinden. Ein VPN kann mithilfe von Tunneln oder Verschlüsselung (auf im Wesentlichen jeder Ebene des Protokollstapels) oder beidem oder alternativ mithilfe von MPLS oder einer der Methoden des „virtuellen Routers“ erstellt werden. Ein VPN kann aus Netzwerken bestehen, die über Mietleitungen, Frame Relay oder Geldautomaten mit dem Netzwerk eines Dienstanbieters verbunden sind, oder ein VPN kann aus DFÜ-Teilnehmern bestehen, die eine Verbindung zu zentralisierten Diensten oder anderen DFÜ-Teilnehmern herstellen. https://www.cisco.com/c/en_in/products/security/vpn-endpoint-security-clients/what-is-vpn.html

Was SSL betrifft:

SSL (Secure Sockets Layer), auch als TLS (Transport Layer Security) bezeichnet, ist ein Protokoll, mit dem zwei Programme auf sichere Weise miteinander kommunizieren können. Wie bei TCP / IP können Programme mit SSL "Sockets" und Endpunkte für die Kommunikation erstellen und Verbindungen zwischen diesen Sockets herstellen. SSL, das auf TCP aufbaut, bietet jedoch zusätzliche Verschlüsselungsmöglichkeiten. http://www.boutell.com/newfaq/definitions/ssl.html

In Bezug auf Ihre Frage besteht der Hauptunterschied darin, dass SSL häufig verwendet wird des Browsers zum Verschlüsseln von Daten zwischen Endbenutzer und Server und wird üblicherweise für Bereiche von Websites verwendet, die den Schutz der Vertraulichkeit und Integrität der Daten erfordern.

VPN / IPSEC erfordert eine spezielle VPN-Client-Software und ist im Allgemeinen für die Bereitstellung des Fernzugriffs auf Systeme oder Netzwerke. Es besteht auch die Möglichkeit, L2TP oder L2F anstelle von IPSEC zu wählen.

SSL-VPNs werden jedoch immer häufiger eingesetzt, um den Zugriff auf Netzwerke / Systeme über den Webbrowser zu ermöglichen. Dieser Ansatz hat viele Vorteile, da er den allgemeinen Webbrowser verwendet, um die sichere Verbindung zu ermöglichen. Die Granularität dieses Ansatzes ist auch eine gute Möglichkeit, den Zugriff auf bestimmte Anwendungen zu steuern.

In Bezug auf Sicherheitsprobleme -

SSL -

  • Schwache Sicherheitsverschlüsselungen können dazu führen, dass Man-in-the-Middle-Angriffe gegen den Endbenutzer ausgeführt werden können, was zu einem Verlust der Vertraulichkeit / Integrität der Daten führt.

    • Schlecht konfigurierte Mischung von HTTP / HTTPS-Inhalten kann auch zu einem Verlust der Vertraulichkeit / Integrität der Daten führen.

IPSEC -

Übrigens sind @David nicht alle SSL-VPNs auf Browser-Clients beschränkt. Es gibt einige SSL-VPN-Produkte (Namen entgehen mir), die einen Client bereitstellen, der alle TCP / IP-Pakete über den SSL-Tunnel umleiten kann, nicht nur die an den Server gerichteten HTTPS-Anforderungen.
@AviD - stimme vollkommen zu, als Beispiel macht OpenVPN das, was Sie sagen - "OpenVPN ist ein voll ausgestattetes SSL-VPN, das eine sichere Netzwerkerweiterung der OSI-Schicht 2 oder 3 unter Verwendung des branchenüblichen SSL / TLS-Protokolls implementiert." Dann verwenden Sie wieder die auf dem Client installierte Software.
Ja, aber dann sind Einrichtung und Verteilung viel einfacher. Dies kann immer noch über das Internet geliefert werden ...
#3
+7
AviD
2011-01-07 02:09:11 UTC
view on stackexchange narkive permalink

Einige sehr gute Antworten hier, ich werde nicht wiederholen, was bereits gesagt wurde.
Ein Punkt, den ich jedoch vermisst habe - SSL ist auf Ad-hoc-Basis viel einfacher einzurichten, insbesondere wenn Sie es nicht tun Für Client-Zertifikate sind keine Client-Zertifikate erforderlich.
Für IPSec hingegen sind immer Client-Zertifikate erforderlich (unter der Annahme eines normalen, typischen Setups), und es gibt auch andere Schwierigkeiten bei der Ersteinrichtung und -verteilung.

Als solches ist IPsec normalerweise besser für ein kontrolliertes Netzwerk geeignet und weniger für das wilde wilde unbekannte Internet. Weitere Informationen finden Sie unter dieser anderen Frage: " Fakten zu IPSec (Internet Protocol Security)".

Wenn Sie also zu Ihrer eigentlichen Frage zurückkehren, erwarten Sie in fast allen Fällen, in denen Sie den Server ins Internet stellen, nicht, dass Ihre Benutzer eine Verbindung über ein VPN herstellen. (Es gibt natürlich Ausnahmen.)
Richten Sie stattdessen einfach SSL-Zertifikate auf Ihrem Server ein, richten Sie Ihre Clients darauf und los geht's (stellen Sie einfach sicher, dass Sie das Zertifikat je nach Sprache explizit validieren / Technologie / Bibliothek, die Sie verwenden ...)

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

Sehen Sie sich diese Optionen an, um ein sicheres VPN zu erstellen? SSL ist im Allgemeinen einfacher bereitzustellen und wird für ein Desktop-zu-Netzwerk-VPN besser unterstützt, z. B. wenn ein Mitarbeiter zu Hause eine Verbindung zum Unternehmensnetzwerk herstellt. Wenn Sie eine komplexere Bereitstellung durchführen, z. B. ein von Netzwerk zu Netzwerk verschlüsseltes VPN (z. B. zwischen zwei verschiedenen Organisationen), bietet IPSEC eine bessere Kontrolle und mehr Anpassungsoptionen.

Es gibt eine anständiges Whitepaper zu diesem Thema von Juniper Networks, obwohl es möglicherweise auf die Stärken ihrer Produkte ausgerichtet ist.

In diesem Whitepaper heißt es, dass mit ipsec zwei Remote-Zweige verbunden werden. Kann ein einzelner Remote-Benutzer keinen einzelnen Computer mit dem Remote-Zweig verbinden? Warum wird das dort nicht erwähnt?
#5
+2
Christian
2011-01-06 19:35:35 UTC
view on stackexchange narkive permalink

Dies könnte eine sehr lange Antwort sein, aber ich werde die kurze versuchen.

Wenn Sie https verwenden, verschlüsselt Ihr Browser (fungiert als SSL-Client) nur diese Verbindung zum Webserver.

Wenn Sie VPN verwenden, benötigen Sie einen speziellen Client und stellen einen Tunnel zwischen dem Client und dem Server her. Dann können Sie konfigurieren, welcher Verkehr durch den Tunnel fließt. Dies kann alles oder nur Ihr http-Verkehr sein.

Wenn Sie nur eine Client / Server-Anwendung einrichten möchten, die mit http kommunizieren kann, sollte der https-Verkehr die einfachste Lösung sein, wenn er verschlüsselt werden muss . Es ist viel komplizierter, ein VPN einzurichten und zu warten.

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

Dies hängt von Ihrem Bedrohungsmodell, der Art des von Ihnen benötigten Client-Server-Protokolls und Ihren Kunden ab.

Ist dies für nicht anspruchsvolle Endbenutzer gedacht? Verwenden Sie dann SSL - an diesem Punkt werden durch die VPN-Komplexität nur viele potenzielle Benutzer ausgeschaltet.

Möchten Sie den Client als Browser-App bereitstellen (Perahps mit Javascript)? Andererseits scheint https / ssl der richtige Weg zu sein.

Muss der Server den Client jemals asynchron über etwas benachrichtigen? Dann ist HTTPS möglicherweise nicht das, was Sie wollen (obwohl dies möglich ist).

Wie groß ist das Risiko von Phishing? Wenn es für Angreifer einfach wäre, Leute als MITM zu ihnen zu locken, ist SSL wahrscheinlich besser, da es jeden Server gegenüber dem Client authentifiziert. Ein typisches VPN hilft dem Benutzer nicht, einem Angreifer auszuweichen, der auf andere Hosts des VPN gestoßen ist. Dies wäre wahrscheinlich kein großes Risiko, hängt jedoch wiederum davon ab, was Sie tun.

Wenn Sie dies in der Cloud (sowohl Client als auch Server) bereitstellen, erhalten Sie möglicherweise eine Art VPN fast kostenlos, was einige sehr gelegentliche Bedrohungen angehen kann.

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

Nun, der Unterschied ähnelt dem Unterschied zwischen einem Kreis und einem Quadrat (beide sind Formen, unterscheiden sich aber stark). Beide sichern die Kommunikation, tun dies jedoch auf verschiedenen Ebenen und auf unterschiedliche Weise. IPSEC ist drahtgebundene Verschlüsselung und Autorisierung, während SSL anwendungsspezifisch ist.

IPSEC hat Zugriffskontrolle, SSL nicht.

Können Sie genauer sagen, was Sie herausfinden möchten?

Sichern von Daten auf IP-Ebene (IPSec) Gibt es einen Vorteil gegenüber dem Sichern von Daten auf Anwendungsebene (SSL)?
#8
  0
inf3rno
2017-12-19 02:46:46 UTC
view on stackexchange narkive permalink

Ich bin weit entfernt von einem Sicherheitsexperten, aber ich denke, der wichtigste Unterschied zwischen den beiden liegt nicht in den anderen Antworten.

Über VPN erfolgt die Kommunikation folgendermaßen:

  HTTP-Client <- [raw] -> VPN-Client <- [verschlüsselt] -> VPN-Server <- [raw] -> HTTP-Server  

Bei HTTPs geht es folgendermaßen:

  HTTP-Client <- [verschlüsselt] -> HTTP-Server  

Durch VPN können also ungeschützte Daten im lokalen Netzwerk der Clients und auf dem lokalen Netzwerk übertragen werden Netzwerk der Server. Wenn Sie diesen Netzwerken nicht vollständig vertrauen, ist es eine gute Idee, HTTPs zu verwenden. Beachten Sie, dass sich die VPN- und HTTP-Client-Client-Server-Server-Paare nicht unbedingt auf identischen Computern befinden, z. Router können als VPN-Server oder -Clients konfiguriert werden.

Da diese Technologien auf einer anderen Ebene arbeiten, schließen sie sich nicht gegenseitig aus. Sie können also beide verwenden, wenn Sie eine andere Schutzschicht wünschen und nicht Beachten Sie den damit verbundenen Leistungsabfall, oder verwenden Sie einfach den einen, der Ihren Anforderungen besser entspricht. Soweit ich weiß, gelten beide Technologien als sicher, wenn sie ordnungsgemäß konfiguriert sind.



Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 2.0-Lizenz, unter der er vertrieben wird.
Loading...