Ver Mensaje Individual
  #1 (permalink)  
Antiguo 17/03/2008, 06:40
chcma
 
Fecha de Ingreso: junio-2003
Ubicación: Asturias
Mensajes: 2.429
Antigüedad: 20 años, 11 meses
Puntos: 7
Iniciandome en firmas digitales !!

Buenas tardes foreros !!!

Bueno, estoy empezando a estudiar el tema de las firmas y he mirado un ejemplo qu está bastante bien, pero tengo dudas, por lo que espero qeu alguien experto en la materia pueda solucionarmelas, jejeje.

Bien el ejemplo se basa en firmar digitalmente el siguiente fichero XML:
Código:
<CreditCardInfo>
   <CCNumber>12345678</CCNumber>
   <Amount>100</Amount>
   <FirstName>Sitaraman </FirstName>
    <LastName>Lakshminarayanan </LastName >
     <Address1> 100 Robinson Avenue </Address1>
     <City> Philadelphia </City>
      <Zip>12345</Zip>
</CreditCardInfo>

Por consiguiente, se genera el siguiente XML con la firma:
Código:
- <Signature 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="#TarjetaCredito">
  <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> 
  <DigestValue>Rtn1NDt4yXemDyjg0mXJAeEAfYA=</DigestValue> 
  </Reference>
  </SignedInfo>
  <SignatureValue>GMzAtGW4PKZZE3/USBGp+ckrRAk39dR02DFMY67XVSzeUiAF2LhsEg==</SignatureValue> 
- <Object Id="TarjetaCredito">
- <CreditCardInfo xmlns="">
  <CCNumber>12345678</CCNumber> 
  <Amount>100</Amount> 
  <FirstName>Sitaraman</FirstName> 
  <LastName>Lakshminarayanan</LastName> 
  <Address1>100 Robinson Avenue</Address1> 
  <City>Philadelphia</City> 
  <Zip>12345</Zip> 
  </CreditCardInfo>
  </Object>
  </Signature>


Bueno, preguntas:

El <DigestValue> entiendo que es el MD5 de los datos que firmo. ¿Correcto?
El <Object> entiendo que es simplemente para mostrar visualmente los datos que se han firmado. ¿Correcto?

Si las dos son correctas, supongamos que quiero firmar un fichero .PDF, ¿Bastaría con mostrar el <DigestValue>? Es decir, no tener que poner en Base64 todo el contenido del fichero, ya que sería un documento XML muy pesado.

Es decir, seria válido algo como:
Código:
- <Signature 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="#TarjetaCredito">
  <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> 
  <DigestValue>Rtn1NDt4yXemDyjg0mXJAeEAfYA=</DigestValue> 
  </Reference>
  </SignedInfo>
  <SignatureValue>GMzAtGW4PKZZE3/USBGp+ckrRAk39dR02DFMY67XVSzeUiAF2LhsEg==</SignatureValue> 
</Signature>
En fin, espero pueda ponerme un poco al día con todo esto, jejeje.

Saludos.
__________________
Charlie.