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?
2. Wie sollte ein API Key erzeugt werden?
3. Sollte ein API Key im Klartext gespeichert werden?
4. Was ist API Key Rotation?
5. Warum sollte man API Keys widerrufen können?
6. Was sind Scopes bei API Keys?
7. Wo sollte man API Keys im Client speichern?
8. Was ist ein Secret Management Tool?
9. Wie erkennt man ungewöhnliche Nutzung eines API Keys?
10. Was passiert bei einem API Key Leak?
11. Sollte man API Keys ein Ablaufdatum geben?
12. Was ist der Unterschied zwischen API Key und OAuth2 Token?
13. Was ist ein Key Prefix?
14. Was ist ein Hash im Kontext API Keys?
15. Warum sollten API Keys keine URLs sein?
Quellen
- https://owasp.org/API-Security/editions/2023/en/0x11-t10/
- https://cheatsheetseries.owasp.org/cheatsheets/Key_Management_Cheat_Sheet.html
- 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.