CMBasic 1.7.0 ist da und deutlich sicherer als seine Vorgänger
Passwort ab sofort verschlüsselt mit BCRYPT statt MD5
Ab sofort verwendet CMBasic für das Verschlüsseln der Passwörter für den Backendbereich den sogenannten BCRYPT-Algorithmus. Der ist viel sicherer als der alte MD5-Algorithmus.
Update vom 15. April 2025: Interessanterweise stellt WordPress heute mit seiner Version 1.6.8 ebenfalls auf BCrypt um, wie ich gerade feststelle. Allerdings nutzte WordPress auch vorher schon ein vergleichsweise sicheres Verschlüsselungssystem.
MD5 hat immer den gleichen Hash aus dem gleichen Passwort erzeugt. (Ein Hash ist sozusagen die Geheimversion des Passworts, also nicht das Passwort im Klartext. Das war schon einmal gut.) Trotzdem konnten Hacker Millionen Hashes in ihren Datenbanktabellen vorbereiten und nachschauen, ob dein Passwort vorhanden ist.
BCRYPT arbeitet zusätzlich mit einem sogenannten Salt, das ist eine zufällige Zutat, die deinem Passwort vor der Verschlüsselung hinzugefügt wird. So entsteht stets ein einzigartiger Hash, den kein Hacker in seinen Listen hat.
Weiterhin arbeitet BCRYPT viel langsamer, vergleichbar mit einem schwergängigen Schloss. Das fällt beim einfachen Einloggen nicht auf, aber bei sogenannten Brute-Force-Attacken bräuchte der Computer jetzt Jahre statt Sekunden, um den Hash zu berechnen.
BCRYPT ist nach derzeitigem Standard also supersicher!
CMBasic fügt nach jeder Falscheingabe Strafsekunden hinzu, bis das Anmeldeformular wieder freigegeben wird. Und nach fünf Falscheingaben ist der Zugang komplett gesperrt! Du hast also nur vier Versuche!
Zweifaktor-Authentifizierung
Doch damit nicht genug. Auf Wunsch gibt es ab sofort die Zweifaktor-Authentifizierung. Dazu gibst du bei deinen Nutzerdaten im Backend einfach die E-Mail-Adresse des Nutzers ein. Ist so eine Adresse vorhanden, wird dir oder dem Nutzer nach erfolgreichem Einloggen erst ein Code an die E-Mail-Adresse geschickt.
Erst nach Eingabe dieses Codes ist der Zugang zum Backend freigegeben.
TableEditor und Co: weitere kleine Optimierungen
Weiterhin habe ich den Code an vielen Stellen optimiert und auf neue PHP-Versionen hin angepasst. Das betrifft die TableEditor-Klasse genauso wie die mimeMail-Klasse. Vor allem die TableEditor-Klasse bewährt sich dank der Updates weiterhin prächtig! Ich habe in den letzten 20 Jahren keinen so flexiblen und robusten Open-Source-Tabelleneditor kennengelernt.
Wie gut, dass es freie Software gibt!
Das Frontend-Loginmodul musste aus Sicherheitsgründen entfallen. Ich habe es ersatzlos gestrichen. Der Link ist aber weiterhin möglich und das Login über das Backend geht natürlich.