FIDO/U8.2F екі факторлы аутентификация токендерін қолдауымен OpenSSH 2 шығарылымы

Төрт айлық дамудан кейін ұсынылды босату OpenSSH 8.2, SSH 2.0 және SFTP протоколдары арқылы жұмыс істеуге арналған ашық клиент пен серверді іске асыру.

OpenSSH 8.2 шығарылымындағы маңызды жақсарту протоколды қолдайтын құрылғылар арқылы екі факторлы аутентификацияны пайдалану мүмкіндігі болды. U2F, альянс әзірлеген FIDO. U2F пайдаланушының физикалық қатысуын тексеру үшін, олармен USB, Bluetooth немесе NFC арқылы өзара әрекеттесу үшін арзан аппараттық таңбалауыштарды жасауға мүмкіндік береді. Мұндай құрылғылар веб-сайттарда екі факторлы аутентификация құралы ретінде алға жылжытылады, олар қазірдің өзінде ірі браузерлермен қолдайды және әртүрлі өндірушілер, соның ішінде Yubico, Feitian, Thetis және Kensington шығарған.

Пайдаланушының қатысуын растайтын құрылғылармен өзара әрекеттесу үшін OpenSSH жүйесіне SHA-25519 хэшімен біріктірілген ECDSA және Ed25519 сандық қолтаңба алгоритмдерін пайдаланатын «ecdsa-sk» және «ed256-sk» жаңа кілт түрлері қосылды. Токендермен әрекеттесу процедуралары PKCS#11 қолдауына арналған кітапханаға ұқсас жолмен жүктелетін және кітапхананың жоғарғы жағындағы қаптама болып табылатын аралық кітапханаға орналастырылады. libfido2, ол USB арқылы таңбалауыштармен байланысу құралдарын қамтамасыз етеді (FIDO U2F/CTAP 1 және FIDO 2.0/CTAP 2 протоколдарына қолдау көрсетіледі). OpenSSH әзірлеушілері дайындаған libsk-libfido2 аралық кітапханасы енгізілген libfido2 өзегіне, сондай-ақ HID драйвері OpenBSD үшін.

Кілтті аутентификациялау және генерациялау үшін параметрлерде «SecurityKeyProvider» параметрін көрсету керек немесе libsk-libfido2.so сыртқы кітапханасының жолын көрсететін SSH_SK_PROVIDER ортасының айнымалы мәнін орнату керек (экспорт SSH_SK_PROVIDER=/path/to/libsk-libfido2. солай). Openssh-ді қабаттар кітапханасының кірістірілген қолдауымен (--with-security-key-builtin) құруға болады, бұл жағдайда «SecurityKeyProvider=ішкі» параметрін орнату қажет.
Одан кейін «ssh-keygen -t ecdsa-sk» іске қосу керек немесе кілттер әлдеқашан жасалып, конфигурацияланған болса, «ssh» арқылы серверге қосылыңыз. ssh-keygen іске қосқан кезде, жасалған кілттер жұбы “~/.ssh/id_ecdsa_sk” ішінде сақталады және оны басқа пернелер сияқты пайдалануға болады.

Ашық кілт (id_ecdsa_sk.pub) авторизацияланған_кілттер файлындағы серверге көшірілуі керек. Сервер жағында тек цифрлық қолтаңба тексеріледі, ал таңбалауыштармен әрекеттесу клиент жағында орындалады (серверде libsk-libfido2 орнатудың қажеті жоқ, бірақ сервер «ecdsa-sk» кілт түрін қолдауы керек) . Жасалған жеке кілт (id_ecdsa_sk) негізінен U2F таңбалауыш жағында сақталған құпия реттілікпен үйлесімде нақты кілтті құрайтын негізгі дескриптор болып табылады. Егер id_ecdsa_sk кілті шабуылдаушының қолына түссе, аутентификациядан өту үшін ол аппараттық таңбалауышқа қол жеткізуі керек, онсыз id_ecdsa_sk файлында сақталған жеке кілт пайдасыз.

Сонымен қатар, әдепкі бойынша, кілттермен кез келген операцияларды орындау кезінде (генерациялау кезінде де, аутентификация кезінде де) пайдаланушының физикалық қатысуын жергілікті растау қажет, мысалы, таңбалауыштағы сенсорды түрту ұсынылады, бұл қосылған таңбалауышы бар жүйелерге қашықтан шабуыл жасау. Басқа қорғаныс желісі ретінде кілт файлына қол жеткізу үшін ssh-keygen іске қосу кезеңінде құпия сөзді де көрсетуге болады.

OpenSSH жаңа нұсқасы сонымен бірге SHA-1 хэштерін пайдаланатын алгоритмдердің ескіруі туралы хабарлады. жылжыту берілген префикспен соқтығысқан шабуылдардың тиімділігі (соқтығысты таңдау құны шамамен 45 мың долларға бағаланады). Алдағы шығарылымдардың бірінде олар SSH хаттамасы үшін бастапқы RFC-де айтылған және практикада кеңінен таралған (пайдалануды тексеру үшін) «ssh-rsa» сандық қолтаңбасының ашық кілтін пайдалану мүмкіндігін әдепкі бойынша өшіруді жоспарлап отыр. Жүйелеріңізде ssh-rsa файлын пайдалансаңыз, «-oHostKeyAlgorithms=-ssh-rsa» опциясымен ssh арқылы қосылуға болады).

OpenSSH жүйесінде жаңа алгоритмдерге ауысуды тегістеу үшін болашақ шығарылымда UpdateHostKeys параметрі әдепкі бойынша қосылады, ол клиенттерді сенімдірек алгоритмдерге автоматты түрде көшіреді. Тасымалдау үшін ұсынылған алгоритмдерге RFC2 RSA SHA-256 негізіндегі rsa-sha512-8332/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 іске қосу енді әдепкі бойынша OpenSSH 2 нұсқасынан бері қолдау көрсетілетін rsa-sha512-7.2 алгоритміне сәйкес келеді, бұл OpenSSH 8.2 жүйесінде қол қойылған сертификаттарды ескі OpenSSH шығарылымдарымен жұмыс істейтін жүйелерде өңдеуге әрекет жасағанда үйлесімділік мәселелерін тудыруы мүмкін (қашан болғанда мәселені шешу үшін). қолтаңбаны жасай отырып, «ssh-keygen -t ssh-rsa» нақты көрсетуге немесе OpenSSH 2 нұсқасынан бері қолдау көрсетілетін ecdsa-sha256-nistp384/521/5.7 алгоритмдерін пайдалануға болады.

Басқа өзгерістер:

  • sshd_config файлына Include директивасы қосылды, ол конфигурация файлының ағымдағы орнында басқа файлдардың мазмұнын қосуға мүмкіндік береді (файл атауын көрсету кезінде глоб маскаларын пайдалануға болады);
  • ssh-keygen-ге «қосу қажет емес» опциясы қосылды, ол кілтті жасау кезінде таңбалауышқа қол жеткізуді физикалық түрде растау қажеттілігін өшіреді;
  • PubkeyAuthOptions директивасы sshd_config файлына қосылды, ол жалпы кілттің аутентификациясына қатысты әртүрлі опцияларды біріктіреді. Қазіргі уақытта таңбалауыш аутентификациясы үшін физикалық қатысуды тексеруді өткізіп жіберу үшін тек "қол тигізу қажет емес" жалаушасына қолдау көрсетіледі. Аналогия бойынша, авторизацияланған_кілттер файлына «сенсорлық қажет емес» опциясы қосылды;
  • Кілттерді жасау кезінде қосымша FIDO аттестаттау сертификаттарын жазуға мүмкіндік беру үшін ssh-keygen файлына "-O write-attestation=/path" опциясы қосылды. OpenSSH бұл сертификаттарды әлі пайдаланбайды, бірақ олар кейінірек кілттің сенімді аппараттық дүкенде орналастырылғанын тексеру үшін пайдаланылуы мүмкін;
  • Ssh және sshd параметрлерінде енді IPQoS директивасы арқылы трафик басымдық режимін орнатуға болады. LE DSCP (Төменгі күш-қуат пер-хоп мінез-құлқы);
  • ssh ішінде «AddKeysToAgent=yes» мәнін орнатқанда, егер кілтте түсініктеме өрісі болмаса, ол түсініктеме ретінде кілтке жолды көрсететін ssh-агентке қосылады. IN
    ssh-keygen және ssh-agent енді кілттегі түсініктемелер ретінде кітапхана жолының орнына PKCS#11 белгілерін және X.509 тақырып атауын пайдаланады;

  • DSA және ECDSA кілттеріне арналған PEM-ді ssh-keygen-ге экспорттау мүмкіндігі қосылды;
  • FIDO/U2F таңбалауыш қол жеткізу кітапханасын оқшаулау үшін пайдаланылатын жаңа орындалатын, ssh-sk-анықтамашысы қосылды;
  • Zlib кітапханасының қолдауымен компиляциялау үшін ssh және sshd-ге «--with-zlib» құрастыру опциясы қосылды;
  • RFC4253 талабына сәйкес, қосылу кезінде көрсетілетін баннерде MaxStartups шектеулерінен асып кетуге байланысты кіруді бұғаттау туралы ескерту берілген. Диагностиканы жеңілдету үшін ps қызметтік бағдарламасын пайдаланған кезде көрінетін sshd процесінің тақырыбы қазір аутентификацияланған қосылымдардың санын және MaxStartups шегінің күйін көрсетеді;
  • Ssh және ssh-агентте $SSH_ASKPASS арқылы көрсетілген шақыруды экранда көрсету үшін бағдарламаны шақырған кезде шақыру түрі бар жалауша енді қосымша жіберіледі: «растау» - растау диалогы (иә/жоқ), «жоқ» ” - ақпараттық хабарлама, «бос» — парольді сұрау;
  • Көрсетілген сандық қолтаңбамен байланыстырылған пайдаланушы үшін рұқсат етілген қол қоюшылар файлын іздеу үшін ssh-keygen жүйесіне жаңа сандық қолтаңбалар операциясы "find-principals" қосылды;
  • Seccomp механизмі арқылы Linux жүйесінде sshd процесін оқшаулау үшін жақсартылған қолдау: IPC жүйелік қоңырауларды өшіру, clock_gettime64(), clock_nanosleep_time64 және clock_nanosleep() рұқсат ету.

Ақпарат көзі: opennet.ru

пікір қалдыру