Zum Inhalt springen

GSSAPI

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 10. Januar 2008 um 16:25 Uhr durch RonaldRichter (Diskussion | Beiträge) (Stop making sense). Sie kann sich erheblich von der aktuellen Version unterscheiden.

Das Generic Security Services Application Program Interface (GSSAPI, auch GSS-API) ist ein Interface zum Programmieren von Applikationen, die auf Security Devices zugreifen.

Die GSSAPI ist ein IETF Standard, der das Problem vieler verschiedener, teilweise inkompatibler Security Devices adressiert.

Funktionsweise

Die GSSAPI selbst bietet keinerlei Sicherheit. Stattdessen bieten verschiedene Hersteller ihre Sicherheitssoftware an, oft in Form von Bibliotheken. Diese Bibliotheken präsentieren ein GSSAPI-kompatibles Interface für Anwendungsprogrammierer, welche wiederum nur die herstellerunabhängige und standardisierte GSSAPI nutzen müssen. Wenn die Implementationen der Sicherheitsfunktionen irgendwann ausgetauscht werden müssen, bedarf es keiner Änderung an der Applikation.

Das definitive Feature der GSSAPI Anwendungen ist der Austausch von undurchsichtigen Nachrichten (sogenannte Token), die die Implementierungsdetails vor den höheren Schichten der Anwendung verstecken. Die Client- und Serverseite der Implementation sind so gestaltet, das sie die Token, die die jeweilige GSSAPI Implementation liefert, übertragen. GSSAPI Tokens können über unsichere Netzwerke (wie dem Internet) ausgetauscht werden, denn ihr Mechanismus garantiert Nachrichtensicherheit. Nachdem eine gewisse Anzahl von Token ausgetauscht wurden, informiert die GSSAPI auf beiden Seiten die jeweilige Anwendung, dass eine sichere Verbindung installiert wurde.

Sobald diese sichere Verbindung aufgebaut wurde, können sensible Nachrichten der jeweiligen Anwendung in Tokens der GSSAPI verschlüsselt verpackt und sicher zwischen Client und Server übermittelt werden. Der typische Schutz, der durch die GSSAPI bereitgestellt wird, beinhaltet Vertrauen (Geheimhaltung) und Integrität (Echtheit). Die GSSAPI kann ebenfalls lokale Garantien über die Identität des entfernten Benutzers oder Rechners bereitstellen.

Die GSSAPI beschreibt etwa 45 Funktionsaufrufe. Besonders bedeutsam sind:

  • GSS_Acquire_cred - erhält den Beweis für den User, oftmals ein kryptografischer Schlüssel
  • GSS_Import_name - konvertiert einen eingegebenen Benutzer- oder Hostnamen in eine identifizierbare Form
  • GSS_Init_sec_context - generiert ein neues Token, das zum Server geschickt wird
  • GSS_Accept_sec_context - bearbeitet ein Token von GSS_Init_sec_context und generiert ein neues Token, das zurückgeschickt werden kann
  • GSS_Wrap - konvertiert Anwendungsdaten in eine sichere Nachricht (typischerweise verschlüsselt)
  • GSS_Unwrap - konvertiert eine sichere Nachricht zurück in Anwendungsdaten

Die GSSAPI ist für C und Java standardisiert. Ein Standard für C# befindet sich in der Entwicklung.

Eine Beschränkung der GSSAPI ist, das nur die Authentifizierung (Beglaubigung), nicht jedoch die Authorizierung (Berechtigung) standardisiert wird, weiterhin wird eine Client-Server Architektur angenommen.

Verschiedene GSS-API Mechanismen arbeiten normalerweise nicht zusammen. Wenn für die Zukunft verschiedene andere GSSAPI Mechanismen in großen, heterogenen Netzwerken erwartet werden, dürfte eine Implementierung von SPNEGO auf jeder Seite der Kommunikation sinnvoll sein. Dadurch können gängige GSS-API Mechanismen sicher zwischen zwei Partnern (Initiator und Empfänger) ausgehandelt werden. Microsoft hat SPNEGO in Microsoft Windows 2000 eingebaut, als Kerberos5 zum existierenden NTLM SSP Mechanismus hinzugefügt wurde.

Verbindung zu Kerberos

Die dominierende Implementierung der GSSAPI Mechanismen, die derzeit genutzt wird, ist Kerberos. Die Kerberos API ist jedoch nicht standardisiert, es existieren verschiedene Implementationen, die zueinander inkompatible APIs verwenden.

Konkurrierende Technologien

RADIUS, SASL, SSL.


Schlüsselkonzepte der GSSAPI

Name
ein binärer String, der den Prinzipal (den user oder das Programm) angibt - Siehe Zugriffskontrolle und Identität. Als Beispiel nutzt Kerberos Namen wie user@REALM für Benutzer und service/hostname@REALM für Programme.
Credentials (Legimitation)
Informationen über die Identität; werden von einer Entität als benannter Principal genutzt. Credentials enthalten üblicherweise einen kyrptografischen Schlüssel.
Kontext
Der Status einer Seite der beglaubigten/bestätigten Verbindung. Kann Dienste zum Schutz von Nachrichten enthalten, die zum Aufbau einer sicheren Verbindung genutzt werden.
Token
undurchsichtige Nachrichten, die entweder als Teil der initialen Authentifizierung (Kontext-Level Token) oder als Teil der geschützten Kommunikation (per-Nachricht Token) ausgetauscht werden.
Mechanismus
Eine zugrundeliegende GSSAPI Implementierung, die Namen, Token und Credentials bereitstellt. Bekannte Mechanismen beinhalten Kerberos, NTLM, DCE, SESAME, SPKM, LIPKEY.
Initiator/Empfänger
Das Ende, dass das erste Token sendet, ist der Initiator, das andere Ende der Empfänger. Im allgemeinen ist der Client der Initiator, während der Server der Empfänger ist.

Geschichte der GSSAPI