O.Auth 3: Unterschied zwischen den Versionen

Aus d.hack
Keine Bearbeitungszusammenfassung
 
(13 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
== Beschreibung ==
== Beschreibung ==
[[Beschreibung::
Jeder Authentifizierungsvorgang des Nutzers MUSS in Form einer Zwei-Faktor-Authentifizierung umgesetzt werden.
Jeder Authentifizierungsvorgang des Nutzers MUSS in Form einer Zwei-Faktor-Authentifizierung umgesetzt werden.
]]


== Kurzfassung ==
== Kurzfassung ==
[[Kurzfassung::
Zwei-Faktor-Authentifizierung.
Zwei-Faktor-Authentifizierung.
]]


== Anmerkungen ==
== Testcharakteristik ==
==== Prüftiefe ====
==== Prüftiefe ====
<br />
{|class="wikitable" style="width:50%; border: 1px solid black;"
:: '''EXAMINE'''
|-
! style="background-color: #f2f2f2;" | Bezeichnung
! style="background-color: #f2f2f2;" | Mindestanforderungen an die Prüfung
|-
| [https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/Publikationen/TechnischeRichtlinien/TR03161/BSI-TR-03161-2.pdf?__blob=publicationFile&v=10#%5B%7B%22num%22%3A65%2C%22gen%22%3A0%7D%2C%7B%22name%22%3A%22XYZ%22%7D%2C54%2C725%2C0%5D EXAMINE]
| Der Evaluator untersucht (englisch „examine“, analog zu Begriffsverwendung in der Common Criteria Evaluation Methodology) die betreffende Testcharakteristik. Der Evaluator [https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/Publikationen/TechnischeRichtlinien/TR03161/BSI-TR-03161-2.pdf?__blob=publicationFile&v=10#%5B%7B%22num%22%3A15%2C%22gen%22%3A0%7D%2C%7B%22name%22%3A%22XYZ%22%7D%2C54%2C243%2C0%5D MUSS] in seiner Prüfung über die Mindestanforderungen für „[https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/Publikationen/TechnischeRichtlinien/TR03161/BSI-TR-03161-2.pdf?__blob=publicationFile&v=10#%5B%7B%22num%22%3A65%2C%22gen%22%3A0%7D%2C%7B%22name%22%3A%22XYZ%22%7D%2C54%2C725%2C0%5D 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.
|}
<br />
<br />


==== Ergänzende Informationen für Evaluatoren ====
[[Anmerkungen::
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 ==
=== Entwicklerseitig ===
=== Implementierung ===
;Funktion
;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].
: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].
Zeile 52: Zeile 65:


</syntaxhighlight>
</syntaxhighlight>
{{#set: has ProgrammingLanguage=PHP}}


Um 2FA-Funktionalität zu ermöglichen sind bereits einige Frameworks im Umlauf.
Um 2FA-Funktionalität zu ermöglichen sind bereits einige Frameworks im Umlauf.
Zeile 58: Zeile 72:
! Framework !! Sprache  
! Framework !! Sprache  
|-
|-
| Authy || PHP, Python, Ruby, Node.js, Java   
| Authy {{#set: use Framework=Authy}} || PHP, Python, Ruby, Node.js, Java   
|-
|-
| Google Authenticator || PHP, Python, Java, JavaScript
| Google Authenticator {{#set: use Framework=Google Authenticator}} || PHP, Python, Java, JavaScript
|-  
|-  
| Duo Security || Python, Java, JavaScript, .NET
| Duo Security {{#set: use Framework=Duo Security}} || Python, Java, JavaScript, .NET
|-  
|-  
| AuthO || PHP, Python, Java, JavaScript, .NET, Node.js
| Auth0 {{#set: use Framework=Auth0}} || PHP, Python, Java, JavaScript, .NET, Node.js
|}
|}


== Quellen ==
;Authy
[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
:: 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 ==
[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 {{#set: has Literacy=BSI: Zwei-Faktor-Authentifizierung}}
 
== Ressourcen und Einzelnachweise ==


== Weiterführende Literatur ==
[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 {{#set: has Literacy=Christian Senk, et al.: Starke Authentifizierung für den sicheren Zugriff auf IT-Ressourcen in Föderationen}}


[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 {{#set: has Literacy=Wonsuk Choi, et al.: Sound-Proximity: 2-Factor Authentication against Relay Attack on Passive Keyless Entry and Start System}}


[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
{{#set:Status=angelegt}}
[[Category:EXAMINE]]
[[Category: Auth]]

Aktuelle Version vom 6. August 2024, 13:33 Uhr

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