Gmail のみ: クライアントサイド暗号化で使用する暗号鍵をアップロードする

サポート対象エディション: Enterprise Plus、Education Standard、Education Plus。 エディションの比較

Gmail で Google Workspace クライアントサイド暗号化(CSE)を使用するには、Gmail API を有効にして、組織全体にアクセスできるようにする必要があります。次に、各ユーザーについて、Gmail API を使用して S/MIME(Secure/Multipurpose Internet Mail Extensions)証明書(公開鍵)と秘密鍵メタデータを Gmail にアップロードする必要があります。暗号鍵サービスを使用している場合は、鍵サービスを使用してユーザーの秘密鍵のメタデータを暗号化(「ラップ」)する必要もあります。

新しい S/MIME 証明書と新しいサービスで暗号化された秘密鍵のメタデータをアップロードすることで、いつでも別の鍵サービスに切り替えることができます。

S/MIME について

S/MIME は、メールの整合性とセキュリティを確保するためにメールをデジタル署名して暗号化する業界標準プロトコルで、広く採用されています。Gmail CSE は S/MIME 3.2 IETF 規格に従ってセキュアな MIME データを送受信します。S/MIME では、メールの送信者と受信者は各 X.509 証明書が Gmail による信頼を得られるようにする必要があります。

注: もしくは、CSE が提供する追加の暗号化やプライバシー レイヤなしで S/MIME を使用することもできます。この方法は、データが Google のサーバーによって CSE で復号されても構わない場合にのみ採用してください。 詳しくは、ホスト型 S/MIME を有効にしてメールを暗号化するをご覧ください。

始める前に

以下の手順が完了していることを確認します。

  1. 鍵サービスを 1 つ選択します
  2. ご利用の ID プロバイダ(IdP)に接続します
  3. 外部鍵サービスまたはハードウェア キー暗号化を設定します。
  4. 組織部門またはグループに鍵サービスまたはハードウェア キー暗号化を割り当てます。

    複数の鍵サービスを使用している場合は、それぞれのサービスが適切な組織部門または設定グループに割り当てられていることを確認します。

Gmail API を設定する

注: API の使用にはプログラミングの知識が必要です。

セクションを開く  |  すべて閉じる

手順 1: Gmail API を有効にする
  1. 新しい GCP プロジェクトを作成します。詳しくは、プロジェクトの作成と管理をご覧ください。

    プロジェクト ID をメモする: API ドメイン全体へのアクセス権を付与する際にこれを使用することになります。

  2. Google API Console にアクセスし、新しいプロジェクトに対して Gmail API を有効にします。詳しくは、Google Cloud プロジェクトでの API の有効化をご覧ください。
手順 2: ドメイン全体のサービス アカウントを作成する
  1. Google Cloud コンソールで [サービス アカウント] ページに移動し、ドメイン全体のサービス アカウントを作成します。詳しくは、サービス アカウントの作成と管理をご覧ください。
  2. サービス アカウントの秘密鍵を作成して、ローカル システムの JSON ファイル(svc_acct_creds.json)に保存します。このファイルには、ユーザー向けに Gmail を設定するときに使用する認証情報が含まれています。詳しくは、サービス アカウント キーの作成と管理をご覧ください。
手順 3: Gmail API にドメイン全体へのアクセス権を付与する

ここでは、作成したサービス アカウントを使用してすべてのユーザーに対する Gmail API の編集権限を付与します。

  1. API アクセスをドメイン全体の委任で制御するの手順を実施します。
  2. プロンプトが表示されたら、次のように入力します。

    クライアント ID: 前述の手順 2 で作成したサービス アカウントのクライアント ID。

    OAuth スコープ: gmail.settings.readonly および gmail.settings.basicgmail.settings.sharing のいずれか

ユーザーに対して Gmail CSE をオンにする

組織部門またはグループに対して Gmail の CSE をオンにします。詳しくは、クライアントサイド暗号化をオンまたはオフにするをご覧ください。

注: 組織部門に対しては、すべてのメール(作成、返信、転送)をデフォルトで暗号化するよう設定できます。その場合でも、必要に応じてユーザー自身で暗号化をオフにできます。Requires having the Assured Controls or Assured Controls Plus add-on. 

ユーザーの CSE S/MIME 証明書を設定する

Gmail API を設定し、管理コンソールでユーザーに対して Gmail CSE を有効にしたら、ユーザーに対して CSE S/MIME 証明書と秘密鍵メタデータを設定できます。

セクションを開く  |  すべて閉じる

手順 1: S/MIME 証明書と秘密鍵のメタデータを準備する

Gmail CSE を使用してメールを送受信するユーザーごとに、次の操作を行います。

認証局(CA)を使用して、証明書チェーンと S/MIME の公開鍵/秘密鍵のペアを生成します。S/MIME リーフ証明書には、サブジェクト名または SAN 拡張機能のサブジェクトとして、ユーザーのメインの Gmail アドレスを含める必要があります。

次のいずれかの方法を使用できます。

  • Google の信頼を得ている CA ルート証明書を使用する: ルート証明書のリストについては、Gmail for S/MIME による信頼を得ている CA 証明書をご覧ください。
  • Google の信頼を得ていない CA を使用する: たとえば、独自の CA を使用する場合は、管理コンソールでそのルート証明書を追加します。詳しくは、S/MIME の信頼できる証明書を管理するをご覧ください。

    注: Google の信頼を得ていない CA を使用し、ユーザーがクライアントサイド暗号化を適用したメールを組織外に送信する場合、受信者もその CA を信頼する必要があります。

手順 2: 証明書と秘密鍵のメタデータをラップする

鍵サービスを使用して S/MIME 秘密鍵のメタデータを暗号化または「ラップ」します。鍵サービスにこの作業を依頼するか、所定の手順に沿って操作してください。

ハードウェア キー暗号化を使用している場合 - この手順をスキップし、ハードウェア キー暗号化を使用するユーザーの秘密鍵のメタデータをラップしないでください。この場合、メタデータをラップする必要はありません。Gmail 向けのユーザーの秘密鍵はスマートカードに保存されているからです。   Requires having the Assured Controls or Assured Controls Plus add-on.

手順 3: ユーザーの S/MIME 証明書と秘密鍵のメタデータを Gmail にアップロードする

Gmail API を使用して、各ユーザーの公開鍵 S/MIME 証明書チェーンと秘密鍵のメタデータを Gmail にアップロードし、ID を作成して各ユーザーが優先する鍵として設定する必要があります。

認証用にドメイン全体のサービス アカウントを作成したときにダウンロードした秘密鍵ファイルを使用して、ユーザーごとに次の手順を実施します。

  1. Gmail API 呼び出し keypairs.create を使用して、証明書チェーンと秘密鍵メタデータをアップロードします。
  2. Gmail API 呼び出し identities.create を使用して、ユーザーのメインのメールアドレスの鍵ペアを有効にします

    identities.create 呼び出しには、keypairs.create 呼び出しのレスポンス本文で返される鍵ペア ID が必要です。

    注: ユーザーのメールアドレスの鍵ペアを有効にするには:

    • ユーザーのアカウントからメールを送信する権限のある CSE ID を作成します。
    • 送信する CSE メールの署名に秘密鍵のメタデータを使用するよう Gmail を構成します。
    • 証明書を共有されたドメイン全体のリポジトリに公開し、組織内の他の CSE ユーザーがこのユーザーに送信されるメッセージを暗号化できるようにします。

これらの手順を完了するには、Gmail API とやり取りを行うスクリプトを使用します。次のいずれかの方法を使用できます。

証明書のアップロード後、Gmail で証明書を利用できるようになるまでには最長で 24 時間ほどかかることがありますが、通常はそれほど時間はかかりません。

(省略可)Google の Python サンプル スクリプトを使用してユーザーの証明書とラップされた秘密鍵を Gmail にアップロードする

上記の手順 3 を完了するには、独自のスクリプトを作成する代わりに、Google が提供する Python スクリプトを使用することも可能です。

注: このスクリプトでは、Gmail API にドメイン全体へのアクセス権を付与するために使用できる 3 つのスコープ(このページの上部に記載)である gmail.settings.readonlygmail.settings.basicgmail.settings.sharing をリクエストします。スクリプトを使用するには、3 つのスコープをすべて有効にするか、使用していないスコープをスクリプトから削除してください。

スクリプトをダウンロードする

Python スクリプト パッケージ(.zip)をパソコン(Mac、Linux、Windows)にダウンロードし、ファイルを作業ディレクトリに展開します。

仮想環境を作成してモジュールをインストールする

作業ディレクトリでコマンドラインを使用して、次のコマンドを入力します。

python3 -m venv cli_env
source cli_env/bin/activate
pip install -r requirements.txt

スクリプトを起動する

python cse_cmd.py -h

ユーザーの証明書と鍵をアップロードする

手順 1: ラップされたすべての秘密鍵を保存するディレクトリを作成する

  • たとえば、$root/wrap_keys ディレクトリを作成するとします。
  • ラップされた各秘密鍵のファイル名は、ユーザーの完全なメールアドレスに .wrap 拡張子をつけたものにする必要があります(例: $root/wrapped_keys/[email protected])。
  • ラップされた秘密鍵ファイルに、次の 2 つの必須項目を含む JSON オブジェクトがあることを確認します。

{       'kacls_url': '管理コンソールで設定された鍵サービスの URL',
      'wrap_private_key': 'ラップされた秘密鍵(バイト表示)'
    }

手順 2: すべての証明書を保存するためのディレクトリを作成する

  • 証明書は P7 PEM 形式にする必要があるため、$root/p7pem_certs ディレクトリを作成します。
  • 証明書ファイルに、ルート認証局(CA)へのチェーン全体が含まれていることを確認します。
  • 各証明書のファイル名は、ユーザーの完全なメールアドレスに .p7pem 拡張子をつけたものにする必要があります(例: $root/p7pem_certs/[email protected])。

P7B ファイルがある場合: 次の openssl コメントを使用して、P7 PEM 形式に変換できます。

openssl pkcs7 -inform DER -in {old_name.p7b} -outform PEM -out {new_name.p7pem}

手順 3: ユーザーの鍵ペアと ID をアップロードする

この手順を行うには、上記の手順 2: サービス アカウントを作成するでパソコンに保存した、サービス アカウントの認証情報が含まれる JSON ファイルが必要です。

ユーザーの鍵ペアと ID をアップロードする最も簡単な方法は、insert コマンドを実行することです。各コマンドには引数が必要です。次に例を示します。

python cse_cmd.py insert
      --creds $root/svc_acct_creds.json
      --inkeydir $root/wrapped_keys
      --incertdir $root/p7pem_certs

または、ユーザーごとに次の操作を行います。

  1. insert_keypair を実行し、鍵ペア ID をメモします。
  2. その鍵ペア ID を使用して insert_identity を実行します。

鍵ペア ID は、list_keypair コマンドを実行して取得することもできます。

手順 4: ユーザーが CSE の鍵ペアと ID を持っていることを確認する

各ユーザーに対して次のコマンドを実行し、ユーザーが Gmail で有効な鍵ペアと ID を持っていることを確認します。

list_keypair

list_identity

Gmail CSE の鍵サービスを別のサービスに切り替える

Gmail CSE の鍵サービスを別のサービスに切り替える場合は、前述のユーザーに対して Gmail CSE を設定するの手順 2 と 3 を繰り返して、新しい鍵サービスを使用して秘密鍵をラップします。

注: ユーザーの新しい証明書をアップロードしても、コンテンツが新しい鍵サービスに移行されるわけではありません。ただし、以前の鍵で暗号化されたメールと、以前の鍵サービスでラップされた秘密鍵のメタデータには、引き続きアクセスできます。

クライアントサイド暗号化が適用されたメールとして Gmail にメールを移行する

Gmail CSE が設定されたので、必要に応じてメッセージをインポートできます。詳しくは、クライアントサイド暗号化が適用されたメールとして Gmail にメールを移行するをご覧ください。

この情報は役に立ちましたか?

改善できる点がありましたらお聞かせください。
true
14 日間の無料試用を今すぐ開始してください

ビジネス向けのメール、オンライン ストレージ、共有カレンダー、ビデオ会議、その他多数の機能を搭載。G Suite の無料試用を今すぐ開始してください。

検索
検索をクリア
検索を終了
Google アプリ
メインメニュー
1159741745706024418
true
ヘルプセンターを検索
true
true
true
true
true
73010
false
false