Në bazën e kodit OpenSSH mbështetje eksperimentale për autentifikimin me dy faktorë duke përdorur pajisje që mbështesin protokollin , e zhvilluar nga aleanca . U2F lejon krijimin e tokenëve fizikë të lirë për të konfirmuar praninë fizike të përdoruesit, me të cilët ndërveprohet përmes USB, Bluetooth ose NFC. Këto pajisje promovohen si një mjet për autentifikimin me dy faktorë në faqe, mbështeten tashmë nga shfletuesit kryesorë dhe prodhohen nga disa prodhues, përfshirë Yubico, Feitian, Thetis dhe Kensington.
Për të ndërvepruar me pajisjet që konfirmojnë praninë e përdoruesit, në OpenSSH është shtuar një lloj i ri çelësash «sk-ecdsa-sha2-nistp256@openssh.com» («ecdsa-sk»), i cili përdor algoritmin e nënshkrimit digjital ECDSA (Elliptic Curve Digital Signature Algorithm) me kurbën eliptike NIST P-256 dhe hashin SHA-256. Procedurat e ndërveprimit me tokenët janë zhvendosur në një bibliotekë ndërmjetësuese, e cila ngarkohet në mënyrë të ngjashme me bibliotekën për mbështetje të PKCS#11 dhe është një mbështetje mbi bibliotekën , e cila ofron mjete për komunikim me tokenët mbi USB (mbështeten protokollet FIDO U2F/CTAP 1 dhe FIDO 2.0/CTAP 2). Biblioteka ndërmjetëse libsk-libfido2 e përgatitur nga zhvilluesit e OpenSSH u përfshi në përbërjen kryesore të libfido2, ashtu si për OpenBSD.
Për të aktivizuar U2F mund të përdorni një prerje të re të bazës së kodit nga OpenSSH dhe dega HEAD e bibliotekës , e cila tashmë përmban shtresën e nevojshme për OpenSSH.
Libfido2 mbështet funksionimin në OpenBSD, Linux, macOS dhe Windows.
Për autentifikim dhe gjenerimin e çelësit, duhet të vendosni variablën e ambientit SSH_SK_PROVIDER, duke treguar aty rrugën për libsk-libfido2.so (export SSH_SK_PROVIDER=/path/to/libsk-libfido2.so), ose ta definoni bibliotekën përmes konfigurimit SecurityKeyProvider, pas së cilës duhet të drejtoni «ssh-keygen -t ecdsa-sk» ose, nëse çelësat tashmë janë krijuar dhe konfiguruar, të lidheni me serverin duke përdorur «ssh». Kur ndiheni me ssh-keygen, çifti i krijuar i çelësave do të ruhet në «~/.ssh/id_ecdsa_sk» dhe mund të përdoret njësoj si çelësat e tjerë.
ĂelĂ«si publik (id_ecdsa_sk.pub) duhet tĂ« kopjohet nĂ« server nĂ« skedarin authorized_keys. NĂ« anĂ«n e serverit kontrollohet vetĂ«m nĂ«nshkrimi digjital, ndĂ«rsa ndĂ«rveprimi me tokenat kryhet nĂ« anĂ«n e klientit (nuk Ă«shtĂ« e nevojshme tĂ« instalohet libsk-libfido2 nĂ« server, por serveri duhet tĂ« mbĂ«shtesĂ« llojin e çelĂ«save «ecdsa-sk»). ĂelĂ«si privat i gjeneruar (id_ecdsa_sk) nĂ« thelb Ă«shtĂ« njĂ« pĂ«rshkrim i çelĂ«sit qĂ« formon çelĂ«sin e vĂ«rtetĂ« vetĂ«m nĂ« kombinim me njĂ« sekuencĂ« sekrete, e cila ruhet nĂ« anĂ«n e tokenit U2F.
Nëse çelësi id_ecdsa_sk bie në duar të një sulmuesi, për të kaluar autentikimin ai do t'i nevojitet gjithashtu akses në tokenin harduerik, pa të cilin çelësi privat i ruajtur në skedarin id_ecdsa_sk është i pavlerë. Për më tepër, në mënyrë default, gjatë kryerjes së çdo operacioni me çelësa (si gjatë gjenerimit ashtu edhe gjatë autentikimit) kërkohet një konfirmim lokal i pranishëm fizikisht të përdoruesit, për shembull, duke iu kërkuar të prekin sensorin në token, gjë që e vështirëson kryerjen e sulmeve të largëta ndaj sistemeve me token të lidhur. Si një barierë tjetër mbrojtëse, në fazën e nisjes ssh-keygen gjithashtu mund të kërkohet një fjalëkalim për qasje në skedarin me çelësin.
ĂelĂ«si U2F mund tĂ« shtohet nĂ« ssh-agent nĂ«pĂ«rmjet «ssh-add ~/ .ssh/id_ecdsa_sk», por ssh-agent duhet tĂ« jetĂ« ndĂ«rtuar me mbĂ«shtetje pĂ«r çelĂ«sat «ecdsa-sk», duhet tĂ« jetĂ« e pranishme njĂ« mbĂ«shtetje libsk-libfido2 dhe agjenti duhet tĂ« funksionojĂ« nĂ« sistemin nĂ« tĂ« cilin lidhni tokenin.
Një tip i ri çelësash «ecdsa-sk» është shtuar pasi formati i çelësave ecdsa të OpenSSH ndryshon nga formati U2F për nënshkrime digjitale ECDSA, duke pasur fushat shtesë.
Burimi: opennet.ru
