Mehr Sicherheit für b1gMail

  • In den letzten Monaten habe ich neben dem neuen Design auch an der Sicherheit von b1gMail gearbeitet.

    Geplant sind moderne Cookie basierte Sessions anstelle von Session IDs in URLs, eine automatische Sperre bei Inaktivitaet sowie ein verbessertes Session Handling. Dadurch sollen vertrauliche Inhalte besser geschuetzt und abgelaufene Sitzungen sauber behandelt werden.

    Auch der Administrationsbereich erhaelt zusaetzliche Sicherheitsfunktionen wie eine IP Whitelist und die Vorbereitung fuer Multi Faktor Authentifizierung.

    Die Umstellung erfolgt schrittweise, damit bestehende Installationen und Plugins weiterhin moeglichst kompatibel bleiben.

    Ein grosser Teil der Grundlagen ist bereits umgesetzt. Mein Ziel ist es, b1gMail technisch auf den aktuellen Stand zu bringen und die Sicherheit deutlich zu verbessern.

  • Kleines Update zur laufenden Sicherheitsmodernisierung von b1gMail:

    Die Mehrfaktor-Authentifizierung für Benutzer ist mittlerweile nativ integriert.

    Aktuell werden folgende Verfahren unterstützt:

    • TOTP-Authenticator-Apps (z.B. Aegis, Google Authenticator oder Authy)
    • Einmalcodes per E-Mail an eine hinterlegte alternative E-Mail-Adresse

    Die MFA-Funktion kann vom Benutzer selbst eingerichtet und verwaltet werden. Weitere Sicherheitsverbesserungen rund um Sessions, Login und den Administrationsbereich befinden sich weiterhin in Arbeit.

  • Die Mehrfaktor-Authentifizierung steht nun auch im Administrationsbereich zur Verfügung und kann direkt über das ACP eingerichtet und verwaltet werden. Unterstützt werden sowohl TOTP-Apps als auch Einmalcodes per E-Mail.

    Zusätzlich wurde für das ACP und das Login-Interface eine neue Sperrfunktion integriert. Sitzungen können entweder manuell gesperrt oder nach einer konfigurierbaren Zeit der Inaktivität automatisch gesperrt werden.

    Im Gegensatz zu einem Logout bleibt die Sitzung dabei bestehen. Nach der Sperre genügt die erneute Eingabe des Passworts, um weiterzuarbeiten. Dadurch bleiben geöffnete Arbeiten erhalten, während unbefugte Zugriffe bei einem verlassenen Arbeitsplatz verhindert werden.

  • Ich habe soeben unser System auf die inoffizielle Version 7.5.0 aktualisiert. Ziel ist es, die neuen Sicherheitsfunktionen, Template-Anpassungen sowie die Kompatibilität und Funktion aller Plugins umfassend zu testen.

    Wer die aktuelle Entwicklung bereits vor der offiziellen Veröffentlichung ausprobieren möchte, kann dies gerne über unseren Demo-Zugang tun und die neuen Funktionen selbst testen.

    Url: https://mail.town

    Benutzer: demo@mail.town

    Passwort: It67*57kidHk!

  • Ja, es gibt noch ein paar kleinere Probleme, die ich in den nächsten Tagen korrigieren muss. Die Suche habe ich aber bereits behoben und sie sollte jetzt wieder wie gewohnt funktionieren.

    Falls dir in der Demo noch weitere Fehler oder Unstimmigkeiten auffallen, melde sie mir einfach. Sobald alles bereinigt und soweit bereit ist, kann ich die aktuelle Version committen.

  • Passend zu den Änderungen rund um die neuen Passwort-Hashes in b1gMail habe ich auch den b1gMailServer entsprechend angepasst und dafür einen Pull Request erstellt:

    Support modern password hashes and stop orphaned queue pipe processes. by mkleger · Pull Request #25 · b1gMail/b1gMailServer
    Align POP3/IMAP/SMTP auth with b1gMail bcrypt/Argon2id hashes (with legacy MD5 fallback and post-login upgrades), and ensure queue shutdown kills pipe.php…
    github.com


    Der b1gMailServer konnte Passwörter bisher nur über die bisherigen MD5-Verfahren prüfen. Mit bcrypt bzw. Argon2id führte das dazu, dass die Anmeldung über POP3, IMAP oder SMTP bei entsprechenden Accounts nicht mehr zuverlässig funktionierte.

    Mit dem Pull Request unterstützt der b1gMailServer nun die gleiche Passwortlogik wie das Webmail:

    • Legacy-MD5 sowie bcrypt und Argon2id
    • automatisches Upgrade alter Passwort-Hashes nach erfolgreicher Anmeldung
    • Unterstützung für POP3, IMAP und SMTP AUTH
    • keine zusätzlichen Systembibliotheken notwendig


    Im gleichen PR habe ich noch ein Problem mit bms-queue behoben. Beim Stoppen oder Neustarten konnten verwaiste pipe.php-Prozesse zurückbleiben, die weiterhin Ressourcen belegten und teilweise einen sauberen Neustart des Dienstes verhinderten. Die Prozesse werden nun beim Beenden der Queue sauber mit beendet.

    Da die Unterstützung der neuen Passwort-Hashes für den produktiven Einsatz der entsprechenden Änderungen in b1gMail wichtig ist, wäre es super, wenn du patrick den PR bei Gelegenheit anschauen und ein Review machen könnte.

    Pull Request #25:

    Support modern password hashes and stop orphaned queue pipe processes. by mkleger · Pull Request #25 · b1gMail/b1gMailServer
    Align POP3/IMAP/SMTP auth with b1gMail bcrypt/Argon2id hashes (with legacy MD5 fallback and post-login upgrades), and ensure queue shutdown kills pipe.php…
    github.com
  • App-Passwörter für CalDAV, CardDAV und WebDAV

    Für den Zugriff über CalDAV, CardDAV und WebDAV stehen im nächsten RC4 jetzt App-Passwörter zur Verfügung. Damit können Kalender-, Kontakte- und Webdisk-Anwendungen angebunden werden, ohne das eigentliche Kontopasswort zu verwenden.

    Die Einstellung, ausschliesslich App-Passwörter für diese Zugriffe zuzulassen, wird je nach Installation unterschiedlich vorbelegt:

    • Bei Neuinstallationen ist sie standardmässig aktiviert. Der Zugriff ist damit nur über App-Passwörter möglich.
    • Bei Updates bleibt sie zunächst deaktiviert. Das bisherige Kontopasswort wird weiterhin als Fallback akzeptiert, damit bestehende Verbindungen weiter funktionieren. Die ausschliessliche Nutzung von App-Passwörtern kann anschliessend aktiviert werden.

    Für einen späteren Schritt ist geplant, App-Passwörter auch auf SMTP, IMAP und POP3 auszuweiten und damit die Einbindung von E-Mail-Programmen ebenfalls abzudecken.

  • Wow, vielen Dank, dass du dir so viel Zeit dafür nimmst. Ich freu mich schon richtig, dass man hier einen großen Schritt weiterkommt.

    Vielen Dank, das freut mich sehr! 😊 Es steckt einiges an Arbeit drin, aber solche Rückmeldungen motivieren mich, weiterzumachen. Ich freue mich darauf, euch bald mehr zeigen zu können!

    • Offizieller Beitrag

    Das Thema App-Passwörter wollte ich auch vorantreiben, aber bisher bin ich aus zeitlichen Gründen nicht weiter als die Design-Überlegung weitergekommen: Tokenverwaltung

    Umso mehr freut es mich, dass du das jetzt voranbringst :-).

  • Der b1gMailServer unterstützt jetzt App-Passwörter für IMAP, POP3 und SMTP – analog zu CalDAV/CardDAV/WebDAV in b1gMail.

    PR #26

    Voraussetzung

    Es wird b1gMail 7.5.0-RC4 oder neuer benötigt (App-Passwort-Prefs und ACP-Einstellungen).

    Verhalten (Mail-Erzwingung im ACP)

    • aus – nur Kontopasswort
    • Warnung – Kontopasswort und App-Passwort; bei MFA Hinweis im Log
    • MFA: nur App-Passwort – mit aktiver MFA nur App-Passwort
    • Strikt – immer nur App-Passwort

    App-Passwörter werden im Webmail unter den Einstellungen angelegt (Scopes IMAP/POP3/SMTP erscheinen, sobald die Mail-Unterstützung im ACP aktiviert ist).

    Hinweis

    Erst nach dem Deploy dieses BMS-Stands im ACP „App-Passwörter für IMAP/POP3/SMTP“ einschalten.


    Feedback zu Clients (Thunderbird, Outlook, Smartphone usw.) ist willkommen.

  • Gibt es irgend ein neues Rate-Limiting-Konzept i.V.m. Argon2-Hashes?

    Ich fürchte, dass das ansonsten ein Schuss in den Fuß ist, da Angreifer den Server sonst mit Authentifizierungsversuchen schnell komplett überlasten können, da die Hashes (absichtlich) sehr rechenintensiv sind.

  • Gibt es irgend ein neues Rate-Limiting-Konzept i.V.m. Argon2-Hashes?

    Ich fürchte, dass das ansonsten ein Schuss in den Fuß ist, da Angreifer den Server sonst mit Authentifizierungsversuchen schnell komplett überlasten können, da die Hashes (absichtlich) sehr rechenintensiv sind.

    Danke für den Hinweis, der Punkt ist berechtigt.

    Es gibt kein komplett neues Rate-Limiting-Konzept nur für Argon2, aber wir haben das bestehende Fail2ban dafür geschärft:

    • Vor der teuren Hash-Prüfung (bcrypt/Argon2 bzw. App-Passwort-Prüfung) wird die IP geprüft.
    • Ist die IP bereits gebannt → Login wird ohne Hash-Berechnung abgelehnt.
    • Bei bereits fehlgeschlagenen Versuchen gibt es zusätzlich eine progressive Verzögerung (ca. 0,5–5 Sekunden) vor der Hash-Verifikation, damit parallele Auth-Versuche den Server nicht so leicht mit CPU-Last fluten.
    • Danach greifen weiter die bekannten Mechanismen: kurze Wartezeit nach Fehlversuch und IP-Bann über Fail2ban (im ACP unter b1gMailServer konfigurierbar).

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!