Was ein sicheres Passwort ausmacht
Ein Passwort ist dann stark, wenn ein Angreifer es nur durch Ausprobieren sehr vieler Möglichkeiten finden kann. Entscheidend sind zwei Größen: die Länge und der Zeichenvorrat, aus dem jedes Zeichen zufällig gewählt wird. Daraus ergibt sich die Entropie in Bit: Länge × log₂(Zeichenvorrat). Jedes zusätzliche Bit verdoppelt die Zahl der möglichen Passwörter.
Diese Rechnung gilt nur für wirklich zufällige Passwörter. Ein selbst ausgedachtes Passwort wie Sommer2024! enthält zwar Groß- und Kleinbuchstaben, Ziffern und ein Sonderzeichen, folgt aber einem Muster, das Angreifer gezielt zuerst ausprobieren. Der Generator oben nutzt deshalb ausschließlich die kryptografische Zufallsquelle des Browsers (crypto.getRandomValues) und verwirft Zufallswerte, die das Ergebnis verzerren würden (Rejection Sampling). So ist jedes Zeichen des Vorrats gleich wahrscheinlich.
| Zeichenvorrat | Anzahl | Bit je Zeichen | Bit bei 20 Zeichen |
|---|---|---|---|
| nur Ziffern | 10 | 3,32 | 66,4 |
| Kleinbuchstaben | 26 | 4,70 | 94,0 |
| Klein- und Großbuchstaben, Ziffern | 62 | 5,95 | 119,1 |
| zusätzlich 13 Sonderzeichen (Standard oben) | 75 | 6,23 | 124,6 |
| alle druckbaren ASCII-Zeichen ohne Leerzeichen | 94 | 6,55 | 131,1 |
Die Stufen im Tool sind eine Faustregel: unter 50 Bit gilt ein Passwort als schwach, 50 bis 79 Bit als gut, ab 80 Bit als sehr stark. Die angezeigte Brute-Force-Dauer ist eine grobe Schätzung für das vollständige Durchsuchen aller Möglichkeiten bei angenommenen 10¹⁰ Versuchen pro Sekunde. Wie schnell ein Angreifer tatsächlich rechnen kann, hängt stark vom Hash-Verfahren und von seiner Hardware ab. Die Tabelle zeigt außerdem: Länge bringt mehr als exotische Zeichen. Wenn ein System bestimmte Sonderzeichen nicht verträgt, lassen Sie sie im Feld „Erlaubte Sonderzeichen“ weg und wählen stattdessen ein paar Zeichen mehr.
Passwörter für Basic-Auth: htpasswd mit APR1
Webserver und Reverse Proxies schützen Bereiche gern mit HTTP-Basic-Authentifizierung. Dort steht nicht das Passwort selbst, sondern eine Zeile aus Benutzername und Hash, zum Beispiel admin:$apr1$…. Das Format APR1 ist eine Apache-Variante von MD5-crypt mit 1000 Runden und einem zufälligen Salz aus acht Zeichen. Apache, nginx und Traefik lesen es direkt; das Apache-Werkzeug htpasswd -m erzeugt dasselbe Format.
In Docker-Compose-Dateien wertet Compose das Zeichen $ als Beginn einer Variablen aus. In Traefik-Labels muss deshalb jedes $ des Hashes als $$ geschrieben werden. Das Tool gibt diese Variante fertig aus:
labels:
- "traefik.http.middlewares.auth.basicauth.users=admin:$$apr1$$Salz1234$$…"
Wie Sie die Middleware einbinden, zeigt die Anleitung Traefik als Docker-Reverse-Proxy mit HTTPS; für nginx finden Sie das Vorgehen unter Nginx als Reverse Proxy mit TLS einrichten. APR1 beruht auf MD5 und ist vergleichsweise schnell zu berechnen. Wo Ihr Server bcrypt unterstützt, etwa mit htpasswd -B, ist das die robustere Wahl. Schützen Sie Basic-Auth außerdem immer mit HTTPS, denn das Passwort wird bei jeder Anfrage mitgeschickt.
SHA-512-crypt für Linux-Konten
Hashes der Form $6$Salz$… folgen dem Verfahren SHA-512-crypt nach Ulrich Drepper. Standard sind 5000 Runden; mehr Runden machen jeden Rateversuch teurer und stehen dann als rounds= im Hash. Linux-Systeme akzeptieren das Format in /etc/shadow, und mit chpasswd -e setzen Sie ein Passwort direkt als Hash, ohne es im Klartext in ein Skript zu schreiben. Neuere Distributionen verwenden für neue Passwörter teils yescrypt; SHA-512-crypt wird dort weiterhin gelesen.
# Hash selbst auf der Kommandozeile erzeugen (fragt das Passwort ab)
openssl passwd -6
# Passwort eines Kontos per Hash setzen
echo 'benutzer:$6$…' | sudo chpasswd -e
Die einfachen Anführungszeichen sind wichtig: Ohne sie würde die Shell die $-Teile des Hashes als Variablen auswerten.
Praxistipps
- Verwenden Sie für jeden Dienst ein eigenes Passwort und speichern Sie es in einem Passwort-Manager. Wie Sie das im Team organisieren, beschreibt Sichere Passwörter und Passkeys im Unternehmen; einen selbst gehosteten Manager zeigt Vaultwarden produktiv betreiben.
- Aktivieren Sie zusätzlich einen zweiten Faktor, wo es geht. Den QR-Code für Authenticator-Apps erzeugt der 2FA-QR-Generator.
- Prüfen Sie im Feld „Eigenes Passwort prüfen“ nur Passwörter auf Geräten, denen Sie vertrauen. Das Tool arbeitet zwar vollständig lokal, aber Erweiterungen im Browser könnten Eingaben mitlesen.
Häufige Fragen
Wie lang sollte ein Passwort sein?
Für Konten, die Sie in einem Passwort-Manager speichern, sind 20 zufällige Zeichen aus Buchstaben, Ziffern und Sonderzeichen ein guter Standard – das sind rund 125 Bit. Für Passwörter, die Sie sich merken müssen, etwa das Hauptpasswort des Passwort-Managers, eignet sich eher eine lange Passphrase aus zufällig gewählten Wörtern.
Warum sieht der Hash bei jedem Erzeugen anders aus?
APR1 und SHA-512-crypt verwenden ein zufälliges Salz, das vorne im Hash steht. Dadurch ergibt dasselbe Passwort jedes Mal einen anderen Hash, und vorberechnete Tabellen nützen Angreifern nichts. Der Server liest das Salz beim Anmelden aus dem gespeicherten Hash und rechnet damit nach.
Werden meine Passwörter gespeichert oder übertragen?
Nein. Erzeugung, Stärkeberechnung und Hashes laufen per JavaScript in Ihrem Browser. Es gibt keine Anfrage an einen Server. In der Adresszeile merkt sich das Tool nur Ihre Regeln wie Länge und Zeichengruppen, nie ein Passwort.
Sind Passphrasen aus Wörtern sicher?
Ja, wenn die Wörter zufällig gewählt werden. Beim Diceware-Verfahren mit einer Liste von 7776 Wörtern bringt jedes Wort etwa 12,9 Bit; sechs Wörter ergeben rund 77 Bit. Selbst ausgesuchte Wörter, Liedzeilen oder Zitate sind dagegen deutlich leichter zu erraten.
Welches Format braucht Traefik für Basic-Auth?
Traefik erwartet Einträge der Form benutzer:hash und unterstützt unter anderem APR1 (MD5) und bcrypt. Übernehmen Sie die htpasswd-Zeile oder – in Labels einer Docker-Compose-Datei – die Variante mit verdoppelten $.