Blog de robótica e inteligencia artificial

1/07/2014

Cómo navegar de manera segura en las WiFi-s públicas

Este artículo se me ocurrió escribirlo tras el paso de las vacaciones, donde quien más quien menos lo primero que hace al llegar al hotel o le toca esperar en el aeropuerto es buscar si hay WiFi, sobre todo en el extranjero, donde todavía no se ha eliminado la roaming (previsto para verano 2014). 



En este artículo intentaré explicar cómo podemos hacerlo de manera segura y me centraré en el sistema operativo Android. Aunque las generalidades serán aplicables a cualquier otro OS, tanto móvil como de ordenador.

Las WiFi-s públicas que nos encontremos pueden ser gratis o de pago. En ambos casos, la seguridad que suelen tener brilla por su ausencia, y probablemente nos estemos conectando a una conexión abierta (es decir, sin cifrado) en el que cualquier espabilado nos puede snifar los datos, hacer el ataque Man-in-the-middle o intentar meter cualquier tipo de malware.

En primer lugar, cada vez que alguien se conecte a una WiFi pública yo me preocuparía de saber si huele o no, ya que puede ser alguien que sin mucho problema haya creado una red WiFi abierta en el aeropuerto con SSID WiFiAirport, y creedme, se crea un efecto de moscas a la miel. ¿Por qué no ver esta charla para comprobarlo?

¿Qué podemos hacer para investigar un poco? Algunas sugerencias:

- Fijarnos en si hay una web de inicio del sitio (puede que si nos conectamos en el Starbucks, al abrir el navegador la primera web sea la de esa cadena).
- Con un escáner de red del estilo Fing en Android, podemos echar un vistazo para ver las IPs que hay conectadas, o con Network Info II podemos ver información de la red. 
- En cualquiera de los de las dos aplicaciones, podemos ver la dirección IP del router al que nos hemos conectado, y os recomiendo meterla en el navegador a ver qué nos encontramos (normalmente http://192.168.0.1 o del estilo).

Pero otro modo seguro es el de conectarnos a través de una conexión VPN-SSL. Vamos a ver qué significa esto:

VPN por un lado, y SSL por otro, son conceptos separables. VPN hace referencia a una red virtual privada, y consiste en conectarnos desde una infraestructura pública y realizar una conexión privada, con un cifrado L2TP, por ejemplo. Es lo que podríamos hacer desde cualquier ordenador del mundo para conectarnos por ejemplo al ordenador de nuestro trabajo. De hecho, ese fue el origen de la idea. Sin embargo, puede aumentarse la seguridad estableciendo un túnel SSL, o su sucesor, TLS.

SSL es un sistema de cifrado y consiste en establecer la conexión con la VPN a través de un túnel SSL. ¿Qué significa esto? Pongamos que yo estoy en París, y me conecto a una VPN localizada en Brasil, y empiezo a navegar por la web. Cualquiera que este hurgando en esa conexión, lo que estará viendo es que mi IP pública está localizada en Brasil, y será distinta de mi IP privada situada en París, pero es que además, mis datos estarán seguros a través del túnel SSL y estarán cifrados. En una imagen, esto es más o menos lo que sería:


Y estas son algunas de las razones principales para conectarnos a un VPN:

- Para proteger tu privacidad, ya sea en una red local o un punto de acceso público.
- Para navegar anónimamente en la red
- Sortear bloqueos geográficos de ciertas sitios web.
- Conexión segura para todo el software activo, diferente a los proxies.
- Mayor velocidad de navegación en relación a los proxies.
- Protección contra las tácticas espías y limitadoras de tu ISP.
- Saltarte los bloqueos de tu ISP para el uso de aplicaciones de VOIP.

El problema es que algunos VPN cuestan dinero, o que solo son gratuitos unos cuantos megas al día/mes, y que la velocidad de navegación normalmente no va a ser tan rápida como la conexión original normalmente.

¿Pero Android no hacía todas sus conexiones en SSL? Sí, hasta que se descubre que no. Después de haber introducido el método, voy a explicar la manera de implementarlo:

Podríamos conseguir que nuestro propio ordenador de casa o del trabajo sea un servidor VPN que usemos desde cualquier parte del mundo a nuestro antojo, pero eso implicaría configurar en ese ordenador la parte servidor (configurar contraseña, protocolos, IP, etc), y en el móvil/tablet/ordenador que nos llevásemos de viaje, la parte cliente del software. ¿El problema? Tendríamos que tener ese VPN siempre encendido durante nuestra ausencia. Esto se puede conseguir fácilmente por ejemplo con LogMein Hamachi y guía.

Por eso, a mí me parece más cómodo conectarnos a un servidor VPN disponible en la web (que hay muchos) y de esa manera, configurar nosotros solo la parte cliente del software VPN. Aquí tenéis una buena selección actualizada de los programas más populares y eficaces, y yo me voy a centrar en la parte cliente de OpenVPN para Android. Para ello, lo primero que tenemos que hacer es descargarnos la app OpenVPN Connect, que no requiere privilegios root.




A continuación, en lugar de configurarnos nosotros mismos la parte cliente, OpenVPN deja a nuestra disposición la opción de importar archivos .ovpn que contienen toda la información de la conexión VPN que queremos hacer. (podemos importarlo a través de la tarjeta SD), y el programa detectará automáticamente que hay un archivo .ovpn.





En esta página están la guías para hacer estos pasos en Win, Mac y Android.

¿Pero a ver, de dónde consigo los archivos .ovpn? La mejor página que he encontrado es www.vpngate.net/en/. De ahí podéis pinchar en el servidor VPN de cualquier país, y descargaros el archivo. Mirad antes la latencia de la señal, el ancho de banda, cantidad de usuarios, si es un país que tiene por costumbre espiar al resto de países, etc.

Las conexiones con OpenVPN se realizan en TLS, con lo cual, estaremos teniendo una conexión bastante seguro frente a mirones. Esto lo podemos ver en Opciones, Show Log File, donde veréis todos los datos de vuestra conexión. 

Mención especial en esta entrada para @lawwait y @txipi por su ayuda.

Hacer esto es fácil. Lo difícil es entender, crear y programar toda la tecnología que hay tras esto.
Comparte:

0 comentarios:

Publicar un comentario

Sígueme en redes:

descripción descripción descripción

En mi mesilla

Blog Archive