Web -API -Sicherheit
Web -API -Sicherheit mit sich bringen Authentifizierung Programme oder Benutzer, die sich auf eine anrufen Web -API.
Zusammen mit der einfachen API -Integrationen sind die Schwierigkeiten, angemessen zu gewährleisten Authentifizierung (Authn) und Genehmigung (Authz). In einer Vielzahl von mehreren Umgebungen können Sicherheitskontrollen, die auf ordnungsgemäßem Authn und Authz basieren, sicherstellen, dass der API -Zugang auf diejenigen beschränkt ist, die es benötigen (und Anspruch haben). Mit geeigneten Authn -Schemata können die Hersteller (APIs oder Dienste) Verbraucher (Kunden oder Anrufprogramme) ordnungsgemäß identifizieren und ihre Zugriffsstufe (EHRS) bewerten. Mit anderen Worten, darf a Verbraucher Rufen Sie eine bestimmte Methode (Geschäftslogik) an, die auf dem basiert Referenzen vorgestellt?
"Fehlern der Schnittstellendesign sind weit verbreitet, aus der Welt von Krypto Prozessoren durch sonneneingebettete Systeme direkt durch Antiviren Software und das Betriebssystem selbst. "[1]
Authentifizierung und Autorisierung
Zu den häufigsten Methoden zur Authentifizierung und Autorisierung gehören.
- Statische Zeichenfolgen: Dies sind wie Passwörter, die von APIs an die Verbraucher bereitgestellt werden.
- Dynamische Token: Dies sind zeitbasierte Token, die von Caller von einem Authentifizierungsdienst erhalten wurden.
- Benutzerdelegierte Token: Dies sind Token wie OAuth[2] die auf der Grundlage der Benutzerauthentifizierung erteilt werden.
- Politik & Attributbasierte Zugriffskontrolle: Richtlinien verwenden Attribute, um zu definieren, wie APIs mit Standards wie z. B. aufgerufen werden können Alfa oder Xacml.
Die oben genannten Methoden bieten ein unterschiedliches Sicherheitsniveau und eine einfache Integration. Oft bietet die einfachste Integrationsmethode auch das schwächste Sicherheitsmodell.
Statische Saiten

In der statischen Stringsmethode einbettet der API -Anrufer oder Client eine Zeichenfolge als Token in die Anfrage. Diese Methode wird oft als bezeichnet als grundlegende Authentifizierung. "Aus Sicherheit der Sicht ist die grundlegende Authentifizierung nicht sehr zufriedenstellend. Es bedeutet, dass das Kennwort des Benutzers für jede einzelne aufgerufene Seite über das Netzwerk in Löschen gesendet wird (es sei denn, ein sicheres Protokoll auf niedrigerer Ebene wie SSL, wird verwendet, um alle Transaktionen zu verschlüsseln). Somit ist der Benutzer für jeden sehr anfällig Paketschnüffler Im Netz."[3]
Dynamische Token
Wenn ein API wird durch ein dynamisches Token geschützt, es gibt eine zeitbasierte Zeit, die basierend ist Nonce in das Token eingefügt. Das Token hat eine Zeit zum Leben (TTL), wonach der Kunde ein neues Token erwerben muss. Die API -Methode hat eine Zeitprüfung Algorithmusund wenn das Token abgelaufen ist, ist die Anfrage verboten. "Ein Beispiel für ein solches Token ist JSON Web Token. Der Anspruch "Expirationszeit) identifiziert die Ablaufzeit für oder nach dem die JWT nicht zur Verarbeitung akzeptiert werden darf."[4]
Benutzerdelegiertes Token
Diese Art von Token wird in dreibeinigen Systemen verwendet, in denen eine Anwendung muss im Namen eines Benutzers auf eine API zugreifen. Anstatt die Benutzer -ID und ein Passwort für die Anwendung anzugeben, gewährt ein Benutzer ein Token, das die Benutzererlaubnis für die Anwendung zusammenfasst, die API aufzurufen.
Das OAuth 2.0-Autorisierungsrahmen ermöglicht eine Anwendung von Drittanbietern, einen begrenzten Zugriff auf eine zu erhalten Http Service, entweder im Namen eines Ressourcenbesitzers durch orchestrierte Zulassungsinteraktion zwischen dem Ressourcenbesitzer und dem HTTP-Dienst oder durch die Ermöglichung des Antrags von Drittanbietern, in eigenem Namen Zugriff zu erhalten.[5]
Feinkörnige Genehmigung für APIs
Attributbasierte Zugriffskontrolle
In diesem Ansatz gibt es einen politischen Durchsetzungspunkt entweder innerhalb der API selbst, im API -Framework (als Interceptor- oder Nachrichtenhandler) oder als API -Gateway (z. WSO2, Kong, oder ähnlich) Das fängt den Aufruf an die API und / oder die Antwort zurück von der API ab. Es konvertiert es in eine Autorisierungsanforderung (typischerweise in XACML), die es an einen Richtlinienentscheidungspunkt (PDP) sendet, z. Authzforce oder Axiomatik. Der Entscheidungspunkt für Richtlinien ist mit Richtlinien konfiguriert, die eine dynamische Zugriffskontrolle implementieren, die eine beliebige Anzahl von Benutzer-, Ressourcen-, Aktions- und Kontextattributen verwenden kann, um zu definieren, welcher Zugriff zulässig oder abgelenkt wird. Richtlinien können um:
- Die Ressource (z. B. ein Bankkonto)
- Der Benutzer (z. B. ein Kunde)
- Der Kontext (z. B. Tageszeit)
- eine Beziehung (z. B. der Kunde, dem das Konto gehört).
Richtlinien werden in Alfa oder XACML ausgedrückt.
Verweise
- ^ "API -Angriffe" (PDF).
- ^ "OAuth 2.0 - OAuth". oAuth.net. Abgerufen 2015-10-10.
- ^ "Eine Anleitung zur Webauthentifizierungsalternativen: Teil 2". unixpapa.com. Abgerufen 2015-10-10.
- ^ John, Bradley; Nat, Sakimura; Michael, Jones. "JSON Web Token (JWT)". Tools.ietf.org. Abgerufen 2015-10-10.
- ^ Hardt, Schwanz. "Der OAuth 2.0 -Autorisierungsrahmen". Tools.ietf.org. Abgerufen 2015-10-11.
Externe Links
- OWASP API -Sicherheitsprojekt
- API -Sicherheitsplattform für Enterprise Company von Wallarm
- Pingintelligence
- Nichtname -Sicherheit
- Bedrohung