(57)【要約】【課題】本発明は、エンドユーザがネットワークノードを制御できる一方で正常なネットワーク運用を維持できることを目的として、エンドユーザに与える制御権限を明確化し、それを保証できるようにすることを目的とする。【解決手段】本発明は、エンドユーザに自身宛てのトラヒックの制御に限定し、それ以外を拒否することを保証するためにＩＰアドレス認証を行う。ＩＰアドレス認証は、エンドユーザは自身のＩＰアドレスの正当な所有者であり、他のユーザのＩＰアドレスの所有者であると成りすましていないことを証明する仕組みである。エンドユーザはＩＰアドレス認証を経て、ネットワークノードに自身宛てトラヒックの制御内容の設定を実施する。【選択図】図１
2015027098.tif 000002
【特許請求の範囲】
【請求項１】
ホストのアドレスに詐称がないことを認証する認証手順と、
前記認証手順の認証結果にもとづいて、前記ホストへ転送されるトラヒックに対するネットワークノードの設定を行う設定手順と、
を有し、
前記認証手順において、
ホストが、ホストのＩＤ及び素数ｐを認証サーバへ送信するＲＱメッセージ送信手順と、
認証補助サーバが、前記素数ｐ及び素数ｑを用いて暗号鍵ＫＥを算出し、前記暗号鍵ＫＥ及び前記素数ｑをホストに送信すると共に、前記素数ｐ及び前記素数ｑ及び素数ｒを用いて整数Ｍを算出し、前記暗号鍵ＫＥ、前記整数Ｍ及びホストのＩＰアドレスＩＰＨをコントローラに送信するＲＲＳメッセージ送信手順と、
コントローラが、秘密情報ＫＣ及び乱数ｎｏｎｃｅ及び前記ＩＰアドレスＩＰＨを用いて鍵Ｋを算出し、前記鍵Ｋ及び前記暗号鍵ＫＥ及び前記整数Ｍを用いてトークンＴを算出し、前記トークンＴをホストに送信するＲＳメッセージ送信手順と、
ホストが、前記トークンＴ及び前記暗号鍵ＫＥ及び前記素数ｑを用いて鍵Ｋを算出し、算出した鍵Ｋ及び前記ＩＤを用いてＭＡＣを算出し、算出したＭＡＣ及びネットワークノードへの制御内容Ｒをコントローラに送信するＣＩメッセージ送信手順と、を順に有し、
前記設定手順において、
コントローラが、ホストからＭＡＣを受信し、前記ＲＳメッセージ送信手順で算出した前記鍵Ｋ及びＭＡＣを受信したホストのＩＤを用いてＭＡＣを算出し、受信したＭＡＣと算出したＭＡＣとが一致するか否かを判定し、一致する場合には、ホストのＩＰアドレスＩＰＨを宛先とするトラヒックに対して前記制御内容Ｒを実行するようネットワークノードを設定するネットワークノード設定手順を有する、
ことを特徴とするネットワークノード制御方法。
【請求項２】
前記暗号鍵ＫＥは、１＝ＧＣＤ（ＫＥ、Ｚ）によって導かれ、
前記整数Ｍは、ｐ×ｑ×ｒによって導かれ、
前記トークンＴは、Ｋ＾｛ＫＥ｝  ｍｏｄ  Ｍによって導かれ、
前記鍵Ｋは、Ｋ＾｛ＫＥＫＤ｝  ｍｏｄ  Ｍ（ｍｏｄ  Ｎ）によって導かれる、
ことを特徴とする請求項１に記載のネットワークノード制御方法。
【請求項３】
前記ネットワークノード設定手順において、前記ネットワークノードの設定内容の有効時間を指定し、前記有効時間が経過すると前記ネットワークノードが前記設定内容を解除することを特徴とする請求項１又は２に記載のネットワークノード制御方法。
【請求項４】
トラヒックを制御するネットワークノードと、
前記ネットワークノードの設定を試みるホストのアドレスに詐称がないことを認証し、認証が成功したホストのアドレスへのトラヒックに対する前記ネットワークノードの設定を行うコントローラと、
前記コントローラの認証を補助する認証補助サーバと、
自己のアドレスへのトラヒックに対する前記ネットワークノードの設定内容を前記コントローラに送信するホストと、
を備え、
前記コントローラは、秘密情報ＫＣ及び乱数ｎｏｎｃｅ及び前記ホストのＩＰアドレスＩＰＨを用いて鍵Ｋを算出し、前記鍵Ｋ及び暗号鍵ＫＥ及び整数Ｍを用いてトークンＴを算出し、前記トークンＴを前記ホストに送信し、前記ホストから前記ＭＡＣを受信し、算出した前記鍵Ｋ及び前記ホストのＩＤを用いてＭＡＣを算出し、受信したＭＡＣと算出したＭＡＣとが一致するか否かを判定し、一致する場合には、前記ホストのＩＰアドレスＩＰＨを宛先とするトラヒックに対して前記ホストから送信された制御内容Ｒを実行するようネットワークノードを設定し、
前記ホストは、自己のＩＤ及び素数ｐを前記認証サーバへ送信し、前記トークンＴ及び前記暗号鍵ＫＥ及び前記素数ｑを用いて鍵Ｋを算出し、当該鍵Ｋ及び自己のＩＤを用いてＭＡＣを算出し、算出したＭＡＣ及びネットワークノードへの制御内容Ｒを前記コントローラに送信し、
前記認証補助サーバは、前記素数ｐ及び素数ｑを用いて暗号鍵ＫＥを算出し、前記暗号鍵ＫＥ及び前記素数ｑを前記ホストに送信し、前記素数ｐ及び前記素数ｑ及び素数ｒを用いて整数Ｍを算出し、前記暗号鍵ＫＥ、前記整数Ｍ及び前記ホストのＩＰアドレスＩＰＨをコントローラに送信する、
ネットワークノード制御システム。
【請求項５】
前記ホストは、前記ネットワークノードの設定内容の有効時間を指定し、
前記ネットワークノードは、前記有効時間が経過すると前記設定内容を解除することを特徴とする請求項４に記載のネットワークノード制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）ネットワークにおけるネットワークノード制御を目的とした方法に関する。
【背景技術】
【０００２】
遠隔から、従来装置よりも自由度の高い制御が可能なノードとして、Ｏｐｅｎｆｌｏｗスイッチが提案されている（例えば、非特許文献１参照。）。Ｏｐｅｎｆｌｏｗスイッチは、フォワーディングテーブルにアクセス可能なインタフェースを持つ。このインタフェースを通して従来のルーティングプロトコルやスイッチング方式に限らないフォワーディングルールを設定することが可能である。
【０００３】
Ｏｐｅｎｆｌｏｗスイッチはそれを制御するコントローラが存在する。１台のコントローラは複数のＯｐｅｎｆｌｏｗスイッチを配下に制御することもできる。コントローラはネットワーク管理者によって設置、管理されることになり、不特定多数のエンドユーザが利用できることは想定されていないため、不特定多数のエンドユーザを対象とする認証の仕組みは含まれていない。
【０００４】
ＩＰアドレスの正当な所有者を認証する技術として、ルーティングの機構を利用するものと、ＩＰアドレスそのものに認証情報を持たせるものが提案されている。これらの方式は、公開鍵の正当な所有者を認証するものではなく、ＩＰアドレスの正当な所有者を認証する。
【０００５】
ルーティングの機構を利用するＲｅｔｕｒｎ  Ｒｏｕｔａｂｉｌｉｔｙ（ＲＲ）は、ＩＰルーティングの信頼性を前提としている。ＩＰパケットの宛先に指定されたＩＰアドレスへ、ＩＰルーティングは信頼度高く配送することができる（例えば、非特許文献２参照。）。そのため、あるＩＰパケットを受信したエンドホストは、そのＩＰパケットの宛先に指定されたＩＰアドレスの所有者であると言える。あるＩＰアドレスの所有者であることを確認する場合に、そのＩＰアドレスを宛先とするＩＰパケットを送信し、そのＩＰアドレスの所有者からＩＰパケットの受信を確認すればよい。
【０００６】
本発明はこのＲＲを改良している。既存のＲＲは、パケットの盗聴攻撃に脆弱であり、ＲＲの認証手続きに係るパケットを盗聴した攻撃者は成りすましを行うことができてしまうという問題がある。本発明は、万一認証手続きにかかるパケットすべてを盗聴されたとしても成りすまし攻撃を防ぐことができる。
【０００７】
ＩＰアドレスそのものに認証情報を持たせる方式として、Ｃｒｙｐｔｏｇｒａｐｈｉｃａｌｌｙ  Ｇｅｎｅｒａｔｅｄ  Ａｄｄｒｅｓｓｅｓ（ＣＧＡ）が提案されている（例えば、非特許文献３参照。）。これは公開鍵から生成したアドレスを用いる方式である。そのため、公開鍵方式の枠組みでＩＰアドレスの所有者を認証できる。しかし、ＣＧＡはＩＰｖ６にのみ利用できる方式であり、ＩＰｖ４への適用はできない。
【先行技術文献】
【非特許文献】
【０００８】
【非特許文献１】Ｏｐｅｎｆｌｏｗ  ｓｗｉｔｃｈ．ｈｔｔｐ：／／ｗｗｗ。ｏｐｅｎｆｌｏｗｓｗｉｔｃｈ．ｏｒｇ／
【非特許文献２】ＲＦＣ  ３７７５．Ｍｏｂｉｌｉｔｙ  Ｓｕｐｐｏｒｔ  ｉｎ  ＩＰｖ６
【非特許文献３】ＲＦＣ  ３９７２．Ｃｒｙｐｔｏｇｒａｐｈｉｃａｌｌｙ  Ｇｅｎｅｒａｔｅｄ  Ａｄｄｒｅｓｓｅｓ（ＣＧＡ）
【非特許文献４】ＲＦＣ  ２１０４．ＨＭＡＣ：Ｋｅｙｅｄ−Ｈａｓｈｉｎｇ  ｆｏｒ  Ｍｅｓｓａｇｅ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ
【発明の概要】
【発明が解決しようとする課題】
【０００９】
従来のコンピュータネットワークでは，ネットワークノードの制御は権限をもったネットワーク管理者に限られ、ネットワークを利用するエンドユーザはネットワークノードを制御できない。確かに、安易にエンドユーザにネットワークノード制御の権限を与えてしまっては、正常なネットワーク運用が行えないことが予想される。
【００１０】
しかし、エンドユーザがネットワークノードの制御を主導的に行うことができれば、エンドユーザの要求に合わせたトラヒック制御が実現でき、エンドユーザにもネットワークノードの制御の権限を許可することは有益である。
【００１１】
そこで、エンドユーザがネットワークノードを制御できる一方で正常なネットワーク運用を維持できることを目的として、エンドユーザに与える制御権限を明確化し、それを保証できるようにすることが課題である。
【課題を解決するための手段】
【００１２】
本発明では、エンドユーザを現在の本発明は、エンドユーザを現在のインターネットにおける不特定多数のエンドユーザと同等と捉え、事前にネットワークノードの制御を許可された管理者とは異なることを前提とする。
【００１３】
エンドユーザに与える制御権限は、他のユーザへ悪影響を与えない範囲で許可を与える。具体的には、エンドユーザには、そのエンドユーザ宛てのトラヒックに対する制御権限にのみ限定して許可を与える。これにより他ユーザ宛てのトラヒックに影響を与えるような不正制御または誤制御を防ぐ。したがって、エンドユーザは自身のアドレスを宛先とするトラヒックに対する制御内容をネットワークノードに設定することとなる。
【００１４】
本発明は、エンドユーザに自身宛てのトラヒックの制御に限定し、それ以外を拒否することを保証するためにＩＰアドレス認証を行う。ＩＰアドレス認証は、エンドユーザは自身のＩＰアドレスの正当な所有者であり、他のユーザのＩＰアドレスの所有者であると成りすましていないことを証明する仕組みである。エンドユーザはＩＰアドレス認証を経て、ネットワークノードに自身宛てトラヒックの制御内容の設定を実施する。
【００１５】
具体的には、本願発明のネットワークノード制御方法は、ホストのアドレスに詐称がないことを認証する認証手順と、前記認証手順の認証結果にもとづいて、前記ホストへ転送されるトラヒックに対するネットワークノードの設定を行う設定手順と、を有する。
【００１６】
本願発明のネットワークノード制御方法では、前記認証手順において、ホストが、ホストのＩＤ及び素数ｐを、コントローラへ送信するＲＱメッセージ送信手順と、コントローラが、コントローラのみが持つ秘密情報ＫＣを用いて値ｙ及び値Ｋを算出し、前記値Ｋ及びホストのＩＰアドレスＩＰＨを認証補助サーバに送信する第１のＲＲＱメッセージ送信手順と、認証補助サーバが、認証補助サーバのみが持つ秘密情報ＫＲ及び前記ＩＰアドレスＩＰＨを用いて値ｚを算出するとともに前記値Ｋ及び前記値ｚを用いて値Ｋ＊を算出し、前記値Ｋ＊をコントローラに送信する第１のＲＲＳメッセージ送信手順と、コントローラが、認証補助サーバのＩＰアドレスＩＰＲ及び前記値Ｋ＊をホストに送信するＲＳメッセージ送信手順と、ホストが、ホストのみが持つ秘密情報ｘを用いて値Ｔを算出して前記ＩＰアドレスＩＰＲ宛に送信する第２のＲＲＱメッセージ送信手順と、認証補助サーバが、前記値Ｔ及び前記値ｚを用いて値Ｔ＊を算出してホストに送信する第２のＲＲＳメッセージ送信手順と、ホストが、前記値Ｋ＊及び前記値ｚを用いて算出される鍵ＫＡ並びに前記ＩＤを用いてＭＡＣ（Ｍｅｓｓａｇｅ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｃｏｄｅ）を算出し、当該ＭＡＣ及びネットワークノードへの制御内容Ｒ及び前記値Ｔ＊をコントローラに送信するＣＩメッセージ送信手順と、を順に有し、前記設定手順において、コントローラが、ホストから前記ＭＡＣを受信し、前記値Ｔ＊及び前記値ｙ用いて算出される値ＴＡ並びに前記ＭＡＣを受信したホストのＩＤを用いてＭＡＣを算出し、受信したＭＡＣと算出したＭＡＣとが一致するか否かを判定し、一致する場合には、ホストのＩＰアドレスＩＰＨを宛先とするトラヒックに対して前記制御内容Ｒを実行するようネットワークノードを設定するネットワークノード設定手順、を順に有してもよい。
【００１７】
本願発明のネットワークノード制御方法では、前記値ｙは、コントローラのみが持つ秘密情報ＫＣ、ホストのＩＰアドレスＩＰＨ、ホストのＩＤ、ネットワークノードに制御を実施したホストのシーケンス番号Ｓを入力として、１≦ｙ≦√ｐを満たす整数値であり、前記値Ｋは、Ｋ＝αｙ  ｍｏｄ  ｐによって導かれ、前記値ｚは、認証補助サーバのみが持つ秘密情報ＫＲ、ホストのＩＰアドレスＩＰＨ、ホストのＩＤ、ネットワークノードに制御を実施したホストのシーケンス番号Ｓを入力として、１≦ｚ≦√ｐとなる整数値であり、前記値Ｋ＊は、Ｋ＊＝Ｋｚ＝αｙｚ  ｍｏｄ  ｐによって導かれ、前記値Ｔは、Ｔ＝αｘ  ｍｏｄ  ｐによって導かれ、前記値Ｔ＊は、Ｔ＊＝Ｔｚ＝αｘｚ  ｍｏｄ  ｐによって導かれ、前記鍵ＫＡは、ＫＡ＝（Ｋ＊）ｚ＝αｘｙｚ  ｍｏｄ  ｐによって導かれ、前記値ＴＡは、ＴＡ＝（Ｔ＊）ｙ＝αｘｙｚ  ｍｏｄ  ｐによって導かれてもよい。
【００１８】
本願発明のネットワークノード制御方法では、前記認証手順において、ホストが、ホストのＩＤ及び素数ｐを認証サーバへ送信するＲＱメッセージ送信手順と、認証補助サーバが、前記素数ｐ及び素数ｑを用いて暗号鍵ＫＥを算出し、前記暗号鍵ＫＥ及び前記素数ｑをホストに送信すると共に、前記素数ｐ及び前記素数ｑ及び素数ｒを用いて整数Ｍを算出し、前記暗号鍵ＫＥ、前記整数Ｍ及びホストのＩＰアドレスＩＰＨをコントローラに送信するＲＲＳメッセージ送信手順と、コントローラが、秘密情報ＫＣ及び乱数ｎｏｎｃｅ及び前記ＩＰアドレスＩＰＨを用いて鍵Ｋを算出し、前記鍵Ｋ及び前記暗号鍵ＫＥ及び前記整数Ｍを用いてトークンＴを算出し、前記トークンＴをホストに送信するＲＳメッセージ送信手順と、ホストが、前記トークンＴ及び前記暗号鍵ＫＥ及び前記素数ｑを用いて鍵Ｋを算出し、算出した鍵Ｋ及び前記ＩＤを用いてＭＡＣを算出し、算出したＭＡＣ及びネットワークノードへの制御内容Ｒをコントローラに送信するＣＩメッセージ送信手順と、を順に有し、前記設定手順において、コントローラが、ホストからＭＡＣを受信し、前記ＲＳメッセージ送信手順で算出した前記鍵Ｋ及びＭＡＣを受信したホストのＩＤを用いてＭＡＣを算出し、受信したＭＡＣと算出したＭＡＣとが一致するか否かを判定し、一致する場合には、ホストのＩＰアドレスＩＰＨを宛先とするトラヒックに対して前記制御内容Ｒを実行するようネットワークノードを設定するネットワークノード設定手順を有してもよい。
【００１９】
本願発明のネットワークノード制御方法では、記暗号鍵ＫＥは、１＝ＧＣＤ（ＫＥ、Ｚ）によって導かれ、前記整数Ｍは、ｐ×ｑ×ｒによって導かれ、前記トークンＴは、Ｋ＾｛ＫＥ｝  ｍｏｄ  Ｍによって導かれ、前記鍵Ｋは、Ｋ＾｛ＫＥＫＤ｝  ｍｏｄ  Ｍ（ｍｏｄ  Ｎ）によって導かれてもよい。
【００２０】
本願発明のネットワークノード制御方法では、前記ネットワークノード設定手順において、前記ネットワークノードの設定内容の有効時間を指定し、前記有効時間が経過すると前記ネットワークノードが前記設定内容を解除してもよい。
【００２１】
具体的には、本願発明のネットワークノード制御システムはトラヒックを制御するネットワークノードと、前記ネットワークノードの設定を試みるホストのアドレスに詐称がないことを認証し、認証が成功したホストのアドレスへのトラヒックに対する前記ネットワークノードの設定を行うコントローラと、前記コントローラの認証を補助する認証補助サーバと、自己のアドレスへのトラヒックに対する前記ネットワークノードの設定内容を前記コントローラに送信するホストと、を備える。
【００２２】
本願発明のネットワークノード制御システムでは、前記コントローラは、自己のみが持つ秘密情報ＫＣを用いて値ｙ及び値Ｋを算出し、値Ｋ及びホストのＩＰアドレスＩＰＨを認証補助サーバに送信し、認証補助サーバのＩＰアドレスＩＰＲ及び値Ｋ＊をホストに送信し、ホストからＭＡＣを受信し、値Ｔ＊及び値ｙ用いて算出される値ＴＡ並びに前記ＭＡＣを受信したホストのＩＤを用いてＭＡＣを算出し、受信したＭＡＣと算出したＭＡＣとが一致するか否かを判定し、一致する場合には、ホストのＩＰアドレスＩＰＨを宛先とするトラヒックに対して制御内容Ｒを実行するようネットワークノードを設定し、前記ホストは、ホストのＩＤ及び素数ｐを、コントローラへ送信し、ホストのみが持つ秘密情報ｘを用いて値Ｔを算出してＩＰアドレスＩＰＲ宛に送信し、値Ｋ＊及び値ｚを用いて算出される鍵ＫＡ並びにホストのＩＤを用いてＭＡＣを算出し、当該ＭＡＣ及びネットワークノードへの制御内容Ｒ及び値Ｔ＊をコントローラに送信し、前記認証補助サーバは、自己のみが持つ秘密情報ＫＲ及びＩＰアドレスＩＰＨを用いて値ｚを算出するとともに値Ｋ及び値ｚを用いて値Ｋ＊を算出し、値Ｋ＊をコントローラに送信し、値Ｔ及び値ｚを用いて値Ｔ＊を算出してホストに送信してもよい。
【００２３】
本願発明のネットワークノード制御システムでは、前記コントローラは、秘密情報ＫＣ及び乱数ｎｏｎｃｅ及び前記ホストのＩＰアドレスＩＰＨを用いて鍵Ｋを算出し、前記鍵Ｋ及び暗号鍵ＫＥ及び整数Ｍを用いてトークンＴを算出し、前記トークンＴを前記ホストに送信し、前記ホストから前記ＭＡＣを受信し、算出した前記鍵Ｋ及び前記ホストのＩＤを用いてＭＡＣを算出し、受信したＭＡＣと算出したＭＡＣとが一致するか否かを判定し、一致する場合には、前記ホストのＩＰアドレスＩＰＨを宛先とするトラヒックに対して前記ホストから送信された制御内容Ｒを実行するようネットワークノードを設定し、前記ホストは、自己のＩＤ及び素数ｐを前記認証サーバへ送信し、前記トークンＴ及び前記暗号鍵ＫＥ及び前記素数ｑを用いて鍵Ｋを算出し、当該鍵Ｋ及び自己のＩＤを用いてＭＡＣを算出し、算出したＭＡＣ及びネットワークノードへの制御内容Ｒを前記コントローラに送信し、前記認証補助サーバは、前記素数ｐ及び素数ｑを用いて暗号鍵ＫＥを算出し、前記暗号鍵ＫＥ及び前記素数ｑを前記ホストに送信し、前記素数ｐ及び前記素数ｑ及び素数ｒを用いて整数Ｍを算出し、前記暗号鍵ＫＥ、前記整数Ｍ及び前記ホストのＩＰアドレスＩＰＨをコントローラに送信してもよい。
【００２４】
本願発明のネットワークノード制御システムでは、前記ホストは、前記ネットワークノードの設定内容の有効時間を指定し、前記ネットワークノードは、前記有効時間が経過すると前記設定内容を解除してもよい。
【００２５】
なお、上記各発明は、可能な限り組み合わせることができる。
【発明の効果】
【００２６】
本発明によって、ネットワークに接続されたすべてのホスト及びこれに相当するエンドユーザ又はシステムがネットワークノードを制御し、トラヒック制御を実施することができる。
【００２７】
例えば、ＤｏＳ攻撃を受けているエンドシステムは能動的に、当該エンドシステムの直前だけでなく、より攻撃者に近いネットワークノードで不正トラヒックの遮断することができる。これに従来の防御方法では防ぐことができないトラヒック輻輳を低減もしくは回避することができる。また、不正制御または誤制御が行われたとしてもその影響が制御を実施したホストに閉じることで、他のトラヒックへの影響を与えず、安全なネットワークノードの制御を実現している。本発明では、ネットワークノード制御にかかるメッセージすべてを盗聴されたとしてもメッセージを捏造することができない。また、認証補助サーバに与えられる情報ではメッセージを捏造できず、仮に認証補助サーバを乗っ取りもしくは成りすましたとしても不正制御を防ぐことができる。
【図面の簡単な説明】
【００２８】
【図１】コントローラとネットワークノードが別々であるネットワークの概要を表す。
【図２】本実施形態に係るネットワークノード制御システムの概略構成図である。
【図３】本発明の実施形態の簡易モデルの一例を示す。
【図４】実施形態１の一例を示すシーケンス図である。
【図５】実施形態１の一例を示すシーケンス図である。
【図６】実施形態２の一例を示すシーケンス図である。
【発明を実施するための形態】
【００２９】
添付の図面を参照して本発明の実施形態を説明する。以下に説明する実施形態は本発明の実施の例であり、本発明は、以下の実施形態に制限されるものではない。なお、本明細書及び図面において符号が同じ構成要素は、相互に同一のものを示すものとする。
【００３０】
（実施形態１）
本発明は、Ｏｐｅｎｆｌｏｗスイッチによって構成されたネットワークに適用することができる。例えば、図１に示すような複数の組織によって管理されたドメインが存在し、それぞれはＯｐｅｎｆｌｏｗスイッチで構成されたネットワークを想定する。また、ネットワーク内は、例えば既存のＩＰルーティングプロトコルによって、ＩＰレベルの到達性が維持されているとする。本発明は、図１のように異なる組織間をまたがった安全なネットワークノード制御を実現できる。
【００３１】
本発明では、Ｏｐｅｎｆｌｏｗスイッチのような遠隔から自由度高く制御可能なネットワークノード４０から構成されるネットワークを対象とする。また、ネットワーク内は、例えば既存のＩＰルーティングプロトコルによって、ＩＰレベルの到達性が維持されているとする。本発明の基本構成は、図２に示すように、ネットワークノード４０、ネットワークノード４０を制御するコントローラ３０、エンドユーザが使用するホスト１０、および認証補助サーバ２０の４つからなる。ネットワークノード４０とコントローラ３０は１対１、またはＮ対Ｍでもよい。もしくは、ネットワークノード４０とコントローラ３０を同一装置内に含んでもよい。認証補助サーバ２０は、例えばインターネットサービスプロバイダ（ＩＳＰ）のような組織によって運営されるサーバとする。認証補助サーバ２０は、ネットワーク全体で１つ以上存在できるとする。
【００３２】
ホスト１０は、ＩＰアドレス認証機能部１１と、制御命令送信部１２と、を備える。認証補助サーバ２０は、認証補助機能部２１を備える。コントローラ３０は、ＩＰアドレス認証機能部３１と、制御権委譲機能部３２と、ノード制御インタフェース部３３と、を備える。ネットワークノード４０は、制御インタフェース部４１と、フォワーディングテーブル４２を備える。
【００３３】
以下、図３の簡易モデルに従って本発明の実施形態を説明する。２つのＩＳＰ、ＩＳＰＡおよびＩＳＰＢが存在する。ここでは、ＩＳＰＡにいるエンドユーザがホスト１０を通して、ＩＳＰＢにあるネットワークノード制御を実施する。エンドユーザのホスト１０はある特定のコンピュータではなく、Ｗｅｂサーバ、アプリケーションサーバ、クラウド環境などネットワークに接続されたコンピューティング環境すべてを含む。また、ＤＮＳのようなルックアップサービス５０が存在し、コントローラ３０および認証補助サーバ２０のＩＰアドレス解決を行う。複数の認証補助サーバ２０が存在する場合は、ルックアップサービス５０はランダムに選んだ１つのＩＰアドレス、一部のＩＰアドレス群、またはすべてのＩＰアドレスを返す。２つ以上の認証補助サーバ２０のＩＰアドレスがルックアップサービス５０から返ってきた場合は、その中からランダムに１つ選び使用するとする。コントローラ３０のＩＰアドレスをルックアップサービス５０により取得できない場合は、ホスト１０はマーキングしたパケットをネットワークノード４０が属すサブネットワークに届くように送信し、マーキングされたパケットをネットワークノード４０はコントローラ３０へ転送するように設定しておくことで、ホスト１０はコントローラ３０へ届くパケットを送信することができる。
【００３４】
本発明におけるネットワークノード制御は、ＩＰアドレス認証プロセスを通して認証されたことを示すＭｅｓｓａｇｅ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｃｏｄｅ（ＭＡＣ）を生成し、生成されたＭＡＣを用いてネットワークノードへ制御メッセージを送信することで実行される。
【００３５】
ホスト１０は１つのネットワークノード４０に一回制御を実施するために、次の一連のシーケンスを実施する。
１）ホスト１０のＩＰアドレス認証機能部１１は、コントローラ３０へＲＥＱ＿ＴＯＫＥＮ（以降、ＲＱと記載する。）メッセージを送信する。
２）コントローラ３０のＩＰアドレス認証機能部３１はＲＱメッセージを受信後、ルックアップサービス５０に問い合わせて認証補助サーバ２０のＩＰアドレスを取得する。複数の認証補助サーバ２０のＩＰアドレスを取得した場合は、１つ選択し、そのＩＰアドレス宛にＲＥＦ＿ＲＥＱ＿ＴＯＫＥＮ（以降、ＲＲＱと記載する。）メッセージを送信する。
３）ＲＲＱメッセージを受信した認証補助サーバ２０の認証補助機能部２１は、ＲＥＦ＿ＲＥＳ＿ＴＯＫＥＮ（以降、ＲＲＳと記載する。）メッセージを返信する。
４）ＲＲＳメッセージを受信したコントローラ３０のＩＰアドレス認証機能部３１は、ＲＥＳ＿ＴＯＫＥＮ（以降、ＲＳと記載する。）メッセージをホスト１０へ送信する。
５）ＲＳメッセージを受信したホスト１０のＩＰアドレス認証機能部１１は、ＲＳメッセージに書かれた認証補助サーバ２０のＩＰアドレスに対して、ＲＲＱメッセージを送信する。
６）コントローラ３０からのＲＲＱメッセージと同様に、認証補助サーバ２０の認証補助機能部２１はホスト１０からのＲＲＱメッセージを受信後、ＲＲＳメッセージをホスト１０へ返信する。
７）ホスト１０のＩＰアドレス認証機能部１１はコントローラ３０からのＲＳメッセージと認証補助サーバ２０からのＲＲＳメッセージの情報をもとにＭＡＣを生成し、ホスト１０の制御命令送信部１２は生成したＭＡＣとともに制御内容をのせてＣＦＧ＿ＩＮＳＴＡＬＬ（以降、ＣＩと記載する。）メッセージをコントローラ３０へ送信する。
８）ＣＩメッセージを受信したコントローラ３０の制御権委譲機能部３２は、ＣＩメッセージにあるＭＡＣを検証し、正当性が確かめられればノード制御インタフェース部３３を介してネットワークノード４０の制御インタフェース部４１へ制御内容を設定し、そうでなければ制御内容の設定を行わず、ＣＦＧ＿ＡＣＫ（以降、ＣＡと記載する。）メッセージをホスト１０へ送信する。
【００３６】
以下にＩＰアドレス認証までのシーケンスを図４及び図５をもとに詳述する。
１．ホスト１０は、ＲＱメッセージをコントローラ３０へ送信する。
ＲＱメッセージはホスト１０によって生成された以下の情報を持つ。
■（ｐ、α）：素数と生成元のペア
■ＩＤ：シーケンス識別子
ｐは素数、αは集合｛α｜１≦α≦ｐ−１｝における生成元である。ＩＤはＩＰアドレス認証からノード制御までの一連の手続きを識別する値である。
【００３７】
２．コントローラ３０はＲＱメッセージを受信後、ＲＲＱメッセージを認証補助サーバ２０へ送信する。
ＲＲＱメッセージは以下の情報を持つ。
■ｐ：ＲＱメッセージに含まれる素数の値
■Ｋ：コントローラ３０が生成する値
■ＩＤ：ＲＱメッセージに含まれるシーケンス識別子の値
■Ｓ＊：コントローラ３０が管理するシーケンス値
【００３８】
Ｋは次の計算式で導かれる。
【数１１】
2015027098.tif 000003
ＫＣはコントローラ３０のみが持つ秘密情報である。ＩＰＨはホスト１０のＩＰアドレスであり、ＲＱメッセージのヘッダ情報に記載された送信元ＩＰアドレスである。コントローラ３０はネットワークノード４０に制御を実施したホスト１０ごとにシーケンス番号Ｓを管理する。ここで、Ｓ＊はＳに１加えた値である。ホスト１０がはじめて制御を実施する場合は、Ｓ＊に初期値を与える。初期値の与えかたは乱数を用いるか、０を入力してもよく限定しない。関数ｆ（）は、ＫＣ、ＩＰＨ、ＩＤ、Ｓ＊を入力として、１≦ｙ≦√ｐの範囲の整数値ｙを返す関数である。
【００３９】
３．ＲＲＱメッセージを受信した認証補助サーバ２０はＲＲＳメッセージをコントローラ３０へ送信する。
ＲＲＳメッセージは以下の情報を持つ。
■Ｋ＊：認証補助サーバ２０がＫを入力として生成するトークン値
■ＩＤ：ＲＲＱメッセージに含まれるシーケンス識別子
■Ｓ＊：ＲＲＱメッセージに含まれるシーケンス値
【００４０】
認証補助サーバ２０は、Ｋ＊を以下の計算式によって求める。
【数１２】
2015027098.tif 000004
ＫＲは認証補助サーバ２０のみが持つ秘密情報である。関数ｇ（）は、ＫＲ、ＩＰＨ、ＩＤ、Ｓ＊を入力として、１≦ｚ≦√ｐとなる整数値ｚを返す関数である。
【００４１】
４．コントローラ３０は、ＲＲＳメッセージを受信後、ＲＳメッセージをホスト１０へ送信する。
ＲＳメッセージは以下の情報を持つ。
■Ｋ＊：ＲＲＳメッセージに含まれるトークン値
■ＩＤ：ＲＲＳメッセージに含まれるシーケンス識別子
■Ｓ＊：ＲＲＳメッセージに含まれるシーケンス値
■ＩＰＲ：認証補助サーバ２０のＩＰアドレス
認証補助サーバ２０のＩＰアドレスＩＰＲは、ＲＲＳメッセージのヘッダに含まれる送信元ＩＰアドレスとする。
【００４２】
５．ホスト１０はＲＳメッセージ受信後、ＲＲＱメッセージを認証補助サーバ２０へ送信する。
ＲＲＱメッセージは以下の情報を持つ。
■ｐ：ＲＱメッセージにのせた素数値
■Ｔ：ホスト１０が生成する値
■ＩＤ：ＲＱメッセージにのせたシーケンス識別子
■Ｓ＊：ＲＳメッセージに含まれるシーケンス値
【００４３】
ホスト１０は、Ｔを以下の計算式によって求める。
【数１３】
2015027098.tif 000005
ｘは、ホスト１０のみが持つ秘密情報であり、１≦ｘ≦√ｐを満たす整数値とする。
【００４４】
６．認証補助サーバ２０は、ＲＲＱメッセージを受信後、ＲＲＳメッセージをホスト１０へ送信する。
ＲＲＳメッセージは以下の情報を持つ。
■Ｔ＊：認証補助サーバ２０がＴを入力として生成したトークン値
■ＩＤ：ＲＲＱメッセージに含まれるシーケンス識別子
■Ｓ＊：ＲＲＱメッセージに含まれるシーケンス値
【００４５】
認証補助サーバ２０は、Ｔ＊を以下の計算式で求める。
【数１４】
2015027098.tif 000006
認証補助サーバ２０は、ＲＲＱメッセージの送信元がホスト１０またはコントローラ３０であれ区別しない。ＲＲＱメッセージを受信後、同様の処理を行い、ＲＲＱメッセージ送信元へＲＲＳメッセージを返信する。
【００４６】
ここまでで得た情報をもって、ホスト１０はＭＡＣを生成する。ここで生成されたＭＡＣを用いて正当なＩＰアドレスの所有者であることを証明し、ネットワークノード４０へ制御を実施する。図５に示すシーケンスによってネットワークノード制御が実施される。
【００４７】
７．ホスト１０はＣＩメッセージをコントローラ３０へ送信する。
ＣＩメッセージは以下の情報を持つ。
■Ｔ＊：ＲＲＳメッセージに含まれるトークン値
■ＩＤ：ＲＱメッセージにのせたシーケンス識別子
■Ｓ＊：ＲＳおよびＲＲＳメッセージに含まれるシーケンス値
■ＭＡＣ：ホスト１０が生成したＭＡＣ値
■Ｒ：ホスト１０が作成したネットワークへ設定する制御内容
【００４８】
Ｒはネットワークノード４０への制御内容である。これはネットワークノード４０の装置依存として本発明の範疇外であり、本発明で限定されない。ただし、ＲはＩＰＨを宛先とするトラヒックに対する制御内容と解釈してコントローラ３０はネットワークノード４０へ設定を行う。
【００４９】
ＭＡＣは、鍵ＫＡとＩＤ、Ｓ＊、Ｒを入力としてＨＭＡＣによって生成する。
ＫＡは以下の計算式をもって求める。
【数１５】
2015027098.tif 000007
【００５０】
８．コントローラ３０はＣＩメッセージを受信後、ネットワークノード４０への制御の実行を試み、その結果をＣＡメッセージとしてホスト１０へ送信する。
ＣＡメッセージは、以下の情報を持つ。
■Ｅ：エラーコード
■ＩＤ：ＣＩメッセージに含まれるシーケンス識別子
■Ｓ＊：ＣＩメッセージに含まれるシーケンス値
■Ｄ：ネットワークノード４０への設定内容Ｒの有効時間
■ＭＡＣ：コントローラ３０が生成したＭＡＣ値
【００５１】
Ｅは、エラーコードであり、エラー原因を示す。エラー原因は、例えば、ＭＡＣの検証が失敗した、もしくは、ＣＩメッセージに含む制御内容のネットワークノード４０への設定が失敗した場合である。ネットワークノード制御が成功した場合は、Ｅは０となる。
【００５２】
Ｄは、ネットワークノード４０へ設定したＲの有効時間を表す。ネットワークノード４０へＲを設定後Ｄの時間経過後、制御内容Ｒの設定は自動的に削除される。ホスト１０はＲの設定を継続したい場合は、有効時間Ｄが経過するまでに改めてＲを設定するための手続きを実行する必要がある。
【００５３】
コントローラ３０はＣＩメッセージを受信後、ＴＡを次の計算式によって求める。
【数１６】
2015027098.tif 000008
【００５４】
コントローラ３０は、ＴＡを鍵、ＣＩメッセージに含むＩＤ、Ｓ＊、Ｒを入力として、ＨＭＡＣによってＭＡＣを計算する（例えば、非特許文献４を参照。）。ここで計算したＭＡＣと、ＣＩメッセージに含むＭＡＣを比較する。一致しない場合は、ＩＰアドレス認証が失敗となり、ネットワークノード４０へ設定は行われず、エラーとしてＣＡメッセージを送信する。一致した場合は、ＩＰアドレス認証が成功したとして、ＣＩメッセージの送信元ＩＰアドレスを宛先とするトラヒックに対してＲの制御をネットワークノード４０へ設定を試みる。
【００５５】
このとき、コントローラ３０はＳ＊が、コントローラ３０が保持しているＳより大きいことを確認し、Ｓ＊＞Ｓであれば処理を進め、そうでなければエラーとしてＥにエラーコードを設定してＣＡメッセージを送信する。設定が成功した場合は、Ｅを０にし、失敗した場合はＥにエラーコードを設定して、ＣＡメッセージを送信する。
【００５６】
コントローラ３０は有効時間Ｄの値を自由に設定できる。コントローラ３０は、有効時間ＤをＣＩメッセージにおける設定内容Ｒごとに値を保持し、同様のＲの設定要求があれば、有効時間Ｄよりも値を増加させてもよい。その際、２進指数で増加させるなどの方法を例えば用いることができる。
【００５７】
ＣＩメッセージを受信したコントローラ３０は、同様にＭＡＣを検証し、ＣＩメッセージの正当性を確認し、メッセージ内容を確認する。
【００５８】
（実施形態２）
本形態では、実施形態１と異なるＩＰアドレス認証方法として、ＭＡＣを生成するための鍵Ｋを求める手順を説明する。実施形態１と同様に図２および図３をもとに述べる。図５に、実施形態２のシーケンスの一例を示す。本形態では、
１）ホスト１０はＲＥＱ＿ＴＯＫＥＮ（以降ＲＱ）メッセージを認証補助サーバ２０へ送信し、
２）ＲＱメッセージを受信した認証補助サーバ２０は、ＲＥＦ＿ＲＥＳ＿ＴＯＫＥＮ１（以降ＲＲＳ１）メッセージをホスト１０へ送信し、また、
３）ＲＥＦ＿ＲＥＳ＿ＴＯＫＥＮ２（以降ＲＲＳ２）メッセージをコントローラ３０へ送信する。
４）コントローラ３０はＲＥＳ＿ＴＯＫＥＮ（以降ＲＳ）メッセージをホスト１０へ送信し、
５）ホスト１０はＲＲＳ１メッセージとＲＳメッセージからＭＡＣを生成するための鍵を求める。
以降で上述の手順について詳述する。
【００５９】
１．ホスト１０は、ＲＱメッセージを認証補助サーバ２０へ送信する。
ＲＱメッセージはホスト１０によって生成された以下の情報を持つ。
■ｐ：素数
■ＩＰＣ：コントローラ３０のアドレス
■ＩＤ：シーケンス識別子
【００６０】
ｐおよびＩＰＣを認証補助サーバ２０の受信を保証するために、認証補助サーバ２０の公開鍵で暗号化して送信する。シーケンス識別子ＩＤはホスト１０がＩＰアドレス認証を行い、ネットワークノード４０への設定実行からその結果に対するコントローラ３０からホスト１０へ応答までのシーケンスを一意に特定するために用いられる。
【００６１】
２．認証補助サーバ２０は、ホスト１０へＲＲＳ１メッセージを送信する。
ＲＲＳ１メッセージは認証補助サーバ２０によって生成された以下の情報を持つ。
■ＫＥ：暗号鍵
■ｑ：素数（ｑ≠ｐ）
【００６２】
ＫＥおよびｑは認証補助サーバ２０からの送信であることを保証するために、認証補助サーバ２０の秘密鍵で暗号化して送信する。本発明では、ＲＳＡアルゴリズムによって認証補助サーバはＫＥを求める。すなわち、１＝ＧＣＤ（ＫＥ、Ｚ）を満たすＫＥを求める。このとき、Ｚ＝ＬＣＭ（（ｐ−１），（ｑ−１））とする。ＧＣＤ（ｘ，ｙ）とＬＣＭ（ｘ，ｙ）は、それぞれｘとｙの最大公約数と最小公倍数を表す。
【００６３】
３．認証補助サーバ２０は、コントローラ３０へＲＲＳ２メッセージを送信する。
ＲＲＳ２メッセージは以下の情報を持つ。
■ＳＣ：サーバ証明書
■Ｍ：整数
■ＫＥ：暗号鍵
■ＩＰＨ：ホスト１０のアドレス
■ＩＤ：シーケンス識別子
【００６４】
ＳＣ、Ｍ、ＫＥ、およびＩＰＨは認証補助サーバ２０からの送信であることを保証するために、認証補助サーバ２０の秘密鍵で暗号化して送信する。Ｍは、ｐ×ｑ×ｒによって求める。このとき、ｒは認証補助サーバ２０によって生成された素数であり、ｐともｑとも異なる値である。ＫＥは上記ＲＲＳ１に含む値と同じである。
【００６５】
４．コントローラ３０はホスト１０へＲＳメッセージを送信する。
ＲＳメッセージはコントローラ３０によって生成された以下の値を持つ。
■Ｔ：トークン
■ｎｏｎｃｅ：乱数
■ＩＤ：シーケンス識別子
■Ｓ＊：コントローラ３０が管理するシーケンス値
【００６６】
コントローラ３０はネットワークノード４０に制御を実施したホスト１０ごとにシーケンス番号Ｓを管理する。ここで、Ｓ＊はＳに１加えた値である。ホスト１０がはじめて制御を実施する場合は、Ｓ＊に初期値を与える。初期値の与えかたは限定されない。コントローラ３０はＲＲＳ２メッセージ受信後、鍵Ｋを生成する。鍵ＫはＭＡＣ（メッセージ認証コード）を生成するために用いる。鍵ＫとトークンＴは以下の計算により求められる。
【００６７】
【数２１】
2015027098.tif 000009
【００６８】
ＫＣはコントローラ３０の秘密情報であり、コントローラ３０以外は知り得ない。乱数ｎｏｎｃｅはコントローラ３０が生成した値である。関数ｆ（）は、秘密情報ＫＣと乱数ｎｏｎｃｅから修飾数ｍを出力する関数であり、また、コントローラごとに異なり、コントローラが保持する関数ｆ（）は当該コントローラ以外には知り得ない。Ｈ（）はハッシュ値を求める関数であり、”｜”は結合を表す。
【００６９】
５．ホスト１０はＲＲＳ１メッセージおよびＲＳメッセージをもとにＭＡＣを生成するための鍵Ｋを生成する。
【００７０】
ホスト１０は以下の計算により鍵Ｋを求める。
【数２２】
2015027098.tif 000010
【００７１】
ＫＤは、ＫＤ×ＫＥ≡１（ｍｏｄ  Ｘ）を満たす値であり、このときＸ＝ＬＣＭ（（ｐ−１），（ｑ−１））である。以降の手順は、ホスト１０は実施形態１と同様に、ＣＩメッセージをコントローラ３０へ送信し、ＣＡメッセージ応答を受ける。このときＭＡＣの生成において、上記鍵Ｋを用いる。
【００７２】
本発明は、鍵Ｋを求めるための素数の組をホスト１０と認証補助サーバ２０それぞれが発行することで認証補助サーバ２０という第三者の承認も合わせた認証が可能である。ただし、そのためには認証補助サーバ２０は信頼ある機関によって運営されていることが必要である。これにはＰＫＩシステムを用いて認証補助サーバ２０の公開鍵を検証させることも可能である。
【００７３】
攻撃者が鍵Ｋを求め、成りすましを行うためには、ｐ、ｑ、ＫＥを知る必要がある。素数ｑ、暗号鍵ＫＥ、整数Ｍは認証補助サーバ２０の秘密鍵で署名されるのみであり、誰でも知ることができる。ただし、従来のＲＳＡアルゴリズムに対して、素数ｒを新たに導入することで離散対数問題の性質から、素数ｐを攻撃者が知ることは現実的に不可能である。
【符号の説明】
【００７４】
１０：ホスト
１１：ＩＰアドレス認証機能部
１２：制御命令送信部
２０：認証補助サーバ
２１：認証補助機能部
３０：コントローラ
３１：ＩＰアドレス認証機能部
３２：制御権委譲機能部
３３：ノード制御インタフェース部
４０：ネットワークノード
４１：制御インタフェース部
４２：フォワーディングテーブル
５０：ルックアップサービス
１００：ネットワーク
【図１】
2015027098.tif 000011
【図２】
2015027098.tif 000012
【図３】
2015027098.tif 000013
【図４】
2015027098.tif 000014
【図５】
2015027098.tif 000015
【図６】
2015027098.tif 000016