OpenSSH nambahake dhukungan kanggo otentikasi rong faktor universal

Menyang basis kode OpenSSH ditambahake dhukungan eksperimen kanggo 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 konfirmasi ananΓ© pangguna, jinis tombol anyar wis ditambahake menyang OpenSSH "[email dilindhungi]” (β€œecdsa-sk”), sing nggunakake algoritma tandha digital ECDSA (Elliptic Curve Digital Signature Algorithm) kanthi kurva eliptik NIST P-256 lan 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 ngaktifake U2F, sampeyan bisa nggunakake irisan seger saka codebase saka gudang OpenSSH lan cabang HEAD perpustakaan libfido2, sing wis kalebu lapisan sing perlu kanggo OpenSSH.
Libfido2 ndhukung OpenBSD, Linux, macOS lan Windows.

Kanggo keasliane lan ngasilake kunci, sampeyan kudu nyetel variabel lingkungan SSH_SK_PROVIDER, nuduhake ing dalan menyang libsk-libfido2.so (ekspor SSH_SK_PROVIDER=/path/to/libsk-libfido2.so), utawa nemtokake perpustakaan liwat SecurityKeyProvider. setelan, banjur 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) iku 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.

Tombol U2F bisa ditambahake menyang ssh-agent liwat "ssh-add ~/.ssh/id_ecdsa_sk", nanging ssh-agent kudu dibangun kanthi dhukungan kanggo tombol "ecdsa-sk", lapisan libsk-libfido2 kudu ana lan agen kudu mlaku ing sistem, sing token disambungake.
Jinis kunci anyar "ecdsa-sk" wis ditambahake amarga format tombol ecdsa OpenSSH beda karo format U2F kanggo teken digital ECDSA nalika ana lapangan tambahan.

Source: opennet.ru

Add a comment