Shield Platform Encryption の使用開始
学習の目的
この単元を完了すると、次のことができるようになります。
- Shield Platform Encryption での鍵素材の種別を特定する。
- プライマリ秘密、テナントの秘密、ルート鍵、データ暗号化鍵、Salt キー、初期化ベクトルの関係を説明する。
- 鍵派生関数の構成要素を特定する。
- 確率的暗号化と確定的暗号化の違いを説明する。
セキュリティレビューに向けた準備
Zephyrus は、小規模の企業であり、母国から外国へ異動する企業従業員向けの全般的なリロケーションサービスを提供しています。同社は、従業員のビザ取得、住居探し、学校探し、語学研修の手配、新しい文化への順応などをサポートしています。つまり、Zephyrus は多くの個人情報、時には機密性の高い顧客情報を扱っているということです。

Carolyn、Calvin、Ernesto が会社の最近の業績とデータセキュリティについて話し合います。まず、CEO の Carolyn は、データの追跡とバックアップおよび復旧に関する顧客の信頼を強調しました。これは良い知らせです。IT 部門長の Ernesto は、最近のセキュリティレビューで特に静止データに対して特定されたデータ脆弱性についての懸念を示します。Carolyn は、会社の現在の暗号化方法についてさらに詳しく調べることを提案します。Salesforce システム管理者の Calvin は、Zephyrus では Salesforce の従来の暗号化を使用しており、特定の機密項目に対して 128 ビット暗号化を提供していると説明します。それに対して Ernesto は、セキュリティレビューでは 256 ビット暗号化へのアップグレードと、より優れた鍵管理が推奨されていると指摘します。
そして Calvin は、Shield Platform Encryption が多くの有用な機能を提供していることを説明します。
- 256 ビットの暗号化強度
- トランザクション型データベースの完全暗号化
- より詳細な保護を可能にする項目レベルの暗号化 (FLE)
- データソースを保護するための Data 360 向けのプラットフォームの暗号化
- 機密データ項目に対するクエリの脆弱性を解消する検索インデックスの暗号化
- データベース内に保存されていない項目に対するファイルと添付ファイルの暗号化
- 変更やイベントの目的で Salesforce が取得するデータを保護するイベントバスデータの暗号化
Shield Platform Encryption には暗号化鍵を独自に管理するためのオプションもあります。Carolyn は Ernesto に Shield Platform Encryption をさらに詳しく調査するよう指示し、Calvin には Shield Platform Encryption の要件とリリースプロセスを調べるよう依頼します。
さまざまな暗号化鍵素材について学ぶ
Ernesto はテクノロジーを深く調べるのが大好きです。彼は Shield Platform Encryption が複数の異なるコンポーネントを使用していることをすぐに理解します。
Shield Platform Encryption の特徴の 1 つは、データ暗号化鍵 (DEK) がプレーンテキストのままディスクに保存されないことです。DEK は鍵派生関数 (KDF) によって生成されます。あるいは、Salesforce や外部関数によって直接生成することもできます。項目レベルの暗号化の鍵のように KDF によって生成された DEK は暗号化鍵キャッシュにのみ存在します。キャッシュ内の DEK はすぐに期限切れとなり、次に必要になるまでキャッシュから削除されます。
検索のように直接生成された DEK は TenantSecret テーブルに保存されます。ただし、それらはルート鍵によってラップ (二重に暗号化) されており、暗号化鍵キャッシュに配置されるときにのみラップ解除されます。
Ernesto は KDF がお気に入りです。複数の鍵コンポーネントと KDF によってセキュリティが強化されるためです。また、ルート鍵を使用して DEK をラップすることも、外部鍵管理サービスとの互換性があります。
確率的暗号化と確定的暗号化の違い
次に Ernesto は利用可能な暗号化の種別を調べます。項目暗号化では、Salesforce は確率的暗号化と確定的暗号化の 2 つの暗号方式を提供しています。
確率的暗号化では、初期化ベクトル (IV) がランダムに生成され、暗号化関数の一部として送信されます。ランダムな IV を追加することで、プレーンテキストが変わっていなくても、暗号化するたびに異なる暗号化テキストが生成されます。これは非常に安全ですが、絞り込み操作など、一部の機能が失われる可能性があります。
その代替として、確定的暗号化を選択できます。ランダムな IV の代わりに、項目固有の静的な IV が使用されます。この IV は変わらないため、より多くの機能を利用できます。ただし IV が変わらないため、プレーンテキストが変わらなければ、毎回同じ暗号化テキストが生成されます。そのため、やや安全性が低くなります。
Ernesto は、まず確率的暗号化を推奨し、テストグループに試してもらい、パフォーマンスと操作性の変化についてフィードバックを得ることにしました。
外部管理鍵の機能を確認する
Ernesto は、ルート鍵やテナントの秘密といった Salesforce アプリケーション内で生成される鍵素材が、デフォルトでは Salesforce データベースに保存されることを知ります。今すぐ必須ではないものの、将来的には暗号化鍵素材を自社で管理する必要があることを Ernesto は理解しています。Salesforce に複数の鍵管理オプションがあることを知り、彼は安心します。
-
外部鍵管理 (EKM) を利用すると、外部の KMS を秘密の管理者として使用できます。Zephyrus はすでにほかのセキュリティ機能に AWS KMS を使用しているため、容易な選択肢だと言えます。
-
Bring Your Own Key (BYOK) を利用すると、任意の安全な鍵サービスで生成または保存された鍵素材を秘密のソースとして使用できます。
-
キャッシュのみの鍵 (CoK) は特別な機能で、KDF を経由せずに、BYOK の DEK を暗号化鍵キャッシュに直接挿入できます。
EKM、BYOK、CoK の各機能を使用するには、AES-256 ビット鍵を提供する必要があります。これらは、選択した機能 (FLE、Data 360 向け Platform Encryption など) に応じて、確率的モードまたは確定的モードのいずれかで使用されます。
次のセクションに進む前に、Shield Platform Encryption の機能、種別、モードを確認しましょう。
鍵の循環について
鍵の循環とは、新しい鍵素材を生成または提供し、それを有効な秘密として使用することです。Ernesto はセキュリティレビューで、会社の暗号化鍵を 120 日ごとに循環させて、すべての古い鍵を安全にバックアップする必要があることを学びました。Ernesto は以前から秘密と鍵を保管する安全なリポジトリを整備したいと考えており、その実現を楽しみにしています (彼はテクノロジーが大好きです)。
鍵素材を循環させると、その素材から派生されたすべての DEK も循環します。新しいデータは新しい DEK で暗号化および復号化されます。新しい DEK は、デフォルトで新しい有効なテナントの秘密から派生します。
主要な Salesforce の秘密はリリース (年 3 回) ごとに循環します。Ernesto は、テナントの秘密、ルート鍵、DEK を最短で 24 時間ごとに循環させることができると知り、必要以上の頻度が保証されていることに安心しました。
Ernesto は分析を終え、Carolyn と Calvin に結果を知らせる準備が整いました。ですが、その前に、次の単元で Calvin が Shield Platform Encryption の機能について何を発見したのか見てみましょう。