バックグラウンド: Shield Platform Encryption のプロセス
ユーザがデータを送信する場合、アプリケーションサーバは、そのキャッシュから組織固有のデータ暗号化鍵を検索します。キャッシュにない場合、アプリケーションサーバは、データベースから暗号化されたテナントの秘密を取得し、鍵派生サーバに鍵の派生を要求します。Shield Platform Encryption サービスは、次にアプリケーションサーバのデータを暗号化します。顧客が鍵派生を除外するか、キャッシュのみの鍵サービスを使用する場合、暗号化サービスでは、顧客が指定したデータ暗号化鍵を直接、顧客データに適用します。
| アドオンサブスクリプションとして使用可能なエディション: Enterprise Edition、Performance Edition、および Unlimited Edition。Salesforce Shield の購入が必要です。Summer '15 以降に作成された Developer Edition 組織は無料で使用できます。 |
| Salesforce Classic および Lightning Experience の両方で使用できます。 |
Salesforce は、ハードウェアセキュリティモジュール (HSM) を使用して、主秘密およびテナントの秘密を安全に生成します。一意の鍵は、主秘密およびテナントの秘密を入力として、鍵派生関数 (KDF) の PBKDF2 を使用して派生します。
Shield Platform Encryption のプロセスフロー
- Salesforce ユーザが暗号化されたデータを保存すると、ランタイムエンジンはメタデータに基づいて、項目、ファイル、または添付ファイルをデータベースに保存する前に暗号化するかどうかを判断します。
- 暗号化する必要がある場合、暗号化サービスはキャッシュメモリの一致するデータ暗号化鍵をチェックします。
- 暗号化サービスは鍵が存在するかどうかを判断します。
- 存在する場合、暗号化サービスは鍵を取得します。
- 存在しない場合、サービスは派生要求を鍵派生サーバに送信し、Salesforce Platform で実行されている暗号化サービスに返します。
- 鍵の取得または派生後に、暗号化サービスはランダムな初期化ベクトル (IV) を生成し、256 ビットの AES 暗号方式を使用してデータを暗号化します。
- 暗号文は、データベースまたはファイルストレージに保存されます。データ暗号化鍵の派生に使用されたテナントの秘密の IV と対応する ID は、データベースに保存されます。
Salesforce は、各リリースの開始時に新しい主秘密を生成します。