TL;DR
Uma chave de interface de programação de aplicativo (API) é um código exclusivo usado por uma API para identificar o aplicativo ou usuário que está chamando. As chaves de API são usadas para rastrear e controlar quem está usando uma API e como a está usando, bem como para autenticar e autorizar aplicativos – semelhante ao funcionamento de nomes de usuário e senhas. Uma chave de API pode vir na forma de uma única chave ou de um conjunto 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 relacionadas ao comprometimento de suas chaves de API.
API versus chave de API
Para entender o que é uma chave de API, primeiro você deve entender o que é uma API. Uma interface de programação de aplicativos 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 recuperem e usem dados criptográficos, como preço, volume e valor de mercado.
Uma chave de API vem em muitos formatos diferentes – pode ser uma única chave ou um conjunto de várias chaves. Diferentes sistemas usam essas chaves para autenticar e autorizar um aplicativo, de forma semelhante à forma como um nome de usuário e uma senha são usados. Uma chave de API é usada por um cliente de API para autenticar um aplicativo que chama a API.
Por exemplo, se a Binance Academy quiser usar a API CoinMarketCap, uma chave de API será gerada pela 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 da CoinMarketCap, esta chave de API deve ser enviada à CoinMarketCap 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. Compartilhar esta chave de API permitirá que terceiros acessem a CoinMarketCap como Binance Academy, e quaisquer ações de terceiros aparecerão como se viessem da Binance Academy.
A chave API também pode ser usada pela API CoinMarketCap 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, tráfego e volume de solicitações.
O que é uma chave de API?
Uma chave de API é usada para controlar e rastrear quem está usando uma API e como a está usando. O termo “chave de API” pode significar coisas diferentes para sistemas diferentes. Alguns sistemas possuem um único código, mas outros podem ter vários códigos para uma única “chave de API”.
Como tal, uma “chave de 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 chamador. Alguns códigos são usados para autenticação e outros para criar assinaturas criptográficas para provar a legitimidade de uma solicitação.
Esses códigos de autenticação são comumente 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 implica identificar as entidades envolvidas e confirmar que são quem dizem ser.
A autorização, por outro lado, especifica os serviços API aos quais o acesso é permitido. A função de uma chave API é semelhante à de um nome de usuário e senha de conta; ele também pode ser conectado a outros recursos de segurança para melhorar a segurança geral.
Cada chave de API normalmente é gerada para uma entidade específica pelo proprietário da API (mais detalhes abaixo) e cada vez que uma chamada é feita para um endpoint de API — que requer autenticação ou autorização do usuário, ou ambas — a chave relevante é usada.
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, uma assinatura digital gerada por outra chave pode ser adicionada à solicitação. 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 por chaves criptográficas, que se enquadram nas seguintes categorias:
Chaves simétricas
Estes envolvem o uso de uma chave secreta para realizar tanto a assinatura de dados quanto a verificação de uma assinatura. Com chaves simétricas, a chave API e a chave secreta são geralmente geradas pelo proprietário da API e a mesma chave secreta deve ser usada pelo serviço API para verificação de assinatura. A principal vantagem de usar uma chave singular é que isso é mais rápido e requer menos poder computacional para geração e verificação de assinatura. Um bom exemplo de chave simétrica é o HMAC.
Chaves assimétricas
Estas envolvem a utilização de duas chaves: uma chave privada e uma chave pública, que são diferentes, mas ligadas criptograficamente. A chave privada é usada para geração de assinatura e a chave pública é usada para verificação de assinatura. A chave da API é gerada pelo proprietário da API, mas a chave privada e o par de chaves públicas são gerados pelo usuário. Somente a chave pública precisa ser usada pelo proprietário da API para verificação de assinatura, para que a chave privada possa permanecer local e secreta.
A principal vantagem do uso de chaves assimétricas é a maior segurança na separação das chaves de geração e verificação de assinatura. Isto permite que sistemas externos verifiquem assinaturas sem serem capazes de gerar assinaturas. Outra vantagem é que alguns sistemas de criptografia assimétrica suportam a adição de uma senha às chaves privadas. Um bom exemplo é um par de chaves RSA.
As chaves de API são seguras?
A responsabilidade de uma chave API é do usuário. As chaves de API são semelhantes às senhas e precisam 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 isso colocaria a conta do usuário em risco.
As chaves de API são comumente alvo de ataques cibernéticos porque podem ser usadas para realizar operações poderosas em sistemas, como solicitar informações pessoais ou executar transações financeiras. Na verdade, houve casos de rastreadores que atacaram com sucesso bancos de dados de códigos on-line para roubar chaves de API.
As consequências do roubo de chaves de API podem ser drásticas e levar a perdas financeiras significativas. Além disso, como algumas chaves de API não expiram, elas podem ser usadas indefinidamente por invasores, uma vez roubadas, até que as próprias chaves sejam revogadas.
Melhores práticas ao usar chaves de API
Devido ao seu acesso a dados confidenciais e à sua vulnerabilidade geral, o uso seguro de chaves de API é de suma importância. Você pode seguir estas diretrizes de práticas recomendadas ao usar chaves de API para melhorar a segurança geral:
Alterne suas chaves de API com frequência, se possível. Isso significa que você deve excluir sua chave de API atual e criar uma nova. Com 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 a 90 dias, você deve alternar suas chaves de API com uma frequência semelhante, se possível.
Use lista de permissões de IP: ao criar uma chave de API, elabore uma lista de IPs autorizados a usar a chave (uma lista de permissões de IP). Você também pode especificar uma lista de IPs bloqueados (uma lista negra de IP). Dessa forma, mesmo que sua chave API seja roubada, ela ainda não poderá ser acessada por um IP não reconhecido.
Use várias chaves de API: ter várias chaves e dividir responsabilidades entre elas reduzirá o risco de segurança, pois sua segurança não dependerá de uma única chave com permissões extensas. Você também pode definir listas de permissões de IP diferentes para cada chave, reduzindo ainda mais o risco de segurança.
Armazene chaves de API com segurança: não armazene suas chaves em locais públicos, em computadores públicos ou em seu formato original de texto simples. Em vez disso, armazene cada um usando criptografia ou um gerenciador de segredos para melhor segurança e tome cuidado para não expô-los acidentalmente.
Do not share your API keys. Sharing your API key is similar to sharing your password. In doing so, you give another party the same authentication and authorization privileges as you. If they are compromised, your API key can be stolen and used to hack into your account. An API key should only be used between you and the system that generates it.
Se sua chave de API estiver comprometida, você precisará primeiro desativá-la para evitar maiores 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 maneira de aumentar suas chances de recuperar quaisquer fundos perdidos.
Considerações finais
As chaves de 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 aspectos para garantir o uso seguro das chaves de API. No geral, uma chave de API deve ser tratada como uma senha da sua conta.
Leitura adicional
Princípios Gerais de Segurança
5 golpes comuns de criptomoeda e como evitá-los


