Uma chave de interface de programação de aplicativo (API) é um código exclusivo que uma API usa para identificar o aplicativo ou usuário que a chama. As chaves de API são usadas para rastrear e controlar quem está usando uma API e como eles a usam, bem como para autenticar e autorizar aplicativos, semelhante ao funcionamento de nomes de usuário e senhas. Uma chave de API pode ter a forma de uma única chave ou de um grupo de várias chaves. Os usuários devem seguir as práticas recomendadas para melhorar sua segurança geral contra roubo de chaves de API e evitar as consequências associadas ao comprometimento de chaves de API.

API vs. API de clave

Para entender o que é uma chave de API, devemos primeiro saber o que é uma API. Uma interface de programação de aplicativos ou API é um middleware que permite que informações sejam compartilhadas entre dois ou mais aplicativos. Por exemplo, a API CoinMarketCap permite que outras aplicações obtenham e utilizem dados sobre criptomoedas, como preço, volume e capitalização de mercado.

Por outro lado, uma chave de API pode assumir vários formatos. Pode ser uma única chave ou um grupo de múltiplas chaves. Essas chaves são usadas por diferentes sistemas para autenticar e autorizar um aplicativo, de forma semelhante à forma como um nome de usuário e uma senha são usados. Um cliente de API usa esses tipos de chaves para autenticar um aplicativo ao chamar a API.

Por exemplo, se a Binance Academy quiser usar a API da CoinMarketCap, a CoinMarketCap irá gerar uma chave de API e usá-la para autenticar a identidade da Binance Academy (o cliente da API), que está solicitando acesso à API. Quando a Binance Academy acessa a API CoinMarketCap, você deve enviar a chave API ao CMC junto com a solicitação.

Esta chave API deve ser usada apenas pela Binance Academy e não deve ser compartilhada ou enviada a terceiros. O compartilhamento desta chave de API permitiria que terceiros acessassem o CoinMarketCap como Binance Academy, portanto, qualquer ação realizada por terceiros pareceria ter vindo da Binance Academy.

A API CoinMarketCap também pode usar esta chave de API para confirmar se o aplicativo está autorizado a acessar o recurso solicitado. Além disso, os proprietários de APIs usam chaves de API para monitorar a atividade da API, como tipos de solicitação, tráfego e volume.

O que é uma chave de API?

Uma chave de API é usada para monitorar e rastrear quem está usando uma API e como eles a usam. O termo “chave de API” pode se referir a uma variedade de coisas para diferentes sistemas. Alguns sistemas podem ter um único código, enquanto outros podem ter vários códigos para uma única “chave de API”.

Como tal, uma “chave de API” é um código exclusivo ou grupo de códigos que uma API usa para autenticar e autorizar o usuário ou aplicativo que a chama. Alguns códigos são usados ​​para autenticação e outros para criar assinaturas criptográficas que comprovam a legitimidade de uma solicitação.

Esses códigos de autenticação são chamados coletivamente de “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”. A autenticação envolve a identificação das entidades envolvidas e a confirmação de que são quem dizem ser.

A autorização, por outro lado, especifica os serviços API aos quais o acesso é concedido. A função de uma chave API é semelhante à de um nome de usuário e senha de conta. Ele também pode se conectar a outros recursos de segurança para melhorar a segurança geral.

O proprietário da API normalmente gera uma chave de API para uma entidade específica (mais detalhes abaixo) e cada vez que uma chamada é feita para um endpoint da API (exigindo autenticação do usuário, autorização ou ambos), a chave é usada em questão.

Assinaturas criptográficas

Algumas chaves de API usam assinaturas criptográficas como uma camada adicional de verificação. Quando um usuário deseja enviar determinados dados para uma API, é possível adicionar à solicitação uma assinatura digital gerada por outra chave. Usando criptografia, o proprietário da API pode verificar se esta assinatura digital corresponde aos dados enviados.

Assinaturas simétricas e assimétricas

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

Chaves simétricas

Isso envolve o uso de uma chave secreta para executar a assinatura de dados e a verificação de assinatura. Com chaves simétricas, o proprietário da API geralmente gera a chave API e a chave secreta, e o serviço API deve usar a mesma chave secreta para verificação de assinatura. A principal vantagem de usar uma única chave é que isso é mais rápido e requer menos poder computacional para geração e verificação de assinaturas. Um bom exemplo de chave simétrica é o HMAC (Hashed-Based Message Authentication Code).

Chaves assimétricas

Estas envolvem a utilização de duas chaves: uma chave privada e uma chave pública diferente, mas ligadas criptograficamente. A chave privada é usada para gerar a assinatura e a chave pública é usada para verificá-la. O proprietário da API gera a chave da API, mas é o usuário quem gera a chave pública e o par de chaves privadas. O proprietário da API deve usar apenas a chave pública para verificar a assinatura, para que a chave privada permaneça em vigor e secreta.

A principal vantagem de usar chaves assimétricas é ter mais segurança ao separar as chaves de geração e verificação de assinatura. Isso permite que sistemas externos verifiquem assinaturas sem serem capazes de gerá-las. Outra vantagem é que alguns sistemas de criptografia assimétrica permitem adicionar uma senha às chaves privadas. Um bom exemplo é um par de chaves RSA (Rivest-Shamir-Adelman, as iniciais são as iniciais dos sobrenomes dos criadores).

As chaves de API são seguras?

A responsabilidade por uma chave API é do usuário. As chaves de API são semelhantes às senhas e devem ser tratadas com o mesmo cuidado. Compartilhar uma chave de API é semelhante a compartilhar uma senha e, como tal, não deve ser feito, pois colocaria a conta do usuário em risco.

As chaves API são frequentemente alvo de ataques cibernéticos, pois podem ser usadas para realizar operações importantes dentro de um sistema, como solicitar informações pessoais ou executar transações financeiras. Na verdade, houve casos de rastreadores atacando com sucesso bancos de dados com código online para roubar chaves de API.

As consequências de um roubo de chave API podem ser desastrosas e levar a perdas financeiras consideráveis. Além disso, como algumas chaves de API não expiram, os invasores podem usá-las indefinidamente, até que as próprias chaves sejam revogadas.

Melhores práticas ao usar chaves de API

Devido ao acesso a dados confidenciais e à vulnerabilidade geral, o uso seguro de chaves de API é extremamente importante. Você pode seguir estas práticas recomendadas ao usar chaves de API para melhorar a segurança geral:

  1. Se possível, altere suas chaves de API com frequência. Isso significa que você deve excluir sua chave de API atual e criar uma nova. Em vários sistemas, é fácil gerar e excluir chaves de API. Da mesma forma que alguns sistemas exigem que você altere sua senha a cada 30 ou 90 dias, você deve alterar suas chaves de API com a maior frequência possível.

  2. Use uma lista de permissões de IP: ao criar uma chave de API, faça uma lista de IPs que têm permissão para usar a chave (uma lista de permissões de IP). Estabeleça também uma lista de IP bloqueados (uma lista negra de IP). Assim, mesmo que sua chave API seja roubada, não será possível utilizá-la com um IP não reconhecido.

  3. Use múltiplas chaves de API: Ter múltiplas chaves e dividir responsabilidades entre elas reduzirá o risco de segurança, já que sua segurança não dependerá de uma única chave com permissões abundantes. Você também pode definir diferentes listas de permissões de IP para cada chave, reduzindo ainda mais o risco de segurança.

  4. Armazene chaves de API com segurança: não armazene suas chaves em ambientes públicos, em computadores públicos ou em seu formato original de texto simples. Em vez disso, salve cada um deles por meio de criptografia ou de um Secret Manager para melhor segurança e tome cuidado para não expô-los acidentalmente.

  5. Não compartilhe suas chaves de API. Compartilhar suas chaves de API é semelhante a compartilhar sua senha. Ao fazer isso, você fornece a terceiros os mesmos privilégios de autenticação e autorização que possui. Se suas senhas forem comprometidas, elas poderão ser usadas para hackear sua conta. Uma chave de API só deve ser usada entre o sistema que a gerou e o proprietário da chave.

Se sua chave de API estiver comprometida, você deve primeiro desativá-la para evitar maiores danos. Se ocorrer 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 maneira de aumentar suas chances de recuperar fundos perdidos.

Conclusões

As chaves de API fornecem funções essenciais de autenticação e autorização, portanto, os usuários devem gerenciar e proteger suas chaves com cuidado. Existem muitas camadas e aspectos para garantir o uso seguro de chaves de API. Mas, em geral, uma chave API deve ser tratada como uma senha para acessar sua conta.

Leitura adicional

  • Princípios gerais de segurança

  • 5 golpes comuns de criptomoeda e como evitá-los