Localizador de claves
Un localizador de claves es una abstracción del mecanismo que recupera la clave para la firma digital y el cifrado. La implementación del módulo de inicio de sesión JAAS (Java™ Authentication and Authorization Service) se utiliza para crear la señal de seguridad en el generador y validar (autenticar) la señal de seguridad del cliente.
- Archivo de almacén de claves Java
- Base de datos
- Servidor KDC de Kerberos (sólo WebSphere Application Server que utilice JAX-WS)
- El servicio de confianza puede proporcionar una clave y una señal del contexto de seguridad (sólo WebSphere Application Server que utilice JAX-WS)
- Una etiqueta de serie de la clave, que se pasa explícitamente a través de la interfaz de programas de aplicación (API). Las relaciones entre cada clave y su nombre (etiqueta de clave) se mantiene dentro del localizador de claves.
- El contexto de implementación del localizador de claves; no se pasa información específica al localizador de claves. Un localizador de claves determina la clave correcta según el contexto de implementación.
WebSphere Application Server Versión 6 y posteriores dan soporte a los siguientes tipos de firmas basadas en claves secretas denominados HMAC-SHA1: Si utiliza HMAC-SHA1, el mensaje SOAP no contiene una señal de seguridad binaria. En este caso, se presupone que la información de claves contenida en el mensaje incluye el nombre de la clave que se utiliza para especificar la clave secreta en el almacén de claves.
Debido a que los localizadores de claves dan soporte a firmas basadas en claves públicas, la verificación se incorpora en el certificado X.509 como un elemento <BinarySecurityToken> del mensaje de entrada. Por ejemplo, los localizadores de claves pueden obtener la identidad del interlocutor a partir del contexto y recuperar la clave pública del interlocutor para cifrar la respuesta.
En esta sección se describen los ejemplos de uso de los localizadores de claves.
Firma:
El nombre de la clave de firma se especifica en la configuración de seguridad de los servicios web. Este valor se pasa al localizador de claves y se devuelve la clave real. También se puede devolver el certificado X.509 correspondiente.
Verificación:
- KeyStoreKeyLocator
- Utiliza el almacén de claves para recuperar la clave que se utiliza para firmas digitales y verificación o para cifrado y descifrado.
- X509CertKeyLocator
- Utiliza un certificado X.509 contenido en un mensaje para recuperar la clave de verificación o descifrado.
- SignerCertKeyLocator
- Utiliza el certificado X.509 contenido en el mensaje de solicitud para recuperar la clave que se utiliza para cifrar el mensaje de respuesta.
Cifrado:
El nombre de la clave de cifrado se especifica en la configuración de seguridad de los servicios web. Este valor se pasa al localizador de claves y se devuelve la clave real. En el extremo del servidor, puede utilizar SignerCertKeyLocator para recuperar la clave de cifrado en el mensaje de respuesta a partir del certificado X.509 del mensaje de solicitud.
Descifrado:
La especificación de seguridad de servicios web recomienda utilizar el identificador de la clave en lugar del nombre de la clave. No obstante, aunque el algoritmo para calcular el identificador de las claves públicas se define en IETF (Internet Engineering Task Force) RFC (Request for Comment) 3280, no hay ningún acuerdo para el algoritmo de las claves secretas. Por lo tanto, la implementación actual de la seguridad de los servicios web utiliza el identificador sólo cuando se realiza el cifrado basado en claves públicas. De lo contrario, se utiliza el nombre de la clave ordinal.
Cuando se utiliza el cifrado basado en claves públicas, el valor del identificador de la clave se incorpora en el mensaje cifrado entrante. A continuación, la implementación de seguridad de servicios web busca todas las claves gestionadas por el localizador de claves y descifra el mensaje utilizando la clave cuyo valor de identificador coincide con el del mensaje.
Cuando se utiliza el cifrado basado en claves secretas, el valor del nombre de la clave se incorpora en el mensaje cifrado entrante. La implementación de seguridad de servicios web pide al localizador de claves la clave cuyo nombre coincide con el del mensaje y descifra el mensaje utilizando la clave.