La transmisión de información por internet se realiza de una forma más compleja de lo que en principio pudiese parecer. No va desde el emisor al receptor directamente, sino que se parte en pequeños paquetes que viajan por la ruta más adecuada según las circunstancias, pasando de una tarjeta de red a otra, hasta que llegan a su destino.
Normalmente las tarjetas ignoran los paquetes que no están dirigidos a ellas, pero hay un tipo de aplicaciones denominadas sniffers, que son capaces de poner la tarjeta a funcionar en modo promiscuo, capturando el tráfico que inicialmente no deberían. Además, estos programas permiten analizar las tramas de datos capturadas, tanto para un uso bienintencionado como malicioso.
En esta actividad el software sniffer que vamos a emplear es Wireshark, y en vez de capturar tráfico «real» usaremos unas trazas capturadas previamente por los creadores del MOOC. He tenido que pedir ayuda a compañeros, ya que la «lectura de las tramas» es complicada para los profanos, y la mayor parte de las veces no sabes ni dónde buscar la información. Aún así, vamos con la práctica:
1) Analizando un protocolo inseguro: Telnet
Telnet es un protocolo con el que se puede acceder a otra máquina para manejarla a distancia, pero que está en desuso por problemas de seguridad, ya que los nombres de usuario y contraseñas viajan sin cifrar (en texto plano). En este caso, cargamos la traza en Wireshark, filtramos por telnet, activamos uno de los frames, y vamos a analyze –> follow TCP Stream. Obtenemos la siguiente ventana:
- Usuario y contraseña: fake y user.
- SO: OpenBSD (Linux).
- Comandos: ls, ls -a, ping (a www.yahoo.com), y exit.
2) Analizando SSL
Abrimos con Wireshark una traza de tráfico SSL, un protocolo seguro para transmitir la información, ya que usa un sistema criptográfico asimétrico (con certificado X.509), que se incorpora como capa extra al protocolo de transacción empleado (sería una capa de seguridad entre la capa de aplicación y la capa de transporte). Filtramos por SSL, y repetimos el análisis anterior:
- Los primeros paquetes son los que incluyen los saludos y peticion/envío del certificado. El servidor lo envía en el 3º paquete (por confirmar).
- El certificado va cifrado; RSA Data Security parece ser la autoridad de certificación, a través de Verisign.
- Como se observa en la captura, entiendo que sólo se asegura la identidad del servidor (aunque supongo que también se podría solicitar la del cliente).
3) Analizando SSH
SSH es un intérprete de órdenes seguras que sirve para manejar máquinas remotas, al igual que Telnet pero más seguro. Cargamos la traza en Wireshark y procedemos:
- El tráfico cifrado empieza en el paquete número 20. Antes hay otros procesos de comunicación que debe ser la negociación previa propia del SSH.
- No sé donde mirarlo, pero supongo que la correspondencia entre «Encrypted packet» y el SSHv2 indicará que sólo es este el protocolo que viaja cifrado.
- Por suposición, diría que no se pueden obtener contraseñas, ya que cuando activas el analizador compruebas que la información está cifrada.
Concluyendo, actividad práctica muy interesante, pero cuyos términos y procesos se escapan un poco para alguien sin estudios al respecto. Eso sí, queda claro que para velar por la seguridad en el traslado de información o en el funcionamiento de una app, es clave que la información sensible no viaje en texto plano (sin cifrar).
Pingback: MHE: tarea final – Escoler