Key-Locator
Ein Key-Locator (Schlüsselsuchfunktion) (com.ibm.wsspi.wssecurity.config.KeyLocator) ist eine Abstraktion des Verfahrens, das den Schlüssel für digitale Signatur und Verschlüsselung abruft.
- Java™-Keystore-Datei
- Datenbank
- LTPA-Server (Lightweight Third Party Authentication)
- Ein Zeichenfolgekennsatz des Schlüssels, der explizit über die API übergeben wird. Die Beziehung zwischen jedem Schlüssel und seinem Namen (Zeichenfolgekennsatz) wird im Key-Locator verwaltet.
- Der Ausführungskontext des Key-Locator. Es werden keinen expliziten Informationen an den Key-Locator übergeben. Ein Key-Locator bestimmt den richtigen Schlüssel nach Ausführungskontext.
Die aktuellen Versionen der Key-Locator unterstützen den Abruf von Prüfschlüsseln nicht, weil die aktuellen Implementierungen von Web Services Security keine Unterstützung für Signaturen auf der Basis von geheimen Schlüsseln bieten. Weil die Key-Locator nur Signaturen auf der Basis öffentlicher Schlüssel unterstützen, ist der Prüfschlüssel im X.509-Zertifikat als Element <BinarySecurityToken> in die eingehende Nachricht eingeschlossen.
Key-Locator können beispielsweise die Identität des Callers aus dem Kontext und anschließend den öffentlichen Schlüssel des Calles für die Verschlüsselung der Antwort abrufen.
Einsatzszenarien
Dieser Abschnitt beschreibt Verwendungsszenarien für Key-Locator.
Signatur:
Der Name des Signaturschlüssels wird in der WS-Security-Konfiguration angegeben. Dieser Wert wird an den Key-Locator übergeben, und der eigentliche Schlüssel wird zurückgegeben. Das entsprechende X.509-Zertifikat kann auch zurückgegeben werden.
Prüfung
Wie zuvor beschrieben, werden Key-Locator nicht für die Prüfung der Signatur verwendet.
Verschlüsselung:
Der Name des Signaturschlüssels wird in der WS-Security-Konfiguration angegeben. Dieser Wert wird an den Key-Locator übergeben, und der eigentliche Schlüssel wird zurückgegeben.
Entschlüsselung:
Die WS-Security-Spezifikation empfiehlt die Verwendung der Schlüssel-ID anstelle des Schlüsselnamens. Weil der Algorithmus für die Berechnung der ID öffentlicher Schlüssel in Internet Engineering Task Force (IETF) Request for Comment (RFC) 3280 definiert ist, gibt es keinen vereinbarten Algorithmus für geheime Schlüssel. Deshalb verwendet die aktuelle Implementierung von Web Services Security die ID nur, wenn eine Verschlüsselung auf der Basis des öffentlichen Schlüssels durchgeführt wird. Andernfalls wird der Schlüsselname verwendet.
Wenn Sie mit Verschlüsselung auf der Basis öffentlicher Schlüssel arbeiten, ist die Schlüssel-ID in die eingehende verschlüsselte Nachricht eingeschlossen. Die Implementierung von Web Services Security sucht daraufhin alle Schlüssel, die vom Key-Locator verwaltet werden, und entschlüsselt die Nachricht mit dem Schlüssel, dessen ID-Wert dem in der Nachricht enthaltenen entspricht.
Wenn Sie mit Verschlüsselung auf der Basis geheimer Schlüssel arbeiten, ist der Wert des Schlüsselnamens in die eingehende verschlüsselte Nachricht eingeschlossen. Die Implementierung von Web Services Security fragt den Key-Locator nach dem Schlüssel, dessen Name dem in der Nachricht enthaltenen Namen entspricht, und entschlüsselt die Nachricht dann mit diesem Schlüssel.