Sicherheit
Diese Seite beschreibt die Sicherheitseigenschaften des Login-Codes: Lebensdauer und Einmaligkeit, die Verschlüsselung der gespeicherten Geheimnisse, den Schutz vor Rückschlüssen auf bestehende Kundenkonten, die Ratenbegrenzung und das Fehlerprotokoll.
Der Login-Code
- Sechs Ziffern: Jeder Login-Code besteht aus 6 Ziffern.
- Einmalig gültig: Nach einer erfolgreichen Prüfung wird der Code sofort gelöscht – derselbe Code kann kein zweites Mal verwendet werden.
- Begrenzte Lebensdauer: Ein Code läuft nach der eingestellten Gültigkeitsdauer des Login-Codes ab – Standard 300 Sekunden (5 Minuten), je Verkaufskanal einstellbar. Abgelaufene Codes werden bei der Prüfung abgelehnt.
- Ein aktiver Code je Empfänger: Je E-Mail-Adresse bzw. Handynummer und Verkaufskanal existiert höchstens ein gültiger Code.
Verschlüsselung
Die Geheimnisse, aus denen Login-Codes erzeugt und geprüft werden, liegen verschlüsselt in der Datenbank: AES-256, mit dem APP_SECRET der Shopware-Installation als Schlüssel. Codes werden nie im Klartext gespeichert.
Kein Konto-Rückschluss
Über das Login-Formular lässt sich nicht herausfinden, ob zu einer E-Mail-Adresse ein Kundenkonto existiert. Beim Anfordern eines Codes per E-Mail antwortet der Shop immer mit derselben Meldung: „Sie erhalten in Kürze einen Login-Code per E-Mail, wenn Ihre E-Mail-Adresse registriert ist.“ Ist die Adresse nicht registriert, wird schlicht keine E-Mail versendet – ohne Fehlermeldung.
Ratenbegrenzung
Die Karte Ratenbegrenzer in den Einstellungen enthält drei Grenzen:
- Login-Code-Anfragen: höchstens 3 pro Minute (Standard, einstellbar).
- Login-Versuche: höchstens 3 pro Minute (Standard, einstellbar).
- Erneut senden: Der Button „Code erneut senden“ im Formular wird erst nach 20 Sekunden (Standard) wieder frei.
Gezählt wird je Kombination aus Empfänger und IP-Adresse – ein gedrosselter Angreifer blockiert also nicht den echten Kunden hinter einer anderen IP. Wer eine Grenze überschreitet, sieht die Wartezeit: „Zu viele Anfragen nach Login-Codes. Bitte warten Sie … Sekunden, bevor Sie es erneut versuchen.“ Ein erfolgreicher Login setzt die Zähler zurück; spätestens nach einer Stunde verfallen sie von selbst.
Länderfreigabeliste
Welche Ländervorwahlen für den Login per Handynummer erlaubt sind, legen Sie in der Einstellung „Login per Handynummer erlauben“ fest. Die Liste wird bei jeder Anfrage serverseitig durchgesetzt – beim Senden des Codes und beim Login, nicht nur im Eingabefeld. Nummern aus anderen Ländern erhalten die Meldung „Handynummern aus dem ausgewählten Land sind nicht erlaubt.“
Fehlerprotokoll
Die Erweiterung schreibt Fehler in einen eigenen Protokollkanal cwk_quick_auth: die Datei var/log/cwk_quick_auth_<Umgebung>.log (z. B. cwk_quick_auth_prod.log), mit Dateirotation und nur für Einträge ab dem Schweregrad „Fehler“. Dort landen etwa fehlgeschlagene SMS-Zustellungen und Fehler beim Verknüpfen von Handynummern.
Fehlgeschlagene Code-Prüfungen und Drosselungen zeigen dem Kunden neutrale Meldungen im Formular; technische Details erscheinen nur im Fehlerprotokoll.