アプリケーション暗号化
この項で説明する機能を使用して、データベースにフィールドを格納する際の暗号化を実装で構成できます。この機能は、前述の項で説明したユーザー・インタフェースのマスキング機能とは相互に排他的です。この機能は、CLOBまたはXML列に格納された特定の要素の暗号化をサポートしています。
次に暗号化の機能について説明します。
-
暗号化鍵はキーストアを使用して定義されるため、この機能を使用するにはキーストアを設定する必要があります。システムにおけるキーストアの設定に関する詳細は、インストール・ガイドを参照してください。
-
フィールドを暗号化するように構成すると、暗号化されたデータは、ソース・フィールドではない特別な暗号化フィールド(ユーザー・インタフェースでユーザーに表示されるフィールド)に格納されます。ソース・フィールドには、マスキングされたデータが取得されます。暗号化をサポートするには特別なフィールドが必要なため、そのフィールドの暗号化が製品でサポートされている必要があります。
-
検索を許可する必要がある暗号化データのために、システムでは、特別なフィールドへのハッシュ値の取得をサポートしています。この機能が製品でサポートされている必要があります。この構成では、ハッシュ値を取得する特別なフィールドの提供に加えて、そのデータの基本検索機能にも対応している必要があります。
-
システムでは、XMLフィールド内の要素として取得したデータの暗号化をサポートしています。製品が所有するスキーマにXMLフィールドが提供されている場合、製品では、暗号化されたデータの取得に対して特定のサポートが必要です。
次の各項では、フレームワークで提供される暗号化のサポートについて追加の情報を提供します。詳細は、使用している製品の管理ガイドでセキュリティに関する章を参照してください。
データの暗号化およびマスキング
製品で、指定されたタイプのデータの暗号化を可能にする場合は、暗号化された値を取得するために特別な暗号化フィールドを作成する必要があります。暗号化はオプションであるため、ソース・フィールド(ユーザーに表示されるフィールド)は、この特別な暗号化フィールドにはしないでください。暗号化が構成されている場合は、システムによって暗号化されたフィールドが内部的に移入されます。デフォルトでは、ソース・フィールドにはアスタリスクが移入されます。このように、マスキングされたデータは暗号化された値ではなく、ページ上でユーザーに表示されるデータです。
次に、暗号化が構成されている場合と構成されていない場合のシステムの動作を示します。例として、フィールドはクレジット・カード番号と仮定します。ユーザーにはCC_NBRというフィールド名のフィールドが表示され、値を入力します。表には、ENCR_CC_NBRという第2のフィールドもあります。ユーザーはクレジット・カード番号を入力します。
-
暗号化が構成されていない場合は、CC_NBRが入力されたクレジット・カード番号で更新され、ENCR_CC_NBRは空です。この場合、実装ではユーザー・インタフェースのマスキングを構成するように選択できます。
-
暗号化が構成されている場合は、CC_NBRが「*******************」で更新され、ENCR_CC_NBRには暗号化された値が格納されます。標準的なフィールドのアスタリスクは、最大50文字までフィールド・サイズ全体に表示されます。
なんらかの理由ですべてアスタリスクを使用する標準マスキングが望ましくない場合に、システムではユーザー・インタフェースのマスキングに使用されるものと同じ「機能構成 - データ・マスキング」プラグイン・スポットを使用した明示的なマスキング・アルゴリズムの提供をサポートしています。
機能オプション構成
機能構成は、機能タイプの「暗号化」を使用して作成します。暗号化しているソース・フィールドごとに、オプション・タイプの「フィールド暗号化」でオプションを入力します。値には、キーストアに定義されている適切な暗号化鍵の別名を参照するニーモニックと、フィールドおよびその表の場所に関する構成が含まれています。ユーザー・インタフェースのデータ・マスキングとは異なり、データ暗号化の構成は、データの表示方法ではなくデータの格納方法に関連しています。さらに、各エントリにはデフォルトを上書きするための明示的なマスキング・アルゴリズムを定義でき、サポートされている場合はハッシュ・フィールドおよびハッシュ別名を定義することもできます。
表の特定の列に格納されるデータには、暗号化された値を取得するための明示的なフィールドが必要です。table='table_name', field='fld_name', encryptedField='encr_fld_name', alias='alias key'で、表名、ソース・フィールド名および暗号化されたフィールド名を別名とともに指定します。
また、データが子表にあり、特定のタイプのデータのみを暗号化する必要がある場合は、where句を指定できます。
例: table='CI_PER_ID', field='PER_ID_NBR', encryptedField='ENCR_PER_ID_NBR', alias='key alias', where='ID_TYPE_CD='SSN''
レコードのXML列に格納されるデータの場合は、field='field_name', encryptedField='encr_field_name', alias='key alias'を使用して、暗号化されるソース・フィールドがそのスキーマ定義のメタデータ・フィールド名と、暗号化されたデータおよび別名を取得する要素を参照する必要があります。
マスキング・アルゴリズムへの参照を追加する構文は、maskAlg='algorithm name'です。
検索目的でハッシュ値を取得するための構成を追加する構文は、hashAlias='hashAliasKey' hashField='HASH_FLD_NAME'です。
可能なすべてのオプション(特定のマスキング・アルゴリズム、where句およびハッシュ・フィールドのサポート)を使用する構成の例を次に示します。
table='CI_PER_ID', field='PER_ID_NBR', alias='aliasKey', encryptedField='ENCR_PER_ID_NBR', hashAlias='hashAliasKey' hashField='HASH_PER_ID_NBR', where='ID_TYPE_CD=SSN', maskAlg='CM-PERIDMASK'暗号化された値による検索
検索のための暗号化フィールドのハッシュ値を製品がサポートしている場合は、この目的に対応するエクスプローラ・ゾーンの構成について、次の点に注意してください
-
ユーザー・フィルタ値はソース・フィールドを参照する必要があるため、追加のencrypt=ニーモニックを指定してください。次に例を示します
type=STRING label=PER_ID_NBR encrypt=[CI_PER_ID,PER_ID_NBR,ID_TYPE_CD,F1]
詳細は、「ユーザー・フィルタ」を参照してください。
-
SQLには、WHERE句にハッシュ値を指定してください。暗号化はオプションであるため、暗号化対象フィールドによる検索が含まれている製品ゾーンには、ソース・フィールド(プレーン・テキスト)またはハッシュ・フィールドでのフィルタの一致の検出が含まれることに注意してください。次に例を示します。
WHERE [(F2) (ID.PER_ID_NBR =:F2 OR ID.HASH_PER_ID_NBR = :F2)]
暗号化アルゴリズムのカスタマイズ
指定のキーで使用する暗号化アルゴリズムはキーストア内のキーから入手できますが、データの暗号化または復号化に使用する必要があるアルゴリズムに関連する追加情報が存在する場合があります。
システムには、暗号化の動作の調整に使用できるオプション・タイプ「アルゴリズム情報」を使用した「暗号化」機能タイプの機能構成オプションが用意されています。
-
暗号化アルゴリズムのデフォルト・モードとパディングを変更できます。
-
キーがなんらかのデジタル署名に使用される場合は、キーに対して署名アルゴリズムを指定することもできます。
構文の詳細は、機能オプション・タイプの詳細な説明を参照してください。