next up previous contents index
Next: Verschlüsselung bei FreeS/WAN Up: Einzelheiten von FreeS/WAN Previous: KLIPS - KerneL IPSec

Der Pluto-Daemon

Pluto ist ein Daemon der das IKE-Protokoll implementiert. Er läuft als Daemon auf einem Netzwerk Knoten. Dieser Netzwerkknoten muß ein LINUX-System mit der IPSec-KLIPS Implementation sein. Pluto implementiert IKE noch nicht vollständig jedoch genügt dies, um mit anderen Instanzen von Pluto, und vielen anderen IKE-Implementationen zusammenzuarbeiten. Die Policy für die Sicherheitsbeziehungen wird noch hart in den Code von Pluto implementiert (s. spdb.c). Eventuell wird dies später in eine Security Policy Database verschoben.
ISAKMP SAs können Oakley groups MODP768 und MODP1024, 3DES, SHA1-96 und MD5-96 verwenden. Die IPSec SAs können 3DES, MD5-96 oder SHA1-96 verwenden.

Pluto erstellt automatisch untereinander geteilte Sicherheitsbeziehungen (SAs). Dies ist eine Arbeitserleichterung, da die aufwendige, manuelle verteilung entfällt.

Eine Security Association (SA) ist eine übereinkunft zweier Netzwerk Knoten, wie sie miteinander kommunizieren wollen (verschlüsselt, authentifiziert, eingekapselt, komprimiert).

Läuft auf einem Knoten IKE, kann dieser SAs mit anderen Netzwerkrechnern einrichten. Dies funktioniert aber nur, falls die anderen Knoten ebenfalls IKE implementiert haben. IKE muss also auf jedem Knoten, der ein Endpunkt einer IKE-Initiierten SA ist, laufen.

Eine IKE-Instanz kommuniziert mit einer anderen IKE-Instanz mit UDP IP Packeten, deshalb muß auch eine Route zwischen den jeweiligen Rechnern existieren.

Bei der Aushandlung einer SA können unterschiedliche Einstellungen vorgenommen werden. Diese Einstellungen entsprechen oft einem Kompromiß zwischen Sicherheit, Vertraulichkeit und Effizienz. Diese sogenannten Policys Issues der IKE-Instanz werden vom System Administrator spezifiziert.

IKE arbeitet dabei in zwei Phasen. Die erste Phase baut eine ISAKMP SA auf. ISAKMP SAs werden von IKEs zur sicheren Kommunikation untereinander benötigt. Danach werden von den IKEs die IPSec SAs, die dann von anderen Programmen benutzt werden können, aufgebaut. Ein wichtiger Punkt ist, daß die IKE-Instanzen sich untereinander authentifizieren können.

Pluto verwendet zur Authentification Shared Secrets oder RSA-Signaturen. In Zukunft sollen noch andere Techniken unterstützt werden. Pluto implementiert auch ISAKMP SAs selbst. Beim beenden von Pluto werden alls Security Asscociations beendet.

Pluto benötigt eine Datenbank mit Preshared Secrets und RSA private keys.

Ein Pluto-Daemon und ein anderer IKE-Daemon müssen sich authentifizieren, bevor eine Verbindung erfolgreich zustande kommen kann. Die Authentifikation geschieht durch ein Geheimnis (ipsec.secrets), daß manuell oder mithilfe der RSA Signatur ausgetauscht wurde. Es existieren auch andere Techniken, die jedoch nicht in Pluto implementiert worden sind. Gespeichert werden die preshared secret keys und die RSA private keys in der Datei /etc/ipsec.secrets.

Die default IKE-Port Nummer ist 500. Pluto muß dabei unter superuser laufen, um diesen Port nutzen zu können. Ist Pluto gestartet, wartet er auf Anfragen von whack. Whack dient zur Kommandoübergabe an Pluto. Whack verwendet dazu ein UNIX domain socket. Bei jeder Anfrage führt Pluto normalerweise ein fork aus. Dies ist eine gängige Technik, um mehren Anfragen antworten zu können.

Pluto verifiziert Identitäten, sucht Sicherheits-Policies aus und initiiert Schlüssel für die KLIPS Schicht.


next up previous contents index
Next: Verschlüsselung bei FreeS/WAN Up: Einzelheiten von FreeS/WAN Previous: KLIPS - KerneL IPSec
Copyright Munich Network Management Team