Zum Inhalt springen

Schwache Anforderungen an Passwörter

CWE-521OWASP A07:2021Aktualisiert 4. September 20264 Min. Lesezeit

Eine Anwendung, die kurze Passwörter zulässt oder bekannte geleakte Passwörter nicht sperrt, macht Raten und Wiederverwendung lohnend. Die klassischen Komplexitätsregeln mit Großbuchstaben und Sonderzeichen wirken dabei kontraproduktiv: Sie führen zu vorhersehbaren Mustern. Länge, eine Sperrliste und ein zweiter Faktor machen den Unterschied.

Wenige Sicherheitsthemen haben sich in den vergangenen Jahren so gründlich gewandelt wie die Passwortrichtlinie. Die Regeln, mit denen die meisten Anwendungen noch arbeiten, mindestens acht Zeichen, ein Großbuchstabe, eine Ziffer, vierteljährlicher Wechsel, gelten nach heutigem Stand nicht nur als überholt, sondern als schädlich. Im Folgenden lesen Sie, was an ihre Stelle tritt und warum.

Was sind schwache Passwortanforderungen?

Schwache Anforderungen an Passwörter sind Regeln, die zu wenig dagegen tun, dass Nutzer ein Passwort wählen, das leicht zu erraten oder aus früheren Datenlecks bereits bekannt ist. In der Praxis geht es meist um eine zu niedrige Mindestlänge, das Fehlen einer Prüfung gegen bekannte geleakte Passwörter oder das Zulassen von Passwörtern, die dem Benutzernamen oder dem Firmennamen entsprechen.

Zugleich gibt es eine weniger offensichtliche Seite. Regeln, die Komplexität erzwingen, mindestens ein Großbuchstabe, eine Ziffer, ein Sonderzeichen, erhöhen die Sicherheit kaum und senken sie mitunter sogar. Menschen reagieren auf solche Vorgaben mit vorhersehbaren Mustern: Willkommen2026! erfüllt jede Komplexitätsregel und steht in jeder Wortliste, die ein Angreifer verwendet.

Vergleichen Sie es mit einem Schloss, dessen Besitzer verpflichtet wird, einen Schlüssel mit einer bestimmten Zahl von Kerben zu wählen. Die Zahl der theoretischen Möglichkeiten steigt, doch weil alle dieselbe Form wählen, muss der Einbrecher nur eine Handvoll Schlüssel ausprobieren. Es zählt nicht, wie kompliziert das Passwort aussieht, sondern wie unvorhersehbar es tatsächlich ist.

Wie sieht eine sinnvolle Richtlinie aus?

Verwundbar:

function passwortIstGueltig(passwort) {
  return passwort.length >= 8
    && /[A-Z]/.test(passwort)
    && /[a-z]/.test(passwort)
    && /[0-9]/.test(passwort)
    && passwort.length <= 16;        // und nicht länger
}

Diese Prüfung lässt Sommer24! durch und weist die katze sprang über den blauen zaun zurück. Das ist genau verkehrt herum: Ersteres steht in praktisch jeder Liste häufig verwendeter Passwörter, während Letzteres deutlich mehr Entropie besitzt. Die Höchstlänge von sechzehn Zeichen ist zudem ein schlechtes Zeichen, denn bei einem korrekt gehashten Passwort besteht kein Grund, die Länge so eng zu begrenzen.

Sicher:

async function passwortIstGueltig(passwort, nutzer) {
  if (passwort.length < 12 || passwort.length > 128) return false;

  // Kein Passwort, das sich aus den eigenen Daten ableitet
  const eigen = [nutzer.email.split('@')[0], nutzer.name, 'assistsec'];
  const klein = passwort.toLowerCase();
  if (eigen.some((t) => t && klein.includes(t.toLowerCase()))) return false;

  // Aus früheren Datenlecks bekannt oder häufig verwendet
  if (await aufSperrliste(passwort)) return false;

  return true;
}

// Prüfung mit k-Anonymität: Das Passwort verlässt Ihre Umgebung nie
async function aufSperrliste(passwort) {
  const hash = sha1(passwort).toUpperCase();
  const antwort = await fetch(`https://api.pwnedpasswords.com/range/${hash.slice(0, 5)}`);
  const rest = hash.slice(5);
  return (await antwort.text()).split('\n').some((r) => r.startsWith(rest));
}

Der Schwerpunkt hat sich verschoben. Die Mindestlänge steigt auf zwölf Zeichen, die Höchstlänge ist großzügig genug für Passwortsätze, und es gibt keine Komplexitätsregeln mehr, die Muster hervorrufen. Stattdessen wird geprüft, worauf es wirklich ankommt: Ist dieses Passwort schon einmal geleakt, und lässt es sich auf den Nutzer selbst zurückführen? Bei der Prüfung gegen die Sperrliste werden nur die ersten fünf Zeichen des Hashwerts gesendet, das Passwort selbst verlässt Ihre Umgebung also nicht.

Erlauben Sie das Einfügen im Passwortfeld und blockieren Sie es nicht “aus Sicherheitsgründen”. Wer das Einfügen verhindert, macht den Einsatz eines Passwortmanagers unpraktisch und drängt Nutzer zu kurzen, von Hand eingetippten und damit schwächeren Passwörtern. Zeigen Sie stattdessen eine Stärkeanzeige statt einer Liste von Regeln.

Welche Auswirkungen hat eine schwache Passwortrichtlinie?

Der Schweregrad bleibt meist niedrig bis mittel, denn eine schwache Richtlinie gewährt für sich genommen keinen Zugang. Sie bestimmt, wie wahrscheinlich es ist, dass ein Angriff auf die Authentifizierung gelingt.

Zwei Angriffsformen profitieren unmittelbar davon. Beim Password Spraying probiert ein Angreifer ein verbreitetes Passwort auf vielen Konten; je mehr Nutzer ein vorhersehbares Passwort wählen durften, desto größer die Wahrscheinlichkeit eines Treffers. Beim Credential Stuffing werden Kombinationen aus früheren Datenlecks wiederverwendet; fehlt eine Sperrliste, kann ein Nutzer genau das Passwort wählen, das anderswo bereits offengelegt wurde.

Das Risiko erhöht sich dadurch, dass ein gelungener Angriff hier vollständigen Zugang verschafft, mit allen Rechten des Kontos und ohne dass etwas Ungewöhnliches in den Protokollen stehen müsste. Betrifft es ein Administratorkonto, wirkt sich das auf das gesamte System aus. Und da Menschen Passwörter zwischen Diensten wiederverwenden, trifft ein Leck bei Ihnen auch Konten derselben Nutzer anderswo, was neben einem Sicherheits- auch ein Reputationsproblem ist.

Wie spürt man eine schwache Passwortrichtlinie auf?

Ein Tester probiert bei der Registrierung und beim Ändern eines Passworts aus, welche Werte akzeptiert werden. Wird ein Passwort mit acht Zeichen zugelassen? Lässt sich Willkommen2026! wählen? Und der Benutzername selbst oder der Name der Organisation? Das ergibt schnell ein Bild der tatsächlichen Untergrenze.

Anschließend wird geprüft, ob die Regeln serverseitig durchgesetzt werden oder nur im Browser. Eine Prüfung, die ausschließlich in JavaScript steht, lässt sich mit einer einzigen direkten Anfrage umgehen, ein häufiger Befund. Ebenso wird getestet, ob die Anforderungen bei Registrierung, Passwortwiederherstellung und Änderung aus dem Profil gleich sind, denn diese drei Wege sind oft getrennt umgesetzt und unterscheiden sich dann in der Strenge. Zusätzlich wird beurteilt, ob eine Sperrliste verwendet wird, ob das Einfügen erlaubt ist und ob eine Höchstlänge auf ein Umsetzungsproblem hindeutet. AssistSec beurteilt die Richtlinie stets zusammen mit dem Vorhandensein eines zweiten Faktors und mit Begrenzungen der Anmeldeversuche, denn diese drei bestimmen gemeinsam, wie widerstandsfähig die Authentifizierung wirklich ist.

Wie verhindert man eine schwache Passwortrichtlinie?

  • Setzen Sie eine Mindestlänge von mindestens zwölf Zeichen, für Administratorkonten am besten mehr.
  • Lassen Sie Komplexitätsregeln fallen; sie führen zu vorhersehbaren Mustern ohne echten Gewinn.
  • Prüfen Sie jedes neue Passwort gegen eine Sperrliste geleakter und häufig verwendeter Passwörter.
  • Weisen Sie Passwörter zurück, die sich aus Benutzername, E-Mail-Adresse oder dem Namen Ihrer Organisation ableiten.
  • Lassen Sie eine großzügige Höchstlänge zu (64 bis 128 Zeichen) und akzeptieren Sie Leerzeichen und alle Sonderzeichen.
  • Erlauben Sie das Einfügen, damit Passwortmanager nutzbar bleiben.
  • Erzwingen Sie keinen regelmäßigen Wechsel; verlangen Sie ein neues Passwort nur bei einem konkreten Hinweis auf eine Kompromittierung.
  • Setzen Sie alle Regeln serverseitig durch, nicht nur im Browser, und auf allen Wegen, auf denen ein Passwort gewählt wird.
  • Kombinieren Sie die Richtlinie mit Zwei-Faktor-Authentifizierung und einer Begrenzung der Anmeldeversuche.

Quellen

Häufige Fragen

Sollte ich Passwörter regelmäßig ablaufen lassen?

Nein, diese Empfehlung wurde aufgegeben. Erzwungene regelmäßige Wechsel führen nachweislich zu schwächeren Passwörtern, da Nutzer kleine vorhersehbare Anpassungen vornehmen, etwa eine hochzählende Ziffer. Verlangen Sie einen Wechsel nur bei einem konkreten Hinweis auf eine Kompromittierung.

Warum sind Komplexitätsregeln kontraproduktiv?

Weil Menschen mit Mustern darauf reagieren. Die Forderung nach einem Großbuchstaben, einer Ziffer und einem Sonderzeichen erzeugt massenhaft Passwörter, die mit einem Großbuchstaben beginnen und auf eine Ziffer und ein Ausrufezeichen enden. Angreifer kennen diese Muster und wenden sie an, wodurch der theoretische Gewinn in der Praxis verpufft.

Wie prüfe ich auf geleakte Passwörter?

Mit einer Sperrliste bekannter geleakter und häufig verwendeter Passwörter, geprüft in dem Moment, in dem der Nutzer eines wählt. Es gibt Dienste, die das mit k-Anonymität tun, wobei Sie nur die ersten Zeichen des Hashwerts senden und das vollständige Passwort Ihre Umgebung nie verlässt.

Sollte ich eine Höchstlänge festlegen?

Nur eine großzügige, um Überlastung zu vermeiden; 64 bis 128 Zeichen sind üblich. Eine niedrige Höchstlänge oder das Verbot von Leerzeichen und Sonderzeichen ist ein starkes Anzeichen dafür, dass das Passwort nicht korrekt gehasht wird, denn bei einer guten Hashfunktion spielt die Länge der Eingabe keine Rolle.

Verwandte Artikel

Zum Suchen / drücken · Esc