Ein API-Schlüssel (Application Programming Interface) ist ein eindeutiger Code, den eine API verwendet, um die Anwendung oder den Benutzer zu identifizieren, der sie aufruft. API-Schlüssel werden verwendet, um zu verfolgen und zu kontrollieren, wer eine API verwendet und wie sie diese verwenden, sowie um Anwendungen zu authentifizieren und zu autorisieren, ähnlich wie Benutzernamen und Passwörter funktionieren. Ein API-Schlüssel kann in Form eines einzelnen Schlüssels oder einer Gruppe mehrerer Schlüssel vorliegen. Benutzer sollten Best Practices befolgen, um ihre allgemeine Sicherheit vor API-Schlüsseldiebstahl zu verbessern und die Konsequenzen zu vermeiden, die mit der Kompromittierung von API-Schlüsseln verbunden sind.

API im Vergleich zur Clave-API

Um zu verstehen, was ein API-Schlüssel ist, müssen wir zunächst wissen, was eine API ist. Eine Anwendungsprogrammierschnittstelle oder API ist eine Middleware, die den Austausch von Informationen zwischen zwei oder mehr Anwendungen ermöglicht. Beispielsweise ermöglicht die CoinMarketCap-API anderen Anwendungen, Daten über Kryptowährungen wie Preis, Volumen und Marktkapitalisierung abzurufen und zu nutzen.

Andererseits kann ein API-Schlüssel verschiedene Formen annehmen. Es kann sich um einen einzelnen Schlüssel oder um eine Gruppe mehrerer Schlüssel handeln. Diese Schlüssel werden von verschiedenen Systemen zur Authentifizierung und Autorisierung einer Anwendung verwendet, ähnlich wie ein Benutzername und ein Passwort verwendet werden. Ein API-Client verwendet diese Art von Schlüsseln, um eine Anwendung beim Aufruf der API zu authentifizieren.

Wenn Binance Academy beispielsweise die API von CoinMarketCap verwenden möchte, generiert CoinMarketCap einen API-Schlüssel und verwendet ihn zur Authentifizierung der Identität von Binance Academy (dem API-Client), der Zugriff auf die API anfordert. Wenn die Binance Academy auf die CoinMarketCap-API zugreift, müssen Sie den API-Schlüssel zusammen mit der Anfrage an CMC senden.

Dieser API-Schlüssel sollte nur von der Binance Academy verwendet werden und nicht an Dritte weitergegeben oder gesendet werden. Die Weitergabe dieses API-Schlüssels würde es einem Dritten ermöglichen, als Binance Academy auf CoinMarketCap zuzugreifen, sodass jede Aktion des Dritten so aussehen würde, als käme sie von der Binance Academy.

Die CoinMarketCap-API kann diesen API-Schlüssel auch verwenden, um zu bestätigen, ob die Anwendung berechtigt ist, auf die angeforderte Ressource zuzugreifen. Darüber hinaus verwenden API-Besitzer API-Schlüssel, um API-Aktivitäten wie Anforderungstypen, Datenverkehr und Volumen zu überwachen.

Was ist ein API-Schlüssel?

Ein API-Schlüssel wird verwendet, um zu überwachen und zu verfolgen, wer eine API nutzt und wie sie diese nutzt. Der Begriff „API-Schlüssel“ kann sich auf verschiedene Dinge für verschiedene Systeme beziehen. Einige Systeme verfügen möglicherweise über einen einzelnen Code, während andere möglicherweise mehrere Codes für einen einzelnen „API-Schlüssel“ haben.

Daher ist ein „API-Schlüssel“ ein eindeutiger Code oder eine Gruppe von Codes, die eine API verwendet, um den Benutzer oder die Anwendung, die sie aufruft, zu authentifizieren und zu autorisieren. Einige Codes werden zur Authentifizierung verwendet, andere zur Erstellung kryptografischer Signaturen, die die Legitimität einer Anfrage beweisen.

Diese Authentifizierungscodes werden zusammenfassend als „API-Schlüssel“ bezeichnet, während die für kryptografische Signaturen verwendeten Codes unterschiedliche Namen haben, beispielsweise „geheimer Schlüssel“, „öffentlicher Schlüssel“ oder „privater Schlüssel“. Bei der Authentifizierung geht es darum, die beteiligten Entitäten zu identifizieren und zu bestätigen, dass sie die sind, für die sie sich ausgeben.

Die Autorisierung hingegen gibt an, auf welche API-Dienste Zugriff gewährt wird. Die Funktion eines API-Schlüssels ähnelt der eines Kontobenutzernamens und -kennworts. Es kann auch mit anderen Sicherheitsfunktionen verbunden werden, um die Gesamtsicherheit zu verbessern.

Der API-Eigentümer generiert normalerweise einen API-Schlüssel für eine bestimmte Entität (weitere Details weiter unten) und jedes Mal, wenn ein Aufruf an einen API-Endpunkt erfolgt (der eine Benutzerauthentifizierung, Autorisierung oder beides erfordert), wird der betreffende Schlüssel verwendet.

Kryptografische Signaturen

Einige API-Schlüssel verwenden kryptografische Signaturen als zusätzliche Überprüfungsebene. Wenn ein Benutzer bestimmte Daten an eine API senden möchte, ist es möglich, der Anfrage eine von einem anderen Schlüssel generierte digitale Signatur hinzuzufügen. Mithilfe der Kryptografie kann der API-Besitzer überprüfen, ob diese digitale Signatur mit den gesendeten Daten übereinstimmt.

Symmetrische und asymmetrische Signaturen

Über eine API geteilte Daten können mit kryptografischen Schlüsseln signiert werden, die in die folgenden Kategorien fallen:

Symmetrische Schlüssel

Dabei wird ein geheimer Schlüssel verwendet, um sowohl die Datensignierung als auch die Signaturüberprüfung durchzuführen. Bei symmetrischen Schlüsseln generiert der API-Eigentümer häufig den API-Schlüssel und den geheimen Schlüssel, und der API-Dienst muss denselben geheimen Schlüssel für die Signaturüberprüfung verwenden. Der Hauptvorteil der Verwendung eines einzelnen Schlüssels besteht darin, dass dies schneller geht und weniger Rechenleistung für die Signaturerstellung und -überprüfung erforderlich ist. Ein gutes Beispiel für einen symmetrischen Schlüssel ist HMAC (Hashed-Based Message Authentication Code).

Asymmetrische Schlüssel

Dabei werden zwei Schlüssel verwendet: ein unterschiedlicher privater Schlüssel und ein öffentlicher Schlüssel, die jedoch kryptografisch verknüpft sind. Der private Schlüssel dient zur Generierung der Signatur und der öffentliche Schlüssel zur Verifizierung. Der API-Eigentümer generiert den API-Schlüssel, aber es ist der Benutzer, der das Paar aus öffentlichem Schlüssel und privatem Schlüssel generiert. Der API-Eigentümer darf zur Überprüfung der Signatur nur den öffentlichen Schlüssel verwenden, damit der private Schlüssel an Ort und Stelle und geheim bleibt.

Der Hauptvorteil der Verwendung asymmetrischer Schlüssel besteht in der höheren Sicherheit durch die Trennung der Signaturerstellungs- und Verifizierungsschlüssel. Dies ermöglicht es externen Systemen, Signaturen zu überprüfen, ohne diese generieren zu können. Ein weiterer Vorteil besteht darin, dass einige asymmetrische Verschlüsselungssysteme das Hinzufügen eines Passworts zu privaten Schlüsseln ermöglichen. Ein gutes Beispiel ist ein RSA-Schlüsselpaar (Rivest-Shamir-Adelman, die Initialen sind die Initialen der Nachnamen der Ersteller).

Sind API-Schlüssel sicher?

Die Verantwortung für einen API-Schlüssel liegt beim Benutzer. API-Schlüssel ähneln Passwörtern und sollten mit der gleichen Sorgfalt behandelt werden. Die Weitergabe eines API-Schlüssels ähnelt der Weitergabe eines Passworts und sollte daher nicht erfolgen, da dies das Konto des Benutzers gefährden würde.

API-Schlüssel sind häufig das Ziel von Cyberangriffen, da sie zur Durchführung wichtiger Vorgänge innerhalb eines Systems verwendet werden können, beispielsweise zur Abfrage persönlicher Informationen oder zur Ausführung von Finanztransaktionen. Tatsächlich gab es Fälle, in denen Crawler erfolgreich Datenbanken mit Online-Code angegriffen haben, um API-Schlüssel zu stehlen.

Die Folgen eines API-Schlüsseldiebstahls können verheerend sein und zu erheblichen finanziellen Verlusten führen. Da einige API-Schlüssel außerdem nicht ablaufen, können Angreifer sie unbegrenzt verwenden, bis die Schlüssel selbst widerrufen werden.

Best Practices bei der Verwendung von API-Schlüsseln

Aufgrund ihres Zugriffs auf sensible Daten und ihrer allgemeinen Anfälligkeit ist die sichere Verwendung von API-Schlüsseln von entscheidender Bedeutung. Sie können diese Best Practices bei der Verwendung von API-Schlüsseln befolgen, um deren Gesamtsicherheit zu verbessern:

  1. Wenn möglich, ändern Sie Ihre API-Schlüssel häufig. Das bedeutet, dass Sie Ihren aktuellen API-Schlüssel löschen und einen neuen erstellen müssen. Auf mehreren Systemen ist es einfach, API-Schlüssel zu generieren und zu löschen. Ähnlich wie bei einigen Systemen eine Änderung Ihres Passworts alle 30 oder 90 Tage erforderlich ist, sollten Sie Ihre API-Schlüssel nach Möglichkeit so häufig ändern.

  2. Verwenden Sie eine IP-Whitelist: Wenn Sie einen API-Schlüssel erstellen, erstellen Sie eine Liste der IPs, die den Schlüssel verwenden dürfen (eine IP-Whitelist). Erstellen Sie außerdem eine Liste blockierter IPs (eine IP-Blacklist). Selbst wenn Ihr API-Schlüssel gestohlen wird, ist es nicht möglich, ihn mit einer unbekannten IP zu verwenden.

  3. Verwenden Sie mehrere API-Schlüssel: Durch die Verwendung mehrerer Schlüssel und die Aufteilung der Verantwortlichkeiten zwischen ihnen wird das Sicherheitsrisiko verringert, da Ihre Sicherheit nicht von einem einzigen Schlüssel mit zahlreichen Berechtigungen abhängt. Sie können außerdem für jeden Schlüssel unterschiedliche IP-Whitelists festlegen und so Ihr Sicherheitsrisiko weiter reduzieren.

  4. Speichern Sie API-Schlüssel sicher: Speichern Sie Ihre Schlüssel nicht in öffentlichen Umgebungen, auf öffentlichen Computern oder in ihrem ursprünglichen Klartextformat. Speichern Sie stattdessen jede einzelne Datei durch Verschlüsselung oder einen Secret Manager, um die Sicherheit zu erhöhen, und achten Sie darauf, sie nicht versehentlich preiszugeben.

  5. Geben Sie Ihre API-Schlüssel nicht weiter. Das Teilen Ihrer API-Schlüssel ähnelt dem Teilen Ihres Passworts. Auf diese Weise stellen Sie einem Dritten die gleichen Authentifizierungs- und Autorisierungsrechte zur Verfügung, über die Sie verfügen. Wenn Ihre Passwörter kompromittiert sind, können sie zum Hacken Ihres Kontos verwendet werden. Ein API-Schlüssel sollte nur zwischen dem System, das ihn generiert hat, und dem Eigentümer des Schlüssels verwendet werden.

Wenn Ihr API-Schlüssel kompromittiert ist, sollten Sie ihn zunächst deaktivieren, um weiteren Schaden zu verhindern. Wenn ein finanzieller Schaden entsteht, machen Sie Screenshots der wichtigsten Informationen im Zusammenhang mit dem Vorfall, wenden Sie sich an die zuständigen Stellen und erstatten Sie Anzeige bei der Polizei. Dies ist der beste Weg, Ihre Chancen auf die Wiedererlangung verlorener Gelder zu erhöhen.

Schlussfolgerungen

API-Schlüssel stellen wesentliche Authentifizierungs- und Autorisierungsfunktionen bereit, daher sollten Benutzer ihre Schlüssel sorgfältig verwalten und schützen. Es gibt viele Ebenen und Aspekte, um die sichere Verwendung von API-Schlüsseln zu gewährleisten. Aber im Allgemeinen sollte ein API-Schlüssel wie ein Passwort für den Zugriff auf Ihr Konto behandelt werden.

Weiterführende Literatur

  • Allgemeine Sicherheitsgrundsätze

  • 5 häufige Betrügereien mit Kryptowährungen und wie man sie vermeidet