it-swarm.com.de

Was ist besser für die Server-zu-Server-Kommunikation: IPSec oder TLS?

Vielleicht könnten Sie mir bei einem kleinen Problem helfen.

Würden Sie IPSec oder TLS für eine Server-zu-Server-Verbindung empfehlen? Ich brauche zwei oder drei Argumente, um eine Entscheidung in meinem Abschlusspapier zu begründen, habe aber leider kein Kriterium für einen Ausschluss gefunden. Die Reflexion von IPSec und TLS in meiner Arbeit ist nur ein untergeordneter Aspekt, daher würden ein oder zwei Hauptgründe für die Auswahl von TLS oder IPSec ausreichen. Denken Sie, dass die mögliche Komprimierung innerhalb von IPSec einer dieser Hauptgründe sein könnte?

Vollständigere Erklärung des Szenarios :

Ein Benutzer möchte sich in einem Portal anmelden, um einen Dienst nutzen zu können. Das Portal-Backend besteht aus dem Portal selbst, einer Registrierungsstelle, einer Benutzerverwaltung, einer Zugriffskontrollbehörde usw. Sollte ich TLS oder IPSec wählen, um diese Backend-Verbindungen zu sichern? Der gelieferte Service muss nicht im Backend positioniert werden, ist aber zuverlässig und nur mit dem Portal verbunden. Hier ist eine Liste mit den Verbindungen, die ich sichern möchte:

service (kann ein externer sein) ---- Portal

registrierungsstelle ---- Benutzerverwaltung

portal ---- Benutzerverwaltung

für eine Benutzer-Server-Verbindung habe ich bereits meine Entscheidung getroffen, aber die Gründe, die ich für diese Entscheidung verwendet habe, funktionieren für eine Server-zu-Server-Verbindung nicht.

Vielen Dank im Voraus!

Ein Bild des Szenarios :

(rot = problematische Verbindung)

enter image description here

(Tatsächlich ist das Modell weitaus größer, da ich auch andere Mechanismen wie Authentifizierung, Speichermechanismen, Speicherzugriff, Zugriffskontrolle, Softwarearchitektur, einschließlich möglicher Technologien usw. behandle. Daher ist das Sichern der Verbindungen nur ein Teilaspekt )

17
Saturas

Es gibt zwei Hauptverwendungsmodi für IPsec : [~ # ~] ah [~ # ~] und [~ # ~] esp [~ # ~] . [~ # ~] ah [~ # ~] dient nur zur Authentifizierung, ich nehme also an, Sie sprechen von einem ESP Tunnel zwischen den beiden Servern. Alle IP-Pakete werden verschlüsselt und authentifiziert, einschließlich einiger Header-Details wie Quell- und Ziel-Ports. Es gibt verschiedene Verschlüsselungs- und MAC-Algorithmen, die mit IPsec, AES (CBC-Modus, 128-Bit-Schlüssel) und HMAC/SHA-1 verwendet werden können (auf 96 Bit abgeschnitten) sind in Ordnung und MUSS implementiert werden , daher sollte jede konforme IPSec-Implementierung sie unterstützen.

Für diesen "Tunneling" -Teil führt IPsec die Dinge korrekt aus, ebenso wie TLS (unter der Annahme von TLS 1.1 oder 1.2 für die IV-Auswahl mit Blockchiffren im CBC-Modus). Tatsächlich kann IPsec als "korrekter" als TLS angesehen werden, da Encrypt-Then-MAC anstelle von MAC-Then-Encrypt verwendet wird (siehe this ). Richtig implementiertes TLS 1.1 oder 1.2 ist jedoch auch in Ordnung. Praktische Unterschiede treten auf anderen Ebenen auf:

  • Um Daten zu verschlüsseln und zu entschlüsseln, müssen sich Ihre beiden Server zunächst auf ein gemeinsames Geheimnis einigen. Darum geht es beim Handshake in TLS; Das Äquivalent in IPSec wäre IKE . Möglicherweise möchten Sie sich auf X.509-Zertifikate verlassen. oder vielleicht auf einem "gemeinsam genutzten Schlüssel", der manuell auf beiden Servern konfiguriert wurde. Sowohl TLS als auch IPsec unterstützen beide, aber jede spezifische Implementierung von beiden kann eine Option einfacher oder komplexer als die andere machen.

  • IPsec agiert auf Betriebssystemebene. Anwendungssoftware muss nicht bewusst über das Vorhandensein von IPsec informiert sein. Dies ist in einigen Fällen großartig, in anderen nicht so großartig. Einerseits können einige Legacy-Anwendungen mit IPsec "gesichert" werden, auch wenn dies bei der Anwendungsentwicklung nicht vorgesehen war. Das Sicherheitsmanagement kann ohne Einschränkung durch die Meinung der Anwendungsentwickler durchgeführt werden (wenn Sie beispielsweise X.509-Zertifikate verwenden, können Sie Sperrprüfungen erzwingen, während eine TLS-basierte Anwendung möglicherweise eine Bibliothek verwendet, die CRL nicht unterstützt). . Andererseits können Anwendungen mit IPSec nichts Anwendungsspezifisches mit Sicherheit tun: Ein Server kann beispielsweise seine Sicherheitsverwaltung nicht variieren, je nachdem, welcher andere Server mit ihm spricht.

  • Obwohl TLS normalerweise anwendungsmäßig verwendet wird, ist es auch möglich, es als Baustein für eine Betriebssystemebene VPN zwischen den beiden Servern zu verwenden. Dies bedeutet im Grunde, TLS so zu verwenden, als wäre es IPSec.

  • Da IPSec auf Betriebssystemebene ausgeführt wird, müssen Sie mit der Netzwerkkonfiguration auf Betriebssystemebene herumspielen, während TLS normalerweise auf Anwendungsebene beibehalten werden kann. In großen Organisationen leben Netzwerk- und Anwendungsmitarbeiter in der Regel in getrennten Welten (und befinden sich leider häufig im Krieg miteinander). Wenn Sie alles auf der Anwendungsebene belassen, kann dies aus organisatorischen Gründen die Bereitstellung und Verwaltung erleichtern.

Zusammenfassung: es kommt darauf an. Verwenden Sie IPsec, wenn Sie es auf nicht kooperative Anwendungen anwenden möchten (z. B. eine Anwendung, die von Haus aus keinen Schutz für ihre Verbindungen zu anderen Servern unterstützt). Verwenden Sie TLS, wenn Sie die Konfiguration auf Betriebssystemebene abstrahieren möchten. Wenn Sie TLS weiterhin verwenden möchten und dies dennoch auf Betriebssystemebene tun möchten, verwenden Sie ein TLS-basiertes VPN.

24
Tom Leek

Welche Implementierung von TLS hatten Sie im Sinn? Stunnel? IPsec und Stunnel bieten vergleichbare Sicherheit, aber Stunnel ist viel einfacher einzurichten. IPsec hat eine steilere Lernkurve, bietet jedoch mehr Funktionen, einschließlich des heiligen Grals der gekennzeichneten Vernetzung, wenn es auf beiden Seiten mit SELinux verwendet wird.

0
Matrix