[gelöst] Google Authenticator zur Verbesserung der Sicherheit als FHEM Modul

Begonnen von pandabear_de, 14 Januar 2017, 00:42:04

Vorheriges Thema - Nächstes Thema

pandabear_de

Hi Udo
Ich hätte noch eine kleine Verbesserung.

Mit ist aufgefallen, dass andere Anbieter noch im Google Authenticator überhalb vom Token noch einen Eintrag haben. Es ist ein sogennanter Issuer Eintrag.

otpauth://totp/MeinName?secret=4c7t4rsstqsmxujempwfvpszlvvxp6evvtnoxshi4xrfqq2bqpks2bfcza32zogymizgeyavvozg54xo[b]&issuer=FHEM[/b]

Proof of concept bei http://qrcode.tec-it.com/de gemacht.

Bei Gelegenheit...

Gruß
Jakob

betateilchen

Der Issuer hat aber keinen praktischen Nutzen.

Auf iOS kann ich den Fehler mit den Leerzeichen übrigens nachvollziehen. Scheint ein Problem der jeweiligen App zu sein.


  • Android App (Google Authenticator): funktioniert
  • macOS App (OTP Manager): funktionert
  • iOS App (Google Authenticator): funktioniert nicht
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

pandabear_de

#47
Hi,
der workaround für IOS ist entweder einen eigenen Namen ohne Leerzeichen zu vergeben oder den Schlüssel-String die Google Authenticator einzutragen. (ggf per Email oder so auf das Gerät übertragen)

Du könntest den Standard-Namen auch einfach auf FHEM ändern.

Sollten wir m.E. in der CommandRef kurz erwähnen.

Gruß
Jakob

betateilchen

Zitat von: pandabear_de am 15 Januar 2017, 16:11:01
Sollten wir m.E. in der CommandRef kurz erwähnen.

Nein, man sollte das eigentliche Problem beheben 8) Seit zwei Minuten erledigt und schon eingeckeckt.

Das Modul wird ab morgen auf dem offiziellen fhem Update-Weg verteilt, die aktuelle Version steht schon in SVN bereit.

Ankündigung
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!


betateilchen

Zitat von: pandabear_de am 15 Januar 2017, 15:59:58
Mit ist aufgefallen, dass andere Anbieter noch im Google Authenticator überhalb vom Token noch einen Eintrag haben

Das ist aber nur bei iOS so.
Bei Android wird der Issuer einfach vor das Label geschrieben und das Label dann in Klammern gesetzt.

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

pandabear_de

Du bist ja perfekt ausgestattet, und kannst auf allen Geräten testen...

betateilchen

Das Modul hat gerade zwei neue Attribute bekommen.


  • ga_showQR: analog zu ga_showKey und ga_showLink wird die Anzeige des QR-codes gesteuert.
  • ga_strictCheck: steuert, ob gegen das aktuell gültige token (Wert=1) oder wie bisher gegen drei gültige tokens (Wert=0) geprüft wird.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!


betateilchen

jo

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

JoeALLb

Klappt sehr gut, vielen Dank für die Integration!

Nutze es im Moment für basicAuth, wie oben beschrieben:

Frage:
# Kann man irgendwo anzeigen, wie lange das Login noch gültig ist?
# Kann man nach erfolgter Autentifizierung diese IP für längere Zeit für mehrere Devices freischalten?
# Kann ich in FHEm anzeigen, als welcher Benutzer ich gerade über basicAuth eingeloggt bin? ("bt" im oberen Beispiel).

Hintergrund:
Grundsätzlich gehe ich davon aus, dass Zugriffe bei mir für 24h erlaubt sind, wenn ich mich einmal mit einem Token angemeldet habe.
Nun könnte ich über telegramm das basicAuth einfach für 24h deaktivieren, wenn der Token korrekt geprüft wurde... eine
andere Lösung wäre natürlich einfacher. Schön wäre es eben auch, wenn ich irgendwo in der Kopfzeile oder links im Menü anzeigen könnte, welcher Benutzer gerade eingeloggt ist...

Edit1: Frage 1 korrekt formuliert.
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

betateilchen

Das sind alles keine Fragen, die mit dem Authenticator-Modul zusammenhängen, sondern mit dem Frontend von fhem.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

JoeALLb

Zitat von: betateilchen am 17 Januar 2017, 15:16:27
Das sind alles keine Fragen, die mit dem Authenticator-Modul zusammenhängen, sondern mit dem Frontend von fhem.

Hast ja recht, danke und sorry ;-) .. Irgendwie passte es halt doch zusammen.

Zitat von: pandabear_de am 15 Januar 2017, 12:34:14
Das mit dem Token immer an der ersten Stelle passt nicht ganz zum Plan.

Sollte es hilfreich sein, hier meine Lösung.
Ich prüfe, ob 6 Zahlen am Ende des Strings sind.
Davor muss ein Leerzeichen oder der Nachrichtenbegin sein.
Danach darf noch ein Leerzeichen kommen (da meine Tastatur am Schluss manchmal automatisch ein Leerzeichen anfügt).
Mit diesem Code bin ich am flexibelsten und habe die oben angesprochenen Probleme nicht....


$EVENT =~ m/(?:\s|^)(\d{6})\s?$/;
  my $GivenToken = $1;
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

weini

Ich habe eine Frage zum Notify Script aus dem ersten Post:

Verstehe ich das richtig, dass ich bei diesem Vorgehen die Befehls-Optionen (also cmdKeyword, cmdFavorites etc.) des TelegramBot Moduls deaktivieren muss und das Notify als "Alternative" dazu fungiert?

pandabear_de

Hi weint,
ich habe bei mir keine Einstellungen für cmdKeywotd etc vorgenommen. Der komplette Dialog läuft über das Script. Dies war aber keine bewußte Entscheidung, sondern nur der gewählte Lösungsansatz.

Gruß
Jakob