説明

個人情報マスキングシステム及びその方法

【課題】個人情報を含む順次ファイルからデータ構造に基づき個人情報をマスキングする。
【解決手段】個人情報を含むDB構造を含む順次ファイル102の構造体情報103を記憶し、当該構造体情報103に基づきマスキングしようとする順次ファイル102のデータ項目をマスキング方法の選択肢とともに表示してそれらの選択の入力を受け付け、それに基づいて、順次ファイル102に含まれるデータ項目に属する文字列データの要素に対してそれに対応するマスキング方法を適用して変換することによってテスト用順次ファイル104を生成するためのループ命令、レコード読み出し命令、マスキング方法に対応するデータ操作命令、及びレコード書き込み命令を含むマスキングプログラム151c8を生成し、当該プログラムを基幹システム101サーバで実行する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ドキュメントのマスキングシステムに関し、より詳しくは、個人情報を含む文字列データからなるレコードを含むデータベース構造を含む順次ファイルにおいて、当該文字列データの少なくとも一部を変換することによってマスキングする個人情報マスキングシステムに関する。
【背景技術】
【0002】
保険、金融、販売、その他の顧客管理を伴うサービスを実施する業務分野においては、業務のために顧客の個人情報を含む顧客データを管理する必要がある。そのような顧客データは、利用性の観点から、文字コードの要素からなる文字列データをデータ項目ごとに分類して配列したレコードを複数配列して構成されたデータベース構造を含む順次ファイル(SAMファイル)として記憶・管理されることが通常である。企業の基幹システムは、そのような順次ファイルを利用して各種の一括処理的な顧客サービスに係る処理をバッチ処理によって実行し、また、そのような順次ファイルをデータベース管理システムにローディングすることによって、オンラインによるリアルタイムの顧客管理や顧客サービスに係る処理を実行する。一方、そのような基幹システムのホストコンピュータは、システム開発やバージョンアップに伴って、確実に動作することを確認するために、実際に利用する前に、必ず動作テストを実施する必要がある。
【発明の開示】
【発明が解決しようとする課題】
【0003】
動作テストを実施するためにはテストデータが必要であるが、このテストデータとして実際の顧客データを含む順次ファイルを使用すると、確実なテストを実施することが可能である。しかし、システム開発や動作テストは必ずしも企業内ですべて実施できるとは限らず、それに関する作業の一部を外注することも多い。このような場合に、テストデータとして実際の顧客データを使用することは、顧客の個人情報の保護の観点から、行うことはできない。しかし、テストデータとしては、実際の顧客データに近いデータを使用した方が、動作テストにおいて実際の利用環境に近い状態を実現できるため、潜在的な不具合を発見する機会が多くなり、より好ましい。
【0004】
このためには、実際の顧客データの一部をマスキングすることにより、個人情報が漏洩することを確実に防止しつつ、顧客データのデータ構造を可能な限り維持したテストデータを生成できるようなマスキングシステムがあると好適である。さらにこの際には、基幹システムでテスト用順次ファイルの生成を行うと、順次ファイルの転送を行う必要がなく、計算機資源やネットワーク資源を浪費することなくそのようなマスキングシステムを構築することが可能となる。そのためには、マスキングを実行するためのプログラムを基幹システムで実行させる必要がある。
【0005】
テスト用のデータを生成するためのソフトウェアとしては、例えば日本コンピュウェア(登録商標)のFile−AID/Data Solutionsなどがある。File−AID/Data Solutionsによれば、順次ファイルなどからそれの任意のフィールドを暗号化したテストデータを作成することが可能である。しかし、暗号化のマスキングパターンが限られており、高度な暗号化の要求に応えられるものではなかった。例えば、当該従来技術においては、暗号化は1対1の変換であり、暗号化したテストデータから元データを復号される可能性があった。また、氏名、住所、電話番号などのデータの特徴に合わせたテストデータのバリエーションを持たせつつ元データの概観を残し、しかも復元不可能なテストデータを作成することはできなかった。また、マスキングを行わない処理対象外文字を指定してマスキングを行うことはできなかった。また、マスキング処理を基幹システムで実行させるためのマスキングプログラムを生成し、それを実行させることによって基幹システムの環境でマスキング処理を実行させることはできなかった。本発明は、上記の課題に鑑みてなされたものであり、マスキングする被マスキングデータ項目の選択及び当該被マスキングデータ項目に対するマスキング方法をオペレータに指定させ、それに基づいてマスキング処理を実施するマスキングプログラムを生成し、これを実行させることによって、柔軟にマスキング方法を設定可能な個人情報マスキングシステムを提供するものである。
【課題を解決するための手段】
【0006】
上記の課題は以下の特徴を有する本発明によって解決される。すなわち本発明は、基幹システムで利用される、少なくとも一部に個人情報を含み、文字コードの要素からなる文字列データをデータ項目ごとに分類して配列したレコードを複数配列して構成されたデータベース構造を含む順次ファイルから、当該基幹システムの動作テストを当該個人情報が漏洩しないようにして実行するために当該個人情報をマスキングしたテスト用順次ファイルを生成するための個人情報マスキングシステムであって、順次ファイルを記憶する順次ファイル記憶手段と、順次ファイルに含まれるデータ項目と当該データ項目に属する文字列データのレコード内での位置の情報を含む構造体情報を記憶する構造体情報記憶手段を有し、構造体情報に基づきマスキングしようとする順次ファイルのデータ項目をマスキング方法の選択肢とともに表示し、マスキングする被マスキングデータ項目の選択及び当該被マスキングデータ項目に対するマスキング方法の選択の入力を受け付け、それに基づいて、順次ファイルに含まれるそれぞれの文字列データについて、被マスキングデータ項目に属する文字列データの要素に対して当該被マスキングデータ項目に対応するマスキング方法を適用して変換することによってテスト用順次ファイルを生成するためのマスキングプログラム生成手段を有し、当該マスキングプログラム生成手段は、所定のプログラミング言語で記述された、ループ命令、レコード読み出し命令、データ操作命令、及びレコード書き込み命令のそれぞれの命令を表わすテキストデータ及びそれの引数の記述位置を示す引数記述位置データを含むプログラム生成データとして記憶しており、それに基づいて、被マスキングデータ項目のそれぞれに対してそれに対応するマスキング方法を適用するための、ループ命令列、レコード読み出し命令列、データ操作命令列、及びレコード書き込み命令列からなるマスキングプログラムを生成し、それをマスキングプログラム実行手段によって実行することによってマスキング処理を実施することを特徴とする。
【0007】
本発明は、マスキング方法として、被マスキングデータ項目に属する文字列データの少なくとも一部の要素の文字コードを所定の変換規則により他の文字コードに変換する文字コード変換処理を含むように構成できる。また本発明は、当該所定の変換規則を、変換前の文字コードに対して所定の演算を実施した結果を変換後の文字コードとするように構成できる。また本発明は、当該所定の変換規則は、複数の変換前の文字コードに対して一つの変換後の文字コードが対応する場合があるように構成できる。また本発明は、それぞれの文字コードに対応する文字が存在するかどうかを示す文字コードテーブルを含み、文字コードテーブルに基づいて変換後の前記他の文字コードに対応する文字が存在するかどうかを確認し、対応する文字が存在しなければ、対応する文字が存在するまで変換を反復するように構成できる。
【0008】
本発明は、データ項目は氏名を含み、被マスキングデータ項目が氏名の場合、当該被マスキングデータ項目に属する文字列データの3文字目以降の要素の文字コードを他の文字コードに変換する文字コード変換処理を含むように構成できる。また本発明は、被マスキングデータ項目に属する文字列データの少なくとも一部の要素からなる文字列の文字コードを同じ長さの所定の文字列を表わす文字コードに変換する塗りつぶし処理を含むように構成できる。また本発明は、データ項目は電話番号を含み、被マスキングデータ項目が電話番号の場合、被マスキングデータ項目に属する文字列データの末尾から4文字目以降の要素の文字コードを所定の数字の文字コードに変換する塗りつぶし処理を含むように構成できる。また本発明は、データ項目は住所を含み、被マスキングデータ項目が住所の場合、当該被マスキングデータ項目に属する文字列データにおける数字の要素の文字コードを所定の数字の文字コードに変換する塗りつぶし処理を含むように構成できる。
【0009】
本発明は、通常のOSとテスト環境OSとを選択して起動できるように構成されており、テスト環境OSは、順次ファイルにはアクセスできないが、テスト用順次ファイルにはアクセスできるようなアクセス制限を有するように構成できる。また本発明は、マスキングプログラムを記述する所定のプログラム言語は、基幹システムで使用されるプログラム言語と同じであり、マスキングプログラムは基幹システムに含まれるプロセッサによって実行されるように構成できる。また本発明は、所定のプログラム言語は、COBOL言語であり、構造体情報はCOBOL言語におけるコピー句として記述されるように構成できる。
【0010】
本発明は、順次ファイルのそれぞれが所定期間内に更新されたものであるかどうかを判断し、所定期間内に更新された順次ファイルを検索してマスキング処理の実行対象の順次ファイルとするように構成できる。これによって、定例的にテスト用順次ファイルを作成することができる。
【0011】
上記あるいは特許請求の範囲に記載の発明において、システム、ファイル、レコード、順次ファイル、プロセッサなどの用語は、それらの具体的形態や具体的呼称を限定するものではなく、その一般的な機能を備えたものを表わすための表現である。1つの構成要素などが有する機能が1つより多くの物理的構成によって実現されてもよく、1つより多い構成要素などが有する機能が1つの物理的構成によって実現されてもよい。装置の発明は、各構成要素の機能が逐次的に実行される方法の発明として把握することができ、その逆も成り立つ。方法の発明においては、各ステップは記載された順序に実行されるものに限定されるものではなく、全体としての機能が矛盾なく実行される範囲において自由な順序でそれを実行することができる。これらの発明は、装置の発明における各手段や方法の発明における各ステップの有する機能を所定のハードウェアと協働して実現させるプログラムとしても成立し、それを記録した記録媒体としても成立する。また本発明は、搬送波上に具現化されたコンピュータ・データ信号であって、そのプログラムのコードを備えたものとしても成立しうる。
【発明の効果】
【0012】
本発明によれば、被マスキングデータ項目のそれぞれに対して各種のマスキング方法を選択させ、それに基づいてまずキングプログラムを生成してマスキング処理を実施することができるため、柔軟にマスキング方法を設定することが可能であるという効果が得られる。また本発明によれば、マスキング方法として、所定の変換規則による文字コード変換処理、所定の演算による文字コード変換処理、多対一の文字コード変換処理、変換後が文字であることの確認処理、氏名に対する3文字目以降の変換処理、塗りつぶし処理、電話番号に対する末尾4文字目以降の塗りつぶし処理、住所に対する数字部分の塗りつぶし処理、などのマスキング方法が準備されており、多彩かつデータ項目に応じた効果的なマスキング処理を実施することができるという効果が得られる。通常のOSとテスト環境OSとを選択して起動できるように構成されており、テスト環境OSは、順次ファイルにはアクセスできないが、テスト用順次ファイルにはアクセスできるようなアクセス制限を有するため、テスト時に元データの順次ファイルに悪影響を及ぼさずに高度のテストを実施できるという効果が得られる。また、基幹システムで使用されるプログラム言語でマスキングプログラムを生成し、基幹システムによってマスキングプログラムを実行させることによってマスキング処理を行えるため、マスキングの対象の順次ファイルをネットワークを通じて転送する必要がないという効果が得られる。また、更新された順次ファイルを自動的に検索してマスキング処理を実施することができるため、定例的な動作テストに対して最新のテスト用順次ファイルを準備することができるという効果が得られる。
【発明を実施するための最良の形態】
【0013】
[個人情報マスキングシステムの構成]
これから図面を参照して、本発明の一実施形態に係る個人情報マスキングシステム100について説明する。まず、個人情報マスキングシステム100の構成について説明する。図1は、個人情報マスキングシステム100の構成を表わすシステム構成図である。本実施例では、個人情報マスキングシステム100はCOBOL言語で記述されたプログラムを実行するコンピュータから構成されるが、発明としてはこれらの言語に限定されるものではない。言語としては、データの構造を構造体として定義できるものが好適である。COBOL言語においては、コピー句としてデータ(レコード)の構造を記述・定義することができる。個人情報マスキングシステム100は、大きく、基幹システムサーバ101とマスキング処理サーバ151とから構成されている。基幹システムサーバ101とマスキング処理サーバ151とはネットワークで接続されている。
【0014】
基幹システムサーバ101は、入力されるコマンドに基づき、順次ファイル102を利用・管理するサーバである。順次ファイル102は、基幹システムサーバ101が基幹システムの業務のために使用する順次ファイルであり、少なくとも一部に個人情報を含み、文字コードの要素からなる文字列データをデータ項目ごとに分類して配列したレコードを複数配列して構成したデータベース構造を含むものである。順次ファイル102は、一括処理的な業務処理についてはバッチ処理のプログラムで使用され、オンラインでのリアルタイムの業務処理については、後述のデータベース管理プログラムによって実現されるデータベース管理システムにローディングしてランダムアクセスファイルとして使用される。本実施例においては、複数の種類の順次ファイル102が記憶されているが、マスキング処理の対象とされる順次ファイル102は、火災保険の査定用データを管理する順次ファイルである。順次ファイル102のレコードの構造は、COBOLにおいては入出力定義によって表わされるため、コピー句の形態で、対応するコピー句情報103として記憶される。コピー句情報103は、複数の順次ファイル102のファイルで共用することも可能である。順次ファイル102のレコードの構造は、再定義によって、同じ順次ファイル102内のレコードを異なるレコードの構造を持つものとして扱うことが可能である。このようにすることによって、同じ順次ファイル102の中に使用目的の異なるレコードの集合を混在させることが可能となる。本実施例においては、マスキングしようとする順次ファイル102は再定義されるレコードを含むものであり、セグメントNo.という識別子を用いて、コピー句情報103のどの部分に記述された構造が適用されるのかが識別される。
【0015】
基幹システムサーバ101は、さらに、CPU101a、RAM101b、記憶装置101c、ユーザインターフェース101d(以下、「インターフェース」を「I/F」と略する。)、ネットワークI/F 101eから構成される。CPU101aは、記憶装置101cからRAM101b上にロードされたプログラムを実行することによって情報処理を行うプロセッサの形態であり、実行するプログラムと協働して本発明の各種の手段を構成するものである。RAM101bは、CPU101aによって処理されるプログラムやデータがその上に読み込まれるメモリ空間と、読み込まれたプログラムがCPU101aによって実行される際に必要となるワークエリア等を提供するものであり、具体的には揮発性のメモリの形態である。記憶装置101cは、プログラムやデータなどを記憶・管理する構成要素であり、典型的にはハードディスクドライブなどの形態である。記憶装置101cは、プログラム要素として、OS101c1、テスト環境OS101c2、基幹システムプログラム101c3、データベース管理プログラム101c4、更新順次ファイル検索モジュール101c5を記憶しており、データ要素として、順次ファイル102、コピー句情報103を記憶している。記憶装置101cは、マスキング処理の進行に伴って、データ要素として、マスキングプログラム151c8、テスト用順次ファイル104をさらに記憶することになる。プログラム要素は、RAM101b上にロードされてCPU101aによって実行されることにより、プログラムを動作させるための基本プログラムや本発明の各種の手段を構成するものであり、OS101c1は実運用環境での基本的な機能を提供するため基本プログラムであり、テスト環境OS101c2はテスト環境での基本的な機能を提供するための基本プログラムであり、基幹システムプログラム101c3は基幹システム(図示せず。以下、参照番号101c3を使用する。)を、データベース管理プログラム101c4はデータベース管理システム(図示せず。以下、参照番号101c4を使用する。)を、更新順次ファイル検索モジュール101c5は更新順次ファイル検索手段(図示せず。以下、参照番号101c5を使用する。)を、それぞれ構成する。OS101c1は実運用環境(順次ファイル102およびテスト用順次ファイル104にアクセス可能)でのコンピュータの入出力機能やメモリ管理などの基本的な機能を提供するため基本プログラムである。実運用においては、データベース管理システム101c4や基幹システム101c5は順次ファイル102にアクセスして各種処理を実行し、またマスキング処理の実行も実運用環境において順次ファイル102からテスト用順次ファイル104を生成することで実行される。テスト環境OS101c2はテスト環境(順次ファイル102にはアクセス不可能であり、テスト用順次ファイル104にアクセス可能)でのコンピュータの入出力機能やメモリ管理などの基本的な機能を提供するための基本プログラムである。テスト環境においては、データベース管理システム101c4や基幹システム101c5は順次ファイル102にはアクセス不可能であり、テスト用順次ファイル104にアクセス可能であるようなアクセス制限がなされる。従って、テスト環境でコンピュータを立ち上げた場合には、何らかのトラブルが生じても順次ファイル102を破壊する可能性はなく、様々なテストを実行することができる。OS101c1とテスト環境OS101c2とはいずれか一方を選択して基幹システムサーバを立ち上げることができるようになっている。基幹システム101c3は、本実施例においては基幹業務として火災保険の査定を管理するシステムであり、郵便物の送付などの一括処理については順次ファイル102をバッチ処理で使用することによって実行し、顧客データのオンラインでの参照・変更などのリアルタイム処理については、順次ファイル102をデータベース管理システム101c4にローディングしたのちに使用することによって実行する。データベース管理システム101c4は、順次ファイル102をローディングしてランダムアクセスファイルとして管理するシステムであり、顧客データのリアルタイム処理を必要とする基幹システムからコマンドを受信して、データの検索、更新、登録、削除などの必要な処理を実行する。なお、データベース管理プログラムが基幹システムサーバ101以外のコンピュータで実施されることによって、データベース管理システム101c4が物理的に基幹システムサーバ101以外のハードウェアによって実現されていてもよい。この場合は、データベース管理システム101c4は独自に記憶装置を有しており、基幹システムサーバ101とはネットワークで接続される。更新順次ファイル検索手段101c5は、マスキング処理の実行対象となる、更新がされて内容が変更された順次ファイル102を検索する構成要素である。ユーザI/F 101dは、ユーザ(オペレータ)との間でデータの入出力を行うための構成要素であり、典型的には、ユーザに対してデータを出力するディスプレイなどの形態の出力手段、ユーザから指令やデータの入力を受け付けるキーボードなどの形態の入力手段、及びそれらとCPU101aとの間のハードウェアI/F回路から構成される。ネットワークI/F 101eは、ネットワークに接続して他のネットワークに接続された構成要素との間で情報の入出力を行うためのI/Fである。以下の説明において、ネットワークを介したサーバ間での情報の送受は、ネットワークI/F 101eを通じて実施される。
【0016】
マスキング処理サーバ151は、基幹システムサーバ101が管理している順次ファイル102から、マスキングしようとする順次ファイル102のコピー句情報103を取得して、マスキング処理を実行するためのマスキングプログラムを生成するサーバである。マスキング処理サーバ151は、さらに、CPU151a、RAM151b、記憶装置151c、ユーザインターフェース151d、ネットワークI/F 151eから構成される。CPU151a、RAM151b、記憶装置151c、ユーザI/F 151d、ネットワークI/F 151eは、それぞれCPU101a、RAM101b、記憶装置101c、ユーザI/F 101d、ネットワークI/F 101eと同様の構成である。なお、ユーザI/F 101dに代えて、ネットワーク上の他の端末からWebベースで情報の表示及び操作の入力を受け付けるためのWebサーバ機能を有していてもよい。記憶装置151cは、プログラム要素として、コピー句情報取得モジュール151c1、マスキング方法入力モジュール151c2、マスキングプログラム生成モジュール151c3、マスキングプログラム送信モジュール151c4を記憶しており、データ要素として、マスキング方法指定データ151c6、プログラム生成データ151c7、マスキングプログラム151c8を記憶している。プログラム要素はRAM151b上にロードされてCPU151aによって実行されることにより本発明の各種の手段を構成するものであり、コピー句情報取得モジュール151c1はコピー句情報取得手段(図示せず。以下、参照番号151c1を使用する。)、マスキング方法入力モジュール151c2はマスキング方法入力手段(図示せず。以下、参照番号151c2を使用する。)、マスキングプログラム生成モジュール151c3はマスキングプログラム生成手段(図示せず。以下、参照番号151c3を使用する。)、マスキングプログラム送信モジュール151c4はマスキングプログラム送信手段(図示せず。以下、参照番号151c4を使用する。)を構成する。コピー句情報取得手段151c1は、マスキングしようとする順次ファイル102に対応するコピー句情報103を取得する手段である。マスキング方法入力手段151c2は、マスキングしようとする順次ファイル102において、マスキングするデータ項目及びマスキング方法の指定の入力を受け付ける手段である。マスキングプログラム生成手段151c3は、マスキングプログラム151c8を生成する手段である。マスキングプログラム送信手段151c4は、生成されたマスキングプログラム151c8を基幹システムサーバ101に送信する手段である。マスキング方法指定データ151c6は、オペレータによって指定された、それぞれのデータ項目に対するマスキング方法の対応関係を表すデータである。プログラム生成データ151c7は、マスキング処理を実行させるマスキングプログラム151c8の命令列を生成するために必要となるCOBOL言語の各種の命令に対して、その命令を表わすテキストデータ及び当該命令の引数の記述位置を示す引数記述位置データとからなるデータである。命令としては、所定の変数をループ開始値から開始してループ終了値に達するまで所定のループ位置範囲に配置された命令列をループさせて実行させるループ命令、ファイルからレコードを読み出してメモリ上に展開するレコード読み出し命令、メモリ上に展開されたレコードの任意のデータ項目に属する文字列データの要素をマスキング方法に従って書き換えるデータ操作命令、メモリ上に展開されたレコードをファイルに書き込むレコード書き込み命令、などがある。データ操作命令は、マスキング方法ごとに定義されており、それぞれのマスキング方法に従ったデータ操作を実行させる。なお、このプログラム生成データ151c7は、マスキングプログラム生成モジュール151c3に含まれていてもよい。
【0017】
ここでマスキング方法の概要について説明する。マスキング方法としては、文字列データの少なくとも一部の要素の文字コードを所定の変換規則により他の文字コードに変換する文字コード変換処理、文字列データの少なくとも一部の要素からなる文字列の文字コードを同じ長さの所定の文字列を表わす文字コードに変換する塗りつぶし処理などが定義されている。文字コード変換処理における所定の変換規則は、変換後の文字コードから変換前の文字コードが推測されないような暗号化処理に準じたものであると好適である。当該変換規則としては、文字コードに対して、所定値あるいは変動値の加算、減算、乗算、割算、排他的論理和演算、シフト演算などの演算を使用することもできる。なお、それぞれの文字コードに対応する文字が存在するかどうかを示す文字コードテーブルを準備し、それに基づいて変換後の文字コードに対応する文字が存在するかどうかを確認すると好適である。この場合、対応する文字が存在しなければ、対応する文字が存在するまで同じ所定の変換規則や、他の変換規則を適用して変換を反復すると好適である。また、所定の変換規則として、複数の変換前の文字コードに対して一つの変換後の文字コードが対応する場合があるような一方向性のものを使用することもできる。このようにすると、変換後の文字コードから変換前の文字コードを推測することはより困難となる。塗りつぶし処理では、変換前の文字コードに関わらず、所定の文字や文字列に変換されるため、必然的に多対一の変換となり、変換前の文字コードを推測することは、事実上、不可能である。以上で、マスキング方法の概要についての説明を終わる。
【0018】
マスキングプログラム151c8は、マスキング処理を実行して順次ファイル102からテスト用順次ファイル104を生成するための、マスキングプログラム生成手段151c3によって生成されるプログラムであり、これが基幹システムサーバ101に転送されて、そこのCPU101aによって実行されることによりマスキング処理が実行される。なお、マスキングプログラム151c8は、例えばマスキング処理サーバ151などの、基幹システムサーバ101以外のハードウェアで実行されてもよい。テスト用順次ファイル104は、順次ファイル102に対してマスキング処理を実行することによって生成されるものであり、好適には、順次ファイル102の更新に応じて生成される。
【0019】
[個人情報マスキングシステムの動作]
これから、個人情報マスキングシステム100の動作について説明する。図2及び図3は、個人情報マスキングシステム100の動作フローを表わす動作フロー図である。記憶装置101cは、OS101c1の環境で起動したもとで、基幹システム101c3の使用対象のデータとして順次ファイル102を記憶しており、それぞれの順次ファイル102に対応するコピー句情報103を記憶している(ステップS101)。
【0020】
コピー句情報取得手段151c1が、マスキングしようとする順次ファイル102、すなわち、テスト用順次ファイル104を生成する必要がある順次ファイル102に対応するコピー句情報103を基幹システムサーバ101に要求し、それを受信して記憶装置151cに記憶する(ステップS103)。
マスキング方法入力手段151c2は、マスキングプログラム生成手段151c3が対応するデータ操作命令を生成可能なマスキング方法のリストを記憶している(あるいは、それをプログラム生成データ151c7などから取得する)。マスキング方法入力手段151c2が、マスキングしようとする順次ファイル102のファイルに対応するコピー句情報103を読み出し、そこに記述されているレコードの構造を解析してデータ項目名を抽出し、さらにマスキング方法のリストを用いて、データ項目名及びマスキング方法の選択肢をマスキング方法選択画面200としてディスプレイの画面に表示させ、そして、オペレータからそれぞれのデータ項目に対するマスキング方法の選択を入力手段を介して受け付け、データ項目とマスキング方法との対応関係をマスキング方法指定データ151c6として記憶装置151cに記憶させる(ステップS105)。マスキング方法が指定されたデータ項目は、マスキング処理が実施されることになる被マスキングデータ項目である。以下に説明するように、マスキング方法選択画面200においては、被マスキングデータ項目に適用するマスキング方法の選択だけでなく、選択されたマスキング方法によっては、具体的なマスキングのパターン(どのような文字列(マスク文字)によって塗りつぶすか、スペースを文字として扱うか、処理対象外の文字があるか)などを指定することができる。そのような具体的なマスキングのパターンは、マスキング方法指定データ151c6に含めて記憶させることもできるし、メモリ上に記憶したままとしておき、後のステップでそのまま利用できるようにしてもよい。
【0021】
ここでマスキング方法選択画面200について説明する。図5は、マスキング方法選択画面200のイメージ図である。ファイル名欄201には、マスキング処理の実行しようとする順次ファイル102のファイル名が表示される。ここのファイル名を変更することによって、異なる順次ファイル102のファイルを指定することが可能である。ここでは、火災保険のそれぞれの契約において事件が発生したために査定が必要となった契約のデータベースのファイルである「火災査定DB」がファイル名として表示されている。コピー句欄203には、順次ファイル102に対応するコピー句情報103のファイル名が表示される。ここではコピー句として「CDFJP011」が表示されている。
【0022】
また、この画面を通じて、コピー句内の特定の語句を検索することが可能である。検索コピー句欄205には、検索対象のコピー句のファイル名が表示される。ここのコピー句名を変更することによって、異なるコピー句を検索対象として指定することが可能である。ここでは検索コピー句として「CDFJP011」が表示されている。検索語句欄207には、検索する語句を入力することができ、それによって検索語句を指定することができる。ここでは検索語句として「KJ−HIHOK」が表示されている。検索開始ボタン209を押すと、検索が開始され、その右側の欄にその語句を含むデータ項目のアイテム名が表示される。ここでは、検索されたデータ項目のアイテム名として、「KJ−HIHOKENSHA−MEI」、「KJ−HIHOKENSHA−JUSHO」が表示されている。この検索機能を使用することによって、マスキングしようとするデータ項目をアイテム名から簡単に検索することが可能となる。
【0023】
条件式233欄には、順次ファイル102のデータ構造を再定義するための条件式が表示される。この例では、セグメントNo.([SEGMENT-NO])が「11」であるレコードが、マスキング方法選択の対象とされており、それに関する情報のみが画面に表示されている。他の選択条件によって再定義される他のデータ構造を有するレコードが順次ファイル102内にある場合には、ここの条件式の選択条件をそれに変更することによって、当該他のデータ構造を有するレコードを画面に表示させることができる。なお、この再定義は必ずしも使用する必要はなく、その場合には条件式で選択条件しなくとも、順次ファイル102に含まれるデータ構造のレコードに関する情報がすべて画面に表示される。項目名欄211の各行には、順次ファイル102に含まれるデータ項目名が一覧で表示される。項目名は、漢字などの2バイト文字を使用して記述される。ここでは項目名として、「住所」、「契約者電話番号」、「法人名」、「支店名」、「氏名1」、「氏名2」、「被害者名」、「漢字被保険者氏名」、「漢字被保険者住所」、「所在地住所カナ」、「漢字氏名1」、「漢字氏名2」などが表示されている。アイテム名欄211の各行には、それぞれのデータ項目を表わすアイテム名が一覧で表示される。アイテム名は、英数字、記号などの1バイト文字を使用して記述される。マスク方法欄215の各行には、それぞれのデータ項目に対して適用するように選択されたマスキング方法が表示される。マスキング方法は、所定のデータ項目に対してはデフォルトとして所定のマスキング方法があらかじめ決定されていると好適である。また、それぞれのマスキング方法は、マスキング方法選択肢215mを表示させてそこから選択することができ、これによってそれぞれのデータ項目に適用するマスキング方法を指定することができる。マスキング方法としては、所定の文字コードで塗りつぶす「塗りつぶし」、文字コードを所定の変換規則で変換する「暗号化」、3文字目以降の要素に対して暗号化を行う「3文字目以降」、数字の要素のみをゼロに変換する「住所変換(数値ゼロ変換)」、下4桁をゼロで塗りつぶす「下4桁ゼロ(0)」、すべての領域をヌルあるいはスペースで塗りつぶす「項目クリア」が選択可能である。「3文字目以降」は、特に氏名に対して実行すると、日本人の氏名は2文字目までが姓を表わすことが多いため、大部分の場合において姓を変えずに名だけを暗号化できるので、一定のテストデータのバリエーションを持たせつつ、氏名のデータとしての概観を変えずに個人情報をマスキングできるため好適である。「住所変換(数値ゼロ変換)」は、数字に対応する文字コードをすべてゼロの数字に対応する文字コードに変換する処理であって特に住所をマスキングすることを目的とした処理であり、一定のテストデータのバリエーションを持たせつつ、住所のデータとしての概観を変えずに番地や部屋番号などを塗りつぶすことができる。なお、火災保険などでは住所によって保険料率が異なるため、丁目以前までの住所(郵便番号で特定されうる部分)がマスキングされてしまうと保険料計算のテストが実施できない場合があるため、このマスキング方法はそのような場合に特に有用である。「下4桁ゼロ(0)」は、日本の電話番号は末尾の4桁(下4桁)より前が市外局番であることが多いため、特に電話番号に対して実行すると、一定のテストデータのバリエーションを持たせつつ、電話番号のデータとしての概観を変えずに個人情報をマスキングできるため好適である。属性欄217には、それぞれのデータ項目のデータの属性が表示される。ここでは、属性「X」は1バイト文字からなるデータであることを、属性「N」は2バイト文字からなるデータ項目であることを表わしている。この属性を参照することによって、文字コードが表わす文字を正確に特定することができる。長さ欄219には、それぞれのデータ項目のデータ長が表示される。属性「N」のデータ項目は表示されたデータ長の2倍のバイト数のデータ長を有することになる。空白文字欄221には、データ中のスペースに対応する文字コードの部分を他の文字と同じように扱うかどうかの選択が表示される。これが「無」であれば、スペースを他の文字と区別せずに同じように取り扱うということであり、スペースもマスキング処理の対象となる。これが「有」であれば、スペースは他の文字と区別して異なる取り扱いをするということであり、スペースにはマスキング処理を行わないことになる。マスク文字欄223は、マスク方法として「塗りつぶし」が選択されているデータ項目のデータに対して、塗りつぶされる文字(文字列)を置換する文字(文字列)であるマスク文字が表示される。マスク文字は、データ項目に対応してあらかじめデフォルトで設定されていると好適である。ここのマスク文字は変更することが可能である。処理対象外文字欄225には、マスキング処理を行わない特定の文字列である処理対象外文字が表示される。「(株)」や「株式会社」などの広く使用されている定型的な文字は、それをマスキングしなくても法人を特定することができないため、そのような文字を処理対象が文字とすると、法人名の特定が不可能である一方で、法人であることのみは識別できるため、有用である。処理対象外文字は、データ項目に対応してあらかじめデフォルトで設定されていると好適である。例えば、「氏名1」、「氏名2」に対しては、「(カブ)」、「カ)」、「カブシキガイシャ」などが、「漢字氏名1」、「漢字氏名2」に対しては、「(株)」、「株式会社」、「(有)」などがあらかじめ登録されている。ここに表示されている処理対象外文字を書き換えることによって、それの追加・変更が可能である。また、被マスキングデータ項目の項目名の左側に表示されている削除ボタン231を押すことにより、そのデータ項目をマスキング処理の対象から外すことができる。上記の各種のマスキング方法は、いずれも、マスキング方法に従って変換対象の文字列を特定し、それを変換後の文字列で置換する文字列操作命令を実行することによって実施することができる。以上で、マスキング方法選択画面200の説明を終わる。
【0024】
次に、マスキングプログラム生成手段151c3が、マスキング方法指定データ151c6に従い、プログラム生成データ151c7に基づいて、マスキングしようとする順次ファイル102の被マスキングデータ項目のそれぞれに属する文字列データに対して、それに対応するマスキング方法を適用する処理をすべてのレコードに対して実行する命令列からなるマスキングプログラム151c8を生成する(ステップS107)。
【0025】
これから、マスキングプログラム151c8の生成ステップを詳細に説明する。図4は、個人情報マスキングシステム100のマスキングプログラム151c8の詳細な生成フローを表わす動作フロー図である。生成されるマスキングプログラム151c8は、どのような言語のプログラムであっても、以下のような順番で命令列(一連の命令と引数の列)が実行されるような構成をとることになる。
(1)ループ命令列:すべてのレコードに対してデータ操作が実行されるようにレコードの識別子を表わす変数をインクリメントさせながら、データ操作命令列をループさせる。
(2)レコード読み出し命令列:ループ命令によって指定された変数を識別子とするレコードをファイルから読み出す。
(3)データ操作命令列:それぞれの被マスキングデータ項目に対応するマスキング方法をそれぞれのデータ項目に適用することによってデータ操作を実行する。
(4)レコード書き込み命令列:データ操作が終了したレコードをファイルに書き戻す。そして、ループ命令列に従って、ループが終了するまで上記ステップ(3)に戻って処理を反復する。
【0026】
ここで、上記の命令列の複数がまとめられて1つの命令列として表現されても、上記の命令列の1つが複数の命令列として表現されてもよい。なお、本実施例では、プログラム言語としてCOBOLを使用しているため、レコードの読み出しとレコードの書き込みは、それらのレコードの構造をコピー句で記述していれば、通常の変数の入出力命令と同様に記述することができる。なお、上記の命令列に対して必要に応じて他の機能を有する命令列を追加してもよい。例えば、ファイルのオープン・クローズに対する明示の処理が必要な場合には、上記の命令列の前に、ファイルオープン命令列を記述し、上記の命令列の後に、ファイルクローズ命令列を記述してもよい。
【0027】
マスキングプログラム生成手段151c3は、どのような変換ロジック(どのデータ項目に対してどのようなマスキング方法を適用するのかということ)に従ってプログラムを生成するのかをマスキング方法指定データ151c6を参照して決定する。マスキングプログラム生成手段151c3は、どのようなテキストデータからなる命令列を出力し、どのように引数を記述すべきなのかということをプログラム生成データ151c7に基づいて決定する。
【0028】
プログラム生成データ151c7は、所定のプログラム言語(本実施例ではCOBOL。以下同じ。)で記述された、所定の変数をループ開始値から開始してループ終了値に達するまで所定のループ位置範囲に配置された命令列をループさせて実行させるループ命令を表わすテキストデータ及びループ開始値及びループ終了値を指定する引数の記述位置を示す引数記述位置データ、
所定のプログラム言語で記述された、ファイルからレコードを読み出してメモリ上に展開するレコード読み出し命令を表わすテキストデータ及び読み出すレコードを指定する引数の記述位置を示す引数記述位置データ、
所定のプログラム言語で記述された、メモリ上に展開されたレコードの任意のデータ項目に属する文字列データの要素を、それぞれのマスキング方法に従って書き換えるデータ操作命令を表わすテキストデータ及び操作対象データ項目及び操作後データ内容を指定する引数の記述位置を示す引数記述位置データ、及び
所定のプログラム言語で記述された、メモリ上に展開されたレコードをファイルに書き込むレコード書き込み命令を表わすテキストデータ及び書き込むレコードを指定する引数の記述位置を示す引数記述位置データ、を含んでいる。
【0029】
マスキングプログラム生成のステップが開始されると、マスキングプログラム生成手段は、まず、RAM151bあるいは記憶装置151c上に、生成中のマスキングプログラム151c8が、それの生成が完成するまで一時的に記憶される領域である生成プログラム一時記憶領域を確保する。
【0030】
マスキングプログラム生成手段151c3は、プログラム生成データ151c7からループ命令を表わすテキストデータを読み出し、それに対して、当該ループ命令に対応する引数記述位置データを読み出してそれに基づき、当該ループ命令の引数の記述位置に、レコードの識別子を変数として、ループ開始値としての先頭のレコードの識別子、及びループ終了値としての最後尾のレコードの識別子を配置することによって、被マスキングデータベースのすべてのレコードにわたる範囲のループ命令列を作成し、それを生成プログラム一時記憶領域に出力する(ステップS107a)。
【0031】
マスキングプログラム生成手段151c3は、プログラム生成データ151c7からレコード読み出し命令を表わすテキストデータを読み出し、それに対して、当該レコード読み出し命令に対応する引数記述位置データを読み出してそれに基づき、当該レコード読み出し命令の引数の記述位置にデータ操作を実施するレコードの識別子を表わす変数を配置することによって、被マスキングデータベースのレコードを読み出すレコード読み出し命令列を作成して生成プログラム一時記憶領域におけるループ命令列のループ位置範囲内に出力する(ステップS107b)。
【0032】
マスキングプログラム生成手段151c3は、プログラム生成データ151c7から、被マスキングデータ項目のそれぞれに対応するマスキング方法を実施するデータ操作命令を表わすテキストデータを読み出し、それに対して、当該データ操作命令に対応する引数記述位置データを読み出してそれに基づき、当該データ操作命令の引数の記述位置に、操作対象データ項目として被マスキングデータ項目を配置し、操作後データ内容の引数の記述位置に、当該被マスキングデータ項目に対応するマスキング方法を当該被マスキングデータ項目に属する文字列データに適用して書き換えた操作後データ内容が導入されるように引数を配置することによって、読み出されたレコードの被マスキングデータ項目に属する文字列データをそれに対応するマスキング方法に従って書き換えるデータ操作命令列を作成して生成プログラム一時記憶領域におけるループ位置範囲内のレコード読み出し命令列の後に実行される位置に出力する(ステップS107c)。被マスキングデータ項目に対応するマスキング方法を当該被マスキングデータ項目に属する文字列データに適用して書き換えることによって操作後データ内容を得る部分の命令は文字列操作命令の一種であり、それぞれの被マスキングデータ項目に対応するマスキング方法に従って文字列操作を実施する命令列である。マスク文字や処理対象外文字が設定されている被マスキングデータ項目に対しては、マスク文字を変換後の文字列とする命令を配置したり、処理対象外文字を変換の対象から除外する命令を配置することによって、それらを反映した文字列操作命令が生成される。
【0033】
「塗りつぶし」のマスキング処理に関しては、それがマスキング方法として選択されているデータ項目のデータを指定し、当該データが表わす文字列のすべてを、ステップS105で指定されたマスク文字で置換する命令列が配置される。「暗号化」のマスキング処理に関しては、それがマスキング方法として選択されているデータ項目のデータを指定し、当該データが表わす文字列のすべてに対して、それぞれの文字の文字コードに所定の変換規則を表わす演算を実施した結果により当該文字コードを置換する命令列が配置される。所定の演算は、前述のように各種の演算を使用することができ、例えば所定値の加算によって、文字コードテーブル上で他の文字に対応付けることができる。ここで、文字コードテーブル上において対応する文字が無い場合には、対応する文字が存在するまで同じ所定値の加算を反復するか、あるいは、所定値を変更して加算あるいは他の演算を実行する。「3文字目以降」のマスキング処理に関しては、それがマスキング方法として選択されているデータ項目のデータを指定し、当該データが表わす文字列の3文字目以降の要素に対して、前述の「暗号化」と同じ処理を実行する命令列が配置される。「住所変換(数値ゼロ変換)」のマスキング処理に関しては、それがマスキング方法として選択されているデータ項目のデータを指定し、当該データが表わす文字列の要素の内で文字コードが数字を表す要素を特定し、当該要素の文字コードをゼロを表わす文字コードに置換する命令列が配置される。「下4桁ゼロ(0)」のマスキング処理に関しては、それがマスキング方法として選択されているデータ項目のデータを指定し、当該データが表わす文字列の末尾から4文字目以降の要素の文字コードをゼロを表わす文字コードに置換する命令列が配置される。「項目クリア」のマスキング処理に関しては、それがマスキング方法として選択されているデータ項目のデータを指定し、当該データが表わす文字列のすべてをヌルあるいはスペースで塗りつぶす命令列が配置される。
【0034】
次に、マスキングプログラム生成手段151c3は、プログラム生成データ151c7からレコード書き込み命令を表わすテキストデータを読み出し、それに対して、当該レコード書き込み命令に対応する引数記述位置データを読み出してそれに基づき、当該レコード書き込みの引数の記述位置にデータ操作命令列によりデータ操作が実施されたレコードの識別子を表わす変数を配置することによって、被マスキングデータベースにデータ操作されたレコードを書き込むレコード書き込み命令列を作成して生成プログラム一時記憶領域におけるループ命令列のループ位置範囲内のデータ操作命令列の後に実行される位置に出力する(ステップS107d)。
【0035】
マスキングプログラム生成手段151c3は、生成プログラム一時記憶領域に記憶されているファイルオープン命令列、ループ命令列、レコード読み出し命令列、データ操作命令列、レコード書き込み命令列、及びファイルクローズ命令列からなる一連の命令列をマスキングプログラム151c8として記憶装置151cにファイルとして出力する(ステップS107e)。これによって、マスキング方法指定データ151c6で指定されたマスキングの変換ロジック、及びプログラム生成データ151c7に記述されたプログラムの表記方法に従ったソースプログラムであるマスキングプログラム151c8が得られる。
【0036】
マスキングプログラム送信モジュール151c4は、生成されたマスキングプログラム151c8を基幹システムサーバ101に送信する(ステップS109)。基幹システムサーバ101は、そのCPU101aがファイル管理の基本プログラム(図示せず)と協働することにより、送信されたマスキングプログラム151c8を、コンパイルなどを行って実行可能な形式に変更した上で記憶装置101cに記憶する(ステップS111)。これによって、マスキングしようとする順次ファイル102をマスキングするためのプログラムが基幹システムサーバ101に格納されることになる。なお、マスキングプログラム151c8は、それがマスキングしようとする順次ファイル102ごとに生成されることになり、それらはファイル名によって区別される。なお、どのファイル名のマスキングプログラム151c8がどのファイル名の順次ファイル102をマスキングするものであるのかという対応関係は、好適には、マスキング処理サーバ151に記憶されている。
【0037】
実際にマスキングプログラム151c8を実行してマスキング処理を行わせるためのマスキング処理起動方法には、順次ファイル102のファイル名及びマスキングプログラム151c8のファイル名を指定して次の適当な時間に実行をスケジューリングするスポット実行と、内容が更新された順次ファイル102を検索して自動的に実行対象として特定し、当該実行対象として特定された順次ファイル102に対応するマスキングプログラム151c8の実行をスケジューリングする定例実行とがある。
【0038】
定例実行による定例更新を実施するためには、まず、マスキング処理サーバ151は、CPU151aが所定のプログラム(図示せず)と協働することにより、定例更新対象の順次ファイル102とそれに対応するマスキングプログラム151c8の指定を受け付けて、それを基幹システムサーバ101に送信する(ステップS113)。ここで好適には、どのファイル名のマスキングプログラム151c8がどのファイル名の順次ファイル102をマスキングするものであるのかという対応関係に基づき、定例更新対象の順次ファイル102を指定すると、それに対応するマスキングプログラム151c8が自動的に特定される。
【0039】
基幹システムサーバ101の更新順次ファイル検索手段101c5は、定例更新対象の順次ファイル102とそれに対応するマスキングプログラム151c8を記憶している。更新順次ファイル検索手段101c5は、定例更新対象の順次ファイル102の中から、前回のマスキング処理以降に更新されたものをマスキング処理の実行対象として検索する(ステップS115)。基幹システムサーバ101は、好適には過去にマスキング処理を行った順次ファイル102のファイル名及びそれの処理日時をマスキング処理履歴ファイルとして記憶装置101c内に記憶しており、これに基づいて、実行対象のファイルの検索を、例えば一日に一度などの所定期間毎に実行する。
【0040】
基幹システムサーバ101は、CPU101aが所定のプログラム(図示せず)と協働することにより、マスキングプログラム151c8をRAM151b上に読み出し、それを実行することによって、マスキング方法指定データ151c6に記述されたマスキングの変換ロジックに従って、マスキング処理の実行対象の順次ファイル102に対してマスキング処理を実行し、テスト用順次ファイル104を生成する(ステップS117)。テスト用順次ファイル104は、それを生成する元となった順次ファイル102と関連付けられて記憶される。基幹システム101c3の動作テストの際には、OS101c1の環境を終了してテスト用OS101c2の環境で起動後、基幹システム101c3でテスト用順次ファイル104を使用してテストを実行する(ステップS119)。
【図面の簡単な説明】
【0041】
【図1】個人情報マスキングシステム100の構成を表わすシステム構成図である。
【図2】個人情報マスキングシステム100の動作フローを表わす動作フロー図である。
【図3】個人情報マスキングシステム100の動作フローを表わす動作フロー図であり、図2の続きである。
【図4】個人情報マスキングシステム100のマスキングプログラム151c8の詳細な生成フローを表わす動作フロー図である。
【図5】マスキング方法選択画面200のイメージ図である。
【符号の説明】
【0042】
101 基幹システムサーバ
101a CPU
101b RAM
101c 記憶装置
101c1 OS
101c2 テスト環境OS
101c3 基幹システムプログラム
101c4 データベース管理プログラム
101c5 更新順次ファイル検索手段
101d ユーザI/F
101e ネットワークI/F
102 順次ファイル
103 コピー句情報
104 テスト用順次ファイル
151 マスキング処理サーバ
151a CPU
151b RAM
151c 記憶装置
151c1 コピー句情報取得モジュール
151c2 マスキング方法入力モジュール
151c3 マスキングプログラム生成モジュール
151c4 マスキングプログラム送信モジュール
151c6 マスキング方法指定データ
151c7 プログラム生成データ
151c8 マスキングプログラム
151d ユーザI/F
151e ネットワークI/F

【特許請求の範囲】
【請求項1】
基幹システムで利用される、少なくとも一部に個人情報を含み、文字コードの要素からなる文字列データをデータ項目ごとに分類して配列したレコードを複数配列して構成されたデータベース構造を含む順次ファイルから、当該基幹システムの動作テストを当該個人情報が漏洩しないようにして実行するために当該個人情報をマスキングしたテスト用順次ファイルを生成するための個人情報マスキングシステムであって、
前記順次ファイルを記憶する順次ファイル記憶手段と、
前記順次ファイルに対応して、それに含まれるデータ項目と当該データ項目に属する文字列データのレコード内での位置の情報を含む構造体情報を記憶する構造体情報記憶手段と、
前記構造体情報記憶手段からマスキングしようとする順次ファイルに対応する前記構造体情報をプロセッサによって取得する構造体情報取得手段と、
前記構造体情報に基づき前記順次ファイルのデータ項目をマスキング方法の選択肢とともに表示し、マスキングする被マスキングデータ項目の選択及び当該被マスキングデータ項目に対するマスキング方法の選択の入力を前記プロセッサが受け付けて、前記被マスキングデータ項目と前記マスキング方法との対応関係をマスキング方法指定データとして記憶させるマスキング方法入力手段と、
前記順次ファイルに含まれるそれぞれの文字列データについて、前記マスキング方法指定データに基づいて、前記被マスキングデータ項目に属する文字列データの要素に対して当該被マスキングデータ項目に対応するマスキング方法を適用して変換することによってテスト用順次ファイルを前記プロセッサが生成するためのマスキングプログラムを生成するマスキングプログラム生成手段と、
前記マスキングプログラムを前記プロセッサあるいは他のプロセッサによって実行することにより、前記順次ファイルから前記テスト用順次ファイルを作成するマスキングプログラム実行手段と、を具備し、
前記マスキングプログラム生成手段は、
所定のプログラム言語で記述された、所定の変数をループ開始値から開始してループ終了値に達するまで所定のループ位置範囲に配置された命令列をループさせて実行させるループ命令を表わすテキストデータ及び前記ループ開始値及び前記ループ終了値を指定する引数の記述位置を示す引数記述位置データ、
前記所定のプログラム言語で記述された、前記ファイルから前記レコードを読み出してメモリ上に展開するレコード読み出し命令を表わすテキストデータ及び読み出すレコードを指定する引数の記述位置を示す引数記述位置データ、
前記所定のプログラム言語で記述された、前記メモリ上に展開された前記レコードの任意のデータ項目に属する文字列データの要素を、それぞれの前記マスキング方法に従って書き換えるデータ操作命令を表わすテキストデータ及び操作対象データ項目及び操作後データ内容を指定する引数の記述位置を示す引数記述位置データ、及び
前記所定のプログラム言語で記述された、前記メモリ上に展開された前記レコードを前記ファイルに書き込むレコード書き込み命令を表わすテキストデータ及び書き込むレコードを指定する引数の記述位置を示す引数記述位置データ、を含むプログラム生成データを記憶しており、
前記プロセッサにより、前記プログラム生成データから前記ループ命令を表わすテキストデータを読み出し、それに対して、当該ループ命令に対応する前記引数記述位置データを読み出してそれに基づき、当該ループ命令の引数の記述位置に、前記レコードの識別子を変数として、前記ループ開始値としての先頭の前記レコードの識別子、及び前記ループ終了値としての最後尾の前記レコードの識別子を配置することによって、前記順次ファイルのすべてのレコードにわたる範囲のループ命令列を作成し、それを生成プログラム一時記憶領域に出力するループ命令列生成手段と、
前記プロセッサにより、前記プログラム生成データから前記レコード読み出し命令を表わすテキストデータを読み出し、それに対して、当該レコード読み出し命令に対応する前記引数記述位置データを読み出してそれに基づき、当該レコード読み出し命令の引数の記述位置にデータ操作を実施するレコードの識別子を表わす変数を配置することによって、前記順次ファイルのレコードを読み出すレコード読み出し命令列を作成して前記生成プログラム一時記憶領域における前記ループ命令列の前記ループ位置範囲内に出力するレコード読み出し命令列生成手段と、
前記プロセッサにより、前記プログラム生成データから、前記被マスキングデータ項目のそれぞれに対応するマスキング方法を実施する前記データ操作命令を表わすテキストデータを読み出し、それに対して、当該データ操作命令に対応する前記引数記述位置データを読み出してそれに基づき、当該データ操作命令の引数の記述位置に、前記操作対象データ項目として前記被マスキングデータ項目を配置し、前記操作後データ内容の引数の記述位置に、当該被マスキングデータ項目に対応するマスキング方法を当該被マスキングデータ項目に属する文字列データに適用して書き換えた操作後データ内容が導入されるように配置することによって、読み出された前記レコードの前記被マスキングデータ項目に属する文字列データをそれに対応する前記マスキング方法に従って書き換えるデータ操作命令列を作成して前記生成プログラム一時記憶領域における前記ループ位置範囲内の前記レコード読み出し命令列の後に実行される位置に出力するデータ操作命令列生成手段と、
前記プロセッサにより、前記プログラム生成データから前記レコード書き込み命令を表わすテキストデータを読み出し、それに対して、当該レコード書き込み命令に対応する前記引数記述位置データを読み出してそれに基づき、当該レコード書き込みの引数の記述位置に前記データ操作命令列によりデータ操作が実施されたレコードの識別子を表わす変数を配置することによって、前記順次ファイルにデータ操作されたレコードを書き込むレコード書き込み命令列を作成して前記生成プログラム一時記憶領域における前記ループ命令列の前記ループ位置範囲内の前記データ操作命令列の後に実行される位置に出力するレコード書き込み命令列生成手段と、
前記プロセッサにより、前記生成プログラム一時記憶領域に記憶されている前記ループ命令列、前記レコード読み出し命令列、前記データ操作命令列、及び前記レコード書き込み命令列からなる一連の命令列をマスキングプログラムとしてファイルに出力するマスキングプログラム出力手段と、
を含むことを特徴とする個人情報マスキングシステム。
【請求項2】
請求項1に記載の個人情報マスキングシステムにおいて、
前記マスキング方法は、前記被マスキングデータ項目に属する文字列データの少なくとも一部の要素の文字コードを所定の変換規則により他の文字コードに変換する文字コード変換処理を含む個人情報マスキングシステム。
【請求項3】
請求項2に記載の個人情報マスキングシステムにおいて、
前記マスキング方法の前記所定の変換規則は、変換前の文字コードに対して所定の演算を実施した結果を変換後の文字コードとするものである個人情報マスキングシステム。
【請求項4】
請求項2に記載の個人情報マスキングシステムにおいて、
前記マスキング方法の前記所定の変換規則は、複数の変換前の文字コードに対して一つの変換後の文字コードが対応する場合がある個人情報マスキングシステム。
【請求項5】
請求項2に記載の個人情報マスキングシステムにおいて、
それぞれの文字コードに対応する文字が存在するかどうかを示す文字コードテーブルをさらに含み、
前記マスキング方法は、前記被マスキングデータ項目に属する文字列データの少なくとも一部の要素の文字コードを所定の変換規則により他の文字コードに変換し、前記文字コードテーブルに基づいて変換後の前記他の文字コードに対応する文字が存在するかどうかを確認し、対応する文字が存在しなければ、対応する文字が存在するまで変換を反復する個人情報マスキングシステム。
【請求項6】
請求項5に記載の個人情報マスキングシステムにおいて、
前記データ項目は氏名を含み、
前記マスキング方法は、前記被マスキングデータ項目が氏名の場合、当該被マスキングデータ項目に属する文字列データの3文字目以降の要素の文字コードを他の文字コードに変換する文字コード変換処理を含む個人情報マスキングシステム。
【請求項7】
請求項1に記載の個人情報マスキングシステムにおいて、
前記マスキング方法は、前記被マスキングデータ項目に属する文字列データの少なくとも一部の要素からなる文字列の文字コードを同じ長さの所定の文字列を表わす文字コードに変換する塗りつぶし処理を含む個人情報マスキングシステム。
【請求項8】
請求項7に記載の個人情報マスキングシステムにおいて、
前記データ項目は電話番号を含み、
前記マスキング方法は、前記被マスキングデータ項目が電話番号の場合、当該被マスキングデータ項目に属する文字列データの末尾から4文字目以降の要素の文字コードを所定の数字の文字コードに変換する塗りつぶし処理を含む個人情報マスキングシステム。
【請求項9】
請求項7に記載の個人情報マスキングシステムにおいて、
前記データ項目は住所を含み、
前記マスキング方法は、前記被マスキングデータ項目が住所の場合、当該被マスキングデータ項目に属する文字列データにおける数字の要素の文字コードを所定の数字の文字コードに変換する塗りつぶし処理を含む個人情報マスキングシステム。
【請求項10】
請求項1に記載の個人情報マスキングシステムにおいて、
通常のOSとテスト環境OSとを選択して起動できるように構成されており、
前記テスト環境OSは、前記順次ファイルにはアクセスできないが、前記テスト用順次ファイルにはアクセスできるようなアクセス制限を有する個人情報マスキングシステム。
【請求項11】
請求項1に記載の個人情報マスキングシステムにおいて、
前記所定のプログラム言語は、前記基幹システムで使用されるプログラム言語と同じであり、前記マスキングプログラムは前記基幹システムに含まれるプロセッサによって実行される個人情報マスキングシステム。
【請求項12】
請求項11に記載の個人情報マスキングシステムにおいて、
前記所定のプログラム言語は、COBOL言語であり、
前記構造体情報は、COBOL言語におけるコピー句として記述されている個人情報マスキングシステム。
【請求項13】
請求項1に記載の個人情報マスキングシステムにおいて、
前記順次ファイルから前回のマスキング処理以降に更新されたものを実行対象として特定し、前記マスキングプログラム実行手段に当該実行対象として特定された順次ファイルに対して前記マスキングプログラムを実行させる更新順次ファイル検索手段をさらに有する個人情報マスキングシステム。
【請求項14】
基幹システムで利用される、少なくとも一部に個人情報を含み、文字コードの要素からなる文字列データをデータ項目ごとに分類して配列したレコードを複数配列して構成されたデータベース構造を含む順次ファイルから、当該基幹システムの動作テストを当該個人情報が漏洩しないようにして実行するために当該個人情報をマスキングしたテスト用順次ファイルを生成するための個人情報マスキング方法であって、
前記順次ファイルを記憶する順次ファイル記憶ステップと、
前記順次ファイルに対応して、それに含まれるデータ項目と当該データ項目に属する文字列データのレコード内での位置の情報を含む構造体情報を記憶する構造体情報記憶ステップと、
前記構造体情報記憶ステップで記憶された前記構造体情報からマスキングしようとする順次ファイルに対応する前記構造体情報をプロセッサによって取得する構造体情報取得ステップと、
前記構造体情報に基づき前記順次ファイルのデータ項目をマスキング方法の選択肢とともに表示し、マスキングする被マスキングデータ項目の選択及び当該被マスキングデータ項目に対するマスキング方法の選択の入力を前記プロセッサが受け付けて、前記被マスキングデータ項目と前記マスキング方法との対応関係をマスキング方法指定データとして記憶させるマスキング方法入力ステップと、
前記順次ファイルに含まれるそれぞれの文字列データについて、前記マスキング方法指定データに基づいて、前記被マスキングデータ項目に属する文字列データの要素に対して当該被マスキングデータ項目に対応するマスキング方法を適用して変換することによってテスト用順次ファイルを前記プロセッサが生成するためのマスキングプログラムを生成するマスキングプログラム生成ステップと、
前記マスキングプログラムを前記プロセッサあるいは他のプロセッサによって実行することにより、前記順次ファイルから前記テスト用順次ファイルを作成するマスキングプログラム実行ステップと、からなり、
マスキングプログラム生成ステップは、
所定のプログラム言語で記述された、所定の変数をループ開始値から開始してループ終了値に達するまで所定のループ位置範囲に配置された命令列をループさせて実行させるループ命令を表わすテキストデータ及び前記ループ開始値及び前記ループ終了値を指定する引数の記述位置を示す引数記述位置データ、
前記所定のプログラム言語で記述された、前記ファイルから前記レコードを読み出してメモリ上に展開するレコード読み出し命令を表わすテキストデータ及び読み出すレコードを指定する引数の記述位置を示す引数記述位置データ、
前記所定のプログラム言語で記述された、前記メモリ上に展開された前記レコードの任意のデータ項目に属する文字列データの要素を、それぞれの前記マスキング方法に従って書き換えるデータ操作命令を表わすテキストデータ及び操作対象データ項目及び操作後データ内容を指定する引数の記述位置を示す引数記述位置データ、及び
前記所定のプログラム言語で記述された、前記メモリ上に展開された前記レコードを前記ファイルに書き込むレコード書き込み命令を表わすテキストデータ及び書き込むレコードを指定する引数の記述位置を示す引数記述位置データ、を含むプログラム生成データをあらかじめ記憶するステップと、
前記プロセッサにより、前記プログラム生成データから前記ループ命令を表わすテキストデータを読み出し、それに対して、当該ループ命令に対応する前記引数記述位置データを読み出してそれに基づき、当該ループ命令の引数の記述位置に、前記レコードの識別子を変数として、前記ループ開始値としての先頭の前記レコードの識別子、及び前記ループ終了値としての最後尾の前記レコードの識別子を配置することによって、前記順次ファイルのすべてのレコードにわたる範囲のループ命令列を作成し、それを生成プログラム一時記憶領域に出力するループ命令列生成ステップと、
前記プロセッサにより、前記プログラム生成データから前記レコード読み出し命令を表わすテキストデータを読み出し、それに対して、当該レコード読み出し命令に対応する前記引数記述位置データを読み出してそれに基づき、当該レコード読み出し命令の引数の記述位置にデータ操作を実施するレコードの識別子を表わす変数を配置することによって、前記順次ファイルのレコードを読み出すレコード読み出し命令列を作成して前記生成プログラム一時記憶領域における前記ループ命令列の前記ループ位置範囲内に出力するレコード読み出し命令列生成ステップと、
前記プロセッサにより、前記プログラム生成データから、前記被マスキングデータ項目のそれぞれに対応するマスキング方法を実施する前記データ操作命令を表わすテキストデータを読み出し、それに対して、当該データ操作命令に対応する前記引数記述位置データを読み出してそれに基づき、当該データ操作命令の引数の記述位置に、前記操作対象データ項目として前記被マスキングデータ項目を配置し、前記操作後データ内容の引数の記述位置に、当該被マスキングデータ項目に対応するマスキング方法を当該被マスキングデータ項目に属する文字列データに適用して書き換えた操作後データ内容が導入されるように配置することによって、読み出された前記レコードの前記被マスキングデータ項目に属する文字列データをそれに対応する前記マスキング方法に従って書き換えるデータ操作命令列を作成して前記生成プログラム一時記憶領域における前記ループ位置範囲内の前記レコード読み出し命令列の後に実行される位置に出力するデータ操作命令列生成ステップと、
前記プロセッサにより、前記プログラム生成データから前記レコード書き込み命令を表わすテキストデータを読み出し、それに対して、当該レコード書き込み命令に対応する前記引数記述位置データを読み出してそれに基づき、当該レコード書き込みの引数の記述位置に前記データ操作命令列によりデータ操作が実施されたレコードの識別子を表わす変数を配置することによって、前記順次ファイルにデータ操作されたレコードを書き込むレコード書き込み命令列を作成して前記生成プログラム一時記憶領域における前記ループ命令列の前記ループ位置範囲内の前記データ操作命令列の後に実行される位置に出力するレコード書き込み命令列生成ステップと、
前記プロセッサにより、前記生成プログラム一時記憶領域に記憶されている前記ループ命令列、前記レコード読み出し命令列、前記データ操作命令列、及び前記レコード書き込み命令列からなる一連の命令列をマスキングプログラムとしてファイルに出力するマスキングプログラム出力ステップと、
を含むことを特徴とする個人情報マスキング方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2008−33411(P2008−33411A)
【公開日】平成20年2月14日(2008.2.14)
【国際特許分類】
【出願番号】特願2006−203164(P2006−203164)
【出願日】平成18年7月26日(2006.7.26)
【出願人】(397009716)日本興亜損害保険株式会社 (8)
【Fターム(参考)】