(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024039786
(43)【公開日】2024-03-25
(54)【発明の名称】ネットワークシステム、情報処理装置および通信方法
(51)【国際特許分類】
H04L 9/14 20060101AFI20240315BHJP
【FI】
H04L9/14
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2022144399
(22)【出願日】2022-09-12
(71)【出願人】
【識別番号】521314127
【氏名又は名称】帝都 久利寿
(71)【出願人】
【識別番号】514318600
【氏名又は名称】コネクトフリー株式会社
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】帝都 久利寿
(57)【要約】
【課題】公開鍵を用いるネットワークにおいて生じ得る新規な課題に対する解決手段を提供する。
【解決手段】複数のデバイスを含むネットワークシステムが提供される。複数のデバイスの各々は、他のデバイスとデータ通信を行うための通信部と、他のデバイスから受信した公開鍵に基づいて、他のデバイスのネットワークアドレスを決定する決定部とを含む。第1のデバイスは、第1の公開鍵および第2の公開鍵を有しており、第1の公開鍵に基づいて決定される第1のネットワークアドレスを指定したアクセス、および、第2の公開鍵に基づいて決定される第2のネットワークアドレスを指定したアクセスのいずれにも応答可能に構成される。
【選択図】
図8
【特許請求の範囲】
【請求項1】
複数のデバイスを含むネットワークシステムであって、
前記複数のデバイスの各々は、
他のデバイスとデータ通信を行うための通信部と、
他のデバイスから受信した公開鍵に基づいて、前記他のデバイスのネットワークアドレスを決定する決定部とを備え、
前記複数のデバイスに含まれる第1のデバイスは、
第1の公開鍵および第2の公開鍵を有しており、
前記第1の公開鍵に基づいて決定される第1のネットワークアドレスを指定したアクセス、および、前記第2の公開鍵に基づいて決定される第2のネットワークアドレスを指定したアクセスのいずれにも応答可能に構成される、ネットワークシステム。
【請求項2】
前記第1のデバイスは、複数のネットワークアドレスを有していること、および、複数の公開鍵を有していることのうち少なくとも一方を通知するように構成される、請求項1に記載のネットワークシステム。
【請求項3】
前記第1のデバイスは、前記第1のネットワークアドレスを指定したアクセスを受けると、前記第2の公開鍵の存在、および、前記第2のネットワークアドレスの存在のうち、少なくとも一方をアクセス元に通知する、請求項1に記載のネットワークシステム。
【請求項4】
前記第1のデバイスは、
前記第1の公開鍵に関連付けられた第1の電子証明書を有しており、
前記第1の電子証明書の有効期間が期限間近または期限切れである場合に、前記第2の公開鍵の存在、および、前記第2のネットワークアドレスの存在のうち、少なくとも一方をアクセス元に通知する、請求項3に記載のネットワークシステム。
【請求項5】
前記第1のデバイスは、他のデバイスから前記第1のネットワークアドレスの有効性の問合せを受けると、前記第1の電子証明書の有効期間に応じて応答する、請求項4に記載のネットワークシステム。
【請求項6】
前記複数のデバイスに含まれる第2のデバイスは、前記第1のデバイスから前記第2の公開鍵を取得すると、前記第2の公開鍵に基づいて第2のネットワークアドレスを決定するとともに、当該決定した第2のネットワークアドレスでルーティングテーブルを更新する、請求項1~5のいずれか1項に記載のネットワークシステム。
【請求項7】
前記第2のデバイスは、前記第2のネットワークアドレスを前記第2のデバイスで実行されるアプリケーションに通知する、請求項6に記載のネットワークシステム。
【請求項8】
前記第1のデバイスは、第3のデバイスが有している第3の公開鍵を前記第2のデバイスに送信する、請求項6に記載のネットワークシステム。
【請求項9】
他の情報処理装置とデータ通信が可能な情報処理装置であって、
他のデバイスから受信した公開鍵に基づいて、前記他のデバイスのネットワークアドレスを決定する決定部を備え、
前記情報処理装置は、
第1の公開鍵および第2の公開鍵を有しており、
前記第1の公開鍵に基づいて決定される第1のネットワークアドレスを指定したアクセス、および、前記第2の公開鍵に基づいて決定される第2のネットワークアドレスを指定したアクセスのいずれにも応答可能に構成される、情報処理装置。
【請求項10】
複数のデバイスを含むネットワークシステムにおける通信方法であって、
前記複数のデバイスの各々が自デバイスの公開鍵を格納するステップと、
前記複数のデバイスの各々が他のデバイスから受信した公開鍵に基づいて、前記他のデバイスのネットワークアドレスを決定するステップと、
前記複数のデバイスに含まれる第1のデバイスが、第1の公開鍵および第2の公開鍵を有している場合に、前記第1の公開鍵に基づいて決定される第1のネットワークアドレスを指定したアクセス、および、前記第2の公開鍵に基づいて決定される第2のネットワークアドレスを指定したアクセスのいずれにも応答するステップとを備える、通信方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、複数のデバイスからなるネットワークシステム、そのネットワークシステムに向けられた情報処理装置、およびそのネットワークシステムにおける通信方法に関する。
【背景技術】
【0002】
近年の情報通信技術(Information and Communication Technology:ICT)の進歩は目覚ましく、インターネットなどのネットワークに接続されるデバイスは、従来のパーソナルコンピュータやスマートフォンといった情報処理装置に限らず、様々なモノ(things)に広がっている。このような技術トレンドは、「IoT(Internet of Things;モノのインターネット)」と称され、様々な技術およびサービスが提案および実用化されつつある。将来的には、地球上の数十億人と数百億または数兆のデバイスとが同時につながる世界が想定されている。このようなネットワーク化された世界を実現するためには、よりシンプル、より安全、より自由につながることができるソリューションを提供する必要がある。
【0003】
このようなソリューションを提供する一つのコア技術として、国際公開第2020/049754号(特許文献1)は、公開鍵を用いてネットワークアドレスを決定する全く新しい手法を開示する。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
本開示は、公開鍵を用いてネットワークアドレスを決定するネットワークシステムにおいて生じ得る新規な課題に対する解決手段を提供する。
【課題を解決するための手段】
【0006】
本開示のある形態に従えば、複数のデバイスを含むネットワークシステムが提供される。複数のデバイスの各々は、他のデバイスとデータ通信を行うための通信部と、他のデバイスから受信した公開鍵に基づいて、他のデバイスのネットワークアドレスを決定する決定部とを含む。複数のデバイスに含まれる第1のデバイスは、第1の公開鍵および第2の公開鍵を有しており、第1の公開鍵に基づいて決定される第1のネットワークアドレスを指定したアクセス、および、第2の公開鍵に基づいて決定される第2のネットワークアドレスを指定したアクセスのいずれにも応答可能に構成される。
【0007】
第1のデバイスは、複数のネットワークアドレスを有していること、および、複数の公開鍵を有していることのうち少なくとも一方を通知するように構成されてもよい。
【0008】
第1のデバイスは、第1のネットワークアドレスを指定したアクセスを受けると、第2の公開鍵の存在、および、第2のネットワークアドレスの存在のうち、少なくとも一方をアクセス元に通知するようにしてもよい。
【0009】
第1のデバイスは、第1の公開鍵に関連付けられた第1の電子証明書を有していてもよい。第1のデバイスは、第1の電子証明書の有効期間が期限間近または期限切れである場合に、第2の公開鍵の存在、および、第2のネットワークアドレスの存在のうち、少なくとも一方をアクセス元に通知するようにしてもよい。
【0010】
第1のデバイスは、他のデバイスから第1のネットワークアドレスの有効性の問合せを受けると、第1の電子証明書の有効期間に応じて応答するようにしてもよい。
【0011】
複数のデバイスに含まれる第2のデバイスは、第1のデバイスから第2の公開鍵を取得すると、第2の公開鍵に基づいて第2のネットワークアドレスを決定するとともに、当該決定した第2のネットワークアドレスでルーティングテーブルを更新するようにしてもよい。
【0012】
第2のデバイスは、第2のネットワークアドレスを第2のデバイスで実行されるアプリケーションに通知するようにしてもよい。
【0013】
第1のデバイスは、第3のデバイスが有している第3の公開鍵を第2のデバイスに送信するようにしてもよい。
【0014】
本開示の別の形態に従う他の情報処理装置とデータ通信が可能な情報処理装置は、他のデバイスから受信した公開鍵に基づいて、他のデバイスのネットワークアドレスを決定する決定部を含む。情報処理装置は、第1の公開鍵および第2の公開鍵を有しており、第1の公開鍵に基づいて決定される第1のネットワークアドレスを指定したアクセス、および、第2の公開鍵に基づいて決定される第2のネットワークアドレスを指定したアクセスのいずれにも応答可能に構成される。
【0015】
本開示のさらに別の形態に従う複数のデバイスを含むネットワークシステムにおける通信方法は、複数のデバイスの各々が自デバイスの公開鍵を格納するステップと、複数のデバイスの各々が他のデバイスから受信した公開鍵に基づいて、他のデバイスのネットワークアドレスを決定するステップと、複数のデバイスに含まれる第1のデバイスが、第1の公開鍵および第2の公開鍵を有している場合に、第1の公開鍵に基づいて決定される第1のネットワークアドレスを指定したアクセス、および、第2の公開鍵に基づいて決定される第2のネットワークアドレスを指定したアクセスのいずれにも応答するステップとを含む。
【発明の効果】
【0016】
本開示によれば、公開鍵を用いてネットワークアドレスを決定するネットワークシステムにおいて生じ得る新規な課題に対する解決手段を提供できる。
【図面の簡単な説明】
【0017】
【
図1】本実施の形態に従うネットワークシステムにおける通信処理の一例を示す模式図である。
【
図2】本実施の形態に従うネットワークシステムにおける通信処理の別の一例を示す模式図である。
【
図3】本実施の形態に従うネットワークシステムにおける公開鍵および電子証明書の生成処理の一例を示す模式図である。
【
図4】本実施の形態に従うネットワークシステムにおける公開鍵の生成処理の一例を示すフローチャートである。
【
図5】本実施の形態に従うネットワークシステムにおける電子証明書の生成処理の一例を示すフローチャートである。
【
図6】本実施の形態に従うデバイスのハードウェア構成例を示す模式図である。
【
図7】本実施の形態に従うデバイスの機能構成例を示す模式図である。
【
図8】本実施の形態に従うネットワークシステムにおいてデバイスが複数のネットワークアドレスを有している場合の処理例を示す模式図である。
【
図9】本実施の形態に従うネットワークシステムにおいて複数のネットワークアドレスを通知する処理例を示す模式図である。
【
図10】本実施の形態に従うネットワークシステムにおけるネットワークアドレスの履歴を説明するための図である。
【
図11】本実施の形態に従うネットワークシステムにおけるネットワークアドレス変更時の処理例を示す模式図である。
【
図12】本実施の形態に従うネットワークシステムにおけるネットワークアドレス変更時の別の処理例を示す模式図である。
【
図13】本実施の形態に従うネットワークシステムにおけるルーティングテーブルの更新例を示す模式図である。
【
図14】本実施の形態に従うネットワークシステムにおける別のデバイスのネットワークアドレスを通知する処理例を示す模式図である。
【発明を実施するための形態】
【0018】
本開示に係る実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。
【0019】
<A.ネットワークシステム1における通信処理>
まず、本実施の形態に従うネットワークシステム1における通信処理の一例について説明する。
【0020】
図1は、本実施の形態に従うネットワークシステム1における通信処理の一例を示す模式図である。
図1を参照して、ネットワークシステム1は、複数のデバイス100A,100B,…(以下、「デバイス100」とも総称する。)を含む。
【0021】
本明細書において、「デバイス」との用語は、通信処理が可能な任意の情報処理装置を含む。デバイスは、例えば、(据置型および携帯型)パーソナルコンピュータ、スマートフォン、タブレット、スマートフォン、ユーザの身体(例えば、腕や頭など)に装着されるウェアラブルデバイス(例えば、スマートウォッチやARグラスなど)、スマート家電、コネクティッド自動車、工場などに設置された制御機器、IoTデバイスなどを含む。
【0022】
デバイス100の各々は、公開鍵154を有している。デバイス100の各々は、公開鍵154に対応する秘密鍵を有していてもよい。
【0023】
図1に示す例では、デバイス100Aは、公開鍵154Aを有しており、デバイス100Bは、公開鍵154Bを有している。
【0024】
デバイス100Aとデバイス100Bとが通信を開始するにあたって、デバイス100Aは、デバイス100Aが有している公開鍵154Aをデバイス100Bに送信する。同様に、デバイス100Bは、デバイス100Bが有している公開鍵154Bをデバイス100Aに送信する。
【0025】
デバイス100Aは、公開鍵154Bをアドレス決定モジュール172に入力して、デバイス100BのネットワークアドレスBを決定する。同様に、デバイス100Bは、公開鍵154Aをアドレス決定モジュール172に入力して、デバイス100AのネットワークアドレスAを決定する。
【0026】
以上の処理によって、デバイス100Aおよびデバイス100Bは、互いのネットワークアドレスを取得できる。
【0027】
なお、デバイス100Aおよびデバイス100Bとの間の公開鍵154の交換は、通信を開始する毎に実行する必要はなく、少なくとも1回実行すればよい。
【0028】
本明細書において、「ネットワークアドレス」は、ネットワークに存在するデバイスを特定するための識別情報を意味し、一般的に用いられているIP(Internet Protocol)アドレス(IPv4およびIPv6)に限られず、独自のアドレス体系(任意の長さのアドレス長を採用できる)であってもよい。
【0029】
デバイス100のアドレス決定モジュール172は、他のデバイス100から受信した公開鍵154に基づいて、当該他のデバイス100のネットワークアドレスを決定する。より具体的には、アドレス決定モジュール172は、不可逆な暗号学的ハッシュ関数(以下、「ハッシュ関数173」とも称す。)を用いて、入力された公開鍵154からハッシュ値を算出する。アドレス決定モジュール172は、算出したハッシュ値を用いて、ネットワークアドレスを決定する。
【0030】
例えば、ハッシュ値のみからネットワークアドレスを決定してもよい。この場合には、ネットワークアドレスに必要な桁数(あるいは、ビット数)と同じまたはそれ以上の長さのハッシュ値が算出されるように設計してもよい。
【0031】
IPv6のIPアドレスを決定する場合には、128ビットのハッシュ値を算出すればばよいし、IPv4のIPアドレスを決定する場合には、32ビットのハッシュ値を算出すればよい。なお、128ビットのハッシュ値を算出する場合には、算出されたハッシュ値のうち任意の32ビット分を抽出してIPv4のIPアドレスとして決定してもよい。あるいは、256ビットまたは512ビットのハッシュ値が算出されるようにした上で、算出されたハッシュ値のうち任意の128ビット分(または32ビット分)を抽出してIPアドレスとして決定してもよい。
【0032】
さらに、算出されたハッシュ値に予め定められた値を付加してネットワークアドレスを決定してもよい。例えば、所定ビット長のハッシュ値のうち、特定桁(あるいは、特定のビット位置)の値を予め定められた値(例えば、特定の属性を示す値)に変更した結果をネットワークアドレスとして決定してもよい。
【0033】
ハッシュ関数173としては、デバイス100の間で共通化されていれば、どのようなものであってもよいが、例えば、BLAKEやKeccakなどを用いることができる。また、将来的に開発される任意の暗号学的ハッシュ関数を採用することができる。
【0034】
なお、ハッシュ関数173には、公開鍵154だけではなく、任意の文字列を追加的に入力するようにしてもよい。任意の文字列としては、例えば、ネットワークアドレスに関連する組織の名称や当該組織が有している商標などを用いてもよい。
【0035】
さらに、ネットワークアドレスに対する認証レベルを高めるために、公開鍵154の正当性を示す電子証明書を用いてもよい。
【0036】
図2は、本実施の形態に従うネットワークシステムにおける通信処理の別の一例を示す模式図である。
図2を参照して、デバイス100の各々は、公開鍵154と公開鍵154に関連付けられた電子証明書164とを有している。
【0037】
ネットワークシステム1は、認証局200をさらに含んでいてもよい。認証局200は、要求に応じて、公開鍵154に関連付けられた電子証明書164を発行する。なお、ネットワークシステム1は、複数の認証局200を含んでいてもよい。複数の認証局200が配置される場合には、ルート認証局と1または複数の中間認証局とを設けてもよい。
【0038】
図1に示す例では、デバイス100Aは、公開鍵154Aおよび電子証明書164Aを有しており、デバイス100Bは、公開鍵154Bおよび電子証明書164Bを有している。
【0039】
デバイス100Aとデバイス100Bとが通信を開始するにあたって、デバイス100Aは、デバイス100Aが有している公開鍵154Aおよび電子証明書164Aをデバイス100Bに送信する。同様に、デバイス100Bは、デバイス100Bが有している公開鍵154Bおよび電子証明書164Bをデバイス100Aに送信する。
【0040】
デバイス100Aは、デバイス100Bからの電子証明書164Bを利用して、公開鍵154Bの正当性を判断する。デバイス100Aは、公開鍵154Bの正当性を確認できると、公開鍵154Bをアドレス決定モジュール172に入力して、デバイス100BのネットワークアドレスBを決定する。
【0041】
同様に、デバイス100Bは、デバイス100Aからの電子証明書164Aを利用して、公開鍵154Bの正当性を判断する。デバイス100Bは、公開鍵154Bの正当性を確認できると、公開鍵154Aをアドレス決定モジュール172に入力して、デバイス100AのネットワークアドレスAを決定する。
【0042】
以上の処理によって、デバイス100Aおよびデバイス100Bは、互いのネットワークアドレスを取得できる。取得されるネットワークアドレスは、上述したような電子証明書164を含む仕組みによって、改ざんなどがなされておらず、より確実に認証されたものとなる。認証済みネットワークアドレスを用いることで、通信相手あるいは第三者に対して、デバイス100のネットワークアドレスの正当性を保証できる。
【0043】
なお、デバイス100Aおよびデバイス100Bは、認証局200に問い合わせることで、電子証明書164Bおよび電子証明書164Aの正当性を判断してもよい。
【0044】
以下の説明においては、デバイス100の間では、公開鍵154および公開鍵154に関連付けられた電子証明書164を交換する例を主として説明するが、電子証明書164および認証局200は、必須の構成ではなく、要求される認証のレベルや運用に応じて、適宜採用されてもよい。
【0045】
<B.ネットワークシステム1における公開鍵および電子証明書の生成処理>
次に、本実施の形態に従うネットワークシステム1における公開鍵および電子証明書の生成処理の一例について説明する。
【0046】
図3は、本実施の形態に従うネットワークシステム1における公開鍵および電子証明書の生成処理の一例を示す模式図である。
図3を参照して、ネットワークシステム1は、鍵ペア生成モジュール140と、評価モジュール142と、電子証明書情報生成モジュール240と、電子証明書生成モジュール242とを含む。
【0047】
鍵ペア生成モジュール140は、秘密鍵152および公開鍵154からなる鍵ペア150を順次発生する。一例として、鍵ペア生成モジュール140は、秘密鍵152として、乱数発生器を用いて所定長さのビット列(例えば、512ビット)を発生する。そして、鍵ペア生成モジュール140は、公知の非対称暗号アルゴリズム(例えば、楕円曲線暗号アルゴリズム)に従って秘密鍵152から所定長さのビット列(例えば、256ビット)からなる公開鍵154を生成する。
【0048】
鍵ペア生成モジュール140に用いられる乱数発生器は、OS(Operating System)が提供する機能を利用して実現してもよいし、ASIC(Application Specific Integrated Circuit)などのハードワイヤード回路を用いて実現してもよい。
【0049】
デバイス100が鍵ペア150を外部から取得する場合には、鍵ペア150(秘密鍵152および公開鍵154)を取得するようにしてもよいし、秘密鍵152のみを取得し、公開鍵154についてはデバイス100自身が生成するようにしてもよい。
【0050】
評価モジュール142は、生成される鍵ペア150に含まれる公開鍵154がネットワークアドレスとして使用できるか否かを判断する。より具体的には、評価モジュール142は、ハッシュ関数173を有しており、ハッシュ関数173を用いて公開鍵154からハッシュ値を算出するとともに、算出されたハッシュ値がネットワークアドレスとして適切なものであるか否かを判断する。ネットワークアドレスとして適切なものであるか否かの判断は、算出されたハッシュ値の特定桁(あるいは、ビット位置)が予め規定された値を示すか否かに基づいて行われてもよい。より具体的には、算出されたハッシュ値が予め定められたネットワークアドレスの割当規則に適合しているか否かを判断するようにしてもよい。例えば、算出されたハッシュ値の先頭2桁(8ビット表示であれば、16ビット分)が「00」を示す場合に、適切なネットワークアドレスであると判断するようにしてもよい。
【0051】
評価モジュール142がネットワークアドレスとして使用できると判断した鍵ペア150に含まれる公開鍵154は、電子証明書情報生成モジュール240へ出力される。
【0052】
電子証明書情報生成モジュール240は、公開鍵154に関連付けられた電子証明書164に含まれる電子証明書情報160を生成する。電子証明書情報160は、例えば、以下のような情報を含む。
【0053】
・発行者(issuer)の名称
・主体者(subject)の名称
・主体者の公開鍵(subject public key)
・有効期間(validity)
本実施の形態に従うネットワークシステム1において、発行者の名称として、認証局200の名称が格納され、主体者の名称として、デバイス100の名称が格納され、主体者の公開鍵として、評価モジュール142から出力された公開鍵154の値が格納される。
【0054】
有効期間として、開始日時および終了日時が格納されていてもよい。有効期間の長さについては、任意に設定可能であるが、例えば、暗号学的に安全性が確保できると考えられる期間に設定されてもよい。
【0055】
電子証明書生成モジュール242は、電子証明書情報160に発行者の署名162(signature value)を付与して、電子証明書164を生成する。より具体的には、電子証明書生成モジュール242は、署名162として、認証局200の秘密鍵252を用いて、電子証明書情報160のハッシュ値を算出する。
【0056】
電子証明書生成モジュール242は、署名162の算出に用いた署名アルゴリズムを示す情報を電子証明書164に含めてもよい。
【0057】
電子証明書生成モジュール242は、発行者の公開鍵(subject public key)を電子証明書164に含めてもよい。電子証明書164が発行者の公開鍵を含むことで、電子証明書164の正当性を、証明書チェーンに従って中間認証局からルート認証局まで順次確認することができる。
【0058】
電子証明書生成モジュール242は、生成した電子証明書164をレジストリ250に登録するとともに、デバイス100へ出力する。
【0059】
なお、鍵ペア生成モジュール140および評価モジュール142は、デバイス100に配置されてもよいし、認証局200に配置されてもよい。電子証明書情報生成モジュール240および電子証明書生成モジュール242は、認証局200に配置される。なお、レジストリ250は、電子証明書164を生成する認証局200とは別の認証局200に配置されてもよい。
【0060】
図4は、本実施の形態に従うネットワークシステム1における公開鍵154の生成処理の一例を示すフローチャートである。
図4には、一例として、デバイス100がネットワークアドレスとして使用するための公開鍵154を生成する例を示す。但し、公開鍵154を生成する処理の全部または一部をデバイス100以外の処理主体が実行するようにしてもよい。
【0061】
図4を参照して、デバイス100は、乱数発生器を用いて秘密鍵152を生成する(ステップS2)。なお、デバイス100は、秘密鍵152を外部から取得してもよい。続いて、デバイス100は、暗号アルゴリズムに従って、生成した秘密鍵152に対応する公開鍵154を生成する(ステップS4)。
【0062】
デバイス100は、ハッシュ関数173を用いて、生成した公開鍵154からハッシュ値を算出し(ステップS6)、算出したハッシュ値を用いてネットワークアドレスを暫定的に決定する(ステップS8)。
【0063】
続いて、デバイス100は、暫定的に決定したネットワークアドレスがネットワークアドレスとして使用できるか否かを判断する(ステップS10)。暫定的に決定したネットワークアドレスとして使用できなければ(ステップS10においてNO)、ステップS2以下の処理が繰り返される。
【0064】
暫定的に決定したネットワークアドレスとして使用できれば(ステップS10においてYES)、デバイス100は、秘密鍵152および公開鍵154からなる鍵ペア150を格納する(ステップS12)。
【0065】
デバイス100は、必要に応じて、公開鍵154に関連付けられた電子証明書164の発行を認証局200に要求する(ステップS14)。デバイス100は、認証局200から電子証明書164を取得すると、鍵ペア150(公開鍵154)と関連付けて格納する(ステップS16)。そして、処理は終了する。
【0066】
図5は、本実施の形態に従うネットワークシステム1における電子証明書の生成処理の一例を示すフローチャートである。
図5には、一例として、認証局200が電子証明書164を生成する例を示す。
【0067】
図5を参照して、公開鍵154に関連付けられた電子証明書164の発行を要求されると(ステップS20においてYES)、認証局200は、要求された公開鍵154および有効期間を含む電子証明書情報160を生成し(ステップS22)、認証局200の秘密鍵252を用いて、生成した電子証明書情報160のハッシュ値を算出する(ステップS24)。認証局200は、算出したハッシュ値を署名162として電子証明書情報160に付加することで、電子証明書164を生成する(ステップS26)。
【0068】
そして、認証局200は、生成した電子証明書164をレジストリ250に登録する(ステップS28)とともに、要求元に送信する(ステップS30)。そして、処理は終了する。
【0069】
<C.デバイス100の構成例>
次に、本実施の形態に従うデバイス100の構成例について説明する。
【0070】
(c1:ハードウェア構成例)
図6は、本実施の形態に従うデバイス100のハードウェア構成例を示す模式図である。
図6には、典型例として、パーソナルコンピュータであるデバイス100のハードウェア構成例を示す。
【0071】
図6を参照して、デバイス100は、1または複数のプロセッサ102と、メモリ104と、ストレージ106と、ディスプレイ108と、入力部110と、通信部112とを含む。
【0072】
プロセッサ102は、コンピュータ可読命令(computer-readable instructions)を順次読出して実行する演算回路である。プロセッサ102は、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、GPU(Graphics Processing Unit)などで構成される。デバイス100は、複数のプロセッサ102を有していてもよいし、単一のプロセッサ102が複数のコアを有していてもよい。
【0073】
プロセッサ102は、狭義のプロセッサだけではなく、処理を実現するための回路が予め形成されているASIC(Application Specific Integrated Circuit)、および、コンフィグレーションにより処理を実現するための構成が実現されているFPGA(Field-Programmable Gate Array)といったハードワイヤード回路を含み得る。さらに、本明細書において、プロセッサ102は、様々な処理要素を集積したSoC(System on Chip)も含み得る。そのため、プロセッサ102は、処理回路(processing circuitry)と言い換えることもできる。
【0074】
メモリ104は、例えば、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)などの揮発性記憶装置である。ストレージ106は、例えば、HDD(Hard Disk Drive)、SSD(Solid State Drive)、フラッシュメモリなどの不揮発性記憶装置である。
【0075】
ストレージ106には、各種プログラムおよび各種データが格納されている。プロセッサ102は、ストレージ106に格納された各種プログラムのうち、指定されたプログラムをメモリ104上に展開して順次実行することで、後述するような各種処理を実現する。
【0076】
一例として、ストレージ106には、OS120と、1または複数のアプリケーション122と、通信処理プログラム124とが格納されている。OS120は、デバイス100で各種処理を実行するための環境を提供するプログラムである。アプリケーション122は、目的に応じて任意に作成されるプログラムである。通信処理プログラム124は、本実施の形態に従う通信処理を実現するためのプログラムである。また、ストレージ106には、公開鍵154および電子証明書164を格納するためのデータ格納領域128(
図7参照)が用意されていてもよい。
【0077】
データ格納領域128は、ストレージ106ではなく、図示しないセキュリティチップを用いて実現してもよい。
【0078】
このように、デバイス100は、自デバイスの公開鍵154および公開鍵154に関連付けられた電子証明書164を格納するための記憶部(例えば、ストレージ106やセキュリティチップ)を有している。なお、デバイス100の公開鍵154は、記憶部に格納されている秘密鍵152から都度計算するようにしてもよい。すなわち、デバイス100の公開鍵154を記憶部に永続的に格納しておく必要はなく、要求されたタイミングで都度生成するようにしてもよい。
【0079】
ディスプレイ108は、プロセッサ102での処理結果などを外部へ提示する。ディスプレイ108は、例えば、LCD(Liquid Crystal Display)や有機EL(Electro-Luminescence)ディスプレイなどであってもよい。ディスプレイ108は、ユーザの頭部に装着されるヘッドマウントディスプレイであってもよいし、画像をスクリーン上に投影するプロジェクターであってもよい。ディスプレイ108は、デバイス100の筐体のいずれかの位置に配置されたインジケータであってもよい。
【0080】
入力部110は、デバイス100に対するユーザ操作などを受け付ける。入力部110は、例えば、キーボード、マウス、ディスプレイ108上に配置されたタッチパネル、デバイス100の筐体のいずれかの位置に配置されたスイッチなどであってもよい。
【0081】
通信部112は、他のデバイス100とデータ通信を行う。より具体的には、通信部112は、デバイス100をネットワークに接続するためのネットワークインターフェイスである。例えば、通信部112は、イーサネット(登録商標)ポート、USB(Universal Serial Bus)ポート、IEEE1394などのシリアルポート、レガシーなパラレルポートといった有線接続端子を含む。あるいは、通信部112は、デバイス、ルータ、移動体基地局などと無線通信するための処理回路およびアンテナなどを含んでもよい。通信部112が対応する無線通信は、例えば、Wi-Fi(登録商標)、Bluetooth(登録商標)、ZigBee(登録商標)、LPWA(Low Power Wide Area)、GSM(登録商標)、W-CDMA、CDMA200、LTE(Long Term Evolution)、第5世代移動通信システム(5G)のいずれであってもよい。
【0082】
デバイス100は、各種プログラム(コンピュータ可読命令)および/または各種データが格納された非一過性(non-transitory)のメディアから各種プログラムおよび/または各種データを読み出すためのコンポーネントをさらに有していてもよい。メディアは、例えば、DVD(Digital Versatile Disc)などの光学メディア、USBメモリなどの半導体メディアなどであってもよい。
【0083】
なお、メディアを介して各種プログラムおよび/または各種データをデバイス100にインストールするのではなく、ネットワーク上の配信サーバから必要なプログラムおよびデータをデバイス100にインストールするようにしてもよい。
【0084】
なお、本実施の形態に従う機能の提供および処理の実行を実現するための構成は、
図6に示すデバイス100のハードウェア構成例に限られず、実現される時代に応じた任意のハードウェア構成を採用すればよい。
【0085】
(c2:機能構成例)
図7は、本実施の形態に従うデバイス100の機能構成例を示す模式図である。
図7を参照して、デバイス100は、OS120と、他のデバイス100との間でデータをやり取りするアプリケーション122と、通信モジュール170とを含む。通信モジュール170は、プロセッサ102が通信処理プログラム124(
図6)を実行することで実現されてもよいし、専用のハードワイヤード回路により実現されてもよい。
【0086】
アプリケーション122は、通信モジュール170を介して、他のデバイス100(あるいは、他のデバイス100で実行されるアプリケーション)との間でデータをやり取りする。通信モジュール170は、アプリケーション122からの指令を受け付けるインターフェイス126を有している。
【0087】
通信モジュール170は、本実施の形態に従う通信処理を実行する。通信モジュール170は、アドレス決定モジュール172と、正当性判断モジュール174と、テーブル管理モジュール176と、ルーティングモジュール178と、有効期間管理モジュール180とを含む。
【0088】
通信モジュール170は、公開鍵154および公開鍵154に関連付けられた電子証明書164をデータ格納領域128に格納している。また、通信モジュール170は、ルーティングテーブル182を参照可能になっている。
【0089】
アドレス決定モジュール172は、上述したように、他のデバイス100の公開鍵154から当該他のデバイス100のネットワークアドレスを決定する。
【0090】
正当性判断モジュール174は、他のデバイス100からの電子証明書164を利用して、公開鍵154Bの正当性を判断する。
【0091】
テーブル管理モジュール176は、ルーティングテーブル182に格納される情報を追加および変更する。
【0092】
ルーティングモジュール178は、ルーティングテーブル182を参照して、データ(例えば、パケットやフレーム)を送信先のデバイス100へ転送する。ルーティングモジュール178は、自デバイスが送信するデータの転送だけではなく、他のデバイス100から受信したデータを転送することもできる。
【0093】
有効期間管理モジュール180は、電子証明書164の有効期間が十分に残っているか否かを管理するとともに、電子証明書164の有効期間が期限間近または期限切れである場合には、後述するような処理を実行する。
【0094】
ルーティングテーブル182は、デバイス100のネットワークアドレスとルーティング情報とを対応付けて格納している。ルーティングモジュール178は、ルーティングテーブル182を参照することで、送信先のデバイス100へデータを転送する経路などを決定する。
【0095】
ルーティングテーブル182は、デバイス100に配置されてもよいし、デバイス100とは別のサーバ装置などに配置されてもよい。
【0096】
なお、通信モジュール170は、
図3に示す鍵ペア生成モジュール140および評価モジュール142を含んでいてもよい。
【0097】
<D.複数のネットワークアドレス>
次に、デバイス100が複数の公開鍵154(あるいは、複数の公開鍵154からそれぞれ算出される複数のネットワークアドレス)を有している場合の例について説明する。
【0098】
図8は、本実施の形態に従うネットワークシステム1においてデバイス100が複数のネットワークアドレスを有している場合の処理例を示す模式図である。
【0099】
図8を参照して、デバイス100Bは、公開鍵154B1および公開鍵154B1に関連付けられた電子証明書164B1と、公開鍵154B2および公開鍵154B2に関連付けられた電子証明書164B2とを有しているとする。デバイス100Bは、公開鍵154および電子証明書164の組を3つ以上有していてもよい。
【0100】
ここで、公開鍵154B1は、ネットワークアドレスB1に対応し、公開鍵154B2は、ネットワークアドレスB2に対応する。
【0101】
デバイス100Bは、ネットワークアドレスB1を指定したアクセス、および、ネットワークアドレスB2を指定したアクセスのいずれにも応答可能に構成されている。すなわち、デバイス100Bは、複数のネットワークアドレスを有している。
【0102】
例えば、デバイス100Aは、ネットワークアドレスB1を指定してデバイス100Bにアクセスしたとする(シーケンスSQ2)。すると、デバイス100Bは、デバイス100Aに対して応答する(シーケンスSQ4)。同様に、デバイス100Cは、ネットワークアドレスB2を指定してデバイス100Bにアクセスしたとする(シーケンスSQ6)。すると、デバイス100Bは、デバイス100Cに対して応答する(シーケンスSQ8)。
【0103】
なお、
図8には、デバイス100Aとデバイス100Bとの間の通信処理、および、デバイス100Cとデバイス100Bとの間の通信処理を例示したが、任意のデバイス100間の通信処理についても同様である。
【0104】
このように、本実施の形態に従うネットワークシステム1において、デバイス100は、複数のネットワークアドレスを有することができる。
【0105】
例えば、1つのデバイス100が複数のドメインに属している場合などに、それぞれのドメインに対応するネットワークアドレスをそれぞれ有しておくことで、デバイス100は、いずれのドメインに属する他のデバイス100と通信できる。すなわち、デバイス100は、それぞれのドメインのメンバとして振る舞うことができる。
【0106】
また、複数のハッシュ関数173を利用できる場合などには、デバイス100は、同一の公開鍵154をそれぞれのハッシュ関数173で処理することで決定されるそれぞれのネットワークアドレスを有しておいてもよい。
【0107】
図8に示すように、デバイス100が複数のネットワークアドレス(あるいは、複数の公開鍵154)を有している場合には、複数のネットワークアドレスを有していること、および/または、複数の公開鍵154を有していることを任意のデバイス100に通知するようにしてもよい。より具体的には、以下のような通信処理を行ってもよい。
【0108】
例えば、複数のネットワークアドレスを有しているデバイス100Bは、1つのネットワークアドレス(ネットワークアドレスB1)を指定したアクセスを受けた場合に、アクセス元のデバイス100Aに対して、複数のネットワークアドレスを有している旨(または、複数の公開鍵154を有している旨)を通知するようにしてもよい。
【0109】
図9は、本実施の形態に従うネットワークシステム1において複数のネットワークアドレスを通知する処理例を示す模式図である。
図9を参照して、例えば、デバイス100Bは、アクセス元のデバイス100Aに対して、指定されたネットワークアドレス(ネットワークアドレスB1)以外の、デバイス100Bが有しているネットワークアドレス(例えば、ネットワークアドレスB2)の存在を通知するようにしてもよい(シーケンスSQ5)。
【0110】
あるいは、デバイス100Bは、アクセス元のデバイス100Aに対して、指定されたネットワークアドレス(ネットワークアドレスB1)以外の、デバイス100Bが有しているネットワークアドレスに対応する公開鍵(例えば、154B2)の存在を通知するようにしてもよい。
【0111】
このような通信処理によって、アクセス元のデバイス100は、アクセス先のデバイス100が有している複数のネットワークアドレスを知ることができる。
【0112】
なお、ネットワークアドレスまたは公開鍵154の存在を通知する処理は、ネットワークアドレスまたは公開鍵154の存在を通知するメッセージ等をアクセス元のデバイス100Aに送信する処理だけではなく、公開鍵154をアクセス元のデバイス100Aに送信する処理を含み得る。なお、公開鍵154に加えて、公開鍵154に関連付けられた電子証明書164をアクセス元のデバイス100Aに送信するようにしてもよい。
【0113】
逆に、アクセス元のデバイス100がアクセス先のデバイス100に対して、複数のネットワークアドレスおよび/または複数の公開鍵154を有しているか否かを問合せできるようにしてもよい。
【0114】
また、複数のネットワークアドレスを有しているデバイス100が、他のデバイス100に公開鍵154(および関連付けられた電子証明書164)を送信する場合には、ネットワークアドレスの履歴(例えば、対象のネットワークアドレスの1つ前に使用されていたネットワークアドレス(あるいは、対応する公開鍵154)を特定するための情報)を併せて送信してもよい。送信先のデバイス100は、公開鍵154に基づいて、デバイス100が現在有しているネットワークアドレスを決定するとともに、履歴を参照して、デバイス100が過去に有していたネットワークアドレスを特定できる。
【0115】
さらに、あるデバイス100が過去に有していたネットワークアドレスに対応するエントリがルーティングテーブル182に含まれている場合には、当該過去のネットワークアドレスに対応するエントリを削除してもよいし、当該過去のネットワークアドレスを送信された公開鍵154に基づいて決定される現在のネットワークアドレスに更新してもよい。
【0116】
なお、同一のデバイス100が過去に有していたネットワークアドレスだけではなく、同一のユーザあるいは組織が利用していたネットワークアドレスを特定するための情報を履歴に含めてもよい。例えば、あるユーザが利用していたデバイス100が故障により、新たなデバイス100に交換されたような場合には、当該新たなデバイス100のネットワークアドレスは、当該故障したデバイス100が有していたネットワークアドレスを引き継いだものであることを示す履歴を他のデバイス100に送信するようにしてもよい。このようなネットワークアドレス間の関係性(履歴)を他のデバイス100に送信することで、デバイス100が故障した場合などにおいても、ネットワークアドレスの更新をより容易に実現できる。
【0117】
なお、ネットワークアドレスの履歴は、公知の証明書チェーンの技術を用いて実現することもできる。すなわち、あるネットワークアドレスに対応する公開鍵154に関連付けられた電子証明書164は、当該ネットワークアドレスと関係のある他のネットワークアドレスを特定するための情報(例えば、対応する電子証明書164を特定する情報)を含んでいてもよい。
【0118】
図10は、本実施の形態に従うネットワークシステム1におけるネットワークアドレスの履歴を説明するための図である。
図10を参照して、例えば、デバイス100は、公開鍵154-3および電子証明書164-3(ネットワークアドレス3に対応)を現在使用しているとする。当該デバイス100は、その直前には、公開鍵154-2および電子証明書164-2(ネットワークアドレス2に対応)を使用しており、さらにその前には、公開鍵154-1および電子証明書164-1(ネットワークアドレス1に対応)を使用していたとする。
【0119】
ネットワークアドレスの履歴を他のデバイス100に送信することで、ネットワークアドレスの変遷や関連性などを把握できる。なお、現在使用しているネットワークアドレス以外のネットワークアドレスについては、有効なものとして取り扱ってもよいし、無効なものとして取り扱ってもよい。
【0120】
<E.ネットワークシステム1における電子証明書の有効期間>
本実施の形態に従うネットワークシステム1において、デバイス100は、複数のネットワークアドレスを有することができる。複数のネットワークアドレスを有する必要が生じる原因の一例として、ネットワークアドレスに対応する電子証明書164の有効期間がある。以下、電子証明書164の有効期間について説明する。
【0121】
ネットワークシステム1において、デバイス100の各々は、公開鍵154に関連付けられた電子証明書164に基づいて、公開鍵154の正当性を確認することもできる。電子証明書164に有効期間が規定されている場合において、当該有効期間が経過しているときには、公開鍵154の正当性を確認できない。但し、公開鍵154の正当性を確認できない場合であっても、通信相手のデバイス100のネットワークアドレス(認証済みネットワークアドレスとは限らない)は決定できる。
【0122】
そのため、電子証明書164の有効期間が期限間近になると、いずれかの処理が必要となる。
【0123】
(1)同一の公開鍵154に関連付けられた新たな電子証明書164を発行する
(2)新たな鍵ペア150を生成するとともに、当該鍵ペア150に含まれる公開鍵154に関連付けられた電子証明書164を発行する
(1)の処理を採用する場合には、後述するような方法で、電子証明書164の有効期間が期限間近であることを通知するようにしてもよい。
【0124】
(2)の処理を採用する場合には、デバイス100の公開鍵154が変更されることに伴って、ネットワークアドレスも変更されることになる。
【0125】
そのため、変更後のネットワークアドレスを他のデバイス100が何らかの方法で取得できるような仕組みが必要となる。一例として、デバイス100は、電子証明書164の有効期間が期限間近または期限切れである場合に、新たに発行した公開鍵154の存在、および、新たに発行した公開鍵154に対応する新たなネットワークアドレスの存在のうち、少なくとも一方をアクセス元(他のデバイス100)に通知するようにしてもよい。より具体的には、以下のような処理を採用してもよい。
【0126】
<F.ネットワークシステム1におけるネットワークアドレス変更時の処理>
次に、ネットワークシステム1におけるネットワークアドレス変更時の処理について説明する。
【0127】
(f1:処理例その1)
図11は、本実施の形態に従うネットワークシステム1におけるネットワークアドレス変更時の処理例を示す模式図である。説明の便宜上、
図11および後述の
図12には、デバイス100Aとデバイス100Bとの間の通信処理を例示するが、他のデバイス100との間の通信処理についても同様である。
【0128】
一例として、デバイス100Bの公開鍵154B1に関連付けられた電子証明書164B1の有効期間が期限間近または期限切れであるとする(後述の
図12においても同様である)。そのため、デバイス100Bは、公開鍵154B1および電子証明書164B1に加えて、新たな公開鍵154B2および公開鍵154B2に関連付けられた電子証明書164B2を有している。なお、公開鍵154B1は、ネットワークアドレスB1に対応し、公開鍵154B2は、ネットワークアドレスB2に対応する。
【0129】
デバイス100Aは、デバイス100BのネットワークアドレスB1を予め取得しており、デバイス100Bを特定するためにネットワークアドレスB1を指定してアクセスしたとする(シーケンスSQ10)。
【0130】
ネットワークアドレスB1に対応する電子証明書164B1の有効期間が期限間近または期限切れであるため、デバイス100Bは、新たな公開鍵154B2および電子証明書164B2をデバイス100Aに送信する(シーケンスSQ12)。
【0131】
デバイス100Aは、ネットワークアドレスB1に対応する電子証明書164B1の有効期間が期限間近または期限切れであることを予め検出しておくことで、ネットワークアドレスB1を指定したアクセスを受けると、新たな公開鍵154B2および電子証明書164B2を送信するようにしてもよい。
【0132】
あるいは、デバイス100Aは、自デバイスのネットワークアドレスを指定したアクセスを受けると、当該ネットワークアドレスに対応する電子証明書164の有効期間を都度確認するようにしてもよい。
【0133】
デバイス100Aは、デバイス100Bからの公開鍵154B2および電子証明書164B2に基づいて、デバイス100BのネットワークアドレスB2を決定する(シーケンスSQ14)。そして、デバイス100Aは、デバイス100BのネットワークアドレスB2でルーティングテーブル182を更新する(シーケンスSQ16)。その後、デバイス100Aは、新たなネットワークアドレスB2を指定して、デバイス100Bにアクセスする(シーケンスSQ18)。
【0134】
このように、デバイス100Aは、デバイス100Bから公開鍵154B2および電子証明書164B2を取得すると、公開鍵154B2に基づいてネットワークアドレスB2を決定するとともに、当該決定したネットワークアドレスB2でルーティングテーブル182を更新する。
【0135】
上述したように、デバイス100B(有効期間管理モジュール180)は、公開鍵154B1に関連付けられた電子証明書164B1の有効期間が期限間近または期限切れである場合に、公開鍵154B1に基づいて決定されるネットワークアドレスB1を指定したアクセスを受けると、公開鍵154B1とは異なる公開鍵154B2および公開鍵154B2に関連付けられた電子証明書164B2をアクセス元に送信する。これによって、デバイス100Bが有している公開鍵154B1に関連付けられた電子証明書164B1の有効期間が期限間近または期限切れになったとしても、新たな公開鍵154B2(ネットワークアドレスB2)および電子証明書164B2にシームレスに移行することができる。
【0136】
すなわち、同一のデバイス100のネットワークアドレスが変更された場合においても、通信処理を継続できる。
【0137】
(f2:処理例その2)
図12は、本実施の形態に従うネットワークシステム1におけるネットワークアドレス変更時の別の処理例を示す模式図である。
【0138】
図12を参照して、デバイス100Aは、デバイス100BのネットワークアドレスB1を予め取得している。デバイス100Aは、デバイス100Bへデータなどを送信する前に、デバイス100Bに対してネットワークアドレスB1の有効性を問い合わせる(シーケンスSQ20)。
【0139】
デバイス100Bは、デバイス100Aからの問合せに応答して、ネットワークアドレスB1に対応する電子証明書164B1の有効期間が十分に残っている場合には、ネットワークアドレスB1が有効であることを返答する(シーケンスSQ22)。デバイス100Aは、デバイス100Bからの返答に従って、ネットワークアドレスB1を指定してデバイス100Bにアクセスする。
【0140】
一方、ネットワークアドレスB1に対応する電子証明書164B1の有効期間が期限間近または期限切れであれば、デバイス100Bは、新たな公開鍵154B2および電子証明書164B2をデバイス100Aに送信する(シーケンスSQ24)。なお、デバイス100Bは、ネットワークアドレスB1が有効ではないことを返答してもよい。
【0141】
このように、デバイス100B(有効期間管理モジュール180)は、他のデバイス100からネットワークアドレスB1の有効性の問合せを受けると、電子証明書164B1の有効期間に応じて応答する。すなわち、電子証明書164B1の有効期間が期限間近または期限切れであるか否かに応じて、応答内容が異なる。
【0142】
デバイス100Aは、デバイス100Bからの公開鍵154B2および電子証明書164B2に基づいて、デバイス100BのネットワークアドレスB2を決定する(シーケンスSQ26)。そして、デバイス100Aは、デバイス100BのネットワークアドレスB2でルーティングテーブル182を更新する(シーケンスSQ28)。その後、デバイス100Aは、新たなネットワークアドレスB2を指定して、デバイス100Bにアクセスする(シーケンスSQ30)。
【0143】
このように、デバイス100Aは、デバイス100Bから公開鍵154B2および電子証明書164B2を取得すると、公開鍵154B2に基づいてネットワークアドレスB2を決定するとともに、当該決定したネットワークアドレスB2でルーティングテーブル182を更新する。
【0144】
上述したように、デバイス100B(有効期間管理モジュール180)は、公開鍵154B1に関連付けられた電子証明書164B1の有効期間が期限間近または期限切れである場合に、公開鍵154B1に基づいて決定されるネットワークアドレスB1を指定したアクセスを受けると、公開鍵154B1とは異なる公開鍵154B2および公開鍵154B2に関連付けられた電子証明書164B2をアクセス元に送信する。これによって、デバイス100Bが有している公開鍵154B1に関連付けられた電子証明書164B1の有効期間が期限間近または期限切れになったとしても、新たな公開鍵154B2(ネットワークアドレスB2)および電子証明書164B2にシームレスに移行することができる。
【0145】
(f3:処理例その3)
図11の処理および
図12の処理の両方を実行できるようにデバイス100を構成してもよい。例えば、前回のアクセスからの経過時間が予め定められたしきい時間を超えている場合に限って、ネットワークアドレスの有効性を通信相手に問い合わせるようにしてもよい。
【0146】
(f4:有効性の問合せ)
図12に示すネットワークアドレスの有効性については、ネットワークアドレスを有しているデバイス100ではなく、いずれかの認証局200(レジストリ250)に問い合わせるようにしてもよい。
【0147】
ネットワークアドレスの有効性を問い合わせるタイミングは任意に設定できる。例えば、ネットワークアドレスの有効性を問い合わせるための関数を用意しておくことで、アプリケーション122において必要なタイミングで、問合せを実行できる。
【0148】
(f5:ルーティングテーブル182の更新およびアプリケーション122への通知)
上述したように、ネットワークアドレスが変更された場合には、ルーティングテーブル182の内容も更新される。
【0149】
図13は、本実施の形態に従うネットワークシステム1におけるルーティングテーブル182の更新例を示す模式図である。
図13を参照して、ルーティングテーブル182は、ネットワークアドレス毎にルーティング情報を含む。ネットワークアドレスが変更されることで、ルーティング情報は維持されたまま対応するネットワークアドレスのみを変更してもよいし、変更後のネットワークアドレスとルーティング情報とを含むエントリを逐次追加するようにしてもよい。
【0150】
また、変更前のネットワークアドレスとの関連性を維持するために、エイリアスを設定できるようにしてもよい。エイリアスには、変更前のネットワークアドレスを設定しておくことで、デバイス100において実行される任意のアプリケーション122が変更前のネットワークアドレスを指定した通信を行う場合であっても、デバイス100の内部で、変更後のネットワークアドレスに切り替えることができる。
【0151】
さらに、デバイス100において実行されるアプリケーション122は、他のデバイス100のネットワークアドレスが変更されたことを知ることができない場合もあり、そのような場合には、通信モジュール170からアプリケーション122に対して、変更前および変更後のネットワークアドレスを通知するようにしてもよい。
【0152】
例えば、アプリケーション122が変更前のネットワークアドレスを指定したアクセスを通信モジュール170に要求すると、通信モジュール170がアプリケーション122に対して、指定された変更前のネットワークアドレスに対応する変更後のネットワークアドレスを通知するようにしてもよい。アプリケーション122は、管理しているネットワークアドレスを通知された変更後のネットワークアドレスに更新することができる。
【0153】
このように、通信モジュール170は、変更後のネットワークアドレスをデバイス100で実行されるアプリケーション122に通知するようにしてもよい。このような通知によって、他のデバイス100のネットワークアドレスの変更をアプリケーション122に対しても反映することができる。
【0154】
(f6:自デバイス以外の公開鍵/ネットワークアドレスの通知)
例えば、あるユーザが使用しているデバイス100を別のデバイス100に変更するような場合を想定すると、新たなデバイス100のネットワークアドレスを事前に通知しておくことが好ましい。そのため、デバイス100は、自デバイスのネットワークアドレス(公開鍵154)だけではなく、新たなデバイス100といった別デバイスのネットワークアドレス(公開鍵154)を通知するようにしてもよい。
【0155】
図14は、本実施の形態に従うネットワークシステム1における別のデバイスのネットワークアドレスを通知する処理例を示す模式図である。
図14を参照して、デバイス100Bは、自デバイスの公開鍵154B1および公開鍵154B1に関連付けられた電子証明書164B1に加えて、デバイス100Cの公開鍵154C1および公開鍵154C1に関連付けられた電子証明書164C1を有している。
【0156】
デバイス100Bは、ユーザからの指示に応じて、あるいは、任意の条件が成立したことに応答して、デバイス100Cの公開鍵154C1および電子証明書164C1をデバイス100Aに送信する。デバイス100Aは、公開鍵154C1および電子証明書164C1に基づいて、ネットワークアドレスC1を決定する。そして、デバイス100Aは、ネットワークアドレスC1を指定してアクセスする。ネットワークアドレスC1は、デバイス100Cが有しているネットワークアドレスであるので、デバイス100Aはデバイス100Cにアクセスすることになる。
【0157】
このように、デバイス100Bが他のデバイスが有している公開鍵154(および、関連付けられた電子証明書164)をデバイス100Aに送信することで、デバイス100Aは、デバイス100Bではなく、他のデバイスとデータ通信を行うことができる。
【0158】
このような新たなネットワークアドレスの通信を行うことで、デバイス100の通信先が変化した場合であっても、新たなデバイス100へシームレスに移行できる。
【0159】
<G.有効期間の期限切れ>
対応する電子証明書164の有効期間が期限切れとなったネットワークアドレスについては、全く無効なネットワークアドレスとして取り扱うこともできるし、信頼性は低いものの有効なネットワークアドレスとして取り扱うこともできる。
【0160】
全く無効なネットワークアドレスとして取り扱う場合には、各デバイス100は、自デバイスから当該ネットワークアドレスを指定してデータを送信することはないし、他のデバイスから受信したデータに当該ネットワークアドレスが指定されていた場合には、当該データを破棄するようにしてもよい。
【0161】
一方、信頼性が低いネットワークアドレスとして取り扱う場合には、各デバイス100は、自デバイスから当該ネットワークアドレスを指定してデータを送信してもよいし、他のデバイスから受信したデータに当該ネットワークアドレスが指定されていた場合には、当該データを転送するようにしてもよい。但し、データの送信および転送の優先度は相対的に低く設定されてもよい。優先度が低く設定されることで、データの送信および転送の実効速度が低下する場合もある。
【0162】
<H.有効期間の通知>
デバイス100の電子証明書164の有効期間が期限間近または期限切れになると、当該デバイス100のユーザなどに期限間近または期限切れを通知するような仕組みを採用してもよい。
【0163】
デバイス100で実行されるアプリケーション122に対して、通信モジュール170(有効期間管理モジュール180)から期限間近または期限切れを通知するメッセージを送信するようにしてもよい。有効期間の終了日時までの残り期間に応じて、メッセージの内容あるいは属性を異ならせてもよい。例えば、残り期間が1ヶ月、2週間、1週間となった時点で、メッセージの内容あるいは属性を段階的に変化させてもよい。
【0164】
また、期限間近および期限切れのそれぞれについて、メッセージの内容あるいは属性を異ならせてもよい。
【0165】
アプリケーション122は、通信モジュール170から期限間近または期限切れを通知するメッセージを受信すると、受信したメッセージに応じた処理を実行するようにしてもよい。実行される処理は、例えば、デバイス100またはアプリケーション122を利用するユーザに対して、電子証明書164の更新などが必要であることを知らせる処理を含む。実行される処理は、アプリケーション122の作成者が任意に決定できる。
【0166】
あるいは、デバイス100の筐体のいずれかの位置に配置されたインジケータなどによって、電子証明書164の有効期間が期限間近または期限切れであることを視覚的に通知するようにしてもよい。視覚的な通知方法としては、例えば、インジケータの点灯、インジケータの点滅、インジケータの表示色の変更などが挙げられる。
【0167】
また、デバイス100の筐体のいずれかの位置に配置された音声出力デバイスなどによって、電子証明書164の有効期間が期限間近または期限切れであることを聴覚的に通知するようにしてもよい。聴覚的な通知方法としては、例えば、通知音の発生、通知音の変更などが挙げられる。
【0168】
視覚的な通知および聴覚的な通知を併せて行うようにしてもよい。また、その他の形態で通知を行ってもよい。
【0169】
このように、デバイス100の通信モジュール170(有効期間管理モジュール180)は、デバイス100で実行されるアプリケーション122に対して、電子証明書164の有効期間が期限間近または期限切れを通知する。このような通知機能によって、ユーザは、新たな電子証明書164を取得する必要があることを容易に把握できる。
【0170】
<I.新たな公開鍵および電子証明書の取得>
次に、新たな公開鍵および電子証明書を取得する処理の一例について説明する。
【0171】
上述したように、現在使用している公開鍵154に関連付けられた電子証明書164の有効期間が期限間近または期限切れである場合には、少なくとも新たな電子証明書164を取得する必要がある。すなわち、(1)同一の公開鍵154に関連付けられた新たな電子証明書164を取得する、あるいは、(2)新たな鍵ペア150を生成するとともに、当該鍵ペア150に含まれる公開鍵154に関連付けられた電子証明書164を取得する、のいずれかの対処が必要となる。
【0172】
デバイス100の通信モジュール170は、現在使用している公開鍵154に関連付けられた電子証明書164の有効期間が期限間近または期限切れを通知する際に、上述の(1)および/または(2)の対処を併せて通知するようにしてもよい。この場合には、デバイス100の通信モジュール170が現在使用している公開鍵154に関連付けられた電子証明書164の有効期間が期限間近または期限切れを通知するUI(User Interface)を提供するとともに、(1)および(2)のいずれを実行するかを受け付けるようにしてもよい。
【0173】
あるいは、(1)または(2)のいずれか一方を予め設定しておき、現在使用している公開鍵154に関連付けられた電子証明書164の有効期間が期限間近になると、設定された方法で新たな電子証明書164を取得する処理の実行を受け付けるようにしてもよい。
【0174】
上述したような任意の方法で、デバイス100の通信モジュール170は、ユーザ操作に応じて、少なくとも新たな電子証明書164を認証局から取得する。
【0175】
また、上述のいずれの方法であっても、新たな電子証明書164を取得するために必要な費用の決済を支援するためのUIなどを提供するようにしてもよい。例えば、デバイス100の通信モジュール170は、クレジットカードなどの入力画面を提供するとともに、入力されたクレジットカードの番号を図示しない決済サーバに送信して、必要な費用を決定するようにしてもよい。
【0176】
なお、電子証明書164の有効期間の期限切れだけではなく、電子証明書164が何らかの理由で失効している場合などにおいても、同様の処理を実行することができる。
【0177】
<J.利点>
本実施の形態に従うネットワークシステム1によれば、1つのデバイスが複数のネットワークアドレスを有している場合であっても、シームレスな通信を実現できる。
【0178】
本実施の形態に従うネットワークシステム1によれば、通信相手のデバイス100が異なるドメインに属している場合、複数種類のハッシュ関数173が利用できる場合、電子証明書164の有効期限が期限間近または期限切れである場合などにおいて、デバイス100が複数のネットワークアドレスを有するとともに、いずれのネットワークアドレスについても利用可能であるので、通信を継続することができる。
【0179】
また、本実施の形態に従うネットワークシステム1によれば、公開鍵と公開鍵に関連付けられた電子証明書とを用いるネットワークにおいて、電子証明書の有効期間の期限切れによって、ネットワークアドレスを完全に認証済みであるとして取り扱うことができないといった課題に対して、新たな公開鍵および電子証明書への移行をシームレスに行うことができる。これによって、いずれかのデバイスにおいて、新たな電子証明書の取得などが必要な状況になったとしても、デバイス間の通信を途切れさせることなく、通信を継続できる。
【0180】
今回開示された実施の形態はすべての点で例示であって制限的なものでないと考えられるべきである。本発明の範囲は上記した説明ではなくて請求の範囲によって示され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0181】
1 ネットワークシステム、100,100A,100B,100C デバイス、102 プロセッサ、104 メモリ、106 ストレージ、108 ディスプレイ、110 入力部、112 通信部、120 OS、122 アプリケーション、124 通信処理プログラム、126 インターフェイス、128 データ格納領域、140 鍵ペア生成モジュール、142 評価モジュール、150 鍵ペア、152,252 秘密鍵、154,154A,154B1,154B,154B2,154C1 公開鍵、160 電子証明書情報、162 署名、164,164A,164B,164B2,164B1,164C1 電子証明書、170 通信モジュール、172 アドレス決定モジュール、173 ハッシュ関数、174 正当性判断モジュール、176 テーブル管理モジュール、178 ルーティングモジュール、180 有効期間管理モジュール、182 ルーティングテーブル、200 認証局、240 電子証明書情報生成モジュール、242 電子証明書生成モジュール、250 レジストリ。