Public-Key-Authentifizierung
# Public-Key-Authentifizierung

Die Public-Key-Authentifizierung ist eine Authentifizierungsmethode, die unter anderem von SSH und OpenSSH verwendet wird, um Benutzer mit Hilfe eines Schlüsselpaars, bestehend aus privatem und öffentlichem Schlüssel, an einem Server anzumelden. Ein solches Schlüsselpaar ist wesentlich schwerer zu kompromittieren als ein Kennwort.

Bei einer Authentisierung mittels eines Kennworts wird dieses Kennwort, oder dessen Hash-Wert, auf einem Server gespeichert. Hat jemand Zugang zur Kennwortdatei auf diesem Server, gelangt er damit im ersten Fall auch in den Besitz des Kennworts. Im zweiten Fall kann er, mit Hilfe entsprechender Software, eine Zeichenkombination finden, die den gleichen Hash-Wert wie das Kennwort ergibt. Wird das gleiche Kennwort zur Anmeldung auf mehreren Systemen benutzt, so sind damit alle diese Systeme kompromittiert.

Im Gegensatz dazu wird bei der Public-Key-Authentifizierung nur der öffentliche Schlüssel auf einem Server gespeichert. Der private Schlüssel wird auf dem eigenen Rechner gespeichert, kann damit geheim gehalten und zusätzlich mit einer Kennung verschlüsselt werden. Die Kennung kann aus mehreren Wörtern bestehen (im Englischen passphrase).

Die Berechnung des privaten Schlüssels aus dem öffentlichen ist je nach Wahl der Länge des Schlüssels sehr aufwendig bis praktisch unmöglich.

Der öffentliche Schlüssel kann auch zur automatischen Anmeldung (Authentifizierung) genutzt werden. Dabei entfällt der interaktive Dialog zur Kennworteingabe. Hierzu wird auf der User-Seite mit Hilfe seines privaten Schlüssels eine Signatur erzeugt, welche daraufhin auf der Server-Seite mit dem dort hinterlegten öffentlichen Schlüssel des Users verifiziert wird. Das ermöglicht eine Anmeldung ohne Benutzereingabe in ablaufenden Skripten, und beim automatisierten Kopieren von Dateien, beispielsweise mit Secure Copy.

