Do kódovej základne OpenSSH
Na interakciu so zariadeniami, ktoré potvrdzujú prítomnosť používateľa, bol do OpenSSH pridaný nový typ kľúčov “[chránené e-mailom]“ („ecdsa-sk“), ktorý používa algoritmus digitálneho podpisu ECDSA (Elliptic Curve Digital Signature Algorithm) s eliptickou krivkou NIST P-256 a hashom SHA-256. Procedúry na interakciu s tokenmi sú umiestnené v prechodnej knižnici, ktorá sa načítava podobným spôsobom ako knižnica pre podporu PKCS#11 a je obalom na vrchu knižnice.
Ak chcete povoliť U2F, môžete použiť novú časť kódovej základne z
Libfido2 podporuje OpenBSD, Linux, macOS a Windows.
Ak chcete autentifikovať a vygenerovať kľúč, musíte nastaviť premennú prostredia SSH_SK_PROVIDER a uviesť v nej cestu k libsk-libfido2.so (exportovať SSH_SK_PROVIDER=/cesta/k/libsk-libfido2.so), alebo definovať knižnicu cez SecurityKeyProvider a potom spustite „ssh-keygen -t ecdsa-sk“ alebo, ak už boli kľúče vytvorené a nakonfigurované, pripojte sa k serveru pomocou „ssh“. Keď spustíte ssh-keygen, vygenerovaný pár kľúčov sa uloží do „~/.ssh/id_ecdsa_sk“ a dá sa použiť podobne ako ostatné kľúče.
Verejný kľúč (id_ecdsa_sk.pub) by mal byť skopírovaný na server v súbore author_keys. Na strane servera sa overuje iba digitálny podpis a interakcia s tokenmi sa vykonáva na strane klienta (nemusíte inštalovať libsk-libfido2 na server, ale server musí podporovať typ kľúča „ecdsa-sk“) . Vygenerovaný súkromný kľúč (id_ecdsa_sk) je v podstate kľúčový kľúč, ktorý tvorí skutočný kľúč iba v kombinácii s tajnou sekvenciou uloženou na strane tokenu U2F.
Ak sa kľúč id_ecdsa_sk dostane do rúk útočníka, na odovzdanie autentifikácie bude potrebovať aj prístup k hardvérovému tokenu, bez ktorého je súkromný kľúč uložený v súbore id_ecdsa_sk zbytočný. Okrem toho sa štandardne pri vykonávaní akýchkoľvek operácií s kľúčmi (pri generovaní aj pri autentifikácii) vyžaduje lokálne potvrdenie fyzickej prítomnosti používateľa, napríklad sa navrhuje dotknúť sa senzora na tokene, čo sťažuje vykonávať vzdialené útoky na systémy s pripojeným tokenom. Ako ďalšiu obrannú líniu je možné zadať heslo aj počas spúšťacej fázy ssh-keygen na prístup k súboru kľúčov.
Kľúč U2F je možné pridať do ssh-agenta cez "ssh-add ~/.ssh/id_ecdsa_sk", ale ssh-agent musí byť zostavený s podporou kľúčov "ecdsa-sk", musí byť prítomná vrstva libsk-libfido2 a agent musí byť spustený v systéme, ku ktorému je pripojený token.
Bol pridaný nový typ kľúča „ecdsa-sk“, pretože formát kľúčov ecdsa OpenSSH sa líši od formátu U2F pre digitálne podpisy ECDSA v prítomnosti ďalších polí.
Zdroj: opennet.ru