(57)【要約】【課題】複数のネットワークが代表ノードを介して相互に接続される通信システムのセキュリティを向上させる。【解決手段】ネットワークに接続される通信装置においてプロセッサにより実行される通信方法は、複数の通信装置のうちから選出される代表装置に障害が発生したときに、第１のネットワーク内の各通信装置に第２のメッセージを送信し、第２のネットワークに接続するための認証情報を分割することで得られる２以上のデータ部品が、代表装置から第１のネットワーク内の２以上の通信装置に配布された状況において、第２のメッセージに応じて第１のネットワーク内の通信装置から送信されるデータ部品を取得し、所定数以上のデータ部品から認証情報を再生し、再生された認証情報の少なくとも一部を書き換えることで生成される新たな認証情報に基づいて第２のネットワークに接続する。【選択図】図４
2020101875.tif 000002
【特許請求の範囲】
【請求項１】
第１のネットワーク内で使用される複数の通信装置のうちの１つの通信装置において、
前記複数の通信装置のうちから選出される代表装置から定期的に送信される第１のメッセージをモニタし、
前記第１のメッセージを所定時間以上検出しないときに、前記第１のネットワーク内の各通信装置に第２のメッセージを送信し、
第２のネットワークに接続するための認証情報を分割することで得られる２以上のデータ部品が、前記代表装置から前記第１のネットワーク内の２以上の通信装置に配布された状況において、前記第２のメッセージに応じて前記第１のネットワーク内の通信装置から送信されるデータ部品を取得し、
所定数以上のデータ部品を取得したときに、前記所定数以上のデータ部品から前記認証情報を再生し、
再生された前記認証情報の少なくとも一部を書き換えることにより新たな認証情報を生成し、
前記新たな認証情報に基づいて前記第２のネットワークに接続する
処理をプロセッサに実行させる通信プログラム。
【請求項２】
再生された前記認証情報に基づいて前記第２のネットワークに接続し、再生された前記認証情報から前記新たな認証情報を生成する際に書き換えられた内容を前記第２のネットワークに通知する処理
を前記プロセッサにさらに実行させる請求項１に記載の通信プログラム。
【請求項３】
前記新たな認証情報を分割することで得られる２以上のデータ部品を前記第１のネットワーク内の２以上の通信装置に配布する処理
を前記プロセッサにさらに実行させる請求項１に記載の通信プログラム。
【請求項４】
前記新たな認証情報は、Ｎ（Ｎは、２以上の整数）個のデータ部品のうちのＫ（Ｋは、Ｎ以下の整数）個のデータ部品から前記新たな認証情報を再生可能なように、シャミアの秘密分散法を用いてＮ個のデータ部品に分割される
ことを特徴とする請求項３に記載の通信プログラム。
【請求項５】
第１のネットワーク内で使用される複数の通信装置のうちの１つの通信装置であって、
前記複数の通信装置のうちから選出される代表装置から定期的に送信される第１のメッセージをモニタするモニタ部と、
前記第１のメッセージを所定時間以上検出しないときに、前記第１のネットワーク内の各通信装置に第２のメッセージを送信するメッセージ送信部と、
第２のネットワークに接続するための認証情報を分割することで得られる２以上のデータ部品が、前記代表装置から前記第１のネットワーク内の２以上の通信装置に配布された状況において、前記第２のメッセージに応じて前記第１のネットワーク内の通信装置から送信されるデータ部品を受信し、所定数以上のデータ部品を取得したときに、前記所定数以上のデータ部品から前記認証情報を再生する認証情報再生部と、
再生された前記認証情報の少なくとも一部を書き換えることにより新たな認証情報を生成する認証情報生成部と、
前記新たな認証情報に基づいて前記第２のネットワークに接続する認証処理部と、
を備える通信装置。
【請求項６】
複数の通信装置を含む第１のネットワークにおいて、前記複数の通信装置の中の第１の通信装置は、第２のネットワークに接続するための認証情報を分割することで得られる２以上のデータ部品を前記第１のネットワーク内の２以上の通信装置に配布し、
前記複数の通信装置の中の第２の通信装置は、
前記第１の通信装置に障害が発生したことを検知したときに、前記２以上のデータ部品のうちの所定数以上のデータ部品を取得して前記認証情報を再生し、
再生された前記認証情報の少なくとも一部を書き換えることにより新たな認証情報を生成し、
前記新たな認証情報に基づいて前記第２のネットワークに接続する
ことを特徴とする通信方法。
【請求項７】
前記第１の通信装置は、Ｎ（Ｎは、２以上の整数）個のデータ部品のうちのＫ（Ｋは、Ｎ以下の整数）個のデータ部品から前記認証情報を再生可能なように、前記認証情報をＮ個のデータ部品に分割する
ことを特徴とする請求項６に記載の通信方法。
【請求項８】
前記第１の通信装置は、前記第２のネットワークと通信を行っているときは、前記第１のネットワーク内の各通信装置に定期的に第１のメッセージを送信し、
前記第２の通信装置は、
前記第１のメッセージを所定時間以上検出しないときは、前記第１のネットワーク内の各通信装置に第２のメッセージを送信し、
前記第２のメッセージに応じて前記第１のネットワーク内の通信装置から送信される前記データ部品を受信する
ことを特徴とする請求項６または７に記載の通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置、通信方法、および通信プログラムに係わる。
【背景技術】
【０００２】
複数のネットワークを相互に接続する技術が普及している。例えば、１つの企業内で複数の拠点にそれぞれ実装されるネットワークが相互に接続される。或いは、複数の企業がそれぞれ運用するネットワークが相互に接続される。なお、ＩＰにおいてネットワークを相互に接続するプロトコルの１つとしてＢＧＰ（Border Gateway Protocol）が知られている。
【０００３】
複数のネットワークが相互に接続される場合、各ネットワーク内で代表ノードが設定される。代表ノードは、ゲートウェイとして動作する。すなわち、各ネットワークは、代表ノードを介して他のネットワークと通信を行う。ここで、代表ノードは、他のネットワークと通信を行うための認証情報を保持する。そして、代表ノードは、この認証情報を利用して他のネットワークに接続する。
【０００４】
他方、データを売買するサービスを提供するデータ流通ネットワークが普及し始めている。データ流通ネットワークにおいては、組織または個人が保有するデータが他の組織または個人により利用される。すなわち、データ流通ネットワークの参加者は、自分が保有するデータを市場に提供できる。また、参加者は、市場に提供されているデータを利用できる。そして、データ流通ネットワークは、多くのケースにおいて、複数のネットワークを相互に接続することで実現される。
【０００５】
また、管理者が存在しない分散環境下で、改ざん不能な状態でデータを管理するブロックチェーン技術が注目されている。ブロックチェーン技術は、複数の参加者または全参加者がトランザクションを検証することで改ざん不能な分散台帳を実現する。そして、ブロックチェーン技術は、データ流通ネットワークの安全性の向上に寄与し得る。
【０００６】
なお、重要データから秘密分散技術により生成された複数の部分データを複数のデータセンターに分散保管し、データセンター間で部分データの不正取得を防止する方法が提案されている（例えば、特許文献１）。また、クラスタ化されたネットワーク内のオブジェクトを管理するシステムが提案されている（例えば、特許文献２）。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１３−０２０３１３号公報
【特許文献２】特表２００５−５０２９５７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
複数のネットワークが代表ノードを介して相互に接続される通信システムにおいては、あるネットワークの代表ノードに障害が発生した場合、そのネットワーク内の他のノードが新たな代表ノードに選出される。そして、新たな代表ノードが他のネットワークの代表ノードとの間で接続のための処理を実行する。このとき、新たな代表ノードは、旧代表ノードと同じ認証情報を利用して他のネットワークの代表ノードとの間で認証処理を実行する。よって、この方法で障害復旧を行う場合、各ネットワーク内の複数のノードまたは全ノードが同じ認証情報を保持している必要がある。
【０００９】
ただし、各ネットワーク内の複数のノードまたは全ノードが同じ認証情報を保持する場合、代表ノードとして選出されていないノードであっても、他のネットワークと通信を行うことができる。また、ネットワーク内の１つのノードが悪意のあるユーザに乗っ取られると、そのネットワーク内の全ノードが被害を受けるおそれがある。すなわち、従来技術においては、ネットワークのセキュリティが十分ではない。
【００１０】
本発明の１つの側面に係わる目的は、複数のネットワークが代表ノードを介して相互に接続される通信システムのセキュリティを向上させることである。
【課題を解決するための手段】
【００１１】
本発明の１つの態様の通信方法は、ネットワークに接続される通信装置においてプロセッサにより実行される。この通信方法は、前記複数の通信装置のうちから選出される代表装置から定期的に送信される第１のメッセージをモニタし、前記第１のメッセージを所定時間以上検出しないときに、前記第１のネットワーク内の各通信装置に第２のメッセージを送信し、第２のネットワークに接続するための認証情報を分割することで得られる２以上のデータ部品が、前記代表装置から前記第１のネットワーク内の２以上の通信装置に配布された状況において、前記第２のメッセージに応じて前記第１のネットワーク内の通信装置から送信されるデータ部品を取得し、所定数以上のデータ部品を取得したときに、前記所定数以上のデータ部品から前記認証情報を再生し、再生された前記認証情報の少なくとも一部を書き換えることにより新たな認証情報を生成し、前記新たな認証情報に基づいて前記第２のネットワークに接続する。
【発明の効果】
【００１２】
上述の態様によれば、複数のネットワークが代表ノードを介して相互に接続される通信システムのセキュリティが向上する。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施形態に係わる通信システムの一例を示す図である。
【図２】代表ノードの切替えの一例を示す図（その１）である。
【図３】代表ノードの切替えの一例を示す図（その２）である。
【図４】代表ノードの切替えの一例を示す図（その３）である。
【図５】代表ノードの切替えの一例を示す図（その４）である。
【図６】代表ノードの切替えの一例を示す図（その５）である。
【図７】シャミアの秘密分散法について説明する図である。
【図８】代表ノードの処理の一例を示すフローチャートである。
【図９】一般ノードの処理の一例を示すフローチャートである。
【図１０】一般ノードの他の処理の一例を示すフローチャートである。
【図１１】通信装置の機能の一例を示す図である。
【図１２】通信装置として動作するコンピュータのハードウェア構成の一例を示す図である。
【図１３】第１の実施例のシステム構成を示す図である。
【図１４】更新前の認証情報の一例を示す図である。
【図１５】第１の実施例における代表ノード切替えシーケンスの一例を示す図である。
【図１６】更新後の認証情報の一例を示す図である。
【図１７】第２の実施例のシステム構成を示す図である。
【図１８】更新前の認証情報の一例を示す図である。
【図１９】第２の実施例における代表ノード切替えシーケンスの一例を示す図である。
【図２０】更新後の認証情報の一例を示す図である。
【図２１】ネットワーク内に複数の代表ノードが存在し得る構成の一例を示す図である。
【図２２】本発明の実施形態に係わる通信方法の適用例を示す図である。
【発明を実施するための形態】
【００１４】
図１は、本発明の実施形態に係わる通信システムの一例を示す。本発明の実施形態に係わる通信システム１００は、相互に接続される複数のネットワークを含む。図１に示す例では、ネットワークＡ〜Ｃが相互に接続されている。ネットワークＡ〜Ｃは、例えば、異なる企業により運用される。
【００１５】
各ネットワークＡ〜Ｃは、複数のノードを備える。各ノードには、通信装置が実装される。各ノードに実装される通信装置は、特に限定されるものではないが、例えば、ルータである。なお、以下の記載では、ノードに実装される通信装置を「ノード」と呼ぶことがある。
【００１６】
各ノードには、１または複数のコンピュータが接続され得る。各ノードに接続されるコンピュータは、例えば、ユーザコンピュータであってもよいし、サーバコンピュータであってもよい。
【００１７】
各ネットワークＡ〜Ｃにおいて、複数のノードの中から、ゲートウェイとして動作する代表ノードが選出される。図１に示す例では、ネットワークＡにおいて、複数のノード１１〜１４のうちからノード１１が代表ノードとして選出されている。同様に、ネットワークＢにおいてはノード２１が代表ノードとして選出され、ネットワークＣにおいてはノード３１が代表ノードとして選出されている。以下の記載では、代表ノードとして選出されたるノードまたは通信装置を「代表ノード」または「代表装置」と呼ぶことがある。
【００１８】
各ネットワークＡ〜Ｃは、代表ノードを介して相互に接続される。すなわち、代表ノード１１、２１が通信を行うことでネットワークＡ、Ｂが相互に接続される。同様に、代表ノード１１、３１が通信を行うことでネットワークＡ、Ｃが相互に接続され、代表ノード２１、３１が通信を行うことでネットワークＢ、Ｃが相互に接続される。
【００１９】
上記構成の通信システム１００において、代表ノードに障害が発生すると、その代表ノードを含むネットワークは、他のネットワークと通信を行うことができない。よって、あるネットワークの代表ノードに障害が発生すると、そのネットワーク内で新たな代表ノードが選出される。例えば、ネットワークＡにおいて代表ノード１１に障害が発生すると、ノード１２〜１４のうちのいずれか１つが新たな代表ノードに選出される。そして、新たな代表ノードが他のネットワークの代表ノードと通信を行うことにより、ネットワーク間の接続が再び設定される。
【００２０】
なお、複数のネットワークを相互に安全に接続するためには、ネットワーク間で信頼が確立されることが要求される。このため、ゲートウェイとして動作する代表ノード間で相互認証が行われ、正しく認証されたゲートウェイ間でのみネットワーク間に通信が許可される。
【００２１】
図２〜図６は、代表ノードの切替えの一例を示す。この実施例では、ネットワークＡ、Ｂが相互に接続されている。ネットワークＡにおいてはノード１１が代表ノードとして動作し、ネットワークＢにおいてはノード２１が代表ノードとして動作している。なお、ネットワークＡは、代表ノード１１に加えてノード１２〜１４を含む。
【００２２】
代表ノード１１は、図２（ａ）に示すように、認証情報Ａ１を保持している。認証情報Ａ１は、ネットワークＡ、Ｂ間を接続するために使用される。また、認証情報Ａ１は、例えば、ネットワークを識別するＩＤ、代表ノードのアドレス、ネットワークＡ、Ｂ間の通信のためにパスワードなどを含む。そして、代表ノード１１は、認証情報Ａ１を使用して代表ノード２１との間で認証処理を実行する。このとき、代表ノード１１、２１は、協働して認証処理を実行する。この結果、ネットワークＡ、Ｂが相互に接続される。
【００２３】
なお、図２〜図６には示していないが、各ノード１１〜１４は、それぞれクライアント証明書を保持している。ノード１１〜１４が保持するクライアント証明書は、互いに異なっていることが好ましい。
【００２４】
代表ノード１１は、図２（ｂ）に示すように、認証情報Ａ１を複数のデータ部品に分割する。認証情報Ａ１を分割することで生成されるデータ部品の数は、例えば、ネットワークＡ内のノードの数に応じて決定される。一例としては、データ部品の数は、代表ノード以外のノードの数と同じであってもよい。図２〜図６に示す例では、ネットワークＡは４個のノードを備える。すなわち、ネットワークＡにおいては、代表ノード以外のノードの数は３である。よって、認証情報Ａ１から３個のデータ部品が生成される。この場合、代表ノード以外の各ノード（１２、１３、１４）に対してそれぞれ１個ずつデータ部品が割り当てられる。
【００２５】
このとき、代表ノード１１は、例えば、シャミアの秘密分散法で認証情報Ａ１を複数のデータ部品に分割する。シャミアの秘密分散法においては、図７に示すように、入力データは、Ｎ（Ｎは、２以上の整数）個のデータ部品に分割される。このとき、各データ部品は、入力データの内容が分からないように生成される。また、復号装置は、Ｎ個のデータ部品のうちのＫ（Ｋは、Ｎ以下の整数）個のデータ部品から入力データを再生できる。Ｎの値およびＫの値は、予め設定することが可能である。例えば、Ｎの値は、ネットワーク内のノードの数に応じて決定されてもよい。また、ＮおよびＫの値は、それぞれデータの重要度に応じて決定してもよい。この場合、データが重要であるときに、ＮおよびＫの値を大きくしてもよい。
【００２６】
図２〜図６に示す例では、Ｎの値は３であり、Ｋの値は２である。よって、代表ノード１１は、認証情報Ａ１を分割してデータ部品Ｄ１〜Ｄ３を生成する。そして、代表ノード１１は、データ部品Ｄ１、Ｄ２、Ｄ３をそれぞれノード１２、１３、１４に送信する。そうすると、ノード１２、１３、１４は、それぞれ受信したデータＤ１、Ｄ２、Ｄ３を自ノード内に保存する。
【００２７】
なお、代表ノード１１は、シャミアの秘密分散法以外の方法で認証情報Ａ１をＮ個のデータ部品に分割してもよい。ただし、各データ部品は、元データの内容が分からないように生成されることが好ましい。また、Ｎ個のデータ部品のうちのＫ個のデータ部品から元データを再生できることが好ましい。
【００２８】
代表ノード１１は、図３（ａ）に示すように、定期的に、ネットワークＡ内の各ノードにheartbeatメッセージを送信する。heartbeatメッセージは、生死確認メッセージまたは存在確認メッセージの一例である。また、heartbeatメッセージは、そのメッセージの送信元を識別する情報を含む。したがって、各ノード１２〜１４は、heartbeatメッセージを定期的に受信しているときは、代表ノード１１が正常に動作していると判定する。
【００２９】
ここで、図３（ｂ）に示すように、代表ノード１１に障害が発生するものとする。この場合、各ノード１２〜１４は、所定時間以上継続して、heartbeatメッセージを受信しない。そうすると、各ノード１２〜１４は、代表ノード１１に障害が発生したと判定する。なお、「所定時間」は、heartbeatメッセージが送信される時間間隔よりも長いものとする。また、代表ノード１１に障害が発生すると、ネットワークＡ、Ｂ間の接続が切断されるものとする。
【００３０】
代表ノード１１に障害が発生すると、ネットワークＡ内の他のいずれかのノードが新たな代表ノードとして動作する必要がある。この実施例では、Ｒａｆｔと呼ばれるアルゴリズムで新たな代表ノードが選択されるものとする。
【００３１】
この場合、代表ノードとして動作する能力を有するノードが、新たな代表ノードに立候補する。この例では、図４（ａ）に示すように、ノード１２が新たな代表ノードに立候補する。以下の記載では、新たな代表ノードに立候補したノードを「仮代表ノード」と呼ぶことがある。
【００３２】
仮代表ノード１２は、ネットワークＡ内の各ノードに投票要求メッセージを送信する。この場合、投票要求メッセージは、ノード１２が新たな代表ノードに立候補したことを表す。
【００３３】
各ノード１３、１４は、仮代表ノード１２から投票要求メッセージを受信すると、ノード１２が新たな代表ノードとして動作することに賛成するか否かを決定する。ノード１２が新たな代表ノードとして動作することに賛成するときは、各ノード１３、１４は、仮代表ノード１２に応答メッセージを送信する。このとき、図４（ｂ）に示すように、各ノード１３、１４は、応答メッセージと共に、自分が保持しているデータ部品を仮代表ノード１２に送信する。具体的には、ノード１３は、データ部品Ｄ２を仮代表ノード１２に送信し、ノード１４は、データ部品Ｄ３を仮代表ノード１２に送信する。
【００３４】
なお、仮代表ノード１２から送信される投票要求メッセージは、代表ノード１１にも到着する。ただし、代表ノード１１に障害が発生している。よって、この例では、代表ノード１１は、仮代表ノード１２に応答メッセージを送信しない。
【００３５】
仮代表ノード１２は、ネットワークＡ内の所定数のノードから応答メッセージを受信すると、仮代表ノード１２がネットワークＡの新たな代表ノードとして動作することについてネットワークＡにおいて合意が形成された判定する。たとえば、仮代表ノード１２は、ネットワークＡ内の過半数のノードから応答メッセージを受信したときに、ネットワークＡにおいて合意が形成された判定する。そして、合意が形成されると、仮代表ノード１２は、以降、「新代表ノード」として動作する。
【００３６】
新代表ノード１２は、ネットワークＡ内の他のノードから受信するデータ部品を利用して認証情報Ａ１を再生する。この例では、仮代表ノード１２は、自分で保持しているデータ部品Ｄ１、ノード１３から受信するデータ部品Ｄ２、およびノード１４から受信するデータ部品Ｄ３から認証情報Ａ１を再生する。なお、認証情報Ａ１は、シャミアの秘密分散法で３個のデータ部品に分割されている。したがって、Ｋ＝２であるものとすると、仮代表ノード１２は、データ部品Ｄ１〜Ｄ３のうちのいずれか２個から認証情報Ａ１を再生できる。また、Ｋ＝３である場合は、仮代表ノード１２は、データ部品Ｄ１〜Ｄ３から認証情報Ａ１を再生できる。
【００３７】
なお、ノード１２は、ノード１２がネットワークＡの新たな代表ノードとして動作することについて合意が形成されたか否かを他の方法で判定してもよい。たとえば、ノード１２は、取得したデータ部品から認証情報Ａ１を再生できたときに、ノード１２がネットワークＡの新たな代表ノードとして動作することについて合意が形成されたと判定してもよい。
【００３８】
新代表ノード１２は、図５（ａ）に示すように、再生した認証情報Ａ１を更新することにより認証情報Ａ２を生成する。ここで、認証情報Ａ１が代表ノード１１のアドレスおよび代表ノード１１、２１間で使用するパスワードを含むものとする。この場合、新代表ノード１２は、例えば、代表ノード１１のアドレスを新代表ノード１２のアドレスに書き換えることで認証情報Ａ２を生成してもよい。加えて、新代表ノード１２は、認証情報Ａ１に含まれるパスワードを、代表ノード１２、２１間で使用するパスワードに変更してもよい。そして、新代表ノード１２は、認証情報Ａ２に基づいて代表ノード２１との間で認証処理を実行する。このとき、新代表ノード１２および代表ノード２１は、協働して認証処理を実行する。この結果、ネットワークＡ、Ｂが相互に再接続される。
【００３９】
なお、認証情報Ａ２に基づいてネットワークＡ、Ｂが接続された後は、認証情報Ａ１を利用してネットワークＡ、Ｂ間を接続することができない。すなわち、認証情報Ａ１は、実質的に無効化される。よって、ネットワークＡ、Ｂ間の通信のセキュリティが確保される。
【００４０】
この後、新代表ノード１２は、図５（ｂ）に示すように、認証情報Ａ２を分割して複数のデータ部品を生成する。このとき、新代表ノード１２は、たとえば、シャミアの秘密分散法で認証情報Ａ２を分割して複数のデータ部品を生成する。そして、複数のデータ部品は、ネットワークＡ内の異なる複数のノードに配布される。
【００４１】
また、新代表ノード１２は、図６に示すように、定期的に、ネットワークＡ内の各ノードにheartbeatメッセージを送信する。よって、各ノード１３、１４は、heartbeatメッセージをモニタすることにより、新代表ノード１２が正常に動作しているか否かを検知できる。
【００４２】
このように、代表ノードが他のネットワークの代表ノードと通信を行うために使用される認証情報は、複数のデータ部品に分割されて複数のノードに配布される。ここで、各データ部品は、個々のデータ部品から認証情報の内容を解読できないように生成される。したがって、代表ノードとして選出されていないノードは、他のネットワークと通信を行うことはできない。また、ネットワーク内の１つのノードが悪意のあるユーザに乗っ取られたとしても、そのノードは他のネットワークと通信を行うことはできない。よって、ネットワーク内の他のノードまたは他のネットワークへの被害は抑制される。
【００４３】
更に、新たな代表ノードに立候補したノード（仮代表ノード）は、所定数以上のノードによる合意が形成された場合に代表ノードとして動作することができる。或いは、仮代表ノードは、所定数以上のノードからデータ部品を取得したときに、認証情報を再生し、その認証情報を更新し、更新後の認証情報で他のネットワークと通信を行う。したがって、ネットワーク内の複数のノード（例えば、過半数のノード）の合意が形成されたときにネットワークの再接続が実現される。したがって、管理者が存在しない分散環境下で、ネットワークのセキュリティを向上させることができる。
【００４４】
なお、上述の例では、代表ノードに障害が発生したことに起因して代表ノードの切替えが実行されるが、本発明はこのシーケンスに限定されるものではない。例えば、代表ノードとして動作している通信装置のメンテナンス時には、ネットワーク管理者は、その通信装置のheartbeatを停止させる。この場合、heartbeatの停止に応じて新たな代表ノードが自律的に選出され、ネットワークの相互接続が継続される。
【００４５】
図８は、代表ノードの処理の一例を示すフローチャートである。このフローチャートの処理は、代表ノードとして選出された通信装置により実行される。
【００４６】
Ｓ１において、代表ノードは、認証情報を生成する。なお、Ｓ１において認証情報を生成する処理は、認証情報を更新する処理を含む。すなわち、代表ノードにおいて認証情報が生成または更新されると、Ｓ２〜Ｓ５が実行される。
【００４７】
Ｓ２において、代表ノードは、認証情報に基づいて、他のネットワークの代表ノードと共に認証処理を実行する。Ｓ３において、代表ノードは、認証情報を分割することで得られる複数のデータ部品をネットワーク内の複数のノードに配布する。このとき、認証情報は、例えば、シャミアの秘密分散法で複数のデータ部品に分割される。Ｓ４〜Ｓ５において、代表ノードは、所定の時間間隔で、ネットワーク内の各ノードにheartbeatメッセージを繰り返し送信する。なお、代表ノードは、Ｓ１〜Ｓ５の処理に加えて、ゲートウェイとして他のネットワークとの間の通信を行う。
【００４８】
図９は、一般ノードの処理の一例を示すフローチャートである。このフローチャートの処理は、一般ノードに実装される通信装置により実行される。なお、一般ノードは、この実施例では、代表ノードとして動作していないノードを表す。
【００４９】
Ｓ１１において、通信装置は、代表ノードから送信されるheartbeatメッセージをモニタする。なお、代表ノードは、正常に動作しているときは、図３（ａ）または図８に示すように、ネットワーク内の各ノードに、定期的に、heartbeatメッセージを送信する。そして、heartbeatメッセージを受信できないときは、通信装置の処理はＳ１２に進む。
【００５０】
Ｓ１２において、通信装置は、代表ノードに立候補する。すなわち、通信装置は、ネットワーク内の各ノードに投票要求メッセージを送信する。なお、通信装置は、自分が代表ノードとして動作する能力を有している場合に代表ノードに立候補する。
【００５１】
Ｓ１３〜Ｓ１４において、通信装置は、他のノードから送信される応答メッセージおよびデータ部品を待ち受ける。そして、所定数以上の応答メッセージを受信すると、通信装置は、自分が代表ノードとして動作することについてネットワーク内で合意が形成されたと判定する。合意が形成された後は、通信装置は、新たな代表ノードとして動作する。この場合、通信装置の処理はＳ１５に進む。
【００５２】
「所定数以上」は、例えば、過半数である。ただし、「所定数以上」は過半数に限定されるものではない。例えば、Ｎ個のデータ部品に分割された認証情報が、Ｎ個のデータ部品のうちのＫ個のデータ部品から再生可能なときは、通信装置は、Ｋ個以上の応答メッセージを受信したときに合意が形成されたと判定してもよい。
【００５３】
Ｓ１５において、通信装置は、受信したデータ部品から認証情報を再生する。Ｓ１６において、通信装置は、再生した認証情報を更新する。このとき、例えば、認証情報中のアドレスおよび／またはパスワードが更新される。Ｓ１７において、通信装置は、更新後の認証情報に基づいて認証処理を実行する。Ｓ１８において、更新後の認証情報を分割することで得られる複数のデータ部品をネットワーク内の複数のノードに配布する。
【００５４】
この後、通信装置は、ゲートウェイ装置として他のネットワークとの間の通信を行う。また、通信装置は、所定の時間間隔で、ネットワーク内の各ノードにheartbeatメッセージを繰り返し送信する。なお、代表ノードの故障に際して複数の通信装置が新たな代表ノードに立候補したときは、最も早く所定数以上の応答メッセージを受信した通信装置が代表ノードとして動作する。
【００５５】
図１０は、一般ノードの他の処理の一例を示すフローチャートである。なお、このフローチャートの処理は、例えば、代表ノードとして動作する能力を有していない通信装置により実行される。
【００５６】
Ｓ２１において、通信装置は、代表ノードから送信されるheartbeatメッセージをモニタする。そして、heartbeatメッセージを受信できないときは、通信装置の処理はＳ２２に進む。
【００５７】
Ｓ２２において、通信装置は、投票要求メッセージを待ち受ける。投票要求メッセージは、代表ノードに立候補した通信装置から送信される。そして、投票要求メッセージを受信すると、通信装置は、Ｓ２３において、その投票要求メッセージの送信元ノードが代表ノードとして動作することに同意するか否かを判定する。このとき、通信装置は、たとえば、投票要求メッセージの送信元ノードのＩＤまたはアドレスに基づいて同意するか否かを決定してもよい。
【００５８】
投票要求メッセージに同意するときは、通信装置は、Ｓ２４において、投票要求メッセージの送信元ノードに応答メッセージを送信する。このとき、通信装置は、自ノード内に保存されている認証情報のデータ部品も送信元ノードに送信する。
【００５９】
図１１は、各ノードに実装される通信装置の機能の一例を示す。通信装置４０は、処理部５０および記憶部７０を備える。なお、通信装置４０は、図１１に示していない他の機能を備えていてもよい。
【００６０】
処理部５０は、heartbeat生成部５１、認証情報生成部５２、認証処理部５３、配布部５４、ゲートウェイ部５５、モニタ部５６、投票要求生成部５７、応答部５８、合意判定部５９、認証情報再生部６０、ルータ部６１を備える。なお、処理部５０は、図１１に示していない他の機能を備えてもよい。
【００６１】
heartbeat生成部５１は、定期的に、heartbeatメッセージを生成してネットワーク内の各ノードに送信する。認証情報生成部５２は、認証情報を生成または更新する。認証処理部５３は、認証情報に基づいて、他のネットワークの代表ノードと協働して認証処理を実行する。配布部５４は、認証情報を分割して２以上のデータ部品を生成してネットワーク内の２以上のノードに配布する。このとき、Ｎ個のデータ部品は、Ｎ個の異なるノードに配布されることが好ましい。ゲートウェイ部５５は、ゲートウェイ装置としての機能を提供する。なお、heartbeat生成部５１、認証情報生成部５２、認証処理部５３、配布部５４、ゲートウェイ部５５は、主に、通信装置４０が代表ノードとして選出されているときに動作する。
【００６２】
モニタ部５６は、代表ノードから送信されるheartbeatメッセージをモニタする。投票要求生成部５７は、モニタ部５６が所定時間以上継続してheartbeatメッセージを検出しないときに、投票要求メッセージを生成してネットワーク内の各ノードに送信する。応答部５８は、通信装置４０が他のノードから投票要求メッセージを受信したときに、その投票要求メッセージの送信元ノードに応答メッセージを送信する。なお、応答部５８は、投票要求メッセージに同意するときに、その投票要求メッセージの送信元ノードに応答メッセージを送信する。また、通信装置４０がデータ部品を保持するときは、応答部５８は、応答メッセージと共にデータ部品を送信する。
【００６３】
合意判定部５９は、通信装置４０が所定数以上の応答メッセージを受信したときに、通信装置４０が代表ノードとして動作することについてネットワーク内で合意が形成されたと判定する。認証情報再生部６０は、ネットワーク内で合意が形成されたときに、通信装置４０が受信したデータ部品（及び、通信装置４０が保持しているデータ部品）から認証情報を再生する。ルータ部６１は、ルータ装置としての機能を提供する。なお、モニタ部５６、投票要求生成部５７、応答部５８、合意判定部５９、認証情報再生部６０、ルータ部６１は、主に、通信装置４０が代表ノードとして選出されていないときに動作する。
【００６４】
記憶部７０は、認証情報格納部７１およびデータ部品格納部７２を備える。認証情報格納部７１は、通信装置４０内で生成または更新される認証情報を格納する。データ部品格納部７２は、代表ノードから受信するデータ部品を格納する。なお、記憶部７０は、図１１に示していないデータおよび情報を格納してもよい。また、通信装置４０は、ネットワーク内で新たな代表ノードが選出されたことを検知すると、認証情報格納部７１に格納されている認証情報およびデータ部品格納部７２に格納されているデータ部品を廃棄することが好ましい。
【００６５】
図１２は、各ノードに実装される通信装置４０として動作するコンピュータのハードウェア構成の一例を示す。コンピュータ２００は、プロセッサ２０１、メモリ２０２、記憶装置２０３、Ｉ／Ｏデバイス２０４、記録媒体デバイス２０５、通信インタフェース２０６を備える。
【００６６】
プロセッサ２０１は、記憶装置２０３に格納されている通信プログラムを実行することにより、通信装置４０の機能を提供することができる。すなわち、通信装置４０が代表ノードとして動作するときは、プロセッサ２０１は、図８に示すフローチャートの処理を記述した通信プログラムを実行することにより、heartbeat生成部５１、認証情報生成部５２、認証処理部５３、配布部５４の機能を提供する。また、通信装置４０が一般ノードとして動作するときには、プロセッサ２０１は、図９または図１０に示すフローチャートの処理を記述した通信プログラムを実行することにより、モニタ部５６、投票要求生成部５７、応答部５８、合意判定部５９、認証情報再生部６０の機能を提供する。
【００６７】
メモリ２０２は、例えば半導体メモリであり、プロセッサ２０１の作業領域として使用される。記憶装置２０３は、コンピュータ２００内に実装されていてもよいし、コンピュータ２００に接続されていてもよい。Ｉ／Ｏデバイス２０４は、ユーザまたはネットワーク管理者の指示を受け付ける。また、Ｉ／Ｏデバイス２０４は、プロセッサ２０１による処理結果を出力する。記録媒体デバイス２０５は、可搬型記録媒体２０７に記録されている信号を読み取る。なお、上述した通信プログラムは、可搬型記録媒体２０７に記録されていてもよい。通信インタフェース２０６は、データ通信のためのインタフェースおよび制御情報を通信するためのインタフェースを含む。
【００６８】
＜第１の実施例＞
図１３は、第１の実施例のシステム構成を示す。第１の実施例では、ネットワークＡおよびネットワークＢが相互に接続される。ネットワークＡは、ノードＡ１〜Ａ４を含み、ノードＡ１が代表ノードとして選出されている。ネットワークＢは、ノードＢ１〜Ｂ４を含み、ノードＢ１が代表ノードとして選出されている。ノードＡ１は、認証情報Ｘ１を保持し、ノードＢ１は、認証情報Ｙ１を保持する。なお、ノードＡ１、Ａ２、Ｂ１、Ｂ２のＩＰアドレスは、図１３に示す通りである。また、図１３には示していないが、各ノードＡ１〜Ａ４、Ｂ１〜Ｂ４は、それぞれクライアント証明書を保持している。各ノードが保持するクライアント証明書は、互いに異なることが好ましい。
【００６９】
図１４は、認証情報の一例を示す。この実施例では、認証情報は、ユーザ登録テーブルおよびアクセス情報テーブルを含む。なお、ネットワークＡの代表ノードであるノードＡ１は、図１４（ａ）に示すユーザ登録テーブルＵＡ１およびアクセス情報テーブルＤＡ１を保持する。また、ネットワークＢの代表ノードであるノードＢ１は、図１４（ｂ）に示すユーザ登録テーブルＵＢ１およびアクセス情報テーブルＤＢ１を保持する。
【００７０】
ユーザ登録テーブルには、他のネットワークの代表ノードからアクセスされたときに、そのアクセスを許可するか否かを判定するための情報が記録される。例えば、ノードＡ１のユーザ登録テーブルＵＡ１には、図１４（ａ）に示すように、ネットワークＢの代表ノードであることを表す識別情報「代表Ｂ」、およびネットワークＢからネットワークＡへのアクセスのためのパスワード「ｐｗｄ＿Ｂ１」が記録される。
【００７１】
アクセス情報テーブルには、他のネットワークにアクセスするときに使用する情報が記録される。たとえば、ノードＡ１に実装されるアクセス情報テーブルＤＡ１には、図１４（ｂ）に示すように、アクセス先のネットワークを識別する情報「ＮＷ＿Ｂ」、アクセス先の代表ノードのＩＰアドレス「192.168.2.1.80」、ネットワークＡの代表ノードであることを表す識別情報「代表Ａ」、およびネットワークＡからネットワークＢへのアクセスのためのパスワード「ｐｗｄ＿Ａ１」が記録される。
【００７２】
図１５は、第１の実施例における代表ノード切替えシーケンスの一例を示す。なお、このシーケンスの前に、図１３に示すネットワークＡにおいて、代表ノードとして動作していたノードＡ１に障害が発生したものとする。そして、ノードＡ２が新たな代表ノードに立候補したものとする。この場合、ノードＡ２は、ネットワークＡ内の各ノードに投票要求メッセージを送信し、応答メッセージおよびデータ部品を待ち受ける。
【００７３】
（１）ノードＡ２は、ネットワークＡ内の複数のノードからデータ部品を収集する。そして、ノードＡ２は、収集した複数のデータ部品から認証情報Ｘ１を再生する。即ち、ノードＡ２において、図１４（ａ）に示すユーザ登録テーブルＵＡ１およびアクセス情報テーブルＤＡ１が再生される。
【００７４】
（２）ノードＡ２は、認証情報Ｘ１を更新することにより認証情報Ｘ２を生成する。具体的には、ノードＡ２は、ユーザ登録テーブルＵＡ１において、ネットワークＢからネットワークＡへのアクセスのためのパスワードを「ｐｗｄ＿Ｂ１」から「ｐｗｄ＿Ｂ２」に変更する。また、ノードＡ２は、アクセス情報テーブルＤＡ１において、ネットワークＡからネットワークＢへのアクセスのためのパスワードを「ｐｗｄ＿Ａ１」から「ｐｗｄ＿Ａ２」に変更する。この結果、図１６（ａ）に示すユーザ登録テーブルＵＡ２およびアクセス情報テーブルＤＡ２が生成される。なお、ユーザ登録テーブルＵＡ２およびアクセス情報テーブルＤＡ２は、認証情報Ｘ２に含まれる。
【００７５】
（３）ノードＡ２は、更新前の認証情報（即ち、複数のデータ部品から再生された認証情報Ｘ１）に基づいてネットワークＢの代表ノード（すなわち、ノードＢ１）にアクセスする。具体的には、ノードＡ２は、図１４（ａ）に示すアクセス情報テーブルＤＡ１に基づいてノードＢ１にログインする。なお、新たな代表ノード（即ち、ノードＡ２）は、他のネットワークの代表ノード（即ち、ノードＢ１）にアクセスするためには、旧代表ノードが使用していた認証情報（即ち、認証情報Ａ１）が必要である。
【００７６】
（４）ログインが成功すると、ノードＡ２およびノードＢ１は、相互にクライアント証明書をチェックする。このとき、例えば、ノードＡ２は、ノードＡ２が保持するクライアント証明書をノードＢ１に送信し、ノードＢ１は、ノードＢ１が保持するクライアント証明書をノードＡ２に送信する。
【００７７】
（５）クライアント証明書が正しいことが相互に確認されると、ノードＡ２は、代表ノードアドレスの変更要求をノードＢ１に送信する。この実施例では、このアドレス変更要求は、ネットワークＡの代表ノードのアドレスが、「ノードＡ１（192.168.1.1）」から「ノードＡ２（192.168.1.2）」に変更されたこと表す。したがって、ノードＢ１は、このアドレス変更要求を受信すると、図１６（ｂ）に示すように、アクセス情報テーブルＤＢ１において代表ノードアドレスを変更する。
【００７８】
（６）ノードＡ２は、パスワードの変更要求をノードＢ１に送信する。このとき、このパスワード変更要求は、ネットワークＢからネットワークＡへのアクセスのためのパスワードが「ｐｗｄ＿Ｂ１」から「ｐｗｄ＿Ｂ２」に変更されたことを表す情報、およびネットワークＡからネットワークＢへのアクセスのためのパスワードが「ｐｗｄ＿Ａ１」から「ｐｗｄ＿Ａ２」に変更されたことを表す情報を含む。したがって、ノードＢ１は、このパスワード変更要求を受信すると、図１６（ｂ）に示すように、ユーザ登録テーブルＵＢ１において受付パスワードを「ｐｗｄ＿Ａ１」から「ｐｗｄ＿Ａ２」に変更すると共に、アクセス情報テーブルＤＢ１において宛先パスワードを「ｐｗｄ＿Ｂ１」から「ｐｗｄ＿Ｂ２」に変更する。
【００７９】
上記手順により、ノードＡ２とノードＢ１との間の認証処理が完了し、ネットワークＡとネットワークＢとが相互に接続される。すなわち、ネットワークＡにおいて代表ノードとして動作していたノードＡ１に障害が発生すると、自動的に新たな代表ノードが選出される。そして、ネットワークＡの新たな代表ノードがネットワークＢとの接続のための処理を実装する。この結果、ネットワークの相互接続が自動的に復旧する。
【００８０】
なお、新たな代表ノードは、他のネットワークの代表ノードにアクセスするためには、旧代表ノードが使用していた認証情報が必要である。よって、新たな代表ノードは、他のノードからデータ部品を収集して旧代表ノードが使用していた認証情報を再生する。
【００８１】
＜第２の実施例＞
図１７は、第２の実施例のシステム構成を示す。第２の実施例では、ネットワークＡ〜Ｃが相互に接続される。ネットワークＡは、ノードＡ１〜Ａ４を含み、ノードＡ１が代表ノードとして選出されている。ネットワークＢは、ノードＢ１〜Ｂ４を含み、ノードＢ１が代表ノードとして選出されている。ネットワークＣは、ノードＣ１〜Ｃ４を含み、ノードＣ１が代表ノードとして選出されている。ノードＡ１は、認証情報Ｘ１を保持し、ノードＢ１は、認証情報Ｙ１を保持し、ノードＣ１は、認証情報Ｚ１を保持する。なお、図１７には示していないが、各ノードＡ１〜Ａ４、Ｂ１〜Ｂ４、Ｃ１〜Ｃ４は、それぞれクライアント証明書を保持している。
【００８２】
ノードＡ１は、２つのＩＰアドレスを有する。192.168.1.21はネットワークＢと接続するために使用され、192.168.1.31はネットワークＣと接続するために使用される。ノードＡ２は、２つのＩＰアドレスを有する。192.168.1.22はネットワークＢと接続するために使用され、192.168.1.32はネットワークＣと接続するために使用される。ノードＢ１は、２つのＩＰアドレスを有する。192.168.2.1はネットワークＡと接続するために使用され、192.168.2.3はネットワークＣと接続するために使用される。ノードＣ１は、２つのＩＰアドレスを有する。192.168.3.1はネットワークＡと接続するために使用され、192.168.3.2はネットワークＢと接続するために使用される。
【００８３】
図１８は、認証情報の一例を示す。ネットワークＡの代表ノードであるノードＡ１は、図１８（ａ）に示すユーザ登録テーブルＵＡ１およびアクセス情報テーブルＤＡ１を保持する。ネットワークＢの代表ノードであるノードＢ１は、図１８（ｂ）に示すユーザ登録テーブルＵＢ１およびアクセス情報テーブルＤＢ１を保持する。ネットワークＣの代表ノードであるノードＣ１は、図１８（ｃ）に示すユーザ登録テーブルＵＣ１およびアクセス情報テーブルＤＣ１を保持する。
【００８４】
ユーザ登録テーブルおよびアクセス情報テーブルの構成は、第１の実施例および第２の実施例において実質的に同じなので、説明を省略する。ただし、第２の実施例では、各ノットワークは、それぞれ他の２つのネットワークに接続される。よって、ユーザ登録テーブルおよびアクセス情報テーブルは、それぞれ２つのレコードを有する。
【００８５】
図１９は、第２の実施例における代表ノード切替えシーケンスの一例を示す。なお、このシーケンスの前に、図１７に示すネットワークＡにおいて、代表ノードとして動作していたノードＡ１に障害が発生したものとする。そして、ノードＡ２が新たな代表ノードに立候補したものとする。この場合、ノードＡ２は、ネットワークＡ内の各ノードに投票要求メッセージを送信し、応答メッセージおよびデータ部品を待ち受ける。
【００８６】
（１）ノードＡ２は、ネットワークＡ内の複数のノードからデータ部品を収集する。そして、ノードＡ２は、収集した複数のデータ部品から認証情報Ｘ１を再生する。即ち、ノードＡ２において、図１８（ａ）に示すユーザ登録テーブルＵＡ１およびアクセス情報テーブルＤＡ１が再生される。
【００８７】
（２）ノードＡ２は、認証情報Ｘ１を更新することで認証情報Ｘ２を生成する。具体的には、ノードＡ２は、ユーザ登録テーブルＵＡ１において、ネットワークＢからネットワークＡへのアクセスのためのパスワードを「ｐｗｄ＿ＢＡ１」から「ｐｗｄ＿ＢＡ２」に変更し、ネットワークＣからネットワークＡへのアクセスのためのパスワードを「ｐｗｄ＿ＣＡ１」から「ｐｗｄ＿ＣＡ２」に変更する。また、ノードＡ２は、アクセス情報テーブルＤＡ１において、ネットワークＡからネットワークＢへのアクセスのためのパスワードを「ｐｗｄ＿ＡＢ１」から「ｐｗｄ＿ＡＢ２」に変更し、ネットワークＡからネットワークＣへのアクセスのためのパスワードを「ｐｗｄ＿ＡＣ１」から「ｐｗｄ＿ＡＣ２」に変更する。この結果、図２０（ａ）に示すユーザ登録テーブルＵＡ２およびアクセス情報テーブルＤＡ２が生成される。
【００８８】
（３）ノードＡ２は、更新前の認証情報（即ち、複数のデータ部品から再生された認証情報Ｘ１）を使用してネットワークＢの代表ノード（すなわち、ノードＢ１）にアクセスする。具体的には、ノードＡ２は、図１８（ａ）に示すアクセス情報テーブルＤＡ１に基づいてノードＢ１にログインする。
【００８９】
（４）ログインが成功すると、ノードＡ２およびノードＢ１は、相互にクライアント証明書をチェックする。
【００９０】
（５）ノードＡ２は、代表ノードアドレスの変更要求をノードＢ１に送信する。この実施例では、このアドレス変更要求は、ネットワークＡの代表ノードのアドレスが「ノードＡ１（192.168.1.21）」から「ノードＡ２（192.168.1.22）」に変更されたこと表す。したがって、ノードＢ１は、このアドレス変更要求を受信すると、図２０（ｂ）に示すように、アクセス情報テーブルＤＢ１においてネットワークＡに対応する代表ノードアドレスを変更する。
【００９１】
（６）ノードＡ２は、パスワードの変更要求をノードＢ１に送信する。このパスワード変更要求は、ネットワークＢからネットワークＡへのアクセスのためのパスワードが「ｐｗｄ＿ＢＡ１」から「ｐｗｄ＿ＢＡ２」に変更されたことを表す情報、およびネットワークＡからネットワークＢへのアクセスのためのパスワードが「ｐｗｄ＿ＡＢ１」から「ｐｗｄ＿ＡＢ２」に変更されたことを表す情報を含む。したがって、ノードＢ１は、このパスワード変更要求を受信すると、図２０（ｂ）に示すように、ユーザ登録テーブルＵＢ１においてネットワークＡに対応する受付パスワードを「ｐｗｄ＿ＡＢ１」から「ｐｗｄ＿ＡＢ２」に変更すると共に、アクセス情報テーブルＤＢ１においてネットワークＡに対応する宛先パスワードを「ｐｗｄ＿ＢＡ１」から「ｐｗｄ＿ＢＡ２」に変更する。
【００９２】
この後、ノードＡ２は、上述の手順（３）〜（６）と同様の処理をネットワークＣに対して実行する。この結果、ノードＣ１は、図２０（ｃ）に示すように、アクセス情報テーブルＤＣ１においてネットワークＡに対応する代表ノードアドレスを変更する。また、ノードＣ１は、図２０（ｃ）に示すように、ユーザ登録テーブルＵＣ１においてネットワークＡに対応する受付パスワードを「ｐｗｄ＿ＡＣ１」から「ｐｗｄ＿ＡＣ２」に変更すると共に、アクセス情報テーブルＤＣ１においてネットワークＡに対応する宛先パスワードを「ｐｗｄ＿ＣＡ１」から「ｐｗｄ＿ＣＡ２」に変更する。
【００９３】
＜第３の実施例＞
図１３〜図２０に示す実施例では、各ネットワークに１つの代表ノードが存在するが、本発明はこの構成に限定されるものではない。すなわち、ゲートウェイの処理能力およびネットワークのスケーラビリティの向上を図るために、各ネットワーク内で複数の代表ノードが並列に動作してもよい。
【００９４】
図２１は、ネットワーク内に複数の代表ノードが存在し得る構成の一例を示す。この例では、ネットワークＡにおいて複数の代表ノードが存在する。
【００９５】
代表ノードとして動作する能力を有する通信装置は、トークンを保有する。なお、ネットワーク内で複数のトークンが生成され得る。また、１つの通信装置が複数のトークンを有することも可能である。
【００９６】
トークンは、代表ノードとして動作しているか否かを動的に表す。例えば、通信装置が代表ノードとして動作していないときはトークンの値はゼロであり、その通信装置が代表ノードとして選出されるとトークンの値は１に更新される。
【００９７】
代表ノードは、トークンごとに選出される。よって、複数のトークンが生成されているネットワークでは、複数の代表ノードが並列に動作することになる。また、各代表ノードは、例えば、図４〜図５に示す方法で選出される。すなわち、各代表ノードは、ネットワーク内の合意に基づいて選出される。なお、各代表ノードは、他のネットワークの代表ノードとフルメッシュで通信経路を有する。
【００９８】
各代表ノードは、トークンごとにheartbeatメッセージの送信または受信を行う。代表ノードに障害が発生したときには、図４〜図５に示す方法で新たな代表ノードが選出される。すなわち、いずれかの代表ノードに障害が発生したことを検知した通信装置は、障害が発生した代表装置から配布された２以上のデータ部品のうちの所定数以上のデータ部品を取得し、障害が発生した代表ノードに対応する認証情報を再生する。そして、この通信装置は、再生した認証情報の少なくとも一部を書き換えることにより新たな認証情報を生成し、その新たな認証情報に基づいて対応するネットワークに接続する。この場合、代表ノードとして新たに選出された通信装置において、トークンの値がゼロから１に更新される。
【００９９】
＜適用例＞
図２２は、本発明の実施形態に係わる通信方法の適用例を示す。図２２に示す例では、データ流通ネットワークに複数の企業ネットワークが接続されている。データ流通ネットワークは、ブロックチェーン技術を利用して、企業ネットワーク間でデータを利用する市場を提供する。
【０１００】
各企業ネットワークにおいて、それぞれ代表ノードが選出される。代表ノードは、それぞれ、例えば、図４〜図５に示す方法で選出される。すなわち、各代表ノードは、企業ネットワーク内の合意に基づいて選出される。そして、選出された代表ノードは、データ流通ネットワークを介して他の企業ネットワークに接続するゲートウェイとして動作する。
【０１０１】
なお、データ流通ネットワークは、データの発見および検索、セキュアデータ通信、アクセス証跡管理などを提供する。これらの機能は、例えば、各企業ネットワークのゲートウェイにより実現される。また、データ流通ネットワークは、ブロックチェーン技術を拡張し、データの属性および概要を表すメタデータの共有、および安全なデータ取引を実現する。さらに、データ流通ネットワークにおいては、異なる組織または個人が保有するデータが分散して安全に管理されることが好ましい。このとき、複数のクラスタ（メタデータの流通が行われる単位であり、ＩＰのＡＳに相当する）が設置され、これらの間でネットワークを跨いだデータ流通空間を実現することが求められる。この場合、各クラスタの代表ノードがゲートウェイとして他のクラスタと通信を行う。よって、データ流通ネットワークにおいても、代表ノードに障害が発生すると、新たな代表ノードを選出する必要がある。そこで、本発明の実施形態に係わる通信方法を採用すれば、上述のようなデータ流通ネットワークの相互接続において、安全に代表ノードを切り替えることが可能になる。
【０１０２】
上述の実施例を含む実施形態に関し、さらに下記の付記を開示する。
（付記１）
第１のネットワーク内で使用される複数の通信装置のうちの１つの通信装置において、
前記複数の通信装置のうちから選出される代表装置から定期的に送信される第１のメッセージをモニタし、
前記第１のメッセージを所定時間以上検出しないときに、前記第１のネットワーク内の各通信装置に第２のメッセージを送信し、
第２のネットワークに接続するための認証情報を分割することで得られる２以上のデータ部品が、前記代表装置から前記第１のネットワーク内の２以上の通信装置に配布された状況において、前記第２のメッセージに応じて前記第１のネットワーク内の通信装置から送信されるデータ部品を取得し、
所定数以上のデータ部品を取得したときに、前記所定数以上のデータ部品から前記認証情報を再生し、
再生された前記認証情報の少なくとも一部を書き換えることにより新たな認証情報を生成し、
前記新たな認証情報に基づいて前記第２のネットワークに接続する
処理をプロセッサに実行させる通信プログラム。
（付記２）
再生された前記認証情報に基づいて前記第２のネットワークに接続し、再生された前記認証情報から前記新たな認証情報を生成する際に書き換えられた内容を前記第２のネットワークに通知する処理
を前記プロセッサにさらに実行させる付記１に記載の通信プログラム。
（付記３）
前記新たな認証情報を分割することで得られる２以上のデータ部品を前記第１のネットワーク内の２以上の通信装置に配布する処理
を前記プロセッサにさらに実行させる付記１に記載の通信プログラム。
（付記４）
前記新たな認証情報は、Ｎ（Ｎは、２以上の整数）個のデータ部品のうちのＫ（Ｋは、Ｎ以下の整数）個のデータ部品から前記新たな認証情報を再生可能なように、シャミアの秘密分散法を用いてＮ個のデータ部品に分割される
ことを特徴とする付記３に記載の通信プログラム。
（付記５）
第１のネットワーク内で使用される複数の通信装置のうちの１つの通信装置であって、
前記複数の通信装置のうちから選出される代表装置から定期的に送信される第１のメッセージをモニタするモニタ部と、
前記第１のメッセージを所定時間以上検出しないときに、前記第１のネットワーク内の各通信装置に第２のメッセージを送信するメッセージ送信部と、
第２のネットワークに接続するための認証情報を分割することで得られる２以上のデータ部品が、前記代表装置から前記第１のネットワーク内の２以上の通信装置に配布された状況において、前記第２のメッセージに応じて前記第１のネットワーク内の通信装置から送信されるデータ部品を受信し、所定数以上のデータ部品を取得したときに、前記所定数以上のデータ部品から前記認証情報を再生する認証情報再生部と、
再生された前記認証情報の少なくとも一部を書き換えることにより新たな認証情報を生成する認証情報生成部と、
前記新たな認証情報に基づいて前記第２のネットワークに接続する認証処理部と、
を備える通信装置。
（付記６）
複数の通信装置を含む第１のネットワークにおいて、前記複数の通信装置の中の第１の通信装置は、第２のネットワークに接続するための認証情報を分割することで得られる２以上のデータ部品を前記第１のネットワーク内の２以上の通信装置に配布し、
前記複数の通信装置の中の第２の通信装置は、
前記第１の通信装置に障害が発生したことを検知したときに、前記２以上のデータ部品のうちの所定数以上のデータ部品を取得して前記認証情報を再生し、
再生された前記認証情報の少なくとも一部を書き換えることにより新たな認証情報を生成し、
前記新たな認証情報に基づいて前記第２のネットワークに接続する
ことを特徴とする通信方法。
（付記７）
前記第１の通信装置は、Ｎ（Ｎは、２以上の整数）個のデータ部品のうちのＫ（Ｋは、Ｎ以下の整数）個のデータ部品から前記認証情報を再生可能なように、前記認証情報をＮ個のデータ部品に分割する
ことを特徴とする付記６に記載の通信方法。
（付記８）
前記第１の通信装置は、前記第２のネットワークと通信を行っているときは、前記第１のネットワーク内の各通信装置に定期的に第１のメッセージを送信し、
前記第２の通信装置は、
前記第１のメッセージを所定時間以上検出しないときは、前記第１のネットワーク内の各通信装置に第２のメッセージを送信し、
前記第２のメッセージに応じて前記第１のネットワーク内の通信装置から送信される前記データ部品を受信する
ことを特徴とする付記６または７に記載の通信方法。
（付記９）
前記第２の通信装置は、前記新たな認証情報を分割することで得られる２以上のデータ部品を前記第１のネットワーク内の２以上の通信装置に配布する
ことを特徴とする付記６〜８のいずれか１つに記載の通信方法。
（付記１０）
複数の通信装置を含む第１のネットワークにおいて、第２のネットワークに接続する権利を表すトークンを複数生成し、
各トークンに対して、前記複数の通信装置の中から前記第２のネットワークに接続する権利を有する代表装置を選出し、
各代表装置は、代表装置ごとに互いに異なる、前記第２のネットワークに接続するための認証情報を分割することで得られる２以上のデータ部品を前記第１のネットワーク内の２以上の通信装置に配布し、
前記複数の通信装置の中の前記代表装置以外の通信装置は、
いずれかの代表装置に障害が発生したことを検知したときに、障害が発生した代表装置から配布された前記２以上のデータ部品のうちの所定数以上のデータ部品を取得して、障害が発生した代表装置に対応する前記認証情報を再生し、
再生された前記認証情報の少なくとも一部を書き換えることにより新たな認証情報を生成し、
前記新たな認証情報に基づいて前記第２のネットワークに接続する
ことを特徴とする通信方法。
【符号の説明】
【０１０３】
１１、２１、３１  代表ノード
１２  ノード（仮代表ノード、新代表ノード）
１３〜１４  ノード
４０  通信装置
５１  heartbeat生成部
５２  認証情報生成部
５３  認証処理部
５４  配布部
５６  モニタ部
５７  投票要求生成部
５８  応答部
５９  合意判定部
６０  認証情報再生部
１００  通信システム
２０１  プロセッサ
【図１】
2020101875.tif 000003
【図２】
2020101875.tif 000004
【図３】
2020101875.tif 000005
【図４】
2020101875.tif 000006
【図５】
2020101875.tif 000007
【図６】
2020101875.tif 000008
【図７】
2020101875.tif 000009
【図８】
2020101875.tif 000010
【図９】
2020101875.tif 000011
【図１０】
2020101875.tif 000012
【図１１】
2020101875.tif 000013
【図１２】
2020101875.tif 000014
【図１３】
2020101875.tif 000015
【図１４】
2020101875.tif 000016
【図１５】
2020101875.tif 000017
【図１６】
2020101875.tif 000018
【図１７】
2020101875.tif 000019
【図１８】
2020101875.tif 000020
【図１９】
2020101875.tif 000021
【図２０】
2020101875.tif 000022
【図２１】
2020101875.tif 000023
【図２２】
2020101875.tif 000024