Saltar al contenido principal
es/blog/obscura/research/uncontrollable/behavioral-biometrics/

obscura/research/uncontrollable/behavioral-biometrics

6 min de lectura

Categoría: Comportamiento del Usuario / Interacción Humano-Computadora


1. Descripción

La biometría del comportamiento mide cómo un usuario interactúa con su dispositivo. A diferencia de los fingerprints de hardware, estos son dinámicos — varían con el estado de ánimo, contexto, fatiga y práctica. Sin embargo, también son altamente individuales: la dinámica de teclado por sí sola puede identificar a un usuario con >95% de precisión en entornos controlados.


2. Vectores

2.1 Dinámica de Teclado

document.addEventListener('keydown', event => {
  console.log({
    key: event.key,
    timestamp: performance.now(),
    code: event.code,
    location: event.location
  })
})
document.addEventListener('keyup', event => {
  console.log({
    key: event.key,
    timestamp: performance.now(),
    holdTime: performance.now() - keydownTime, // Duración de pulsación
  })
})

Características medibles:

  • Tiempo de pulsación: Duración entre keydown y keyup (típicamente 50-150ms)
  • Intervalo entre teclas: Tiempo entre pulsaciones sucesivas
  • Presión de tecla (en dispositivos compatibles): Presión táctil para cada tecla
  • Patrones de error: Uso de retroceso, comportamiento de corrección
  • Velocidad de escritura: Caracteres por minuto (varía según la tarea)
  • Ritmo: Patrones consistentes de intervalos largos/cortos

Entropía: ~15-25 bits (altamente individual)

Estabilidad: Moderada — afectada por fatiga, emoción, dispositivo, tipo de teclado

2.2 Patrones de Movimiento del Ratón

document.addEventListener('mousemove', event => {
  console.log({
    x: event.clientX,
    y: event.clientY,
    timestamp: performance.now(),
    button: event.buttons,
    movementX: event.movementX,
    movementY: event.movementY
  })
})

Características medibles:

  • Trayectoria: Curvatura del camino, rectitud, sobrepaso
  • Perfil velocidad-aceleración: Cómo cambia la velocidad durante el movimiento
  • Comportamiento de clic: Tiempo entre mouse-down y mouse-up, precisión de posición
  • Patrones de hover: Dónde pausa el ratón
  • Acoplamiento de desplazamiento: Movimiento del ratón durante el desplazamiento

Entropía: ~10-20 bits (moderadamente individual)

Estabilidad: Baja-Moderada — afectada por superficie, dispositivo, tarea

2.3 Patrones de Desplazamiento

document.addEventListener('scroll', event => {
  console.log({
    scrollY: window.scrollY,
    timestamp: performance.now(),
    deltaMode: event.deltaMode,
    deltaY: event.deltaY
  })
})

Características medibles:

  • Velocidad de desplazamiento: Píxeles por evento de scroll
  • Aceleración: Cómo cambia la velocidad de desplazamiento
  • Frecuencia de pausa: Con qué frecuencia se detiene el desplazamiento
  • Ritmo: Desplazamiento regular vs ráfagas
  • Patrón de leer-y-desplazar: Tiempo entre detener el desplazamiento y el siguiente desplazamiento

Entropía: ~8-12 bits

Estabilidad: Baja — dependiente de la tarea (artículo vs resultados de búsqueda vs redes sociales)

2.4 Gestos Táctiles (Móvil)

element.addEventListener('touchstart', e => { /* inicio táctil */ })
element.addEventListener('touchmove', e => { /* trayectoria táctil */ })
element.addEventListener('touchend', e => { /* fin táctil, velocidad */ })

Medible:

  • Ángulo de deslizamiento, velocidad, aceleración
  • Presión de toque (en dispositivos compatibles)
  • Patrones de pellizco-zoom
  • Coordinación multi-dedo
  • Tamaño de toque (área de contacto del dedo)

Entropía: ~12-18 bits

Estabilidad: Moderada — afectada por dispositivo, agarre, postura


3. Fortalezas del Atacante

Fortaleza Explicación
Altamente individual La dinámica de teclado puede identificar a un usuario con >95% de precisión
Continuo No es una verificación única — monitoreo continuo
Difícil de imitar Fingir el comportamiento de otra persona es extremadamente difícil
Sin permiso requerido Los eventos de ratón/teclado/táctil son legibles desde JS
Pasivo El usuario no puede saber que está siendo medido

4. Debilidades del Atacante

Debilidad Explicación Explotable?
Requiere interacción No puede tomar fingerprint sin entrada del usuario Limitar interacción
Alta varianza Cambia con el estado de ánimo, fatiga, contexto Reduce fiabilidad
Largo tiempo de recolección Necesita minutos de datos para precisión Sesiones cortas son seguras
Requiere ML El hash simple no funciona para datos de comportamiento No
Dependiente de la tarea No es consistente entre diferentes sitios web Correlación limitada
Fácilmente interrumpido La interferencia de temporización JS rompe la medición

5. Detección de Manipulación

Técnica Cómo Funciona
Falta de event listeners No capturar eventos de ratón/teclado es sospechoso
Patrones de ruido inyectados Datos de temporización con patrones inusuales (demasiado regulares, demasiado aleatorios)
Calidad de señal Falta de características de micro-temporización esperadas del hardware

6. Mitigaciones para Obscura

6.1 Lo Que Obscura Puede Hacer

Mitigación Efectividad Detectabilidad Implementación
Anular registro de event listeners Baja Alta Proxy de event handlers
Inyectar ruido de temporización Baja-Media Media Redondear marcas de tiempo de eventos
Bloquear tipos de eventos específicos Media Alta Anular addEventListener

6.2 Lo Que Obscura No Puede Hacer

No Puede Por Qué
Cambiar el comportamiento del usuario El usuario mueve el ratón, escribe, se desplaza — esto es físico
Eliminar la entrada de teclado Escribir es necesario para la interacción
Normalizar patrones de ratón El movimiento del ratón es controlado por el usuario
Prevenir la clasificación ML El ML puede encontrar patrones en datos ruidosos

6.3 Enfoque Recomendado

1. Redondear marcas de tiempo de eventos a 50ms de granularidad  (reduce precisión de temporización)
2. Aceptar — la biometría del comportamiento requiere infraestructura ML  (la mayoría de atacantes no tendrán esto)
3. Usar Tor Browser para navegación de alta sensibilidad  (Tor deshabilita muchos eventos)

Nota: La biometría del comportamiento es principalmente una preocupación para objetivos de alto valor (banca, redes sociales) con inversión significativa en ML. Para la navegación típica, este vector rara vez se explota.


7. Referencias de Investigación

  • Monaco, J. et al. (2018). "Behavioral Biometrics: A Survey." ACM Computing Surveys.
  • Teh, P. et al. (2014). "A Survey on Keystroke Dynamics." ACM Computing Surveys.
  • Yampolskiy, R. et al. (2011). "Behavioral Biometrics: A Survey and Classification." International Journal of Biometrics.
  • Acar, G. et al. (2014). "The Web Never Forgets" — menciona el rastreo de comportamiento en el contexto de correlación entre sitios.