Menu Close

Verteilte Systeme (Teil 6)

Ein verteiltes System ist im Prinzip der Zusammenschluss mehrerer Rechner zur Lösung einer gemeinsamen Aufgabe. Eines der größten verteilten Systeme ist das Internet mit seinen Applikationen. Teil 6 behandelt die Sicherheit von verteilten Systemen.

Skript-AnfangVS_1_So2014 – Seite 1
Skript-EndeVS_6_So2014 – Seite 70

Sicherheit

Als Sicherheit bezeichnet man Eigenschaften von informationsverarbeitenden und -lagernden Systemen, die die Schutzziele Vertraulichkeit, Verfügbarkeit und Integrität sicherstellen. Informationssicherheit dient dem Schutz vor Gefahren bzw. Bedrohungen, der Vermeidung von wirtschaftlichen Schäden und der Minimierung von Risiken.

Schutzziele

Welche Schutzziele gibt es?

ZeichenName (engl.)Name (dt.)BedrohungBeispiel
CConfidentialityVertraulichkeitUnerlaubtes LesenMitlesen (eavesdropping)
IIntegrityIntegritätUnerlaubtes SchreibenVortäuschen einer Identität (masquerading)
Nachrichten verändern/verfälschen
Nachrichten wiederholen (replaying)
AAvailabilityVerfügbarkeitStörung des Betriebs (Grund für skalierbare fehlertolerante Systeme)DDoS, Viren, Trojaner, etc.

Welche Schutzmaßnahmen gibt es?

  • Firewalls
  • VPNs
  • Verschlüsselung

Firewall

Was sind Firewalls?

  • Können als Hard- oder Software realisiert sein (iptables, Windows Firewall, WLAN Router)
  • Befindet sich als Schutzmauer zwischen sicherem Netz (LAN) und unsicherem Netz (Internet)

Wovor schützen Firewalls?

  • Sie halten unerwünschter Pakete fern
  • Beschränkt den Netzwerkzugriff (Absender, Empfänger, Transportprotokoll und Dienste)
  • Filterung des Absender und Empfängers anhand IP-Adresse
  • Filtern des Transportprotokolls nach UDP/TCP
  • Filtern nach Anwendung bzw. Dienst anhand Port

Wovor schützen Firewalls nicht?

  • Unerlaubtes Mitlesen von unverschlüsselten Nachrichten

Welche Firewall-Typen gibt es?

  • Paketfilter
  • Application Level Gateway
  • Proxy
  • Intrusion Prevention System (IPS)
  • Intrusion Detection System (IDS)

Was sind Paketfilter-Firewalls?

  • Blockieren von Paketen anhand von Regeln
  • Zwei Varianten (stateful/stateless)
  • Stateless = Jedes Paket wird unabhängig und stur nach den Regeln verarbeitet (einfach)
  • Stateful = Stellt Zusammenhang zwischen ein- und ausgehenden Paketen her (komplex)

Was sind Nachteile der Paketfilter-Firewalls?

  • Die Menge der Regeln kann schnell unübersichtlich werden
  • Die korrekte Konfiguration wird durch kryptische Syntax erschwert
  • Eigentlich erwünschte Kommunikation kann erschwert und verhindert werden

Was könnte ein Beispiel für eine stateful Firewall sein?

  1. Die Firewall blockt alle eingehende Pakete
  2. Ein Client aus dem LAN versendet ein Paket an einen Server außerhalb des LANs
  3. Nun wird die Antwort (Pakete) von der Adresse des Servers durchgelassen

Welchen Vorteil hat die stateful Firewall?

  • Bei der stateless Firewall müssen feste Regeln eingetragen werden, um die Kommunikation in beide Richtungen zu erlauben
  • Bei der stateful Firewall werden dynamisch Einträge für angeforderte eingehende Pakete erzeugt und wieder entfernt

In welche Richtung wird Kommunikation von einer Firewall verhindert?

  • Die Kommunikation wird von Außen nach Innen verhindert

Welche Anwendungen haben mit Firewalls Probleme?

  • Peer-To-Peer-Anwendungen

Was sind Application Level Gateways (ALG)?

  • Pakete werden nun anhand ihres Inhalts gefiltert
  • Sie arbeiten dafür auf OSI-Layer 7 und kennen die Anwendungsprotokolle (z.B. HTTP)

Was sind die Vorteile von ALGs?

  • Sie können unabhängig vom Port die Pakete auf ihren eigentlichen Inhalt prüfen

Was sind Proxy Server?

  • Sie fangen Verbindungen nach Außen von den internen Systemen ab
  • Sie öffnen stattdessen selbst mit dem Ziel eine Verbindung
  • Sie schicken die Anfrage selbst an das Ziel und verhalten sich wie „Stellvertreter“
  • Schlussendlich leiten sie die Antworten des Ziels an den Anfragenden weiter
  • Sie speichern die Antworten als Caching-Mechanismus

Was ist ein HTTP Proxy?

  1. Ein Browser (Client) will eine Website aufrufen
  2. Der Client stellt die Verbindung mit dem Proxy her
  3. Der Proxy wertet den HTTP Header aus, um das Ziel zu erfahren
  4. Der Proxy stellt die Anfrage an den Webserver
  5. Die Antwort des Webservers wird gecached und an den Client weiter geleitet

Woher weiß der Proxy welcher Webserver kontaktiert werden soll?

  • Das steht im HTTP Header

Welches Probleme kann der HTTP Proxy haben?

  • Er kann nicht in verschlüsselte Nachrichten hinein schauen
  • Aber er muss die Nachrichten auswerten, um das Ziel zu kennen
  • Der Client bedient sich deshalb der HTTP CONNECT Nachrichten

Wie läuft eine verschlüsselte Kommunikation über HTTP Proxy ab?

  1. Client baut TCP-Verbindung zum Proxy auf
  2. Client sendet HTTP CONNECT mit IP und Port des Zielservers an den Proxy
  3. Proxy öffnet normale TCP-Verbindung zum Server (Tunnel aufgebaut)
  4. Nun können beliebige Daten in beide Richtungen versendet werden

Was ist Tunneling?

  • Mit Hilfe der HTTP CONNECT Nachrichten lassen sich beliebige TCP basierte Protokolle durch einen HTTP Proxy tunneln

Wie beendet der Client den Tunnel?

  • Indem er die TCP-Verbindung zum Server beendet
  • Der Proxy erkennt dies in den Paketen und schließt den Tunnel

Was sind Intrusion Detection Systeme (IDS)?

  • System zur Erkennung von Angriffen
  • Wahrnehmung wird durch Sensoren (Firewall) ermöglicht
  • Mustererkennung überprüft Verhaltensmuster
  • Reaktion wird bei Bedarf ausgelöst (z.B. E-Mail an Administrator)

Was sind Intrusion Prevention Systeme (IPS)?

  • Intrusion-Detection-Systeme, die nicht nur Benachrichtigungen erzeugen, sondern einen entdeckten Angriff abwehren können

Virtual Private Network (VPN)

Wofür benötigt man VPNs?

  • Stellen die Vertraulichkeit von Kommunikation her (kein unerlaubtes Mitlesen)
  • Verschlüsselung des gesamten Datenverkehrs zwischen Endpunkten im Netzwerk
  • Entfernte Systeme verhalten sich so, als ob sie sich im gleichen lokalen Netzwerk befinden

Verschlüsselung

Was ist Verschlüsselung?

  • Ein Klartext wird in einen Geheimtext (Chiffrat) übersetzt
  • Ein Geheimtext wird in den Klartext zurück übersetzt

Was sind die Suites der NSA?

  • Suite B sind öffentlich bekannte und empfohlene Algorithmen
  • Suite A sind streng geheime Algorithmen für hochsensitive Daten

Was ist symmetrische Verschlüsselung?

  • Beide Seiten kennen einen gemeinsamen geheimen Schlüssel
  • Die Daten werden mit dem Schlüssel ent- und verschlüsselt
  • Wird bei Blockchiffren und One-Time-Pad verwendet

Was ist das One-Time-Pad?

  • Zufälliger Schlüssel mit exakter Länge der Nachricht
  • Schlüssel darf nicht mehrmals verwendet werden und muss geheim bleiben
  • Nachricht wird mit dem Schlüssel über XOR kombiniert
  • Bietet eine sehr starke Verschlüsselung
  • Durch seine Nachteile aber nur selten zu gebrauchen

Was sind Nachteile vom One-Time-Pad?

  • Der Schlüssel darf nicht mehrmals verwendet werden
  • Die Erzeugung eines zufälligen langen Schlüssels ist kompliziert
  • Bei großen Datenmengen muss auch ein ebenso großer Schlüssel ausgetauscht werden (Doppelte Datenmenge)

Was sind Blockchiffren?

  • Nachrichten mit einer festen Länge werden ver- und entschlüsselt
  • Längere Nachrichten werden in Blöcke segmentiert
  • Bei Bedarf werden Blöcke mittels Padding aufgefüllt
  • Jeder Block wird mit dem gleichen Schlüssel verschlüsselt
  • Typische Implementierung ist AES (Nachfolger von DES, 3-DES)

Welches Problem tritt bei Blockchiffren auf?

  • Gleiche Textblöcke erzeugen gleiche Chiffrate
  • Dadurch können Angreifer Rückschlüsse auf den Klartext ziehen

Wie löst man das Problem der gleichen Chiffrate?

  • Mittels eines Betriebsmodus wie dem Cipher Block Chaining

Was macht man, um den gesamten Text zu verschlüsseln?

  • Auftrennung des Textes in Blöcke geeigneter Länge
  • Einsatz von Betriebsmodi wie dem CBC

Was ist das Cipher Block Chaining?

  • Erweitert die Blockchiffre
  • Der aktuelle Klartext wird mit dem vorherigen Chiffrat über XOR verknüpft
  • Dadurch werden Muster im Klartext verhindert und keine identischen Chiffrate gebildet
  • Zum Entschlüsseln wird das letzte und vorletzte Chiffrat und der Schlüssel benötigt

Wie verschlüsselt man den ersten Block?

  • Mit einem zufälligen Initialisierungsvektor IV

Wie entschlüsselt man das überhaupt?

  • Mit den letzten zwei Chiffren
  • Der IV wird nicht benötigt

Welche Auswirkung hat ein Übertragungsfehler in einem Block?

  • Der betroffene Block und sein Nachfolger können nicht mehr entschlüsselt werden

Was ist asymmetrische Verschlüsselung?

  • Es gibt einen öffentlichen und einen privaten Schlüssel
  • Nachrichten werden mit dem öffentlichen Schlüssel verschlüsselt
  • Nachrichten können nur mit dem privaten Schlüssel entschlüsselt werden
  • Wird für Verschlüsselung und Signaturen genutzt
  • Typische Implementierung ist RSA

Wofür wird RSA genutzt?

  • Vereinbarung symmetrischer Schlüssel (Session Key)
  • Signieren von Nachrichten

Was sind Signaturen?

  • Verfahren um die Authentizität zu gewährleisten

Was sind Zertifikate?

  • Verbindung von Name mit einer Signatur
  • Selbstsigniert oder von einer vertrauenswürdigen Organisation ausgestellt

Was ist Hashing?

  • Eine Einwegfunktion f(x) = y
  • y ist leicht zu Berechnen
  • x aus y hingegen nicht
  • Dient dazu Daten beliebiger Länge auf Daten mit fester Länge abzubilden

Wo verwendet man kryptographisches Hashing?

  • Erzeugung eines Fingerprints einer Nachricht
  • Siehe auch Digitale Signatur

Wie funktioniert die Signatur mit RSA?

  1. Verschlüsselung der Nachricht mit privatem Schlüssel
  2. Empfänger entschlüsselt mit öffentlichem Schlüssel
  3. Gewährleistet Integrität und Authentizität
  4. Das darf auf diese Weise aber nur zwei Mal angewendet werden

Wie signiert man eine Nachricht besser?

  1. Signatur der Nachricht mittels kryptographischer Hashfunktion berechnen
  2. Signatur mit privatem Schlüssel verschlüsseln
  3. Nachricht versenden an den Empfänger
  4. Signatur mit öffentlichem Schlüssel entschlüsseln
  5. Hashwert über die Nachricht bilden und mit dem in 4 erlangten Hash vergleichen

SSL/TLS

Was sind SSL und TLS?

  • Protokolle zum Schlüsselaustausch und Verschlüsselung von TCP-Verbindungen
  • Liegen als Schicht zwischen TCP und Application-Layer
  • Häufig für verschlüsselten Verbindungen im WWW genutzt (HTTPS auf Port 443)
  • Benötigen keine externe Schlüsselverwaltung
  • Client und Server handeln die Algorithmen für Authentifizierung und Verschlüsselung selbst aus

Wie ist TLS aufgebaut?

  • Besteht aus Record, Handshake, ChangeCipherSpec und Alert Protocol
  • Der Client schlägt ein PreMaster Secret vor
  • Client und Server handeln eine ciphersuite und Parameter aus
  • Aus den Parametern und dem PreMaster werden auf beiden Systemen das Master Secret und alle nötigen Schlüssel erzeugt

Was ist das Handshake Protocol?

  • Handelt die Sicherheitseinstellungen zwischen Client und Server aus
  • Authentisiert den Server (und optional den Client)

Was ist das ChangeCipherSpec Protocol?

  • Beendet das Aushandeln der Sicherheitsparameter
  • Startet die verschlüsselte Kommunikation

Was ist das Alert Protocol?

  • Informiert über Fehler und abnormale Zustände

Was ist das Record Protocol?

  • Besitzt den verschlüsselten und nicht verschlüsselten Zustand
  • Transportiert Daten anhand der ausgehandelten Sicherheitsparameter
  • Mit ihm kommunizieren TCP und Anwendungen

Wie kann man SSL/TLS Verbindungen in eigenen Programmen nutzen?

  • Bibliotheken bieten Funktionen, mit denen man normale Sockets mit SSL/TLS aufrüsten kann
  • Die Authentifizierung und Verschlüsselung wird von der Bibliothek erledigt
  • Um Senden und Empfangen von Daten kümmern sich die Entwickler (Sockets)

Beispiele für OpenSSL-Schnittstellen

  • SSL_accept – Verbindung annehmen
  • SSL_connect – verbinden
  • SSL_read – empfangen
  • SSL_write – senden
  • SSL_set_fd – Socketdeskriptor setzen

Was ist Perfect Forward Secrecy?

  • Wenn der private Schlüssel erspäht wird, kann jede vorherige Kommunikation (wurde aufgezeichnet) entschlüsselt werden
  • Bei Perfect Forward Secrecy werden die Schlüssel zum Authentifizieren und Verschlüsseln voneinander getrennt
  • Siehe auch Diffie-Hellman

Was ist das Diffie-Hellman-Verfahren?

  • Zwei Teilnehmer erzeugen einen Sitzungsschlüssel (KA = KB)
  • Die ausgetauschten Nachrichten müssen dabei stets signiert werden

Was passiert, wenn Alice und Bob ihre Nachrichten nicht signieren?

  • Ein Angreifer täuscht beide Seiten mittels ARP Spoofing (Angeblicher Besitz einer IP-Adresse)
  • Er handelt mittels Diffie-Hellman selbst den Schlüssel aus

Kerberos

Was ist Kerberos?

  • Key Distribution Center (KDC) erzeugt Schlüssel für Sitzungen
  • Kerberos erzeugt Schlüssel (tickets) mit begrenzter Lebensdauer
  • Diese Schlüssel werden dann verwendet, um sich gegenüber Diensten zu authentifizieren

Warum schickt der Server B nicht KA,B(t)?

  • Der Server B will sich gegenüber dem Client A gegenüber authentisieren
  • Da symmetrisch verschlüsselt wird, muss von Server B der Besitz des symmetrischen Schlüssels KA,B nachgewiesen werden
  • Indem er den inkrementierten Wert (t+1) verschlüsselt sendet kann er sich gegenüber dem Client A authentisieren

Anonymisierung mit TOR

Was ist TOR?

  • Bietet Anonymität für TCP-Verbindungen
  • TOR besteht aus vielen einzelnen „Onion Routern“ (OR)
  • Onion Router sind kaskadiert (hintereinander geschaltet)
  • Das Ziel sieht nur die Adresse des letzten Onion Routers
  • Die Pakete enthalten die Header für alle Router der Kaskade ineinander verschachtelt (Auspacken wie eine Zwiebel)
  • Jeder Router entfernt seinen Header und schickt nur den ausgepackten Teil weiter
  • Jeder Router kennt deshalb nur den Vorgänger, sich selbst und das nächste Ziel
  • Zwischen den Routern sorgt TLS für Sicherheit

Wie wird eine Kaskade aufgebaut?

  • Die Quelle wählt eine Menge von Onion Routern
  • Die Quelle vereinbart einen zeitlich begrenzt gültigen Schlüssel mit dem ersten Router der Kaskade (Diffie Hellman)
  • Schlüssel werden über die Kaskade ausgetauscht

Würde onion routing so auch mit UDP funktionieren?

  • Onion Routing funktioniert nur bedingt mit UDP
  • Durch die Begrenzung der UDP-PDU auf 64 KB ist nur eine begrenzte Anzahl von Onion Routern möglich

Wie findet ein Client die benötigten Onion Router?

  • Ein Namendienst auf den bekannten TOR Knoten hält Listen von Onion Routern
  • Neu gestartete Router melden sich beim Namensdienst an

Welche Gefahr birgt dieses System?

  • Das Einschleusen von bösartigen Onion Routern

Was bringt das Einschleusen eines bösartigen Onion Routern?

  • Das Einschleusen macht nur Sinn, wenn hostile Onion Router dann Ein- und Ausgangsknoten sind
  • Dadurch kann man Ein- und nach Ausgangsknoten analysieren und versuchen und Quell- und Zieldatenströme zuzuordnen
  • Das ist dennoch schwer zu realisieren

Was ist eine Leaky Pipe?

  • Verkehr kann an jedem Onion Router der Kaskade ans Ziel geleitet werden
  • Hilft, wenn eine Quelle mehr als einen TCP Strom unterhält
  • Erschwert das Zuordnen von ein- und ausgehenden Paketen

Schreiben Sie einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahren Sie, wie Ihre Kommentardaten verarbeitet werden.