(58)【調査した分野】(Int.Cl.,DB名)
複数の端末のうちいずれかから、ネットワークを介して接続されるストレージに格納される複数の登録データのうちいずれかを特定する特定情報であって、ユーザの複数の属性のうち1または複数のそれぞれについての過去の属性値に基づくハッシュ値を含む登録データを特定する特定情報を取得する特定手段と、
前記複数の端末のうち前記いずれかから、前記ユーザの複数の属性のうち1または複数のそれぞれについての属性値を取得する属性取得手段と、
前記1または複数の属性のそれぞれについて、前記取得された属性値に基づくハッシュ値を生成するハッシュ生成手段と、
前記特定情報に基づいて、前記ストレージから登録データを取得する登録データ取得手段と、
前記取得された登録データにハッシュ値が含まれる属性でありかつ前記属性取得手段により属性値が取得された属性について、前記生成されたハッシュ値と、前記取得されたハッシュ値とを比較する比較手段と、
前記比較の結果に基づいて、前記比較された属性の属性値に変更があったか否かを示す情報を出力する変更出力手段と、
前記ユーザの複数の属性のうち前記1または複数のそれぞれについて前記属性取得手段により取得された属性値に基づくハッシュ値を含む登録データを生成する登録データ生成手段と、
前記ユーザの複数の属性のうち前記1または複数のそれぞれについて前記属性取得手段により取得された属性値に基づくハッシュ値を含む登録データを、前記特定情報により特定される登録データに関連付けて前記ストレージに格納する登録手段と、
を含み、
前記登録データ生成手段は、前記ユーザの複数の属性のうち住所または勤務先に関する属性について取得された属性値の一部を抽出し、前記抽出された属性値に基づくハッシュ値を生成する、
ユーザ情報管理システム。
複数の端末のうちいずれかから、ネットワークを介して接続されるストレージに格納される複数の登録データのうちいずれかを特定する特定情報であって、ユーザの複数の属性のうち1または複数のそれぞれについての過去の属性値に基づくハッシュ値を含む登録データを特定する特定情報を取得するステップと、
前記複数の端末のうち前記いずれかから、前記ユーザの複数の属性のうち1または複数のそれぞれについての属性値を取得するステップと、
前記1または複数の属性のそれぞれについて、前記取得された属性値に基づくハッシュ値を生成するステップと、
前記特定情報に基づいて、前記ストレージから登録データを取得するステップと、
前記取得された登録データにハッシュ値が含まれる属性でありかつ前記属性値が取得された属性について、前記生成されたハッシュ値と、前記取得されたハッシュ値とを比較するステップと、
前記比較の結果に基づいて、前記比較された属性の属性値に変更があったか否かを示す情報を出力するステップと、
前記ユーザの複数の属性のうち前記1または複数のそれぞれについて前記取得された属性値に基づくハッシュ値を含む登録データを生成するステップと、
前記ユーザの複数の属性のうち前記1または複数のそれぞれについて前記取得された属性値に基づくハッシュ値を含む登録データを、前記特定情報により特定される登録データに関連付けて前記ストレージに格納するステップと、
を含み、
前記登録データを生成するステップでは、前記ユーザの複数の属性のうち住所または勤務先に関する属性について取得された属性値の一部を抽出し、前記抽出された属性値に基づくハッシュ値を生成する、
を含むユーザ情報管理方法。
複数の端末のうちいずれかから、ネットワークを介して接続されるストレージに格納される複数の登録データのうちいずれかを特定する特定情報であって、ユーザの複数の属性のうち1または複数のそれぞれについての過去の属性値に基づくハッシュ値を含む登録データを特定する特定情報を取得する特定手段、
前記複数の端末のうち前記いずれかから、前記ユーザの複数の属性のうち1または複数のそれぞれについての属性値を取得する属性取得手段、
前記1または複数の属性のそれぞれについて、前記取得された属性値に基づくハッシュ値を生成するハッシュ生成手段、
前記特定情報に基づいて、前記ストレージから登録データを取得する登録データ取得手段、
前記取得された登録データにハッシュ値が含まれる属性でありかつ前記属性取得手段により属性値が取得された属性について、前記生成されたハッシュ値と、前記取得されたハッシュ値とを比較する比較手段、
前記比較の結果に基づいて、前記比較された属性の属性値に変更があったか否かを示す情報を出力する変更出力手段、
前記ユーザの複数の属性のうち前記1または複数のそれぞれについて前記属性取得手段により取得された属性値に基づくハッシュ値を含む登録データを生成する登録データ生成手段、および、
前記ユーザの複数の属性のうち前記1または複数のそれぞれについて前記属性取得手段により取得された属性値に基づくハッシュ値を含む登録データを、前記特定情報により特定される登録データに関連付けて前記ストレージに格納する登録手段、
としてコンピュータを機能させ、
前記登録データ生成手段は、前記ユーザの複数の属性のうち住所または勤務先に関する属性について取得された属性値の一部を抽出し、前記抽出された属性値に基づくハッシュ値を生成する、
プログラム。
【発明を実施するための形態】
【0020】
以下では、本発明の実施形態を図面に基づいて説明する。同じ符号を付された構成に対しては、重複する説明を省略する。本実施形態では、複数の組織(例えば証券会社、病院、商店など)のそれぞれが顧客管理システムを有している。また複数の組織のそれぞれは身分証などを確認する窓口や部署を有し、その組織はその窓口等を介してユーザの本人確認をし、その本人確認の際に取得したユーザ情報を顧客管理システムの内に保管し管理している。ユーザ情報は、いわゆる個人情報を含んでよい。
【0021】
図1は、本発明の実施形態にかかる顧客管理システムと他のシステムとの関係を示す図である。顧客管理システム1a,1b,1cは、それぞれ互いに異なる組織が使用するものである。分散型台帳ノード2a,2b,2cはそれぞれ顧客管理システム1a,1b,1cに対応して設けられている。複数の端末3はユーザにより操作されるスマートフォンなどのコンピュータであってもよいし、組織に配置される据え置き型のコンピュータであってもよい。以下では、顧客管理システム1a,1b,1cを総称して顧客管理システム1と記載する。
図1には3つの顧客管理システム1が記載されているが、顧客管理システム1の数はいくつであってもよい。
【0022】
分散型台帳ノード2a,2b,2cは、それぞれ顧客管理システム1a,1b,1cとネットワークを介して接続されている。分散型台帳ノード2a,2b,2cを総称して分散型台帳ノード2と記載する。分散型台帳ノード2のそれぞれは、1または複数のサーバコンピュータにより構成されている。分散型台帳ノード2は、分散型台帳管理技術(DLT)、いわゆるブロックチェーン技術を用いたストレージ(分散型台帳)を提供する。いずれかの分散型台帳ノード2に格納されるデータが変更されると、他の分散型台帳ノード2にもその変更が反映され、どの分散型台帳ノード2に格納されるデータは常に同期されている。分散型台帳ノード2の分散型台帳には、複数の登録データが格納される。登録データの詳細については後述する。分散型台帳ノード2の数は1以上のいくつであってもよく、複数の顧客管理システム1が1つの分散型台帳ノード2に接続されてもよい。
【0023】
図2は、顧客管理システム1のハードウェア構成の一例を示す図であり、顧客管理システム1が一つのサーバコンピュータにより構成される場合の例である。顧客管理システム1は、プロセッサ11、記憶部12、通信部13、入出力部14を含む。顧客管理システム1は複数のサーバコンピュータにより実現されてもよい。
【0024】
プロセッサ11は、記憶部12に格納されているプログラムに従って動作する。またプロセッサ11は通信部13、入出力部14を制御する。なお、上記プログラムは、インターネット等を介して提供されるものであってもよいし、フラッシュメモリやDVD−ROM等のコンピュータで読み取り可能な記憶媒体に格納されて提供されるものであってもよい。
【0025】
記憶部12は、RAMおよびフラッシュメモリ等のメモリ素子とハードディスクドライブのような外部記憶装置とによって構成されている。記憶部12は、上記プログラムを格納する。また、記憶部12は、各部から入力される情報や演算結果を格納する。
【0026】
通信部13は、他の装置と通信する機能を実現するものであり、例えば有線LANの集積回路などにより構成されている。通信部13は、プロセッサ11の制御に基づいて、他の装置から受信した情報をプロセッサ11や記憶部12に入力し、他の装置に情報を送信する。
【0027】
入出力部14は、表示出力デバイスをコントロールするビデオコントローラや、入力デバイスからのデータを取得するコントローラなどにより構成される。入力デバイスとしては、キーボード、マウス、タッチパネルなどがある。入出力部14は、プロセッサ11の制御に基づいて、表示出力デバイスに表示データを出力し、入力デバイスをユーザが操作することにより入力されるデータを取得する。表示出力デバイスは例えば外部に接続されるディスプレイ装置である。
【0028】
端末3と分散型台帳ノード2を構成するサーバコンピュータとは、顧客管理システム1と同様に、プロセッサ11、記憶部12、通信部13、入出力部14を含む。
【0029】
図3は、顧客管理システム1および端末3が実現する機能を示すブロック図である。端末3は、機能的に、ユーザ情報送信部51、既登録情報送信部52、情報格納部53を含む。これらの機能は、端末3に含まれるプロセッサ11が記憶部12に格納されるプログラムを実行し、通信部13などを制御することにより実現される。
【0030】
ユーザ情報送信部51は、顧客管理システム1へ向けて、ユーザ情報を送信する。ユーザ情報は、会員登録に必要な情報であり、例えば健康保険証や身分証明書に記載された氏名、住所、職業のような1または複数の属性のそれぞれについての属性値を含む。属性値の設定が可能な複数の属性は予め定められており、ユーザ情報には、その複数の属性のうち1または複数についての属性値が格納されている。ユーザ情報に、身分証明書に記載されておらずかつユーザが入力したユーザ情報(ユーザの属性の属性値)が含まれていてもよい。
【0031】
既登録情報送信部52は、顧客管理システム1へ向けて、すでに登録されている組織についての会員保持情報および最新のトークンを送信する。会員保持情報には、分散型台帳ノード2に登録されているデータを特定するための特定データと、変換パラメータとして用いられる情報が含まれている。会員保持情報、特定データ、変換パラメータおよびトークンの詳細は後述する。
【0032】
情報格納部53は、顧客管理システム1からいずれかの組織に登録されたユーザについての会員保持情報およびトークンを受信し、受信された会員保持情報および最新のトークンを記憶部12に格納する。
【0033】
顧客管理システム1は、機能的に、ユーザ情報取得部61、既登録情報取得部63、認証部68、登録変換パラメータ取得部71、新トークン発行部72、登録データ生成部73、登録部74、端末送信部75、比較ハッシュ生成部81、登録データ取得部82、比較部83、変更通知部84、顧客データベース91を含む。また既登録情報取得部63は、変換パラメータ取得部64、特定部65、トークン取得部66を含む。これらの機能は、顧客管理システム1に含まれるプロセッサ11が記憶部12に格納されるプログラムを実行し、通信部13を制御しつつ計算結果等を記憶部12に格納することにより実現される。
【0034】
ユーザ情報取得部61は、端末3のユーザ情報送信部51から送信される、ユーザ情報を取得する。既登録情報取得部62は、既登録情報送信部52から送信される会員保持情報および最新のトークンを受信する。より具体的には、変換パラメータ取得部64は会員保持情報に含まれる変換パラメータを取得し、特定部65は会員保持情報に含まれる特定データを取得する。またトークン取得部66は、端末3から送信されるトークンを取得する。
【0035】
認証部68は、トークン取得部66が取得したトークンと、分散型台帳ノード2のストレージに格納される最新のトークンのハッシュ値とに基づいて、ユーザを認証する。
【0036】
顧客データベース91は、主に記憶部12により実現され、ユーザ情報取得部61が取得したユーザ情報と、特定データを示す情報と、を格納する。
【0037】
登録変換パラメータ取得部71は、ユーザ情報から登録データに含まれるハッシュ値を生成する際に用いられる属性値の変換パラメータを取得する。登録データは分散型台帳ノード2に登録されるデータである。新トークン発行部72は、新たなトークンを発行する。登録データ生成部73は、登録データを生成する。登録データは、ユーザ情報に含まれる1または複数の属性の属性値に基づくハッシュ値、特定データ、新たなトークンのハッシュ値を含む。登録部74は、生成された登録データを分散型台帳ノード2に登録する。端末送信部75は、会員保持情報を端末3へ送信し、情報格納部53に格納させる。また端末送信部75は新たなトークンを端末3へ送信し、情報格納部53に含まれるトークンを更新させる。
【0038】
次に、顧客管理システム1の理解を容易にするために、顧客管理システム1を用いた顧客情報の管理の背景について説明する。
図4は、組織による情報の取得および登録の一例を示す図である。ここでは、各組織が顧客の本人確認を行い、その各組織の顧客管理システム1がその本人確認の際に取得したユーザ情報を分散型台帳ノード2が提供する分散型台帳に登録するものとする。この本人確認は、いわゆるKYC(Know Your Customer)の要件にしたがって行われるものを含んでいる。
【0039】
組織Aはオンライン証券を提供する会社であり、会員登録の際に実在の部署が身分証明書の確認と郵送による住所の確認とを行うことにより本人確認をし、本人確認がされたユーザの属性である、氏名、生年月日、住所、職業に関する情報(具体的には氏名等の属性値に基づくハッシュ値)を分散型台帳へ登録する。組織Bは医療機関であり、会員登録の一種である患者登録の際に医療保険証を確認するだけでなく、ユーザが医療機関を利用する際に最大で月に1回の頻度で医療保険証を確認する。分散型台帳には、氏名、職業、生年月日、および生存の有無に関する情報(具体的には氏名等の属性値に基づくハッシュ値)が登録される。組織Cは小売店舗または飲食店であり、店舗利用の際に会員カードを確認し、生存の有無に関する情報を分散型台帳に登録する。組織Dは通信会社であり、請求書を郵送し、それに対する支払いがあった場合に、そのユーザの氏名および住所は実在するとして分散型台帳へそれらに関する情報を登録する。
【0040】
次に、顧客管理システム1の処理の理解を容易にするために、その顧客管理システム1にかかわる通信等の概要について説明する。
図5は、ユーザが初めて組織Aに対して会員登録をする場合を説明する図である。ユーザと組織Aとの間でやり取りされる情報(および本人確認に関連する書類等)、顧客管理システム1の処理の概要、および分散型台帳とのやりとりの概要について説明する。
図5の例では、会員登録の際はじめに、(1)ユーザはオンラインで会員登録を依頼するとともに、本人確認のための本人確認書類を送付する。(2)組織Aが本人確認をすると、(3)顧客管理システム1はユーザの端末3から入力される、または、顧客管理システム1内の端末により本人確認情報から抽出されるユーザ情報を取得し、トークンを発行するとともに分散型台帳へ登録する登録データを生成する。トークンは、自組織および他組織を利用する際に認証に用いられる。
【0041】
図6は、組織Aの会員登録の際に登録される登録データの一例を示す図である。登録データは、会員情報ハッシュ、会員情報署名、署名公開鍵、本人確認項目、トークンのハッシュ、トークンの署名、トークン発行時刻を含む。
図6の内容欄において、関数hは引数からハッシュ関数により生成されるハッシュ値を示し、関数sigは引数とその組織の秘密鍵とから生成される電子署名を示す。署名公開鍵は、その電子署名に用いられた秘密鍵のペアとなる公開鍵であり、登録データには署名公開鍵としてその公開鍵を含む電子証明書が含まれてよい。
【0042】
会員情報ハッシュは、ユーザの1または複数の属性のそれぞれの属性値についてのハッシュ値を含み、具体的には、本人確認された1または複数の属性のそれぞれの属性値に変換パラメータを追加することで生成されるデータのハッシュ値を含む。また、会員情報ハッシュは、会員を特定する情報、かつ、登録データを特定する情報として組織IDおよび会員IDに基づくハッシュ値も含む。
【0043】
登録データが生成されると、顧客管理システム1は(4)登録データを分散型台帳ノード2の分散型台帳に登録し、さらに(5)会員保持情報およびトークンをユーザの端末3へ送信し、端末3の情報格納部53へ格納させる。
【0044】
図7は、ユーザへ渡されるデータの一例を示す図である。顧客管理システム1は、ユーザの端末3へ、会員保持情報として組織IDのハッシュ、会員IDのハッシュ、会員情報の全体に対するハッシュ、会員登録時刻を送信する。また顧客管理システム1は、ユーザの端末3へ、トークンとトークン発行時刻も送信する。
【0045】
組織IDのハッシュおよび会員IDのハッシュは、分散型台帳に登録される登録データを特定する特定データでもある。会員登録時刻とは、ユーザが組織Aの会員として組織Aの顧客管理システム1に登録される時刻をいう。また、会員登録時刻は、顧客管理システム1が会員情報の属性値に基づくハッシュを生成する際に、そのデータに追加される変換パラメータでもある。会員情報の属性値に基づくハッシュは、変換パラメータが追加されたデータのハッシュ値である。変換パラメータは分散型台帳には格納されていないので、変換パラメータを第三者が取得することは難しく、いわゆる辞書攻撃によりハッシュ値から実際の値を解読されることを防ぐことができる。また、顧客管理システム1は会員情報の全体に対するハッシュが、登録データの会員情報署名と整合するか確認することにより、端末3の情報が適正であるか確認する。
【0046】
図8は、ユーザが組織Aに対して会員登録した後に組織Bに対して会員登録をする場合を説明する図であり、
図5に対応する図である。
図8の例では、会員登録の際はじめに、(1)ユーザは窓口で会員登録を依頼するとともに、本人確認のための本人確認書類を提示し、さらに(2)他組織(組織A)の会員保持情報およびトークンを送信する。(3)組織Bが本人確認をすると、顧客管理システム1は(4)他組織の会員保持情報に含まれる特定データを取得し、その特定データに基づいて分散型台帳を検索し、(5)他組織の登録データを取得する。顧客管理システム1は(6)他組織の最新の登録データに含まれるトークンのハッシュTSを取得し、ユーザから入力されたトークンを認証し、さらに(7)ユーザから入力される会員保持情報が適正であるか確認する。認証および確認がされると、顧客管理システム1は(8)トークンを発行するとともに分散型台帳へ登録する登録データを生成する。顧客管理システム1は(9)登録データを分散型台帳ノード2の分散型台帳に、他組織の登録データに関連付けて登録し、さらに(10)会員保持情報およびトークンをユーザの端末3へ送信し、端末3の情報格納部53へ格納させる。
【0047】
図9は、組織Bの会員登録の際に登録される登録データの一例を示す図であり、
図10はユーザへ渡されるデータの一例を示す図である。
図6および7の例との大きな違いは、組織Aと組織Bとで会員情報ハッシュに格納されるユーザの属性が異なる、より具体的には住所に基づくハッシュがない点である。また、トークンおよびそのハッシュは
図6,7の例より新しく、変換パラメータは組織Bについての会員登録時刻であり、組織Aについての変換パラメータとは値が異なっている。
【0048】
次に、これまでに説明した情報のやり取りを実現する処理の詳細について説明する。
図11,12は、顧客管理システム1が会員登録の際に実行する処理を示すフロー図である。はじめに、ユーザ情報取得部61は、端末3から送信されたユーザ情報を取得する(ステップS201)。ユーザ情報は、例えば、氏名や住所、職業である。取得されるユーザ情報の項目は、組織に応じて異なってよい。また、ユーザ情報取得部61は、ユーザ情報をそのユーザを識別する会員IDと関連付けて顧客データベース91に格納する。
【0049】
図19は顧客データベース91に格納されるデータの一例を示す図である。
図19は、組織Bに登録される1つのユーザについて顧客データベース91に格納されるデータを示している。格納されるユーザのデータは、会員IDと、氏名、職業などのユーザ情報と、会員登録時刻と、他組織のそれぞれに関する情報とを含む。他組織のそれぞれに関する情報は、組織IDに基づくハッシュ(
図19の「他組織1組織ID」参照)と、他組織におけるユーザの会員IDに基づくハッシュ(
図19の「他組織1会員ID」参照)と、他組織における変換パラメータ(
図19の「他組織1変換パラメータ」参照)とを含む。他組織の組織IDに基づくハッシュと、他組織におけるユーザの会員IDに基づくハッシュとは、特定データを構成する。また、顧客データベース91に格納される会員IDは、自組織の登録データを特定する特定データを示す情報でもある。会員IDから、会員IDに基づくハッシュ値と自組織の組織IDに基づくハッシュ値とからなる特定データを生成することができるからである。
【0050】
そして、既登録情報取得部63は、他組織について会員登録されているか否かを判定する(ステップS202)。より具体的には、既登録情報取得部63は、端末3の既登録情報送信部52から取得した、他組織の会員情報の有無を示す情報に基づいて、このユーザが他組織について会員登録されているか否かを判定する。他組織の会員情報の有無を示す情報は、単に既登録情報送信部52から会員保持情報を受信したか否かを示す情報であってもよい。他組織について会員登録がされた場合には(ステップS202のY)、既登録情報取得部63および認証部68はステップS203からステップS210の処理を実行する。このケースは
図8の例に相当する。他組織について会員登録がされていない場合には(ステップS202のN)、ステップS203からステップS210の処理はスキップされる。こちらの例は
図5の例に相当する。
【0051】
ステップS203では、既登録情報取得部63は端末3の既登録情報送信部52から、ユーザが他組織に会員登録をした際に受け取った会員保持情報と最新のトークンとを含むデータを取得する。既登録情報送信部52が1つの他組織について送信する会員保持情報は、
図7に示されるデータからトークンおよびトークン発行時刻を除いたものであり、既登録情報送信部52は各組織の情報とは別に最新のトークンを送信する。変換パラメータ取得部64は、取得されたデータから変換パラメータ(具体的には会員登録時刻)を取得する。特定部65は、取得されたデータから特定データ(具体的には組織IDハッシュおよび会員IDハッシュ)を取得する。トークン取得部66は、取得されたデータからトークンを取得する。
【0052】
次に、認証部68は、分散型台帳ノード2の分散型台帳(ストレージ)に格納される、取得された特定データにより特定されるこのユーザに関する他組織の登録データを取得し、さらにその登録データまたは関連付けられた登録データから最新のトークンのハッシュTSを取得する(ステップS204)。認証部68は、端末3から送信されたデータに含まれる最新のトークンのハッシュTUを生成する(ステップS205)。認証部68は、ハッシュTSとハッシュTUとを比較する(ステップS206)。ハッシュTSとハッシュTUとが異なる場合は(ステップS206のN)、認証部68は端末3のトークンは不正であるので、認証失敗のメッセージを端末3に向けて通知する(ステップS207)。
【0053】
一方、ハッシュTSとハッシュTUとが同じ場合は(ステップS206のN)、認証部68は端末3から送信された会員情報全体ハッシュが適正であるか確認する。より具体的には、認証部68は、他組織の登録データから会員情報署名を取得する(ステップS208)。認証部68は他組織の会員情報署名を用いて、その他組織について端末3から受け取った会員保持情報(具体的には会員情報全体ハッシュ)を検証する(ステップS209)。電子署名に基づく検証については、改ざんやなりすましを防ぐ技術として公知であるので説明を省略する。検証により会員保持情報が不正であると判断された場合には(ステップS210のN)、認証部68は認証失敗のメッセージを通知する(ステップS207)。
【0054】
他組織の会員登録がされていないと判定された場合(ステップS206のN)、または、電子署名により会員保持情報が正しいと判断された場合(ステップS210のY)には、顧客管理システム1は分散型台帳に新たな登録データを登録し、さらに端末3に会員保持情報などを格納させるために以下の処理を実行する。
【0055】
はじめに、登録変換パラメータ取得部71は、例えば顧客データベース91から、登録用の変換パラメータ(具体的には自組織についてのユーザの会員登録時刻)を取得する(ステップS212)。新トークン発行部72は新たなトークンを発行する(ステップS213)。登録データ生成部73は、ユーザ情報に含まれる1または複数の属性のそれぞれの属性値に対して、登録用の変換パラメータを追加し、またその1または複数の属性のそれぞれについて、登録用の変換パラメータが追加された属性値のハッシュRを生成し、登録データ生成部73は、特定データを取得する(ステップS214)。登録データ生成部73は、組織IDと会員IDについて同様の手法でハッシュを生成することにより特定データを取得する。なお、ハッシュRおよび特定データは登録データの会員情報ハッシュを構成する。なお、顧客管理システム1の登録データ生成部73が特定データを生成する代わりに、端末3が顧客管理システム1から特定データの生成に必要な情報(具体的には組織IDおよび会員ID)を取得し、端末3がそれらに基づくハッシュを生成し、情報格納部53に格納してもよい。
【0056】
次に、登録データ生成部73は、ユーザ情報に含まれる1または複数の属性のそれぞれについてのハッシュRからなる会員情報ハッシュと、特定データと、新たなトークンのハッシュTNと、を含む登録データを生成する(ステップS215)。
図6,9からわかるように、登録データ生成部73により生成される登録データには、上記のものに加え、会員情報全体ハッシュの電子署名である会員情報署名と、署名公開鍵と、本人確認項目と、トークンのハッシュTNの電子署名とトークンの発行時刻とが含まれている。会員情報全体ハッシュは、会員情報ハッシュに含まれる1または複数のハッシュRおよび特定データを連結したデータのハッシュ値である。
【0057】
ここで、登録データ生成部73は、ユーザ情報に含まれる1または複数の属性のそれぞれのうち予め定められた属性について、予め定められた手順にしたがってその属性値を加工し、加工された属性値に基づいてハッシュRを生成してもよい。例えば、登録データ生成部73は、日付に関する属性について、取得された属性値を所定のフォーマットに変換し、変換された属性値に基づいてハッシュRを生成してもよい。また、登録データ生成部73は、住所に関する属性について取得された属性値のうち、郵便番号や地方自治体名などのより広範な範囲を示す部分を抽出し、前記抽出された部分に基づくハッシュRを生成してもよいし、勤務先に関する属性について取得された属性値から、株式会社などの定型的な記載を取り除いた文字列を取得し、その文字列に基づくハッシュRを生成してもよい。
【0058】
登録データが生成されると、登録部74は、分散型台帳に登録された他組織の登録データ(この登録データは特定部65が取得した特定データに基づいて特定される)に関連付けて、生成された登録データを分散型台帳ノード2の分散型台帳に登録する(ステップS216)。なお、他組織の登録データが存在しない場合には、登録部74は単に生成された登録データを分散型台帳ノード2の分散型台帳に登録する(ステップS216)。
【0059】
そして、端末送信部75は、ユーザ情報に含まれる1または複数の属性のそれぞれについてのハッシュRと、特定データと、登録用変換パラメータとを含むデータをユーザの端末3へ送信し、そのデータを情報格納部53に格納させる(ステップS217)。また端末送信部75は生成された新たなトークンを端末3へ送信し、その新たなトークンを端末3の情報格納部53に格納させる(ステップS218)。そして、会員登録にかかる処理が終了する。
【0060】
これまでに説明した会員登録の処理により、分散型台帳にはあるユーザについて登録される複数の組織についての登録データが互いに関連付けられ、しかも、その登録データには、顧客のユーザ情報に基づくハッシュが含まれている。顧客管理システム1がユーザから取得した複数の属性の属性値と、登録データに含まれるハッシュと、から、ユーザの住所などの属性が変更されたか否かをより簡易かつ確実に認識することが可能である。以下ではその手法について説明する。
【0061】
図13は、ユーザ情報の変更の検出にかかる処理を示すフロー図である。
図13に示される処理は、会員登録が行われる際に実行されてもよいし、予め定められた期間ごとに(例えば月に1回)実行されてもよい。
【0062】
はじめに、比較ハッシュ生成部81は、ユーザから入力されユーザ情報取得部61が取得したユーザ情報を取得する(ステップS401)。比較ハッシュ生成部81は、ユーザ情報取得部61が取得し、顧客管理システム1内の顧客データベース91に格納したユーザ情報を取得してよい。次に、比較ハッシュ生成部81は、変換パラメータ取得部64により取得された変換パラメータを取得する(ステップS402)。この変換パラメータに関して、予め変換パラメータ取得部64が、会員登録の際にユーザの端末3から送信される、ユーザが他組織に会員登録をした際に受け取った会員保持情報に含まれる変換パラメータと他組織の組織IDに基づくハッシュと、他組織の会員IDに基づくハッシュとを、顧客管理システム1の顧客データベース91に、ユーザと関連付けて格納してよい(
図19参照)。この場合、比較ハッシュ生成部81は、顧客データベース91からユーザに関連付けられた変換パラメータおよび組織IDを取得する。なお、比較ハッシュ生成部81は、顧客データベース91から他組織の組織IDおよび他組織の会員ID、つまり特定データそのものを取得してもよい。
【0063】
また、登録データ取得部82は、分散型台帳ノード2の分散型台帳から、ユーザについて登録された登録データを取得する(ステップS403)。登録データ取得部82は、特定部65が取得した他組織の特定データに基づいて他組織の登録データを取得してよい。登録データ取得部82は、自組織の登録データが存在する場合には、その登録データを特定する特定データに基づいて、その登録データに関連付けられた他組織の登録データを取得してもよい。また取得される登録データの数は1または複数であってよいし、登録データが登録された時刻(トークン発行時刻で代用できる)が顧客管理システム1において内部の顧客データベース91にこのユーザの情報を登録した時刻より後である場合に限ってその登録データが取得されてもよい。なお、登録データの関連付けには特定部65により取得される特定データが用いられているため、他組織の登録データの取得には、その特定部65により取得される特定データが重要な役割を果たしている。
【0064】
1または複数の登録データが取得されると、比較部83は、取得された登録データのうち、1番目の登録データを選択する(ステップS404)。そして、比較ハッシュ生成部81は、複数の属性のうち、ステップS401で取得されたユーザ情報に含まれる属性であり、かつ、選択された登録データの会員情報ハッシュにハッシュCSが含まれる属性を検出する(ステップS405)。比較ハッシュ生成部81は、その検出された属性について、ユーザ情報の属性値と変換パラメータとに基づくハッシュCUを生成する(ステップS406)。もちろんハッシュCUはハッシュCSを生成するのと同じ手法により生成される。またハッシュCUの生成に用いられる変換パラメータは、ステップS402で取得された変換パラメータのうち、選択された登録データに含まれる組織IDに基づくハッシュまたは特定データと関連付けて顧客データベース91に格納されているものである。
【0065】
ハッシュCUが生成されると、比較部83は、検出された属性のそれぞれについて、登録データに含まれるハッシュCSと、ハッシュCUとを比較する(ステップS407)。比較部83は、ハッシュCSとハッシュCUとが同一でない属性がある場合には、その属性を顧客管理システム1のオペレータに向けて通知(出力)する(ステップS408)。そして、まだ選択されていない他組織の登録データがある場合には(ステップS409のY)、比較部83は次の登録データを選択し(ステップS410)、ステップS405以降の処理を繰り返させる。すべての登録データについて処理がされた場合には(ステップS409のN)、
図13に示す処理は終了する。
【0066】
このように、分散型台帳にハッシュが登録され、実際の値がわからなくても、顧客管理システム1に格納される情報から変化があるか否かを検出することができる。
【0067】
また、外部のストレージにはユーザ情報に基づくハッシュ値が格納され、ユーザ情報そのものは格納されない。これにより、ユーザ情報そのものを複数の組織で共有する場合に比べ、外部とのデータのやりとりの際に情報漏洩防止のために複雑なプロトコルに従ったデータの暗号化等を削減できる。つまり、本実施形態では、簡素な処理でセキュリティを確保できる。これにより、顧客管理システム1を構成するサーバの負荷を軽減することもできる。
【0068】
ここで、会員登録の後のタイミングにおいても、ユーザの属性の情報が得られた場合にも、顧客管理システム1は登録データおよび端末3に格納されるデータを変更してよい。
【0069】
図14は、組織Bに会員登録後に組織Bを利用する場合を説明する図であり、
図8に対応する図である。
図14は、例えば医療機関において医療保険証が確認される場合に顧客管理システム1とユーザおよび分散型台帳ノード2とのやり取りを示している。
図14に示されるやりとりは、組織の窓口などにおいてユーザの情報が確認された場合に行われる。
図14に示されるやり取りは、ユーザ情報に変更がない場合にも行われる。
【0070】
図14の例では、はじめに、(1)ユーザの端末3は自組織(組織B)の会員保持情報およびトークンを送信し、また(2)医療保険証などの本人確認書類を提示する。さらに(3)組織Bが本人確認をすると、顧客管理システム1は(4)分散型台帳から最新の登録データおよび自組織の登録データを検索し、(5)最新の登録データおよび自組織の登録データを取得する。顧客管理システム1は(6)最新の登録データに含まれるトークンのハッシュTSを取得し、ユーザから入力されたトークンを認証し、さらに(7)端末3から送信された会員保持情報が適正であるか確認する。認証および確認がされると、顧客管理システム1は(8)トークンを発行するとともに分散型台帳へ追加する追加登録データを生成する。顧客管理システム1は(9)分散型台帳ノード2の分散型台帳に、自組織の登録データに追加登録データを追加し、さらに(10)顧客管理システム1はトークンをユーザの端末3へ送信し、端末3の情報格納部53に格納されるトークンを更新させる。ここで、ユーザ情報の変更があった場合には、顧客管理システム1は、変更に伴い変更された会員保持情報もユーザの端末3へ送信し、端末3の情報格納部53へ格納させる。
【0071】
図15は、追加される登録データの一例を示す図であり、
図16はユーザへ渡されるデータの一例を示す図である。
図15および
図16は、本人確認によって、ユーザの情報に変更がない場合の例である。
図15では、番号1から7の項目は以前から存在し、番号8から11の項目が登録データに追加されている。
図15の例の登録データには、会員情報ハッシュは追加されないが、本人確認がされたことを示す本人確認項目が追加され、さらに更新されるトークンのハッシュとそれに関連する情報が追加される。また、端末3へは、トークンおよびトークン発行時刻のみが送られる。
【0072】
次に、
図15から17について説明した情報のやり取りを実現する処理の詳細について説明する。
図17,18は、顧客管理システム1が会員登録後の顧客の利用の際に実行する処理を示すフロー図である。
【0073】
はじめに、ユーザ情報取得部61は、端末3から送信された、ユーザ情報の変化に関する情報を取得する(ステップS301)。この情報は、例えば、ユーザ情報に含まれる属性の変更された属性値であるが、属性値の変化の有無が確認された属性を示す情報でもある。
【0074】
次に、既登録情報取得部63は、端末3の既登録情報送信部52から送信される、ユーザの自組織の会員保持情報と最新のトークンとを含むデータを取得する(ステップS303)。変換パラメータ取得部64は、送信されるデータから変換パラメータを取得してもよいし、顧客管理システム1の内部の顧客データベース91にユーザと関連付けて格納される変換パラメータを取得してもよい。特定部65は、取得されたデータから特定データを取得してもよいし、その顧客データベース91に格納される組織IDおよび会員IDのような情報から特定データを取得してもよい。トークン取得部66は、取得されたデータからトークンを取得する。
【0075】
次に、認証部68は、分散型台帳ノード2の分散型台帳(ストレージ)に格納される、このユーザについて登録された1または複数の登録データから最新のトークンのハッシュTSを取得する(ステップS304)。認証部68は、端末3から送信されたデータに含まれる最新のトークンのハッシュTUを生成する(ステップS305)。認証部68は、ハッシュTSとハッシュTUとを比較する(ステップS306)。ハッシュTSとハッシュTUとが異なる場合は(ステップS306のN)、認証部68は端末3のトークンは不正であるので、認証失敗のメッセージを端末3に向けて通知する(ステップS307)。
【0076】
一方、ハッシュTSとハッシュTUとが同じ場合は(ステップS306のN)、認証部68は端末3から送信された会員情報全体ハッシュが適正であるか確認する。より具体的には、認証部68は、自組織(または他組織)の登録データから会員情報署名を取得する(ステップS308)。そして、認証部68は自組織(または他組織)の会員情報署名を用いて、その組織について端末3から受け取った会員保持情報(具体的には会員情報全体ハッシュ)を検証する(ステップS309)。検証により会員保持情報が不正であると判断された場合には(ステップS310のN)、認証部68は認証失敗のメッセージを通知する(ステップS307)。
【0077】
電子署名により会員保持情報が正しいと判断された場合(ステップS310のY)には、顧客管理システム1は分散型台帳のこのユーザについての自組織の登録データにデータを追加し、さらに端末3に新たなトークンなどを格納させるために以下の処理を実行する。
【0078】
はじめに、新トークン発行部72は新たなトークンを発行する(ステップS313)。登録データ生成部73は、属性値が変更された属性が存在する場合には、変更された属性の属性値と、登録用の変換パラメータ(ここでは会員登録時刻)とに基づいて、ハッシュRを生成する(ステップS314)。
【0079】
次に、登録データ生成部73は、変更の有無が確認された属性を示す情報(
図15の本人確認項目)と、変更された属性についてのハッシュRと、ユーザ情報に含まれる1または複数の属性のそれぞれについてのハッシュRと、新たなトークンのハッシュTNと、を含む追加登録データを生成する(ステップS315)。ハッシュRは、属性値に変更があった場合のみ追加登録データに含まれる。また、属性値に変更があった場合には、追加登録データは、変更後の属性値を含む各属性の属性値に基づく会員情報全体ハッシュの電子署名である会員情報署名をさらに含む。
【0080】
追加登録データが生成されると、登録部74は、分散型台帳に登録された自組織の登録済の登録データに、生成された追加登録データを追加する(ステップS316)。
【0081】
そして、端末送信部75は、属性値が変更された場合には、ユーザ情報に含まれる1または複数の属性のそれぞれについてのハッシュRに基づく会員情報全体ハッシュを含む会員保持情報をユーザの端末3へ送信し、そのデータを情報格納部53に格納させる(ステップS317)。また端末送信部75は発行された新たなトークンを端末3へ送信し、その新たなトークンを端末3の情報格納部53に設定させる(ステップS318)。
【0082】
会員登録以外でも生じる本人確認およびユーザ情報の変更に応じて分散型台帳の登録データを追加更新し、他組織が
図13に示される処理において追加登録データを最新の登録データとして登録データ中の古い項目と差し替えて処理することにより、ユーザの職業や住所などの属性の変化を他の組織が検出することがさらに容易になる。
【0083】
また、本実施形態では端末3に設定されるトークンを、複数の組織で共通化し、さらに、会員登録以外の実窓口を利用するタイミングにもトークンの検証および更新を行っている。これにより、トークンの更新が比較的セキュアに、かつ、ある程度の頻度で行われる。これにより、何らかの原因でトークンが他人に渡ったとしても、ユーザが容易に気づくことができる。このトークンは、顧客情報の登録や変更のタイミングだけでなく、オンライン上のサービスのログインに用いられてもよい。この場合、トークンと異なる手法でユーザの認証が行われる際に、さらに
図17のステップS303からS307に相当する処理により、トークンによる認証が行われてよい。
【0084】
本発明の実施形態は、これまでに説明したものには限られない。例えば、トークンの発行、トークンの分散型台帳および端末3への格納およびトークンの認証は行われなくてもよいし、会員保持情報の検証も必ずしも行われなくてよい。他の適切な認証手段によりセキュリティを確保することができればよい。
【0085】
また、これまでの説明では分散型台帳を用いてユーザの情報の変更を検出しているが、かならずしも分散型台帳を用いなくてもよい。例えば、複数の分散型台帳ノード2の代わりに、統合されたデータベースサーバを設置し、複数の顧客管理システム1がそのデータベースに登録データを格納し、そのデータベースから登録データを読み出してもよい。
ユーザ情報管理システムは、端末から、ネットワーク上のストレージに格納される複数の登録データのうちいずれかを特定する特定情報であって、ユーザの複数の属性のうち1または複数のそれぞれについての過去の属性値に基づくハッシュ値を含む登録データを特定する特定情報を取得し(S203)、前記ユーザの複数の属性のうち1または複数のそれぞれについての属性値を取得し(S201)、前記1または複数の属性のそれぞれについて、前記取得された属性値に基づくハッシュ値を生成し(S406)、前記特定情報に基づいて、前記ストレージから登録データを取得し(S403)、前記取得された登録データにハッシュ値が含まれる属性でありかつ前記属性値が取得された属性について、前記生成されたハッシュ値と、前記取得されたハッシュ値とを比較する(S407)。