4.3. Seguridad en la navegación

La web, desde sus comienzos a principios de los años 90, ha ido conquistando paulatinamente nichos en del sector de la Informática, hasta el punto de que en la actualidad gran parte de la actividad del usuario se desarrolla utilizando los navegadores:

  • Consulta de información bien por motivos lúdicos bien por motivos laborales, que fue el propósito que originariamente tuvo.

  • Gestiones administrativas o bancarias.

  • Foros de discusión, debate y esparcimiento sobre variados asuntos (redes sociales y foros web), que han desplazado a otros mecanismos como los grupos de noticias o las listas de distribución de correo.

  • Gestión del correo electrónico, que se hace mayoritariamente ahora a través de clientes web de correo electrónico (webmail), en vez de aplicaciones que usen directamente los protocolos SMTP y POP3/IMAP.

  • Servicios de streaming de audio y vídeo, que en muchos casos son directamente accesibles desde el navegador, aunque dispongan de una aplicación dedicada.

  • Aplicaciones ofimáticas online (Google Docs, Office 365) que comienzan a ser ampliamente utilizadas como alternativa a las de escritorio.

De hecho, sólo en los dispositivos móviles (donde es común que se creen aplicaciones dedicadas) y en el sector de los videojuegos, el navegador web no es una aplicación omnipresente. Esta omnipresencia ha provocado que sobre el navegador sea la aplicación de escritorio sobre la que más se ha centrado el malware en los últimos años, razón que justifica que dediquemos un epígrafe exclusivo a analizar sus riesgos.

4.3.1. Amenazas

En los equipos de escritorio, prácticamente toda la relación del usuario con el exterior se lleva a cabo a través del navegador, por lo que investigar qué hace el usuario cuando navega proporciona muchísima información sobre su identidad, sus hábitos y su vida privada.

Todas las amenazas que se ciñen sobre el navegador, pueden resumirse en estos tres grupos:

  1. Engaños al usuario de diverso tipo:

    • Descarga de algún troyano que, tras su instalación, afecta a todo el sistema[1].

    • Instalación en el navegador de un complemento, plug-in o extensión maliciosos que afectan exclusivamente al propio navegador.

    • Phishing, esto es, fraudes basados en la suplantación de un sitio web legítimo con el fin de obtener las credenciales de acceso (p.e. el sitio web de un banco)

    Estas amenazas son semejantes a las que afectan a otro tipo de software.

  2. Información de sesiones anteriores que queda almacenada en el propio navegador y puede ser consultada por personas que también acceden al sistema.

  3. Estrategias de rastreo del usuario.

Analizaremos más adelante estas amenazas, pero antes es preciso tener en cuenta que muchas de ellas son posibles gracias al hecho de que el navegador es capaz de ejecutar código, ya que dispone de una máquina virtual de Javascript[2]:

Motores de Javascript

Motor

Desarrollador

Navegador

V8

Google

Chromium y derivados

SpiderMonkey

Fundación Mozilla

Firefox y derivados

SFX

Apple

Safari

KJS

KDE

Konqueror

Chakra

Microsoft

Edge (hasta 2019)

En la máquina se ejecuta código de este lenguaje de programación tanto incluido en las propias páginas web como en los complementos que se instalan en el propio navegador. Los navegadores disponen de mecanismos para limitar la interacción de este código con el resto del sistema, por lo que su ejecución no trasciende el navegador.

4.3.1.1. Engaños

En esta estrategia el punto débil es el propio usuario, de modo que sin un comportamiento responsable no hay posibilidad de defensa:

  • La descarga de aplicaciones sólo debe realizarse de páginas oficiales y de software de contrastada reputación[3]. Cualquier programa obtenido a partir de páginas de warez es un candidato a contener software malicioso.

  • Otro tanto pasa con los complementos del navegador, que deberían sólo descargarse del sitio oficial en que el navegador los ofrece (p.e. para Firefox o para Chromium).

  • La otra estrategia de engaño suele consistir en dirigir al usuario hacia una página web fraudulenta que imita aquella de la que el atacante quiere obtener las credenciales. Si el usuario pica e introduce las credenciales en tal página, el atacante obtendrá las claves de acceso. Para ello, en ocasiones se recurre, simplemente, a utilizar una URL semejante a la original, pero en otras este engaño puede ir acompañado de un envenenamiento DNS.

4.3.1.2. Información almacenada

Durante la navegación, los navegadores almacenan cierta información de ella que les sirve para facilitar la navegación futura. Si un tercero accede a nuestro navegador podrá obtener mucha información de cuáles son nuestros gustos y, muy posiblemente, acceder a algunos datos personales.

Historial

El historial es la relación de páginas ya visitadas. El navegador las apunta, junto a la fecha y hora en que se visitaron por última visita.

Caché

Para acelerar la navegación, los servidores web al proporcionar recursos indican cuál es la caducidad de estos. Los navegadores suelen utilizar este dato, para almacenar en su caché esos recursos, de manera que si el usuario vuelve a pedirlos antes de ser obsoletos, se sirvan directamente sin pedirlos al servidor.

El problema es que alguien con acceso al sistema, puede acceder a esa caché y recuperar esos recursos (p.e. fotos).

Contraseñas

Por defecto, los navegadores preguntan al usuario si se quieren guardar las contraseñas que en los formularios están marcadas como tales[4]. Una vez almacenadas el usuario no tendrá que volver a escribirlas, sino que el navegador la rellenará directamente.

Autocompletado

Los navegadores no sólo son capaces de recuperar contraseñas. También recuerdan los valores que se introdujeron en campos de formulario, de manera que, cuando se topa con un campo (en esa misma página o en otra cualquiera), con un mismo atributo name sugiere los valores que ya se hayan introducido. Esa es la razón por la que los navegadores son en muchos casos capaces de adivinar nuestra dirección de correo, nuestra dirección postal o nuestro nombre: ya los introdujimos anteriormente en otra página y en ambos formularios esos campos recibieron el mismo name (p.e. «mail» o «email» para un campo que pida nuestra dirección de correo electrónico).

Como en los formularios de registro es habitual que se nos pida información personal, entonces esa información personal estará expuesta si un tercero accede a nuestro ordenador y prueba a rellenar un formulario de registro.

4.3.1.3. Rastreo

El rastreo es el seguimiento que terceros externos realizan de nuestro comportamiento en la web a través de la información que nosotros mismos les facilitamos. No interviene, por tanto, un código troyano o el acceso a la propia máquina, como en los casos anteriores.

El medio más evidente para rastrear a un usuario es su dirección IP que, en principio, lo identifica en internet. Sin embargo, este dato no es especialmente relevante por varias razones:

  • Sólo hay una pequeña parte de usuarios que utilicen siempre una misma IP pública. Con todo, esa IP puede estar siendo compartida por un mismo grupo de usuarios que salen a internet a través de la misma conexión (familia, compañeros de trabajo, etc.)

  • Hay otros usuarios que, aunque tienen IP pública, la tienen dinámica, y, en consecuencia, no los identifica inequívocamente, a menos que se tenga acceso a los registros del ISP.

  • Cada vez más usuarios ni siquiera tienen IP públicas exclusivas, sino CG-NAT, esto es, una IP pública compartida por muchos abonados al ISP. De nuevo, sólo el ISP sería capaz de identificar al usuario.

Nota

Hay, con todo, usuarios que ocultan su IP pública detrás de una VPN. Esto tiene sentido, si se pretenden saltar restricciones geográficas o burlar requerimientos judiciales de identificación de IPs. A efectos de evitar rastreos, es absolutamente ineficaz.

El rastreo, en realidad, se basa en:

  • Técnicas activas en la medida en que se basan en que se deja cierta información en el cliente para recuperarla luego:

    • Cookies de rastreo

    • Supercookies (que, en realidad, no son cookies)

    Es un concepto muy similar al del spyware, aunque aquí no hay código programado.

  • Técnicas pasivas que consisten en identificar al usuario por su huella digital, esto es, por la mera información que el propio cliente ofrece.

Cookies de rastreo

Las cookies son imprescindibles para lograr establecer sesiones, ya que el protocolo HTTP carece de la capacidad de crearlas. El enlace proporcionado explica cómo funcionan: un servidor web envía cierta información de texto al navegador que éste almacena y devuelve al servidor siempre que se conecta a él. Hay dos aspectos importantes que influyen en la naturaleza de las cookies:

Duración

Al enviar una cookie, el servidor establece cuál es su tiempo de vigencia, tras el cual el navegador la elimina:

  • Si no se especifica tiempo alguno, la cookie es una cookie de sesión, esto es, una cookie que dura lo que dura abierto el navegador.

  • Si el tiempo es exageradamente largo (p.e. de años), entonces la cookie se puede considerar una cookie permanente.

Dominio

Las cookies también pueden especificar el dominio sobre el que son aplicables:

  • Si no especifican dominio, entonces se sobreentiende que la cookie refiere al dominio del propio servidor y es por tanto una cookie propia.

  • Si especifican dominio y es distinto al del servidor que la envía, el navegador enviará la cookie al servidor expresado en el dominio de la cookie, que es distinto al que la envío: son los que se llaman cookies de terceros. Estas cookies entregan a un segundo servidor la información generada en un primero.

En general, las cookies existen para que el navegador pueda enviar información (incluso de carácter personal, porque la identidad en una sesión lo es) y, por tanto, son elementos para el seguimiento del usuario. El problema es cuando este seguimiento se vuelve ilegítimo. Las cookies de rastreo (o cookies de seguimiento) son aquellas cookies de terceros persistentes cuyo propósito es recabar información del usuario y enviarla a terceros.

Otra técnica de seguimiento no usa estrictamente cookies de terceros, sino widgets o anuncios de publicidad. Por ejemplo, imagine que compramos o consultamos un producto en una determina tienda online y esta nos deja una cookie propia permanente en que nos identifica con un número único que asocia a nuestro historial de compras y consultas. Si posteriormente accedemos a una página en que la tienda online se anuncia y aloja dicho anuncio ella misma, la cookie será enviada y la tienda con esa información podrá personalizar el anuncio que nos muestra.

Ver también

Échele una lectura al artículo How cookies track you around the web and how to stop them, que explica muy detalladamente cómo actúan estas cookies maliciosas.

Nota

Con objeto de limitar el rastreo mediante cookies, existe el Reglamento General de Protección de Datos. A partir de él, se exige que los sitios web informen de qué cookies instala el sitio web en el navegador y para qué sirve cada una (imprescindibles, para publicidad, para preferencias, etc). Además, el usuario debe ser capaz de escoger cuáles quiere aceptar y cuáles no. Sin embargo, sólo acatarán este imperativo legal los sitios afectados por la legislación comunitaria; cualquier otro que escape a su control puede seguir instalando indiscriminadamente cookies de rastreo.

Supercookies

El otro mecanismo de identificación son las supercookies. Toman este nombre, porque no son cookies y porque son infinitamente más persistentes. Se basan en las cabeceras HSTS (RFC 6797), que se crearon para evitar el ataque SSLstrip, un ataque de tipo MITM que es posible cuando un sitio seguro se consulta como no seguro. Si contactamos de modo no seguro con el sitio real, este nos redirigirá al modo seguro; pero si contactamos con un sitio que pretende suplantar al real, como aún la conexión no es segura, el certificado no puede avalar que el servidor es el real. Para evitar al ataque, se crearon las cabeceras HSTS que son enviadas por los servidores para confirmar al navegador que usa siempre certificados e instarle a usar protocolo seguro, aunque el usuario intente acceder mediante el protocolo no seguro.

De este modo, si accedemos al sitio «A» este envía una cabecera HSTS, cuya información almacena el navegador. En posteriores visitas al sitio «A», la conexión siempre será segura, aunque el usuario intente una conexión no segura. Además, esta información que obliga al navegador a usar el protocolo seguro no se elimina cuando se borra el historial de navegación.

Es, pues, este un mecanismo para mejorar la seguridad. El problema es que posibilita un método de identificación de los usuarios, que es el siguiente:

  • Un sitio web habilita 31 subdominios: «sub»» y sub-1» hasta «sub-30».

  • Todos esos subdominios se caracterizan por enviar la cabecera HSTS cuando se accede a ellos por el protocolo seguro, pero no por el inseguro; excepto el primero que envía la cabecera HSTS también por el inseguro.

  • El primer dominio sirve para saber si el navegador accede por primera vez; y el resto de dominios, para generar el identificador único.

  • Cuando el navegador accede por primera vez al sitio:

    • Se pide hacer una petición no segura a «sub». Que el servidor reciba esta petición no segura implica que el acceso es el primero. Se devuelve una respuesta incluyendo la cabecera HSTS.

    • Se genera aleatoriamente un número binario de 30 dígitos. Cada dígito (que puede ser 0 ó 1) se corresponde con uno de los subdominios numerados.

    • Se llevan a cabo las peticiones seguras a aquellos subdominios a lo que correspondió un 1. Consecuentemente el navegador almacenará la cabecera HSTS de esos subdominios.

  • Cuando el navegador accede las restantes veces:

    • Se detecta que no es la primera vez, porque, aunque el servidor pide hacer una petición no segura a «sub», la hará segura como consecuencia de que recibió en su momento la cabecera HSTS.

    • Se insta a hacer peticiones no seguras a todos los subdominios. Si la petición se vuelve segura se apunta un 1 y, si no lo hace, se apunta un 0.

    • Se genera el número binario de 30 dígitos con las treinta respuestas, que coincidirá para cada cliente con el que se generó automáticamente la primera vez que se entró. Ya hemos identificado al cliente.

Nota

Obsérvese que existen \(2^{30}\) identificadores diferentes, esto es algo más de 1.000 millones. Es probable que esto nos sirva para identificar inequívocamente a nuestros visitantes.

El navegador Safari implementó una limitación en el registro de las cabeceras HSTS para evitar el uso de supercookies de rastreo. Chromium, por su parte, no permite a partir de la versión 86 ningún contenido mixto, esto es, peticiones no seguras desde un sitio que es seguro. Firefox, por su parte, lo impide desde su versión 91. Esto, pues, imposibilita que se pueda establecer la supercookie desde un sitio principal no seguro.

Ver también

En Github hay algunas implementaciones simples de este concepto cono esta o esta otra[5].

Huella digital

La huella digital del cliente[6] (fingerprint en inglés) es el conjunto de información ofrecida por el cliente sobre sí mismo que permite al otro extremo individualizarlo mediante su análisis.

Nota

Nótese que utilizamos el término individualizarlo y no identificarlo, porque la huella digital no nos permite saber físicamente quién es. Para asociar la huella a la identidad física es necesario algo más como que el cliente introduzca sus datos personales con un formulario al hacer una compra o registrarse.

Para que lo entendamos mejor, las dos técnicas anteriores, que son activas, consisten en expedir a un cliente un DNI (la cookie o la supercookie almacenada por éste) que es requerida en una conexión posterior. Esta técnica, en cambio, es pasiva puesto que no se expida ningún documento: al conectarse el cliente se le «toman las huellas dactilares» y se comprueba si tales huellas coinciden con alguna de la base de datos. Si coinciden, ya tenemos individualizado al cliente; si no coinciden, apuntamos tal huella para el futuro.

Es obvio que, para que la individualización sea posible, la huella requiere construirse con el suficiente número de datos. Por ello, el tercero espía recopila información de distintas fuentes:

  • De las cabeceras HTTP, como el User-Agent o las lenguas preferidas.

  • La lista de plugins instalados en el navegador.

  • Las características que pueden obtenerse ejecutando código Javascript (lista de fuentes disponibles, tamaño de la pantalla, etc.)

Una huella digital particular es la que se construye gracias a la API Canvas.

Los navegadores modernos han implementado una cabecera HTTP llamada Do not track para pedir a los sitios web que no realicen seguimiento mediante huella digital. Pero la cabecera no ha llegado a ser estándar, no hay seguridad de que el otro extremo haga caso a ella y, además, favorece la individualización en la medida es que lo habitual es que no esté marcada.

Existen algunas páginas web que calcula la huella digital de nuestro navegador y nos indican si es única y, por tanto, somos potencialmente rastreables a través de ella:

Ver también

Es muy interesante la lectura del estudio de la AEPD Fingerprinting o Huella digital del dispositivo.

Ver también

Es interesante el complemento AmIUnique que analiza periódicamente nuestra huella digital y nos muestra un gráfico con su evolución en el tiempo.

4.3.2. Contramedidas

Dependiendo de cuál sea la amenaza que intentemos atajar, así será la contramedida apropiada.

Nota

Centraremos la exposición de complementos en el navegador Chromium, por ser el más habitual. En muchos casos, el mismo complemento tendrá versión para Firefox.

4.3.2.1. Antimalware

Frente a los engaños al usuarios, además de apelar a su responsabilidad, se puede instalar algún antivirus residente que analice los archivos que el usuario descarga o ejecuta. Para las suplantaciones de sitios web que se basan en cambiar ligeramente la URL y fingirse el sitio original, la solución es más complicada, porque hay que fiarlo al buen criterio del usuario.

4.3.2.2. Acceso a la información almacenada

Para evitar la inspección de información almacenada (historial, contraseñas, datos de autocompletado y caché), los navegadores proporcionan en su configuración (bajo «Privacidad y Seguridad») la posibilidad de hacerlo. Sin embargo, esta posibilidad requiere la operación manual del usuario. Normalmente, mantener estos datos guardados en el navegador sólo cobra importancia cuando al mismo navegador pueden acceder otras personas porque se comparte la máquina.

Las cookies, requieren tratamiento especial, aunque también son información de navegación, así que junto al resto también pueden eliminarse usando la misma acción. Para ellas hay más posibilidades:

  • Se pueden bloquear las cookies de terceros, aunque en los últimos tiempos esto tiene el efecto secundario de impedir la autenticación en sitios a través de terceros como Google o Facebook.

  • El navegador puede configurarse para eliminar todas las cookies al cerrar la sesión del navegador.

  • También es posible borrar selectivamente cookies según el sitio web al que pertenecen.

Para el tratamiento de las contraseñas tenemos varias estrategias:

  • Deshabilitar el gestor de contraseñas e impedir que se almacenen.

  • Usar el gestor de contraseñas de manera que éstas siempre se cifren, para lo cual:

    • Firefox permite en su configuración establecer una contraseña maestra. Esta contraseña es necesaria para descifrar las almacenadas y, en consecuencia, el autocompletado no se producirá si la desconocemos.

    • Chromium no permite definir contraseña maestra, y en Windows no hay forma de protegerlas, pero en Linux es capaz de cifrar las contraseñas almacenadas mediante el llavero del sistema operativo si este es gnome-keyring o kwallet[7].

      Ver también

      Chromium identifica por las variables de entorno si se encuentra en Gnome o KDE y en función de ellas usa uno u otro gestor de contraseñas. kwallet está integrado en KDE, pero gnome-keyring puede usarse en entornos gráficos distintos a Gnome. Para saber cómo instalar y configurar este último fuera de ese escritorio consulte el apartado en que tratamos gnome-keyring para usarlo como agente SSH.

      Una vez hecho eso, deberá asegurarse de arrancar Chromium con la opción --password-store=gnome-libsecret[8], ya que no habrá variables de entorno que le avisen de que debe usar tal gestor de contraseñas. La confirmación de que las contraseñas se almacenan cifradas puede tenerla imitando lo que propugna este artículo sobre el tema.

  • Puede optarse por utilizar gestores de contraseñas externos a través de complementos como LastPass o 1Password X. Algunos de estos gestores almacenan las contraseñas en la nube con lo que pueden recuperarse desde otro ordenador.

Aparte de las estrategias preventivas anteriores hay dos buenas herramientas que podemos utilizar para lidiar con esta información sensible:

Modo incógnito

Los navegadores modernos suelen incorporar el llamado «Modo incógnito» que consiste en que ninguna información de navegación (las cinco categorías vistas) es almacenada. Es especialmente útil en máquinas compartidas en que ninguna persona con la que compartamos la máquina sabrá absolutamente nada de lo que hemos hecho con el ordenador.

Advertencia

Es importante recalcar que el modo incógnito protege la privacidad de los aspectos relacionados bajo este epígrafe, pero no impide individualizarnos mediante huella digital.

Cookie Autodelete

Es un complemento (tanto para Chromium como para Firefox) que borra automáticamente las cookies después de haber abandonado el dominio al que pertenecen pasado el tiempo que configuremos (p.e. cinco minutos). Pueden confeccionarse una lista blanca de sitios de los que no se eliminará la cookie.

Es una alternativa de menor privacidad que el modo incógnito, pero que se recuerden historial, datos de formulario, etc. facilita mucho la navegación, por lo que, si no se comparte el navegador, es una buena alternativa.

4.3.2.3. Antirrastreo activo

Existen varios complementos que pueden instalarse para dificultar de forma activa las acciones de rastreo:

NoScript

Bloquea todo el código Javascript y sólo permite aquel que vayamos marcando como confiable. La seguridad es mayúscula, pero actualmente casi todos los sitios web requieren Javascript para funcionar, por lo que, sobre todo al principio, requerirá constantemente que permitamos la ejecución del código de las páginas.

Privacy Badger

Es un complemento para detectar rastreo mediante cookies o supercookies. No detecta rastreo por huella digital (excepto, según afirman, la basada en la API de Canvas[9])

Canvas Blocker

Bloque el rastreo por huella digital basado en la API de Canvas.

Random User-Agent

Altera periódicamente (según la configuración) la cabecera User-Agent que el navegador envía a los servidores web. Si este es uno de los datos que se usan para generar la huella digital entonces lograremos cambiar cada cierto tiempo de huella y, por tanto, dejar de ser rastreables. Del mismo palo son:

LocalCDN

Muchas librerías de Javascript, iconos u hojas de estilo CSS se almacenan en redes de distribución de contenidos (CDN por sus siglas en inglés), que son servidores distribuidos a lo largo del mundo que alojan copias de esos archivos. En principio favorecen la navegación, porque son capaces de servir los archivos desde servidores más cercanos al cliente. Pero si tales servicios no son de pago, entonces lo más probable es que saquen beneficio de recolectar datos:

Cuando un servicio es gratuito, el producto eres tú.

La extensión LocalCDN actúa como un CDN local, de suerte que intercepta las peticiones a estos CDN e inyecta el código local almacenado, evitando la consulta a estos CDNs. Evita el posible rastreo y, además, acelera la navegación.

4.3.2.4. Ocultación del origen

Aunque ocultar el origen (la dirección IP y la ubicación en caso de dispositivos móviles) no impide que nuestro navegador pueda ser individualizado, en ocasiones, puede desearse hacerlo por distintos motivos. Para ello hay dos opciones:

Un servicio VPN

Trataremos los fundamentos en la unidad sobre Redes y servidores. Es conveniente aquí, sin embargo, notar que estos servicios pueden ser:

  • De pago que permite establecer una conexión VPN a todo el sistema mediante algún protocolo (Wireguard o OpenVPN habitualmente), o mediante complementos del navegador.

  • Gratuitos mediante complementos de navegador (1clickVPN, SetupVPN, Betternet, Hide.me).

Estos últimos son absolutamente desaconsejables.

Proyecto TOR

El proyecto TOR habilita una serie de encaminadores intermedios que ocultan a cada extremo de la conexión cuál es el otro extremo. Para usar estos encaminadores el cliente debe conectarse a través de un proxy SOCKS. Esta red puede usarse:

  • Para acceder a la Internet Profunda del dominio .onion.

  • Para acceder a la Internet pública ocultando al servidor la IP del cliente, que sería el caso que nos ocupa. Sin embargo, aunque el destino no sepa realmente nuestra IP sí puede detectar que la petición procede de la red TOR y bloquear la conexión.

El proyecto desarrolla para el acceso a la red TOR una versión modificada del navegador Firefox orientada a la seguridad y la privacidad llamada Tor browser.

Nota

No obstante su existencia, para el acceso al dominio .onion y a la internet pública a través de la red TOR no es necesario este navegador. El proxy SOCKS es instalable por separado (apt install tor) y puede configurarse el navegador para usarlo. Eso sí, si esta acción se realiza por mantener el anonimato y la privacidad habría que preocuparse de incorporar a nuestro navegador las contramedidas expuestas bajo este epígrafe.

4.3.3. Ejercicios sobre seguridad en el navegador

  1. Utilizando Firefox o Chromium ilustre mediante capturas de pantalla:

    1. Cómo deshabilitar que el navegador guarde contraseñas.

    2. Sólo en Firefox: cómo habilitar una contraseña maestra que dé acceso a las contraseñas almacenadas por el gestor.

    3. Cómo impedir la aceptación de cookies de terceros.

    4. Cómo borrar las cookies de un sitio web particular.

    5. Cómo borrar manualmente toda la información privada almacenada en el navegador.

    6. Cómo abrir una ventana de incógnito. Pruébese a rellenar el formulario de alguna página y, luego, accédase otra vez al formulario para ver que los datos no se han almacenado.

    Por otro lado:

    1. Instale un complemento que controle las cookies y se asegure de que se borren automáticamente 5 minutos después de haber abandonado la página. Compruebe que realmente ocurre esto.

    2. Instale los complementos adecuados para evitar el seguimiento con huella digital. Use las páginas indicadas en los apuntes para comprobar su efectividad.

    3. Evite el uso de CDNs.

  2. El ejercicio consiste en utilizar la red TOR de las siguientes formas:

    1. Utilice el navegador que proporciona el propio proyecto, para acceder tanto al dominio .onion como a la Internet pública. Documente los siguientes pasos:

      • Descargue el navegador del proyecto TOR para el sistema operativo que esté utilizando.

      • Ábralo para:

        • Comprobar que la IP que observa un servidor web de la Internet pública no es su IP pública (puede usar ipify.org).

        • Acceder a un sitio del dominio .onion como el buscador duckduckgo.

    2. Acceda tanto al dominio .onion como a la Internet pública con un navegador convencional (Firefox y también Chromium), para lo cual documente lo siguiente:

      • La instalación del paquete tor.

      • Este paquete crea un proxy SOCKS v5 que escucha en un puerto de la interfaz local. ¿Qué puerto es? Demuéstrelo.

      • Primero configure Firefox para que use este SOCKS en el apartado de «Configuración de la red».

        Nota

        Por defecto, Firefox sigue haciendo las consultas DNS directamente y no a través del proxy SOCKS. Para corregirlo tiene que establecer a verdadera la variable network.proxy.socks_remote_dns (a la que se accede a través de la dirección «about:config»).

      • Configure ahora Chromium para que haga lo propio. Esto puede lograrse indicando cuál es el proxy SOCKS en la línea de órdenes:

        $ chromium --temp-profile --proxy-server='socks5://ip:puerto'
        

        Nota

        Chromium siempre usa el proxy para resolver nombres si la consulta web se hace a través del proxy.

      • En ambos navegadores, haga las dos mis pruebas que en el caso anterior.

    3. Configure un navegador convencional (Firefox y también Chromium) para acceder a la Internet pública directamente y al dominio .onion a través de la red TOR. Documente los pasos:

      • Debe crear un archivo PAC (p.e. llamado torproxy.pac) con el siguiente contenido:

        function FindProxyForURL(url, host) {
           tor = "SOCKS5 IP:PUERTO";      // Sustituya IP y PUERTO
           if (
               shExpMatch(host, "*.onion") ||
               url === 'https://api.ipify.org/?format=json'
              ) {
              return tor;
           }
           return "DIRECT";
        }
        

        Este fichero hace que se use el proxy exclusivamente para los dominios .onion y para una dirección concreta que devuelve la IP de conexión.

      • Utilice el archivo en la «Configuración de red» de Firefox.

        Nota

        EL fichero es una URL de configuración que puede expresarse como file:///path/absoluto/torproxy.pac. Como en el caso anterior deberá configurar el navegador para que se hagan las peticiones DNS a través del proxy.

      • Utilice el archivo en Chromium para lo cual tendrá que recurrir a la línea de órdenes:

        $ chromium --temp-profile --proxy-pac-url='data:application/x-javascript-config;base64,'$(base64 -w0 /path/torproxy.pac)
        
      • En ambos navegadores, compruebe que:

        • Accedemos al dominio .onion.

        • Que si consultamos nuestra IP a través de la dirección incluida en el fichero PAC obtenemos una dirección que no es nuestra (lo que significa que accedemos a través de la red TOR).

        • Que si consultamos nuestra IP a través de otra dirección (p.e. usando la misma URL pero con el formato «text» en vez de «json»), obtenemos nuestra IP.

      Nota

      Este modo manual de usar el archivo PAC es bastante esotérico y sólo responde a nuestra necesidad de hacer pruebas. Estos archivos, por lo general, se sirven a través de DHCP (véase WPAD) y permiten configurar de manera automática el proxy de todos los clientes que configuran automáticamente su red sin tener que hacer configuraciones específicas en cada uno de ellos.

Notas al pie