Podpora univerzální dvoufaktorové autentizace byla přidána do OpenSSH

Do kódu OpenSSH byla přidána experimentální podpora dvoufaktorové autentizace pomocí zařízení podporujících protokol U2F, vyvíjeného aliancí FIDO. U2F umožňuje vytvářet cenově dostupné hardwarové tokeny pro potvrzení fyzické přítomnosti uživatele, jejichž interakce probíhá přes USB, Bluetooth nebo NFC. Taková zařízení jsou propagována jako prostředek pro dvoufaktorovou autentizaci na webových stránkách, již je podporují hlavní prohlížeče a vyrábí je různí výrobci, včetně Yubico, Feitian, Thetis a Kensington.

Pro interakci s zařízeními, která potvrzují přítomnost uživatele, byl do OpenSSH přidán nový typ klíčů „sk-ecdsa-sha2-nistp256@openssh.com“ („ecdsa-sk“), který využívá algoritmus digitálního podpisu ECDSA (Elliptic Curve Digital Signature Algorithm) s eliptickou křivkou NIST P-256 a hashem SHA-256. Postupy interakce s tokeny jsou vyčleněny do mezi-knihovny, která se načítá analogicky s knihovnou pro podporu PKCS#11 a je obalovou knihovnou nad knihovnou libfido2, která poskytuje prostředky pro komunikaci s tokeny přes USB (podporovány jsou protokoly FIDO U2F/CTAP 1 a FIDO 2.0/CTAP 2). Vyvinutá mezi-knihovna libsk-libfido2 od vývojářů OpenSSH je zahrnuta je součástí libfido2, stejně jako HID ovladač pro OpenBSD.

Pro povolení U2F lze použít aktuální zástřih kódu z repozitáře OpenSSH a HEAD-branch knihovny libfido2, která již obsahuje potřebnou mezivrstvu pro OpenSSH.
Libfido2 podporuje provoz v OpenBSD, Linuxu, macOS a Windows.

Pro autentizaci a generaci klíče je nutné nastavit proměnnou prostředí SSH_SK_PROVIDER, v níž uvedete cestu k libsk-libfido2.so (export SSH_SK_PROVIDER=/path/to/libsk-libfido2.so), nebo definovat knihovnu prostřednictvím nastavení SecurityKeyProvider a poté spustit „ssh-keygen -t ecdsa-sk“ nebo, pokud jsou klíče již vytvořeny a nastaveny, připojit se k serveru pomocí „ssh“. Při spuštění ssh-keygen bude vytvořená dvojice klíčů uložena do „~/.ssh/id_ecdsa_sk“ a může být používána stejně jako jiné klíče.

Veřejný klíč (id_ecdsa_sk.pub) by měl být zkopírován na server do souboru authorized_keys. Na serveru se pouze ověřuje digitální podpis, zatímco interakce s tokeny probíhá na straně klienta (není nutné instalovat libsk-libfido2 na server, ale server musí podporovat typ klíčů „ecdsa-sk“). Vygenerovaný soukromý klíč (id_ecdsa_sk) je v podstatě deskriptor klíče, který vytváří skutečný klíč pouze ve spojení s tajnou sekvencí uchovávanou na straně tokenu U2F.

Pokud se klíč id_ecdsa_sk dostane do rukou útočníka, bude k provedení autentizace potřebovat také přístup k hardwarovému tokenu, bez něhož je uložený soubor id_ecdsa_sk soukromý klíč bezcenný. Navíc, ve výchozím nastavení je vyžadováno místní potvrzení fyzické přítomnosti uživatele při provádění jakýchkoliv operací s klíči (jak při generování, tak při autentizaci), například se doporučuje dotknout se senzoru na tokenu, což ztěžuje provádění dálkových útoků na systémy s připojeným tokenem. Jako další prvek ochrany může být při spuštění ssh-keygen také zadáno heslo pro přístup k souboru s klíčem.

Klíč U2F může být přidán do ssh-agentu přes „ssh-add ~/.ssh/id_ecdsa_sk“, ale ssh-agent musí být sestaven s podporou klíčů „ecdsa-sk“, musí být přítomna vrstva libsk-libfido2 a agent musí běžet na systému, ke kterému se token připojuje.
Nový typ klíčů „ecdsa-sk“ byl přidán, protože formát ecdsa-klíčů OpenSSH se liší od formátu U2F pro digitální podpisy ECDSA přítomností dodatečných polí.

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster