El documento y la clave van separados y firmados (Esto es útil para cuando se quiere firmar un archivo binario, como ficheros comprimidos, ejecutables…)
Esto es útil para cuando se quiere firmar un archivo binario, como ficheros comprimidos, ejecutables…
Creamos un archivo, yo en este caso he puesto «hola3».
A continuación se pone gpg -b -a (nombre del archivo).
Se ha creado un archivo «hola3.asc»
Para verificar la firma hay que poner gpg –verify (nombre del archivo.asc)
El documento no es cifrado y cualquiera lo puede leer y solo sería necesario usar gpg (con su correspondiente comando) para verificar la firma.
Voy a enseñar como poner una firma con gpg –clearsign (el documento no sale cifrado y cualquiera lo puede ver).
Para empezar por ejemplo vamos a la capeta personal y creamos un archivo, por ejemplo «hola»
A continuación para que el archivo se firme pero no se cifre se pone gpg –clearsign (nombre del archivo). (yo en este caso he puesto hola)
(para completarlo te pedira que crees una contraseña)
Para verificarlo podemos entrar en el archivo creado con la extension asc (en mi caso hola.asc) y ponerle algo para posteriormente verificarlo.
Lo he modificado añadiendole «hola» y para verificar la firma se pone gpg –verify (nombre puesto anteriormente.asc) (tambien pueden terminar con extensión sgn)
Voy a enseñar como se hace la firma digital con gpg.
Hay 3 clases de firmas digitales con gpg:
1º Poniendo gpg–clearsign el documento no es cifrado y cualquiera lo puede leer y solo sería necesario usar gpg para verificar la firma.
2º Usando gpg -s con la clave privada del usuario. El fichero se comprime (binario) y es ilegible.
3º Utilizando gpg -bpara que la firma aparezca en un fichero aparte. Esto es útil para cuando se quiere firmar un archivo binario, como ficheros comprimidos, ejecutables…
Gracias por mirar el blog, si te ha gustado coméntalo.
Esta vez voy a enseñar como intercambiar las claves publicas y claves privadas con gpg
Antes de empezar vamos a donde queremos dejar el archivo (en el caso de que no nos movamos por defecto en Ubuntu te deja en la carpeta personal).
Yo aconsejo que para hacer este ejemplo nos vayamos a la carpeta /tmp (ya que en esta carpeta cualquier usuario puede entrar (son archivos temporales) y cuando se reinicia el ordenador se borra lo que haya dentro de esa carpeta).
Primero hay que poner el comando gpg –gen-key para crear el archivo con la contraseña.
Lo haré con esta clave pública. (11A1A720)
Ejemplo:
Para saber las claves privadas gpg –list-secret-keys y para saber las claves publicas gpg -k)
Antes de enviar la clave pública a otro usuario debemos exportarla.
Para eso se usa el comando gpg -a –export -o (ruta donde queremos poner nuestro documento y con la terminación del documento con la llave pública).
Tiene que salir algo como esto si ha salido bien al abrir el archivo creado en tmp.
Ejemplo:
Nota importante: si se está en tmp no hace falta poner el directorio, solo se pone el nombre del archivo ejemplo: gpg -a –export -o ejemplo55
Le estamos diciendo que:
-a para que no salga en binario
–export para que lo exporte (para que lo deje en otro sitio).
-o para guardarlo directamente en un fichero (si no se usara «-o» saldría en pantalla).
/tmp es el sitio donde yo quiero dejar el archivo (he elegido la carpeta temporal para que al crear un usuario desde el mismo ordenador pueda coger la llave pública).
ejemplo55 (es el nombre que quiero yo que se llame el archivo con la llave pública).
11A1A720 llave pública.
Al poner el comando de arriba se ha creado en /tmp el archivo ejemplo55
Ahora entramos con un segundo usuario. (otra cuenta).
Ponemos gpg –import /tmp/ejemplo55 (el archivo ejemplo55 tiene que tener un candado y sale esta imagen como que está bien).
–import de donde lo cogemos
/tmp archivo temporal
ejemplo55 es la llave publica
Ahora con el usuario 2 (empecé explicando con el 1) voy a crear un mensaje para que se lo envíe al usuario 1.
1º Se crea un fichero de texto y se pone algo dentro (yo he puesto dentro «código secreto«).
2º Se pone el comando gpg –encrypt (nombre del archivo)(recomiendo ir a tmp para que sea más cómodo). (se pone el comando y te pedirá un código donde pone «acabe con una línea vacía», ese código es la llave pública (hay que poner una vez el código y luego no hace falta poner nada, se le da a intro).
Ejemplo del comando:
Con el 1º usuario si todo ha salido bien en la consola se pone:
gpg -d y dirección del archivo que antes hemos encriptado con la llave pública y nos tiene que pedir contraseña
Y tiene que salir algo parecido a esto:
Importante: si alguien se equivoca con las llaves y tiene muchas, para borrarlas basta con poner:
(Primero hay que borrar la clave privada y después la pública en ese orden)
gpg –delete-secret-key seguido de: nombre apellidos, correo electrónico o comentario (elegir uno de los 3).
y después poner gpg –delete-key seguido de: Nombre Apellidos, correo electrónico o comentario. (elegir uno de los 3).
(para borrar las claves primero hay que borrar la clave privada (gpg –delete-secret-key) y luego la pública (gpg –delete-key)
Antes de empezar hay que saber que al cifrar de forma asimétrica te dan 2 claves (una clave pública y una clave privada).
Clave pública es para enviárselo al emisor (en el caso de que quiera enviarle algo que este cifrado) (al enviárselo cifrado una tercera persona no podrá desencriptarlo aunque solo conozca la clave pública y hacen falta las 2 claves para desencriptarlo).
Clave privada: nunca es comunicada. (si alguien conoce la clave privada no puede deducir la clave pública).
1º Vamos al directorio que queramos crear la encriptación y ponemos gpg –gen-key
Aquí el ejemplo:
Como se puede comprobar nos salen diferentes opciones (tipo de clave), voy a explicar la que está por defecto.
RSA Y RSA (Por defecto) genera 2 claves, la clave pública y la privada (genera las claves tanto para encriptar como para firmar).
Elegimos la primera opción:
Cuanto mayor sea la clave, más segura será contra los ataques, pero tarda más en cifrar y descifrar.
Elegimos la opción por defecto (2048 bits).
Para elegir cuando caduca se pone el número como pone en pantalla, yo en este caso he elegido 1m(para que caduque en 1 mes).
Le damos a «s» (si) y hay que poner un nombre y apellidos, dirección y comentario(cada uno pone lo que quiera para acordarse después, yo en este caso he puesto solamente «ejemplo asimétrico).
Cuando se termina si alguien quiere cambiar algo, abajo da la oportunidad de cambiar lo que haga falta antes de confirmar.
Después de darle a «v« hay que meter la contraseña que uno quiera (hay que acordarse de ella después para descifrar) (tarda unos cuantos minutos en hacer la clave privada y pública).
En lo que está entre paréntesis a cada persona le saldrá una cantidad diferente depende la contraseña que ponga.
Cuando termine hay que fijarse donde pone «pub» que es la clave pública y el «sub» es la subclave.
Para ver mejor las claves publicas hay que poner gpg -k como se ve en la imagen.
(o poniendo gpg –list-keys).
Ahora hay que fijarse donde pone «pub» y un código que pone 2048R (el 2048 se refiere al tipo de longitud que hemos elegido para la clave)
El 0B97659A se refiere que esa es nuestra clave pública.
0B97659A
Ahora para sacar la clave pública y tenerla hay que poner:
Después hay que exportarlo con el comando:
gpg -a –export -o /tmp/documentosecreto
-a se refiere que no sea binario.
-o se refiere a guardarlo en un fichero
/tmp es una carpeta temporal que cualquier usuario del sistema puede entrar (lo cual viene bien para pasarse archivos si hay más de un usuario creado en el sistema).
documentosecreto es el nombre que quieres que se llame el documento (la clave pública).
Para hacer este ejemplo he creado un usuario para pasarle el documento (documentosecreto).
Primero hay que crear el documento con la clave privada con la terminación «gpg» y para ello se pone el código que he puesto a continuación (por defecto sale en la carpeta personal)
Voy a enseñar a cifrar con el cifrado simétrico (solo hay una clave).
Primero vamos al directorio que queramos (en este caso yo he creado un documento vacío) y le he puesto de nombre cifrar y dentro de «cifrar» he puesto «aprendiendo a cifrar«
Aquí un ejemplo de como se va a la carpeta con comandos (todo el ejemplo va a ser con comandos)
Para ir por los directorios del sistema se usa el comando cd
Para el cifrado simétrico se usa el comando gpg.
-csirve para la clave pública.
-aguarda el documento con caracteres ascii.
-d descifra el documento (para poder ver lo que hay dentro).
-opara dejarlo en un fichero
DESENCRIPTACIÓN CON GPG
(Terminación .gpg)
Para crear un archivo cifrado hay que poner el comando «gpg» -c y el nombre que le hayamos puesto al archivo, aquí un ejemplo:
(cuando se pone el gpg -c y el nombre del archivo hay que poner la contraseña del usuario).
Como se puede comprobar sale otro archivo con la terminación «gpg» eso quiere decir que está encriptado (si se abre el archivo con la extensión gpg es ilegible «en este caso cifrar.gpg»).
Ahora voy a desencriptarlo (y que se vea el contenido) con un ejemplo:
En el archivo «cifrar» puse «aprendiendo a cifrar» y sale abajo como se puede ver en la imagen.
Para que salga con el nombre que queramos(el archivo desencriptado) se pone gpg -d(nombre del archivo) (el signo «>» ) y (nombre que queramos).
Ejemplo:
Otro comando para visualizar se llama –decrypt y sirve para ver lo que hay en el archivo encriptado (lo desencripta visualmente).
Ejemplo:
Otro ejemplo (para ver lo que hay dentro de un archivo) sería con el comando «cat»(para que salga correctamente lo que hemos puesto encriptado hay que mirar el comando cat en el archivo que se haya creado (en este caso «resultado») para ver que esta desencriptado correctamente).
Ejemplo del comando cat:
DESENCRIPTACIÓN CON ASCII
(Terminación .asc)
Ahora otro ejemplo pero esta vez esté encriptado con ascii.
Hay que ir al sitio donde este el archivo a encriptar y poner gpg -c -a y(nombre del archivo).
Aquí el ejemplo:
Ahora el código de desencriptación de ascii que se usaría gpg -d (nombre del archivo) con terminación «asc»
Aquí el ejemplo:
Para que se cree la carpeta con lo descifrado se pone como en el ejemplo:
Ahora con el comando cat para que se vea el resultado al abrir el fichero.
Aquí el ejemplo de –decrypt con ascii.
Gracias por mirar el blog, ¿que te ha parecido? Coméntalo.