Une clé d'interface de programmation d'application (API) est un code unique utilisé par une API pour identifier l'utilisateur ou l'application appelant. Les clés API sont utilisées pour suivre et contrôler qui utilise l'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 utiliser correctement les clés API 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.
Distinguer l'API et la clé API
Pour 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 (Application Programming Interface) est un middleware 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 de crypto-monnaie, 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 clés. Différents systèmes utilisent ces clés pour authentifier et autoriser une application, de la même manière que les noms d'utilisateur et les mots de passe sont utilisés. Une clé API est utilisée par le client API pour authentifier l'application appelante 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 la Binance Academy (application API) demandant l'accès à l'API. Lorsque Binance Academy accède à l'API de CoinMarketCap, cette clé API est 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 ou envoyée à d'autres. Le partage de cette clé API permettra à des tiers d'accéder à CoinMarketCap en tant que Binance Academy, et toutes les actions de 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 suivre l'activité de l'API, telle que le type de demande, le trafic et le volume.
Qu'est-ce qu'une clé API ?
Les clés API sont utilisées pour contrôler et suivre qui utilise l'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 ».
Ainsi, 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 une signature cryptographique afin de prouver la légitimité de la demande.
Ces clés d'authentification sont souvent appelées collectivement « clés API », tandis que les codes utilisés pour les signatures cryptographiques portent divers noms, tels que « clés privées », « clés publiques » ou « clés privées ». L'authentification nécessite d'identifier les entités impliquées et de confirmer qu'elles sont bien celles qu'elles prétendent être.
En revanche, il autorise à préciser les services API auxquels il est autorisé d'accéder. La fonctionnalité 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 par le propriétaire de l'API pour une entité spécifique (plus de détails ci-dessous), et chaque fois qu'un appel est effectué vers un point de terminaison de l'API (nécessitant une authentification ou une autorisation de l'utilisateur, ou les deux), la clé correspondante sera utilisée.
Signature cryptographique
Certaines clés API utilisent des signatures cryptographiques comme couche de vérification supplémentaire. Lorsqu'un utilisateur souhaite envoyer certaines données à l'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 l'API peuvent être signées avec des clés cryptographiques, qui appartiennent aux catégories suivantes :
Clés symétriques
Ils impliquent l’utilisation d’une clé secrète pour effectuer à la fois la signature des données et la vérification de la 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 le service API doit utiliser la même clé secrète pour vérifier 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 générer et vérifier la signature. Un bon exemple de clé symétrique est HMAC.
Clés asymétriques
Ils 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 créer la signature et la clé publique est utilisée pour vérifier la signature. La clé API est générée par le propriétaire de l'API mais la paire de clés privée et publique est générée par l'utilisateur. Le propriétaire de l'API n'a besoin d'utiliser la clé publique que pour vérifier 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 plus grande sécurité liée à la séparation de la clé de génération de signature et de la clé de vérification. Cela permet aux systèmes externes de vérifier la signature sans pouvoir générer la signature. Un autre avantage est que certains systèmes de chiffrement asymétrique prennent en charge l’ajout d’un mot de passe à la clé privée. Un exemple typique est une paire de clés RSA.
Les clés API sont-elles sécurisées ?
La responsabilité de la sécurité des clés API incombe à l’utilisateur. Les clés API sont similaires aux mots de passe et doivent être manipulées avec précaution. Le partage de clés API est similaire au partage de mots de passe et ne doit donc pas être effectué car cela met en danger le compte de l'utilisateur.
Les clés API sont souvent ciblées par les cyberattaques car elles peuvent être utilisées pour effectuer des opérations critiques sur le système, comme demander des informations personnelles ou effectuer des transactions financières. En fait, il y a eu des cas de robots d'exploration et d'attaques de bases de données en ligne visant à voler des clés API.
Les conséquences du vol de clé API peuvent être graves et entraîner des pertes financières importantes. De plus, comme certaines clés API n’expirent pas, les attaquants peuvent les utiliser indéfiniment après avoir été volées jusqu’à ce que les clés elles-mêmes soient révoquées.
Comment utiliser correctement les clés API
Parce qu’elle donne accès à des données sensibles, l’utilisation sécurisée des clés API est primordiale. Vous pouvez suivre ces bonnes pratiques pour utiliser les clés API afin d'améliorer la sécurité globale :
Actualisez vos clés API aussi souvent que possible. Cela signifie que vous devez supprimer votre clé API actuelle et en créer une nouvelle. Avec de nombreux systèmes, il est facile de créer 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 à une fréquence similaire.
Utiliser une liste blanche d'IP : lorsque vous créez une clé API, créez une liste d'adresses IP autorisées à utiliser la clé (liste blanche d'IP). Vous pouvez également spécifier une liste d'IP bloquées (liste noire d'IP). De cette façon, même si votre clé API est volée, elle ne sera pas accessible par une IP non reconnue.
Utilisez plusieurs clés API : avoir plusieurs clés et diviser les responsabilités entre elles réduit les risques de sécurité, car votre sécurité ne dépendra pas d'une seule clé avec plusieurs autorisations. Vous pouvez également définir différentes listes blanches IP pour chaque clé, réduisant ainsi davantage les risques de sécurité.
Stockez les clés API en toute sécurité : ne stockez pas vos clés dans des lieux publics, sur des ordinateurs partagés ou dans leur format de texte brut d'origine. Au lieu de cela, stockez chacun d’eux avec un cryptage ou un gestionnaire de secrets pour une meilleure sécurité, et veillez à ne pas les exposer accidentellement.
Ne partagez pas vos clés API. Le partage de clés API est similaire au partage de votre mot de passe. Ce faisant, vous accordez à l’autre partie les mêmes droits 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 l'a générée.
Si votre clé API est compromise, vous devez d'abord la désactiver pour éviter des dommages supplémentaires. En cas de perte financière, prenez une capture d'écran des informations clés liées à l'incident, contactez les unités compétentes et envoyez un rapport à la police. C’est le meilleur moyen d’augmenter vos chances de récupérer les fonds perdus.
résumé
Les clés API fournissent des fonctions d'authentification et d'autorisation de base, et les utilisateurs doivent gérer et protéger soigneusement leurs clés. Il existe de nombreuses étapes et aspects pour garantir une utilisation sûre des clés API. En général, vous devez considérer votre clé API comme un mot de passe pour votre compte.
En savoir plus:
Principes généraux de sécurité
5 escroqueries courantes liées aux crypto-monnaies et comment les éviter

