Skip to content
IRC-Coding IRC-Coding
API Keys Schlüsselverwaltung API Sicherheit Key Rotation Secret Management Least Privilege

API Schlüsselverwaltung: Sichere Erzeugung, Speicherung und Rotation

Lerne API Schlüsselverwaltung: Erzeugung, Speicherung, Rotation, Widerruf, Scopes und Best Practices für den sicheren Umgang mit API Keys.

S

schutzgeist

2 min read
API Schlüsselverwaltung: Sichere Erzeugung, Speicherung und Rotation

API Schlüsselverwaltung

API Keys sind einfache Zugangsberechtigungen, die aber nur dann sicher sind, wenn sie korrekt erzeugt, gespeichert, verwendet und regelmäßig erneuert werden.

Kompakte Beschreibung

API Schlüsselverwaltung umfasst den gesamten Lebenszyklus von API Keys, von der Erzeugung über die Speicherung, Nutzung, Rotation bis hin zum Widerruf. API Keys sind geheime Zeichenfolgen, die Clients zur Identifikation und teilweise Autorisierung bei einer API verwenden. Sie sind einfach zu implementieren, bergen aber Risiken, wenn sie offengelegt, kopiert oder lange unverändert bleiben. Eine gute Schlüsselverwaltung erzeugt starke, eindeutige Keys, speichert sie nur als Hash, überträgt sie über TLS, begrenzt deren Gültigkeit und Rechte, ermöglicht eine einfache Rotation und bietet einen sofortigen Widerruf. Zusätzlich sollten Keys mit einem Mindestmaß an Rechten ausgestattet werden und ihre Nutzung durch Logging und Monitoring überwacht werden.

Wichtige Komponenten

API Key Erzeugung

API Keys sollten kryptografisch sicher zufällig erzeugt werden. Sie müssen lang und eindeutig genug sein, um Brute-Force-Angriffe zu verhindern. Eine Länge von mindestens 32 Bytes und die Verwendung von Zeichen wie Buchstaben, Zahlen und Sonderzeichen erhöhen die Sicherheit. Keys sollten nicht vorhersehbar sein oder auf Benutzerdaten basieren.

API Key Speicherung

Serverseitig sollten API Keys niemals im Klartext gespeichert werden. Speichere stattdessen einen Hash des Keys, beispielsweise mit SHA-256 oder bcrypt, und eine Referenz, um den Key dem Nutzer zuzuordnen. Der Klartext-Key wird dem Nutzer nur einmalig bei der Erzeugung angezeigt. Clientseitig sollten Keys nicht in Repositories, Logs oder öffentlich zugänglichen Konfigurationen landen.

Übertragung und Transport

API Keys müssen immer über HTTPS übertragen werden. Vermeide die Übertragung in URLs, da diese in Browser-History, Logs und Referrer-Headern landen können. Der Header Authorization oder ein dedizierter Header wie X-API-Key ist besser geeignet.

Scopes und Berechtigungen

API Keys sollten mit minimalen Berechtigungen versehen werden. Ein Key für reinen Lesezugriff darf keine Schreiboperationen ermöglichen. Scopes wie read:users oder write:orders helfen, die Rechte einzugrenzen und das Risiko bei einer Kompromittierung zu reduzieren.

Rotation von API Keys

Rotation bedeutet, dass regelmäßig oder bei Verdacht neue Keys ausgestellt und alte ungültig gemacht werden. Unterstützung für mehrere aktive Keys pro Client erleichtert die Rotation, weil der alte Key noch funktioniert, während der neue verteilt wird. Nach einer Übergangsfrist wird der alte Key deaktiviert.

Widerruf und Deaktivierung

API Keys müssen jederzeit widerrufbar sein, ohne dass der gesamte Service neu gestartet wird. Ein deaktivierter Key wird bei der nächsten Anfrage abgelehnt. Dashboards oder APIs sollten es ermöglichen, Keys schnell zu sperren, wenn sie offengelegt wurden.

Logging und Monitoring

Die Nutzung von API Keys sollte geloggt werden. Wichtige Informationen sind Zeitstempel, IP-Adresse, verwendeter Key, Endpunkt und Ergebnis. Monitoring erkennt ungewöhnliche Nutzungsmuster, wie plötzliche Traffic-Spitzen, geografische Anomalien oder Zugriff auf ungewöhnliche Endpunkte.

Secret Management

Für Anwendungen, die API Keys nutzen, sollten Secret Management Lösungen wie HashiCorp Vault, AWS Secrets Manager oder Azure Key Vault eingesetzt werden. Diese Tools speichern Geheimnisse verschlüsselt, ermöglichen Rotation und verhindern, dass Keys in Code oder Konfigurationen landen.

Kommunikation von Lecks

Wenn ein API Key offengelegt wurde, muss er sofort widerrufen werden. Zusätzlich sollte geprüft werden, ob missbräuchliche Aktionen stattgefunden haben. Kunden und interne Teams müssen informiert und der Key ersetzt werden.

Dokumentation und Richtlinien

Klare Richtlinien für die Erzeugung, Nutzung, Rotation und den Umgang mit API Keys sind wichtig. Entwickler und Kunden sollten wissen, wie sie Keys sicher speichern, wie sie Lecks melden und welche Konsequenzen ein Verstoß hat.

Praxisbeispiel

Ein SaaS-Anbieter stellt API Keys für Kunden bereit, die auf die Bestell-API zugreifen möchten.

Erzeugung eines neuen Keys:

POST /api/v1/api-keys
Authorization: Bearer USER_TOKEN
Content-Type: application/json

{
  "name": "Integration Warehouse",
  "scopes": ["read:orders", "write:shipments"]
}

Antwort:

HTTP/1.1 201 Created
Content-Type: application/json

{
  "keyId": "key-abc-123",
  "key": "sk_live_51H8x...9zA2",
  "scopes": ["read:orders", "write:shipments"],
  "createdAt": "2026-07-01T10:00:00Z",
  "expiresAt": "2027-07-01T10:00:00Z"
}

Der Klartext-Key wird nur einmal angezeigt. Serverseitig wird nur ein Hash des Keys gespeichert. Der Kunde nutzt den Key:

GET /api/v1/orders
Authorization: Bearer sk_live_51H8x...9zA2

Wenn der Key offengelegt wird, kann der Kunde ihn sofort im Dashboard widerrufen und einen neuen Key erzeugen. Die alte Berechtigung ist sofort ungültig.

FAQ: API Schlüsselverwaltung

1. Was ist ein API Key?

Ein API Key ist eine geheime Zeichenfolge, die ein Client zur Identifikation und teilweise Autorisierung bei einer API verwendet. API Keys sind einfach, aber weniger sicher als Token-basierte Verfahren.

2. Wie sollte ein API Key erzeugt werden?

Ein API Key sollte kryptografisch sicher zufällig erzeugt werden, lang und eindeutig sein und nicht auf vorhersehbaren Mustern basieren. Mindestens 32 Bytes sind empfohlen.

3. Sollte ein API Key im Klartext gespeichert werden?

Nein, serverseitig sollte nur ein Hash des Keys gespeichert werden. Der Klartext-Key wird dem Nutzer nur einmalig bei der Erzeugung angezeigt.

4. Was ist API Key Rotation?

Rotation ist der Austausch eines API Keys durch einen neuen. Sie wird regelmäßig oder bei Verdacht auf Kompromittierung durchgeführt, um Sicherheit zu gewährleisten.

5. Warum sollte man API Keys widerrufen können?

Widerruf ist wichtig, wenn ein Key offengelegt oder gestohlen wurde. Ein sofortiger Widerruf verhindert Missbrauch, ohne dass der gesamte Dienst neu gestartet werden muss.

6. Was sind Scopes bei API Keys?

Scopes begrenzen die Berechtigungen eines API Keys. Beispielsweise kann ein Key nur Lesezugriff auf Bestellungen erlauben, aber keinen Schreibzugriff. Scopes reduzieren das Risiko bei Kompromittierung.

7. Wo sollte man API Keys im Client speichern?

API Keys sollten niemals in öffentlichen Repositories, Client-seitigem Code oder Browser-LocalStorage landen. Serverseitige Anwendungen sollten Secret Management Tools nutzen.

8. Was ist ein Secret Management Tool?

Ein Secret Management Tool speichert Geheimnisse wie API Keys verschlüsselt und verwaltet deren Zugriff, Rotation und Überwachung. Beispiele sind HashiCorp Vault, AWS Secrets Manager und Azure Key Vault.

9. Wie erkennt man ungewöhnliche Nutzung eines API Keys?

Ungewöhnliche Nutzung erkennst Du durch Logging und Monitoring. Auffällig sind plötzliche Traffic-Spitzen, geografische Anomalien, Zugriff außerhalb der üblichen Zeiten oder ungewöhnliche Endpunkte.

10. Was passiert bei einem API Key Leak?

Bei einem Leak sollte der Key sofort widerrufen, ein neuer Key erzeugt und die Kunden informiert werden. Zusätzlich sollte geprüft werden, ob missbräuchliche Aktionen stattgefunden haben.

11. Sollte man API Keys ein Ablaufdatum geben?

Ja, Ablaufdaten erzwingen regelmäßige Rotation und reduzieren das Risiko lange vergessener oder ungenutzter Keys. Der Nutzer kann den Key vor Ablauf erneuern.

12. Was ist der Unterschied zwischen API Key und OAuth2 Token?

Ein API Key ist einfach und meist langfristig gültig. Ein OAuth2 Token ist kurzlebig, wird von einem Authorization Server ausgestellt und ermöglicht feingranulare Berechtigungen und nutzerbasierte Zugriffe.

13. Was ist ein Key Prefix?

Ein Key Prefix ist ein erkennbarer Anfang eines API Keys, wie sk_live_ oder sk_test_. Er hilft, Keys visuell zu unterscheiden und versehentliche Verwendung in der falschen Umgebung zu vermeiden.

14. Was ist ein Hash im Kontext API Keys?

Ein Hash ist eine Einwegfunktion, die den API Key in einen nicht umkehrbaren Wert umwandelt. Der Server vergleicht den Hash des eingehenden Keys mit dem gespeicherten Hash, ohne den Key selbst speichern zu müssen.

15. Warum sollten API Keys keine URLs sein?

API Keys in URLs können in Server-Logs, Browser-History und Referrer-Headern auftauchen. Besser ist die Übertragung im Authorization Header oder einem dedizierten Header über HTTPS.

Quellen

  1. https://owasp.org/API-Security/editions/2023/en/0x11-t10/
  2. https://cheatsheetseries.owasp.org/cheatsheets/Key_Management_Cheat_Sheet.html
  3. https://www.vaultproject.io/

Buchempfehlungen zur API-Sicherheit

Wenn Du Dich weiter mit API Schlüsselverwaltung, Secret Management und API-Sicherheit beschäftigen möchtest, empfehlen wir Dir die folgenden Bücher:

Keine Bücher für Kategorie "security" gefunden.

Zurück zum Blog
Share:

Ähnliche Beiträge