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
-
Sichern Sie unbedingt die ini-Datei gut! Auch Ausdrucken ist als Sicherung
möglich. Nur mit den Providerpasswörtern und den Passwortregeln
aus dieser Datei (und Ihrem Masterpasswort) kommen Sie an Ihre
Passwörter.
Mit einem "rechte-Maus-Klick" kommen Sie an ein Kontextmenü und
können die ini-Datei editieren. Dabei wird jedes Mal eine neue
Sicherungskopie der bisherigen ini-Datei, mit Datum und Uhrzeit im
Dateinamen, angelegt.
-
Ändern eines einzelnen Passwortes eines Providers:
Einfach eine Kopie der entsprechenden ini-Datei-Zeile erstellen und dort den
Inhalt von "Providerpasswort" verändern. So hat man Zugriff auf altes
und neues Passwort.
-
Alle Passwörter ändern (?):
Einfach ein neues Masterpasswort verwenden. An die alten Passwörter kommt
man jederzeit durch Eingabe des alten Masterpasswortes.
-
Zwei (oder mehr) verschiedene einfache Masterpasswörter benutzen, um z.B.
dienstliches vom privaten zu trennen. Oder, wenn mehrere Personen das gleiche
Programm auf dem gleichen Computer benutzen. So kann man sowohl ein gemeinsames
Masterpasswort für gemeinsam benutzte Dienste als auch weitere
Masterpasswörter für die "eigenen" Dienste nutzen.
-
Möchte man, dass bestimmte Sonderzeichen im Passwort mit höherer
Wahrscheinlichkeit auftauchen, gibt man diese einfach mehrfach an. Als
Sonderzeichen können auch Buchstaben und Ziffern zusätzlich angegeben
werden, also alle denkbaren Zeichen, außer dem Trennzeichen zwischen den
Feldern. So ist es auch möglich, nur genau diese Zeichen zuzulassen
(erlaubte Passwortzeichen: "S").
-
Das Masterpasswort kann nur gespeichert werden, wenn das Programm Login
neu übersetzt wurde (mit SetupLogin.exe) und
in der ini-Datei der Wert SaveMasterPassword=On festgelegt ist.
-
Durch Umbenennen des Programms können verschiedene ini-Dateien genutzt
werden, da diese stets so heißen wie das Programm selbst. Auch
können so verschiedene Masterpasswörter gespeichert werden.
-
Verwenden Sie unbedingt unterschiedliche Providerpasswörter, sonst werden
gleiche Passwörter für unterschiedliche Provider generiert. Verwenden
Sie gleiche Providerpasswörter, wenn Sie sich bei einem Provider an
verschiedenen Stellen mit gleichem Passwort einloggen müssen, in der
Muster-ini-Datei z.B. bei Web.de und Skype.
-
Wenn Sie komplizierte, nicht erratbare Providerpasswörter verwenden, sind
Brute-Force-Angriffe auf Ihr Masterpasswort nur möglich, wenn der
Angreifer Ihre ini-Datei kennt.
-
Wird nicht innerhalb von 25 Sekunden nach dem Klicken auf "Login" die
Loginsequenz durch Klicken mit der linken Maustaste gestartet - die grüne
Fortschrittsanzeige muss zu sehen sein - wird dieser Vorgang abgebrochen.
-
Möchte man sich auf fremden Computern bei einem Provider einloggen, hat
man ein Problem. Entweder hat man das Programm und die ini-Datei dabei und
darf auf dem fremden Computer Programme starten - das sollte man sich aus
Sicherheitsgründen sehr genau überlegen, da man nie weiß,
was auf fremden Computern passieren kann (Keylogger!) - oder, man schreibt
sich das Passwort für den einen Dienst, den man unbedingt benutzen muss,
ab. Noch besser, man denkt sich für diesen Dienst ein Passwort aus und
setzt sich dieses eine Passwort vorher neu.
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:
-
Erstes Zeichen jeder Zeile = Trennzeichen in dieser Zeile
-
zwei gleiche Zeichen am Anfang einer Zeile = Kommentarzeile
;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.
-
Das Providerpasswort ist notwendig, damit bei verschiedenen Providern
verschiedene Passwörter erzeugt werden. Es könnte auch einfach eine
Nummerierung sein. Jede Änderung der Passwortregeln führt (meist)
zu neuen Passwörtern.
-
Werden für zwei verschiedene Dienste gleiche Passwörter
benötigt, muss das Providerpasswort bei beiden gleich lauten. z.B.
Skype-Programm und Skype im Web.
-
Bezeichnung, Loginsequenz, Loginname und Programmaufruf/URL können
jederzeit ohne Einfluss auf das Passwort geändert werden.
4.2 Parameterbeschreibung
-
Bezeichnung
Unter dieser Bezeichnung kann der Loginvorgang ausgewählt werden.
Providerpasswort
Diese Zeichenfolge wird mit für die Berechnung des Passwortes verwendet,
um für verschiedene Provider auch verschiedene Passwörter zu
generieren.
-
Programmaufruf/URL
Hier einfach die aufzurufende Webseite oder das aufzurufende Programm
eintragen. Als Parameter für den Aufruf
kann auch das berechnete Passwort übergeben werden. Die Zeichenfolge
%Passwort% wird in diesem Feld durch das tatsächliche Passwort ersetzt.
-
Loginsequenz
Diese wird nach einem Klick mit der linken Maustaste
gestartet.
z.B. "IDLTPTTE" -> Sobald Cursor im Eingabefeld: CTRL-A + DELETE /
Loginname / Tab / Passwort / Tab / Tab / Enter
-
I = Wartet nach dem Linke-Maustasten-Klick darauf, bis der Cursor im
Eingabefeld blinkt
-
U = Wartet nach dem Linke-Maustasten-Klick darauf, bis der Cursor ein
unbekanntes Symbol ist (z.B. Hand bei RTLnow)
-
T = Tab
-
R = Cursor nach unten
-
L = Loginname
-
P = Passwort
-
S = Space/Leerzeichen
-
D = Löschen Eingabefeld (CTRL-A, DELETE)
-
X = Löschen Eingabefeld mittels Backspace und Delete (je 30 mal)
-
E = Enter
-
W = Wartet 1 Sekunde
-
N = Tue nichts, nur sinnvoll, als einziger Parameter
-
Sonderzeichen
Wenn in einer Providerzeile Sonderzeichen angegeben wurden, gelten nur die aus
der Providerzeile!
-
erlaubte und geforderte Passwortzeichen
Wenn in einer Providerzeile Passwortzeichen angegeben wurden, gelten nur die
aus der Providerzeile!
Mehrfachangaben sind möglich, so kann bspw. garantiert werden, dass mindestens zwei Ziffern
im Passwort stehen werden: GKZZS
-
G = Großbuchstaben
-
K = Kleinbuchstaben
-
Z = Ziffern
-
S = Sonderzeichen
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.
von Frank Olzog, 26.08.2010