firma digital XML
XML-Signature Syntax and Processing (firma XML) es una especificación que define las reglas del proceso y la sintaxis XML para firmar y verificar el contenido digital de las firmas digitales. La especificación ha sido desarrollada conjuntamente por W3C (World Wide Web Consortium) e IETF (Internet Engineering Task Force).
La firma XML no introduce nuevos algoritmos criptográficos. WebSphere Application Server utiliza la firma XML con los algoritmos existentes como, por ejemplo, RSA, HMAC y SHA1. La firma XML define muchos métodos para describir información clave y permite la definición de un nuevo método.
- <person first="John" last="Smith"/>
- <person last="Smith" first="John"></person>
C14n es un proceso que se utiliza para canonicalizar información XML. Seleccione el algoritmo c14n correspondiente, porque la información que se canonicaliza depende de este algoritmo. Uno de los principales algoritmos c14n, Exclusive XML Canonicalization, canonicaliza el esquema de codificación de caracteres, el orden de los atributos, las declaraciones del espacio de nombres, etc. El algoritmo no canonicaliza los espacios en blanco fuera de los distintivos, los prefijos del espacio de nombres ni la representación del tipo de datos.
Firma XML en la especificación Web Services Security-Core
La especificación WSS-Core (Web Services Security-Core) define una forma estándar de incorporar una firma XML para los mensajes SOAP. Puede utilizar prácticamente todas las características de la firma XML en WSS-Core, excepto la firma envuelta y la firma envolvente. No obstante, WSS-Core tiene algunas recomendaciones como, por ejemplo, la canonicalización exclusiva del algoritmo c14n y otras características adicionales como SecurityTokenReference y KeyIdentifier. KeyIdentifier es el valor del campo SubjectKeyIdentifier dentro del certificado X.509. Si desea obtener más información sobre KeyIdentifier, consulte "Reference to a Subject Key Identifier" en la documentación OASIS Web Services Security X.509 Certificate Token Profile.
- Integridad del mensaje
- El receptor del mensaje puede confirmar si ha habido ataques o accidentes que hayan alterado partes del mensajes después de que se hayan firmado con una clave.
- Autenticación
- Puede suponer que una firma válida es una prueba de posesión. Un mensaje con un certificado digital emitido por una autoridad certificadora y una firma del mensaje validada correctamente por una clave pública en el certificado demuestra que el firmante tiene la clave privada correspondiente. El receptor puede autenticar el firmante comprobando la fiabilidad del certificado.
Firma XML en la implementación actual
La firma XML está soportada en la seguridad de servicios web, aunque no está disponible una API (Interfaz de programas de aplicación). La implementación actual tiene muchos comportamientos no modificables y algunos elementos de configuración modificables por el usuario. Para configurar el cliente para la firma digital, consulte Configuración del cliente para la verificación de la firma digital de respuestas: verificación de las partes del mensaje. Para configurar el servidor para la firma digital, consulte Configuración del servidor para la verificación de la firma digital de solicitudes: verificación de las partes del mensaje.
Consideraciones de seguridad:
En un ataque de reproducción, el atacante interviene la línea, recibe un mensaje firmado y devuelve el mensaje al receptor. En este caso, el receptor recibe el mismo mensaje dos veces y puede procesar los dos si las firmas son válidas. El proceso de ambos mensajes puede suponer daños para el receptor si el mensaje es un cargo bancario. Si tiene la indicación de la hora de generación firmada y la fecha de caducidad firmada en una repetición del mensaje, se pueden reducir los ataques. No obstante, esto no constituye una solución completa. El mensaje debe tener un valor Nonce para evitar dichos ataques y el receptor debe rechazar un mensaje que contenga un Nonce procesado. La implementación actual no proporciona una forma estándar de generar y comprobar Nonces en los mensajes. En WebSphere Application Server, Versión 5.1, Nonce sólo está soportado en las señales de los nombres de usuario. El perfil de la señal del nombre de usuario contiene casos concretos de uso de Nonce en las señales de nombre de usuario. Las aplicaciones manejan valores Nonces (como los números de serie) y se tienen que firmar.