(57)【要約】【課題】ネットワーク上の不特定多数の制御装置への安全なアクセスを、該制御装置でユーザ識別子やパスワードなどのユーザ情報を管理することなく可能にする。【解決手段】アクセス元となる制御端末と、アクセス先となる１つ以上の制御装置と、少なくとも前記制御端末と前記制御装置との間で行われる認証に必要な情報を保持する認証情報管理装置とを備え、前記制御装置は、前記制御端末からのアクセス要求に対して、ゼロ知識証明プロトコルを利用した認証を行う認証手段と、前記認証において検証者側として必要な情報を、前記認証情報管理装置から、当該制御装置が現在保持している情報を用いたゼロ知識証明プロトコルで前記認証情報管理装置を認証した上で取得する認証情報取得手段とを有することを特徴とする。【選択図】図１
2009181194.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して接続される１つ以上の制御装置にアクセスさせる際の認証を行う認証システムであって、
アクセス元となる制御端末と、アクセス先となる１つ以上の制御装置と、少なくとも前記制御端末と前記制御装置との間で行われる認証に必要な情報を保持する認証情報管理装置とを備え、
前記制御装置は、
前記制御端末からのアクセス要求に対して、ゼロ知識証明プロトコルを利用した認証を行う認証手段と、
前記認証において検証者側として必要な情報を、前記認証情報管理装置から、当該制御装置が現在保持している情報を用いたゼロ知識証明プロトコルで前記認証情報管理装置を認証した上で取得する認証情報取得手段とを有する
ことを特徴とする認証システム。
【請求項２】
認証情報管理装置は、さらに正当な制御端末の情報をリスト化した制御端末リストを保持し、
制御装置の認証情報取得手段は、認証情報管理装置から前記制御端末リストを取得し、
制御装置の認証手段は、前記制御端末リストに基づきアクセス元である制御端末を認証した上で、ゼロ知識証明プロトコルを利用した認証を行う
請求項１に記載の認証システム。
【請求項３】
認証情報管理装置は、
当該認証情報管理装置が属しているネットワーク上に存在する制御装置を検出し、検出した該制御装置に、当該認証情報管理装置で現在保持している前記制御装置が制御端末との間の認証に必要な情報を通知する制御装置管理手段を有する
請求項１または請求項２に記載の認証システム。
【請求項４】
認証情報管理装置は、
制御端末からの登録要求に対して所定の方法により認証を行った上で、該制御端末に、現在認証情報保持手段で保持している前記制御端末と制御装置との間のゼロ知識証明プロトコルを利用した認証において証明者側として必要な情報を通知する制御端末管理手段を有する
請求項１から請求項３のうちのいずれか１項に記載の認証システム。
【請求項５】
複数の制御端末に対して共通の認証情報を用いる認証システムであって、
制御端末管理手段は、制御端末からの削除要求に対して所定の方法により認証を行った上で、制御装置と制御端末との間のゼロ知識証明プロトコルを利用した認証に必要な情報を更新し、
制御装置管理手段は、制御装置と制御端末との間のゼロ知識証明プロトコルを利用した認証に必要な情報が更新された場合に、その旨を制御装置に通知する
請求項１から請求項４のうちのいずれか１項に記載の認証システム。
【請求項６】
ネットワークを介して接続される１つ以上の制御装置にアクセスさせる際の認証を行う認証システムに適用される制御装置であって、
制御端末からのアクセス要求に対して、ゼロ知識証明プロトコルを利用した認証を行う認証手段と、
前記認証において検証者側として必要な情報を、該情報を保持している認証情報管理装置から、当該制御装置が現在保持している情報を用いたゼロ知識証明プロトコルで前記認証情報管理装置を認証した上で取得する認証情報取得手段とを備えた
ことを特徴とする制御装置。
【請求項７】
認証情報取得手段は、認証情報管理装置から正当な制御端末の情報をリスト化した制御端末リストを取得し、
認証手段は、前記制御端末リストに基づきアクセス元である制御端末を認証した上で、ゼロ知識証明プロトコルを利用した認証を行う
請求項６に記載の制御装置。
【請求項８】
ネットワークを介して接続される１つ以上の制御装置にアクセスさせる際の認証を行う認証方法であって、
制御装置が、アクセス元となった制御端末との間で行うゼロ知識証明プロトコルを利用した認証において検証者側として必要な情報を、該情報を保持している認証情報管理装置から、当該制御装置が現在保持している情報を用いたゼロ知識証明プロトコルで前記認証情報管理装置を認証した上で取得する
ことを特徴とする認証方法。
【請求項９】
制御装置が、さらに正当な制御端末の情報をリスト化した制御端末リストを取得し、
前記制御装置が、制御端末からのアクセスに対して、前記制御端末リストに基づきアクセス元である制御端末を認証した上で、ゼロ知識証明プロトコルを利用した認証を行う
請求項８に記載の認証方法。
【請求項１０】
認証情報管理装置が、当該認証情報管理装置が属しているネットワーク上に存在する制御装置を検出し、
認証情報管理装置が、検出した該制御装置に、現在当該認証情報管理装置で保持している前記制御装置と制御端末との間のゼロ知識証明プロトコルを利用した認証において検証者側として必要な情報を通知する
請求項８または請求項９に記載の認証方法。
【請求項１１】
認証情報管理装置が、制御端末からの登録要求に対して所定の方法により認証を行った上で、該制御端末に、現在当該認証情報管理装置で保持している前記制御端末と制御装置との間のゼロ知識証明プロトコルを利用した認証において証明者側として必要な情報を通知する
請求項８から請求項１０のうちのいずれか１項に記載の認証方法。
【請求項１２】
認証情報管理装置が、制御端末からの削除要求に対して所定の方法により認証を行った上で、制御装置と制御端末との間のゼロ知識証明プロトコルを利用した認証に必要な情報を更新し、
認証情報管理装置が、制御装置と制御端末との間のゼロ知識証明プロトコルを利用した認証に必要な情報が更新された場合に、その旨を制御装置に通知する
請求項８から請求項１１のうちのいずれか１項に記載の認証方法。
【請求項１３】
ネットワークを介して接続される１つ以上の制御装置にアクセスさせる際の認証を行う認証システムにおける制御装置に適用される認証用プログラムであって、
コンピュータに、
前記制御端末からのアクセス要求に対して、ゼロ知識証明プロトコルを利用した認証を行う処理、および
前記認証において検証者側として必要な情報を、該情報を保持している認証情報管理装置から、当該コンピュータが現在保持している情報を用いたゼロ知識証明プロトコルで前記認証情報管理装置を認証した上で取得する処理
を実行させるための認証用プログラム。
【請求項１４】
コンピュータに、
認証情報管理装置から前記制御端末リストを取得させ、
制御端末からのアクセスに対して、前記制御端末リストに基づきアクセス元である制御端末を認証した上で、ゼロ知識証明プロトコルを利用した認証を行わせる
請求項１３に記載の認証用プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを介して接続される１つ以上の制御装置にアクセスさせる際の認証を行う認証システム、それに用いる制御装置、認証方法、および認証用プログラムに関する。
【背景技術】
【０００２】
複数のコンピュータからなるコンピュータシステムにおいて、ユーザ認証のためのユーザ情報の管理が重要な課題となっている。この問題を解決するために、シングルサインオンという技術が存在する。
【０００３】
シングルサインオン技術とは、認証を集中的に行うサーバコンピュータで一度ユーザ認証を受けると、そのシングルサインオンに対応したコンピュータ上で新たに認証を必要とすることなく、そのコンピュータを利用することを可能とする技術である。この技術によってユーザ識別子とパスワードなどのユーザ情報を一元化することができる。管理者側では、これらのユーザ情報を管理するコストを削減することができる。また、利用者側では、一度認証に成功すれば、シングルサインオンに対応した複数のコンピュータでの認証が不要になる。このように、シングルサインオン技術の導入は、管理者および利用者の双方にとって負担を軽減することができるなど大きな利点がある。
【０００４】
シングルサインオンを実現するための方法の一例が、特許文献１に記載されている。特許文献１に記載されているシングルサインオン実現方法では、特定の認証方式やセッション維持方式に対応したシングルサインオンモジュールを予め作成し、適用可能な通信パターンとともにシングルサインオンサーバに登録する。シングルサインオンサーバは、情報システムログインの通信ログを取得し、上記通信パターンと照らし合わせ、適用可能なシングルサインオンモジュールを選択する。そして、選択されたシングルサインオンモジュールを用いてシングルサインオンを行う。
【０００５】
ところで、証明者のもつ秘密情報を一切他にもらさずに、証明者が秘密情報をもっているということを検証者に伝えることができるゼロ知識証明という証明技術がある。ゼロ知識証明を用いた認証法では、検証者は証明者のもつ秘密情報を一切所持せずに認証を行うことができるので、不特定多数の利用者との間で認証が行えるという利点がある。
【０００６】
このゼロ知識証明を利用した認証システムの一例が、特許文献２の背景技術において開示されている。また、特許文献２には、センタの秘密情報によって生成される法（具体的には、合成数Ｎ）の変更に係る秘密情報の変更を安全に行うための秘密情報変更方法が記載されている。
【０００７】
【特許文献１】特開２００６−３３１０４４号公報
【特許文献２】特開平０６−１５００８２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
第１の問題点は、シングルサインオン技術の多くが、完全なＴＣＰ／ＩＰプロトコルスタックの機能や通信路の暗号化などのために十分な計算リソースを必要とする点である。近年の計算機能力の向上を考えると、これらの問題は大きな問題ではないように感じるかもしれないが、十分な計算リソースを保持していない組み込み機器や障害のために完全なＴＣＰ／ＩＰプロトコルスタックの機能を利用できなくなったコンピュータなどの場合、一切のユーザ認証を行うことができなくなる。このように、組み込み機器や障害が発生したコンピュータなど様々な環境に対応可能にした上で、複数のコンピュータのユーザ情報の管理のコストを削減することができる汎用的な認証システムを実現することは困難であった。
【０００９】
例えば、特許文献１に記載されたシングルサインオン技術をはじめとする多くのシングルサインオン技術では、ＨＴＴＰサーバやＬＤＡＰサーバをベースとするなど様々な方式でシングルサインオンを実現している。このようなシングルサインオン技術を利用した認証システムでは、ＴＣＰ／ＩＰプロトコルスタックの上位層を利用したアプリケーションを必要とする。例えば、Ｗｅｂベースのシングルサインオン技術を利用する場合、サーバコンピュータ側（認証システムにおける検証者側）でＨＴＴＰサーバを実装する必要がある。また、例えば、ＬＤＡＰベースのシングルサインオン技術を利用する場合、サーバコンピュータ側でＬＤＡＰサーバと通信ができるＬＤＡＰクライアントの実装が必要となる。このため、十分な計算リソースをもっていないコンピュータやＴＣＰ／ＩＰプロトコルスタックの機能が一部だけ実装されているコンピュータではシングルサインオンによる認証を利用できない可能性がある。
【００１０】
第２の問題点は、サーバコンピュータ側で障害が発生し、一部の機能が利用できなくなった際に、シングルサインオンによる認証を利用できなくなる点である。ＬＤＡＰやＨＴＴＰなどのアプリケーションでは、ＴＣＰ／ＩＰプロトコルスタックの上位層の機能を利用しているため、これらの機能の一部が利用できなくなると、例え、ＴＣＰ／ＩＰプロトコルスタックの下位層での通信が利用できても、ＬＤＡＰやＨＴＴＰを利用することができずに、シングルサインオンによる認証ができなくなる。
【００１１】
なお、特許文献２に記載されている秘密情報変更方法は、クライアントコンピュータ側の管理を容易にすることを目的としており、サーバコンピュータ側の管理を容易にすることについては特に考慮されていない。例えば、特許文献２に記載されている秘密情報変更方法では、変更した秘密情報に対応する認証用データを検証者側に通知する際に、デジタル署名を用いてその認証用データの正当性を保証している。このため、サーバコンピュータ側にゼロ知識証明を用いた認証機能とデジタル署名を用いた認証機能の２種類の機能の実装が必要となる。また、デジタル署名を用いた認証では、その署名が本当に認証情報管理サーバのものであるかを証明する必要があるため、サーバコンピュータ側で認証情報管理サーバの情報を保持する必要があり、設定や更新といった管理が必要となる。
【００１２】
そこで、本発明は、ネットワーク上の不特定多数の制御装置への安全なアクセスを、該制御装置でユーザ識別子やパスワードなどのユーザ情報を管理することなく可能にする認証システム、認証方法、認証用プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明による認証システムは、ネットワークを介して接続される１つ以上の制御装置にアクセスさせる際の認証を行う認証システムであって、アクセス元となる制御端末と、アクセス先となる１つ以上の制御装置と、少なくとも前記制御端末と前記制御装置との間で行われる認証に必要な情報を保持する認証情報管理装置とを備え、前記制御装置は、前記制御端末からのアクセス要求に対して、ゼロ知識証明プロトコルを利用した認証を行う認証手段と、前記認証において検証者側として必要な情報を、前記認証情報管理装置から、当該制御装置が現在保持している情報を用いたゼロ知識証明プロトコルで前記認証情報管理装置を認証した上で取得する認証情報取得手段とを有することを特徴とする。
【００１４】
また、本発明による制御装置は、ネットワークを介して接続される１つ以上の制御装置にアクセスさせる際の認証を行う認証システムに適用される制御装置であって、制御端末からのアクセス要求に対して、ゼロ知識証明プロトコルを利用した認証を行う認証手段と、前記認証において検証者側として必要な情報を、該情報を保持している認証情報管理装置から、当該制御装置が現在保持している情報を用いたゼロ知識証明プロトコルで前記認証情報管理装置を認証した上で取得する認証情報取得手段とを備えたことを特徴とする。
【００１５】
また、本発明による認証方法は、ネットワークを介して接続される１つ以上の制御装置にアクセスさせる際の認証を行う認証方法であって、制御装置が、アクセス元となった制御端末との間で行うゼロ知識証明プロトコルを利用した認証において検証者側として必要な情報を、該情報を保持している認証情報管理装置から、当該制御装置が現在保持している情報を用いたゼロ知識証明プロトコルで前記認証情報管理装置を認証した上で取得することを特徴とする。
【００１６】
また、本発明による認証用プログラムは、ネットワークを介して接続される１つ以上の制御装置にアクセスさせる際の認証を行う認証システムにおける制御装置に適用される認証用プログラムであって、コンピュータに、前記制御端末からのアクセス要求に対して、ゼロ知識証明プロトコルを利用した認証を行う処理、および前記認証において検証者側として必要な情報を、該情報を保持している認証情報管理装置から、当該コンピュータが現在保持している情報を用いたゼロ知識証明プロトコルで前記認証情報管理装置を認証した上で取得する処理を実行させることを特徴とする。
【発明の効果】
【００１７】
本発明によれば、ネットワーク上の不特定多数の制御装置への安全なアクセスが、該制御装置でユーザ識別子やパスワードなどのユーザ情報を管理することなく可能となる。なお、ここで”安全なアクセス”とは、正当な権限を有するもののみに許可されるアクセスをいう。
【発明を実施するための最良の形態】
【００１８】
以下、本発明の実施形態を図面を参照して説明する。図１は、本発明による認証システムの構成例を示すブロック図である。図１に示す認証システムは、アクセス元となる制御端末３と、アクセス先となる１つ以上の制御装置１と、認証情報管理装置２とを備える。
【００１９】
制御装置１と認証情報管理装置２、認証情報管理装置２と制御端末３、制御装置１と制御端末３とは、それぞれ通信ネットワークを介して接続されている。なお、制御端末３は、本システムのユーザ（例えば、アクセス先となる制御装置１の管理者）が操作するネットワークアクセス機能を有した端末である。また、認証情報管理装置２は、少なくとも前記制御端末と前記制御装置との間で行われる認証に必要な情報を保持しているサーバ装置である。
【００２０】
また、制御装置１は、認証情報取得手段１１と、認証手段１２とを有する。認証情報取得手段１１は、認証手段１２が制御端末３との間で行う認証において検証者側として必要な情報を、認証情報管理装置２から取得する。認証手段１２は、制御端末３からのアクセス要求に対して、ゼロ知識証明プロトコルを利用した認証を行う。
【００２１】
本発明では、認証情報管理装置２が制御装置１と制御端末３との間の認証に必要な情報を一括で管理する。その上で、認証情報取得手段１１が、認証手段１２が制御端末３との間でゼロ知識証明プロトコルを利用した認証を行うことを前提に、その認証において検証者側として必要な情報を、盗聴されてもよい形式で取得する。
【００２２】
具体的には、認証情報取得手段１１は、制御端末３との認証において検証者側として必要な情報を、認証情報管理装置２から、当該制御装置１が現在保持している情報を用いたゼロ知識証明プロトコルで認証情報管理装置２を認証した上で取得する。
【００２３】
このような構成によって、各制御装置１で制御端末３との認証に必要な情報を管理する必要をなくし、かつ制御端末との間で通信路の暗号化などのセキュリティを考慮せずに認証を行うことができる。
【００２４】
また、認証情報取得手段１１は、認証情報管理装置２から認証に必要な情報だけでなく、正当な制御端末の情報をリスト化した制御端末リストを取得するようにしてもよい。そのような場合には、認証手段１２は、制御端末リストに基づきアクセス元である制御端末３を認証した上で、ゼロ知識証明プロトコルを利用した認証を行うことも可能である。
【００２５】
また、図２に示すように、認証情報管理装置２が、制御装置管理手段２１と、制御装置管理手段２２とを有していてもよい。図２は、本発明による認証システムの他の構成例を示すブロック図である。
【００２６】
制御装置管理手段２１は、当該認証情報管理装置２が属しているネットワーク上に存在する本発明が適用された制御装置１を検出して、検出した該制御装置１に当該認証情報管理装置１で現在保持している認証に必要な情報を通知する。また、その際に、検出済みの制御装置１の情報をリスト化して保持するようにしてもよい。
【００２７】
制御端末管理手段２２は、制御端末３からの登録要求に対して所定の方法により認証を行った上で、該制御端末３に、当該認証情報管理装置１で現在保持している認証に必要な情報を通知する。また、その際に、登録済みの制御端末３の情報をリスト化して保持するようにしてもよい。
【００２８】
また、複数の制御端末３に対して共通の認証情報を用いる場合には、制御端末管理手段２２は、制御端末３からの削除要求に対して所定の方法により認証を行った上で、認証に必要な情報を更新するようにしてもよい。また、制御装置管理手段２１では、認証に必要な情報が更新されたことを受けて、その旨を検出済みの制御装置１に通知するようにしてもよい。
【００２９】
以下、より具体的な構成について説明する。図３は、本実施形態による認証システムのより具体的な構成例を示すブロック図である。図３に示す認証システムは、認証情報管理サーバ１００と、サーバコンピュータ２００群と、クライアントコンピュータ３００とを備える。なお、認証情報管理サーバ１００と、サーバコンピュータ２００群と、クライアントコンピュータ３００とは、それぞれ通信路４００を介して接続されている。
【００３０】
なお、図３に示す例では、サーバコンピュータ２００群に含まれるサーバコンピュータ２００の例としてサーバコンピュータ２００−１，２００−２を示しているが、サーバコンピュータ２００の数は１つ以上であればよい。また、１つのクライアントコンピュータ３００を示しているが、クライアントコンピュータ３００の数は、ユーザ数やユーザが使用する端末の数に応じていくつであってもよい。
【００３１】
本例では、通信路４００としてＴＣＰ／ＩＰプロトコルを利用したネットワークを用いる例を示す。また、証明法としてゼロ知識証明プロトコルの一つであるフィアットシャミア法を用いる例を示す。
【００３２】
図３に示すように、認証情報管理サーバ１００は、認証情報生成手段１１０と、コマンド受信者管理手段１２０と、コマンド送信者管理手段１３０とを備える。また、認証情報管理サーバ１００は、法ｄ１０１と、秘密情報ｄ１０２と、公開情報ｄ１０３と、コマンド受信者リストｄ１０４と、コマンド送信者リストｄ１０５とを保持するための情報保持手段１４０を備える。
【００３３】
また、サーバコンピュータ２００は、コマンド受信モジュール２１０を備える。また、クライアントコンピュータ３００は、コマンド送信モジュール３１０を備える。なお、コマンド受信モジュール２１０、コマンド送信モジュール３１０は、例えば、予め提供されるプログラムモジュールをダウンロードまたはインストールすることにより実装されることが望ましい。以下、「コマンド受信モジュール２１０が〜する」といった表現を用いた場合には、具体的には、コマンド受信モジュール２１０がインストールされたサーバコンピュータ２００が備えるＣＰＵが、コマンド受信モジュール２１０に従って動作することを意味する。同様に、「コマンド送信モジュール３１０が〜する」といった表現を用いた場合には、具体的には、コマンド送信モジュール３１０がインストールされたクライアントコンピュータ３００が備えるＣＰＵが、コマンド送信モジュール３１０に従って動作することを意味する。
【００３４】
法ｄ１０１は、本システムにおけるゼロ知識証明を実現するために用いる問題（計算式）を規定するための情報である。本実施形態では、法ｄ１０１として、２つの素数ｍ，ｎの積を用いる。法ｄ１０１は、必要に応じてサーバコンピュータ２００およびクライアントコンピュータ３００に公開される。一方、法ｄ１０１の因数である素数ｍ，ｎは秘密にされる。なお、法ｄ１０１は、その因数である素数ｍ，ｎの設定および変更に応じて生成されるようになっていればよい。
【００３５】
秘密情報ｄ１０２は、本システムにおけるゼロ知識証明を実現するために用いる問題を解くために用いられる情報であって、証明者側で秘密にされる情報である。また、公開情報ｄ１０３は、本システムにおけるゼロ知識証明を実現するために用いる問題を解くために用いられる情報であって、秘密情報ｄ１０２および法ｄ１０１に基づき生成される情報である。なお、公開情報ｄ１０３は、検証者側に公開される情報である。
【００３６】
コマンド受信者リストｄ１０４は、本システムによる認証を利用してコマンド（所定のアクセス要求）を受信できるコマンド受信者側の制御装置（ここでは、制御装置管理モジュール２１０を有するサーバコンピュータ２００）を示す情報の一覧である。コマンド受信者リストｄ１０４は、例えば、サーバコンピュータ２００を識別できるＩＰアドレスやＭＡＣアドレスをリスト化した情報でよい。コマンド受信者リストｄ１０４は、クライアントコンピュータ３００がコマンドを送信する認証情報管理サーバ１００を選択するのに利用される。
【００３７】
コマンド送信者リストｄ１０５は、現在登録されているコマンド送信者側の制御装置（ここでは、コマンド送信モジュール３１０を有するクライアントコンピュータ３００）を示す情報の一覧である。コマンド送信者リストｄ１０５は、例えば、クライアントコンピュータ３００を識別できるＩＰアドレスやＭＡＣアドレスをリスト化した情報でよい。コマンド送信者リストｄ１０５は、サーバコンピュータ２００がクライアントコンピュータ３００から送信されるコマンドを実行するかどうかを判断するのに利用される。
【００３８】
認証情報生成手段１１０は、秘密情報ｄ１０２および公開情報ｄ１０３を生成および更新する。また、認証情報取得手段１１０は、法ｄ１０１を生成、更新してもよい。秘密情報ｄ１０２の桁数は、本システムのセキュリティの強度につながるためできる限り大きな数が望ましい。本実施形態では、秘密情報ｄ１０２は、任意の数字を選ぶことによって生成し、公開情報ｄ１０３は以下の式（１）を用いて生成する。なお、”ａ  ｍｏｄ  ｂ”は、ａをｂで割った余り（剰余）を求める演算子を示している。
【００３９】
公開情報ｄ１０３＝（秘密情報ｄ１０２）２  （ｍｏｄ  法ｄ１０１）  ・・・式（１）
【００４０】
コマンド受信者管理手段１２０は、認証情報管理サーバ１００が属している通信路４００上からコマンド受信モジュール２１０を備えているサーバコンピュータ２００を検出し、コマンド受信者リストｄ１０４を生成および更新する。コマンド受信者管理手段１２０は、例えば、認証情報管理サーバ１００が属している通信路４００上に”検索”を表す所定のブロードキャストパケットを送出し、その応答パケットとして”存在”を表す所定のパケットが返ってきたか否かを判断し、返ってきた場合に、そのパケットの送信元の制御装置を、コマンド受信モジュール２１０を備えているサーバコンピュータ２００として検出すればよい。そして、そのパケットで示される送信元の制御装置の識別子（ＩＰアドレスやＭＡＣアドレス）をコマンド受信者リストｄ１０４に登録すればよい。
【００４１】
なお、コマンド受信者管理手段１２０によって送出される検索”を表す所定のブロードキャストパケットは、本発明が適用されたサーバコンピュータ２００が備えるコマンド受信モジュール２１０に受理されるよう定義づけられている。すなわち、コマンド受信者管理手段１２０は、”検索”を表す所定のブロードキャストパケットを送出し、その応答パケットとしてコマンド受信モジュール２１０によって送出される”存在”を表す所定のパケットを受信するか否かによって検出すればよい。
【００４２】
このような検出処理を実行するタイミングは、通信路４００上に本発明が適用されたサーバコンピュータ２００が増減するかどうかで異なる。サーバコンピュータ２００が増減しないのであれば、頻度は少なくてもよい。なお、１度だけでもよい。逆に、増減するのであれば検出処理を定期的に実施すればよい。そして、新たなサーバコンピュータ２００が発見される度にコマンド受信者リストｄ１０４を更新すればよい。
【００４３】
また、コマンド受信者管理手段１２０は、秘密情報ｄ１０２やコマンド送信者リストｄ１０５が更新された場合に、コマンド受信者リストｄ１０４を利用して、本発明が適用されたサーバコンピュータ２００に対しその旨（更新された旨）を通知する。
【００４４】
コマンド受信者管理手段１２０は、例えば、コマンド受信者リストｄ１０４に登録されているＩＰアドレスやＭＡＣアドレスを利用して、本発明が適用されたサーバコンピュータ２００に対して、更新されたコマンド送信者リストｄ１０５や秘密情報ｄ１０２を送信する。なお、送信後は、サーバコンピュータ２００から、当該認証情報管理サーバ１００に対してゼロ知識証明プロトコルを利用した認証が要求されるので、コマンド受信者管理手段１２０は、要求に応じて認証処理を行う。なお、コマンド受信者管理手段１２０は、図２に示す制御装置管理手段２１に相当する。
【００４５】
コマンド送信者管理手段１３０は、コマンド送信者側の制御装置（ここでは、コマンド送信モジュール３１０を有するクライアントコンピュータ３００）からの登録要求を待ち受けて、その登録要求に応じた処理を行う。コマンド送信者管理手段１３０は、例えば、ユーザ５００からの操作によりクライアントコンピュータ３００から登録要求を受け付けると、まず、そのクライアントコンピュータ３００に対して認証を要求する。ここでの認証は、ユーザ識別子とパスワード等を用いたユーザ認証でも暗号化認証でもよい。なお、ユーザ識別子やパスワードは、予め本システムの管理者が認証情報管理サーバ１００に登録しておけばよい。認証に成功すると、コマンド送信者管理手段１３０は、そのクライアントコンピュータ３００の情報をコマンド送信者リストｄ１０５に登録する。そして、コマンド送信者リストｄ１０５に登録したクライアントコンピュータ３００に対して、秘密情報ｄ１０２と、法ｄ１０１と、コマンド受信者リストｄ１０４とを送信する。ここで、秘密情報ｄ１０２を送信する際には、漏洩を防ぐために認証情報管理サーバ１００とクライアントコンピュータ３００との間の通信路４００の暗号化が必要である。
【００４６】
また、コマンド送信者管理手段１３０は、コマンド送信者リストｄ１０５に登録されているクライアントコンピュータ３００からの削除要求を待ち受けて、その削除要求に応じた処理を行う。コマンド送信者管理手段１３０は、例えば、ユーザ５００からの操作によりクライアントコンピュータ３００からそのクライアントコンピュータ３００の削除要求を受け付けると、まず、そのクライアントコンピュータ３００に対して認証を要求する。ここでの認証は、ユーザ識別子とパスワード等を用いたユーザ認証でも暗号化認証でもよい。認証に成功すると、コマンド送信者管理手段１３０は、そのクライアントコンピュータ３００の情報をコマンド送信者リストｄ１０５から削除する。
【００４７】
また、コマンド送信者管理手段１３０は、コマンド送信者リストｄ１０５からクライアントコンピュータ３００の情報を削除すると、法ｄ１０１と秘密情報ｄ１０２と公開情報ｄ１０３とを更新するよう認証情報生成手段１１０に要求する。法ｄ１０１と秘密情報ｄ１０２と公開情報ｄ１０３とが更新されると、コマンド送信者管理手段１３０は、現在のコマンド送信者リストｄ１０５を利用して、他のクライアントコンピュータ３００に対しその旨（更新された旨）を通知する。なお、コマンド受信者管理手段１２０にこれらの更新（コマンド送信者リストｄ１０５および秘密情報ｄ１０２）を通知することにより、コマンド受信者管理手段１２０を介してサーバコンピュータ２００に対してもその旨が通知される。結果、サーバコンピュータ２００およびクライアントコンピュータ３００へ法ｄ１０１や秘密情報ｄ１０２、公開情報ｄ１０３の更新が反映され、削除されたクライアントコンピュータ３００が利用していた情報を無効化できる。また、サーバコンピュータ２００へコマンド送信者リストｄ１０５の更新も反映されるので、サーバコンピュータ２００は、最新の情報に追従できる。
【００４８】
また、コマンド送信者管理手段１３０は、コマンド送信者となるクライアントコンピュータ３００からの更新要求を待ち受けて、その更新要求に応じた処理を行う。コマンド送信者管理手段１３０は、クライアントコンピュータ３００を介してユーザ５００から情報の更新要求を受け付けると、まず、そのクライアントコンピュータ３００に対して認証を要求する。ここでの認証は、ユーザ識別子とパスワード等を用いたユーザ認証でも暗号化認証でもよい。認証に成功すると、コマンド送信者管理手段１３０は、秘密情報ｄ１０２と、法ｄ１０１と、コマンド送信者リストｄ１０５とをそのクライアントコンピュータ３００に送信する。ここで、秘密情報ｄ１０２を送信する際には、漏洩を防ぐために認証情報管理サーバ１００とクライアントコンピュータ３００との間の通信路４００の暗号化が必要である。なお、コマンド送信者管理手段１３０は、図２に示す制御端末管理手段２２に相当する。
【００４９】
クライアントコンピュータ３００のコマンド送信モジュール３１０は、認証情報管理サーバ１００に対して当該クライアントコンピュータ３００の登録要求を行う。そして、登録要求の応答として、まず、認証情報管理サーバ１００から認証の要求を受けると、要求に応じて認証処理を行う。例えば、コマンド送信モジュール３１０は、ユーザ５００から入力される当該クライアントコンピュータ３００が偽装されていないことを証明するための情報を送信する。ここでの認証は、既に説明したように、ユーザ識別子とパスワード等を用いたユーザ認証でも暗号化認証でもよい。認証に成功すると、認証情報管理サーバ１００から送信される法ｄ１０１と秘密情報ｄ１０２とコマンド受信者リストｄ１０４とを受信し、当該クライアントコンピュータ３００が管理する法ｄ３０１，秘密情報ｄ３０２，コマンド受信者リストｄ３０３として保持する。なお、秘密情報ｄ３０２は、外部へ公開せずにクライアントコンピュータ３００内で厳密に管理される。
【００５０】
また、コマンド送信モジュール３１０は、サーバコンピュータ２００へコマンドを送信する。コマンド送信モジュール３１０は、例えば、ユーザ５００からの操作に応じて、認証情報管理サーバ１００から受信し保持しておいたコマンド受信者リストｄ３０３から、送信先とするサーバコンピュータ２００を選び出し、そのサーバコンピュータ２００へコマンドを送信する。サーバコンピュータ２００へコマンドを送信すると、そのサーバコンピュータ２００からゼロ知識証明プロトコルを利用した認証が要求されるので、コマンド送信モジュール３１０は、要求に応じて認証処理を行う。認証に成功すると、そのサーバコンピュータ２００でコマンドが実行される。なお、利用できるコマンドは、サーバコンピュータ２００のコマンド受信モジュール２１０の実装に依存する。
【００５１】
また、コマンド送信モジュール３１０は、認証情報管理サーバ１００に対して当該クライアントコンピュータ３００の削除要求を行う。そして、削除要求の応答として、まず、認証情報管理サーバ１００から認証の要求を受けると、要求に応じて認証処理を行う。例えば、コマンド送信モジュール３１０は、ユーザ５００から入力される当該クライアントコンピュータ３００が偽装されていないことを証明するための情報を送信する。ここでの認証は、既に説明したように、ユーザ識別子とパスワード等を用いたユーザ認証でも暗号化認証でもよい。認証に成功すれば、当該クライアントコンピュータ３００の情報が、認証情報管理サーバ１００のコマンド送信者リストｄ１０５から削除される。
【００５２】
また、コマンド送信モジュール３１０は、認証情報管理サーバ１００に対して当該クライアントコンピュータ３００の情報の更新要求を行う。そして、更新要求の応答として、まず、認証情報管理サーバ１００から認証の要求を受けると、要求に応じて認証処理を行う。例えば、コマンド送信モジュール３１０は、ユーザ５００から入力される当該クライアントコンピュータ３００が偽装されていないことを証明するための情報を送信する。ここでの認証は、既に説明したように、ユーザ識別子とパスワード等を用いたユーザ認証でも暗号化認証でもよい。認証に成功すると、認証情報管理サーバ１００から送信される法ｄ１０１と秘密情報ｄ１０２とコマンド受信者リストｄ１０４とを受信し、当該クライアントコンピュータ３００が管理する法ｄ３０１，秘密情報ｄ３０２，コマンド受信者リストｄ３０３を更新する。更新要求の送出は、ユーザ５００からの任意のタイミングによる操作に応じて実施したり、コマンドを送信する前に実施したり、認証情報管理サーバ１００からの更新通知を受けて実施したりするなど様々なタイミングが考えられる。
【００５３】
サーバコンピュータ２００のコマンド受信モジュール２１０は、大きく分けて、認証情報管理サーバ１００からの検索への応答と、クライアントコンピュータ３００から送られてくるコマンドの実行と、クライアントコンピュータ３００からの通知による情報の更新の３つの機能をもつ。なお、コマンド受信モジュール２１０は、図１および図２に示す認証情報取得手段１１の機能と認証手段１２の機能を実装したモジュールである。
【００５４】
コマンド受信モジュール２１０は、認証情報管理サーバ１００からの検索に対する応答を行う。コマンド受信モジュール２１０は、認証情報管理サーバ１００から”検索”を表す所定のブロードキャストパケットを受信すると、その応答パケットとして”存在”を表す所定のパケットを送出する。なお、コマンド受信モジュール２１０は、これまでに”存在”を表す所定のパケットを認証情報管理サーバ１００に応答しているか否かを判断し、応答していない場合に、応答として”存在”を表すパケットを送出するようにしてもよい。また、コマンド受信モジュール２１０は、その後、必要に応じて認証情報管理サーバ１００から送信される公開情報ｄ１０３とコマンド送信者リストｄ１０５とを受信し、当該サーバコンピュータ２００が管理する公開情報ｄ３０１，コマンド送信者リストｄ３０２として保持する。
【００５５】
また、コマンド受信モジュール２１０は、クライアントコンピュータ３００からのコマンドを受信し、実行する。コマンド受信モジュール２１０は、クライアントコンピュータ３００からのコマンドを受信すると、まず、そのクライアントコンピュータ３００の情報がコマンド送信者リストｄ３０２に登録されているか否かを確認する。登録されていなければ、コマンドを破棄する。登録されている場合には、そのクライアントコンピュータ３００に対してゼロ知識証明プロトコルを利用した認証を要求する。認証に成功すれば、コマンドを受理し、実行する。
【００５６】
コマンド受信モジュール２１０は、送られてきたコマンドを解釈し、そのコマンドによって指示される処理を実行すればよい。コマンドの実体は、当該サーバコンピュータ２００の環境に依存する。Ｌｉｎｕｘ（登録商標）を例にとると、出力するシステムログのログレベルの変更やシステムログの出力、マジックＳｙｓＲＱの実行、Ｌｉｎｕｘカーネルの状態情報の取得などが挙げられる。Ｌｉｎｕｘに限らず異なるＯＳであっても同じ操作を要求するのであれば、コマンドを抽象化し、異なるＯＳで構成されるサーバコンピュータ２００群に対して１つのコマンドで同じ意味を持つ処理を実行させるようにしてもよい。例えば、システムログの出力は、それぞれのＯＳでコマンドの実装が異なっていても、ユーザ５００が求める挙動は変わらないため、”システムログの出力”を指示する旨のコマンドを定義すればよい。
【００５７】
また、コマンド受信モジュール２１０は、認証情報管理サーバ１００からの情報の更新通知を待ち受けて、その更新通知に応じた処理を行う。コマンド受信モジュール２１０は、認証情報管理サーバ１００から公開情報ｄ１０３やコマンド送信者リストｄ１０５もしくはその両方を更新した旨の通知、および更新された情報を受け取ると、すぐには当該サーバコンピュータ２００の情報を更新せずに、ゼロ知識証明プロトコルを利用した認証を認証情報管理サーバ１００へ要求する。認証に成功すれば、信頼できる認証情報管理サーバ１００からの更新通知であるとして、認証情報管理サーバ１００から受け取った情報で、当該サーバコンピュータ２００が管理している公開情報ｄ２０１，コマンド送信者リストｄ２０２を更新する。
【００５８】
次に、本実施形態の動作について説明する。図４は、本実施形態の認証システムの動作の一例を示すシーケンス図である。
【００５９】
まず、認証情報管理サーバ１００の認証情報生成手段１１０が自身の設定を行う（ステップＳ１０１）。例えば、認証情報生成手段１１０は、２つの素数を決定し、その２つの値を掛け合わせたものを法ｄ１０１として生成する。続いて、任意の数字を選び出し、これを秘密情報ｄ１０２とする。そして、法ｄ１０１と秘密情報ｄ１０２とを用いて公開情報ｄ１０３を生成する。尚、公開情報ｄ１０３の生成方法は、上述した式（１）を用いればよい。
【００６０】
次に、認証情報管理サーバ１００のコマンド受信者管理手段１２０が、当該認証情報管理サーバ１００の属している通信路４００上のサーバコンピュータ２００を検索する（ステップＳ１０２）。コマンド受信者管理手段１２０は、例えば、”検索”を表すブロードキャストパケットを、当該認証情報管理サーバ１００が属している通信路４００上に送出し、その応答パケットとして送出される”存在”を表すパケットを待ち受ける。
【００６１】
サーバコンピュータ２００では、コマンド受信モジュール２１０が、認証情報管理サーバ１００からの検索に対する応答を行う（ステップＳ１０３）。サーバコンピュータ２００のコマンド受信モジュール２１０は、例えば、認証情報管理サーバ１００から”検索”を表すブロードキャストパケットを受信すると、その応答パケットとして”存在”を表すパケットを送出する。
【００６２】
認証情報管理サーバ１００のコマンド受信者管理手段１２０は、応答パケットを受信することにより発見されたサーバコンピュータ２００に対して、公開情報ｄ１０３とコマンド送信者リストｄ１０５とを送信する（ステップＳ１０４）。なお、送信先となったサーバコンピュータ２００では、受信した公開情報ｄ１０３とコマンド送信者リストｄ１０５とを、公開情報ｄ２０１、コマンド送信者リストｄ２０２として保持する。
【００６３】
また、コマンド受信者管理手段１２０は、新しく発見したサーバコンピュータ２００の情報をコマンド受信者リストｄ１０４に登録する。ここで、コマンド送信者リストｄ１０５にクライアントコンピュータ３００の情報が登録されている場合には、そのクライアントコンピュータ３００にコマンド送信者リストｄ１０５が更新された旨を通知すればよい。
【００６４】
また、クライアントコンピュータ３００のコマンド送信モジュール３１０は、システム管理者からの操作に応じて、認証情報管理サーバ１００に対して、当該クライアントコンピュータ３００の登録要求を行う（ステップＳ１０５）。なお、登録要求を受理する際には、認証情報管理サーバ１００とクライアントコンピュータ３００との間でユーザ認証を行う（ステップＳ１０６）。ここでの認証は、既に説明したように、ユーザ識別子とパスワード等を用いたユーザ認証でも暗号化認証でもよい。認証に成功すると、認証情報管理サーバ１００のコマンド送信者管理手段１３０は、その登録要求を受理し、要求元のクライアントコンピュータ３００の情報をコマンド送信者リストｄ１０５に登録する。
【００６５】
続いて、コマンド送信者管理手段１３０は、登録したクライアントコンピュータ３００へ、コマンド受信者リストｄ１０４と、証明者用の認証情報としての法ｄ１０１および秘密情報ｄ１０２とを送信する（ステップＳ１０７）。なお、送信先となったクライアントコンピュータ３００では、受信したコマンド受信者リストｄ１０４、法ｄ１０１、秘密情報ｄ１０２とを、コマンド受信者リストｄ３０３、法ｄ３０１、秘密情報ｄ３０２として保持する。
【００６６】
また、コマンド送信者管理手段１３０は、コマンド送信者リストｄ１０５を更新したことをうけて、コマンド受信者リストｄ１０４に登録されているサーバコンピュータ２００に対して、コマンドを送信してくるクライアントコンピュータ３００が新しく追加されたことを通知する（ステップＳ１０８）。この通知を受けると、各サーバコンピュータ２００のコマンド受信モジュール２１０は、認証情報管理サーバ１００へゼロ知識証明を使用した認証を認証情報管理サーバ１００に対して要求する（ステップＳ１０９）。この認証に成功すれば、コマンド受信モジュール２１０が、認証情報管理サーバ１００から送られてくるコマンド送信者リストｄ１０５を、コマンド送信者リストｄ２０２として保持する。なお、このとき併せて、検証者用の認証情報として公開情報ｄ１０３を送信するようにしてもよい。送信された公開情報ｄ１０３は、サーバコンピュータ２００で公開情報ｄ２０１として保持される。
【００６７】
認証情報管理サーバ１００への登録が完了した後、クライアントコンピュータ３００のコマンド送信モジュール３１０は、例えば、システム管理者からのコマンド入力操作に応じて、指定されたサーバコンピュータ２００に対してコマンドを発行する（ステップＳ１１０）。ここで、指定できるサーバコンピュータ２００は、当該クライアントコンピュータ３００で保持しているコマンド受信者リストｄ３０２に登録されているサーバコンピュータ２００とする。なお、コマンド送信モジュール３１０は、サーバコンピュータ２００に対してコマンドを発行する前に、認証情報管理サーバ１００に、当該クライアントコンピュータ３００が保持している情報（秘密情報ｄ３０２や法ｄ３０１やコマンド受信者リストｄ３０３）が最新のものであるかを認証情報管理サーバ１００に問い合わせ、更新する処理を行うようにしてもよい。
【００６８】
なお、コマンドを受理する際には、発行元のクライアントコンピュータ３００とサーバコンピュータ２００との間でユーザ認証を行う（ステップＳ１１１）。なお、ユーザ認証は、既に説明したように、クライアントコンピュータ３００が保持する認証情報を共有しなくても済む、ゼロ知識証明プロトコルを利用して行う。認証に成功すると、サーバコンピュータ２００のコマンド受信モジュール２１０は、発行されたコマンドを実行する（ステップＳ１１２）。
【００６９】
図５は、コマンド発行に係る一連の処理フローの例を示すフローチャートである。図５に示すように、まず、クライアントコンピュータ３００のコマンド送信モジュール３１０は、まず、当該クライアントコンピュータ３００で保持している秘密情報ｄ３０２と法ｄ３０１とコマンド受信者リストｄ３０３とが最新のものであるかを問い合わせ、必要に応じて更新する（ステップＳ２０１）。最新の情報に更新されると、コマンド送信モジュール３１０は、コマンド受信者リストｄ３０３から選ばれたサーバコンピュータ２００に対してコマンドを送信する（ステップＳ２０１）。なお、ステップＳ２０１の処理は、図４におけるステップＳ１０８の動作に相当する。
【００７０】
クライアントコンピュータ３００からコマンドを受け取ったサーバコンピュータ２００のコマンド受信モジュール２１０は、当該サーバコンピュータ２００が保持しているコマンド送信者リストｄ３０２に発行元のクライアントコンピュータ３００の情報が登録されているか否かを検証する（ステップＳ２１１）。検証に成功すれば、すなわち、コマンド送信者リストｄ３０２に発行元のクライアントコンピュータ３００の情報が登録されていれば次の処理に進み、そうでなければコマンド発行に係る処理を終了する（ステップＳ２１２）。
【００７１】
次に、コマンド受信モジュール２１０は、発行元のクライアントコンピュータ３００が偽装されていないことを確認するために、発行元のクライアントコンピュータ３００に対してゼロ知識証明プロトコルを利用した認証を要求する（ステップＳ２１３）。この認証が成功し、クライアントコンピュータ３００が偽装されていないことを確認できれば次の処理に進み、そうでなければ発行されたコマンドを破棄し、処理を終了する（ステップＳ２１４）。ここまでの処理の後、コマンド受信モジュール２１０は、発行されたコマンドを実行する（ステップＳ２１５）。
【００７２】
また、クライアントコンピュータ３００のコマンド送信モジュール３１０は、例えば、システム管理者からの削除操作に応じて、認証情報管理サーバ１００に対して、当該クライアントコンピュータ３００の削除要求を行う（図４のステップＳ１１３）。なお、削除要求を受理する際には、認証情報管理サーバ１００とクライアントコンピュータ３００との間でユーザ認証を行う（ステップＳ１１４）。ここでの認証は、既に説明したように、ユーザ識別子とパスワード等を用いたユーザ認証でも暗号化認証でもよい。認証に成功すると、認証情報管理サーバ１００のコマンド送信者管理手段１３０は、その削除要求を受理し、要求元のクライアントコンピュータ３００の情報をコマンド送信者リストｄ１０５から削除する。これにあわせて、認証情報管理サーバ１００の認証情報生成手段１１０が、法ｄ１０１と秘密情報ｄ１０２とを更新する。また、更新した法ｄ１０１と秘密情報ｄ１０２から新たな公開情報ｄ１０３を生成する。これは、削除されたクライアントコンピュータ３００が利用していた情報を無効化するためである。
【００７３】
続いて、コマンド送信者管理手段１３０は、コマンド送信者リストｄ１０５および公開情報ｄ１０３を更新したことをうけて、コマンド受信者リストｄ１０４に登録されているサーバコンピュータ２００に対して、コマンド送信者リストｄ１０５および公開情報ｄ１０３が更新されたことを通知する（ステップＳ１１５）。なお、以降の更新通知に係る処理は、クライアントコンピュータ３００の登録要求時のステップＳ１０８以降の処理と同様でよい。なお、公開情報ｄ１０３も更新されていることから、認証成功後には、コマンド送信者リストｄ１０５と公開情報ｄ１０３とを各サーバコンピュータ２００に送信するようにする。結果、コマンド受信者リストｄ１０４に登録されている各サーバコンピュータ２００には、更新後のコマンド送信者リストｄ１０５と公開情報ｄ１０３とが、コマンド送信者リストｄ２０２、公開情報ｄ２０１として保持されることになる。
【００７４】
次に、ゼロ知識証明プロトコルを利用した認証処理について説明する。図６は、本実施形態におけるゼロ知識証明プロトコルを利用した認証処理の処理フローの一例を示すフローチャートである。本実施形態では、ゼロ知識証明プロトコルを利用した認証は、認証情報管理サーバ１００（証明者側）とサーバコンピュータ２００（検証者側）との間で、サーバコンピュータ２００が持つ情報を更新する際、およびクライアントコンピュータ３００（証明者側）とサーバコンピュータ２００（検証者側）との間で、発行されたコマンドを受理する際に利用される。
【００７５】
ゼロ知識証明プロトコルを利用した認証を要求されると、まず、プロトコル証明者側の制御装置（例えば、認証情報管理サーバ１００やクライアントコンピュータ３００）は、乱数ｒを生成し、その乱数ｒと、自身が認識している法Ｌを元に、以下の式（２）を用いてＸを生成し、そのＸを検証者側の制御装置（本例では、サーバコンピュータ２００）に送信する（ステップＳ３０１）。
【００７６】
Ｘ＝ｒ２  ｍｏｄ  Ｌ  ・・・式（２）
【００７７】
次に、検証者側の制御装置は、チャレンジビットｅ（０か１）をランダムに選択し、証明者側の制御装置に送信する（ステップＳ３０２）。続いて、チャレンジビットｅを受け取った検証者側の制御装置は、受け取ったチャレンジビットｅと、自身が認識している秘密情報Ｓと法Ｌとを元に、以下の式（３）を用いてＹを生成し、そのＹを証明者側の制御装置に送信する（ステップＳ３０３）。
【００７８】
Ｙ＝ｒ・Ｓｅ  ｍｏｄ  Ｌ  ・・・式（３）
【００７９】
最後に、検証者側の制御装置が、受け取ったＹと、自身が認識している公開情報Ｐと、ステップＳ３０１で受け取ったＸとを元に、Ｙ２  ≡  Ｘ・Ｐｅを検証する（ステップＳ３０４）。ステップＳ３０４では、Ｐ＝Ｓ２  ｍｏｄ  Ｌ、即ち（ｒ・Ｓｅ）２  ≡  Ｙ２・Ｓ２ｅを検証する。
【００８０】
このステップＳ３０１〜Ｓ３０３の処理をＮ回繰り返し、Ｎ回全ての検証が成功すれば、検証者側の制御装置は、認証を要求した証明者側の制御装置が正当な権限を持ったものであると認証することができる。ここで指定したＮ回は、システム監理者Ａが設定すればよく、その回数によって信頼性を向上させることができる。例えば、Ｎ＝１０の場合には、偽装者がこの認証を突破できる確率は１／１０２４となる。また、例えば、Ｎ＝２０の場合には、偽装者がこの認証を突破できる確率は１／１０４８５７６となる。
【００８１】
なお、通信路４００がＴＣＰ／ＩＰプロトコルを利用したネットワークの利用を想定して説明したが、少なくともサーバコンピュータ２００との通信については、ＩｒＤＡなどの赤外線通信やシリアル通信など、整数の送受信ができる通信であればよい。なお、認証情報管理サーバ１００−クライアントコンピュータ３００間の通信については、登録時や削除時の認証方法による。
【００８２】
また、認証情報管理サーバ１００とクライアントコンピュータ３００とを別々のコンピュータとして示したが、コマンド送信モジュール３１０を認証情報管理サーバ１００に組み込むことにより、認証情報管理サーバ１００がクライアントコンピュータ３００の役割を担うことも可能である。また、認証情報管理サーバ１００が、サーバコンピュータ２００の発見時にそのサーバコンピュータ２００に対して法ｄ１０１を送信する方法を示したが、予めサーバコンピュータ２００に手動で設定する運用も可能である。また、クライアントコンピュータ３００がコマンドを発行する場合に、サーバコンピュータ２００と１対１でコマンドを発行する例を示したが、クライアントコンピュータ３００は、同時に複数のサーバコンピュータ２００に対してコマンドを発行することも可能である。
【００８３】
また、上記で示したサーバコンピュータ２００の検索シーケンスでは、新しく設置した認証情報管理サーバ１００に認証に必要な情報が登録されていない期間が存在することになる。その際に、悪意を持った第三者が通信路４上に偽装した認証情報管理サーバ１００を設置することによって、サーバコンピュータ２００に正当でない情報が登録される可能性がある。この対策としては、正当な認証情報管理サーバ１００が、定期的に各サーバコンピュータ２００に対して認証情報の確認要求を行い、ゼロ知識証明プロトコルを使用した認証を行わせ、その成否によってサーバコンピュータ２００に正しい情報が登録されているかを判別する。そして、正しい情報が登録されていないサーバコンピュータ２００の存在が発見された場合には、その旨を管理者に通知したり、コマンド受信者リストｄ１０４から削除するなどして、再度初期登録を行わせるようにすればよい。
【００８４】
また、本実施形態では、基本的に、認証情報を全認証者で共通の情報とすることを前提としているが、認証者別に生成する運用も可能である。なお、共通にしてもそうでなくても、本システムの本質的な挙動は同様である。なお、全認証者で共通の情報とした場合であっても、通信路４００やサーバコンピュータ２００の障害などで情報の更新に失敗する可能性が考えられるため、認証情報管理サーバ１００で、各サーバコンピュータ２００がどのバージョンの公開情報で動作しているかを管理するようにしてもよい。
【００８５】
以上のように、本実施形態によれば、システム監理者Ａがユーザ識別子やパスワードなどのユーザ情報を、サーバコンピュータ２００に対し管理、設定することなく、ネットワーク上の不特定多数のサーバコンピュータ２００（制御装置）へのセキュアなアクセスが可能になる。本実施形態では、認証情報管理サーバ１００がコンピュータシステム上のコンピュータの認証情報を一括して保持することにより、各サーバコンピュータ２００が個々に認証情報を管理せずに複数のユーザの認証を可能にしている。
【００８６】
また、本実施形態では、サーバコンピュータ２００とクライアントコンピュータ３００との間で、パスワード等の認証に必要な秘密にすべき情報が通信路４００（ここでは、サーバコンピュータ２００との間の通信路）上で解読できる形で流れることがないので、盗聴を心配する必要がない。結果、複雑な通信プロトコルを要せずにサーバコンピュータ２００−クライアントコンピュータ３００間での安全なネットワークシステムが実現可能となる。
【００８７】
また、完全なＴＣＰ／ＩＰプロトコルスタックを実装しているサーバコンピュータにおいても、障害発生時に、ＴＣＰ／ＩＰプロトコルスタックの下位層の機能を利用してアクセスして復旧処理を行うといった利用が安全に実現できる。例えば、ＳＳＨやＴｅｌｎｅｔなどのアプリケーションが利用できない状況においても、本発明を利用すれば、サーバコンピュータ２００にアクセスできる可能性が高まる。従って、障害が発生した際に外部から受ける影響を最小限に抑えることができ、障害に強いネットワーク越しの制御装置（サーバコンピュータ２００）が実現できることになる。
【００８８】
また、サーバコンピュータ２００側で複雑な計算をする必要がない（認証に必要な計算は乱数の生成と乗算のみである）ので、サーバコンピュータ２００の実装が容易である。また、本実施形態では、サーバコンピュータ２００−クライアントコンピュータ３００間の通信をＴＣＰ／ＩＰプロトコルスタックで行う例を示したが、ＩＰアドレスを表す整数や認証のための整数を通信できる環境であればよく、サーバコンピュータ２００−クライアントコンピュータ３００間の通信路４００の暗号化やセッションの維持などを考える必要がない。このため、計算リソースの乏しい組み込み機器や完全なＴＣＰ／ＩＰプロトコルスタックを備えていない組み込み機器などであっても、本実施形態におけるサーバコンピュータ２００として実装可能である。
【産業上の利用可能性】
【００８９】
本発明は、特に、計算リソースが十分でない制御装置や完全なＴＣＰ／ＩＰプロトコルスタックを実装していない制御装置に対して、安全なアクセスを行いたい場合に好適に適用可能である。例えば、組み込み機器やネットワーク家電向けの制御端末を管理するネットワークシステムに好適に適用可能である。
【図面の簡単な説明】
【００９０】
【図１】本発明による認証システムの構成例を示すブロック図である。
【図２】本発明による認証システムの他の構成例を示すブロック図である。
【図３】認証システムのより具体的な構成例を示すブロック図である。
【図４】認証システムの動作の一例を示すシーケンス図である。
【図５】コマンド発行に係る一連の処理フローの例を示すフローチャートである。
【図６】ゼロ知識証明プロトコルを利用した認証処理の処理フローの一例を示すフローチャートである。
【符号の説明】
【００９１】
１  制御装置
１１  認証情報取得手段
１２  認証手段
２  認証情報管理装置
２１  制御装置管理手段
２２  制御端末管理手段
３  制御装置
１００  認証情報管理サーバ
１１０  認証情報生成手段
１２０  コマンド受信者管理手段
１３０  コマンド送信者管理手段
１４０  情報保持手段
２００  サーバコンピュータ
２１  コマンド受信モジュール
３００  クライアントコンピュータ
３１０  コマンド送信モジュール
４００  通信路
５００  ユーザ
【図１】
2009181194.tif 000003
【図２】
2009181194.tif 000004
【図３】
2009181194.tif 000005
【図４】
2009181194.tif 000006
【図５】
2009181194.tif 000007
【図６】
2009181194.tif 000008