In OpenSSH is ondersteuning voor universele twee-factorauthenticatie toegevoegd

In de codebase van OpenSSH toegevoegd experimentële ondersteuning voor tweefactorauthenticatie met behulp van apparaten die het protocol ondersteunen U2F, ontwikkeld door de alliantie FIDO. U2F maakt het mogelijk om goedkope hardwaretokens te creëren voor het bevestigen van fysieke aanwezigheid van de gebruiker, waarbij interactie plaatsvindt via USB, Bluetooth of NFC. Dergelijke apparaten worden gepromoot als een middel voor tweefactorauthenticatie op sites, worden al ondersteund door de belangrijkste browsers en worden geproduceerd door verschillende fabrikanten, waaronder Yubico, Feitian, Thetis en Kensington.

Voor interactie met apparaten die de aanwezigheid van de gebruiker bevestigen, is in OpenSSH een nieuw type sleutel "sk-ecdsa-sha2-nistp256@openssh.com" toegevoegd ("ecdsa-sk"), dat gebruikmaakt van het digitale handtekeningalgoritme ECDSA (Elliptic Curve Digital Signature Algorithm) met de NIST P-256 elliptische curve en de SHA-256 hash. De procedures voor interactie met de tokens zijn ondergebracht in een tussenbibliotheek, die op dezelfde manier wordt geladen als de bibliotheek voor de ondersteuning van PKCS#11 en fungeert als een wrapper bovenop de bibliotheek libfido2, die middelen biedt voor communicatie met tokens via USB (de protocollen FIDO U2F/CTAP 1 en FIDO 2.0/CTAP 2 worden ondersteund). De tussenbibliotheek libsk-libfido2, ontwikkeld door de ontwikkelaars van OpenSSH, is geïntegreerd in de hoofdbibliotheek libfido2, net zoals is ingeschakeld de HID-driver voor OpenBSD. Om U2F in te schakelen, kan een recente snapshot van de codebase worden gebruikt uit

OpenSSH en de HEAD-tak van de bibliotheek [istio-mastery] , waaraan de noodzakelijke laag voor OpenSSH al is toegevoegd. libfido2Libfido2 ondersteunt werking op OpenBSD, Linux, macOS en Windows.
Voor authenticatie en het genereren van een sleutel moet de omgevingsvariabele SSH_SK_PROVIDER worden ingesteld met het pad naar libsk-libfido2.so (export SSH_SK_PROVIDER=/pad/naar/libsk-libfido2.so), of de bibliotheek moet worden gedefinieerd via de instelling SecurityKeyProvider, waarna "ssh-keygen -t ecdsa-sk" kan worden uitgevoerd of, als de sleutels al zijn aangemaakt en ingesteld, kan worden ingelogd op de server met "ssh". Bij het uitvoeren van ssh-keygen wordt het gegenereerde sleutelpaar opgeslagen in "~/.ssh/id_ecdsa_sk" en kan het net als andere sleutels worden gebruikt.

Voor authenticatie en het genereren van een sleutel moet je de omgevingsvariabele SSH_SK_PROVIDER instellen, waarbij je het pad naar libsk-libfido2.so opgeeft (export SSH_SK_PROVIDER=/pad/naar/libsk-libfido2.so), of de bibliotheek definiëren via de instelling SecurityKeyProvider. Vervolgens moet je "ssh-keygen -t ecdsa-sk" uitvoeren, of, als de sleutels al zijn aangemaakt en ingesteld, verbinding maken met de server met behulp van "ssh". Bij het uitvoeren van ssh-keygen wordt het gemaakte sleutelpair opgeslagen in "~/.ssh/id_ecdsa_sk" en kan deze op dezelfde manier worden gebruikt als andere sleutels.

De openbare sleutel (id_ecdsa_sk.pub) moet op de server worden gekopieerd naar het bestand authorized_keys. Aan de serverzijde wordt alleen de digitale handtekening gecontroleerd, terwijl de interactie met de tokens aan de zijde van de client plaatsvindt (op de server is het niet nodig om libsk-libfido2 te installeren, maar de server moet het type sleutel 'ecdsa-sk' ondersteunen). De gegenereerde privésleutel (id_ecdsa_sk) fungeert feitelijk als een descriptor van de sleutel en vormt alleen in combinatie met de geheime volgorde, die op de U2F-token wordt bewaard, de echte sleutel.

Als de sleutel id_ecdsa_sk in handen van een aanvaller valt, heeft deze ook toegang tot de hardwaretoken nodig om de authenticatie te doorlopen, zonder welke de in het bestand id_ecdsa_sk opgeslagen privésleutel nutteloos is. Bovendien is bij het uitvoeren van bewerkingen met sleutels (zowel bij generatie als bij authenticatie) standaard een lokale bevestiging van de fysieke aanwezigheid van de gebruiker vereist, bijvoorbeeld door de aanraking van de sensor op de token, wat het moeilijk maakt om op afstand aanvallen uit te voeren op systemen met een aangesloten token. Als een extra beschermingslaag kan er ook een wachtwoord worden ingesteld voor toegang tot het sleutelbestand tijdens het starten van ssh-keygen.

De U2F-sleutel kan aan ssh-agent worden toegevoegd via 'ssh-add ~/.ssh/id_ecdsa_sk', maar ssh-agent moet zijn opgebouwd met ondersteuning voor 'ecdsa-sk' sleutels, de libsk-libfido2 laag moet aanwezig zijn en de agent moet draaien op het systeem waaraan de token is aangesloten.
Een nieuw type sleutel 'ecdsa-sk' is toegevoegd omdat het OpenSSH ecdsa-sleutelformaat verschilt van het U2F-formaat voor digitale handtekeningen van ECDSA door de aanwezigheid van extra velden.

Bron: opennet.ru

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers 🔥 Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster