Pelepasan OpenSSH 8.2 kalayan dukungan pikeun token auténtikasi dua faktor FIDO / U2F

Sanggeus opat bulan pangwangunan ditepikeun ngabebaskeun OpenSSH 8.2, klien kabuka sarta palaksanaan server pikeun digawé via SSH 2.0 jeung protokol SFTP.

Perbaikan konci dina sékrési OpenSSH 8.2 nyaéta kamampuan ngagunakeun auténtikasi dua faktor nganggo alat anu ngadukung protokol. U2F, dimekarkeun ku aliansi Fido. U2F ngamungkinkeun nyiptakeun token hardware béaya rendah pikeun pariksa ayana fisik pangguna, berinteraksi sareng aranjeunna liwat USB, Bluetooth atanapi NFC. Alat sapertos dipromosikeun salaku alat auténtikasi dua faktor dina situs wéb, parantos dirojong ku browser utama sareng diproduksi ku sababaraha pabrik, kalebet Yubico, Feitian, Thetis sareng Kensington.

Pikeun berinteraksi sareng alat anu mastikeun ayana pangguna, jinis konci anyar "ecdsa-sk" sareng "ed25519-sk" parantos ditambah kana OpenSSH, anu nganggo algoritma tanda tangan digital ECDSA sareng Ed25519, digabungkeun sareng hash SHA-256. Prosedur pikeun interaksi jeung tokens disimpen dina perpustakaan panengah, nu dimuat dina cara nu sarupa jeung perpustakaan pikeun PKCS # 11 rojongan tur mangrupakeun wrapper on luhureun perpustakaan. libfido2, nu nyadiakeun parabot pikeun komunikasi sareng tokens ngaliwatan USB (FIDO U2F/CTAP 1 jeung FIDO 2.0/CTAP 2 protokol dirojong). Perpustakaan panengah libsk-libfido2 disiapkeun ku pamekar OpenSSH kalebet kana libfido2 inti, kitu ogé supir HID pikeun OpenBSD.

Pikeun ngabuktoskeun sareng ngahasilkeun konci, anjeun kedah netepkeun parameter "SecurityKeyProvider" dina setélan atanapi nyetél variabel lingkungan SSH_SK_PROVIDER, nunjukkeun jalur ka perpustakaan éksternal libsk-libfido2.so (ékspor SSH_SK_PROVIDER=/path/to/libsk-libfido2. jadi). Kasebut nyaéta dimungkinkeun pikeun ngawangun openssh kalawan diwangun-di rojongan pikeun perpustakaan lapisan (--with-security-key-builtin), dina hal ieu anjeun kudu nyetél parameter "SecurityKeyProvider = internal".
Satuluyna anjeun kedah ngajalankeun "ssh-keygen -t ecdsa-sk" atanapi, upami konci parantos didamel sareng dikonpigurasikeun, sambungkeun ka server nganggo "ssh". Nalika anjeun ngajalankeun ssh-keygen, pasangan konci anu dihasilkeun bakal disimpen dina "~/.ssh/id_ecdsa_sk" sareng tiasa dianggo sami sareng konci anu sanés.

Konci publik (id_ecdsa_sk.pub) kudu disalin ka server dina file authorized_keys. Di sisi server, ngan ukur tanda tangan digital anu diverifikasi, sareng interaksi sareng token dilakukeun dina sisi klien (anjeun henteu kedah masang libsk-libfido2 dina server, tapi server kedah ngadukung jinis konci "ecdsa-sk"). . Konci swasta dihasilkeun (id_ecdsa_sk) dasarna mangrupa cecekelan konci, ngabentuk konci nyata ukur dina kombinasi kalayan runtuyan rusiah disimpen dina sisi token U2F. Lamun konci id_ecdsa_sk ragrag kana leungeun panyerang, pikeun lolos auténtikasi anjeunna ogé bakal kudu meunang aksés ka token hardware, tanpa nu konci swasta disimpen dina file id_ecdsa_sk aya gunana.

Salaku tambahan, sacara standar, nalika ngalakukeun operasi naon waé kalayan konci (boh salami generasi sareng nalika auténtikasi), konfirmasi lokal ngeunaan ayana fisik pangguna diperyogikeun, contona, diusulkeun pikeun nyabak sensor dina token, anu matak hese. ngalaksanakeun serangan jarak jauh dina sistem sareng token disambungkeun. Salaku garis pertahanan sejen, kecap akses ogé bisa dieusian salila fase ngamimitian ssh-keygen pikeun ngakses file konci.

Versi anyar OpenSSH ogé ngumumkeun deprecation algoritma anu bakal datang nganggo hashes SHA-1 kusabab promosi Éféktivitas serangan tabrakan kalayan awalan anu dipasihkeun (biaya pikeun milih tabrakan diperkirakeun sakitar 45 rébu dolar). Dina salah sahiji sékrési anu bakal datang, aranjeunna ngarencanakeun pikeun nganonaktipkeun sacara standar kamampuan ngagunakeun algoritma tanda tangan digital konci umum "ssh-rsa", anu disebatkeun dina RFC asli pikeun protokol SSH sareng tetep nyebar dina praktékna (pikeun nguji panggunaan. tina ssh-rsa dina sistem anjeun, anjeun tiasa nyobian nyambungkeun via ssh sareng pilihan "-oHostKeyAlgorithm = -ssh-rsa").

Pikeun ngalancarkeun transisi ka algoritma anyar dina OpenSSH, dina rilis anu bakal datang, setelan UpdateHostKeys bakal diaktipkeun sacara standar, anu sacara otomatis bakal migrasi klien ka algoritma anu langkung dipercaya. Algoritma anu disarankeun pikeun migrasi kalebet rsa-sha2-256/512 dumasar kana RFC8332 RSA SHA-2 (dirojong saprak OpenSSH 7.2 sareng dianggo sacara standar), ssh-ed25519 (dirojong saprak OpenSSH 6.5) sareng ecdsa-sha2-nistp256/384/521. on RFC5656 ECDSA (dirojong saprak OpenSSH 5.7).

Dina OpenSSH 8.2, kamampuhan pikeun nyambungkeun ngagunakeun "ssh-rsa" masih aya, tapi algoritma ieu geus dihapus tina daptar CASignatureAlgorithms, nu ngahartikeun algoritma diwenangkeun pikeun digital Signing sertipikat anyar. Sarupa oge, algoritma diffie-hellman-group14-sha1 parantos dipiceun tina algoritma bursa konci standar anu didukung. Perhatikeun yén pamakéan SHA-1 dina sertipikat pakait sareng resiko tambahan, sabab panyerang boga waktu nu taya wates pikeun milarian tabrakan pikeun sertipikat nu aya, sedengkeun waktu serangan dina kenop host diwatesan ku waktu sambungan (LoginGraceTime). ).

Ngajalankeun ssh-keygen ayeuna ingkar kana algoritma rsa-sha2-512, anu dirojong saprak OpenSSH 7.2, anu tiasa nyiptakeun masalah kasaluyuan nalika nyobian ngolah sertipikat anu ditandatanganan dina OpenSSH 8.2 dina sistem anu ngajalankeun rilis OpenSSH anu langkung lami (pikeun ngungkulan masalah nalika Nalika Nalika generating signature a, Anjeun eksplisit bisa nangtukeun "ssh-keygen -t ssh-rsa" atanapi nganggo ecdsa-sha2-nistp256/384/521 algoritma, dirojong saprak OpenSSH 5.7).

Parobahan séjén:

  • Diréktif Include parantos ditambahkeun kana sshd_config, anu ngamungkinkeun anjeun ngalebetkeun eusi file sanés dina posisi file konfigurasi ayeuna (masker glob tiasa dianggo nalika netepkeun nami file);
  • Pilihan "no-touch-diperlukeun" geus ditambahkeun kana ssh-keygen, nu disables kudu fisik mastikeun aksés ka token nalika generating konci;
  • A diréktif PubkeyAuthOptions geus ditambahkeun kana sshd_config, nu ngagabungkeun rupa pilihan patali auténtikasi konci publik. Ayeuna, ngan ukur bendera "no-touch-required" anu dirojong pikeun ngalangkungan pamariksaan ayana fisik pikeun auténtikasi token. Ku analogi, pilihan "no-touch-required" geus ditambahkeun kana file authorized_keys;
  • Ditambahkeun "-O nulis-attestation = / jalur" pilihan pikeun ssh-keygen pikeun ngidinan tambahan FIDO sertipikat attestation bisa ditulis nalika ngahasilkeun konci. OpenSSH henteu acan nganggo sertipikat ieu, tapi aranjeunna engké tiasa dianggo pikeun pariksa yén konci éta disimpen dina toko hardware anu dipercaya;
  • Dina setélan ssh sareng sshd, ayeuna tiasa nyetél mode prioritas lalu lintas via diréktif IPQoS LE DSCP (Turunkeun-usaha Per-Hop Paripolah);
  • Dina ssh, nalika netepkeun nilai "AddKeysToAgent = enya", lamun konci teu ngandung kolom komentar, eta bakal ditambahkeun kana ssh-agén nunjukkeun jalur ka konci salaku komentar. DI
    ssh-keygen jeung ssh-agén ogé kiwari ngagunakeun PKCS # 11 labél jeung ngaran subjek X.509 tinimbang jalur perpustakaan sakumaha komentar di konci;

  • Ditambahkeun kamampuhan pikeun ngekspor PEM pikeun DSA na ECDSA konci pikeun ssh-keygen;
  • Ditambahkeun hiji laksana anyar, ssh-sk-helper, dipaké pikeun ngasingkeun FIDO / U2F perpustakaan aksés token;
  • Ditambahkeun "--with-zlib" pilihan ngawangun ka ssh sareng sshd pikeun kompilasi sareng dukungan perpustakaan zlib;
  • Luyu sareng sarat RFC4253, peringatan ngeunaan blokir aksés kusabab ngaleuwihan wates MaxStartups disayogikeun dina spanduk anu dipidangkeun nalika sambungan. Pikeun nyederhanakeun diagnostics, lulugu prosés sshd, katingali nalika nganggo utilitas ps, ayeuna ningalikeun jumlah sambungan anu ayeuna dioténtikasi sareng status wates MaxStartups;
  • Dina ssh sareng ssh-agén, nalika nyauran program pikeun nampilkeun uleman dina layar, ditetepkeun ku $ SSH_ASKPASS, bandéra kalayan jinis uleman ayeuna ogé dikirimkeun: "konfirmasi" - dialog konfirmasi (enya / henteu), "henteu aya. ” - pesen inpormasi, "kosong" — pamundut sandi;
  • Ditambahkeun operasi tanda tangan digital anyar "manggihan-poko" pikeun ssh-keygen pikeun milarian file anu diidinan-signers pikeun pangguna anu aya hubunganana sareng tandatangan digital anu ditangtukeun;
  • Ningkatkeun dukungan pikeun isolasi prosés sshd dina Linux nganggo mékanisme seccomp: nganonaktipkeun sauran sistem IPC, ngamungkinkeun clock_gettime64 (), clock_nanosleep_time64 sareng clock_nanosleep ().

sumber: opennet.ru

Tambahkeun komentar