2FA im CCP

  • Hallo alle,


    ich habe gestern eine Supportanfrage gestellt, und die Umsetzung von 2FA im CCP kritisiert.

    Was mir konkret nicht gefällt sind folgende Punkte:

    • Einrichtung eines alternativen zweiten Faktors nicht möglich
    • Keine U2F (z.B. Yubikey) unterstützung
    • Keine (sonst bei OTP üblich) "Backupcodes" bei

    Als Antwort kam, dass ich (was ich auch vorher schon getan hatte) das OTP-Secret irgendwo aufheben soll um im Falle eines Verlustes des zweiten Faktors OTP neu einrichten zu können.


    Mich stellt die Antwort nicht wirklich zufrieden, ich finde dass es 2021 durchaus angemessen ist zumindest U2F oder SMS für die 2FA anzubieten.


    Gibt es hier vielleicht Leute die eine Ähnliche Meinung haben?


    Den Mailthread hänge ich mal an.


    Cheers

    Felix

  • Noch behäbiger ist eigentlich nur, dass sich die Session nicht gemerkt wird, wenn man einen neuen Tab aufmacht und das CCP aufruft. Wenn das anders wäre, müsste man den 2. Faktor vielleicht wenigstens nicht so oft eingeben. Man darf dann aber immer neu den Login füttern.


    Wenn ich mich im besagten neuen Tab aber mit Account B einlogge, bin ich danach trotzdem mit Account A drin (!), mit dem ich bereits vorher in dem älteren Tab eingeloggt war...

  • Als Antwort kam, dass ich (was ich auch vorher schon getan hatte) das OTP-Secret irgendwo aufheben soll um im Falle eines Verlustes des zweiten Faktors OTP neu einrichten zu können.

    Das ist in der Regel der Weg, ein Backup für OATH-TOTP anzulegen. Bei TOTP kennen Client und Server dasselbe Geheimnis, von dem (mit ein paar anderen Parametern wie der aktuelle Zeiten) das Einmalpasswort abgeleitet wird. Wenn man sich ein Backup erstellen will, muss man „nur“ dieses Geheimnis aufbewahren, was oft als QR-Code präsentiert wird.


    "Backup-Codes" müssen eben auch wieder im Klartext auf dem Server gespeichert werden. Das ist keine schöne Variante.


    Keine U2F (z.B. Yubikey) unterstützung

    U2F gilt bei Webapplikationen bereits als veraltet. WebAuthn (aka FIDO2) ist der aktuelle Stand. Das hat diverse Vorteile, unter anderem muss im Gegensatz zu OATH-TOTP kein Geheimnis auf Serverseite gespeichert werden. Aber auch bei WebAuthn gibt es keinen standardisierten Ansatz, Backups zu erstellen (siehe https://github.com/Yubico/webauthn-recovery-extension).


    SMS-basierte Einmalpasswörter sind grundsätzlich unsicherer, aufgrund verschiedener Angriffsszenarien, die es so bei OATH-TOTP nicht gibt. Meiner Meinung nach sollte man das nicht anstreben.

  • Als Antwort kam, dass ich (was ich auch vorher schon getan hatte) das OTP-Secret irgendwo aufheben soll um im Falle eines Verlustes des zweiten Faktors OTP neu einrichten zu können.

    lol das sollte man normal idealerweise eben NICHT machen, da man zwischen einem geklauten secret und dem main nicht unterscheiden kann. wenn ein backupcode bspw genutzt wird, kann man eine mail oder so rauswerfen um den user zu informieren


    und ja ich wäre auf für U2F oder noch besser FIDO2. kundennummer und dann halt stick mit FP oder PIN (und für die faulen gern optional RKs aber nicht pflicht)


    U2F gilt bei Webapplikationen bereits als veraltet. WebAuthn (aka FIDO2) ist der aktuelle Stand. Das hat diverse Vorteile, unter anderem muss im Gegensatz zu OATH-TOTP kein Geheimnis auf Serverseite gespeichert werden. Aber auch bei WebAuthn gibt es keinen standardisierten Ansatz, Backups zu erstellen (siehe https://github.com/Yubico/webauthn-recovery-extension).

    ich denke man muss das jetzt nicht ganz so sehen. ich verstehe modernerweise U2F im sinne von "WebAuthn ohne UV" und damit kompatibel zu U2F sticks, webauthn kann viel und deswegen ist der begriff allein etwas undeutlich und ja U2F-JS sollte man nicht unbedingt nutzen.


    Aber auch bei WebAuthn gibt es keinen standardisierten Ansatz, Backups zu erstellen

    inzwischen kann man selbst bei twitter mehrere sticks registrieren. und ansonssten codes zum ausdrucken als backup.

  • Hoffentlich nicht, der Sinn von 2FA ist es zwei Faktoren zu haben und nicht wie Passkey es macht beide Faktoren zu streichen und durch einen Key zu ersetzten, da kann ich auch beim Passwort ohne 2FA bleiben, ist genauso unsicher. Das ist genauso sinnvoll wie 2FA Token und Passwort im gleichen Passwort-Manager zu speichern. Zumal bei Passkeys ja fast wirklich gesagt werden muss, dass die Keys fast nicht mal mehr mir gehören, sondern dem Unternehmen, wo ich die Keys speichere. Oder wenn die lokal gespeichert werden, dann sind mit dem Gerät auch all meine Anmeldedaten weg.

  • Sorry, aber das ist einfach falsch. Bei Verwendung eines Passkeys habe ich doch weiterhin zwei Faktoren:

    • etwas, was ich besitze - ein Gerät, das Zugriff auf den Passkey hat
    • etwas, was ich weiß - die Authentifizierung, die beim Zugriff auf den Passkey stattfindet

    Ich würde sogar argumentieren, dass die Variante Passkey sicherer ist als die momentan angebotene Variante Passwort + TOTP, weil ein Angreifer eben nicht über Phishing, MitM, etc. einen der beiden Faktoren abgreifen kann.

    Was den Punkt mit Passkeys in der Cloud angeht - es gibt ja durchaus auch Hardware Passkeys. Das restliche Argument greift für TOTP ja genauso, entweder ist mit einem Ausfall des Gerätes auch das 2FA Token weg, oder ich habe eine Art Backup, die dann doch wieder über einen Dritten synchronisiert wird.

  • Also ich sehe nur einen Faktor: den Passkey

    Wenn wir sowas aufzählen, dann wäre Password + TOTP hundertfach-FA, weil ich brauche ein Gerät um auf TOTP zuzugreifen, um die App zu öffnen brauche ich aber biometrische Daten oder eine Pin, um das auf dem Gerät erstmal freizuschalten, muss ich noch ein Passwort wissen und per SMS/E-Mail das freischalten und beim PW Manager nochmal das Gleiche.

    So funktioniert das nicht mit dem 2FA, sich Faktoren auszudenken, die keine sind. Den Punkt mit Phishing hast du, aber es ist immer noch möglich, nur schwerer.
    (TOTP-Tokens und Passwörter lassen sich übrigens merken, auch wenn die sicher sind, macht zwar vermutlich kein Mensch, ist aber möglich, anders als bei Passkeys).

    Gegen WebAuth (oder wie das aktuell heißt) hab ich nix, wenn das wirklich 2FA ist und ein Faktor Passwort und ein zweiter Faktor dann WebAuth.

  • Zoey Klares nicht wirklich.


    Das was den Passkey (oder Generell auch schon FIDO2 vor Passkeys) von den Sachen unterscheidet, ist dass die Verifizierung per Passwort erzwingen ist.


    eine SMS mal abgesehen von den Problemen mit SS7, ließe sich auch auf einem Nokia 3310 empfangen, dass keinen Sperrcode hat. ebenso, gibt es bei TOTP keine vorkehrungen, dass der Generator, durch irgendetwas geschützt ist.


    man könnte sicher TOTP auf einem arduino implementieren mit blinkenden lämpchen und es ist trotzdem TOTP, oder etwas Praktikabler, der Google Authenticator (die erste große TOTP app) hat iirc weder selbst einen sperrcode. noch eine Policy die dem Handy einen Lockscreen mit Code abverlangt.


    bei FIDO2 und den dazugehörigen technologien gibt es nicht nur die möglichkeit für Websites eine Verifizierung sei es mit Biometrie, PIN oder whatever zusätzlich zum push button anzufragen, sondern es gibt auch Positives Feedback, ob dies geschehen ist.


    ebenso ist "hundertfach-FA" sowieso unfug da man konzeptuell verschiedene Faktoren aufzählt und da gibt es nur 3 Typen:

    1) Wissen (bspw Kennwort/PIN)

    2) Besitz (Codegenerator)

    3) Biometrie


    es ist egal ob du 1 Passwort oder 20 Passwörter hast, und egal ob es Websites so nennen, aus Marketinggründen, es ist immer noch 1 Faktor, etwas was du weißt


    das mit dem TOTP seed merken geht zwar eigentlich gewissermaßen gegen das konzept von 2FA aber whatever


    dass man sich ein Schlüsselpaar wie es in FIDO genutzt wird nicht merken kann ist soweit so normal und auch teil des konzeptes, gerade da es auch einen Zähler gibt gegen Cloning-Versuche, und man pro Seite sowieso ein neues schlüsselpaar bekommt, damit man nicht nachverfolgt werden kann. Pro Seite ein 256-bit Schlüsselpaar wird etwas schwer.


    Bzgl Phishing, bin ich jetzt mal neugierig was du dir da so vorstellst. Die allermeisten Phishingversuche gehen via Semi-Einfachen E-Mails die leute auf Websites locken die mehr oder weniger täuschend echt aussehen, bei FIDO wird der dir nur sagen göogle.com? kenn ich nicht, sorry. Das einzige was mir einfällt ist dem user einen bösen Browser unterzujubeln (da kann man aber auch gleich die Cookies klauen), da unter Windows aber das System zwischen dem Browser und den FIDO Sticks steckt, bin ich gewissermaßen neugierig, wie sich Windows bei nicht-Codesignierten Anwendungen mit FIDO verhält.


    Ebenso eine Sache die Passkeys weit netter macht aus Sicherheitsperspektive für den Admin ist, dass es keine Geheimnisse mehr gibt, wie Passworthashes oder das gemeinsame geheimnis des TOTPs. nur ein Public key, einen Zähler, eine ID, und falls man möchte die Attestation.

  • Du weißt aber schon, dass da nicht einfach nur ein QR Code gescannt wird, sondern Browser und Telefon noch miteinander kommunizieren?

    Ja, deswegen kann der QR-Code dennoch auf jedem beliebigen Gerät der Welt erstellt worden sein, Handy und Browser müssen ja nicht im gleichen LAN sein

  • Die Kommunikation läuft in dem Fall aber über Bluetooth LE was sicherstellen soll, dass der Authenticator, sprich das Handy in diesem Fall, in der Nähe ist.

    Vielleicht übersehe ich grade etwas sehr offensichtliches, aber ich verstehe nicht, wie hier eine Phishing Attacke zusammen kommt.

  • Die Kommunikation läuft in dem Fall aber über Bluetooth LE was sicherstellen soll, dass der Authenticator, sprich das Handy in diesem Fall, in der Nähe ist.

    Naja ist zwar komplexer, aber lassen sich immer noch falsche QR-Codes generieren und die Verbindung wird dann über die Javascript-Bluetooth-API des Browsers hergestellt und so der Key abgefangen. Klar, ist deutlich komplexer, aber es gibt kein Allheilmittel gegen Phishing. Zudem bleibt Passkey kein 2FA, wenn du den Key abfängst oder irgendwie bekommst kannst du dich anmelden, dann lieber Passwort und WebAuthn/TOTP was wirklich 2FA ist. Und zur „Not“, wie hier schon erwähnt wurde, lässt sich per Phishing-Seite (vermutlich treffen es andere Begriffe besser) z. B. ein Browser-Add-on installieren, welches dann alles abfängt bzw. die Cookies überträgt. (Das ist jetzt sehr verallgemeinernd), aber Menschen die besonders anfällig für Phishing sind, bekommen es meist nicht mal mit dem Handy ein QR-Code zu scannen, ist jedenfalls in meinem Umfeld so...