Do kódové základny OpenSSH
Pro interakci se zařízeními, která potvrzují přítomnost uživatele, byl do OpenSSH přidán nový typ klíčů.[chráněno e-mailem]“ („ecdsa-sk“), který používá algoritmus digitálního podpisu ECDSA (Elliptic Curve Digital Signature Algorithm) s eliptickou křivkou NIST P-256 a hash SHA-256. Procedury pro interakci s tokeny jsou umístěny v přechodné knihovně, která se načítá podobným způsobem jako knihovna pro podporu PKCS#11 a je obalem nad knihovnou.
Chcete-li povolit U2F, můžete použít novou část kódové základny z
Libfido2 podporuje OpenBSD, Linux, macOS a Windows.
Chcete-li ověřit a vygenerovat klíč, musíte nastavit proměnnou prostředí SSH_SK_PROVIDER a uvést v ní cestu k libsk-libfido2.so (exportovat SSH_SK_PROVIDER=/cesta/k/libsk-libfido2.so) nebo definovat knihovnu prostřednictvím SecurityKeyProvider a poté spusťte „ssh-keygen -t ecdsa-sk“, nebo pokud již byly klíče vytvořeny a nakonfigurovány, připojte se k serveru pomocí „ssh“. Když spustíte ssh-keygen, vygenerovaný pár klíčů se uloží do „~/.ssh/id_ecdsa_sk“ a lze jej použít podobně jako jiné klíče.
Veřejný klíč (id_ecdsa_sk.pub) by měl být zkopírován na server do souboru author_keys. Na straně serveru se ověřuje pouze digitální podpis a interakce s tokeny se provádí na straně klienta (není třeba instalovat libsk-libfido2 na server, ale server musí podporovat typ klíče „ecdsa-sk“) . Generovaný soukromý klíč (id_ecdsa_sk) je v podstatě klíčový klíč, který tvoří skutečný klíč pouze v kombinaci s tajnou sekvencí uloženou na straně tokenu U2F.
Pokud se klíč id_ecdsa_sk dostane do rukou útočníka, bude k předání autentizace potřebovat také získat přístup k hardwarovému tokenu, bez kterého je soukromý klíč uložený v souboru id_ecdsa_sk k ničemu. Navíc je standardně při provádění jakýchkoli operací s klíči (jak při generování, tak při autentizaci) vyžadováno lokální potvrzení fyzické přítomnosti uživatele, například se navrhuje dotknout se senzoru na tokenu, což znesnadňuje provádět vzdálené útoky na systémy s připojeným tokenem. Jako další obrannou linii lze během spouštěcí fáze ssh-keygen zadat heslo pro přístup k souboru klíče.
Klíč U2F lze přidat do ssh-agenta pomocí "ssh-add ~/.ssh/id_ecdsa_sk", ale ssh-agent musí být vytvořen s podporou klíčů "ecdsa-sk", musí být přítomna vrstva libsk-libfido2 a agent musí být spuštěn v systému, ke kterému je token připojen.
Byl přidán nový typ klíče „ecdsa-sk“, protože formát klíčů ecdsa OpenSSH se liší od formátu U2F pro digitální podpisy ECDSA přítomností dalších polí.
Zdroj: opennet.ru