OpenSSH-ի կոդային բազա եքսպերիմենտալ աջակցության երկֆակտորային հեղինակություն օգտագործելով սարքեր, որոնք աջակցում են արձանագրությանը , որը մշակվում է -ի կողմից։ U2F-ն ապահովում է ծախսերատու硬件 տոկենների ստեղծում, որոնք հաստատում են օգտվողի ֆիզիկական առկայությունը, և նրանց հետ փոխազդելու գործընթացը կատարվում է USB, Bluetooth կամ NFC-ի միջոցով։ Այդպիսի սարքերը առաջարկվում են որպես մարդիկ ֆակտորային ինքնազրույցի միջոցներ կայքերում, արդեն աջակցվում են հիմնական զննարկիչների կողմից և թողարկվում են տարբեր արտադրողների կողմից, այդ թվում՝ Yubico, Feitian, Thetis և Kensington:
Օգտագործողի ներկայությունը հաստատող սարքերի հետ փոխազդելու համար OpenSSH-ում ավելացել է «sk-ecdsa-sha2-nistp256@openssh.com» («ecdsa-sk») նոր տեսակի բանալիների տեսակ, որը օգտագործում է ECDSA (Elliptic Curve Digital Signature Algorithm) թվային ստորագրության ալգորիթմը NIST P-256 էկլիպտիկական կորով և SHA-256 հեշով։ Սքանավորման ընթացակարգերը տեղափոխված են միջանկյալ գրադարան, որը ներբեռնվում է PKCS#11 աջակցության գրադարանի հետագծման նմանությամբ և հանդիսանում է գրադարանային գծապատկեր。 , որը տրամադրում է հաղորդակցման միջոցներ USB-ի վրա տոկենների հետ (դրանք աջակցում են FIDO U2F/CTAP 1 և FIDO 2.0/CTAP 2 պրոտոկոլները)։ OpenSSH-ի մշակողներն այս միջանկյալ գրադարանը ընդգրկել են libfido2-ի հիմնական կազմի մեջ, ինչպես նաև HID-դրայվեր Ինքնազրույցի և բանալի ստեղծելու համար անհրաժեշտ է կարգաբերել «SecurityKeyProvider» պարամետրը կամ կարգավորումային միջավայրի SSH_SK_PROVIDER փոփոխականը նշելով արտաքին libsk-libfido2.so գրադարանի ճանապարհը (export SSH_SK_PROVIDER=/path/to/libsk-libfido2.so)։ Հնարավոր է նաև openssh-ի կառուցում, որն ունի ինտեգրված միջոցների աջակցություն (—with-security-key-builtin), այս դեպքում անհրաժեշտ է կարգաբերել «SecurityKeyProvider=internal» պարամետրը:
U2F-ը հնարավոր է ակտիվացնել նորագույն կոդային բազայի կտրող օգտագործելով OpenSSH և HEAD-հետ branch գրադարան , որը ներառում է OpenSSH-ի համար անհրաժեշտ շերտը։
Libfido2-ն աջակցում է աշխատանքին OpenBSD, Linux, macOS և Windows-ում։
Հեղինակության և բանալիի սերսումը անհրաժեշտ է սահմանել SSH_SK_PROVIDER միջավայրի փոփոխականը, նշելով դրա մեջ libsk-libfido2.so-ին հասցեն (export SSH_SK_PROVIDER=\/path\/to\/libsk-libfido2.so), կամ որոշել գրադարանը SecurityKeyProvider-ի վերականգնմամբ, հետո գործարկել «ssh-keygen -t ecdsa-sk» կամ, եթե բանալիները արդեն ստեղծված և կարգավորվել են, կապվել սերվերին «ssh» միջոցով։ ssh-keygen գործարկելու դեպքում ստեղծված բանալիների զույգը պահպանվելու է «~\/ .ssh\/id_ecdsa_sk» մեջ և կարող է օգտագործվել այնպես, ինչպես otras բանալիները։
Բաժանված բանալին (id_ecdsa_sk.pub) պետք է կրկնօրինակվի սերվերում සඳහා authorized_keys ֆայլում։ Սերվերի կողմից միայն ստուգվում է թվային ստորագրությունը, իսկ թոկենների հետ փոխազդումը կատարվում է հաճախորդի կողմից (սերվերում պետք չէ տեղադրել libsk-libfido2, բայց սերվերը պետք է աջակցի «ecdsa-sk» բանալիների տեսակին)։ Գերիշխան փակ բանալին (id_ecdsa_sk) իրականում այն բանալիի դեսկրիպտորն է, որը կազմում է իրական բանալին միայն U2F-ի կողմից պահվող գաղտնի հաջորդականությանը զուգակցված։
Եթե key id_ecdsa_sk-ը ընկնի մի հանցագործի ձեռքերի, ապա նրա համար ավտորիզացումը իրականացնելու համար անհրաժեշտ է նաև մուտք գործել սարքային տոկեն, առանց որի ֆայլում պահպանված id_ecdsa_sk փակ բանալին անօգտակար է: Բացի այդ, ցանկացած բանալիով գործողություններ կատարելիս (ինչպես արտադրության, այնպես էլ ավտորիզացման ժամանակ) անհրաժեշտ է տեղական հաստատման ֆիզիկական ներկայություն, օրինակ, առաջարկվում է ճզմել տոկենի սենսորը, ինչը դժվարացնում է հեռահար հարձակումները token-ով առկա համակարգերի վրա: Այլ պաշտպանական շեմը ssh-keygen-ի գործարկման փուլում կարող է նաև սահմանվել գաղտապահևի հասանելիության գաղտնաբառը:
U2F բանալին կարող է ավելացվել ssh-agent-ի մեջ՝ «ssh-add ~/ .ssh /id_ecdsa_sk» միջոցով, բայց ssh-agent-ը պետք է հավաքված լինի «ecdsa-sk» բանալիների աջակցությամբ, անհրաժեշտ է libsk-libfido2 միջանկյալ շերտ և գործակալը պետք է գործի համակարգում, որի հետ միանում է տոկենը:
Նոր «ecdsa-sk» բանալիների տեսակը ավելացված է, քանի որ OpenSSH ecdsa-բանակային ձևաչափը տարբերվում է U2F-ի ECDSA թվային ստորագրությունների ձևաչափից՝ լրացուցիչ դաշտերի առկայությամբ:
Ընտանիք: opennet.ru
