OpenSSH 8.2-ի թողարկում՝ FIDO/U2F երկգործոն նույնականացման նշանների աջակցությամբ

Չորս ամիս զարգացումից հետո ներկայացված արձակել OpenSSH 8.2, բաց հաճախորդի և սերվերի իրականացում SSH 2.0 և SFTP արձանագրությունների միջոցով աշխատելու համար։

OpenSSH 8.2-ի թողարկման առանցքային բարելավումն էր երկու գործոնով նույնականացումն օգտագործելու հնարավորությունը՝ օգտագործելով սարքեր, որոնք աջակցում են արձանագրությանը: U2F, մշակվել է դաշինքի կողմից FIDO- ն. U2F-ը թույլ է տալիս ստեղծել էժան ապարատային թոքեններ՝ ստուգելու օգտատիրոջ ֆիզիկական ներկայությունը՝ փոխազդելով նրանց հետ USB-ի, Bluetooth-ի կամ NFC-ի միջոցով: Նման սարքերը գովազդվում են որպես երկու գործոն նույնականացման միջոց կայքերում, արդեն աջակցվում են խոշոր բրաուզերների կողմից և արտադրվում են տարբեր արտադրողների կողմից, ներառյալ Yubico-ն, Feitian-ը, Thetis-ը և Kensington-ը:

Օգտատիրոջ ներկայությունը հաստատող սարքերի հետ փոխազդելու համար OpenSSH-ին ավելացվել են «ecdsa-sk» և «ed25519-sk» նոր բանալիներ, որոնք օգտագործում են ECDSA և Ed25519 թվային ստորագրության ալգորիթմները՝ զուգակցված SHA-256 հեշի հետ: Նշանների հետ փոխազդեցության ընթացակարգերը տեղադրվում են միջանկյալ գրադարանում, որը բեռնված է գրադարանի նման PKCS#11 աջակցության համար և հանդիսանում է գրադարանի վերևի փաթաթում: libfido2, որն ապահովում է USB-ի միջոցով թոքենների հետ հաղորդակցվելու գործիքներ (FIDO U2F/CTAP 1 և FIDO 2.0/CTAP 2 արձանագրությունները աջակցվում են): Միջանկյալ գրադարան libsk-libfido2, պատրաստված OpenSSH մշակողների կողմից ներառված մեջ հիմնական libfido2, ինչպես նաև HID վարորդ OpenBSD-ի համար:

Բանալին նույնականացնելու և ստեղծելու համար դուք պետք է կարգավորումներում նշեք «SecurityKeyProvider» պարամետրը կամ սահմանեք SSH_SK_PROVIDER միջավայրի փոփոխականը՝ նշելով արտաքին գրադարանի libsk-libfido2.so ուղին (արտահանել SSH_SK_PROVIDER=/path/to/libsk-libfido2: այսպես): Հնարավոր է կառուցել openssh շերտի գրադարանի ներկառուցված աջակցությամբ (--with-security-key-builtin), այս դեպքում պետք է սահմանել «SecurityKeyProvider=internal» պարամետրը։
Այնուհետև դուք պետք է գործարկեք «ssh-keygen -t ecdsa-sk» կամ, եթե ստեղները արդեն ստեղծվել և կազմաձևված են, միացեք սերվերին «ssh»-ի միջոցով: Երբ գործարկում եք ssh-keygen-ը, ստեղծված բանալիների զույգը կպահվի «~/.ssh/id_ecdsa_sk»-ում և կարող է օգտագործվել այլ ստեղների նման:

Հանրային բանալին (id_ecdsa_sk.pub) պետք է պատճենվի սերվերին autorized_keys ֆայլում: Սերվերի կողմից ստուգվում է միայն թվային ստորագրությունը, իսկ նշանների հետ փոխազդեցությունը կատարվում է հաճախորդի կողմից (դուք պետք չէ սերվերի վրա տեղադրել libsk-libfido2, բայց սերվերը պետք է աջակցի «ecdsa-sk» ստեղնի տեսակը) . Ստեղծված մասնավոր բանալին (id_ecdsa_sk) ըստ էության բանալու բռնակ է, որը իրական բանալի է կազմում միայն U2F նշանի կողմում պահվող գաղտնի հաջորդականության հետ համատեղ: Եթե ​​id_ecdsa_sk բանալին ընկնում է հարձակվողի ձեռքը, նույնականացումն անցնելու համար նա նաև պետք է մուտք գործի ապարատային նշան, առանց որի id_ecdsa_sk ֆայլում պահվող մասնավոր բանալին անօգուտ է:

Բացի այդ, լռելյայնորեն, բանալիներով որևէ գործողություն կատարելիս (ինչպես գեներացման, այնպես էլ նույնականացման ընթացքում) պահանջվում է օգտատիրոջ ֆիզիկական ներկայության տեղական հաստատում, օրինակ՝ առաջարկվում է դիպչել սենսորին նշանի վրա, ինչը դժվարացնում է. իրականացնել հեռահար հարձակումներ համակարգերի վրա միացված նշանով: Որպես պաշտպանության ևս մեկ գիծ, ​​գաղտնաբառ կարող է նաև սահմանվել ssh-keygen-ի գործարկման փուլում՝ բանալին մուտք գործելու համար:

OpenSSH-ի նոր տարբերակը նաև հայտարարեց SHA-1 հեշերի օգտագործմամբ ալգորիթմների առաջիկա անհետացման մասին՝ առաջխաղացում տվյալ նախածանցով բախման հարձակումների արդյունավետությունը (բախման ընտրության արժեքը գնահատվում է մոտավորապես 45 հազար դոլար): Առաջիկա թողարկումներից մեկում նրանք նախատեսում են լռելյայն անջատել հանրային բանալին թվային ստորագրության ալգորիթմի «ssh-rsa» օգտագործման հնարավորությունը, որը նշված է սկզբնական RFC-ում SSH արձանագրության համար և մնում է լայնորեն տարածված պրակտիկայում (օգտագործումը փորձարկելու համար ssh-rsa-ի ձեր համակարգերում, կարող եք փորձել միանալ ssh-ի միջոցով «-oHostKeyAlgorithms=-ssh-rsa» տարբերակով):

OpenSSH-ում նոր ալգորիթմների անցումը հարթելու համար, ապագա թողարկումում լռելյայն միացված կլինի UpdateHostKeys կարգավորումը, որն ավտոմատ կերպով կփոխանցի հաճախորդներին ավելի հուսալի ալգորիթմներ: Միգրացիայի համար առաջարկվող ալգորիթմները ներառում են rsa-sha2-256/512-ը՝ հիմնված RFC8332 RSA SHA-2-ի վրա (աջակցվում է OpenSSH 7.2-ից և օգտագործվում է լռելյայն), ssh-ed25519 (աջակցվում է OpenSSH 6.5-ից) և ecdsa-sha2-nistp256/384-ի վրա հիմնված: RFC521 ECDSA-ի վրա (աջակցվում է OpenSSH 5656-ից):

OpenSSH 8.2-ում «ssh-rsa»-ի միջոցով միանալու հնարավորությունը դեռ հասանելի է, սակայն այս ալգորիթմը հանվել է CASignatureAlgorithms ցանկից, որը սահմանում է նոր վկայագրերի թվային ստորագրման համար թույլատրված ալգորիթմները: Նմանապես, diffie-hellman-group14-sha1 ալգորիթմը հեռացվել է բանալիների փոխանակման կանխադրված ալգորիթմներից: Նշվում է, որ SHA-1-ի օգտագործումը վկայագրերում կապված է լրացուցիչ ռիսկի հետ, քանի որ հարձակվողն ունի անսահմանափակ ժամանակ գոյություն ունեցող վկայագրի համար բախում որոնելու համար, մինչդեռ հյուրընկալող ստեղների վրա հարձակման ժամանակը սահմանափակվում է կապի ժամանակի ավարտով (LoginGraceTime )

Գործող ssh-keygen-ն այժմ լռելյայն է rsa-sha2-512 ալգորիթմի համար, որն աջակցվում է OpenSSH 7.2-ից, որը կարող է ստեղծել համատեղելիության հետ կապված խնդիրներ OpenSSH 8.2-ում ստորագրված վկայագրերը մշակելիս՝ ավելի հին OpenSSH թողարկումներով աշխատող համակարգերում (խնդիրը լուծելու համար, երբ երբ: Ստորագրություն ստեղծելով, դուք կարող եք բացահայտորեն նշել «ssh-keygen -t ssh-rsa» կամ օգտագործել ecdsa-sha2-nistp256/384/521 ալգորիթմները, որոնք աջակցվում են OpenSSH 5.7-ից):

Այլ փոփոխություններ.

  • sshd_config-ում ավելացվել է Include հրահանգ, որը թույլ է տալիս ներառել այլ ֆայլերի բովանդակությունը կազմաձևման ֆայլի ընթացիկ դիրքում (ֆայլի անունը նշելիս կարող են օգտագործվել գլոբալ դիմակներ);
  • ssh-keygen-ին ավելացվել է «առանց հպում-պահանջվող» տարբերակը, որն անջատում է բանալին գեներացնելիս նշանի մուտքը ֆիզիկապես հաստատելու անհրաժեշտությունը.
  • sshd_config-ում ավելացվել է PubkeyAuthOptions հրահանգը, որը միավորում է հանրային բանալու նույնականացման հետ կապված տարբեր տարբերակներ: Ներկայում միայն «առանց հպման պարտադիր» դրոշն է աջակցվում՝ բաց թողնելու ֆիզիկական ներկայության ստուգումները խորհրդանիշի նույնականացման համար: Համեմատաբար, «առանց հպում-պահանջվող» տարբերակը ավելացվել է authorized_keys ֆայլին.
  • ssh-keygen-ին ավելացվել է «-O write-attestation=/path» տարբերակը՝ բանալիներ ստեղծելիս FIDO-ի հավելյալ ատեստավորման վկայականներ գրելու թույլ տալու համար: OpenSSH-ը դեռ չի օգտագործում այս վկայագրերը, բայց դրանք հետագայում կարող են օգտագործվել՝ ստուգելու համար, որ բանալին տեղադրված է վստահելի ապարատային խանութում.
  • ssh և sshd կարգավորումներում այժմ հնարավոր է սահմանել երթևեկության առաջնահերթության ռեժիմը IPQoS հրահանգի միջոցով LE DSCP (Ցածր ջանքերի մեկ հոփ վարքագիծ);
  • ssh-ում «AddKeysToAgent=yes» արժեքը սահմանելիս, եթե բանալին չի պարունակում մեկնաբանության դաշտ, այն կավելացվի ssh-agent-ին՝ որպես մեկնաբանություն նշելով դեպի բանալին տանող ճանապարհը: IN
    ssh-keygen-ը և ssh-agent-ը նաև այժմ օգտագործում են PKCS#11 պիտակները և X.509 թեմայի անունը գրադարանի ուղու փոխարեն որպես մեկնաբանություններ բանալիում;

  • Ավելացվեց DSA և ECDSA ստեղների համար PEM արտահանելու հնարավորություն ssh-keygen;
  • Ավելացվել է նոր գործարկվող՝ ssh-sk-օգնական, որն օգտագործվում է FIDO/U2F նշան մուտքի գրադարանը մեկուսացնելու համար;
  • Ավելացվել է «--with-zlib» կառուցման տարբերակը ssh-ին և sshd-ին՝ zlib գրադարանի աջակցությամբ կոմպիլյացիայի համար;
  • RFC4253-ի պահանջի համաձայն, MaxStartups-ի սահմանաչափերը գերազանցելու պատճառով մուտքի արգելափակման մասին նախազգուշացում է տրվում միացման ընթացքում ցուցադրվող դրոշի վրա: Ախտորոշումը պարզեցնելու համար sshd գործընթացի վերնագիրը, որը տեսանելի է ps կոմունալից օգտվելիս, այժմ ցուցադրում է ներկայումս վավերացված կապերի քանակը և MaxStartups-ի սահմանաչափի կարգավիճակը.
  • ssh-ում և ssh-agent-ում, $SSH_ASKPASS-ի միջոցով նշված հրավեր էկրանին ցուցադրելու ծրագիր կանչելիս, այժմ լրացուցիչ փոխանցվում է հրավերի տեսակի դրոշակ՝ «հաստատել» - հաստատման երկխոսություն (այո/ոչ), «ոչ մեկը»: »- տեղեկատվական հաղորդագրություն, «դատարկ» — գաղտնաբառի հարցում;
  • Ավելացրել է թվային ստորագրությունների նոր «find-principals» օպերացիան ssh-keygen-ին` թույլատրված-signers ֆայլը որոնելու համար նշված թվային ստորագրության հետ կապված օգտագործողի համար.
  • Լինուքսի վրա sshd գործընթացի մեկուսացման բարելավված աջակցություն՝ օգտագործելով seccomp մեխանիզմը՝ անջատելով IPC համակարգի զանգերը, թույլատրելով clock_gettime64(), clock_nanosleep_time64 և clock_nanosleep():

Source: opennet.ru

Добавить комментарий