2c. Kryptographische Infrastruktur
Kerberos - Schutz von Client-Server-Kommunikation in offenen Netzen
Eigenschaften
- Authentisierung im Netz (Identitätsnachweis)
- Integrität und Vertraulichkeit durch symmetrische Verschlüsselung
(DES) [US only - however ...]
- Einbaubar in Anwendungen (ISO-Schicht 7, z. B. telnet, FTP)
- Lauffähig auf allen wichtigen Systemen
(MS/DOS, ..., UNIXe, ..., MVS)
- Entwickelt am MIT im Project Athena
Kommunikation zwischen Client und Server
Clients (Benutzer oder Prozesse)
- melden sich beim Server mit Hilfe eines Tickets an,
- kommunizieren mit dem Server mit einem 1x-Schlüssel.
Diese erhalten sie von einem Ticket-Server, und zwar verschlüsselt
mit dem geheimen Schlüssel KS, den nur S und der Ticket-Server
kennen.
Ein Ticket hat das Format:
TCS = (S, C, Adr, t, life,
KCS)
Ablauf der Authentisierung beim Server per Ticket:
- C ---> S: KS(TCS).
- S entschlüsselt KS(TCS).
[Falls Ergebnis sinnvoll: TCS echt und C echt
- denn außer S kennt nur der Ticket-Server KS.]
- C <--- S: KCS(t-1) (`verifier').
- C entschlüsselt KCS(t-1).
[Falls Ergebnis korrekt: S echt
- denn nur S kann diesen `verifier' gebildet haben.]
Dann Kommunikation C <---> S mit Hilfe von KCS.
Der Ticket-Server
(vereinfachte Darstellung - in Wirklichkeit gibt es noch einen Master-Server)
Der Ticket-Server T
- hat eine Datenbank, in der alle Clients und Server mit ihren Schlüsseln verzeichnet sind,
- muss also absolut vertrauenswürdig sein, insbesondere physisch gesichert,
- muss sich zweifelsfrei von der Identität des Anmeldenden überzeugen,
- zentralisiert die Anmeldeprozedur für alle Server.
Anmeldung beim Ticket-Server
Der Client C meldet sich beim Ticket-Server T an mit dem Wunsch,
den Server S von der IP-Adresse Adr aus zu benutzen.
- C ---> T: Anmeldung KC(C, Adr, t, S).
- T entschlüsselt KC(C, Adr, t, S).
[Falls Ergebnis sinnvoll: C echt
- denn außer C kennt nur der Ticket-Server KC.]
- T bildet 1x-Schlüssel KCS (zufällig)
und Ticket TCS = (S, C, Adr, t,
life, KCS).
- C <--- T: KC(KS(TCS),
KCS, t-1).
- C entschlüsselt KC(KS(TCS),
KCS, t-1).
[Falls Ergebnis korrekt: T echt
- denn nur T kann den `verifier' KC(t-1)gebildet haben.]
Das verschlüsselte Ticket
KS(S, C, Adr, t, life, KCS)
- kann von C nicht gefälscht werden,
- kann von niemand anders benützt werden (außer von T),
- kann nicht wiederverwendet werden,
- kann nur von S gelesen werden (und von T),
und zwar nur, wenn T echt war.
Es ist also geeignet, um C bei S auszuweisen.
Kerberos - Anwendungen
AFS
= Andrew File System:
- Entwickelt an Carnegie Mellon University (Andrew Carnegie, Andrew Mellon).
- Jetzt kommerziell vertrieben (Transarc).
- Verbesserte Handhabung der Zugriffsrechte (verglichen mit NFS):
- Kerberos-Authentisierung,
- Zugriffs-Kontroll-Listen (ACL).
- Eigenes, nur teilweise (mit V4) kompatibles Protokoll.
DFS = Distributed File System:
- Vorgeschlagener OSF-Standard im Rahmen von DCE.
- Weitere Verbesserungen (verglichen mit AFS).
- Basiert auf V5 (z. Z. noch nicht voll kompatibel).
Kerberos - Diskussion
+ | Alle Kommunikation verschlüsselt (abhörsicher). |
+ | Zentrale Anmeldung und Authentisierung. [Falls Master-Server:
- nur 1x Anmeldung pro Logon,
- dann weitere Anmeldungen mit »Ausweis«
(`ticket granting ticket') »transparent«.]
|
+ | Sicherheit in Anwendungen eingebaut. |
+ | Anerkannter und verbreiteter Standard. |
- | Anwendungen müssen »kerberisiert« werden (im Quellcode). |
- | Versionen-Wirrwarr. |
- | Hickhack um US-Exportbestimmungen. |
- | Schlüssel der Server gefährdet (wenn Server ungenügend
geschützt). |
- | Beschränkung auf Client-Server-Modell
(kein Schutz für Benutzer-Kommunikation). |
- | Vertrauenswürdiger Zeitservice nötig. |
- | Kein Schutz des Bootens übers Netz. |
- | Angriffe auf Passwörter möglich. |
Tickets: Lösung mit asymmetrischer Verschlüsselung
Ticket enthält momentane Berechtigungen (für diese Sitzung), wird vom Ticket-Server digital signiert und mit dem öffentlichen Schlüssel des jeweiligen Anwendungsservers verschlüsselt.
Im Vergleich zu Kerberos:
+ | einfachere Schlüsselverwaltung, |
+ | weniger Angriffspunkte. |
Realisiert im SESAME-Projekt (A Secure European System for Applications in a Multi-vendor Environment).
FAQ
Vorlesung Datenschutz und Datensicherheit
Autor: Klaus Pommerening, 31. März 1999; letzte Änderung: 24. Juli 2007
E-Mail an Pommerening »AT« imbei.uni-mainz.de.