martes, 22 de abril de 2008

Firma Digital


Sistema compuesto de hardware, software, canales de comunicacion y recursos humanos que provee un marco de seguridad y confianza a los documentos electronicos, permitiendo asociar la identidad de una persona o de un equipo informatico a un mensaje o documento.

Para hacer firmas digitales podemos utilizar GNUPG (GNU Privacy Guard) es una herramienta para cifrado y firmas digitales, un reemplazo del PGP (Pretty Good Privacy) pero con la principal diferencia que es software libre bajo licencia GPL. Para instalar esta herramienta en linux solo basta con el siguiente comando:
# apt-get install gnugp

Para ejecutarlo solo es cuestion de dar unos comandos.
# gpg --help --> Nos mostrara las formas de utilizarlo, los algoritmos con los que trabaja y nos dara algunos ejemplos.

Un ejemplo de una Firma Digital en codigo ASCII, que es el encargado de poner lo cifrado en una forma mas ordenada por parrafos.

--> Primero creamos la firma en texto claro. pico firma.txt (Mi firma de correo)
--> Luego la ciframos con:
# gpg -s -a firma.txt (-s=crea una firma, -a=metodo ascii) donde nos preguntara lo siguiente.

Necesita una frase contraseña para desbloquear la clave secreta
del usuario: "Alexandra Amaya (ALEX4) "
clave DSA de 1024 bits, ID 62B5503A, creada el 2008-04-16

gpg: el agente gpg no esta disponible en esta sesión
Introduzca frase contraseña: -->aca debemos ingresar nuestra frase secreta.

Ahora miramos el archivo firmado que sera firma.txt.asc (.asc=Formato ascii)
# cat firma.txt.asc

-----BEGIN PGP MESSAGE-----
Version: GnuPG v1.4.6 (GNU/Linux)

owGbwMvMwCQostDXZwfDCiHGNZ5J3LmVaZlFuYl6JRUlHkp+U12LSxIVUosVcjMV
wOIKKZnpmSWJOToKKak5Csn5RUWp+UAmSL44NS9RT09PEQS4OuyZWRlABsAMF2Tq
D2aYZ9S3QNE11/eX6Uo54wm79Wp6znOqM8wPsvl6czbPYvYpjgXuOnMygySeh6wC
AA==
=VTlf
-----END PGP MESSAGE-----

Para verificar la firma de un compañero se puede hacer asi:

# gpg --verify firma_ana.txt.asc -->Mostrara lo siguiente.
gpg: Firmado el jue 17 abr 2008 10:42:06 COT usando clave DSA ID 85C2AB4C
gpg: Imposible comprobar la firma: Clave pública no encontrada

No sera lo correcto por eso antes debemos hacer algo como acontinuacion. Copiar la clave en un archivo el cual importaremos (clave_ana.txt).
Importar la clave asi:
# gpg --import clave_ana.txt --> Clave de mi compañera
gpg: clave 85C2AB4C: clave pública "Ana Zapata " importada
gpg: Cantidad total procesada: 1
gpg: importadas: 1
gpg: 3 dudosa(s) necesarias, 1 completa(s) necesarias,
modelo de confianza PGP
gpg: nivel: 0 validez: 1 firmada: 0 confianza: 0-, 0q, 0n, 0m, 0f, 1u
gpg: siguiente comprobación de base de datos de confianza el: 2008-05-14

Ahora en el momento que hacemos un: # gpg --list-key listara dos claves la de mi compañera y la mia. Ejemplo
# gpg --list-key
/home/alexandra/.gnupg/pubring.gpg
----------------------------------
pub 1024D/B800A812 2008-05-07 [[caduca: 2008-05-14]]
uid Alexandra Amaya (ALEX4)
sub 2048g/92E6E455 2008-05-07 [[caduca: 2008-05-14]]

pub 1024D/85C2AB4C 2008-04-17 [[caduca: 2008-05-17]]
uid Ana Zapata
sub 2048g/386B1EC5 2008-04-17 [[caduca: 2008-05-17]]

Verificar la firma del compañero:
# gpg --verify firma_ana.txt.asc
gpg: Firmado el jue 17 abr 2008 10:42:06 COT usando clave DSA ID 85C2AB4C
gpg: Firma correcta de "Ana Zapata "
gpg: ATENCIÓN: ¡Esta clave no está certificada por una firma de confianza!
gpg: No hay indicios de que la firma pertenezca al propietario.
Huellas dactilares de la clave primaria: CB74 BA88 29AC 5145 F51A C3AA 579B EA89 85C2 AB4C

Como no hemos firmado la llave del compañero por eso nos aparece
" No hay indicios de que la firma pertenezca al propietario". Pero para firmarla asi:
# gpg --sign-key 85C2AB4C (ID)

pub 1024D/85C2AB4C creado: 2008-04-17 [caduca: 2008-05-17] uso: SC
confianza: desconocido validez: desconocido
sub 2048g/386B1EC5 creado: 2008-04-17 [caduca: 2008-05-17] uso: E
desconocido (1). Ana Zapata

pub 1024D/85C2AB4C creado: 2008-04-17 [caduca: 2008-05-17] uso: SC
confianza: desconocido validez: desconocido
Huella de clave primaria: CB74 BA88 29AC 5145 F51A C3AA 579B EA89 85C2 AB4C

Ana Zapata

Esta clave expirará el 2008-05-17.
¿Está realmente seguro de querer firmar esta clave
con su clave: "Alexandra Amaya (ALEX4) " (B800A812)?

¿Firmar de verdad? s

Introduzca frase contraseña: --> (Ingresamos nuestra frase secreta)

Necesita una frase contraseña para desbloquear la clave secreta
del usuario: "Alexandra Amaya (ALEX4) "
clave DSA de 1024 bits, ID B800A812, creada el 2008-05-07

gpg: el agente gpg no esta disponible en esta sesión

Ahora si en el momento de hacer: # gpg --verify firma_ana.txt.asc NO nos mostrara lo anterior
gpg: Firmado el jue 17 abr 2008 10:42:06 COT usando clave DSA ID 85C2AB4C
gpg: Firma correcta de "Ana Zapata "

Terminamos espero me hallan entendido, o si no me pueden dejar comentarios que con gusto corregire mis errores o procurare ser mas clara.

No hay comentarios: