(57)【特許請求の範囲】
【請求項１】
個人情報検出手段によって、保護対象の個人情報文字列データを少なくとも１つ以上の構成要素項目に分けて格納した個人情報辞書に含まれる各構成要素項目の文字列を、電子文書から文字列変換の候補文字列として検出し、
ツリー生成手段によって、前記電子文書のドキュメントツリーを生成し、
マスク対象判定手段によって、前記検出された文字列変換の候補文字列に対して、前記ドキュメントツリーにおける前記候補文字列に対応するノードと同一レベルのノードまたは子ノードの範囲に、組み合わせ対象の構成要素項目に対応する前記文字列変換の候補文字列が含まれる場合、検出された文字列変換の候補文字列と、前記組み合わせ対象の構成要素項目に対応する前記文字列変換の候補文字列との組み合わせを、文字列変換の対象として判定し、
マスク置換手段によって、前記文字列変換の対象と判定された候補文字列の組み合わせを他の文字列に置き換える
文字列変換方法。
【請求項２】
コンピュータを、
保護対象の個人情報文字列データを少なくとも１つ以上の構成要素項目に分けて格納した個人情報辞書に含まれる各構成要素項目の文字列を、電子文書から文字列変換の候補文字列として検出する個人情報検出手段、
前記電子文書のドキュメントツリーを生成するツリー生成手段、
前記検出された文字列変換の候補文字列に対して、前記ドキュメントツリーにおける前記候補文字列に対応するノードと同一レベルのノードまたは子ノードの範囲に、組み合わせ対象の構成要素項目に対応する前記文字列変換の候補文字列が含まれる場合、検出された文字列変換の候補文字列と、前記組み合わせ対象の構成要素項目に対応する前記文字列変換の候補文字列との組み合わせを、文字列変換の対象として判定するマスク対象判定手段、及び
前記文字列変換の対象と判定された候補文字列の組み合わせを他の文字列に置き換えるマスク置換手段
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は電子文書に含まれる個人情報を保護するための文字列変換技術に関する。
【背景技術】
【０００２】
個人情報保護の重要性が増すなか、姓名、住所等の個人情報を含む電子文書に対して個人情報部分をマスクして読めなくする技術への期待が高まっている。電子文書に含まれる個人情報部分をマスキングする既存技術としては文字列変換を実施する手法等が知られている（特許文献１等）。また、個人情報部分を検出する方法としては、入力データ全体に対して個人情報と一致する文字列を検索する方法が知られている（特許文献２）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−１０２５４０号公報
【特許文献２】特開２００９−１９９３８５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、既存技術では、マスキングしようとする個人情報の文字列と一致した文字列が入力データに含まれていると全てマスキングが行われてしまい、余計なマスキングが行われてしまう問題があった。
【０００５】
誤ったマスキング箇所が多数発生すると、マスクされた文字列から元の個人情報文字列の推測可能性が増加するなど、個人情報保護の点で問題が発生する。
【０００６】
特に、ＨＴＭＬタグ等を含むＷｅｂページ閲覧履歴データを入力データとして扱う場合、Ｗｅｂページの本文だけでなく、ＨＴＭＬの要素や属性情報の値に、個人情報辞書に含まれる文字列とマッチするものが存在することがあり、該当箇所がマスク対象候補の文字列として検出されることがある。例えば、個人情報辞書に「田中太郎」や「0123」という文字列が含まれるとしたとき、ＨＴＭＬタグ中の属性情報として「value=“田中太郎”」や「width=“10123”」などが記載されている場合は、「田中太郎」「0123」の該当箇所がマスク対象候補の文字列として検出される。このとき、「width=“10123”」に含まれる「0123」の文字列は個人情報ではないため、本来マスクすべきではない箇所である。
【０００７】
このように、ＨＴＭＬタグ等を含むＷｅｂページ閲覧履歴データを入力データとする場合、誤マスク箇所が多数発生する可能性が高く、個人情報の漏洩リスクを低下させることができない。
【０００８】
本発明は上記の問題を解決するためになされたものであり、不必要なマスク処理を行うことなく電子文書に含まれる個人情報を適切にマスク処理することができる文字列変換方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するために、本発明の文字列変換方法は、個人情報検出手段によって、保護対象の個人情報文字列データを少なくとも１つ以上の構成要素項目に分けて格納した個人情報辞書に含まれる各構成要素項目の文字列を、電子文書から文字列変換の候補文字列として検出し、ツリー生成手段によって、前記電子文書のドキュメントツリーを生成し、マスク対象判定手段によって、前記検出された文字列変換の候補文字列に対して、前記ドキュメントツリーにおける前記候補文字列に対応するノードと同一レベルのノードまたは子ノードの範囲に、組み合わせ対象の構成要素項目に対応する前記文字列変換の候補文字列が含まれる場合、検出された文字列変換の候補文字列と、前記組み合わせ対象の構成要素項目に対応する前記文字列変換の候補文字列との組み合わせを、文字列変換の対象として判定し、マスク置換手段によって、前記文字列変換の対象と判定された候補文字列の組み合わせを他の文字列に置き換える。
【００１０】
また、本発明のプログラムは、コンピュータを、保護対象の個人情報文字列データを少なくとも１つ以上の構成要素項目に分けて格納した個人情報辞書に含まれる各構成要素項目の文字列を、電子文書から文字列変換の候補文字列として検出する個人情報検出手段、前記電子文書のドキュメントツリーを生成するツリー生成手段、前記検出された文字列変換の候補文字列に対して、前記ドキュメントツリーにおける前記候補文字列に対応するノードと同一レベルのノードまたは子ノードの範囲に、組み合わせ対象の構成要素項目に対応する前記文字列変換の候補文字列が含まれる場合、検出された文字列変換の候補文字列と、前記組み合わせ対象の構成要素項目に対応する前記文字列変換の候補文字列との組み合わせを、文字列変換の対象として判定するマスク対象判定手段、及び前記文字列変換の対象と判定された候補文字列の組み合わせを他の文字列に置き換えるマスク置換手段として機能させるためのプログラムである。
【発明の効果】
【００１１】
以上説明したように、本発明の文字列変換方法及びプログラムによれば、電子文書のドキュメントツリーにおける同一レベルのノードまたは子ノードの範囲に含まれる、文字列変換の候補文字列と、組み合わせ対象の構成要素項目に対応する文字列変換の候補文字列との組み合わせを、文字列変換の対象として、他の文字列に置き換えることにより、不必要なマスク処理を行うことなく電子文書に含まれる個人情報を適切にマスク処理することができる、という効果が得られる。
【図面の簡単な説明】
【００１２】
【図１】本発明の第１の実施の形態に係る文字列変換装置の構成を示すブロック図である。
【図２】（ａ）個人情報の一例を示す図、及び（ｂ）個人情報辞書の一例を示す図である。
【図３】ドキュメントツリーの一例を示す図である。
【図４】文字列変換の対象であるか否かの判定方法を説明するための図である。
【図５】本発明の第１の実施の形態に係る文字列変換装置におけるマスク置換処理ルーチンの内容を示すフローチャートである。
【図６】本発明の第１の実施の形態に係る文字列変換装置における文字列変換の対象であるか否かを判定する処理の流れを示すフローチャートである。
【図７】本発明の第２の実施の形態に係るネットワークシステムの構成を示したブロック図である。
【発明を実施するための形態】
【００１３】
以下、図面を参照して本発明の実施の形態を詳細に説明する。
【００１４】
＜発明の概要＞
図１に示された本発明の第１の実施の形態に係る文字列変換装置１は、マスク処理対象の電子文書（ＨＴＭＬデータ）をＤＯＭ（Document Object Model）で扱い、電子文書の文書構造を元に、ブロックレベル要素のHTMLタグであるか否かを判断した上で、各ノードの末端側のブロックレベル要素を探し、当該ブロックレベル要素の配下から候補文字列の組み合わせを選定する。
【００１５】
本来、電話番号やクレジットカード番号などがWebページ上で表示される場合、H1タグなどによる見出しなどが電話番号の表記中に挟まれることは少ない。例えば、電話番号：AAA-BBB-CCCCの場合、AAAとBBB、BBBとCCCCの間に ブロックレベル要素のh1タグやformタグが挟まれることはほとんどない。
【００１６】
また、本発明の第１の実施の形態に係る文字列変換装置１は、HTMLタグの種類情報を活用するため、ペアとなる対象を選出するための処理時間・処理負荷を軽減することができる。また、ブロックレベル要素以下のノードの末端側からペアを選定するため、Webページの表記上、近い位置からペアを探すことが可能となり、誤ったマスク対象ペアを選定することが減少する。
【００１７】
［第１の実施の形態］
＜システム構成＞
図１に示すように、本発明の実施の形態に係る文字列変換装置１は、少なくとも入力データ読込部２０、個人情報辞書３０、個人情報検出部４０、マスク対象判定部５０、及びマスク置換部６０を備える。文字列変換装置１の各機能部２０〜６０はサーバ（コンピュータ）のハードウェアリソースによって実現される。すなわち、文字列変換装置１は少なくとも演算装置（ＣＰＵ）、記憶装置（メモリ、ハードディスク装置等）、通信インタフェース等のコンピュータに係るハードウェアリソースを備える。そして、これらのハードウェアリソースがソフトウェアリソース（ＯＳ、アプリケーション等）と協働することにより各機能部２０〜６０が実装される。なお、マスク対象判定部５０が、ツリー生成手段及びマスク対象判定手段の一例である。
【００１８】
入力データ読込部２０は個人情報を含む入力データ１０（電子文書）を読み込み、メモリの内部データとして保存する。入力データとしては、個人情報文字列を含む可能性のある電子文書を入力データとするものとし、ＨＴＭＬ形式やＸＭＬ形式の電子ファイルが例示される。
【００１９】
個人情報辞書３０は保護対象の個人情報文字列データを個人情報の項目毎に格納している。個人情報辞書３０は例えば文字列変換装置１を所有するクライアントの個人情報の項目毎に個人情報文字列を格納している。
【００２０】
個人情報辞書３０は、図２（ａ）に例示したように、個人情報として、氏名、電話番号、携帯電話番号、クレジットカード番号、郵便番号、メールアドレス、住所等のような個人を特定可能な情報を格納している。また、複数の個人の個人情報を格納した場合、図２（ｂ）に例示したように、各個人の氏名に対応付けられてその個人情報が記録されている。これらの個人情報の文字列は複数の構成要素項目に分解できるものが多く、氏名であれば「姓」「名」、電話番号であれば「市外局番」「市内局番」「加入者番号」によって構成される。例えば、電話番号「046‐123‐4567」であれば、数値文字列「046」「123」「4567」の３つの構成要素項目の組み合わせで構成されているとして扱うことができる。個人情報辞書３０は、これらの個人情報を構成する構成要素項目単位に辞書情報として登録したものであり、データベースシステムで管理されるものであってもよい。なお、個人を特定可能な情報以外にも、間接的に個人を特定可能な情報である「ハンドル名」や「ユーザID」、「パスワード」などの文字列についても、個人情報辞書に登録してマスク処理対象の文字列として扱うものとしても良い。
【００２１】
個人情報検出部４０は、入力データ１０から個人情報辞書３０に含まれる個人情報の文字列を文字列変換の候補文字列として検出する。具体的には個人情報辞書３０に保存された個人情報文字列をキーとして、入力データ１０中に個人情報文字列に一致する文字列が存在するか検索を行い、検索された文字列を文字列変換の候補文字列として検出する。この際、個人情報辞書３０において、文字列長が長い個人情報文字列から検出を行うものとしても良い。例えば、メールアドレスが「tarou.tanaka@sample.co.jp」であり、他の個人情報文字列よりもメールアドレスの文字列長が長い場合、メールアドレスから優先的に検出を行うものとしても良い。このとき、個人情報辞書にて構成要素項目ごとに保存されている場合、各構成要素項目で入力データに対し検索を行う。例えば図２（ｂ）に示された個人情報辞書３０にて、氏名が「姓」「名」として分割された構成要素項目の組み合わせとして保存されている場合、「姓」、「名」それぞれの構成要素項目の文字列をキーとして入力データ１０全体を対象に検索を行い、検索された文字列を文字列変換の候補文字列として検出する。また、個々の構成要素項目単位で検索を行うだけでなく、各構成要素項目の構成単位を結合した個人情報文字列で検索を行うとしても良い。
【００２２】
マスク対象判定部５０は、個人情報検出部４０によって検出された候補文字列を文字列変換の対象とするか否かを判定する。
【００２３】
ここで、文字列変換の対象とするか否かを判定する原理について説明する。
【００２４】
個人情報辞書３０に登録されている個人情報文字列の各構成要素項目単位で検出を行うため、個人情報文字列の構成要素項目に一致する文字列は、全て文字列変換の候補文字列として検出される。
【００２５】
例えば、個人情報辞書３０に電話番号「046‐123‐4567」が「046」、「123」、「4567」として項目に分解されて登録されている場合、入力データ１０に含まれる「046」、「123」、「4567」の文字列が文字列変換の候補となる。このとき、入力データ１０中に「ID:046」や「width=“123”」、「人口4567人」といった文字列を含んだ箇所が存在する場合、本来個人情報ではないこれらの箇所についても文字列変換の候補として検出されてしまうことになる。
【００２６】
そこで、個人情報検出部４０にて検出された候補文字列をもとに、誤検出された候補文字列であるか、個人情報としてマスクすべき候補文字列であるか判定を行う。
【００２７】
入力データである電子文書がHTMLの形式である場合、マスク対象判定部５０は図３のようなドキュメントツリーを生成する。なお、図３では、HTMLの一部の箇所を表示している。
【００２８】
ドキュメントツリーは、トップノード、HTMLタグに対応する要素ノード、HTML中のテキストに対応するテキストノード、及びHTMLタグ中の属性に対応する属性ノードから構成される。
【００２９】
このうち、個人情報などのWebサイトを閲覧するユーザによって変動する情報は、テキストノード、または、属性ノードの属性値中に記述される。
【００３０】
なお、要素ノードは、HTMLタグの種類により２種類に大別できる。見出し、段落などの文書を構成するタグとして「ブロックレベル要素」のHTMLタグと、ブロックレベル要素内の特定部分に何らかの役割を与えるタグとしての「インライン要素」のHTMLタグである。
【００３１】
通常、「電話番号」などの複数の構成要素項目に分割できるものは、各構成要素項目の間に多数のブロックレベル要素のHTMLタグが挟まれることは少ない。
【００３２】
例えば、上記図３の例のように、電話番号「046-123-4567」がページ中に記載される際、「046」と「123」、「123」と「4567」との間には、インライン要素のHTMLタグが存在することはあっても、多数のブロックレベル要素のHTMLタグが含まれることは少ない。
【００３３】
また、ドキュメントツリーに展開したとき、ブロックレベル要素の要素ノードの子ノード群に複数の構成要素項目が含まれ、組み合わせが成立している可能性が高い。
【００３４】
よって、候補文字列の判定の際、ブロックレベル要素の要素ノードの配下に注目し、該ノード配下の範囲に含まれる候補文字列によって、構成要素項目の組み合わせが成立する場合、当該候補文字列の組み合わせを文字列変換の対象として判定することで、正しくマスク処理を行うことが可能となる。
【００３５】
図４を用いて判定処理の具体例を説明する。
【００３６】
図４は、入力データであるＨＴＭＬデータをドキュメントツリーに展開した際の一部であり、該個人情報検出部４０にて候補文字列が検出された箇所が記録されている。
【００３７】
一部の構成要素項目である候補文字列が、ブロックレベル要素の要素ノードの配下の範囲に含まれる場合、構成要素項目の組み合わせ対象も含まれるかを判定する。
【００３８】
各ノードの先端側に近いブロックレベル要素の要素ノードの配下（図４の対象範囲：（１）−１参照）に、構成要素項目である候補文字列が含まれている場合、当該構成要素項目が含まれるノードと同一レベルのノード、または、子ノードの範囲に組み合わせ対象の構成要素項目の候補文字列が含まれるかを判定し、含まれる場合は、同一種類のノードに含まれる構成要素項目を優先し、構成要素項目の組み合わせを成立させて、文字列変換の対象とする。
【００３９】
該ブロックレベル要素の要素ノードの配下にて、構成要素項目のペアが成立しない場合は、さらに上層（親ノード）側にあるブロックレベル要素の要素ノード範囲（図４の対象範囲：（２）−１参照）にて、組み合わせ対象の構成要素項目の候補文字列を検出する。このとき、対象範囲（１）−１にて構成要素項目の組み合わせを成立させることができなかった構成要素項目が存在する場合は、対象範囲（１）−２を含めた範囲から組み合わせ対象となる構成要素項目を検出するものとする。
【００４０】
このようにして、ブロックレベル要素の要素ノード範囲を、末端側から上層側に向かって徐々に広げて、組み合わせ対象の構成要素項目の検出を行い、構成要素項目の組み合わせを成立させるものとする。
【００４１】
なお、図４の対象範囲（３）−１のように、子ノードの範囲の全てが組み合わせ判定済みである範囲については、組み合わせ判定をスキップし、さらに上層側にあるブロックレベル要素の要素ノード配下の範囲について、構成要素項目の組み合わせが成立するか判定し、組み合わせが成立したものをマスク対象（文字列変換の対象）とする。
【００４２】
マスク置換部６０は、マスク対象判定部５０によって文字列変換の対象と判定された候補文字列の組み合わせを他の文字列に置き換える。これにより入力データ１０に含まれる個人情報を特定できないようになる。このように個人情報がマスクされた入力データ１０は出力データ７０として出力される。
【００４３】
前記他の文字列は、事前に規定された文字列を用いて置き換えるとしても良いものとする。例えば、「＊」などの記号で置き換えても良い。また、文字列変換の対象の文字列を活用した他の文字列の例として、文字列変換の対象の文字列長と文字列変換の対象の文字列のハッシュ値、個人情報種類の識別文字列を用いた文字列でも良い。
【００４４】
例えば、電話番号を表す文字列「0461234567」が文字列変換の対象である場合、文字列長は「6」であり、ハッシュ値の先頭4文字は「AB1B」となる。電話番号の識別文字列として、「telephone」のハッシュ値の先頭４文字を使うとした場合、これらから生成される「*6:AB1B*b9bb*」を、前記他の文字列として使うとしても良い。
【００４５】
なお、ハッシュ値を用いることで、該他の文字列に置換後、該当箇所の文字列が元々どのような文字列であったか、第３者が推察することが困難となる。
【００４６】
＜文字列変換装置の作用＞
第１の実施の形態の文字列変換装置１に、入力データとしての電子文書（ＨＴＭＬデータ）が入力されると、文字列変換装置１において、図５に示す、マスク置換処理ルーチンが実行される。
【００４７】
まず、ステップＳ１において、入力データ読込部２０は、入力データ１０（例えば個人情報を含むＷｅｂページ閲覧履歴データ）を受け付けると、このデータを読み込み、メモリの内部データとして保存する。
【００４８】
そして、ステップＳ２において、個人情報検出部４０は上記ステップＳ１で保存された入力データ１０から個人情報辞書３０に含まれる個人情報の各構成要素項目の文字列と一致する文字列を、文字列変換の候補文字列として各々検出する。
【００４９】
ステップＳ３では、マスク対象判定部５０は上記ステップＳ１で保存された入力データを展開したドキュメントツリーを生成する。
【００５０】
ステップＳ４では、マスク対象判定部５０は、上記ステップＳ３で生成したドキュメントツリーに基づいて、上記ステップＳ２で検出された候補文字列の各々を文字列変換の対象とするかを判定する。
【００５１】
図６を参照しながら上記ステップＳ４を実現する処理ルーチンについて説明する。個人情報の項目毎に、以下の処理ルーチンが繰り返し実行される。ここでは入力データ１０がＨＴＭＬ文書であり、この文書から検出された個人情報の項目「電話番号」に対して処理ルーチンが実行される場合について説明する。
【００５２】
ステップＳ４１において、入力データ１０であるＨＴＭＬ文書から、上記ステップＳ２によって検出された候補文字列のうち、ある一つの項目に対応する候補文字列を読み込む。例えば上記ステップＳ２で検出された電話番号「046‐123‐4567」を構成する構成要素項目の文字列「046」、「123」、「4567」をそれぞれp1、p2、p3としたとき、これらを文字列変換の候補文字列として読み込む。例えば、p1として検出された文字列変換の候補をmaskTargetP1と定義すると、前記ＨＴＭＬ文書におけるｐ１の記載箇所を例えば登場順にmaskTargetP1(1)，maskTargetP1(2)，…，maskTargetP1(n)と定義して読み込む。また、読み込んだ候補文字列の記載箇所を、上記ステップＳ３で生成したドキュメントツリーにおいて記録する。
【００５３】
そして、ステップＳ４２において、上記ステップＳ４１で読み込んだ候補文字列の項目が、複数の構成要素項目で構成される個人情報の項目であるか否かを判定する。一つの構成要素項目で構成される個人情報の項目である場合には、当該候補文字列が、文字列変換の対象であると判断し、後述するステップＳ４８へ移行する。一方、複数の構成要素項目で構成される個人情報の項目である場合には、ステップＳ４３へ移行する。
【００５４】
ステップＳ４３では、ドキュメントツリーにおいて、上記ステップＳ４１で読み込んだ候補文字列が含まれる、各ノードの先端側に近いブロックレベル要素の要素ノードの配下のそれぞれから、当該候補文字列の構成要素項目に対して組み合わせ対象となる構成要素項目の候補文字列を求める。すなわち、候補文字列が検出されたノードと同一レベルのノード又は子ノードの範囲から、組み合わせ対象の構成要素項目の候補文字列を求める。
【００５５】
そして、ステップＳ４４において、上記ステップＳ４３で構成要素項目の組み合わせが成立したか否かを判定する。構成要素項目の組み合わせが成立した候補文字列の組み合わせについては、文字列変換の対象であると判断し、ステップＳ４８へ移行する。一方、構成要素項目の組み合わせが成立していない候補文字列が存在する場合については、ステップＳ４５へ移行する。
【００５６】
ステップＳ４５では、構成要素項目の組み合わせが成立していない候補文字列が含まれる、各ノードの先端側に近いブロックレベル要素の要素ノードより、更に上層（親ノード）側にあるブロックレベル要素の要素ノードの配下の範囲から、組み合わせ対象の構成要素項目の候補文字列を求める。また、組み合わせ対象の構成要素項目の候補文字列が見つからない場合には、更に上層側にあるブロックレベル要素の要素ノードの配下の範囲から、組み合わせ対象の構成要素項目の候補文字列を求める。このように、組み合わせ対象の構成要素項目の候補文字列が見つかるまで、検出範囲を、徐々に上層側のブロックレベル要素の要素ノードの配下の範囲に広げ、組み合わせ対象の構成要素項目の候補文字列が見つからない場合には、ドキュメントツリーのトップノードの配下の範囲に広げるまで繰り返す。
【００５７】
そして、ステップＳ４６において、上記ステップＳ４５で構成要素項目の組み合わせが成立したか否かを判定する。構成要素項目の組み合わせが成立した候補文字列の組み合わせについては、文字列変換の対象であると判断し、ステップＳ４８へ移行する。一方、構成要素項目の組み合わせが成立していない候補文字列が存在する場合については、ステップＳ４７において、当該候補文字列を、文字列変換の対象外（マスク対象外）とする。
【００５８】
ステップＳ４８では、文字列変換の対象であると判断された候補文字列、あるいは候補文字列の組み合わせを出力し、処理ルーチンを終了する。
【００５９】
そして、図５のマスク置換処理ルーチンにおけるステップＳ５において、マスク置換部６０は、上記ステップＳ４で文字列変換の対象と判定された候補文字列あるいは候補文字列の組み合わせを、所定の他の文字列に置き換え、マスク置換処理ルーチンを終了する。これにより入力データ１０に含まれる個人情報を特定できないようになる。このように個人情報がマスクされた入力データ１０は出力データ７０として出力される。
【００６０】
以上説明したように、本発明の第１の実施の形態に係る文字列変換装置によれば、電子文書のドキュメントツリーにおける同一レベルのノードまたは子ノードの範囲に含まれる、文字列変換の候補文字列と、組み合わせ対象の構成要素項目に対応する文字列変換の候補文字列との組み合わせを、文字列変換の対象として、マスク文字列に置き換えることにより、不必要なマスク処理を行うことなく電子文書に含まれる個人情報を適切にマスク処理することができる。
【００６１】
また、入力されたＷｅｂ閲覧履歴データにおけるデータ構成内容をもとに、個人情報文字列を検出し、文字列変換の対象とするか否かの判定を行うことで、誤マスクを減らし、適切にマスク処理を行うことを可能とする。これにより、個人情報保護を実現しつつ、ユーザのWeb閲覧履歴収集を可能とする。
【００６２】
［第２の実施の形態］
＜システム構成＞
次に、第２の実施の形態について説明する。なお、第１の実施の形態と同様の構成となる部分については、同一符号を付して説明を省略する。
【００６３】
一般的に、E-コマースサイトなどのWebサイトを閲覧する場合、個人情報が表示されるページの構成パターンは限定的なパターン数となり、そのページ内で必要とされる個人情報種類も限定される。
【００６４】
そこで、第２の実施の形態では、あるユーザが文字列変換装置を用いてWeb閲覧履歴に含まれる個人情報をマスク処理する際、ページ内に含まれる個人情報の種類情報を事前に取得することにより、マスク処理漏れを防ぐことを可能とする。
【００６５】
図７に示された第２の実施の形態に係るネットワークシステム２００はシステム内に存在する全てのユーザＰＣ２において文字列変換装置１を実装させている。個々のユーザＰＣ２はそのハードウェアリソースがソフトウェアリソースと協働することにより図１に示された文字列変換装置１の機能部２０〜６０を実装している。ユーザＰＣ２を所有するクライアントの個人情報は、予め個人情報辞書３０に項目毎（例えば「氏名」「電話番号」「携帯電話番号」「クレジットカード番号」「郵便番号」「メールアドレス」「住所」）に格納される。
【００６６】
ユーザＰＣ２はインターネット４を介して重点マスク情報蓄積サーバ３と通信可能となっている。サイト毎に含まれる個人情報の種類が、重点マスク個人情報３０１として、予め重点マスク情報データベース３０２に格納される。
【００６７】
あるユーザがユーザＰＣ２にてWebサイトのあるページを閲覧した際に個人情報が含まれる場合、ユーザＰＣ２は、当該WebサイトのＵＲＬを含む閲覧ページ情報２０１を送信して、該ＵＲＬについて重点マスク情報蓄積サーバ３に問い合わせを行い、該ＵＲＬ中に含まれる可能性がある個人情報種類を含む重点マスク情報２０２を取得する。
【００６８】
ユーザＰＣ２上では、該ＵＲＬのページ中に含まれる個人情報文字列を、上記の第１の実施の形態と同様に検出する。その際、重点マスク情報蓄積サーバ３から得た重点マスク情報２０２を用いることで、重点マスク情報２０２に含まれる種類の個人情報が、個人情報辞書３０に登録されていない場合は、ユーザに注意を促し、マスク処理漏れを防ぐことが可能となる。
【００６９】
また、本ネットワークシステム２００においてはＷｅｂ閲覧履歴収集サーバ５がインターネット４を介してユーザＰＣ２からＷｅｂ閲覧履歴データ２０３を取得できるようになっている。Ｗｅｂ閲覧履歴データ２０３に含まれる個人情報はユーザＰＣ２が実行する上記図５のマスク置換処理ルーチンによりマスク処理されている。
【００７０】
マスク処理が完了した時点で、ユーザＰＣ２は、Ｗｅｂ閲覧履歴収集サーバ５にマスキング処理後のＷｅｂ閲覧履歴データ２０３を送付する。
【００７１】
この際、ユーザＰＣ２は、Ｗｅｂ閲覧履歴収集サーバ５に送信するＷｅｂ閲覧履歴データ２０３に含まれるマスク文字列（上記の他の文字列）に、マスク処理を行った個人情報の種類情報を識別可能とする識別情報を組み込む。これによって、Ｗｅｂ閲覧履歴収集サーバ５に蓄積されたデータをもとに、重点マスク情報を解析することが可能となる。例えば、文字列変換の対象であると判定された候補文字列が、個人情報の項目「電話番号」の文字列と一致する場合には、前述のマスク文字列に対し、個人情報種類識別子としてtelephoneのハッシュ値の一部「b9bb」を組み込み、「*b9bb*6:AB1B*」等としても良い。
【００７２】
図７のマスク情報解析サーバ６では、Ｗｅｂ閲覧履歴収集サーバ５に蓄積される複数ユーザのマスク処理後のＷｅｂ閲覧履歴データ２０３について該マスク文字列を検出し、検出頻度の高いURLを求めることで、個人情報が多数含まれるWebページのURL情報を求めることが可能となる。このURL情報と、検出されたマスク文字列から求められる個人情報種類情報とを重点マスク情報蓄積サーバ３に蓄積し、ユーザからのアクセス時に重点マスク情報２０２として配布することで、マスク漏れを減少させることが可能となる。
【００７３】
なお、マスク情報解析サーバ６において、マスク情報が検出される頻度の高いURLでの、マスク文字列が含まれるドキュメントツリーのノード情報を解析し、出現頻度の高いノード情報を求めることで、該ＵＲＬにおける個人情報を含む可能性の高いノード情報を求めるようにしてもよい。この場合には、該ＵＲＬとノード情報とを重点マスク情報蓄積サーバ３に蓄積し、重点ノード情報として配布するようにしても良い。
【００７４】
また、ユーザＰＣ２からＵＲＬ情報とマスク処理した個人情報の種類情報とを重点マスク情報蓄積サーバ３に送付するようにしても良い。この場合、重点マスク情報蓄積サーバ３にて、複数のユーザからのマスク処理結果データから該URL中に含まれる可能性の高い個人情報種類を算出し、重点マスク情報２０２として蓄積することが可能となる。
【００７５】
本発明は、上記実施の形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
【００７６】
例えば、組み合わせが成立した候補文字列の組み合わせから、最終的にペアを決定する際、当該候補文字列の組み合わせの間に含まれるブロックレベル要素のHTMLタグ数を用いて、ペア間の近さの評価を行うようにしてもよい。この場合には、ブロックレベル要素のHTMLタグ数が多いときに、Webページ表記上、遠いペアの組み合わせを選択していると評価することができる。よって、あるページについて複数ユーザのＷｅｂ閲覧履歴データが取得できる場合、該当ページにおいて組み合わせが成立した候補文字列のペア間のブロックレベル要素のHTMLタグ数の平均値を求めることで、該当ページのあるユーザのマスク処理において、候補文字列の組み合わせの間のブロックレベル要素のHTMLタグ数が平均値以上となる、候補文字列の組み合わせが存在する場合は、マスク対象外として判定することで、誤マスクを軽減することが可能となる。
【００７７】
また、本発明の実施の際、全ての処理をローカルPC上で実施するとしても良いし、ネットワークを介したサーバ上に個人情報辞書を配置するとしても良い。
【００７８】
また、ネットワークを介したサーバ上に個人情報辞書を配置することで、複数のクライアントPC上からネットワークを介して個人情報のパターン情報を参照することが可能となる。
【００７９】
また、マスク処理後のデータをローカルPC上に保存するとしても良いし、またネットワークを介してWeb閲覧履歴収集サーバに蓄積するとしても良い。
【００８０】
［本発明のプログラムとしての態様］
本発明は文字列変換装置１を構成する上記の機能部２０〜６０の一部若しくは全てとしてコンピュータを機能させるプログラムで構成しこれを当該コンピュータに実行させることで実現できる。または、文字列変換装置１が実行する上記のステップＳ１〜Ｓ５の一部若しくは全てをコンピュータに実行させるプログラムで構成しこれを当該コンピュータに実行させることで実現できる。そして、前記プログラムをそのコンピュータが読み取り可能な記録媒体、例えば、ＦＤ（Ｆｌｏｐｐｙ（登録商標）Ｄｉｓｋ）や、ＭＯ（Ｍａｇｎｅｔｏ‐Ｏｐｔｉｃａｌｄｉｓｋ）、ＲＯＭ（ＲｅａｄＯｎｌｙＭｅｍｏｒｙ）、メモリカード、ＣＤ（ＣｏｍｐａｃｔＤｉｓｋ）‐ＲＯＭ、ＤＶＤ（ＤｉｇｉｔａｌＶｅｒｓａｔｉｌｅＤｉｓｋ）‐ＲＯＭ、ＣＤ‐Ｒ、ＣＤ‐ＲＷ、ＨＤＤ、ＳＳＤ、リムーバブルディスクなどに記録して、保存したり、配布したりすることが可能である。さらに、上記のプログラムをインターネットや電子メールなど、ネットワークを介して提供することも可能である。
【符号の説明】
【００８１】
１     文字列変換装置
２     ユーザＰＣ
３     重点マスク情報蓄積サーバ
４     インターネット
５     閲覧履歴収集サーバ
６     マスク情報解析サーバ
１０   入力データ
２０   入力データ読込部
３０   個人情報辞書
４０   個人情報検出部
５０   マスク対象判定部
６０   マスク置換部
２００ ネットワークシステム
【図５】
0005676522.tif 000002
【図６】
0005676522.tif 000003
【図１】
0005676522.tif 000004
【図２】
0005676522.tif 000005
【図３】
0005676522.tif 000006
【図４】
0005676522.tif 000007
【図７】
0005676522.tif 000008