エクスポートされたクライアントサイド暗号化ファイルやメールを復号する

組織で Google Workspace クライアントサイド暗号化(CSE)を使用している場合は、データ エクスポート ツールまたは Google Vault を使用して書き出したクライアントサイド暗号化ファイルやメールを、復号ツールで復号できます。復号ツールはコマンドラインから実行できます。

復号ツールを実行するときに、コマンドライン フラグを使用して、ID プロバイダ(IdP)認証情報、暗号化されたファイルのロケーション、復号したファイルの出力先ロケーション、その他のオプションを指定します。構成(config)ファイルを作成して、よく使う復号フラグを保存することもできます。

始める前に

  • Google ドキュメント、スプレッドシート、スライドのファイルを復号すると、ファイル名の末尾は .gdoczip などになります。復号したファイルは、ファイル変換ツールを使用して Microsoft Office 形式に変換できます。詳しくは、エクスポートして復号した Google ファイルを Microsoft Office ファイルに変換するをご覧ください。
  • Google Vault から Gmail CSE メッセージをエクスポートする場合は、MBOX 形式でエクスポートする必要があります。復号ツールは PST 形式のエクスポートを処理できません。
  • 復号ユーティリティは、S/MIME 証明書を使用して暗号化されたメッセージを復号できます。また、ユーザーがメッセージやスレッド内の元のメッセージを暗号化した場合は、S/MIME 証明書なしで暗号化されたメッセージ(つまり、Gmail のエンドツーエンドの暗号化(E2EE)を使用したメッセージ)を復号することもできます。
  • 復号ユーティリティでは、別の組織で S/MIME 証明書(Gmail E2EE)を使用せずに暗号化されたメール(スレッド内のすべてのメールを含む)を復号できません

システム要件

  • Microsoft Windows 10 または 11(64 ビット版)
  • macOS 12(Monterey)以降。Apple プロセッサと Intel プロセッサの両方がサポートされています。
  • Linux x86_64。

復号ツールをダウンロードする

  • Windows(.zip ファイル)
  • macOS(.dmg ファイル)
  • Linux(.tgz ファイル)

アーカイブまたはボリュームを開き、復号ツール実行可能ファイルをローカル ディレクトリまたはフォルダに抽出します。

鍵サービス アクセスを構成する

復号ツールは、暗号鍵サービス(鍵アクセス制御リスト サービス(KACLS)とも呼ばれます)にクエリを送信します。このサービスは、エクスポート内の暗号化された各ファイルやメッセージを保護します。ID プロバイダ(IdP)の管理者と暗号鍵サービスの管理者に、KACLS が受け入れる認証情報を確認してください。認証情報がない場合、KACLS は、エクスポートされたコンテンツを復号しようとする復号ツールの試みを拒否します。

必要なもの

KACLS アクセスを構成するには、次のものが必要です。

  • インストールされているアプリケーションで使用できる OAuth クライアント ID。復号ツールのクライアント ID は、インストールされているデスクトップ ソフトウェアで使用可能であり、かつ復号ユーティリティに固有のものである必要があります。このクライアント ID は、CSE ウェブ アプリケーション、デスクトップ アプリケーション、モバイル アプリケーション用に Google 管理コンソールで設定されているクライアント ID とは異なるクライアント ID である必要があります
  • IdP が Google の場合は、クライアント ID に関連付けられた OAuth クライアント シークレット。サードパーティの IdP を使用している場合は、クライアント シークレットは必要ありません。
  • エクスポートの復号のために KACLS に対して認証を行うユーザー アカウントのメールアドレス。これは、ご自身のアカウントでも、管理者が設定した特別なアカウントでもかまいません。復号ユーティリティを実行する際にこのユーザーとしてログインする必要があるため、アカウントのパスワードが必要になる可能性があります。

KACLS エンドポイント

エクスポートの復号に使用されるエンドポイントがユーザー アカウントとクライアント ID によって呼び出せるように KACLS を構成する必要があります。通常、この設定は KACLS 管理者が行います。復号ツールによって呼び出される KACLS エンドポイントは、暗号化されたコンテンツのタイプによって異なります。

  • カレンダーの CSE: privilegedunwrap
  • ドキュメントの CSE、スプレッドシートの CSE、スライドの CSE: privilegedunwrap
  • ドライブの CSE: privilegedunwrap
  • Gmail の CSE(S/MIME 証明書あり): privilegedprivatekeydecrypt
  • Gmail の CSE(S/MIME 証明書なし): privilegedunwrap

Gmail の S/MIME アクセスを設定する(省略可)

Google Vault からエクスポートした、S/MIME を使用してクライアントサイド暗号化が適用された Gmail のメールを復号する場合、復号ツールは Gmail の公開 API を呼び出して追加データをダウンロードする必要があります。Google Vault のエクスポートには各ユーザーの S/MIME 証明書が含まれないため、復号ツールは必要に応じて S/MIME 証明書を Gmail から自動的に取得します。

復号ツールが組織内のあらゆるユーザーの S/MIME 証明書をリクエストできるようにするには、ドメイン全体のサービス アカウント認証情報を復号ツールに渡す必要があります。このサービス アカウントの設定と、サービス アカウントの秘密鍵を含む JSON ファイルの作成について詳しくは、Gmail のみ: クライアントサイド暗号化用に S/MIME を構成するをご覧ください。

注: データ エクスポート ツールからエクスポートしたクライアントサイド暗号化が適用されたメッセージを復号する場合や、Vault からエクスポートした S/MIME 証明書なしで暗号化されたメッセージを復号する場合は、この設定は必要ありません。

復号ツールでは、次のいずれかの条件に該当する場合、ユーザーの S/MIME 証明書を取得できないため、S/MIME を使用してクライアントサイド暗号化が適用されたメールを復号できません。

S/MIME 証明書を使用してクライアントサイド暗号化が適用されたメッセージを確実に復号できるためには、次の操作を行います。

  • 証明書が有効な間に、Vault からエクスポートされたメッセージをすぐに復号する。
  • データ エクスポート ツールを使用してメッセージをエクスポートする。このエクスポートには各ユーザーの証明書が含まれます。

はじめに構成ファイルを作成する

復号ツールは、OAuth と IdP を使用して認証情報を取得し、すべての KACLS privilegedunwrap リクエストと privilegedprivatekeydecrypt リクエストに含めます。OAuth の設定は頻繁に変更されないため、OAuth の設定を含む構成(config)ファイルを作成して、復号ツールを実行するたびに設定する必要がないようにすることができます。構成ファイルのフラグについて詳しくは、以下の構成作成フラグ構成更新フラグをご覧ください。

注: この設定手順は省略可能ですが、復号ユーティリティの使用を簡素化するために推奨されます。構成ファイルを作成しなくても、コマンドラインで OAuth フラグを復号ツールのすべての実行に渡すことができます。両方を行った場合、コマンドラインで渡されたフラグの値が構成ファイルから読み取られた値をオーバーライドします。

例: Google IdP の構成ファイルを作成する

Windows の場合

macOS または Linux の場合

構成を更新して、認証コード付与フローで OAuth クライアント シークレットを追加できるようになりました。

Windows の場合

macOS または Linux の場合

IdP が Google ではない場合: Google IdP でのみ必要なクライアント シークレットを追加しないでください。他の多くの IdP は、クライアント シークレットが存在する場合、認証リクエストを拒否します。

CSE ファイルやメールを復号する

復号ユーティリティは、解凍されたエクスポート ファイルに対して動作します。

  1. データ エクスポート ツールまたは Google Vault で書き出しを作成したら、ZIP ファイルをローカル パソコンにダウンロードします。
  2. ファイルをローカル ディレクトリまたはフォルダに解凍します。
  3. 解凍したファイルに対して復号ツールを実行し、復号されたプレーン テキスト ファイルを別のディレクトリに保存します。

例: サービス アカウントの認証情報を含まない準備済みの構成ファイルを使用する

Windows の場合

macOS または Linux の場合

例: サービス アカウントの認証情報を含む準備済みの構成ファイルを使用する

Windows の場合

macOS または Linux の場合

例: 構成ファイルもサービス アカウントの認証情報も使用しない

Windows の場合

macOS または Linux の場合

復号フラグ

復号フラグには、先頭に 1 つまたは 2 つのハイフンを含めることができます。たとえばヘルプ情報を表示するフラグの場合、次のどちらでも使用できます。

-help

--help

注: フラグに使用できるのはハイフンのみです。スラッシュ(/)は使用できません。

文字列引数のフラグの場合、等号またはスペースを使用して引数を指定できます。たとえば、次のフラグは同じ意味になります。

-action=decrypt

-action decrypt

ヘルプフラグ

フラグ 説明
-version バージョン文字列を出力します。サポートにお問い合わせいただく際は、お使いの復号ツールのバージョンをお知らせください。
-help 参照用にすべてのフラグの画面を出力します。
-logfile 実行ログが書き込まれる出力ファイルを指定します。ファイル名のテキスト [TIMESTAMP] は実行開始時間に置き換えられます。

復号フラグ

フラグ 説明
-action decrypt 省略可。ユーティリティのモードとして、CSE ファイルの復号を指定します。これがデフォルト モードです。
-email <email_address> 省略可。ブラウザで開く IdP 認証画面に事前入力されるメールアドレスです。
-issuer <uri> 構成ファイルに含まれない場合は必須。IdP の OAuth 発行者検出 URI(https://accounts.google.com など)です。詳しくは、クライアントサイド暗号化で使用する ID プロバイダに接続するをご覧ください。
-client_id <oauth_client_id> 構成ファイルに含まれない場合は必須。-issuer フラグで指定された IdP から取得した OAuth クライアント ID。詳しくは、クライアントサイド暗号化に必要な ID プロバイダに接続するをご覧ください。
-client_secret <oauth_client_secret> 省略可能ですが、IdP によっては必須の場合あり。-client_id フラグで指定されたクライアント ID に対応する OAuth クライアント シークレットの部分です。
-pkce
-nopkce
認証コードの付与フローで PKCE(Proof Key for Code Exchange)を有効または無効にします。どちらのフラグも指定されていない場合、復号化がデフォルトで有効になります。
-input <directory_or_file>

必須。入力ディレクトリまたはエクスポート ファイル。

ディレクトリを指定すると、復号ツールはディレクトリ ツリー全体を再帰的に走査し、エクスポートされたすべての CSE ファイルを探します。このオプションを使用して、拡張したエクスポート アーカイブからエクスポートされたファイルをすべて一括で復号します。

エクスポートされた CSE ファイルを 1 つ指定すると、復号ツールがそのファイルだけを復号します。指定したファイルが CSE ファイルではない場合、復号ツールによって IdP への認証が要求されますが、ファイルの復号は行われません。

-output <directory> 必須。復号されたファイルが保存されるディレクトリ。
-overwrite
-nooverwrite
既存の復号されたクリアテキスト出力ファイルの上書きを有効または無効にします。無効(デフォルト)になっていて、クリアテキスト ファイルがすでに存在する場合、復号ツールは暗号テキスト ファイルの復号をスキップします。
-workers <integer>

省略可。並列復号ワーカーの数。このフラグを使用しない場合、オペレーティング システムによって報告されたプロセッサコアとハイパースレッドの数が復号ツールのデフォルトの値になります。

ファイルの復号時にコンピュータでパフォーマンスの問題が発生したり、マルチ処理エラーが発生したりする場合は、このフラグを 1 に設定して、並列処理を無効にしてください。

-config <file>

省略可。保存されているフラグの値を含む構成ファイルです。構成ファイルを使用することで、ファイルを復号するたびに同じコマンドライン フラグを貼り付けなくても済むようにします。詳細については、以下の構成作成フラグ構成更新フラグをご覧ください。

コマンドラインで設定したフラグの値は、構成の値よりも優先されます。

注: 構成で指定したファイルが見つからない場合は、エラーが発生します。

-credential <file> 省略可。ドメイン全体のサービス アカウントの秘密鍵を含む JSON ファイルを指定します。指定した場合、Gmail CSE メールの復号により、各ユーザーの S/MIME 証明書と鍵アクセス制御リストサービス(KACLS)のメタデータに対して Gmail API にクエリが実行されます。

構成作成フラグ

これらのフラグを使用して、使用頻度の高い復号コマンドライン フラグを構成ファイルに保存して再使用できるようにします。構成ファイルは 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 形式が破損した場合、復号ツールで構成を使用するときにエラーが発生する可能性があります。

情報フラグ

これらのフラグを使用して、CSE ファイルに関する読み取り可能な情報を出力します。

フラグ 説明
-action info (必須)情報モードで実行するデフォルトの実行モードをオーバーライドします
-input directory_or_file

(必須)入力ディレクトリまたはエクスポート ファイルを指定します

ディレクトリを指定すると、ユーティリティはディレクトリ ツリー全体を再帰的にスキャンし、すべての CSE エクスポート ファイルを探します。ファイルを指定すると、ユーティリティはそのファイルのみに関する情報を出力します。

このフラグを繰り返すことで、追加の入力ディレクトリやファイルを指定できます。例:

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