.. _seg-navegador: .. https://d3ward.github.io/toolz/adblock.html Hablar sobre brave. (Pasa por defecto el test de coveryourtracks, pero en Configuracion>Escudo brave se puede configurar para que no lo pase) 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 :ref:`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. 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: a. Engaños al usuario de diverso tipo: + Descarga de algún troyano que, tras su instalación, afecta a todo el sistema\ [#]_. + Instalación en el navegador de un complemento, plug-in o extensión maliciosos que afectan exclusivamente al propio navegador. + :ref:`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*. #. Información de sesiones anteriores que queda almacenada en el propio navegador y puede ser consultada por personas que también acceden al sistema. #. 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*\ [#]_: .. table:: Motores de Javascript :class: motor-js ============== ================== ========================== 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. 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\ [#]_. 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 :ref:`envenenamiento DNS `. 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 :dfn:`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\ [#]_. 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. Rastreo ------- El :dfn:`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. .. note:: 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 |IP|\ s. 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 :ref:`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 :ref:`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 :dfn:`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 :dfn:`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 :dfn:`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 :dfn:`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 :dfn:`cookies de rastreo` (o :dfn:`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. .. seealso:: É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. .. note:: 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. .. _supercookie: **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 :ref:`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. .. note:: Obsérvese que existen :math:`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. .. seealso:: En Github hay algunas implementaciones simples de este concepto cono `esta `_ o `esta otra `_\ [#]_. .. https://nakedsecurity.sophos.com/2015/02/02/anatomy-of-a-browser-dilemma-how-hsts-supercookies-make-you-choose-between-privacy-or-security/ .. _browser-fingerprint: **Huella digital** La :dfn:`huella digital` del cliente\ [#]_ (*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. .. note:: 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: + `Am I unique? `_. + `Panopticlick `_ (la cual tiene un interesante `artículo sobre el asunto `_). + `Cover your tracks `_. .. seealso:: Es muy interesante la lectura del estudio de la |AEPD| `Fingerprinting o Huella digital del dispositivo `_. .. seealso:: 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. .. https://us3.campaign-archive.com/?u=9ababb5be0caf47c3ab319e66&id=c16ec01764 Contramedidas ============= Dependiendo de cuál sea la amenaza que intentemos atajar, así será la contramedida apropiada. .. note:: 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_. *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. 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_\ [#]_. .. seealso:: 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 :ref:`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 :kbd:`--password-store=gnome-libsecret`\ [#]_, 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. .. warning:: Es importante recalcar que el modo incógnito protege la privacidad de los aspectos relacionados bajo este epígrafe, pero no impide individualizarnos mediante :ref:`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. 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`_\ [#]_) `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: + `Font Fingerprint Defender`_, que altera al azar el valor de las fuentes (compruébese utilizando `esta prueba de fuentes `_) + `WebGL Fingerprint Defender`_, que altera el valor el valor de WebGL (compruébese utilizando `esta prueba de WebGL `_). 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 |CDN|\ s. Evita el posible rastreo y, además, acelera la navegación. 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: :ref:`Un servicio VPN ` Trataremos los fundamentos en :ref:`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 (:ref:`Wireguard ` o :ref:`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 :ref:`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 `_. .. note:: 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 (:code:`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. .. include:: /guias/0226.seg/99.ejercicios/032.navegador.rst .. rubric:: Notas al pie .. [#] Hay otra manera de que desde el navegador se afecte a todo el sistema: los plugins (como el de Java_ o el de Flash_). Estos, sin embargo, han ido desapareciendo paulatinamente de los navegadores, hasta el punto de que ya no es posible ejecutarlos en los más modernos. .. [#] De acuerdo, en realidad, *ECMAScript*, que es la versión normalizada del lenguaje *Javascript* creado originariamente por Netscape_. .. [#] Y a veces, `ni eso `_. .. [#] Un elemento ` `_ de tipo ``password``. .. [#] La segunda se basa en la primera, pero usando una configuración de :ref:`nginx ` apropiada y es más simple. Parece tener, sin embargo, algún error de implementación. .. [#] También se referencia como *del dispositivo* o *del navegador*. Preferimos utilizar la expresión *del cliente*, porque la información que se ofrece es alguna propia del sistema y alguna propia de la aplicación que conecta con internet. .. [#] Es cierto que en este caso no podemos decir con propiedad que se use el gestor de contraseñas del navegador, porque Chromium_ lo que estará haciendo en realidad es usar el gestor de contraseñas del sistema. .. [#] Lo cual es cierto a partir de *Trixie* (véase `esta discusión en reddit `_). En versiones anteriores a :program:`Chromium` **116**, simplemente, :kbd:`--password-store=gnome`. .. [#] Parece, no obstante, no detectarlo o no ser completamente efectivo. La página de prueba `browserleaks.com `_ es capaz de hacer el análisis. .. |SFX| replace:: :abbr:`SFX (SquirrelFish eXtreme)` .. |URL| replace:: :abbr:`URL (Uniform Resource Locator)` .. |CG-NAT| replace:: :abbr:`CG-NAT (Carrier Grade Network Address Translation)` .. |ISP| replace:: :abbr:`ISP (Internet Service Provider)` .. |HSTS| replace:: :abbr:`HSTS (HTTP Strict Transport Security)` .. |MITM| replace:: :abbr:`MITM (Man In The Middle)` .. |DNI| replace:: :abbr:`DNI (Documento Nacional de Identidad)` .. |AEPD| replace:: :abbr:`AEPD (Agencia Española de Protección de Datos)` .. |CSS| replace:: :abbr:`CSS (Cascading Style Sheets)` .. |CDN| replace:: :abbr:`CDN (Content Delivery Network)` .. |TOR| replace:: :abbr:`TOR (The Onion Router)` .. _Google Docs: https://www.google.es/intl/es/docs/about .. _Office 365: https://es.wikipedia.org/wiki/Microsoft_Office_365 .. _Netscape: https://es.wikipedia.org/wiki/Netscape_Communications_Corporation .. _Flash: https://es.wikipedia.org/wiki/Adobe_Flash_Player .. _Java: https://es.wikipedia.org/wiki/Applet_Java .. _Chromium: https://www.chromium.org .. _Firefox: https://www.mozilla.org/es-ES/firefox .. _Safari: https://es.wikipedia.org/wiki/Safari_(navegador) .. _How cookies track you around the web and how to stop them: https://privacy.net/stop-cookies-tracking .. _Google: https://www.google.com .. _Facebook: https://www.facebook.com .. _Cookie Autodelete: https://chrome.google.com/webstore/detail/cookie-autodelete/fhcgjolkccmbidfldomjliifgaodjagh .. _Modo incógnito: https://es.wikipedia.org/wiki/Modo_privado .. _NoScript: https://chrome.google.com/webstore/detail/noscript/doojmbjmlfjjnbmnoijecmcbfeoakpjm .. _Privacy Badger: https://privacybadger.org/ .. _API de Canvas: https://developer.mozilla.org/es/docs/Web/HTML/Canvas .. _Canvas Blocker: https://chrome.google.com/webstore/detail/canvas-blocker-fingerprin/nomnklagbgmgghhjidfhnoelnjfndfpd .. _Random User-Agent: https://chrome.google.com/webstore/detail/random-user-agent/einpaelgookohagofgnnkcfjbkkgepnp/related .. _Font Fingerprint Defender: https://chrome.google.com/webstore/detail/font-fingerprint-defender/fhkphphbadjkepgfljndicmgdlndmoke .. _WebGL Fingerprint Defender: https://chrome.google.com/webstore/detail/webgl-fingerprint-defende/olnbjpaejebpnokblkepbphhembdicik .. _proyecto TOR: https://www.torproject.org .. _LocalCDN: https://www.localcdn.org/ .. _1clickVPN: https://chrome.google.com/webstore/detail/vpn-free-betternet-unlimi/gjknjjomckknofjidppipffbpoekiipm/related .. _SetupVPN: https://chrome.google.com/webstore/detail/setupvpn-lifetime-free-vp/oofgbpoabipfcfjapgnbbjjaenockbdp .. _Betternet: https://chrome.google.com/webstore/detail/vpn-free-betternet-unlimi/gjknjjomckknofjidppipffbpoekiipm/related .. _Hide.me: https://chrome.google.com/webstore/detail/hideme-proxy/ohjocgmpmlfahafbipehkhbaacoemojp/related .. _gnome-keyring: https://es.wikipedia.org/wiki/GNOME_Keyring .. _kwallet: https://es.wikipedia.org/wiki/KWallet .. _LastPass: https://chrome.google.com/webstore/detail/lastpass-free-password-ma/hdokiejnpimakedhajhdlcegeplioahd .. _1Password X: https://chrome.google.com/webstore/detail/1password-x-%E2%80%93-password-ma/aeblfdkhhhdcdjpifhhbdiojplfjncoa