(58)【調査した分野】(Int.Cl.,DB名)
ユーザに関するマスク対象文字列をマスク文字列空間上の座標値に変換し、前記座標値を含む領域情報を、マスク対象領域情報として生成するマスク対象領域情報生成部、及び
前記マスク対象領域情報生成部によって生成された前記マスク対象領域情報をサーバへ送信するマスク対象領域情報送信部
を含むユーザ端末と、
前記ユーザ端末から送信された前記マスク対象領域情報を受信するマスク対象領域情報受信部、
前記マスク対象領域情報受信部によって受信した前記マスク対象領域情報を記憶するマスク対象領域情報データベース、
前記ユーザ端末又はプロキシサーバから送信された前記ユーザに関するユーザデータを受信するユーザデータ受信部、及び
前記受信したユーザデータに含まれる文字列を、前記マスク文字列空間上の座標値に変換し、前記変換された前記座標値が、前記マスク対象領域情報に含まれる場合、前記受信したユーザデータに含まれる文字列のマスク処理を行うマスク処理部
を含むサーバと、
を含むマスク処理システム。
前記マスク対象領域情報生成部は、ハッシュ関数を用いて、ユーザに関するマスク対象文字列を、マスク文字列空間上の座標値としてハッシュ値に変換し、前記ハッシュ値の先頭の所定ビットを、前記マスク対象領域情報として生成する請求項1に記載のマスク処理システム。
前記マスク対象領域情報生成部は、ユーザに関するマスク対象文字列を、前記マスク文字列空間上の座標値に変換し、前記座標値と、前記マスク対象文字列の文字数、又は前記マスク対象文字列が他のユーザに関する文字列と重複する確率とに基づいて、前記マスク対象領域情報を生成する請求項1に記載のマスク処理システム。
【発明を実施するための形態】
【0021】
以下、図面を参照して本発明の実施の形態を詳細に説明する。
【0022】
<本発明の実施の形態の概要>
本発明の実施の形態は、ユーザに関するデータをサーバ上で文字列変換する技術に関する。
【0023】
本発明の実施の形態では、ユーザのマスク対象文字列をマスク文字列空間上の座標値に変換し、当該座標値を含む領域情報をマスク対象領域情報としてサーバに配置し、サーバによって受信されたユーザデータ中に含まれる文字列が当該マスク対象領域に含まれる場合、当該文字列のマスク処理を行う。
【0024】
本発明の実施の形態では、ユーザ端末上での操作情報や、ユーザがWebブラウザにて閲覧したWebページの履歴情報などをユーザデータとして扱う場合を例に説明する。
【0025】
[第1の実施の形態]
<システム構成>
図1に示すように、本発明の第1の実施の形態に係るマスク処理システム100は、ユーザ端末10と、サーバ30とを備える。ユーザ端末10とサーバ30とは、インターネットなどのネットワーク11を介して接続されている。
【0026】
[ユーザ端末10]
ユーザ端末10は、マスク対象領域情報出力部12と、ユーザデータ出力部22とを備えている。
【0027】
マスク対象領域情報出力部12は、マスク情報登録部14と、マスク文字列空間座標算出部16と、マスク対象領域情報生成部18と、マスク対象領域情報送信部20とを備えている。
【0028】
マスク情報登録部14は、入力部(図示省略)により入力されたユーザに関するマスク対象文字列を受け付ける。マスク対象文字列は、ユーザがマスク対象としたい文字列である。マスク情報登録部14は、ユーザがマスクしたい文字列であるマスク対象文字列を受け付け、メモリ(図示省略)に登録する。
【0029】
例えば、ユーザの個人情報に関連する文字列などをマスク対象文字列とすることができ、氏名(姓・名)、住所、電話番号、クレジットカード番号、などを含むものとする。
【0030】
マスク文字列空間座標算出部16は、マスク情報登録部14によってメモリ(図示省略)に登録されたマスク対象文字列をマスク文字列空間上の座標値に変換する。具体的には、マスク文字列空間座標算出部16は、マスク対象文字列として登録された項目(例えば、氏名、電話番号、住所、など)の、それぞれでマスク文字列空間上の座標値を算出する。
【0031】
本実施の形態では、マスク文字列空間座標算出部16は、ハッシュ関数を用いて、マスク情報登録部14によって登録されたマスク対象文字列を、マスク文字列空間上の座標値として一定ビット長のハッシュ値に変換する。
【0032】
例えば、マスク対象文字列がユーザの氏名(姓)である場合、マスク文字列空間座標算出部16は、マスク文字列空間上におけるユーザ氏名(姓)の座標値を算出する。ユーザの氏名(姓)が「通研」であり、ハッシュ関数としてMD5(Message Digest Algorithm 5)を用いる場合には、マスク文字列空間座標算出部16による処理によって32ビットのハッシュ値(3c9680c6fdb15c559b7219e77a25c9d2)が得られる。マスク文字列空間座標算出部16による処理によって得られたハッシュ値は、マスク文字列空間上の座標値として扱われる。
【0033】
マスク対象領域情報生成部18は、マスク文字列空間座標算出部16によって算出された座標値を含む領域情報を、マスク対象領域情報として生成する。
【0034】
具体的には、マスク文字列空間座標算出部16によって算出された一定ビット長のハッシュ値を当該座標値として扱う場合、マスク対象領域情報生成部18は、算出されたハッシュ値のうち、先頭から特定のビット数の部分をマスク対象領域情報として生成する。
【0035】
例えば、マスク対象領域情報生成部18は、座標値のうち先頭から8ビット分を用いるとすることで、マスク対象領域情報を決定することができる。例えば、座標値として32ビットのハッシュ値(3c9680c6fdb15c559b7219e77a25c9d2)が得られた場合、先頭から8ビットの(3c9680c6)がマスク対象領域情報となる。
【0036】
なお、ハッシュ値の算出アルゴリズムとして用いられるハッシュ関数は、ユーザ端末10とサーバ30とで揃える必要があるが、上記MD5、SHA−1(Secure Hash Algorithm)などを利用しても良い。
【0037】
図2に、マスク文字列空間座標算出部16及びマスク対象領域情報生成部18の処理の概要を表すイメージ図を示す。
図2に示すように、マスク文字列空間座標算出部16は、マスク対象文字列をマスク文字列空間上の座標値に変換する。そして、マスク対象領域情報生成部18は、マスク文字列空間座標算出部16の処理によって得られた座標値に基づいて、マスク対象領域情報を生成する。
【0038】
マスク対象領域情報送信部20は、マスク対象領域情報生成部18によって生成されたマスク対象領域情報をサーバ30へ送信する。
【0039】
ユーザデータ出力部22は、ユーザデータ収集部24と、ユーザデータ送信部26とを備えている。
【0040】
ユーザデータ収集部24は、ユーザのWebページの閲覧履歴情報などを、ユーザに関するユーザデータとして収集する。
【0041】
ユーザデータ送信部26は、ユーザデータ収集部24によって収集されたユーザデータを、サーバ30へ送信する。
【0042】
[サーバ30]
サーバ30は、マスク対象領域データ取得部32と、ユーザデータ取得部40とを備えている。サーバ30は、ユーザ端末10から送信されたマスク対象領域情報に基づいて、ユーザ端末10から送信されたユーザデータに含まれる文字列のマスク処理を行う。
【0043】
マスク対象領域データ取得部32は、マスク対象領域情報受信部34と、マスク対象領域情報登録部36と、マスク対象領域情報データベース38とを備えている。
【0044】
マスク対象領域情報受信部34は、ユーザ端末10から送信されたマスク対象領域情報を受信する。上述したように、マスク対象領域情報は、ユーザに関するマスク対象文字列を変換したマスク文字列空間上の座標値を含む。
【0045】
マスク対象領域情報登録部36は、上記
図2に示すように、マスク対象領域情報受信部34によって受信されたマスク対象領域情報を、マスク対象領域情報データベース38に登録する。
【0046】
マスク対象領域情報データベース38には、マスク対象領域情報登録部36によって登録されたマスク対象領域情報が記憶される。マスク対象領域情報は、ユーザごとに登録される。マスク対象領域情報データベース38では、対象ユーザが識別できるようにマスク対象領域情報が記憶される。マスク対象領域情報について対象ユーザを識別可能とすることで、ユーザ端末から送信されたユーザデータに対し、当該ユーザに対するマスク対象領域情報を適用できるようにする。
【0047】
ユーザデータ取得部40は、ユーザデータ受信部42と、マスク処理部44と、マスク処理後ユーザデータ蓄積部46と、マスク済みユーザデータデータベース48とを備えている。
【0048】
ユーザデータ受信部42は、ユーザ端末10から送信されたユーザデータを受信する。
【0049】
マスク処理部44は、マスク対象領域情報データベース38に記憶されたマスク対象領域情報に基づいて、ユーザデータ受信部42によって受信されたユーザデータに含まれる文字列のマスク処理を行う。
【0050】
具体的には、マスク処理部44は、受信したユーザデータに含まれる文字列を、マスク文字列空間上の座標値に変換する。そして、マスク処理部44は、変換された座標値が、マスク対象領域情報データベース38に記憶された当該ユーザのマスク対象領域情報に含まれる場合、変換された座標値に対応する、ユーザデータに含まれる当該文字列のマスク処理を行う。
【0051】
例えば、ユーザデータがユーザのWebページの閲覧履歴情報であり、閲覧履歴情報中にユーザの氏名などの情報が含まれる場合について説明する。また、具体的なマスク対象文字列の検出方法の一例を以下で説明する。
【0052】
例えば、マスク処理部44は、受信したユーザデータに対し、形態素解析を行い、ユーザデータを形態素に分解する。
【0053】
次に、マスク処理部44は、形態素解析によって分解された文字列に対し、ハッシュ関数を用いてハッシュ値を計算する。
【0054】
次に、マスク処理部44は、計算されたハッシュ値と、マスク対象領域情報データベース38に登録された当該ユーザのマスク対象領域情報とを比較し、マスク対象領域情報に含まれる文字列を検出する。
【0055】
具体的には、マスク処理部44は、形態素解析によって分解された文字列のハッシュ値の先頭部分が、マスク対象領域情報データベース38に登録されたマスク対象領域情報と一致する場合、当該文字列をマスク対象文字列として判定する。
【0056】
例えば、形態素解析結果にユーザの氏名(姓)「通研」が含まれていた場合、上述したように座標値としてハッシュ値(3c9680c6fdb15c559b7219e77a25c9d2)が得られる。ユーザ氏名(姓)「通研」がマスク対象文字列であれば、マスク対象領域情報データベース38には、「通研」に対応するマスク対象領域情報として(3c9680c6)が登録されている。
【0057】
従って、形態素解析によって分解された「通研」のハッシュ値の先頭部分(3c9680c6)は、マスク対象領域情報データベース38に登録されたマスク対象領域情報(3c9680c6)と一致するため、マスク処理部44は、当該文字列をマスク対象文字列として判定する。
【0058】
そして、マスク処理部44は、マスク対象文字列であると判定された当該文字列について、マスク処理として、他の文字列に変換する処理を行う。
【0059】
また、事前にユーザデータの文書情報の構造が判明している場合は、構造情報を用いて、マスク対象文字列が含まれる箇所を選定するようにしても良い。
【0060】
マスク処理後ユーザデータ蓄積部46は、マスク処理部44によってマスク処理が行われたユーザデータを、マスク済みユーザデータデータベース48に格納する。
【0061】
マスク済みユーザデータデータベース48には、マスク処理が行われたユーザデータが格納される。
【0062】
<マスク処理システムの作用>
マスク処理システム100は、マスク対象領域情報の生成処理及び登録処理と、ユーザデータの収集処理及びマスク処理とを実行する。
まず、マスク対象領域情報の生成処理及び登録処理について説明する。
【0063】
<マスク対象領域情報生成処理ルーチン>
ユーザ端末10に、マスク対象文字列が入力されると、ユーザ端末10において、
図3に示すマスク対象領域情報生成処理ルーチンが実行される。マスク対象領域情報生成処理ルーチンは、マスク対象文字列が入力される毎に実行される。
【0064】
まず、ステップS100において、マスク情報登録部14は、マスク対象文字列を受け付ける。
【0065】
そして、ステップS102において、マスク情報登録部14は、上記ステップS100で受け付けたマスク対象文字列をメモリ(図示省略)に登録する。
【0066】
ステップS104において、マスク文字列空間座標算出部16は、上記ステップS102で登録されたマスク対象文字列をマスク文字列空間上の座標値に変換する。
【0067】
ステップS106において、マスク対象領域情報生成部18は、上記ステップS104で変換された座標値を含む領域情報を、マスク対象領域情報として生成する。
【0068】
そして、ステップS108において、マスク対象領域情報送信部20は、上記ステップS106で生成されたマスク対象領域情報をサーバ30へ送信して、マスク対象領域情報生成処理ルーチンを終了する。
【0069】
<マスク対象領域情報登録処理ルーチン>
ユーザ端末10からマスク対象領域情報が送信され、サーバ30がマスク対象領域情報を受信すると、サーバ30において、
図4に示すマスク対象領域情報登録処理ルーチンが実行される。マスク対象領域情報登録処理ルーチンは、マスク対象領域情報が受信される毎に実行される。
【0070】
ステップS200において、マスク対象領域情報受信部34は、ユーザ端末10から送信されたマスク対象領域情報を受信する。
【0071】
ステップS202において、マスク対象領域情報登録部36は、上記ステップS200で受信されたマスク対象領域情報を、マスク対象領域情報データベース38に登録して、マスク対象領域情報登録処理ルーチンを終了する。
【0072】
次に、ユーザデータの収集処理及びマスク処理について説明する。
【0073】
<ユーザデータ収集処理ルーチン>
ユーザが、ユーザ端末10を用いて例えばWeb閲覧行動を行っているときに、ユーザ端末10において、
図5に示すユーザデータ収集処理ルーチンが実行される。
【0074】
ステップS300において、ユーザデータ収集部24は、ユーザのWebページの閲覧履歴情報などを、ユーザに関するユーザデータとして収集する。
【0075】
ステップS302において、ユーザデータ送信部26は、上記ステップS300で収集されたユーザデータを、サーバ30へ送信する。
【0076】
<マスク処理ルーチン>
ユーザ端末10からユーザデータが送信され、サーバ30がユーザデータを受信すると、サーバ30において、
図6に示すマスク処理ルーチンが実行される。マスク処理ルーチンは、ユーザデータが受信される毎に実行される。
【0077】
ステップS400において、ユーザデータ受信部42は、ユーザ端末10から送信されたユーザデータを受信する。
【0078】
ステップS402において、マスク処理部44は、上記ステップS400で受信したユーザデータに含まれる文字列の各々を、マスク文字列空間上の座標値に変換する。
【0079】
ステップS404において、マスク処理部44は、マスク対象領域情報データベース38に記憶されたマスク対象領域情報を参照する。
【0080】
ステップS406において、マスク処理部44は、上記ステップS400で受信したユーザデータに含まれる文字列の各々のうち、対象の文字列を選択する。
【0081】
ステップS408において、マスク処理部44は、上記ステップS406で選択された対象の文字列についての上記ステップS402で得られた座標値が、上記ステップS404で参照したマスク対象領域情報に含まれるか否かを判定する。座標値が上記ステップS404で参照したマスク対象領域情報に含まれる場合、ステップS410へ進む。一方、座標値が上記ステップS404で参照したマスク対象領域情報に含まれない場合、ステップS412へ進む。
【0082】
ステップS410において、マスク処理部44は、上記ステップS406で選択した対象の文字列に対してマスク処理を行う。
【0083】
ステップS412において、上記ステップS400で受信したユーザデータに含まれる全ての文字列について、上記ステップS406〜S410の処理を実行したか否かを判定する。上記ステップS406〜S410の処理を実行していない文字列が存在する場合には、上記ステップS406へ戻り、当該文字列を対象の文字列として選択する。一方、上記ステップS400で受信したユーザデータに含まれる全ての文字列について、上記ステップS406〜S410の処理を実行した場合には、マスク処理ルーチンを終了する。
【0084】
以上説明したように、本発明の第1の実施の形態に係るマスク処理システム100によれば、ユーザ端末において、ユーザに関するマスク対象文字列をマスク文字列空間上の座標値に変換し、当該座標値を含む領域情報を、マスク対象領域情報として生成し、生成されたマスク対象領域情報をサーバへ送信し、サーバにおいて、ユーザ端末から送信されたマスク対象領域情報を記憶し、マスク対象領域情報に基づいて、受信したユーザデータに含まれる文字列のマスク処理を行うことにより、マスク対象の情報を適切にマスク処理することができる。
【0085】
また、サーバ上には、ユーザ自身の個人情報文字列ではなく、マスク対象領域情報が保存されマスク処理に利用されることで、ユーザ自身の個人情報を容易に特定しづらく、より安全な状態でサーバ上でのマスク処理が可能となる。
【0086】
[第2の実施の形態]
次に、
図7を参照して、本発明の第2の実施の形態について説明する。なお、第1の実施の形態と同様の構成となる部分については、同一符号を付して説明を省略する。
【0087】
第2の実施の形態では、マスク対象領域情報に含まれるマスク対象文字列候補を選定し、受信したユーザデータに含まれる文字列が、マスク対象文字列候補と一致する場合に、ユーザデータに含まれる文字列のマスク処理を行う点が、第1の実施の形態と異なっている。
【0088】
上記第1の実施の形態では、マスク対象領域情報をマスク対象領域情報データベース38に保存するとしたが、マスク対象領域に含まれる文字列の候補が限定的であれば、マスク対象領域の代わりに、当該領域に含まれるマスク対象文字列の候補文字列をデータベースに保管しても良い。第2の実施の形態では、サーバにおいて、マスク対象領域情報を受信した後、マスク対象候補とする文字列を選定する場合を例に説明する。
【0089】
<システム構成>
図7に示すように、本発明の第2の実施の形態に係るマスク処理システム200は、ユーザ端末10と、サーバ230とを備える。ユーザ端末10とサーバ230とは、インターネットなどのネットワーク11を介して接続されている。
【0090】
[サーバ230]
サーバ230は、マスク対象領域データ取得部232と、ユーザデータ取得部240とを備えている。サーバ230は、ユーザ端末10から送信されたマスク対象領域情報に基づいて、ユーザ端末10から送信されたユーザデータに含まれる文字列のマスク処理を行う。
【0091】
マスク対象領域データ取得部232は、マスク対象領域情報受信部34と、辞書データベース233と、マスク対象文字列候補選定部234と、マスク対象文字列候補登録部236と、マスク対象領域情報データベース238とを備えている。
【0092】
辞書データベース233には、複数の候補文字列と当該候補文字列について予め変換されたマスク文字列空間上の座標値との組み合わせの各々を表す辞書データが記憶されている。
【0093】
図8に、辞書データベース233を生成する際のイメージ図を示す。以下では、候補文字列が、事前に想定される場合を例に説明する。なお、
図8に示す例では、苗字を想定するが、苗字に特定しない文字列の場合は、マスク対象文字列の1文字ずつを、マスク文字列空間上の座標値に変換したものを用いても良い。
【0094】
例えば、ユーザ端末10から氏名(姓・名)が送信されることを想定する場合、複数の苗字が格納された苗字辞書、又は複数の人名が格納された人名辞書を事前に用いて、苗字辞書又は人名辞書に含まれる文字列の各々を、マスク文字列空間の座標値に変換しておき、候補文字列と当該候補文字列の座標値との組み合わせの各々を辞書データとして辞書データベース233に格納しておく。
【0095】
なお、辞書データベースに事前に格納することができる候補文字列としては、ユーザ募集などの際に、氏名、メールアドレス情報などを収集している場合、これらを元に辞書データベースを生成することが可能である。また、電話番号、カード番号についても、入力パターンが限定されるので、事前に辞書データを作成することが可能である。
【0096】
また、辞書データベースに事前に格納することが難しい候補文字列としては、自由記述による文字列などが挙げられる。この場合には、マスク対象文字列に含まれる各文字について、1文字ずつ特定の文字コードに変換し、変換された文字コードをマスク文字列空間上の座標値に変換しても良い。
【0097】
例えば、文字コードをマスク文字列空間に変換した場合の座標値を、事前に計算しておく。そして、ユーザ端末10上で、文字コードに基づいて、マスク対象文字列に含まれる各文字について、1文字ずつマスク文字列空間上の座標値に変換し、マスク対象領域情報を生成する。ユーザ端末10は、生成したマスク対象領域情報をサーバ230へ送信し、サーバ230では、受信したマスク対象領域情報に基づいて、該当領域内に含まれるマスク対象文字列候補を選択する。
【0098】
マスク対象文字列候補選定部234は、マスク対象領域情報受信部34によって受信したマスク対象領域情報に含まれるマスク対象文字列候補を選定する。具体的には、マスク対象文字列候補選定部234は、辞書データベース233に記憶された辞書データから、マスク対象領域情報に含まれる座標値を有する候補文字列をマスク対象文字列候補として選定する。
【0099】
図9に、マスク対象文字列候補選定部234の処理のイメージ図を示す。
図9に示すように、マスク対象文字列候補選定部234は、マスク対象領域情報に含まれる座標値を有する候補文字列をマスク対象文字列候補として選定する。
【0100】
マスク対象文字列候補登録部236は、マスク対象文字列候補選定部234によって選定されたマスク対象文字列候補を、マスク対象領域情報データベース238に登録する。
【0101】
マスク対象領域情報データベース238には、マスク対象文字列候補選定部234によって選定されたマスク対象文字列候補が記憶される。マスク対象領域情報データベース238では、対象ユーザが識別できるようにマスク対象文字列候補が記憶される。
【0102】
ユーザデータ取得部240は、ユーザデータ受信部42と、マスク処理部244と、マスク処理後ユーザデータ蓄積部46と、マスク済みユーザデータデータベース48とを備えている。
【0103】
マスク処理部244は、ユーザデータ受信部42により受信したユーザデータに含まれる文字列が、マスク対象領域情報データベース238に記憶されたマスク対象文字列候補と一致する場合に、ユーザデータに含まれる当該文字列のマスク処理を行う。
【0104】
図10に、第2の実施の形態に係るマスク処理システム200の動作の概念図を示す。
【0105】
ユーザ端末10では、
図10(A)に示すように、マスク対象文字列をマスク文字列空間上の座標値に変換する。このとき、変換の方法としては、例えば、ハッシュ関数などを用いる。そして、
図10(B)に示すように、変換された座標を含む領域をマスク対象領域情報とする。このとき、当該領域は、領域中に変換された座標を含むものとする。また、領域中には、変換された座標以外の座標を含むことが可能なことが望ましい。
そしてユーザ端末10は、サーバ230へマスク対象領域情報を送信する。
【0106】
サーバ230では、
図10(C)に示すように、ユーザ端末10から送信されたマスク対象領域情報に含まれる、マスク対象文字列候補を選定する。そして、
図10(D)に示すように、選定されたマスク対象文字列候補をもとに、該当する文字列がユーザデータ中に存在する場合にマスク処理を行う。
【0107】
<マスク処理システムの作用>
マスク処理システム200は、マスク対象領域情報の生成処理及び登録処理と、ユーザデータの収集処理及びマスク処理とを実行する。
まず、マスク対象領域情報の生成処理及び登録処理について説明する。
【0108】
<マスク対象領域情報生成処理ルーチン>
ユーザ端末10に、マスク対象文字列が入力されると、ユーザ端末10において、上記
図3に示すマスク対象領域情報生成処理ルーチンが実行される。マスク対象領域情報生成処理ルーチンは、マスク対象文字列が入力される毎に実行される。
【0109】
<マスク対象領域情報登録処理ルーチン>
サーバ230へマスク対象領域情報が送信され、サーバ230がマスク対象領域情報を受信すると、サーバ230において、
図11に示すマスク対象領域情報登録処理ルーチンが実行される。マスク対象領域情報登録処理ルーチンは、マスク対象領域情報が受信される毎に実行される。
【0110】
ステップS200において、マスク対象領域情報受信部34は、ユーザ端末10から送信されたマスク対象領域情報を受信する。
【0111】
ステップS500において、マスク対象文字列候補選定部234は、辞書データベース233に記憶された辞書データから、上記ステップS200で受信したマスク対象領域情報に含まれるマスク対象文字列候補を選定する。
【0112】
ステップS502において、マスク対象文字列候補登録部236は、上記ステップS400で選定されたマスク対象文字列候補を、マスク対象領域情報データベース238に登録して、マスク対象領域情報登録処理ルーチンを終了する。
【0113】
次に、ユーザデータの収集処理及びマスク処理について説明する。
【0114】
<ユーザデータ収集処理ルーチン>
ユーザが、ユーザ端末10を用いて例えばWeb閲覧行動を行っているときに、ユーザ端末10において、上記
図5に示すユーザデータ収集処理ルーチンが実行される。
【0115】
<マスク処理ルーチン>
サーバ230へユーザデータが送信され、サーバ230がユーザデータを受信すると、サーバ230において、
図12に示すマスク処理ルーチンが実行される。マスク処理ルーチンは、ユーザデータが受信される毎に実行される。
【0116】
ステップS400において、ユーザデータ受信部42は、ユーザ端末10から送信されたユーザデータを受信する。
【0117】
ステップS604において、マスク処理部244は、マスク対象領域情報データベース238に記憶されたマスク対象文字列候補を参照する。
【0118】
ステップS406において、マスク処理部244は、上記ステップS400で受信したユーザデータに含まれる文字列の各々のうち、対象の文字列を選択する。
【0119】
ステップS608において、マスク処理部244は、上記ステップS406で選択した対象の文字列が、上記ステップS604で参照したマスク対象文字列候補と一致するか否かを判定する。対象の文字列が上記ステップS604で参照したマスク対象文字列候補と一致する場合、ステップS610へ進む。一方、対象の文字列が上記ステップS604で参照したマスク対象文字列候補と一致しない場合、ステップS412へ進む。
【0120】
ステップS610において、マスク処理部244は、上記ステップS406で選択した対象の文字列に対してマスク処理を行う。
【0121】
ステップS412において、上記ステップS400で受信したユーザデータに含まれる全ての文字列について、上記ステップS406〜S610の処理を実行したか否かを判定する。上記ステップS406〜S610の処理を実行していない文字列が存在する場合には、上記ステップS406へ戻り、当該文字列を対象の文字列として選択する。一方、上記ステップS400で受信したユーザデータに含まれる全ての文字列について、上記ステップS406〜S610の処理を実行した場合には、マスク処理ルーチンを終了する。
【0122】
なお、第2の実施の形態に係るマスク処理システム200の他の構成及び作用については、第1の実施の形態と同様であるため、説明を省略する。
【0123】
以上説明したように、本発明の第2の実施の形態に係るマスク処理システム200によれば、ユーザ端末において、ユーザに関するマスク対象文字列をマスク文字列空間上の座標値に変換し、当該座標値を含む領域情報を、マスク対象領域情報として生成し、生成されたマスク対象領域情報をサーバへ送信し、サーバにおいて、ユーザ端末から送信されたマスク対象領域情報に含まれるマスク対象文字列候補を選定し、マスク対象文字列候補に基づいて、受信したユーザデータに含まれる文字列のマスク処理を行うことにより、マスク対象の情報を適切にマスク処理することができる。
【0124】
なお、上記第2の実施の形態において、マスク対象文字列が辞書データベース233に記憶されていない場合には、辞書データベース233を更新するようにしてもよい。
【0125】
例えば、サーバ230は、辞書データベース233に記憶されている辞書データを、ユーザ端末10へ送信し、ユーザ端末10は辞書データを受信する。そして、ユーザ端末10は、マスク情報登録部14によって登録されたマスク対象文字列が、受信した辞書データに含まれるか否かを判定する。マスク対象文字列が辞書データに含まれない場合には、当該マスク対象文字列の座標値と、当該マスク対象文字列と、周辺文字列と、当該周辺文字列の座標値とを組み合わせてサーバ230に送信する。なお、辞書データに存在していなかったマスク対象文字列及び当該マスク対象文字列の座標値だけをサーバ230に送信しても良いが、さらに、周辺文字列と当該周辺文字列の座標値とを合わせて送信することで、サーバ230に送信されたデータからユーザのマスクしたい文字列であるマスク対象文字列を選択することが難しくなり、ユーザ自身の個人情報が容易に判明しなくなる。
サーバ230側では、ユーザ端末10から送信されたマスク対象文字列と、マスク対象文字列の座標値と、周辺文字列と、周辺文字列の座標値とを、辞書データベース233へ追加する。
【0126】
図13に、辞書データベース233の更新処理のイメージ図を示す。例えば、
図13に示すように、新たなマスク対象文字列「通研」が登録された場合には、「通研」の座標値と、マスク対象文字列「通研」と、周辺文字列「山田」「鈴木」「佐藤」と、周辺文字列「山田」「鈴木」「佐藤」の座標値とを組み合わせてサーバ230に送信する。サーバ230側では、ユーザ端末10から送信された「通研」の座標値と、「通研」と、周辺文字列「山田」「鈴木」「佐藤」と、周辺文字列「山田」「鈴木」「佐藤」の座標値とを、辞書データベース233へ追加する。なお、サーバ230側では、未登録のマスク対象文字列及び当該マスク対象文字列の座標値のみを、辞書データベース233に追加する、としても良い。
【0127】
また、上記第2の実施の形態において、辞書データベース233に記憶されている辞書データに応じて、マスク対象領域のサイズを拡大・縮小し、マスク対象領域情報を生成してもよい。
【0128】
例えば、ユーザ端末10がサーバ230から送信された辞書データを受信する場合について説明する。マスク対象領域のサイズに関する情報の初期値として、ある値を持たせる。その後、初期値で設定されたマスク対象領域の範囲に含まれる、辞書データのデータ数によって、マスク対象領域を拡大・縮小し、その結果をマスク対象領域情報として保存する、としても良い。
【0129】
図14に、辞書データに応じてマスク対象領域のサイズを拡大・縮小する場合のイメージ図を示す。
図14(A)に示すように、ユーザのマスク対象文字列「通研」をマスク文字列空間中の座標値に変換する。そして、
図14(B)に示すように、マスク対象文字列「通研」の座標値の近傍をチェックし、初期値として持ったマスク対象領域からサイズを拡大・縮小する。具体的には、ユーザのマスク対象文字列の座標値から一定範囲に含まれる辞書データが少ない(疎な)場合には、マスク対象領域の領域サイズを拡大し、一定数を超えるようにする。また、ユーザのマスク対象文字列の座標値から一定範囲に含まれる辞書データが多数ある(密な)場合は、マスク対象領域の領域サイズを縮小し、一定数のみを含むように変換する。
【0130】
[第3の実施の形態]
<システム構成>
次に、
図15を参照して、第3の実施の形態について説明する。なお、第1の実施の形態と同様の構成となる部分については、同一符号を付して説明を省略する。
【0131】
第3の実施の形態では、ユーザデータをプロキシサーバにて収集する点が、第1又は第2の実施の形態と異なっている。
【0132】
上記第1又は第2の実施の形態では、ユーザ端末上で収集されたユーザデータをサーバに送信する場合を例に説明したが、ユーザデータをプロキシサーバにて収集することも可能である。第3の実施の形態では、ユーザデータをプロキシサーバにて収集する場合について説明する。
【0133】
<システム構成>
図15に示すように、本発明の第3の実施の形態に係るマスク処理システム300は、ユーザ端末310と、プロキシサーバ321と、サーバ30とを備える。ユーザ端末310とプロキシサーバ321とサーバ30とは、インターネットなどのネットワーク11を介して接続されている。なお、ネットワーク11には、内部ネットワークと外部ネットワークとが含まれる。
【0134】
[ユーザ端末310]
ユーザ端末310は、マスク対象領域情報出力部12を備えている。ユーザ端末310において、例えばユーザがWeb閲覧をする際には、プロキシサーバ321を介してWebへのアクセスが行われる。
【0135】
マスク対象領域情報出力部12は、第1の実施の形態と同様に、マスク対象領域情報生成部18によって生成されたマスク対象領域情報を、プロキシサーバ321を介してサーバ30へ送信する。マスク対象領域情報出力部12は、マスク情報登録部14と、マスク文字列空間座標算出部16と、マスク対象領域情報生成部18と、マスク対象領域情報送信部20とを備えている。
【0136】
[プロキシサーバ321]
プロキシサーバ321は、ユーザデータ出力部322を備えている。プロキシサーバ321は、例えばユーザ端末がプロキシサーバ321を介してWebへのアクセスを行うときに、ユーザのWeb閲覧の操作情報をユーザデータとして収集し、収集されたユーザデータをサーバ30へ送信する。
【0137】
ユーザデータ出力部322は、ユーザデータ収集部324と、ユーザデータ送信部326とを備えている。
【0138】
ユーザデータ収集部324は、例えば、ユーザ端末310がプロキシサーバ321を介してWebへアクセスするときに、Webページ閲覧履歴情報などをユーザデータとして収集する。
【0139】
ユーザデータ送信部326は、ユーザデータ収集部324によって収集されたユーザデータを、サーバ30へ送信する。
【0140】
なお、第3の実施の形態に係るマスク処理システムの他の構成及び作用については、第1の実施の形態と同様であるため、説明を省略する。
【0141】
以上説明したように、本発明の第3の実施の形態に係るマスク処理システム300によれば、ユーザ端末において、ユーザに関するマスク対象文字列をマスク文字列空間上の座標値に変換し、当該座標値を含む領域情報を、マスク対象領域情報として生成し、生成されたマスク対象領域情報をサーバへ送信し、サーバにおいて、プロキシサーバから送信されたマスク対象領域情報に含まれるマスク対象文字列候補を選定し、マスク対象文字列候補に基づいて、受信したユーザデータに含まれる文字列のマスク処理を行うことにより、マスク対象の情報を適切にマスク処理することができる。
【0142】
なお、本発明の第3の実施の形態を、上記第2の実施の形態に適用してもよい。
【0143】
[第4の実施の形態]
<システム構成>
次に、第4の実施の形態について説明する。なお、第4の実施の形態に係るマスク処理システムの構成は、第1の実施の形態と同様の構成となるため、同一符号を付して説明を省略する。
【0144】
第4の実施の形態では、マスク文字列空間を多次元ベクトル空間として定義する点が、第1〜第3の実施の形態と異なっている。
【0145】
図16に、多次元ベクトルを想定したマスク文字列空間での処理の概要を示す。
【0146】
図16に示すように、第4の実施の形態では、ハッシュ関数を用いてハッシュ値を求めるだけでなく、マスク対象文字列の文字列数や、当該文字列と同一の文字列が他のユーザでも指定される確率値などを用いて、多次元のベクトルとして扱う。具体的には、以下に示すように、マスク対象文字列の文字列数や、マスク対象文字列が他のユーザに関する文字列と重複する確率を表すユーザ群重複確率などを多次元ベクトルの要素の一部として扱う。
【0147】
(マスク対象文字列の文字列数、ハッシュ値、ユーザ群重複確率…)→(X,Y,Z,α,β,・・・)
【0148】
例えば、ユーザ群重複確率については、ユーザ群のうち、100人あたり同一のマスク対象文字列を持つユーザが存在する確率を示すとしても良い。特に、姓名については、同姓・同名の存在数に関する統計データが得られるのであれば、同姓、同名となる確率を示すとしてもよい。
【0149】
また、例えば、以下に示すように、日本における氏名の苗字は多数存在しているが、一部の苗字が人口における大半を占めている。そこで、ユーザの苗字が重複する可能性について考慮するため、ユーザ群重複確率を用いる、としても良い。多次元ベクトルの一要素として、ユーザ群重複確率などの値を利用することで、偏りを考慮することが可能となる。
【0150】
佐藤、田中、山田… などについては、ユーザ群重複確率:高
通研… などについては、ユーザ群重複確率:低
【0151】
例えば、上記第1の実施の形態の場合、異なるマスク文字列が同一のマスク領域情報を持つ可能性がある。このとき、文字列数が2文字、3文字と異なる文字列であっても同一のマスク領域として選定される可能性があり、余計なマスキング処理を増やすことになる。そこで、文字列数を考慮することにより、文字列数が異なるものはマスク領域から除外することにより、余計なマスキング処理を減らしつつ、効率化を行うことが可能となる。
【0152】
第4の実施の形態に係るマスク処理システム100のユーザ端末10におけるマスク対象領域情報生成部18は、マスク文字列空間座標算出部16によって変換された座標値と、マスク対象文字列の文字数、及びマスク対象文字列が他のユーザに関する文字列と重複する確率を表すユーザ群重複確率とに基づいて、座標値、マスク対象文字列の文字数、及びマスク対象文字列のユーザ群重複確率を表す多次元ベクトルを、マスク対象領域情報として生成する。なお、ユーザ群重複確率については、マスク対象文字列毎に予め求められたユーザ群重複確率を用いればよい。
【0153】
第4の実施の形態に係るマスク処理システム100のサーバ30におけるマスク処理部44は、マスク対象領域情報データベース38に記憶されたマスク対象領域情報に基づいて、ユーザデータ受信部42によって受信されたユーザデータに含まれる文字列のマスク処理を行う。
【0154】
具体的には、マスク処理部44は、受信したユーザデータに含まれる文字列を、マスク文字列空間上の座標値に変換する。そして、マスク処理部44は、ユーザデータ含まれる文字列の座標値、当該文字列の文字数、及び当該文字列のユーザ群重複確率を表す多次元ベクトルが、マスク対象領域情報データベース38に記憶された当該ユーザのマスク対象領域情報に含まれる場合、当該文字列のマスク処理を行う。
【0155】
以上説明したように、本発明の第4の実施の形態に係るマスク処理システムによれば、ユーザ端末において、ユーザに関するマスク対象文字列をマスク文字列空間上の座標値に変換し、当該座標値と、マスク対象文字列の文字数、及びマスク対象文字列が他のユーザに関する文字列と重複する確率を表すユーザ群重複確率とに基づいて、マスク対象領域情報を生成し、生成されたマスク対象領域情報をサーバへ送信し、サーバにおいて、ユーザ端末から送信されたマスク対象領域情報に含まれるマスク対象文字列候補を選定し、マスク対象文字列候補に基づいて、受信したユーザデータに含まれる文字列のマスク処理を行うことにより、マスク対象の情報を適切にマスク処理することができる。
【0156】
なお、本発明の第4の実施の形態を、上記第2〜第3の実施の形態に適用してもよい。上記第4の実施の形態を、上記第2の実施の形態に適用する場合、
図17に示すように、予め用意された複数のマスク対象文字列候補の各々について、ハッシュ関数を用いて、マスク文字列空間上の座標値として一定ビット長のハッシュ値に変換し、当該座標値と、マスク対象文字列の文字数、及びユーザ群重複確率とに基づいて、マスク対象領域情報に含まれるマスク対象文字列候補を選定すればよい。
【0157】
本発明は、上記実施の形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
【0158】
例えば、ユーザデータとしては、Webページの閲覧情報ではなく、ユーザのPCなどの操作ログを対象としてもよい。また、ユーザデータとして、社内の電子文書などを対象とし、マスク対象文字列として機密情報に関連する文字列を対象としても良い。例えば、取引企業の社名などをマスク対象文字列として扱うとして、機密文書中のマスク対象文字列のマスク処理を行うとしても良い。
【0159】
また、上記実施の形態では、ハッシュ関数を用いて、マスク対象文字列をマスク文字列空間上の座標値へ変換する場合を例に説明したが、これに限定されるものではなく、他の手法によってマスク対象文字列をマスク文字列空間上の座標値へ変換してもよい。例えば、文字コードの変換による処理によって、マスク対象文字列をマスク文字列空間上の座標値へ変換してもよい。
【0160】
また、上記の第4の実施の形態では、座標値、マスク対象文字列の文字数、及びマスク対象文字列のユーザ群重複確率を表す多次元ベクトルを、マスク対象領域情報として生成する場合を例に説明したが、多次元ベクトルはこれに限定されるものではない。また、座標値、マスク対象文字列の文字数、及びマスク対象文字列のユーザ群重複確率の少なくとも1つに基づいて、マスク対象領域情報を生成するようにしてもよい。
【0161】
また、上述のユーザ端末及びサーバは、内部にコンピュータシステムを有しているが、コンピュータシステムは、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。
【0162】
また、本願明細書中において、プログラムが予めインストールされている実施形態として説明したが、当該プログラムを、コンピュータ読み取り可能な記録媒体に格納して提供することも可能である。