OpenSSH સાર્વત્રિક બે-પરિબળ પ્રમાણીકરણ માટે આધાર ઉમેરે છે

В кодовую базу OpenSSH ઉમેર્યું экспериментальная поддержка двухфакторной аутентификации с использованием устройств, поддерживающих протокол U2F, જોડાણ દ્વારા વિકસિત ફિડો. U2F યુઝરની ભૌતિક હાજરી ચકાસવા માટે ઓછી કિંમતના હાર્ડવેર ટોકન્સ બનાવવાની પરવાનગી આપે છે, તેમની સાથે USB, Bluetooth અથવા NFC દ્વારા ક્રિયાપ્રતિક્રિયા કરે છે. આવા ઉપકરણોને વેબસાઇટ્સ પર દ્વિ-પરિબળ પ્રમાણીકરણના માધ્યમ તરીકે પ્રમોટ કરવામાં આવે છે, તે પહેલાથી જ મુખ્ય બ્રાઉઝર્સ દ્વારા સમર્થિત છે અને યુબીકો, ફેઇટિયન, થેટીસ અને કેન્સિંગ્ટન સહિતના વિવિધ ઉત્પાદકો દ્વારા બનાવવામાં આવે છે.

Для взаимодействия с устройствами, подтверждающими присутствие пользователя, в OpenSSH добавлен новый тип ключей «[ઇમેઇલ સુરક્ષિત]» («ecdsa-sk»), в котором используется алгоритм цифровой подписи ECDSA (Elliptic Curve Digital Signature Algorithm) с эллиптической кривой NIST P-256 и хэшем SHA-256. Процедуры взаимодействия с токенами вынесены в промежуточную библиотеку, которая загружается по аналогии с библиотекой для поддержки PKCS#11 и является обвязкой над библиотекой libfido2, જે USB પર ટોકન્સ સાથે સંચાર માટે સાધનો પૂરા પાડે છે (FIDO U2F/CTAP 1 અને FIDO 2.0/CTAP 2 પ્રોટોકોલ્સ સપોર્ટેડ છે). OpenSSH વિકાસકર્તાઓ દ્વારા તૈયાર કરવામાં આવેલી મધ્યવર્તી લાઇબ્રેરી libsk-libfido2 સમાવેશ થાય છે કોર libfido2 માં, તેમજ HID ડ્રાઈવર ઓપનબીએસડી માટે.

Для включения U2F можно использовать свежий срез кодовой базы из રેપોઝિટોરિયા OpenSSH и HEAD-ветку библиотеки libfido2, в которую уже входит необходимая для OpenSSH прослойка.
Libfido2 поддерживает работу в OpenBSD, Linux, macOS и Windows.

Для аутентификации и генерации ключа необходимо выставить переменную окружения SSH_SK_PROVIDER, указав в ней путь к libsk-libfido2.so (export SSH_SK_PROVIDER=/path/to/libsk-libfido2.so), или определить библиотеку через настойку SecurityKeyProvider, после чего запустить «ssh-keygen -t ecdsa-sk» или, если ключи уже созданы и настроены, подключиться к серверу при помощи «ssh». При запуске ssh-keygen созданная пара ключей будет сохранена в «~/.ssh/id_ecdsa_sk» и может использоваться аналогично другим ключам.

Открытый ключ (id_ecdsa_sk.pub) следует скопировать на сервер в файл authorized_keys. На стороне сервера только проверяется цифровая подпись, а взаимодействие с токенами производится на стороне клиента (на сервере не нужно устанавливать libsk-libfido2, но сервер должен поддерживать тип ключей «ecdsa-sk»). Сгенерированный закрытый ключ (id_ecdsa_sk) по сути является дескриптором ключа, образующим реальный ключ только в сочетании с секретной последовательностью, хранимой на стороне токена U2F.

В случае попадания ключа id_ecdsa_sk в руки атакующего, для прохождения аутентификации ему также потребуется получить доступ к аппаратному токену, без которого сохранённый в файле id_ecdsa_sk закрытый ключ бесполезен. Кроме того, по умолчанию при выполнении любых операций с ключами (как при генерации, так и при аутентификации) требуется локальное подтверждение физического присутствия пользователя, например, предлагается коснуться сенсора на токене, что затрудняет проведение удалённых атак на системы с подключенным токеном. В качестве ещё одного рубежа защиты на этапе запуска ssh-keygen также может быть задан пароль для доступа к файлу с ключом.

Ключ U2F может быть добавлен в ssh-agent через «ssh-add ~/.ssh/id_ecdsa_sk», но ssh-agent должен быть собран с поддержкой ключей «ecdsa-sk», должна присутствовать прослойка libsk-libfido2 и агент должен выполняться на системе, к которой подключается токен.
Новый тип ключей «ecdsa-sk» добавлен так как формат ecdsa-ключей OpenSSH отличается от формата U2F для цифровых подписей ECDSA наличием дополнительных полей.

સોર્સ: opennet.ru

એક ટિપ્પણી ઉમેરો