OpenSSH universal ikki faktorli autentifikatsiyani qo'llab-quvvatlaydi

OpenSSH kod bazasiga qo'shildi protokolni qo'llab-quvvatlaydigan qurilmalar yordamida ikki faktorli autentifikatsiyani eksperimental qo'llab-quvvatlash U2F, alyans tomonidan ishlab chiqilgan Fido. U2F foydalanuvchining jismoniy mavjudligini tekshirish, ular bilan USB, Bluetooth yoki NFC orqali o'zaro aloqa qilish uchun arzon apparat tokenlarini yaratish imkonini beradi. Bunday qurilmalar veb-saytlarda ikki faktorli autentifikatsiya vositasi sifatida ilgari suriladi, ular allaqachon yirik brauzerlar tomonidan qo'llab-quvvatlanadi va turli ishlab chiqaruvchilar, jumladan Yubico, Feitian, Thetis va Kensington tomonidan ishlab chiqariladi.

Foydalanuvchining mavjudligini tasdiqlovchi qurilmalar bilan ishlash uchun OpenSSH-ga yangi turdagi kalitlar qo'shildi "[elektron pochta bilan himoyalangan]” (“ecdsa-sk”), u NIST P-256 elliptik egri chizig‘i va SHA-256 xeshi bilan ECDSA (Elliptic Curve Digital Signature Algoritm) raqamli imzo algoritmidan foydalanadi. Tokenlar bilan oʻzaro ishlash tartib-qoidalari PKCS#11 qoʻllab-quvvatlashi uchun kutubxonaga oʻxshash tarzda yuklangan va kutubxonaning yuqori qismidagi oʻram boʻlgan oraliq kutubxonaga joylashtirilgan. libfido2, bu USB orqali tokenlar bilan bog'lanish uchun vositalarni taqdim etadi (FIDO U2F/CTAP 1 va FIDO 2.0/CTAP 2 protokollari qo'llab-quvvatlanadi). OpenSSH ishlab chiquvchilari tomonidan tayyorlangan libsk-libfido2 oraliq kutubxonasi kiritilgan libfido2 yadrosiga, shuningdek HID haydovchi OpenBSD uchun.

U2F-ni yoqish uchun siz kod bazasining yangi bo'lagidan foydalanishingiz mumkin ombori OpenSSH va kutubxonaning HEAD filiali libfido2, bu allaqachon OpenSSH uchun zarur bo'lgan qatlamni o'z ichiga oladi.
Libfido2 OpenBSD, Linux, macOS va Windows-ni qo'llab-quvvatlaydi.

Kalitni autentifikatsiya qilish va yaratish uchun siz SSH_SK_PROVIDER muhit oʻzgaruvchisini oʻrnatishingiz kerak, unda libsk-libfido2.so yoʻlini koʻrsating (SSH_SK_PROVIDER=/path/to/libsk-libfido2.so eksport qiling) yoki SecurityKeyProvider orqali kutubxonani aniqlang. sozlang va keyin “ssh- keygen -t ecdsa-sk” ni ishga tushiring yoki agar kalitlar allaqachon yaratilgan va sozlangan boʻlsa, “ssh” yordamida serverga ulaning. Ssh-keygen-ni ishga tushirganingizda, yaratilgan kalitlar juftligi "~/.ssh/id_ecdsa_sk" da saqlanadi va boshqa kalitlarga o'xshash tarzda ishlatilishi mumkin.

Ochiq kalit (id_ecdsa_sk.pub) avtorizatsiyalangan_keys faylidagi serverga ko'chirilishi kerak. Server tomonida faqat raqamli imzo tekshiriladi va tokenlar bilan o'zaro aloqa mijoz tomonidan amalga oshiriladi (serverga libsk-libfido2 ni o'rnatishingiz shart emas, lekin server "ecdsa-sk" kalit turini qo'llab-quvvatlashi kerak) . Yaratilgan shaxsiy kalit (id_ecdsa_sk) aslida kalit dastagi bo'lib, faqat U2F token tomonida saqlanadigan maxfiy ketma-ketlik bilan birgalikda haqiqiy kalitni tashkil qiladi.

Agar id_ecdsa_sk kaliti tajovuzkorning qo'liga tushsa, autentifikatsiyadan o'tish uchun u apparat tokeniga ham kirishi kerak bo'ladi, ularsiz id_ecdsa_sk faylida saqlangan shaxsiy kalit foydasiz bo'ladi. Bunga qo'shimcha ravishda, sukut bo'yicha, kalitlar bilan har qanday operatsiyalarni amalga oshirishda (yaratish paytida ham, autentifikatsiya paytida ham) foydalanuvchining jismoniy mavjudligini mahalliy tasdiqlash talab qilinadi, masalan, tokendagi sensorga teginish taklif etiladi, bu esa ishlashni qiyinlashtiradi. ulangan tokenli tizimlarga masofaviy hujumlarni amalga oshirish. Boshqa himoya chizig'i sifatida kalit faylga kirish uchun ssh-keygen ishga tushirish bosqichida parol ham ko'rsatilishi mumkin.

U2F kaliti ssh-agentga "ssh-add ~/.ssh/id_ecdsa_sk" orqali qo'shilishi mumkin, ammo ssh-agent "ecdsa-sk" tugmachalarini qo'llab-quvvatlash bilan qurilgan bo'lishi kerak, libsk-libfido2 qatlami mavjud bo'lishi kerak va agent token ulangan tizimda ishlayotgan bo'lishi kerak.
OpenSSH ecdsa kalitlari formati ECDSA raqamli imzolari uchun U2F formatidan qoʻshimcha maydonlar mavjudligi bilan farq qilganligi uchun yangi “ecdsa-sk” kalit turi qoʻshildi.

Manba: opennet.ru

a Izoh qo'shish