Login von Frank Olzog

0. Aufgabe des AutoHotkey-Programms Login (getestet ab Windows 98SE bis Windows 7)

Das Programm Login generiert aus einem Masterpasswort sehr sichere Passwörter für beliebige Provider. Die generierten Passwörter können für jeden Provider unterschiedlich sein und die maximale Stärke, die der Provider zulässt, ausnutzen.
Als Zugabe wird der Login-Vorgang stark vereinfacht und kann protokolliert werden.

1. Software-Lizenz

Das Programm Login ist Freeware im Sinne der GNU GENERAL PUBLIC LICENSE Version 2, June 1991. Es darf beliebig, ohne jegliche Einschränkungen, benutzt und auch verändert werden.

2. Programmbeschreibung

Der Parameter "Providerpasswort" aus der ini-Datei und das einzugebende Masterpasswort werden mittels SHA-1 gehasht. Aus diesem Hashwert wird ein Passwort gebildet. Dabei wird der Inhalt jedes Bytes des Hashwertes auf genau ein Zeichen des Zeichenvorrats für das Passwort abgebildet. Zusätzlich wird sichergestellt, dass mindestens ein Zeichen jeder zulässigen Zeichenart im generierten Passwort enthalten ist.
So ist es möglich, dass man sich nur noch ein einziges Masterpasswort merken muss, und dennoch für jeden Provider unterschiedliche und auch starke Passwörter verwendet (woher weiss ich, was mein Provider mit meinem Passwort macht?). Um starke Passwörter für die Provider zu erhalten, muss das Masterpasswort selbst nicht besonders stark sein.
Über die Taste "Anzeigen" wird der Loginname und das generierte Passwort des ausgewählten Providers angezeigt und zusätzlich auf Funktionstasten gelegt. So ist es z.B. möglich, das Passwort mittels Funktionstaste direkt in ein Eingabefeld zu kopieren. Dies ist vor allem dann hilfreich, wenn eine Passwortänderung nötig ist.
Auch um das Programm überhaupt benutzen zu können, muss ja zuerst für jeden Provider das Passwort gesetzt werden, das vom Programm generiert wird.
Beim Klicken auf die Taste "Login" wird die in der ini-Datei festgelegte Webseite geöffnet oder das dort eingetragene Programm gestartet. Anschließend wird gewartet, bis man mit der linken Maustaste in das Feld klickt, in das der Loginname gehört. Nun wird mit der, in der ini-Datei festgelegten Loginsequenz, der Loginvorgang gestartet.

3. Tipps

4. Aufbau der ini-Datei

Diese muss im gleichen Verzeichnis wie das Programm Login liegen und den gleichen Namen haben, jedoch mit der Extension "ini"
Im einfachsten Fall enthält diese Datei nur eine Zeile, z.B.

;Web.de;1;http://www.web.de/fm/;mein.loginname

4.1 Providerzeilen

Je eine Zeile für einen Provider, der Provider aus der ersten Zeile ist beim Programmaufruf vorausgewählt.
Aufbau Providerzeile: ;Bezeichnung;Providerpasswort;Programmaufruf/URL;Loginname;Loginsequenz;Passwortlänge;Sonderzeichen;erlaubte Passwortzeichen

Unbedingt beachten:
Änderungen an diesen Providerzeilen können zu neuen Passwörtern führen.

4.2 Parameterbeschreibung

4.3 Vorgaben für alle Provider

Das erste Zeichen dieser Zeilen ist das Trennzeichen (hier Space) dieser Zeile. Genau wie hier angegeben, stehen die Vorgaben auch im Programm. Mit den folgenden Zeilen können die Vorgaben aus dem Programm überschrieben werden.

Sonderzeichen !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
Zeichen GKZS (erlaubte Passwortzeichen)
Kleinbuchstaben abcdefghijklmnopqrstuvwxyz
Groszbuchstaben ABCDEFGHIJKLMNOPQRSTUVWXYZ
Ziffern 0123456789
Passwortlaenge 20
Wenn in einer Providerzeile die Länge angegeben wurde, gilt die Längenangabe aus der Providerzeile!
LoginSequenz IDLTPE
Wenn in einer Providerzeile eine Loginsequenz angegeben wurde, gilt nur die aus der Providerzeile!

4.4 zusätzliche Parameter

Das erste Zeichen dieser Zeilen ist das Trennzeichen (hier Space) dieser Zeile und es drüfen nur diese zwei Werte in einer Zeile stehen.

Logfile On
;; legt fest, dass jeder Loginversuch protokolliert wird
SaveMasterPassword Off
;; legt fest, dass das Masterpasswort nicht gespeichert werden kann
SelectHash On
;; legt fest, dass die Hashfunktion ausgewählt werden kann.
HashVersion SHA-1
;; legt die Hashfunktion fest (zur Zeit nur SHA-1
LoginTime 25
;; legt fest, dass 25 Sekunden auf das Klicken ins Loginfeld gewartet wird.
AppClose On
;; legt fest, dass das Programm Login nach jedem Loginvorgang beendet werden soll.
InternetCheck On
;; legt fest, dass beim Loginvorgang die Internetverbindung geprüft wird.

4.5 Providerzeilen-Muster

;Google;google;https://www.google.com/accounts/Login;mailadresse;IDLPTSTE;;.,?!+-
;Atelco;atelco;https://www3.atelco.de/profilregis.jsp?profil.ident_referrer=home.jsp;mailadresse
;Windows Live;wlive;https://login.live.com/;mailadresse;;;+-(),./+-(),./+-(),./+-(),./
\Stay Friends\stayfriends\http://www.stayfriends.de/j/ViewController?action=login&ssl=true\mailadresse\IDLTTTPE\\;_()[]=/*+-#!?.:^|~\
;Conrad Electronic;conradk;http://www.conrad.de/;mailadresse
;Skype;skype;C:\Programme\Skype\Phone\Skype.exe;account;;;;GKZ
;Skype Web;skype;https://secure.skype.com/account/intl/de/login;account;;;;GKZ
;Web.de Mail;Google;google;https://www.google.com/accounts/Login;mailadresse;IDLPTSTE;;.,?!+- ;Atelco;atelco;https://www3.atelco.de/profilregis.jsp?profil.ident_referrer=home.jsp;mailadresse ;Web.de Kundencenter;web.de;https://kundencenter.web.de/;account
öTköTköhttps://www.tk-online.de/centaurus/generator/tk-online.de/Formulare/LoginSE/Formular.htmöaccountöö16
;Vattenfall;Vattenfall;https://www.vattenfall.de/www/vf/vf_de/202406priva/index.jsp;account;;;10;;GKZ
;Arcor;Arcor;http://www.arcor.de;account;IDLTPTSTE;8;_()\/+-?.
;Verwand.de;verwand.de;https://www.verwandt.de/Login.action;mailadresse;IDLTPTT;;;GKZ
;Simply;handy;https://service.simplytel.de/;telefonnummer;;8;;GKZ

5. Hinweise zur Sicherheit

Es wird kein Passwort eines Providers gespeichert. Diese werden stets aufs Neue generiert - und unter gleichen Voraussetzungen, entstehen stets gleiche Passwörter.

Nur wer Zugang zu den Login-Daten, die Ihr Provider gespeichert hat, und zu Ihrer ini-Datei hat, kann per Brute-Force (durch Ausprobieren aller Masterpasswörter) versuchen, Ihre Zugangspasswörter zu ermitteln.

Nur wer Ihr Masterpasswort kennt und an Ihre ini-Datei gelangt, hat Zugang zu allen Ihren Diensten.

Die persönliche ini-Datei sollte dann geheim gehalten werden, wenn das Masterpasswort zu einfach gewählt wurde. Mit der ini-Datei und dem frei zugänglichen Programm Login könnte ein Angreifer per Brute-Force versuchen, das Masterpasswort zu ermitteln. Auch die in der ini-Datei gespeicherten Daten wie Loginname, Provider, Passworteigenarten könnten einem Angreifer von Nutzen sein. Wer ganz sicher gehen möchte, nimmt fiktive Daten für die Provider und Loginnamen - die richtigen Daten muss man sich dann jedoch merken.

Das Masterpasswort kann per AES-256-bit-Verschlüsselung gespeichert werden, jedoch nur, wenn das Script neu übersetzt wurde. Zum Verschlüsseln wird ein Schlüssel benötigt, der im Programm Login.exe gespeichert wird. Mit SetupLogin kann das Programm neu compiliert werden, dabei wird von der Webseite www.random.org ein neuer AES-Schlüssel aus Zufallszahlen zusammengestellt. Hat jemand Zugriff auf das selbst übersetzte Programm Login.exe, kann er durch Debugging den AES-Schlüssel extrahieren und das gespeicherte Masterpasswort entschlüsseln. Und natürlich kann er auch einfach das Programm zum Zugang zu allen Proividern benutzen, auch ohne das Masterpasswort zu kennen. Er kann sich auch alle generierten Passwörter auslesen. Daher sollte die Speicherfunktion für das Masterpasswort nur benutzt werden, wenn dritte keinen Zugriff auf das Programm haben. Bspw. wenn das benutzte Filesystem sicher verschlüsselt ist (Empfehlung vom Autor: mit TrueCrypt die ganze Systempartition verschlüsseln).

Denken Sie daran, dass nach dem Klicken auf den "Login-Button" die Loginsequenz 25 Sekunden lang "anliegt". Sie wird auch gestartet, wenn Sie in ein anderes, falsches Fenster klicken. Am grünen Fortschrittsbalken links oben und am Mauszeiger-Aussehen können Sie erkennen, dass das Programm noch auf Ihren Mausklick wartet.
Testen Sie es einfach aus, indem Sie nach dem Klicken auf den "Login-Button" mit dem Cursor in ein leeres Worddokument reinklicken.
Mit "Esc" kann der Loginvorgang abgebrochen werden.

Die Sicherheit der Funktion SHA-1 hat wenig Bedeutung für das Programm Login, da für die generierten Passwörter der Verleichswert fehlt. Ein Hacker müsste mit jedem generierten Passwort einen Loginversuch beim Provider absetzen.
Sobald eine stärkere Hashfunktion verfügbar ist, werde ich eine Programmversion damit erstellen - allerdings bedeutet dies auch, dass alle Passwörter an die neue Version angepasst werden müssen.



Da die per SHA-1 erzeugten Hashwerte nur 20 Zeichen lang sind, erhöht ein generiertes Passwort mit mehr als 20 Zeichen nicht unbedingt die Sicherheit.

6. Download/Installation

6.1. für ganz eilige

Legen Sie sich ein Verzeichnis für Login an und speichern Sie dort das Programm SetupLogin.exe. Anschließend starten Sie dieses Programm. Es wird eine Internetverbindung zum Nachladen von Programmteilen benötigt.

6.2. Minimalinstallation

Kopieren Sie sich die folgenden drei Dateien in ein separates Verzeichnis (z.B. \Programme\Login\). Nun können Sie das Programm sofort benutzen, indem Sie Login.exe starten.

6.3 Compilieren mit SetupLogin.exe

Möchten Sie Ihr Masterpasswort speichern, müssen Sie das Login-Script neu übersetzen. Dazu müssen Sie sich noch die folgenden Dateien in das gleiche Verzeichnis wie Login.ini und Login.exe downloaden: Anschließend das Programm SetupLogin.exe aufrufen - fertig ist Ihre individuelle Login.exe.

7. AutoHotkey-Homepage

8. upx-Homepage

von Frank Olzog, 26.08.2010