O.Auth 3

Aus d.hack

Beschreibung

Jeder Authentifizierungsvorgang des Nutzers MUSS in Form einer Zwei-Faktor-Authentifizierung umgesetzt werden.

Kurzfassung

Zwei-Faktor-Authentifizierung.

Testcharakteristik

Prüftiefe

Bezeichnung Mindestanforderungen an die Prüfung
EXAMINE Der Evaluator untersucht (englisch „examine“, analog zu Begriffsverwendung in der Common Criteria Evaluation Methodology) die betreffende Testcharakteristik. Der Evaluator MUSS in seiner Prüfung über die Mindestanforderungen für „CHECK“ hinausgehen: In der Regel wird dies durch umfassende Quelltextanalyse der relevanten Implementierungsanteile und Penetrationstests geschehen. Die Unterstützung durch den Hersteller kann genutzt werden. „EXAMINE“ erfordert in jedem Fall eine eigenständige Beurteilung durch den Evaluator.


Ergänzende Informationen für Evaluatoren

Der Evaluator prüft durch Quelltextanalyse und praktische Tests das Vorhandensein der Zwei-Faktor-Authentifizierung. Insbesondere prüft er, ob die verwendeten Faktoren aus unterschiedlichen Kategorien stammen (Wissen, Besitz, Inhärenz).

Lösungsansätze

Implementierung

Funktion
2FA (Zwei-Faktor-Authentifizierung) ist eine zusätzliche Schranke beim Login in Diensten. Typischerweise besteht diese aus zwei verschiedenen Kategorien wie Wissen (Passwort) und Besitz (Mobilfunkgerät oder Email) oder Biometrie (Fingerabdruck)[1].

Ein minimalistisches Beispiel einer SMS-Authentifizierung mit einem Einmalpin könnte dabei folgendermaßen aussehen:

// PHP
// Funktion zur Generierung eines zufälligen 6-stelligen Einmalpasscodes
function generateOTP() {
    return str_pad(rand(0, 999999), 6, '0', STR_PAD_LEFT);
}

// Funktion zum Versenden eines Einmalpasscodes per SMS
function sendOTP($phoneNumber, $otp) {
    // Hier müsste die Integration mit einem SMS-Dienst wie Twilio erfolgen
    // Beispiel: Twilio API-Aufruf zum Versenden einer SMS
    // replace SID, Token, and Twilio phone number with your actual values
    $twilio_sid = 'your_twilio_sid';
    $twilio_token = 'your_twilio_token';
    $twilio_phone_number = 'your_twilio_phone_number';
    $client = new Twilio\Rest\Client($twilio_sid, $twilio_token);
    $client->messages->create(
        $phoneNumber,
        array(
            'from' => $twilio_phone_number,
            'body' => "Your OTP is: $otp"
        )
    );
}

// Beispielaufruf der Funktionen für die 2FA-Authentifizierung
$phoneNumber = '+1234567890'; // Beispiel-Telefonnummer des Benutzers
$otp = generateOTP(); // Einmalpasscode generieren
sendOTP($phoneNumber, $otp); // Einmalpasscode per SMS senden

// Hier müsste der Benutzer aufgefordert werden, den empfangenen Einmalpasscode einzugeben und zu überprüfen


Um 2FA-Funktionalität zu ermöglichen sind bereits einige Frameworks im Umlauf.

Framework Sprache
Authy PHP, Python, Ruby, Node.js, Java
Google Authenticator PHP, Python, Java, JavaScript
Duo Security Python, Java, JavaScript, .NET
Auth0 PHP, Python, Java, JavaScript, .NET, Node.js
Authy
Authy ist ein cloudbasierter 2FA-Authentifizierungsdienst, das zusätzlich zur API eine mobile Anwendung für Benutzer bietet. Authy zeichnet sich durch seine Benutzerfreundlichkeit und cloudbasierte Infrastruktur aus.
Google Authenticator
Google Authenticator ist eine Open-Source-App zur Erzeugung von Einmalpasswörtern (OTP - One-Time-Passwords) für die Zwei-Faktor-Authentifizierung. Es eignet sich gut für Anwendungen, die eine einfache Integration und keine Abhängigkeit von Drittanbietern bevorzugen.
Wichtig: Google Authenticator unterstützt nur die OTP-Methode.
Duo Security
Duo Security bietet eine Vielzahl von Authentifizierungsmethoden, darunter OTP, Push-Benachrichtigungen, biometrische Authentifizierung und mehr. Es ist eine gute Wahl für Programme, die eine flexible Authentifizierungslösung mit umfangreichen Sicherheitsfunktionen benötigen.
Auth0
Auth0 ist eine Identity-as-a-Service (IDaaS)-Plattform, die eine umfassende Lösung für Authentifizierung und Autorisierung bietet. Es unterstützt eine Vielzahl von Authentifizierungsmethoden, einschließlich Benutzername/Passwort, Social-Login, Multi-Faktor-Authentifizierung und mehr. Auth0 ist besonders geeignet für Projekte, die eine hochgradig anpassbare und skalierbare Authentifizierungslösung benötigen.

Weblinks

BSI: Zwei-Faktor-Authentifizierung BSI: Zwei-Faktor-Authentifizierung, aufgerufen am 02.05.2024

Ressourcen und Einzelnachweise

Christian Senk, et al.: Starke Authentifizierung für den sicheren Zugriff auf IT-Ressourcen in Föderationen Christian Senk, Dieter Bartmann: Starke Authentifizierung für den sicheren Zugriff auf IT-Ressourcen in Föderationen, 2011, aufgerufen am 02.05.2024

Wonsuk Choi, et al.: Sound-Proximity: 2-Factor Authentication against Relay Attack on Passive Keyless Entry and Start System Wonsuk Choi, Minhye Seo, and Dong Hoon Lee: Sound-Proximity: 2-Factor Authentication against Relay Attack on Passive Keyless Entry and Start System, 2018, aufgerufen am 02.05.2024