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