(57)【要約】【目的】直感的で分かり易く、信頼性が高い暗号通信のためのパラメータ設定方法を提供すること。【構成】物理的な接触により接続を行う端子を備えた通信手段と、暗号アルゴリズム、認証アルゴリズム、鍵、通信相手の識別子、これらのデータ集合の識別用情報等のパラメータを記録する手段とを有する装置を用いて、片方の通信相手に接続された前記装置が前記片方の通信相手から前記パラメータを受信して記録するステップと、他方の通信相手に接続された前記装置が記録している前記パラメータを前記他方の通信相手に送信するステップと、伝達された前記パラメータを用いて前記片方の通信相手と前記他方の通信相手との間で通信を行い前記パラメータが正しく共有されたことを確認するステップを有する。【選択図】      図１
2005033520.tif 000002
【特許請求の範囲】
【請求項１】
物理的な接触により接続を行う端子を備えた通信手段と、暗号アルゴリズム、認証アルゴリズム、鍵、通信相手の識別子、これらのデータ集合の識別用情報等のパラメータを記録する手段とを有する装置を用いて、片方の通信相手に接続された前記装置が前記片方の通信相手から前記パラメータを受信して記録するステップと、他方の通信相手に接続された前記装置が記録している前記パラメータを前記他方の通信相手に送信するステップと、伝達された前記パラメータを用いて前記片方の通信相手と前記他方の通信相手との間で通信を行い前記パラメータが正しく共有されたことを確認するステップを有することを特徴とする暗号通信のためのパラメータ設定方法。
【請求項２】
前記通信手段としてＲＪ−４５  モジュラープラグ、前記暗号通信としてＩＰｓｅｃ  であることを特徴とする請求項１記載の暗号通信のためのパラメータ設定方法。
【請求項３】
前記通信手段としてＲＪ−４５  モジュラージャック、前記暗号通信としてＩＰｓｅｃ  であって、前記装置の機能を有して他のＩＰｖ６装置との間で前記暗号通信のためのパラメータ設定方法を実行することを特徴とする請求項２記載の暗号通信のためのパラメータ設定方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、暗号通信のためのパラメータ設定方法に関する。
【０００２】
【従来の技術】
ＩＰｖ６の登場により、従来はネットワークに接続することが考えられなかった装置がネットワークに接続する場面が考えられてきた。例えば、インターネットに直接接続可能なエンドユーザ向けディジタルカメラである。このようなディジタルカメラは、例えば、特許文献１に記載されている。
【０００３】
家庭にＩＰｖ６のネットワークが形成され、個人情報等のプライバシに影響のあるデータが複数のＩＰｖ６装置の間でやり取りされる状況が想定される。ネットワークが無線を含む場合を考慮すると、ＩＰｖ６装置の間はＩＰｓｅｃ  のような暗号技術で保護することが求められる。
【０００４】
ＩＰｓｅｃ  は、インターネット上の２つの装置が他の誰も知らない秘密データを共有し、その秘密データに基づいて暗号化や認証を行うプロトコルであり、通信に際して秘密データやお互いのＩＰｖ６アドレス等を安全に共有する必要がある。秘密データや互いのＩＰｖ６アドレス等のデータはＳＡ（Ｓｅｃｕｒｉｔｙ  Ａｓｓｏｃｉａｔｉｏｎ）と呼ばれる。ＳＡを自動で安全に共有するプロトコルはＩＫＥ（Ｉｎｔｅｒｎｅｔ  Ｋｅｙ  Ｅｘｃｈａｎｇｅ）と呼ばれ、ＲＦＣ２４０９  “Ｔｈｅ  Ｉｎｔｅｒｎｅｔ  Ｋｅｙ  Ｅｘｃｈａｎｇｅ  （ＩＫＥ）  ”において規定されている。
【０００５】
ここで、ＳＡを安全に共有するという意味は、意図する相手のみと確実にＳＡを共有するという意味であり、相手を確実に認証することを必要とする。ＩＫＥ  では秘密データを共有する方法としてＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ公開鍵配送方式（以下、ＤＨと記す）  が使われ、４つの認証方法が規定されている。
【０００６】
ＩＰｓｅｃ  を使うためには、手動で或はＩＫＥ  を用いて自動で２つの装置間でＳＡを共有する必要がある。ＳＡは、２つの装置のアドレス、プロトコル、暗号アルゴリズムと鍵、ＳＰＩ（Ｓｅｃｕｒｉｔｙ  Ｐａｒａｍｅｔｅｒ  Ｉｎｄｅｘ）  を含む。ＩＫＥ  を用いるには、通信相手を認証するためにｐｒｅ−ｓｈａｒｅｄ  ｋｅｙ或は公開鍵証明書の設定が必要である。何れの方法を用いてＳＡを共有するにしても、通信する２つの装置を識別して他の装置と混同することなくＩＰｓｅｃ  を使うために、ユーザはＳＡの設定又はｐｒｅ−ｓｈａｒｅｄ  ｋｅｙ或は証明書の設定を行わなければならない。
【０００７】
【特許文献１】
特開２００２−２６２１４６号公報
【発明が解決しようとする課題】
ＳＡに含まれるＩＰｖ６アドレスとＳＰＩ  はユーザが自由に決められる数値ではなく、ＩＰｖ６アドレスや暗号の鍵は１２８ビット程度の数値である。従って、それらの情報を含むＳＡを２つのＩＰｖ６装置に手動で設定するのは人間にとって面倒である。
【０００８】
又、ＩＰｖ  装置として、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）
以外の様々な装置が想定される。それらの中には、ＣＰＵ  の計算能力が小さいので負荷が重い証明書はサポートせず、表示や入力の機能も貧弱な装置もあり得る。
そのような場合、ボタンが小さい、ボタンの数が少ない、表示が小さくて見にくい等の原因で設定操作自体が繁雑である上に、上記のＩＰｖ６アドレスや鍵のような人間が扱いにくい数値を設定しなければならないので、極めて使い勝手が悪いという問題がある。
【０００９】
又、従来のネットワーク装置の場合、装置を通信ネットワークに接続し、ユーザがＰＣを操作端末として利用して、ネットワーク経由で装置にアクセスすることによって設定を行うものがあった。このような装置はＰＣの存在を前提とするので、ＰＣが無ければＩＰｓｅｃ  が利用できないという問題があった。
【００１０】
本発明は上記問題に鑑みてなされたもので、その目的とする処は、直感的で分かり易く、信頼性が高い暗号通信のためのパラメータ設定方法を提供することにある。
【００１１】
【課題を解決するための手段】
上記目的を達成するため、第１の発明は、通信手段と記憶手段、計算手段を有する携帯可能なハードウェアを用い、前記ハードウェアを２つのＩＰｖ６装置と順番に物理的に接触させることでそれらの装置の間でパラメータを共有する手段と、共有されたパラメータを使ってＩＰｖ６装置間で自動的に通信を行い正しいＳＡを設定する手段を有することを特徴とする。
【００１２】
従って、第１の発明によれば、表示や入力の機能に制約がある装置の場合でもユーザは前記ハードウェアを対象装置と順番に物理的に接触させるだけでパラメータを共有させることができ、共有後に対象装置間で自動的に通信が行われてＳＡが正しく設定されたことが確認され、ＩＰｓｅｃ  が行える状態に至る。
【００１３】
第２の発明は、他のＩＰｖ６装置と直接イーサネットケーブルで接続された際に、装置間で安全にパラメータを共有する手段と、共有されたパラメータを使ってＩＰｖ６装置間で自動的に通信を行い正しいＳＡを設定する手段を有するＩＰｖ６装置であることを特徴とする。
【００１４】
従って、第２の発明によれば、表示や入力の機能に制約がある装置の場合でもユーザは前記ＩＰｖ６装置を他のＩＰｖ６装置とケーブルで直接接続させることでＳＡを共有させることができ、共有後に対象装置間で自動的に通信が行われてそれらのＳＡが正しく設定されたことが確認され、ＩＰｓｅｃ  が行える状態に至る。
【００１５】
【発明の実施の形態】
以下に本発明の実施の形態を添付図面に基づいて説明する。
【００１６】
＜実施の形態１＞
本実施の形態では、ある装置（Ａとする）  が別の装置（Ｂとする）  とＩＰｓｅｃ  の通信を行うためにＳＡの共有を実行する例について説明する。
【００１７】
図２は本発明が適用される接続環境を模式的に示したものである。図２はＬＡＮ  に接続されたホスト２０４  ，２０５  ，２０６  が  ｄｅｆａｕｌｔ  ｇａｔｅｗａｙ  ２０２経由でインターネット２０１  にアクセスできる環境を示す。本実施の形態では、各ホストはリンク２０７  で接続するものとし、具体的にはイーサネットであるとする。リンクとは、それに接続された装置がそれを介して通信することができる設備若しくはメディアであり、ＩＰ層の下側に接する。
【００１８】
リンクにはイーサネットの他に、ＰＰＰ  リンク、Ｘ．２５、フレームリレー、ＡＴＭ  ネットワークがある。リンクに接続されたＩＰｖ６対応装置をノードと呼ぶ。ノードの内部構成の典型例を図３に示す。
【００１９】
ノードには、ルーターとホストがあり、ルーターは自分宛ではないパケットを転送するがホストは転送しない。図３から分かるように、ＣＰＵ  、ＲＯＭ  、ＲＡＭ  、ＨＤ  （ハードディスク）  、ネットワーク・インターフェイス等を有する計算機であり、ルーターは複数のインターフェイスを持つのに対しホストは多くの場合は１つのインターフェイスを持つ。ノードによってはＨＤを持たないものもある。
【００２０】
例えば、装置Ａはホスト２０４  、装置Ｂはホスト２０５  であり、リンク２０７  はイーサネット或は無線ＬＡＮ  （ＩＥＥＥ  ８０２．１１ｂ）、或はそれらが混在している場合等が考えられる。
【００２１】
尚、以下の処理内容（手順）は、装置若しくはプログラムとして実現され、その装置を有するノードが実行する若しくはそのプログラムがＲＯＭ  若しくはＨＤに格納されたノードが実行する。例えば、プログラムとして実現される場合は、そのプログラムをＣＰＵ  が読み込み、必要に応じてＲＡＭ  を計算のための空間として利用しながらバスを介して対象データに対して暗号化の演算を施し暗号文を計算する、というような動作を行う。このような動作は計算機としての一般的な動作であるため、誤解される恐れのない範囲で詳細は省略し、ノードがデータを暗号化する、というように手順の本質について説する。
【００２２】
本発明のプロトコルを図１を参照しながら説明する。
【００２３】
図１は携帯可能なハードウェア（ｋｅｙ＿ｈａｒｄｗａｒｅ  と記す）  を用いてｎｏｄｅ  Ａとｎｏｄｅ  Ｂの間でＳＡを共有するときのプロトコルである。ｋｅｙ＿ｈａｒｄｗａｒｅは、通信手段と記録手段を有するＣＰＵ  のような構成であり、例えば、図３のＨＤ３０６  やキーボード／ポインティングデバイスのインターフェイス３０８  、モニターのインターフェイス３０９  を持たないノードであると考えることができる。或は、図１を参照して説明するプロトコルを実行できるように実装されたＬＳＩ  をＣＰＵ  とＲＡＭ  の代りに搭載しても良い。
【００２４】
ｋｅｙ＿ｈａｒｄｗａｒｅの一具体例は、小さな消ゴム程度の大きさで、ＲＪ−４５  モジュラープラグを有する携帯可能な装置である。
【００２５】
ｎｏｄｅ  Ａとｎｏｄｅ  Ｂは電源が入っており、ネットワークに接続されてインターフェイスにＩＰｖ６アドレスが割り当てられているものとする。
【００２６】
ステップＳ１０１で、ｎｏｄｅ  Ａは一時的にネットワーク・ケーブルを外され、ｋｅｙ＿ｈａｒｄｗａｒｅ（ＲＪ−４５  モジュラープラグ）がｎｏｄｅ  ＡのＲＪ−４５
モジュラジャックに接続される。ｋｅｙ＿ｈａｒｄｗａｒｅはｓｔａｔｅｌｅｓｓ  ａｄｄｒｅｓｓ  ａｕｔｏｃｏｎｆｉｇｕｒａｔｉｏｎ（ＲＦＣ  ２４６２参照）  を実行し、そのインターフェイスにＩＰｖ６リンクローカルアドレスを割り当て、Ｎｅｉｇｈｂｏｒ  Ｄｉｓｃｏｖｅｒｙ
（ＲＦＣ  ２４６１参照）  を実行し、接続された相手（ｎｏｄｅ  Ａ）のインターフェイスのアドレス（正確には、リンク層アドレス）を取得する。
【００２７】
次に  ｋｅｙ＿ｈａｒｄｗａｒｅ  は、初期パケットをｎｏｄｅ  Ａに送出する。初期パケットは、ｋｅｙ＿ｈａｒｄｗａｒｅのＩＤを含む。
【００２８】
ｎｏｄｅ  Ａは、初期パケットを受信すると、そのパケットに含まれる送信者（ｋｅｙ＿ｈａｒｄｗａｒｅ）のＩＤを取り出し、それが既に登録済みか否かを判断する。未登録の場合は登録するか否か確認メッセージを表示し、ユーザのＯＫ或はＮＧの入力を待つ。ＮＧが入力された場合は登録せず、プロトコルを中断する。ＯＫが入力された場合はＩＤを登録済みＩＤとして記録し、ＳＡの共有を開始する。常に登録する場合は、ｋｅｙ＿ｈａｒｄｗａｒｅのｎｏｄｅＡ  への登録の可否をユーザに訪ねる処理は省いても構わない。以下では、登録の可否をユーザに訪ねる場合を説明する。
【００２９】
ステップＳ１０２で、ｎｏｄｅ  Ａはセキュリティ・ポリシーに応じてｉｎｃｏｍｉｎｇ  ｃｏｎｎｅｃｔｉｏｎ
用ＳＡとｏｕｔｇｏｉｎｇ  ｃｏｎｎｅｃｔｉｏｎ
用ＳＡを定める。ｉｎｃｏｍｉｎｇ  ｃｏｎｎｅｃｔｉｏｎ
用ＳＡのＳＰＩ（Ｓｅｃｕｒｉｔｙ  ＰａｒａｍｅｔｅｒＩｎｄｅｘ）  として未使用の値を選択する。ｉｎｃｏｍｉｎｇ  ｃｏｎｎｅｃｔｉｏｎ用ＳＡのプロトコルとして、ＥＳＰ  、ＡＨ、それらの組み合わせをセキュリティ・ポリシーに応じて選択する。ｉｎｃｏｍｉｎｇ  ｃｏｎｎｅｃｔｉｏｎ用ＳＡのｄｅｓｔｉｎａｔｉｏｎ  ａｄｄｒｅｓｓ  として、ｎｏｄｅ  ＡのＩＰｖ６アドレスを指定する。以上の３つのデータの組（ＳＰＩ，プロトコル種別，ｄｅｓｔｉｎａｔｉｏｎ  ａｄｄｒｅｓｓ）によってＳＡが一意に定められる。
【００３０】
一方、ｏｕｔｇｏｉｎｇ  ｃｏｎｎｅｃｔｉｏｎ
用ＳＡは、そのｄｅｓｔｉｎａｔｉｏｎ  ａｄｄｒｅｓｓ  とＳＰＩ  が現時点では不明なのでブランクとする。ブランクは不定を意味する。不定を示す特定の値を定め、その値を指定しても良い。プロトコルは、セキュリティ・ポリシーに応じて選択し指定する。上記以外のパラメータに関しては、プロトコルとセキュリティ・ポリシーに応じてアルゴリズム（３ＤＥＳ−ＣＢＣ  ，ＨＭＡＣ−ＳＨＡ１  等）  を定め、乱数を生成して鍵とし（それぞれｉｎ＿ｋｅｙ，ｏｕｔ＿ｋｅｙ  とする）、モード（トランスポート、トンネル）を定める。本実施の形態では、ｎｏｄｅ  Ａはホストなのでトランスポート・モードとして説明する。
【００３１】
以上のようにして定められたｉｎｃｏｍｉｎｇ  ｃｏｎｎｅｃｔｉｏｎ  用ＳＡとｏｕｔｇｏｉｎｇ  ｃｏｎｎｅｃｔｉｏｎ  用ＳＡはｎｏｄｅ  Ａのカーネルに記録され、ｎｏｄｅ  Ａからｋｅｙ＿ｈａｒｄｗａｒｅに転送される。
但し、ＳＡは２つとは限らず、ｉｎｃｏｍｉｎｇ  ｃｏｎｎｅｃｔｉｏｎ  用に複数のＳＡ，ｏｕｔｇｏｉｎｇ  ｃｏｎｎｅｃｔｉｏｎ  用に複数のＳＡが記録されることもある。複数のＳＡが存在する場合、ｎｏｄｅ
ＡはそれらがひとまとまりのＳＡであることを記録しておく。
【００３２】
ｋｅｙ＿ｈａｒｄｗａｒｅは、転送されたＳＡを記録する。ステップＳ１０２の終了をユーザに伝えるため、例えばｋｅｙ＿ｈａｒｄｗａｒｅにＬＥＤ  がある場合はそれが点灯するｎｏｄｅ  Ａの表示部にステップＳ１０２の終了を表示する。
【００３３】
ステップＳ１０３でｋｅｙ＿ｈａｒｄｗａｒｅはｎｏｄｅ  Ａから取り外され、ｎｏｄｅ  Ａにはネットワーク・ケーブルが再び接続される。次に、ｎｏｄｅ  Ｂは一時的にネットワーク・ケーブルを外され、ｋｅｙ＿ｈａｒｄｗａｒｅがｎｏｄｅ  Ｂに接続される。この操作はユーザが行う。ｎｏｄｅ  Ａはｋｅｙ＿ｈａｒｄｗａｒｅが取り外されたこととネットワークケーブルが接続されたことを検出し（Ｎｅｉｇｈｂｏｒ  Ｄｉｓｃｏｖｅｒｙ
の機能による）  、ステップＳ１０７で送られるチャレンジ・データを検出するのを待つ。
【００３４】
ステップＳ１０４で、登録済みｋｅｙ＿ｈａｒｄｗａｒｅがｎｏｄｅ  Ｂに接続された場合、或は接続されたｋｅｙ＿ｈａｒｄｗａｒｅが登録された場合、ｋｅｙ＿ｈａｒｄｗａｒｅは、前述のようにｓｔａｔｅｌｅｓｓ  ａｄｄｒｅｓｓ  ａｕｔｏ  ｃｏｎｆｉｇｕｒａｔｉｏｎ（ＲＦＣ  ２４６２  参照）  を実行し、インターフェイスにＩＰｖ６リンクローカルアドレスを割り当て、Ｎｅｉｇｈｂｏｒ  Ｄｉｓｃｏｖｅｒｙ（ＲＦＣ  ２４６１  参照）  を実行し、接続された相手（ｎｏｄｅ  Ｂ）のインターフェイスのアドレス（正確には、リンク層アドレス）を取得する。そして、（既にＳＡが記録された状態であるので、初期パケットではなく）、第２パケットをｎｏｄｅ  Ｂに送出する。第２パケットは、ｋｅｙ＿ｈａｒｄｗａｒｅのＩＤを含む。
【００３５】
ステップＳ１０４で、ｎｏｄｅ  Ｂは、第２パケットを受信すると、そのパケットに含まれる送信者（ｋｅｙ＿ｈａｒｄｗａｒｅ）のＩＤを取り出し、それが既に登録済みか否かを判断する。未登録の場合は登録するか否か確認メッセージを表示し、ユーザのＯＫ或はＮＧの入力を待つ。ＮＧが入力された場合は登録せず、プロトコルを中断する。ＯＫが入力された場合はＩＤを登録済みＩＤとして記録し、ＳＡと鍵の共有を開始する。登録済みの場合、或はＯＫの入力により登録された場合、第２パケットに対する返事として第２返答パケットをｋｅｙ＿ｈａｒｄｗａｒｅに送る。
【００３６】
第２返答パケットを受け取ったｋｅｙ＿ｈａｒｄｗａｒｅは、ステップＳ１０５で、記録してあるＳＡをｎｏｄｅ  Ｂに送り、記録からＳＡを消去する。
【００３７】
ＳＡを受け取ったｎｏｄｅ  Ｂは、ｎｏｄｅ  Ｂのセキュリティ・ポリシーやサポートするアルゴリズムから判断して、使用可能なＳＡをｉｎｃｏｍｉｎｇ  ｃｏｎｎｅｃｔｉｏｎ用とｏｕｔｇｏｉｎｇ  ｃｏｎｎｅｃｔｉｏｎ用にそれぞれ１つ選択する。ｎｏｄｅ  Ｂにとってｉｎｃｏｍｉｎｇ  ｃｏｎｎｅｃｔｉｏｎ用ＳＡ（ＡからＢ  へのコネクション用ＳＡ）  のｄｅｓｔｉｎａｔｉｏｎ  ａｄｄｒｅｓｓ  に自分のＩＰｖ６アドレスを設定し、ｉｎｃｏｍｉｎｇ  ｃｏｎｎｅｃｔｉｏｎ用ＳＡのＳＰＩ  に未使用の値を選択し、設定する。ｎｏｄｅ  Ｂにとってｏｕｔｇｏｉｎｇ  ｃｏｎｎｅｃｔｉｏｎ  用ＳＡ（ＢからＡ  へのコネクション用ＳＡ）  のｓｏｕｒｃｅ  ａｄｄｒｅｓｓに自分のＩＰｖ６アドレスを設定する。既に指定されている他のパラメータがｎｏｄｅ  Ｂのセキュリティ・ポリシーと矛盾しないならば、それらの設定を受け入れる。矛盾する場合はその旨を表示し、プロトコルを中断する。
【００３８】
ステップＳ１０５の終了をユーザに伝えるため、例えばｋｅｙ＿ｈａｒｄｗａｒｅにＬＥＤ  があり、それまで点灯していた場合はそれが消灯するｎｏｄｅ  Ｂの表示部にステップＳ１０５の終了を表示する。ｋｅｙ＿ｈａｒｄｗａｒｅはｎｏｄｅ  Ｂから取り外され、ｎｏｄｅ  Ｂにはネットワーク・ケーブルが再び接続される。この操作はユーザが行う。ｎｏｄｅ  Ｂはｋｅｙ＿ｈａｒｄｗａｒｅが取り外されたこととネットワーク・ケーブルが接続されたことを（Ｎｅｉｇｈｂｏｒ  Ｄｉｓｃｏｖｅｒｙ  の機能により）  検出すると、ステップＳ１０６を実行する。
【００３９】
ステップＳ１０６で、ｎｏｄｅ  Ｂは、ナンスＮ＿Ｂ  を生成する。規定のメッセージＭ＿ｃｈａ  と，Ｎ＿Ｂと，ＳＰＩ＿Ｂ  とを含むデータを、ｉｎ＿ｋｅｙ（ｎｏｄｅ  Ａ  から見てｉｎｃｏｍｉｎｇ  ｃｏｎｎｅｃｔｉｏｎ用ＳＡの鍵）  で処理（ＥＳＰ或はＡＨ）したデータを作成し、これをチャレンジ・データとする。
【００４０】
ステップＳ１０７で、ｎｏｄｅ  Ｂは、チャレンジ・データを  ｎｏｄｅ  Ａ  に（ＩＰｓｅｃで）  送る。
【００４１】
ステップＳ１０８で、ｎｏｄｅ  Ａは、チャレンジ・データを受け取る。ＩＰｓｅｃ  で送られてくるため、ＳＰＩ  とプロトコル種別から判断して、ステップＳ１０２で作成したｉｎｃｏｍｉｎｇ  ｃｏｎｎｅｃｔｉｏｎ  用ＳＡが対応するＳＡであることが分かるため、そのときに決めた鍵ｉｎ＿ｋｅｙで処理（復号）し、規定のメッセージＭ＿ｃｈａ  が含まれていることを確認する。この確認が行えたならばそのチャレンジ・データは正しいと判断し、ｎｏｄｅ  Ｂのアドレスをｉｎｃｏｍｉｎｇ  ｃｏｎｎｅｃｔｉｏｎ用ＳＡのｓｏｕｒｃｅ  ａｄｄｒｅｓｓとｏｕｔｇｏｉｎｇ  ｃｏｎｎｅｃｔｉｏｎ  用ＳＡのｄｅｓｔｉｎａｔｉｏｎ  ａｄｄｒｅｓｓ  に設定し、ＳＰＩ＿Ｂ  をｏｕｔｇｏｉｎｇｃｏｎｎｅｃｔｉｏｎ用ＳＡのＳＰＩ  に設定する。確認が行えないときは、そのチャレンジ・データは正しくないと判断し、プロトコルを中断する。尚、この際、ステップＳ１０２で作成したひとまとまりのＳＡの中で不要なものを消去する。
【００４２】
ステップＳ１０９で、ｎｏｄｅ  Ａは、ナンスＮ＿Ａ  を生成する。規定のメッセージＭ＿ｒｅｓ  と、Ｎ＿Ａを含むデータをｏｕｔ＿ｋｅｙ  で処理（ＥＳＰ或はＡＨ）したデータを作成し、これをレスポンス・データとする。
【００４３】
ステップＳ１１０で、ｎｏｄｅ  Ａは、レスポンス・データをｎｏｄｅ  Ｂに（ＩＰｓｅｃで）  送る。
【００４４】
ステップＳ１１１で、ｎｏｄｅ  Ｂは、レスポンス・データを受け取る。ＩＰｓｅｃ  で送られてくる、且つ、ＳＰＩ  とプロトコル種別とｄｅｓｔｉｎａｔｉｏｎ  ａｄｄｒｅｓｓ  から判断して、チャレンジ・データに対するレスポンス・データであることが分かる。そこで、ｏｕｔ＿ｋｅｙ  でレスポンス・データを処理（復号）する。復号し、規定のメッセージＭ＿ｒｅｓ  が含まれていることを確認する。この確認が行えたならばそのレスポンス・データは正しいと判断する。確認が行えないときは、そのレスポンス・データは正しくないと判断し、プロトコルを中断する或はレスポンス・データが正しくない旨のコンファメーション・データを用意する。
【００４５】
確認が行えた場合、ｉｎ＿ｋｅｙとＮ＿Ａ  とＮ＿Ｂ  からｉｎ＿ｋｅｙ＿ＡＢ  を生成し、ｏｕｔ＿ｋｅｙ  とＮ＿Ａ  とＮ＿Ｂ  からｏｕｔ＿ｋｅｙ＿ＡＢを生成する。ｉｎ＿ｋｅｙの代りにｉｎ＿ｋｅｙ＿ＡＢ  を、ｏｕｔ＿ｋｅｙ  の代りにｏｕｔ＿ｋｅｙ＿ＡＢをＳＡに設定する。規定のメッセージＭ＿ｃｏｎ  をｉｎ＿ｋｅｙ＿ＡＢ  で処理（ＥＳＰ或はＡＨ）したデータを生成し、コンファメーション・データとする。
【００４６】
ステップＳ１１２で、ｎｏｄｅ  Ｂは、コンファメーション・データを（ＩＰｓｅｃで）ｎｏｄｅ  Ａ  に送る。
【００４７】
ステップＳ１１０の後、ｎｏｄｅ  Ａはｉｎ＿ｋｅｙとＮ＿Ａ  とＮ＿Ｂ  からｉｎ＿ｋｅｙ＿ＡＢ  を生成し、ｏｕｔ＿ｋｅｙ  とＮ＿Ａ  とＮ＿Ｂ  からｏｕｔ＿ｋｅｙ＿ＡＢを生成する。ｉｎ＿ｋｅｙの代りにｉｎ＿ｋｅｙ＿ＡＢ  を、ｏｕｔ＿ｋｅｙ  の代りにｏｕｔ＿ｋｅｙ＿ＡＢをＳＡに設定する。ステップＳ１１３で、ｎｏｄｅ  Ａはコンファメーション・データを受け取る。ｉｎ＿ｋｅｙ＿ＡＢ  で処理（復号）し、規定のメッセージＭ＿ｃｏｎ  が含まれていることを確認する。この確認が行えたならばそのコンファメーション・データは正しいと判断し、以後のＩＰｓｅｃ  通信を継続する。
【００４８】
確認が失敗の場合、或はレスポンス・データが正しくない旨のコンファメーション・データを受け取った場合は、プロトコルを中断する。
【００４９】
以上の説明において、チャレンジ・データ、レスポンス・データ、コンファメーション・データの詳細は述べていないが、所謂チャレンジ・レスポンス・プロトコルで使われるデータを利用できる。つまり、認証者（ｎｏｄｅ  Ｂ）が被認証者（ｎｏｄｅ  Ａ）と秘密のデータ（ｉｎ＿ｋｅｙ  やｏｕｔ＿ｋｅｙ）を共有している場合に、被認証者が秘密のデータを有することを認証者が確認するためのプロトコルである。
【００５０】
例えば、ＲＦＣ１９９４  ＰＰＰ  Ｃｈａｌｌｅｎｇｅ  ＨａｎｄｓｈａｋｅＡｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｐｒｏｔｏｃｏｌ  （ＣＨＡＰ）を利用することが可能である。
【００５１】
＜実施の形態２＞
本実施の形態では、携帯可能な装置（Ａとする）  が別の装置（Ｂとする）  とＩＰｓｅｃ  の通信を行うためにＳＡの共有を実行する例であって、実施の形態１におけるｋｅｙ＿ｈａｒｄｗａｒｅの機能をＡ  が内蔵する場合について説明する。
【００５２】
装置Ａ  は、ｋｅｙ＿ｈａｒｄｗａｒｅとして動作するモードを有し、装置Ａ  と装置Ｂ  はイーサネット・ケーブルで直結される。クロス・タイプのケーブルを用いる、或は装置Ａ  がｋｅｙ＿ｈａｒｄｗａｒｅとして動作するモードに設定されたときはストレート・タイプのイーサネット・ケーブルを使っても直結された装置と通信できるようになっているものとする。
【００５３】
ｎｏｄｅ  Ａとｎｏｄｅ  Ｂは電源が入っており、ｎｏｄｅ  Ｂはネットワークに接続されてインターフェイスにＩＰｖ６アドレスが割り当てられているものとする。
【００５４】
装置Ａ  がｋｅｙ＿ｈａｒｄｗａｒｅとして動作するモードに設定されたとき、前記実施の形態１のステップＳ１０１とステップＳ１０２と同じ内容が実行される。
【００５５】
次に、ｎｏｄｅ  Ａがイーサネット・ケーブルで装置Ｂ  と直結されたとき、ステップＳ１０４と同じ内容が実行される。つまり、ｓｔａｔｅｌｅｓｓ  ａｄｄｒｅｓｓ  ａｕｔｏｃｏｎｆｉｇｕｒａｔｉｏｎ  やＮｅｉｇｈｂｏｒ  Ｄｉｓｃｏｖｅｒｙが実行され，装置Ｂ  に第２パケットが送られる。
【００５６】
装置Ｂ  から第２返答パケットを受け取った装置Ａ  は、ステップＳ１０５と同じ内容を実行する。つまり、記録してあるＳＡをｎｏｄｅ  Ｂに送り、その処理終了をユーザに伝えるため、ｎｏｄｅ  Ａの表示部に終了を表示する。
【００５７】
ｎｏｄｅ  Ａの表示部に終了が表示されたならば、装置Ａ  と装置Ｂ  を直結しているイーサネット・ケーブルが外される。これが、実施の形態１におけるｋｅｙ＿ｈａｒｄｗａｒｅが装置Ａ  ，装置Ｂ  から取り外されることに相当する。次に、通常の状態に戻された（或は自動で戻った）装置Ａ  と装置Ｂ  が図２の２０７  のリンクに接続されると、その事実がＮｅｉｇｈｂｏｒ  Ｄｉｓｃｏｖｅｒｙにより検出され、ステップＳ１０７以降の処理が実行される。
【００５８】
【発明の効果】
以上の説明で明らかなように、本発明によれば、ユーザはＩＰｖ６アドレスや鍵等のデータを入力する必要はない。ユーザはｋｅｙ＿ｈａｒｄｗａｒｅを先ずｎｏｄｅ  Ａに接続し、次にｎｏｄｅ  Ｂに接続するだけである。
【００５９】
一方、ｎｏｄｅ  Ａによって生成されたｉｎ＿ｋｅｙとｏｕｔ＿ｋｅｙ  が分からなければステップＳ１０７〜ステップＳ１１２までのチャレンジ・レスポンス・プロトコルが破られることはない。しかも、両方のノードによって生成されたナンスを使ってｉｎ＿ｋｅｙ＿ＡＢ  とｏｕｔ＿ｋｅｙ＿ＡＢが作られるので、プロトコルが実行される度にｉｎ＿ｋｅｙ＿ＡＢ  とｏｕｔ＿ｋｅｙ＿ＡＢは異なる値になり、セキュリティ上望ましい。又、繁雑な設定操作をユーザに行わせることがない。
【００６０】
ユーザは、暗号通信を行わせたい２つの装置に、携帯可能なｋｅｙ＿ｈａｒｄｗａｒｅを順番に接続する操作のみを行えば良いので、アドレス等を入力して装置を指定する場合に比べると、別の装置を間違えて指定することや、誤ったアドレスを指定して通信できないという事態は殆ど起らないと考えられる。従って、直感的で分かり易く、信頼性が高い。
【００６１】
携帯可能な装置であってｋｅｙ＿ｈａｒｄｗａｒｅの機能を有する場合は、その装置のモードを切り替え、イーサネットケーブルで装置同士を直結するだけで良いので、やはり繁雑な設定操作は不要であり、直感的で分かり易く、信頼性が高い。
【図面の簡単な説明】
【図１】ＳＡと鍵共有のプロトコルを示す図である。
【図２】イーサネットＬＡＮの模式図である。
【図３】ノードの構成図である。
【符号の説明】
２０１  インターネット
２０２  ｄｅｆａｕｌｔ  ｇａｔｅｗａｙ
２０３  ＤＨＣＰサーバ
２０４  ホスト
２０５  ホスト
２０６  ホスト
３００  ノード筐体
３０１  ネットワーク・インターフェイス
３０２  ネットワーク・インターフェイス
３０３  ＣＰＵ
３０４  ＲＯＭ
３０５  ＲＡＭ
３０６  ＨＤ（ハードディスク）
３０７  電源
３０８  キーボード／ポインティングデバイスのインターフェイス
３０９  モニターのインターフェイス
３１０  バス
【図１】
2005033520.tif 000003
【図２】
2005033520.tif 000004
【図３】
2005033520.tif 000005