Benutzer:Thk/Nitrokey FIDO2 für SSH
Seit Version 8.2 (in Debian backports) unterstützt openssh FIDO/U2F: https://lists.mindrot.org/pipermail/openssh-unix-announce/2020-February/000138.html
D.h. es gibt 2 neue Schlüsseltypen, ecdsa-sk und ed25519-sk für Schlüssel mit "Token". Das Token ist meist ein USB-key. Den privaten Schlüssel generiert man wie bisher mit ssh-keygen. Das Token muss dabei verfügbar sein. Der private Schlüssel besteht dann aus einer Schlüsseldatei wie bisher und zusätzlich aus dem im Token fest gespeicherten Teil.
Man kann sich dann also nur einloggen, wenn das Token (der USB-key) im Computer steckt und man auch noch seine Präsenz mit einer Berührung des Tokens bestätigt. Auf dem Computer muss noch der andere Schlüsselteil gespeichert sein, der wie bisher durch ein Passwort (keyphrase) geschützt sein sollte.
Ich habe mir einen Schlüssel von Nitrokey bestellt (Nitrokey FIDO2) für 29€:
Einrichtung des Nitrokey FIDO2
- In Chromium chrome://settings/securityKeys öffnen.
- "Create a PIN": Die PIN sollte trotz des Namens ein sicheres, also langes Passwort sein!
Links:
- Nitrokey Support: Nitrokey FIDO2 PIN creating
- Nitrokey Gettings Started für FIDO2 unter GNU/Linux - bezieht sich nur auf Webseiten-Logins
- How to use FIDO2 USB authenticators with SSH
- https://bolddaemon.com/posts/2020-06-04-openssh-fido2-resident-keys.html
RSA oder Elliptische Kurven
RSA ist relativ einfache Mathematik und extrem gut untersucht. Elliptische Kurven sind von der mathematischen Theorie deutlich komplizierter und es gab weniger Zeit, diese Verfahren zu untersuchen.
Das Risiko, dass jemand ein geheimes Verfahren kennt, um elliptische Kurven zu brechen, ist höher als bei RSA. Die Amerikanische NSA soll der größte Arbeitgeber von Mathematikern weltweit sein...
Der einzige Vorteil von elliptischen Kurven ist Schnelligkeit. Bei RSA kann man einfach einen längeren Schlüssel wählen, um die Sicherheit zu erhöhen, was natürlich alle Operationen mit dem Schlüssel etwas langsamer macht.
- https://www.secorvo.de/publikationen/elliptische-kurven-fox-2002.pdf
- https://www.nitrokey.com/de/news/2017/nitrokey-start-unterst%C3%BCtzt-elliptische-kurven-ecc
- https://nbeguier.medium.com/a-real-world-comparison-of-the-ssh-key-algorithms-b26b0b31bfd9
- https://security.stackexchange.com/questions/50878/ecdsa-vs-ecdh-vs-ed25519-vs-curve25519
- https://wiki.archlinux.org/index.php/SSH_keys#Choosing_the_authentication_key_type
Notes
- Support in Ansible? https://github.com/ansible-collections/ansible.posix/issues/17
- Der Nitrokey FIDO2 unterstützt nur ECDSA? https://github.com/Nitrokey/nitrokey-fido2-firmware/issues/39