O que é uma chave API e como usá-la com segurança?
Página Inicial
Artigos
O que é uma chave API e como usá-la com segurança?

O que é uma chave API e como usá-la com segurança?

Intermediário
Publicado em Jan 6, 2023Atualizado em Feb 21, 2023
7m


Uma chave de interface de programação de aplicações (API) é um código exclusivo usado por uma API para identificar uma aplicação, aplicativo ou usuário solicitante. As chaves API são usadas para rastrear e controlar quem está usando uma API e a forma de uso. Elas também servem para autenticar e autorizar aplicativos — semelhante ao funcionamento de sistemas com nomes de usuário e senhas. Uma chave API pode ser uma única chave ou um conjunto de várias chaves. Os usuários devem seguir as práticas recomendadas para aprimorar a segurança geral contra roubos de chaves API e evitar consequências relacionadas ao comprometimento de suas chaves API.

API vs. Chave API

Para entender o que é uma chave de API, você deve primeiro entender o que é uma API. Uma interface de programação de aplicações ou API é um intermediário de software que permite que dois ou mais aplicativos compartilhem informações. Por exemplo, a API do CoinMarketCap permite que outros aplicativos obtenham e utilizem dados sobre criptomoedas, como preço, volume e capitalização de mercado.

Uma chave API pode ter muitas formas diferentes — ela pode ser uma chave única ou um conjunto de várias chaves. Diferentes sistemas usam essas chaves para autenticar e autorizar um aplicativo, de forma semelhante a mecanismos que usam nome de usuário e senha. Uma chave API é usada por um cliente da API para autenticar um aplicativo que faz a solicitação, ou seja, que chama a API. 

Por exemplo, se a Binance Academy quiser usar a API do CoinMarketCap, uma chave API será gerada pelo CoinMarketCap e usada para autenticar a identidade da Binance Academy (o cliente da API), que está solicitando acesso à API. Quando a Binance Academy acessa a API do CoinMarketCap, esta chave API deve ser enviada ao CoinMarketCap junto com a solicitação. 

Esta chave API deve ser usada somente pela Binance Academy e não deve ser compartilhada ou enviada a terceiros. O compartilhamento desta chave API permitiria o acesso de um terceiro ao CoinMarketCap se passando pela Binance Academy. Ou seja, quaisquer ações do terceiro seriam tratadas como se fossem da Binance Academy.

A chave API também pode ser usada pela API do CoinMarketCap para confirmar se o aplicativo está autorizado a acessar o recurso solicitado. Além disso, os proprietários de APIs usam as chaves API para monitorar as atividades da API e informações como tipo, tráfego e volume de solicitações. 

O que é uma chave API? 

A chave API é usada para controlar e rastrear quem está usando uma determinada API e como ela está sendo usada. O termo “chave API” pode significar coisas diferentes para sistemas diferentes. Alguns sistemas têm um único código, outros podem ter múltiplos códigos para uma única “chave API”.   

Sendo assim, uma “chave API” é um código exclusivo ou um conjunto de códigos exclusivos usados por uma API para autenticar e autorizar o usuário ou aplicativo solicitante. Alguns códigos são usados para autenticação, outros são usados para criar assinaturas criptográficas e provar a legitimidade de uma solicitação. 

Esses códigos de autenticação são comumente referidos coletivamente como “chave API”, enquanto os códigos usados para assinaturas criptográficas têm vários nomes, como “chave secreta”, “chave pública” ou “chave privada”. O processo de autenticação visa identificar as entidades envolvidas e confirmar que elas são quem dizem ser.

A autorização, por outro lado, especifica quais são os serviços da API cujo acesso é permitido. A função de uma chave API é semelhante à de um nome de usuário e senha; também é possível conectá-la a outros recursos de segurança para melhorar a segurança de modo geral. 

Normalmente, cada chave API é gerada para uma entidade específica pelo proprietário da API (mais detalhes abaixo) e cada vez que uma solicitação é feita para um endpoint da API — que requer a autenticação ou autorização do usuário, ou ambas — a chave correspondente é usada.

Assinaturas criptográficas

Algumas chaves API usam assinaturas digitais (criptográficas) como uma camada adicional de verificação. Quando um usuário deseja enviar dados específicos para uma API, uma assinatura digital gerada por outra chave pode ser adicionada à solicitação. Usando criptografia, o proprietário da API pode verificar se essa assinatura digital corresponde aos dados enviados.

Assinaturas simétricas e assimétricas 

Os dados compartilhados por meio de uma API podem ser assinados por chaves criptográficas, que se enquadram nas seguintes categorias:

Chaves simétricas

Estas envolvem o uso de uma chave secreta para realizar a assinatura de dados e a verificação de uma assinatura. Com as chaves simétricas, a chave API e a chave secreta geralmente são geradas pelo proprietário da API e a mesma chave secreta deve ser usada pelo serviço de API para verificação da assinatura. As principais vantagens de usar uma chave única são a rapidez do processo e a necessidade de menos poder computacional para geração e verificação da assinatura. Um bom exemplo de chave simétrica é o HMAC.

Chaves assimétricas

Estas envolvem o uso de duas chaves: uma chave privada e uma chave pública, que são diferentes, mas vinculadas criptograficamente. A chave privada é usada para gerar a assinatura e a chave pública é usada para a verificação da assinatura. A chave API é gerada pelo proprietário da API, mas a chave privada e a chave pública são geradas pelo usuário. Para verificação da assinatura, o proprietário da API precisa usar somente a chave pública. Portanto, a chave privada pode permanecer local e secreta. 

A principal vantagem de usar chaves assimétricas é a maior segurança oferecida ao separar a geração de assinaturas e as chaves de verificação. Isso permite que sistemas externos verifiquem assinaturas mesmo sem ter a capacidade de gerá-las. Outra vantagem é que alguns sistemas de encriptação assimétrica suportam a adição de uma senha às chaves privadas. Um bom exemplo é um par de chaves RSA. 

As chaves API são seguras? 

A responsabilidade de uma chave API é do usuário. Chaves API são semelhantes a senhas e precisam ser tratadas com o mesmo cuidado. Compartilhar uma chave API é como compartilhar uma senha, ou seja, não é recomendado, pois isso colocaria a conta do usuário em risco. 

As chaves API são muito visadas em ataques cibernéticos porque podem ser usadas para executar operações poderosas em sistemas, como a solicitação de informações pessoais ou a execução de transações financeiras. Na verdade, já houve casos de hackers que conseguiram atacar bancos de dados de códigos on-line para roubar chaves API.

As consequências do roubo de chaves API podem ser drásticas e levar a perdas financeiras significativas. Além disso, como algumas chaves API não possuem validade, elas podem ser usadas indefinidamente por invasores depois de roubadas, até que as respectivas chaves sejam revogadas.

Práticas recomendadas ao usar chaves API

Devido ao acesso a dados confidenciais e à vulnerabilidade geral de chaves API, o uso seguro dessas chaves é de suma importância. Ao usar chaves API, você pode seguir estas práticas recomendadas e melhorar sua segurança: 

  1. Se possível, altere suas chaves API com frequência. Para isso, você deve excluir sua chave API atual e criar uma nova. É possível gerar e excluir chaves API facilmente, em vários sistemas. Da mesma forma que alguns sistemas exigem que você altere sua senha a cada 30 ou 90 dias, você deve alterar suas chaves API com uma frequência semelhante.

  2. Use uma lista de permissões de IP: ao criar uma chave API, defina uma lista de IPs autorizados a usar a chave (whitelist para endereços IP). Você também pode definir uma lista de IPs bloqueados (blacklist para endereços IP). Dessa forma, mesmo que a sua chave API seja roubada, ela não poderá ser acessada por um IP não reconhecido.

  3. Use múltiplas chaves API: ter várias chaves e dividir responsabilidades entre elas reduz os riscos, pois sua segurança não dependerá de uma única chave com muitas permissões. Você também pode definir, para cada chave, diferentes listas de permissões para endereços IP, reduzindo ainda mais os riscos. 

  4. Armazene chaves API com segurança: não armazene suas chaves em locais públicos, em computadores públicos ou em seu formato de texto simples original. Em vez disso, para maior segurança, armazene cada uma usando encriptação ou um gerenciador e tome cuidado para não expô-las acidentalmente. 

  5. Não compartilhe suas chaves API. Compartilhar sua chave API é como compartilhar a sua senha. Ao fazer isso, você concede à outra pessoa os mesmos privilégios de autenticação e autorização que você tem. Sua chave API pode ser roubada e usada para invadir sua conta. Uma chave API só deve ser usada entre você e o sistema que a gera.

Se sua chave API estiver comprometida, primeiro você precisa desativá-la para evitar mais danos. Se houver alguma perda financeira, faça capturas de tela das principais informações relacionadas ao incidente, entre em contato com as entidades relacionadas e registre um boletim de ocorrência. Esta é a melhor forma de aumentar as suas chances de recuperar os fundos perdidos. 

Considerações finais

As chaves API fornecem funções básicas de autenticação e autorização e os usuários devem gerenciar e proteger suas chaves com cuidado. Existem muitas camadas e diferentes aspectos para garantir o uso seguro das chaves API. No geral, uma chave API deve ser tratada como uma senha.

Leituras adicionais