OpenSSH shton mbështetje për vërtetimin universal me dy faktorë

Në bazën e kodeve OpenSSH shtuar mbështetje eksperimentale për vërtetimin me dy faktorë duke përdorur pajisje që mbështesin protokollin U2F, zhvilluar nga aleanca Fido. U2F lejon krijimin e kodeve harduerike me kosto të ulët për të verifikuar praninë fizike të përdoruesit, duke ndërvepruar me ta nëpërmjet USB, Bluetooth ose NFC. Pajisjet e tilla promovohen si një mjet i vërtetimit me dy faktorë në faqet e internetit, tashmë mbështeten nga shfletuesit kryesorë dhe prodhohen nga prodhues të ndryshëm, duke përfshirë Yubico, Feitian, Thetis dhe Kensington.

Për të bashkëvepruar me pajisjet që konfirmojnë praninë e përdoruesit, një lloj i ri çelësash është shtuar në OpenSSH "[email mbrojtur]” (“ecdsa-sk”), i cili përdor algoritmin e nënshkrimit dixhital ECDSA (Elliptic Curve Digital Signature Algorithm) me kurbën eliptike NIST P-256 dhe hash SHA-256. Procedurat për bashkëveprimin me token vendosen në një bibliotekë të ndërmjetme, e cila ngarkohet në mënyrë të ngjashme me bibliotekën për mbështetjen e PKCS#11 dhe është një mbështjellës në krye të bibliotekës libfido2, i cili ofron mjete për komunikimin me tokenat përmes USB (protokollet FIDO U2F/CTAP 1 dhe FIDO 2.0/CTAP 2 mbështeten). Biblioteka e ndërmjetme libsk-libfido2 e përgatitur nga zhvilluesit e OpenSSH të përfshira në thelbin libfido2, si dhe Shoferi HID për OpenBSD.

Për të aktivizuar U2F, mund të përdorni një pjesë të re të bazës së kodit nga repozitoriя OpenSSH dhe dega HEAD e bibliotekës libfido2, e cila tashmë përfshin shtresën e nevojshme për OpenSSH.
Libfido2 mbështet OpenBSD, Linux, macOS dhe Windows.

Për të vërtetuar dhe gjeneruar një çelës, duhet të vendosni ndryshoren e mjedisit SSH_SK_PROVIDER, duke treguar në të shtegun për në libsk-libfido2.so (eksporto SSH_SK_PROVIDER=/path/to/libsk-libfido2.so), ose të përcaktosh bibliotekën përmes SecurityKeyProvider vendosjen, dhe më pas ekzekutoni "ssh-keygen -t ecdsa-sk" ose, nëse çelësat janë krijuar dhe konfiguruar tashmë, lidheni me serverin duke përdorur "ssh". Kur ekzekutoni ssh-keygen, çifti i çelësave të krijuar do të ruhet në "~/.ssh/id_ecdsa_sk" dhe mund të përdoret në mënyrë të ngjashme me çelësat e tjerë.

Çelësi publik (id_ecdsa_sk.pub) duhet të kopjohet në server në skedarin autorized_keys. Në anën e serverit, verifikohet vetëm nënshkrimi dixhital dhe ndërveprimi me token kryhet në anën e klientit (nuk keni nevojë të instaloni libsk-libfido2 në server, por serveri duhet të mbështesë llojin e çelësit "ecdsa-sk") . Çelësi privat i gjeneruar (id_ecdsa_sk) është në thelb një dorezë çelësi, duke formuar një çelës të vërtetë vetëm në kombinim me sekuencën sekrete të ruajtur në anën e shenjës U2F.

Nëse çelësi id_ecdsa_sk bie në duart e një sulmuesi, për të kaluar vërtetimin, atij do t'i duhet gjithashtu të ketë akses në tokenin e harduerit, pa të cilin çelësi privat i ruajtur në skedarin id_ecdsa_sk është i padobishëm. Përveç kësaj, si parazgjedhje, kur kryeni ndonjë operacion me çelësat (si gjatë gjenerimit ashtu edhe gjatë vërtetimit), kërkohet konfirmimi lokal i pranisë fizike të përdoruesit, për shembull, propozohet të prekni sensorin në shenjë, gjë që e bën të vështirë kryejnë sulme në distancë në sisteme me një shenjë të lidhur. Si një linjë tjetër mbrojtjeje, një fjalëkalim mund të specifikohet gjithashtu gjatë fazës së fillimit të ssh-keygen për të hyrë në skedarin e çelësit.

Çelësi U2F mund të shtohet në ssh-agent nëpërmjet "ssh-add ~/.ssh/id_ecdsa_sk", por ssh-agent duhet të ndërtohet me mbështetje për çelësat "ecdsa-sk", shtresa libsk-libfido2 duhet të jetë e pranishme dhe agjenti duhet të funksionojë në sistemin me të cilin është lidhur token.
Një tip i ri çelësi "ecdsa-sk" është shtuar pasi formati i çelësave OpenSSH ecdsa ndryshon nga formati U2F për nënshkrimet dixhitale ECDSA në prani të fushave shtesë.

Burimi: opennet.ru

Shto një koment