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.