以下、図面に基づいて本発明の実施の形態を説明する。図1は、第一の実施の形態におけるネットワークシステムの構成例を示す図である。図1において、通信機器20a、20b、及び20等の複数の通信機器20と、通信制御装置10と、証明書発行装置30とは、ネットワークN1を介して通信可能とされている。ネットワークN1は、例えば、インターネットへのアクセス網又はアクセス回線である。ネットワークN1の具体例として、NGN(Next Generation Network)又は移動体通信網等が挙げられる。
すなわち、通信制御装置10は、例えば、各通信機器20とインターネットとの間に設置される。但し、通信制御装置10と各通信機器20との間にインターネットが介在してもよい。また、証明書発行装置30と各通信機器20との間にもインターネットが介在してもよい。通信制御装置10の管理者又は運用者としては、例えば、ISP(Internet Service Provider)又はVNE(Virtual Network Enabler)等が挙げられる。証明書発行装置30の管理者又は運用者としては、例えば、ISPや認証局(CA(Certificate Authority))等が挙げられる。本実施の形態において、通信制御装置10及び証明書発行装置30は、説明の便宜上、同一のISPによって管理及び運用されることとする。
通信機器20は、IPv6によって通信可能な各種の通信機器20である。すなわち、本実施の形態では、基本的に、通信プロトコルとしてIPv6が使用される。通信機器20としては、PC(Personal Computer)、スマートフォン、携帯電話、タブレット型端末、PDA(Personal Digital Assistance)、デジタル家電等、通信機能を有する各種の電子機器が含まれる。
通信制御装置10は、ISPの顧客(加入者)に対して、安全なネットワークドメインを提供するための処理を実行するコンピュータ又はネットワーク機器である。安全なネットワークドメインとは、身元が保証されたユーザの通信機器20のみが接続可能な仮想的又は論理的なサブネット又はネットワークセグメントをいう。以下、安全なネットワークドメイを、便宜上「ホワイトネット」という。ホワイトネットの詳細については、後述される。なお、複数のコンピュータが通信制御装置10を構成してもよい。すなわち、通信制御装置10が実行する機能は、複数のコンピュータに分散された実現されてもよい。
証明書発行装置30は、通信機器20がホワイトネットへ接続するために必要とされる公開鍵証明書を生成及び発行するコンピュータである。すなわち、或るホワイトネットへ接続する通信機器20は、当該通信機器20の身元を証明する公開鍵証明書を有している必要がある。以下、通信機器20ごとに発行される公開鍵証明書を、「機器証明書」という。
図2は、第一の実施の形態における通信制御装置のハードウェア構成例を示す図である。図2の通信制御装置10は、それぞれバスBで相互に接続されているドライブ装置100、補助記憶装置102、メモリ装置103、CPU104、及びインタフェース装置105等を有する。
通信制御装置10での処理を実現するプログラムは、記録媒体101によって提供される。プログラムを記録した記録媒体101がドライブ装置100にセットされると、プログラムが記録媒体101からドライブ装置100を介して補助記憶装置102にインストールされる。但し、プログラムのインストールは必ずしも記録媒体101より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置102は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
メモリ装置103は、プログラムの起動指示があった場合に、補助記憶装置102からプログラムを読み出して格納する。CPU104は、メモリ装置103に格納されたプログラムに従って通信制御装置10に係る機能を実行する。インタフェース装置105は、ネットワークに接続するためのインタフェースとして用いられる。
なお、記録媒体101の一例としては、CD−ROM、DVDディスク、又はUSBメモリ等の可搬型の記録媒体が挙げられる。また、補助記憶装置102の一例としては、HDD(Hard Disk Drive)又はフラッシュメモリ等が挙げられる。記録媒体101及び補助記憶装置102のいずれについても、コンピュータ読み取り可能な記録媒体に相当する。
なお、証明書発行装置30や通信機器20も、図2と同様のハードウェア構成を有していてもよい。但し、通信機器20は、液晶ディスプレイ等の表示装置や、キーボード、マウス、ボタン、又はタッチパネル等の入力装置等を備えていてもよい。
図3は、第一の実施の形態における各装置の機能構成例を示す図である。図3において、証明書発行装置30は、証明書発行部31及び確認情報記憶部32等を有する。証明書発行部31は、機器証明書の発行処理を実行する。証明書発行部31は、例えば、証明書発行装置30にインストールされたプログラムが、証明書発行装置30のCPUに実行させる処理により実現される。
確認情報記憶部32は、機器証明書の発行対象となる通信機器20の身元等を確認するための情報を記憶する。確認情報記憶部32は、例えば、証明書発行装置30が有する補助記憶装置、又は証明書発行装置30にネットワークを介して接続される記憶装置等を用いて実現可能である。
通信機器20は、通信制御部21を有する。通信制御部21は、通信機器20にインストールされたプログラムが、通信機器20のCPUに実行させる処理により実現される。通信機器20は、また、機器証明書記憶部22を有する。機器証明書記憶部22は、例えば、通信機器20が有する補助記憶装置等を用いて実現可能である。
機器証明書記憶部22は、当該通信機器20に対して発行された機器証明書を記憶する。機器証明書記憶部22には、また、機器証明書に含まれている公開鍵に対応する秘密鍵も記憶される。
通信制御部21は、通信制御装置10や他の通信機器20等との通信を制御するための処理を実行する。通信制御部21は、ホワイトネットへの接続の際に、機器証明書記憶部22に記憶されている機器証明書や秘密鍵等を用いて、自らの正当性を証明するための処理を実行する。
通信制御装置10は、認証要求受付部11、認証データ検証部12、ルーティング部13、及び再認証要求部14等を有する。これら各部は、通信制御装置10にインストールされたプログラムがCPU104に実行させる処理により実現される。
通信制御装置10は、また、証明書リスト記憶部15、セッション情報記憶部16、ルーティングポリシー記憶部17、及びルーティング情報記憶部18等を利用する。これら各記憶部は、補助記憶装置102、又は通信制御装置10にネットワークを介して接続される記憶装置等を用いて実現可能である。
認証要求受付部11は、ホワイトネットへ接続するための認証要求を通信機器20より受信する。認証データ検証部12は、認証要求に係る通信機器20より当該通信機器20の正当性等を示す認証データを受信し、当該認証データの検証を、証明書リスト記憶部15に記憶されている機器証明書等を用いて実行する。証明書リスト記憶部15は、各通信機器20に対して発行されている機器証明書を記憶する。
ルーティング部13は、認証データが検証された、すなわち、正当性が確認された通信機器20に関して、当該通信機器20からのパケットのルーティングを行う。ルーティングは、ルーティングポリシー記憶部17が記憶するルーティングポリシーによって制限される。ルーティングポリシーは、送信元と宛先との組み合わせに応じて、ルーティングの可否を示す情報である。ルーティング部13は、また、ルーティング情報記憶部18を利用する。ルーティング情報記憶部18は、宛先に応じて、出力先のポートを識別する情報等を記憶する。
再認証要求部14は、所定のタイミングで、再認証を受けることの要求(再認証要求)を、通信機器20に送信する。再認証要求を受信した通信機器20は、改めて、ホワイトネットへ接続するための認証要求を通信制御装置10に送信する。
続いて、ホワイトネットの詳細について説明する。例えば、ホワイトネットの利用形態の一例として、例えば、図4又は図5のような形態が挙げられる。
図4は、ホワイトネットの第一の利用形態の例を示す図である。図4では、企業ごとに、仮想的なイントラネットとしてホワイトネットが利用される形態が示されている。
図4において、ホワイトネットWN1、WN2、及びWN3のそれぞれは、企業A、企業B、又は企業Cの仮想的なイントラネットである。この場合、たとえば、企業Aの社員は、自宅や外出先等から、通信機器20を利用して、ホワイトネットWN1に接続することができる。また、企業Aの既存の物理的なイントラネットPN1に接続している各通信機器20も、ホワイトネットWN1に接続することができる。但し、企業Aの社員以外の者が利用する通信機器20に関しては、ホワイトネットWN1への接続を拒否することができる。したがって、ホワイトネットWN1は、企業Aの社員のみが接続可能な安全なネットワークとなる。
なお、企業内の部署ごとに、別々のホワイトネットが形成されることも考えられる。
また、図5は、ホワイトネットの第二の利用形態の例を示す図である。図5では、一つの製造メーカにおいて、製品の型番ごとにホワイトネットが割り当てられる例が示されている。例えば、ホワイトネットWNaは、テレビとしての製品Aのみの接続が許可されるホワイトネットである。ホワイトネットWNb、WNc、及びWNdは、それぞれ、製品B、製品C、又は製品Dのみの接続が許可されるホワイトネットである。
例えば、市場において販売され、各家庭又は企業等で利用されている製品Aは、その起動時にホワイトネットWNaに接続される。この場合、当該製造メーカは、製品Aに関してソフトウェアのアップデート等の保守サービスの実施が必要となったときに、当該保守サービスを容易に行うことができる。ホワイトネットWNaに接続された通信機器20をアップデート等の保守サービスの対象として限定することができるからである。
なお、ホワイトネットの利用形態又は用途は、図4又は図5に示されるものに限られない。
ところで、現行において一般的に採用されているIPv6のグローバルユニキャストアドレスの形式は、図6に示される通りである。「現行において一般的に採用されている」とは、既に構築されているIPv6ネットワークにおいて採用されているということを含む。
図6は、現行において採用されているIPv6のグローバルユニキャストアドレスの体系を示す図である。図6では、RFC3587に記載されているグローバルユニキャストアドレス(以下、単に「IPアドレス」という。)の体系が示されている。ここで、先頭の49ビット目からの16ビットは、サブネットごとの識別領域である。すなわち、当該識別領域にはサブネットごとの識別子であるサブネットIDが格納される。したがって、現行において採用されているIPv6のグローバルユニキャストアドレスでは、先頭から64ビットによって、各サブネットは区別される。
一方、後半の64ビットは、MACアドレスが割り当てられるネットワークインタフェースごとの識別領域である。すなわち、当該識別領域には、ネットワークインタフェースごとの識別子であるインタフェースIDが格納される。
例えば、ISPは、企業ユーザ等の加入者組織に対して、先頭から48ビットまでを割り当てる。この場合、加入者組織は、最大で下位の80ビット分を、自由に利用可能となる。
上記したように、一つのホワイトネットは、一つのサブネットである。したがって、仮に、ホワイトネットを図6に示されるアドレス体系に従って割り当てるとすると、一加入者組織は、最大でサブネットIDの16ビット分、すなわち、65536個のホワイトネットを所有することができる。65536個という数は、例えば、図4のような利用形態であれば十分であるかもしれないが、図5のような利用形態を考慮すると、枯渇する虞がある。すなわち、図5のような利用形態では、製品の型番ごとにホワイトネットが割り当てられる。型番は、モデルチェンジが行われるたびに新しい値が割り当てられる。また、旧モデルについても保守サービスを考慮すると、既存の型番を無効とすることは困難である。したがって、一つの製造メーカが、65536以上の型番を有するのは容易に想像できる。そうすると、一加入者組織に対して、16ビット分のサブネットでは不十分である可能性が高い。
そこで、本実施の形態では、図7に示されるように、インタフェースIDの一部をも利用して、ホワイトネットを区別可能とする。換言すれば、サブネットIDに加え、インタフェースIDの一部の領域が、ホワイトネットの識別子(以下「ホワイトネットID」という。)を格納するための領域として用いられる。
図7は、ホワイトネットIDを説明するための図である。図7に示されるように、本実施の形態では、サブネットIDに加えて、インタフェースIDの上位の一部が、ホワイトネットIDとして利用される。換言すれば、サブネットの識別領域、インタフェースIDの上位の一部まで拡張される。なお、サブネットを識別する部分が拡張された分、インタフェースの識別領域は、削減される。
サブネットの識別領域の拡張の程度は、例えば、加入者組織へのIPアドレスの割り当ての際に、決定されてもよい。なお、IPアドレスの先頭からホワイトネットIDの末尾までのビット長を、以下、「サブネットマスク」という。
一方、IPv6のグローバルユニキャストアドレスの一般的な体系は、RFC3513において、図8に示されるように規定されている。
図8は、IPv6のグローバルユニキャストアドレスの一般的な体系を示す図である。図8に示されるように、RFC3513においては、グローバルルーティングプレフィックス、サブネットID、及びインタフェースIDの長さが、これらの合計が128ビット以内である範囲おいて、可変とされている。すなわち、各要素間の双方向の矢印は、当該矢印に係る要素間の境界が移動可能であることを示す。
したがって、RFC3513に従えば、サブネットIDを、16ビット以上の任意の長さに拡張することができる。その結果、上記におけるホワイトネットIDの目的を達成可能なサブネットIDを定義することが可能となる。
但し、現時点において、RFC3513のような、各要素が可変なIPアドレスに関する運用等に関しては、明確にされていない。また、既に構築されているIPv6ネットワークにおいては、図6において説明したアドレス体系が採用されている。
そこで、本実施の形態では、既に構築されているIPv6ネットワークにおけるアドレス体系との互換性、及びRFC3515との互換性の双方を満たすように、図9に示されるようなアドレス体系を採用する。
図9は、第一の実施の形態におけるIPアドレスの体系を示す図である。図9に示されるように、本実施の形態では、サブネットIDとインタフェースIDとの間に、プライベートIDが設けられる。プライベートIDは、サブネットIDとの組み合わせにより、ホワイトネットIDを構成する。プライベートIDは、図6に示される、RFC3587に記載された体系に基づく観点によれば、インタフェースIDの一部に相当する。また、図8に示されるRFC3515に記載された体系に基づく観点によれば、サブネットIDの一部、又はインタフェースIDの一部に相当する。
なお、各要素間の双方向の矢印は、当該矢印に係る要素間の境界が固定であることが前提とされないということを示す。すなわち、本実施の形態では、各要素の長さが可変である場合についても考慮される。
但し、本実施の形態では、RFC3587に記載された体系との互換性を考慮して、グローバルルーティングプレフィックスは48ビットであり、サブネットIDは、16ビットである場合について説明する。
続いて、ホワイトネットの構築のための準備作業について説明する。例えば、或る加入者組織(以下、「企業A」という。)では、将来的な拡張等を考慮して、加入者組織における通信機器20の台数から、IPアドレスの利用範囲(割り当て範囲)が、/64〜/80の範囲で決定される。/64は、上位64ビットまでが決定された値が企業Aに対して割り当てられることを意味する。したがって、この場合、企業Aは、下位64ビットを自由に利用することができる。また、/80は、先頭から80ビットまでが決定された値が企業Aに対して割り当てられることを意味する。したがって、この場合、企業Aは、下位48ビットを自由に利用することができる。
続いて、企業Aは、ホワイトネットの利用形態に鑑みて、必要なホワイトネットの本数を決定し、サブネットマスクを決定する。割り当て範囲が/64である場合、サブネットマスクが/80であれば、ホワイトネットIDのビット長は、サブネットIDの16ビット+プライベートIDの16ビット(インタフェースIDの上位16ビット)の32ビットとなる。この場合、最大で42億9496万7296本のホワイトネットを割り当てることができる。また、281兆4749億7671万656個のIPアドレスを確保することができる。
上記の決定事項のうち割り当て範囲は、例えば、企業AからISPに対して申請される。但し、ISPが、企業Aにおけるネットワーク構成の構想を聴取して、ISPが、企業Aに適した割り当て範囲及びサブネットマスクを決定してもよい。また、企業Aは、ホワイトネットに接続を許可する通信機器20ごとに、当該通信機器20及びその利用者を特定可能な情報(以下、「機器情報」という。)を、ISPに対して申請する。当該情報には、例えば、通信機器20のMACアドレス、BIOS(Basic Input/Output System)シリアル番号、OS(Operating System)シリアル番号、及び利用者氏名等が含まれる。但し、利用者氏名は、必ずしも含まれなくてもよい。また、BIOSの起動シリアル番号及びOSシリアル番号も含まれなくてもよい。
ISPは、上記申請を受けると、申請された割り当て範囲に対応したIPアドレス群を用意する。用意されたIPアドレス群は、例えば、企業Aに対する加入者IDに対応付けられて管理される。加入者IDとは、ISPが各加入者を識別するための識別情報である。割り当て範囲が/64である場合、例えば、「2001:0db8:aaaa:0000:0000:000:0000:0001〜2001:0db8:aaaa:ffff:ffff:fffff:fffff:fffff」の範囲のIPアドレスが用意される。
また、ISPは、通信機器20ごとに申請された機器情報を、証明書発行装置30に設定しておく。設定された機器情報は、確認情報記憶部32に記憶される。
続いて、企業Aは、ホワイトネットへの接続を許可する通信機器20ごとに、公開鍵暗号方式における公開鍵と秘密鍵とのペアを生成する。少なくとも秘密鍵は、各通信機器20の記憶装置に安全に保存される。
以上によって、企業Aが、各通信機器20に関して機器証明書の発行を受けるための準備作業が完了する。
続いて、企業Aは、例えば、非図示のPC(Personal Computer)等の情報処理装置を利用して、ホワイトネットへの接続を許可する各通信機器20に対する機器証明書の発行要求を、証明書発行装置30に送信する。当該発行要求に応じて、証明書発行装置30が実行する処理について説明する。
図10は、機器証明書の発行処理の処理手順の一例を説明するためのフローチャートである。
証明書発行装置30の証明書発行部31は、機器証明書の発行要求の受信を待機している(S11)。機器証明書の発行要求が受信されると、証明書発行部31は、当該発行要求の内容を、確認情報記憶部32が記憶する機器情報と照合することにより、当該発行要求の正当性を確認する(S12)。具体的には、機器証明書の発行要求には、企業Aの加入者ID、機器証明書の発行対象の通信機器20の機器情報(MACアドレス、BIOSシリアル番号、OSシリアル番号、利用者氏名)、公開鍵、グローバルルーティングプレフィックスマスク、サブネットIDマスク、及びプライベートIDマスク等が指定される。グローバルルーティングプレフィックスマスクは、IPアドレスの先頭からのグローバルルーティングプレフィックスのビット長である。サブネットIDマスクは、グローバルルーティングプレフィックスマスクに続くサブネットIDのビット長である。プライベートIDマスクは、サブネットIDに続くプライベートIDのビット長である。本実施の形態では、これらのビット長が固定であるという前提は排除されているため、これらのビット長の指定が必要とされる。
確認情報記憶部32が記憶する機器情報のうち、受信された発行要求に指定された加入者IDに対応付けられている機器情報のいずれかと、当該発行要求に指定された機器情報が一致する場合、証明書発行部31は、当該発行要求は正当であると判定する。すなわち、当該発行要求は、ホワイトネットへの接続が許可されるべき、実在する通信機器20に対する発行要求であることが確認される。一方、確認情報記憶部32が記憶する機器情報のうち、受信された発行要求に指定された加入者IDに対応付けられている機器情報のいずれとも、当該発行要求に指定された機器情報が一致しない場合、証明書発行部31は、当該発行要求は不正であると判定する。
このように、確認情報記憶部32に記憶される機器情報は、機器証明書の発行要求の正当性の判定に利用される。したがって、例えば、企業A以外の信頼できる者から確認情報記憶部32に記憶される機器情報が入手されるようにしてもよい。機器情報の入手先となりうる者としては、例えば、企業Aに対する通信機器20の販売者が一例として挙げられる。例えば、当該販売者は、ISPからの要請に応じ、企業Aに対して販売した各通信機器20の機器情報を、ISPに提供する。ISPは、提供された機器情報を確認情報記憶部32に設定する。
確認情報記憶部32に記憶される機器情報の入手先が、機器証明書の発行要求元と異なることで、確認情報記憶部32の信頼性を高めることができる。例えば、受信される発行要求が、企業Aには存在しない通信機器20に対する発行要求であることを検知できる可能性を高めることができる。
受信された発行要求が不正であると判定された場合(S13でNo)、証明書発行部31は、エラー情報を返信し(S14)、当該発行要求に応じた処理を終了させる。すなわち、この場合、機器証明書の発行は行われない。
一方、受信された発行要求が正当であると判定された場合(S13でYes)、証明書発行部31は、発行対象の通信機器20に対する機器証明書を生成する(S15)。
図11は、機器証明書の構成例を示す図である。図11に示される機器証明書は、X509 v3フォーマットに準拠したものであるため、基本的なフィールドの説明は省略する。なお、発行要求に指定された、通信機器20の公開鍵は、subjectPublicKeyInfoフィールドに格納される。
extensionsフィールドは、X509 v3において定義されている拡張領域である。本実施の形態では、拡張型(exInd)として、IPアドレス(IPv6 Global Unicast Address)、グローバルルーティングプレフィックスマスク(Global Routing Prefix Mask)、サブネットIDマスク(Sub−Net ID Mask)、プライベートIDマスク(Private ID Mask)、及びMacアドレス(Mac address)等が含まれる。これらの拡張型のうち、グローバルルーティングプレフィックスマスク、サブネットIDマスク、プライベートIDマスク、及びMacアドレスの値には、機器証明書の発行要求に指定されている値が格納される。
IPアドレスには、例えば、機器証明書の生成の際に、発行要求に指定された加入者IDに対応付けられているIPアドレス群の中から、証明書発行部31によって割り当てられた値が格納される。但し、IPアドレスは、発行要求に指定されていてもよい。この場合、企業Aに割り当てられたIPアドレス群が予めISPから通知されていればよい。発行要求にIPアドレスが指定されている場合、証明書発行部31は、当該IPアドレスを機器証明書に格納する。
続いて、証明書発行部31は、生成された機器証明書を返信する(S16)。
企業Aの情報処理装置において機器証明書が受信されると、企業Aでは、当該機器証明書に対応する通信機器20に対して当該機器証明書の保存が行われる。
なお、図10の処理は、通信機器20一台ごとに行われてもよいし、複数の通信機器20に関してまとめて行われてもよい。
企業Aにおいて機器証明書が保存された通信機器20は、当該機器証明書に対応するホワイトネットでの通信が可能となる。当該機器証明書に対応するホワイトネットとは、当該機器証明書に記録されているIPアドレス、グローバルルーティングプレフィックスマスク、サブネットIDマスク、及びプライベートIDマスクに基づいて特定可能なホワイトネットIDによって識別されるホワイトネットをいう。
続いてホワイトネットを利用した通信処理について説明する。図12は、ホワイトネットを利用した通信処理の一連の手順を説明するための図である。
まず、ホワイトネットへの接続を要求する通信機器20に関して、通信制御装置10によって認証処理が実行される(S101)。認証された通信機器20は、当該通信機器20の機器証明書に対応するホワイトネットに論理的に収容される。また、認証処理において、暗号通信のための共通鍵が、通信制御装置10と通信機器20との間で共有される。
続いて、通常のデータ通信が行われる(S102)。ホワイトネットに収容された通信機器20のパケットは、通信制御装置10によってルーティングされる。なお、データ通信において、ホワイトネットの外部へのデータの送信、又はホワイトネットの外部からのデータの受信を許可するか否かは、ホワイトネットごとに設定されるルーティングポリシーに依存する。
データ通信の合間において、所定のタイミングで通信機器20に関して再認証処理が実行される(S103)。すなわち、通信機器20の正当性が、例えば、定期的に確認される。データ通信が完了すると、通信機器20は、ホワイトネットとの接続を切断する(S104)。
続いて、ステップS101の詳細について説明する。図13は、通信機器の認証処理の一例を説明するためのシーケンス図である。
ステップS111において、通信機器20の通信制御部21は、認証要求を示すパケットを通信制御装置10に送信する。認証要求を示すパケット(以下、単に、「認証要求」という。)とは、例えば、認証要求であることを示す情報が含まれているパケットをいう。通信制御装置10において認証要求が受信されると、認証要求受付部11は、認証要求の送信元IPアドレスに対応付けられている機器証明書を、証明書リスト記憶部15より取得する。認証要求受付部11は、また、認証要求が受信された時刻を示す時刻情報を記憶しておく。
なお、該当する機器証明書が証明書リスト記憶部15に記憶されていない場合、認証要求受付部11は、認証要求元の通信機器20に対する機器証明書をネットワークを介して取得してもよい。例えば、当該通信機器20に対して機器証明書の送信が要求されたり、又は機器証明書が公開されているサイトに対して、認証要求の送信元IPアドレスに対する機器証明書の取得が要求されたりすることにより、該当する機器証明書が取得されてもよい。取得された機器証明書は、機器証明書記憶部22に記憶される。また、ステップS111の認証要求に、認証要求元の通信機器20の機器証明書が指定されるようにしてもよい。
続いて、認証要求受付部11は、通信機器20との認証処理ごとに一意な暗号用共通鍵を生成し、当該暗号用共通鍵を、通信機器20の機器証明書に含まれている公開鍵で暗号化する。また、認証要求受付部11は、チャレンジワード又はチャレンジフレーズ(以下、「チャレンジワード」という。)をランダムに生成し、チャレンジワードと、暗号化された暗号用共通鍵とを含む認証要求応答パケットを、認証要求の送信元IPアドレス宛に返信する(S112)。チャレンジワードは、ランダムな文字列である。
通信機器20において認証要求応答パケットが受信されると、通信制御部21は、認証要求応答パケットに含まれている、暗号化された暗号用共通鍵を、当該通信機器20の秘密鍵で復号する。仮に、なりすまし等で不正な通信機器20が認証要求応答パケットを受信した場合、当該通信機器20は、暗号化された暗号用共通鍵を復号可能な秘密鍵を有していない。したがって、当該通信機器20は、暗号化された暗号用共通鍵を復号することが出来ず、暗号用共通鍵の漏洩が防止される。復号された暗号用共通鍵は、例えば、セッションが有効な間、安全な場所に保存され、セッション終了時に破棄される。
通信制御部21は、また、チャレンジワードを暗号用共通鍵で暗号化し、暗号化されたチャレンジワードに対する電子署名を生成する。当該電子署名は、暗号化されたチャレンジワードのハッシュ値を、当該通信機器20の秘密鍵によって暗号化することにより生成される。更に、通信制御部21は、現在時刻のタイムスタンプを、例えば、第三者認証機関より取得する。
続いて、通信制御部21は、暗号化されたチャレンジワード、電子署名、及びタイムスタンプ等の認証データを含むパケット(以下、「認証データパケット」という。)を通信制御装置10に送信する(S113)。
通信制御装置10において、認証データパケットが受信されると、認証データ検証部12は、認証データを検証する。具体的には、認証データ検証部12は、認証データに含まれているタイムスタンプが示す時刻と、認証要求の受信に応じて記憶されている時刻情報が示す時刻との間の経過時間の妥当性について検証する。当該経過時間が所定値未満である場合、認証データ検証部12は、当該経過時間は妥当であると判定する。この判定は、認証データが不正に横取りされてしまったことを検知するためのものである。仮に、不正な横取りが行われ、横取りした者から認証データが送信された場合、当該経過時間は長くなる可能性が高いからである。
認証データ検証部12は、また、認証データに含まれている電子署名を、機器証明書等を用いて検証する。認証データ検証部12は、また、認証データに含まれているチャレンジワードを暗号用共通鍵で復号し、復号結果が、送信したチャレンジワードと一致するか否かを検証する。認証データ検証部12は、更に、認証データパケットの送信元IPアドレスと、ステップS111に応じて取得された機器証明書に含まれているIPアドレスとを比較する両者が一致する場合、認証データパケットの送信元IPアドレスは正しいと判定される。
要するに、電子署名の検証によって、通信機器20が成りすまされていないことが検証される。また、チャレンジワードが復号されることにより、暗号用共通鍵が安全に通信機器20に転送されたことが検証される。送信元IPアドレスと機器証明書内のIPアドレスとの比較によって、通信機器20のIPアドレスの正当性が検証される。
電子署名、チャレンジワード、及び送信元IPアドレスの全ての正当性が検証されると、認証データ検証部12は、通信機器20を、当該通信機器20の機器証明書に対応するホワイトネットに収容する。すなわち、当該通信機器20は、当該ホワイトネットへの接続が許可される。そこで、認証要求部は、ホワイトネットへの接続の許可を示す接続許可応答を、認証データパケットの送信元IPアドレス宛に返信する(S114)。
続いて、図12のステップS102の詳細について説明する。図14は、ホワイトネットを介したデータ通信の処理手順の一例を説明するためのシーケンス図である。図14では、通信機器20aと通信機器20bとの間で通信が行われる例を説明する。通信機器20a及び通信機器20bは、それぞれ、図13の処理の実行により、同一のホワイトネット、又は相互に異なるホワイトネットに収容されていることとする。
ステップS121において、通信機器20aの通信制御部21aは、通信機器20b宛への通信データを暗号鍵aによって暗号化する。暗号鍵aは、図13のステップS112において通信制御装置10より受信した暗号用共通鍵である。続いて、通信制御部21aは、暗号化された通信データを含むパケットを、通信機器20bのIPアドレス宛に送信する(S122)。
当該パケットは、ネットワークN1を介して通信制御装置10によって受信される。通信制御装置10のルーティング部13は、通信機器20aからのパケットに含まれている通信データを、暗号鍵aによって復号する(S123)。続いて、ルーティング部13は、当該パケットの宛先IPアドレスに対応する、通信機器20bに対する暗号用共通鍵(以下、「暗号鍵b」という。)によって、復号された通信データを暗号化する(S124)。すなわち、通信制御装置10には、図13の認証処理を経てホワイトネットに収容された各通信機器20に対して生成された暗号用共通鍵が、例えば、各通信端末のIPアドレスに対応付けられて補助記憶装置102に記憶されている。
続いて、ルーティング部13は、暗号鍵bによって暗号化された通信データを含むパケットを、ネットワークN1を介して通信機器20b宛に転送する(S125)。
なお、厳密には、ルーティング部13は、ルーティングポリシーに従って、通信機器20aから通信機器20bへのルーティング(通信データの転送)の可否の判定をも行うが、この点については後述される。
通信機器20bの通信制御部21bは、通信データを受信すると、当該通信データを暗号鍵bによって復号する(S126)。通信機器20bについても、図13のステップS112において、通信制御装置10より暗号鍵bが受信されている。なお、通常、暗号鍵aと暗号鍵bとは異なる暗号鍵である。ステップS112に関して説明したように、暗号用共通鍵は、認証処理ごとに生成されるからである。
続いて、通信機器20bは、例えば、復号された通信データを利用した処理を実行する。続いて、通信制御部21bは、受信された通信データに対応する応答データを、暗号鍵bによって暗号化する(S127)。応答データは、例えば、通信機器20bによる処理結果を示すデータであってもよいし、通信データを受信できたことを示すデータであってもよい。続いて、通信制御部21bは、暗号化された応答データを含むパケットを、通信機器20aのIPアドレス宛に返信する(S128)。
当該パケットは、ネットワークN1を介して通信制御装置10によって受信される。通信制御装置10のルーティング部13は、当該パケットに含まれている応答データを、当該パケットの送信元IPアドレスに対応付けられている暗号鍵bによって復号する(S129)。続いて、ルーティング部13は、当該パケットの宛先IPアドレスに対応する、通信機器20aに対する暗号鍵aによって、復号された応答データを暗号化する(S130)。続いて、ルーティング部13は、暗号鍵aによって暗号化された応答データを含むパケット、ネットワークN1を介して通信機器20a宛に転送する(S131)。
通信機器20aの通信制御部21aは、応答データを受信すると、当該応答データを暗号鍵aによって復号する(S132)。通信機器20aは、例えば、復号された応答データを利用した処理を実行する。
このように、各通信機器20と通信制御装置10との間の通信は、各通信機器20の認証処理ごとの暗号用共通鍵によって暗号化される。したがって、データ通信に関して高い安全性が確保される。また、通信機器20ごとの暗号用共通鍵による通信は、通信制御装置10によって仲介される。したがって、通信機器20同士で暗号用共通鍵を交換する必要はない。すなわち、各通信機器20は、通信相手に応じて使用する暗号用共通鍵を切り替える必要はない。
続いて、図12のステップS103の詳細について説明する。図15は、ホワイトネットでの再認証処理の処理手順の一例を説明するためのシーケンス図である。
例えば、通信機器20の通信制御部21が、通信データを含むパケットを送信する(S141)。ステップS141は、図14におけるステップS122と同様の処理である。通信制御装置10の再認証要求部14は、当該パケットを受信すると、当該パケットの送信元IPアドレスに係るセッションはタイムアウトであるか否かを判定する。例えば、当該セッションに関して、最後の通信時刻から所定時間経過しているか否かが判定される。なお、図14においては、便宜上省略されたが、通信機器20からのパケットが受信されるたびに、斯かる判定が行われる。
再認証要求部14は、タイムアウトであることを検知すると、送信元IPアドレス宛に再認証要求を送信する(S142)。通信機器20の通信制御部21は、再認証要求に応じ、図13において説明した認証処理を開始する(S143)。
続いて、図12〜図15おいて説明した処理において、通信制御装置10が実行する処理について更に詳しく説明する。
図16は、通信制御装置が実行する処理手順の一例を説明するためのフローチャートである。
通信制御装置10は、パケットの受信を待機している。受信されたパケットが認証要求である場合(S201でYes)、認証要求受付部11は、認証要求受付処理を実行する(S202)。受信されたパケットが認証データを含むパケットである場合(S203でYes)、認証データ検証部12は、認証データ検証処理を実行する(S204)。
受信されたパケットが、通信データを含むパケット、すなわち、通信制御装置10以外を宛先とするパケットである場合(S205でYes)、再認証要求部14は、当該パケットの送信元IPアドレスに関するセッションについて、タイムアウトであるか否かを判定する(S206)。タイムアウトでない場合(S206でNo)、ルーティング部13は、当該パケットに関してルーティング処理を実行する(S207)。タイムアウトである場合(S206でYes)、再認証要求部14は、再認証要求を、当該パケットの送信元IPアドレス宛に送信する(S208)。
続いて、ステップS202の詳細について説明する。図17は、認証受付処理の処理手順の一例を説明するためのフローチャートである。
ステップS211において、認証要求受付部11は、送信元IPアドレスを認証要求より取得する。続いて、認証要求受付部11は、送信元IPアドレスに対応する機器証明書を、証明書リスト記憶部15より取得する(S212)。該当する機器証明書の取得に失敗した場合(S213でNo)、認証要求受付部11は、エラー処理を実行する(S219)。例えば、再認証要求が送信元IPアドレス宛に送信される。または、当該通信機器20から、又は機器証明書が公開されているサイトから、当該送信元IPアドレスに対する機器証明書が取得されてもよい。機器証明書が取得された場合、ステップS214以降が実行されてもよい。
一方、該当する機器証明書の取得に成功した場合(S213でYes)、認証要求受付部11は、通信機器20とのセッションごとに一意な暗号用共通鍵を生成する(S214)。続いて、認証要求受付部11は、セッションごとに一意なチャレンジワードを生成する(S215)。続いて、認証要求受付部11は、ステップS212において取得された機器証明書に格納されている公開鍵によって、暗号用共通鍵を暗号化する(S216)。続いて、認証要求受付部11は、暗号化された暗号用共通鍵及びチャレンジワード等を含む認証要求応答パケットを、認証要求の送信元IPアドレス宛に送信する(S217)。
続いて、認証要求受付部11は、セッション情報記憶部16に、認証要求元の通信機器20に対応するレコードを生成し、当該レコードに、当該通信機器20に関するセッション情報を記憶する(S218)。
図18は、セッション情報記憶部の構成例を示す図である。図18に示されるように、セッション情報記憶部16は、セッションごとに、サブネットアドレス、セッションID、接続元IP、接続先IP、ステータス、暗号用共通鍵、チャレンジワード、認証要求時刻、及び最終応答時刻等を記憶する。
サブネットアドレスは、当該セッションに係る通信機器20が接続するホワイトネットのアドレスである。すなわち、サブネットアドレスは、当該通信機器20のIPアドレスにおいて、サブネットマスクに対応する部分である。サブネットマスクの範囲には、グローバルルーティングプレフィックス、サブネットID、及びプライベートIDが含まれる。
セッションIDは、セッションごとに割り当てられる識別子である。接続元IPは、当該セッションの接続元の通信機器20のIPアドレスである。接続先IPは、図14において説明したデータ通信においては、接続元IPに係る通信機器20aが、接続先としている通信機器20bのIPアドレスである。ステータスは、当該セッションの状態である。暗号用共通鍵は、当該セッションに係る通信機器20と通信制御装置10との間の通信において使用される暗号用共通鍵である。チャレンジワードは、当該セッションに関して生成されたチャレンジワードである。認証要求時刻は、認証要求が受信された時刻である。最終応答時刻は、当該セッションに係る通信機器20からの要求に対して、最後に応答が返信された時刻である。
ステップS218では、新たに生成されたレコードに対し、サブネットアドレス、セッションID、接続元IP、ステータス、暗号用共通鍵、及びチャレンジワード等が記憶される。サブネットアドレスは、ステップS212において取得された機器証明書(図11)に格納されている、IPアドレス、グローバルルーティングプレフィックスマスク、サブネットIDマスク、及びプライベートIDマスクに基づいて導出可能である。セッションIDには、セッションごとに生成される一意な値が記憶される。接続元IPには、認証要求の送信元IPアドレスが記憶される。ステータスには、「初期化中」が記憶される。暗号用共通鍵には、ステップS214において生成された暗号用共通鍵が記憶される。チャレンジワードには、ステップS215において生成されたチャレンジワードが記憶される。認証要求時刻には、現在時刻が記憶される。
続いて、図16におけるステップS204の詳細について説明する。図19は、認証データ検証処理の処理手順の一例を説明するためのフローチャートである。
ステップS221において、認証データ検証部12は、認証データを含むパケットより送信元IPアドレスを取得する。続いて、認証データ検証部12は、送信元IPアドレスに対応する機器証明書を、証明書リスト記憶部15より取得する(S222)。該当する機器証明書の取得に成功した場合(S223でYes)、認証データに含まれているタイムスタンプに基づいて、認証要求が受信されてから認証データが受信されるまでの経過時間を算出する(S224)。当該経過時間は、ステップS221において取得された送信元IPアドレスを接続元IPとして含む、セッション情報記憶部16レコードの認証要求受信時刻と、タイムスタンプが示す時刻との差分を求めることにより算出可能である。
続いて、認証データ検証部12は、算出された経過時間が所定値未満であるか否かを判定する(S225)。当該経過時間が所定値未満である場合(S225でYes)、認証データ検証部12は、認証データに含まれている電子署名を検証する(S226)。電子署名の検証は、ステップS222において取得された機器証明書に含まれている公開鍵を用いて行われる。すなわち、電子署名を当該公開鍵によって復号した結果と、認証データパケットの送信元IPアドレスに対応付けられてセッション情報記憶部16に記憶されているチャレンジワードのハッシュ値とが一致すれば、電子署名は正しいと判定される。
電子署名が正しい場合(S227でYes)、認証データ検証部12は、セッション情報記憶部16から、認証データパケットの送信元アドレスに対応付けられている暗号用共通鍵を取得する(S228)。続いて、認証データ検証部12は、認証データに含まれているチャレンジワードを当該暗号用共通鍵で復号する(S229)。
続いて、認証データ検証部12は、復号されたチャレンジワードと、認証データパケットの送信元アドレスに対応付けられてセッション情報記憶部16に記憶されているチャレンジワードとを比較することにより、認証データに含まれているチャレンジワードの正当性を検証する(S230)。両者が一致する場合(S230でYes)、認証データ検証部12は、認証データパケットの送信元アドレスに対応付けられてセッション情報記憶部16に記憶されているステータスの値を「接続中」に更新する(S231)。続いて、認証データ検証部12は、ホワイトネットへの接続の許可を示す接続許可応答を、認証データパケットの送信元IPアドレス宛に返信する(S232)。
一方、ステップS222において機器証明書の取得に失敗した場合(S223でNo)、ステップS224において算出された経過時間が所定値以上である場合(S225でNo)、認証データに含まれている電子署名又はチャレンジワードが不正である場合(S227でNo又はS230でNo)、認証データ検証部12は、エラー処理を行う(S233)。エラー処理においては、例えば再認証要求が送信元IPアドレス宛に送信される。
続いて、図16のステップS207の詳細について説明する。図20は、ルーティング処理の処理手順の一例を説明するためのフローチャートである。
ステップS241において、ルーティング部13は、通信データを含むパケットの送信元の通信機器20は認証済みであるか否かを判定する。具体的には、当該パケットの送信元IPアドレスを接続元IPとして含むレコードがセッション情報記憶部16に記憶されており、かつ、当該レコードのステータスの値が「接続中」であれば、当該通信機器20は、認証済みであると判定される。以上の条件が満たされていない場合、当該通信機器20は、認証されていないと判定される。
当該通信機器20が認証されている場合(S241でYes)、ルーティング部13は、通信データを含むパケットから送信元IPアドレス及び宛先IPアドレスを取得する(S242)。続いて、ルーティング部13は、送信元IPアドレスと宛先IPアドレスとは、同一のホワイトネットに属するIPアドレスであるか否かを判定する(S243)。すなわち、送信元IPアドレスのサブネットアドレスと宛先IPアドレスのサブネットアドレスとが一致するか否かが判定される。
送信元IPアドレス及び宛先IPアドレスのそれぞれのサブネットアドレスは、例えば、それぞれのIPアドレスに対応付けられて証明書リスト記憶部15に記憶されている機器証明書(図11)に基づいて特定可能である。すなわち、それぞれのIPアドレスと、それぞれに対応する機器証明書のグローバルルーティングプレフィックスマスク、サブネットIDマスク、及びプライベートIDマスクに基づいて、それぞれのサブネットアドレスは特定可能である。
送信元IPアドレスのサブネットアドレスと宛先IPアドレスのサブネットアドレスとが一致する場合(S243でYes)、ステップS246に進む。
送信元IPアドレスのサブネットアドレスと宛先IPアドレスのサブネットアドレスとが一致しない場合(S243でNo)、ルーティング部13は、ルーティングポリシー記憶部17が記憶するルーティングポリシーを参照する(S244)。なお、宛先IPアドレスに対応する機器証明書が証明書リスト記憶部15に記憶されていない場合も、送信元IPアドレスのサブネットアドレスと宛先IPアドレスのサブネットアドレスとが一致しない場合に該当する。この場合、宛先IPアドレスに係る通信機器20は、いずれのホワイトネットにも属していないことになる。
図21は、ルーティングポリシー記憶部の構成例を示す図である。図21において、ルーティングポリシー記憶部17は、グローバルルーティングプレフィックス、グローバルルーティングプレフィックスマスク、送信元ホワイトネットID、サブネットマスク、許可リスト、及び拒否リスト等の項目を有する。
グローバルルーティングプレフィックス及び送信元ホワイトネットIDによって、送信元のホワイトネットのサブネットアドレスが特定される。また、グローバルルーティングプレフィックス及び許可リストによって、送信元のホワイトネットからのデータ送信が許可されるホワイトネットのサブネットアドレスが特定される。更に、グローバルルーティングプレフィックス及び拒否リストによって、送信元のホワイトネットからのデータ送信が許可されないホワイトネットのサブネットアドレスが特定される。
したがって、ステップS244において、ルーティング部13は、まず、グローバルルーティングプレフィックス及び送信元ホワイトネットIDの組み合わせが、送信元IPアドレスのサブネットアドレスに一致するレコードを特定する。ルーティング部13は、当該レコードの中のグローバルルーティングプレフィックス及び許可リストのいずれかの組み合わせに、宛先IPアドレスのサブネットアドレスが一致すれば、ルーティングは許可されると判定する。一方、当該レコードの中のグローバルルーティングプレフィックス及び拒否リストのいずれかの組み合わせに、宛先IPアドレスのサブネットアドレスが一致する場合、ルーティング部13は、ルーティングは許可されないと判定する。
なお、ルーティングポリシー記憶部17には、許可リスト又は拒否リストの一方のみが記憶されていてもよい。
ルーティングは許可されると判定された場合(S245でYes)、ステップS246に進む。ステップS246において、ルーティング部13は、通信データを含むパケットの送信元IPアドレスに対応付けて記憶されている暗号用共通鍵によって、当該通信データを復号する(S246)。続いて、ルーティング部13は、通信データを含むパケットの宛先IPアドレスに対応付けて記憶されている暗号用共通鍵によって、当該通信データを暗号化する(S247)。続いて、ルーティング部13は、暗号化された通信データを含むパケットを、宛先IPアドレスにルーティング(転送)する(S248)。ルーティングには、例えば、ルーティング情報記憶部18が記憶するルーティング情報が使用される。
図22は、ルーティング情報記憶部の構成例を示す図である。図22において、ルーティング情報記憶部18は、グローバルルーティングプレフィックス、グローバルルーティングプレフィックスマスク、サブネットマスク、ホワイトネットID、及びポート番号等の項目を有する。すなわち、ルーティング情報記憶部18には、グローバルルーティングプレフィックスマスク及びホワイトネットIDの組み合わせによって特定されるサブネットアドレスに対応するポート番号が記憶されている。
したがって、ルーティング部13は、宛先IPアドレスのサブネットアドレスと一致するグローバルルーティングプレフィックスマスク及びホワイトネットIDの組み合わせをルーティング情報記憶部18より検索する。ルーティング部13は、検索された組み合わせに対応するポート番号に係るポートに、通信データを含むパケットを出力する。
なお、宛先IPアドレスのサブネットアドレスは、例えば、宛先IPアドレスを含む機器証明書に基づいて特定可能である。
上述したように、第一の実施の形態によれば、機器証明書に基づいて認証された通信機器20のみが接続可能な仮想的なサブネットであるホワイトネットが形成される。ホワイトネットに接続されている通信機器20は、機器証明書等に基づいて身元が保証されている。したがって、ホワイトネットにおいては、安全性が向上された通信環境を提供することができる。
また、各ホワイトネットのサブネットアドレスは、サブネットIDと、インタフェースIDの一部が含まれる。したがって、サブネットIDの長さの制限を超えた本数のホワイトネットを構築することができる。また、仮に、RFC3513に準拠した、サブネットIDの長さが可変である環境が実現されたとしても、インタフェースIDの一部がサブネットアドレスに利用されることにより、サブネットアドレスを外部から隠蔽することができる。すなわち、サブネットIDが可変である場合であっても、サブネットIDの範囲は、ルータ等の各ネットワーク機器に対して公開される必要性が高いと考えられる。したがって、仮に、サブネットIDのみによってホワイトネットを識別した場合、各ホワイトネットのサブネットアドレスは、パケットの内容を解析することによって容易に把握されてしまう。一方、インタフェースIDの一部であるプライベートIDの長さは、ルータ等の各ネットワーク機器に対して公開される必要性は低い。したがって、サブネットIDとは別にプライベートIDが設けられることにより、IPアドレスのいずれの部分がホワイトネットのサブネットアドレスであるかを特定するのは困難となる。その結果、ホワイトネットへの不正アクセスの困難性を高めることができる。
次に、第二の実施の形態について説明する。第二の実施の形態では、第一の実施の形態において説明したホワイトネットに接続された通信機器20による、任意のサーバ装置へのアクセスについて説明する。サーバ装置とは、Webサーバ等に代表されるような、ネットワークを介して何らかのサービスを提供するコンピュータである。なお、第二の実施の形態は、第一の実施の形態と排他的な関係に有るものではなく、第一の実施の形態と同時に実施可能である。したがって、第二の実施の形態において第一の実施の形態と共通する部分については説明を省略する。
一般的に、多数のクライアントからの要求が集中するサービスに関しては、DNS(Domain Name System)ラウンドロビン等の方法により、複数のクライアントからの要求を、複数サーバ装置に負荷分散する仕組みが採用されている。
他方において、クライアントが不正なサーバ装置にアクセスすることを防ぐため、SSL(Secure Socket Layer)又はTLS(Transport Layer Security)によるサーバ装置へのアクセス時には、サーバ認証が行われる。サーバ認証は、サーバ装置に発行されている公開鍵証明書であるサーバ証明書をクライアントに提示し、クライアントが当該サーバ証明書等を利用して、サーバ装置の正当性を確認することをいう。
負荷分散が行われる場合、サーバ装置の運用者は、複数存在する各サーバ装置についてサーバ証明書の発行を受ける必要がある。また、クライアントは、複数存在する各サーバ装置についてサーバ認証を行う必要がある。そうすると、サーバ装置の台数の増加に伴い、運用が複雑化してしまう可能性がある。
このような課題を解決するために、従来、ワイルドカード証明書というものが提供されている。ワイルドカード証明書を利用すれば、一つの証明書を、同一ドメインに属する複数のサーバ装置のサーバ証明書として利用することができる。
しかしながら、ワイルドカード証明書を利用した場合、クライアントに対しては、単一のサービスに関して、複数のサーバ名(FQDN(Fully Qualified Domain Name):完全修飾ドメイン名)によってサービスが提供されるように見える。例えば、ユーザが、Webブラウザを利用して或るWebサイトにアクセスした場合、ユーザから見れば、単一のサイト内であるにも拘わらず、Webブラウザに表示されるFDQNが切り替わってしまうといった状況が発生する。これは、負荷分散等によって、クライアントのアクセス先のサーバ装置が切り替わることに起因する。
このような状況は、昨今のフィシング等の被害に鑑みれば、ユーザに対して、不正なWebサイトに誘導されてしまったのではないかという不安を与えてしまう可能性が有る。したがって、ユーザ心理等を考慮すれば、一つのサービスに対するアクセスに対して、単一のサーバ名によるサービスの提供が望ましい。
第二の実施の形態では、ホワイトネットに接続された通信機器20によるサーバ装置へのアクセに関して、上記のような課題を解決する例について説明する。
図23は、第二の実施の形態におけるネットワークシステムの構成例を示す図である。図23中、図1と同一部分には同一符号を付し、その説明は省略する。
図23において、通信制御装置10には、サブネットNsa〜Nsbの4つのサブネットが接続されている。なお、各サブネットは、或るホワイトネットの所有者である企業内の物理的なネットワークである。例えば、サブネットNsa、Nsb、Nsc、及びNsdは、企業Aにおいて物理的に施設されているサブネットである。以下、各サブネットを区別しない場合、「サブネットNs」という。
なお、サブネットNsの単位は、第一の実施の形態のホワイトネットと同様である。すなわち、第二の実施の形態において、各サブネットNsは、サブネットIDのみならず、サブネットIDとプライベートIDとの組み合わせ(すなわち、ホワイトネットID)を含むサブネットアドレスによって区別される単位である。
各サブネットには、一以上のサーバ装置40が物理的に接続されている。また、複数のサーバ装置40が接続されているサブネットには、負荷分散装置50が接続されている。図23では、サブネットの代表的な形態の一例が示されている。
例えば、サブネットNsaには、負荷分散装置50a、サーバ装置40a1、及びサーバ装置40a2が含まれる。サブネットNsaにおいては、負荷分散装置50aがサブネットNsaの代表アドレスを有し、各サーバ装置40aは、負荷分散装置50aを起点とし、それぞれに独立及び分離した内部ネットワークによって、負荷分散装置50aに接続されている。すなわち、二つの内部ネットワークがサブネットNsaを構成するともいえる。サーバ装置40a1及びa2のそれぞれのIPアドレスは、負荷分散装置50aにより付与及び管理される。
サブネットNsaでは、サーバ装置40aごとに内部ネットワークが構築されるが、各サーバ装置40aのサブネットアドレスは共通である。負荷分散装置50aは、代表アドレス宛の要求をいずれかのサーバ装置40aに振り分け、当該サーバ装置40aが接続されている内部ネットワークへ、当該要求のルーティングを行う。
サブネットNsbには、負荷分散装置50b、サーバ装置40b1、及びサーバ装置40b2が含まれる。サブネットNsbにおいては、負荷分散装置50bがサブネットNsbの代表アドレスを有し、各サーバ装置40bは、負荷分散装置50aを起点する単一の内部ネットワークを介して負荷分散装置50bに接続されている。サーバ装置40b1及びb2のそれぞれのIPアドレスは、負荷分散装置50bにより付与及び管理される。負荷分散装置50bは、代表アドレス宛の要求をいずれかのサーバ装置40bに振り分け、当該サーバ装置40bのIPアドレス宛へ、当該要求を転送する。
サブネットNscには、負荷分散装置50c、サーバ装置40c1、及びサーバ装置40c2が含まれる。サブネットNscにおいては、負荷分散装置50cがサブネットNscの代表アドレスを有し、各サーバ装置40cは、負荷分散装置50cからの内部ネットワークではなく、負荷分散装置50cが外部と接続されるネットワークに接続される。サーバ装置40c1及びc2のそれぞれのIPアドレスは、負荷分散装置50cにより付与及び管理される。負荷分散装置50cは、いずれかのサーバ装置40c宛の要求の受信を代行し、当該要求を当該サーバ装置40cに転送する。
サブネットNsdは、サーバ装置40d1を含む。サーバ装置40d1は、通信機器20からの要求を直接的に処理する。すなわち、サブネットNsdにおいて、負荷分散は行われない。
以上のようなネットワーク構成において、第二の実施の形態では、サーバ装置40ごとではなく、サブネットNsごとにサーバ証明書と同様の役割を担う公開鍵証明書が発行される。以下、当該公開鍵証明書を、「サブネット証明書」という。一つのサブネット証明書は、当該サブネット証明書に属する全てのサーバ装置40に導入される。すなわち、同一のサブネットNsに属するサーバ装置40には、同一又は共通のサブネット証明書が導入される。
通信機器20がサーバ装置40にアクセスする際は、サブネット証明書がサーバ証明書の代わりに利用されて、サーバ認証が実行される。
なお、図23のサブネットNsdには、更に、証明書取得装置60が含まれている。証明書取得装置60は、証明書発行装置30より各サブネットNsのサブネット証明書の発行を受けるための機能が実装されたコンピュータである。証明書取得装置60は、必ずしもいずれかのサブネットNsに接続されていなくてもよいが、図23では、便宜上、サブネットNsdに接続された例が示されている。
図24は、第二の実施の形態における各装置の機能構成例を示す図である。図24中、図3と同一部分には同一符号を付し、その説明は省略する。
図24において、通信機器20は、更に、サーバ認証部23を有する。サーバ認証部23は、サーバ認証のための処理を実行する。
サーバ装置40は、サーバ通信部41及びサブネット証明書記憶部42等を有する。サーバ通信部41は、通信機器20等のクライアントとの通信を制御する。サブネット証明書記憶部42は、サブネット証明書を記憶する。なお、サーバ通信部41は、サーバ装置40にインストールされたプログラムがサーバ装置40のCPUに実行させる処理により実現される。サブネット証明書記憶部42は、例えば、サーバ装置40の補助記憶装置等を用いて実現可能である。
続いて、各サブネットNsに関してサブネット証明書の発行を受けるための準備作業について説明する。
まず、サブネットの所有者である企業Aは、サブネットの数や、各サブネットに接続されるサーバ装置40の台数等を考慮して、IPアドレスの利用範囲(割り当て範囲)を、例えば、/64〜/80の範囲で決定する。/64は、上位64ビットまでが決定された値が企業Aに対して割り当てられることを意味する。したがって、この場合、企業Aは、下位64ビットを自由に利用することができる。また、/80は、先頭から80ビットまでが決定された値が企業Aに対して割り当てられることを意味する。したがって、この場合、企業Aは、下位48ビットを自由に利用することができる。
続いて、企業Aは、必要なサブネットの本数を決定し、サブネットマスクを決定する。各サブネットNsのアドレス体系は、第一の実施の形態と同様に、図9に示したものに従う。すなわち、サブネットマスクとは、IPアドレスの先頭から、プライベートIDの末尾(ホワイトネットIDの末尾)までのビット長をいう。サブネットマスクの決定は、インタフェースIDの上位の何ビットをプライベートIDとするか(ホワイトネットIDに含めるか)の決定に相当する。
割り当て範囲が/64である場合、サブネットマスクが/80であれば、ホワイトネットIDのビット長は、サブネットIDの16ビット+プライベートIDの16ビット(インタフェースIDの上位16ビット)の32ビットとなる。
上記の決定事項のうち、割り当て範囲は、例えば、企業AからISPに対して申請される。ISPは、当該申請を受けると、申請された割り当て範囲に対応したIPアドレス群を用意する。用意されたIPアドレス群は、例えば、企業Aに対する加入者IDに対応付けられて管理される。通常、グローバルルーティングプレフィックスの値が、企業Aに割り当てられる。
続いて、企業Aは、割り当てられたIPアドレス群(グローバルルーティングプレフィックス)及びサブネットマスク等に基づくサブネットアドレスが割り当てられたサブネットNsを構築する。
続いて、証明書取得装置60を利用して、サブネット証明書の取得処理が行われる。図25は、サブネット証明書の取得処理の処理手順の一例を説明するためのフローチャートである。
ステップS301において、証明書取得装置60は、所有者情報の入力をユーザより受け付ける。所有者情報には、サブネットNsの所有者の組織名や所在地等が含まれる。続いて、証明書取得装置60は、サブネット証明書の取得対象のサブネットNsに関する、サブネットアドレス、グローバルルーティングプレフィックスマスク、サブネットIDマスク、及びプライベートIDマスク等の入力をユーザより受け付ける(S302)。
続いて、証明書取得装置60は、公開鍵及び秘密鍵のペアを生成する(S303)。続いて、証明書取得装置60は、証明書署名要求(CSR(Certificate Signing Request))を生成する(S304)。CSRには、ステップS301及びS302において入力された情報と、ステップS303において生成された公開鍵とが含まれる。
図26は、CSRの構成例を示す図である。図26は、一般的なCSRの形式に準拠したものであるため、基本的なフィールドの説明は省略する。なお、公開鍵は、PubulicKeyフィールドに格納される。
extensionsフィールドは、拡張領域である。本実施の形態では、拡張型(exInd)として、サブネットアドレス(IPv6 Global Network Sub−Net Address)、グローバルルーティングプレフィックスマスク(Global Routing Prefix Mask)、サブネットIDマスク(Sub−Net ID Mask)、及びプライベートIDマスク(Private ID Mask)等が含まれる。これらの拡張型には、ステップS302において入力された値が格納される。
続いて、証明書取得装置60は、生成されたCSRを証明書発行装置30に送信する(S305)。
証明書発行装置30は、CSRの受信に応じ、サブネット証明書を生成し、当該サブネット証明書を証明書取得装置60に返信する。
証明書取得装置60は、サブネット証明書を受信すると(S306でYes)、例えば、当該サブネット証明書に対応するサブネットNsに属する各サーバ装置40に、秘密鍵と、当該サブネット証明書とを配信(エクスポート)する(S307)。
図27は、サブネット証明書の構成例を示す図である。図27に示されるサブネット証明書は、X509 v3フォーマットに準拠したものであるため、基本的なフィールドの説明は省略する。なお、図26のCSRに含まれていた公開鍵は、subjectPublicKeyInfoフィールドに格納される。
また、拡張領域であるextensionsフィールドの内容は、図26のCSRのextensionsフィールドの内容と同じである。
なお、秘密鍵及びサブネット証明書の配信を受けた各サーバ装置40は、配信された秘密鍵及びサブネット証明書を、当該サーバ装置40のサブネット証明書記憶部42に安全に保存する。すなわち、当該各サーバ装置40に、秘密鍵及びサブネット証明書が導入される。
なお、サブネット証明書の取得処理は、例えば、負荷分散装置50やいずれかのサーバ装置40等、証明書取得装置60以外のコンピュータによって実行されてもよい。
秘密鍵及びサブネット証明書が導入されたサーバ装置40は、SSLハンドシェイク等の過程で行われるサーバ認証において、自らの正当性を証明することができる。
図28は、SSLハンドシェイクの処理手順の一例を説明するためのシーケンス図である。図28における通信機器20aは、サーバ装置40a1が属するサブネットNsaへの接続が許可されるホワイトネットに収容済みであるとする。サブネットNsaへの接続制限は、例えば、通信制御装置10のルーティングポリシーによって実現することができる。または、サブネットNsaのサブネットアドレスは、通信機器20aが収容されたホワイトネットのサブネットアドレスに一致していてもよい。
なお、図28において、通信機器20aとサーバ装置40a1との間の通信には、通信制御装置10及び負荷分散装置50aが介在するが、図28においては便宜上省略されている。
ステップS401において、通信機器20aのサーバ認証部23は、ClientHelloメッセージをサーバ装置40a1宛のIPアドレスに送信することにより、暗号通信において使用する暗号方式等をサーバ装置40a1に提案する。なお、通信機器20aから見た場合、厳密には、サーバ装置40a1宛のIPアドレスは、負荷分散装置50a宛のIPアドレスということになる。通信機器20aが、サーバ装置40a1及びa2のいずれと通信するかは、負荷分散装置50aによる負荷分散機能によって動的に決定されるからである。
サーバ装置40a1のサーバ通信部41は、提案された暗号方式の中から一つの暗号方式を選択し、SeverHelloメッセージによって選択結果を返信する(S402)。その結果、暗号方式が決定される。
続いて、サーバ装置40a1のサーバ通信部41は、Certificateメッセージによって、サブネット証明書記憶部42に記憶されているサブネット証明書を通信機器20aに送信する(S403)。サブネット証明書の送信が完了すると、サーバ通信部41は、ServerHelloDoneメッセージを通信機器20aに送信し、サブネット証明書の送信の完了を通信機器20aに通知する(S404)。
続いて、通信機器20aのサーバ認証部23は、受信されたサブネット証明書の検証処理を実行する(S405)。当該検証処理の詳細については後述される。サブネット証明書の正当性が確認された場合、ステップS406以降が実行される。
ステップS406において、サーバ認証部23は、ClientKeyExchangeメッセージをサーバ装置40a1に送信する(S405)。ClientKeyExchangeメッセージには、ステップS403において受信されたサブネット証明書に格納されている、サーバ装置40a1の公開鍵によって暗号化されたプレマスタ・シークレットが含まれている。プレマスタ・シークレットは、図28に示される処理の実行後の暗号通信に使用される共通鍵の基となるデータである。
サーバ装置40a1のサーバ通信部41は、ClientKeyExchangeメッセージを受信すると、当該メッセージに含まれている、暗号化されたプレマスタ・シークレットを、サブネット証明書記憶部42に記憶されている秘密鍵によって復号する。その結果、通信機器20aとサーバ装置40との間で、プレマスタ・シークレットが共有される。
続いて、通信機器20aのサーバ認証部23は、これまでに決定されている暗号方式の採用を宣言するChangeCipherSpecメッセージをサーバ装置40a1に送信する(S408)。続いて、サーバ認証部23は、Finishedメッセージをサーバ装置40a1に送信し、SSLハンドシェイクの終了をサーバ装置40a1に通知する(S409)。
Finishedメッセージの受信に応じ、サーバ装置40a1のサーバ通信部41は、通信機器20aと同様に、ChangeCipherSpecメッセージ及びFinishedメッセージを通信機器20aに送信する。
その後、通信機器20aの通信制御部21及びサーバ装置40a1のサーバ通信部41のそれぞれは、共有されたプレマスタ・シークレットを使用して、暗号用の共通鍵を生成する。通信機器20aの通信制御部21及びサーバ装置40a1は、当該共通鍵を使用して暗号通信を実行する。
なお、第一の実施の形態において説明したように、通信機器20aと通信制御装置10との間においても暗号用共通鍵を用いてホワイトネットに関する暗号通信が行われる。当該暗号通信は、通信機器20aとサーバ装置40a1との間の暗号通信の外側において実行されるものである。すなわち、通信機器20aの通信制御部21は、サーバ装置40a1との暗号通信用の共通鍵によって通信データを暗号化し、更に、その暗号結果を通信制御装置10との暗号用共通鍵によって暗号化する。通信制御部21は、その暗号結果を含むパケットを送信する。
続いて、ステップS405の詳細について説明する。図29は、サブネット証明書に基づくサーバ認証の処理手順の一例を説明するためのフローチャートである。
ステップS421において、サーバ認証部23は、受信されたサブネット証明書自体の正当性を検証する。サブネット証明書自体の検証方法は、一般的な公開鍵証明書の検証方法と同様でよい。すなわち、サブネット証明書に含まれている、認証局の署名等に基づいて検証が行われる。
サブネット証明書が正しい場合(S422でYes)、サーバ認証部23は、サブネット証明書(図27)より、サブネットアドレス、グローバルルーティングプレフィックスマスク、サブネットIDマスク、及びプライベートIDマスクを取得する(S423)。
続いて、サーバ認証部23は、例えば、これまでにサーバ装置40a1から受信されているパケットから送信元IPアドレスを取得する(S424)。これまでにサーバ装置40a1から受信されているパケットとは、例えば、SeverHelloDoneメッセージに係るパケット等である。
続いて、サーバ認証部23は、サブネット証明書より取得されたグローバルルーティングプレフィックスマスク、サブネットIDマスク、及びプライベートIDマスクに基づいて、サブネットマスクを生成する。
例えば、グローバルルーティングプレフィックスマスク、サブネットIDマスク、及びプライベートIDマスクの値が、図27に示されるように、/48、/16、/16である場合、サブネットマスクの値は、以下の通りとなる。
FFFF:FFFF:FFFF:FFFF:FFFF:0000:0000:0000
すなわち、サブネットマスクは、/48+/16+/16=/80となる。
続いて、サーバ認証部23は、ステップS424において取得された送信元IPアドレスと、ステップS425において生成されたサブネットマスクとの論理積を算出することにより、送信元IPアドレスのサブネットアドレスを取得する(S426)。
続いて、サーバ認証部23は、ステップS426において取得されたサブネットアドレスと、ステップS423においてサブネット証明書より取得されたサブネットアドレスとを比較する(S427)。両者が一致する場合(S428でYes)、サーバ認証部23は、サーバ装置40a1は正しいと判定する。両者が一致しない場合(S428でNo)、又はサブネット証明書が不正である場合(S422でNo)、サーバ認証部23は、エラー処理を実行する(S429)。エラー処理としては、例えば、図28の処理手順が最初から再実行される。
続いて、SSLハンドシェイク後の、通信機器20aとサーバ装置40a1との間の通信処理について説明する。
図30は、通信機器とサーバ装置との間の通信処理の処理手順の一例を説明するためのシーケンス図である。図30では、通信機器20aとサーバ装置40a1との間で通信が行われる例を説明する。通信機器20aは、サーバ装置40a1が属するサブネットNsaへの接続が許可されるホワイトネットに収容済みであるとする。
ステップS501において、通信機器20aの通信制御部21は、サーバ装置40a1宛への要求データを、SSL用の共通鍵(以下、「SSL用鍵」という。)によって暗号化する。SSL用鍵は、図28の処理に基づいて、サーバ装置40a1との間で共有されている暗号鍵(共通鍵)である。続いて、通信制御部21は、暗号化された要求データを、更に、暗号鍵aによって暗号化する。暗号鍵aは、図13のステップS112において通信制御装置10より受信した暗号用共通鍵である。続いて、通信制御部21は、暗号化された要求データを含むパケット、サーバ装置40a1(負荷分散装置50a)のIPアドレス宛に送信する(S503)。
当該パケットは、ネットワークN1を介して通信制御装置10によって受信される。通信制御装置10のルーティング部13は、通信機器20aからのパケットに含まれる要求データを、暗号鍵aによって復号する(S503)。続いて、ルーティング部13は、復号された要求データを、ネットワークN1を介してサーバ装置40a1宛(負荷分散装置50a宛)に転送する(S505)。なお、暗号鍵aによって復号された状態においても、要求データはSSL用鍵によって暗号化されている。したがって、要求データは安全に転送される。
なお、ルーティングポリシーに従った、通信機器20aからサーバ装置40a1へのルーティング(要求データの転送)の可否の判定は、図20において説明した通り実行される。すなわち、要求データの受信に応じた詳細な処理は、図20において説明した通りである。但し、通信制御装置10は、サーバ装置40a1に対応する暗号用共通鍵は保持していない。サーバ装置40a1は、ホワイトネットの所有者が実際に所有する物理的なネットワークに物理的に接続されているコンピュータであり、概念的にはホワイトネットの内側に存在する。したがって、ホワイトネットの所有者にとっては、サーバ装置40a1の身元は確かであり、サーバ装置40a1に関してホワイトネットへの接続のための認証を行う必要性は低いからである。但し、サーバ装置40a1等、図23に示される各サブネットNsに接続されている各サーバ装置40に関しても、ホワイトネットへの接続のための認証処理が行われてもよい。この場合、通信制御装置10のルーティング部13は、サーバ装置40a1に対応する暗号用共通鍵によって、要求データを暗号化してもよい。
サーバ装置40a1のサーバ通信部41は、要求データを受信すると、当該要求データをSSL用鍵によって復号する(S506)。続いて、サーバ装置40a1は、例えば、復号された要求データが示す要求に応じた処理を実行する(S507)。続いて、サーバ通信部41は、例えば、処理結果を含む応答データを、SSL用鍵によって暗号化する(S508)。続いて、サーバ通信部41は、暗号化された応答データを含むパケットを、通信機器20aのIPアドレス宛に返信する(S509)。
当該パケットは、通信制御装置10によって受信される。通信制御装置10のルーティング部13は、当該パケットの宛先IPアドレスに対応する、通信機器20aに対する暗号鍵aによって、当該応答データを暗号化する(S510)。続いて、ルーティング部13は、暗号鍵aによって暗号化された応答データを含むパケットを、ネットワークN1を介して通信機器20a宛に転送する(S511)。
通信機器20aの通信制御部21は、応答データを含むパケットを受信すると、当該応答データを暗号鍵aによって復号する(S512)。通信制御部21は、更に、復号された応答データを、SSL用鍵で復号する(S513)通信機器20aは、例えば、復号された応答データを利用した処理を実行する。
上述したように、第二の実施の形態によれば、サブネットNsごとにサーバ証明書が発行される。したがって、同一のサブネットNsに属する複数のサーバ装置40のそれぞれごとにサーバ証明書の発行を受ける必要性を低減させることができる。
また、負荷分散装置50によって、要求が振り分けられるサーバ装置40が途中で変化したとしても、各サーバ装置40は共通のサーバ証明書を利用しているため、クライアントである通信機器20に提示されるサーバ名が変化する可能性は低い。したがって、サーバ名が変化することによってユーザが不安を感じる可能性を低減させることができる。
なお、第二の実施の形態は、ホワイトネットとは無関係に実施されてもよい。すなわち、ホワイトネットに収容されていないクライアントに対してサービスを提供するサーバ装置に関して、サブネット証明書が発行されてもよい。
また、同一のハードウェア上において起動される複数の仮想マシンに関して、共通のサブネット証明書が発行されてもよい。
なお、上記各実施の形態において、プライベートIDマスクの長さが0であってもよい。この場合、サブネットIDによって各ホワイトネット又は各サブネットNsが識別されることになる。
なお、上記各実施の形態において、データ検証部12は、検証部の一例である。ルーティング部13は、転送部の一例である。サーバ認証部23は、共有部の一例である。
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
以上の説明に関し、更に以下の項を開示する。
(付記1)
通信機器から送信される所定のパケットに含まれている電子署名の正当性を、前記所定のパケットの送信元IPアドレスに関して発行されている公開鍵証明書によって検証し、
前記電子署名の正当性が検証された通信機器から送信されるパケットの宛先IPアドレスのサブネットアドレスが、当該パケットの送信元IPアドレスに関して発行されている前記公開鍵証明書に含まれている情報に基づいて特定されるサブネットアドレスと一致する場合に、前記宛先IPアドレス宛に当該パケットを転送する処理をコンピュータが実行する通信制御方法。
(付記2)
前記サブネットアドレスは、IPv6のアドレス体系におけるサブネットごとの識別領域とネットワークインタフェースごとの識別領域の一部とを含む付記1記載の通信制御方法。
(付記3)
前記電子署名の正当性が検証された第一の通信機器から送信されるパケットの宛先IPアドレスのサブネットアドレスが、当該パケットの送信元IPアドレスに関して発行されている前記公開鍵証明書に含まれている情報に基づいて特定されるサブネットアドレスと一致する場合に、当該パケットに含まれているデータを、前記第一の通信機器との間で共有されている共通鍵によって復号し、
当該パケットの宛先IPアドレスに係る第二の通信機器との間で共有されている共通鍵によって前記データを暗号化し、
暗号化された前記データを含むパケットを当該宛先IPアドレス宛に転送する処理を前記コンピュータが実行する付記1又は2記載の通信制御方法。
(付記4)
通信機器からの要求に応じた処理を実行するサーバ装置から送信されるサブネットごとの公開鍵証明書に含まれているサブネットアドレスと、前記サーバ装置からのパケットの送信元アドレスのサブネットアドレスとを比較し、
比較された二つのサブネットアドレスが一致する場合に、前記サーバ装置との間で共通鍵を共有し、
前記共通鍵を用いた暗号通信によって前記サーバ装置に対する要求を送信する処理を通信機器が実行する通信制御方法。
(付記5)
前記サブネットアドレスは、IPv6のアドレス体系におけるサブネットごとの識別領域とネットワークインタフェースごとの識別領域の一部とを含む付記4記載の通信制御方法。
(付記6)
通信機器から送信される所定のパケットに含まれている電子署名の正当性を、前記所定のパケットの送信元IPアドレスに関して発行されている公開鍵証明書によって検証する検証部と、
前記電子署名の正当性が検証された通信機器から送信されるパケットの宛先IPアドレスのサブネットアドレスが、当該第パケットの送信元IPアドレスに関して発行されている前記公開鍵証明書に含まれている情報に基づいて特定されるサブネットアドレスと一致する場合に、前記宛先IPアドレス宛に当該パケットを転送する転送部とを有する通信制御装置。
(付記7)
前記サブネットアドレスは、IPv6のアドレス体系におけるサブネットごとの識別領域とネットワークインタフェースごとの識別領域の一部とを含む付記6記載の通信制御装置。
(付記8)
前記転送部は、
前記電子署名の正当性が検証された第一の通信機器から送信されるパケットの宛先IPアドレスのサブネットアドレスが、当該パケットの送信元IPアドレスに関して発行されている前記公開鍵証明書に含まれている情報に基づいて特定されるサブネットアドレスと一致する場合に、当該パケットに含まれているデータを、前記第一の通信機器との間で共有されている共通鍵によって復号し、
当該パケットの宛先IPアドレスに係る第二の通信機器との間で共有されている共通鍵によって前記データを暗号化し、
暗号化された前記データを含むパケットを当該宛先IPアドレス宛に転送する付記6又は7記載の通信制御装置。
(付記9)
通信機器からの要求に応じた処理を実行するサーバ装置から送信されるサブネットごとの公開鍵証明書に含まれているサブネットアドレスと、前記サーバ装置からのパケットの送信元アドレスのサブネットアドレスとを比較し、比較された二つのサブネットアドレスが一致する場合に、前記サーバ装置との間で共通鍵を共有する共有部と、
前記共通鍵を用いた暗号通信によって前記サーバ装置に対する要求を送信する通信制御部とを有する通信機器。
(付記10)
前記サブネットアドレスは、IPv6のアドレス体系におけるサブネットごとの識別領域とネットワークインタフェースごとの識別領域の一部とを含む付記9記載の通信機器。
(付記11)
通信機器から送信される所定のパケットに含まれている電子署名の正当性を、前記所定のパケットの送信元IPアドレスに関して発行されている公開鍵証明書によって検証し、
前記電子署名の正当性が検証された通信機器から送信されるパケットの宛先IPアドレスのサブネットアドレスが、当該第パケットの送信元IPアドレスに関して発行されている前記公開鍵証明書に含まれている情報に基づいて特定されるサブネットアドレスと一致する場合に、前記宛先IPアドレス宛に当該パケットを転送する処理をコンピュータに実行させるプログラム。
(付記12)
前記サブネットアドレスは、IPv6のアドレス体系におけるサブネットごとの識別領域とネットワークインタフェースごとの識別領域の一部とを含む付記11記載のプログラム。
(付記13)
前記電子署名の正当性が検証された第一の通信機器から送信されるパケットの宛先IPアドレスのサブネットアドレスが、当該パケットの送信元IPアドレスに関して発行されている前記公開鍵証明書に含まれている情報に基づいて特定されるサブネットアドレスと一致する場合に、当該パケットに含まれているデータを、前記第一の通信機器との間で共有されている共通鍵によって復号し、
当該パケットの宛先IPアドレスに係る第二の通信機器との間で共有されている共通鍵によって前記データを暗号化し、
暗号化された前記データを含むパケットを当該宛先IPアドレス宛に転送する処理を前記コンピュータが実行させる付記11又は12記載のプログラム。
(付記14)
通信機器からの要求に応じた処理を実行するサーバ装置から送信されるサブネットごとの公開鍵証明書に含まれているサブネットアドレスと、前記サーバ装置からのパケットの送信元アドレスのサブネットアドレスとを比較し、
比較された二つのサブネットアドレスが一致する場合に、前記サーバ装置との間で共通鍵を共有し、
前記共通鍵を用いた暗号通信によって前記サーバ装置に対する要求を送信する処理を通信機器に実行させるプログラム。
(付記15)
前記サブネットアドレスは、IPv6のアドレス体系におけるサブネットごとの識別領域とネットワークインタフェースごとの識別領域の一部とを含む付記14記載のプログラム。