(57)【特許請求の範囲】
【請求項１】
複数のノードの認証を処理するシステムであって、
少なくとも一つのノード情報及び前記複数のノードに割り当てられた中間アドレス情報を保持し、
ＩＰネットワークに接続するノードから接続メッセージを受信した場合には、前記ノードに割り当てられた秘密キーで暗号化された前記中間アドレス情報と、秘密キー情報と乱数情報と、を含む認証メッセージを伝送する認証サーバーと、
前記認証サーバーに接続して、前記接続メッセージを前記認証サーバーへ伝送し、前記認証メッセージを通じて伝送される前記秘密キー情報を用いて復号化された前記中間アドレス情報を用いてＩＰアドレスを生成し、前記ＩＰアドレス及び前記乱数情報を通じて、他のノードと相互認証を処理する少なくとも一つのノードと、を含み、
前記各ノードは、
使用者から他のノードとの通信を要請された場合には、前記他のノードへ認証要請メッセージを伝送し、
前記他のノードは、他のノードの前記中間アドレス情報と、自分の前記中間アドレス情報と、他のノードの前記乱数情報と、自分の前記乱数情報とを変数としたハッシュ関数値の任意の部分を含ませた認証応答メッセージを前記各ノードへ伝送し、
前記各ノードは、前記認証応答メッセージに含まれるハッシュ関数値の任意の部分に、自身が有する他のノードの前記中間アドレス情報と、自分の前記中間アドレス情報と、他のノードの前記乱数情報と、自分の前記乱数情報とを変数としたハッシュ関数値の他の部分を合わせて、正しいハッシュ関数値になるか否かを判断して、正しいハッシュ関数値になる場合には前記他のノードを認証して通信を開始することを特徴とする認証処理システム。
【請求項２】
前記接続メッセージは、
前記ノードのＩＤ情報と、パスワード情報と、ランダムに生成する乱数情報との中の少なくとも一つのノード情報を含むことを特徴とする請求項１記載の認証処理システム。
【請求項３】
前記認証サーバーは、
前記ノードから前記接続メッセージを受信した場合には、前記接続メッセージから前記ノード情報を把握し、前記認証メッセージに前記乱数情報を含ませることを特徴とする請求項１記載の認証処理システム。
【請求項４】
前記ノードは、
前記認証メッセージに、認証確認情報である前記乱数情報が含まれていない場合には、前記認証サーバーを、悪意を有するノードであると判断して、接続を終了することを特徴とする請求項３記載の認証処理システム。
【請求項５】
前記認証サーバーは、
前記秘密キーで暗号化された前記中間アドレス情報が含まれる前記認証メッセージを該当するノードの公開キーで暗号化し、
前記接続メッセージを個人キーで復号化することを特徴とする請求項１記載の認証処理システム。
【請求項６】
前記各ノードは、
前記接続メッセージを前記認証サーバーの公開キーで暗号化し、
前記認証メッセージを前記各ノードの個人キーで復号化することを特徴とする請求項１記載の認証処理システム。
【請求項７】
複数のノードと、認証サーバーとを含むＩＰネットワークで認証を処理する方法であって、
前記認証サーバーが、少なくとも一つのノード情報及び前記ノードに割り当てられる中間アドレス情報を設定する段階と、
任意のノードが、前記認証サーバーに接続して、ノード情報が含まれる接続メッセージを伝送する段階と、
前記認証サーバーが、前記接続メッセージを受信した場合には、前記ノードが、接続が許可されたか否かを判断して、許可された場合には、前記ノードに割り当てられた秘密キーで暗号化された中間アドレス情報と秘密キー情報と乱数情報が含まれる認証メッセージを前記ノードへ伝送する段階と、
前記ノードが、前記秘密キー情報を用いて復号化された中間アドレス情報を用いてＩＰアドレスを生成し、他のノードと相互に認証処理する段階と、
を含み、
前記相互認証を処理する段階は、使用者から他のノードとの通信が要請された場合には、前記他のノードへ認証要請メッセージを伝送し、前記他のノードから伝送された前記認証要請メッセージに対する認証応答メッセージに含まれた他のノードの前記中間アドレス情報と、自分の前記中間アドレス情報と、他のノードの前記乱数情報と、自分の前記乱数情報とを変数としたハッシュ関数値の任意の部分を把握する段階と、
前記他のノードから伝送された前記認証応答メッセージに含まれたハッシュ関数値の任意の部分に、自身が有する他のノードの前記中間アドレス情報と、自分の前記中間アドレス情報と、他のノードの前記乱数情報と、自分の前記乱数情報とを変数としたハッシュ関数値の他の部分を合わせて、正しいハッシュ関数値になるか否かを判断して、正しいハッシュ関数値になる場合には、前記他のノードを認証する段階と、を含むことを特徴とする認証を処理する方法。
【請求項８】
前記ノード情報は、
前記認証サーバーが前記ノードを認証するための情報であるパスワード情報と乱数情報との中で少なくとも一つの情報であることを特徴とする請求項７記載の認証を処理する方法。
【請求項９】
前記認証サーバーは、
前記ノードから前記接続メッセージが受信された場合には、前記ノード情報を把握して、前記ノード情報を前記認証メッセージに含ませることを特徴とする請求項７記載の認証を処理する方法。
【請求項１０】
前記ノードは、
前記認証メッセージに前記認証確認情報である前記乱数情報が含まれていない場合には、前記認証サーバーを悪意を有するノードと判断して、接続を終了することを特徴とする請求項９記載の認証を処理する方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＩＰｖ６(Internet Protocol Version 6)ネットワークで認証を処理する方法及びその装置に関し、より詳しくは、ＩＰｖ６保安網に接続する各ノードが、重複アドレス発見機能を実行しながら認証機関から伝送される保安情報により、各ノード間の相互認証を処理するＩＰｖ６ネットワークで認証を処理する方法及びその装置に関する。
【背景技術】
【０００２】
ＩＰｖ６は、ＲＦＣ(Request for Comments)２４６０(obsolates 1883)標準に規定されている。
【０００３】
このＩＰｖ６は、自身の機能である隣接発見機能(ＮＤ: Neighbor Discovery mechanism)と、アドレス自動設定機能(ＡＣＣ: Address Auto-Configuration)と、重複アドレス発見機能(ＤＡＤ : Duplicate Address Detection)とにより、自身のグローバルアドレス(global address)を直接生成する。
【０００４】
このＩＰｖ６の自身の機能の中で、一番目の隣接発見機能(ＮＤ)は、ＩＰｖ４でのＡＲＰ(Address Resolution Protocol)の機能と、ネットワーク位相の変化を検出してリンクの状態を測定するための機能である。
【０００５】
ＮＤは、活動している隣接ノードへの経路についての到着可能情報を保持して、周辺のルーター及びプレフィックス(prefix)を検出する。
【０００６】
二番目のアドレス自動設定機能(ＡＡＣ)は、ノードにアドレスを付与するための設定作業が必要ないＩＰｖ６の‘Plug-and-Play'機能で、ルーティングが可能なアドレスを自動で生成し、基本ルーター(default router)を自動で設定する。
【０００７】
これは、ＮＤを用いた追加機能であり、プレフィックスと、基本ルーターと、アドレス重複可否とを把握することにより、ネットワークを構成して管理する。
【０００８】
図１は、一般的なＩＰｖ６アドレス構成を説明するための図であり、図１を参照すると、ＩＰｖ６アドレスは、１２８ビットの中でｎビットからなるネットワークプレフィックスと、(１２８−ｎ)ビットからなるインターフェースＩＤで構成されている。
【０００９】
図２は、ＩＰｖ６のアドレス自動設定機能を説明するための図であり、図３は、アドレス自動設定機能で生成されたＩＰｖ６アドレスのインターフェースＩＤを説明するための図である。
【００１０】
図２及び図３を参照して、グローバルＩＰｖ６アドレスを生成する過程について説明する。
【００１１】
まず、１２８ビットのアドレスの中で、自身の４８ビットＭＡＣ(Media Access Control)アドレスを用いてグローバルＩＰｖ６アドレスの下位６４ビットを構成する。
【００１２】
イーサネット（登録商標）上のＩＰｖ６で、インターフェースＩＤとは、ＥＵＩ−６４インターフェースＩＤ(Interface Identifier)を表す。
【００１３】
即ち、図２及び図３に示すように、４８ビットのＭＡＣアドレス‘00:90:27:17:fc:0f'の中間に、２バイトの中間アドレスである‘ff:fe'を付加して、その中で最上位バイト‘00’内の最上位ビット(most significant bit)から７番目のビットであるｂ１を‘１’で設定することにより、グローバルＩＰｖ６アドレスの下位６４ビットインターフェースＩＤである‘02:90:27:ff:fe:17:fc:0f'を得る。
【００１４】
上記のように得られた下位６４ビットのインターフェースＩＤである‘02:90:27:ff:fe:17:fc:0f'は、図３のようであり、図１に示されたＩＰｖ６アドレスのインターフェースＩＤである。
【００１５】
三番目の重複アドレス発見機能(ＤＡＤ)は、生成されたＩＰｖ６アドレスを他のノードが使用中であるか否かを確認する機能として、ＮＳ(Neighbor Solicitation)及びＮＡ(Neighbor Advertisement)メッセージを使用する。
【００１６】
即ち、アドレス自動設定機能によりＩＰｖ６アドレスを生成したノードが、ネットワークに接続している全てのノードへ、ＮＳメッセージを伝送し、任意のノードが、ＮＳメッセージを伝送したノードが生成したＩＰｖ６アドレスと同一のＩＰｖ６アドレスを使用している場合には、応答メッセージであるＮＡメッセージを伝送する。
【００１７】
また、ノードは、ＮＳメッセージをブロードキャスト方式で全てのノードへ伝送し、ＮＡメッセージが伝送されない場合には、生成されたＩＰｖ６アドレスを使用し、ＮＡメッセージが伝送される場合には、アドレス自動設定機能によりＩＰｖ６アドレスを再設定する。
【００１８】
このようなＩＰｖ６アドレスを使用するノードが、認証が必要なＩＰｖ６保安網に接続するためには、該当ノードを認証することができる認証機関(ＣＡ：Certificate Authority)から認証を受けなければならない。
【００１９】
即ち、ノードＡとノードＢが、ＩＰｖ６保安網を通じて通信しようとする場合には、ノードＡとノードＢは 、ＩＰｖ６保安網に接続しながら認証機関から認証を受けて、使用者から他のノードとの通信が要請される場合には、再度、認証機関に該当ノードと通信するための認証を受ける必要がある。
【００２０】
しかしながら、このような通信方式は、ＩＰｖ６保安網に接続するノードが増えたり、通信量が増加したりするようになれば、認証のためにノードと認証機関との間で交換されるメッセージの個数が、指数的に増加するようになり、ＩＰｖ６保安網の使用効率が急激に低下することとなる。
【００２１】
また、ＩＰｖ６保安網で交換されるメッセージの個数が増加するようになれば、認証機関で各ノードの認証を処理するプロセッサの負荷が増加するようになり、結果的に、保安網のサービス品質が、低下するという問題が発生する。
【発明の開示】
【発明が解決しようとする課題】
【００２２】
したがって、本発明は上述したような従来技術の問題点を解決するためになされたもので、その目的は、ＩＰｖ６保安網で保安を担当する認証機関が、ＩＰｖ６保安網に接続するノードを初期認証しながら、保安情報を知らせて、認証機関で認証を受けた各ノードが認証機関を通じることなく、相互認証を通じて通信を行うことを可能とするＩＰｖ６ネットワークで認証を処理する方法及びその装置を提供することにある。
【課題を解決するための手段】
【００２３】
本発明は、複数のノードの認証を処理するシステムであって、少なくとも一つのノード情報及び複数のノードに割り当てられた中間アドレス情報を保持し、ＩＰネットワークに接続するノードから接続メッセージを受信した場合には、ノードに割り当てられた秘密キーで暗号化された中間アドレス情報と、秘密キー情報と乱数情報と、を含む認証メッセージを伝送する認証サーバーと、認証サーバーに接続して、接続メッセージを認証サーバーへ伝送し、認証メッセージを通じて伝送される秘密キー情報を用いて復号化された中間アドレス情報を用いてＩＰアドレスを生成し、ＩＰアドレス及び乱数情報を通じて、他のノードと相互認証を処理する少なくとも一つのノードとを含み、各ノードは、使用者から他のノードとの通信を要請された場合には、他のノードへ認証要請メッセージを伝送し、他のノードは、他のノードの中間アドレス情報と、自分の中間アドレス情報と、他のノードの乱数情報と、自分の乱数情報とを変数としたハッシュ関数値の任意の部分を含ませた認証応答メッセージを各ノードへ伝送し、各ノードは、認証応答メッセージに含まれるハッシュ関数値の任意の部分に、自身が有する他のノードの中間アドレス情報と、自分の中間アドレス情報と、他のノードの乱数情報と、自分の乱数情報とを変数としたハッシュ関数値の他の部分を合わせて、正しいハッシュ関数値になるか否かを判断して、正しいハッシュ関数値になる場合には他のノードを認証して通信を開始する。
【００２４】
さらに本発明は、複数のノードと、認証サーバーとを含むＩＰネットワークで認証を処理する方法であって、認証サーバーが、少なくとも一つのノード情報及びノードに割り当てられる中間アドレス情報を設定する段階と、任意のノードが、認証サーバーに接続して、ノード情報が含まれる接続メッセージを伝送する段階と、認証サーバーが、接続メッセージを受信した場合には、ノードが、接続が許可されたか否かを判断して、許可された場合には、ノードに割り当てられた秘密キーで暗号化された中間アドレス情報と秘密キー情報と乱数情報が含まれる認証メッセージをノードへ伝送する段階と、ノードが、秘密キー情報を用いて復号化された中間アドレス情報を用いてＩＰアドレスを生成し、他のノードと相互に認証処理する段階とを含み、相互認証を処理する段階は、使用者から他のノードとの通信が要請された場合には、他のノードへ認証要請メッセージを伝送し、他のノードから伝送された認証要請メッセージに対する認証応答メッセージに含まれた他のノードの中間アドレス情報と、自分の中間アドレス情報と、他のノードの乱数情報と、自分の乱数情報とを変数としたハッシュ関数値の任意の部分を把握する段階と、他のノードから伝送された認証応答メッセージに含まれたハッシュ関数値の任意の部分に、自身が有する他のノードの中間アドレス情報と、自分の中間アドレス情報と、他のノードの乱数情報と、自分の乱数情報とを変数としたハッシュ関数値の他の部分を合わせて、正しいハッシュ関数値になるか否かを判断して、正しいハッシュ関数値になる場合には、他のノードを認証する段階と、を含む。
【発明の効果】
【００３３】
本発明によると、ＩＰｖ６保安網の保安認証を管理する認証機関が、接続するノードの認証を処理しながら、各ノード間の相互認証を処理することができる保安情報を知らせて、ＩＰｖ６保安網に接続したノードが他のノードと通信するために、認証機関と追加的なメッセージの交換なしに、相互認証を処理することができるという効果がある。
【００３４】
また、ＩＰｖ６保安網で認証を処理する認証機関とＩＰｖ６保安網に接続するノードとの間に、最初に認証処理を実行する際に、交換されるメッセージを通じて相互認証を処理することにより、悪意を有してＩＰｖ６保安網に接続するノードを基本的に遮断することができるという効果がある。
【発明を実施するための最良の形態】
【００３５】
以下、本発明の実施形態による認証を処理する方法及びその装置について、添付図面を参照して、詳細に説明する。
【００３６】
図４は、一般的なＩＰｖ６保安網の構成を説明するための全体ブロック図である。
【００３７】
図４に示すように、ＩＰｖ６保安網は、複数個のノードＡ３１、Ｂ３２、Ｃ３３と、各ノードＡ３１、Ｂ３２、Ｃ３３を認証管理する認証機関(ＣＡ)１０とを含む。
【００３８】
ノードＡ３１、Ｂ３２、Ｃ３３とは、ＩＰｖ６を具現した装置を意味し、ＣＡ１０とは、保安適格可否と、メッセージの暗号化と復号化のための公開キー(public key)と、個人キー(private key)と、秘密キー(secret key)とを発給して管理する機関を意味する。
【００３９】
公開キーは、指定されたＣＡ１０から提供されるキー値として、この公開キーから生成された個人キーと結合し、メッセージ及び電子署名の暗号化と復号化に効果的に使用することができる。公開キーと個人キーを結合する方式は、非対称暗号作成法として知られており、公開キーを使用するシステムを、公開キー基盤構造(ＰＫＩ)と呼ぶ。
【００４０】
個人キーは、暗号/復号化のために秘密メッセージを交換する当事者だけが知っているキーを意味し、秘密キーを用いた暗号作成及び解読技法で、秘密キーを知っている当事者だけが、各メッセージを暗号化して復号化することができるようにする。
【００４１】
図５は、本発明の好ましい実施形態によるノードの構成を説明するための内部ブロック図である。
【００４２】
図５を参照すると、本実施形態によるノードＡ３１は、ネットワークインターフェース部３１ａと、暗号/復号化部３１ｂと、メッセージ処理部３１ｃとを含み、前記メッセージ処理部３１ｃは、アドレス処理部３１ｄを含む。
【００４３】
アドレス処理部３１ｄは、アドレス自動設定機能により、ノード３１が使用するＩＰｖ６アドレスを決定して、試験アドレス(tentative address)を生成し、ＣＡ１０からＩＰｖ６アドレスを生成するための中間アドレスが伝送される場合には、その中間アドレスを用いて、ＩＰｖ６アドレスを生成する。
【００４４】
また、メッセージ処理部３１ｃは、乱数を生成し、乱数(random number)情報及びパスワード情報を用いて、ＮＳメッセージを生成して、ＣＡ１０へ伝送する。
【００４５】
そして、ＣＡ１０から伝送されるＮＡメッセージから秘密キー情報及び中間アドレス情報を把握する。
【００４６】
また、メッセージ処理部３１ｃは、ＣＡ１０から認証を受けた以後に、使用者から他のノードＢ３２、Ｃ３３との通信要請がある場合には、通信要請メッセージを生成して他のノードＡ３１、Ｃ３３へ伝送し、他のノードＢ３２、Ｃ３３から伝送される応答メッセージにより、他のノードＢ３２、Ｃ３３が、ＣＡ１０から認証を受けたノードであるか否かを判断する。
【００４７】
暗号/復号化部３１ｂは、メッセージ処理部３１ｃで生成されるメッセージを、該当ノードＡ３１の公開キー又はＣＡ１０から伝送される秘密キーにより暗号化して、他のノードＢ３２、Ｃ３３又はＣＡ１０から伝送されるメッセージを、個人キー又は秘密キーで復号化する。
【００４８】
ネットワークインターフェース部３１ａは、ＣＡ１０又は他のノードＢ３２、Ｃ３３からＩＰｖ６保安網２０を通じて伝送されるメッセージを受信し、メッセージ処理部３１ｃで生成されるメッセージを、ＩＰｖ６保安網２０を通じて、ＣＡ１０又は他のノードＢ３２、Ｃ３３へ伝送する。
【００４９】
図６は、本発明の好ましい実施形態による認証機関の内部構成を説明するための内部ブロック図である。
【００５０】
図６を参照すると、本実施形態による認証機関(ＣＡ)１０は、認証処理部１１と、暗号/復号化処理部１３と、ＩＰインターフェース部１４と、データベース(ＤＢ)１２とを含む。
【００５１】
ＩＰインターフェース部１４は、ノードＡ３１、Ｂ３２、Ｃ３３から、ＩＰｖ６保安網２０を通じて伝送されるＮＳメッセージを受信して、ＣＡ１０で生成されるＮＡメッセージを、ＩＰｖ６保安網２０を通じて、ノードＡ３１、Ｂ３２、Ｃ３３へ伝送する。
【００５２】
暗号/復号化処理部１３は、ノードＡ３１、Ｂ３２、Ｃ３３から伝送されるＮＡメッセージを、ＣＡ１０の個人キーで復号化して、ＣＡ１０で生成されるＮＡメッセージを、各ノード３１、３２、３３の公開キーで暗号化する。
【００５３】
また、暗号/復号化処理部１３は、Ｃａ１０から各ノードＡ３１、Ｂ３２、Ｃ３３へ伝送する中間アドレス情報を、秘密キーで暗号化する。
【００５４】
ＤＢ１２は、ＩＰｖ６保安網２０への接続許可を受けた各ノードＡ３１、Ｂ３２、Ｃ３３に割り当てる中間アドレス情報を、中間アドレステーブルの形態で保存する。
【００５５】
このような中間アドレステーブルは、次の表１のように構成することができる。
【００５６】
【表１】
0004033868.tif 000002
【００５７】
表１で説明されるように、中間アドレステーブルには、ＩＰｖ６保安網２０への接続許可を受けた各ノードＡ３１、Ｂ３２、Ｃ３３情報と、該当ノードＡ３１、Ｂ３２、Ｃ３３に割り当てられる中間アドレス情報とを保存している。
【００５８】
即ち、ＣＡ１０は、ノードＡ３１からＮＳメッセージが伝送される場合には、ノードＡ３１が、ＩＰｖ６保安網２０への接続許可を受けた場合には、中間アドレス情報を‘１Ａ:１Ｂ'としたＩＰｖ６アドレスを使用するようにし、ノードＢ３２は、‘１Ｂ:１Ａ'を中間アドレスとしたＩＰｖ６アドレスを使用するようにする。
【００５９】
このとき、中間アドレステーブルに保存される各中間アドレスは、一つのＩＰｖ６保安網２０内で、重複しないようにして、一つのＩＰｖ６保安網２０で同一のＩＰｖ６アドレスを使用する複数個のノードＡ３１、Ｂ３２、Ｃ３３が発生しないようにすることが望ましい。
【００６０】
認証処理部１１は、ノードＡ３１、Ｂ３２、Ｃ３３からＮＳメッセージが伝送される場合には、該当ノードＡ３１、Ｂ３２、Ｃ３３が、ＩＰｖ６保安網２０への接続が許可されたか否かを判断して、許可された場合には、ＤＢ１２から該当ノードＡ３１、Ｂ３２、Ｃ３３に割り当てる中間アドレス情報を検索して、その中間アドレス情報が含まれるＮＡメッセージを生成する。
【００６１】
また、認証処理部１１は、ＩＰｖ６保安網２０への接続許可を受けた各ノードＡ３１、Ｂ３２、Ｃ３３の間で通信ができるようにする保安情報を、生成されるＮＡメッセージに含ませる。
【００６２】
このとき、ＣＡ１０が、各ノードＡ３１、Ｂ３２、Ｃ３３へ伝送する保安情報には、ＩＰｖ６保安網２０に接続する各ノードＡ３１、Ｂ３２、Ｃ３３が使用する秘密キー情報及び中間アドレス情報などが該当する。
【００６３】
図７は、本発明の好ましい実施形態による各ノードが認証機関から認証を受ける方法についての流れを説明するためのフローチャートである。
【００６４】
図７を参照すると、ノードＡ３１のアドレス処理部３１ｄは、ＩＰｖ６保安網２０に接続するために、アドレス自動設定機能により、ＩＰｖ６アドレスを生成し、メッセージ処理部３１ｃは、アドレス処理部３１ｄで生成されるＩＰｖ６アドレス情報を用いて、ＮＳメッセージを生成する(ステップ１。なお、図中では、ステップをＳと略す。以下同じ。)。
【００６５】
次に、ノードＡ３１の暗号/復号化部３１ｂは、メッセージ処理部３１ｃで生成されたＮＳメッセージを、ＣＡ１０の公開キーで暗号化し、その暗号化されたＮＳメッセージを、ＩＰｖ６保安網２０を通じて、ＣＡ１０へ伝送する(ステップ２)。
【００６６】
次に、ＣＡ１０のＩＰインターフェース部１４は、ノードＡ３１から伝送されるＮＳメッセージを受信して、暗号/復号化処理部１３は、ＣＡ１０の個人キーで、ＮＳメッセージを復号化する(ステップ３)。
【００６７】
そして、認証処理部１１は、ＮＳメッセージを伝送したノードＡ３１が、ＩＰｖ６保安網２０に接続が許可されたか否かを、ＤＢ１２に保存された中間アドレステーブルを検索して判断し、接続が許可された場合には、該当ノードＡ３１に割り当てられた中間アドレス情報を検索する(ステップ４)。
【００６８】
その後に、認証処理部１１は、中間アドレステーブルから検索された中間アドレス情報、及び、ＩＰｖ６保安網２０で使用される秘密キー情報が含まれるＮＡメッセージを生成する(ステップ５)。
【００６９】
暗号/復号処理部１３は、認証処理部１１で生成したＮＡメッセージを、ノード３１の公開キーで暗号化して、ＩＰインターフェース部１４を通じてノード３１へ伝送する(ステップ６)。
【００７０】
ノード３１の暗号/復号化部３１ｂは、ＣＡ１０から伝送されるＮＡメッセージを、個人キーで復号化し、メッセージ処理部３１ｃは、ＮＡメッセージに含まれている秘密キー情報及び中間アドレス情報を把握する(ステップ７)。
【００７１】
そして、アドレス処理部３１ｄは、メッセージ処理部３１ｃで把握された中間アドレス情報を用いて、ＩＰｖ６アドレスを生成する(ステップ８)。
【００７２】
一例として、ノードＡ３１が、ＣＡ１０から認証を受ける方法について簡単に説明すると、まず、ノードＡ３１は、アドレス自動設定機能により、試験アドレス(tentative address)を生成する。
【００７３】
即ち、ノードＡ３１のインターフェースＭＡＣアドレスが‘0A:00:2B:3B:70:1E'で、ネットワークプレフィックス(Network Prefix)が‘3FFE:2E01:DEC1::/64'の場合には、ノードＡ３１のアドレス処理部３１ｄは、ＩＰｖ６アドレスで‘3FFE:2E01:DEC1::0A00:2BFF:FE3B:701E'を生成する。
【００７４】
そして、ノードＡ３１のメッセージ処理部３１ｃは、乱数(ＲＮ(Ａ))を生成し、その生成された乱数情報(ＲＮ(Ａ))と、パスワード情報(ＰＷ(Ａ))とを用いて、ＮＳメッセージを生成する。
【００７５】
ここで、ＰＷ(Ａ)は、ＣＡ１０がノードＡ３１を認証するための情報を意味し、このようなＰＷ(Ａ)には、ノードＡ３１のＩＤ情報及びパスワード情報が該当する。
【００７６】
そして、ＲＮ(Ａ)は、ノードＡ３１が生成した乱数情報を意味し、このような乱数情報は、ＣＡ１０が、悪意を持って接続する侵入ノード(図示せず)のメッセージを遮断するために使用される情報である。
【００７７】
ノードＡ３１が、パスワード情報(ＰＷ(Ａ))及び乱数情報(ＲＮ(Ａ))を用いて、ＮＳメッセージを生成することは、ノード３１が、ＮＳメッセージを、ネットワークにブロードキャスト方式で伝送するため、ＣＡ１０ではない、悪意を有する目的でＩＰｖ６保安網２０に接続するノード(図示せず)もＮＳメッセージを受信することができ、このような悪意を有するノードが、ノードＡ３１で、不正に生成したＮＡメッセージを伝送する可能性が高くなる。  
【００７８】
したがって、ノードＡ３１は、悪意を有するノードが、ＮＡメッセージを生成することを防止するために、乱数情報(ＲＮ(Ａ))は、ＮＳメッセージをＣＡ１０の公開キーで暗号化して伝送し、ＣＡ１０だけを乱数情報(ＲＮ(Ａ))を復号化できるようにして、ＣＡ１０は、ノードＡ３１から伝送される乱数情報(ＲＮ(Ａ))を復号化して、ノードＡ３１の公開キーで暗号化して、ＮＡメッセージを伝送することにより、ＣＡ１０が、認証のために伝送するＮＡメッセージであることを確認する。
【００７９】
また、ＣＡ１０の認証処理部１１は、ノードＡ３１で割り当てる中間アドレス情報(ＤＡ(Ａ))である‘１Ａ:１Ｂ'を中間アドレステーブルから検索して、ＩＰｖ６保安網２０の秘密キーで暗号化して、秘密キーで暗号化された中間アドレス情報(ＤＡ(Ａ))と、秘密キー情報(ＳＳ(Ａ))と、ノードＡ３１の乱数情報(ＲＮ(Ａ))とを、ノードＡ３１の公開キーで暗号化して、ＮＡメッセージを生成して、その生成されたＮＡメッセージを、ノードＡ３１へ伝送する。
【００８０】
そして、ノードＡ３１の暗号/復号化部３１ｂは、ＣＡ１０から伝送されるＮＡメッセージを、自身の個人キーで復号化し、メッセージ処理部３１ｃは、ＮＡメッセージから乱数情報(ＲＮ(Ａ))を把握して、自身が生成した乱数情報(ＲＮ(Ａ))であるか否かを確認する。
【００８１】
そして、メッセージ処理部３１ｃは、伝送されたＮＡメッセージの乱数情報が、自身が生成した乱数情報(ＲＮ(Ａ))である場合には、中間アドレス情報(ＤＡ(Ａ))及び秘密キー情報(ＳＳ(Ｃ))を把握し、把握された秘密キー情報(ＳＳ(Ｃ))を、暗号/復号化部３１ｂに提供し、中間アドレス情報(ＤＡ(Ａ))を、アドレス処理部３１ｄに提供する。
【００８２】
アドレス処理部３１ｄは、メッセージ処理部３１ｃから提供される中間アドレス情報(ＤＡ(Ａ))を用いて、ＩＰｖ６アドレスを生成し、暗号/復号化部３１ｂは、他のノードＢ３２、Ｃ３３と通信が設定される場合には、秘密キー(ＳＳ(Ｃ))で他のノードＢ３２、Ｃ３３と交換されるメッセージを暗号/復号化する。
【００８３】
即ち、アドレス処理部３１ｄは、ＣＡ１０から伝送された中間アドレス情報(ＤＡ(Ａ))である‘１Ａ:１Ｂ'を用いて、ＩＰｖ６アドレスである‘3FFE:2E01:DEC1::0A00:2B1A:1B3B:701E'を生成する。
【００８４】
図８は、本発明の好ましい実施形態による各ノード間の相互認証方法についての流れを説明するためのフローチャートである。
【００８５】
図８を参照して、ノードＡ３１がノードＢ３２へ認証を要請する場合について説明する。
【００８６】
ノードＡ３１のメッセージ処理部３１ｃは、使用者からノードＢ３２との通信が要請される場合には、乱数情報(ＲＮ(Ａ))を生成し、暗号/復号化部３１ｂは、認証要請メッセージをノードＢ３２の公開キーで暗号化して、ネットワークインターフェース部３１ａを通じて、ノードＢ３２へ伝送する(ステップ１０)。
【００８７】
即ち、ノードＡ３１は、認証要請メッセージをノードＢ３２の公開キーで暗号化して伝送する。
【００８８】
ノードＢ３２の暗号/復号化部３２ｂは、ネットワークインターフェース部３２ａを通じて受信される認証要請メッセージを、ノードＢ３２の個人キーで復号化し、メッセージ処理部３２ｃは、乱数情報(ＲＮ(Ｂ))を生成する。
【００８９】
次に、メッセージ処理部３２ｃは、ノードＡ３１の乱数情報(ＲＮ(Ａ))と、生成された乱数情報(ＲＮ(Ｂ))と、ノードＡ３１の中間アドレス情報(ＤＡ(Ａ))と、自身の中間アドレス情報(ＤＡ(Ｂ))を変数としたハッシュ関数の関数値の半分と、ノードＡ３１の乱数情報(ＲＮ(Ａ))と、ノードＢ３２の乱数情報(ＲＮ(Ｂ))とをノードＡ３１の公開キーで暗号化して、認証応答メッセージを生成して、その生成された認証応答メッセージを、ノードＡ３１へ伝送する(ステップ１１)。
【００９０】
ここで、ノードＡ３１及びノードＢ３２がＣＡ１０から伝送を受けた中間アドレス情報(ＤＡ(Ａ)、ＤＡ(Ｂ))は、ＣＡ１０から伝送された秘密キー情報(ＳＳ(Ｃ))を用いて復号化することにより把握することができる。
【００９１】
即ち、ノードＢ３２は、ノードＡ３１から伝送された認証要請メッセージについての認証応答メッセージを、ノードＡ３１の公開キーで暗号化して伝送する。
【００９２】
そして、ノードＡ３１の暗号/復号化部３１ｂは、ネットワークインターフェース部３１ａを通じて受信される認証応答メッセージを、自身の個人キーで復号化して(ステップ１２)、メッセージ処理部３１ｃは、認証応答メッセージに含まれるハッシュ関数の関数値と自身のハッシュ関数値の半分を合わせて、一つのハッシュ関数値になるか否かを判断する(ステップ１３)。
【００９３】
即ち、ノードＡ３１のメッセージ処理部３１ｃは、ノードＢ３２から伝送される半分の関数値と、自身のハッシュ関数の半分の値を合算して、正しいハッシュ関数値になるか否かを判断して、正しいハッシュ関数値である場合には、ノードＢ３２から伝送されるハッシュ関数値が有効であると判断する。
【００９４】
このとき、ノードＢ３２から伝送される認証応答メッセージに前半部の半分のハッシュ関数値が含まれると、ノードＡ３１は、後半部の半分のハッシュ関数値と、伝送されるハッシュ関数値を合算することができる。
【００９５】
また、ノードＢ３２から伝送される認証応答メッセージに含まれるハッシュ関数値を、任意の部分から抜粋する場合には、認証要請メッセージを伝送したノードＡ３１は、認証応答メッセージに含まれるハッシュ関数値に、他の部分のハッシュ関数値を合算することができる。
【００９６】
そして、ノードＡ３１のメッセージ処理部３１ｃは、認証応答メッセージに含まれるハッシュ関数値と自分のハッシュ関数値とを合算した全体ハッシュ関数値が、正しくはないと判断した場合には、ノードＢ３２が、ＩＰｖ６保安網２０に接続が許可できないノードであると判断して、接続を終了する(ステップ１４)。
【００９７】
一方で、ノードＡ３１のメッセージ処理部３１ｃは、全体ハッシュ関数値が正しいと判断した場合には、ノードＢ３２から伝送されたハッシュ関数値を除去した残りのハッシュ関数値と、ノードＢ３２の乱数情報(ＲＮ(Ｂ))とを、ノードＢ３２の公開キーで暗号化して、認証確認メッセージを生成して、その生成された認証確認メッセージを、ノードＢ３２へ伝送する(ステップ１５)。
【００９８】
そして、ノードＢ３２の暗号/復号化部３２ｂは、認証確認メッセージを個人キーで復号化し、メッセージ処理部３２ｃは、認証確認メッセージに含まれる残りの半分のハッシュ関数値が有効であるか否かを判断して、有効である場合には、ノードＡ３１との相互認証が完了されたと判断して、ノードＡ３１との通信を開始する(ステップ１６)。
【００９９】
一例として、ＩＰｖ６保安網２０を通じて各ノードＡ３１、Ｂ３２との間で、相互認証を実行する方法について説明すれば、まず、ノードＡ３１は、認証に使用される乱数(ＲＮ(Ａ))を生成して、ノードＢ３２の公開キーで(ＰＫ(Ｂ))で暗号化して、ノードＢ３２へ認証要請メッセージを伝送する。
【０１００】
ノードＢ３２は、ノードＡ３１と相互認証のための乱数ＲＮ(Ｂ)を生成して、ハッシュ関数を用いて、相互認証を実行するための認証応答メッセージを生成する。
【０１０１】
このとき、ハッシュ関数を使用して認証応答メッセージを生成する理由は、ハッシュ関数は、関数値から変数値を導出しにくいという特徴を利用して、ノード３１、３２の間の相互認証を実行するためである。
【０１０２】
以下、ハッシュ関数について簡単に説明する。
【０１０３】
次の数式１は、ハッシュ関数を示す。
【０１０４】
（数式１）
h(M) → H
【０１０５】
ここで、‘h'は、ハッシュ関数を表し、‘M'は、ハッシュ関数に使用される変数を表し、‘H'は、変数‘M'から導出されるハッシュ関数値を表す。
【０１０６】
相互認証に使用されるハッシュ関数は、送信者が、ハッシュ関数の関数値と変数とを同時に伝送して、受信者は、同一のハッシュ関数を使用して、変数から関数値を導出し、その導出された関数値と伝送される関数値とを比較する。
【０１０７】
そして、受信者は、導出された関数値と伝送される関数値が同一である場合には、送信者を認証する。
【０１０８】
即ち、ノードＢ３２は、ＣＡ１０から認証を受けながら伝送を受けた秘密キー(ＳＳ(Ｃ))を用いて、自身が割り当てを受けた中間アドレス情報(ＤＡ(Ｂ))と、ノードＡ３１が割り当てを受けた中間アドレス情報(ＤＡ(Ａ))とを把握する。
【０１０９】
そして、ノードＢ３２のメッセージ処理部３２ｃは、ノードＡ３１の乱数情報(ＲＮ(Ａ))と、自身の乱数情報(ＲＮ(Ｂ))と、ノードＡ３１の中間アドレス情報(ＤＡ(Ａ))と、自身の中間アドレス情報(ＤＡ(Ｂ))とを変数とするハッシュ関数値の半分の値と、ノードＡ３１の乱数情報(ＲＮ(Ａ))と、自身の乱数情報(ＲＮ(Ｂ))とを、ノードＡ３１の公開キーで暗号化して、認証応答メッセージで伝送する。
【０１１０】
このとき、ノードＢ３２は、ノードＡ３１がＣＡ１０から認証を受けたノードである場合には、ＩＰｖ６アドレスの下位６４ビットの中で、１６ビットは、ＣＡ１０から伝送を受けた秘密キー(ＳＳ(Ｃ))で暗号化されているので、ノードＡ３１から伝送される認証要請メッセージのＩＰｖ６アドレスが、ＣＡ１０から伝送を受けた秘密キー(ＳＳ(Ｃ))により正しく復号化されると、ノードＡ３１が、認証を受けたノードであることを判断することができる。
【０１１１】
また、ノードＢ３２が伝送する認証応答メッセージに含まれるハッシュ関数の変数が、ノードＡ３１の中間アドレス情報(ＤＡ(Ａ))と、ノードＢ３２の中間アドレス情報(ＤＡ(Ｂ))とともに、ノードＡ３１の乱数情報(ＲＮ(Ａ))及びノードＢ３２の乱数情報(ＲＮ(Ｂ))を使用することにより、ハッシュ関数値が固定的ではなく、認証を試みる度に変化するようになるため、一層、保安性が保障される。
【０１１２】
そして、ノードＡ３１の暗号/復号化部３１ｂは、ノードＢ３２から伝送される認証応答メッセージを自身の個人キーで復号化し、メッセージ処理部３１ｃは、認証応答メッセージにハッシュ関数値が半分だけ含まれているので、自身が持っているハッシュ関数値を合算して、伝送されたハッシュ関数値が有効であるか否かを判断する。
【０１１３】
また、メッセージ処理部３１ｃは、ハッシュ関数値が有効であると判断した場合には、ノードＢ３２についての相互認証が完了されたことを知らせる認証確認メッセージをノードＢ３２へ伝送する。
【０１１４】
このとき、ノードＡ３１は、認証確認メッセージにノードＢ３２から伝送されたハッシュ関数値を除去して、残りのハッシュ関数値を含ませて伝送する。
【０１１５】
そして、ノードＢ３２は、ノードＡ３１から伝送される認証確認メッセージに含まれたハッシュ関数の半分の値が有効であるか否かを判断し、有効である場合には、ノードＡ３１についての相互認証が完了されたと判断して、ノードＡ３１との通信を開始する。
【０１１６】
図９は、本発明の好ましい実施形態によるＩＰｖ６保安網を通じてノードが通信を実行する方法についての流れを説明するためのフローチャートである。
【０１１７】
図９を参照すると、まず、ノードＢ３２は、ＣＡ１０から認証を受けて、ＣＡ１０から伝送される中間アドレス情報(ＤＡ(Ｂ))を用いたＩＰｖ６アドレスを使用して、ＩＰｖ６保安網２０に接続している(ステップ２０)。
【０１１８】
そして、ノードＡ３１が、ＩＰｖ６保安網２０に新規接続する場合は、ノードＡ３１のアドレス処理部３１ｄは、アドレス自動設定機能により試験アドレスを生成する。
【０１１９】
そして、メッセージ処理部３１ｃは、乱数(ＲＮ(Ａ))を生成して、パスワード情報(ＰＷ(Ａ))及び乱数情報(ＲＮ(Ａ))を用いて、ＮＳメッセージを生成し、暗号/復号化部３１ｂは、ＮＳメッセージをＣＡ１０の公開キーで暗号化して(ＥＮＰＫ(Ｃ))、ネットワークインターフェース部３１ａを通じてＣＡ１０へ伝送する(ＥＮＰＫ(Ｃ)(ＰＷ(Ａ)、ＲＮ(Ａ))(ステップ２１)。
【０１２０】
そして、ＣＡ１０は、ノードＡ３１からＮＳメッセージが伝送されると、ＮＳメッセージを個人キーで復号化して、ノードＡ３１がＩＰｖ６保安網２０に接続が許可されたか否かを、中間アドレステーブルから検索して判断し、接続が許可された場合には、ノードＡ３１に割り当てる中間アドレス情報(ＤＡ(Ａ))を検索する。
【０１２１】
また、ＣＡ１０は、検索された中間アドレス情報(ＤＡ(Ａ))を秘密キーで暗号化して、秘密キー情報(ＳＳ(Ｃ))と、把握されたノードＡ３１の乱数情報(ＲＮ(Ａ))と、秘密キーで暗号化された中間アドレス情報(ＥＮＰＫ(Ｃ)ＤＡ(Ａ))とを、ノードＡ３１の公開キーで暗号化して(ＥＮＰＫ(Ａ))、ＮＡメッセージへ伝送する(ＥＮＰＫ(Ａ)(ＲＮ(Ａ)、ＳＳ(Ｃ)、ＥＮＰＫ(Ｃ)(ＤＡ(Ａ))(ステップ２２)。
【０１２２】
ノードＡ３１の暗号/復号化部３１ｂは、ＣＡ１０から伝送されるＮＡメッセージを個人キーで復号化して、メッセージ処理部３１ｃは、ＣＡ１０から伝送される秘密キー情報(ＳＳ(Ｃ))を把握する。
【０１２３】
また、メッセージ処理部３１ｃは、ＮＡメッセージに含まれる自身の乱数情報(ＲＮ(Ａ))が正しい場合には、ＮＡメッセージを伝送したＣＡ１０がＩＰｖ６保安網１０の正しいＣＡ１０と判断する。即ち、悪意の目的でＩＰｖ６保安網２０に接続して、ノードＡ３１から伝送されるＮＳメッセージについての、不正ＮＡメッセージを伝送する悪意を有するノードではなく、ＩＰｖ６保安網２０の正しいＣＡ１０であると判断する。
【０１２４】
そして、暗号/復号化部３１ｂは、メッセージ処理部３１ｃが把握した秘密キー(ＳＳ(Ｃ))で中間アドレス情報(ＤＡ(Ａ))を復号化して、アドレス処理部３１ｄは、暗号/復号化部３１ｂで復号された中間アドレス情報(ＤＡ(Ａ))を使用して、ＩＰｖ６アドレスを生成する。
【０１２５】
ノードＡ３１のメッセージ処理部３１ｃは、使用者からノードＢとの通信が要請されると、乱数(ＲＮ(Ａ))を生成して、認証要請メッセージを生成する。
【０１２６】
そして、暗号/復号化部３１ｂは、生成される認証要請メッセージをノードＢ３２の公開キーで暗号化して(ＥＮＰＫ(Ｂ))、ネットワークインターフェース部３１ａを通じてノードＢ３２へ伝送する(ＥＮＰＫ(Ｂ)(ＲＮ(Ａ)))(ステップ２３)。
【０１２７】
ノードＢ３２の暗号/復号化部３２ｂは、ノードＡ３１から伝送される認証要請メッセージを、個人キーで復号化して、メッセージ処理部３２ｃは、ノードＡ３１との相互認証のための乱数(ＲＮ(Ｂ))を生成する。
【０１２８】
そして、メッセージ処理部３２ｃは、ノードＡ３１の中間アドレス情報(ＤＡ(Ａ))と、自分の中間アドレス情報(ＤＡ(Ｂ))と、ノードＡ３１の乱数情報(ＲＮ(Ａ))と、生成される乱数情報(ＲＮ(Ｂ))とを変数としたハッシュ関数値の半分の値と、ノードＡ３１の乱数情報(ＲＮ(Ａ))と、生成された乱数情報(ＲＮ(Ｂ))とをノードＡ３１の公開キーで暗号化して(ＥＮＰＫ(Ａ))、認証応答メッセージを伝送する(ＥＮＰＫ(Ａ)(ＲＮ(Ａ)、ＲＮ(Ｂ)、ｈ２/１(ＲＮ(Ａ)、ＲＮ(Ｂ)、ＤＡ(Ａ)、ＤＡ(Ｂ)))(ステップ２４)。
【０１２９】
ノードＡ３１の暗号/復号化部３１ｂは、個人キーでノードＢ３２から伝送される認証応答メッセージを復号化して、メッセージ処理部３１ｃは、認証応答メッセージに含まれる半分のハッシュ関数値に、自身が有する半分のハッシュ関数値を合算した関数値が有効であるか否かを判断して、有効であれば、自身が有する残りの半分のハッシュ関数値及びノードＢ３２の乱数情報(ＲＮ(Ｂ))を、ノードＢ３２の公開キーで暗号化して(ＥＮＰＫ(Ｂ))、認証確認メッセージで伝送する(ＥＮＰＫ(Ｂ)(ＲＮ(Ｂ)、 ｈ２/２(ＲＮ(Ａ)、ＲＮ(Ｂ)、ＤＡ(Ａ)、ＤＡ(Ｂ))))(ステップ２５)。
【０１３０】
そして、ノードＢ３２の暗号/復号化部３２ｂは、ノードＡ３１から伝送される認証確認メッセージを個人キーで復号化して、メッセージ処理部３２ｃは、認証確認メッセージに含まれる半分のハッシュ関数値が有効であるか否かを判断して、有効であれば、ＩＰｖ６保安網２０を通じて通信を実行するための相互認証が完了されたと判断して、ノードＡ３１と通信を開始するようになる。
【０１３１】
本発明は、本発明の技術的思想から逸脱することなく、他の種々の形態で実施することができる。前述の実施形態は、あくまでも、本発明の技術内容を明らかにするものであって、そのような具体例のみに限定して狭義に解釈されるべきものではなく、本発明の精神と特許請求の範囲内で、様々に変更して実施することができるものである。
【図面の簡単な説明】
【０１３２】
【図１】一般的なＩＰｖ６アドレス構成を説明するための図である。
【図２】ＩＰｖ６のアドレス自動設定機能を説明するための図である。
【図３】アドレス自動設定機能で生成されたＩＰｖ６アドレスのインターフェースＩＤを説明するための図である。
【図４】一般的なＩＰｖ６保安網の構成を説明するための全体ブロック図である。
【図５】本発明の好ましい実施形態によるノードの構成を説明するための内部ブロック図である。
【図６】本発明の好ましい実施形態による認証機関の内部構成を説明するための内部ブロック図である。
【図７】本発明の好ましい実施形態による各ノードが認証機関から認証を受ける方法についての流れを説明するためのフローチャートである。
【図８】本発明の好ましい実施形態による各ノード間の相互認証方法についての流れを説明するためのフローチャートである。
【図９】本発明の好ましい実施形態によるＩＰｖ６保安網を通じてノードが通信を実施する方法についての流れを説明するためのフローチャートである。
【符号の説明】
【０１３３】
１０  認証機関(ＣＡ)
１１  認証処理部
１２  データベース(ＤＢ)
１３  暗号/復号処理部
１４  ＩＰインターフェース部
２０  ＩＰｖ６保安網
３１、３２、３３  ノード
３１ａ  ネットワークインターフェース部
３１ｂ  暗号/復号化部
３１ｃ  メッセージ処理部
３１ｄ  アドレス処理部
【図１】
0004033868.tif 000003
【図２】
0004033868.tif 000004
【図３】
0004033868.tif 000005
【図４】
0004033868.tif 000006
【図５】
0004033868.tif 000007
【図６】
0004033868.tif 000008
【図７】
0004033868.tif 000009
【図８】
0004033868.tif 000010
【図９】
0004033868.tif 000011