PHPGangsta - Der praktische PHP Blog

PHP Blog von PHPGangsta


Sesam öffne dich: Sicher einloggen im Internetcafe

with 11 comments

Stell dir folgende Situation vor: Du bist im Ausland, beispielsweise Peru, und möchtest dich auf deiner Webseite als Administrator einloggen. Da der mobile Datentransfer im Ausland sehr teuer ist kommt es leider nicht in Frage das Handy zu nutzen, denn bereits wenige Megabyte kosten viel Geld. Also ab ins Internetcafe. Doch dort muss man davon ausgehen dass Keylogger/Trojaner installiert sind, die jeden Tastaturanschlag mitprotokollieren. Die Angreifer kommen also sehr leicht an Username und Passwort, da hilft es auch nicht wenn die Webseite SSL oder sonstige andere Sicherheitsmaßnahmen nutzt.

Wie kann man nun seine Webseite sicher besuchen, ohne sich einzuloggen und ohne viel teuren Datentraffic zu verursachen?

Eine mögliche Lösung

Ali BabaAuf der Loginseite der Webseite ist zusätzlich zum Loginformular ein QR-Code eingeblendet. Dieser QR-Code muss mit dem Handy gescannt und die dahinter steckende Webseite besucht werden. Es erscheint ein kleines Loginformular auf dem Handy, in das man gefahrlos seine Logindaten eingeben kann, denn das Handy ist ja unseres und beheimatet hoffentlich keinen Keylogger. Sobald der Login auf dem Handy erfolgreich war wird man auch auf dem Internetcafe-Computer eingeloggt, völlig ohne eine Taste gedrückt zu haben. Sesam öffne dich!

Ich habe das Verfahren mal umgesetzt, es bedarf lediglich 75 Zeilen HTML und PHP-Code, sowie die Einbindung einer freien PHP-QR-Code-Bibliothek. Mein Code liegt auf Github, und ich habe auch eine kleine Demo-Seite online gestellt.

Diese Methode ist übrigens nicht neu, Google hat damit experimentiert und es, als es publik geworden ist, eingestellt mit der Meldung „Danke, das war nur ein Experiment, bald kommt etwas viel besseres“. Leider wissen wir bis heute nicht was die bessere Lösung sein könnte.

Was haltet ihr davon, überflüssig oder eine nützliche Alternative?

Written by Michael Kliewe

November 14th, 2013 at 3:25 pm

Posted in PHP

Tagged with , ,

11 Responses to 'Sesam öffne dich: Sicher einloggen im Internetcafe'

Subscribe to comments with RSS or TrackBack to 'Sesam öffne dich: Sicher einloggen im Internetcafe'.

  1. Wow, das ist ein absolutes Killerfeature! Die Idee solltest du eigentlich an große Unternehmen verkaufen oder so, auch wenn’s eigentlich recht simpel ist. Danke dafür!

    Ich war mal so frei deinen Artikel als feature-request auf meinem php-login-repo zu verlinken (https://github.com/panique/php-login/issues/290), auch in der Hoffnung daß das nach Implementierung viele viele Leute testen und das Ganze auch von Superspezies geprüft wird, vielleicht hat die Sache ja doch einen Haken; daß Google diese Art der Anmeldung nicht weiter verfolgt hat hat vielleicht Gründe… mal sehen…

    Chris

    14 Nov 13 at 15:40

  2. Besser ist doch eine 2-Faktor Authentifizierung so wie es Google, Dropbox und alle anderen machen.

    Matthias

    14 Nov 13 at 16:12

  3. Also wenn ich den Code scanne und mich auf dem Handy einlogge passiert am Computer genau gar nichts bei deiner Demo.
    Ansonsten coole Idee 🙂

    Loco

    14 Nov 13 at 16:13

  4. Problem dabei kann sein, dass das Handy Netz haben muss. Das klingt nach einem theoretischen Einwand, aber der Text nennt als Beispiel Peru – und als ich in Peru war, hatte ich das Problem, dass mit meinem Netzanbeiter (Simyo) kein Roaming möglich war und die Idee in der Praxis somit nicht umsetzbar gewesen wäre …

    Carsten

    14 Nov 13 at 16:25

  5. @Matthias: Bei der 2-Faktor-Authentifizierung musst du neben deinem Usernamen(meistens E-Mail-Adresse) auch das Passwort und zusätzlich den 2.Faktor in das Login-Formular eingeben. Wenn das mittels Keylogger abgehört wird kann sich der Angreifer damit nicht nochmal einloggen da der 2. Faktor gegen Replay-Attacken geschützt ist. ABER: Dein Username ist dem Angreifer dann bekannt und dein Passwort, welches du ja beides auch vielleicht an anderen Stellen noch benutzt (Du direkt vielleicht nicht, aber leider viele andere User von Diensten). Ideal ist das auch nicht…

    @Loco: Du hattest Recht, da war noch ein kleiner Fehler drin, das QR-Code-Bild wurde nicht korrekt generiert (keine Rechte auf dem Webserver). Ist etwas problematisch da sich die png’s gegenseitig überschreiben wenn viele Leute auf der Seite unterwegs sind, das sollte man anders lösen wenn man so viele User hat 😉
    Da das png veraltet bzw. nicht das richtige war bei dir, war die ID in der URL falsch (verglichen mit der auf der Webseite die unten drunter steht), dann funktionierte es bei dir nicht… Bitte versuch es nochmal, nun sollte es gehen hoffe ich.

    Michael Kliewe

    14 Nov 13 at 16:30

  6. Wenn ich das richtig sehe könnte auch das nicht wirklich sicher sein.
    Da ja schon erwähnt wurde das man ins i-net cafe gehen will um kein Geld auszugeben, muss man sich ja über dem Lokalen WLan einloggen.
    Da kann man genauso gut alles mit sniffen.

    Thomas

    14 Nov 13 at 16:33

  7. Läuft 🙂 Danke!

    Loco

    14 Nov 13 at 17:53

  8. @Thomas: Ein Angreifer kann natürlich nur mitsniffen wenn kein HTTPS genutzt wird.

    Michael Kliewe

    14 Nov 13 at 20:59

  9. Was Google zur Zeit bietet (2-step-auth mit Authenticator) ist quasi noch ein ganz klein wenig sicherer, schließlich wird der Master-Key für den Authenticator nur einmalig bei der Einrichtung übertragen. Das heißt wir haben da nicht nur eine Kanaltrennung (Desktop und Handy), sondern sogar ein Geheimnis („Secret (key)“), dass _nicht_ noch mal irgendwohin übertragen wird 🙂

    Von der Usability würd ich Googles Authenticator [1] vorziehen, weil nur App starten und Zahl am Desktop abtippen das Login-Formular auf dem kleinen Handydisplay (Milestone 2 ;)) dann doch schlägt 🙂

    [1] Übrigens eine Standardimplementierung, die auch mit anderen OTP-konformen Systemen funktioniert

    KingCrunch

    14 Nov 13 at 22:42

  10. Mist, eigentliche Botschaft vergessen:

    > ABER: Dein Username ist dem Angreifer dann bekannt und dein Passwort, welches du ja beides auch vielleicht an anderen Stellen noch benutzt (Du direkt vielleicht nicht, aber leider viele andere User von Diensten). Ideal ist das auch nicht…

    kA, ob du Googles 2-step-auth mal probiert hast, aber wenn es ein mal aktiviert ist, ist das normale Passwort alleine so gut wie wertlos. Nachdem ich mein Handy geflasht habe, war der Authenticator weg, da hat nur nen Anruf _von_ einem Google Telefonroboter geholfen 😀

    Auf der anderen Seite kannst du OTP auch ohne zusätzlichen Passwort verwenden. Das scheint zum Beispiel bei VPNs hier und da beliebt, zumindest hatte ich so ein Token-Generator-Schlüsselanhänger bei meiner Frau gesehen.

    KingCrunch

    14 Nov 13 at 22:48

  11. Hi!

    Wenn Du das ganze noch sicherer machen willst (mit Kryptografie), schau Dir mal SQRL an: https://www.grc.com/sqrl/sqrl.htm

    Ist das gleiche Prinzip, nur auf Handy-Seite besser abgesichert.

    Gabriel

    18 Nov 13 at 11:21

Leave a Reply

You can add images to your comment by clicking here.