Logotipo de Hackear con Linux - Web de seguridad informática y hackers Logotipo de Hackear con Linux - Web de seguridad informática y hackers Logotipo de Hackear con Linux - Web de seguridad informática y hackers
Inicio de Hackear con Linux - Web de seguridad informática y hackers Distribuciones Linux de Hackear con Linux - Web de seguridad informática y hackers Lista de comandos de Hackear con Linux - Web de seguridad informática y hackers Utilidades de Hackear con Linux - Web de seguridad informática y hackers Manuales de Hackear con Linux - Web de seguridad informática y hackers Cómo empezar a Hackear con Linux - Web de seguridad informática y hackers
Hackear con Linux
Hackear con Linux
  

Cifrados criptográficos

  En muchas ocasiones, especialmente en el ámbito empresarial, es necesario transmitir una información que por su carácter es de vital importancia para la empresa o las personas que se comunican una cierta información. En muchas ocasiones esta información es muy tentadora para la competencia o curiosos y debemos asegurarnos que no pueda ser captada por ellos.

Para intentar evitar esto, o al menos complicárselo, existe la criptografía, donde nuestra información será enviada por el medio que sea de forma que no sea legible a simple vista o necesite de contraseñas para poder ser leída. A esto es a lo que se le llama criptografía, a encriptar nuestra información.

Estos sistemas se han usado a lo largo de la historia, desde Julio Cesar, que usaba un sistema tan simple como aumentar 3 caracteres a cada uno de los reales, hasta tecnologías más avanzadas como la máquina Enigma usada por los nazis en la segunda guerra mundial.

Este tipo de sistemas se ha ido actualizando y desarrollando numerosos programas y protocolos para aumentar su complejidad.

Lo primero es conocer los dos tipos de encriptación que existen, los simétricos y los asimétricos que intentaré explicaros de la forma más sencilla posible.

Simétrico. Los cifrados simétricos son los que mediante una contraseña enviada en la trasmisión, el receptor puede desencriptar con esa clave el mensaje. Esto es poco seguro en casos en los que alguien intervenga esa comunicación. Cuando se usa este sistema, es muy importante transmitir y mensaje y la clave por dos vías totalmente diferentes. Si mandamos el archivo cifrado y la contraseña del sistema simétrico, no servirá de nada, cualquiera que esté interceptado la comunicación obtendrá ambos y podrá acceder a toda la información. Un claro ejemplo de cifrado simétrico es el que realiza por ejemplo WinRar al poner una contraseña cuando comprimimos un archivo protegido. Para Linux existen diversos programas criptográficos simétricos, uno de ellos es GPG, vamos a probarlo. Voy a usar una distro de Linux llamada Lubuntu que ya lo tiene instalado por defecto y es bastante rápida. Para este caso os servirá prácticamente cualquier distro, aunque estaría bien que os acostumbréis a usar diferentes distros.

Si queremos cifrar un archivo con un mensaje, por ejemplo el archivo llamado simetrico.txt que podemos crear con el comando nano simetrico.txt y escribir un texto cualquiera en él, se escribe lo siguiente: gpg --symetric simetrico.txt. Es importante que cuando solicite contraseña, la recordemos.

Sistemas de criptografía en Linux

Si listamos el directorio con ls –l, veremos que nos ha creado ese mismo archivo o mensaje con la extensión .gpg al final. Como vemos los permisos de Linux son exactamente iguales.

Sistemas de criptografía en Linux

Si editamos este archivo, esto es lo que nos mostrará.

Sistemas de criptografía en Linux

Ahora copiamos el archivo en un directorio común, por ejemplo /tmp.

Sistemas de criptografía en Linux

Si por ejemplo disponemos de dos usuarios, vamos a otro terminal y nos logamos con otro usuario, en este caso los usuarios serán alumno y profesor. Para crear los usuarios sería por ejemplo adduser profesor, damos al intro y le ponemos una contraseña fácil de recordar. Cuando abrimos una terminal de comandos y queremos acceder con otro usuario, recordar que usamos el comando su profesor, damos al intro y ponemos la contraseña.

Vamos a desencriptar el archivo desde el otro usuario. Usamos el comando gpg --decrypt /tmp/simetrico.txt.gpg. Automáticamente desencripta el mensaje y nos muestra el contenido, en este caso yo escribí Hola chicos. que marco en la siguiente imagen.

Sistemas de criptografía en Linux

Para poder desencriptarlo, nos pedirá la misma contraseña que puso el primer usuario que encriptó este mensaje, la clave debe ser la misma y previamente debe trasmitírsela por el medio que desee.

También existe la posibilidad de mandar ese mensaje a un archivo para tenerlo guardado y no tener que verlo por pantalla.

Sistemas de criptografía en Linux

Lo que hemos hecho con el signo de mayor que, es mandar la ejecución del comando a un archivo llamado dealumno.txt que crea en el mismo directorio, si no existe el fichero lo crea automáticamente. Si abrimos el archivo con un editor, veremos el mensaje ya en texto plano.

Sistemas de criptografía en Linux

Si tenemos fallos de contraseñas, podemos borrar la clave simétrica con el comando rm .gnupg –r, pero espero que no os olvidéis de la contraseña.

Dentro de la inseguridad de la criptografía simétrica, podemos proteger un poco más nuestros archivos o programas cifrados usando adicionalmente a la clave, un algoritmo de encriptación, por ejemplo en este caso vamos a usar AES.

Sistemas de criptografía en Linux

Nos pedirá de nuevo 2 veces la contraseña. Si editamos el archivo creado, esta vez lo hemos creado con la extensión .aes para diferenciarlo del otro, esto es lo que nos muestra.

Sistemas de criptografía en Linux

Lo mandamos o pasamos a un directorio de otro usuario o compartido. Ahora desde el usuario receptor desencriptamos el archivo con la misma contraseña y lo mandamos a un archivo .txt.

Sistemas de criptografía en Linux

Si abrimos el archivo descifrado con el mensaje, se verá lo siguiente, bueno, cada uno lo que haya escrito en su archivo.

Sistemas de criptografía en Linux

Esto es más o menos la criptografía simétrica, no muy recomendada, pero teniamos que verla por encima. Vamos ahora a la que realmente es más usada, la criptografía asimétrica.

Esta criptografía es mucho más segura que la simétrica. Con este sistema criptográfico, se usan dos claves, una pública y otra privada. La pública es conocida por todo el mundo, pero la privada es única de cada receptor.

Con la clave pública se cifra, se manda el mensaje cifrado y al recibir el receptor el mensaje cifrado, lo descifra sólo con su clave privada.

Esto también se puede realizar con el comando gpg. Vamos a ver algunos ejemplos.

Primero para borrar la claves simétricas y evitar problemas hacemos lo siguiente en ambos usuarios.

Sistemas de criptografía en Linux

Ahora creamos las claves con el comando gpg --gen-key desde el primer usuario, en mi caso alumno. Seleccionamos 2 para indicarle DSA y Elgamal.

Sistemas de criptografía en Linux

Rellenamos los datos que nos va solicitando, usaré sólo 1024 bits de longuitud de clave, una validez de 30 días, pulso S para confirmar y en nombre le pongo Alumno o el que queramos.

Sistemas de criptografía en Linux

Ponemos los datos que deseamos. Al final damos a V para confirmar y ponemos la clave que queramos, para las prácticas os recomiendo una sencilla y que recordéis, como 123456789 o similar.

Sistemas de criptografía en Linux

Nos saldrá este aviso, simplemente conectate a internet con el navegador en alguna web, abre aplicaciones del equipo, etc., para generar tráfico que necesita para que funcione correctamente. Tras esto saldrá lo que se llama huella de la clave.

Sistemas de criptografía en Linux

Esta huella de clave es importante, guardarla en un archivo o imagen. Si no recordamos las contraseña, podemos listarlas.

Sistemas de criptografía en Linux

Si listamos el directorio .gnupg vemos la clave pública y la privada, serían los archivos pubring.gpg y secring.gpg respectivamente.

Sistemas de criptografía en Linux

Ahora vamos a exportar la clave pública al archivo alumno.pub, si algún hacker la captase sería indiferente, si no dispone de clave privada no podrá descifrar el mensaje.

Sistemas de criptografía en Linux

Ahora si desde el otro usuario, profesor en mi caso, abre el archivo alumno.pub, vemos la clave pública encriptada.

Sistemas de criptografía en Linux

Para importar la clave pública en un usuario, se hace así.

Sistemas de criptografía en Linux

Podemos comprobar que se ha importado correctamente y que es del usuario correcto.

Sistemas de criptografía en Linux

Ahora vamos a mandar un mensaje del usuario profesor al usuario alumno cifrado. Creamos un archivo llamado mensprofe con nano mensprofe y ponemos un texto cualquiera. Hacemos lo siguiente.

Sistemas de criptografía en Linux

Aquí –o indica el destino del archivo cifrado, alumno se refiere a la clave pública llamada alumno, a eso se refiere con recipient, no al usuario alumno.

Le damos que si y listo. Veremos que se muestran las huellas de clave. Como vemos la huella de clave primaria, debe ser igual que la que vimos anteriormente y que apareció en el otro usuario, por eso quería que la guardaras.

Editamos el mensaje cifrado que vamos a mandar del usuario profesor al usuario alumno. Esto es lo que va a recibir.

Sistemas de criptografía en Linux

Ahora vamos al usuario alumno y vamos a descifrar ese mensaje. Primero vemos que la huella es correcta ejecutando gpg --fingerprint.

Sistemas de criptografía en Linux

Ahora desencriptamos el mensaje y lo guardamos en un txt. Nos pedirá la clave que pusimos, no la pública o privada.

Sistemas de criptografía en Linux

Editamos el txt que usamos de salida y vemos ya el mensaje desencriptado.

Sistemas de criptografía en Linux

Ahora vamos a hacer lo opuesto, creando una clave pública al usuario profesor que deba desencriptar el usuario alumno, seguimos el mismo procedimiento.

Sistemas de criptografía en Linux

Vemos que ya hay dos claves.

Sistemas de criptografía en Linux

Exportamos la clave pública profesor.

Sistemas de criptografía en Linux

Vamos al usuario alumno y la importamos.

Sistemas de criptografía en Linux

Creamos desde el usuario alumno un mensaje llamado mensajealprofe y se cifra.

Sistemas de criptografía en Linux

Vamos al usuario profesor y desencriptamos el mensaje, mostrándolo por ejemplo en pantalla.

Sistemas de criptografía en Linux

Pues ya estaría, ahora a facilitar este proceso. SSH es un protocolo de comunicaciones seguras que usa clave simétrica y posteriormente asimétrica. Esto permite que la comunicación cifrada entre dos o más usuarios sea más ágil y no tengan que estar constantemente encriptando y desencriptando.

Ahora, con la clave pública ya creada, vamos a firmar los ficheros para agilizar estas taréas.

Creamos un archivo llamado mensajefirma y escribimos algo en él. Lo firmamos de la siguiente forma y nos crea uno del mismo nombre con la extensión .asc

Sistemas de criptografía en Linux

Si lo editamos vemos que está correctamente encriptado.

Sistemas de criptografía en Linux

Vamos al usuario profesor y copiamos el archivo cifrado a nuestra carpeta home. Comprobamos que el archivo esté firmado por quien dice ser, para ello ejecutamos el siguiente comando.

Sistemas de criptografía en Linux

Para firmar archivos se puede hacer de la siguiente forma.

Sistemas de criptografía en Linux

Si editamos el fichero, vemos que tiene el mensaje en si, y la firma.

Sistemas de criptografía en Linux

Lo copiamos al directorio tmp.

Sistemas de criptografía en Linux

Vamos al usuario profesor y lo copiamos a nuestro directorio home.

Sistemas de criptografía en Linux

Ya el usuario profesor dispone de acceso a un fichero firmado y encriptado. Vemos que la firma es correcta.

Sistemas de criptografía en Linux

Si lo edita, el profesor verá el mensaje y verá que está firmado.

Sistemas de criptografía en Linux

Si el usuario alumno desea firmar y además encriptar, debe ejecutar esto.

Sistemas de criptografía en Linux

Con esto si editamos el archivo, ya no vemos el mensaje, está totalmente encriptado.

Sistemas de criptografía en Linux

Lo volvemos a pasar a algún directorio donde el profesor tenga acceso.

Sistemas de criptografía en Linux

El usuario profesor se lo trae a su home.

Sistemas de criptografía en Linux

Vemos que efectivamente el profesor no ve nada si edita el archivo al estar encriptado.

Sistemas de criptografía en Linux

Si el profesor lo desencripta, podrá ver el mensaje.

Sistemas de criptografía en Linux

También lo puede sacar como un txt para verlo en texto plano.

Sistemas de criptografía en Linux

Si abre ese txt, verá el mensaje sin ningún problema.

Sistemas de criptografía en Linux

Compruebo que la firma es de alumno y no es sospechosa.

Sistemas de criptografía en Linux

Si le digo que si, a partir de ahora la firma alumno será para siempre una firma aceptada.

Esto que aparentemente parece tan tedioso, es la forma interna de cómo funcionan los certificados digitales que tan útiles nos son para diferentes trámites por internet, sólo que los certificados son más sencillos a nivel visual.

En este caso hemos trabajado en local, pero al cifrar un archivo, este puede ser enviado por cualquier otro medio, como el correo electrónico.

En estas firmas digitales, veremos que tanto la confianza, como la validez, son desconocidas. Esto no quiere decir que las firmas sean incorrectas o falsas, sino que no están certificadas por una entidad certificadora reconocida a nivel internacional.

Para lograr una firma válida, existen varias empresas a nivel mundial como Verisign o thawte, pero son certificados de pago. Con ello te aseguras que tu web, aplicación, mails, etc., sean reconocidas por los sistemas informáticos como una firma certificada y válida. Los servidores disponen de una opción de generar un certificado validado para ese servidor o dominio de una empresa, pero fuera de eso no será un certificado de confianza.

Además la mayoría de países disponen de certificados validados que son gratuitos para sus habitantes. Para ello mediante una plataforma online y mediante una identificación del documento identificativo de identidad de cada país, puedes solicitar un número con el que poder presentarte en alguna administración y verificando tu verdadera identidad, te conceden un certificado válido, que asegura que realmente eres quien dices ser. Esto suele ser mediante un nuevo código único, que permitirá al usuario ya poder descargarse ese certificado para posteriormente instalarlo en el navegador.

  
Hackear con Linux
   
 

AprendeaHackear.com - Todos los derechos reservados

Valid HTML 4.01 Transitional   ¡CSS Válido!   Icono de conformidad con el Nivel A, de las Directrices de Accesibilidad para el Contenido Web 1.0 del W3C-WAI