Análises Técnicas

Fatores de pontuação reCAPTCHA: análise técnica completa

O mecanismo de Análise Avançada de Risco (ARA) do reCAPTCHA avalia dezenas de sinais para produzir uma pontuação entre 0,0 (bot definitivo) e 1,0 (humano definitivo). Essa pontuação determina se você não vê nenhum desafio, uma caixa de seleção, uma grade de imagem ou um bloco rígido. O Google não publica o algoritmo de pontuação exato, mas testes extensivos e engenharia reversa identificaram os fatores-chave. Esta é uma análise técnica abrangente do que move o placar.


Categorias de fator de pontuação

O reCAPTCHA avalia sinais em cinco categorias, cada uma contribuindo para a pontuação final:

Final Score = f(Browser Signals, Behavioral Signals, Network Signals, 
                History Signals, Environmental Signals)

Categoria 1: Sinais do navegador (peso: alto)

Os sinais do navegador determinam se o cliente é um navegador genuíno ou uma ferramenta automatizada.

Presença da API JavaScript

O reCAPTCHA investiga APIs que os navegadores headless não possuem ou implementam de forma diferente:

API verificada Esperado no navegador real Indicador modo headless
sinal de navegador automatizado undefined ou false true (Selênio, Titereiro)
navigator.plugins PluginArray com mais de 1 item Vazio ou ausente
navigator.languages Matriz com strings de localidade Matriz vazia ou ausente
navigator.hardwareConcurrency 2-16 (corresponde à CPU) Às vezes 0 ou indefinido
navigator.deviceMemory 2-16 GB Desaparecido em algum modo headless
window.chrome Objeto com tempo de execução, etc. Ausente no Chrome modo headless
Notification.permission "padrão", "concedido" ou "negado" Joga ou falta

Impacto na pontuação: Valores ausentes ou incorretos para essas APIs podem reduzir a pontuação em 0,3 a 0,5 pontos.

sinal de navegador em tela

O reCAPTCHA renderiza elementos ocultos da tela e lê os dados de pixel. O resultado é uma sinal de navegador exclusiva da combinação navegador/OS/GPU.

// reCAPTCHA performs something similar to:
const canvas = document.createElement('canvas');
const ctx = canvas.getContext('2d');
ctx.textBaseline = "top";
ctx.font = "14px 'Arial'";
ctx.fillText("Hello", 2, 2);
const sinal de navegador = canvas.toDataURL();

Impacto na pontuação:

  • Navegador de correspondência de sinal de navegador consistente Declaração /OS → Neutro
  • A sinal de navegador corresponde ao padrão modo headless conhecido → -0,3 a -0,5
  • Operações de tela bloqueadas ou retornam dados uniformes → -0,4 a -0,6

Renderizador WebGL

A string do renderizador WebGL revela a GPU:

const gl = document.createElement('canvas').getContext('webgl');
const debugInfo = gl.getExtension('WEBGL_debug_renderer_info');
const renderer = gl.getParameter(debugInfo.UNMASKED_RENDERER_WEBGL);
// Expected: "ANGLE (NVIDIA GeForce GTX 1060...)"
// Headless: "SwiftShader" or "Google SwiftShader"

Impacto na pontuação: SwiftShader (renderizador de software do Google usado no Chrome headless) é um forte indicador de bot, diminuindo a pontuação em 0,3-0,5.


Categoria 2: Sinais comportamentais (peso: muito alto)

Os sinais comportamentais têm o maior peso no cálculo da pontuação. Eles são coletados a partir do momento em que a página é carregada.

Movimento do mouse

O reCAPTCHA rastreia as coordenadas do mouse e os carimbos de data/hora durante a visita à página:

Sinal Padrão humano Padrão de bot
Contagem de movimentos Mais de 50 a 500 eventos por visita à página 0-5 eventos
Trajetória Caminhos curvos com velocidade variável Linhas retas, velocidade constante
Aceleração Facilidade natural/ease-out Início instantâneo/stop
Micromovimentos Pequeno tremor ao pairar Perfeitamente imóvel entre ações
Superação da meta Ligeira ultrapassagem com correção Segmentação precisa

Impacto na pontuação: Nenhum movimento do mouse diminui a pontuação em 0,4-0,7.

Atividade do teclado

Inter-key timing:
  Human: Variable (50-300ms between keys, varies by key pair)
  Bot: Constant (all keys at same interval, or instant paste)

Key events:
  Human: keydown → keypress → keyup for each character
  Bot: May skip keypress, or fire all events simultaneously

Corrections:
  Human: Occasional backspace, re-typing
  Bot: Perfect input without corrections

Impacto da pontuação: A entrada instantânea de texto (via área de transferência ou atribuição JavaScript value) tem pontuação 0,1-0,2 menor.

Comportamento de rolagem

O reCAPTCHA monitora eventos de rolagem na página:

  • Humanos: rolagem gradual com impulso, velocidade variável, pausas para leitura
  • Bots: Sem rolagem ou salto instantâneo para a área do formulário

Impacto na pontuação: Nenhum evento de rolagem antes da interação do formulário → -0,2 a -0,3.

Sequência de interação do elemento

O reCAPTCHA rastreia com quais elementos o usuário interage e em que ordem:

  • Humanos: clique na página, passe o mouse sobre os links, leia o conteúdo antes de preencher o formulário
  • Bots: Navegue diretamente para os campos do formulário, preencha o pedido, envie

Impacto da pontuação: Comportamento direto no formulário sem exploração da página → -0,1 a -0,3.


Categoria 3: Sinais de rede (peso: médio-alto)

Reputação de IP

O Google mantém um banco de dados de reputação de IP baseado em:

  • O desafio anterior do reCAPTCHA resulta deste IP
  • Intervalos de IP conhecidos do data center (AWS, GCP, Azure, DigitalOcean, etc.)
  • Intervalos de provedores proxy/VPN conhecidos
  • Relatórios de abuso e bancos de dados de spam
  • Sinais de fraude de pesquisa e publicidade
Tipo de IP Impacto típico da pontuação
Residencial, baixo abuso Neutro a +0,1
Residencial, alguns abusos -0,1 a -0,2
Centro de dados -0,3 a -0,5
Proxy conhecido/VPN -0,2 a -0,4
Nó de saída Tor -0,4 a -0,6
Recentemente sinalizado por abuso -0,3 a -0,6

sinal de navegador TLS (JA3/JA4)

O handshake TLS revela quais conjuntos de criptografia e extensões o cliente suporta. Cada navegador possui uma sinal de navegador característica:

  • Chrome: Ordem de criptografia específica, TLS 1.3, extensões GREASE
  • Solicitações Python: Ordem de criptografia diferente, sem GREASE, lista de extensões mais simples
  • curl: Extensões mínimas, padrões específicos do OpenSSL

Impacto da pontuação: sinal de navegador TLS sem navegador → -0,2 a -0,4.

Cabeçalhos HTTP

O servidor do reCAPTCHA verifica os cabeçalhos HTTP do cliente solicitante:

Cabeçalho Indicador humano Indicador de bot
User-Agent Corresponde à versão conhecida do navegador Versão desatualizada, ferramenta de automação UA
Accept-Language Preenchido com preferências de localidade Ausente ou genérico
Accept-Encoding gzip, deflate, br Ausente ou incomum
Sec-CH-UA Dicas do cliente que correspondem ao navegador Ausente (cabeçalhos anteriores a 2022)

Categoria 4: Sinais históricos (peso: médio)

Cookies da conta Google

Usuários logados em uma conta do Google com histórico de navegação pontuam mais alto:

  • SID, HSID, SSID cookies → O usuário tem sessão do Google
  • Sem cookies do Google → Usuário desconhecido, pontuação inicial mais baixa

Impacto na pontuação: Sessão ativa do Google → +0,1 a +0,3.

Cookies reCAPTCHA

O reCAPTCHA define seus próprios cookies após a conclusão bem-sucedida do desafio:

  • _GRECAPTCHA cookie → Solução anterior bem-sucedida
  • rc::a, rc::b, rc::c → Cookies de dados de análise de risco

Impacto na pontuação: Sessão recente sem cookies reCAPTCHA → -0,1 a -0,2.

Reputação entre sites

O Google rastreia o comportamento do reCAPTCHA em todos os sites que usam o mesmo perfil de navegador. O bom comportamento no site A aprimora as pontuações no site B.


Categoria 5: Sinais ambientais (peso: baixo-médio)

Consistência de fuso horário

const timezone = Intl.DateTimeFormat().resolvedOptions().timeZone;
// Should match IP geolocation
// "America/New_York" with a New York IP → consistent
// "America/New_York" with a Tokyo IP → suspicious

Dimensões da tela e janela

screen.width, screen.height       // Physical screen
window.innerWidth, innerHeight    // Browser window
window.outerWidth, outerHeight    // Including browser chrome

Impacto da pontuação: Dimensões incomuns (0×0, extremamente grande ou exatamente padrão) → -0,1 a -0,2.

Status da bateria (se disponível)

navigator.getBattery().then(battery => {
    battery.level;    // 0.0 to 1.0
    battery.charging; // true/false
});

A API da bateria fornece um sinal menor: carregar sempre a 100% é consistente com um ambiente de desenvolvimento de desktop.


Estratégias de otimização de pontuação

Para pontuações mais altas em automação

Estratégia Impacto esperado Dificuldade
Use o Chrome real (não modo headless) +0,3 a +0,5 Baixo
Remover sinalizador sinal de navegador automatizado +0,2 a +0,3 Baixo
Adicionar simulação de movimento do mouse +0,2 a +0,4 Médio
Use IPs proxy residenciais +0,2 a +0,3 Baixo (custo)
Mantenha os cookies do Google durante as sessões +0,1 a +0,2 Médio
Combine a sinal de navegador TLS com o Chrome +0,1 a +0,3 Alto
Simule a exploração da página antes do formulário +0,1 a +0,2 Médio

Ou: Use um solucionador de API

Em vez de otimizar todos esses sinais, use CaptchaAI para gerar tokens válidos independentemente da pontuação:

import requests
import time

API_KEY = "YOUR_API_KEY"

# Request a high-score token
submit = requests.post("https://ocr.captchaai.com/in.php", data={
    "key": API_KEY,
    "method": "userrecaptcha",
    "googlekey": "6LcR_RsTAAAAAN_r0GEkGBfq3L7KmU5JbPHJtwNp",
    "pageurl": "https://staging.example.com/qa-login",
    "version": "v3",
    "action": "login",
    "score_qa": "0.9",
    "json": 1,
})

task_id = submit.json()["request"]

for _ in range(60):
    time.sleep(5)
    result = requests.get("https://ocr.captchaai.com/res.php", params={
        "key": API_KEY,
        "action": "get",
        "id": task_id,
        "json": 1,
    }).json()

    if result.get("status") == 1:
        token = result["request"]
        print(f"High-score token received")
        break

O ambiente do solucionador é otimizado para pontuações máximas — lidando internamente com todos os sinais de navegador, comportamentais e de rede.


Perguntas frequentes

O que é uma pontuação reCAPTCHA v3 “boa”?

Uma pontuação de 0,7 ou superior é geralmente considerada semelhante à humana. A maioria dos sites define seu limite entre 0,5 e 0,7. Uma pontuação de 0,9 passa em praticamente todas as implementações. Com CaptchaAI, você pode solicitar tokens com score_qa=0.9.

O uso de VPN sempre diminui a pontuação?

IPs VPN de data centers normalmente diminuem as pontuações em 0,2-0,4. No entanto, os serviços VPN residenciais produzem mais adequado resultados. O impacto da pontuação depende do histórico de reputação do IP específico, e não do serviço VPN em si.

Por que minha pontuação difere entre páginas do mesmo site?

reCAPTCHA v3 utiliza o parâmetro action para contextualizar as pontuações. Ações diferentes (página inicial, login, checkout) podem ter pontuações básicas diferentes. Além disso, os sinais comportamentais se acumulam durante a sessão – páginas posteriores podem ter uma pontuação mais alta porque mais dados comportamentais estão disponíveis.

Posso verificar minha pontuação reCAPTCHA sem ser proprietário do site?

Não diretamente. As pontuações reCAPTCHA v3 são retornadas apenas ao servidor por meio da API siteverify. No entanto, você pode estimar sua pontuação observando se os sites mostram desafios (pontuação baixa) ou passam (pontuação alta) em implementações conhecidas do reCAPTCHA v3.


Resumo

As pontuações do reCAPTCHA são determinadas pela sinal de navegador do navegador (presença de API, tela, WebGL), análise comportamental (movimento do mouse, tempo do teclado, padrões de rolagem), reputação da rede (tipo de IP, sinal de navegador TLS), histórico (cookies do Google, soluções anteriores) e consistência ambiental (fuso horário, dimensões da tela). Para automação que precisa de pontuações altas consistentes, useCaptchaAIgerar tokens com score_qa=0.9, evitando a necessidade de otimizar cada categoria de sinal individualmente.

Artigos relacionados

Os comentários estão desativados para este artigo.