Los navegadores web recopilan diferentes tipos de información mientras realizan sus funciones. Cuando parte de esta información se recopila para identificar a un usuario de un sitio web, se llama huella digital del navegador.
La huella digital del navegador incluye la siguiente información del navegador: modelo del dispositivo, tipo y versión del navegador, sistema operativo (OS), resolución de pantalla, zona horaria, identificador de formato de archivo p0p, marca de tiempo, cadena del agente de usuario (UA), configuración de idioma, complementos y extensiones.
Canvas fingerprinting es una de estas tecnologías de huellas digitales del navegador. Se basa en el elemento Canvas del código HTML5 de la Web.
Canvas fingerprinting utiliza la API Canvas del navegador para dibujar imágenes invisibles y extraer huellas digitales persistentes a largo plazo sin el conocimiento del usuario.
A continuación se presenta un desglose rápido de los pasos necesarios para generar una huella digital de canvas para un sitio web:
¿Frustrado porque el scraping web es bloqueado una y otra vez?
Nstbrowser gratuito maneja la rotación de direcciones IP y el desbloqueo web por ti.
¡Prueba GRATIS!
¿Tienes ideas y dudas interesantes sobre el web scraping y el Browserless?
¡Veamos qué comparten otros desarrolladores en Discord y Telegram!
Característica | Canvas Fingerprinting | Huella Digital del Navegador |
---|---|---|
Base | Diferencias de renderizado en el elemento canvas |
Múltiples atributos del dispositivo y del navegador |
Atributos Utilizados | Características de renderizado de canvas | Agente de usuario, resolución de pantalla, complementos, fuentes, zona horaria, idioma, WebGL, contexto de audio, etc. |
Complejidad | Relativamente simple | Más complejo |
Unicidad | Alta | Muy alta |
Persistencia | Alta | Muy alta |
Preocupaciones de Privacidad | Moderadas a altas | Altas |
Detección y Bloqueo | Más fácil de detectar y bloquear | Más difícil de detectar, pero puede mitigarse mediante suplantación o limitación de atributos |
Metodología:
canvas
de HTML5: Canvas fingerprinting se basa en el elemento canvas
de HTML5 para renderizar gráficos.Metodología:
Metodología:
canvas
de HTML5: Utiliza el elemento canvas
de HTML5 para renderizar gráficos.Metodología:
Canvas Noise es una técnica para prevenir la detección de huellas digitales añadiendo ruido aleatorio a los elementos Canvas de HTML5. Si dos imágenes son diferentes, tendrán valores de hash diferentes.
Por lo tanto, al introducir ruido aleatorio en una imagen, usualmente modificando los datos de la imagen renderizada por Canvas, es posible prevenir la generación de huellas digitales consistentes haciendo que el valor de hash de la imagen de Canvas sea ligeramente diferente cada vez, lo cual es difícil de detectar para el ojo humano, pero el valor de hash generado será diferente.
Aquí hay una implementación simple de Canvas Noise:
<!DOCTYPE html>
<html>
<head>
<title>Ejemplo de Ruido en Canvas</title>
</head>
<body>
<canvas id="canvas" width="200" height="50"></canvas>
<script>
// Obtener el elemento canvas y su contexto de renderizado 2D
var canvas = document.getElementById('canvas');
var ctx = canvas.getContext('2d');
// Paso 1: Dibujar la imagen original
// Configurar la línea base del texto y la fuente
ctx.textBaseline = 'top';
ctx.font = '14px Arial';
ctx.textBaseline = 'alphabetic';
// Dibujar un rectángulo relleno
ctx.fillStyle = '#f60';
ctx.fillRect(125, 1, 62, 20);
// Dibujar el primer texto
ctx.fillStyle = '#069';
ctx.fillText('¡Hola, mundo!', 2, 15);
// Dibujar el segundo texto con transparencia
ctx.fillStyle = 'rgba(102, 204, 0, 0.7)';
ctx.fillText('¡Hola, mundo!', 4, 17);
// Paso 2: Añadir ruido aleatorio a la imagen
// Obtener los datos de la imagen del canvas
var imageData = ctx.getImageData(0, 0, canvas.width, canvas.height);
var data = imageData.data;
// Recorrer cada píxel y añadir ruido aleatorio
for (var i = 0; i < data.length; i += 4) {
// Añadir ruido al canal rojo
data[i] += Math.floor(Math.random() * 10) - 5; // Rojo
// Añadir ruido al canal verde
data[i+1] += Math.floor(Math.random() * 10) - 5; // Verde
// Añadir ruido al canal azul
data[i+2] += Math.floor(Math.random() * 10) - 5; // Azul
}
// Colocar los datos de imagen modificados de nuevo en el canvas
ctx.putImageData(imageData, 0, 0);
// Convertir el canvas a una URL de datos y registrarlo
var dataURL = canvas.toDataURL();
console.log(dataURL);
// Generar un hash SHA-256 de la URL de datos y registrarlo
sha256(dataURL).then(hash => console.log(hash));
// Función para generar un hash SHA-256
function sha256(str) {
return crypto.subtle.digest('SHA-256', new TextEncoder().encode(str)).then(buffer => {
return Array.prototype.map.call(new Uint8Array(buffer), x => ('00' + x.toString(16)).slice(-2)).join('');
});
}
</script>
</body>
</html>
Nstbrowser es un excelente navegador de huellas digitales que admite la configuración de huellas digitales de Canvas. Al crear un perfil, la huella digital de Canvas predeterminada es el modo Ruido, que añade ruido aleatorio al Canvas, pero también admite el modo Real, que es consistente con la huella digital de Canvas del navegador real:
A continuación, creamos 9 huellas digitales de Canvas para los perfiles en modo Ruido y Real utilizando Nstbrowser, y luego comparamos las huellas digitales de Canvas de mi navegador real local accediendo a Browserleaks Canvas fingerprinting detection:
Al comparar, podemos ver fácilmente que la huella digital con el modo Real de Canvas configurado es la misma que la huella digital de Canvas de mi navegador real local, mientras que la huella digital de Canvas de cada perfil en el modo Ruido de Canvas es diferente y única.
Pros:
Contras:
La legalidad de Canvas Fingerprinting varía según la ubicación. En ciertas áreas, puede considerarse una violación de las regulaciones de privacidad si se implementa sin el conocimiento del usuario.
Sin embargo, las regulaciones que rigen la tecnología de reconocimiento de huellas digitales aún están evolucionando, y el panorama legal en muchos países aún no está claro.
Al usar Canvas Fingerprinting, los operadores de sitios web deben cumplir con las leyes y regulaciones de privacidad locales.
En este artículo, hemos discutido Canvas Fingerprinting. Este es un método moderno de seguimiento web utilizado por los propietarios de sitios web para identificar a sus usuarios. Explicamos en detalle cómo funciona y cómo eludirlo.
A largo plazo, el seguimiento de sitios web es inevitable. La mejor manera es controlar la forma en que somos rastreados en Internet. Aquí es donde entra en juego el mejor navegador antidetect, Nstbrowser.
La avanzada tecnología de desbloqueo de sitios web y los sistemas de detección permiten ocultar tu privacidad y habilitar el raspado web.