Einfacher Passwort-Generator unter Java

Das Ausdenken von Passwörtern ist prinzipiell eine schlechte Idee; besser ist es, wenn diese automatisch generiert werden. Ein solcher Generator kann problemlos selbst geschrieben werden. In diesem Fall in Java:

public class PasswordGenerator {

    private static final SecureRandom secureRandom = new SecureRandom();

    private static final String alpha = "abcdefghijklmnopqrstuvwxyz";
    private static final String alphaCaps = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    private static final String numeric = "0123456789";
    private static final String specials = "!§$%&/()=?.:,;+*#<>";

    public enum CharacterSet {
        Alpha,
        AlphaCaps,
        AlphaBoth,
        Numeric,
        AlphaNumeric,
        Special,
        All
    }

    private static String getCharacters(CharacterSet characterSet) {

        switch (characterSet) {
            case Alpha:
                return alpha;
            case AlphaCaps:
                return alphaCaps;
            case AlphaBoth:
                return alpha + alphaCaps;
            case Numeric:
                return numeric;
            case AlphaNumeric:
                return alpha + alphaCaps + numeric;
            case Special:
                return specials;
            case All:
                return alpha + alphaCaps + numeric + specials;
        }

        return alpha;
    }

    public static String generatePassword(int length, CharacterSet characterSet) {

        String characters = getCharacters(characterSet);
        StringBuilder stringBuilder = new StringBuilder();

        for (int i = 0; i < length; i++) {
            stringBuilder.append(characters.charAt(secureRandom.nextInt(characters.length())));
        }

        return stringBuilder.toString();
    }
}

Der Generator funktioniert im Groben so, das aus einem bestimmten Zeichenvorrat zufällig Zeichen gewählt und aus diesen das Passwort erzeugt wird. Als Zufallsquelle kommt nicht die gebräuchliche Klasse Random zum Einsatz, sondern die Klasse SecureRandom. Diese von Random abgeleitete Klasse erzeugt aus kryptografischer Sicht starke Zufallszahlen, was die Sicherheit des Generators erhöht. Als kleines Gimmick lässt sich der gewünschte Zeichensatz, aus welchem das Passwort generiert werden soll, über einen Enum auswählen:

String s = PasswordGenerator.generatePassword(64, PasswordGenerator.CharacterSet.All);
System.out.println(s);

Damit würde auf der Konsole ein Passwort mit 64 Zeichen ausgegeben werden, welches den kompletten Zeichenvorrat der Generator-Klasse nutzt.

Passwort eines MariaDB-Nutzers zurücksetzen

Um sich mit einer MariaDB-Datenbank zu verbinden wird ein Nutzer und ein Passwort benötigt. Wenn das Passwort verloren gegangen ist, ist dies allerdings kein Beinbruch, solange es sich um die eigene Installation handelt. In diesem Fall kann das Passwort einfach auf der Konsole zurückgesetzt werden. Dazu muss sich per SSH auf dem entsprechenden Server eingeloggt werden und dort das mysql-Tool mit dem Nutzer root gestartet werden:

mysql -u root

Nachdem dies geschehen ist, wird in der Kommandozeile auf die Tabelle mysql geschwenkt:

use mysql;

In dieser Tabelle finden sich die Verwaltungsdaten des Datenbanksystems. Über diese Tabelle ist es nun möglich den Nutzer mit einem neuen Passwort zu versehen:

update user set password=PASSWORD("geheim123") where User='username';
flush privileges;

Damit ist das Passwort für den entsprechenden Nutzer zurückgesetzt und das mysql-Tool kann mittels:

exit

verlassen werden. Anschließend kann der Nutzer mit dem neuen Passwort genutzt werden.

Firefox Passwörter mit einem Master-Passwort schützen

Der freie Browser Firefox kann (wie so ziemlich jeder Browser) Passwörter für Webseiten speichern. Dieser Passwörter werden dabei verschlüsselt in einer Datei gespeichert. Allerdings wird diese Datei automatisch entschlüsselt wenn Firefox läuft – was problematisch ist wenn andere Personen einen Zugang zum Rechner haben.

In den Einstellungen kann das Master-Passwort gesetzt werden

In den Einstellungen kann das Master-Passwort gesetzt werden

Möchte man hier Abhilfe schaffen, so kann man ein Master-Passwort definieren. Ohne dieses Passwort ist anschließend kein Zugriff mehr auf die Passwörter möglich. Um das Master-Passwort zu setzen müssen die Einstellungen und dort der Tab Sicherheit geöffnet werden. Sobald man dort Master-Passwort verwenden aktiviert ist, wird man nach dem gewünschten Master-Passwort gefragt. Ist das Master-Passwort gesetzt, wird man, sobald man das erste Mal in einer Sitzung auf den Passwortspeicher zugreifen möchte, nach dem Passwort gefragt. Für den Rest der Sitzung wird der Passwortspeicher schließlich offen gehalten.

Gespeicherte Passwörter im Firefox in 1Password importieren

Möchte man seine im Firefox gespeicherten Passwörter in den Passwortmanager 1Password importieren, so müssen die Passwörter des Firefox im ersten Schritt exportiert werden. Dazu kann das Add-On Password Exporter genutzt werden.

Password Exporter
Price: Free

Nachdem das Add-On installiert wurde, können die Passwörter im Einstellungsdialog des Add-Ons in das CSV-Format exportiert werden. Die exportiere CSV ist dabei leider nicht kompatibel zu 1Password 4 und 5. Aus unerfindlichen Gründen wurden die Importfunktionen in diesen Versionen stark beschnitten. Stattdessen muss man hier zur Version 3 von 1Password greifen.

Der CSV-Importer von 1Password 3

Der CSV-Importer von 1Password 3

Der CSV-Import der 3er Version ist wesentlich mächtiger – in diesen kann die erzeugte CSV-Datei geladen werden und die Felder können über einen Dialog zugewiesen werden und anschließend in den Passwortmanager überführt werden. Danach kann der Passwortspeicher in eine 1-Password-Austauschdatei exportiert werden, welche wiederum problemlos die aktuelle 1Passwort-Version importiert werden kann.

Zwei-Faktor-Authentifizierung

Wenn man sich bei einem Webdienst anmeldet, so geschieht das meist mittels eines Passwortes. Das Problem an dieser Art von Authentifizierung ist das man nur mit Hilfe des Passwortes einen Account übernehmen kann. Bei der Zwei-Faktor-Authentifizierung läuft das ganze etwas anders. Hier bekommt der Nutzer zusätzlich noch ein Token oder muss sich mittels einer TAN oder seinem Fingerabdruck identifizieren.

twofactorauth.org

twofactorauth.org

Viele bekannte Webdienste bieten diese Möglichkeit der Authentifizierung mittlerweile an. Meist bekommt man eine SMS mit dem Code, oder nutzt einen Generator auf seinem Smartphone. Wenn man sich informieren möchte, ob der gewünschte Webdienst eine Zwei-Faktor-Authentifizierung unterstützt, so sollte man twofactorauth.org besuchen. Auf der Webseite ist übersichtlich dargestellt welche Dienste eine solche Authentifizierung anbieten und welche es planen. Auch ist es möglich dem Dienst direkt mitzuteilen, das man sich eine Zwei-Faktor-Authentifizierung wünscht.