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)`