Аутентификация и авторизация

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 без ротации сертификатов всего кластера, используйте блокировку сессий и идентичностей.