OpenSSH a titkosított kommunikációt lehetővé tevő alkalmazások összessége hálózaton keresztül, az SSH protokoll használatával kísérleti támogatást adott a kétfaktoros hitelesítéshez kódállományába, olyan eszközök használatával, amelyek támogatják a FIDO szövetség által kifejlesztett U2F protokollt.
Azok számára, akik nincsenek tudatában U2F, ezt tudniuk kellene, ez egy nyílt szabvány olcsó hardveres biztonsági tokenek készítéséhez. Ezek a felhasználók számára a legolcsóbb módszerek a hardverrel támogatott kulcspár és jó a gyártók köre akik eladják őket, beleértves Yubico, Feitian, Thetis és Kensington.
A hardverrel támogatott kulcsok előnye, hogy jelentősen nehezebb ellopni: a támadónak általában el kell lopnia a fizikai tokent (vagy legalábbis állandó hozzáférést ahhoz) a kulcs ellopásához.
Mivel számos módon beszélhetünk U2F eszközökkel, beleértve az USB-t, a Bluetooth-ot és az NFC-t, nem akartunk rengeteg függőséget betölteni az OpenSSH-ba. Ehelyett a tokennel való kommunikáció feladatát átruháztuk egy kis köztes programkönyvtár, amely a meglévő PKCS # 11 támogatáshoz hasonlóan töltődik be.
Az OpenSSH most kísérleti U2F / FIDO támogatással rendelkezik, az U2F esetén új kulcstípusként kerül hozzáadásra sk-ecdsa-sha2-nistp256@openssh.com vagy «ecdsa-sk"Röviden (az" sk "jelentése" biztonsági kulcs ").
A tokenekkel való interakció eljárásai áthelyezésre kerültek egy köztes könyvtárba, amelyet analógia útján töltenek be a PKCS # 11 támogatás könyvtárához, és ez egy link a libfido2 könyvtárban, amely eszközöket biztosít a tokenekkel USB-n keresztüli kommunikációhoz (FIDO U2F / CTAP 1 és FIDO 2.0 / CTAP 2).
Könyvtár közbülső libsk-libfido2 az OpenSSH fejlesztői készítették elő a libfido2 kernel része, valamint az OpenBSD HID illesztőprogramját.
Az U2F engedélyezéséhez az OpenSSH repository kódbázisának egy új része használható és a libfido2 könyvtár HEAD ága, amely már tartalmazza az OpenSSH számára szükséges réteget. A Libfido2 támogatja az OpenBSD, Linux, macOS és Windows rendszereken való munkát.
A Yubico libfido2-hez írtunk egy alapvető köztes szoftvert, amely képes bármilyen szabványos USB HID U2F vagy FIDO2 tokennel beszélgetni. A köztes szoftver. A forrás a libfido2 fában van tárolva, így ennek és az OpenSSH HEAD felépítése elég a kezdéshez
A nyilvános kulcsot (id_ecdsa_sk.pub) át kell másolni a szerverre a hitelesített_kulcs fájlban. A szerver oldalon csak egy digitális aláírást ellenőriznek, és a tokenekkel való interakciót az ügyfél oldalon végzik (a libsk-libfido2 szoftvert nem kell telepíteni a szerverre, de a szervernek támogatnia kell az "ecdsa-sk" kulcs típust ).
A létrehozott privát kulcs (ecdsa_sk_id) lényegében kulcsleíró, amely csak az U2F token oldalán tárolt titkos szekvenciával kombinálva alkot valós kulcsot.
Ha a kulcs ecdsa_sk_id a támadó kezébe kerül, a hitelesítéshez hozzá kell férnie a hardver tokenhez is, amely nélkül az id_ecdsa_sk fájlban tárolt magánkulcs haszontalan.
Ezen túlmenően, alapértelmezés szerint a kulcsműveletek végrehajtásakor (mind a generálás, mind a hitelesítés során), helyi megerősítés szükséges a felhasználó fizikai jelenlétérőlPéldául javasoljuk, hogy érintse meg a token érzékelőjét, ami megnehezíti a távoli támadások végrehajtását csatlakoztatott tokennel rendelkező rendszerek ellen.
A kezdeti szakaszban ssh-keygen, más jelszó is beállítható hogy a kulccsal elérhesse a fájlt.
Az U2F kulcs hozzáadható ssh-agent keresztül "ssh-add ~/.ssh/id_ecdsa_sk", de ssh-agent kulcsfontosságú támogatással kell összeállítani ecdsa-sk, a libsk-libfido2 rétegnek jelen kell lennie, és az ügynöknek azon a rendszeren kell futnia, amelyhez a token csatlakozik.
Új típusú kulcs került hozzá ecdsa-sk mivel a kulcsformátum ecdsa Az OpenSSH eltér a digitális aláírások U2F formátumától ECDSA további mezők jelenlétével.
Ha többet szeretne tudni róla konzultálhat a következő link.