以下に、本発明の一態様に係る実施形態を適用した秘密分散管理システムを採用する業務システム1について、図面を参照して説明する。以下の実施の形態においては便宜上その必要があるときは、複数のセクションまたは実施の形態に分割して説明するが、特に明示した場合を除き、それらはお互いに無関係なものではなく、一方は他方の一部または全部の変形例、詳細、補足説明等の関係にある。
また、以下の実施の形態において、要素の数等(個数、数値、量、範囲等を含む)に言及する場合、特に明示した場合および原理的に明らかに特定の数に限定される場合等を除き、その特定の数に限定されるものではなく、特定の数以上でも以下でもよい。
さらに、以下の実施の形態において、その構成要素(要素ステップ等も含む)は、特に明示した場合および原理的に明らかに必須であると考えられる場合等を除き、必ずしも必須のものではないことは言うまでもない。
同様に、以下の実施の形態において、構成要素等の形状、位置関係等に言及するときは特に明示した場合および原理的に明らかにそうではないと考えられる場合等を除き、実質的にその形状等に近似または類似するもの等を含むものとする。このことは、上記数値および範囲についても同様である。
また、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
図1は、本実施形態に係る秘密分散管理システムを備える業務システム1のブロック図である。業務システム1は、利用者100が利用する秘密分散管理装置200と、秘密分散管理装置200に接続される外部記憶媒体300と、秘密分散管理装置200に接続される生体情報読取装置400と、秘密分散管理装置200とネットワーク150を介して通信可能な第一のシェアバックアップサーバー装置500と、秘密分散管理装置200とネットワーク150を介して通信可能な第二のシェアバックアップサーバー装置600と、第一のシェアバックアップサーバー装置500および第二のシェアバックアップサーバー装置600とネットワーク150を介して通信可能な特権ユーザー端末700と、を含む。
ネットワーク150は、LAN(Local Area Network)、WAN(Wide Area Network)、インターネット、携帯電話網等、あるいはこれらが複合した通信網である。なお、ネットワーク150は、携帯電話通信網等の無線通信網上のVPN(Virtual Private Network)等であってもよい。
業務システム1では、利用者が秘密分散管理装置200を用いて入出力操作を行い、作成されたファイル等を含むデータセット(記憶部220の利用者が使用する記憶領域全体のデータであってもよいし、ファイル単位であってもよい)が秘密分散管理装置200の記憶部220および外部記憶媒体300に分散されたシェア(秘密情報の断片)の状態で格納される。また、秘密分散管理装置200の記憶部220および外部記憶媒体300に分散されたシェアは、第一のシェアバックアップサーバー装置500および第二のシェアバックアップサーバー装置600に、それぞれ格納される。
秘密分散管理装置200は、シェアからデータセットを復元させる場合には、外部記憶媒体300と、記憶部220とに格納されたシェアを利用して復号処理を行う。なお、その際、たとえば外部記憶媒体300を紛失、あるいは利用時に利用者が携帯していない場合には、従来の技術では復号ができず、外部記憶媒体300から第二のシェアを取得することができない。しかし、秘密分散管理装置200は、ネットワーク150を介して第二のシェアバックアップサーバー装置600から第二のシェアを取得することができる。そのため、(k,n)閾値法による秘密分散管理において、n個の分散鍵の記憶媒体を携行できない場合、あるいは(n-k)個を越える分散鍵の紛失時でも、秘密情報を安全に利用できるといえる。
業務システム1の応用例を挙げると、業務システム1は、顧客情報等の個人情報の取り扱いを伴う業務システム、あるいは営業活動や経営資源にかかる社外秘情報の利用を伴う業務システム等がある。
その際には、利用者は、秘密分散管理装置200を操作して、業務内容に応じて秘密を要する情報が含まれる文書ファイルや会計関連の情報が含まれる表計算ファイル(これらは、データセットであるといえる)を作成し、保存する。秘密分散管理装置200は、このような文書ファイルや表計算ファイル等を含む秘密情報の保存処理において、秘密分散法を用いたシェアを複数作成して、秘密分散管理装置200の記憶部220と、外部記憶媒体300の記憶部310と、に分散させて管理する。なお、シェアのバックアップを、ネットワーク150を介して接続される第一のシェアバックアップサーバー装置500および第二のシェアバックアップサーバー装置600に保存することで、外部記憶媒体300あるいは秘密分散管理装置200の紛失時に復旧することができる。
また、利用者は、秘密分散管理装置200を操作して、上記のように分散管理の対象となる文書ファイルや表計算ファイルにアクセスする際には、秘密分散管理装置200は、分散管理された同じバージョンのシェアを集めて復号し、データセットを復元させることができる。
なお、そのようなデータセットの復元処理においては、その途中で生体情報を照合して利用者の生体認証を行うこともできる。秘密分散管理装置200は、生体認証により正当な利用者であること、あるいは特権ユーザーによるログインが確認された場合に復元処理を完了させる。
その他には、秘密分散管理システムを備える業務システム1では、パーソナルコンピュータ向け秘密分散ソフト単体での使用と比較して、電子ファイルをネットワークを介してバックアップするため、シェア格納媒体を紛失したり、秘密分散管理装置200がマルウェアに感染したりしても、電子ファイルの復元が可能である点が優れている。また、シェアを紛失しても元の電子ファイルを復元できるシェアの個数に対する、携行するシェアの個数が少なくて済む(例えば、1個までのシェアが漏洩しても元の電子ファイルの漏洩を防ぎ(k>1)、2個までのシェアを紛失しても元の電子ファイルを復元可能とするためには、(1,2)閾値法で十分となり、利用者は2個の媒体を携行するだけでよい)。また、複数のサーバー装置にシェアを保存するため、バックアップの通信経路のうち1つを盗聴されても、元の電子ファイルが漏洩しない。そのため、バックアップに用いる通信経路をVPN(Virtual Private Network)等で強固に保護する必要がなくなり、システムの安価な運用が可能となる。また、シェアの結合に失敗した際や、シェアを紛失した際に、自動的にバックアップサーバー装置からシェアをダウンロードする構成にすることで、シームレスに元の電子ファイルを復元することが可能となる。
外部記憶媒体300は、例えばUSB(Universal Serial Bus)メモリーや、SDカード等の記憶媒体、スマートフォンを含む記憶領域を備える電子装置またはその他の電子記憶媒体である。また、外部記憶媒体300と秘密分散管理装置200との接続は、例えばUSB接続、Bluetooth(登録商標)接続、NFC(Near Field Communication)接続、2.54GHz帯の無線LAN(Local Area Network)等の各種の接続が可能である。
生体情報読取装置400は、利用者100の生体情報を読み取る装置である。例えば、生体情報読取装置400は、利用者100の指紋、声紋、虹彩、静脈等のいずれかの生体情報を読み取り、秘密分散管理装置200へ受け渡す。また、生体情報読取装置400と秘密分散管理装置200との接続は、例えばUSB接続、Bluetooth(登録商標)接続、NFC(Near Field Communication)接続、2.54GHz帯の無線LAN(Local Area Network)等の各種の接続が可能である。
第一のシェアバックアップサーバー装置500は、いわゆるサーバー装置等の情報処理装置であり、秘密分散管理装置200、第二のシェアバックアップサーバー装置600および特権ユーザー端末700との接続は、ネットワーク150を介して接続される。第二のシェアバックアップサーバー装置600についても、同様である。
特権ユーザー端末700は、いわゆるパソコン等の情報処理装置であり、秘密分散管理装置200、第一のシェアバックアップサーバー装置500および第二のシェアバックアップサーバー装置600との接続は、ネットワーク150を介して接続される。
秘密分散管理装置200は、業務システム1の利用者を認証することができる情報処理装置である。秘密分散管理装置200は、制御部210と、記憶部220と、通信部230と、入力部240と、出力部250と、を備える。制御部210には、シェア生成部211と、シェア結合部212と、シェア送信部213と、シェア収集部214と、生体情報照合部215と、が含まれる。
シェア生成部211は、秘密分散法を利用してデータセットを複数のシェアに分割する。具体的には、シェア生成部211は、記憶部220の所定の記憶領域(データセット)について、(k,n)閾値法によりシェア(秘密分散情報)を生成する。その際、シェア生成部211は、シェアごとにバージョン情報を付与する。また、シェア生成部211は、生成したシェアにバージョン情報を対応付けて、シェアごとに異なる管理単位の記憶領域(例えば、相互に動作に影響を与えない秘密分散管理装置200の記憶部220と、外部記憶媒体300の記憶部310と)に格納させる。
シェア結合部212は、シェア収集部214が取得したシェアを用いてデータセットを復号する処理を行う。具体的には、シェア結合部212は、シェア収集部214が取得したシェアのバージョンが整合するものを組み合わせて、復号処理を行い、データセットの復元を行う。また、そのデータセットを記憶部220あるいはメモリの所定の領域に仮想領域として展開する。
シェア送信部213は、ネットワーク150を介して接続される第一のシェアバックアップサーバー装置500およびネットワーク150を介して接続される第二のシェアバックアップサーバー装置600へシェアの複製を各々送信する。具体的には、シェア送信部213は、第一のシェアバックアップサーバー装置500に第一のシェアを送信し、第二のシェアバックアップサーバー装置600に第二のシェアを送信する。これらのシェアとシェアの送信先のシェアバックアップサーバー装置とは、あらかじめ対応付けられている。
シェア収集部214は、秘密分散管理装置200の記憶部220および外部記憶媒体300の記憶部310、またはシェアバックアップサーバー装置から、各々が格納するシェアを取得する。
生体情報照合部215は、秘密分散されたデータセットの復元時に、所定の生体認証処理を行い、正当な利用者であることの確認および特権ユーザーであるか否かの判定を行う。
なお、生体情報照合部215は、記憶部220の生体情報テンプレート221にあらかじめ格納されている利用者の生体情報と、認証の要求時に受け渡された利用者100の生体情報と、を用いて所定のアルゴリズムで生体情報のマッチングを行い、所定以上の一致度を有する場合には認証成功と判定し、そうでない場合には認証失敗と判定する。ただし、生体認証の処理はこれに限られるものではない。
記憶部220には、生体情報テンプレート221と、第一のシェア222と、が格納される。生体情報テンプレート221は、生体情報照合部215による生体情報の照合による利用者の特定、特権ユーザーであるか否かの判定に用いられる情報である。第一のシェア222には、記憶部220あるいはメモリに展開されたデータセットから生成したシェアのうち一部の断片が格納される。
通信部230は、ネットワーク150を介して他の装置である第一のシェアバックアップサーバー装置500、第二のシェアバックアップサーバー装置600および特権ユーザー端末700との通信を行う。
入力部240は、秘密分散管理装置200への利用者100からの入力を受け付ける。例えば、入力部240は、タイピングやタッチ、フリック入力等の各種の接触入力、あるいは音声入力、または視線入力等の各種の入力を受け付ける。
出力部250は、秘密分散管理装置200からの利用者100への出力を行う。出力される情報は、画面や帳票等の各種出力情報である。
外部記憶媒体300は、記憶部310を備える。記憶部310には、第二のシェア315が格納される。第二のシェア315には、秘密分散管理装置200の記憶部220あるいはメモリに展開されたデータセットから生成したシェアのうち一部の断片が格納される。
生体情報読取装置400は、生体情報取得部410を備える。生体情報取得部410は、指示を受けると、所定の生体情報の読み取りを行い、秘密分散管理装置200へ読み取った生体情報を受け渡す。
図2は、シェアバックアップサーバー装置のブロック図である。本実施形態においては、シェアバックアップサーバー装置としては、第一のシェアバックアップサーバー装置500と、第二のシェアバックアップサーバー装置600と、が備えられるが、これに限られるものではなく、少なくとも独立した2つ以上のシェアバックアップサーバー装置が備えられていればよい。
第一のシェアバックアップサーバー装置500には、記憶部510と、制御部520と、が含まれる。記憶部510には、第一のシェアテーブル515が含まれる。制御部520には、シェア受信部521と、シェア同期確認部522と、テーブル更新部523と、シェア送信部524と、シェア提供判定部525と、失効処理部526と、が含まれる。
図3は、第一のシェアテーブルに格納されるデータ構造を示す図である。第一のシェアテーブル515には、複数の秘密分散管理装置200のシェアが、秘密分散管理装置200およびバージョンごとに格納される。第一のシェアテーブル515には、端末ID515Aと、失効515Bと、シェアのバージョン515Cと、更新日時515Dと、シェアバイナリデータ515Eと、が対応付けて格納される。端末ID515Aは、秘密分散管理装置200を特定する情報である。失効515Bは、端末が失効している、すなわち端末DI515Aで特定される秘密分散管理装置200からのアクセスが禁止されているか否かを特定する情報である。シェアのバージョン515Cは、シェアのバージョンを特定する情報である。更新日時515Dは、シェアが格納された日時を特定する情報である。シェアバイナリデータ515Eは、シェアのバイナリデータである。
シェア受信部521は、秘密分散管理装置200からシェアを受信する。シェア同期確認部522は、受信したシェアが、他のシェアバックアップサーバー装置と同期されているか否か確認する。具体的には、シェア同期確認部522は、テーブル更新部523により第一のシェアテーブル515の更新がなされると、他のシェアバックアップサーバー装置へ端末IDとバージョン情報を送信し、一致することを確認する。一致しない場合には、シェア同期確認部522は、テーブル更新部523に更新を取り消しさせる。あるいは、シェア同期確認部522は、他のシェアバックアップサーバー装置から端末IDとバージョン情報が送信されると、受信したシェアの端末IDとバージョン情報に一致することを確認する。一致しない場合には、他のシェアバックアップサーバー装置へその旨を通知する。
テーブル更新部523は、シェア受信部521が受信したシェアを用いて、第一のシェアテーブル515を更新する。なお、バージョン管理を行うほうが望ましいため、テーブル更新部523は、レコード追加により第一のシェアテーブル515を更新するが、これに限られるものではなく、以前のバージョンのシェアを削除して新たなシェアを格納するようにしてもよい。
シェア送信部524は、第一のシェアテーブル515に格納されたシェアのうち、端末IDで識別される秘密分散管理装置200ごとに最新のバージョンあるいは指定されたバージョンのシェアを読み出し、当該秘密分散管理装置200へ送信する。
シェア提供判定部525は、シェア送信部524がシェアを送信する際に、シェアの有効性を示す情報に応じて送信するか否かを判定する。シェアの有効性を示す情報は、失効515B、アクセスした端末IDおよびユーザーIDにより特定される。シェア提供判定部525は、いずれかのバージョンのシェアについて、失効515Bが「1」に設定されている秘密分散管理装置200からのシェアの要求に対しては、シェアを送信しない。ただし、特権ユーザー端末700を用いて特権ユーザーが要求している場合には、この限りではなく、特権ユーザー端末700へ最新のシェアを送信する。
失効処理部526は、秘密分散管理装置200あるいは外部記憶媒体300の紛失時等、シェアを転得者(第三者)から取得されるのを防ぐ処理を行う。具体的には、失効処理部526は、特権ユーザー端末700からの特権ユーザーによるアクセスに応じて、失効させるべき端末IDを受け付けて、当該端末IDのすべてのバージョンのシェアについて、第一のシェアテーブル515の失効515Bと、第二のシェアテーブル615の失効615Bとに、有効でないことを意味する「1」を設定する。逆に、紛失が解消した場合には、失効処理部526は、特権ユーザー端末700からの特権ユーザーによるアクセスに応じて、有効にすべき端末IDを受け付けて、第二のシェアバックアップサーバー装置600から最新バージョンのシェアを取得してデータセットを復元する。そして、失効処理部526は、シェア生成部211と同様の秘密分散法を利用してデータセットを複数のシェアに分割する。その際、失効処理部526は、古いバージョンとシェアを一致させないために、乱数等を用いて異なるシェアを生成する。また、失効処理部526は、シェアを各シェアバックアップサーバー装置へ失効していない情報として格納させる。そして、失効処理部526は、特権ユーザー端末700へすべてのシェアを受け渡す。
第二のシェアバックアップサーバー装置600には、記憶部610と、制御部620と、が含まれる。記憶部610には、第二のシェアテーブル615が含まれる。制御部620には、シェア受信部621と、シェア同期確認部622と、テーブル更新部623と、シェア送信部624と、シェア提供判定部625と、失効処理部626と、が含まれる。
図4は、第二のシェアテーブルに格納されるデータ構造を示す図である。第二のシェアテーブル615には、複数の秘密分散管理装置200のシェアが、秘密分散管理装置200およびバージョンごとに格納される。第二のシェアテーブル615には、端末ID615Aと、失効615Bと、シェアのバージョン615Cと、更新日時615Dと、シェアバイナリデータ615Eと、が対応付けて格納される。端末ID615Aは、秘密分散管理装置200を特定する情報である。失効615Bは、端末が失効している、すなわち端末ID615Aで特定される秘密分散管理装置200からのアクセスが禁止されているか否かを特定する情報である。シェアのバージョン615Cは、シェアのバージョンを特定する情報である。更新日時615Dは、シェアが格納された日時を特定する情報である。シェアバイナリデータ615Eは、シェアのバイナリデータである。
シェア受信部621は、秘密分散管理装置200からシェアを受信する。シェア同期確認部622は、受信したシェアが、他のシェアバックアップサーバー装置と同期されているか否か確認する。具体的には、シェア同期確認部622は、テーブル更新部623により第二のシェアテーブル615の更新がなされると、他のシェアバックアップサーバー装置へ端末IDとバージョン情報を送信し、一致することを確認する。一致しない場合には、シェア同期確認部622は、テーブル更新部523に更新を取り消しさせる。あるいは、シェア同期確認部622は、他のシェアバックアップサーバー装置から端末IDとバージョン情報が送信されると、受信したシェアの端末IDとバージョン情報に一致することを確認する。一致しない場合には、他のシェアバックアップサーバー装置へその旨を通知する。
テーブル更新部623は、シェア受信部621が受信したシェアを用いて、第二のシェアテーブル615を更新する。なお、バージョン管理を行うほうが望ましいため、テーブル更新部623は、レコード追加により第二のシェアテーブル615を更新するが、これに限られるものではなく、以前のバージョンのシェアを削除して新たなシェアを格納するようにしてもよい。
シェア送信部624は、第二のシェアテーブル615に格納されたシェアのうち、端末IDで識別される秘密分散管理装置200ごとに最新のバージョンあるいは指定されたバージョンのシェアを読み出し、当該秘密分散管理装置200へ送信する。
シェア提供判定部625は、シェア送信部624がシェアを送信する際に、シェアの有効性を示す情報に応じて送信するか否かを判定する。シェアの有効性を示す情報は、失効615B、アクセスした端末IDおよびユーザーIDにより特定される。シェア提供判定部625は、いずれかのバージョンのシェアについて、失効615Bが「1」に設定されている秘密分散管理装置200からのシェアの要求に対しては、シェアを送信しない。ただし、特権ユーザー端末700を用いて特権ユーザーが要求している場合には、この限りではなく、特権ユーザー端末700へ最新のシェアを送信する。
失効処理部626は、秘密分散管理装置200あるいは外部記憶媒体300の紛失時等、シェアを転得者(第三者)から取得されるのを防ぐ処理を行う。具体的には、失効処理部626は、特権ユーザー端末700からの特権ユーザーによるアクセスに応じて、失効させるべき端末IDを受け付けて、当該端末IDの最新バージョンのシェアについて、第二のシェアテーブル615の失効615Bに、有効でないことを意味する「1」を設定する。逆に、紛失が解消した場合には、失効処理部626は、特権ユーザー端末700からの特権ユーザーによるアクセスに応じて、有効にすべき端末IDを受け付けて、当該端末IDのすべてのバージョンのシェアについて、第二のシェアテーブル615の失効615Bに、有効を意味する「0」を設定する。
図1の説明に戻る。特権ユーザー端末700は、シェアの管理を行う特権を有するユーザーが使用する端末である。例えば、秘密分散管理装置200あるいは外部記憶媒体300等のシェアの紛失時に、利用者100から連絡を受けてシェアの利用を制限したり、新たな秘密分散管理装置200の利用を始めた利用者100に対して、直前のバージョンのシェアの取得および提供(データ復旧)を行うための端末である。特権ユーザー端末700は、他の秘密分散管理装置200と同様の構成を備える。
図5は、秘密分散管理装置のハードウェア構成例を示す図である。秘密分散管理装置200は、いわゆるパーソナルコンピュータあるいはタブレット端末の筐体により実現されるハードウェア構成を備える。秘密分散管理装置200は、演算装置201と、主記憶装置202と、補助記憶装置203と、通信装置204と、外部記憶媒体接続装置205と、生体情報読取装置接続装置206と、各装置をつなぐバス207と、を備える。また他に、秘密分散管理装置200は、タッチパネルやキーボード、マイク、ディスプレイ等の入出力装置を備える。
演算装置201は、例えばCPU(Central Processing Unit)などの演算装置である。
主記憶装置202は、例えばRAM(Random Access Memory)などのメモリ装置である。
補助記憶装置203は、デジタル情報を記憶可能な、いわゆるハードディスク(Hard Disk Drive)やSSD(Solid State Drive)あるいはフラッシュメモリなどの不揮発性記憶装置である。
通信装置204は、ネットワーク150等を介して第一のシェアバックアップサーバー装置500、第二のシェアバックアップサーバー装置600、等の他の装置と通信経路を確立し、情報を送受信するネットワークカード等の装置である。
外部記憶媒体接続装置205は、USBメモリやスマートフォンと接続するためのUSBインターフェースを備える。生体情報読取装置接続装置206は、USBインターフェースを備える。
なお、入出力装置には、キーボードやマウス、タッチパネル、ディスプレイ、マイク、スピーカー等の各種入出力装置が含まれる。
入出力装置と、演算装置201と、主記憶装置202と、補助記憶装置203と、通信装置204と、外部記憶媒体接続装置205と、生体情報読取装置接続装置206とは、バス207等の接続導線により互いに接続される。
上記した秘密分散管理装置200のシェア生成部211と、シェア結合部212と、シェア送信部213と、シェア収集部214と、生体情報照合部215とは、演算装置201に処理を行わせるプログラムによって実現される。このプログラムは、主記憶装置202、補助記憶装置203または図示しないROM装置内に記憶され、実行にあたって主記憶装置202上にロードされ、演算装置201により実行される。
また、秘密分散管理装置200の記憶部220は、主記憶装置202及び補助記憶装置203により実現される。また、秘密分散管理装置200の通信部230は、通信装置204により実現される。入力部240および出力部250は、入出力装置により実現される。以上が、秘密分散管理装置200のハードウェア構成例である。
図6は、生体情報読取装置のハードウェア構成例を示す図である。生体情報読取装置400は、生体情報取得装置401と、演算装置402と、主記憶装置403と、外部接続装置404と、各装置をつなぐバス405と、を備える。
生体情報取得装置401は、指紋、静脈紋、虹彩、声紋等、生体の情報を取得するためのユニットであり、その取得情報に応じて、赤外線リーダー、カメラ、マイク等各種の入力装置を備える。
演算装置402は、例えばCPUなどの演算装置である。
主記憶装置403は、例えばRAMなどのメモリ装置である。
外部接続装置404は、USBにより秘密分散管理装置200への接続を行う装置である。
上記した生体情報読取装置400の生体情報取得部410は、演算装置402に処理を行わせるプログラムによって実現される。このプログラムは、主記憶装置403または図示しないROM装置内に記憶され、実行にあたって主記憶装置403上にロードされ、演算装置402により実行される。以上が、生体情報読取装置400のハードウェア構成例である。
図7は、シェアバックアップサーバー装置のハードウェア構成例を示す図である。第一のシェアバックアップサーバー装置500および第二のシェアバックアップサーバー装置600は、いわゆるパーソナルコンピュータあるいはタブレット端末の筐体により実現されるハードウェア構成を備える。第一のシェアバックアップサーバー装置500は、演算装置501と、主記憶装置502と、補助記憶装置503と、通信装置504と、各装置をつなぐバス505と、を備える。なお、第二のシェアバックアップサーバー装置600についても、第一のシェアバックアップサーバー装置500と略同様のハードウェア構成を備えるため、説明を省略する。
演算装置501は、例えばCPUなどの演算装置である。
主記憶装置502は、例えばRAMなどのメモリ装置である。
補助記憶装置503は、デジタル情報を記憶可能な、いわゆるハードディスクやSSDあるいはフラッシュメモリなどの不揮発性記憶装置である。
通信装置504は、ネットワーク150等を介して他のシェアバックアップサーバー装置、特権ユーザー端末700、秘密分散管理装置200等の他の装置と通信経路を確立し、情報を送受信するネットワークカード等の装置である。
演算装置501と、主記憶装置502と、補助記憶装置503と、通信装置504とは、バス505等の接続導線により互いに接続される。
上記した第一のシェアバックアップサーバー装置500のシェア受信部521と、シェア同期確認部522と、テーブル更新部523と、シェア送信部524と、シェア提供判定部525とは、演算装置501に処理を行わせるプログラムによって実現される。このプログラムは、主記憶装置502、補助記憶装置503または図示しないROM装置内に記憶され、実行にあたって主記憶装置502上にロードされ、演算装置501により実行される。
また、第一のシェアバックアップサーバー装置500の記憶部510は、主記憶装置502及び補助記憶装置503により実現される。また、図示しない通信部は、通信装置504により実現される。以上が、第一のシェアバックアップサーバー装置500のハードウェア構成例である。
秘密分散管理装置200、第一のシェアバックアップサーバー装置500および第二のシェアバックアップサーバー装置600のそれぞれの構成は、処理内容に応じて、さらに多くの構成要素に分類することもできる。また、1つの構成要素がさらに多くの処理を実行するように分類することもできる。
また、各制御部(シェア生成部211と、シェア結合部212と、シェア送信部213と、シェア収集部214と、生体情報照合部215と、シェア受信部521と、シェア同期確認部522と、テーブル更新部523と、シェア送信部524と、シェア提供判定部525)は、それぞれの機能を実現する専用のハードウェア(ASIC、GPUなど)により構築されてもよい。また、各制御部の処理が一つのハードウェアで実行されてもよいし、複数のハードウェアで実行されてもよい。
次に、本実施形態における業務システム1の動作を説明する。
図8は、シェア生成処理のフローの例を示す図である。シェア生成処理は、秘密分散管理装置200の終了処理、あるいはスタンバイ等の休眠状態への移行時に起動される。
まず、シェア生成部211は、メモリあるいは記憶部220に展開されている仮想領域を対象として、シェアを生成し、所定の記憶部にシェアを保存する(ステップS200)。具体的には、シェア生成部211は、従来技術の所定のアルゴリズムを用いてシェアを生成し、バージョンを自動付番し、バージョン、端末IDとともに記憶部220および外部記憶媒体300の記憶部310にそれぞれ第一のシェア222、第二のシェア315を格納する。
そして、シェア送信部213は、第一のシェアと、バージョンと、端末IDとを第一のシェアバックアップサーバー装置500へ送信する(ステップS210)。また、シェア送信部213は、第二のシェアと、バージョンと、端末IDとを第二のシェアバックアップサーバー装置600へ送信する(ステップS211)
第一のシェアバックアップサーバー装置500のシェア受信部521は、第一のシェアと、バージョンと、端末IDとを受信する(ステップS220)。また、第二のシェアバックアップサーバー装置600のシェア受信部621は、第二のシェアと、バージョンと、端末IDとを受信する(ステップS221)。
そして、第一のシェアバックアップサーバー装置500のシェア同期確認部522は、第二のシェアバックアップサーバー装置600へ、同期確認のために、受信した第一のシェアのバージョンと、端末IDとを送信する(ステップS230)。
そして、第二のシェアバックアップサーバー装置600のシェア同期確認部622は、受信した第二のシェアのバージョンおよび端末IDと、第一のシェアバックアップサーバー装置500から受信した第一のシェアのバージョンと端末IDと、を比較し、一致するか否かを第一のシェアバックアップサーバー装置500へ送信する(ステップS231)。
そして、第一のシェアバックアップサーバー装置500のシェア同期確認部522は、一致する旨の情報を受信した場合には受信完了(YES)として、一致しない場合(NO)には再送要求を秘密分散管理装置200へ送信する(ステップS240)。再送要求がなされると(ステップS240で「NO」の場合)、秘密分散管理装置200のシェア送信部213は、第一のシェアと第二のシェアを再送するために、制御をステップS210へ戻す。
受信完了の場合(ステップS240にて「YES」の場合)には、第一のシェアバックアップサーバー装置500のテーブル更新部523は、第一のシェアテーブル515を更新する(ステップS250)。具体的には、テーブル更新部523は、受信した端末IDを端末ID515Aに格納し、失効515Bに有効を示す初期値「0」を格納し、受信したバージョンをシェアのバージョン515Cに格納し、処理時点の日時を更新日時515Dに格納し、受信したシェアをシェアバイナリデータ515Eに格納する。
また、受信完了の場合(ステップS240にて「YES」の場合)には、第二のシェアバックアップサーバー装置600のテーブル更新部623は、第二のシェアテーブル615を更新する(ステップS251)。具体的には、テーブル更新部623は、受信した端末IDを端末ID615Aに格納し、失効615Bに有効を示す初期値「0」を格納し、受信したバージョンをシェアのバージョン615Cに格納し、処理時点の日時を更新日時615Dに格納し、受信したシェアをシェアバイナリデータ615Eに格納する。
そして、第一のシェアバックアップサーバー装置500のテーブル更新部523および第二のシェアバックアップサーバー装置600のテーブル更新部623は、更新完了を秘密分散管理装置200へ通知する。
秘密分散管理装置200のシェア送信部213は、メモリあるいは記憶部220に展開されている仮想領域を削除することで、シェア生成の元となったデータセットを秘密分散管理装置200上から取り除く(ステップS260)。
以上が、シェア生成処理の流れである。シェア生成処理によれば、秘密分散管理装置200の仮想領域上で生成された秘密情報等のデータセットがすべて(k,n)閾値法によりシェアとして分割され、記憶部220の第一のシェア222と記憶部310の第二のシェア315として保存される。そのため、データセットはシェアを復号しない限り復元できなくなる。また、シェアのバックアップをサーバー装置上に有するため、媒体の紛失時等においても、データセットの復元を行うための元データとなるシェアが失われて復元不能となることを避けられる。
図9は、シェアテーブル更新処理のフローの例を示す図である。シェアテーブル更新処理は、シェア生成処理のステップS250、ステップS251において実施される。
まず、第一のシェアバックアップサーバー装置500においては、シェア受信部521が第一のシェアの受信を完了すると(ステップS300)、テーブル更新部523が受信したシェアを第一のシェアテーブル515に追加する(ステップS310)。この際の処理は、上述のステップS250のとおりである。
そして、テーブル更新部523は、所定の削除条件(例えば、3世代以前のバージョンは削除)を読み取り、第一のシェアテーブル515から削除対象のシェアのエントリを削除する(ステップS320)。
同様に、第二のシェアバックアップサーバー装置600においては、シェア受信部621が第二のシェアの受信を完了すると(ステップS400)、テーブル更新部623が受信したシェアを第二のシェアテーブル615に追加する(ステップS410)。この際の処理は、上述のステップS251のとおりである。
そして、テーブル更新部623は、所定の削除条件(例えば、3世代以前のバージョンは削除)を読み取り、第二のシェアテーブル615から削除対象のシェアのエントリを削除する(ステップS420)。
以上が、シェアテーブル更新処理の流れである。シェアテーブル更新処理によれば、最新のシェアをシェアテーブルに格納するとともに、所定以上古いバージョンのシェアを削除して、シェアテーブルの肥大化を避けることができる。
図10は、データセット復元処理のフローの例を示す図である。データセット復元処理は、秘密分散管理装置200の起動時、あるいは休止状態からの復帰時に開始される。
まず、シェア収集部214は、第一のシェア222およびそのバージョン情報と、第二のシェア315およびそのバージョン情報とを、それぞれ記憶部220と記憶部310とから取得する(ステップS100)。
そして、シェア結合部212は、バージョンを確認する(ステップS110)。具体的には、シェア結合部212は、ステップS100において取得した第一のシェア222と第二のシェア315のバージョン情報が一致するか否か判定する。
バージョン情報が一致する場合(ステップS110にて「YES」の場合)には、生体情報照合部215は、利用者認証を行う(ステップS120)。具体的には、生体情報照合部215は、生体情報読取装置400の生体情報取得部410に指示して生体情報を取得し、記憶部220の生体情報テンプレート221との一定以上の一致度を有する場合には利用認証を行い、そうでない場合には利用認証を行わない。
利用認証を行った場合(ステップS120にて「YES」の場合)には、シェア結合部212は、第一のシェアと第二のシェアとを用いて復号し、データセットを復元させ、メモリあるいは記憶部220の仮想記憶領域に展開する(ステップS130)。そして、データセット復元処理を終了させる。
利用認証を行わなかった場合(ステップS120にて「NO」の場合)には、シェア結合部212は、起動失敗と判定する(ステップS180)。シェア結合部212は、利用者に対し、運用スタッフに連絡する旨のメッセージを表示する等の処理を行う。そして、データセット復元処理を終了させる。
バージョン情報が一致しない場合(ステップS110にて「NO」の場合)には、シェア収集部214は、第一のシェアバックアップサーバー装置500と第二のシェアバックアップサーバー装置600との通信の接続を確認する(ステップS140)。いずれかのシェアバックアップサーバー装置との通信が失敗する場合には、シェア結合部212は、起動失敗と判定する(ステップS180)。シェア結合部212は、利用者に対し、運用スタッフに連絡する旨のメッセージを表示する等の処理を行う。そして、データセット復元処理を終了させる。
そして、シェア収集部214は、第一のシェアバックアップサーバー装置500あるいは第二のシェアバックアップサーバー装置600に、シェアのダウンロードを要求する(ステップS150)。具体的には、シェア収集部214は、ステップS100にて取得した第一のシェア222、第二のシェア315のうち、新しいバージョンを有するシェアに対応するバージョンの他のシェアのダウンロード要求を第一のシェアバックアップサーバー装置500あるいは第二のシェアバックアップサーバー装置600に送信する。ここで、シェア収集部214は、シェアに不足がある場合には、存在するシェアのバージョンを新しいバージョンのシェアとし、そのバージョンと合致する他のシェアのダウンロード要求を送信する。
そして、第一のシェアバックアップサーバー装置500のシェア提供判定部525あるいは第二のシェアバックアップサーバー装置600のシェア提供判定部625は、ダウンロード要求で指定されたバージョンのシェアが存在するかどうかを、第一のシェアテーブル515あるいは第二のシェアテーブル615に問い合わせる(ステップS160、S170)。存在した場合、シェア提供判定部525あるいはシェア提供判定部625は、該当するシェアを要求した秘密分散管理装置200の端末IDについて、失効とされているか否かを判定する。失効でない場合には、シェア送信部524あるいはシェア送信部624は、秘密分散管理装置200に送信する。シェアが存在しなかった場合、あるいは失効している端末IDである場合には、シェア送信部524あるいはシェア送信部624は、その旨を秘密分散管理装置200に送信し、起動失敗処理(ステップS180)に移る。
なお、特権ユーザーがシェアの要求を行っている場合には、シェア提供判定部525あるいはシェア提供判定部625は、該当するシェアを要求した秘密分散管理装置200の端末IDについて失効とされている場合であっても、シェア送信部524あるいはシェア送信部624に対して、秘密分散管理装置200あるいは特権ユーザー端末700にシェアを送信させる。
以上が、データセット復元処理の流れである。データセット復元処理によれば、まずは秘密分散管理装置200の記憶部220および外部記憶媒体の記憶部310からシェアを取得してデータセットを復元することができる。適切なシェアが取得できない場合であっても、ネットワーク150を介してバックアップされたシェアを取得してデータセットを復元することができる。また、紛失等の事態が発生した場合には、データセットを復元するためのダウンロードを制限することができ、その場合であっても特権ユーザーからの要求であれば、ネットワーク150を介してバックアップされたシェアを取得してデータセットを復元することができる。
以上が、本発明の実施形態にかかる業務システム1である。業務システム1によれば、(k,n)閾値法による秘密分散管理において、(n-k)個を越えるシェアの紛失があった場合に、正当な利用者であれば秘密情報を安全に利用できる
本発明は、上記の実施形態に制限されない。上記の実施形態は、本発明の技術的思想の範囲内で様々な変形が可能である。例えば、上記の実施形態においては、利用認証は予め定められた生体認証を用いる例が示されているが、これに限られない。例えば、ワンタイムパスワード等、他のパスワード認証であってもよい。あるいは、SNS(Social Networking Service)等の他の情報システムで登録されているアカウントを利用するものとすることもできる。
また、上記した実施形態の技術的要素は、単独で適用されてもよいし、プログラム部品とハードウェア部品のような複数の部分に分けられて適用されるようにしてもよい。
以上、本発明について、実施形態を中心に説明した。