Commit 9fc72d88 authored by mahogony's avatar mahogony Committed by mh
Browse files

Extend tfa documentation

parent 2e2e5f30
Pipeline #2851 passed with stages
in 41 seconds
......@@ -13,4 +13,6 @@ Wie du zu einem Konto kommst, wird im Artikel [Konto beantragen]({{< ref "create
Wir empfehlen dir eine [Wiederherstellungsadresse]({{< ref "recovery" >}}) zu setzen, sowie den [Wiederherstellungscode abzuholen]({{< ref "recovery" >}}) und sicher aufzubewahren.
Zusätzlich kannst du dein Konto mit einem [zweiten Faktor]({{< ref "tfa" >}}) absichern.
[^1]: Konto [EDV]: Zugangs- und oft auch Mitwirkungsberechtigung bei einem bestimmten Internetangebot. Herkunft: von italienisch conto → it ‚Rechnung‘ im 15. Jahrhundert entlehnt; aus spätlateinisch: computus → la = ‚Berechnung‘. Quelle: [Wiktionary](https://de.wiktionary.org/wiki/Konto)
......@@ -2,45 +2,96 @@
title: Zwei Faktor Authentifizierung
weight: 85
---
Um dein Konto besser vor Identitäsdiebstal zu schützen, kannst du die zwei Faktor Authentifizierung aktivieren. Dadurch wird die Anmeldung für dein Konto mit einem zweiten Faktor abgesichert. Der zweite Faktor kann ein durch eine App generierter PIN oder ein Hardware-Token sein. Eine Anmeldung ist dann nur noch möglich, wenn eine Angreiffer*in Zugriff auf dein Passwort und den zusätzlichen Faktor hat.
Um dein Konto besser vor Identitäsdiebstal zu schützen, kannst du die zwei Faktor Authentifizierung aktivieren. Dadurch wird die Anmeldung für dein Konto mit einem zweiten Faktor abgesichert. Der zweite Faktor kann ein durch eine App generierter PIN oder ein Hardware-Token sein. Eine Anmeldung ist dann nur noch möglich, wenn zusätzlich zum Passwort der zusätzliche Faktor eingeben wird.
### Funktion
Wir nutzen Time-based One-time Password TOTP (RFC 6238) als Verfahren für unsere zwei Faktor Authentifizierung. Dabei tauschen Server und User zuerst ein gemeinsames Geheimnis aus. Neben dem gemeinsamen Geheimnis nutzen Server und Client den gleichen Zeitcode um alle 30 Sekunden mittels der hmac-sha1 hash Funktion ein zufälliges Token zu generieren.
Wenn also beide Parteien das gleiche Geheimis kennen und ihre Zeiteinstellungen synchron sind, können sie offline alle 30 Sekunden dieselbe Berechnung durchführen und zum selben Ergebnis kommen. So kann der Server prüfen, ob das zweite Passwort richtig ist.
### Voraussetzung für 2FA
Um die 2FA zu nutzen brauchst du einen zweiten Faktor. Dies kann ein Mobiltelefon mit der APP FreeOTP sein oder ein Hardware-Token wie z.B. Yubikey.
Durch die Zwei-Faktor Authentifizierung wird die Sicherheit eines Kontos erhöht, in dem für den Zugriff damit nicht mehr nur ein Passwort benötig wird. Die Angreiferin muss nun zusätzlich eine weitere Komponente für den Zugriff vorliegen haben, die in der Regel physischer Art ist. Ein typisches Beispiel hierfür ist der TAN-Scanner beim E-Banking. Auch wenn das Login mit Passwort irgendwo publiziert wurde, kann man sich ohne den TAN-Scanner oder das registrierte Smartphone nicht auf das E-Banking-Konto einloggen.
Um die 2FA zu aktivieren ist zwingend eine Recovery-Adresse notwendig. Diese wird verwendet, um dein Account zurückzusetzen, falls du dein zweiter Faktor (z.B. dein Mobiltelefon) verlierst. Falls du aus Gründen der Anonymität keine Recovery Adresse verwenden möchtest, kann dein Account im Fall eines Verlustes des zweiten Faktors nicht wieder hergestellt werden. Möchtest du trotzdem 2FA verwenden, dann kannst du norecovery@immerda.ch als Recovery Adress verwenden.
## Voraussetzung für 2FA
### 2FA Aktivieren
Navigiere in deiner Accountverwaltung zu [Two Factor Authentication](https://users.immerda.ch/tfa). Du musst ein Disposable codes hinzufügen. Dafür brauchst du die App FreeOTP ([Fdroid](https://f-droid.org/en/packages/org.fedorahosted.freeotp/), [Playstore](https://play.google.com/store/apps/details?id=org.fedorahosted.freeotp), [AppStore](https://apps.apple.com/us/app/freeotp-authenticator/id872559395)).
Um die 2FA zu nutzen brauchst du einen zweiten Faktor. Dies kann ein Mobiltelefon mit der [App FreeOTP+](https://github.com/helloworld1/FreeOTPPlus) sein, ein Passwortmanager oder ein Hardware-Token wie z.B. [SoloKeys](https://static.solokeys.com/), [Nitrokey](https://www.nitrokey.com/) oder [Yubikey](https://www.yubico.com/).
Um die 2FA zu aktivieren ist zwingend eine [Wiederherstellungsadresse]({{< ref "/account/recovery" >}}) notwendig.
**Wichtig:** Sobald du die Zwei-Faktor Authentizifierung erfolgreich konfiguriert hast, musst du **jedem Login** auf dein immerda-Konto auch deinen zweiten Faktor verwenden! Dies funtioniert **nur** in einem Browser, alle anderen Programme (wie bspw. dein Email-Client) müssen sich ab sofort - oder besser schon vorher - mit einem [Applikations-Passwort]({{< ref "/account/app-password" >}}) anmelden. Du wirst dein Konto-Passwort nicht mehr in anderen Programmen verwenden für die Anmeldung verwenden können.
### Anonymität
Der zweite Faktor verbessert deine Sicherheit, kann aber ungewünschte Auswirkungen auf deine Anonymität haben. Da du eine Recovery-Adress hinterlegst, sind Zusammenhänge über deine eigentliche Adresse hinaus ersichtlich.
## 2FA Aktivieren
Falls du die App FreeOTP nutz, ist das verwendete Mobiltelefon an deine Adresse gekoppelt. Diese Koppelung ist in der App hinterlegt. Damit ist eindeutig ersichtlich, dass der/die Benutzer*in der App mindestens einmal ZUgriff auf das Konto hatte. Wir arbeiten aktuell daran dies zu verbessern. Als Workaround sollte bis dahin nicht der Qr-Code gescannt, sondern die Daten manuell übertragen werden. Dadurch wird verhindert, dass die Emailadresse mit dem entsprechenden Code in der App verbunden wird.
Navigiere in deiner Accountverwaltung zu [Two Factor Authentication](https://users.immerda.ch/tfa). Hier kannst du die 2FA aktivieren, verschiedene Geräte für Einmalcodes (TOTP) hinzufügen oder Hardware-Tokens aktivieren.
Befolge hierfür einfach die Schritte unter Zwei-Faktor Authentifzierung in der Kontoverwaltung. Im folgendem geben wir noch eine etwas detailiertere Übersicht, wie du Einmalcodes einrichten kannst.
### Einmalcodes
Unter der Zwei-Faktor Authentifizierung (two factor authentification tfa) versteht
man das Feststellen der Identität einer Nutzerin für den Zugriff auf ein Konto durch
zwei unabhängige Kompenenten. Durch die Zwei-Faktor Authentifizierung wird die Sicherheit
eines Kontos erhöht, in dem für den Zugriff nicht mehr nur ein Passwort benötig wird. Die Angreiferin
muss nun zusätzlich eine weitere Komponente für den Zugriff vorliegen haben, die in der
Regel physischer Art ist. Ein typisches Beispiel hierfür ist der TAN-Scanner beim E-Banking.
Auch wenn das Login mit Passwort irgendwo geleakt wurde, kann man sich ohne den TAN-Scanner
oder das registrierte Smartphone nicht auf das E-Banking-Konto einloggen.
Einmalcodes - auch TOTP genannt - ist ein generierter PIN, der sich immer wieder ändert und nur einmal verwendet werden kann. Diese Einmalcodes werden dir üblicherweise durch eine App auf deinem Mobiltelefon oder einem Programm wie einem Passwortmanager angezeigt und werden nach erfolgreicher Authentifizierung zusätzlich um den Anmeldevorgang abzuschliessen benötigt.
Um dein immerda-Konto von ungewünschten Zugriffen zu schützen kannst du ebenfalls
einen zweiten Faktor hinterlegen. Dafür sind folgende Schritte notwendig:
1. Überlege dir, was dein zweiter Faktor sein wird. Die einfachste Lösung ist ein Smartphone mit einer AuthentificationApp. Es gibt aber auch andere Geräte wie z. B. [Yubikey](https://www.yubico.com/), [SoloKeys](https://static.solokeys.com/) oder [Nitrokey](https://www.nitrokey.com/).
2. Log dich ein in die [Kontoverwaltung](https://users.immerda.ch/)
2. Erstelle einen [Wiederherstellungscode]({{< ref "/account/recovery" >}}) und speichere diesen sicher und vor Zugriffen geschützt ab. Den Wiederherstellungscode gibt es als Text oder als QR-Code.
3. Hinterlege eine Wiederherstellungsadresse. Wenn du dies nicht möchtest, kannst du norecovery@immerda.ch als Adresse angeben. Ab jetzt bist du alleine für die sichere Aufbewahrung deines Wiederherstellungscodes verantwortlich! Wir können im Fall eines Verlustes des Wiederherstellungscodes nur noch das Konto reaktivieren, nicht aber die E-Mails wiederherstellen.
4. Nun kannst du die Zwei-Faktor Authentifizierung konfigurieren. Befolge hierfür einfach die Schritte unter [Zwei-Faktor Authentifzierung](https://users.immerda.ch/tfa) in der [Kontoverwaltung](https://users.immerda.ch/).
#### Mobiltelefon
Du hast die Zwei-Faktor Authentizifierung erfolgreich konfiguriert. Bitte beachte, dass du jetzt bei **jedem Login** auf dein immerda-Konto auch deinen zweiten Faktor verwenden musst!
\ No newline at end of file
Es ist empfehlenswert die beiden Faktoren physisch zu trennen. Dies kann beispielsweise mit einem Mobiltelefon und der [App FreeOTP+](https://github.com/helloworld1/FreeOTPPlus) ([Fdroid](https://f-droid.org/packages/org.liberty.android.freeotpplus/), [Playstore](https://play.google.com/store/apps/details?id=org.liberty.android.freeotpplus)) erziehlt werden. Für Apple iOS/iPhone kann bspw. [Authenticator](https://mattrubin.me/authenticator/) aus dem [Appstore](https://apps.apple.com/us/app/authenticator/id766157276) verwendet werden.
1. Installiere die App auf deinem Gerät.
2. Füge einen neuen Einmalcode hinzu.
3. In der Kontoverwaltung wird dir bei der aktivierung von Einmalcodes ein QR Code resp. gemeinsames Geheimnis angezeigt.
3. Scanne den QR-Code und speichere den Einmalcode
4. Diesen ersten Code gibts du zusammen mit einem Namen und deinem Konto-Passwort in der Kontoverwaltung ein und klickst auf *Erstellen*.
5. Damit ist nun dieser Einmalcode aktiviert und kann nun verwendet werden.
#### Passwortmanager
Ein Passwortmanager wie [KeepassXC](https://keepassxc.org/) bringt die Unterstützung für Einmalcodes standardmässig mit, andere wie bspw. [Keepass](https://keepass.info/) benötigen dazu ein [Plugin](https://keepass.info/plugins.html). Wenn ein Passwortmanager zur Speicherung des zweiten Faktors verwendet wird, [empfiehlt](https://keepassxc.org/docs/#faq-security-totp) sich eine zweite Keepass DB mit einem zweiten Passwort für die Einmalcodes.
1. In KeepassXC erstellst du bspw. einen Eintrag für dein Konto.
2. In der Kontoverwaltung wird dir bei der aktivierung von Einmalcodes ein QR Code resp. gemeinsames Geheimnis angezeigt.
2. Unter "Einträge" kannst du zusätzlich TOTP einrichten. Dort hinterlegst du das gemeinsame Geheimnis und speicherst den Eintrag.
3. Nun kann per Rechtsklick auf den Account, der Einmalcode via den Menupunkt TOTP angezeigt werden.
4. Diesen ersten Code gibts du zusammen mit einem Namen und deinem Konto-Passwort in der Kontoverwaltung ein und klickst auf *Erstellen*.
5. Damit ist nun dieser Einmalcode aktiviert und kann nun verwendet werden.
Die häufigste Ursache von Problemen sind nicht synchronisierte Datumseinstellungen. Stelle sicher, dass die Uhr auf deinem Computer mit der aktuellen Uhrzeit übereinstimmt.
### Hardware-Token
Hardware-Tokens können erst hinzugefügt werden, wenn bereits ein Einmalcode existiert. Wir verwenden WebAuthn als Authentifizierungsverfahren für Hardware-Tokens. Getestet wurden Somu-Keys und Yubikeys, grundsätzlich sollten aber alle Varianten, die WebAuthn unterstützen verwendet werden..
Die WebAuthn-API ist im Tor-Browser deaktiviert. Entsprechend funktionieren Hardware-Tokens im Tor-Browser nicht.
## 2FA verwenden
Nach der Aktivierung der 2FA wird nun bei jeder Anmeldung nach der Passworteingabe der zusätzliche Faktor abgefragt.
### Mobiltelefon
App öffnen und auf den gewünschten Account klicken. Die App generiert nun einen Pin mit einer Gltgkeitsdauer. Den Pin innerhalb der Gültigkeitsdauer übertragen.
### Passwortmanager
Den Passwortmanager öffnen und ein neuer TOTP Pin für deinen Eintrag generieren. Dieser Pin hat eine beschränkte Gültigkeit und muss innerhalb dieses Zeitfensters übertragen werden. Falls das angegeben Zeitfenster zu knapp ist, einfach kurz warten bis ein neuer Pin generiert wird.
### Hardwaretoken
Hardwaretoken verbinden und nach der Aufforderung des Browsers die Nutzung bestätigen (meistens durch Berühren).
## 2FA deaktivieren
Um die Zwei Faktor Authentifizierung zu deaktivieren, musst du alle Devices und Einmalcodes entfernen.
## Anonymität
Der zweite Faktor verbessert deine Sicherheit, kann aber Auswirkungen auf deine Anonymität haben. Auf dem Server wird deine [Wiederherstellungsadresse]({{< ref "/account/recovery" >}}) ge-hashed gespeichert und ist somit nicht direkt rückverfolgbar.
Falls du eine App auf deinem Mobiltelefon nutzt, ist das Konto zusammen mit dem gemeinsamen Passwort für die Einmalcodes in der App hinterlegt. Damit ist eindeutig ersichtlich, dass die Besitzerin des Mobiltelefons vermutlich Zugriff auf das Konto hat. Wenn du dies nicht möchtest, dann scanne nicht den QR Code, sondern übertrage das gemeinsame Passwort manuell in die Applikation und vergib eine beliebige Bezeichnung. Dadurch wird verhindert, dass die Emailadresse mit dem entsprechenden Code in der App verbunden wird.
Siehe dazu auch [Daten(schutz)]({{< ref "/account/data" >}})
## Technisches
Einige technische Detail zu den verwendeten Verfahren.
### Funktion TOTP
Wir nutzen Time-based One-time Password TOTP (RFC 6238) als Verfahren für unsere Zwei-Faktor-Authentifizierung. Dabei tauschen Server und Nutzerin zuerst ein gemeinsames Geheimnis aus. Neben dem gemeinsamen Geheimnis nutzen Server und Client den gleichen Zeitcode um alle 30 Sekunden mittels der hmac-sha1 hash Funktion ein zufälliges Token zu generieren.
Wenn also beide Parteien das gleiche Geheimis kennen und ihre Zeiteinstellungen synchron sind, können sie offline alle 30 Sekunden dieselbe Berechnung durchführen und zum selben Ergebnis kommen. So kann der Server prüfen, ob das zweite Passwort richtig ist.
### Funktion WebAuthn
WebAuthN ist teil der Fido2 Spezifikation und nutzt ein public-key Verfahren, um eine Nutzerin zu authentifizieren. Das Hardware-Token generiert zwei Keys (öffentlich und private) und sendet den öffentlichen Schlüssel über den Browser an den Server. Um nun die Identität einer Nutzerin zu prüfen, sendet der Server ein zufällige Zeichenabfolge an den Browser. Der Hardware-Token signiert diese Zeichenabfolge und sendet sie zurück an den Server. Dieser kann mit dem öffentlichen Schlüssel die Signatur prüfen und so die Nutzerin Authentifizieren. Zusätzlich ist die Anfrage des Servers an die Verwendungs-URL gekoppelt. Dies bedeutet, dass der Hardware-Token, diese Signatur nur für eine Anfrage von einer bestimmten URL aus durchführt und damit eine Verwendung unter einer anderen URL ausschliesst.
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment