Как расшифровать зашифрованные на стороне клиента файлы и письма

Если в вашей организации используется клиентское шифрование Google Workspace (CSE), то вы можете использовать утилиту дешифровщика для расшифровки клиентских зашифрованных файлов и электронных писем, которые вы экспортируете с помощью инструмента "Экспорт данных" или Google Сейфа. Этот инструмент запускается из командной строки.

При запуске инструмента расшифровки необходимо добавить параметры командной строки. Например, можно указать данные для аутентификации у поставщика идентификационной информации, каталог с зашифрованными файлами или расположение выходных расшифрованных файлов. Вы также можете создать файл конфигурации, включив в него параметры, которые часто используете.

Подготовка

  • Зашифрованные файлы Google Документов, Таблиц и Презентаций имеют расширение .gdoczip или аналогичное. После расшифровки вы можете конвертировать эти файлы в формат Microsoft Office с помощью конвертера файлов. Подробную информацию можно найти в статье Как преобразовать экспортированные и расшифрованные файлы Google в файлы Microsoft Office.
  • Если вы экспортируете сообщения в Gmail с шифрованием на стороне клиента из Google Сейфа, они должны быть в формате MBOX. Утилита decrypter не может обрабатывать экспорт в формате PST.
  • Утилита decrypter может расшифровывать любые сообщения, зашифрованные с использованием сертификатов S/MIME. Кроме того, она может расшифровывать сообщения, зашифрованные без сертификатов S/MIME (то есть сообщения, использующие сквозное шифрование (E2EE) в Gmail), если ваши пользователи зашифровали сообщения или исходное сообщение в цепочках.
  • Утилита decrypter не расшифровывает сообщения (в частности, все сообщения в цепочке), зашифрованные без сертификатов S/MIME (E2EE в Gmail), в другой организации.

Системные требования

  • Microsoft Windows 10 или 11 (64-разрядная версия).
  • macOS 12 (Monterey) или более поздней версии. Поддерживаются процессоры Apple и Intel
  • Linux x86_64

Как скачать decrypter

Откройте архив или том и извлеките исполняемый файл decrypter в локальный каталог или папку.

Как настроить доступ к сервису управления ключами

Утилита decrypter отправляет запросы в ваш сервис управления ключами шифрования (другое название – сервис списков контроля доступа к ключам (KACLS)), который защищает все зашифрованные файлы или сообщения в ваших экспортированных данных. Запросите у администратора поставщика идентификационной информации и администратора сервиса управления ключами шифрования учетные данные, которые примет KACLS. Иначе KACLS отклонит попытки decrypter расшифровать экспортированный контент.

Что вам потребуется

Чтобы настроить доступ к KACLS, убедитесь, что у вас есть:

  • Идентификатор клиента OAuth, который могут использовать установленные приложения. Идентификатор клиента для decrypter должен быть идентификатором клиента, который можно использовать в установленном программном обеспечении для ПК и который предназначен специально для утилиты decrypter. Этот идентификатор клиента должен отличаться от идентификаторов клиентов, заданных в консоли администратора Google для веб-приложений, приложений для ПК и мобильных приложений с шифрованием на стороне клиента.
  • Секретный код клиента OAuth, связанный с идентификатором клиента, если ваш поставщик идентификационной информации – Google. Вам не нужен секретный код клиента, если вы работаете со сторонним поставщиком идентификационной информации.
  • Адрес электронной почты для аккаунта пользователя, который аутентифицируется в KACLS, для расшифровки экспортированных данных. Это может быть ваш собственный или специальный аккаунт, настроенный вашими администраторами. При запуске утилиты decrypter вам нужно войти в систему как этот пользователь, поэтому, скорее всего, понадобится пароль к аккаунту.

Конечные точки KACLS

Конфигурация KACLS должна позволять аккаунту пользователя и идентификатору клиента вызывать конечные точки, используемые для расшифровки экспортированных данных. Обычно такую настройку может выполнить ваш администратор KACLS. Конечная точка KACLS, вызываемая decrypter, зависит от типа зашифрованного контента.

  • Шифрование на стороне клиента в Календаре: privilegedunwrap
  • Шифрование на стороне клиента в Документах, Таблицах и Презентациях: privilegedunwrap
  • Шифрование на стороне клиента на Диске: privilegedunwrap
  • Шифрование на стороне клиента в Gmail (с сертификатами S/MIME): privilegedprivatekeydecrypt
  • Шифрование на стороне клиента в Gmail (без сертификатов S/MIME): privilegedunwrap

Как настроить в Gmail доступ к S/MIME (необязательно)

Если вы расшифровываете клиентские зашифрованные сообщения Gmail, которые используют S/MIME из Google Сейфа, дешифровщику необходимо вызвать общедоступный API Gmail для загрузки дополнительных данных. Экспортированные данные из Google Сейфа не содержат сертификаты S/MIME каждого пользователя, поэтому decrypter автоматически извлекает их из Gmail по мере необходимости.

Чтобы разрешить утилите decrypter запрашивать сертификаты S/MIME для любого пользователя в вашей организации, передайте decrypter учетные данные сервисного аккаунта на уровне домена. Подробные сведения о настройке этого сервисного аккаунта и создании для него JSON-файла с личными учетными данными можно найти в статье Как настроить S/MIME для шифрования на стороне клиента (только Gmail).

Примечание. Эта настройка не требуется, если вы расшифровываете клиентские зашифрованные сообщения из инструмента "Экспорт данных" или зашифрованные сообщения из Сейфа, не использующие сертификаты S/MIME.

Утилита decrypter не может получить сертификаты S/MIME пользователя и, следовательно, не может расшифровать клиентские зашифрованные сообщения, использующие S/MIME, если выполняется хотя бы одно из указанных ниже условий.

Чтобы обеспечить расшифровку клиентских зашифрованных сообщений с помощью сертификатов S/MIME, вы можете:

  • немедленно расшифровывать сообщения, экспортированные из Сейфа, пока сертификаты доступны;
  • экспортировать сообщения с помощью инструмента "Экспорт данных" (при этом включаются сертификаты всех пользователей).

Как создать файл конфигурации

Утилита decrypter использует OAuth и вашего поставщика идентификационной информации для получения учетных данных аутентификации, которые decrypter включает во все запросы KACLS privilegedunwrap и privilegedprivatekeydecrypt. Ваша конфигурация OAuth не будет часто меняться, поэтому вы можете создать файл конфигурации (config) со своими настройками OAuth, чтобы не задавать их при каждом запуске decrypter. Подробные сведения можно найти в разделах Параметры для создания файла конфигурации и Параметры для обновления файла конфигурации ниже.

Примечание. Хотя этот этап настройки необязателен, рекомендуем выполнять его, чтобы упростить работу с утилитой decrypter. Если вы не создадите файл конфигурации, вы можете передавать параметры OAuth в командной строке при каждом запуске decrypter. Если вы сделаете и то и другое, значения параметров, переданные в командной строке, переопределят значения, считанные из файла конфигурации.

Пример. Создание конфигурации для поставщика идентификационной информации Google

На устройстве с Windows

В macOS или Linux

Теперь эту конфигурацию можно обновить, добавив секретный код клиента OAuth, чтобы получить код авторизации.

На устройстве с Windows

В macOS или Linux

Если ваш поставщик идентификационной информации – не Google, не добавляйте секретный ключ клиента. Он нужен только поставщику идентификационной информации Google. Многие другие поставщики идентификационной информации будут отклонять запросы на аутентификацию при наличии секретного ключа клиента.

Как расшифровывать зашифрованные на стороне клиента файлы и электронные письма

Утилита decrypter работает с разархивированными экспортированными файлами.

  1. После создания экспорта в инструменте "Экспорт данных" или Google Сейфе скачайте ZIP-файлы на локальный компьютер.
  2. Разархивируйте файлы в локальный каталог или папку.
  3. Запустите decrypter для разархивированных файлов и сохраните расшифрованные файлы с открытым текстом в другом каталоге.

Пример: использование подготовленного файла конфигурации без учетных данных сервисного аккаунта

На устройстве с Windows

В macOS или Linux

Пример: использование подготовленного файла конфигурации с учетными данными сервисного аккаунта

На устройстве с Windows

В macOS или Linux

Пример: не используется ни файл конфигурации, ни учетные данные сервисного аккаунта

На устройстве с Windows

В macOS или Linux

Параметры decrypter

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

-help

--help

Примечание. Можно использовать только дефисы. Косая черта (/) не применяется.

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

-action=decrypt

-action decrypt

Параметры справки

Параметр Описание
-version Выводит строку с номером версии для используемой утилиты. Его необходимо указывать при обращении в службу поддержки.
-help Выводит список всех параметров для справки.
-logfile Указывает файл выходных данных, куда будут записываться журналы выполнения. Текст [TIMESTAMP] в имени файла будет заменен на время начала выполнения.

Параметры расшифровки

Параметр Описание
-action decrypt Необязателен. Показывает, что утилита запускается в режиме расшифровки файлов, зашифрованных на стороне клиента. Это значение по умолчанию.
-email <email_address> Необязателен. Адрес электронной почты, который может быть автоматически указан на экране аутентификации у поставщика идентификационной информации в браузере.
-issuer <uri> Обязательный параметр (если он не указан в файле конфигурации). URI обнаружения поставщика OAuth для поставщика идентификационной информации, например https://accounts.google.com. Подробнее о том, как установить подключение к поставщику идентификационной информации для шифрования на стороне клиента…
-client_id <oauth_client_id> Обязательный параметр (если он не указан в файле конфигурации). Идентификатор клиента OAuth для поставщика идентификационной информации, который указан с помощью параметра -issuer. Подробнее о том, как установить подключение к поставщику идентификационной информации для клиентского шифрования…
-client_secret <oauth_client_secret> Необязательный параметр (может требоваться для некоторых поставщиков идентификационной информации). Секретный код клиента OAuth. Этот код соответствует идентификатору клиента, указанному с помощью параметра -client_id.
-pkce
-nopkce
Включает или отключает механизм PKCE (Proof Key for Code Exchange) при получении кода авторизации. Если ни один из этих параметров не указан, по умолчанию механизм PKCE включен.
-input <directory_or_file>

Это обязательное поле. Каталог входных данных или файл экспорта.

Если указан каталог, то инструмент будет рекурсивно обходить дерево папок, чтобы найти все экспортированные файлы, зашифрованные на стороне клиента. Этот параметр позволяет выполнять массовую расшифровку всех файлов из развернутого архива экспорта.

Если указан один экспортированный файл, зашифрованный на стороне клиента, то будет расшифрован только этот файл. Если указан файл другого типа, то инструмент предложит вам пройти аутентификацию у поставщика идентификационной информации, но не будет выполнять расшифровку.

-output <directory> Это обязательное поле. Каталог, где будут сохраняться расшифрованные файлы.
-overwrite
-nooverwrite
Включает или отключает перезапись существующих расшифрованных выходных файлов с открытым текстом. Когда перезапись отключена (это значение по умолчанию), утилита не будет расшифровывать файлы с зашифрованным текстом, если файл с открытым текстом уже существует.
-workers <integer>

Необязателен. Число параллельных процессов расшифровки. Если этот параметр не задан, инструмент по умолчанию использует число ядер процессора и гиперпотоков, указанное операционной системой.

Если при расшифровке файлов возникают проблемы с производительностью компьютера или ошибки, связанные с мультипроцессорной обработкой данных, можно задать для этого параметра значение 1 (не использовать параллельную обработку).

-config <file>

Необязателен. Файл конфигурации с сохраненными значениями аргументов. Используйте его, чтобы не указывать одни и те же параметры командной строки каждый раз при запуске утилиты для расшифровки файлов. Подробные сведения можно найти в разделах Параметры для создания файла конфигурации и Параметры для обновления файла конфигурации.

Значения параметров, заданные в командной строке, имеют приоритет над значениями из файла конфигурации.

Примечание. Если в параметре config указан файл, который не удалось найти, будет показано сообщение об ошибке.

-credential <file> Необязателен. Укажите JSON-файл, содержащий закрытый ключ сервисного аккаунта в вашем домене. В этом случае при расшифровке писем Gmail, зашифрованных на стороне клиента, в Gmail API будет направлен запрос на предоставление сертификата S/MIME и метаданных списка контроля доступа к ключам сервиса для каждого из пользователей.

Параметры для создания файла конфигурации

Эти параметры позволяют сохранить аргументы командной строки утилиты в файле конфигурации для повторного использования. Такой файл создается в формате JSON (с удобочитаемым текстом).

Параметр Описание
-action createconfig Это обязательное поле. Вместо режима выполнения (который используется по умолчанию) будет включен режим создания файла конфигурации.
-config file Это обязательное поле. Укажите имя выходного файла с конфигурацией. Если файл с таким именем уже существует, он будет перезаписан без предварительного уведомления.
-email <email_address>
-discovery_uri <uri>
-client_id <oauth_client_id>
-client_secret <oauth_client_secret>
-pkce
-nopkce
Необязателен. Все указанные значения аргументов будут записаны в файл конфигурации для повторного использования.

Параметры для обновления файла конфигурации

Эти параметры позволяют обновить любые значения аргументов в файле конфигурации.

Флаг Описание
-action updateconfig Это обязательное поле. Вместо режима выполнения (который используется по умолчанию) будет включен режим изменения файла конфигурации.
-config file Это обязательное поле. Файл конфигурации, который необходимо обновить. Если такого файла не существует, появится сообщение об ошибке.
-email <email_address>
-discovery_uri <uri>
-client_id <oauth_client_id>
-client_secret <oauth_client_secret>
-pkce
-nopkce

Все параметры необязательные. Значения аргументов, указанных в командной строке, будут перезаписаны, а все остальные значения в файле конфигурации останутся как есть. Чтобы отменить сохраненный параметр, укажите для него пустое значение.

Примечание. Если при обновлении JSON-файла возникает ошибка, скорее всего, она возникнет и при попытке использовать эту конфигурацию при расшифровке.

Информационные флаги

Используйте эти флаги, когда нужно распечатать понятные сведения о файле, зашифрованном на стороне клиента.

Параметр Описание
-action info (Обязательный) Переопределяет стандартный режим выполнения, чтобы оно осуществлялось в информационном режиме.
-input directory_or_file

(Обязательный) Определяет входной каталог или файл экспорта.

Если указать каталог, утилита рекурсивно просканирует все дерево каталога в поиске всех файлов экспорта, зашифрованных на стороне клиента. Если же указать файл, утилита выдаст информацию только об этом файле.

Этот параметр можно повторять, указывая дополнительные входные каталоги и файлы. Пример:

$ decrypter -action=info -input=file1.gcse -input=file2.gcse -input=file3.gcse