(57)【要約】【課題】  第三者のユーザが、正規のクライアント端末になりすまして認証されるおそれを低減させ、セキュリティを向上させること。【解決手段】  サーバがコードをクライアント端末に送信して当該コードをクライアントが第１の鍵を用いて暗号化し当該暗号化されたコードをサーバが取得する。そして、サーバは、当該暗号化されたコードを、第１の鍵に対応する第２の鍵を用いて復号し、当該復号されたコードと、クライアント端末に送信したコードとに従って、クライアント端末の認証処理を行う。また、第３の鍵、及び対応する第４の鍵を生成して、第２の鍵を第４の鍵に更新して、第３の鍵をクライアント端末に送信することを特徴とする。【選択図】図４
2015106842.tif 000002
【特許請求の範囲】
【請求項１】
クライアント端末とサーバとを含む情報処理システムであって、
前記クライアント端末は、
前記サーバから取得するコードを暗号化するために用いられる第１の鍵を記憶する第１の鍵記憶手段と、
前記サーバからコードを取得するコード取得手段と、
前記コード取得手段により取得したコードを、前記第１の鍵記憶手段に記憶された第１の鍵を用いて暗号化する暗号化手段と、
前記暗号化手段により暗号化されたコードを前記サーバに送信する暗号化コード送信手段と、
を備え、
前記サーバは、
前記第１の鍵に対応し、当該第１の鍵を用いて暗号化されたコードを復号するために用いられる第２の鍵を記憶する第２の鍵記憶手段と、
コードを前記クライアント端末に送信するコード送信手段と、
前記暗号化コード送信手段により送信された暗号化されたコードを取得する暗号化コード取得手段と、
前記暗号化コード取得手段により取得された暗号化されたコードを、前記第２の鍵記憶手段により記憶されている第２の鍵を用いて復号する復号手段と、
前記復号手段により復号されたコードと、前記コード送信手段により送信されたコードとに従って、前記クライアント端末の認証処理を行うクライアント端末認証手段と、
前記クライアント端末においてコードを暗号化するために用いられる第３の鍵、及び当該第３の鍵に対応し、当該第３の鍵を用いて暗号化されたコードを復号するために用いられる第４の鍵を生成する生成手段と、
前記第２の鍵記憶手段に記憶された第２の鍵を、前記生成手段により生成された第４の鍵に更新する第２の鍵更新手段と、
前記生成手段により生成された第３の鍵を前記クライアント端末に送信する第３の鍵送信手段と、
を備えることを特徴とする情報処理システム。
【請求項２】
前記クライアント端末は、
前記第３の鍵送信手段により送信された第３の鍵を取得する第３の鍵取得手段と、
前記第１の鍵記憶手段に記憶された第１の鍵を、前記第３の鍵取得手段により取得された第３の鍵に更新する第１の鍵更新手段と、
を更に備え、
前記クライアント端末の前記暗号化手段は、前記コード取得手段により取得したコードを、前記第１の鍵記憶手段に記憶された第３の鍵を用いて暗号化し、
前記サーバの前記復号手段は、前記暗号化コード取得手段により取得された暗号化されたコードを、前記第２の鍵記憶手段により記憶されている第４の鍵を用いて復号することを特徴とする請求項１に記載の情報処理システム。
【請求項３】
前記サーバの前記第２の鍵更新手段は、前記第２の鍵記憶手段に記憶された第２の鍵を、前記生成手段により生成された第４の鍵に更新するだけではなく、前記第２の鍵記憶手段に当該第２の鍵を過去の鍵として記憶し、
前記サーバの前記クライアント端末認証手段は、前記サーバの前記復号手段により、前記暗号化コード取得手段により取得された暗号化されたコードを、前記第２の鍵記憶手段により記憶されている第４の鍵を用いて復号することができたかを判定することで、前記クライアント端末の認証処理を行い、
前記サーバの前記復号手段は、前記サーバの前記クライアント端末認証手段で、前記サーバの前記復号手段により、前記暗号化コード取得手段により取得された暗号化されたコードを、前記第２の鍵記憶手段により記憶されている第４の鍵を用いて復号することができなかったと判定された場合に、当該暗号化されたコードを、前記第２の鍵記憶手段に記憶されている過去の鍵を用いて復号することを特徴とする請求項１又は２に記載の情報処理システム。
【請求項４】
前記サーバの前記第２の鍵更新手段は、所定の条件を満たした場合に、前記第２の鍵記憶手段に記憶された第２の鍵を、前記生成手段により生成された第４の鍵に更新することを特徴とする請求項１乃至３の何れか１項に記載の情報処理システム。
【請求項５】
前記クライアント端末は、
ユーザを示すユーザ情報を前記サーバに送信するユーザ送信手段を更に備え、
前記サーバの前記第２の鍵記憶手段は、ユーザ情報により示されるユーザに対応した第２の鍵を記憶し、
前記サーバの前記復号手段は、前記暗号化コード取得手段により取得された暗号化されたコードを、前記ユーザ送信手段により送信されたユーザ情報に示されるユーザに対応した第２の鍵を前記第２の鍵記憶手段から取得して、当該取得された第２の鍵を用いて復号し、
前記サーバの第２の鍵更新手段は、前記第２の鍵記憶手段に記憶された、当該ユーザ情報により示されるユーザに対応した第２の鍵を、前記生成手段により生成された第４の鍵に更新することを特徴とする請求項１乃至４の何れか１項に記載の情報処理システム。
【請求項６】
前記クライアント端末は、
ユーザを示すユーザ情報を前記サーバに送信するユーザ送信手段を更に備え、
前記サーバの前記第２の鍵記憶手段は、当該ユーザ情報により示されるユーザが所属するグループを示すグループ情報に対応して第２の鍵を記憶し、
前記サーバの前記復号手段は、前記暗号化コード取得手段により取得された暗号化されたコードを、前記ユーザ送信手段により送信されたユーザ情報に示されるユーザが所属するグループを示すグループ情報に対応した第２の鍵を前記第２の鍵記憶手段から取得して、当該取得された第２の鍵を用いて復号し、
前記サーバの第２の鍵更新手段は、前記第２の鍵記憶手段に記憶された、当該ユーザ情報により示されるユーザが所属するグループを示すグループ情報に対応した第２の鍵を、前記生成手段により生成された第４の鍵に更新することを特徴とする請求項１乃至４の何れか１項に記載の情報処理システム。
【請求項７】
前記サーバの前記第２の鍵更新手段は、前記ユーザ送信手段により送信されたユーザ情報により示されるユーザが所属するグループを示すグループ情報に対応して前記第２の鍵記憶手段に記憶された第２の鍵を、前記生成手段により生成された第４の鍵に更新するだけではなく、前記第２の鍵記憶手段に当該第２の鍵を当該グループ情報に対応した過去の鍵として記憶し、
前記サーバの前記クライアント端末認証手段は、
前記サーバの前記復号手段により、前記暗号化コード取得手段により取得された暗号化されたコードを、前記ユーザ送信手段により送信されたユーザ情報により示されるユーザが所属するグループを示すグループ情報に対応して前記第２の鍵記憶手段に記憶された第４の鍵を用いて復号することができたかを判定することで、前記クライアント端末の認証処理を行い、
前記サーバの前記復号手段は、前記サーバの前記クライアント端末認証手段で、前記サーバの前記復号手段により、前記暗号化コード取得手段により取得された暗号化されたコードを、前記ユーザ送信手段により送信されたユーザ情報により示されるユーザが所属するグループを示すグループ情報に対応して前記第２の鍵記憶手段に記憶された第４の鍵を用いて復号することができなかったと判定された場合に、当該暗号化されたコードを、当該グループ情報に対応して前記第２の鍵記憶手段に記憶されている過去の鍵を用いて復号することを特徴とする請求項６に記載の情報処理システム。
【請求項８】
前記サーバは、コードを生成するコード生成手段を更に備え、
前記コード送信手段は、前記コード生成手段により生成されたコードを送信することを特徴とする請求項１乃至７の何れか１項に記載の情報処理システム。
【請求項９】
クライアント端末と通信可能なサーバであって、
前記クライアント端末でコードを暗号化するために用いられる第１の鍵に対応し、当該第１の鍵を用いて暗号化されたコードを復号するために用いられる第２の鍵を記憶する第２の鍵記憶手段と、
コードを前記クライアント端末に送信するコード送信手段と、
前記コード送信手段により送信されたコードを前記クライアントにより前記第１の鍵を用いて暗号化されたコードを前記クライアント端末から取得する暗号化コード取得手段と、
前記暗号化コード取得手段により取得された暗号化されたコードを、前記第２の鍵記憶手段により記憶されている第２の鍵を用いて復号する復号手段と、
前記復号手段により復号されたコードと、前記コード送信手段により送信されたコードとに従って、前記クライアント端末の認証処理を行うクライアント端末認証手段と、
前記クライアント端末においてコードを暗号化するために用いられる第３の鍵、及び当該第３の鍵に対応し、当該第３の鍵を用いて暗号化されたコードを復号するために用いられる第４の鍵を生成する生成手段と、
前記第２の鍵記憶手段に記憶された第２の鍵を、前記生成手段により生成された第４の鍵に更新する第２の鍵更新手段と、
前記生成手段により生成された第３の鍵を前記クライアント端末に送信する第３の鍵送信手段と、
を備えることを特徴とするサーバ。
【請求項１０】
サーバから取得するコードを暗号化するために用いられる第１の鍵を記憶する第１の鍵記憶手段を備えたクライアント端末と、前記第１の鍵に対応し、当該第１の鍵を用いて暗号化されたコードを復号するために用いられる第２の鍵を記憶する第２の鍵記憶手段を備えたサーバとを含む情報処理システムにおける制御方法であって、
前記クライアント端末のコード取得手段が、前記サーバからコードを取得するコード取得工程と、
前記クライアント端末の暗号化手段が、前記コード取得工程により取得したコードを、前記第１の鍵記憶手段に記憶された第１の鍵を用いて暗号化する暗号化工程と、
前記クライアント端末の暗号化コード送信手段が、前記暗号化工程により暗号化されたコードを前記サーバに送信する暗号化コード送信工程と、
を備え、
前記サーバのコード送信手段が、コードを前記クライアント端末に送信するコード送信工程と、
前記サーバの暗号化コード取得手段が、前記暗号化コード送信工程により送信された暗号化されたコードを取得する暗号化コード取得工程と、
前記サーバの復号手段が、前記暗号化コード取得工程により取得された暗号化されたコードを、前記第２の鍵記憶手段により記憶されている第２の鍵を用いて復号する復号工程と、
前記サーバのクライアント端末認証手段が、前記復号工程により復号されたコードと、前記コード送信工程により送信されたコードとに従って、前記クライアント端末の認証処理を行うクライアント端末認証工程と、
前記サーバの生成手段が、前記クライアント端末においてコードを暗号化するために用いられる第３の鍵、及び当該第３の鍵に対応し、当該第３の鍵を用いて暗号化されたコードを復号するために用いられる第４の鍵を生成する生成工程と、
前記サーバの第２の鍵更新手段が、前記第２の鍵記憶手段に記憶された第２の鍵を、前記生成工程により生成された第４の鍵に更新する第２の鍵更新工程と、
前記サーバの第３の鍵送信手段が、前記生成工程により生成された第３の鍵を前記クライアント端末に送信する第３の鍵送信工程と、
を含むことを特徴とする制御方法。
【請求項１１】
サーバから取得するコードを暗号化するために用いられる第１の鍵を記憶する第１の鍵記憶手段を備えたクライアント端末と、前記第１の鍵に対応し、当該第１の鍵を用いて暗号化されたコードを復号するために用いられる第２の鍵を記憶する第２の鍵記憶手段を備えたサーバとを含む情報処理システムで実行可能なプログラムであって、
前記クライアント端末を、
前記サーバからコードを取得するコード取得手段と、
前記コード取得手段により取得したコードを、前記第１の鍵記憶手段に記憶された第１の鍵を用いて暗号化する暗号化手段と、
前記暗号化手段により暗号化されたコードを前記サーバに送信する暗号化コード送信手段として機能させ、
前記サーバを、
コードを前記クライアント端末に送信するコード送信手段と、
前記暗号化コード送信手段により送信された暗号化されたコードを取得する暗号化コード取得手段と、
前記暗号化コード取得手段により取得された暗号化されたコードを、前記第２の鍵記憶手段により記憶されている第２の鍵を用いて復号する復号手段と、
前記復号手段により復号されたコードと、前記コード送信手段により送信されたコードとに従って、前記クライアント端末の認証処理を行うクライアント端末認証手段と、
前記クライアント端末においてコードを暗号化するために用いられる第３の鍵、及び当該第３の鍵に対応し、当該第３の鍵を用いて暗号化されたコードを復号するために用いられる第４の鍵を生成する生成手段と、
前記第２の鍵記憶手段に記憶された第２の鍵を、前記生成手段により生成された第４の鍵に更新する第２の鍵更新手段と、
前記生成手段により生成された第３の鍵を前記クライアント端末に送信する第３の鍵送信手段として機能させることを特徴とするプログラム。
【請求項１２】
クライアント端末と通信可能であり、前記クライアント端末でコードを暗号化するために用いられる第１の鍵に対応し、当該第１の鍵を用いて暗号化されたコードを復号するために用いられる第２の鍵を記憶する第２の鍵記憶手段を備えるサーバにおける制御方法であって、
コード送信手段が、コードを前記クライアント端末に送信するコード送信工程と、
暗号化コード取得手段が、前記コード送信工程により送信されたコードを前記クライアントにより前記第１の鍵を用いて暗号化されたコードを前記クライアント端末から取得する暗号化コード取得工程と、
復号手段が、前記暗号化コード取得工程により取得された暗号化されたコードを、前記第２の鍵記憶手段により記憶されている第２の鍵を用いて復号する復号工程と、
クライアント端末認証手段が、前記復号工程により復号されたコードと、前記コード送信工程により送信されたコードとに従って、前記クライアント端末の認証処理を行うクライアント端末認証工程と、
生成手段が、前記クライアント端末においてコードを暗号化するために用いられる第３の鍵、及び当該第３の鍵に対応し、当該第３の鍵を用いて暗号化されたコードを復号するために用いられる第４の鍵を生成する生成工程と、
第２の鍵更新手段が、前記第２の鍵記憶手段に記憶された第２の鍵を、前記生成工程により生成された第４の鍵に更新する第２の鍵更新工程と、
第３の鍵送信手段が、前記生成工程により生成された第３の鍵を前記クライアント端末に送信する第３の鍵送信工程と、
を含むことを特徴とする制御方法。
【請求項１３】
クライアント端末と通信可能であり、前記クライアント端末でコードを暗号化するために用いられる第１の鍵に対応し、当該第１の鍵を用いて暗号化されたコードを復号するために用いられる第２の鍵を記憶する第２の鍵記憶手段を備えるサーバで実行可能なプログラムであって、
前記サーバを、
コードを前記クライアント端末に送信するコード送信手段と、
前記コード送信手段により送信されたコードを前記クライアントにより前記第１の鍵を用いて暗号化されたコードを前記クライアント端末から取得する暗号化コード取得手段と、
前記暗号化コード取得手段により取得された暗号化されたコードを、前記第２の鍵記憶手段により記憶されている第２の鍵を用いて復号する復号手段と、
前記復号手段により復号されたコードと、前記コード送信手段により送信されたコードとに従って、前記クライアント端末の認証処理を行うクライアント端末認証手段と、
前記クライアント端末においてコードを暗号化するために用いられる第３の鍵、及び当該第３の鍵に対応し、当該第３の鍵を用いて暗号化されたコードを復号するために用いられる第４の鍵を生成する生成手段と、
前記第２の鍵記憶手段に記憶された第２の鍵を、前記生成手段により生成された第４の鍵に更新する第２の鍵更新手段と、
前記生成手段により生成された第３の鍵を前記クライアント端末に送信する第３の鍵送信手段として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム、サーバ、及びその制御方法、プログラムに関し、特に、第三者のユーザが、正規のクライアント端末になりすまして認証されるおそれを低減させ、セキュリティを向上させるための技術に関するものである。
【背景技術】
【０００２】
従来、Ｗｅｂアプリケーションにおけるユーザ認証処理は、ユーザを識別するユーザＩＤと、当該ユーザＩＤに対応するパスワードを、ブラウザに表示されるログイン画面（入力フォーム）にユーザの操作により入力して、クライアントのＷｅｂブラウザが、Ｗｅｂサーバに当該ユーザＩＤ、当該パスワードを送信する。
【０００３】
そして、Ｗｅｂサーバは、クライアントから送信されたユーザＩＤ、パスワードが、認証データベースに登録されているユーザＩＤ、パスワードに一致するかを判定し、一致すると判定された場合には、認証された（認証成功）とするものである。
【０００４】
また、機器認証を行う方法として、特許文献１には、サーバが生成した乱数をクライアントに送信して、クライアントに接続されているＩＣカードに記憶された秘密鍵を用いて、当該乱数を暗号化してサーバに返送して、サーバが当該暗号化された乱数を、公開鍵を用いて復号して、得られた乱数と、クライアントに送信した乱数とを照合して機器認証を行うことが提案されております。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−２４２３７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、第三者のユーザが、ユーザＩＤ、パスワード、及び機器（コンピュータ）認証を行うための鍵を入手した場合、正規のユーザ、及び正規の機器（コンピュータ）になりすまして認証されてしまうおそれがある。
【０００７】
そのため、このように、第三者のユーザがなりすまして認証するおそれを低減させ、セキュリティを向上させる仕組みが必要である。
【０００８】
また、従来、例えば、社内で同一のコンピュータを複数のユーザで共有して使用する場合に、第三者のユーザが、正規のユーザ、及び正規の機器（コンピュータ）になりすまして認証するおそれを低減させる仕組みについては開示されていない。
【０００９】
そのため、同一のコンピュータを複数のユーザで共有して使用する場合であっても、第三者のユーザが、正規のユーザ、及び正規の機器（コンピュータ）になりすまして認証するおそれを低減させ、セキュリティを向上させると共に、適切に正規の機器認証を行うことができる仕組みが求められている。
【００１０】
そこで、本発明の目的は、第三者のユーザが、正規のクライアント端末になりすまして認証されるおそれを低減させ、セキュリティを向上させるための仕組みを提供することである。
【課題を解決するための手段】
【００１１】
本発明は、クライアント端末とサーバとを含む情報処理システムであって、前記クライアント端末は、前記サーバから取得するコードを暗号化するために用いられる第１の鍵を記憶する第１の鍵記憶手段と、前記サーバからコードを取得するコード取得手段と、前記コード取得手段により取得したコードを、前記第１の鍵記憶手段に記憶された第１の鍵を用いて暗号化する暗号化手段と、前記暗号化手段により暗号化されたコードを前記サーバに送信する暗号化コード送信手段と、を備え、前記サーバは、前記第１の鍵に対応し、当該第１の鍵を用いて暗号化されたコードを復号するために用いられる第２の鍵を記憶する第２の鍵記憶手段と、コードを前記クライアント端末に送信するコード送信手段と、前記暗号化コード送信手段により送信された暗号化されたコードを取得する暗号化コード取得手段と、前記暗号化コード取得手段により取得された暗号化されたコードを、前記第２の鍵記憶手段により記憶されている第２の鍵を用いて復号する復号手段と、前記復号手段により復号されたコードと、前記コード送信手段により送信されたコードとに従って、前記クライアント端末の認証処理を行うクライアント端末認証手段と、前記クライアント端末においてコードを暗号化するために用いられる第３の鍵、及び当該第３の鍵に対応し、当該第３の鍵を用いて暗号化されたコードを復号するために用いられる第４の鍵を生成する生成手段と、前記第２の鍵記憶手段に記憶された第２の鍵を、前記生成手段により生成された第４の鍵に更新する第２の鍵更新手段と、前記生成手段により生成された第３の鍵を前記クライアント端末に送信する第３の鍵送信手段と、を備えることを特徴とする。
【００１２】
また、本発明は、クライアント端末と通信可能なサーバであって、前記クライアント端末でコードを暗号化するために用いられる第１の鍵に対応し、当該第１の鍵を用いて暗号化されたコードを復号するために用いられる第２の鍵を記憶する第２の鍵記憶手段と、コードを前記クライアント端末に送信するコード送信手段と、前記コード送信手段により送信されたコードを前記クライアントにより前記第１の鍵を用いて暗号化されたコードを前記クライアント端末から取得する暗号化コード取得手段と、前記暗号化コード取得手段により取得された暗号化されたコードを、前記第２の鍵記憶手段により記憶されている第２の鍵を用いて復号する復号手段と、前記復号手段により復号されたコードと、前記コード送信手段により送信されたコードとに従って、前記クライアント端末の認証処理を行うクライアント端末認証手段と、前記クライアント端末においてコードを暗号化するために用いられる第３の鍵、及び当該第３の鍵に対応し、当該第３の鍵を用いて暗号化されたコードを復号するために用いられる第４の鍵を生成する生成手段と、前記第２の鍵記憶手段に記憶された第２の鍵を、前記生成手段により生成された第４の鍵に更新する第２の鍵更新手段と、前記生成手段により生成された第３の鍵を前記クライアント端末に送信する第３の鍵送信手段と、を備えることを特徴とする。
【００１３】
また、本発明は、サーバから取得するコードを暗号化するために用いられる第１の鍵を記憶する第１の鍵記憶手段を備えたクライアント端末と、前記第１の鍵に対応し、当該第１の鍵を用いて暗号化されたコードを復号するために用いられる第２の鍵を記憶する第２の鍵記憶手段を備えたサーバとを含む情報処理システムにおける制御方法であって、前記クライアント端末のコード取得手段が、前記サーバからコードを取得するコード取得工程と、前記クライアント端末の暗号化手段が、前記コード取得工程により取得したコードを、前記第１の鍵記憶手段に記憶された第１の鍵を用いて暗号化する暗号化工程と、前記クライアント端末の暗号化コード送信手段が、前記暗号化工程により暗号化されたコードを前記サーバに送信する暗号化コード送信工程と、を備え、前記サーバのコード送信手段が、コードを前記クライアント端末に送信するコード送信工程と、前記サーバの暗号化コード取得手段が、前記暗号化コード送信工程により送信された暗号化されたコードを取得する暗号化コード取得工程と、前記サーバの復号手段が、前記暗号化コード取得工程により取得された暗号化されたコードを、前記第２の鍵記憶手段により記憶されている第２の鍵を用いて復号する復号工程と、前記サーバのクライアント端末認証手段が、前記復号工程により復号されたコードと、前記コード送信工程により送信されたコードとに従って、前記クライアント端末の認証処理を行うクライアント端末認証工程と、前記サーバの生成手段が、前記クライアント端末においてコードを暗号化するために用いられる第３の鍵、及び当該第３の鍵に対応し、当該第３の鍵を用いて暗号化されたコードを復号するために用いられる第４の鍵を生成する生成工程と、前記サーバの第２の鍵更新手段が、前記第２の鍵記憶手段に記憶された第２の鍵を、前記生成工程により生成された第４の鍵に更新する第２の鍵更新工程と、前記サーバの第３の鍵送信手段が、前記生成工程により生成された第３の鍵を前記クライアント端末に送信する第３の鍵送信工程と、を含むことを特徴とする。
【００１４】
また、本発明は、サーバから取得するコードを暗号化するために用いられる第１の鍵を記憶する第１の鍵記憶手段を備えたクライアント端末と、前記第１の鍵に対応し、当該第１の鍵を用いて暗号化されたコードを復号するために用いられる第２の鍵を記憶する第２の鍵記憶手段を備えたサーバとを含む情報処理システムで実行可能なプログラムであって、前記クライアント端末を、前記サーバからコードを取得するコード取得手段と、前記コード取得手段により取得したコードを、前記第１の鍵記憶手段に記憶された第１の鍵を用いて暗号化する暗号化手段と、前記暗号化手段により暗号化されたコードを前記サーバに送信する暗号化コード送信手段として機能させ、前記サーバを、コードを前記クライアント端末に送信するコード送信手段と、前記暗号化コード送信手段により送信された暗号化されたコードを取得する暗号化コード取得手段と、前記暗号化コード取得手段により取得された暗号化されたコードを、前記第２の鍵記憶手段により記憶されている第２の鍵を用いて復号する復号手段と、前記復号手段により復号されたコードと、前記コード送信手段により送信されたコードとに従って、前記クライアント端末の認証処理を行うクライアント端末認証手段と、前記クライアント端末においてコードを暗号化するために用いられる第３の鍵、及び当該第３の鍵に対応し、当該第３の鍵を用いて暗号化されたコードを復号するために用いられる第４の鍵を生成する生成手段と、前記第２の鍵記憶手段に記憶された第２の鍵を、前記生成手段により生成された第４の鍵に更新する第２の鍵更新手段と、前記生成手段により生成された第３の鍵を前記クライアント端末に送信する第３の鍵送信手段として機能させることを特徴とする。
【００１５】
また、本発明は、クライアント端末と通信可能であり、前記クライアント端末でコードを暗号化するために用いられる第１の鍵に対応し、当該第１の鍵を用いて暗号化されたコードを復号するために用いられる第２の鍵を記憶する第２の鍵記憶手段を備えるサーバにおける制御方法であって、コード送信手段が、コードを前記クライアント端末に送信するコード送信工程と、暗号化コード取得手段が、前記コード送信工程により送信されたコードを前記クライアントにより前記第１の鍵を用いて暗号化されたコードを前記クライアント端末から取得する暗号化コード取得工程と、復号手段が、前記暗号化コード取得工程により取得された暗号化されたコードを、前記第２の鍵記憶手段により記憶されている第２の鍵を用いて復号する復号工程と、クライアント端末認証手段が、前記復号工程により復号されたコードと、前記コード送信工程により送信されたコードとに従って、前記クライアント端末の認証処理を行うクライアント端末認証工程と、生成手段が、前記クライアント端末においてコードを暗号化するために用いられる第３の鍵、及び当該第３の鍵に対応し、当該第３の鍵を用いて暗号化されたコードを復号するために用いられる第４の鍵を生成する生成工程と、第２の鍵更新手段が、前記第２の鍵記憶手段に記憶された第２の鍵を、前記生成工程により生成された第４の鍵に更新する第２の鍵更新工程と、第３の鍵送信手段が、前記生成工程により生成された第３の鍵を前記クライアント端末に送信する第３の鍵送信工程と、を含むことを特徴とする。
【００１６】
また、本発明は、クライアント端末と通信可能であり、前記クライアント端末でコードを暗号化するために用いられる第１の鍵に対応し、当該第１の鍵を用いて暗号化されたコードを復号するために用いられる第２の鍵を記憶する第２の鍵記憶手段を備えるサーバで実行可能なプログラムであって、前記サーバを、コードを前記クライアント端末に送信するコード送信手段と、前記コード送信手段により送信されたコードを前記クライアントにより前記第１の鍵を用いて暗号化されたコードを前記クライアント端末から取得する暗号化コード取得手段と、前記暗号化コード取得手段により取得された暗号化されたコードを、前記第２の鍵記憶手段により記憶されている第２の鍵を用いて復号する復号手段と、前記復号手段により復号されたコードと、前記コード送信手段により送信されたコードとに従って、前記クライアント端末の認証処理を行うクライアント端末認証手段と、前記クライアント端末においてコードを暗号化するために用いられる第３の鍵、及び当該第３の鍵に対応し、当該第３の鍵を用いて暗号化されたコードを復号するために用いられる第４の鍵を生成する生成手段と、前記第２の鍵記憶手段に記憶された第２の鍵を、前記生成手段により生成された第４の鍵に更新する第２の鍵更新手段と、前記生成手段により生成された第３の鍵を前記クライアント端末に送信する第３の鍵送信手段として機能させることを特徴とする。
【発明の効果】
【００１７】
本発明によれば、第三者のユーザが、正規のクライアント端末になりすまして認証されるおそれを低減させ、セキュリティを向上させることができる。
【図面の簡単な説明】
【００１８】
【図１】本発明に係る情報処理システムのシステム構成の一例を示す図である。
【図２】図１に示したＷｅｂサーバ１００、クライアント１０１、クライアント１０３に適用可能な情報処理装置のハードウエア構成の一例を示す図である。
【図３】本発明の実施形態においてクライアント１０１、及びＷｅｂサーバ１００が行う制御処理の一例を示すフローチャートである。
【図４】グループに所属していないユーザの認証処理であって、ステップ３０１の詳細処理の一例を示すフローチャートである。
【図５】グループに所属しているユーザの認証処理であって、ステップ３０１の詳細処理の一例を示すフローチャートである。
【図６】（１）ユーザ情報テーブル、及び（３）グループごとの鍵履歴管理テーブルの更新処理の一例を示すフローチャートである。
【図７】ステップ３０２の詳細処理の一例を示すフローチャートである。
【図８】テーブル情報の一例を示す図である。
【図９】ログイン画面の一例を示す図である。
【発明を実施するための形態】
【００１９】
以下、図面を参照して、本発明の実施形態に係る情報処理システム、及びその動作処理の詳細について説明する。
【００２０】
図１は、本発明に係る情報処理システムのシステム構成の一例を示す図である。
【００２１】
図１に示すように、本実施形態に係る情報処理システムは、Ｗｅｂサーバ１００と、クライアント１０１と、クライアント１０３とがネットワーク１０２（ＬＡＮなどのネットワーク）を介して相互に通信可能に接続されている。
【００２２】
クライアント１０１と、クライアント１０３とは、本発明のクライアント端末の適用例である。
【００２３】
Ｗｅｂサーバ１００は、本発明のサーバの適用例である。
【００２４】
Ｗｅｂサーバ１００は、Ｗｅｂアプリケーションで管理されるユーザ、及びグループの公開鍵、及び秘密鍵をデータベースに記憶し管理している。また、この公開鍵、及び秘密鍵を定期的に更新するプログラムが記憶されている。
【００２５】
クライアント１０１、クライアント１０３は、Ｗｅｂサーバで定期的に更新される公開鍵が登録される。
【００２６】
クライアント１０１、１０３を操作するユーザは、クライアント１０１、１０３を操作することで、クライアント１０１、１０３がＷｅｂサーバ１００にＷｅｂサービス画面の送信要求を行い、Ｗｅｂサーバ１００は、これに応答してＷｅｂサーバ１００が提供するＷｅｂサービス画面をクライアント１０１、１０３に送信する。
【００２７】
このようにして、クライアント１０１、１０３を操作するユーザは、Ｗｅｂサーバ１００が提供するＷｅｂサービスを利用することが可能である。
【００２８】
次に、図２を用いて、図１に示したＷｅｂサーバ１００、クライアント１０１、クライアント１０３に適用可能な情報処理装置のハードウエア構成の一例について説明する。
【００２９】
図２において、２０１はＣＰＵで、システムバス２０４に接続される各デバイスやコントローラを統括的に制御する。また、ＲＯＭ２０３あるいは外部メモリ２１１には、ＣＰＵ２０１の制御プログラムであるＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ  ／  Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）やオペレーティングシステムプログラム（以下、ＯＳ）や、各サーバ或いは各ＰＣの実行する機能を実現するために必要な各種プログラム等が記憶されている。
【００３０】
２０２はＲＡＭで、ＣＰＵ２０１の主メモリ、ワークエリア等として機能する。ＣＰＵ２０１は、処理の実行に際して必要なプログラム等をＲＯＭ２０３あるいは外部メモリ２１１からＲＡＭ２０２にロードして、該ロードしたプログラムを実行することで各種動作を実現するものである。
【００３１】
また、２０５は入力コントローラで、入力装置２０９等からの入力を制御する。２０６はビデオコントローラで、液晶ディスプレイ等のディスプレイ装置２１０への表示を制御する。なお、ディスプレイ装置は、液晶ディスプレイに限られず、ＣＲＴディスプレイなどであっても良い。これらは必要に応じてクライアントが使用するものである。
【００３２】
２０７はメモリコントローラで、ブートプログラム，各種のアプリケーション，フォントデータ，ユーザファイル，編集ファイル，各種データ等を記憶するハードディスク（ＨＤ）や、フレキシブルディスク（ＦＤ）、或いはＰＣＭＣＩＡカードスロットにアダプタを介して接続されるコンパクトフラッシュ（登録商標）メモリ等の外部メモリ２１１へのアクセスを制御する。
【００３３】
２０８は通信Ｉ／Ｆコントローラで、ネットワークを介して外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、ＴＣＰ／ＩＰを用いた通信等が可能である。
【００３４】
なお、ＣＰＵ２０１は、例えばＲＡＭ２０２内の表示情報用領域へアウトラインフォントの展開（ラスタライズ）処理を実行することにより、ディスプレイ装置２１０上での表示を可能としている。また、ＣＰＵ２０１は、ディスプレイ装置２１０上の不図示のマウスカーソル等でのユーザ指示を可能とする。
【００３５】
ハードウエア上で動作する各種プログラムは、外部メモリ２１１に記録されており、必要に応じてＲＡＭ２０２にロードされることによりＣＰＵ２０１によって実行されるものである。
【００３６】
図３は、本発明の実施形態においてクライアント１０１、及びＷｅｂサーバ１００が行う制御処理の一例を示すフローチャートである。
【００３７】
図３に示すステップ３０１、ステップ３０２に示す処理は、クライアント１０１、及びＷｅｂサーバ１００のＣＰＵ２０１により実行され実現される。
【００３８】
クライアント１０１は、Ｗｅｂサーバ１００に対してユーザＩＤ、パスワードを送信して、Ｗｅｂサーバ１００による認証処理を行う（ステップ３０１）。そして、Ｗｅｂサーバ１００による認証処理の結果、認証されると（認証成功）、Ｗｅｂサーバ１００は、Ｗｅｂサービスを提供するＷｅｂサービス画面をクライアント１０１に送信してＷｅｂサービスを提供する。一方、Ｗｅｂサーバ１００による認証処理の結果、認証がされない（認証失敗）場合には、Ｗｅｂサーバ１００は、当該Ｗｅｂサービス画面をクライアント１０１に送信しないでＷｅｂサービスの提供を行わないように制御する（ステップ３０２）。
【００３９】
図４は、グループに所属していないユーザの認証処理であって、ステップ３０１の詳細処理の一例を示すフローチャートである。
【００４０】
図４のステップ４０１、ステップ４０２、ステップ４０７〜４１０、ステップ４２１、ステップ４２２に示す処理は、クライアント１０１のＣＰＵ２０１により実行され実現される。
【００４１】
また、図４のステップ４０３〜４０６、ステップ４１１〜４２０、ステップ４２３、ステップ４２４に示す処理は、Ｗｅｂサーバ１００のＣＰＵ２０１により実行され実現される。
【００４２】
まず、クライアント１０１は、図９に示すログイン画面を表示部に表示し、ユーザの操作によるユーザＩＤ、パスワードの入力を受け付ける（ステップ４０１）。
【００４３】
図９は、ログイン画面の一例を示す図である。
【００４４】
そして、クライアント１０１は、図９に示すログイン画面の送信ボタンがユーザにより押下された場合、当該ログイン画面を介して入力を受け付けたユーザＩＤ（ユーザ情報）、パスワードをＷｅｂサーバ１００に送信する（ステップ４０２）。
【００４５】
ステップ４０２は、本発明の、ユーザを示すユーザ情報を前記サーバに送信するユーザ送信手段の適用例である。
【００４６】
次に、Ｗｅｂサーバ１００は、クライアント１０１からユーザＩＤ、パスワードを受信すると（ステップ４０３）、当該ユーザＩＤ、パスワードに従ってユーザの認証処理を行う。
【００４７】
ここで、Ｗｅｂサーバ１００の記憶部には、ユーザＩＤ、パスワードの組が記憶されており、当該記憶部に記憶されたユーザＩＤ、パスワードの組と、ステップ４０３で受信したユーザＩＤ、パスワードの組が一致するか否かを判定することにより、ユーザの認証処理を行う（ステップ４０４）。
【００４８】
当該記憶部に記憶されたユーザＩＤ、パスワードの組と、ステップ４０３で受信したユーザＩＤ、パスワードの組が一致すると判定された場合には、ユーザの認証処理がなされた（認証成功）と判定し、当該記憶部に記憶されたユーザＩＤ、パスワードの組と、ステップ４０３で受信したユーザＩＤ、パスワードの組が一致しないと判定された場合には、ユーザの認証処理がなされなかった（認証失敗）と判定する。
【００４９】
そして、Ｗｅｂサーバ１００は、ステップ４０４−１において、ステップ４０４で、認証された（認証成功）と判定されたか、認証されなかった（認証失敗）と判定されたかを判定し、認証された（認証成功）と判定されたと判定された場合には、処理をステップ４０５に移行し、一方、認証されなかった（認証失敗）と判定された場合には、処理をステップ４２４に移行する。
【００５０】
Ｗｅｂサーバ１００は、認証された（認証成功）と判定された場合には（ステップ４０４：Ｙ）、重複して生成されることのない唯一のランダムな文字列（チャレンジコード）を生成する（ステップ４０５）。ステップ４０５は、コード生成手段の適用例である。
【００５１】
そして、Ｗｅｂサーバ１００は、ステップ４０５で生成したチャレンジコードをクライアント１０１に送信する（ステップ４０６）。ステップ４０６は、本発明のコード送信手段の適用例である。
【００５２】
クライアント１０１は、Ｗｅｂサーバ１００からチャレンジコードを受信すると（ステップ４０７）、ＯＳのレジストリ、又はブラウザ（ブラウザソフトウエア）が利用可能な記憶部（ＬｏｃａｌＳｔｏｒａｇｅ領域（以下『ＬｏｃａｌＳｔｏｒａｇｅ』））に記憶されている公開鍵を取得する（ステップ４０８）。記憶部（ＬｏｃａｌＳｔｏｒａｇｅ領域（以下『ＬｏｃａｌＳｔｏｒａｇｅ』））は、本発明の第１の鍵記憶手段の適用例であり、公開鍵は、本発明の第１の鍵、第３の鍵の適用例である。また、ステップ４０７は、本発明のコード取得手段の適用例である。
【００５３】
そして、クライアント１０１は、ステップ４０８で取得した公開鍵を用いて、ステップ４０７で受信したチャレンジコードを暗号化する（ステップ４０９）。ステップ４０９は、本発明の暗号化手段の適用例である。
【００５４】
そして、クライアント１０１は、ステップ４０９で暗号化されたチャレンジコードをＷｅｂサーバ１００に送信する（ステップ４１０）。ステップ４１０は、本発明の暗号化コード送信手段の適用例である。
【００５５】
Ｗｅｂサーバ１００は、クライアント１０１から送信された、ステップ４０９で暗号化されたチャレンジコードを受信すると（ステップ４１１）、ステップ４０３で受信したユーザＩＤに対応する「現在の秘密鍵」を、図８に示すテーブル情報（（１）ユーザ情報テーブル）から取得する（ステップ４１２）。ステップ４１１は、本発明の暗号化コード取得手段の適用例である。
【００５６】
図８に示すテーブル情報が記憶されている記憶部は、本発明の第２の鍵記憶手段の適用例であり、（１）ユーザ情報テーブルの「現在の秘密鍵」、及び、（３）グループごとの鍵履歴管理テーブルの「秘密鍵」は、本発明の第２の鍵の適用例である。
【００５７】
図８は、テーブル情報の一例を示す図である。
【００５８】
図８に示すテーブル情報は、Ｗｅｂサーバ１００の記憶部に記憶されている。
【００５９】
テーブル情報は、図８に示す通り、（１）ユーザ情報テーブル、（２）グループ情報テーブル、（３）グループごとの鍵履歴管理テーブルから構成されている。
【００６０】
（１）ユーザ情報テーブルには、「ユーザＩＤ」、「現在の公開鍵」、「現在の秘密鍵」、「前回正常ログイン時の秘密鍵」から構成されている。
【００６１】
「ユーザＩＤ」は、ユーザごとに割り当てられているＩＤであって、ユーザを識別するための情報である。「現在の公開鍵」は、当該ユーザＩＤのユーザに対して、現在、使用されている公開鍵である。「現在の秘密鍵」は、当該公開鍵に対応する、現在、使用されている秘密鍵である。「前回正常ログイン時の秘密鍵」は、前回、後述するステップ４１４、４１７で認証された（ログインした）ときに用いられた秘密鍵である。
【００６２】
また、（２）グループ情報テーブルには、「グループＩＤ」、「ユーザＩＤ」から構成されている。
【００６３】
「グループＩＤ」は、グループごとに割り当てられているＩＤであって、グループを識別するための情報である。また、「ユーザＩＤ」は、当該グループＩＤに示されるグループに所属するユーザのユーザＩＤであり、（１）ユーザ情報テーブルの「ユーザＩＤ」に相当する。
【００６４】
また、（３）グループごとの鍵履歴管理テーブルには、「グループＩＤ」、「公開鍵」、「秘密鍵」、「登録日」から構成されている。「グループＩＤ」は、グループごとに割り当てられているＩＤであって、（２）グループ情報テーブルに示す「グループＩＤ」に相当する。「公開鍵」は、当該グループＩＤに示されるグループに所属するユーザが使用する公開鍵である。「秘密鍵」は、当該公開鍵に対応する秘密鍵である。「登録日」は、当該公開鍵、及び当該秘密鍵が、（３）グループごとの鍵履歴管理テーブルに登録された年月日（時）が登録されている。
【００６５】
図８の（３）グループごとの鍵履歴管理テーブルの１レコード目の例では、「グループＩＤ」が「ＧＲＰ０１」、「公開鍵」が「ＡＢＣ」、「秘密鍵」が「ｘｙｚ」であり、「登録日」が「２０１３−１０−０７」であるため、これらの情報が「２０１３年１０月７日」に登録されていることを示している。
【００６６】
また、図８の（３）グループごとの鍵履歴管理テーブルの３レコード目の例では、「グループＩＤ」が「ＧＲＰ０１」、「公開鍵」が「ＤＥＦ」、「秘密鍵」が「ｔｍｖ」であり、「登録日」が「２０１３−１０−０６」であるため、これらの情報が「２０１３年１０月６日」に登録されていることを示している。
【００６７】
このように、３レコード目の公開鍵、秘密鍵よりも、１レコード目の公開鍵、秘密鍵が新しいデータであることを示している。
【００６８】
図８の（２）グループ情報テーブル、（３）グループごとの鍵履歴管理テーブルに示すように、ユーザＩＤ（ユーザ情報）により示されるユーザが所属するグループを示すグループ情報（グループＩＤ）に対応して第２の鍵（秘密鍵）が記憶されている。
図４の説明に戻る。
【００６９】
次に、Ｗｅｂサーバ１００は、ステップ４１２で取得した「現在の秘密鍵」を用いて、ステップ４１１で受信した暗号化されたチャレンジコードを復号する（ステップ４１３）。ステップ４１３は、本発明の復号手段の適用例である。
【００７０】
ステップ４１２で取得した「現在の秘密鍵」は、常に最新の秘密鍵（第２の鍵が最新であれば第２の鍵が用いられ、第４の鍵が最新であれば、第４の鍵が用いられる）が用いられる。
【００７１】
そして、Ｗｅｂサーバ１００は、ステップ４０６で送信したチャレンジコードと、ステップ４１３で復号して得られたチャレンジコードとが一致するか否かを判定する（ステップ４１４）。
【００７２】
ここで、ステップ４１３で復号できなかった場合には、ステップ４０６で送信したチャレンジコードと、ステップ４１３で復号できなかった暗号化されたままのチャレンジコードとが一致するかを判定することになる。
【００７３】
ステップ４１４は、本発明の、クライアント端末の認証処理を行うクライアント端末認証手段の適用例である。
【００７４】
また、クライアント端末認証手段は、サーバの復号手段により、暗号化コード取得手段により取得された暗号化されたコードを、第２の鍵記憶手段により記憶されている第４の鍵を用いて復号することができたかを判定することで、クライアント端末の認証処理を行う。
【００７５】
そして、Ｗｅｂサーバ１００は、テップ４０６で送信したチャレンジコードと、ステップ４１３で復号して得られたチャレンジコードとが一致すると判定された場合には（ステップ４１４：Ｙ）、処理をステップ４１８に移行して、一致しないと判定された場合には（ステップ４１４：Ｎ）、処理をステップ４１５に移行する。
【００７６】
次に、Ｗｅｂサーバ１００は、一致すると判定された場合（ステップ４１４：Ｙ）、ステップ４１２で取得した「現在の秘密鍵」を、（１）ユーザ情報テーブルの「前回正常ログイン時の秘密鍵」に登録して更新する。「前回正常ログイン時の秘密鍵」は、過去の鍵として登録された秘密鍵である。
【００７７】
また、Ｗｅｂサーバ１００は、一致しないと判定された場合（ステップ４１４：Ｎ）、ステップ４０３で受信したユーザＩＤに対応する「前回正常ログイン時の秘密鍵」を（１）ユーザ情報テーブルから取得して（ステップ４１５）、当該取得した「前回正常ログイン時の秘密鍵」を用いて、ステップ４１１で取得した暗号化されたチャレンジコードを復号する（ステップ４１６）。
【００７８】
そして、Ｗｅｂサーバ１００は、ステップ４０６で送信したチャレンジコードと、ステップ４１６で復号して得られたチャレンジコードとが一致するか否かを判定する（ステップ４１７）。
【００７９】
ここで、ステップ４１６で復号できなかった場合には、ステップ４０６で送信したチャレンジコードと、ステップ４１６で復号できなかった暗号化されたままのチャレンジコードとが一致するかを判定することになる。
【００８０】
そして、Ｗｅｂサーバ１００は、ステップ４０６で送信したチャレンジコードと、ステップ４１６で復号して得られたチャレンジコードとが一致すると判定された場合には（ステップ４１７：Ｙ）、ステップ４１５で取得した「前回正常ログイン時の秘密鍵」を、（１）ユーザ情報テーブルの「前回正常ログイン時の秘密鍵」に登録して更新する（ステップ４１８）。ただし、この場合、同じ秘密鍵が「前回正常ログイン時の秘密鍵」に登録されることになるので、この場合にはステップ４１８の処理をスキップして処理をステップ４１９に移行することもできる。
【００８１】
また、Ｗｅｂサーバ１００は、ステップ４０６で送信したチャレンジコードと、ステップ４１６で復号して得られたチャレンジコードとが一致しないと判定された場合には（ステップ４１７：Ｎ）、認証されなかった（認証失敗）と決定して（ステップ４２４）、処理を終了する。
【００８２】
次に、Ｗｅｂサーバ１００は、（１）ユーザ情報テーブルの「現在の秘密鍵」に記憶されている最新の秘密鍵（第３の鍵）を取得して（ステップ４１９）、クライアント１０１に送信する（ステップ４２０）。そして、Ｗｅｂサーバ１００は、認証された（認証成功）と決定して（ステップ４１３）、処理を図３のステップ３０２に移行する。ステップ４２０は、本発明の第３の鍵送信手段の適用例である。
【００８３】
クライアント１０１は、Ｗｅｂサーバ１００から最新の「現在の公開鍵」（第３の鍵）を受信すると（ステップ４２１）、ＯＳのレジストリ、又はブラウザ（ブラウザソフトウエア）が利用可能な記憶部（ＬｏｃａｌＳｔｏｒａｇｅ領域（以下『ＬｏｃａｌＳｔｏｒａｇｅ』））に記憶されている公開鍵を、当該受信した最新の「現在の公開鍵」に書き換えて登録（更新）する（ステップ４２２）。そして、処理を図３のステップ３０２に移行する。ステップ４２１は、本発明の第３の鍵取得手段の適用例である。また、ステップ４２２は、本発明の第１の鍵更新手段の適用例である。
【００８４】
このように、ステップ４２２で公開鍵が更新されるので、次に、図４の処理を実行する場合には、更新された公開鍵がステップ４０８で取得され、チャレンジコードの暗号化に用いられることとなる。
【００８５】
このように、図４に示す認証処理は、グループに所属していないユーザの認証処理を示すフローチャートである。
【００８６】
次に、グループに所属しているユーザの認証処理について、図５を用いて、説明する。
【００８７】
図５は、グループに所属しているユーザの認証処理であって、ステップ３０１の詳細処理の一例を示すフローチャートである。
【００８８】
すなわち、グループに所属しているユーザの場合には、図５に示す認証処理を実行する。
【００８９】
図５に示す認証処理は、複数人で同一のクライアント１０１を共有して使用する場合、当該クライアント１０１を共有して使用する当該複数人を１つのグループとして管理する場合に行う認証処理を示すものである。
【００９０】
図５のステップ５０１、ステップ５０２、ステップ５０７〜５１０、ステップ５２１、ステップ５２２に示す処理は、クライアント１０１のＣＰＵ２０１により実行され実現される。
【００９１】
また、図５のステップ５０３〜５０６、ステップ５１１〜５２０、ステップ５２３、ステップ５２４に示す処理は、Ｗｅｂサーバ１００のＣＰＵ２０１により実行され実現される。
【００９２】
図５に示すステップ５０１、ステップ５０２、ステップ５０７〜５１０、ステップ５２１、ステップ５２２に示す処理は、それぞれ、図４のステップ４０１、ステップ４０２、ステップ４０７〜４１０、ステップ４２１、ステップ４２２に示す処理と同じであるため、ここでは説明を省略する。
【００９３】
また、図５のステップ５０３〜５０６、ステップ５１１、ステップ５２３、ステップ５２４に示す処理は、それぞれ、図４のステップ４０３〜４０６、ステップ４１１、ステップ４２３、ステップ４２４に示す処理と同じであるため、ここでは説明を省略する。
【００９４】
すなわち、図５に示すステップ５１２、ステップ５１５〜５２０に示す処理が、図４とは異なるため、ここでは、主に、図５に示すステップ５１２、ステップ５１５〜５２０に示す処理について説明する。
【００９５】
ステップ５１２では、Ｗｅｂサーバ１００は、ステップ５０３で受信したユーザＩＤに対応する「秘密鍵」を、図８に示すテーブル情報（（２）グループ情報、（３）グループごとの鍵履歴管理テーブル）から取得する。
【００９６】
具体的には、ステップ５０３で受信したユーザＩＤに対応するグループＩＤを（２）グループ情報テーブルから特定し、当該特定されたグループＩＤが含まれる（３）グループごとの鍵履歴管理テーブルのレコードに含まれる秘密鍵から取得する。また、ここでは、登録日が最も新しい年月日のレコードの秘密鍵を取得する。
【００９７】
そして、Ｗｅｂサーバ１００は、取得した秘密鍵を用いて、ステップ５１１で受信した秘密鍵を復号して（ステップ５１３）、ステップ５０６で送信したチャレンジコードとステップ５１３で復号した秘密鍵とが一致するかを判定し（ステップ５１４）、一致すると判定された場合には、処理をステップ５１９に移行し、一致しないと判定された場合には、処理をステップ５１５に移行する。
【００９８】
そして、Ｗｅｂサーバ１００は、一致しないと判定された場合には（ステップ５１４：Ｎ）、ステップ５０３で取得したユーザＩＤに対応する「秘密鍵」を、図８に示すテーブル情報（（２）グループ情報、（３）グループごとの鍵履歴管理テーブル）から取得する。ここでも、ステップ５１２と同様の手順で秘密鍵を取得する。ここでは、ステップ５１２で取得した秘密鍵の登録日よりも古いが、最も登録日が現在に近い年月日のレコードの秘密鍵を取得する（ステップ５１５）。
【００９９】
そして、Ｗｅｂサーバ１００は、ステップ５１５で取得した「秘密鍵」を用いて、ステップ５１１で取得した暗号化されたチャレンジコードを復号する（ステップ５１６）。
【０１００】
そして、Ｗｅｂサーバ１００は、ステップ５０６で送信したチャレンジコードと、ステップ５１６で復号して得られたチャレンジコードとが一致するか否かを判定する（ステップ５１７）。
【０１０１】
ここで、ステップ５１６で復号できなかった場合には、ステップ５０６で送信したチャレンジコードと、ステップ５１６で復号できなかった暗号化されたままのチャレンジコードとが一致するかを判定することになる。
【０１０２】
そして、Ｗｅｂサーバ１００は、ステップ５０６で送信したチャレンジコードと、ステップ５１６で復号して得られたチャレンジコードとが一致すると判定された場合には（ステップ５１７：Ｙ）、ステップ５１２で取得した秘密鍵（登録日が最も新しい年月日のレコードの秘密鍵）を取得して（ステップ５１９）、当該秘密鍵をクライアント１０１に送信する（ステップ５２０）。そして、クライアント１０１は、認証された（認証成功）と判定し（ステップ５２３）、処理をステップ３０２に移行する。
【０１０３】
また、Ｗｅｂサーバ１００は、ステップ５０６で送信したチャレンジコードと、ステップ５１６で復号して得られたチャレンジコードとが一致しないと判定された場合には（ステップ５１７：Ｎ）、図８に示すテーブル情報（（２）グループ情報、（３）グループごとの鍵履歴管理テーブル）を参照して、ステップ５０３で取得したユーザＩＤに対応する「秘密鍵」（ステップ５１５で取得した秘密鍵よりも登録日の古いが、最も登録日が現在に近い年月日のレコードの秘密鍵）があるか否かを判定する（ステップ５１８）。
【０１０４】
そして、ステップ５０３で取得したユーザＩＤに対応する「秘密鍵」（ステップ５１５で取得した秘密鍵よりも登録日の古いが、最も登録日が現在に近い年月日のレコードの秘密鍵）があると判定された場合には（ステップ５１８：Ｙ）、処理をステップ５１５に戻して、当該あると判定された秘密鍵を、図８に示すテーブル情報（（２）グループ情報、（３）グループごとの鍵履歴管理テーブル）から取得する（ステップ５１５）。
【０１０５】
また、Ｗｅｂサーバ１００は、ステップ５１８で、ステップ５０３で取得したユーザＩＤに対応する「秘密鍵」（ステップ５１５で取得した秘密鍵よりも登録日の古いが、最も登録日が現在に近い年月日のレコードの秘密鍵）が無いと判定された場合には（ステップ５１８：Ｎ）、認証されなかった（認証失敗）と判定して（ステップ５２４）、処理を終了する。
【０１０６】
以上の通り、複数人で同一のクライアント１０１を共有して使用する場合であっても、ユーザ認証、及びクライアント認証を行うことが可能となる。
【０１０７】
次に、図６を用いて、（１）ユーザ情報テーブル、及び（３）グループごとの鍵履歴管理テーブルの更新処理について説明する。
【０１０８】
図６は、（１）ユーザ情報テーブル、及び（３）グループごとの鍵履歴管理テーブルの更新処理の一例を示すフローチャートである。
【０１０９】
また、図６に示す各ステップに示す処理は、Ｗｅｂサーバ１００のＣＰＵ２０１により実行され実現される。
【０１１０】
Ｗｅｂサーバ１００は、所定の条件を満たすか否かを判定する（ステップ６０１）。ここで、所定の条件とは、前回、公開鍵、秘密鍵を生成して（１）ユーザ情報テーブル、及び（３）グループごとの鍵履歴管理テーブルを更新してから所定の期間が経過したか（定期的に更新するか）、同一ユーザＩＤのユーザが所定回数、認証失敗したか、ユーザの操作により、（１）ユーザ情報テーブル、及び（３）グループごとの鍵履歴管理テーブルの更新処理の開始指示を受け付けたか等、どのような条件であってもよい。
【０１１１】
Ｗｅｂサーバ１００は、所定の条件を満たすと判定された場合には（ステップ６０１：Ｙ）、（１）ユーザ情報テーブルの各レコード（各レコードのことをユーザ情報と言う）を取得する（ステップ６０２）。ここで取得した各レコードのうち１つのレコードを処理対象として、以下の処理を実行する。
【０１１２】
そして、Ｗｅｂサーバ１００は、ステップ６０２で取得したレコードに含まれる「現在の秘密鍵」をメモリに記憶する（ステップ６０３）。
【０１１３】
そして、Ｗｅｂサーバ１００は、新たな公開鍵（クライアント端末においてコードを暗号化するために用いられる第３の鍵）、及び当該公開鍵に対応する秘密鍵（当該第３の鍵を用いて暗号化されたコードを復号するために用いられる第４の鍵）を生成する。そして、当該生成された秘密鍵（第４の鍵）を、現在処理対象のレコードの「現在の秘密鍵」に登録して更新する（ステップ６０４）。ステップ６０４は、本発明の生成手段、及び第２の鍵更新手段の適用例である。
【０１１４】
そして、Ｗｅｂサーバ１００は、ステップ６０４で生成された公開鍵を、現在処理対象のレコードの「現在の公開鍵」に登録して更新する（ステップ６０５）。
【０１１５】
次に、Ｗｅｂサーバは、現在処理対象のレコードに含まれているユーザＩＤが、（２）グループ情報テーブルに登録されているか否かを判定することにより、当該ユーザＩＤに示されるユーザがグループに所属しているか否かを判定する（ステップ６０６）。
【０１１６】
そして、ユーザがグループに所属していないと判定された場合（現在処理対象のレコードに含まれているユーザＩＤが、（２）グループ情報テーブルに登録されていないと判定された場合）（ステップ６０６：Ｎ）、ステップ６０３でメモリに記憶した「現在の秘密鍵」を、現在処理対象のレコードの「前回正常ログイン時の秘密鍵」に上書き登録して更新する（ステップ６０８）。
【０１１７】
そして、Ｗｅｂサーバ１００は、（３）グループごとの鍵履歴管理テーブルに、新たなレコードを生成して、そのレコードの「公開鍵」、及び「秘密鍵」の項目に、ステップ６０４で生成された公開鍵、及び秘密鍵をそれぞれ登録して、当該登録された年月日を、当該生成されたレコードの「登録日」の項目に登録する。また、ここで生成されたレコードの「グループＩＤ」の項目には、グループＩＤを新たに生成して登録しても良いし、登録しなくてもよい。そして、Ｗｅｂサーバ１００は、ステップ６０９の処理が実行されると、処理をステップ６１０に移行する。
【０１１８】
Ｗｅｂサーバ１００は、ユーザがグループに所属していると判定された場合（現在処理対象のレコードに含まれているユーザＩＤが、（２）グループ情報テーブルに登録されていると判定された場合）（ステップ６０６：Ｙ）、現在処理対象のレコードのユーザＩＤに対応して（２）グループ情報テーブルに記憶されているグループＩＤを特定して、当該特定されたグループＩＤに対応して（２）グループ情報テーブルに記憶されている全てのユーザＩＤを特定する。このようにして、現在処理対象のレコードのユーザが所属するグループの全ユーザを特定する。
【０１１９】
そして、Ｗｅｂサーバ１００は、（１）ユーザ情報テーブルの各レコードのうち、当該特定された各ユーザＩＤのレコードをそれぞれ取得して、当該取得したレコードに含まれている「現在の秘密鍵」（ステップ６０３と同じ）を、当該取得したレコードの「前回正常ログイン時の秘密鍵」に上書き登録して更新する。また、ここで、当該取得したレコードの「現在の公開鍵」、及び「現在の秘密鍵」に、ステップ６０４で生成された公開鍵、及び秘密鍵をそれぞれ上書き登録して更新する（ステップ６０７）。
【０１２０】
また、Ｗｅｂサーバ１００は、現在処理対象のレコード（ユーザ情報）のユーザＩＤに対応して（２）グループ情報テーブルに記憶されているグループＩＤを特定し、（３）グループごとの鍵履歴管理テーブルに新たなレコードを生成して、当該特定されたグループＩＤを、当該生成されたレコードの「グループＩＤ」の項目に登録し、ステップ６０４で生成された公開鍵、及び秘密鍵を、当該生成されたレコードの「公開鍵」、及び「秘密鍵」の項目にそれぞれ登録して更新する（ステップ６０７）。
【０１２１】
ステップ６０７に示す処理を行うことで、複数人で同一のクライアント１０１を共有して使用する場合、同一グループの各ユーザは、共通の公開鍵、秘密鍵を用いることでクライアントの端末認証を行うことが出来るようになる。
【０１２２】
同一グループの各ユーザ間で、異なる公開鍵、秘密鍵で管理されると、複数人で同一のクライアント１０１を共有して使用する場合、クライアントの端末認証を適切に行うことが出来ないため、このように、ステップ６０７に示す処理を行う必要がある。
【０１２３】
次に、Ｗｅｂサーバ１００は、ステップ６０２で取得した各レコードのうち、ステップ６０３からステップ６０９の処理を実行していないレコードがある（まだ、処理対象としていないレコードがある）か否かを判定する。そして、まだ、処理対象としていないレコードがあると判定された場合には（ステップ６１０：Ｙ）、当該処理対象としていないレコードを処理対象として、ステップ６０３に処理を移行する。一方、ステップ６０２で取得した各レコードの全てを処理対象としてステップ６０３からステップ６０９の処理を実行したと判定された場合には（ステップ６１０：Ｎ）、処理を終了する。
【０１２４】
次に、図７を用いて、ステップ３０２の詳細処理について説明する。
【０１２５】
図７は、ステップ３０２の詳細処理の一例を示すフローチャートである。
【０１２６】
図７のステップ７０１、ステップ７０７、ステップ７０８に示す処理は、クライアント１０１のＣＰＵ２０１により実行され実現される。
【０１２７】
また、図７のステップ７０２〜７０６に示す処理は、Ｗｅｂサーバ１００のＣＰＵ２０１により実行され実現される。
【０１２８】
Ｗｅｂサーバ１００は、ステップ４２３、又はステップ５２３で認証成功と判定された否かを判定して、認証成功していないと判定された場合（認証失敗したと判定された場合）（ステップ７０２：Ｎ）、処理を終了し、認証成功していると判定された場合には（ステップ７０２：Ｙ）、処理をステップ７０３に移行する。
【０１２９】
そして、クライアント１０１は、Ｗｅｂサービスの要求を送信する（ステップ７０１）。
【０１３０】
そして、Ｗｅｂサーバ１００は、ステップ７０１で送信されたＷｅｂサービスの要求を受信し（ステップ７０３）、当該Ｗｅｂサービスの要求に基づく処理を実行し（ステップ７０４）、当該処理の結果をクライアントに送信する（ステップ７０５）。
【０１３１】
そして、クライアント１０１は、Ｗｅｂサーバ１００から当該処理の結果を受信して表示する（ステップ７０７）。
【０１３２】
クライアント１０１は、ユーザの操作により、終了指示を受け付けた場合には（ステップ７０８：Ｙ）、表示されているＷｅｂサービスの画面（ウェブブラウザ）の表示を消してブラウザソフトウエアによる処理を終了する。また、終了指示を受けた場合には、クライアント１０１は、Ｗｅｂサーバ１００にその旨を通知して、Ｗｅｂサーバ１００がその旨を受信すると（ステップ７０６：Ｎ）、クライアント１０１からの要求に係るＷｅｂサーバの処理を終了する。
【０１３３】
クライアント１０１は、ユーザの操作により、終了指示を受け付けないで、新たな要求をＷｅｂサーバ１００に対して行う指示がユーザによりなされた場合には（ステップ７０８：Ｎ）、当該指示に係る要求をＷｅｂサーバに送信する（ステップ７０１）。
【０１３４】
また、Ｗｅｂサーバ１００は、クライアント１０１から終了指示がなされた旨の通知を受けなかった場合（ステップ７０６：Ｎ）、処理をステップ７０３に戻す。
【０１３５】
以上、本発明によれば、クライアントにおいてチャレンジコードを暗号化するために用いられる公開鍵、及び当該公開鍵に対応し、当該公開鍵を用いて暗号化されたチャレンジコードを復号するために用いられる秘密鍵を生成し（ステップ６０４）、例えば（１）ユーザ情報テーブルの「現在の秘密鍵」を、当該生成された秘密鍵に更新し、当該生成された公開鍵をクライアントに送信する（ステップ４２０）ので（秘密鍵を更新しているので）、悪意のある第三者のユーザが、機器（コンピュータ）認証を行うための鍵を入手した場合であっても、第三者のユーザがなりすまして認証されるおそれを低減させ、セキュリティを向上させることができる。
【０１３６】
また、所定の条件を満たした場合（例えば定期的に）、秘密鍵を更新するため、クライアントが対応する公開鍵を記憶していない場合であっても、例えば、（１）ユーザ情報テーブルの「前回正常ログイン時の秘密鍵」を用いてクライアントの機器認証を行っているため（ステップ４１５〜４１７）、第三者のユーザがなりすまして認証されるおそれを低減させ、セキュリティを向上させることができる。
【０１３７】
上述した本発明の実施形態を構成する各手段及び各ステップは、コンピュータのＲＡＭやＲＯＭ等に記憶されたプログラムを読み取り動作することによって実現できる。このプログラム及び前記プログラムを記録したコンピュータ読み取り実行可能な記録媒体は本発明に含まれる。
【０１３８】
また、本発明は、例えば、システム、装置、方法、プログラムもしくは記録媒体等としての実施形態も可能であり、具体的には、一つの機器からなる装置に適用してもよい。
【０１３９】
なお、本発明は、上述した実施形態の機能を実現するソフトウェアのプログラムを、システム又は装置に直接、又は遠隔から供給する。そして、そのシステム又は装置のコンピュータが前記供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。
【０１４０】
従って、本発明の機能処理をコンピュータで実現するために、前記コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等の形態であってもよい。
【０１４１】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。更に、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳ等が、実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【０１４２】
更に、その他の方法として、まず記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。そして、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現される。
【符号の説明】
【０１４３】
１００  Ｗｅｂサーバ
１０１  クライアント
１０２  ネットワーク
１０３  クライアント
【図１】
2015106842.tif 000003
【図２】
2015106842.tif 000004
【図３】
2015106842.tif 000005
【図４】
2015106842.tif 000006
【図５】
2015106842.tif 000007
【図６】
2015106842.tif 000008
【図７】
2015106842.tif 000009
【図８】
2015106842.tif 000010
【図９】
2015106842.tif 000011