TL;DR

Ein API-Schlüssel (Application Programming Interface) ist ein eindeutiger Code, der von einer API verwendet wird, um die aufrufende Anwendung oder den aufrufenden Benutzer zu identifizieren. API-Schlüssel werden verwendet, um zu verfolgen und zu kontrollieren, wer eine API verwendet und wie sie sie 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 eines Satzes mehrerer Schlüssel vorliegen. Benutzer sollten Best Practices befolgen, um ihre allgemeine Sicherheit vor API-Schlüsseldiebstahl zu verbessern und die damit verbundenen Folgen einer Kompromittierung ihrer API-Schlüssel zu vermeiden.

API vs. API-Schlüssel

Um zu verstehen, was ein API-Schlüssel ist, müssen Sie zunächst verstehen, was eine API ist. Eine Anwendungsprogrammierschnittstelle oder API ist ein Software-Vermittler, der es zwei oder mehr Anwendungen ermöglicht, Informationen auszutauschen. Die API von CoinMarketCap ermöglicht es beispielsweise anderen Anwendungen, Kryptodaten wie Preis, Volumen und Marktkapitalisierung abzurufen und zu verwenden.

Ein API-Schlüssel gibt es in vielen verschiedenen Formen – er kann ein einzelner Schlüssel oder ein Satz mehrerer Schlüssel sein. Verschiedene Systeme verwenden diese Schlüssel zur Authentifizierung und Autorisierung einer Anwendung, ähnlich wie ein Benutzername und ein Passwort verwendet werden. Ein API-Schlüssel wird von einem API-Client verwendet, um eine Anwendung zu authentifizieren, die die API aufruft.

Wenn Binance Academy beispielsweise die CoinMarketCap-API verwenden möchte, wird von CoinMarketCap ein API-Schlüssel generiert und zur Authentifizierung der Identität von Binance Academy (dem API-Client) verwendet, der API-Zugriff anfordert. Wenn die Binance Academy auf die API von CoinMarketCap zugreift, sollte dieser API-Schlüssel zusammen mit der Anfrage an CoinMarketCap gesendet werden.

Dieser API-Schlüssel sollte nur von der Binance Academy verwendet werden und nicht mit anderen geteilt oder an sie gesendet werden. Durch die Weitergabe dieses API-Schlüssels kann ein Dritter als Binance Academy auf CoinMarketCap zugreifen, und alle Aktionen des Dritten werden so angezeigt, als kämen sie von der Binance Academy.

Der API-Schlüssel kann auch von der CoinMarketCap-API verwendet werden, 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 zu überwachen, z. B. die Art, den Datenverkehr und das Volumen der Anforderungen.

Was ist ein API-Schlüssel?

Ein API-Schlüssel wird verwendet, um zu steuern und zu verfolgen, wer eine API verwendet und wie sie sie verwendet. Der Begriff „API-Schlüssel“ kann für verschiedene Systeme unterschiedliche Bedeutungen haben. Einige Systeme haben einen einzigen Code, andere können jedoch mehrere Codes für einen einzigen „API-Schlüssel“ haben.

Daher ist ein „API-Schlüssel“ ein eindeutiger Code oder eine Reihe eindeutiger Codes, die von einer API zur Authentifizierung und Autorisierung des aufrufenden Benutzers oder der aufrufenden Anwendung verwendet werden. Einige Codes werden zur Authentifizierung verwendet, andere zum Erstellen kryptografischer Signaturen, um die Legitimität einer Anfrage nachzuweisen.

Diese Authentifizierungscodes werden üblicherweise 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 der Zugriff erlaubt ist. Die Funktion eines API-Schlüssels ähnelt der eines Kontobenutzernamens und -kennworts. Es kann auch mit anderen Sicherheitsfunktionen verbunden werden, um die allgemeine Sicherheit zu verbessern.

Jeder API-Schlüssel wird normalerweise vom API-Eigentümer für eine bestimmte Entität generiert (weitere Einzelheiten weiter unten) und jedes Mal, wenn ein Aufruf an einen API-Endpunkt erfolgt – der eine Benutzerauthentifizierung oder -autorisierung oder beides erfordert – wird der entsprechende 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, kann der Anfrage eine von einem anderen Schlüssel generierte digitale Signatur hinzugefügt werden. 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 einziger geheimer Schlüssel verwendet, um sowohl das Signieren von Daten als auch die Überprüfung einer Signatur durchzuführen. Bei symmetrischen Schlüsseln werden der API-Schlüssel und der geheime Schlüssel normalerweise vom API-Eigentümer generiert und derselbe geheime Schlüssel muss vom API-Dienst zur Signaturüberprüfung verwendet werden. Der Hauptvorteil der Verwendung eines einzelnen Schlüssels besteht darin, dass dies schneller ist und weniger Rechenleistung für die Signaturerstellung und -überprüfung erforderlich ist. Ein gutes Beispiel für einen symmetrischen Schlüssel ist HMAC.

Asymmetrische Schlüssel

Dabei werden zwei Schlüssel verwendet: ein privater Schlüssel und ein öffentlicher Schlüssel, die unterschiedlich, aber kryptografisch verknüpft sind. Der private Schlüssel wird zur Signaturerstellung und der öffentliche Schlüssel zur Signaturüberprüfung verwendet. Der API-Schlüssel wird vom API-Eigentümer generiert, das Paar aus privatem Schlüssel und öffentlichem Schlüssel wird jedoch vom Benutzer generiert. Nur der öffentliche Schlüssel muss vom API-Besitzer zur Signaturüberprüfung verwendet werden, sodass der private Schlüssel lokal und geheim bleiben kann.

Der Hauptvorteil der Verwendung asymmetrischer Schlüssel ist die höhere Sicherheit der Trennung von Signaturerstellungs- und Verifizierungsschlüsseln. Dadurch können externe Systeme Signaturen verifizieren, ohne Signaturen erzeugen zu können. Ein weiterer Vorteil besteht darin, dass einige asymmetrische Verschlüsselungssysteme das Hinzufügen eines Passworts zu privaten Schlüsseln unterstützen. Ein gutes Beispiel ist ein RSA-Schlüsselpaar.

Sind API-Schlüssel sicher?

Die Verantwortung für einen API-Schlüssel liegt beim Benutzer. API-Schlüssel ähneln Passwörtern und müssen 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 mit ihnen leistungsstarke Vorgänge auf Systemen ausgeführt werden können, beispielsweise das Anfordern persönlicher Informationen oder das Ausführen von Finanztransaktionen. Tatsächlich gab es Fälle, in denen Crawler erfolgreich Online-Codedatenbanken angegriffen haben, um API-Schlüssel zu stehlen.

Die Folgen eines API-Schlüsseldiebstahls können drastisch sein und zu erheblichen finanziellen Verlusten führen. Da einige API-Schlüssel außerdem nicht ablaufen, können sie nach dem Diebstahl von Angreifern unbegrenzt verwendet werden, 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 größter Bedeutung. Sie können diese Best-Practice-Richtlinien befolgen, wenn Sie API-Schlüssel verwenden, um deren Gesamtsicherheit zu verbessern:

  1. Rotieren Sie Ihre API-Schlüssel nach Möglichkeit häufig. Das bedeutet, dass Sie Ihren aktuellen API-Schlüssel löschen und einen neuen erstellen sollten. Bei 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 bis 90 Tage erforderlich ist, sollten Sie Ihre API-Schlüssel nach Möglichkeit in einer ähnlichen Häufigkeit wechseln.

  2. Verwenden Sie IP-Whitelisting: Wenn Sie einen API-Schlüssel erstellen, erstellen Sie eine Liste der IPs, die zur Verwendung des Schlüssels berechtigt sind (eine IP-Whitelist). Sie können auch eine Liste blockierter IPs (eine IP-Blacklist) angeben. Selbst wenn Ihr API-Schlüssel gestohlen wird, kann auf diese Weise immer noch nicht von einer unbekannten IP darauf zugegriffen werden.

  3. Verwenden Sie mehrere API-Schlüssel: Wenn Sie mehrere Schlüssel haben und die Verantwortlichkeiten auf diese aufteilen, verringert sich das Sicherheitsrisiko, da Ihre Sicherheit nicht von einem einzigen Schlüssel mit umfassenden Berechtigungen abhängt. Sie können außerdem für jeden Schlüssel unterschiedliche IP-Whitelists festlegen, was Ihr Sicherheitsrisiko weiter senkt.

  4. Speichern Sie API-Schlüssel sicher: Speichern Sie Ihre Schlüssel nicht an öffentlichen Orten, auf öffentlichen Computern oder in ihrem ursprünglichen Klartextformat. Speichern Sie sie stattdessen zur besseren Sicherheit mithilfe von Verschlüsselung oder einem geheimen Manager und achten Sie darauf, sie nicht versehentlich preiszugeben.

  5. 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.

Wenn Ihr API-Schlüssel kompromittiert ist, müssen Sie ihn zunächst deaktivieren, um weiteren Schaden zu verhindern. Wenn es zu einem finanziellen Schaden kommt, machen Sie Screenshots der wichtigsten Informationen im Zusammenhang mit dem Vorfall, kontaktieren Sie die entsprechenden Stellen und erstatten Sie Anzeige bei der Polizei. Dies ist der beste Weg, Ihre Chancen zu erhöhen, verlorene Gelder zurückzugewinnen.

Schlussgedanken

API-Schlüssel stellen zentrale Authentifizierungs- und Autorisierungsfunktionen bereit, und Benutzer müssen 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. Insgesamt sollte ein API-Schlüssel wie ein Passwort für Ihr Konto behandelt werden.

Weiterführende Literatur

  • Allgemeine Sicherheitsgrundsätze

  • 5 häufige Kryptowährungsbetrügereien und wie man sie vermeidet