Optionale Zwei-Faktor-Authentifizierung in BlackCat CMS v2.x

"Die Zwei-Faktor-Authentifizierung (2FA) dient dem Identitätsnachweis eines Nutzers mittels der Kombination zweier unterschiedlicher und insbesondere unabhängiger Komponenten (Faktoren)." (Quelle: Wikipedia)

 

Die "herkömmliche" Methode zur Absicherung des Administrationsbereichs ist die Verwendung einer Benutzerkennung (z.B. der Mailadresse) zusammen mit einem Kennwort. Zusätzlich kann es dann weitere Schutzmechanismen geben, angefangen von einer Mindestlänge für das Kennwort bis hin zu einer automatischen Sperre des Benutzerkontos nach X fehlgeschlagenen Anmeldeversuchen. BlackCat CMS v1.x stellt hierfür bereits einige Optionen zur Verfügung.

Allerdings ist diese Authentifizierungsmethode nicht sehr sicher, insbesondere dann, wenn kein TLS (https) zur Verfügung steht. Gerade wenn die Benutzerkennung aus einer Mailadresse besteht, die womöglich noch für jeden Besucher als Kontaktadresse im Frontend zu lesen ist, fehlt einem Angreifer nur noch das Kennwort. Bei unverschlüsselter Übertragung - insbesondere im WLAN - ist es technisch nicht allzu schwierig, dieses Kennwort zu "erlauschen".

Bei der Zwei-Faktor-Authentifizierung wird ein weiterer Faktor hinzugefügt. Unter Faktoren versteht man:

  • etwas, das der Nutzer besitzt, wie zum Beispiel ein Hardware-Token, eine Bankkarte oder ein Schlüssel,
  • etwas, das der Nutzer weiß, wie zum Beispiel ein Benutzernamen, ein Kennwort, ein Einmalkennwort, eine Persönliche Identifikationsnummer (PIN) oder eine Transaktionsnummer (TAN),
  • etwas, das als körperliches Charakteristikum untrennbar zum Nutzer gehört (das Sein), wie zum Beispiel ein Fingerabdruck, das Muster einer Regenbogenhaut (Iris-Erkennung) oder die menschliche Stimme.

(Quelle: Wikipedia)

"Etwas, das der Nutzer weiß" ist bereits durch den ersten Faktor, die Benutzerkennung plus Kennwort, gegeben. Die Verwendung körperlicher Charakteristiken erfordert den Einsatz spezialisierter Geräte und ist daher für ein CMS kaum sinnvoll. Als zweiter Faktor bleibt also "etwas, das der Nutzer besitzt".

Im Fall von BlackCat CMS ist dies ein sogenanntes Einmalkennwort oder OTP-Token. Die Anwendung ist hierbei einfacher, als es auf den ersten Blick aussieht. Man benötigt nur zwei Dinge:

  • Ein "Geheimnis" ("secret"), welches dem Benutzer eindeutig zugeordnet ist;
  • Einen Generator, der auf Basis dieses Secrets das Einmalkennwort generiert.

Solche Generatoren sind als freie (kostenlose) Anwendungen für alle Betriebssysteme sowie als App für Handy oder Tablet verfügbar. Im Fall von Handy oder Tablet kann man einfach einen QR-Code vom Bildschirm abfotografieren, den BlackCat CMS dem Benutzer im Backend zur Verfügung stellt. Bei Anwendungen für den PC (Windows, OSX etc.) muß ein Code (Zeichenkette) in die Anwendung kopiert werden. Auch diesen Code kann der Benutzer im Backend anzeigen lassen und per "Copy & Paste" in die Anwendung übernehmen.

 

Tipp: Für Nutzer von Keepass existiert ein Plugin. (http://keepass.info/plugins.html#keeotp) Dieses wurde bereits erfolgreich mit BlackCat CMS 2.x getestet.

 

Hat man einmal in der jeweiligen Generator-Anwendung oder -App ein Profil für das BlackCat CMS Login eingerichtet, generiert der Token-Generator alle 30 Sekunden eine neue PIN. Standardmäßig ist diese 6-stellig. Dieser PIN-Code wird in ein zusätzliches Feld im Anmeldebildschirm übertragen.

Hinweis: Da das System vorher nicht wissen kann, welcher Benutzer sich anmelden wird, kann das PIN Feld nicht benutzerspezifisch ein- oder ausgeblendet werden.

 

Neben Benutzername und Kennung wird nun also zusätzlich die PIN geprüft. Da der Server das Secret kennt, generiert er zur gleichen Zeit auch die gleiche Nummer wie die App.

 

Voraussetzung: Die Uhrzeit des Servers muss mit der des Generators übereinstimmen!

 

Die Zwei-Faktor-Authentifizierung kann wahlweise für alle Benutzerkonten, Gruppen, oder für jedes Konto einzeln aktiviert werden. Letzteres ist nur möglich, wenn weder die globale Einstellung für "alle" noch für eine Benutzergruppe, in der der Benutzer Mitglied ist, aktiviert ist.

globale Einstellung "alle" gilt für alle Benutzerkonten; deaktiviert (bzw. überlagert) also die Option für Gruppen und einzelne Konten
Gruppeneinstellung gilt für alle Benutzer, die Mitglied der Gruppe sind; deaktiviert also die Einstellung für einzelne Konten, wenn der Benutzer Mitglied der Gruppe ist
Konteneinstellung wirkt sich nur aus, wenn keine der obigen Einstellungen gilt