TL;DR

Une clé d'interface de programmation d'application (API) est un code unique utilisé par une API pour identifier l'application ou l'utilisateur appelant. Les clés API sont utilisées pour suivre et contrôler qui utilise une API et comment ils l'utilisent, ainsi que pour authentifier et autoriser les applications, de la même manière que fonctionnent les noms d'utilisateur et les mots de passe. Une clé API peut se présenter sous la forme d’une clé unique ou d’un ensemble de plusieurs clés. Les utilisateurs doivent suivre les meilleures pratiques pour améliorer leur sécurité globale contre le vol de clés API et éviter les conséquences liées à la compromission de leurs clés API.

API vs clé API

Afin de comprendre ce qu'est une clé API, vous devez d'abord comprendre ce qu'est une API. Une interface de programmation d'applications ou API est un intermédiaire logiciel qui permet à deux ou plusieurs applications de partager des informations. Par exemple, l’API de CoinMarketCap permet à d’autres applications de récupérer et d’utiliser des données cryptographiques, telles que le prix, le volume et la capitalisation boursière.

Une clé API se présente sous de nombreuses formes différentes : il peut s'agir d'une clé unique ou d'un ensemble de plusieurs clés. Différents systèmes utilisent ces clés pour authentifier et autoriser une application, de la même manière qu'un nom d'utilisateur et un mot de passe sont utilisés. Une clé API est utilisée par un client API pour authentifier une application appelant l'API.

Par exemple, si Binance Academy souhaite utiliser l'API CoinMarketCap, une clé API sera générée par CoinMarketCap et utilisée pour authentifier l'identité de Binance Academy (le client API), qui demande l'accès à l'API. Lorsque Binance Academy accède à l'API de CoinMarketCap, cette clé API doit être envoyée à CoinMarketCap avec la demande.

Cette clé API ne doit être utilisée que par Binance Academy et ne doit pas être partagée ni envoyée à d'autres. Le partage de cette clé API permettra à un tiers d'accéder à CoinMarketCap en tant que Binance Academy, et toutes les actions du tiers apparaîtront comme si elles provenaient de Binance Academy.

La clé API peut également être utilisée par l'API CoinMarketCap pour confirmer si l'application est autorisée à accéder à la ressource demandée. De plus, les propriétaires d'API utilisent des clés API pour surveiller l'activité de l'API, telle que les types, le trafic et le volume des requêtes.

Qu'est-ce qu'une clé API ?

Une clé API est utilisée pour contrôler et suivre qui utilise une API et comment ils l'utilisent. Le terme « clé API » peut signifier différentes choses selon les systèmes. Certains systèmes ont un seul code mais d'autres peuvent avoir plusieurs codes pour une seule « clé API ».

En tant que telle, une « clé API » est un code unique ou un ensemble de codes uniques utilisé par une API pour authentifier et autoriser l'utilisateur ou l'application appelant. Certains codes sont utilisés pour l'authentification et d'autres pour créer des signatures cryptographiques afin de prouver la légitimité d'une demande.

Ces codes d'authentification sont communément appelés collectivement « clé API », tandis que les codes utilisés pour les signatures cryptographiques portent différents noms, tels que « clé secrète », « clé publique » ou « clé privée ». L'authentification implique d'identifier les entités impliquées et de confirmer qu'elles sont bien celles qu'elles prétendent être.

L'autorisation, quant à elle, spécifie les services API auxquels l'accès est autorisé. La fonction d'une clé API est similaire à celle d'un nom d'utilisateur et d'un mot de passe de compte ; il peut également être connecté à d’autres fonctionnalités de sécurité pour améliorer la sécurité globale.

Chaque clé API est généralement générée pour une entité spécifique par le propriétaire de l'API (plus de détails ci-dessous) et chaque fois qu'un appel est effectué vers un point de terminaison d'API (qui nécessite une authentification ou une autorisation de l'utilisateur, ou les deux), la clé appropriée est utilisée.

Signatures cryptographiques

Certaines clés API utilisent des signatures cryptographiques comme couche de vérification supplémentaire. Lorsqu'un utilisateur souhaite envoyer certaines données à une API, une signature numérique générée par une autre clé peut être ajoutée à la requête. Grâce à la cryptographie, le propriétaire de l'API peut vérifier que cette signature numérique correspond aux données envoyées.

Signatures symétriques et asymétriques

Les données partagées via une API peuvent être signées par des clés cryptographiques, qui appartiennent aux catégories suivantes :

Clés symétriques

Celles-ci impliquent l'utilisation d'une clé secrète pour effectuer à la fois la signature des données et la vérification d'une signature. Avec les clés symétriques, la clé API et la clé secrète sont généralement générées par le propriétaire de l'API et la même clé secrète doit être utilisée par le service API pour la vérification de la signature. Le principal avantage de l’utilisation d’une clé unique est que cela est plus rapide et nécessite moins de puissance de calcul pour la génération et la vérification de la signature. Un bon exemple de clé symétrique est HMAC.

Clés asymétriques

Celles-ci impliquent l’utilisation de deux clés : une clé privée et une clé publique, différentes mais liées cryptographiquement. La clé privée est utilisée pour la génération de signature et la clé publique est utilisée pour la vérification de la signature. La clé API est générée par le propriétaire de l'API, mais la paire clé privée et clé publique est générée par l'utilisateur. Seule la clé publique doit être utilisée par le propriétaire de l'API pour la vérification de la signature, afin que la clé privée puisse rester locale et secrète.

Le principal avantage de l’utilisation de clés asymétriques est la sécurité accrue liée à la séparation des clés de génération de signature et de vérification. Cela permet aux systèmes externes de vérifier les signatures sans pouvoir générer de signatures. Un autre avantage est que certains systèmes de chiffrement asymétrique prennent en charge l’ajout d’un mot de passe aux clés privées. Un bon exemple est une paire de clés RSA.

Les clés API sont-elles sécurisées ?

La responsabilité d'une clé API incombe à l'utilisateur. Les clés API sont similaires aux mots de passe et doivent être traitées avec le même soin. Le partage d’une clé API est similaire au partage d’un mot de passe et, en tant que tel, ne doit pas être effectué car cela mettrait en danger le compte de l’utilisateur.

Les clés API sont généralement ciblées par les cyberattaques, car elles peuvent être utilisées pour effectuer des opérations puissantes sur les systèmes, telles que la demande d'informations personnelles ou l'exécution de transactions financières. En fait, il y a eu des cas où des robots d'exploration ont réussi à attaquer des bases de données de codes en ligne pour voler des clés API.

Les conséquences du vol de clé API peuvent être dramatiques et entraîner des pertes financières importantes. De plus, comme certaines clés API n’expirent pas, elles peuvent être utilisées indéfiniment par des attaquants une fois volées, jusqu’à ce que les clés elles-mêmes soient révoquées.

Meilleures pratiques lors de l'utilisation des clés API

En raison de leur accès à des données sensibles et de leur vulnérabilité générale, l’utilisation sécurisée des clés API est d’une importance primordiale. Vous pouvez suivre ces bonnes pratiques lorsque vous utilisez des clés API pour améliorer leur sécurité globale :

  1. Faites pivoter vos clés API souvent si possible. Cela signifie que vous devez supprimer votre clé API actuelle et en créer une nouvelle. Avec plusieurs systèmes, il est facile de générer et de supprimer des clés API. De la même manière que certains systèmes exigent que vous changiez votre mot de passe tous les 30 à 90 jours, vous devez si possible alterner vos clés API avec une fréquence similaire.

  2. Utiliser la liste blanche d'IP : Lorsque vous créez une clé API, dressez une liste des IP autorisées à utiliser la clé (une liste blanche d'IP). Vous pouvez également spécifier une liste d'adresses IP bloquées (une liste noire d'adresses IP). De cette façon, même si votre clé API est volée, elle n’est toujours pas accessible par une IP non reconnue.

  3. Utilisez plusieurs clés API : le fait d'avoir plusieurs clés et de répartir les responsabilités entre elles réduira les risques de sécurité, car votre sécurité ne dépendra pas d'une seule clé dotée d'autorisations étendues. Vous pouvez également définir différentes listes blanches IP pour chaque clé, réduisant ainsi davantage votre risque de sécurité.

  4. Stockez les clés API en toute sécurité : ne stockez pas vos clés dans des lieux publics, sur des ordinateurs publics ou dans leur format de texte brut d'origine. Au lieu de cela, stockez chacun d’eux à l’aide d’un cryptage ou d’un gestionnaire de secrets pour une meilleure sécurité et veillez à ne pas les exposer accidentellement.

  5. Ne partagez pas vos clés API. Partager votre clé API est similaire au partage de votre mot de passe. Ce faisant, vous accordez à une autre partie les mêmes privilèges d’authentification et d’autorisation que vous. Si elles sont compromises, votre clé API peut être volée et utilisée pour pirater votre compte. Une clé API ne doit être utilisée qu'entre vous et le système qui la génère.

Si votre clé API est compromise, vous devez d'abord la désactiver pour éviter d'autres dommages. En cas de perte financière, prenez des captures d'écran des informations clés liées à l'incident, contactez les entités concernées et déposez un rapport de police. C’est le meilleur moyen d’augmenter vos chances de récupérer les fonds perdus.

Pensées finales

Les clés API fournissent des fonctions d'authentification et d'autorisation de base, et les utilisateurs doivent gérer et protéger leurs clés avec soin. Il existe de nombreux niveaux et aspects pour garantir une utilisation sûre des clés API. Dans l'ensemble, une clé API doit être traitée comme un mot de passe pour votre compte.

Lectures complémentaires

  • Principes généraux de sécurité

  • 5 escroqueries courantes liées aux crypto-monnaies et comment les éviter