В этом руководстве описывается, как работает шифрование и дешифрование с использованием API шифрования на стороне клиента Google Workspace.
Необходимо добавить в разрешённый список все службы поставщиков удостоверений (IdP), используемые пользователями, обменивающимися зашифрованными файлами. Обычно необходимые данные IdP можно найти в общедоступном файле .wellknown; в противном случае обратитесь к администратору Google Workspace вашей организации, чтобы получить данные IdP.
Шифровать данные
Когда пользователь Google Workspace запрашивает сохранение или хранение данных, зашифрованных на стороне клиента (CSE), Google Workspace отправляет wrap
на URL-адрес конечной точки службы управления списками доступа (KACLS) для шифрования. Помимо дополнительных проверок безопасности, таких как проверки периметра и проверки на основе утверждений JWT, ваша служба KACLS должна выполнить следующие действия:
Проверьте запрашивающего пользователя.
- Проверьте как токен аутентификации , так и токен авторизации .
- Проверьте, что токены авторизации и аутентификации принадлежат одному и тому же пользователю, выполнив сопоставление заявок электронной почты без учета регистра.
- Если токен аутентификации содержит необязательное утверждение
google_email
, его необходимо сравнить с утверждением email в токене авторизации без учёта регистра. Не используйте утверждение email в токене аутентификации для этого сравнения. - В сценариях, когда в токене аутентификации отсутствует необязательное утверждение
google_email
, утверждение электронной почты в токене аутентификации следует сравнивать с утверждением электронной почты в токене авторизации, используя метод без учета регистра. - В случаях, когда Google выдаёт токен авторизации для адреса электронной почты, не связанного с учётной записью Google, необходимо наличие утверждения
email_type
. Это критически важный элемент функции гостевого доступа, предоставляющий KACLS ценную информацию для применения дополнительных мер безопасности к внешним пользователям.- Вот несколько примеров того, как KACLS может использовать эту информацию:
- Ввести дополнительные требования по лесозаготовкам.
- Ограничить эмитента токена аутентификации выделенным гостевым IdP.
- Требовать дополнительные требования к токене аутентификации.
- Если клиент не настроил гостевой доступ, все запросы, в которых
email_type
установлен наgoogle-visitor
илиcustomer-idp
могут быть отклонены. Запросы с параметромemail_type
, установленным наgoogle
, или с неустановленным параметромemail_type
должны по-прежнему приниматься.
- Если токен аутентификации содержит необязательное утверждение
delegated_to
, он также должен содержать утверждениеresource_name
, и эти два утверждения необходимо сравнить с утверждениямиdelegated_to
иresource_name
в токене авторизации. Сравнение утвержденийdelegated_to
следует выполнять без учёта регистра, аresource_name
в токенах должно совпадать сresource_name
операции. - Проверьте, что в токене авторизации указана
role
writer
илиupgrader
. - Проверьте, соответствует ли утверждение
kacls_url
в токене авторизации текущему URL-адресу KACLS. Эта проверка позволяет обнаружить потенциальные серверы типа «man-in-the-middle», настроенные инсайдерами или недобросовестными администраторами домена. - Выполните проверку периметра, используя как аутентификационные, так и авторизационные заявки.
Зашифруйте следующие части, используя аутентифицированный алгоритм шифрования:
- Ключ шифрования данных (DEK)
- Значения
resource_name
иperimeter_id
из токена авторизации - Любые дополнительные конфиденциальные данные
Зарегистрируйте операцию, включая пользователя, ее инициировавшего,
resource_name
и причину, переданную в запросе.Возвращает непрозрачный двоичный объект, который Google Workspace сохраняет вместе с зашифрованным объектом и отправляет как есть при любой последующей операции распаковки ключа. Или отправляет структурированный ответ об ошибке .
- Двоичный объект должен содержать единственную копию зашифрованного DEK, в нем могут храниться данные, специфичные для реализации.
Расшифровать данные
Когда пользователь Google Workspace запрашивает открытие данных, зашифрованных на стороне клиента (CSE), Google Workspace отправляет запрос unwrap
на URL-адрес вашей конечной точки KACLS для расшифровки. Помимо дополнительных проверок безопасности, таких как проверки периметра и проверки на основе утверждений JWT, ваша KACLS должна выполнить следующие действия:
Проверьте запрашивающего пользователя.
- Проверьте как токен аутентификации , так и токен авторизации .
- Проверьте, что токены авторизации и аутентификации принадлежат одному и тому же пользователю, выполнив сопоставление заявок электронной почты без учета регистра.
- Если токен аутентификации содержит необязательное утверждение
google_email
, его необходимо сравнить с утверждением email в токене авторизации без учёта регистра. Не используйте утверждение email в токене аутентификации для этого сравнения. - В сценариях, когда в токене аутентификации отсутствует необязательное утверждение
google_email
, утверждение электронной почты в токене аутентификации следует сравнивать с утверждением электронной почты в токене авторизации, используя метод без учета регистра. - В случаях, когда Google выдаёт токен авторизации для адреса электронной почты, не связанного с учётной записью Google, необходимо наличие утверждения
email_type
. Это критически важный элемент функции гостевого доступа, предоставляющий KACLS ценную информацию для применения дополнительных мер безопасности к внешним пользователям.- Вот несколько примеров того, как KACLS может использовать эту информацию:
- Ввести дополнительные требования по лесозаготовкам.
- Ограничить эмитента токена аутентификации выделенным гостевым IdP.
- Требовать дополнительные требования к токене аутентификации.
- Если клиент не настроил гостевой доступ, все запросы, в которых
email_type
установлен наgoogle-visitor
илиcustomer-idp
могут быть отклонены. Запросы с параметромemail_type
, установленным наgoogle
, или с неустановленным параметромemail_type
должны по-прежнему приниматься.
- Если токен аутентификации содержит необязательное утверждение
delegated_to
, он также должен содержать утверждениеresource_name
, и эти два утверждения необходимо сравнить с утверждениямиdelegated_to
иresource_name
в токене авторизации. Сравнение утвержденийdelegated_to
следует выполнять без учёта регистра, аresource_name
в токенах должно совпадать сresource_name
операции. - Проверьте, что в токене авторизации указана
role
reader
илиwriter
. - Убедитесь, что утверждение
kacls_url
в токене авторизации соответствует текущему URL-адресу KACLS. Это позволяет обнаружить потенциальные серверы типа «man-in-the-middle», настроенные инсайдерами или недобросовестными администраторами домена.
Расшифруйте следующие части, используя аутентифицированный алгоритм шифрования:
- Ключ шифрования данных (DEK)
- Значения
resource_name
иperimeter_id
из токена авторизации - Любые дополнительные конфиденциальные данные
Проверьте, совпадают ли
resource_name
в токене авторизации и расшифрованном блобе.Выполните проверку периметра, используя как аутентификационные, так и авторизационные заявки.
Зарегистрируйте операцию, включая пользователя, ее инициировавшего,
resource_name
и причину, переданную в запросе.Верните развернутый DEK или структурированный ответ об ошибке .