Չորս ամիս շարունակ զարգանալուց հետո թողարկում , SSH 2.0 և SFTP պրոտոկոլներով աշխատելու հաճախորդի և սերվերի բաց իրականացում:
OpenSSH 8.2-ի թողարկման հիմնական բարելավումը երկու գործոնների միջոցով ինքնազրույցի օգտագործման հնարավորությունն է՝ օգտագործելով այնպիսի սարքեր, որոնք աջակցում են , որը մշակվում է -ի կողմից։ U2F-ն ապահովում է ծախսերատու硬件 տոկենների ստեղծում, որոնք հաստատում են օգտվողի ֆիզիկական առկայությունը, և նրանց հետ փոխազդելու գործընթացը կատարվում է USB, Bluetooth կամ NFC-ի միջոցով։ Այդպիսի սարքերը առաջարկվում են որպես մարդիկ ֆակտորային ինքնազրույցի միջոցներ կայքերում, արդեն աջակցվում են հիմնական զննարկիչների կողմից և թողարկվում են տարբեր արտադրողների կողմից, այդ թվում՝ Yubico, Feitian, Thetis և Kensington:
OpenSSH-ում օգտվողի առկայությունը հաստատող սարքերի հետ փոխգործելու համար ավելացվել են «ecdsa-sk» և «ed25519-sk» նոր բանալի տեսակներ, որոնց մեջ օգտագործվում են ECDSA-ի և Ed25519-ի թվային ստորագրման ալգորիթմներ, և որոնք համակցվում են 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» պարամետրը:
Նուհետև պետք է գործարկել «ssh-keygen -t ecdsa-sk» կամ, եթե բանալիները արդեն ստեղծվել և կարգաբերվել են, միանալ սերվերին «ssh»-ի միջոցով։ ssh-keygen-ը գործարկվելիս ստեղծված բանալիները պահվելու են «~/.ssh/id_ecdsa_sk»-ում և կարող են օգտագործվել այնպիսի այլ բանալիների նման:
Բաց բանալին (id_ecdsa_sk.pub) անհրաժեշտ է կապել սերվերին `authorized_keys` ֆայլում։ Սերվերի կողմից միայն թվային ստորագրությունը ստուգվում է, իսկ տոկենների հետ փոխգործելու գործընթացը տեղի է ունենում հաճախորդի կողմում (սերվերում անհրաժեշտ չէ տեղադրել libsk-libfido2, բայց սերվերը պետք է աջակցի «ecdsa-sk» բանալի տեսակներին)։ Ստեղծված փակ բանալին (id_ecdsa_sk) փաստացի բանալի նկարագրող է, որը իրական բանալին ձևավորում է միայն U2F տոկենի կողմից պահվող գաղտնի հաջորդականության հետ միասին։ Եթե id_ecdsa_sk բանալին ընկնի հարձակվողի ձեռքերում, ապա իրեն անհրաժեշտ կլինի նաև հասանելիություն ձեռք բերել սարքային տոկենին, առանց որի id_ecdsa_sk ֆայլում պահպանված փակ բանալին անօգուտ է:
Открытый ключ (id_ecdsa_sk.pub) следует скопировать на сервер в файл authorized_keys. На стороне сервера только проверяется цифровая подпись, а взаимодействие с токенами производится на стороне клиента (на сервере не нужно устанавливать libsk-libfido2, но сервер должен поддерживать тип ключей «ecdsa-sk»). Сгенерированный закрытый ключ (id_ecdsa_sk) по сути является дескриптором ключа, образующим реальный ключ только в сочетании с секретной последовательностью, хранимой на стороне токена U2F. В случае попадания ключа id_ecdsa_sk в руки атакующего, для прохождения аутентификации ему также потребуется получить доступ к аппаратному токену, без которого сохранённый в файле id_ecdsa_sk закрытый ключ бесполезен.
Այնուամենայնիվ, ըստ կանխարգելիչ քողարկման, ցանկացած գործողություն մասնակցող բանալիների (հանույթ և ճշտում) համար պահանջվում է տեղական հաստատում՝ օգտվողի ֆիզիկական ներկայությամբ, օրինակ, առաջարկվում է հպվել տոքենի սենսորին, ինչը բարդացնում է հեռակա գրոհները միացված տոքեններով համակարգերի դեմ: Բացի այդ, ssh-keygen գործարկման փուլում նույնպես կարող է սահմանվել գաղտWord ընդգրկելու գաղտնաբառ, որը թույլ կտա մուտք գործել հասանելի բանալիի ֆայլին:
OpenSSH նոր տարբերակում հայտարարվել է, որ մոտ ապագայում հինում կմատուցվեն SHA-1 հավաքածուները, կապված ճնշող հարձակումների համար համընթաց նախորոշման (մոլի որոնման ծախսը գնահատվում է մոտ 45 հազար դոլար): Մոտավոր տեսանկյունում ծրագրավորվում է, որ ստանդարտից դուրս կհանվի «ssh-rsa» բաց բանալիով թվային ստորագրության ալգորիթմը, որը նշված է SSH պրոտոկոլի օրիգինալ RFC-ում եւ մնում է լայնորեն տարածված պրակտիկայում (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/521, որը հիմնված է RFC5656 ECDSA (ներդրված է OpenSSH 5.7-ից).
OpenSSH 8.2-ում դեռ պահպանվում է «ssh-rsa» ընդգրկվելու հնարավորություն, սակայն այս ալգորիթմը հանված է CASignatureAlgorithms ցուցակից, որն սահմանում է նոր վկայականների թվային ստորագրություններում առկա ալգորիթմները: Նկատվում է, որ SHA-1 վկայականներում օգտագործելիս կա լրացուցիչ ռիսկ, քանի որ հակառակորդը անսահման ժամանակ ունի կոլիզիայի որոնելու համար գոյություն ունեցող վկայականի համար, մինչդեռ հոստիքների ջանքերը սահմանափակվում են կոնեկում ժամկետով (LoginGraceTime):
ssh-keygen գործիքով այժմ ստանդարտ պահանջում է rsa-sha2-512 ալգորիթմը, որը աջակցում է OpenSSH 7.2-ից, ինչը կարող է խնդիրներ ստեղծել ստանդարտում OpenSSH 8.2-ում վավերացված վկայականների մուտք գործելու ժամանակ (մակարդակի խնդիրը կարող է մաքրել «ssh-keygen -t ssh-rsa» կամ օգտագործել ecdsa-sha2-nistp256/384/521 ալգորիթմները, որոնք ապահովվում են OpenSSH 5.7-ից):
Գույնի կազմը փոխվել է, որը ավելի հակառակ է հաղորդում текста և ֆոն:
- ssh_config-ի մեջ ավելացավ Include թույլատրող հրահանգը, որը թույլ է տալիս ներառել այլ ֆայլերի բովանդակություն ներկա կոնֆիգիֆիկացիայի ֆայլի դիրքում (ֆայլի անունի դեպքում թույլատրվում է օգտագործել glob-մասեր);
- ssh-keygen-ում ավելացավ «no-touch-required» տարբերակը, որը անջատում է բանալու ստեղծման ժամանակ ֆիզիկական հաստատման պահանջը;
- sshd_config-ում ավելացավ PubkeyAuthOptions հրահանգը, որը միավորում է տարբեր կիրառվող տարբերակներ բաց բանալու ավտենտիկացիայի համար։ Դրա մեջ ներկայումս աջակցվում է միայն «no-touch-required» դրոշը, որը բաց skips physical presence verification token-ը օգտագործելիս։ Analogiամ արտարաղված «no-touch-required» տարբերակը՝ authorized_keys ֆայլին;
- ssh-keygen-ում ավելացավ «-O write-attestation=\/path» տարբերակը, որը թույլ է տալիս FIDO-ի հավելյալ ատեստացիոն վկայագրեր գրանցել բանալու ստեղծման ժամանակ։ OpenSSH-ն այդ վկայագրերը դեռևս չի օգտագործում, սակայն դրանք ապագայում կարող են օգտագործվել բանալու վստահելի սարքային պահոցում գտնվելու տեղը ստուգելու համար;
- ssh-ի և sshd-ի հիմնականում հաստատումը IPQoS հրահանգի միջոցով թույլ է տալիս հոսքային առաջնահերթության ռեժիմի կարգավորում (Lower-Effort Per-Hop Behavior);
- ssh-ում, երբ արժեքը սահմանվում է որպես «AddKeysToAgent=yes», եթե բանալին չունի մեկնաբանության դաշտ, այն կավելացվի ssh-agent-ում՝ որպես մեկնաբանություն՝ բանալիի ճանապարհը։
ssh-keygen և ssh-agent-ում, բանալիի մեկնաբանություններում այժմ օգտագործվում են նաև PKCS#11 լաբարորիաների լեյբլներ և X.509 սուբյեկտի անունը, ոչ թե գրադարանը; - ssh-keygen-ում ավելացավ PEM-ի արտահանման հնարավորությունը DSA և ECDSA բանալիների համար;
- Ավելացված է նոր executable ֆայլ ssh-sk-helper, որը օգտագործվում է FIDO/U2F դվությունից գրադարանի առանձնացման համար;
- ssh-ում և sshd-ում ավելացավ հավաքման տարբերակ՝ «—with-zlib», որն աջակցում է zlib գրադարանը;
- RFC4253-ի պահանջին համապատասխան, կապվելիս են ցույց տալիս MaxStartups սահմանափակումից երկարաձգված հասանելիության արգելքի ծանուցում։ Բազային диагностиան հեշտացնելու համար sshd գործընթացի վերնագրում, որը երևում է ps գործիքի ժամանակ, ապահովվել է ներկայիս բարձրաձայնված միացությունների թիվը և MaxStartups սահմանը;
- ssh-ում և ssh-agent-ում, ֆիլմը ամփոփելու համար, որը սահմանվում է $SSH_ASKPASS-ի միջոցով, այժմ ավելացվում է նաև տեղյակի տեսակ՝ «confirm» — հաստատման դիալոգի (այո/ոչ), «none» — տեղեկա հաղորդագրություն, «blank» — գաղտնաբառի հարցում;
- ssh-keygen-ում ավելացավ նոր թվային ստորագրությունների գործողություն «find-principals»՝ կողմից՝ նշված թվային ստորագրությանը վերագրեթված allowed-signers ֆայլում որոնելու համար;
- Linux-ում sshd գործընթացի առանձնացման աջակցությունը բարելավվեց seccomp մեխանիզմի միջոցով՝ արգելված IPC համակարգային մեկնաբանությունները, թույլատրվել clock_gettime64(), clock_nanosleep_time64 և clock_nanosleep();
Ընտանիք: opennet.ru
