Una huella digital de dispositivo o de máquina es información recopilada sobre el software y el hardware de un dispositivo informático remoto con el fin de identificarlo. La información suele asimilarse a un identificador breve mediante un algoritmo de identificación de huellas digitales . Una huella digital de navegador es información recopilada específicamente mediante la interacción con el navegador web del dispositivo. [1] : 1
Las huellas dactilares de los dispositivos se pueden utilizar para identificar total o parcialmente dispositivos individuales incluso cuando las cookies persistentes (y las cookies zombies ) no se pueden leer o almacenar en el navegador, la dirección IP del cliente está oculta o uno cambia a otro navegador en el mismo dispositivo. [2] Esto puede permitir a un proveedor de servicios detectar y prevenir el robo de identidad y el fraude con tarjetas de crédito , [3] : 299 [4] [5] [6] pero también recopilar registros a largo plazo de los historiales de navegación de las personas (y ofrecer publicidad dirigida [7] : 821 [8] : 9 o exploits dirigidos [9] : 8 [10] : 547 ) incluso cuando intentan evitar el seguimiento , lo que plantea una preocupación importante para los defensores de la privacidad en Internet . [11]
Los servicios de análisis web llevan mucho tiempo recopilando información básica sobre la configuración de los navegadores web con el fin de medir el tráfico web humano real y descartar diversas formas de fraude de clics . Desde su introducción a finales de los años 90, la creación de scripts del lado del cliente ha permitido gradualmente la recopilación de una cantidad cada vez mayor de información diversa, y algunos expertos en seguridad informática empezaron a quejarse de la facilidad de extracción masiva de parámetros que ofrecían los navegadores web ya en 2003. [12]
En 2005, investigadores de la Universidad de California en San Diego demostraron cómo las marcas de tiempo TCP podían usarse para estimar el desfase de reloj de un dispositivo y, en consecuencia, obtener de forma remota una huella de hardware del dispositivo. [13]
En 2010, Electronic Frontier Foundation lanzó un sitio web donde los visitantes pueden probar la huella digital de su navegador. [14] Después de recolectar una muestra de 470161 huellas digitales, midieron al menos 18,1 bits de entropía posibles a partir de la huella digital del navegador, [15] pero eso fue antes de los avances de la huella digital de lienzo , que afirma agregar otros 5,7 bits.
En 2012, Keaton Mowery y Hovav Shacham, investigadores de la Universidad de California en San Diego , demostraron cómo el elemento canvas de HTML5 podría utilizarse para crear huellas digitales de navegadores web. [16] [17]
En 2013, se descubrió que al menos el 0,4% de los 10.000 sitios principales de Alexa utilizaban scripts de toma de huellas digitales proporcionados por algunos terceros conocidos. [10] : 546
En 2014, se descubrió que el 5,5 % de los 10 000 sitios principales de Alexa usaban scripts de huellas digitales de lienzo distribuidos por un total de 20 dominios. La abrumadora mayoría (95 %) de los scripts fueron distribuidos por AddThis , que comenzó a usar huellas digitales de lienzo en enero de ese año, sin el conocimiento de algunos de sus clientes. [18] : 678 [19] [16] [20] [4]
En 2015, se introdujo una función para proteger contra la toma de huellas dactilares del navegador en la versión 41 de Firefox , [21] pero desde entonces se ha dejado en una etapa experimental, no se ha iniciado de forma predeterminada. [22]
El mismo año, se introdujo una función llamada Protección de seguimiento mejorada en la versión 42 de Firefox para proteger contra el seguimiento durante la navegación privada [23] al bloquear los scripts de dominios de terceros que se encuentran en las listas publicadas por Disconnect Mobile .
En la WWDC 2018, Apple anunció que Safari en macOS Mojave "presenta información simplificada del sistema cuando los usuarios navegan por la web, evitando que sean rastreados en función de la configuración de su sistema". [24]
En 2019, a partir de la versión 69 de Firefox, la Protección de seguimiento mejorada se activó de forma predeterminada para todos los usuarios, incluso durante la navegación no privada. [25] La función se introdujo por primera vez para proteger la navegación privada en 2015 y luego se extendió a la navegación estándar como una función opcional en 2018.
La motivación detrás del concepto de huella digital del dispositivo surge del valor forense de las huellas dactilares humanas .
Para poder distinguir de forma única algunos dispositivos a lo largo del tiempo a través de sus huellas digitales, estas deben ser lo suficientemente diversas y lo suficientemente estables. En la práctica, ni la diversidad ni la estabilidad son totalmente alcanzables, y mejorar una tiende a afectar negativamente a la otra. Por ejemplo, la asimilación de una configuración adicional del navegador en la huella digital del navegador normalmente aumentaría la diversidad, pero también reduciría la estabilidad, porque si un usuario cambia esa configuración, entonces la huella digital del navegador también cambiaría. [1] : 11
Un cierto grado de inestabilidad se puede compensar vinculando huellas dactilares que, aunque sean parcialmente diferentes, probablemente pertenezcan al mismo dispositivo. Esto se puede lograr mediante un algoritmo de vinculación simple basado en reglas (que, por ejemplo, vincula huellas dactilares que difieren solo en la versión del navegador, si esta aumenta con el tiempo) o algoritmos de aprendizaje automático. [26]
La entropía es una de las diversas formas de medir la diversidad.
Las aplicaciones que se instalan localmente en un dispositivo pueden recopilar una gran cantidad de información sobre el software y el hardware del dispositivo, que a menudo incluye identificadores únicos como la dirección MAC y los números de serie asignados al hardware de la máquina. De hecho, los programas que emplean la gestión de derechos digitales utilizan esta información con el único fin de identificar de forma única el dispositivo.
Incluso si no están diseñadas para recopilar y compartir información de identificación, las aplicaciones locales pueden exponer involuntariamente información de identificación a las partes remotas con las que interactúan. El ejemplo más destacado es el de los navegadores web, que han demostrado exponer información diversa y estable en tal cantidad que permite la identificación remota (véase § Huella digital del navegador).
También se puede recopilar información diversa y estable por debajo de la capa de aplicación, aprovechando los protocolos que se utilizan para transmitir datos. Ordenados por capa del modelo OSI , algunos ejemplos de protocolos que se pueden utilizar para la identificación de huellas digitales son:
Las técnicas de toma de huellas digitales pasivas simplemente requieren que el usuario observe el tráfico que se origina en el dispositivo de destino, mientras que las técnicas de toma de huellas digitales activas requieren que el usuario inicie conexiones con el dispositivo de destino. Las técnicas que requieren interacción con el dispositivo de destino a través de una conexión iniciada por este último a veces se denominan semipasivas. [13]
La recopilación de una gran cantidad de información diversa y estable de los navegadores web es posible en gran parte gracias a los lenguajes de programación del lado del cliente , que se introdujeron a fines de la década de 1990. Hoy en día, existen varias bibliotecas de huellas dactilares de navegadores de código abierto, como FingerprintJS, ImprintJS y ClientJS, donde FingerprintJS se actualiza con mayor frecuencia y reemplaza a ImprintJS y ClientJS en gran medida. [30]
Los navegadores proporcionan su nombre y versión, junto con alguna información de compatibilidad, en el encabezado de solicitud User-Agent. [31] [32] Al ser una declaración dada libremente por el cliente, no se debe confiar en ella al evaluar su identidad. En cambio, el tipo y la versión del navegador se pueden inferir a partir de la observación de peculiaridades en su comportamiento: por ejemplo, el orden y el número de campos de encabezado HTTP es único para cada familia de navegadores [33] : 257 [34] : 357 y, lo más importante, cada familia y versión de navegadores difiere en su implementación de HTML5 , [9] : 1 [33] : 257 CSS [35] : 58 [33] : 256 y JavaScript . [10] : 547,549-50 [36] : 2 [37] [38] Tales diferencias se pueden probar de forma remota utilizando JavaScript. Se ha demostrado que una comparación de la distancia de Hamming de los comportamientos del analizador identifica y diferencia eficazmente la mayoría de las versiones de navegadores. [9] : 6
Se puede agregar una combinación de extensiones o complementos exclusivos de un navegador a una huella digital directamente. [10] : 545 Las extensiones también pueden modificar el comportamiento de otros atributos del navegador, lo que agrega complejidad adicional a la huella digital del usuario. [39] : 954 [40] : 688 [8] : 1131 [41] : 108 Los complementos de Adobe Flash y Java se usaban ampliamente para acceder a la información del usuario antes de su desuso. [34] : 3 [10] : 553 [38]
Los agentes de usuario pueden proporcionar información sobre el hardware del sistema , como el modelo del teléfono , en el encabezado HTTP. [41] : 107 [42] : 111 Las propiedades sobre el sistema operativo del usuario , el tamaño de la pantalla , la orientación de la pantalla y la relación de aspecto de la pantalla también se pueden recuperar utilizando JavaScript para observar el resultado de las consultas de medios CSS . [35] : 59-60
El captador de huellas digitales podría determinar qué sitios había visitado previamente el navegador dentro de una lista proporcionada por él, consultando la lista usando JavaScript con el selector CSS :visited
. [43] : 5 Por lo general, una lista de 50 sitios web populares era suficiente para generar un perfil de historial de usuario único, así como proporcionar información sobre los intereses del usuario. [43] : 7,14 Sin embargo, desde entonces los navegadores han mitigado este riesgo. [44]
Los cuadros delimitadores de letras difieren entre navegadores según la configuración de suavizado de líneas y sugerencias de fuentes y se pueden medir mediante JavaScript. [45] : 108
La toma de huellas digitales de Canvas utiliza el elemento canvas de HTML5 , [46] que WebGL utiliza para representar gráficos 2D y 3D en un navegador, para obtener información de identificación sobre el controlador de gráficos instalado , la tarjeta gráfica o la unidad de procesamiento de gráficos (GPU). También se pueden utilizar técnicas basadas en Canvas para identificar las fuentes instaladas . [42] : 110 Además, si el usuario no tiene una GPU, se puede proporcionar información de CPU al generador de huellas digitales.
Un script de toma de huellas digitales de Canvas primero dibuja texto de una fuente, tamaño y color de fondo especificados. Luego, el método de API de Canvas ToDataURL recupera la imagen del texto tal como lo muestra el navegador del usuario. Los datos de texto codificados con hash se convierten en la huella digital del usuario. [18] [17] : 2-3,6 Se ha demostrado que los métodos de toma de huellas digitales de Canvas producen 5,7 bits de entropía. Debido a que la técnica obtiene información sobre la GPU del usuario, la entropía de información obtenida es "ortogonal" a la entropía de las técnicas de toma de huellas digitales de navegador anteriores, como la resolución de pantalla y las capacidades de JavaScript. [17]
Se pueden utilizar pruebas comparativas para determinar si la CPU de un usuario utiliza AES-NI o Intel Turbo Boost comparando el tiempo de CPU utilizado para ejecutar varios algoritmos simples o criptográficos . [47] : 588
También se pueden utilizar API especializadas , como la API de batería, que construye una huella digital a corto plazo basada en el estado real de la batería del dispositivo, [48] : 256 o OscillatorNode, que se puede invocar para producir una forma de onda basada en la entropía del usuario. [49] : 1399
También se puede consultar el ID de hardware de un dispositivo, que es una función hash criptográfica especificada por el proveedor del dispositivo, para construir una huella digital. [42] : 109,114
Existen diferentes enfoques para mitigar los efectos de la toma de huellas digitales del navegador y mejorar la privacidad de los usuarios al evitar el seguimiento no deseado, pero no existe un enfoque definitivo que pueda evitar la toma de huellas digitales y al mismo tiempo mantener la riqueza de un navegador web moderno.
Los usuarios pueden intentar reducir su capacidad de identificación mediante la selección de un navegador web que minimice la disponibilidad de información de identificación, como fuentes del navegador, ID del dispositivo, representación de elementos del lienzo , información WebGL y dirección IP local . [42] : 117
A partir de 2017, Microsoft Edge se considera el navegador con mayor capacidad de reconocimiento de huellas dactilares, seguido de Firefox y Google Chrome , Internet Explorer y Safari . [42] : 114 Entre los navegadores móviles , Google Chrome y Opera Mini son los más compatibles con huellas dactilares, seguidos de Firefox móvil , Edge móvil y Safari móvil. [42] : 115
El navegador Tor desactiva las funciones que permiten tomar huellas dactilares, como el lienzo y la API WebGL, y notifica a los usuarios sobre los intentos de tomar huellas dactilares. [18]
Para reducir la diversidad, el navegador Tor no permite que el ancho y la altura de la ventana disponible para la página web sean de cualquier número de píxeles, sino que solo permite algunos valores dados. El resultado es que la página web tiene forma de ventana : llena un espacio que es ligeramente más pequeño que la ventana del navegador. [50]
Falsificar parte de la información expuesta al identificador de huellas digitales (por ejemplo, el agente de usuario ) puede crear una reducción en la diversidad, [51] : 13 pero también se podría lograr lo contrario si la información falsificada diferencia al usuario de todos los demás que no usan dicha estrategia más que la información real del navegador. [10] : 552
Falsificar la información de forma diferente en cada visita al sitio, por ejemplo perturbando el sonido y la representación del lienzo con una pequeña cantidad de ruido aleatorio, permite reducir la estabilidad. [7] : 820,823 Esta técnica ha sido adoptada por el navegador Brave en 2020. [52]
El bloqueo ciego de los scripts del lado del cliente que se sirven desde dominios de terceros, y posiblemente también de dominios propios (por ejemplo, desactivando JavaScript o utilizando NoScript ) a veces puede hacer que los sitios web queden inutilizables. El enfoque preferido es bloquear solo los dominios de terceros que parecen rastrear a las personas, ya sea porque se encuentran en una lista negra de dominios de seguimiento (el enfoque seguido por la mayoría de los bloqueadores de anuncios ) o porque la intención de seguimiento se infiere de observaciones anteriores (el enfoque seguido por Privacy Badger ). [53] [19] [54] [55]
Generalmente, distintos navegadores en la misma máquina tendrían huellas digitales diferentes, pero si ambos navegadores no están protegidos contra huellas digitales, entonces las dos huellas digitales podrían identificarse como originadas en la misma máquina. [56]