OpenSSH lisää tuen yleiselle kaksikerroksiselle todennukselle

OpenSSH-koodikantaan lisätty kokeellinen tuki kaksivaiheiselle autentikaatiolle käyttämällä laitteita, jotka tukevat protokollaa U2Fliittouman kehittämä FIDO. U2F mahdollistaa edullisien laitteistotunnusten luomisen, joilla varmistetaan käyttäjän fyysinen läsnäolo vuorovaikutuksessa heidän kanssaan USB:n, Bluetoothin tai NFC:n kautta. Tällaisia ​​laitteita mainostetaan verkkosivustoilla kaksivaiheisen todennuksen välineenä, suuret selaimet tukevat jo niitä ja niitä ovat valmistaneet useat valmistajat, kuten Yubico, Feitian, Thetis ja Kensington.

Jotta voit olla vuorovaikutuksessa käyttäjän läsnäolon vahvistavien laitteiden kanssa, OpenSSH:hon on lisätty uudentyyppisiä avaimia.[sähköposti suojattu]” (”ecdsa-sk”), joka käyttää ECDSA (Elliptic Curve Digital Signature Algorithm) -digitaalisen allekirjoitusalgoritmia NIST P-256 elliptisellä käyrällä ja SHA-256 hashilla. Tokenien kanssa vuorovaikutuksessa käytettävät menettelyt sijoitetaan välikirjastoon, joka ladataan samalla tavalla kuin PKCS#11-tuen kirjasto ja on kirjaston päällä oleva kääre. libfido2, joka tarjoaa työkaluja kommunikointiin tokenien kanssa USB:n kautta (FIDO U2F/CTAP 1- ja FIDO 2.0/CTAP 2 -protokollia tuetaan). OpenSSH-kehittäjien laatima välikirjasto libsk-libfido2 mukana libfido2-ytimeen sekä HID kuljettaja OpenBSD:lle.

Voit ottaa U2F:n käyttöön käyttämällä uutta koodikannan osaa arkisto OpenSSH ja kirjaston HEAD-haara libfido2, joka sisältää jo OpenSSH:lle tarvittavan kerroksen.
Libfido2 tukee OpenBSD:tä, Linuxia, macOS:ää ja Windowsia.

Todentaaksesi ja luodaksesi avaimen sinun on asetettava SSH_SK_PROVIDER-ympäristömuuttuja, joka ilmoittaa siinä polun libsk-libfido2.so (vie SSH_SK_PROVIDER=/path/to/libsk-libfido2.so) tai määritä kirjasto SecurityKeyProvider-sovelluksen kautta. asetus ja suorita sitten "ssh-keygen -t ecdsa-sk" tai, jos avaimet on jo luotu ja määritetty, muodosta yhteys palvelimeen käyttämällä "ssh". Kun suoritat ssh-keygenin, luotu avainpari tallennetaan kansioon "~/.ssh/id_ecdsa_sk" ja sitä voidaan käyttää samalla tavalla kuin muita avaimia.

Julkinen avain (id_ecdsa_sk.pub) tulee kopioida palvelimelle authorised_keys-tiedostoon. Palvelinpuolella vain digitaalinen allekirjoitus varmistetaan ja vuorovaikutus tokenien kanssa suoritetaan asiakaspuolella (sinun ei tarvitse asentaa libsk-libfido2:ta palvelimelle, mutta palvelimen on tuettava "ecdsa-sk"-avaintyyppiä) . Luotu yksityinen avain (id_ecdsa_sk) on olennaisesti avainkahva, joka muodostaa oikean avaimen vain yhdessä U2F-merkkipuolelle tallennetun salaisen sekvenssin kanssa.

Jos id_ecdsa_sk-avain joutuu hyökkääjän käsiin, hänen on päästävä läpi todennuksen myös laitteistotunnukseen, jota ilman id_ecdsa_sk-tiedostoon tallennettu yksityinen avain on hyödytön. Lisäksi oletusarvoisesti avaimilla suoritettaessa (sekä luomisen että todennuksen aikana) vaaditaan paikallinen vahvistus käyttäjän fyysisestä läsnäolosta, esimerkiksi ehdotetaan koskettamalla tunnuksessa olevaa anturia, mikä vaikeuttaa suorittaa etähyökkäyksiä järjestelmiin yhdistetyllä tunnuksella. Toisena puolustuslinjana salasana voidaan määrittää myös ssh-keygenin käynnistysvaiheessa avaintiedostoon pääsyä varten.

U2F-avain voidaan lisätä ssh-agentiin komennolla "ssh-add ~/.ssh/id_ecdsa_sk", mutta ssh-agentin tulee olla rakennettu tukemaan "ecdsa-sk"-avaimia, libsk-libfido2-kerroksen on oltava läsnä ja agentin on oltava käynnissä järjestelmässä , johon tunnus on yhdistetty.
Uusi avaintyyppi ”ecdsa-sk” on lisätty, koska OpenSSH:n ecdsa-avainten muoto eroaa ECDSA-digitaalisen allekirjoituksen U2F-muodosta lisäkenttien vuoksi.

Lähde: opennet.ru

Lisää kommentti