Indicatore di posizione chiave

Un key locator è un'astrazione del meccanismo che richiama la chiave per la firma digitale e la codifica. L'implementazione del modulo di login JAAS (Java™ Authentication and Authorization Service) viene utilizzata per creare il token di sicurezza sul lato generatore e per convalidare (autenticare) il token di sicurezza sul lato consumer.

Richiamare le chiavi da una delle seguenti origini, a seconda della propria implementazione:
  • File keystore Java
  • Database
  • Server KDC Kerberos (WebSphere® Application Server utilizzando solo JAX - WS)
  • Il servizio di attendibilità può fornire un token del contesto di sicurezza e una chiave (WebSphere Application Server solo utilizzando JAX - WS)
I key locator cercano la chiave utilizzando un qualche tipo di indizio. Sono supportati i seguenti tipi di indizi:
  • Un'etichetta stringa della chiave, che viene esplicitamente passata attraverso l'API (application programming interface). La relazione tra ciascuna chiave e i relativi nomi (etichetta stringa) viene mantenuta all'interno del key locator.
  • Il contesto di implementazione del key locator; le informazioni esplicite non vengono trasmesse al key locator. Un key locator determina la chiave appropriata in base al contesto di implementazione.

WebSphere Application Server Versioni 6 e successive supportano una firma basata sulla chiave segreta denominata HMAC-SHA1. Se si utilizza HMAC-SHA1, il messaggio SOAP non contiene un token di sicurezza binario. In questo caso, si presuppone che le informazioni sulla chiave all'interno del messaggio contengano il nome della chiave utilizzato per specificare la chiave segreta all'interno del keystore.

Poiché i key locator supportano la firma basata sulla chiave pubblica, la chiave per la verifica è integrata nel certificato X.509 come elemento <BinarySecurityToken> nel messaggio in entrata. Ad esempio, i key locator possono ottenere l'identità del chiamante dal contesto e possono richiamare la chiave pubblica del chiamante per la codifica della risposta.

Questa sezione descrive gli scenari di utilizzo per i key locator.

Firma:

Il nome della chiave di firma è specificato nella configurazione della sicurezza dei servizi web. Questo valore viene passato al key locator e viene restituita la chiave effettiva. È anche possibile restituire il corrispondente certificato X.509 .

Verifica:

Per impostazione predefinita, WebSphere Application Server Versione 6 e successive supporta i seguenti tipi di key locator:
KeyStoreKeyLocator
Utilizza il keystore per richiamare la chiave utilizzata per la firma digitale e la verifica o la codifica e la decodifica.
X509CertKeyLocator
Utilizza un certificato X.509 all'interno di un messaggio per richiamare la chiave per la verifica o la decrittografia.
SignerCertKeyLocator
Utilizza il certificato X.509 nel messaggio di richiesta per richiamare la chiave utilizzata per la codifica nel messaggio di risposta.

Crittografia:

Il nome della chiave di crittografia viene specificato nella configurazione della sicurezza dei servizi Web. Questo valore viene passato al key locator e viene restituita la chiave effettiva. Sul lato server, è possibile utilizzare SignerCertKeyLocator per recuperare la chiave per la crittografia nel messaggio di risposta dal certificato X.509 nel messaggio di richiesta.

Decodifica:

La specifica di sicurezza dei servizi Web consiglia di utilizzare l'identificativo chiave invece del nome chiave. Tuttavia, sebbene l'algoritmo per calcolare l'identificativo per le chiavi pubbliche sia definito in Internet Engineering Task Force (IETF) Request for Comment (RFC) 3280, non vi sono algoritmi concordati per le chiavi segrete. Pertanto, l'implementazione corrente della sicurezza dei servizi Web utilizza l'identificativo solo quando viene eseguita la codifica basata su chiave pubblica. Altrimenti, viene utilizzato il nome della chiave ordinale.

Quando si utilizza la codifica basata su chiave pubblica, il valore dell'identificativo chiave viene incorporato nel messaggio codificato in entrata. Quindi, l'implementazione della sicurezza dei servizi Web ricerca tutte le chiavi gestite dal key locator e decodifica il messaggio utilizzando la chiave il cui valore di identificativo corrisponde a quello del messaggio.

Quando si utilizza la codifica basata sulla chiave segreta, il valore del nome della chiave è incorporato nel messaggio codificato in entrata. L'implementazione della sicurezza dei servizi Web richiede il key locator per la chiave con il nome che corrisponde al nome nel messaggio e decodifica il messaggio utilizzando la chiave.