Skip to main content
O Connection Fingerprint identifica um dispositivo por como ele se conecta, não pelo que ele diz ser. Em uma única chamada devolve a assinatura TLS do cliente, a assinatura dos seus cabeçalhos HTTP, a origem geográfica aproximada e um identificador persistente — tudo derivado do próprio handshake da conexão. Serve para reconhecer um dispositivo que retorna, detectar automação se passando por navegador e somar sinais a um motor de risco. Não exige SDK, não executa código no cliente e não depende das APIs de navegador que os modos de privacidade bloqueiam.
Os sinais desta API são insumo para decidir, não um veredito. Diferentemente do Antispoofing Facial, aqui não há um campo que diga «suspeito»: você combina esses sinais com a sua própria lógica de risco.

Como funciona

O cliente chama o serviço diretamente: a impressão digital é derivada daquela conexão TLS, então uma chamada feita a partir do seu servidor descreveria o seu servidor, não o usuário. A resposta segue depois para o seu backend, onde é verificada e usada.

Endpoints

URL base: https://fingerprint.api.vusecurity.com
/, /version e /publicKey são públicos por design: o navegador do usuário final precisa poder chamá-los sem credenciais. O que protege a integração não é uma api-key, e sim a verificação da assinatura no seu backend.

Primeira chamada

Anatomia da resposta

Identidade da conexão

O sinal mais útil não é um campo isolado, e sim a coerência entre eles. Um user-agent que diz ser Chrome ao lado de um tlsFingerprintHash que não corresponde a nenhum Chrome conhecido, ou com tlsFingerprintSslGreased em "0", descreve um cliente que afirma ser algo que não é.

Persistência

Origem

A geolocalização por IP é aproximada e vários de seus campos podem chegar como null. Trate cada chave de geoData como opcional e nunca a use como única prova de localização: uma VPN, uma rede corporativa ou um CGNAT deslocam o resultado em centenas de quilômetros sem que nada na resposta indique isso.

Integridade

signature é uma assinatura RSA de 4096 bits produzida com a chave privada da VU sobre o bloco userData. Existe porque a resposta passa pelo cliente antes de chegar ao seu backend — e o cliente é exatamente a parte em que não convém confiar.

Integração

Como chamá-la a partir do navegador, o que fazer com a resposta e como usar os sinais.
Última modificação em 9 de setembro de 2026