Ejercicios sobre seguridad en el navegador ========================================== #. Utilizando *Firefox* o *Chromium* ilustre mediante capturas de pantalla: a. Cómo deshabilitar que el navegador guarde contraseñas. #. Sólo en *Firefox*: cómo habilitar una contraseña maestra que dé acceso a las contraseñas almacenadas por el gestor. #. Cómo impedir la aceptación de *cookies de terceros*. #. Cómo borrar las cookies de un sitio web particular. #. Cómo borrar manualmente toda la información privada almacenada en el navegador. #. 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: g. 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. #. Instale los complementos adecuados para evitar el seguimiento con *huella digital*. Use las páginas indicadas en los apuntes para comprobar su efectividad. #. Evite el uso de |CDN|\ s. #. El ejercicio consiste en utilizar la red |TOR| de las siguientes formas: a. 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 `_. #. 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". .. note:: 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' .. note:: *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. #. 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 :file:`torproxy.pac`) con el siguiente contenido: .. code-block:: javascript 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*. .. note:: EL fichero es una |URL| de configuración que puede expresarse como :file:`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|. .. note:: 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. .. Cortafuegos: Probar a usar Putty por primera vez. .. |TOR| replace:: :abbr:`TOR (The Onion Router)` .. |PAC| replace:: :abbr:`PAC (Proxy Auto-Config)` .. |URL| replace:: :abbr:`URL (Uniform Resource Locator)` .. |CDN| replace:: :abbr:`CDN (Content Delivery Network)`