Doppelte App-Absicherung gegen ungewollte Zugriffe, Teil 2 Implementierung der Zwei-Faktor-Authentifizierung

Ein Gastbeitrag von Dr. Veikko Krypczyk 4 min Lesedauer

Anbieter zum Thema

Die 2FA verursacht bei der Umsetzung, der Implementierung, einen größeren Aufwand als eine einfache Berechtigungsprüfung. Doch aus Sicherheits- und Compliance-Gründen lohnt sich der Mehraufwand.

Die vollständige Eigen-Implementierung eines Fingerabdruck-Scans ist sehr aufwändig.
Die vollständige Eigen-Implementierung eines Fingerabdruck-Scans ist sehr aufwändig.

Wer eine Zwei-Faktor-Authentifizierung (2FA) umsetzen möchte, muss für beide Faktoren eine entsprechende Logik programmieren und konfigurieren. Auch im laufenden Betrieb ergeben sich für die IT-Administration neue Herausforderungen und Aufgaben.

2FA mit Benutzername/Passwort und Fingerabdruck.
2FA mit Benutzername/Passwort und Fingerabdruck.
(Bild: Krypczyk)

Beide Zugangsfaktoren müssen für die Nutzer eingerichtet und administriert werden. Der Workflow der 2FA ist am Beispiel der Nutzung von Benutzername/ Passwort (Faktor 1) und der Nutzung des Fingerabdrucksensors auf dem Smartphone (Faktor 2) in der Abbildung vorne dargestellt.

Eine vollständige manuelle Implementierung einer 2FA ist aufwändig. Dabei müssen mehrere Probleme gelöst werden:

  • Verwaltung der Benutzerkonten
  • Implementierung des Workflows, zur Abfrage und Weiterleitung der Daten für die Authentifizierung
  • Verifikation der Daten und Abgleich der Berechtigung
  • Kommunikation mit der Hardware bei Verwendung von biometrischen Sensoren, wie den Fingerabdrucksensor.

Durch die Nutzung von Komponenten und Services kann dieser Aufwand erheblich verringert werden. Für die Nutzung biometrischer Sensordaten werden sehr häufig mobile Geräte verwendet.

Um diesen Service in der eigenen App zu einzusetzen, muss man auf den Prozess und die Daten zugreifen, welche der Benutzer auf dem mobilen Device für die biometrische Authentifizierung eingerichtet hat. Mit anderen Worten: in der App greift man auf den Service zu, welcher unter iOS bzw. Android konfiguriert wurde. Android und iOS implementieren dazu eigene, unterschiedliche APIs (Programmierschnittstellen).

Im Falle einer Entwicklung der mobilen App mit der integrierten Entwicklungsumgebung RAD Studio (Delphi) und dem plattformübergreifenden Grafikframework FireMonkey gibt es für diese Aufgabe eine Komponente, welche den gesamten Zugriff auf die Hardwareinterfaces (API) unabhängig vom Zielsystem erledigt.

Hinweis

RAD Studio ist eine integrierte Entwicklungsumgebung, die es ermöglicht, mit Hilfe des plattformübergreifenden Grafik-Frameworks FireMonkey Apps für die Zielsysteme Windows, macOS, Linux (Desktop) bzw. Android und iOS (Mobile) zu erstellen. Eine Besonderheit ist die Nutzung des grafischen Designers, mit dessen Hilfe das User Interface gestaltet werden kann. Durch den Compiler werden native Apps für die Zielplattform erstellt, welche direkt auf den Devices ausgeführt werden. Programmiert wird mit der Sprache Delphi, einer modernen Variante von Object Pascal.

In diesem Fall reduziert sich der Aufwand für den Entwickler auf folgende Aufgaben:

Komponente TBiometricAuth in RAD Studio zum aktiven Projekt ergänzt.
Komponente TBiometricAuth in RAD Studio zum aktiven Projekt ergänzt.
(Bild: Embarcadero)

1. Hinzufügen der Komponente zur Anwendung: Das kann in der Delphi IDE sehr einfach im grafischen Designer erledigt werden, indem die Komponente TBiometricAuth auf ein aktives Formular gezogen wird. Es handelt sich um eine nicht visuelle Komponente, deren Eigenschaften zur Entwurfszeit definiert werden. Zur Laufzeit kann auf die Eigenschaften und die Methoden zugegriffen werden (siehe vorne).

2. Schreiben von Quellcode: Es ist zu definieren, welche Aktionen ausgelöst werden soll, wenn die Authentifizierung erfolgreich vorgenommen werden kann bzw. wenn diese fehlschlägt. Dazu werden von der Komponente TBiometricAuth die beiden Ereignisse AuthenticateFail und AuthenticateSuccess bereitgestellt. Im folgenden Beispiel wird sowohl im positiven als auch im negativen Fall eine Message angezeigt. In der Praxis können diese beiden Ereignisse dann zur Auslösung weiterer Vorgänge führen.

procedure TForm1.BiometricAuth1AuthenticateFail(Sender: TObject;
  const FailReason: TBiometricFailReason; const ResultMessage: string);
begin
  showmessage('Die Authentifizierung ist fehlgeschlagen.');
end;
procedure TForm1.BiometricAuth1AuthenticateSuccess(Sender: TObject);
begin
  showmessage('Die Authentifizierung war erfolgreich');
  // weitere Methoden auslösen
end;

3. Authentifizierung auslösen: Um den Vorgang der Authentifikation auszulösen, verwendet die Komponente das jeweilige API von Android bzw. iOS und nutzt die durch den Anwender eingerichtete Konfiguration. Die aktive Konfiguration entscheidet auch, welcher biometrischer Sensor, d.h. Fingerabdruck oder Gesichtserkennung, verwendet wird. Beispielsweise kann die Authentifikation durch einen Klick auf einen Button ausgelöst werden. Dazu wird lediglich die Methode Authenticate der Komponente aufgerufen:

procedure TForm1.Button1Click(Sender: TObject);
begin
  BiometricAuth1.Authenticate;
end;

4. Weitere Services der Komponente (Konfiguration): Mit Hilfe der Komponente kann ebenfalls festgestellt werden, ob auf dem Device ein Authentifikation-Service zur Verfügung steht. Dazu kann die Eigenschaft IsSupported ausgewertet werden. Ist der Service verfügbar, dann ist der Wert true, im anderen Fall ist er false. Ebenso kann die Empfindlichkeit/ Genauigkeit des verwendeten biometrischen Sensors über die Komponente mit Hilfe der Eigenschaft BiometricStrenght eingestellt werden. Wir haben hier die Wahl zwischen den aktiven Einstellungen des Gerätes, einer strengen oder einer weniger strengen Prüfung (siehe dazu obige Anmerkungen zur Fehlerrate).

Mit Hilfe der Komponente können eigene Apps für Android und iOS die Authentifikation mittels biometrischer Sensoren, d.h. Fingerabdruck oder Gesichtserkennung, einfach integrieren. Die aktive Nutzung von biometrischen Sensordaten kann beispielsweise Bestandteil einer 2FA sein und damit die Zugangssicherheit zu Daten uns Services wesentlich erhöhen.

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zu Softwareentwicklung und DevOps

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung.

Aufklappen für Details zu Ihrer Einwilligung

Hinweis: Ein Beispiel zur Nutzung von biometrischen Sensoren in RAD Studio (Delphi) findet sich beispielsweise in einem Repository bei GitHub.

Fazit

Insgesamt ist die Authentifizierung ein wesentlicher Bestandteil der Informationssicherheit und ein unverzichtbares Element, um die Vertraulichkeit, Integrität und Verfügbarkeit von Daten und Ressourcen in einer Softwareumgebung zu gewährleisten. Heutzutage wird die Zwei-Faktor-Authentifizierung sehr häufig angewendet.

Man hat dabei die Wahl zwischen verschiedenen biometrischen Faktoren, wie beispielsweise das Fingerabdruckverfahren. Die Ansteuerung des Sensors, die Datenauswertung und die Verifikation komplett eigenständig zu implementieren ist sehr aufwändig. Nützlich ist der Einsatz von fertigen Komponenten, welche diesen Prozess bei der Implementierung von Apps deutlich vereinfachen und beschleunigen.

(ID:49727321)