Rilis OpenSSH 8.2 kanthi dhukungan kanggo token otentikasi rong faktor FIDO/U2F

Sawise patang sasi pembangunan diwenehi ngeculake OpenSSH 8.2, implementasi klien lan server sing mbukak kanggo nggarap protokol SSH 2.0 lan SFTP.

Peningkatan utama ing release OpenSSH 8.2 yaiku kemampuan kanggo nggunakake otentikasi rong faktor nggunakake piranti sing ndhukung protokol. U2F, dikembangake dening aliansi Fido. U2F ngidini nggawe token hardware murah kanggo verifikasi kehadiran fisik pangguna, sesambungan karo wong-wong mau liwat USB, Bluetooth utawa NFC. Piranti kasebut dipromosekake minangka sarana otentikasi rong faktor ing situs web, wis didhukung dening browser utama lan diprodhuksi dening macem-macem manufaktur, kalebu Yubico, Feitian, Thetis lan Kensington.

Kanggo sesambungan karo piranti sing ngonfirmasi kehadiran pangguna, jinis kunci anyar "ecdsa-sk" lan "ed25519-sk" wis ditambahake menyang OpenSSH, sing nggunakake algoritma tandha digital ECDSA lan Ed25519, digabungake karo hash SHA-256. Tata cara kanggo sesambungan karo token diselehake ing perpustakaan penengah, kang dimuat ing cara sing padha kanggo perpustakaan kanggo PKCS # 11 support lan pambungkus ing ndhuwur perpustakaan. libfido2, sing nyedhiyakake alat kanggo komunikasi karo token liwat USB (protokol FIDO U2F/CTAP 1 lan FIDO 2.0/CTAP 2 didhukung). Perpustakaan penengah libsk-libfido2 disiapake dening pangembang OpenSSH klebu menyang inti libfido2, uga driver HID kanggo OpenBSD.

Kanggo keasliane lan ngasilake kunci, sampeyan kudu nemtokake parameter "SecurityKeyProvider" ing setelan utawa nyetel variabel lingkungan SSH_SK_PROVIDER, nuduhake path menyang perpustakaan eksternal libsk-libfido2.so (ekspor SSH_SK_PROVIDER=/path/to/libsk-libfido2. dadi). Sampeyan bisa mbangun openssh kanthi dhukungan kanggo perpustakaan lapisan (--with-security-key-builtin), ing kasus iki sampeyan kudu nyetel parameter "SecurityKeyProvider = internal".
Sabanjure sampeyan kudu mbukak "ssh-keygen -t ecdsa-sk" utawa, yen tombol wis digawe lan diatur, nyambung menyang server nggunakake "ssh". Nalika sampeyan mbukak ssh-keygen, pasangan tombol kui bakal disimpen ing "~/.ssh/id_ecdsa_sk" lan bisa digunakake padha kanggo tombol liyane.

Kunci umum (id_ecdsa_sk.pub) kudu disalin menyang server ing file authorized_keys. Ing sisih server, mung tandha digital sing diverifikasi, lan interaksi karo token ditindakake ing sisih klien (sampeyan ora perlu nginstal libsk-libfido2 ing server, nanging server kudu ndhukung jinis kunci "ecdsa-sk") . Key pribadi kui (id_ecdsa_sk) punika ateges nangani tombol, mbentuk tombol nyata mung ing kombinasi karo urutan rahasia disimpen ing sisih token U2F. Yen kunci id_ecdsa_sk tiba ing tangan panyerang, kanggo ngliwati otentikasi, dheweke uga kudu entuk akses menyang token hardware, tanpa kunci pribadi sing disimpen ing file id_ecdsa_sk ora ana gunane.

Kajaba iku, kanthi gawan, nalika nindakake operasi apa wae kanthi tombol (loro sajrone generasi lan sajrone otentikasi), konfirmasi lokal saka ngarsane fisik pangguna dibutuhake, contone, diusulake kanggo ndemek sensor ing token, sing nggawe angel nindakake serangan remot ing sistem kanthi token sing disambungake. Minangka baris pertahanan liyane, sandhi uga bisa ditemtokake nalika fase wiwitan ssh-keygen kanggo ngakses file kunci.

Versi anyar OpenSSH uga ngumumake penghentian algoritma sing bakal teka nggunakake hash SHA-1 amarga promosi efektifitas serangan tabrakan kanthi prefiks tartamtu (biaya kanggo milih tabrakan kira-kira udakara 45 ewu dolar). Ing salah sawijining rilis sing bakal teka, dheweke ngrancang mateni kanthi standar kemampuan kanggo nggunakake algoritma tandha digital kunci umum "ssh-rsa", sing kasebut ing RFC asli kanggo protokol SSH lan tetep nyebar ing praktik (kanggo nyoba panggunaan. saka ssh-rsa ing sistem sampeyan, sampeyan bisa nyoba nyambungake liwat ssh kanthi pilihan "-oHostKeyAlgorithm = -ssh-rsa").

Kanggo nglancarake transisi menyang algoritma anyar ing OpenSSH, ing mangsa ngarep, setelan UpdateHostKeys bakal diaktifake kanthi standar, sing bakal kanthi otomatis migrasi klien menyang algoritma sing luwih dipercaya. Algoritma sing disaranake kanggo migrasi kalebu rsa-sha2-256/512 adhedhasar RFC8332 RSA SHA-2 (didhukung wiwit OpenSSH 7.2 lan digunakake kanthi standar), ssh-ed25519 (didhukung wiwit OpenSSH 6.5) lan adhedhasar ecdsa-sha2-nistp256/384/521 ing RFC5656 ECDSA (didhukung wiwit OpenSSH 5.7).

Ing OpenSSH 8.2, kemampuan kanggo nyambungake nggunakake "ssh-rsa" isih kasedhiya, nanging algoritma iki wis dibusak saka dhaftar CASignatureAlgorithms, kang nemtokake algoritma diijini kanggo mlebu digital sertifikat anyar. Kajaba iku, algoritma diffie-hellman-group14-sha1 wis dibusak saka algoritma pertukaran kunci standar sing didhukung. Kacathet yen panggunaan SHA-1 ing sertifikat digandhengake karo risiko tambahan, amarga panyerang duwe wektu tanpa wates kanggo nggoleki tabrakan kanggo sertifikat sing wis ana, dene wektu serangan ing tombol host diwatesi dening wektu entek sambungan (LoginGraceTime ).

Mlaku ssh-keygen saiki dadi standar kanggo algoritma rsa-sha2-512, sing didhukung wiwit OpenSSH 7.2, sing bisa nggawe masalah kompatibilitas nalika nyoba ngolah sertifikat sing ditandatangani ing OpenSSH 8.2 ing sistem sing mbukak rilis OpenSSH lawas (kanggo ngatasi masalah kasebut nalika Nalika Nalika). ngasilake teken, sampeyan bisa kanthi tegas nemtokake "ssh-keygen -t ssh-rsa" utawa nggunakake algoritma ecdsa-sha2-nistp256/384/521, didhukung wiwit OpenSSH 5.7).

Owah-owahan liyane:

  • Direktif Include wis ditambahake menyang sshd_config, sing ngidini sampeyan nyakup isi file liyane ing posisi file konfigurasi saiki (masker glob bisa digunakake nalika nemtokake jeneng file);
  • Pilihan "ora-tutul-dibutuhake" wis ditambahake kanggo ssh-keygen, kang disables perlu kanggo fisik konfirmasi akses kanggo token nalika ngasilaken tombol;
  • A arahan PubkeyAuthOptions wis ditambahake menyang sshd_config, sing nggabungake macem-macem opsi sing ana gandhengane karo otentikasi kunci umum. Saiki, mung gendera "ora-tutul-dibutuhake" sing didhukung kanggo ngliwati pemeriksaan fisik kanggo otentikasi token. Kanthi analogi, opsi "ora perlu disentuh" ​​wis ditambahake menyang file authorized_keys;
  • Added "-O write-attestation = / path" pilihan kanggo ssh-keygen kanggo ngidini tambahan FIDO sertifikat attestation ditulis nalika ngasilaken tombol. OpenSSH durung nggunakake sertifikat iki, nanging mengko bisa digunakake kanggo verifikasi sing tombol diselehake ing toko hardware dipercaya;
  • Ing setelan ssh lan sshd, saiki bisa nyetel mode prioritas lalu lintas liwat arahan IPQoS LE DSCP (Tindakan Per-Hop Kurang Upaya);
  • Ing ssh, nalika nyetel nilai "AddKeysToAgent = ya", yen tombol ora ngemot kolom komentar, bakal ditambahake menyang ssh-agen sing nuduhake path menyang tombol minangka komentar. ING
    ssh-keygen lan ssh-agen uga saiki nggunakake PKCS # 11 label lan jeneng subyek X.509 tinimbang path perpustakaan minangka komentar ing tombol;

  • Nambahake kemampuan kanggo ngekspor PEM kanggo kunci DSA lan ECDSA menyang ssh-keygen;
  • Nambahake eksekusi anyar, ssh-sk-helper, digunakake kanggo ngisolasi perpustakaan akses token FIDO / U2F;
  • Nambahake opsi mbangun "--with-zlib" kanggo ssh lan sshd kanggo kompilasi karo dhukungan perpustakaan zlib;
  • Sesuai karo syarat RFC4253, bebaya babagan pamblokiran akses amarga ngluwihi watesan MaxStartups diwenehake ing spanduk sing ditampilake nalika sambungan. Kanggo nyederhanakake diagnostik, header proses sshd, katon nalika nggunakake utilitas ps, saiki nampilake nomer sambungan sing saiki wis dikonfirmasi lan status watesan MaxStartups;
  • Ing ssh lan ssh-agent, nalika nelpon program kanggo nampilake undhangan ing layar, sing ditemtokake liwat $SSH_ASKPASS, gendera kanthi jinis undhangan saiki ditambahake: "konfirmasi" - dialog konfirmasi (ya / ora), "ora ana ” - pesen informasi, β€œkosong” β€” panyuwunan sandhi;
  • Nambahake operasi teken digital anyar "golek-kepala sekolah" kanggo ssh-keygen kanggo nelusuri file signers diijini kanggo pangguna sing digandhengake karo teken digital tartamtu;
  • Dhukungan apik kanggo isolasi proses sshd ing Linux nggunakake mekanisme seccomp: mateni telpon sistem IPC, ngidini clock_gettime64 (), clock_nanosleep_time64 lan clock_nanosleep ().

Source: opennet.ru

Add a comment