В Сloudflare анонсировали внедрение технологии единого входа OpenID Connect в SSH с помощью протокола OPKSSH (OpenPubkey SSH). Это избавит клиентов от необходимости вручную управлять ключами и настраивать их.
Базовый протокол OpenPubkey стал проектом Linux Foundation с открытым исходным кодом в 2023 году, а OPKSSH ранее развивала BastionZero, а теперь этим занимается Cloudflare. Компания также передала код проекту OpenPubkey, сделав его открытым.
OpenID Connect (OIDC) — основной протокол, используемый для SSO. Как показано ниже, в OIDC IdP, называемый OpenID Provider (OP), выдает пользователю ID-токен, который содержит идентификационные данные, например, «email is alice@example.com». Эти утверждения подписываются цифровой подписью OP, поэтому любой, кто получает ID-токен, может проверить, что он действительно был выдан OP.
Хотя ID-токены включают идентификационные данные, такие как имя, название организации и адрес электронной почты, они не включают открытый ключ пользователя. Это не позволяет использовать их для прямой защиты протоколов, таких как SSH или сквозное шифрование сообщений.
OpenID Connect работает с Google, Azure, Okta и т. д. OpenPubkey добавляет открытые ключи к ID-токенам. Это позволяет использовать их как сертификаты, а такие токены, содержащие открытый ключ, называют PK-токенами. Плюс OpenPubkey в том, что, в отличие от других подходов, он не требует никаких изменений в существующих протоколах SSO и поддерживает любой OP, совместимый с OpenID Connect. OpenPubkey позволяет использовать ID-токены в качестве сертификатов, OPKSSH расширяет эту функциональность, так что эти ID-токены можно использовать в качестве ключей SSH в протоколе SSH. Это добавляет аутентификацию SSO к SSH без необходимости внесения изменений в протокол SSH.
В итоге пользователи и администраторы избавляются от необходимости управлять долговременными ключами SSH. «Во многих организациях — даже очень заботящихся о безопасности — устаревших авторизованных ключей во много раз больше, чем сотрудников. Хуже того, авторизованные ключи обычно предоставляют доступ к оболочке командной строки, что само по себе часто считается привилегией. Мы обнаружили, что во многих организациях около 10% авторизованных ключей предоставляют доступ root или администратора», — цитируют в Сloudflare изобретателя SSH Тату Илонена.
OPKSSH заменяет долгоживущие ключи SSH на временные, которые создаются по запросу и истекают, когда больше не нужны. Это снижает риск компрометации закрытого ключа и ограничивает период времени, в течение которого злоумышленник может использовать скомпрометированный. По умолчанию открытые ключи OPKSSH истекают каждые 24 часа, но политику можно задать в файле конфигурации.
При этом создать ключ SSH так же просто, как войти в OP. Это означает, что пользователь может использовать SSH с любого компьютера с установленным opkssh, даже если он не скопировал закрытый ключ на этот компьютер. Достаточно просто запустить opkssh login.
Кроме того, OPKSSH переводит SSH с авторизации по открытому ключу на авторизацию по удостоверению. Если Алиса хочет предоставить Бобу доступ к серверу, ей не нужно запрашивать его открытый ключ, а стоит просто добавить адрес электронной почты bob@example.com в файл авторизованных пользователей OPKSSH, и он сможет войти в систему. Это значительно упрощает отслеживание того, кто имеет доступ, поскольку администраторы могут видеть адреса электронной почты авторизованных пользователей.
Наконец, OPKSSH не требует никаких изменений кода на сервере или клиенте SSH. Единственное изменение — это добавление двух строк в файл конфигурации SSH. Сloudflare предоставляет скрипт установки, который делает это автоматически. Верификатор OpenPubkey проверит, что токен PK не просрочен, действителен и подписан OP. Он проверяет адрес электронной почты пользователя в токене PK, чтобы определить, авторизован ли пользователь для доступа к серверу. Наконец, он проверяет, что открытый ключ в SSH совпадает с открытым ключом пользователя внутри токена PK.
Исходный код OPKSSH распространяется под лицензией Apache 2.0 и доступен как openpubkey/opkssh на GitHub.
Подробнее об OpenID Connect можно прочитать здесь.
ссылка на оригинал статьи https://habr.com/ru/articles/894452/
Добавить комментарий