Zwei-Faktor-Authentifizierung und Passwortsicherheit

Security2026-09-16TryQuickToolBox

Sie haben eine Webanwendung erstellt und Benutzer registrieren sich. Aber sind ihre Konten wirklich sicher? Schwache Passwörter und fehlende Zwei-Faktor-Authentifizierung (2FA) gehören zu den einfachsten Wegen für Angreifer, einzudringen. In diesem Leitfaden gehen wir praktische, zeitlose Best Practices für Passwortsicherheit und 2FA durch, die Sie heute umsetzen können.

Warum Passwortsicherheit immer noch wichtig ist

Trotz jahrelanger Warnungen bleiben Passwörter die primäre Authentifizierungsmethode für die meisten Webanwendungen. Angreifer wissen das und zielen durch Phishing, Credential Stuffing und Brute Force auf Passwörter ab. Ein einziges kompromittiertes Passwort kann zur Kontoübernahme, Datendiebstahl und Reputationsschäden führen.

Starke Passwortrichtlinien und 2FA erhöhen die Hürde für Angreifer erheblich. Sehen wir uns an, wie man beides richtig macht.

Passwortspeicherung: Hashing richtig gemacht

Speichern Sie Passwörter niemals im Klartext. Hashen Sie sie immer mit einem starken, langsamen Algorithmus, der für Passwörter entwickelt wurde. Schnelle Hashes wie SHA-256 sind ungeeignet, da sie schnelle Brute-Force-Angriffe ermöglichen.

Empfohlene Algorithmen:

Beispiel mit bcrypt in Node.js:

const bcrypt = require('bcrypt');
const saltRounds = 12;

async function hashPassword(password) {
  return await bcrypt.hash(password, saltRounds);
}

async function verifyPassword(password, hash) {
  return await bcrypt.compare(password, hash);
}

Verwenden Sie immer ein eindeutiges Salt pro Passwort (die meisten Bibliotheken erledigen dies automatisch). Passen Sie den Kostenfaktor so an, dass das Hashing auf Ihrem Server ~100-500ms dauert.

Passwortrichtlinien, die wirklich helfen

Vergessen Sie komplexe Regeln wie „muss ein Symbol und eine Zahl enthalten“. Moderne Empfehlungen (NIST SP 800-63B) raten zu:

Implementieren Sie einen einfachen Stärkeindikator, der Feedback gibt, ohne legitime Passwörter zu blockieren.

Methoden der Zwei-Faktor-Authentifizierung (2FA)

2FA fügt einen zweiten Faktor hinzu: etwas, das Sie haben (Telefon, Hardware-Schlüssel) oder etwas, das Sie sind (Biometrie). Hier sind gängige Methoden, geordnet nach Sicherheit:

MethodeSicherheitBenutzerfreundlichkeit
Hardware-Sicherheitsschlüssel (WebAuthn/FIDO2)HochMittel
Authenticator-Apps (TOTP)HochHoch
Push-BenachrichtigungenMittelHoch
SMS-CodesNiedrigHoch

SMS ist anfällig für SIM-Swapping und Abfangen. Bevorzugen Sie TOTP oder WebAuthn, wenn möglich.

TOTP-basierte 2FA implementieren

TOTP (Time-based One-Time Password) ist ein guter Kompromiss aus Sicherheit und Benutzerfreundlichkeit. Hier ist ein grober Workflow:

  1. Generieren Sie einen geheimen Schlüssel für den Benutzer (z. B. 32 zufällige Bytes, base32-kodiert).
  2. Erstellen Sie eine otpauth://-URI und zeigen Sie einen QR-Code an, den der Benutzer mit einer Authenticator-App scannen kann.
  3. Überprüfen Sie, ob der Benutzer einen gültigen Code generieren kann, bevor Sie 2FA aktivieren.
  4. Speichern Sie das Geheimnis sicher (verschlüsselt at rest).
  5. Stellen Sie Backup-Codes für die Kontowiederherstellung bereit.

Fordern Sie beim Login nach der Passwortüberprüfung den TOTP-Code an. Verifizieren Sie ihn mit einer Bibliothek wie otplib oder speakeasy.

const { authenticator } = require('otplib');

// Generate secret
const secret = authenticator.generateSecret();

// Verify token
const isValid = authenticator.verify({ token: userToken, secret });

Erlauben Sie ein kleines Zeitfenster (z. B. ±1 Intervall), um Uhrenabweichungen auszugleichen.

WebAuthn: Die Zukunft der Authentifizierung

WebAuthn (Teil von FIDO2) ermöglicht passwortlose und Zwei-Faktor-Authentifizierung mit Hardware-Schlüsseln oder Plattform-Authenticatoren (Touch ID, Windows Hello). Es ist phishing-resistent, da die Anmeldeinformationen an den Ursprung gebunden sind.

Die Implementierung von WebAuthn erfordert:

Bibliotheken wie SimpleWebAuthn erleichtern dies. Obwohl komplexer als TOTP, bietet WebAuthn den stärksten Schutz.

Rate Limiting und Kontosperrung

Auch mit 2FA müssen Sie Brute-Force-Angriffe auf Passwörter verhindern. Implementieren Sie:

Achten Sie darauf, legitime Benutzer nicht dauerhaft auszusperren; verwenden Sie temporäre Sperren und benachrichtigen Sie den Benutzer.

Sicherer Passwort-Reset

Passwort-Reset-Abläufe sind ein häufiger Angriffsvektor. Befolgen Sie diese Regeln:

Benutzer schulen, ohne sie zu beschuldigen

Sicherheit ist eine gemeinsame Verantwortung. Geben Sie klare Anleitungen:

In-App-Tipps und eine dedizierte Sicherheitsseite können helfen.

FAQ

Ist SMS-basierte 2FA besser als keine 2FA?

Ja, SMS-2FA ist besser als nichts, aber sie ist anfällig für SIM-Swapping und Abfangen. Bevorzugen Sie TOTP oder WebAuthn für stärkere Sicherheit.

Wie oft sollte ich Passwort-Hashing-Algorithmen rotieren?

Sie müssen nicht rotieren, es sei denn, eine Schwachstelle wird gefunden. Sie können Passwörter jedoch bei erfolgreicher Anmeldung neu hashen, wenn Sie Parameter aktualisieren (z. B. Erhöhung der bcrypt-Kosten).

Kann ich 2FA mit OAuth oder Social Login verwenden?

Ja, aber 2FA wird normalerweise vom Identitätsanbieter verwaltet. Wenn Sie Social Login verwenden, stellen Sie sicher, dass Ihr eigener Kontowiederherstellungsprozess sicher ist.

Bereit, die Sicherheit Ihrer Anwendung zu verbessern? Beginnen Sie noch heute mit der Implementierung von starkem Passwort-Hashing und TOTP-basierter 2FA. Weitere Entwickler-Tools finden Sie in unserem JSON Formatter, um API-Antworten schnell zu debuggen.