Das Bundesamt für Sicherheit und Informationstechnik (BSI) hat eine Reihe von Empfehlungen für sichere Kennwörter herausgegeben. Die Konferenz der unabhängigen Datenschutz-Aufsichtsbehörden des Bundes und der Länder (DSK) hat das Thema nun in ihrer "Orientierungshilfe: Anforderungen an Anbieter von OnlineDiensten zur Zugangssicherung" aufgegriffen und vertieft. Dabei greift die DSK insbesondere die folgenden Punkte auf:
- Die Passwortstärke soll gemessen und angezeigt werden
- Passwortwechsel (z.B. nach Zeitablauf) sollen nur noch in Sonderfällen erzwungen werden
- Es soll ein Prozess für den Umgang mit fehlgeschlagenen Anmeldeversuchen integriert werden
- Es soll ein sicheres Passwort-Reset-Verfahren integriert werden
- Passwörter sollen nur verschlüsselt gespeichert und übertragen werden
Wie sieht ein sicheres Kennwort aus?
- Mindestens acht Zeichen (je länger, desto besser)
- Groß- und Kleinbuchstaben sowie Sonderzeichen und Ziffern
- Möglichst keine Umlaute (denken Sie an Reisen ins Ausland und das Fehlen deutscher Buchstaben auf ausländischen Tastaturen)
Selbstverständlich sollten Sie sich auch über die Speicherdauer und Wiederholung von Kennwörtern Gedanken machen:
- Ist das gewählte Kennwort dauerhaft gültig oder muss es alle 30, 60, 90 oder x Tage geändert werden? Interessant ist an dieser Stelle, dass die DSK eine Änderung des Kennworts nach einer gewissen Frist nur noch in Sonderfällen für sinnvoll hält
- Dürfen Kennwörter, die einmal verwendet wurden, wiederholt eingesetzt werden?
Passwort vergessen
Ein weiterer Aspekt betrifft die „Passwort vergessen“-Funktion. Der klassische Weg sieht folgendermaßen aus: der Besucher muss seinen Benutzernamen oder seine E-Mail-Adresse eingeben und bekommt ein neues Kennwort zugeschickt. Nun kann ich jemanden, dessen E-Mail-Adresse ich kenne, ein wenig ärgern, indem ich ihm ein neues Kennwort generiere. Ist vielleicht nicht sicherheitsrelevant, Dank Hiobsbotschaften über gehackte Accounts aber sicherlich kommunikativ ungeschickt. Ich empfehle meinen Kunden eine zweistufige Variante:
- Eingabe der E-Mail-Adresse oder des Benutzernamens
- Versand einer E-Mail mit einer Information über die Anforderung neuer Zugangsdaten mit einem Link, der nur eine bestimmte Lebensdauer hat
- Erst beim Klick auf den Link kann sich der Besucher ein neues Kennwort, selbstverständlich gemäß der Passwortrichtlinien aussuchen
Da wir gerade dabei sind möchte ich die Liste der Empfehlungen für alle „Nutzer“ von Kennwörtern ergänzen. Bitte achten Sie bei der Vergabe von Passwörtern auf folgende Punkte:
- Keine Namen von Familienmitgliedern, Haustieren, Freunden, Stars
- Keine persönlichen Daten wie Adresse, Geburtsdatum, Hochzeitstag
- Keine generischen Wörter (die beispielsweise im Wörterbuch vorkommen)
- Keine Wiederholungs- oder Tastaturmuster (asdf, 1234)
Höhere Sicherheit dank Zwei-Faktor-Authentifizierung
Wer die Sicherheit seiner Applikation erhöhen möchte, sollte sich mit dem Thema Zwei-Faktor-Authentifizierung beschäftigen. Zusätzlich zu einem starken Kennwort muss sich der Benutzer dabei mit einer weiteren Angabe verifizieren. Es gibt dafür zahlreiche technische Wege. Es können nach der Eingabe des Passworts ein Code per SMS verschickt werden oder es wird eine TAN eines hardware-gestützten Generators erwartet. Viele Anbieter setzen mittlerweile auch auf Authentifizierungs-Apps.
MD5, SHA1 und Salted Values
Wie sollen Kennwörter in einer Datenbank gespeichert werden? niemals in Klartext. Verwenden Sie Hash-Verfahren um das Kennwort unkenntlich zu machen. Verfahren wie MD5 oder SHA1 generieren aus einem Klartext Prüfsummen, aus denen man den ursprünglich eingegebenen Wert nicht ermitteln kann. Leider gibt es mittlerweile zahlreiche Wörterbücher, die aus den Hash-Werten mögliche Klartextpasswörter vorschlagen. Insbesondere bei einfachen Kennwörtern können mittels sog. Rainbow Tables ursprüngliche Zeichenfolgen für einen Hash-Wert ermittelt werden. Daher empfiehlt es sich den Hash-Wert zusätzlich zu „salzen“, also vor dem Hashen an das Kennwort noch eine bestimmte Zeichenfolge dranzuhängen. Das macht eine „Entschlüsselung“ nahezu unmöglich. Um das Thema noch auf die Spitze zu treiben: Hashen Sie gehashte Werte, z.B. mit einer Schleife, die x mal den Prozess durchläuft. Damit stoßen auch Angreifer mit spezieller Hardware an ihre Grenzen.
Praktische Helferlein
Um nicht den Überblick über die große Kennwortvielfalt zu verlieren, helfen uns sog. Passwordmanager, wie z.B. 1Password. In einer Art Tresor werden alle Kennwörter gespeichert. Entsprechende Browser-Plugins ermöglichen es sich auf Knopfdruck auf einer Webseite einzuloggen. Bei der Vergabe neuer Kennworter unterstützten Passwordmanager auch durch Kennwortvorschläge.