O.Auth 3: Unterschied zwischen den Versionen

Aus d.hack
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 13: Zeile 13:
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).
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 ==
== 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)[https://www.bsi.bund.de/DE/Themen/Verbraucherinnen-und-Verbraucher/Informationen-und-Empfehlungen/Cyber-Sicherheitsempfehlungen/Accountschutz/Zwei-Faktor-Authentisierung/zwei-faktor-authentisierung_node.html].
Ein minimalistisches Beispiel einer SMS-Authentifizierung mit einem Einmalpin könnte dabei folgendermaßen aussehen:
<syntaxhighlight lang="php" style="border: 3px dashed blue;">
// 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
</syntaxhighlight>
Um 2FA-Funktionalität zu ermöglichen sind bereits einige Frameworks im Umlauf.
{| class="wikitable" style="margin:auto"
! 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 ==
== Weblinks ==
[https://www.bsi.bund.de/DE/Themen/Verbraucherinnen-und-Verbraucher/Informationen-und-Empfehlungen/Cyber-Sicherheitsempfehlungen/Accountschutz/Zwei-Faktor-Authentisierung/zwei-faktor-authentisierung_node.html BSI: Zwei-Faktor-Authentifizierung] BSI: Zwei-Faktor-Authentifizierung, aufgerufen am 02.05.2024


== Ressourcen und Einzelnachweise ==
== Ressourcen und Einzelnachweise ==
[https://epub.uni-regensburg.de/21269/1/Kap16_Starke_Authentifizierung.pdf 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
[https://downloads.hindawi.com/journals/jat/2018/1935974.pdf_gl=1*vp0hnl*_ga*MzU2NzM2NTkyLjE3MTQ2NjY4MzM.*_ga_NF5QFMJT5V*MTcxNDY2NjgzMy4xLjAuMTcxNDY2NjgzMy42MC4wLjA.&_ga=2.139019574.400115163.1714666834-356736592.1714666833 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


[[Category:Pruefaspekt]]
[[Category:Pruefaspekt]]
[[Category:EXAMINE]]
[[Category:EXAMINE]]

Version vom 21. Mai 2024, 13:14 Uhr

Beschreibung

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

Kurzfassung

Zwei-Faktor-Authentifizierung.

Anmerkungen

Prüftiefe


EXAMINE


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