Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Passworte: eierlegende Wollmilchsau gesucht (https://www.delphipraxis.net/211187-passworte-eierlegende-wollmilchsau-gesucht.html)

EdAdvokat 11. Aug 2022 15:18

AW: Passworte: eierlegende Wollmilchsau gesucht
 
in den Beispielen von cnpack findet man ebenfalls ein OTP-Beispiel ähnlich dem von Phoenix

https://github.com/cnpack/cnvcl

Rollo62 12. Aug 2022 08:40

AW: Passworte: eierlegende Wollmilchsau gesucht
 
TOTP mit Timestamp ist eine schöne Idee, das stimmt.
Ich gehe aber davon das die "Anlage" nicht unbedingt am Netz hängt oder sonstwie eine genaue Zeit bekommt.

Wie ist in dem TOTP-Standard denn die "Genauigkeit" der Uhrzeit/Datum definiert ?
Ich vermute mal die Uhrzeit kann in einem freilaufenden Windows mal ziemlich abweichen, ich habe sowas hier schon gesehen aber nie getestet.

rabatscher 12. Aug 2022 10:21

AW: Passworte: eierlegende Wollmilchsau gesucht
 
Zitat:

Wie ist in dem TOTP-Standard denn die "Genauigkeit" der Uhrzeit/Datum definiert ?
Ich vermute mal die Uhrzeit kann in einem freilaufenden Windows mal ziemlich abweichen, ich habe sowas hier schon gesehen aber nie getestet.
Hier ist eine Beschreibung des "URL" formats - der Url kann
dann in einen QR Code gesteckt werden und der wiederum kann von den Authenticator Apps (goolge oder Microsoft) gelesen werden.

Die Periode lässt sich im URL angeben - Standard ist 30 Sekunden - und soweit ich gesehen habe machen das so ziemlich alle so.
Ausserdem kann man die Anzahl der Digits angeben - Standard ist 6 - auch hier sollte nicht unbedingt am Standard gerüttelt werden.
Diese Periode gibt eigentlich nur an in welchem Inervall sich der Code ändert. Clientseitig kannst du noch definieren welchen "Overlap" du zulässt.
Wir erlauben da ein Window von +- 2min . D.h ein Code ist schlimmstenfalls 5 minuten gültig.

Und... zu beachten gilt noch, dass die Authenticator aps die UTC time zone verwenden ;)

Wenn es jemanden interessiert kann ich einen Teil unseres Sourcodes beisteuern. Er hat allerdings einige 3rd Party Abhängigkeiten (DEC, Indy, Dec, ZXingQR),
die noch hinzugefügt werden müssten.

Rollo62 12. Aug 2022 13:24

AW: Passworte: eierlegende Wollmilchsau gesucht
 
Ja danke für die Links, da gibt es auch das schöne Live-Demo.

Die Frage bleibt bei mir aber offen, was wenn kein Internet und Anlage und Handy komplett andere Datetime gesetzt haben ( Offline-Betrieb ).
Z.B. Anlage 11.06.22 14:00 und Handy 12.08.22 17:00

Ich habe das TOTP nicht im Detail gecheckt, aber ich bin aber immer davon ausgegangen das ein Timeserver oder zumindest eine einigermaßen verlässliche, gemeinsame Uhrzeit vorhanden sein muss.
Siehe auch hier mal in einfachen Worten

Vermutlich kann man dann nur noch HOTP mit einem Zähler benutzen, was aber auch Nachteile hat.

Eine Idee wäre der URI einfach die aktuelle Datetime der Anlage mitzusenden, welche dann der Authenticator nutzen kann.
Ich vermute mal mit der offenen Parameterbeschreibung wäre es möglich weitere, kundenspezifische Parameter anzuhängen.

Oder braucht das Handy zum Entschlüsseln die Datetime gar nicht zu wissen ?

rabatscher 12. Aug 2022 13:42

AW: Passworte: eierlegende Wollmilchsau gesucht
 
TOTP ist ja Zeitbasiert und naja es ist ja das Ziel den SHA-1 hash mit key und counter zu errechnen wobei counter
Zeitbasiert ist - konkret die Unix UTC Zeit modulo der Periode.
Die "Windowsize" ist ja dazu da um nicht ganz gleich laufende Systeme zu unterstützen aber bei
Stunden wenn nicht Tagen macht das Verfahren ja wenig Sinn.

Also entweder den counter selbst immer um eins hochzählen wenn die Eingabe gemacht wurde oder
evt. noch besser: Einen Fido Key nehmen ;) das ist grad das so ziemlich Sicherste was es gibt.
Das Funktioniert dann auch ganz ohne Passwort bzw. man muss es nur beim Erstellen angeben wenn gewünscht
-> also einstecken, draufdrücken, fertig

himitsu 12. Aug 2022 13:45

AW: Passworte: eierlegende Wollmilchsau gesucht
 
Dann kann aber auch ein böser Junge*innen einfach "irgendeine" Zeit mitgeben ... vorzugsweise Die, von der er den Code bereits kennt. :angle2:

Das ist ja grade der Grund, warum dafür eine externe, nicht beeinflussbare, Zeit verwendet wird.



Andersrum ginge es, also die Authentificator-App bekommt die Zeit vom Server (nicht der Server die Zeit von der App), so lange man den Server als sicher betrachten kann.



Wenn dein Rechner also kein "Internet" hat, dann gib ihm doch einfach eine andere Uhr?
DCF77

Rollo62 12. Aug 2022 13:56

AW: Passworte: eierlegende Wollmilchsau gesucht
 
Zitat:

Zitat von himitsu (Beitrag 1510060)
Das ist ja grade der Grund, warum dafür eine externe, nicht beeinflussbare, Zeit verwendet wird.

Ja nur woher nehmen, wenn nicht (Zeit) stehlen ?

Soweit ich weiß hat schon Albert Einstein an dem Problem gearbeitet, als er noch im Patentamt bechäftigt war, und hat wohl auch keine Lösung gefunden :stupid:

Mein Projekt war z.B. eines mit einem kleinen 32-Bit Controller, ohne Wifi, ohne RTC, ohne großes Display ( nur kleines TN ), ohne sonstwas.
Da muss man halt etwas tricksen, was dann natürlich nicht 100% sicher sein muss.
Da habe ich mit einem OTP-Pool an PIN-Codes gearbeitet, die natürlich irgendwann mal aufgebraucht sein können, aber auch nur extrem selten benötigt werden.

So habe ich auch die Aufgabe von dem den TN verstanden, nur ein paar vorwitzige Bediener abhalten.

rabatscher 12. Aug 2022 14:11

AW: Passworte: eierlegende Wollmilchsau gesucht
 
Probier mal:
https://webauthn.io/

Die Seite zeigt recht schön was mit Webauthn/Fido2 so möglich ist
-> die API sind nur ein paar Funktionsaufrufe.
Wie gesagt... man braucht da halt nen Fido Key ;)

Uwe Raabe 12. Aug 2022 15:28

AW: Passworte: eierlegende Wollmilchsau gesucht
 
Zitat:

Zitat von rabatscher (Beitrag 1510059)
-> also einstecken, draufdrücken, fertig

Kann man das auch zum Laufen bringen, wenn der Service-Techniker z.B. per Remote-Desktop oder TeamViewer auf das System geht?

rabatscher 12. Aug 2022 21:33

AW: Passworte: eierlegende Wollmilchsau gesucht
 
Der Guide besagt, dass User Authentication (pin) und
oder User Presence (also drücken des Keys) benutzt werden können. Also ein Pin reicht prinzipiell bzw.
auch ein einfaches drücken.

WebAuthn ist ja eigentlich auch fürs Web konzipiert und auch in allen aktuellen Browsern implementiert (über die Webauthn.dll).

Das Ding ist nur... wenn die Zeit nicht aktuell ist, dann wird er auch kein Internet haben ;) also in diesem Fall muss ein Techniker vor Ort sein.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:56 Uhr.
Seite 2 von 3     12 3      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz