Für die eigene Nextcloud spielt das Thema Sicherheit eine große Rolle, da in einer Cloud meistens auch sensible Daten gespeichert sind. Dass man für solche Dienste stets sichere Passwörter nutzen sollte, versteht sich von selbst. Dennoch kann ein Passwort noch so sicher sein, es bleibt der einzige „Faktor“ bei der Authentifizierung. Sollte dieses Passwort abhanden kommen, ist der Zugang zur Cloud nicht mehr als sicher zu betrachten.
Hier kommt das Konzept der Zwei-Faktor-Authentifizierung zum tragen: Neben Benutzername/Passwort wird hier ein zweiter Faktor für die Anmeldung benötigt. Nextcloud unterstützt mittlerweile viele Varianten der Zwei-Faktor-Authentifizierung. Das bekannteste Verfahren ist hier sicherlich TOTP – dabei wird z.B. auf dem Smartphone lediglich eine TOTP-App (beispielsweise andOTP) benötigt. Dies macht die Anmeldung schon einmal sicherer, aber dennoch handelt es sich beim Smartphone um ein Gerät, welches ebenfalls kompromittiert werden kann.
Am sichersten ist hier ein Gerät, welches ausschließlich für die Zwei-Faktor-Authentifizierung genutzt wird. Ich habe mir daher mal die Authentifizierung mittels des Nitrokey FIDO2 näher angeschaut.
Inhalt
Nitrokey FIDO2 – Hardware
Beim Nitrokey FIDO2 handelt es sich um ein USB-Device (USB Typ A), welches für die Zwei-Faktor-Authentifizierung genutzt werden kann. Auch wenn das Aussehen an einen USB-Stick erinnert, können jedoch keine Daten auf dem Nitrokey gespeichert werden.

Nitrokey FIDO2 als zweiten Faktor bei Nextcloud hinzufügen
Für die Nutzung eines Hardware-Devices als zweiten Faktor benötigt man zunächst einmal zwei zusätzliche PHP-Pakete, die auf dem Nextcloud-Server installiert sein sollten. Wenn dies noch nicht geschehen ist, holen wir dies nun nach:
apt update && apt install php-gmp php-bcmath
Als nächstes muss nun in der Nextcloud die App Two-Factor Webauthn aus dem Nextcloud App Store heruntergeladen und aktiviert werden. Hiermit kann als zweiter Faktor WebAuthn genutzt werden.

Anschließend gibt es in den persönlichen Einstellungen unter Sicherheit eine weitere Option Webauthn Devices. Hier einfach auf den Button Add Webauthn device klicken, den Nitrokey einstecken und einen Namen für das Gerät vergeben.

Zum Test nun einfach einmal von der Cloud ab- und nochmal neu anmelden. Hier sollte dann nach Eingabe von User/Passwort die entsprechende Option für den zweiten Faktor angeboten werden.

Hier wieder den Nitrokey einstecken, kurz berühren und der Login sollte damit erfolgreich abgeschlossen sein.
Das ganze funktioniert auch analog mit der App Two-Factor U2F. Damit kann als zweiter Faktor U2F verwendet werden. WebAuthn ist allerdings das modernere Verfahren, daher gebe ich WebAuthn den Vorrang.
Hinweis: Wenn die Zwei-Faktor-Authentifizierung aktiviert wurde, ist es für viele Clients (z.B. Nextcloud Desktop-Client) keine direkte Anmeldung per Benutzername/Passwort möglich. In diesem Fall muss man hier sog. App-Passwörter generieren, die dann bei der Anmeldung der Clients genutzt werden können. Dies erledigt man in den persönlichen Einstellungen unter Sicherheit (Geräte & Sitzungen).
Ab Nextcloud 19: Passwortlose Anmeldung
Nextcloud unterstützt ab Version 19 auch eine rein passwortlose Authentifizierung. Diese wird ebenfalls unter den persönlichen Einstellungen im Bereich Sicherheit aktiviert. Der Ablauf zum Hinzufügen des Nitrokeys ist dabei prinzipiell der gleiche wie bei der Zwei-Faktor-Authentifizierung.

Nach der Einrichtung kann im Anmeldebildschirm der Cloud neben der klassischen Eingabe von Benutzername und Passwort die Option Mit einem Gerät anmelden gewählt werden.

Hier reicht dann die Eingabe des Benutzernamens und das anschließende Bestätigen des Logins mittels des Nitrokeys.
Zusätzlich kann natürlich noch ein beliebiger zweiter Faktor für die Authentifizierung genutzt werden.
Nitrokey FIDO2 unter Linux
Unter Linux kann es passieren, dass der Nitrokey nicht sofort erkannt wird – beim Einstecken passiert hier einfach nichts. In diesem Fall muss nur ein kleiner Schritt durchgeführt werden, damit der Nitrokey auch unter Linux verwendet werden kann:
wget https://www.nitrokey.com/sites/default/files/41-nitrokey.rules sudo mv 41-nitrokey.rules /etc/udev/rules.d/
Anschließend sollte der Nitrokey einwandfrei funktionieren.
Firmware-Updates
Der Nitrokey FIDO2 unterstützt ebenfalls Firmware-Updates. Dazu muss der Stick lediglich eingesteckt werden und die Firmware-Update-Seite mit einem Browser aufgerufen werden. Nun einfach den Anweisungen folgen, falls ein Firmware-Update verfügbar ist, wird dieses automatisch heruntergeladen und installiert.

Weitere Einsatzgebiete
Neben der Anmeldung an Nextcloud kann der Nitrokey auch für weitere Anmeldungen genutzt werden. Viele Webdienste unterstützen mittlerweile die Anmeldung per WebAuthn. Dazu gehören u.a.:
- WordPress (mit dem Two-Factor Plugin)
- Codeberg
- GitHub
- GitLab
- Google-Dienste
- Microsoft-Dienste/Windows-Anmeldung
Auf dongleauth.com gibt es eine gute Zusammenstellung, welche Dienste bereits mit dem Nitrokey verwendet werden können.
Fazit
Der Nitrokey FIDO2 ist in ein paar Minuten in Nextcloud als zweiter Faktor bei der Authentifizierung eingerichtet und kann anschließend auf jedem Gerät genutzt werden – und ja: sogar am Smartphone.
Hallo Jan,
danke für diesen interessanten Beitrag !
Es steht auch auf meiner ToDo-Liste mich mit dem Thema zu beschäftigen ;)
Was mich noch interessieren würde :
– Was sollte man tun um keine Probleme zu kriegen wenn der Stick verloren oder kaputt geht ? Wie kann ich mich trotzdem z.B. bei GitHub einloggen ?
Brauche ich einen (registrierten) zweiten Stick ?
– Zu eigener Nextcloud-Instanz hat man in der Regel einen SSH-Zugang. Wie könnte man den 2. Faktor deaktivieren falls der o.g. Fall eintritt ?
Gruss
Hi Tom,
in Normalfall erhältst du sog. Backup-Keys, wenn du die Zwei-Faktor-Authentifizierung aktivierst (so auch bei Nextcloud). Diese können dann einfach verwendet werden, sollte der zweite Faktor mal verloren gehen.
Bei Nextcloud kannst du auch „hinten rum“ mittels OCC Apps deaktivieren und ggf. weiter konfigurieren. Hilfreich ist hier auch die App Two-Factor Admin Support: Hier kann bei Bedarf ein zweiter Faktor durch den Admin mittels OCC bereit gestellt werden.
Gruß,
Jan
Hallo Jan,
wie immer ein super Artikel. Wenn ich fragen darf, warum Nitrokey und nicht SoloKey oder Yubico?
Ich persönlich benutze ein SoloKey aus dem einfach Grund weil er Open Source ist und ich mir da durch mehr Möglichkeiten und ein längeren Support erhoffe.
Gruß Marcel
Hi Marcel,
ja, hier ein ähnlicher Grund: Die Nitrokeys bestehen auf offener Hard- Und Software. Hier fällt zumindest mal der Yubikey raus.
Darüber hinaus wurde ich eigentlich erst auf Nitrokey aufmerksam, weil diese Firma mit Nextcloud zusammen arbeitet (siehe hier). Daher musste ich mir dies einfach mal näher ansehen.
Gruß,
Jan
Hallo,
ersteinmal vielen Dank für die ausführlichen Tutorials. Ich habe bei mir auch Nextcloud 20 am laufen und wollte mir webauthn mit einem Yubikey 5C einrichten.
Hierbei bin ich leider fast daran gescheitert da er sich bei der Registrierung aufgehangen hat. Dies ist ein bekannter Fehler und tritt in Kombination von Win 10 und Firefox / Edge auf.
Siehe hierzu auch:
https://github.com/michib/nextcloud_twofactor_webauthn/issues/37
Also an alle die einen Yubikey 5C unter Windows 10 einrichten wollen bitte verwendet Chrome. Mit diesem funktioniert es sofort.
Hi Jan,
die TOTP App nervt und wenn ich deinen Artikel richtig verstehe, gehen der FIDO2 und die App parallel. Ich hab den Stick hier liegen und bin deiner Anleitung gefolgt. Ich scheitere aber an dem Download der App „Two-Factor Webauthn“, wie auf deinem ScreenShot ersichtlich. „Could not extract app twofactor_webauthn“. Hm, hab ich ein konfig Problem in meiner Nextcloud 20.0.8 (bin noch auf Ubuntu 18.04, dein Installations Artikel, inplace PHP upgrade mit repository ppa:ondrej/php. NextCloud läuft stabil bis auf den CRON seit letztem Update. Ohne die App zu installieren, bietet mit Nextcloud in den SecurityEinstellungen bereits die Registrierung eines WebAuthn Gerätes an. Der Nitro FIDO2 ist da auch registriert, allerdings bietet mit die Nextcloud beim Login den Stick nciht als 2. Faktor an, sondern nur den OTP Cient. Ich war ja happy auf deinem Screenshot beides untereinander stehen zu sehen.
a) ich gehe davon aus, ich benötige trotz der WebAuthN option in Security die App
b) dei App lässt sich nicht runterladen und ist damit die RootCause dass es nicht funktioniert.
Was meinst du? Weiß hier nicht weiter.
Hi Chris,
eigentlich ist die App ja bereits installiert, wenn er dir das unter den Einstellungen schon anbietet. Schau mal im apps-Verzeichnis deiner Instanz nach, ob da nicht noch irgendwelche Leichen versteckt sind.
Ansonsten: Wenn sich eine App auf Grund eines Fehlers nicht installieren lässt, dann würde ich erst einmal bei GitHub einen Issue erfassen, da dies ja eher auf einen technischen Fehler der App hinweist.
Gruß,
Jan
Hallo Jan,
die App war wohl kurzfristig nicht verfügbar, danach in einer neuen Version. Murphy, ich hab wohl ausgerechnet in der Zeit reingegriffen. Alles installiert, funktioniert wie von dir beschrieben. Vielen Dank für deine Antworten und deinen Blog.
Gruß
Chris
Hallo Jan,
ich habe deine Anleitung für den Nitrokey 3 (USB-C Version) verwendet. Sie passt auch dafür (gilt für U2F und FIDO2)
Gruß
Joachim
Hi Joachim,
danke für den Hinweis. Habe war noch keinen neuen Nirtokey, aber gut zu wissen, dass es damit auch funktioniert.
Gruß,
Jan
Hallo Jan,
der Link ist nicht mehr gültig.
https://shop.nitrokey.com/de_DE/shop/product/nk-fi2-nitrokey-fido2-55
Zudem werden die beiden php Pakete nicht mehr benötigt.
Zudem
Gruß Hans
Hi Hans,
ja, genau dieses Modell gibt es auch nicht mehr.
Auch wenn die PHP Pakete hierfür nicht mehr benötigt werden, werden diese jedoch auch für andere Apps benötigt, daher sollte man sie auf jeden Fall installieren.
Gruß,
Jan