FAPI verstehen #02: Was steckt hinter der Financial-grade API – ein Überblick

FAPI verstehen – Blogserie – Teil #02

Die Financial-grade API (FAPI) ist eine attraktive Lösung in der Digitalisierung des Finanzsektors. Als interoperable Lösung für "Open Banking"-Szenarien erlaubt die FAPI regulatorische Vorschriften umzusetzen und dabei einen hohen Sicherheitsstandard zu erfüllen. Die FAPI bietet verschiedene Profile für das Autorisierungsframework OAuth an. Mittels der Profile werden unterschiedliche Sicherheitsziele erreicht, um verschiedene Szenarien optimal gegen Cyberangriffe zu schützen.

Um die Sicherheitsziele der FAPI zu erreichen, werden diverse Sicherheitsfeatures eingesetzt. Dabei steht der Schutz von Access Tokens und vor der Manipulation von Nachrichten im Vordergrund. Darüber hinaus setzt die FAPI aktuelle Security Best Practices um und bietet die Möglichkeit, Implementierungen der Profile zertifizieren zu lassen. Auf diese Weise erreichen die FAPI Profile ein höheres Level an Sicherheit als herkömmliche OAuth und OpenID Connect Implementierungen.

 

Was ist die Financial-grade API?

Die Financial-Grade-API (FAPI) bietet Sicherheitsprofile für OAuth, die als interoperable Lösung für “Open Banking”-Szenarien dienen können. Open Banking bedeutet für Banken, mehr Datenschutz zu gewährleisten und offene APIs für Dritte zur Verfügung zu stellen. Open Banking ermöglicht Personen, ihre Finanzdaten sicher mit innovativen Dritt-Unternehmen zu teilen und die Freiheit in der Verwaltung der eigenen Finanzen zu vergrößern . Die FAPI zielt darauf ab, dem hohen Bedarf an Cybersicherheit und großen Maß an regulatorischen Vorschriften im Finanzbereich gerecht zu werden. OAuth allein kann dies nicht bieten,  da es sich hierbei um ein flexibles Framework mit zahlreichen Konfigurationsmöglichkeiten handelt. Die FAPI wurde als Reaktion auf die europäische Payment Service Directive 2 (PSD2) entwickelt, die 2015 veröffentlicht wurde.

Die FAPI Profile bieten eine sichere und effiziente Alternative zur weit verbreiteten Technik des “Screen Scrapings”. Das große Sicherheitsproblem beim Einsatz dieser Technik erfahren Sie in Teil #01 der Blogserie.

Trotz ihres Ursprungs im Finanzbereich sind die FAPI Profile auch in anderen Szenarien, die ein hohes Bedürfnis an Cybersicherheit haben, einsetzbar. Im Kontext von eHealth kann die FAPI beispielsweise eingesetzt werden, um den sicheren Zugriff auf sensible Gesundheitsdaten und die Interaktion mit Patienten zu ermöglichen.

 

Welche Sicherheitsziele bietet die FAPI?

Die FAPI definiert drei Sicherheitsziele: Autorisierung, Authentifizierung und die Integrität der Session.

FAPI Autorisierung

Autorisierung
Der Zugriff auf Ressourcen ist nur für berechtigte Clients (Dienstanbieter, hier z. B. FinTechs) möglich. Angreifende Personen können nicht auf die Ressourcen einer benutzenden Person zugreifen. Selbst ein gestohlenes FAPI-“Access Token” der benutzenden Person erlaubt ihnen keinen Zugriff.

FAPI Authentifizierung

Authentifizierung
Der Client kann sich der Identität der benutzenden Person sicher sein. Angreifende Personen können sich nicht im Namen einer anderen benutzenden Person bei einem Client anmelden oder ein “ID Token” einer anderen benutzenden Person erlangen und verwenden. 

FAPI Integritat der Session

Integrität der Session
Es wird sichergestellt, dass sich die benutzende Person selbstständig mit ihrer eigenen Identität anmeldet und auf ihre eigenen Ressourcen zugreift. Es wird verhindert, dass die Integrität der Session mithilfe von “Cross-Site-Request-Forgery” (CSRF)- oder “Session-Swapping”-Angriffe gebrochen werden kann. Angreifende Personen können die benutzende Person nicht dazu bringen, sich in einem fremden Account anzumelden oder auf fremde Ressourcen zuzugreifen.

 

Wie ist die Financial-grade API aufgebaut?

Es gibt zwei FAPI Versionen, die sich in unterschiedliche Profile unterteilen: FAPI 1.0 und die überarbeitete FAPI 2.0. Beide bestehen jeweils aus einem Profil für APIs mit mittlerem Risiko (Baseline) und einem  Profil für APIs mit hohem Risiko (Advanced). Die verschiedenen Level von Sicherheit und Interoperabilität der Profile werden in Abbildung 1 dargestellt. Der generelle Unterschied zwischen Baseline und Advanced Profilen besteht in dem Einsatz von Signaturen zum Schutz von Requests und Responses, sowie dem Beschränken des Einsatzes von Access Tokens auf berechtigte Parteien.

FAPI Profile im Vergleich

FAPI Profile im Vergleich – Die FAPI Versionen und Profile unterscheiden sich in ihrer Sicherheit und Interoperabilität. (Abb. 1)

 

Der Hauptteil von FAPI 1.0 besteht aus zwei Profilen: dem Baseline Profil und dem Advanced Profil. Die Sicherheitsprofile der Financial-grade API 1.0 wurden im März 2021 von der FAPI Working Group veröffentlicht. Die Spezifikation kombiniert bestehende OAuth und OpenID Connect Sicherheitsmaßnahmen mit Best Practices um zwei Profile zu definieren, die für unterschiedliche Sicherheitsstufen ausgelegt sind.

Das Baseline Profile wurde für den Lese-Zugriff auf APIs entwickelt, die ein mittleres Risiko aufweisen. Um diese zu schützen werden verschiedene Best Practices eingesetzt, wie z. B. eine kurze Gültigkeit von Access Tokens.

Das Advanced Profile hingegen soll sowohl den Lese-, als auch den Schreibzugriff, auf APIs schützen, welche ein hohes Risiko bergen. Hierfür werden weitere Maßnahmen zusätzlich zu denen des Baseline Profils angewendet, um ein noch höheres Niveau an Cybersicherheit zu gewährleisten. Unter anderem werden verschiedene Requests signiert und Access Tokens können nur von der berechtigten Partei eingelöst werden.

Zusätzlich beinhaltet die FAPI 1.0 ein CIBA-Profile, welches zum jetzigen Zeitpunkt noch nicht fertig gestellt ist. Dieses bietet eine sichere Konfiguration für den Client-Initiated Backchannel Authentication (CIBA) Flow.

FAPI 2.0 besteht aus einem Attackermodel und ebenfalls einem Baseline und einem Advanced Profil. Die Sicherheitsprofile der Financial-grade API 2.0 befinden sich momentan noch in der Entwicklung. Im Juli 2021 wurden der erste “Implementer’s Draft” des Baseline Profiles veröffentlicht. Auch FAPI 2.0 kombiniert bestehende OAuth und OpenID Connect Sicherheitsmaßnahmen mit bekannten Best Practices. Zusätzlich setzt die überarbeitete FAPI Version Feedback aus der Industrie um und erhöht so die Kompatibilität zwischen Anwendungen (Interoperabilität) durch vereinfachte Konfigurationen.

Das Baseline Profile 2.0 bietet einen höheren Schutz als das Baseline Profil 1.0. Zum Beispiel werden Requests, welche vorher durch den Browser der benutzenden Person an den Authorization Server  weitergeleitet wurden, nun direkt an den Authorization Server gesendet. Außerdem werden bereits im Baseline Profil Absender-beschränkte Access Tokens verwendet.

Das Advanced Profile der FAPI 2.0 bietet einen noch größeren Schutz als das Baseline Profil 2.0. Auch hier werden zusätzliche Maßnahmen, wie das Signieren von Requests und Responses, vorgeschrieben. Access Tokens können nur von der berechtigten Partei eingelöst werden.

Da sich beide Profile zur Zeit noch in der Entwicklung befinden, sind Änderungen bis zur Finalisierung nicht auszuschließen.

 

Zertifizierung

Die OpenID Foundation stellt Testsuiten zur Verfügung, um die korrekte und konforme Implementierung des Standards zu gewährleisten. Implementierungen, die diese Tests erfolgreich bestanden haben, werden als zertifizierte FAPI-Authorization Server und -Clients auf der Zertifizierungsseite gelistet. Darunter fallen auch bekannte Anbieter, wie Authlete, ForgeRock und Ping Identity.

Bisher können FAPI 1.0 Baseline und Advanced Implementierungen von Clients und OpenID Providern eigenständig zertifiziert werden. Zudem ist es möglich FAPI-CIBA OpenID Provider zu zertifizieren.

 

Unterschiede zwischen den FAPI Profilen

Die folgende Tabelle zeigt einen Vergleich der FAPI Profile, des OAuth 2.0 und OpenID Connect 1.0 Standards und der aktuellen “OAuth 2.0 Security Best Current Practices” anhand ausgewählter Schutzmaßnahmen. Es gilt zu beachten, dass eine OAuth 2.0 Implementierung alle genannten Sicherheitsmerkmale optional umsetzen kann, auch wenn dies nicht im Standard vorgeschrieben ist.

 

Features 1.0 Baseline 1.0 Advanced 2.0 Baseline 2.0 Advanced OAuth 2.0 OAuth 2.0 + BCP OIDC Core Screen Scraping
Schutz von Access Tokens hoch sehr hoch sehr hoch sehr hoch niedrig mittel niedrig keiner
Manipulations­schutz von Requests niedrig sehr hoch hoch sehr hoch niedrig niedrig niedrig keiner
Manipulations­schutz von Responses niedrig sehr hoch niedrig sehr hoch niedrig niedrig mittel keiner
CSRF-Schutz hoch hoch hoch hoch mittel hoch mittel keiner
Aktuelle Security Best Practices mittel hoch hoch hoch niedrig mittel niedrig keine
Interoperabilität mittel mittel hoch hoch niedrig niedrig mittel keine
Zertifizierung möglich möglich möglich möglich keine keine möglich keine

 

Die Baseline und Advanced Profilen unterscheiden sich primär in dem Einsatz von Signaturen zum Schutz von Requests und Responses, sowie dem Einsatz von absenderbeschränkten Access Tokens. Durch eine Signatur der Nachrichten werden diese unter anderem vor Manipulationen im Browser der benutzenden Person geschützt. Da die Access Tokens nur von der berechtigten Partei eingelöst werden können, ist das Risiko, welches von gestohlenen Tokens ausgeht, minimiert: Eine angreifende Person kann das gestohlene Token nicht verwenden und nicht selbstständig auf Ressourcen der benutzenden Person zugreifen.

Darüber hinaus bietet die FAPI zuverlässigen CSRF-Schutz, sowie die Einhaltung von aktuellen Security Best Practices. Im Vergleich zu älteren Standards schafft die FAPI so mehr Sicherheit, auch gegen aktuelle Cyberangriffe. 

Ein weiterer Vorteil der FAPI besteht in ihrer erhöhten Interoperabilität, welche auch durch eine offizielle Zertifizierung gewährleistet wird. Durch klar definierte Profile sind mehr Anwendungen kompatibel miteinander, als durch die vielen Konfigurationsmöglichkeiten die zum Beispiel das OAuth Framework offen lässt.

FAPI Sicherheitsevaluierung

FAPI Sicherheitsevaluierung – Vergleich der untersuchten Standardisierungen anhand ihrer Sicherheitsfeatures. (Abb. 2)

 

Abschließend lässt sich sagen, dass die FAPI mehr Sicherheit, mehr Interoperabilität und einen leichteren Entwicklungsprozess bietet, als herkömmliche OAuth und OpenID Connect Implementierungen. Dies zeigt auch unsere Sicherheitsevaluierung in Abbildung 2.

Weitere technische Details folgen in einem unserer nächsten Blogartikel.

 


 

Mit welchen Maßnahmen die FAPI Profile das hohe Niveau des Finanzsektors an Cybersicherheit erreichen, und sogar gegen komplexe Mix-Up Angriffe schützen, werden wir Ihnen in weiteren Teilen der “FAPI verstehen”-Serie erläutern.

Demnächst > FAPI verstehen Teil #03: Wie unterscheidet sich der Schutz der FAPI Profile?

Folgen Sie uns auf Twitter und verpassen Sie keinen unserer zukünftigen Blogposts mehr.

 

Blogserie – FAPI verstehen – Alle Beiträge im Überblick

Teil #01Wie werden mit der Financial-grade API im Finanzsektor hochsichere APIs realisiert?

Teil #02 – Was steckt hinter der Financial-grade API – ein Überblick

 


 

Unsere Experten entwickeln die optimale Lösung für Sie

APIs – OAuth – FAPI

Stehen Sie vor der Entscheidung, wie Sie Ihre APIs und Kundendaten optimal schützen können? Oder verwenden Sie OAuth bereits und fragen sich, ob Ihre Implementierung sicher ist?

Wir beraten Sie gerne; kontaktieren Sie uns für eine unverbindliche Erstberatung. So stehen wir Ihnen mit folgenden Services und Lösungen zur Seite:

Bedrohungsanalysen  |  Schulungen   |  Penetrationstests

Zögern Sie nicht und finden Sie mit uns Ihren Weg zu sicheren APIs. Wir freuen uns darauf Sie bei Ihren Projekten zu unterstützen.

 

Dr. Christian Mainka

Ihr Ansprechpartner für OAuth und sichere API

Dr. Christian Mainka
christian.mainka@hackmanit.de