La huella digital de un dispositivo o una huella digital de una máquina es información recopilada sobre el software y el hardware de un dispositivo informático remoto con fines de identificación. La información suele asimilarse en un breve identificador mediante un algoritmo de toma de huellas dactilares . Una huella digital del navegador es información recopilada específicamente mediante la interacción con el navegador web del dispositivo. [1] : 1
Las huellas dactilares del dispositivo se pueden utilizar para identificar total o parcialmente dispositivos individuales incluso cuando las cookies persistentes (y las cookies zombies ) no se pueden leer ni 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 compilar registros a largo plazo de los historiales de navegación de las personas (y entregar publicidad dirigida [7] : 821 [8] : 9 o exploits dirigidos [9] : 8 [10] : 547 ) incluso cuando intentan evitar el seguimiento , lo que genera una gran preocupación para los defensores de la privacidad en Internet . [11]
Los servicios de análisis web han recopilado durante mucho tiempo información básica de configuración del navegador web en un esfuerzo por medir el tráfico web humano real y descartar diversas formas de fraude de clics . Desde su introducción a finales de la década de 1990, los scripts del lado del cliente han permitido gradualmente la recopilación de una cantidad cada vez mayor de información diversa, y algunos expertos en seguridad informática comenzaron a quejarse de la facilidad de extracción masiva de parámetros que ofrecen los navegadores web ya en 2003 . 12]
En 2005, investigadores de la Universidad de California en San Diego demostraron cómo se podían utilizar las marcas de tiempo TCP para estimar la desviación del reloj de un dispositivo y, en consecuencia, para obtener de forma remota una huella digital del 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 dactilares, midieron al menos 18,1 bits de entropía posibles a partir de las huellas dactilares del navegador, [15] pero eso fue antes de los avances de las huellas dactilares en lienzo , que afirman agregar otros 5,7 bits.
En 2012, Keaton Mowery y Hovav Shacham, investigadores de la Universidad de California en San Diego , mostraron cómo el elemento lienzo HTML5 podría usarse 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 huellas dactilares proporcionados por algunos terceros conocidos. [10] : 546
En 2014, se descubrió que el 5,5% de los 10.000 sitios principales de Alexa utilizaban scripts de huellas dactilares de lienzo atendidos por un total de 20 dominios. La inmensa mayoría (95%) de los scripts fueron entregados por AddThis , que comenzó a utilizar huellas dactilares en 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 las huellas digitales del navegador en la versión 41 de Firefox , [21] pero desde entonces se ha dejado en una etapa experimental, no iniciada de forma predeterminada. [22] El mismo año se introdujo
una característica llamada Protección de seguimiento mejorada en la versión 42 de Firefox para proteger contra el seguimiento durante la navegación privada [23] mediante el bloqueo de secuencias de comandos 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 según 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 también 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 amplió a la navegación estándar como una función opcional en 2018.
La motivación para el concepto de huellas dactilares del dispositivo surge del valor forense de las huellas dactilares humanas .
Para poder distinguir de forma única a lo largo del tiempo algunos dispositivos a través de sus huellas dactilares, éstas deben ser suficientemente diversas y 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 puede compensarse uniendo huellas dactilares que, aunque parcialmente diferentes, probablemente puedan pertenecer al mismo dispositivo. Esto se puede lograr mediante un simple algoritmo de vinculación basado en reglas (que, por ejemplo, vincula huellas digitales que difieren solo para la versión del navegador, si ésta aumenta con el tiempo) o algoritmos de aprendizaje automático. [26]
La entropía es una de varias 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 incluyen 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 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 se ha demostrado que exponen información diversa y estable en una cantidad tal que permite la identificación remota; consulte § Huella digital del navegador.
También se puede recopilar información diversa y estable debajo de la capa de aplicación, aprovechando los protocolos que se utilizan para transmitir datos. Ordenados por capa de modelo OSI , algunos ejemplos de protocolos que se pueden utilizar para la toma de huellas digitales son:
Las técnicas de toma de huellas dactilares pasivas simplemente requieren que la persona que toma las huellas dactilares observe el tráfico originado en el dispositivo de destino, mientras que las técnicas de huellas dactilares activas requieren que la persona que toma las huellas digitales 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 consideran 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 finales de los años 1990. Hoy en día existen varias bibliotecas de huellas dactilares de navegador de código abierto, como FingerprintJS, ImprintJS y ClientJS, donde FingerprintJS se actualiza con mayor frecuencia y reemplaza en gran medida a ImprintJS y ClientJS. [30]
Los navegadores proporcionan su nombre y versión, junto con cierta información de compatibilidad, en el encabezado de solicitud del Agente de usuario. [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 la cantidad de campos de encabezado HTTP son únicos para cada familia de navegadores [33] : 257 [34] : 357 y, Lo más importante es que cada familia y versión de navegador 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] Estas diferencias se pueden probar de forma remota mediante el uso de JavaScript. Se ha demostrado que una comparación a distancia de Hamming de los comportamientos del analizador detecta y diferencia eficazmente la mayoría de las versiones del navegador. [9] : 6
Se puede agregar directamente a una huella digital una combinación de extensiones o complementos exclusivos de un navegador. [10] : Las extensiones 545 también pueden modificar el comportamiento de otros atributos del navegador, añadiendo complejidad adicional a la huella digital del usuario. [39] : 954 [40] : 688 [8] : 1131 [41] : 108 Los complementos de Adobe Flash y Java se utilizaban ampliamente para acceder a la información del usuario antes de su obsolescencia. [34] : 3 [10] : 553 [38]
Los agentes de usuario pueden proporcionar información del hardware del sistema , como el modelo de 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
La huella digital podría determinar qué sitios había visitado previamente el navegador dentro de una lista que proporcionó, consultando la lista usando JavaScript con el selector CSS :visited
. [43] : 5 Normalmente, una lista de 50 sitios web populares era suficiente para generar un perfil de historial de usuario único, así como para 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 los navegadores según la configuración de suavizado y sugerencia de fuente y se pueden medir mediante JavaScript. [45] : 108
La toma de huellas dactilares de lienzo utiliza el elemento lienzo 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 , la tarjeta gráfica o la unidad de procesamiento de gráficos (GPU) instalados. También se pueden utilizar técnicas basadas en lienzo para identificar las fuentes instaladas . [42] : 110 Además, si el usuario no tiene una GPU, la información de la CPU se puede proporcionar al lector de huellas digitales.
Un script de huellas digitales de lienzo primero dibuja texto con una fuente, tamaño y color de fondo específicos. La imagen del texto representada por el navegador del usuario se recupera mediante el método API ToDataURL Canvas. Los datos codificados en texto 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 dactilares 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 técnicas anteriores de huellas dactilares del navegador, como la resolución de pantalla y las capacidades de JavaScript. [17]
Se pueden utilizar pruebas de referencia 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 Battery API, que construye una huella digital a corto plazo basada en el estado real de la batería del dispositivo, [48] : 256 u 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 las 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 las huellas digitales manteniendo la riqueza de un navegador web moderno.
Los usuarios pueden intentar reducir la capacidad de sus huellas dactilares seleccionando 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, se considera que Microsoft Edge es el navegador con más 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 que más permiten tomar huellas dactilares, seguidos por Firefox móvil , Edge móvil y Safari móvil. [42] : 115
Tor Browser desactiva las funciones de huellas dactilares, como el lienzo y la API WebGL, y notifica a los usuarios sobre los intentos de huellas dactilares. [18]
La falsificación de parte de la información expuesta al lector de huellas dactilares (por ejemplo, el agente de usuario ) puede crear una reducción en la diversidad, [50] : 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 utilizan dicha información. una estrategia más que la información real del navegador. [10] : 552
Falsificar la información de manera 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 una reducción de la estabilidad. [7] : 820,823 Esta técnica fue adoptada por el navegador Brave en 2020. [51]
El bloqueo ciego de scripts del lado del cliente servidos desde dominios de terceros, y posiblemente también desde dominios propios (por ejemplo, deshabilitando JavaScript o usando NoScript ) a veces puede inutilizar los sitios web. El enfoque preferido es bloquear sólo dominios de terceros que parezcan rastrear 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 del seguimiento se infiere de observaciones pasadas (el enfoque seguido por la mayoría de los bloqueadores de anuncios). enfoque seguido por Privacy Badger ). [52] [19] [53] [54]
Diferentes navegadores en la misma máquina normalmente tendrían diferentes huellas digitales, pero si ambos navegadores no están protegidos contra las huellas digitales, entonces las dos huellas digitales podrían identificarse como provenientes de la misma máquina. [55]