Watch-IP

Segurança do Watch-IP e gestão de chaves de API

Esta página descreve os controlos de acesso efetivamente implementados na API do Watch-IP atualmente: como funcionam os dois tipos de chave, como as origens são aplicadas, como as chaves podem ser rodadas ou revogadas, e como reportar uma questão de segurança. Não reivindica uma certificação de conformidade nem uma auditoria de segurança independente — nenhuma foi concluída até à data desta redação.

Dois tipos de chave, dois controlos diferentes

As chaves publicáveis (utilizadas para GET /v1/geo e POST /v1/email/validate) são concebidas para funcionar em código do navegador e não são secretas — o controlo é a lista de origens permitidas configurada para a chave, verificada em função do cabeçalho Origin/Referer do pedido. As chaves secretas (utilizadas para GET/POST /v1/lookup e POST /v1/risk/check) são credenciais servidor-a-servidor sem qualquer verificação de origem, uma vez que não existe cabeçalho Origin de navegador numa chamada de back-end; trate uma chave secreta como uma palavra-passe de base de dados, não como um identificador público. Consulte autenticação para o formato de pedido que cada tipo de chave espera.

Como é aplicado o bloqueio por origem

Um pedido com chave publicável a partir de uma origem que não consta da lista permitida da chave recebe um 403 sem qualquer cabeçalho Access-Control-Allow-Origin definido. O bloqueio dessa resposta pelo navegador antes de o JavaScript da sua página a poder ler é a aplicação efetiva — o corpo de erro JSON é secundário. O bloqueio por origem não torna a própria chave secreta, nem impede um cliente que não seja um navegador de enviar um cabeçalho Origin forjado; protege especificamente a superfície de chamadas a partir do navegador.

Transporte e armazenamento

O tráfego para a API e o painel é encriptado em trânsito (TLS/HTTPS); a API não aceita HTTP em texto simples para pedidos autenticados por chave. As chaves de API são armazenadas com hash (SHA-256), não em texto simples, pelo que um comprometimento da base de dados por si só não exporia valores de chave utilizáveis.

Rotação e revogação

Pode revogar ou rodar uma chave a partir do painel. A revogação não é instantânea em todo o lado: a validade da chave é colocada em cache durante até 5 minutos após uma pesquisa, pelo que uma chave revogada pode continuar a ser aceite durante até 5 minutos após a revogar — tenha isso em conta ao avaliar a rapidez com que pode cortar o acesso após um comprometimento suspeito, e rode proativamente em vez de depender apenas da revogação para um incidente sensível ao tempo.

Limitação de taxa

Cada chave tem um limite de taxa por conta de cliente numa janela fixa de um minuto, partilhado entre quaisquer endpoints que chamar — não é um orçamento por rota. Isto limita os danos que uma única chave comprometida ou utilizada indevidamente pode causar num curto período, embora não substitua por si só a rotação de uma chave comprometida.

Reportar uma questão de segurança

Envie um e-mail para security@watch-ip.com se acreditar que uma chave foi comprometida ou se encontrou uma questão de segurança na API ou no painel. Atualmente não temos um programa público de recompensa por deteção de falhas (bug bounty) nem detemos uma certificação de segurança de terceiros — se isso mudar, esta página dirá isso mesmo, com uma data, e não com um selo.

Páginas relacionadas