В этом руководстве описывается, как работают шифрование и дешифрование с использованием API шифрования на стороне клиента Google Workspace.
Необходимо добавить в список разрешенных все службы поставщика идентификационных данных (IdP), используемые пользователями для обмена зашифрованными файлами. Как правило, необходимые данные IdP можно найти в их общедоступном файле .well-known ; в противном случае обратитесь к администратору Google Workspace вашей организации за информацией об IdP.
Шифрование данных
Когда пользователь Google Workspace запрашивает сохранение или хранение данных, зашифрованных на стороне клиента (CSE), Google Workspace отправляет запрос на шифрование wrap request) на URL-адрес конечной точки вашей службы списков контроля доступа к ключам (KACLS). В дополнение к необязательным проверкам безопасности, таким как проверка периметра и проверка на основе утверждений JWT, ваша служба KACLS должна выполнить следующие шаги:
Проверьте личность пользователя, отправившего запрос.
- Проверьте подлинность как токена аутентификации , так и токена авторизации .
- Убедитесь, что токены авторизации и аутентификации принадлежат одному и тому же пользователю, выполнив поиск по адресам электронной почты без учета регистра.
- Если токен аутентификации содержит необязательное поле
google_email, его необходимо сравнить с полем email в токене авторизации, используя подход без учета регистра. Не используйте поле email из токена аутентификации для этого сравнения. - В случаях, когда токен аутентификации не содержит необязательного поля
google_email, поле email в токене аутентификации следует сравнивать с полем email в токене авторизации, используя метод, нечувствительный к регистру. - В сценариях, когда Google выдает токен авторизации для адреса электронной почты, не связанного с учетной записью Google, необходимо наличие поля
email_type. Это важная часть функции гостевого доступа, предоставляющая KACLS ценную информацию для обеспечения дополнительных мер безопасности для внешних пользователей.- Вот несколько примеров того, как KACLS может использовать эту информацию:
- Ввести дополнительные требования к лесозаготовкам.
- Чтобы ограничить использование эмитента токенов аутентификации только выделенным поставщиком идентификации для гостей.
- Для того чтобы требовать дополнительных утверждений в токене аутентификации.
- Если клиент не настроил гостевой доступ, то все запросы, в которых
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операции. - Убедитесь, что в токене авторизации указано значение
rolewriterилиupgrader. - Убедитесь, что поле
kacls_urlв токене авторизации соответствует текущему URL-адресу KACLS. Эта проверка позволяет обнаружить потенциальные серверы, используемые для атак типа «человек посередине», настроенные инсайдерами или недобросовестными администраторами домена. - Выполните проверку периметра, используя как подтверждения подлинности, так и авторизации.
Зашифруйте следующие части, используя алгоритм шифрования с аутентификацией:
- Ключ шифрования данных (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, поле email в токене аутентификации следует сравнивать с полем email в токене авторизации, используя метод, нечувствительный к регистру. - В сценариях, когда Google выдает токен авторизации для адреса электронной почты, не связанного с учетной записью Google, необходимо наличие поля
email_type. Это важная часть функции гостевого доступа, предоставляющая KACLS ценную информацию для обеспечения дополнительных мер безопасности для внешних пользователей.- Вот несколько примеров того, как KACLS может использовать эту информацию:
- Ввести дополнительные требования к лесозаготовкам.
- Чтобы ограничить использование эмитента токенов аутентификации только выделенным поставщиком идентификации для гостей.
- Для того чтобы требовать дополнительных утверждений в токене аутентификации.
- Если клиент не настроил гостевой доступ, то все запросы, в которых
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операции. - Убедитесь, что в токене авторизации указана
rolereaderилиwriter. - Убедитесь, что поле
kacls_urlв токене авторизации соответствует текущему URL-адресу KACLS. Это позволяет обнаруживать потенциальные серверы, используемые для атак типа «человек посередине», настроенные инсайдерами или недобросовестными администраторами домена.
Расшифруйте следующие части, используя алгоритм шифрования с аутентификацией:
- Ключ шифрования данных (DEK)
- Значения
resource_nameиperimeter_idиз токена авторизации. - Любые дополнительные конфиденциальные данные
Убедитесь, что
resource_nameв токене авторизации и расшифрованном BLOB-объекте совпадает.Выполните проверку периметра, используя как подтверждения подлинности, так и авторизации.
Запишите в журнал операцию, включая пользователя, инициировавшего её, имя
resource_nameи причину, указанную в запросе.Возвращает развернутый DEK или структурированный ответ об ошибке .