Аутентификация и авторизация
Airlock выполняет и аутентификацию, и авторизацию:
- Аутентификация — подтверждение личности пользователя или сервиса.
- Авторизация — проверка прав доступа к ресурсу.
В этом документе описана аутентификация с помощью краткосрочных сертификатов.
Краткосрочные сертификаты
Центры сертификации (CA) и краткосрочные сертификаты — основа аутентификации Airlock. В начале каждого подключения пользователь или сервис предъявляет действительный сертификат, выданный доверенным CA. Клиенты всегда инициируют взаимную TLS- или SSH-аутентификацию.
CA Airlock выдаёт краткосрочные сертификаты X.509 для веб-сервисов, баз данных, кластеров Kubernetes, рабочих столов и SSH-сертификаты для OpenSSH-совместимых серверов.
Преимущества сертификатов
- Сертификаты привязаны к идентичности пользователя или сервиса — каждое действие можно отследить.
- Краткосрочные сертификаты автоматически истекают, отзыв не требуется.
- Сертификаты решают проблему «доверия при первом подключении» (TOFU): все серверы в кластере имеют собственные идентичности и сертификаты и не принимают клиентские сертификаты, подписанные недоверенным CA.
- Сертификаты обеспечивают взаимную аутентификацию (mTLS), что снижает риск подмены, атак «человек посередине» и перебора учётных данных.
- Сертификаты лучше масштабируются: каждому сервису достаточно проверить подпись CA, без копирования учётных данных на все узлы.
Airlock выдаёт сертификаты со сроком действия от нескольких часов до нескольких минут. Чем короче срок — тем лучше. Идеально — выдавать сертификат только на время сессии. На практике допустимы несколько часов или рабочий день. Дату истечения в сертификате нельзя подделать без его аннулирования.
Сертификаты X.509
Сертификаты X.509 — те же сертификаты, что используются при доступе к веб-сайтам через браузер. Они связывают идентичность с открытым ключом подписью CA.
Airlock использует X.509 для Kubernetes, баз данных, веб-сервисов и внутренних компонентов (прокси, Auth Service) для установки взаимной TLS-аутентификации (mTLS).
Сертификаты OpenSSH
SSH-сертификаты аналогичны X.509 и также связывают идентичность пользователя или сервера с открытым ключом подписью CA.
SSH-сертификат содержит метаданные для аутентификации:
- Список principals (идентичностей), которым принадлежит сертификат.
- Подпись CA, выдавшего сертификат.
- Дату истечения (TTL).
- Дополнительные данные (например, роль узла) в расширениях сертификата.
Время как фактор безопасности
Истечение срока действия — встроенное свойство сертификатов. SSH- и X.509-сертификаты содержат дату истечения, которую серверы проверяют вместе с подписью.
Airlock выдаёт сертификаты на срок от нескольких часов до минут; по истечении они автоматически становятся недействительными. Вместо списков отзыва Airlock полагается на время.
Если истечения сертификата недостаточно (например, при инциденте безопасности), Proxy Service может немедленно завершить активные соединения с помощью блокировки сессий и идентичностей.
Сертификаты для пользователей
Для выдачи сертификата пользователю Airlock открывает экран входа, выдаёт сертификат и доставляет его на компьютер пользователя.
Рекомендуется использовать SSO (GitHub, SAML, OIDC или другой провайдер идентификации) для получения краткосрочного сертификата.
Внутренние сертификаты
Внутренние сервисы Airlock — Auth, Proxy и узлы — используют сертификаты для идентификации в кластере. Для подключения прокси и узлов к кластеру администраторы используют краткосрочные токены присоединения.
В отличие от пользователей, внутренние сервисы получают долгосрочные сертификаты. Для их обновления администраторы выполняют ротацию CA — аннулирование всех ранее выданных сертификатов независимо от срока действия и выпуск новых с новым CA.
Чтобы быстро заблокировать скомпрометированный узел, прокси или Auth Service без ротации сертификатов всего кластера, используйте блокировку сессий и идентичностей.