Bring Your Own Key (BYOK) の概要
独自の暗号ライブラリ、エンタープライズ鍵管理システム、またはハードウェアセキュリティモジュール (HSM) を使用して、顧客が指定した鍵素材を生成して Salesforce の外部に保存できます。その後、Salesforce Shield Platform Encryption 鍵管理マシンにそれらの鍵へのアクセス権を付与します。自己署名証明書または CA 署名証明書の公開鍵を使用して鍵を暗号化する必要があります。BYOK は、FLE、ファイルと添付ファイル、イベントバスデータ、検索インデックス、Data 360、データベース暗号化で使用できます。
必要なエディション
| Salesforce Classic (使用できない組織もあります) および Lightning Experience の両方で使用できます。 |
| 使用可能なエディション: Salesforce Shield または Shield Platform Encryption ライセンスが付属する Enterprise Edition、Performance Edition、および Unlimited Edition。 |
| Developer Edition で無料で使用できます。 |
必要な権限
暗号化鍵を使用するには、「暗号化鍵の管理」権限が必要です。BYOK 互換の証明書を生成するには、「アプリケーションのカスタマイズ」権限が必要です。
BYOK アップロードプロセス
簡単に言うと、独自の鍵のアップロードは複数ステップのプロセスです。
- 鍵素材をラップするための自己署名証明書または CA 証明書を作成します。
- 256 ビット鍵素材を生成します。
メモ テナントの秘密とルート鍵ベースの秘密では、検索やデータベースの暗号化など、異なる方法を使用します。 - SHA512 パディングアルゴリズムを使用して、証明書公開鍵で鍵素材をラップします。
- 暗号化されたラップされた秘密を base64 エンコードでエンコードします。
- [鍵の管理] ページで素材をアップロードします。
このプロセスの自動化に役立つスクリプトが用意されています。
FLE、ファイル、イベントバスデータの BYOK
項目レベルの暗号化 (FLE)、ファイルと添付ファイル、イベントバスデータの場合、[鍵の管理] ページで適切なフォームを使用して、作成した 2 つのファイルをアップロードします。
- 暗号化された 256 ビット鍵を含むファイル
- 暗号化された 256 ビット鍵のハッシュが含まれるファイル
デフォルトでは、アップロードした秘密はテナントの秘密として Salesforce で使用され、鍵派生関数 (KDF) の一部として使用されます。[暗号化設定] ページで [鍵派生のオプトアウトを BYOK に許可] オプションを有効にすると、代わりに最終的なデータ暗号化鍵 (DEK) をアップロードできます。
ある機能 (FLE など) にはテナントの秘密 BYOK を使用し、別の機能 (ファイルや添付ファイルなど) には DEK BYOK を使用できます。
FLE、ファイルと添付ファイル、イベントバスデータの場合、顧客が指定した FLE の鍵素材は次の仕様を満たしている必要があります。
- 256 ビットサイズ
- ダウンロードされた BYOK 証明書から抽出された公開 4096 ビット RSA 鍵を使用して暗号化され、OAEP パディングを使用する SHA1 パディングアルゴリズムを使用してパディングされているSalesforce BYOK との互換性を確保するには、適切なヘッダーとフッターを使用して、PKCS#8 で暗号化された Base64 エンコード RSA 鍵ペア (2048 ビット以上) を使用します。
- 暗号化したら、標準の base64 でエンコードします。
BYOK for 検索インデックス暗号化、データベース暗号化、プラットフォーム暗号化 for Data 360。
検索インデックスとデータベース暗号化の BYOK では、証明書とセッショントークンを使用して鍵素材を保護します。BYOK for Data 360 では、証明書とインポートトークンが使用されます。
- Salesforce によって互換性のある証明書が生成され、その証明書を使用して顧客が指定した鍵をラップします。この証明書により、鍵と暗号化されたストレージプロセスとの互換性が確保されます。
- Salesforce は、アップロードされた鍵の信頼性を検証するメタデータを含むセッショントークン (検索およびデータベース暗号化用) またはインポートトークン (Data 360 のプラットフォーム暗号化用) も生成します。アップロードプロセス中に安全な鍵処理が提供されます。セッショントークンは、トークンが作成されたセッション中に有効です。インポートトークンは 24 時間有効です。新しい証明書とセッショントークンまたはインポートトークンはいつでも生成できます。
Data 360 の検索インデックス、データベースの暗号化、プラットフォームの暗号化では、顧客が指定した鍵素材が次の仕様を満たしている必要があります。
- 256 ビットサイズ
- BYOK ペイロードを準備するために、PKCS#11
CKM_RSA_AES_KEY_WRAPに準拠した 2 段階のキー ラッピング プロセスが必要です。まず、ダウンロードした BYOK 証明書から抽出された 4096 ビット RSA 公開鍵を使用して、256 ビットの AES ラッピング鍵が生成され、暗号化されます。暗号化では、SHA-512 で
RSA-OAEPとMGF1を使用します。次に、256 ビットの顧客が生成した AES 鍵は、AES Key Wrap with Padding (
AES-KWP, RFC 5649) を介して AES ラッピング鍵を使用してラップされます。最終的なペイロードは、RSA で暗号化されたラッピング鍵と、AES でラップされた顧客鍵で構成されます。 - 暗号化したら、標準の base64 でエンコードします。
BYOK 鍵の循環
BYOK キーは他の FLE キーと同じように循環できますが、機能の循環期間の制限が適用されます。最後にアップロードされた鍵が指定された有効な鍵で、新しいデータが暗号化されます。古い鍵はアーカイブされ、既存のデータの復号化に使用されます。

