(57)【特許請求の範囲】
【請求項１】
ネットワークのノードとして用いられる情報処理装置の認証を行う認証方法であって、
前記情報処理装置は、
前記ネットワークのノードのうちの、他のノードの認証を行う認証機能を有するいずれかのノードと通信を行うことができる場合は、
当該情報処理装置の認証を行うように当該ノードに対して要求するために認証に必要な認証用情報を当該ノードに送信し、
前記ネットワークのノードのうちの前記認証機能を有するいずれのノードとも通信を行うことができない場合は、
当該情報処理装置を設置する担当の者が持参した認証用装置から当該認証用装置の第一のキーを取得し、かつ、当該第一のキーを取得するルートとは異なるルートで当該認証用装置の第二のキーを取得し、
取得した前記第一のキーおよび前記第二のキーに基づいて前記認証用装置の認証を行い、
前記認証用装置の認証ができたならば、シリアルインタフェースを介して前記認証用装置へ前記認証用情報を出力することによって認証を要求し、
前記認証用装置は、
前記情報処理装置から前記認証用情報を入力し、
入力した前記認証用情報に基づいて前記情報処理装置の認証を行う、
ことを特徴とする認証方法。
【請求項２】
前記情報処理装置として、ＭＦＰ（Multi Function Peripherals）が用いられる、
請求項１記載の認証方法。
【請求項３】
前記通信を行うことができない場合とは、前記情報処理装置がスタンドアロンの状態にある場合である、
請求項１または請求項２記載の認証方法。
【請求項４】
前記情報処理装置は、
前記認証用装置に対して当該情報処理装置の認証を行うように要求する前に、当該認証用装置から当該認証用装置の電子証明書を前記第一のキーとして取得し、かつ、当該認証用装置でも前記ネットワークのいずれのノードでもない装置が出力した、前記第一のキーをハッシュ関数に代入することによって算出されるハッシュ値を、前記第二のキーとして取得し、
取得した前記第一のキーを前記ハッシュ関数に代入することによって算出されるハッシュ値と取得した前記第二のキーとを照合することによって前記認証用装置の認証を行う、
請求項１ないし請求項３のいずれかに記載の認証方法。
【請求項５】
ネットワークのノードとして用いられる情報処理装置であって、
前記ネットワークのノードのうちの、他のノードの認証を行う認証機能を有するいずれかのノードと通信を行うことができる場合に、当該情報処理装置の認証を行うように当該ノードに対して要求するために認証に必要な認証用情報を当該ノードに送信する認証用情報送信手段と、
前記ネットワークのノードのうちの前記認証機能を有するいずれのノードとも通信を行うことができない場合に、当該情報処理装置を設置する担当の者が持参した、当該情報処理装置から入力した前記認証用情報に基づいて当該情報処理装置の認証を行う認証用装置から、当該認証用装置の第一のキーを取得する、第一のキー取得手段と、
前記第一のキーを取得するルートとは異なるルートで前記認証用装置の第二のキーを取得する、第二のキー取得手段と、
取得された前記第一のキーおよび前記第二のキーに基づいて前記認証用装置の認証を行う認証手段と、
前記認証用装置の認証ができた場合に、シリアルインタフェースを介して当該認証用装置へ前記認証用情報を出力することによって当該情報処理装置の認証を要求する、認証要求手段と、
を有することを特徴とする情報処理装置。
【請求項６】
当該情報処理装置は、ＭＦＰ（Multi Function Peripherals）である、
請求項５記載の情報処理装置。
【請求項７】
前記通信を行うことができない場合とは、当該情報処理装置がスタンドアロンの状態にある場合である、
請求項５または請求項６記載の情報処理装置。
【請求項８】
前記第一のキー取得手段は、前記認証用装置に対して当該情報処理装置の認証を行うように要求する前に、当該認証用装置から当該認証用装置の電子証明書を第一のキーとして取得し、
前記第二のキー取得手段は、前記認証用装置でも前記ネットワークのいずれのノードでもない装置が出力した、前記第一のキーをハッシュ関数に代入することによって算出されるハッシュ値を、前記第二のキーとして取得し、
前記認証要求手段は、取得した前記第一のキーを前記ハッシュ関数に代入することによって算出されるハッシュ値と取得した前記第二のキーとを照合することによって前記認証用装置の認証を行う、
請求項５ないし請求項７のいずれかに記載の情報処理装置。
【請求項９】
ネットワークのノードとして用いられる情報処理装置に用いられるコンピュータプログラムであって、
当該情報処理装置に、
前記ネットワークのノードのうちの、他のノードの認証を行う認証機能を有するいずれかのノードと通信を行うことができる場合に、当該情報処理装置の認証を行うように当該ノードに対して要求するために認証に必要な認証用情報を当該ノードに送信する第一の処理を実行させ、
前記ネットワークのノードのうちの前記認証機能を有するいずれのノードとも通信を行うことができない場合に、当該情報処理装置を設置する担当の者が持参した、当該情報処理装置から入力した前記認証用情報に基づいて当該情報処理装置の認証を行う認証用装置から、当該認証用装置の第一のキーを取得する第二の処理と、当該第一のキーを取得するルートとは異なるルートで当該認証用装置の第二のキーを取得する第三の処理とを、実行させ、
取得した前記第一のキーおよび前記第二のキーに基づいて前記認証用装置を認証する第四の処理を実行させ、
前記認証用装置を認証することができた場合に、当該情報処理装置の認証を要求するためにシリアルインタフェースを介して当該認証用装置へ前記認証用情報を出力する第五の処理を実行させる、
ことを特徴とするコンピュータプログラム。
【請求項１０】
前記情報処理装置は、ＭＦＰ（Multi Function Peripherals）である、
請求項９記載のコンピュータプログラム。
【請求項１１】
前記通信を行うことができない場合とは、前記情報処理装置がスタンドアロンの状態にある場合である、
請求項９または請求項１０記載のコンピュータプログラム。
【請求項１２】
前記第二の処理として、前記認証用装置に対して当該情報処理装置の認証を行うように要求する前に、当該認証用装置から当該認証用装置の電子証明書を前記第一のキーとして取得する処理を、前記情報処理装置に実行させ、
前記第三の処理として、前記認証用装置でも前記ネットワークのいずれのノードでもない装置が出力した、前記第一のキーをハッシュ関数に代入することによって算出されるハッシュ値を、前記第二のキーとして取得する処理を、前記情報処理装置に実行させ、
前記第四の処理として、前記認証用装置を認証するために、取得した前記第一のキーを前記ハッシュ関数に代入することによって算出されるハッシュ値と取得した前記第二のキーとを照合する処理を実行させる、
請求項９ないし請求項１１のいずれかに記載のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークのノードとして用いられるＭＦＰ、パーソナルコンピュータ、またはワークステーションなどの情報処理装置の認証方法などに関する。
【背景技術】
【０００２】
パーソナルコンピュータなどの情報処理装置（ノード）を複数台、通信回線で繋いでネットワークを形成し、これらの情報処理装置同士でデータのやり取りを行う技術が、広く普及している。ネットワークの形態は様々であるが、そのうち、Ｐ２Ｐ（Peer to Peer）型のネットワークは、他の形態のネットワークの場合と比べて、簡単に構築することができるという点で、優れている。また、各ノードの匿名性が大きいという特徴を有する。
【０００３】
しかし、匿名性が高いという特徴は、Ｐ２Ｐ型のネットワークの短所になることもある。すなわち、ユーザは、自分の情報処理装置をＰ２Ｐ型のネットワークに参加させると、匿名性の高い装置とデータのやり取りを行わなければならない。また、そのデータは、匿名性の高い装置によって中継されることとなる。よって、匿名性が高いという特徴は、ユーザにとってネットワーク内の装置の信頼性を確認することが難しく、ユーザを不安にさせる場合がある。
【０００４】
したがって、ユーザにとって安心なＰ２Ｐ型のネットワークを構築するためには、ネットワークを構成する各ノードの信頼性を容易に確認できることが求められる。もちろん、Ｐ２Ｐ以外の形態のネットワークを構築する際にも、各ノードの信頼性を確認することが望ましい。また、スタンドアロンの装置についても、将来ネットワークに参加する可能性があることおよびフロッピディスクなどのリムーバブルディスクを介して他の装置とデータのやり取りが行われる場合があることに鑑みると、ユーザに安心感を与えるには、予め装置の信頼性を確認しておくことが望ましい。そのためには、装置の認証を行う必要がある。
【０００５】
Ｐ２Ｐ型のネットワークを構成する装置の認証方法として、例えば、特許文献１に記載されるような方法が提案されている。係る方法によると、一方のコンピュータが他方のコンピュータにコンテンツを要求する際に、管理用コンピュータは、コンテンツ要求側のコンピュータのコンテンツ配信側のコンピュータへのアクセス認証に用いるアクセス用認証情報を生成する。
【特許文献１】特開２００４−２２７３９４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかし、特許文献１に記載される方法は、アクセス用認証情報を生成する管理用コンピュータをセッティングしなければならない。このような管理用コンピュータをセッティングし運営することは、管理者にとって大きな負担となる。また、高度な知識を要求される場合がある。
【０００７】
本発明は、このような問題点に鑑み、ネットワークのノードとして用いられる装置の認証の処理を従来よりも簡単に行うことができるようにすることを目的とする。
【課題を解決するための手段】
【０００８】
本発明に係る認証方法は、ネットワークのノードとして用いられる情報処理装置の認証を行う認証方法であって、前記情報処理装置は、前記ネットワークのノードのうちの、他のノードの認証を行う認証機能を有するいずれかのノードと通信を行うことができる場合は、当該情報処理装置の認証を行うように当該ノードに対して要求するために認証に必要な認証用情報を当該ノードに送信し、前記ネットワークのノードのうちの前記認証機能を有するいずれのノードとも通信を行うことができない場合は、当該情報処理装置を設置する担当の者が持参した認証用装置から当該認証用装置の第一のキーを取得し、かつ、当該第一のキーを取得するルートとは異なるルートで当該認証用装置の第二のキーを取得し、取得した前記第一のキーおよび前記第二のキーに基づいて前記認証用装置の認証を行い、前記認証用装置の認証ができたならば、シリアルインタフェースを介して前記認証用装置へ前記認証用情報を出力することによって認証を要求し、前記認証用装置は、前記情報処理装置から前記認証用情報を入力し、入力した前記認証用情報に基づいて前記情報処理装置の認証を行う、ことを特徴とする。
【０００９】
好ましくは、前記情報処理装置として、ＭＦＰ（Multi Function Peripherals）が用いられる。
【発明の効果】
【００１０】
本発明によると、ネットワークのノードとして用いられる装置の認証の処理を従来よりも簡単に行うことができる。
【発明を実施するための最良の形態】
【００１１】
図１はネットワーク１の全体的な構成の例を示す図、図２は端末装置２のハードウェア構成の例を示す図、図３は端末装置２の機能的構成の例を示す図である。
【００１２】
ネットワーク１は、図１に示すように、複数台の端末装置２（２１、２２、…、２ｎ）、ハブ３、およびルータ４などのノードによって構成されるＬＡＮ（Local Area Network）である。これらの端末装置２は、ハブ３にツイストペアケーブルによってスター型に繋がれている。ハブ３とルータ４とも、ツイストペアケーブルによって繋がれている。以下、これらのノードのうちの端末装置２（つまり、ホスト）同士がデータ通信を行う場合について説明する。
【００１３】
端末装置２は、パーソナルコンピュータ、ワークステーション、またはプリンタなどのような、他の装置との間でデータの入出力の処理を実行する装置である。以下、端末装置２としてパーソナルコンピュータが用いられる場合を例に説明する。
【００１４】
端末装置２は、図２に示すように、ＣＰＵ２０ａ、ＲＡＭ２０ｂ、ＲＯＭ２０ｃ、ハードディスク２０ｄ、通信インタフェース２０ｅ、画像インタフェース２０ｆ、入力インタフェース２０ｇ、入出力インタフェース２０ｈ、その他の種々の回路または装置などによって構成される。各端末装置２には、他の端末装置と識別するためのＩＰアドレスおよびＭＡＣアドレスが与えられている。
【００１５】
通信インタフェース２０ｅは、ＮＩＣ（Network Interface Card）であって、ツイストペアケーブルを介してハブ３のいずれかのポートに繋がれている。画像インタフェース２０ｆは、モニタと繋がれており、画面を表示するための映像信号をモニタに送出する。入力インタフェース２０ｇは、キーボードまたはマウスなどの入力装置と繋がれており、これらの入力装置からユーザの操作内容を示す信号を入力する。
【００１６】
入出力インタフェース２０ｈは、ＵＳＢ（Universal Serial Bus）、ＩＥＥＥ１３９４、またはＳＣＳＩなどのインタフェースであって、認証用装置５と接続するために用いられる。認証用装置５とは、通信インタフェース２０ｅによってＬＡＮ回線を介して接続することもできる。認証用装置５については、後に説明する。
【００１７】
ハードディスク２０ｄには、図３に示すような、画面表示処理部２０１、指令受付部２０２、データ生成部２０３、データ送信部２０４、データ受信部２０５、データ解析部２０６、データ操作部２０７、データ保持部２０８、申請処理部２１１、認証処理部２１２、接続テーブル管理部２１３、およびノード情報保持部２１４などの機能を実現するためのプログラムおよびデータが格納されている。これらのプログラムおよびデータは必要に応じてＲＡＭ２０ｂに読み出され、ＣＰＵ２０ａによってプログラムが実行される。
【００１８】
ハブ３として、スイッチングハブが用いられる。または、ハブ３およびルータ４の代わりにルータ機能を有するハブを用いてもよい。
【００１９】
図４はネットワーク１を構成する端末装置２の論理的な接続形態の例を示す図、図５は接続テーブルＳＴＢの例を示す図、図６は端末装置２がネットワーク１に参加する際の処理の流れの例を説明するフローチャート、図７はＰＣ１０の参加によって更新された接続テーブルＳＴＢの例を示す図、図８はＰＣ１０の参加後のＰＣ０１〜ＰＣ０９の関連付けの例を示す図である。
【００２０】
以下、複数台の端末装置２同士がＰ２Ｐ（Peer to Peer）によるデータ通信を行う場合を例に、図３に示す各部の機能および処理内容などについて説明する。また、ネットワーク１には、９台の端末装置２が設けられており、それぞれに「ＰＣ０１」、「ＰＣ０２」、…、「ＰＣ０９」というホスト名（マシン名）が付けられているものとする。以下、各端末装置２を、「ＰＣ０１」または「ＰＣ０２」などのように、ホスト名のみによって記載することがある。
【００２１】
各端末装置２は、図４に示すように、仮想空間に配置されているものと仮想されている。そして、点線で示すように、仮想空間内の近隣の少なくとも１台の他の端末装置２と関連付けられている。かつ、これらの関連付けによって、すべての端末装置２が互いに直接的または間接的に関係するようになっている。なお、「直接的に関係する」とは、図４において１本の点線で繋がれていることを言い、「間接的に関係する」とは、２本以上の点線およびノードで繋がれていること（例えば、ＰＣ０１とＰＣ０８のような形態）を言う。
【００２２】
互いに関連付けられている２台の端末装置２のうちの一方の端末装置２は、もう一方の端末装置２のノード認証を行う。以下、互いに関連付けられている２台の端末装置２のうちの、認証を行う側の端末装置２を「上位」または「上位ノード」などと記載し、認証される側の端末装置２を「下位」または「下位ノード」などと記載することがある。
【００２３】
図３において、ノード情報保持部２１４は、その端末装置２自身に関連付けられている他の端末装置２のホスト名およびアドレス（ＩＰアドレスまたはＭＡＣアドレス）を示す接続テーブルＳＴＢを保持（記憶）している。例えば、ネットワーク１内の９台の端末装置２が図４に示すように関連付けられている場合は、ＰＣ０１、ＰＣ０２、ＰＣ０９は、それぞれ、図５（ａ）、（ｂ）、（ｃ）に示すような内容の接続テーブルＳＴＢ０１、ＳＴＢ０２、ＳＴＢ０９を保持している。
【００２４】
接続テーブルＳＴＢの内容の設定は、端末装置２の初期設定を行う際に管理者によって行われる。そして、端末装置２をネットワーク１に参加させた後は、他の端末装置２の変化に応じて接続テーブル管理部２１３によって適宜変更される。
【００２５】
データ保持部２０８は、他の端末装置２に提供してもよいファイルつまり共有ファイルを保持（記憶）している。さらに、データ保持部２０８は、１対の公開鍵ＫＹＰおよび秘密鍵ＫＹＳを保持している。公開鍵ＫＹＰは、他の端末装置２に配付される。したがって、データ保持部２０８は、自らの公開鍵ＫＹＰだけでなく、他の端末装置２から配付された公開鍵ＫＹＰをも保持している。
【００２６】
データ生成部２０３は、データ操作部２０７、申請処理部２１１、または認証処理部２１２などが実行した処理の結果に応じて、他の端末装置２に送信するためのデータを生成する。
【００２７】
データ送信部２０４は、データ生成部２０３によって生成されたデータをパケット化するなどして宛先の端末装置２に送信する。または、入出力インタフェース２０ｈまたは通信インタフェース２０ｅを介して接続されている認証用装置５にデータを送信する。
【００２８】
画面表示処理部２０１は、その端末装置２を操作するユーザに対してメッセージまたは指示を与えるための画面、ユーザが処理の指令を入力するための画面、および処理の結果を示す画面などをモニタに表示するための処理を行う。指令受付部２０２は、ユーザがキーボードまたはマウスなどの入力装置を操作して入力した指令を受け付ける。
【００２９】
データ受信部２０５は、ネットワーク１を流れるパケットのうち、その端末装置２に必要なものを受信する。または、認証用装置５からデータを受信する。データ解析部２０６は、データ受信部２０５が受信したパケットまたはデータの中から必要な部分を抽出してその内容を解析し、解析結果に応じた処理を実行するように各部に対して指令を与える。
【００３０】
申請処理部２１１は、その端末装置２自身がネットワーク１に参加する際（例えば、電源をオンにしたとき、オペレーティングシステムを再起動したとき、またはオフラインの状態からオンラインの状態に切り替えたときなど）に、その端末装置２のノード認証またはユーザ認証を実行するように、その端末装置２の接続テーブルＳＴＢに登録されている他の端末装置２のうちのいずれかに対して申請（要求）するための処理を行う。または、認証用装置５に対して申請する場合もある。また、その端末装置２自身がネットワーク１から離脱する場合は、他の端末装置２に対してその旨を申請するための処理を行う。
【００３１】
認証処理部２１２は、他の端末装置２から申請されたノード認証またはユーザ認証を、公知の方法によって実行する。
【００３２】
データ操作部２０７は、その端末装置２自身のユーザ（ローカルユーザ）または他の端末装置２からの要求に基づいて、その端末装置２のデータ保持部２０８によって管理されているファイルに関する処理を行う。
【００３３】
次に、端末装置２の各部について、ネットワーク１への参加の際の処理、ネットワーク１からの離脱の際の処理、およびスタンドアロンの端末装置２の認証の処理に大別して、さらに詳細に説明する。
【００３４】
〔ネットワーク１への参加の際の処理〕
図６は端末装置２がネットワーク１に参加する際の処理の流れの例を説明するフローチャート、図７はＰＣ１０の参加によって更新された接続テーブルＳＴＢの例を示す図、図８はＰＣ１０の参加後のＰＣ０１〜ＰＣ０９の関連付けの例を示す図である。
【００３５】
ここでは、ＰＣ０１ないしＰＣ０９の９台の端末装置２が既にネットワーク１に参加しており、これらの端末装置２は図４に示すような関連を有し、ＰＣ１０がこれからネットワーク１に参加しようとしている場合を例に、各端末装置２の処理内容を、図６のフローチャートを参照して説明する。
【００３６】
ＰＣ１０において、申請処理部２１１は、ＰＣ１０自身の接続テーブルＳＴＢを参照することによって、ＰＣ１０自身と関連付けられている上位ノードの端末装置２をチェックする（図６の＃１０１）。そして、認証の申請用のデータを生成し上位ノードの端末装置２に送信するようにデータ生成部２０３およびデータ送信部２０４に対して指令する。
【００３７】
ところで、ＰＣ１０の接続テーブルＳＴＢには、前回にＰＣ１０がネットワーク１に参加したときの関連の情報が残っている。今までに一度も参加したことがない場合は、予め、ＰＣ０１〜ＰＣ０９のうちのいずれかの端末装置２とＰＣ１０とを関連付けて、管理者がＰＣ１０の接続テーブルＳＴＢにその端末装置２の情報を登録しておく。ここでは、ＰＣ１０はＰＣ０１と関連付けられており、図５（ｄ）のような内容の接続テーブルＳＴＢ１０を有しているものとする。
【００３８】
データ生成部２０３は、ＰＣ１０自身のホスト名およびアドレス、ＰＣ１０を現在使用しているユーザのユーザＩＤおよびパスワード、ＰＣ１０であることを証明する情報（例えば、電子証明書）、および認証処理を実行すべき旨の指令などを含む参加申請データＤＴ１を生成する（＃１０２）。そして、データ送信部２０４は、生成された参加申請データＤＴ１をパケット化し、ステップ＃１０１でチェックされた端末装置２すなわちＰＣ０１のアドレスに宛てて送信する（＃１０３）。これにより、ネットワーク１への参加の申請および証明処理の要求が、上位ノードであるＰＣ０１に対してなされる。
【００３９】
ＰＣ１０から送信された参加申請データＤＴ１のパケットは、一旦、ハブ３に到達する。ハブ３は、到達したこれらのパケットを、宛先のアドレスに対応するポートに繋がれている端末装置２すなわちＰＣ０１に送信する。このように、ハブ３は、参加申請データＤＴ１などのデータを宛先の端末装置２のみに中継する役割を果たす。
【００４０】
ＰＣ０１において、データ受信部２０５はＰＣ１０からハブ３を中継して送信されてきたパケットを順次受信し、データ解析部２０６はこれらのパケットから必要なデータを抽出して参加申請データＤＴ１を再現する。このようにして、ＰＣ０１は、ＰＣ１０からの参加申請データＤＴ１を受け付ける（＃１１１）。なお、後に説明する２つの端末装置２間で行われる他のデータまたはファイルの送受信も、参加申請データＤＴ１の場合と同様に、ハブ３を介してパケット通信によって行われる。
【００４１】
データ解析部２０６は、参加申請データＤＴ１を解析することによって、ＰＣ１０のノード認証およびユーザ認証を実行すべきであると判別する。そして、これらの認証処理を実行すべき旨の指令を認証処理部２１２に対して与える。
【００４２】
認証処理部２１２は、参加申請データＤＴ１に示されるユーザＩＤおよびパスワードに基づいてユーザ認証を行うとともに、電子証明書の正当性をチェックすることによってＰＣ１０のノード認証を行う（＃１１２）。
【００４３】
ノード認証およびユーザ認証の結果、ＰＣ１０の正当性を確認することができたら、ＰＣ０１のデータ生成部２０３は、認証が得られた旨を示す情報およびＰＣ０１自身の接続テーブルＳＴＢ０１（図５（ａ）参照）の内容を示す認証結果データＤＴ２を生成し（＃１１３）、データ送信部２０４は、これをＰＣ１０のアドレスに宛てて送信する（＃１１４）。
【００４４】
ＰＣ１０において、データ受信部２０５が認証結果データＤＴ２を受信すると（＃１０４）、データ解析部２０６は、この認証結果データＤＴ２を解析し、自らの接続テーブルＳＴＢ１０を更新すべき旨の指令を接続テーブル管理部２１３に対して与える。すると、接続テーブル管理部２１３は、ＰＣ１０自身の接続テーブルＳＴＢに、受信した認証結果データＤＴ２に示される端末装置２のホスト名およびアドレスを追加登録する（＃１０５）。これにより、接続テーブルＳＴＢ１０は、図７（ｄ）のように更新される。
【００４５】
また、ＰＣ０１において、ステップ＃１１３、＃１１４の処理と並行してまたは前後して、接続テーブル管理部２１３は、図７（ａ）のようにＰＣ０１自身の接続テーブルＳＴＢ０１にＰＣ１０のホスト名およびアドレスを追加登録する（＃１１５）。データ生成部２０３は、ＰＣ１０がネットワーク１に参加したことを通知するための参加通知データＤＴ３を生成し（＃１１６）、データ送信部２０４は、その参加通知データＤＴ３を、ステップ＃１１５の追加登録前の接続テーブルＳＴＢ０１（図５（ａ）参照）に示される端末装置２すなわちＰＣ０２およびＰＣ０９のアドレスに宛てて送信する（＃１１７）。
【００４６】
ＰＣ０２およびＰＣ０９において、データ受信部２０５がＰＣ０１からの参加通知データＤＴ３を受信すると（＃１２１）、参加通知データＤＴ３に示される新たに参加した端末装置２すなわちＰＣ１０を、それぞれの接続テーブルＳＴＢに追加登録する（＃１２２）。これにより、ＰＣ０２の接続テーブルＳＴＢ０２およびＰＣ０９の接続テーブルＳＴＢ０９は、それぞれ、図７（ｂ）（ｃ）のように更新される。
【００４７】
このようにして、ＰＣ１０がネットワーク１に参加するための処理が完了する。これらの処理の結果、ＰＣ１０は、図８に示すように、ＰＣ０１、ＰＣ０２、およびＰＣ０９と関連付けられることになる。
【００４８】
ＰＣ１０のデータ送信部２０４は、ＰＣ１０自身の公開鍵ＫＹＰをＰＣ０１に送信する（＃１０６）。この公開鍵ＫＹＰは、ＰＣ０１からさらにＰＣ０２およびＰＣ０９にも送信される（＃１１９）。ＰＣ０１、ＰＣ０２、ＰＣ０９は、受信したＰＣ１０の公開鍵ＫＹＰを、それぞれのデータ保持部２０８に保存しておく（＃１１８、＃１２３）。または、ＰＣ０１、ＰＣ０２、およびＰＣ０９のそれぞれの公開鍵ＫＹＰをＰＣ１０に送信するようにしてもよい。公開鍵ＫＹＰをＰＣ１０からＰＣ０２およびＰＣ０９にダイレクトに送信してもよいが、ＰＣ０１を介することによって、秘匿性を高めることができる。
【００４９】
なお、参加申請データＤＴ１、認証結果データＤＴ２、参加通知データＤＴ３、および公開鍵ＫＹＰは、ＳＳＬ（Secure Sockets Layer）などの暗号化通信のプロトコルによってやり取りされる。データ保持部２０８に記憶されている共有ファイルは、送信側または受信側のいずれかの公開鍵ＫＹＰまたは秘密鍵ＫＹＳによって暗号化されてやり取りされる。例えば、ＰＣ１０とＰＣ０２とがデータのやり取りを行う場合において、ＰＣ０２がＰＣ１０の公開鍵ＫＹＰを有している場合は、ＰＣ１０は、自らの秘密鍵ＫＹＳを用いて共有ファイルを暗号化してＰＣ０２に送信する。一方、ＰＣ０２は、ＰＣ１０の公開鍵ＫＹＰを用いて共有ファイルを暗号化してＰＣ１０に送信する。
【００５０】
ＰＣ１０は、ＰＣ０１がネットワーク１に参加していない場合は、例えば次の（１）〜（３）のような方法で認証をしてもらうようにすればよい。（１）ＰＣ０１がネットワーク１に参加するのを待つ。（２）ＰＣ１０に予め複数の端末装置２を関連付けておき、ＰＣ０１以外の端末装置２に認証をしてもらう。（３）ネットワーク１の中または外に認証サーバを設けておき、この認証サーバに認証をしてもらう。または、認証なしでＰＣ１０をネットワーク１に参加させるようにし、その代わりに、ＰＣ１０の実行可能な機能（特に、セキュリティに関わる機能）を制限するようにするようにしてもよい。
【００５１】
図９は端末装置２がネットワーク１に参加する際の処理の流れの変形例を説明するフローチャートである。図６で説明した処理を、図９に示すような方法で行ってもよい。なお、図６の処理と共通する部分については、説明を省略する。
【００５２】
図９において、ステップ＃２０１〜＃２０３およびステップ＃２１１、＃２１２の処理の内容は、図６で説明したステップ＃１０１〜＃１０３およびステップ＃１１１、＃１１２の処理の内容と同じである。つまり、ＰＣ１０は、上位ノードの端末装置２をチェックし、参加申請データＤＴ１を生成し、その端末装置２（ここでは、ＰＣ０１であるものとする）に対して参加申請データＤＴ１を送信する（＃２０１〜＃２０３）。これにより、ネットワーク１への参加の申請および証明処理の要求が、ＰＣ０１に対してなされる。
【００５３】
ＰＣ０１は、ＰＣ１０から参加申請データＤＴ１を受信すると、その参加申請データＤＴ１に基づいてユーザ認証およびノード認証を行う（＃２１１、＃２１２）。
【００５４】
さらに、ＰＣ０１は、ノード認証およびユーザ認証の結果、ＰＣ１０の正当性を確認することができたら、認証結果データＤＴ２’を生成し、これをＰＣ０１自身の秘密鍵ＫＹＳで暗号化してＰＣ１０に送信する（＃２１３、＃２１４）。この認証結果データＤＴ２は、ＰＣ１０がネットワーク１に参加することを許可する旨の通知の役割をも果たす。また、ＰＣ０１の公開鍵ＫＹＰおよび接続テーブルＳＴＢ０１もＰＣ１０に送信しておく。
【００５５】
ＰＣ１０は、認証結果データＤＴ２’、公開鍵ＫＹＰ、および接続テーブルＳＴＢ０１を受信すると（＃２０４）、その接続テーブルＳＴＢ０１に基づいて自らの接続テーブルＳＴＢ１０を更新する（＃２０５）。接続テーブルＳＴＢ１０に基づいて、受信した認証結果データＤＴ２’を暗号化されたままの状態で上位ノードに送信する（＃２０６）。このとき、ＰＣ１０自身の公開鍵ＫＹＰも送信する。
【００５６】
ＰＣ１０の上位ノードである各端末装置２は、ＰＣ１０から受信した認証結果データＤＴ２’をＰＣ０１の公開鍵ＫＹＰで復号し、ＰＣ１０が認証の与えられた端末装置２であることを確認する（＃２１５、＃２２１）。そして、ＰＣ１０の公開鍵ＫＹＰを保存するとともに（＃２１６、＃２２２）、ＰＣ１０を自らの接続テーブルＳＴＢに加える（＃２１７、＃２２３）。
【００５７】
〔ネットワーク１からの離脱の際の処理〕
図１０は端末装置２がネットワーク１から離脱する際の処理の流れの例を説明するフローチャートである。
【００５８】
次に、ＰＣ１０がネットワーク１から離脱する場合を例に、各端末装置２の処理内容を、図１０のフローチャートを参照して説明する。
【００５９】
ＰＣ１０において、申請処理部２１１は、ネットワーク１からの離脱の申請用のデータを生成し送信すべき旨の指令をデータ生成部２０３およびデータ送信部２０４に対して与える。
【００６０】
すると、データ生成部２０３は、ＰＣ１０自身のホスト名およびネットワーク１から離脱する旨などを示す離脱申請データＤＴ４を生成し（図１０の＃１３１）、データ送信部２０４は、この離脱申請データＤＴ４を、ＰＣ１０自身の接続テーブルＳＴＢ１０に示される各端末装置２のアドレスに宛てて送信する（＃１３２、＃１３３）。例えば図７（ｄ）のような内容が接続テーブルＳＴＢ１０に示される場合は、ＰＣ０１、ＰＣ０２、およびＰＣ０９に送信する。そして、ハブ３との通信を中断し、オフラインに切り換える（＃１３４）。
【００６１】
ＰＣ０１、ＰＣ０２、およびＰＣ０９のそれぞれにおいて、データ受信部２０５が離脱申請データＤＴ４を受信すると（＃１４１）、データ解析部２０６はこの離脱申請データＤＴ４を解析し、自らの接続テーブルＳＴＢを更新すべき旨の指令を接続テーブル管理部２１３に対して与える。すると、接続テーブル管理部２１３は、自らの接続テーブルＳＴＢの中からＰＣ１０の情報を削除する（＃１４２）。このようにして、ＰＣ１０がネットワーク１から離脱するための処理が完了する。
【００６２】
〔スタンドアロンの端末装置２の認証の処理〕
図１１は認証用装置５の機能的構成の例を示す図である。
【００６３】
ネットワーク１に参加することのできない端末装置２すなわちスタンドアロンの端末装置２は、他のいずれの端末装置２とも通信を行うことができないので、自らのノード認証およびユーザ認証を他のいずれの端末装置２に対しても要求することができない。そこで、スタンドアロンの端末装置２のノード認証およびユーザ認証を、認証用装置５を用いて行う。
【００６４】
認証用装置５のハードウェア構成は、図２で説明した端末装置２のハードウェア構成とほぼ同様である。端末装置２と認証用装置５とは、ＵＳＢ（Universal Serial Bus）、ＩＥＥＥ１３９４、またはＮＩＣなどのインタフェースを介して互いに接続される。
【００６５】
認証用装置５のハードディスクには、図１１に示すような画面表示処理部５０１、指令受付部５０２、データ生成部５０３、データ送信部５０４、データ受信部５０５、データ解析部５０６、および認証処理部５１２などの機能を実現するためのプログラムおよびデータが格納されている。これらのプログラムおよびデータは必要に応じてＲＡＭに読み出され、ＣＰＵによってプログラムが実行される。認証用装置５として、例えば、ノート型パソコンまたはＰＤＡ（Personal Digital Assistant）などのモバイルコンピュータが用いられる。または、認証用装置５は、図１１に示す全部または一部の機能を専用の回路によってハード的に実現するようにした認証専用の装置であってもよい。
【００６６】
画面表示処理部５０１は、その認証用装置５を操作するユーザに対してメッセージまたは指示を与えるための画面、ユーザが処理の指令を入力するための画面、および処理の結果を示す画面などをモニタに表示するための処理を行う。指令受付部５０２は、ユーザがキーボードまたはマウスなどの入力装置を操作して入力した指令を受け付ける。
【００６７】
データ受信部５０５は、認証用装置５自身に接続されている端末装置２からデータを受信するための処理を行う。データ解析部５０６は、データ受信部５０５が受信したデータの内容を解析し、その解析結果に応じた処理を実行するように各部に指令を与える。
【００６８】
認証処理部５１２は、認証用装置５自身に接続されている端末装置２から申請されたノード認証およびユーザ認証を、公知の方法によって実行する。
【００６９】
データ生成部５０３は、認証処理部５１２などが実行した処理の結果に応じて、認証用装置５自身に接続されている端末装置２に送信するためのデータを生成する。データ送信部５０４は、データ生成部５０３によって生成されたデータを端末装置２に送信する。
【００７０】
図１２は認証用装置５を使用して端末装置２の認証処理を行う際の処理の流れの例を説明するフローチャートである。
【００７１】
次に、スタンドアロンの端末装置２を新たにオフィスに設置し、この端末装置２の信頼性を確認するためにノード認証の処理を認証用装置５に実行させる場合を例に、端末装置２および認証用装置５の各部の処理内容について説明する。
【００７２】
管理者は、ＵＳＢなどのインタフェースを介して端末装置２に認証用装置５を接続し、端末装置２または認証用装置５に所定のコマンドを入力する。なお、これらの作業は、管理者の代わりに、端末装置２のメーカのサービスマンまたはエンジニアが納品時などに行うようにしてもよい。また、認証用装置５は、端末装置２のメーカから持ち込まれたものを使用するのが望ましい。
【００７３】
コマンドが入力されると、端末装置２および認証用装置５は、図１２のフローチャートのような手順の処理を開始する。まず、端末装置２および認証用装置５は、所定のデータのやり取りを行うことによって、互いに接続されていることを認識する（＃１５１、＃１６１）。
【００７４】
端末装置２において、データ生成部２０３は、端末装置２自身のホスト名およびアドレス、端末装置２を現在使用しているユーザのユーザＩＤおよびパスワード、端末装置２自身であることを証明する情報（例えば、電子証明書）、および認証処理を実行すべき旨の指令などを含む認証依頼データＤＴ５を生成する（＃１５２）。データ送信部２０４は、生成された認証依頼データＤＴ５を認証用装置５に送信する（＃１５３）。これにより、認証処理の依頼が認証用装置５に対してなされる。
【００７５】
認証用装置５において、データ受信部５０５は、端末装置２からの認証依頼データＤＴ５などを受け付ける（＃１６２）。このデータの種類が参加申請データであることは、データ解析部５０６によって判別される。
【００７６】
認証処理部５１２は、この認証依頼データＤＴ５に示されるユーザＩＤおよびパスワードに基づいてユーザ認証を行うとともに、電子証明書の正当性をチェックすることによって端末装置２のノード認証を行う（＃１６３）。
【００７７】
ノード認証およびユーザ認証の結果、端末装置２の正当性などを確認することができたら、データ生成部５０３は、認証が得られた旨を示す認証結果データＤＴ６を生成し（＃１６４）、データ送信部５０４は、これを端末装置２に送信する（＃１６５）。
【００７８】
端末装置２において、データ受信部２０５が認証結果データＤＴ６を受信すると（＃１５４）、接続テーブル管理部２１３は、端末装置２自身の接続テーブルＳＴＢに、受信した認証結果データＤＴ２に示される認証用装置５のホスト名およびＭＡＣアドレスなどを追加登録する（＃１５５）。このようにして、端末装置２のノード認証およびユーザ認証が完了する。
【００７９】
この端末装置２に通信回線を介して他の端末装置２が接続されることによって、新たにネットワークが形成される場合がある。さらに、このネットワークに次々に他の端末装置２が参加する場合がある。これらの場合は、前に図６または図９で説明したような手順でノード認証およびユーザ認証のための処理が行われる。つまり、認証用装置５によって認証された端末装置２が、他の端末装置２の認証を行う。
【００８０】
図１２で説明した方法による認証は、端末装置２が参加しようとするネットワークの中に信頼できる他の端末装置２がない場合にも、用いられる。
【００８１】
図１３は認証用装置５を使用して端末装置２の認証処理を行う際の処理の流れの変形例を説明するフローチャートである。図１２で説明した処理を、図１３に示すような方法で行ってもよい。なお、図１２の処理と共通する部分については、説明を省略する。
【００８２】
端末装置２は、認証依頼データＤＴ５を生成し（＃２５２）、これを認証用装置５に送信する（＃２５３）。
【００８３】
認証用装置５は、端末装置２からの認証依頼データＤＴ５を受信すると（＃２６２）、端末装置２のユーザ認証およびノード認証を行う（＃２６３）。ノード認証およびユーザ認証の結果、端末装置２の正当性などを確認することができたら、認証が得られた旨を示す認証結果データＤＴ６を生成する（＃２６４）。この認証結果データＤＴ６を認証用装置５の秘密鍵ＫＹＳで暗号化し、端末装置２に送信する（＃２６５）。このとき、認証用装置５の公開鍵ＫＹＰも送信する。
【００８４】
端末装置２は、後にネットワークに参加する場合は、認証結果データＤＴ６を暗号化されたままの状態で上位ノードである端末装置２または認証用装置５に送信する（＃２０６）。このとき、自らの公開鍵ＫＹＰも送信する。
【００８５】
上位ノードである端末装置２または認証用装置５は、認証結果データＤＴ６を受信すると、これを復号し、送信元の端末装置２が認証の与えられた端末装置２であることを確認する（＃２６６）。そして、ＰＣ１０の公開鍵ＫＹＰを保存し（＃２６７）、送信元の端末装置２のネットワークへの参加を認める。
【００８６】
図１４は端末装置２の起動時の処理の流れの例を説明するフローチャートである。次に、端末装置２の起動時などにおける全体的な処理の流れについて、図１４のフローチャートを参照して説明する。
【００８７】
端末装置２は、電源がオンになったとき、オペレーティングシステムを再起動したとき、または端末装置２自身が初めてネットワークに参加するときに、自らの接続テーブルＳＴＢを参照し、通信可能な他の端末装置２を検索する（＃１）。通信可能な他の端末装置２が見つからない場合つまりその端末装置２自身がネットワーク内の１台目の端末装置でありまたはスタンドアロンである場合は（＃２でＹｅｓ）、認証用装置５に接続し、認証用装置５に対してノード認証およびユーザ認証の処理を行うように要求する（＃３）。この場合の端末装置２および認証用装置５の処理の手順は、前に図１２で説明した通りである。
【００８８】
一方、通信可能な他の端末装置２が見つかった場合すなわちネットワークの中に既に他の端末装置２が存在する場合は（＃２でＮｏ）、いずれかの他の端末装置２に対してノード認証およびユーザ認証の処理を行うように要求する（＃４）。この場合の処理の手順は、前に図６または図９で説明した通りである。
【００８９】
本実施形態によると、端末装置２のノード認証およびユーザ認証の処理を、直接データのやり取りを行う他の端末装置２に実行させる。よって、認証処理を簡単に行うことができる。また、端末装置２がスタンドアロンである場合または直接データのやり取りを行う他の端末装置２のいずれもが認証機能を有さない場合は、認証用装置５に認証処理を実行させる。よって、ネットワークを形成する初期の段階においても、１台目の端末装置２から信頼性を確認し高いセキュリティを得ることができる。
【００９０】
また、本実施形態によると、インターネットなどの社外のネットワークに常時接続しなくても、端末装置２の認証を行うことができる。
【００９１】
図１５は端末装置２の起動時の処理の流れの変形例を説明するフローチャートである。本実施形態では、端末装置２は、他の端末装置２と通信できない場合には、図１２のフローチャートのような手順で認証用装置５に対してノード認証などの要求を行ったが、セキュリティを向上させるために、図１５のフローチャートのような手順で要求を行ってもよい。
【００９２】
すなわち、端末装置２は、電源がオンになったときまたはオペレーティングシステムを再起動したときに、自らの接続テーブルＳＴＢを参照し、通信可能な他の端末装置２を検索する（＃１１）。通信可能な他の端末装置２が見つかった場合は、図１４のステップ＃４と同様に、いずれかの他の端末装置２に対してノード認証およびユーザ認証の処理を行うように要求する（＃１３）。
【００９３】
一方、通信可能な他の端末装置２が見つからない場合つまりその端末装置２自身がネットワーク内の１台目の端末装置でありまたはスタンドアロンである場合は（＃１２でＹｅｓ）、認証用装置５に接続する（＃１４）。
【００９４】
ところで、この認証用装置５は、メーカのサービスマンまたはエンジニアが持参したものであることがある。しかし、そうすると、この認証用装置５自体が信頼できるものであるか否か分からない。そこで、認証用装置５の信頼性を確かめるために、次のような手順で処理を行う。
【００９５】
端末装置２は、信頼できるルートでありかつ認証用装置５を介さないルートでメーカから認証キーを取得する（＃１５）。例えば、インターネットまたは公衆回線を介してメーカのサイトにアクセスし、認証キーをダウンロードして取得する。または、メーカから郵送されてきた媒体（用紙またはフロッピディスクなど）に記録されている認証キーを入力するようにしてもよい。認証キーの取得は、ステップ＃１３よりも前に予め行っておいてもよい。なお、この認証キーは、認証用装置５が保持している電子証明書を所定のハッシュ関数によってハッシュ化した文字列（ダイジェスト、ハッシュ値）である。ハッシュ関数として、例えば、ＳＨＡ−１、ＭＤ５またはＭＡＳＨなどが用いられる。
【００９６】
さらに、端末装置２は、接続した認証用装置５から、その認証用装置５の電子証明書（例えば、Ｘ．５０９証明書）を受信し、その電子証明書を、認証キーの生成の際に用いられたハッシュ関数と同じハッシュ関数によってハッシュ化し、ハッシュ値を算出する（＃１６）。または、Ｘ．５０９証明書に含まれるダイジェストを抽出する。そして、ステップ＃１４で得た認証キーの値とステップ＃１５で得た値とを照合することによって、認証用装置５が信頼できる正しい装置であるか否かを判別する（＃１７）。つまり、両値が一致すれば正しい装置であると判別し、一致しなければ正しい装置でないと判別する。
【００９７】
正しい装置であると判別できた場合は（＃１７でＹｅｓ）、図１４のステップ＃３と同様に、その認証用装置５に対してノード認証およびユーザ認証の処理を行うように要求する（＃１８）。正しい装置であると判別できなかった場合は（＃１７でＮｏ）、信頼できる別の認証用装置５を取り寄せ（＃１９）、ステップ＃１４以降の処理を再度実行する。
【００９８】
このように、認証用装置５の認証を行って信頼性を確認することによって、詐欺およびなりすましなどによる被害をより確実に防止することができる。
【００９９】
本実施形態では、端末装置２は、ＵＳＢなどのインタフェースを介して認証用装置５に接続したが、認証用装置５に接続するための専用回線を設けておき、その専用回線を介して接続するようにしてもよい。または、認証用装置５の専用の電話番号を用意しておき、その電話番号にダイアルアップして接続するようにしてもよい。
【０１００】
本実施形態では、１つのセグメント内の端末装置２同士で認証を行う場合を例に説明したが、ルータを越えて互いに異なるセグメントにある端末装置２同士で認証を行うことも可能である。
【０１０１】
その他、ネットワーク１、端末装置２、認証用装置５の全体または各部の構成、処理内容、処理順序、ノード認証の方法、ユーザ認証の方法などは、本発明の趣旨に沿って適宜変更することができる。
【産業上の利用可能性】
【０１０２】
本発明は、ＭＦＰ（Multi Function Peripherals）、パーソナルコンピュータ、ワークステーション、ルータ、ハブなどのような、ネットワークのノードとして用いられる情報処理装置の認証のために好適に用いられる。
【図面の簡単な説明】
【０１０３】
【図１】ネットワークの全体的な構成の例を示す図である。
【図２】端末装置のハードウェア構成の例を示す図である。
【図３】端末装置の機能的構成の例を示す図である。
【図４】ネットワークを構成する端末装置２の論理的な接続形態の例を示す図である。
【図５】接続テーブルの例を示す図である。
【図６】端末装置がネットワークに参加する際の処理の流れの例を説明するフローチャートである。
【図７】ＰＣ１０の参加によって更新された接続テーブルの例を示す図である。
【図８】ＰＣ１０の参加後のＰＣ０１〜ＰＣ０９の関連付けの例を示す図である。
【図９】端末装置がネットワークに参加する際の処理の流れの変形例を説明するフローチャートである。
【図１０】端末装置がネットワークから離脱する際の処理の流れの例を説明するフローチャートである。
【図１１】認証用装置の機能的構成の例を示す図である。
【図１２】認証用装置を使用して端末装置の認証処理を行う際の処理の流れの例を説明するフローチャートである。
【図１３】認証用装置を使用して端末装置の認証処理を行う際の処理の流れの変形例を説明するフローチャートである。
【図１４】端末装置の起動時の処理の流れの例を説明するフローチャートである。
【図１５】端末装置の起動時の処理の流れの変形例を説明するフローチャートである。
【符号の説明】
【０１０４】
１  ネットワーク
２  端末装置（情報処理装置、ノード）
５  認証用装置
２０４  データ送信部（認証要求手段）
５０５  データ受信部（電子証明書取得手段）
５１２  認証処理部（認証処理手段）
【図１】
0004736722.tif 000002
【図２】
0004736722.tif 000003
【図３】
0004736722.tif 000004
【図４】
0004736722.tif 000005
【図５】
0004736722.tif 000006
【図６】
0004736722.tif 000007
【図７】
0004736722.tif 000008
【図８】
0004736722.tif 000009
【図９】
0004736722.tif 000010
【図１０】
0004736722.tif 000011
【図１１】
0004736722.tif 000012
【図１２】
0004736722.tif 000013
【図１３】
0004736722.tif 000014
【図１４】
0004736722.tif 000015
【図１５】
0004736722.tif 000016