(57)【特許請求の範囲】
【請求項１】
ユーザのアカウント、および認証情報を取得する取得手段と、
前記取得手段により取得されたユーザの認証情報を、第１の一方向性関数に基づいて第１の変換値に変換する第１の変換手段と、
前記取得手段により取得されたユーザの認証情報を、第２の一方向性関数に基づいて第２の変換値に変換する第２の変換手段と、
前記取得手段により取得されたユーザのアカウントが、前記第１の変換値を記憶する第１のハッシュテーブル、および前記第２の変換値を記憶する第２のハッシュテーブルの何れのハッシュテーブルに記憶されているのかを判断する判断手段と、
前記判断手段により前記第１のハッシュテーブルに記憶されていると判断された場合は、前記第１の変換手段が前記取得手段により取得された認証情報を変換した変換値と既に記憶されている前記第１の変換値とを比較し、前記判断手段により前記第２のハッシュテーブルに記憶されていると判断された場合は、前記第２の変換手段が前記取得手段により取得された認証情報を変換した変換値と既に記憶されている前記第２の変換値の比較を行い、ユーザの認証を行う認証手段と、を有し、
更に、前記取得手段によりユーザの認証情報が取得された際に、当該ユーザが前記第１の一方向性関数を使用する必要があるユーザである場合は、前記第１の変換手段による前記認証情報の変換を行い前記認証手段による前記第１の変換値に基づいた認証を行うとともに、前記第２の変換手段による前記認証情報の変換を行い前記第２の変換値を記憶し、前記認証手段は次回以降のユーザの認証時に前記第２の変換値を用いたユーザの認証を行うことが可能になることを特徴とする情報処理装置。
【請求項２】
前記記憶されている第１の変換値が所定時間変更されていない場合、前記第２の一方向性関数に基づく第２の変換値を得るとともに当該第１の変換値を当該第２の変換値に更新することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
ユーザのアカウント、および認証情報を取得する取得ステップと、
前記取得ステップにより取得されたユーザの認証情報を、第１の一方向性関数に基づいて第１の変換値に変換する第１の変換ステップと、
前記取得ステップにより取得されたユーザの認証情報を、第２の一方向性関数に基づいて第２の変換値に変換する第２の変換ステップと、
前記取得ステップにより取得されたユーザのアカウントが、前記第１の変換値を記憶する第１のハッシュテーブル、および前記第２の変換値を記憶する第２のハッシュテーブルの何れのハッシュテーブルに記憶されているのかを判断する判断ステップと、
前記判断ステップにより前記第１のハッシュテーブルに記憶されていると判断された場合は、前記第１の変換ステップが前記取得ステップにより取得された認証情報を変換した変換値と既に記憶されている前記第１の変換値とを比較し、前記判断ステップにより前記第２のハッシュテーブルに記憶されていると判断された場合は、前記第２の変換ステップが前記取得ステップにより取得された認証情報を変換した変換値と既に記憶されている前記第２の変換値の比較を行い、ユーザの認証を行う認証ステップと、を有し、
更に、前記取得ステップによりユーザの認証情報が取得された際に、当該ユーザが前記第１の一方向性関数を使用する必要があるユーザである場合は、前記第１の変換ステップによる前記認証情報の変換を行い前記認証ステップによる前記第１の変換値に基づいた認証を行うとともに、前記第２の変換ステップによる前記認証情報の変換を行い前記第２の変換値を記憶し、前記認証ステップは次回以降のユーザの認証時に前記第２の変換値を用いたユーザの認証を行うことが可能になることを特徴とする認証方法。
【請求項４】
前記記憶されている第１の変換値が所定時間変更されていない場合、前記第２の一方向性関数に基づく第２の変換値を得るとともに当該第１の変換値を当該第２の変換値に更新することを特徴とする請求項３に記載の認証方法。
【請求項５】
ユーザのアカウント、および認証情報を取得する取得ステップと、
前記取得ステップにより取得されたユーザの認証情報を、第１の一方向性関数に基づいて第１の変換値に変換する第１の変換ステップと、
前記取得ステップにより取得されたユーザの認証情報を、第２の一方向性関数に基づいて第２の変換値に変換する第２の変換ステップと、
前記取得ステップにより取得されたユーザのアカウントが、前記第１の変換値を記憶する第１のハッシュテーブル、および前記第２の変換値を記憶する第２のハッシュテーブルの何れのハッシュテーブルに記憶されているのかを判断する判断ステップと、
前記判断ステップにより前記第１のハッシュテーブルに記憶されていると判断された場合は、前記第１の変換ステップが前記取得ステップにより取得された認証情報を変換した変換値と既に記憶されている前記第１の変換値とを比較し、前記判断ステップにより前記第２のハッシュテーブルに記憶されていると判断された場合は、前記第２の変換ステップが前記取得ステップにより取得された認証情報を変換した変換値と既に記憶されている前記第２の変換値の比較を行い、ユーザの認証を行う認証ステップと、をコンピュータに実行させ、
更に、前記取得ステップによりユーザの認証情報が取得された際に、当該ユーザが前記第１の一方向性関数を使用する必要があるユーザである場合は、前記第１の変換ステップによる前記認証情報の変換を行い前記認証ステップによる前記第１の変換値に基づいた認証を行うとともに、前記第２の変換ステップによる前記認証情報の変換を行い前記第２の変換値を記憶することをコンピュータに実行させ、前記認証ステップは次回以降のユーザの認証時に前記第２の変換値を用いたユーザの認証を行うことが可能になることを特徴とするコンピュータプログラム。
【請求項６】
前記記憶されている第１の変換値が所定時間変更されていない場合、前記第２の一方向性関数に基づく第２の変換値を得るとともに当該第１の変換値を当該第２の変換値に更新することを更にコンピュータに実行させることを特徴とする請求項５に記載のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、認証方法、及びコンピュータプログラムに関し、特に、ユーザの認証を行うために用いて好適なものである。
【背景技術】
【０００２】
ハッシュアルゴリズムは、その特徴として一方向性と非衝突性とを有していることから、システム内にパスワードを保存する際に利用されることがある。具体的には、パスワードをそのまま保存するのでなく、パスワードのハッシュ値を保存するといった用途で利用されることがある。
一方近年、ハッシュ関数の一種であるＭＤ５の脆弱性が発見される等、ハッシュアルゴリズムに対する攻撃が成功したことに関する報告が相次いでいる。このようにハッシュアルゴリズムに対する攻撃に成功した場合であっても、必ずしもハッシュ値からパスワードを推測することができるわけではない。しかしながら、セキュリティの向上を考慮する場合、攻撃に成功したものとは異なるハッシュアルゴリズムを採用することが好ましい。
【０００３】
アルゴリズムの変更を行うための従来の技術としては、以下のものがあげられる。
特許文献１では、まず、システムに既に登録されている画像に施したデータ特徴量抽出処理のアルゴリズムのバージョンが現在使用しているバージョンと異なる画像が含まれているか否かを判定する。この判定の結果、現在使用しているバージョンと異なる画像が含まれている場合に、その画像に対して、現在使用しているデータ特徴量抽出処理のアルゴリズムを用いて、特徴量及びその重み情報を算出する。
また、特許文献２では、相互に認証を行う第１装置から第２の装置に古い認証用鍵を送信し、古い認証用鍵が第２の装置で正しく認証されると、新しい認証用鍵を第２の装置から第１の装置に送信する。そして、新しい認証用鍵が第１の装置で正しく認証されると、第１の装置は古い認証用鍵を新しい認証用鍵に更新する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００１−８４２７１号公報
【特許文献２】特開２００５−２７８０６５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、前述した従来の技術では、パスワードのハッシュ値であって、古いハッシュアルゴリズムで求めたハッシュ値がシステムに既に登録されている場合に、使用するハッシュアルゴリズムを変更すると、以下に示すような問題点があった。
すなわち、既にシステムに登録されているハッシュ値は、古いハッシュアルゴリズムでないと算出できない。このため、ハッシュアルゴリズムを新しいものに入れ替えると、既にシステムに登録されているハッシュ値は無効になってしまう。この古いハッシュ値がパスワードのハッシュ値であった場合、ユーザが正しいパスワードを入力しても、ハッシュアルゴリズムが異なるため、求まるハッシュ値も異なることになる。そうすると、ユーザがシステムにログインできなくなる。ユーザの利便性を考えた場合、ハッシュアルゴリズムの変更があったとしても、その変更の前と同じパスワードでシステムにログインできた方が、ユーザがシステムの変更を意識する必要がないため、好ましい。
【０００６】
そこで、ハッシュアルゴリズムの変更時に、システム内に保存している古いハッシュ値から新しいハッシュアルゴリズムによるハッシュ値を求めることが考えられる。このようにすれば、ハッシュアルゴリズムの変更前後で、ユーザは同じパスワードを用いてシステムにログインできる。新しいハッシュ値を求めるためには、元となるパスワードをシステムが知っていることと、古いハッシュ値から元となるパスワードをシステムが推測できることとの何れかが必要になる。しかしながら、元となるパスワードをシステムに認識させることは非常に困難である。また、ハッシュアルゴリズムの特徴として一方向性があるので、古いハッシュ値から元になったパスワードを推測することは非常に困難である。したがって、古いハッシュ値から新しいハッシュ値を生成することはできない。よって、ハッシュアルゴリズムを変更すると、ユーザは元のパスワードではシステムにログインできなくなる。
【０００７】
また、ユーザがシステムにログインできるようにするために、管理者が各ユーザのパスワードを再設定することも考えられる。この場合、管理者が入力したパスワードから、新しいハッシュアルゴリズムを用いて新しいハッシュ値を求めることが可能である。よって新しいハッシュ値をシステム内に保存すれば、それ以降は管理者が設定したパスワードを利用して、ユーザはシステムにログインできるようになる。しかしながら、パスワードの再設定を必要とするユーザの数が多い場合、パスワードを設定するために管理者にかかる負担が大きくなる。
【０００８】
この他にも、システムが自動で新しいパスワードを生成し、新しいハッシュアルゴリズムで新しいハッシュ値を求め、各ユーザに新しいパスワードを通知することも考えられる。しかしながら、いずれにせよ、ハッシュアルゴリズムが変更されるとユーザは、パスワードの変更を余儀なくされる。
【０００９】
そこで、本発明では、ユーザの認証情報を一方向性関数に基づく値に変換して保存する場合に、変換に使用するアルゴリズムを、管理者の負担を増やすことなく、且つユーザに意識させることなく変更できるようにすることを目的とする。
【課題を解決するための手段】
【００１０】
本発明の情報処理装置は、ユーザのアカウント、および認証情報を取得する取得手段と、前記取得手段により取得されたユーザの認証情報を、第１の一方向性関数に基づいて第１の変換値に変換する第１の変換手段と、前記取得手段により取得されたユーザの認証情報を、第２の一方向性関数に基づいて第２の変換値に変換する第２の変換手段と、前記取得手段により取得されたユーザのアカウントが、前記第１の変換値を記憶する第１のハッシュテーブル、および前記第２の変換値を記憶する第２のハッシュテーブルの何れのハッシュテーブルに記憶されているのかを判断する判断手段と、前記判断手段により前記第１のハッシュテーブルに記憶されていると判断された場合は、前記第１の変換手段が前記取得手段により取得された認証情報を変換した変換値と既に記憶されている前記第１の変換値とを比較し、前記判断手段により前記第２のハッシュテーブルに記憶されていると判断された場合は、前記第２の変換手段が前記取得手段により取得された認証情報を変換した変換値と既に記憶されている前記第２の変換値の比較を行い、ユーザの認証を行う認証手段と、を有し、更に、前記取得手段によりユーザの認証情報が取得された際に、当該ユーザが前記第１の一方向性関数を使用する必要があるユーザである場合は、前記第１の変換手段による前記認証情報の変換を行い前記認証手段による前記第１の変換値に基づいた認証を行うとともに、前記第２の変換手段による前記認証情報の変換を行い前記第２の変換値を記憶し、前記認証手段は次回以降のユーザの認証時に前記第２の変換値を用いたユーザの認証を行うことが可能になることを特徴とする。
【００１１】
本発明の認証方法は、ユーザのアカウント、および認証情報を取得する取得ステップと、前記取得ステップにより取得されたユーザの認証情報を、第１の一方向性関数に基づいて第１の変換値に変換する第１の変換ステップと、前記取得ステップにより取得されたユーザの認証情報を、第２の一方向性関数に基づいて第２の変換値に変換する第２の変換ステップと、前記取得ステップにより取得されたユーザのアカウントが、前記第１の変換値を記憶する第１のハッシュテーブル、および前記第２の変換値を記憶する第２のハッシュテーブルの何れのハッシュテーブルに記憶されているのかを判断する判断ステップと、前記判断ステップにより前記第１のハッシュテーブルに記憶されていると判断された場合は、前記第１の変換ステップが前記取得ステップにより取得された認証情報を変換した変換値と既に記憶されている前記第１の変換値とを比較し、前記判断ステップにより前記第２のハッシュテーブルに記憶されていると判断された場合は、前記第２の変換ステップが前記取得ステップにより取得された認証情報を変換した変換値と既に記憶されている前記第２の変換値の比較を行い、ユーザの認証を行う認証ステップと、を有し、更に、前記取得ステップによりユーザの認証情報が取得された際に、当該ユーザが前記第１の一方向性関数を使用する必要があるユーザである場合は、前記第１の変換ステップによる前記認証情報の変換を行い前記認証ステップによる前記第１の変換値に基づいた認証を行うとともに、前記第２の変換ステップによる前記認証情報の変換を行い前記第２の変換値を記憶し、前記認証ステップは次回以降のユーザの認証時に前記第２の変換値を用いたユーザの認証を行うことが可能になることを特徴とする。
【００１２】
本発明のコンピュータプログラムは、ユーザのアカウント、および認証情報を取得する取得ステップと、前記取得ステップにより取得されたユーザの認証情報を、第１の一方向性関数に基づいて第１の変換値に変換する第１の変換ステップと、前記取得ステップにより取得されたユーザの認証情報を、第２の一方向性関数に基づいて第２の変換値に変換する第２の変換ステップと、前記取得ステップにより取得されたユーザのアカウントが、前記第１の変換値を記憶する第１のハッシュテーブル、および前記第２の変換値を記憶する第２のハッシュテーブルの何れのハッシュテーブルに記憶されているのかを判断する判断ステップと、前記判断ステップにより前記第１のハッシュテーブルに記憶されていると判断された場合は、前記第１の変換ステップが前記取得ステップにより取得された認証情報を変換した変換値と既に記憶されている前記第１の変換値とを比較し、前記判断ステップにより前記第２のハッシュテーブルに記憶されていると判断された場合は、前記第２の変換ステップが前記取得ステップにより取得された認証情報を変換した変換値と既に記憶されている前記第２の変換値の比較を行い、ユーザの認証を行う認証ステップと、をコンピュータに実行させ、更に、前記取得ステップによりユーザの認証情報が取得された際に、当該ユーザが前記第１の一方向性関数を使用する必要があるユーザである場合は、前記第１の変換ステップによる前記認証情報の変換を行い前記認証ステップによる前記第１の変換値に基づいた認証を行うとともに、前記第２の変換ステップによる前記認証情報の変換を行い前記第２の変換値を記憶することをコンピュータに実行させ、前記認証ステップは次回以降のユーザの認証時に前記第２の変換値を用いたユーザの認証を行うことが可能になることを特徴とする。
【発明の効果】
【００１３】
本発明によれば、ユーザの認証情報の変換に使用するアルゴリズム（一方向性関数）を変更しても、ユーザの認証情報を変更する必要がなくなる。したがって、ユーザの認証情報を一方向性関数に基づく値に変換して保存する場合に、変換に使用するアルゴリズムを、管理者の負担を増やすことなく、且つユーザに意識させることなく変更できるようにすることができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の第１の実施形態を示し、ネットワークデバイス管理装置のハードウェアの構成の一例を示す図である。
【図２】本発明の第１の実施形態を示し、ネットワークデバイス管理装置における機能構成（サーバモジュール構成）の一例を示す図である。
【図３】本発明の第１の実施形態を示し、ユーザによるにログインを認証する際のネットワークデバイス管理装置の動作の一例を説明するフローチャートである。
【図４】本発明の第１の実施形態を示し、第１の認証情報記憶装置と第２の認証情報記憶装置に記憶されている認証情報管理テーブルの一例を示す図である。
【図５】本発明の第２の実施形態を示し、ネットワークデバイス管理装置における機能構成（サーバモジュール構成）の一例を示す図である。
【図６】本発明の第２の実施形態を示し、追加の認証モジュールの構成の一例を示す図である。
【図７】本発明の第２の実施形態を示し、認証モジュールを追加する際のネットワークデバイス管理装置における動作の一例を説明するフローチャートである。
【図８】本発明の第２の実施形態を示し、認証モジュールが追加された後のネットワークデバイス管理装置における機能構成（サーバモジュール構成）の一例を示す図である。
【発明を実施するための形態】
【００１５】
（第１の実施形態）
以下に、図面を参照しながら、本発明の第１の実施形態について説明する。
図１は、ネットワークデバイス管理装置のハードウェアの構成の一例を示す図である。
図１に示すように、ネットワークデバイス管理装置１００は、ＰＣ（パーソナルコンピュータ）を用いることにより実現できる。図１において、ＣＰＵ１０１は、ＲＯＭ１０２又はハードディスク（ＨＤ）１１１に記憶されたアプリケーションプログラム、又はフレキシブルディスク（ＦＤ）１１２により供給されるアプリケーションプログラムを実行する。また、ＣＰＵ１０１は、システムバス１０４に接続される各デバイスを総括的に制御する。ＲＡＭ１０３は、ＣＰＵ１０１の主メモリやワークエリア等として機能する。キーボードコントローラ（ＫＢＣ）１０５は、キーボード（ＫＢ）１０９や不図示のポインティングデバイス等からの指示入力を制御する。
【００１６】
ＣＲＴコントローラ（ＣＲＴＣ）１０６は、ＣＲＴディスプレイ（ＣＲＴ）１１０の表示を制御する。ディスクコントローラ（ＤＫＣ）１０７は、ハードディスク（ＨＤ）１１１及びフレキシブルディスク（ＦＤ）１１２に対するアクセスを制御する。ネットワークインタフェースカード（ＮＩＣ）１０８は、ネットワーク１５０を介して、外部のネットワーク機器等と双方向にデータをやり取りする。ネットワーク１５０としてはＬＡＮやインターネット等が想定される。ハードディスク（ＨＤ）１１１や、フレキシブルディスク（ＦＤ）１１２は、ブートプログラム、種々のアプリケーション、編集ファイル、ユーザファイル、アプリケーションプログラム、及びネットワーク制御プログラム等を記憶する。尚、後述する全ての説明において、特に断りのない限り、実行のハード上の主体は主としてＣＰＵ１０１であり、ソフトウェア上の主体は主としてハードディスク（ＨＤ）１１１にインストールされたアプリケーションプログラムである。
【００１７】
図２は、ネットワークデバイス管理装置１００における機能構成（サーバモジュール構成）の一例を示す図である。ネットワークデバイス管理装置１００は、入力装置２０１、判断装置２０２、第１の認証装置２１０、第１のハッシュ演算装置２１１、及び第１の認証情報記憶装置２１２を有する。更に、ネットワークデバイス管理装置１００は、第２の認証装置２２０、第２のハッシュ演算装置２２１及び第２の認証情報記憶装置２２２を有する。
入力装置２０１が、ユーザによる操作に従って、アカウント名とパスワードとの入力を受け付けることで認証処理を開始する。尚、入力装置２０１が受け付けるのは必ずしもアカウント名とパスワードとの組でなくてもよい。
【００１８】
図３は、ユーザによるにログインを認証する際のネットワークデバイス管理装置１００の動作の一例を説明するフローチャートである。尚、ここでは説明のため、第１の認証装置２１０、第１のハッシュ演算装置２１１、及び第１の認証情報記憶装置２１２が扱うハッシュ関数（変更前のハッシュ関数）をＭＤ５としている。また、第２の認証装置２２０、第２のハッシュ演算装置２２１、第２の認証情報記憶装置２２２が扱うハッシュ関数（変更後のハッシュ関数）をＳＨＡ−１としている。しかしながら、使用するハッシュ関数は、前述のものに限定されない。また、パスワードを、一方向性の不可逆的な値に変換することができれば（その値から元のパスワードに変換することができなければ）、ハッシュ（ハッシュ値、ハッシュ関数）を用いる必要もない。
【００１９】
まず、ステップＳ１００１において、入力装置２０１は、ユーザが入力したアカウント名とパスワードとを受信（取得）する。このように本実施形態では、少なくともステップＳ１００１の処理を行うことによって、取得手段が実現される。また、本実施形態では、アカウント名によりユーザの識別情報が実現され、パスワードによりユーザの認証情報が実現される。
次に、ステップＳ１００２において、判断装置２０２は、使用するハッシュを判定する。具体的に説明すると、判断装置２０２は、ステップＳ１００１で受信したアカウント名に対応する認証情報が、第１の認証情報記憶装置２１２と第２の認証情報記憶装置２２２とのうち、どちらに記憶されているかを判定する。
【００２０】
図４は、第１の認証情報記憶装置２１２と第２の認証情報記憶装置２２２に記憶されている認証情報管理テーブルの一例を示す図である。認証情報管理テーブル５００は、アカウント名と、パスワードから求めたハッシュ値（認証情報）とを互いに関連付けて記憶している。第１の認証情報記憶装置２１２内の認証情報管理テーブル５００で管理されるハッシュ値は、ＭＤ５に基づくハッシュ値であり、第２の認証情報記憶装置２２２内の認証情報管理テーブル５００で管理されるハッシュ値は、ＳＨＡ−１に基づくハッシュ値である。尚、認証情報管理テーブル５００で管理する情報は、アカウント名と、パスワードのハッシュ値とに限定されるものではない。
以上のように本実施形態では、少なくともステップＳ１００２の処理を行うことにより、判断手段が実現される。
【００２１】
ステップＳ１００２の判定の結果、ステップＳ１００１で受信したアカウント名に該当する認証情報が第２の認証情報記憶装置２２２に記憶されている場合には、ステップＳ１１０１に遷移する。一方、ステップＳ１００１で受信したアカウント名に該当する認証情報が第１の認証情報記憶装置２１２に記憶されている場合には、後述するステップＳ１２０１に遷移する。
【００２２】
ステップＳ１１０１に遷移すると、第２のハッシュ演算装置２２１は、ステップＳ１００１で受信されたパスワードから、ＳＨＡ−１を用いてハッシュ値を算出する。このように本実施形態では、少なくともステップＳ１１０１の処理を行うことにより、第３の変換手段が実現される。
次に、ステップＳ１１０２において、第２の認証装置２２０は、ステップＳ１１０１で算出されたハッシュ値と、第２の認証情報記憶装置２２２に記憶されている認証情報であって、ステップＳ１００１で受信されたアカウント名に対応する認証情報とを比較する。そして、第２の認証装置２２０は、ステップＳ１１０１で算出されたハッシュ値と、第２の認証情報記憶装置２２２に記憶されている認証情報とが一致するか否かを判定する。このように本実施形態では、少なくともステップＳ１１０２の処理を行うことにより、第２の認証手段が実現される。
【００２３】
この判定の結果、ステップＳ１１０１で算出されたハッシュ値と、第２の認証情報記憶装置２２２に記憶されている認証情報とが一致する場合には、ユーザのログインの認証に成功としたと判定して、ステップＳ１１０３に遷移する。一方、ステップＳ１１０１で算出されたハッシュ値と、第２の認証情報記憶装置２２２に記憶されている認証情報とが一致しない場合には、ユーザのログインの認証に失敗したと判定して、ステップＳ１１０４に遷移する。
【００２４】
ステップＳ１１０３に遷移すると、判断装置２０２は、ユーザのシステムへのログインを許可する。
一方、ステップＳ１１０４に遷移すると、判断装置２０２は、ユーザのシステムへのログインを拒否する。
【００２５】
前述したように、ステップＳ１００２において、ステップＳ１００１で受信したアカウント名に該当する認証情報が第１の認証情報記憶装置２１２に記憶されていると判定された場合には、ステップＳ１２０１に遷移する。ステップＳ１２０１に遷移すると、第１のハッシュ演算装置２１１は、ステップＳ１００１で受信したパスワードから、ＭＤ５を用いてハッシュ値を算出する。このように本実施形態では、少なくともステップＳ１２０１の処理を行うことにより、第１の変換手段が実現される。また、本実施形態では、ＭＤ５により第１の一方向性関数が実現され、ＭＤ５を用いて算出されたハッシュ値により第１の変換値が実現される。
次に、ステップＳ１２０２において、第１の認証装置２１０は、ステップＳ１２０１で算出されたハッシュ値と、第１の認証情報記憶装置２１２に記憶されている認証情報であって、ステップＳ１００１で受信されたアカウント名に対応する認証情報とを比較する。そして、第１の認証装置２１０は、ステップＳ１２０１で算出されたハッシュ値と、第１の認証情報記憶装置２１２に記憶されている認証情報とが一致するか否かを判定する。このように本実施形態では、少なくともステップＳ１２０２の処理を行うことにより、認証手段が実現される。
【００２６】
この判定の結果、ステップＳ１２０１で算出されたハッシュ値と、第１の認証情報記憶装置２１２に記憶されている認証情報とが一致する場合には、ユーザのログインの認証に成功したと判定して、ステップＳ１２０３に遷移する。一方、ステップＳ１２０１で算出されたハッシュ値と、第１の認証情報記憶装置２１２に記憶されている認証情報とが一致しない場合には、ユーザのログインの認証に失敗したと判定して、後述するステップＳ１２０７に遷移する。
【００２７】
ステップＳ１２０３に遷移すると、第２のハッシュ演算装置２２１は、前記受信したパスワードから、ＳＨＡ−１を用いてハッシュ値を算出する。このように本実施形態では、少なくともステップＳ１２０３の処理を行うことにより、第２の変換手段が実現される。また、本実施形態では、ＳＨＡ−１により第２の一方向性関数が実現され、ＳＨＡ−１を用いて算出されたハッシュ値により、第２の変換値が実現される。
次に、ステップＳ１２０４において、第２の認証情報記憶装置２２２は、ステップＳ１２０３でＳＨＡ−１を用いて算出されたハッシュ値と、ステップＳ１００１で受信したアカウント名とを互いに関連付けて認証情報管理テーブル５００に記憶する。このように本実施形態では、少なくともステップＳ１２０４の処理を行うことにより、記憶手段が実現される。
【００２８】
次に、ステップＳ１２０５において、第１の認証情報記憶装置２１２は、ステップＳ１００１で受信したアカウント名と、そのアカウント名に関連付けられて記憶されている認証情報とを削除する。このように本実施形態では、少なくともステップＳ１２０５の処理を行うことにより、削除手段が実現される。
そして、前述したように、ステップＳ１２０２で、ユーザのログインの認証に成功したと判定されているので、ステップＳ１２０６において、判断装置２０２は、ユーザのシステムへのログインを許可する。
一方、前述したように、ステップＳ１２０２で、ユーザのログインの認証に失敗したと判定されている場合には、ステップＳ１２０７に遷移する。ステップＳ１２０７に遷移すると、判断装置２０２は、ユーザのシステムへのログインを拒否する。
【００２９】
以上のように本実施形態では、ユーザにより入力されたアカウント名に対応するハッシュ値として、変更前のハッシュ関数（ＭＤ５）により得られたハッシュ値が記憶されている場合、ユーザにより入力されたパスワードからＭＤ５を用いてハッシュ値を算出する。そして、算出したハッシュ値と既に記憶されているハッシュ値とが一致するか否かを判定する。この判定の結果、これらのハッシュ値が一致する場合には、記憶されているハッシュ値を削除すると共に、ユーザにより入力されたパスワードから、変更後のハッシュ関数ｒ（ＳＨＡ−１）を用いてハッシュ値を新たに算出する。そして、新たに算出したハッシュ値をそのユーザのパスワードのハッシュ値として新たに記憶する。したがって、ハッシュ関数を変更しても、パスワードを変更する必要がなくなる。よって、パスワードのハッシュ値を保存して認証を行うシステムのハッシュアルゴリズム（ハッシュ関数）の変更を、システム管理者の負担を増やすことなく、且つユーザに意識させることなく実施することが可能となる。
尚、本実施形態では、ネットワーク１５０に接続された図示しないデバイス（印刷装置等）を管理する装置を例に挙げて説明したが、必ずしもこのような装置でなくていもよい。
【００３０】
（第２の実施形態）
次に、本発明の第２の実施形態について説明する。前述した第１の実施形態では、２つのハッシュ関数（ＭＤ５、ＳＨＡ−１）のみを使用する場合を例に挙げて説明した。これに対し、本実施形態では、使用するハッシュ関数を追加する場合について説明する。このように本実施形態は、前述した第１の実施形態に対し、使用するハッシュ関数を追加する構成が付加されたものである。したがって、本実施形態の説明において、前述した第１の実施形態と同一の部分については、図１〜図４に示した符号と同一の符号を付すこと等により、詳細な説明を省略する。
【００３１】
図５は、ネットワークデバイス管理装置における機能構成（サーバモジュール構成）の一例を示す図である。ネットワークデバイス管理装置４００は、入力装置２０１、判断装置２０２、第１の認証装置２１０、第１のハッシュ演算装置２１１、及び第１の認証情報記憶装置２１２を有する。また、ネットワークデバイス管理装置４００は、第２の認証装置２２０、第２のハッシュ演算装置２２１及び第２の認証情報記憶装置２２２を有する。更に、ネットワークデバイス管理装置４００は、機能追加装置２０３を有する。機能追加装置２０３が追加の認証モジュールを受け付けることで機能追加処理を開始する。
【００３２】
図６は、追加の認証モジュールの構成の一例を示す図である。ソフトウェアモジュールとして構成される追加の認証モジュール４１３は、第２の判断装置４０２、第３の認証装置４１０、第３のハッシュ演算装置４１１及び第３の認証情報記憶装置４１２を有する。第２の判断装置４０２は、入力装置２０１で受信（取得）したアカウント名に対応する認証情報が、第１の認証情報記憶装置２１２、第２の認証情報記憶装置２２２、及び第３の認証情報記憶装置４１２のいずれに記憶されているかを判断するものである。
【００３３】
図７は、認証モジュール４１３を追加する際のネットワークデバイス管理装置４００における動作の一例を説明するフローチャートである。尚、ここでは説明のため、第３の認証装置４１０、第３のハッシュ演算装置４１１、及び第３の認証情報記憶装置４１２が扱うハッシュ関数をＳＨＡ−２５６としている。しかしながら、追加の認証モジュールが扱うハッシュ関数は前述のものに限定されない。また、パスワードを、一方向性の不可逆的な値に変換することができれば（その値から元のパスワードに変換することができなければ）、ハッシュ（ハッシュ値、ハッシュ関数）を用いる必要もない。
【００３４】
まず、ステップＳ２００１において、機能追加装置２０３は、追加の認証モジュール４１３を受信（取得）する。
次に、ステップＳ２００２において、機能追加装置２０３は、ネットワークデバイス管理装置４００内に判断装置２０２が存在するか否かを判定する。このように本実施形態では、少なくともステップＳ２００２の処理を行うことにより、判定手段が実現される。
この判定の結果、ネットワークデバイス管理装置４００内に判断装置２０２が存在する場合には、ステップＳ２００３に遷移する。一方、ネットワークデバイス管理装置４００内に判断装置２０２が存在しない場合には、ステップＳ２００４に遷移する。
【００３５】
ステップＳ２００３に遷移すると、機能追加装置２０３は、ネットワークデバイス管理装置４００内に存在する判断装置２０２を削除し、その判断装置２０２の代わりに第２の判断装置４０２をネットワークデバイス管理装置４００に追加する。そして、ステップＳ２００５に遷移する。
一方、ステップＳ２００４に遷移すると、機能追加装置２０３は、ネットワークデバイス管理装置４００に第２の判断装置４０２を追加する。そして、ステップＳ２００５に遷移する。
【００３６】
ステップＳ２００５に遷移すると、機能追加装置２０３は、ネットワークデバイス管理装置４００に、第３の認証装置４１０、第３のハッシュ演算装置４１１、及び第３の認証情報記憶装置４１２を追加する。
以上のように本実施形態では、少なくともステップＳ２００３〜Ｓ２００５の処理を行うことにより、追加手段が実現される。
【００３７】
図８は、認証モジュール４１３が追加された後のネットワークデバイス管理装置４００における機能構成（サーバモジュール構成）の一例を示す図である。
認証モジュール４１３が追加された後のネットワークデバイス管理装置４００は、入力装置２０１、機能追加装置２０３、第１の認証装置２１０、及び第１のハッシュ演算装置２１１を備える。また、ネットワークデバイス管理装置４００は、第１の認証情報記憶装置２１２、第２の認証装置２２０、第２のハッシュ演算装置２２１、及び第２の認証情報記憶装置２２２も備える。更に、ネットワークデバイス管理装置４００は、第２の判断装置４０２、第３の認証装置４１０、第３のハッシュ演算装置４１１、及び第３の認証情報記憶装置４１２も備える。
【００３８】
図８に示した例では、入力装置２０１が、ユーザによる操作に従って、アカウント名とパスワードとの入力を受け付けることで認証処理を開始する。尚、入力装置２０１が受け付けるのは必ずしもアカウント名とパスワードとの組でなくてもよい。そして、ステップＳ１００１で受信したアカウント名に対応する認証情報が、第１の認証情報記憶装置２１２と第２の認証情報記憶装置２２２と第３の認証情報記憶装置４１２とのうち、何れに記憶されているかを、第２の判断装置４０２が判定する。
【００３９】
この判定の結果、ステップＳ１００１で受信したアカウント名に対応する認証情報が、第３の認証情報記憶装置４１２以外の認証情報記憶装置（第１の認証情報記憶装置２１２、第２の認証情報記憶装置２２２）に記憶されている場合、例えば、次の処理を行う。すなわち、当該認証情報記憶装置（第１の認証情報記憶装置２１２、第２の認証情報記憶装置２２２）に記憶されているハッシュ値と、当該認証情報記憶装置に対応するハッシュ関数（ＭＤ５、ＳＨＡ−１）を用いて算出したハッシュ値とを比較する。
【００４０】
そして、これらが一致しない場合には、ユーザのログインを拒否する。一方、これらが一致する場合には、ステップＳ１００１で受信したパスワードから、ＳＨＡ−２５６を用いてハッシュ値を算出する。そして、算出したハッシュ値と、ステップＳ１００１で受信したアカウント名とを互いに関連付けて認証情報管理テーブル５００（第３の認証情報記憶装置４１２）に記憶する。また、ステップＳ１００１で受信したアカウント名と、そのアカウント名に関連付けられて記憶されている認証情報であって、認証情報記憶装置（第１の認証情報記憶装置２１２、第２の認証情報記憶装置２２２）に既に記憶されている認証情報とを削除する。
以上のようにした場合、ＳＨＡ−２５６により、新たな一方向性関数が実現され、ＳＨＡ−２５６を用いて算出したハッシュ値により、新たな一方向性関数に基づいて得られた新たな変換値が実現される。また、ＭＤ５を用いて算出したハッシュ値、又はＳＨＡ−１を用いて算出したハッシュ値により、第１の変換値が実現され、ＳＨＡ−２５６を用いて算出したハッシュ値により、第２の変換値が実現される。
【００４１】
以上のように本実施形態では、認証モジュール４１３を機能追加装置２０３によりネットワークデバイス管理装置４００に追加するようにした。したがって、前述した第１の実施形態で説明した効果に加え、変更するハッシュアルゴリズムを自由に設定することができるという効果を奏する。
尚、本実施形態では、認証モジュール４１３を追加する前に、ハッシュ関数による認証を行うモジュール（認証装置、ハッシュ演算装置、及び認証情報記憶装置）が既に２つ存在する場合を例に挙げて示した。しかしながら、認証モジュール４１３を追加する前に存在しているモジュールの数は、１つであっても、０（ゼロ）であっても、３つ以上であってもよく、２つに限定されない。
【００４２】
（第３の実施形態）
次に、本発明の第３の実施形態を説明する。前述した第１及び第２の実施形態では、ユーザによる入力があってから、パスワードのハッシュ値を更新するようにする場合を例に挙げて説明した。これに対し、本実施形態では、パスワードのハッシュ値を自動的に更新する場合を説明する。このように本実施形態と、前述した第１及び第２の実施形態とでは、パスワードのハッシュ値を更新する際の動作の一部が主として異なる。したがって、本実施形態の説明において、前述した第１の実施形態と同一の部分については、図１〜図８に示した符号と同一の符号を付すこと等により、詳細な説明を省略する。尚、ここでは説明のため、ネットワークデバイス管理装置が、図２に示した構成を有している場合を例に挙げて説明するが、ネットワークデバイス管理装置は、図２に示した構成を有していなくてもよく、例えば図８に示した構成を有していてもよい。
【００４３】
まず、判断装置２０２は、第１の認証情報記憶装置２１２の認証情報管理テーブル５００において、所定時間変更がないハッシュ値を検索する。そして、第１の認証情報記憶装置２１２は、所定時間変更がないハッシュ値と、そのハッシュ値に対応するアカウント名とを認証情報管理テーブル５００から削除する。そして、第２のハッシュ演算装置２２１は、ランダムで文字列を生成し、生成した文字列から、ＳＨＡ−１を用いてハッシュ値を算出する。そして、第２の認証情報記憶装置２２２は、そのハッシュ値と、第１の認証情報記憶装置２１２の認証情報管理テーブル５００から削除したアカウント名とを互いに関連付けて認証情報管理テーブル５００に記憶する。そして、例えば、ユーザにより所定の操作がなされたことを入力装置２０１が受け付けると、前述した文字列をパスワードとして表示する等してユーザに報知する。
【００４４】
以上のように本実施形態では、パスワードのハッシュ値を自動的に更新するようにした。したがって、前述した第１及び第２の実施形態で説明した効果に加え、ハッシュアルゴリズムに対する攻撃を受ける可能性をより低減することができるという効果を奏する。
尚、本実施形態のように、パスワードのハッシュ値を自動的に更新することと、前述した第１及び第２の実施形態のように、ユーザによる入力に基づいてパスワードのハッシュ値を更新することとを組み合わせてもよい。また、本実施形態のように、パスワードのハッシュ値を自動的に更新することを単独で行ってもよい。
また、所定時間変更がないハッシュ値と、そのハッシュ値に対応するアカウント名とを認証情報管理テーブル５００から削除した後、パスワードのハッシュ値を更新しないようにしてもよい（ランダムな文字列に基づく新たなハッシュ値を生成しなくてもよい）。このようにするだけでも、ハッシュアルゴリズムに対する攻撃を受ける可能性を低減することができる。
【００４５】
（本発明の他の実施形態）
前述した本発明の実施形態における情報処理装置を構成する各手段、並びに認証方法の各ステップは、コンピュータのＲＡＭやＲＯＭなどに記憶されたプログラムが動作することによって実現できる。このプログラム及び前記プログラムを記録したコンピュータ読み取り可能な記録媒体は本発明に含まれる。
【００４６】
また、本発明は、例えば、システム、装置、方法、プログラム若しくは記憶媒体等としての実施形態も可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、一つの機器からなる装置に適用してもよい。
【００４７】
尚、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラム（実施形態では図３、図７に示すフローチャートに対応したプログラム）を、システムあるいは装置に直接、あるいは遠隔から供給する。そして、そのシステムあるいは装置のコンピュータが前記供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。
【００４８】
したがって、本発明の機能処理をコンピュータで実現するために、前記コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【００４９】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等の形態であってもよい。
【００５０】
プログラムを供給するための記録媒体としては、例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷなどがある。また、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）などもある。
【００５１】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、前記ホームページから本発明のコンピュータプログラムそのもの、若しくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。
【００５２】
また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明に含まれるものである。
【００５３】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、ダウンロードした鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【００５４】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。その他、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【００５５】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現される。
【００５６】
尚、前述した各実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【００５７】
１００、４００  ネットワークデバイス管理装置
２０１  入力装置
２０２  判断装置
２０３  機能追加装置
２１０  第１の認証装置
２１１  第１のハッシュ演算装置
２１２  第１の認証情報記憶装置
２２０  第２の認証装置
２２１  第２のハッシュ演算装置
２２２  第２の認証情報記憶装置
４０２  第２の判断装置
４１０  第３の認証装置
４１１  第３のハッシュ演算装置
４１２  第３の認証情報記憶装置
４１３  追加の認証モジュール
５００  認証情報管理テーブル
【図１】
0005460832.tif 000002
【図２】
0005460832.tif 000003
【図３】
0005460832.tif 000004
【図４】
0005460832.tif 000005
【図５】
0005460832.tif 000006
【図６】
0005460832.tif 000007
【図７】
0005460832.tif 000008
【図８】
0005460832.tif 000009