Zum Inhalt springen

Benutzer:MeileGuster/Key Management Interoperability Protocol

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 20. Februar 2013 um 09:51 Uhr durch 2001:620:1c0:a044:a6ba:dbff:fef3:837c (Diskussion). Sie kann sich erheblich von der aktuellen Version unterscheiden.

Das Key Management Interoperability Protocol bietet einen einheitlichen Standard für die Kommunikation zwischen einem Key Lifecycle Management System (KLMS) und dessen Clients. Dadurch kann eine zentrale Schlüsselverwaltung eingesetzt werden und die Datensicherheit erhöht werden. Das Protokoll wurde von OASIS normiert.

Protokolldefinition

In der [KMIP Spezifikation] wird definiert, wie eine Nachricht aussehen muss und welche Informationen ausgetauscht werden können. Einige Funktionalitäten von Client und Server, zum Beispiel die Fehlerbehandlung, werden vorgegeben. Andere können wie gewünscht umgesetzt werden. Ein Client oder Server muss nicht die vollständige, im Protokoll definierte Funktionalität umsetzen, sondern nur die tatsächlich benötigte. Die Protokoll-Spezifikation gibt nicht vor, wie die Authentifizierung zwischen Client und Server abläuft. Allerdings werden in einem zugehörigen Dokument zwei Authentifizierungs-Profile beschrieben. Bei beiden Profilen werden Versionen des Transport Layer Security TLS verwendet. TLS dient nicht nur der Authentifizierung, es stellt auch die Integrität der Daten sicher.

Objekte

Bei den Objekten wird zwischen Base Objects (Basis Objekten) und Managed Objects (verwalteten Objekten) unterschieden. Base Objects sind Informationen, die ein Managed Object spezifizieren. Zu den Base Objects gehören zum Beispiel Attribute, Key Value und Key Wrapping Data . Ein Managed Object ist ein Objekt mit kryptographischem Inhalt, das vom KLM-System verwaltet wird. Dazu gehören die verschiedenen Schlüssel und Zertifikate. Ausserdem können Templates (Vorlagen) erstellt werden, die dem Administrator eines KLM-Systems ermöglichen, Attribute von oft genutzten Prozessen zusammenzufassen. Zum Beispiel kann eine Vorlage für einen symmetrischen Schlüssel erstellt werden, in welcher der Algorithmus und die Länge des Schlüssels definiert sind. Wenn ein Schlüssel nach diesen Spezifikationen erstellt werden soll, wird der Name des Templates anstelle der gewünschten Attribute übergeben. Um weitere geheimzuhaltende Objekte zu speichern, werden das Secret Data Objekt (z.B. für Passwörter) oder das Opaque Object verwendet. Die Daten im Opaque Object müssen vom Server nicht interpretiert werden können. Es wird zum Beispiel ein Schlüssel gespeichert, obwohl der Server den verwendeten Verschlüsselungs-Algorithmus nicht unterstützt.

Attribute

Um die Managed Objects zu spezifizieren, gibt es verschiedene Attribute. In Tabelle 1 sind alle Attribute mit ihren wichtigsten Eigenschaften aufgelistet. Es gibt Attribute, die für jedes Objekt oder für bestimmte Objekte zwingend sind, andere sind optional. Von einigen Attributen können pro Objekt mehrere Instanzen vorhanden sein. Wichtig ist dies zum Beispiel beim Link. Ein Public Key hat einen Link zum zugehörigen Private Key und zusätzlich zum Zertifikat, das den Schlüssel mit einer Identität verknüpft. In der KMIP Spezifikation wird zudem für jedes Attribut beschrieben, wer es erstellen, ändern, löschen darf und bei welchen Operationen das Attribut implizit gesetzt wird.

Attribut Beschreibung
Unique Identifier
  • Eindeutige Bezeichnung eines Objekts innerhalb eines KLMS
  • Wird vom Server bei der Erstellung gesetzt und kann nicht verändert werden
Name
  • Name des Objekts
  • Vom Client gesetzt
  • Vom Client benötigt, um das Objekt zu referenzieren
Object Type
  • Typ des Objekts (Public Key, Private Key, etc.)
Cryptographic Algorithm
  • Algorithmus, der vom Objekt verwendet wird (RSA, DES, AES, etc.)
Cryptographic Length
  • Länge des Schlüssels in Bits
Cryptographic Parameters
  • Parameter für bestimmte Anwendungen (z.B. Hash-Algorithmus)
Cryptographic Domain Parameters
  • Parameter zur Erstellung eines Schlüsselpaares
Certificate Type
  • Typ des Zertifikats (X.509, PGP, etc.)
Certificate Identifier
  • Identifikation eines Zertifikats (Aussteller des Zertifikats und wenn vorhanden Seriennummer)
Certificate Subject
  • Identifikation des Subjekts (Person oder Gerät) eines Zertifikats
  • Kann mehrere Beschreibungen beinhalten (Name, E-Mail-Adresse, IP-Adresse, etc.)
Certificate Issuer
  • Identifikation des Ausstellers eines Zertifikats
  • Kann mehrere Beschreibungen beinhalten (Name, E-Mail-Adresse, IP-Adresse, etc.)
Digest
  • Hash Wert von Schlüssel, Zertifikat, Secret Data oder Opaque Object
  • Mehrere Hash-Werte möglich (mit verschiedenen Algorithmen)
Operation Policy Name
  • Beschreibung, welche Clients welche Operationen auf dem Objekt ausführen dürfen
  • Server hat mindestens eine Standard-Einstellung (default policy)
Cryptographic Usage Mask
  • Bit-Maske
  • Beschreibt die erlaubten Anwendungen eines Schlüssels
Lease Time
  • Intervall währenddessen das Objekt genutzt werden darf
Usage Limits
  • Beschreibt die limitierte Nutzung eines Objekts
  • Nutzung begrenzt nur Operationen zum Schutz von Informationen (z.B. Verschlüsselung), Operationen zur Verarbeitung geschützter Informationen (z.B. Entschlüsselung) sind unbegrenzt nutzbar
  • Enthält Einheit (z.B. zu verschlüsselnde Bytes), aktuellen Zähler und total erlaubte Anzahl Einheiten
State
  • Aktueller Status des Objekts
  • Kann nur vom Server verändert werden
Initial Date
  • Zeit und Datum der Erstellung/Registrierung des Objekts
Activation Date
  • Zeit und Datum der Aktivierung
  • Objekt darf ab dem Aktivierungsdatum für schützende Operationen (Entschlüsseln oder unwrapping) genutzt werden
Process Start Date
  • Zeit und Datum, ab wann das Objekt für die Bearbeitung von verschlüsselten Informationen genutzt werden darf
  • Darf nicht früher sein als die Aktivierungszeit
Protect Stop Date
  • Zeit und Datum, ab wann ein Objekt nicht mehr für schützende Operationen (Verschlüsseln oder wrapping) eingesetzt werden darf
  • Darf nicht später sein als Deaktivierungszeit
Deactivation Date
  • Zeit und Datum der Deaktivierung
Destroy Date
  • Zeit und Datum des Löschens des Objekts
Compromise Occurrence Date
  • Zeit und Datum, ab wann das Objekt als kompromittiert gilt
Compromise Date
  • Zeit und Datum der Zustandsänderung in den Compromised State
Revocation Reason
  • Grund, warum ein Objekt annulliert wird
Archive Date
  • Zeit und Datum, wann das Objekt archiviert wurde
Object Group
  • Name einer Objekt-Gruppe
Link
  • Zusammenhänge zwischen den Objekten (Private Key – Public Key, Public Key – Certificate, etc.)
  • Mehrere Links pro Objekt möglich
Application Specific Information
  • Zusätzliche, applikationsspezifische Informationen zu einem Objekt
Contact Information
  • Kontaktinformationen (Personen/Geräte, die für ein Objekt verantwortlich sind)
Last Change Date
  • Zeit und Datum der letzten Änderung
Custom Attribute
  • Anbieterspezifisches Attribut
  • Client- oder serverseitig