説明

ネットワークノード制御方法

【課題】本発明は、エンドユーザがネットワークノードを制御できる一方で正常なネットワーク運用を維持できることを目的として、エンドユーザに与える制御権限を明確化し、それを保証できるようにすることを目的とする。
【解決手段】本発明は、エンドユーザに自身宛てのトラヒックの制御に限定し、それ以外を拒否することを保証するためにIPアドレス認証を行う。IPアドレス認証は、エンドユーザは自身のIPアドレスの正当な所有者であり、他のユーザのIPアドレスの所有者であると成りすましていないことを証明する仕組みである。エンドユーザはIPアドレス認証を経て、ネットワークノードに自身宛てトラヒックの制御内容の設定を実施する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、IP(Internet Protocol)ネットワークにおけるネットワークノード制御を目的とした方法に関する。
【背景技術】
【0002】
遠隔から、従来装置よりも自由度の高い制御が可能なノードとして、Openflowスイッチが提案されている(例えば、非特許文献1参照。)。Openflowスイッチは、フォワーディングテーブルにアクセス可能なインタフェースを持つ。このインタフェースを通して従来のルーティングプロトコルやスイッチング方式に限らないフォワーディングルールを設定することが可能である。
【0003】
Openflowスイッチはそれを制御するコントローラが存在する。1台のコントローラは複数のOpenflowスイッチを配下に制御することもできる。コントローラはネットワーク管理者によって設置、管理されることになり、不特定多数のエンドユーザが利用できることは想定されていないため、不特定多数のエンドユーザを対象とする認証の仕組みは含まれていない。
【0004】
IPアドレスの正当な所有者を認証する技術として、ルーティングの機構を利用するものと、IPアドレスそのものに認証情報を持たせるものが提案されている。これらの方式は、公開鍵の正当な所有者を認証するものではなく、IPアドレスの正当な所有者を認証する。
【0005】
ルーティングの機構を利用するReturn Routability(RR)は、IPルーティングの信頼性を前提としている。IPパケットの宛先に指定されたIPアドレスへ、IPルーティングは信頼度高く配送することができる(例えば、非特許文献2参照。)。そのため、あるIPパケットを受信したエンドホストは、そのIPパケットの宛先に指定されたIPアドレスの所有者であると言える。あるIPアドレスの所有者であることを確認する場合に、そのIPアドレスを宛先とするIPパケットを送信し、そのIPアドレスの所有者からIPパケットの受信を確認すればよい。
【0006】
本発明はこのRRを改良している。既存のRRは、パケットの盗聴攻撃に脆弱であり、RRの認証手続きに係るパケットを盗聴した攻撃者は成りすましを行うことができてしまうという問題がある。本発明は、万一認証手続きにかかるパケットすべてを盗聴されたとしても成りすまし攻撃を防ぐことができる。
【0007】
IPアドレスそのものに認証情報を持たせる方式として、Cryptographically Generated Addresses(CGA)が提案されている(例えば、非特許文献3参照。)。これは公開鍵から生成したアドレスを用いる方式である。そのため、公開鍵方式の枠組みでIPアドレスの所有者を認証できる。しかし、CGAはIPv6にのみ利用できる方式であり、IPv4への適用はできない。
【先行技術文献】
【非特許文献】
【0008】
【非特許文献1】Openflow switch.http://www。openflowswitch.org/
【非特許文献2】RFC 3775.Mobility Support in IPv6
【非特許文献3】RFC 3972.Cryptographically Generated Addresses(CGA)
【非特許文献4】RFC 2104.HMAC:Keyed−Hashing for Message Authentication
【発明の概要】
【発明が解決しようとする課題】
【0009】
従来のコンピュータネットワークでは,ネットワークノードの制御は権限をもったネットワーク管理者に限られ、ネットワークを利用するエンドユーザはネットワークノードを制御できない。確かに、安易にエンドユーザにネットワークノード制御の権限を与えてしまっては、正常なネットワーク運用が行えないことが予想される。
【0010】
しかし、エンドユーザがネットワークノードの制御を主導的に行うことができれば、エンドユーザの要求に合わせたトラヒック制御が実現でき、エンドユーザにもネットワークノードの制御の権限を許可することは有益である。
【0011】
そこで、エンドユーザがネットワークノードを制御できる一方で正常なネットワーク運用を維持できることを目的として、エンドユーザに与える制御権限を明確化し、それを保証できるようにすることが課題である。
【課題を解決するための手段】
【0012】
本発明では、エンドユーザを現在の本発明は、エンドユーザを現在のインターネットにおける不特定多数のエンドユーザと同等と捉え、事前にネットワークノードの制御を許可された管理者とは異なることを前提とする。
【0013】
エンドユーザに与える制御権限は、他のユーザへ悪影響を与えない範囲で許可を与える。具体的には、エンドユーザには、そのエンドユーザ宛てのトラヒックに対する制御権限にのみ限定して許可を与える。これにより他ユーザ宛てのトラヒックに影響を与えるような不正制御または誤制御を防ぐ。したがって、エンドユーザは自身のアドレスを宛先とするトラヒックに対する制御内容をネットワークノードに設定することとなる。
【0014】
本発明は、エンドユーザに自身宛てのトラヒックの制御に限定し、それ以外を拒否することを保証するためにIPアドレス認証を行う。IPアドレス認証は、エンドユーザは自身のIPアドレスの正当な所有者であり、他のユーザのIPアドレスの所有者であると成りすましていないことを証明する仕組みである。エンドユーザはIPアドレス認証を経て、ネットワークノードに自身宛てトラヒックの制御内容の設定を実施する。
【0015】
具体的には、本願発明のネットワークノード制御方法は、ホストのアドレスに詐称がないことを認証する認証手順と、前記認証手順の認証結果にもとづいて、前記ホストへ転送されるトラヒックに対する前記ネットワークノードの設定を行う設定手順と、を有する。
【0016】
本願発明のネットワークノード制御方法では、前記認証手順において、ホストが、ホストのID及び素数pを、コントローラへ送信するRQメッセージ送信手順と、コントローラが、コントローラのみが持つ秘密情報Kを用いて値y及び値Kを算出し、前記値K及びホストのIPアドレスIPを認証補助サーバに送信する第1のRRQメッセージ送信手順と、認証補助サーバが、認証補助サーバのみが持つ秘密情報K及び前記IPアドレスIPを用いて値zを算出するとともに前記値K及び前記値zを用いて値Kを算出し、前記値Kをコントローラに送信する第1のRRSメッセージ送信手順と、コントローラが、認証補助サーバのIPアドレスIP及び前記値Kをホストに送信するRSメッセージ送信手順と、ホストが、ホストのみが持つ秘密情報xを用いて値Tを算出して前記IPアドレスIP宛に送信する第2のRRQメッセージ送信手順と、認証補助サーバが、前記値T及び前記値zを用いて値Tを算出してホストに送信する第2のRRSメッセージ送信手順と、ホストが、前記値K及び前記値zを用いて算出される鍵K並びに前記IDを用いてMAC(Message Authentication Code)を算出し、当該MAC及びネットワークノードへの制御内容R及び前記値Tをコントローラに送信するCIメッセージ送信手順と、を順に有し、前記設定手順において、コントローラが、ホストから前記MACを受信し、前記値T及び前記値y用いて算出される値T並びに前記MACを受信したホストのIDを用いてMACを算出し、受信したMACと算出したMACとが一致するか否かを判定し、一致する場合には、ホストのIPアドレスIPを宛先とするトラヒックに対して前記制御内容Rを実行するようネットワークノードを設定するネットワークノード設定手順、を順に有してもよい。
【0017】
本願発明のネットワークノード制御方法では、前記値yは、コントローラのみが持つ秘密情報K、ホストのIPアドレスIP、ホストのID、ネットワークノードに制御を実施したホストのシーケンス番号Sを入力として、1≦y≦√pを満たす整数値であり、前記値Kは、K=α mod pによって導かれ、前記値zは、認証補助サーバのみが持つ秘密情報K、ホストのIPアドレスIP、ホストのID、ネットワークノードに制御を実施したホストのシーケンス番号Sを入力として、1≦z≦√pとなる整数値であり、前記値Kは、K=K=αyz mod pによって導かれ、前記値Tは、T=α mod pによって導かれ、前記値Tは、T=T=αxz mod pによって導かれ、前記鍵Kは、K=(K=αxyz mod pによって導かれ、前記値Tは、T=(T=αxyz mod pによって導かれてもよい。
【0018】
本願発明のネットワークノード制御方法では、前記認証手順において、ホストが、ホストのID及び素数pを認証サーバへ送信するRQメッセージ送信手順と、認証補助サーバが、前記素数p及び素数qを用いて暗号鍵Kを算出し、前記暗号鍵K及び前記素数qをホストに送信すると共に、前記素数p及び前記素数q及び素数rを用いて整数Mを算出し、前記暗号鍵K、前記整数M及びホストのIPアドレスIPをコントローラに送信するRRSメッセージ送信手順と、コントローラが、秘密情報K及び乱数nonce及び前記IPアドレスIPを用いて鍵Kを算出し、前記鍵K及び前記暗号鍵K及び前記整数Mを用いてトークンTを算出し、前記トークンTをホストに送信するRSメッセージ送信手順と、ホストが、前記トークンT及び前記暗号鍵K及び前記素数qを用いて鍵Kを算出し、算出した鍵K及び前記IDを用いてMACを算出し、算出したMAC及びネットワークノードへの制御内容Rをコントローラに送信するCIメッセージ送信手順と、を順に有し、前記設定手順において、コントローラが、ホストからMACを受信し、前記RSメッセージ送信手順で算出した前記鍵K及びMACを受信したホストのIDを用いてMACを算出し、受信したMACと算出したMACとが一致するか否かを判定し、一致する場合には、ホストのIPアドレスIPを宛先とするトラヒックに対して前記制御内容Rを実行するようネットワークノードを設定するネットワークノード設定手順を有してもよい。
【0019】
本願発明のネットワークノード制御方法では、記暗号鍵Kは、1=GCD(K、Z)によって導かれ、前記整数Mは、p×q×rによって導かれ、前記トークンTは、K^{K} mod Mによって導かれ、前記鍵Kは、K^{K} mod M(mod N)によって導かれてもよい。
【0020】
本願発明のネットワークノード制御方法では、前記ネットワークノード設定手順において、前記ネットワークノードの設定内容の有効時間を指定し、前記有効時間が経過すると前記ネットワークノードが前記設定内容を解除してもよい。
【0021】
具体的には、本願発明のネットワークノード制御システムはトラヒックを制御するネットワークノードと、前記ネットワークノードの設定を試みるホストのアドレスに詐称がないことを認証し、認証が成功したホストのアドレスへのトラヒックに対する前記ネットワークノードの設定を行うコントローラと、前記コントローラの認証を補助する認証補助サーバと、自己のアドレスへのトラヒックに対する前記ネットワークノードの設定内容を前記コントローラに送信するホストと、を備える。
【0022】
本願発明のネットワークノード制御システムでは、前記コントローラは、自己のみが持つ秘密情報Kを用いて値y及び値Kを算出し、値K及びホストのIPアドレスIPを認証補助サーバに送信し、認証補助サーバのIPアドレスIP及び値Kをホストに送信し、ホストからMACを受信し、値T及び値y用いて算出される値T並びに前記MACを受信したホストのIDを用いてMACを算出し、受信したMACと算出したMACとが一致するか否かを判定し、一致する場合には、ホストのIPアドレスIPを宛先とするトラヒックに対して制御内容Rを実行するようネットワークノードを設定し、前記ホストは、ホストのID及び素数pを、コントローラへ送信し、ホストのみが持つ秘密情報xを用いて値Tを算出してIPアドレスIP宛に送信し、値K及び値zを用いて算出される鍵K並びにホストのIDを用いてMACを算出し、当該MAC及びネットワークノードへの制御内容R及び値Tをコントローラに送信し、前記認証補助サーバは、自己のみが持つ秘密情報K及びIPアドレスIPを用いて値zを算出するとともに値K及び値zを用いて値Kを算出し、値Kをコントローラに送信し、値T及び値zを用いて値Tを算出してホストに送信してもよい。
【0023】
本願発明のネットワークノード制御システムでは、前記コントローラは、秘密情報K及び乱数nonce及び前記ホストのIPアドレスIPを用いて鍵Kを算出し、前記鍵K及び暗号鍵K及び整数Mを用いてトークンTを算出し、前記トークンTを前記ホストに送信し、前記ホストから前記MACを受信し、算出した前記鍵K及び前記ホストのIDを用いてMACを算出し、受信したMACと算出したMACとが一致するか否かを判定し、一致する場合には、前記ホストのIPアドレスIPを宛先とするトラヒックに対して前記ホストから送信された制御内容Rを実行するようネットワークノードを設定し、前記ホストは、自己のID及び素数pを前記認証サーバへ送信し、前記トークンT及び前記暗号鍵K及び前記素数qを用いて鍵Kを算出し、当該鍵K及び自己のIDを用いてMACを算出し、算出したMAC及びネットワークノードへの制御内容Rを前記コントローラに送信し、前記認証補助サーバは、前記素数p及び素数qを用いて暗号鍵Kを算出し、前記暗号鍵K及び前記素数qを前記ホストに送信し、前記素数p及び前記素数q及び素数rを用いて整数Mを算出し、前記暗号鍵K、前記整数M及び前記ホストのIPアドレスIPをコントローラに送信してもよい。
【0024】
本願発明のネットワークノード制御システムでは、前記ホストは、前記ネットワークノードの設定内容の有効時間を指定し、前記ネットワークノードは、前記有効時間が経過すると前記設定内容を解除してもよい。
【0025】
なお、上記各発明は、可能な限り組み合わせることができる。
【発明の効果】
【0026】
本発明によって、ネットワークに接続されたすべてのホスト及びこれに相当するエンドユーザ又はシステムがネットワークノードを制御し、トラヒック制御を実施することができる。
【0027】
例えば、DoS攻撃を受けているエンドシステムは能動的に、当該エンドシステムの直前だけでなく、より攻撃者に近いネットワークノードで不正トラヒックの遮断することができる。これに従来の防御方法では防ぐことができないトラヒック輻輳を低減もしくは回避することができる。また、不正制御または誤制御が行われたとしてもその影響が制御を実施したホストに閉じることで、他のトラヒックへの影響を与えず、安全なネットワークノードの制御を実現している。本発明では、ネットワークノード制御にかかるメッセージすべてを盗聴されたとしてもメッセージを捏造することができない。また、認証補助サーバに与えられる情報ではメッセージを捏造できず、仮に認証補助サーバを乗っ取りもしくは成りすましたとしても不正制御を防ぐことができる。
【図面の簡単な説明】
【0028】
【図1】コントローラとネットワークノードが別々であるネットワークの概要を表す。
【図2】本実施形態に係るネットワークノード制御システムの概略構成図である。
【図3】本発明の実施形態の簡易モデルの一例を示す。
【図4】実施形態1の一例を示すシーケンス図である。
【図5】実施形態1の一例を示すシーケンス図である。
【図6】実施形態2の一例を示すシーケンス図である。
【発明を実施するための形態】
【0029】
添付の図面を参照して本発明の実施形態を説明する。以下に説明する実施形態は本発明の実施の例であり、本発明は、以下の実施形態に制限されるものではない。なお、本明細書及び図面において符号が同じ構成要素は、相互に同一のものを示すものとする。
【0030】
(実施形態1)
本発明は、Openflowスイッチによって構成されたネットワークに適用することができる。例えば、図1に示すような複数の組織によって管理されたドメインが存在し、それぞれはOpenflowスイッチで構成されたネットワークを想定する。また、ネットワーク内は、例えば既存のIPルーティングプロトコルによって、IPレベルの到達性が維持されているとする。本発明は、図1のように異なる組織間をまたがった安全なネットワークノード制御を実現できる。
【0031】
本発明では、Openflowスイッチのような遠隔から自由度高く制御可能なネットワークノード40から構成されるネットワークを対象とする。また、ネットワーク内は、例えば既存のIPルーティングプロトコルによって、IPレベルの到達性が維持されているとする。本発明の基本構成は、図2に示すように、ネットワークノード40、ネットワークノード40を制御するコントローラ30、エンドユーザが使用するホスト10、および認証補助サーバ20の4つからなる。ネットワークノード40とコントローラ30は1対1、またはN対Mでもよい。もしくは、ネットワークノード40とコントローラ30を同一装置内に含んでもよい。認証補助サーバ20は、例えばインターネットサービスプロバイダ(ISP)のような組織によって運営されるサーバとする。認証補助サーバ20は、ネットワーク全体で1つ以上存在できるとする。
【0032】
ホスト10は、IPアドレス認証機能部11と、制御命令送信部12と、を備える。認証補助サーバ20は、認証補助機能部21を備える。コントローラ30は、IPアドレス認証機能部31と、制御権委譲機能部32と、ノード制御インタフェース部33と、を備える。ネットワークノード40は、制御インタフェース部41と、フォワーディングテーブル42を備える。
【0033】
以下、図3の簡易モデルに従って本発明の実施形態を説明する。2つのISP、ISPおよびISPが存在する。ここでは、ISPにいるエンドユーザがホスト10を通して、ISPにあるネットワークノード制御を実施する。エンドユーザのホスト10はある特定のコンピュータではなく、Webサーバ、アプリケーションサーバ、クラウド環境などネットワークに接続されたコンピューティング環境すべてを含む。また、DNSのようなルックアップサービス50が存在し、コントローラ30および認証補助サーバ20のIPアドレス解決を行う。複数の認証補助サーバ20が存在する場合は、ルックアップサービス50はランダムに選んだ1つのIPアドレス、一部のIPアドレス群、またはすべてのIPアドレスを返す。2つ以上の認証補助サーバ20のIPアドレスがルックアップサービス50から返ってきた場合は、その中からランダムに1つ選び使用するとする。コントローラ30のIPアドレスをルックアップサービス50により取得できない場合は、ホスト10はマーキングしたパケットをネットワークノード40が属すサブネットワークに届くように送信し、マーキングされたパケットをネットワークノード40はコントローラ30へ転送するように設定しておくことで、ホスト10はコントローラ30へ届くパケットを送信することができる。
【0034】
本発明におけるネットワークノード制御は、IPアドレス認証プロセスを通して認証されたことを示すMessage Authentication Code(MAC)を生成し、生成されたMACを用いてネットワークノードへ制御メッセージを送信することで実行される。
【0035】
ホスト10は1つのネットワークノード40に一回制御を実施するために、次の一連のシーケンスを実施する。
1)ホスト10のIPアドレス認証機能部11は、コントローラ30へREQ_TOKEN(以降、RQと記載する。)メッセージを送信する。
2)コントローラ30のIPアドレス認証機能部31はRQメッセージを受信後、ルックアップサービス50に問い合わせて認証補助サーバ20のIPアドレスを取得する。複数の認証補助サーバ20のIPアドレスを取得した場合は、1つ選択し、そのIPアドレス宛にREF_REQ_TOKEN(以降、RRQと記載する。)メッセージを送信する。
3)RRQメッセージを受信した認証補助サーバ20の認証補助機能部21は、REF_RES_TOKEN(以降、RRSと記載する。)メッセージを返信する。
4)RRSメッセージを受信したコントローラ30のIPアドレス認証機能部31は、RES_TOKEN(以降、RSと記載する。)メッセージをホスト10へ送信する。
5)RSメッセージを受信したホスト10のIPアドレス認証機能部11は、RSメッセージに書かれた認証補助サーバ20のIPアドレスに対して、RRQメッセージを送信する。
6)コントローラ30からのRRQメッセージと同様に、認証補助サーバ20の認証補助機能部21はホスト10からのRRQメッセージを受信後、RRSメッセージをホスト10へ返信する。
7)ホスト10のIPアドレス認証機能部11はコントローラ30からのRSメッセージと認証補助サーバ20からのRRSメッセージの情報をもとにMACを生成し、ホスト10の制御命令送信部12は生成したMACとともに制御内容をのせてCFG_INSTALL(以降、CIと記載する。)メッセージをコントローラ30へ送信する。
8)CIメッセージを受信したコントローラ30の制御権委譲機能部32は、CIメッセージにあるMACを検証し、正当性が確かめられればノード制御インタフェース部33を介してネットワークノード40の制御インタフェース部41へ制御内容を設定し、そうでなければ制御内容の設定を行わず、CFG_ACK(以降、CAと記載する。)メッセージをホスト10へ送信する。
【0036】
以下にIPアドレス認証までのシーケンスを図4及び図5をもとに詳述する。
1.ホスト10は、RQメッセージをコントローラ30へ送信する。
RQメッセージはホスト10によって生成された以下の情報を持つ。
■(p、α):素数と生成元のペア
■ID:シーケンス識別子
pは素数、αは集合{α|1≦α≦p−1}における生成元である。IDはIPアドレス認証からノード制御までの一連の手続きを識別する値である。
【0037】
2.コントローラ30はRQメッセージを受信後、RRQメッセージを認証補助サーバ20へ送信する。
RRQメッセージは以下の情報を持つ。
■p:RQメッセージに含まれる素数の値
■K:コントローラ30が生成する値
■ID:RQメッセージに含まれるシーケンス識別子の値
■S:コントローラ30が管理するシーケンス値
【0038】
Kは次の計算式で導かれる。
【数11】

はコントローラ30のみが持つ秘密情報である。IPはホスト10のIPアドレスであり、RQメッセージのヘッダ情報に記載された送信元IPアドレスである。コントローラ30はネットワークノード40に制御を実施したホスト10ごとにシーケンス番号Sを管理する。ここで、SはSに1加えた値である。ホスト10がはじめて制御を実施する場合は、Sに初期値を与える。初期値の与えかたは乱数を用いるか、0を入力してもよく限定しない。関数f()は、KC、IPH、ID、Sを入力として、1≦y≦√pの範囲の整数値yを返す関数である。
【0039】
3.RRQメッセージを受信した認証補助サーバ20はRRSメッセージをコントローラ30へ送信する。
RRSメッセージは以下の情報を持つ。
■K:認証補助サーバ20がKを入力として生成するトークン値
■ID:RRQメッセージに含まれるシーケンス識別子
■S:RRQメッセージに含まれるシーケンス値
【0040】
認証補助サーバ20は、Kを以下の計算式によって求める。
【数12】

は認証補助サーバ20のみが持つ秘密情報である。関数g()は、K、IP、ID、Sを入力として、1≦z≦√pとなる整数値zを返す関数である。
【0041】
4.コントローラ30は、RRSメッセージを受信後、RSメッセージをホスト10へ送信する。
RSメッセージは以下の情報を持つ。
■K:RRSメッセージに含まれるトークン値
■ID:RRSメッセージに含まれるシーケンス識別子
■S:RRSメッセージに含まれるシーケンス値
■IP:認証補助サーバ20のIPアドレス
認証補助サーバ20のIPアドレスIPは、RRSメッセージのヘッダに含まれる送信元IPアドレスとする。
【0042】
5.ホスト10はRSメッセージ受信後、RRQメッセージを認証補助サーバ20へ送信する。
RRQメッセージは以下の情報を持つ。
■p:RQメッセージにのせた素数値
■T:ホスト10が生成する値
■ID:RQメッセージにのせたシーケンス識別子
■S:RSメッセージに含まれるシーケンス値
【0043】
ホスト10は、Tを以下の計算式によって求める。
【数13】

xは、ホスト10のみが持つ秘密情報であり、1≦x≦√pを満たす整数値とする。
【0044】
6.認証補助サーバ20は、RRQメッセージを受信後、RRSメッセージをホスト10へ送信する。
RRSメッセージは以下の情報を持つ。
■T:認証補助サーバ20がTを入力として生成したトークン値
■ID:RRQメッセージに含まれるシーケンス識別子
■S:RRQメッセージに含まれるシーケンス値
【0045】
認証補助サーバ20は、Tを以下の計算式で求める。
【数14】

認証補助サーバ20は、RRQメッセージの送信元がホスト10またはコントローラ30であれ区別しない。RRQメッセージを受信後、同様の処理を行い、RRQメッセージ送信元へRRSメッセージを返信する。
【0046】
ここまでで得た情報をもって、ホスト10はMACを生成する。ここで生成されたMACを用いて正当なIPアドレスの所有者であることを証明し、ネットワークノード40へ制御を実施する。図5に示すシーケンスによってネットワークノード制御が実施される。
【0047】
7.ホスト10はCIメッセージをコントローラ30へ送信する。
CIメッセージは以下の情報を持つ。
■T:RRSメッセージに含まれるトークン値
■ID:RQメッセージにのせたシーケンス識別子
■S:RSおよびRRSメッセージに含まれるシーケンス値
■MAC:ホスト10が生成したMAC値
■R:ホスト10が作成したネットワークへ設定する制御内容
【0048】
Rはネットワークノード40への制御内容である。これはネットワークノード40の装置依存として本発明の範疇外であり、本発明で限定されない。ただし、RはIPHを宛先とするトラヒックに対する制御内容と解釈してコントローラ30はネットワークノード40へ設定を行う。
【0049】
MACは、鍵KとID、S、Rを入力としてHMACによって生成する。
は以下の計算式をもって求める。
【数15】

【0050】
8.コントローラ30はCIメッセージを受信後、ネットワークノード40への制御の実行を試み、その結果をCAメッセージとしてホスト10へ送信する。
CAメッセージは、以下の情報を持つ。
■E:エラーコード
■ID:CIメッセージに含まれるシーケンス識別子
■S:CIメッセージに含まれるシーケンス値
■D:ネットワークノード40への設定内容Rの有効時間
■MAC:コントローラ30が生成したMAC値
【0051】
Eは、エラーコードであり、エラー原因を示す。エラー原因は、例えば、MACの検証が失敗した、もしくは、CIメッセージに含む制御内容のネットワークノード40への設定が失敗した場合である。ネットワークノード制御が成功した場合は、Eは0となる。
【0052】
Dは、ネットワークノード40へ設定したRの有効時間を表す。ネットワークノード40へRを設定後Dの時間経過後、制御内容Rの設定は自動的に削除される。ホスト10はRの設定を継続したい場合は、有効時間Dが経過するまでに改めてRを設定するための手続きを実行する必要がある。
【0053】
コントローラ30はCIメッセージを受信後、Tを次の計算式によって求める。
【数16】

【0054】
コントローラ30は、Tを鍵、CIメッセージに含むID、S、Rを入力として、HMACによってMACを計算する(例えば、非特許文献4を参照。)。ここで計算したMACと、CIメッセージに含むMACを比較する。一致しない場合は、IPアドレス認証が失敗となり、ネットワークノード40へ設定は行われず、エラーとしてCAメッセージを送信する。一致した場合は、IPアドレス認証が成功したとして、CIメッセージの送信元IPアドレスを宛先とするトラヒックに対してRの制御をネットワークノード40へ設定を試みる。
【0055】
このとき、コントローラ30はSが、コントローラ30が保持しているSより大きいことを確認し、S>Sであれば処理を進め、そうでなければエラーとしてEにエラーコードを設定してCAメッセージを送信する。設定が成功した場合は、Eを0にし、失敗した場合はEにエラーコードを設定して、CAメッセージを送信する。
【0056】
コントローラ30は有効時間Dの値を自由に設定できる。コントローラ30は、有効時間DをCIメッセージにおける設定内容Rごとに値を保持し、同様のRの設定要求があれば、有効時間Dよりも値を増加させてもよい。その際、2進指数で増加させるなどの方法を例えば用いることができる。
【0057】
CIメッセージを受信したコントローラ30は、同様にMACを検証し、CIメッセージの正当性を確認し、メッセージ内容を確認する。
【0058】
(実施形態2)
本形態では、実施形態1と異なるIPアドレス認証方法として、MACを生成するための鍵Kを求める手順を説明する。実施形態1と同様に図2および図3をもとに述べる。図5に、実施形態2のシーケンスの一例を示す。本形態では、
1)ホスト10はREQ_TOKEN(以降RQ)メッセージを認証補助サーバ20へ送信し、
2)RQメッセージを受信した認証補助サーバ20は、REF_RES_TOKEN1(以降RRS1)メッセージをホスト10へ送信し、また、
3)REF_RES_TOKEN2(以降RRS2)メッセージをコントローラ30へ送信する。
4)コントローラ30はRES_TOKEN(以降RS)メッセージをホスト10へ送信し、
5)ホスト10はRRS1メッセージとRSメッセージからMACを生成するための鍵を求める。
以降で上述の手順について詳述する。
【0059】
1.ホスト10は、RQメッセージを認証補助サーバ20へ送信する。
RQメッセージはホスト10によって生成された以下の情報を持つ。
■p:素数
■IP:コントローラ30のアドレス
■ID:シーケンス識別子
【0060】
pおよびIPを認証補助サーバ20の受信を保証するために、認証補助サーバ20の公開鍵で暗号化して送信する。シーケンス識別子IDはホスト10がIPアドレス認証を行い、ネットワークノード40への設定実行からその結果に対するコントローラ30からホスト10へ応答までのシーケンスを一意に特定するために用いられる。
【0061】
2.認証補助サーバ20は、ホスト10へRRS1メッセージを送信する。
RRS1メッセージは認証補助サーバ20によって生成された以下の情報を持つ。
■K:暗号鍵
■q:素数(q≠p)
【0062】
およびqは認証補助サーバ20からの送信であることを保証するために、認証補助サーバ20の秘密鍵で暗号化して送信する。本発明では、RSAアルゴリズムによって認証補助サーバはKを求める。すなわち、1=GCD(K、Z)を満たすKを求める。このとき、Z=LCM((p−1),(q−1))とする。GCD(x,y)とLCM(x,y)は、それぞれxとyの最大公約数と最小公倍数を表す。
【0063】
3.認証補助サーバ20は、コントローラ30へRRS2メッセージを送信する。
RRS2メッセージは以下の情報を持つ。
■SC:サーバ証明書
■M:整数
■K:暗号鍵
■IP:ホスト10のアドレス
■ID:シーケンス識別子
【0064】
SC、M、K、およびIPは認証補助サーバ20からの送信であることを保証するために、認証補助サーバ20の秘密鍵で暗号化して送信する。Mは、p×q×rによって求める。このとき、rは認証補助サーバ20によって生成された素数であり、pともqとも異なる値である。Kは上記RRS1に含む値と同じである。
【0065】
4.コントローラ30はホスト10へRSメッセージを送信する。
RSメッセージはコントローラ30によって生成された以下の値を持つ。
■T:トークン
■nonce:乱数
■ID:シーケンス識別子
■S:コントローラ30が管理するシーケンス値
【0066】
コントローラ30はネットワークノード40に制御を実施したホスト10ごとにシーケンス番号Sを管理する。ここで、SはSに1加えた値である。ホスト10がはじめて制御を実施する場合は、Sに初期値を与える。初期値の与えかたは限定されない。コントローラ30はRRS2メッセージ受信後、鍵Kを生成する。鍵KはMAC(メッセージ認証コード)を生成するために用いる。鍵KとトークンTは以下の計算により求められる。
【0067】
【数21】

【0068】
はコントローラ30の秘密情報であり、コントローラ30以外は知り得ない。乱数nonceはコントローラ30が生成した値である。関数f()は、秘密情報Kと乱数nonceから修飾数mを出力する関数であり、また、コントローラごとに異なり、コントローラが保持する関数f()は当該コントローラ以外には知り得ない。H()はハッシュ値を求める関数であり、”|”は結合を表す。
【0069】
5.ホスト10はRRS1メッセージおよびRSメッセージをもとにMACを生成するための鍵Kを生成する。
【0070】
ホスト10は以下の計算により鍵Kを求める。
【数22】

【0071】
は、K×K≡1(mod X)を満たす値であり、このときX=LCM((p−1),(q−1))である。以降の手順は、ホスト10は実施形態1と同様に、CIメッセージをコントローラ30へ送信し、CAメッセージ応答を受ける。このときMACの生成において、上記鍵Kを用いる。
【0072】
本発明は、鍵Kを求めるための素数の組をホスト10と認証補助サーバ20それぞれが発行することで認証補助サーバ20という第三者の承認も合わせた認証が可能である。ただし、そのためには認証補助サーバ20は信頼ある機関によって運営されていることが必要である。これにはPKIシステムを用いて認証補助サーバ20の公開鍵を検証させることも可能である。
【0073】
攻撃者が鍵Kを求め、成りすましを行うためには、p、q、Kを知る必要がある。素数q、暗号鍵K、整数Mは認証補助サーバ20の秘密鍵で署名されるのみであり、誰でも知ることができる。ただし、従来のRSAアルゴリズムに対して、素数rを新たに導入することで離散対数問題の性質から、素数pを攻撃者が知ることは現実的に不可能である。
【符号の説明】
【0074】
10:ホスト
11:IPアドレス認証機能部
12:制御命令送信部
20:認証補助サーバ
21:認証補助機能部
30:コントローラ
31:IPアドレス認証機能部
32:制御権委譲機能部
33:ノード制御インタフェース部
40:ネットワークノード
41:制御インタフェース部
42:フォワーディングテーブル
50:ルックアップサービス
100:ネットワーク

【特許請求の範囲】
【請求項1】
ホストのアドレスに詐称がないことを認証する認証手順と、
前記認証手順の認証結果にもとづいて、前記ホストへ転送されるトラヒックに対する前記ネットワークノードの設定を行う設定手順と、
を有することを特徴とするネットワークノード制御方法。
【請求項2】
前記認証手順において、
ホストが、ホストのID及び素数pを、コントローラへ送信するRQメッセージ送信手順と、
コントローラが、コントローラのみが持つ秘密情報Kを用いて値y及び値Kを算出し、前記値K及びホストのIPアドレスIPを認証補助サーバに送信する第1のRRQメッセージ送信手順と、
認証補助サーバが、認証補助サーバのみが持つ秘密情報K及び前記IPアドレスIPを用いて値zを算出するとともに前記値K及び前記値zを用いて値Kを算出し、前記値Kをコントローラに送信する第1のRRSメッセージ送信手順と、
コントローラが、認証補助サーバのIPアドレスIP及び前記値Kをホストに送信するRSメッセージ送信手順と、
ホストが、ホストのみが持つ秘密情報xを用いて値Tを算出して前記IPアドレスIP宛に送信する第2のRRQメッセージ送信手順と、
認証補助サーバが、前記値T及び前記値zを用いて値Tを算出してホストに送信する第2のRRSメッセージ送信手順と、
ホストが、前記値K及び前記値zを用いて算出される鍵K並びに前記IDを用いてMAC(Message Authentication Code)を算出し、当該MAC及びネットワークノードへの制御内容R及び前記値Tをコントローラに送信するCIメッセージ送信手順と、を順に有し、
前記設定手順において、
コントローラが、ホストから前記MACを受信し、前記値T及び前記値y用いて算出される値T並びに前記MACを受信したホストのIDを用いてMACを算出し、受信したMACと算出したMACとが一致するか否かを判定し、一致する場合には、ホストのIPアドレスIPを宛先とするトラヒックに対して前記制御内容Rを実行するようネットワークノードを設定するネットワークノード設定手順を有する、
請求項1に記載のネットワークノード制御方法。
【請求項3】
前記値yは、コントローラのみが持つ秘密情報K、ホストのIPアドレスIP、ホストのID、ネットワークノードに制御を実施したホストのシーケンス番号Sを入力として、1≦y≦√pを満たす整数値であり、
前記値Kは、K=α mod pによって導かれ、
前記値zは、認証補助サーバのみが持つ秘密情報K、ホストのIPアドレスIP、ホストのID、ネットワークノードに制御を実施したホストのシーケンス番号Sを入力として、1≦z≦√pとなる整数値であり、
前記値Kは、K=K=αyz mod pによって導かれ、
前記値Tは、T=α mod pによって導かれ、
前記値Tは、T=T=αxz mod pによって導かれ、
前記鍵Kは、K=(K=αxyz mod pによって導かれ、
前記値Tは、T=(T=αxyz mod pによって導かれる、
ことを特徴とする請求項2に記載のネットワークノード制御方法。
【請求項4】
前記認証手順において、
ホストが、ホストのID及び素数pを認証サーバへ送信するRQメッセージ送信手順と、
認証補助サーバが、前記素数p及び素数qを用いて暗号鍵Kを算出し、前記暗号鍵K及び前記素数qをホストに送信すると共に、前記素数p及び前記素数q及び素数rを用いて整数Mを算出し、前記暗号鍵K、前記整数M及びホストのIPアドレスIPをコントローラに送信するRRSメッセージ送信手順と、
コントローラが、秘密情報K及び乱数nonce及び前記IPアドレスIPを用いて鍵Kを算出し、前記鍵K及び前記暗号鍵K及び前記整数Mを用いてトークンTを算出し、前記トークンTをホストに送信するRSメッセージ送信手順と、
ホストが、前記トークンT及び前記暗号鍵K及び前記素数qを用いて鍵Kを算出し、算出した鍵K及び前記IDを用いてMACを算出し、算出したMAC及びネットワークノードへの制御内容Rをコントローラに送信するCIメッセージ送信手順と、を順に有し、
前記設定手順において、
コントローラが、ホストからMACを受信し、前記RSメッセージ送信手順で算出した前記鍵K及びMACを受信したホストのIDを用いてMACを算出し、受信したMACと算出したMACとが一致するか否かを判定し、一致する場合には、ホストのIPアドレスIPを宛先とするトラヒックに対して前記制御内容Rを実行するようネットワークノードを設定するネットワークノード設定手順を有する、
請求項1に記載のネットワークノード制御方法。
【請求項5】
前記暗号鍵Kは、1=GCD(K、Z)によって導かれ、
前記整数Mは、p×q×rによって導かれ、
前記トークンTは、K^{K} mod Mによって導かれ、
前記鍵Kは、K^{K} mod M(mod N)によって導かれる、
ことを特徴とする請求項4に記載のネットワークノード制御方法。
【請求項6】
前記ネットワークノード設定手順において、前記ネットワークノードの設定内容の有効時間を指定し、前記有効時間が経過すると前記ネットワークノードが前記設定内容を解除することを特徴とする請求項2から5のいずれかに記載のネットワークノード制御方法。
【請求項7】
トラヒックを制御するネットワークノードと、
前記ネットワークノードの設定を試みるホストのアドレスに詐称がないことを認証し、認証が成功したホストのアドレスへのトラヒックに対する前記ネットワークノードの設定を行うコントローラと、
前記コントローラの認証を補助する認証補助サーバと、
自己のアドレスへのトラヒックに対する前記ネットワークノードの設定内容を前記コントローラに送信するホストと、
を備えるネットワークノード制御システム。
【請求項8】
前記コントローラは、自己のみが持つ秘密情報Kを用いて値y及び値Kを算出し、値K及びホストのIPアドレスIPを認証補助サーバに送信し、認証補助サーバのIPアドレスIP及び値Kをホストに送信し、ホストからMACを受信し、値T及び値y用いて算出される値T並びに前記MACを受信したホストのIDを用いてMACを算出し、受信したMACと算出したMACとが一致するか否かを判定し、一致する場合には、ホストのIPアドレスIPを宛先とするトラヒックに対して制御内容Rを実行するようネットワークノードを設定し、
前記ホストは、ホストのID及び素数pを、コントローラへ送信し、ホストのみが持つ秘密情報xを用いて値Tを算出してIPアドレスIP宛に送信し、値K及び値zを用いて算出される鍵K並びにホストのIDを用いてMACを算出し、当該MAC及びネットワークノードへの制御内容R及び値Tをコントローラに送信し、
前記認証補助サーバは、自己のみが持つ秘密情報K及びIPアドレスIPを用いて値zを算出するとともに値K及び値zを用いて値Kを算出し、値Kをコントローラに送信し、値T及び値zを用いて値Tを算出してホストに送信する、
ことを特徴とする請求項7に記載のネットワークノード制御システム。
【請求項9】
前記コントローラは、秘密情報K及び乱数nonce及び前記ホストのIPアドレスIPを用いて鍵Kを算出し、前記鍵K及び暗号鍵K及び整数Mを用いてトークンTを算出し、前記トークンTを前記ホストに送信し、前記ホストから前記MACを受信し、算出した前記鍵K及び前記ホストのIDを用いてMACを算出し、受信したMACと算出したMACとが一致するか否かを判定し、一致する場合には、前記ホストのIPアドレスIPを宛先とするトラヒックに対して前記ホストから送信された制御内容Rを実行するようネットワークノードを設定し、
前記ホストは、自己のID及び素数pを前記認証サーバへ送信し、前記トークンT及び前記暗号鍵K及び前記素数qを用いて鍵Kを算出し、当該鍵K及び自己のIDを用いてMACを算出し、算出したMAC及びネットワークノードへの制御内容Rを前記コントローラに送信し、
前記認証補助サーバは、前記素数p及び素数qを用いて暗号鍵Kを算出し、前記暗号鍵K及び前記素数qを前記ホストに送信し、前記素数p及び前記素数q及び素数rを用いて整数Mを算出し、前記暗号鍵K、前記整数M及び前記ホストのIPアドレスIPをコントローラに送信する、
ことを特徴とする請求項7に記載のネットワークノード制御システム。
【請求項10】
前記ホストは、前記ネットワークノードの設定内容の有効時間を指定し、
前記ネットワークノードは、前記有効時間が経過すると前記設定内容を解除することを特徴とする請求項7から9のいずれかに記載のネットワークノード制御システム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2012−120154(P2012−120154A)
【公開日】平成24年6月21日(2012.6.21)
【国際特許分類】
【出願番号】特願2011−198206(P2011−198206)
【出願日】平成23年9月12日(2011.9.12)
【出願人】(000004226)日本電信電話株式会社 (13,992)
【出願人】(392026693)株式会社エヌ・ティ・ティ・ドコモ (5,876)
【Fターム(参考)】