Az OpenSSH támogatja az univerzális kéttényezős hitelesítést

Az OpenSSH kódbázisba tette hozzá kísérleti támogatás a kéttényezős hitelesítéshez a protokollt támogató eszközök használatával U2F, amelyet a szövetség fejlesztett ki FIDO. Az U2F lehetővé teszi az olcsó hardveres tokenek létrehozását a felhasználó fizikai jelenlétének ellenőrzésére, interakcióba lépve velük USB-n, Bluetooth-on vagy NFC-n keresztül. Az ilyen eszközöket a webhelyeken a kétfaktoros hitelesítés eszközeként reklámozzák, a nagyobb böngészők már támogatják őket, és különféle gyártók, köztük a Yubico, a Feitian, a Thetis és a Kensington gyártják.

A felhasználó jelenlétét megerősítő eszközökkel való interakcióhoz új típusú kulcsok kerültek az OpenSSH-ba.[e-mail védett]” („ecdsa-sk”), amely az ECDSA (Elliptic Curve Digital Signature Algorithm) digitális aláírási algoritmust használja NIST P-256 elliptikus görbével és SHA-256 hash-sel. A tokenekkel való interakciós eljárások egy köztes könyvtárban vannak elhelyezve, amely a PKCS#11 támogatási könyvtárhoz hasonló módon töltődik be, és egy burkoló a könyvtár tetején. libfido2, amely eszközöket biztosít a tokenekkel való USB-n keresztüli kommunikációhoz (a FIDO U2F/CTAP 1 és FIDO 2.0/CTAP 2 protokollok támogatottak). Köztes könyvtár libsk-libfido2, OpenSSH fejlesztők által készített beleértve a libfido2 magba, valamint HID driver OpenBSD-hez.

Az U2F engedélyezéséhez használhatja a kódbázis egy friss szeletét adattár OpenSSH és a könyvtár HEAD ága libfido2, amely már tartalmazza az OpenSSH-hoz szükséges réteget.
A Libfido2 támogatja az OpenBSD-t, a Linuxot, a macOS-t és a Windows-t.

A hitelesítéshez és a kulcs generálásához be kell állítani az SSH_SK_PROVIDER környezeti változót, jelezve benne a libsk-libfido2.so elérési útját (exportálhatja az SSH_SK_PROVIDER=/path/to/libsk-libfido2.so), vagy meg kell határoznia a könyvtárat a SecurityKeyProvideren keresztül. beállítást, majd futtassa az „ssh-keygen -t ecdsa-sk” parancsot, vagy ha a kulcsokat már létrehozta és konfigurálta, csatlakozzon a szerverhez az „ssh” használatával. Az ssh-keygen futtatásakor a generált kulcspár a „~/.ssh/id_ecdsa_sk” mappába kerül mentésre, és más kulcsokhoz hasonlóan használható.

A nyilvános kulcsot (id_ecdsa_sk.pub) át kell másolni a kiszolgálóra az Author_keys fájlban. Szerver oldalon csak a digitális aláírás ellenőrzése történik meg, a kliens oldalon a tokenekkel való interakció (nem kell telepítenie a libsk-libfido2-t a szerverre, de a szervernek támogatnia kell az „ecdsa-sk” kulcstípust) . A generált privát kulcs (id_ecdsa_sk) lényegében egy kulcsleíró, amely csak az U2F token oldalán tárolt titkos szekvenciával együtt alkot valódi kulcsot.

Ha az id_ecdsa_sk kulcs a támadó kezébe kerül, a hitelesítés átadásához hozzá kell férnie a hardveres tokenhez is, amely nélkül az id_ecdsa_sk fájlban tárolt privát kulcs használhatatlan. Ezenkívül alapértelmezés szerint a kulcsokkal végzett műveletek végrehajtása során (mind a generálás, mind a hitelesítés során) a felhasználó fizikai jelenlétének helyi megerősítése szükséges, például javasolt a tokenen lévő érzékelő megérintése, ami megnehezíti a távoli támadásokat hajthat végre csatlakoztatott tokennel rendelkező rendszerek ellen. Egy másik védelmi vonalként az ssh-keygen indítási szakaszában jelszó is megadható a kulcsfájl eléréséhez.

Az U2F kulcs hozzáadható az ssh-agenthez az "ssh-add ~/.ssh/id_ecdsa_sk" paranccsal, de az ssh-agentnek az "ecdsa-sk" kulcsok támogatásával kell felépíteni, a libsk-libfido2 rétegnek jelen kell lennie, és a ügynöknek futnia kell azon a rendszeren, amelyhez a token csatlakozik.
Egy új „ecdsa-sk” kulcstípus került hozzáadásra, mivel az OpenSSH ecdsa kulcsok formátuma további mezők jelenlétében eltér az ECDSA digitális aláírások U2F formátumától.

Forrás: opennet.ru

Hozzászólás