Un sistema utiliza claves simétricas si la misma clave sirve para cifrar y para descifrar un documento
En un sistema de claves asimétricas se utiliza una clave para cifrar y otra para descifrar el documento
Un mismo contenido puede ser representado de varias formas en XML
<img src="pp.jpg" alt="Foto de Pepe"></img>
<img src="pp.jpg" alt="Foto de Pepe" />
<img alt="Foto de Pepe" src="pp.jpg" />
Varias propuestas de W3C:
XML Digital Signature (2002) permite demostrar la identidad y autenticidad del documento
Objetivo: Integridad y autenticación
Es básica la canonización para identificar documentos comunes
SignedInfo
contiene la información que es firmada.
Incluye:
CanonizalizationMethod
: algoritmo utilizado para
canonizar el elementoSignatureMethod
: algoritmo para convertir signedInfo
en
signatureValue
Reference
incluye el método para obtener la firma (digest
)
y el valor, así como otras transformaciones realizadasSignatureValue
incluye el valor de la firmaKeyInfo
indica la la clave a utilizar para validar la
firma
<Signature Id="MyFirstSignature"
xmlns="http://www.w3.org/2000/09/xmldsig#">
<SignedInfo>
<CanonicalizationMethod
Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
<SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1"/>
<Reference URI="http://www.w3.org/TR/2000/REC-xhtml1-20000126/">
<Transforms>
<Transform
Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
</Transforms>
<DigestMethod
Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
<DigestValue>j6lwx3rvEPO0vKtMup4NbeVu8nk=</DigestValue>
</Reference>
</SignedInfo>
...
...
<SignatureValue>MC0CFFrVLtRlk=...</SignatureValue>
<KeyInfo>
<KeyValue>
<DSAKeyValue>
<p>...</p><Q>...</Q><G>...</G><Y>...</Y>
</DSAKeyValue>
</KeyValue>
</KeyInfo>
</Signature>
Objetivo: proteger una información que se envía del acceso no autorizado por terceras partes
Permite cifrar:
El elemento EncryptedData
consta de:
EncryptionMethod
KeyInfo
CipherData
<pedido><nombre>Pepe</nombre>
<formaPago><tarjeta tipo="Visa">
<num>2323 4121 2445 8976</num>
<titular>Jose Pablo Herrera</titular>
<fecha>02/09</fecha>
</tarjeta></formaPago>
</pedido>
<pedido><nombre>Pepe</nombre>
<formaPago>
<EncryptedData Type="http://www.w3.org/2001/04/xmlenc#Element"
xmlns="http://www.w3.org/2001/04/xmlenc#">
<CipherData><CipherValue>C5723A...</CipherValue></CipherData>
</EncryptedData>
</formaPago>
</pedido>
Puede cifrarse únicamente el valor de un elemento. Por ejemplo el número de tarjeta
<pedido><nombre>Pepe</nombre>
<formaPago><tarjeta tipo="Visa">
<num><EncryptedData Type="http://www.w3.org/2001/04/xmlenc#Content"
xmlns="http://www.w3.org/2001/04/xmlenc#">
<CipherData><CipherValue>B6235...</CipherValue></CipherData>
</EncryptedData>
</num>
<titular>Jose Pablo Herrera</titular>
<fecha>02/09</fecha>
</tarjeta>
</formaPago>
</pedido>
Puede cifrarse únicamente el valor de un elemento. Por ejemplo el número de tarjeta
<EncryptedData
MimeType="text/xml"
xmlns="http://www.w3.org/2001/04/xmlenc#">
<CipherData><CipherValue>B6235...</CipherValue></CipherData>
</EncryptedData>
Objetivo: Ocultar al usuario la complejidad subyacente en PKI
2 partes:
KeyInfo
contenido en las firmas
digitalesSAML (Security Assertion Markup Language) permite compartir información de autentificación entre aplicaciones
Se basa en autoridades que emiten aserciones
Transmite varios tipos de aserciones:
XACML (XML Access Control Markup Language) permite expresar políticas de control de acceso
Codifica en reglas XML expresiones del tipo:
XrML (eXtensible Rights Markup Language)
Permite expresar reglas sobre derechos
Codifica expresiones del tipo:
Fin de la presentación