OpenSSH nambihan dukungan pikeun auténtikasi dua-faktor universal

Pikeun basis kode OpenSSH ditambahkeun rojongan eksperimen pikeun auténtikasi dua-faktor ngagunakeun alat nu ngarojong 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 ngonfirmasi ayana pangguna, jinis konci énggal parantos ditambah kana OpenSSH "[email dijaga]” (“ecdsa-sk”), anu ngagunakeun algoritma tanda tangan digital ECDSA (Elliptic Curve Digital Signature Algorithm) kalayan kurva elliptic NIST P-256 sareng SHA-256 hash. 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 ngaktipkeun U2F, anjeun tiasa nganggo nyiksikan seger tina codebase tina gudang OpenSSH sareng cabang HEAD perpustakaan libfido2, nu geus ngawengku lapisan diperlukeun pikeun OpenSSH.
Libfido2 ngadukung OpenBSD, Linux, macOS sareng Windows.

Pikeun ngabuktoskeun kaaslianana sareng ngahasilkeun konci, anjeun kedah nyetél variabel lingkungan SSH_SK_PROVIDER, nunjukkeun di jerona jalur ka libsk-libfido2.so (ékspor SSH_SK_PROVIDER=/path/to/libsk-libfido2.so), atawa nangtukeun perpustakaan ngaliwatan SecurityKeyProvider. setelan, lajeng ngajalankeun "ssh- keygen -t ecdsa-sk" atawa, lamun kenop geus dijieun tur ngonpigurasi, sambungkeun ka server maké "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 ditiron 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 sia. 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.

Konci U2F bisa ditambahkeun kana ssh-agén via "ssh-add ~/.ssh/id_ecdsa_sk", tapi ssh-agén kudu diwangun kalayan rojongan pikeun konci "ecdsa-sk", lapisan libsk-libfido2 kudu hadir jeung agén kudu dijalankeun dina sistem, nu token disambungkeun.
Tipe konci anyar "ecdsa-sk" geus ditambahkeun saprak format kenop OpenSSH ecdsa béda ti format U2F pikeun tanda tangan digital ECDSA ku ayana widang tambahan.

sumber: opennet.ru

Tambahkeun komentar