XKMS, sigla en inglés para XML Key Management Specification (Especificación XML para manejo de claves), usa el framework de servicios web para facilitar a los desarrolladores asegurar la comunicación entre sus aplicaciones utilizando la infraestructura de clave pública (PKI). XKMS es un protocolo desarrollado por el World Wide Web Consortium (W3C) que describe la distribución y registro de claves públicas. Además es compatible para su uso en conjunto con XML-SIG (Especificación XML de firma digital) y XML-Enc (Especficación XML de cifrado).
Arquitectura
XKMS consta de dos partes: XKRSS - XML Key Registration Service Specification (Especificación XML de Servicio de registro de claves) Especifica como se registrará, revocará y recuperará claves públicas. La generación de claves se puede realizar por el cliente o al momento del registro en el servidor. XKISS - XML Key Information Service Specification (Especificación XML de Servicio de Información de claves) Especifica como se obtienen y validan claves públicas.
En ambos casos el principal objetivo es delegar toda la complejidad de implementaciones tradicionales de PKI a un servidor externo permitiendo a un cliente interactuar con él.
Estructura Suponemos que el cliente tiene su llave privada Private, posee una palabra clave Password y que recibió del servidor una clave auth para autenticación. Auth = HMAC-SHA1 (auth, 0x1) Pass = HMAC-SHA1 (HMAC-SHA1 (Password, 0x2), 0x3) XKRSS Registro y Revocación Petición Register (Etiqueta de inicio) Prototype Status (Estado de la clave, al registrarse se envía "Valid" y para revocar se debe enviar "Invalid") KeyID ds:KeyInfo ds:KeyValue (Clave pública, no incluida si en el registro se genera en el servidor) ds:KeyName ValidInterval (Intervalo de validez de la clave) NotBefore NotAfter PassPhrase (Pass) AuthInfo AuthUserInfo ProofOfPossession (Prueba de la posesión de las claves, no incluida si en el registro se genera en el servidor) ds:Signature (Firma de Prototype con la clave privada) KeyBindingAuth (Autentificación contra el servicio) ds:Signature (Hash de Prototype con Auth como clave) Respond (Lista de etiquetas de KeyInfo que se desean recibir como respuesta) string (Nombre de la etiqueta, si al registrar las claves se generan en el servidor se debe especificar la etiqueta "Private" para obtener la clave privada cifrada usando como clave Auth) Respuesta RegisterResult (Etiqueta de inicio) Answer Status (Estado de la clave) KeyID ds:KeyInfo (Dentro contendrá las etiquetas especificadas en la petición) Private (Solo si fue especificada al registrar clave con generación en el servidor)
XKISS Para XKISS la sintaxís de las peticiones es de manera similar. Obtención de clave Petición <Locate> <Query> <ds:KeyInfo> <ds:RetrievalMethod URI="http://www.PKeyDir.test/Certificates/01293122" Type="http://www.w3.org/2000/09/xmldsig#X509Data"/> </ds:KeyInfo> </Query> <Respond> <string>KeyName</string> <string>KeyValue</string> </Respond> </Locate> Respuesta <LocateResult> <Result>Success</Result> <Answer> <ds:KeyInfo> <ds:KeyName>O=XMLTrustCernter.org OU="Crypto" CN="Alice"</ds:KeyName> <ds:KeyValue>...</ds:KeyValue> </ds:KeyInfo> </Answer> </LocateResult> Validación Petición <Validate> <Query> <Status>Valid</Status> <ds:KeyInfo> <ds:KeyName>...</ds:KeyName> <ds:KeyValue>...</ds:KeyValue> </ds:KeyInfo> </Query> <Respond> <string>KeyName</string> <string>KeyValue</string> </Respond> </Validate> Respuesta <ValidateResult> <Result>Success</Result> <Answer> <KeyBinding> <Status>Valid</Status> <KeyID>http://www.xmltrustcenter.org/assert/20010120-39</KeyID> <ds:KeyInfo> <ds:KeyName>...</ds:KeyName> <ds:KeyValue>...</ds:KeyValue> </ds:KeyInfo> <ValidityInterval> <NotBefore>2000-09-20T12:00:00</NotBefore> <NotAfter>2000-10-20T12:00:00</NotAfter> </ValidityInterval> </KeyBinding> </Answer> </ValidateResult> Características y ventajas
Resulta fácil implementar un cliente. Estándar abierto (definido en conjunto entre la W3C y la IETF) Compatible no solo con PKI, también puede soportar PGP, SPKI entre otras.
Véase también Protocolo SOAP y definición WSDL para servicios web
Enlaces externos XKMS en la W3C XKMS, VeriSign XKMS con PGP ADSS XKMS Server
Categoría:Frameworks para aplicaciones web Categoría:Estándares criptográficos Categoría:Estándares del World Wide Web Consortium