ALTS - ALTS

Безопасность транспорта на уровне приложений (ALTS) это Google развитый аутентификация и шифрование система, используемая для защиты Удаленный вызов процедур (RPC) на машинах Google. Google начал свою разработку в 2007 году как специализированная модификация TLS.[1]

Фон

Технический документ ALTS[1] был опубликован в декабре 2017 года. Согласно ему, разработка началась в 2007 году. Уровень приложения протоколами были SSL и TLS 1.1 (TLS 1.2 был опубликован только как RFC в 2008[2]), они поддерживали многие устаревшие алгоритмы и имели низкие стандарты безопасности. В качестве Google полностью контролировал машины, которым требовалась безопасная транспортировка RPC, развертывание систем было относительно простым, поэтому разработчики Google могли позволить себе проектировать свою собственную систему с нуля.

Другое требование, которое считало необходимой новую систему, отличается доверять модели: в TLS, сторона сервера привержена собственному доменное имя (и соответствующая схема именования), в то время как Google требовался один и тот же идентификатор (например, RPC) для использования с несколькими схемами именования, чтобы упростить репликацию микросервисов, балансировку нагрузки и изменение расписания между хостами.

Подробности

Протокол рукопожатия

ALTS рукопожатие протокол основан на аутентифицированном Диффи-Хеллман схема обмена ключами с обоими совершенная прямая секретность (доступ к текущим ключам не ставит под угрозу безопасность в будущем) и возобновление сеанса (заметное ускорение в протоколе после первого сеанса между сторонами).

В отличие от TLS, в ALTS обе стороны - сервер и клиент - имеют свидетельство доказывая свою личность. Сертификат связан с ключом проверки доверенной службы подписи, причем лист является Эллиптическая кривая Диффи-Хеллмана ключ, который в конечном итоге используется для обмена ключами. В эллиптическая кривая используется при обмене ключами Подкрутка25519.[3]

Протокол рукопожатия состоит из четырех сообщений, отправленных в виде открытого текста:

  • ClientInit, инициированный клиентом, и содержит сертификат клиента, список доступных наборы шифров, и попытка возобновления сеанса;
  • ServerInitотправляется сервером в качестве ответа и содержит собственный сертификат, выбранный набор шифров и, возможно, зашифрованный билет на возобновление;
  • ServerFinished, отправляемый сервером (присоединенный к предыдущему сообщению в реализации ALTS по умолчанию) и содержит аутентификатор рукопожатия, т.е. HMAC по известной цепочке битов с использованием вычисленного сеансового ключа;
  • КлиентЗавершено, отправленный клиентом, и содержит аутентификатор рукопожатия, аналогичный тому, что в ServerFinished.

Как только обе стороны вычислили сеансовый ключ (протокол записи в техническом документе), они могут начать шифрование трафика с помощью 128-битного алгоритма симметричного шифрования. AES, используя в основном GCM как его режим работы. На старых машинах Google разработал VCM.[4] использовался.[5]

Протокол рукопожатия был проверен с использованием ProVerif инструмент формальной проверки.[6]

Возобновление сеанса

Чтобы избежать повторения дорогостоящих операций, ALTS поддерживает возобновление сеанса. Билеты на возобновление создаются либо сервером, либо клиентом и могут использоваться в протоколе рукопожатия, если обе стороны имеют один и тот же билет на возобновление, индексированный идентификатор возобновления. секрет возобновления используется для получения следующего сеансового ключа, аутентификатора и инкапсулированного (независимого) билета / идентификатора возобновления.

Совершенная прямая секретность

Совершенная прямая секретность (PFS) не включен по умолчанию в ALTS; однако он поддерживается. Вместо использования встроенного алгоритма PFS, ALTS достигает PFS путем частой ротации сертификатов, которые имеют короткий срок службы (6, 20 или 48 часов; см. [5]). Более того, если PFS включен, он также позволяет возобновить сеанс, получая ключи шифрования из билета возобновления с помощью псевдослучайная функция.

Смотрите также

Рекомендации

  1. ^ а б «Транспортная безопасность на уровне приложений». Google Cloud. Получено 18 ноября 2019.
  2. ^ «Протокол безопасности транспортного уровня (TLS) версии 1.2». tools.ietf.org. Получено 18 ноября 2019.
  3. ^ «Межсервисная аутентификация, целостность и шифрование § Протокол ALTS». Google Cloud. Получено 18 ноября 2019.
  4. ^ Кнапп, Эд (2017). «AES-VCM, конструкция AES-GCM с использованием универсальной хеш-функции на основе целых чисел». ai.google. Получено 18 ноября 2019.
  5. ^ а б «Шифрование при передаче в Google Cloud». Google Cloud. Получено 18 ноября 2019.
  6. ^ «ProVerif: верификатор криптографического протокола в формальной модели». prosecco.gforge.inria.fr. Получено 18 ноября 2019.