O que é uma chave de API? Como funciona e como protegê-la
A API de Scraping Scrapeleless autentica solicitações através do cabeçalho x-api-token, onde uma chave de API de conta Scrapeless identifica o cliente que faz a chamada.
TL;DR
- Uma chave de API é uma credencial emitida a um cliente ou projeto. O serviço a utiliza para identificar o chamador, aplicar regras de acesso, medir o uso e impor cotas.
- Uma chave de API é geralmente um segredo. Qualquer um que obtiver uma chave sem restrições pode ser capaz de chamar a API sob a conta do proprietário.
- As chaves devem viajar em cabeçalhos sobre HTTPS. URLs vazam no histórico do navegador, logs do servidor, sistemas de análise, dados de referenciador e ferramentas de monitoramento.
- Uma chave precisa de um ciclo de vida. Emita, defina escopo, armazene, observe, gire, revogue e audite credenciais em vez de tratá-las como strings permanentes.
- Chaves de API não são autorização de usuário delegada. OAuth é geralmente uma opção melhor quando um aplicativo de terceiros precisa de acesso limitado em nome de uma pessoa.
O que é uma chave de API?
Uma chave de API é um valor que um provedor de API emite para um cliente de software, projeto, conta ou integração. O cliente inclui a chave em uma solicitação. O gateway de API ou aplicativo procura a credencial, verifica seu status e restrições, aplica a política e associa a solicitação a um proprietário para fins de acesso, uso e auditoria.
A palavra “chave” pode ser enganosa. Uma chave de API não é necessariamente uma chave criptográfica usada para criptografar ou assinar dados. Em muitos sistemas, é uma credencial aleatória opaca. Alguns designs usam um identificador público mais um componente secreto; outros codificam um prefixo reconhecível que ajuda os operadores a identificar o tipo de credencial sem revelar o segredo.
Chaves de API são comuns para APIs de servidor para servidor, ferramentas de desenvolvedor, serviços de dados, mapas, mensagens, automação e serviços internos. Seu apelo é a simplicidade operacional: o cliente envia uma credencial e o provedor pode atribuir a chamada. Essa simplicidade é segura apenas quando a chave é gerada com entropia suficiente, transmitida com segurança, armazenada como um segredo e restrita à menor autoridade útil.
Como funciona a autenticação de chave de API
- O provedor emite uma credencial. Um painel ou API administrativa cria uma chave para um projeto nomeado, conta de serviço ou integração.
- O cliente armazena o segredo. Aplicações de servidor leem isso de um gerenciador de segredos, injeção de ambiente protegida ou outro armazenamento de credenciais aprovado.
- O cliente envia uma solicitação. A chave normalmente aparece em um cabeçalho HTTP sobre TLS.
- O serviço resolve a chave. Um identificador de chave ou pesquisa segura encontra o registro de credencial armazenado sem expor segredos não relacionados.
- O serviço avalia a política. Verifica status ativo, escopos, restrições de recursos, condições de rede, cotas e outros controles.
- O serviço registra dados de auditoria seguros. Os logs usam um ID de chave ou impressão digital, não o segredo completo, para atribuir a operação.
Uma solicitação pode ser autenticada, mas não autorizada. A autenticação responde a qual cliente apresentou a credencial. A autorização responde se aquele cliente pode realizar esta ação neste recurso. Um serviço deve tomar ambas as decisões de forma explícita.
Onde uma chave de API deve ser enviada?
Um cabeçalho específico de API ou o cabeçalho padrão Authorization normalmente é o local correto. A API de Scraping Scrapeleless usa esta forma de cabeçalho:
x-api-token: REDACTED
A solicitação deve usar HTTPS para que o transporte proteja os cabeçalhos de observação de rede passiva e autentique o servidor. TLS não protege uma chave depois que ela chega aos logs da aplicação, rastreamentos de depuração, extensões de navegador ou pontos finais comprometidos, por isso os controles de armazenamento e observabilidade permanecem necessários.
O OWASP REST Security Cheat Sheet aconselha contra colocar chaves de API e outros tokens de segurança em URLs porque os URLs são capturados por muitos sistemas. A autenticação de string de consulta pode existir por compatibilidade, mas uma nova API deve preferir cabeçalhos.
O que uma chave de API pode e não pode provar
Uma chave válida prova que o chamador possui aquela credencial no momento da solicitação. Não prova qual humano iniciou a solicitação, se o dispositivo é confiável ou se o software que apresenta a chave é o software pretendido. Uma chave copiada pode muitas vezes ser reproduzida de outra máquina, a menos que o provedor adicione restrições ou prova ligada ao remetente.
Chaves incorporadas em páginas da web públicas, binários de desktop, extensões de navegador e aplicativos móveis não podem ser mantidas como segredos duráveis porque os usuários controlam esses ambientes. A ofuscação pode retardar a descoberta casual, mas não muda o modelo de confiança. Clientes públicos devem chamar um backend controlado ou usar um design de autorização criado para software público.
Uma chave de API também não deve substituir permissões de nível de usuário para recursos sensíveis. Se cada ação do usuário compartilhar uma única chave de projeto, o serviço não pode distinguir de forma confiável o consentimento individual, funções ou revogação. A autenticação e autorização de usuários pertencem a uma camada separada.
Chave de API vs OAuth vs Token Bearer
| Conceito | O que descreve | Uso típico |
|---|---|---|
| chave de API | Uma credencial emitida a um cliente, projeto ou integração | Identificação de serviço, medição, quotas e acesso à aplicação |
| OAuth | Uma estrutura de autorização para obter tokens de acesso limitados | Acesso delegado em nome de um usuário ou acesso de cliente sob concessões definidas |
| Token Bearer | Uma forma baseada na posse de usar um token | Chamando um recurso protegido através de um cabeçalho de Autorização |
| JWT | Um formato de token contendo reivindicações assinadas ou protegidas | Assertivas de identidade ou autorização autônomas sob um perfil definido |
| Cookie de sessão | Uma credencial de sessão de navegador gerenciada através de regras de cookie | Mantendo uma sessão web autenticada |
Essas categorias se sobrepõem. Um token de acesso OAuth é comumente usado como um token bearer. Uma chave de API também pode ser apresentada com um esquema bearer, embora essa apresentação não transforme o sistema em OAuth. Um JWT pode ser usado como um token bearer, mas tokens bearer opacos também são comuns.
Design da chave API
Uma chave bem projetada é gerada a partir de uma fonte aleatória criptograficamente segura e é longa o suficiente para resistir a adivinhações. O valor não deve codificar dados de conta sensíveis. Um prefixo reconhecível pode ajudar scanners secretos e operadores a identificar o provedor e o tipo de credencial, mas a parte imprevisível deve levar a segurança.
Muitos serviços mostram o segredo completo apenas uma vez. O backend armazena um verificador unidirecional ou uma representação secreta protegida em vez de manter cada credencial em texto plano disponível para exibição. Um ID de chave não secreto separado suporta pesquisa, registros e administração.
O sistema deve permitir várias chaves ativas por projeto para que as implantações possam mudar credenciais sem um segredo compartilhado em todos os ambientes. Cada chave precisa de um nome, proprietário, evento de criação, informações de último uso, restrições e controle de revogação.
Como Armazenar Chaves de API
Serviços de produção devem recuperar chaves de um sistema centralizado de gerenciamento de segredos ou de um armazenamento de segredos de plataforma aprovado. O acesso deve ser limitado à identidade de carga de trabalho que precisa do segredo. O acesso humano, exportações e mudanças administrativas devem ser auditáveis.
O Cheat Sheet de Gerenciamento de Segredos OWASP cobre armazenamento central, provisionamento, auditoria, rotação e controles de ciclo de vida. Variáveis de ambiente podem ser um mecanismo de entrega, mas não são automaticamente privadas: inspeção de processo, relatórios de falhas, registros de compilação ou diagnósticos descuidados podem expô-las.
Não comprometa chaves no controle de origem, coloque-as em imagens de contêiner, cole-as em rastreadores de problemas ou compartilhe-as através de chat. A entrada CWE-798 sobre credenciais codificadas explica por que credenciais incorporadas em software criam ampla exposição e são difíceis de mudar.
Escopo e Restrições
Uma chave deve conceder apenas as APIs, operações, recursos e ambientes que sua carga de trabalho necessita. Separe credenciais de desenvolvimento, homologação e produção. Use autoridade somente para leitura quando um processo nunca escreve. Limite quotas para que um vazamento não possa criar custo ou tráfego ilimitado.
Restrições de rede, origens permitidas, assinaturas de aplicação ou identidades de serviço podem adicionar contexto útil, mas cada controle tem limitações. Regras de IP fonte são difíceis para redes móveis e egressos compartilhados. Restrições de origem do navegador protegem apenas fluxos de navegador participantes e não tornam uma chave exposta secreta. Trate restrições como camadas, não como substitutos para proteção de credencial.
Rotação e Revogação
A rotação substitui uma credencial antiga por uma nova. Um processo seguro cria uma segunda chave, atualiza a carga de trabalho através do caminho de entrega do segredo, confirma o tráfego sob o novo ID de chave e, em seguida, revoga a chave antiga. O suporte a várias chaves evita uma implantação forçada simultânea em todas as instâncias.
Revogue uma chave imediatamente quando a exposição for suspeita, um proprietário deixar, uma integração ser descontinuada ou a credencial não tiver mais um propósito justificado. O manuseio de incidentes deve identificar recursos e ações afetados através de registros de auditoria seguros, e então examinar como o valor escapou para que o caminho de entrega possa ser corrigido.
A expiração limita a vida de credenciais esquecidas. Uma validade curta é útil apenas se a renovação for automatizada e observada. Um sistema que silenciosamente substitui chaves expiradas por credenciais de emergência permanentes derrota o controle.
Monitoramento Sem Vazamento de Chaves
Os registros devem registrar um ID de chave não secreto, projeto, decisão, ponto final, classe de resposta, carimbo de data/hora e identificador de correlação de solicitação. Nunca escreva a chave completa. A censura deve ocorrer antes que os dados deixem o processo da aplicação e deve cobrir cabeçalhos, mensagens de exceção, rastros e pacotes de suporte.
Alerta sobre pontos finais, regiões, volume de tráfego, padrões de erro e uso de um ambiente que não corresponde ao propósito da chave. Carimbos de data/hora de último uso ajudam a encontrar chaves dormentes, mas a ausência de uso observado deve ser confirmada antes da revogação, pois a cobertura de monitoramento pode ser incompleta.
Erros Comuns de Chave API
- Uma chave para cada ambiente. Um vazamento de desenvolvimento pode então afetar a produção.
- Chaves em URLs. Strings de consulta se espalham através de registros, análises, histórico do navegador e referenciadores.
- Chaves em código de frontend. Clientes públicos não podem proteger um segredo compartilhado de longa duração.
- Credenciais permanentes sem restrições. Autoridade excessiva expande o impacto da exposição.
- Segredos completos nos logs. Sistemas centrais de observabilidade se tornam repositórios de credenciais.
- Sem proprietário ou propósito. Ninguém pode decidir se uma chave antiga ainda é necessária.
- Conversão de tipo automática silenciosa. Tratar uma chave como um número pode alterar caracteres iniciais ou a precisão; credenciais são strings opacas.
Quando usar uma chave de API
Acesso a dados de servidor para servidor
Um backend controlado identifica seu projeto para uma API de dados e armazena a chave em um gerenciador de segredos acessível pela carga de trabalho.
Ferramentas para desenvolvedores
Uma CLI usa uma credencial por usuário ou por projeto armazenada fora do código-fonte e expõe um comando seguro para substituição da chave.
Medição de uso
Uma API associa solicitações a um plano e cota, mantendo a autorização de recurso como uma decisão de política separada.
Acesso de usuário delegado
Uma chave de API sozinha geralmente é a escolha errada; OAuth pode representar aprovação do usuário, escopos e revogação de token sem compartilhar uma senha.
Conclusão
Uma chave de API é uma credencial direta para identificar um cliente de software ou projeto. A string em si é apenas uma parte do sistema. A segurança vem de uma geração de alta entropia, transporte TLS baseado em cabeçalhos, escopo restrito, armazenamento protegido, registro seguro, uso observado, rotação planejada e revogação imediata. As chaves de API se encaixam no acesso controlado à aplicação; elas não devem ser estendidas para um sistema de delegação de usuários ou incorporadas onde um cliente público possa expô-las.
Pronto para fazer uma solicitação de dados autenticada?
Crie uma conta Scrapeless, proteja a chave de API emitida e use-a de um backend controlado para acessar dados estruturados da web.
Inscreva-se hoje e receba $5 em crédito grátis — sem cartão de crédito necessário.
Reclame seu crédito de $5 →FAQ
Uma chave de API é uma senha?
Uma chave de API é semelhante a uma senha porque a posse pode conceder acesso, mas normalmente identifica um cliente de software ou projeto em vez de um login de conta humana. Ela ainda requer manuseio secreto.
Uma chave de API deve ser enviada em uma URL?
Não, cabeçalhos sobre HTTPS são preferidos porque URLs são copiadas em muitos logs, históricos, ferramentas de análise e caminhos de referência.
Uma chave de API pode ser armazenada em JavaScript do navegador?
Uma chave de API secreta de longa duração não deve ser incorporada em JavaScript do navegador porque cada usuário pode inspecioná-la e copiá-la. Coloque a credencial em um backend controlado ou use um design de autorização de cliente público.
Uma chave de API é a mesma coisa que um token bearer?
Não, uma chave de API é uma categoria de credencial, enquanto bearer descreve um modelo de uso baseado na posse. Uma chave de API pode ser apresentada por diferentes esquemas de cabeçalho, e tokens de acesso do OAuth são frequentemente tokens bearer.
Com que frequência as chaves de API devem ser rotacionadas?
Rotacione as chaves de acordo com risco, política e capacidade operacional automatizada, e substitua-as imediatamente após suspeita de exposição. O serviço deve suportar chaves ativas sobrepostas, para que a substituição não exija tempo de inatividade.