Операторы GitHub добавили возможность использования ключей безопасности стандарта FIDO2 при удаленном доступе к Git-репозиториям по SSH. Привязка криптоключей SSH к носимому устройству FIDO2 позволяет снизить риск утечки данных аутентификации и усилить, таким образом, защиту от угона аккаунта.
В настоящее время доступ к Git на GitHub.com возможен с помощью пароля к аккаунту, персонального токена или SSH-ключа. Однако платформа постепенно отходит от использования паролей, отдавая предпочтение более надежным способам аутентификации — 2FA, U2F (Universal Second Factor), WebAuthn. В конце прошлого года операторы веб-сервиса объявили, что с 13 августа 2021-го проведение Git-операций по паролю станет невозможным.
Использование FIDO2 предполагает создание пары дополнительных ключей безопасности; авторизация этой процедуры может потребовать прикосновения к FIDO-устройству. Генерация публичного и приватного ключей SSH по-прежнему необходима, но секретные биты теперь сохраняются в новом ключе безопасности, а открытая часть остается на машине пользователя — как обычный публичный ключ SSH.
Файл приватного ключа тоже присутствует на рабочем устройстве, но его содержимым является лишь отсылка к аппаратному аутентификатору. Без хранимого на нем ключа безопасности эта информация бесполезна.
Вредоносные программы тоже не смогут привнести нежелательные изменения в Git-репозиторий, так как любая удаленная операция потребует подтверждения — прикосновения к устройству-аутентификатору. В кеше клиента эти касания не сохраняются.
Нововведение позволяет также дополнительно усилить защиту — удалить все прежние SSH-ключи и пользоваться только теми, что созданы на базе новой системы аутентификации. Неиспользуемые ключи GitHub будет через год автоматически удалять, чтобы облегчить управление при использовании нескольких рабочих устройств или в случае потери одного из них.