Ein API-Schlüssel (Application Programming Interface) ist ein eindeutiger Code, der von einer API verwendet wird, um eine anfordernde Anwendung, Anwendung oder einen Benutzer zu identifizieren. API-Schlüssel werden verwendet, um zu verfolgen und zu steuern, wer eine API nutzt und wie sie diese nutzt. Sie dienen auch der Authentifizierung und Autorisierung von Anwendungen – ähnlich wie Systeme mit Benutzernamen und Passwörtern funktionieren. Ein API-Schlüssel kann ein einzelner Schlüssel oder ein Satz mehrerer Schlüssel sein. Benutzer sollten Best Practices befolgen, um die allgemeine Sicherheit vor API-Schlüsseldiebstahl zu verbessern und Konsequenzen im Zusammenhang mit der Kompromittierung ihrer API-Schlüssel zu vermeiden.
API vs. Chave-API
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. Beispielsweise ermöglicht die CoinMarketCap-API anderen Anwendungen, Kryptowährungsdaten wie Preis, Volumen und Marktkapitalisierung abzurufen und zu nutzen.
Ein API-Schlüssel kann viele verschiedene Formen annehmen – 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 Mechanismen, die einen Benutzernamen und ein Passwort verwenden. Ein API-Schlüssel wird von einem API-Client verwendet, um eine Anwendung zu authentifizieren, die die Anfrage stellt, d. h. die API aufruft.
Wenn Binance Academy beispielsweise die API von CoinMarketCap 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 Zugriff auf die API anfordert. Wenn die Binance Academy auf die CoinMarketCap-API zugreift, muss dieser API-Schlüssel zusammen mit der Anfrage an CoinMarketCap gesendet werden.
Dieser API-Schlüssel ist nur für die Verwendung durch die Binance Academy bestimmt und darf nicht an Dritte weitergegeben oder gesendet werden. Die Weitergabe dieses API-Schlüssels würde einem Dritten den Zugriff auf CoinMarketCap ermöglichen, der sich als Binance Academy ausgibt. Mit anderen Worten: Alle Handlungen Dritter würden so behandelt, als kämen sie von der Binance Academy.
Der API-Schlüssel kann auch von der CoinMarketCap-API verwendet werden, um zu bestätigen, dass die Anwendung berechtigt ist, auf die angeforderte Ressource zuzugreifen. Darüber hinaus verwenden API-Besitzer API-Schlüssel, um API-Aktivitäten und Informationen wie Anforderungstyp, Datenverkehr und Volumen zu überwachen.
Was ist ein API-Schlüssel?
Der API-Schlüssel wird verwendet, um zu steuern und zu verfolgen, wer eine bestimmte API verwendet und wie sie verwendet wird. Der Begriff „API-Schlüssel“ kann für verschiedene Systeme unterschiedliche Bedeutungen haben. Einige Systeme verfügen über einen einzelnen Code, andere verfügen möglicherweise über mehrere Codes für einen einzelnen „API-Schlüssel“.
Daher ist ein „API-Schlüssel“ ein eindeutiger Code oder eine Reihe eindeutiger Codes, die von einer API zur Authentifizierung und Autorisierung des anfordernden Benutzers oder der anfordernden Anwendung verwendet werden. Einige Codes dienen der Authentifizierung, andere dienen der Erstellung kryptografischer Signaturen und dem Nachweis der Legitimität einer Anfrage.
Diese Authentifizierungscodes werden allgemein 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“. Der Authentifizierungsprozess zielt darauf ab, 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 zugegriffen werden darf. Die Funktion eines API-Schlüssels ähnelt der eines Benutzernamens und Passworts; Sie können es auch mit anderen Sicherheitsfunktionen verbinden, um die allgemeine Sicherheit zu verbessern.
Normalerweise wird jeder API-Schlüssel für eine bestimmte Entität vom API-Eigentümer generiert (weitere Details weiter unten) und jedes Mal, wenn eine Anfrage an einen API-Endpunkt gestellt wird – was eine Benutzerauthentifizierung oder -autorisierung oder beides erfordert – wird der entsprechende Schlüssel verwendet.
Kryptografische Signaturen
Einige API-Schlüssel verwenden digitale (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 Verschlüsselung 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 zum Signieren und Überprüfen einer Signatur verwendet. 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. Die Hauptvorteile der Verwendung eines eindeutigen Schlüssels liegen in der Geschwindigkeit des Prozesses und der Notwendigkeit einer geringeren Rechenleistung zur Generierung und Überprüfung der Signatur. 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 Generierung der Signatur und der öffentliche Schlüssel zur Überprüfung der Signatur verwendet. Der API-Schlüssel wird vom API-Eigentümer generiert, der private Schlüssel und der öffentliche Schlüssel werden jedoch vom Benutzer generiert. Für die Signaturüberprüfung muss der API-Eigentümer nur den öffentlichen Schlüssel verwenden. Daher kann der private Schlüssel lokal und geheim bleiben.
Der Hauptvorteil der Verwendung asymmetrischer Schlüssel ist die größere Sicherheit, die durch die Trennung von Signaturerstellungs- und Verifizierungsschlüsseln geboten wird. Dies ermöglicht es externen Systemen, Signaturen zu überprüfen, auch ohne die Möglichkeit zu haben, diese zu generieren. Ein weiterer Vorteil besteht darin, dass einige asymmetrische Verschlüsselungssysteme das Hinzufügen eines Passworts zu den 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 wird daher nicht empfohlen, da sie 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 es Hackern gelang, Online-Codedatenbanken anzugreifen und 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 kein Ablaufdatum haben, können sie nach dem Diebstahl von Angreifern unbegrenzt verwendet werden, bis die entsprechenden Schlüssel widerrufen werden.
Best Practices bei der Verwendung von API-Schlüsseln
Aufgrund des Zugriffs auf sensible Daten und der allgemeinen Verwundbarkeit von API-Schlüsseln ist die sichere Verwendung dieser Schlüssel von größter Bedeutung. Bei der Verwendung von API-Schlüsseln können Sie diese Best Practices befolgen und Ihre Sicherheit verbessern:
Wenn möglich, ändern Sie Ihre API-Schlüssel häufig. Dazu müssen Sie Ihren aktuellen API-Schlüssel löschen und einen neuen erstellen. Sie können API-Schlüssel problemlos systemübergreifend generieren und löschen. So wie Sie bei einigen Systemen Ihr Passwort alle 30 bis 90 Tage ändern müssen, sollten Sie Ihre API-Schlüssel in ähnlicher Häufigkeit ändern.
Verwenden Sie eine IP-Whitelist: Definieren Sie beim Erstellen eines API-Schlüssels eine Liste von IPs, die zur Verwendung des Schlüssels berechtigt sind (Whitelist für IP-Adressen). Sie können auch eine Liste blockierter IPs definieren (Blacklist für IP-Adressen). Selbst wenn Ihr API-Schlüssel gestohlen wird, kann auf diese Weise nicht von einer unbekannten IP-Adresse darauf zugegriffen werden.
Verwenden Sie mehrere API-Schlüssel: Durch die Verwendung mehrerer Schlüssel und die Aufteilung der Verantwortlichkeiten zwischen ihnen werden Risiken verringert, da Ihre Sicherheit nicht von einem einzigen Schlüssel mit vielen Berechtigungen abhängt. Sie können außerdem für jeden Schlüssel unterschiedliche Whitelists für IP-Adressen definieren und so die Risiken weiter reduzieren.
Speichern Sie API-Schlüssel sicher: Speichern Sie Ihre Schlüssel nicht an öffentlichen Orten, auf öffentlichen Computern oder in ihrem ursprünglichen Klartextformat. Um die Sicherheit zu erhöhen, speichern Sie sie stattdessen mit Verschlüsselung oder einem Manager und achten Sie darauf, sie nicht versehentlich offenzulegen.
Geben Sie Ihre API-Schlüssel nicht weiter. Das Teilen Ihres API-Schlüssels ist wie das Teilen Ihres Passworts. Dadurch gewähren Sie der anderen Person die gleichen Authentifizierungs- und Autorisierungsrechte wie Sie. Ihr API-Schlüssel kann gestohlen und zum Hacken Ihres Kontos verwendet werden. Ein API-Schlüssel sollte nur zwischen Ihnen und dem System verwendet werden, das ihn generiert.
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 auf die Wiedererlangung verlorener Gelder zu erhöhen.
Schlussbetrachtungen
API-Schlüssel bieten grundlegende Authentifizierungs- und Autorisierungsfunktionen, und Benutzer müssen ihre Schlüssel sorgfältig verwalten und schützen. Es gibt viele Ebenen und unterschiedliche Aspekte, um die sichere Verwendung von API-Schlüsseln zu gewährleisten. Im Allgemeinen sollte ein API-Schlüssel wie ein Passwort behandelt werden.
Weiterführende Literatur
Allgemeine Sicherheitsgrundsätze
5 häufige Kryptowährungsbetrügereien und wie man sie vermeidet
