# Erhöhte Sicherheit beim Login



## Ice-Tea (10. Okt 2015)

Hallo zusammen,
erst mal vorab:
Es geht mir bei meiner folgenden Frage nicht um eine Umsetzungshilfe (also Programmierhilfe), sodern vielmehr darum ob es überhaupt Sinnvoll ist und ein erhöhtes Maß an Sicherheit bietet.

Zu der Sachlage:
Derzeit erstelle ich meine Internetseite neu. Umgesetzt wird dies mit einem Glassfish-Server und einer Enterprise-Application um weitere Services, welche derzeit in verschiede Systeme ausgelagert sind, zusammenzuführen.
Das Frontend wird mit JSF umgesetzt, das Backend jedoch wird als App-Client umgesetzt.
Konkret geht es jetzt um folgendes:
Vor dem Start des App-Clients wird (im App-Client) Benutzer-Name, Email und Password geprüft.
Wärenddessen werden die letzten 3 stellen vom Unix-Timestamp anhaltend aktualisiert und dem Benutzer angezeigt (also ein durchlauf von 000 bis 999). Zeitgeber ist die Uhr des Clients.
Beim klick auf "absenden" wird geprüft ob Benutzername, Email und Passwort übereinstimmen und der Aktuelle Zeitstempel festgehalten. Die letzten 3 Stellen werden mit den Benutzerdaten zum Server übertragen.
Der App-Client startet daraufhin einen Browser, übergibt die Session und zeigt durch eine seperate WAR ein Eingabefeld an, in dem der Benutzer die ihm angezeite 3-stellige Zifferkobination aus dem Client einzugeben hat.
Nach Bestätigung bzw. erneutes senden der Zifferkombination im Browser schließt sich folglich das Browserfenster wieder und der Appclient hat grünes Licht zum "durchstarten"


Nun ist die Frage ob das Sinnvoll ist, einfach nur mehr aufwand macht oder tatsächlichen nutzen in bezug auf Sicherheit hat.
Immerhin dürfte einem Angreifer die Clientseitige Zeitgebung unbekannt sein.
Durch den automatischen Aufruf des Browsers durch den App-Client würde ein angreifer jedoch auch auch an die Ziffernkombination kommen, welche ihm eigentlich vorbehalten werden soll.
Und ein manueller Aufruf fällt wegen der Sessionübergabe schwer.

Macht es überhaupt sinn so vorzugehen?
Das gleiche Konzept, jedoch mit dem zusenden der Ziffernkobination per SMS wäre wohl sinnvoller. Aber mir sind entsprechende Services zum zusenden einer SMS biher nicht wirklich bekannt.
Und da das eigentliche Projekt auf einem Online-Server läuft müsste ich zwangsweise erst eine Verbindung in meine eigenen Serverräume einbauen um z.B. eine noch vorhandene Fritz.Card zum versenden von SMS zu nutzen. Und auch da bin ich mir nicht mehr sicher ob solche Services in Zeiten von IP-Telefoni über vorgande "Telefonverbindungen" überhaupt noch möglich sind.

In wie weit ist die Umsetzung Sinnvoll, bzw. welche anderen Möglichkeiten habe ich dem Benutzer die Zifferkombination bestätigen zu lassen?


----------



## buggy84 (14. Okt 2015)

Du möchtest die Sicherheit erhöhen, indem Du eine Ziffernkombination im Klartext anzeigst, die man später im Browser dann nochmal händisch eintragen kann?
Für mehr Sicherheit brauchst Du ein weiteres Geheimnis. Du hast schon 3 Geheimnisse: Username, Email, Passwort. Das ist schonmal ein Geheimnis mehr als Amazon hat 

Du könntest die Zifernkombination per Email senden, dann muss ein potenzieller Angreifer auch das Emailkonto des Betroffenen kompromittieren. Das wird nochmal schwerer. Geht aber dann auch auf die Nutzbarkeit, weil Emails ja nicht unbedingt immer schnell ankommen.

Das mit der SMS ist ja bekannt vom Onlinebanking und Paypal, ich empfinde das als eines der höhsten Sicherheitsaspekte. Aber da geht's ja auch um Geld. Ich weiß ja nicht, was du Ultra-Geheimes machst, dass Email und Passwort nicht sicher genug ist.

Meiner Meinung nach ist dein Ansatz nur mehr Aufwand, der mögliche Hacker wird maximal grinsen.


----------

