Key Management Framework (KMF) による Password2 暗号化
キー管理フレームワークでサポートされており、Password2 (双方向暗号化) フィールドタイプを使用して、職務の分離、キー保護、およびライフサイクル管理でカスタムフィールドを暗号化および復号化します。この暗号化と復号化は NIST 800-57 ガイドラインに従って行われ、FIPS 140-2-L3 保護を提供します。
Password2 は、双方向暗号化でパスワードを格納するテキストフィールドです。双方向暗号化では、インスタンス内で復号化できるセキュアな暗号化された値としてデータを格納します。
アクティベーション
Password2 機能はデフォルトでアクティブにされています。この機能は glide.kmf.encrypter.enabled プロパティで制御され、すべての新しいインスタンスとアップグレードに対して true に設定されます。Password2 を使用するために 列レベル暗号化エンタープライズ を有効にする必要はありません。
Password2 の仕組み
キー管理フレームワークでは、基本システムの親暗号化モジュール cm_glide_encrypter が提供されます。このモジュールは、暗号化仕様と が従来の Password2 フィールドを復号化できるキーを提供します。
この cm_glide_encrypter モジュールにはサブモジュールを含めることができ、それぞれに独自のモジュールキーと仕様があります。Password2 フィールドがあるアプリケーションと同じアプリケーションスコープにサブモジュールが存在する場合、そのサブモジュールが使用されます。たとえば、ServiceNow® カスタマーサービス アプリケーションのテーブルにサブモジュールがあり、カスタマーサービス アプリケーションスコープのテーブルの Password2 フィールドに情報を書き込むと、暗号化プロセスは カスタマーサービス サブモジュールを呼び出します。プロセスでは、一意の AES 256 GCM 暗号化キーによる暗号化と復号化にもそのサブモジュールのキーが使用されます。アプリケーションスコープごとに 1 つのサブモジュールが許可されます。親モジュールは常にグローバルスコープに使用されるわけではありません。通常、新しいフィールドでは instance_level_glide_encrypter が使用されます。
ドメインセパレーションとオンプレミスの顧客
KMF Password2 ではドメインセパレーションはサポートされていません。Password2 はオンプレミスインスタンスで使用できます。
従来の Password2 と現在の Password2
Xanaduで、既存の Password2 フィールドがアップグレードされました。
- NIST 800-57 キーラッピングガイドラインに従って キー管理フレームワーク を使用し、キー階層全体に FIPS 140-2-L3 保護を提供します。
- 特定のアプリケーション専用の一意の KMF Password2 サブモジュールを作成し、アプリケーションスコープ全体を制御する機能が含まれています。各サブモジュールには、独自の AES 256 GCM 暗号化キーがあります。
スクリプトの Password2 フィールド
スクリプトを使用して Password2 フィールドにアクセスする場合は、テーブルスコープと同じスコープでスクリプトを実行します。setDisplayValue() を使用して Password2 値を暗号化し、getDecryptedValue() を使用して値を復号化して読み取ります。
GlideEncrypter() API を使用しないでください。
var gr = new GlideRecord(‘table_xyz’);
gr.setDisplayValue(‘pwd2column_name’, ‘my@Password’);
gr.insert();
setValue() API を使用することはできません。このサンプルスクリプトは、同じフィールドを復号化して値を取得する方法を示しています。
var gr = new GlideRecord(‘table_xyz’);
gr.query();
gr.next();
var ge=gr.getElement('pwd2column_name');
var ged1 = ge.getDecryptedValue();
getDecryptedValue() API はスコープ対象ではありません。グローバルに利用可能です。- Password2 フィールドのデータを暗号化すると、Password2 フィールドが存在するアプリケーションのスコープが決定されます。
- プロパティが true に設定されている場合、アプリケーションと同じスコープを持つ cm_glide_encrypter 親モジュールのサブモジュールが検索されます。注:同じスコープのサブモジュールが存在する場合は、サブモジュール仕様とキーを使用して暗号化が実行されます。
この図は、インスタンスが Password2 フィールドのデータを復号化する方法を説明しています。
KMF Password2 移行ジョブ
以前のリリースからアップグレードする顧客向けに、移行ジョブが提供されています。従来の Password2 暗号化で暗号化されたデータを KMF Password2 サブモジュールキーで再暗号化します。再暗号化は、アプリケーションスコープ内に Password2 フィールドがあり、そのスコープ用に作成されたサブモジュールもあるテーブルにのみ適用されます。たとえば、XYZ_example アプリケーション (XYZ_example アプリケーションスコープを持つ) の従来の Password2 フィールドは、XYZ_example アプリケーションスコープのサブモジュールが cm_glide_encrypter 親モジュールの下に存在する場合にのみ再暗号化されます。
サブモジュール内の KMF Password2 暗号化キーは、KMF キー階層で保護されます (エンベロープ暗号化)。