Privacidad

La mayoría de los usuarios son dichosamente ignorantes de que su correo electrónico privado, conversaciones en línea, y aún sus contraseñas a menudo son enviados “al descubierto” por docenas de redes inseguras antes de llegar a su destino en Internet. No obstante lo errados que pueden estar, en general, los usuarios tienen expectativas de un poco de privacidad cuando usan redes de computadoras.

La privacidad se puede lograr, aún en redes inseguras como los puntos de acceso público e Internet. El único método efectivo probado para proteger la privacidad es el uso de una encriptación fuerte de extremo a extremo.

Las técnicas de encriptación como WEP y WPA intentan mantener la privacidad en la capa dos, la capa de enlace de datos. Aunque éstas nos protegen de los fisgones en la conexión inalámbrica, la protección termina en el punto de acceso. Si el cliente inalámbrico usa protocolos inseguros (como POP o SMTP para recibir y enviar correos electrónicos), entonces los usuarios que están más allá del AP pueden registrar la sesión y ver los datos importantes. Como mencionamos antes, WEP también tiene la debilidad de utilizar claves privadas compartidas. Esto significa que los usuarios legítimos de la red pueden escucharse unos a otros, ya que todos conocen la clave privada.

Utilizando encriptación en el extremo remoto de la conexión, los usuarios pueden eludir completamente el problema. Estas técnicas funcionan muy bien aún en redes públicas, donde los fisgones están oyendo y posiblemente manipulando los datos que vienen del punto de acceso.

Para asegurar la privacidad de los datos, una buena encriptación de extremo a extremo debe ofrecer las siguientes características:

  • Autenticación verificada del extremo remoto. El usuario debe ser capaz de conocer sin ninguna duda que el extremo remoto es el que dice ser. Sin autenticación, un usuario puede darle datos importantes a cualquiera que afirme ser el servicio legítimo.
  • Métodos fuertes de encriptación. El algoritmo de encriptación debe ser puesto al escrutinio del público, y no debe ser fácil de descifrar por un tercero. El uso de métodos de encriptación no publicados no ofrece seguridad, y una encriptación fuerte lo es aún más si el algoritmo es ampliamente conocido y sujeto a la revisión de los pares. Un buen algoritmo con una clave larga y adecuadamente protegida, puede ofrecer encriptación imposible de romper aunque hagamos cualquier esfuerzo utilizando la tecnología actual.
  • Criptografía de clave pública. Aunque no es un requerimiento absoluto para la encriptación de extremo a extremo, el uso de criptografía de clave pública en lugar de una clave compartida, puede asegurar que los datos personales de los usuarios se mantengan privados, aún si la clave de otro usuario del servicio se ve comprometida. Esto también resuelve ciertos problemas con la distribución de las claves a los usuarios a través de una red insegura.
  • Encapsulación de datos. Un buen mecanismo de encriptación de extremo a extremo protege tantos datos como sea posible. Esto puede ir desde encriptar una sencilla transacción de correo electrónico, a encapsular todo el tráfico IP, incluyendo búsquedas en servidores DNS y otros protocolos de soporte. Algunas herramientas de encriptación proveen un canal seguro que también pueden utilizar otras aplicaciones. Esto permite que los usuarios corran cualquier programa que ellos quieran y aún tengan la protección de una fuerte encriptación, aunque los programas no la soporten directamente.

Note que la legislación sobre el uso de encriptación varía ampliamente de lugar en lugar. Algunos países pueden llegar a equiparar el uso de encriptación con el uso de armamento o municiones, y pueden requerir un permiso, exigir la custodia de las claves privadas o prohibir su uso por completo. Antes de implementar cualquier solución que implique encriptación verifique que el uso de esta tecnología esté permitido en su comunidad.

En las siguientes secciones vamos a examinar algunas herramientas específicas que proveen una buena protección para los datos de sus usuarios.

SSL

La tecnología de encriptación de extremo a extremo más accesible es Secure Socket Layer conocida simplemente como SSL por su sigla en inglés. Incluida en casi todos los navegadores web, SSL utiliza criptografía de clave pública e infraestructura de clave pública confiable (PKI por su sigla en inglés), para asegurar las comunicaciones de datos en la web. Cada vez que visita la URL de una web que comienza con https, está usando SSL.

La implementación SSL provista en los navegadores web incluye un conjunto de certificados de fuentes confiables, denominados autoridades certificadoras (CA). Estos certificados son claves criptográficas que se utilizan para verificar la autenticidad de los sitios web. Cuando usted navega en un sitio que utiliza SSL, el navegador y el servidor primero intercambian certificados. Luego el navegador verifica que el certificado brindado por el servidor concuerde con el nombre en su servidor DNS, que no haya expirado, y que esté firmado por una autoridad certificadora confiable. Opcionalmente el servidor verifica la identidad del certificado del navegador. Si los certificados son aprobados, el navegador y el servidor negocian la clave de sesión maestra utilizando los certificados intercambiados anteriormente para protegerla. Dicha clave se usa para encriptar todas las comunicaciones hasta que el navegador se desconecte. Este tipo de encapsulamiento de datos es conocido como túnel.

img79.imageshack.us_img79_6623_wndw604lm1.jpg

El uso de certificados con una PKI no solo protege a la comunicación de los fisgones, sino que también evita los ataques del llamado hombre en el medio (MITM por su sigla en inglés). En un ataque del hombre en el medio, un usuario mal intencionado intercepta una comunicación entre el navegador y el servidor. Presentándoles certificados falsos a ambos, puede mantener dos sesiones encriptadas al mismo tiempo. Puesto que este usuario conoce el secreto de ambas conexiones, es trivial observar y manipular los datos que están pasando entre el servidor y el navegador.

img105.imageshack.us_img105_8173_wndw605wb8.jpg

El uso de una buena PKI previene este tipo de ataque. Para tener éxito el usuario con malas intenciones debería presentar un certificado al cliente, que estuviera firmado por una autoridad certificadora. A menos que la CA haya sido comprometida (muy poco probable) o que el usuario pueda ser engañado para aceptar el certificado falso, este tipo de ataque es infructuoso. Es por esto que es de vital importancia que los usuarios comprendan que ignorar los avisos sobre los certificados vencidos o falsos es muy peligroso, especialmente cuando usamos redes inalámbricas. Pulsando el botón “ignorar” cuando son avisados por su navegador, los usuarios se abren a una cantidad de ataques potenciales.

SSL no sólo se utiliza para navegar en la web. Los protocolos de correo electrónico como IMAP, POP, y SMTP (que son bastante inseguros) pueden asegurarse envolviéndolos en un túnel SSL. La mayoría de los clientes de correo electrónico actuales soportan IMAPS y POPS (IMAP y POP seguros), así como SMTP protegido con SSL/TLS. Si su servidor de correo no provee soporte SSL, de todas formas puede asegurarlo con SSL utilizando un paquete como Stunnel (http://www.stunnel.org/). SSL puede utilizarse para asegurar de forma efectiva casi cualquier servicio que corra sobre TCP.

SSH

La mayoría de la gente considera SSH como un sustituto para telnet que provee seguridad, porque scp y sftp son los equivalentes seguros de rcp y ftp. Pero SSH es mucho más que un acceso remoto a consola encriptado. Al igual que SSL, utiliza una fuerte criptografía de clave pública para verificar el servidor remoto y encriptar los datos. En lugar de PKI, utiliza una clave de impresión digital almacenada que se chequea antes de permitir la conexión. Puede usar contraseñas, claves públicas u otros métodos de autenticación de usuarios.

Mucha gente no sabe que SSH también puede actuar como un túnel de encriptación general o como un servidor proxy de encriptación. Estableciendo una conexión SSH en un lugar confiable cerca de (o en) un servidor remoto, los protocolos inseguros pueden protegerse de los fisgones y los ataques.

Esta técnica puede resultar algo avanzada para muchos usuarios, pero los desarrolladores de redes pueden utilizar SSH para encriptar el tráfico en enlaces inseguros, como los enlaces inalámbricos punto a punto. Como las herramientas son gratuitas y funcionan sobre el estándar TCP, los usuarios avanzados pueden implementar conexiones SSH por sí mismos, obteniendo su propia encriptación de extremo a extremo sin la intervención del administrador.

Probablemente OpenSSH (http://openssh.org/) sea la implementación más popular en las plataformas tipo Unix. Para Windows tenemos disponibles implementaciones gratuitas como Putty (http://www.putty.nl/) y WinSCP (http://winscp.net/). OpenSSH también corre en Windows bajo el paquete Cygwin (http://www.cygwin.com/). Los ejemplos a continuación suponen que usted está utilizando una versión reciente de OpenSSH.

Para establecer un túnel encriptado desde un puerto en la computadora local hasta un puerto en el extremo remoto se debe utilizar el parámetro -L. Por ejemplo, supongamos que usted quiere reenviar el tráfico del proxy web en un enlace encriptado al servidor squid en squid.example.net. El puerto de reenvío 3128 (el puerto proxy por omisión) utiliza este comando:

ssh -fN -g -L3128:squid.example.net:3128 squid.example.net

Las opciones -fN le ordenan a ssh que permanezca abierto en segundo plano después de conectarse. La opción -g permite a otros usuarios en su segmento local que se conecten a la computadora local, y la utilicen para la encriptación sobre el enlace inseguro. OpenSSH utilizará una clave pública para la autenticación si usted ya ha configurado una, o va a solicitarle su contraseña para conectarse al extremo remoto. Luego usted puede configurar su navegador web para conectarse al servidor local puerto 3128 como su servicio de proxy. Todo el tráfico web será encriptado antes de la transmisión al sitio remoto.

img144.imageshack.us_img144_3200_wndw606zj0.jpg

SSH también puede funcionar como un proxy dinámico SOCKS4 o SOCKS5. Esto le permite crear un proxy web encriptador sin la necesidad de instalar squid. Tenga en cuenta que éste no será un proxy con memoria intermedia (cache), simplemente encripta todo el tráfico.

ssh -fN -D 8080 remote.example.net

Configure su navegador web para utilizar SOCKS4 o SOCKS5 en el puerto local 8080, y listo.

SSH puede encriptar datos en cualquier puerto TCP, incluyendo puertos utilizados para el correo electrónico. También puede comprimir los datos, lo que puede hacer disminuir el tiempo de recuperación de datos (latencia) en enlaces de baja capacidad.

ssh -fNCg -L110:localhost:110 -L25:localhost:25 mailhost.example.net

La opción -C habilita la compresión. Especificando múltiples veces la opción -L se pueden agregar tantas reglas de redirección de puertos como quiera. Tenga en cuenta que para vincularse a un puerto local inferior a 1024, debe tener privilegios de administrador (root) en la máquina local.

Estos son solo algunos ejemplos de la flexibilidad de SSH. Al implementar claves públicas y utilizar el agente de reenvío ssh, puede automatizarse la creación de túneles encriptados a través de la red inalámbrica, y proteger nuestras comunicaciones con una fuerte encriptación y autenticación.

OpenVPN

OpenVPN es una implementación VPN gratuita de fuente abierta construida con encriptación SSL. Existen versiones para un amplio rango de sistemas operativos, incluyendo Linux, Windows 2000/XP y superiores, OpenBSD, FreeBSD, NetBSD, Mac OS X, y Solaris. Una VPN encapsula todo el tráfico (incluyendo DNS y todos los otros protocolos) en un túnel encriptado, no un solo puerto TCP. La mayoría de la gente lo encuentra considerablemente más sencillo de comprender y configurar que IPSEC.

OpenVPN también tiene algunas desventajas, como por ejemplo una latencia bastante alta. Cierta cantidad de latencia no se puede evitar porque toda la encriptación/desencriptación se hace en el entorno de usuario, pero si se utilizan computadoras relativamente nuevas en cada extremo del túnel puede minimizarla. Si bien puede usar las tradicionales claves compartidas, OpenVPN se destaca realmente cuando se usa con certificados SSL y una autoridad certificadora confiable. OpenVPN tiene algunas ventajas que lo hace una buena opción para proveer seguridad de extremo a extremo.

  • Se basa en un protocolo de encriptación robusto y probado (SSL y RSA)
  • Es relativamente fácil de configurar
  • Funciona en muchas plataformas diferentes
  • Está bien documentado
  • Es gratuito y de fuente abierta

Al igual que SSH y SSL, OpenVPN necesita conectarse a un puerto TCP único en el extremo remoto. Una vez establecido, puede encapsular todos los datos en la capa de red, o en la capa de enlace de datos, según sus requerimientos. Lo puede utilizar para crear conexiones VPN robustas entre máquinas individuales o simplemente utilizarlo para conectar enrutadores en redes inalámbricas inseguras.

La tecnología VPN es un campo complejo, y está un poco más allá del alcance de esta sección. Es importante comprender dónde encajan las VPN en la estructura de su red, para proveer la mejor protección posible sin exponer a su organización a problemas involuntarios. Existen varios recursos en línea que se dedican a la instalación de OpenVPN en un servidor y un cliente, personalmente recomiendo este artículo del Linux Journal: http://www.linuxjournal.com/article/7949, así como el sitio oficial de CÓMO HACERLO: http://openvpn.net/howto.html

Tor y Anonimizadores

Básicamente, Internet es una red abierta basada en la confianza. Cuando usted se conecta a un servidor web en Internet, su tráfico pasa a través de muchos enrutadores diferentes, pertenecientes a una gran variedad de instituciones, corporaciones y personas. En principio, cualquiera de esos enrutadores tiene la posibilidad de observar de cerca sus datos, mirando como mínimo las direcciones de origen y destino, y muy a menudo el contenido de los datos. Aún si sus datos están encriptados por medio de un protocolo seguro, su proveedor de Internet puede monitorear la cantidad de datos y el origen y destino de los mismos. A menudo esto es suficiente para tener una idea clara de sus actividades en línea.

La privacidad y el anonimato son importantes y están unidas estrechamente. Hay muchas razones válidas para considerar proteger su privacidad haciendo anónimo su tráfico en la red. Supongamos que usted quiere ofrecer conectividad a Internet a su comunidad, instalando varios puntos de acceso para que la gente se conecte. Tanto si usted les cobra por el acceso como si no, existe siempre el riesgo de que la gente utilice la red para alguna actividad ilegal en su país o región. Usted podría argumentar luego, en caso de verse envuelto en problemas legales, que esa acción ilegal no fue realizada por usted sino por cualquiera conectado a su red. Sin embargo, el problema legal puede evadirse elegantemente si no es técnicamente factible determinar adónde fue realmente dirigido su tráfico. ¿Y qué pasa con la censura en Internet? Publicar páginas web anónimamente puede ser necesario para evitar la censura del gobierno.

Existen herramientas que le permiten hacer anónimo su tráfico de formas relativamente sencillas. La combinación de Tor (http://tor.eff.org/) y Privoxy (http://www.privoxy.org/) es una forma poderosa de correr un servidor proxy local que pasa su tráfico de Internet a través de varios servidores dispersos por la red, dificultando seguir el rastro de la información. Tor puede activarse en un PC local bajo Microsoft Windows, Mac OSX, Linux y una variedad de BSDs, donde el tráfico se hace anónimo desde el navegador a esa máquina en particular. Tor y Privoxy también pueden instalarse en una pasarela (gateway), o también en un pequeño punto de acceso embebido (como el Linksys WRT54G) donde se provee anonimato automáticamente para todos los usuarios de la red.

Tor funciona haciendo rebotar repetidamente sus conexiones TCP a través de varios servidores esparcidos en Internet, y envuelve la información de enrutamiento en varias capas encriptadas (de ahí el término enrutamiento cebolla), que se van quitando cuando el paquete se mueve por la red. Esto significa que, en cualquier punto en la red, la dirección de la fuente y la del destino no pueden relacionarse una con la otra. Esto hace que el análisis del tráfico sea extremadamente difícil.

La necesidad del proxy de privacidad Privoxy en combinación con Tor se debe al hecho de que las solicitudes de nombre del servidor (solicitudes DNS) en la mayoría de los casos no pasan a través del servidor proxy, y alguien que esté analizando su tráfico puede ser capaz de ver que usted está intentando acceder a un sitio específico (por ejemplo google.com) por el hecho de que envía una solicitud DNS para traducir google.com a la dirección IP apropiada. Privoxy se conecta a Tor como un proxy SOCKS4a, el cual usa nombres de servidores (no direcciones IP) para entregar sus paquetes en el destino deseado. En otras palabras, utilizar Privoxy con Tor es una forma simple y efectiva de prevenir el análisis del tráfico que relaciona su dirección IP con los servicios que utiliza en línea. Combinado con protocolos de encriptación seguros (como los que hemos visto en este capítulo), Tor y Privoxy proveen un alto nivel de anonimato en Internet.


 
manuales/libros/wndw/capitulo_6/privacidad.txt · Última modificación: 2007/02/11 21:21 (editor externo)
 
Recent changes RSS feed Creative Commons License Powered by PHP Driven by DokuWiki