== Ubuntu Open Week - Crear y Firmar Llaves GPG - José Ernesto Dávila - Martes 3 de noviembre 2009 == {{{#!IRC [16:00:44] La primera sesión de esta tarde trata sobre el Uso de Claves GPG [16:01:05] y para ello vamos a explicar un par de conceptos básicos [16:01:40] aclaro que no soy un experto en algoritmos de cifrado ni mucho menos, simplemente soy un entusiasta que quiere compartir un poco de sus conocimientos con ustedes ;-) [16:02:00] == Conceptos Básico de Criptografía == [16:02:10] Cuando Julio César enviaba mensajes a sus generales, no confiaba en sus mensajeros. Así que reemplazaba cada A en sus mensajes por una D, cada B por una E y así sucesivamente hasta completar el alfabeto. [16:02:17] Solamente alguien que conociera la regla de desplazamiento de 3 caracteres podía decifrar el mensaje. [16:03:05] Esta es una de las primeras reseñas sobre cifrado de información que se conocen [16:03:23] = Cifrado y Descifrado = [16:03:34] Los datos que se pueden leer y entender sin tomar ninguna medida especial se denomina "texto plano". [16:03:48] El método para modificar el texto plano de manera que se oculte su contenido se denomina "Cifrado". [16:04:05] Al cifrar texto plano obtenemos como resultado un texto ilegible llamado "texto cifrado". [16:04:18] Utilizamos el cifrado para que la información este oculta incluso para aquellos que pueden ver los datos cifrados. [16:04:53] El proceso de revertir el texto cifrado al texto plano original se llama "Descrifado". [16:05:23] = ¿Qué es Criptografía? = [16:05:46] A groso modo podemos decir que es la ciencia que utiliza las matemáticas para cifrar y descifrar datos. [16:06:05] La criptografía nos permite almacenar información sensibl o transmitirla a través de canales inseguros (como Internet) de manera que no pueda ser leída excepto por el destinatario. [16:06:42] = ¿Cómo funciona la Criptografía? = [16:07:14] Como dijimos en el concepto, se hace uso de las matemáticas para generar un algoritmo criptográfico [16:07:25] Un algoritmo criptográfico es una función matemática utilizada en el cifrado y descrifrado de datos. [16:08:11] Estos algoritmos funcionan en combinación con una clave (una palabra, número o frase) para cifrar texto plano. [16:08:46] En el ejemplo de Julio César el algoritmo criptográfico es conocido como sustitución por desplazamiento [16:09:22] y la clave consiste en desplazar el alfabeto n caracteres a la izquierda [16:09:47] Así pues, el mismo texto plano genera diferentes textos cifrados con claves diferentes. [16:10:27] PREGUNTA: sustitución por desplazamiento, que quiere decir con esp [16:11:12] jalex significa que desplazamos el alfabeto estándar que conocemos una cantidad de veces a la izquierda, [16:11:16] de manera que [16:11:32] sustituimos una letra, por la que le corresponde en el alfabeto desplazado [16:11:36] por ejemplo [16:11:44] si nuestra clave de desplazamiento es de 3 [16:11:49] 3 caracteres [16:12:26] entonces para la A deberá sustituirce por la letra D [16:12:45] La seguridad de los datos cifrados depende de dos cosas: [16:12:55] 1. La fortaleza del algoritmo criptográfico. [16:13:13] 2. Mantener en secreto la clave. [16:13:28] cual es la diferencia entre una llave publica y una privada? la forma en que desencripta? [16:13:48] jamesjedimaster, te adelantaste un poco con la pregunta :-D [16:14:05] jamesjedimaster, dejame explicar un poco los dos puntos anteriores [16:15:03] la fortaleza del algoritmo criptográfico va permitir que sea más difícil descifrar los datos [16:15:27] el algoritmo por sustitución de Julio César es bastante simple en nuestros días [16:15:39] y puede ser muy fácil de quebrantar [16:15:54] el punto número dos es la parte más difícil [16:16:18] pues si dos personas quieren comunicarse de forma segura utilizando un algoritmo determinado, con una clave determinada [16:16:32] debe acordar cual será esa clave [16:17:02] y el pasar la clave una persona a otra es la parte más débil de todo el proceso [16:17:42] = Criptografía de Clave Pública = [16:18:18] Consiste en utilizar un par de claves para el cifrado de datos [16:18:26] una "clave pública", que cifra los datos [16:18:33] y su correspondiente "clave privada" (clave secreta) para descifrar. [16:18:49] creo que eso contesta la pregunta de jamesjedimaster :-) [16:19:21] La idea es publicar nuestra clave pública (valga la redundancia) para que sea accesible a "todo mundo" mientras mantenemos en secreto nuestra clave privada. [16:19:46] PREGUNTA entonces siempre debo tener la llave publica de las otras personas para poder ver lo que envian? [16:19:49] Cualquier persona, incluso personas que nunca has conocido, que tenga una copia de nuestra clave pública podrá cifrar información que solo nosotros podremos leer. [16:20:59] jamesjedimaster, no, vos necesitas la clave pública de la otra persona para poder enviarle información cifrada [16:21:07] OJO: la persona que tenga la clave pública solamente podrá cifrar la información, pero _NO_ podrá descifrarla. Solamente la persona con la clave privada puede descrifrar la información :-) [16:22:03] = Firmas Digitales = [16:22:18] Un gran beneficio de la criptografía de clave pública es que provée un método para emplear "firmas digitales". [16:23:40] PREGUNTA: Es lo mismo Criptografía Asimétrica que Criptografía de llave Pública ? [16:25:03] jcalderon, sip, es exactamente lo mismo [16:25:39] PREGUNTA todas las firmas digitales se pueden desencriptar si yo tengo mi llave? o necesito la llave del signatario? [16:26:09] Las firmas digitales permiten al destinatario de la información verificar la autenticidad del origen de la misma y también verificar que la información no fue alterada en tránsito. [16:26:33] claro que para realizar esa verificación debés tener la clave pública del firmante [16:26:53] De manera que las firmas digitales proporcionan autenticación y verificación de integridad de datos. [16:27:14] Una firma digital también evita que el remitente niegue que el/ella envió la información. No más hackers de lujo pues XD (nicas, expliquen esta broma por favor :-P ) [16:28:20] = Juguemos con GnuPG = [16:28:41] ¿Cuánto aquí tiene un par de clave GPG? [16:28:54] s/Cuánto/Cuantos/g [16:29:38] ¿Cuántos están usando GNU/Linux ahora mismo? [16:30:16] perfecto [16:30:38] si no hemos generado nuestro par de claves, ese es el primer paso [16:31:12] aclaro que para realizar todo esto debemos tener instalado gnupg, pero ese paquetes me atrevo a decir que viene por default en toda distribución de GNU/Linux [16:31:18] incluso hasta en SuSE XD [16:32:04] para los que no tiene claves abran una terminal y escriban el siguiente comando: [16:32:29] gpg --gen-key [16:33:14] verán la siguiente salida: [16:34:08] http://pastebin.ubuntu.com/308886/ [16:34:40] aquí debemos elegir el tipo de clave que queremos generar [16:34:58] selecionemos la opción 1 que es la predeterminada [16:35:29] PREGUNTA: que son DSA, ELGAMAL, RSA [16:36:06] PREGUNTA DSA entonces es el mas seguro? [16:36:37] ElArD, si te fijas bien es una combinación de DSA + Elgamal [16:37:33] una vez que elegimos el tipo de clave [16:37:47] no solicitará el tamaño de la clave: http://pastebin.ubuntu.com/308889/ [16:38:44] el tamaño de la clave es estrictamente proporcional al tamaño de tu paranoia LOL [16:39:11] en mi caso yo elegí la opción predeterminada (2048) [16:40:22] una vez elegido el tamaño de la clave se nos pregunta por el período de validez de la misma [16:40:40] elijan la opción que les sea más cómoda, pero tengan cuidado [16:41:03] un amigo que no está presente generó una clave que expiraba al día siguiente de la fecha en que la generó LOL [16:41:57] PREGUNTA: el tamaño de la clave, tiene que ver con la seguridad ? [16:42:05] jcalderon, si [16:42:19] entre mayor sea el tamaño de tu clave [16:42:37] más difícil será descifrar los datos que se hayan cifrado con ella [16:42:47] PREGUNTA: cual es la recomendable? [16:43:21] hagonma 2048 es suficiente para mi nivel de paranoia :-) [16:44:03] una vez que hemos elegido el período de validez de nuestra clave, se nos pedirá que confirmemos dicho dato [16:45:09] para ello pulsamos 'y' y damos ENTER [16:45:40] el siguiente paso es brindar nuestra información personal http://pastebin.ubuntu.com/308898/ [16:46:29] esta información debe contener nuestro nombre, un comentario y nuestro correo electrónico [16:46:54] yo utilizo el comentario para poner mi nick :-) [16:47:04] pero son libre de escribir lo que quieran [16:47:28] PREGUNTA es recomendable generar diferentes llaves? (trabajo, grupo social, familia) [16:48:19] jamesjedimaster, lo que yo he hecho es agregar varios identificadores de usuario a mi clave según en que círculo la vaya a utilizar [16:48:44] pregunta, hablaron del tema de cuidar las llaves ? [16:48:56] rmayorga, eso mismo iba a comentar ahorita :-) [16:49:03] pregunta: que pasa si cambio o formateo mi maquina como mantego mi llave? [16:49:40] es muy importante cuidar nuestras claves, especialmente cuando ya nos las han firmado [16:50:07] al final nuestro par de llavos son nuestra identidad! [16:50:30] y si caen en manos de personas indebidas podemos meternos en serios problemas [16:50:34] o peor aún [16:50:53] comprometer los datos que se haya cifrado con las mismas [16:52:06] una vez que hemos introducido nuestra información se los pedirá que confirmemos esos datos http://pastebin.ubuntu.com/308903/ [16:52:34] y gpg procederá a generar el par de claves [16:53:27] pregunta: que pasa si cambio o formateo mi maquina como mantego mi llave? [16:54:02] JManGt, antes de formatear debés respaldar la información sensible que tengas en ella a.k.a pr0n LOL [16:54:17] y tu par de claves debe estar en ese respaldo [16:54:19] PREGUNTA puedes abundar un poco sobre "varios identificadores de usuario para una clave"? [16:55:19] para respaldar nuestras claves basta con copiar el directorio ~/gnupg en un medio físico perdurable [16:56:06] jamesjedimaster, me gustaría terminar la generación de la clave y hablamos de eso en -chat luego, ok? [16:56:50] el último paso para generar nuestro par de claves es ingresar un contraseña para nuestra clave privada [16:57:18] esta contraseña debe ser suficientemente fácil de recordar, pero suficientemente difícil para que cualquiera la adivine [16:57:42] se recomienda el uso de mayúsculas y minúsculas así como de números y caracteres especiales [16:59:06] una vez escrita la contraseña se nos pedirá que se genere algo de entropía http://pastebin.ubuntu.com/308909/ [16:59:33] para ello podemos abrir un editor de texto y escribir texto aleatorio, reproducir un vídeo, o música [16:59:46] una vez finalizado ese proceso ya tendremos nuestro par de claves [17:00:41] si escribimos el siguiente comando en la terminal, podremos ver nuestras claves recién generadas [17:00:51] gpg --list-keys [17:01:44] en mi caso, yo obtengo la siguiente salida: http://pastebin.ubuntu.com/308918/ [17:02:36] me avisan que ya estoy sobre la hora [17:02:43] así que vamos a cortar aquí :( [17:03:01] gracias alucardni ;) [17:03:20] las preguntas que quedaron pendientes en el chat [17:03:31] para mayor información sobre GNUPG les recomiendo que lean http://www.gnupg.org/gph/en/manual.html#AEN136 }}}