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?
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?