Resumen
Los headers HTTP transmitidos con cada petición revelan información significativa sobre el cliente. Estas son las señales más directas de falsificar a nivel de proxy.
Headers Usados para Fingerprinting
User-Agent
La señal más conocida. Contiene SO, navegador, versión, arquitectura.
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36
Client Hints (Sec-CH-UA)
Reemplazo moderno para la granularidad del User-Agent:
| Header | Ejemplo |
|---|---|
Sec-CH-UA |
"Google Chrome";v="120", "Chromium";v="120", "Not?A_Brand";v="99" |
Sec-CH-UA-Platform |
"Windows" |
Sec-CH-UA-Platform-Version |
"15.0.0" |
Sec-CH-UA-Model |
"Pixel 7" (móvil) |
Sec-CH-UA-Mobile |
?0 |
Sec-CH-UA-Arch |
"x86" |
Sec-CH-UA-Bitness |
"64" |
Sec-CH-UA-Full-Version-List |
"Google Chrome";v="120.0.6099.109" |
Otros Headers
| Header | Información Filtrada |
|---|---|
Accept |
Capacidades del navegador |
Accept-Language |
Preferencias de idioma del usuario |
Accept-Encoding |
Soporte de compresión |
DNT |
Preferencia Do Not Track |
Upgrade-Insecure-Requests |
Capacidad del navegador |
Referer |
Página anterior (comportamiento) |
Estrategia de Falsificación en el Proxy
Los headers pueden reemplazarse completamente en el proxy ya que están en texto plano en HTTP y accesibles en MITM HTTPS:
proxy_set_header User-Agent "Mozilla/5.0 ..."
proxy_set_header Sec-CH-UA "..."
proxy_set_header Sec-CH-UA-Platform "Windows"
proxy_set_header Accept-Language "en-US,en;q=0.9"
Requisitos de Consistencia
Todos los headers deben ser consistentes con el perfil elegido:
- Si el perfil dice "Chrome 120 en Windows 11", entonces:
User-Agentdebe reflejar Chrome 120 / Windows 11Sec-CH-UAdebe listar Chrome 120 / Chromium 120Sec-CH-UA-Platformdebe ser"Windows"Acceptdebe coincidir con el Accept header típico de Chrome- El fingerprint TLS (JA3) debe coincidir con Chrome 120 en Windows
La inconsistencia es en sí misma un fingerprint (ej., User-Agent de Chrome con un handshake TLS de Firefox).
Conclusiones
- La falsificación de headers HTTP es la mitigación más fácil y más fiable
- Los headers son totalmente controlables en el proxy
- Requisito crítico: consistencia interna entre todos los headers
- El sistema de perfiles debe asegurar que todos los valores de header coincidan con una combinación real de navegador/SO
- Sin esto, todo el sistema se rompe