|
|
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 | | [[Category:Pruefaspekt]] |
| | | [[Category:EXAMINE]] |
| [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 | |