Title: Seguridad Informtica
1Seguridad Informática
Resúmenes de Mensajes Java SE Security Micael.Gal
lego_at_urjc.es
Seguridad en Java
2Introducción
- Un resumen es una huella dactilar digital de un
mensaje o documento. Es una pequeña secuencia de
bytes que resume el mensaje o documento - Se le conoce como
- Message Digest
- Digest
- Hash Value
- digital fingerprint
- checksum
- Se construye usando un algoritmo de resumen de
mensajes (message digest algorithm), también
llamado función hash criptográfica (cryptographic
hash function)
3Introducción
- Este tipo de resúmenes tienen ciertas propiedades
- Pequeñas variaciones en el documento, hacen que
el resumen sea completamente diferente - Partiendo de un resumen no se puede obtener el
documento original - Dado un resumen concreto, no se puede crear un
documento que tenga ese mismo resumen - Ejemplos de algoritmos de resúmenes
- SHA-1, MD5, RIPEMD-160
Es computacionalmente muy costoso y por tanto se
considera improbable
4Resumen en Java
- Para crear un resumen en Java se usa la clase
MessageDigest - Se usa el método update() por cada array de
bytes - Se consulta el valor del resumen con el método
byte digest()
5Resumen en Java
File file FileInputStream fis new
FileInputStream(file) MessageDigest md
MessageDigest.getInstance("MD5") byte data
new byte2048 int leidos while ((leidos
fis.read(data)) ! -1) md.update(data, 0,
leidos) byte digest md.digest()
6Resumen en Java
- Es muy habitual mostrar el resumen en formato
hexadecimal
private static String toHexString(byte digest)
StringBuffer buf new StringBuffer()
for (byte b digest) buf.append(String.for
mat("02x", b)).append(" ") return
buf.toString()
7Ejercicio 1
- Implementa un programa en Java que compruebe si
el MD5 pasado en la lÃnea de comandos corresponde
al MD5 de un fichero determinado - Este programa permite comprobar la validez de la
descarga de un fichero desde la web - Ejemplo http//tomcat.apache.org/download-60.cgi
Resumen MD5 del fichero