(57)【特許請求の範囲】
【請求項１】
入力された文字列を一意性のある暗号化文字列に変換する暗号化演算式を一部に含み、同じ文字列については同じ変換結果を与えるとともに、変換後の文字列に対して元の文字列の候補が複数存在するように文字列を変換する所定の演算式を用いて、入力された文字列を当該文字列とは異なる文字列に変換する文字列変換部と、
ユーザ毎に、当該ユーザの過去のパスワード文字列ＰＰを、前記所定の演算式を用いて当該過去のパスワード文字列ＰＰとは異なる変換後パスワード文字列ＣＰＰに変換した状態で記憶するパスワード情報記憶部と、
パスワードの強度を判断する強度判断部と、
を含み、
前記文字列変換部は、ユーザから、パスワードの変更指示とともに、新たなパスワード文字列ＮＰの入力を受け付けると、前記所定の演算式又は前記暗号化演算式を用いて前記新たなパスワード文字列ＮＰを当該パスワード文字列ＮＰとは異なる変換後入力文字列ＣＮＰに変換し、
前記強度判断部は、前記変換後入力文字列ＣＮＰと前記パスワード情報記憶部に記憶された当該ユーザの前記変換後パスワード文字列ＣＰＰとに基づき、前記新たなパスワード文字列ＮＰの強度を判断するパスワード管理システム。
【請求項２】
請求項１に記載のパスワード管理システムにおいて、
前記パスワード情報記憶部に記憶された前記変換後パスワード文字列ＣＰＰは、前記過去のパスワード文字列ＰＰを、入力された文字列を一意性のある暗号化文字列に変換する第１の暗号化演算式を用いて変換して得られた暗号化文字列の一部を第１の規則に従って抽出して得られたものであって、
前記変換後入力文字列ＣＮＰは、前記新たなパスワード文字列ＮＰを前記第１の暗号化演算式を用いて変換して得られた暗号化文字列の一部を前記第１の規則に従って抽出して得られた文字列、又は前記新たなパスワード文字列ＮＰを前記第１の暗号化演算式を用いて変換して得られた暗号化文字列であるパスワード管理システム。
【請求項３】
請求項２に記載のパスワード管理システムにおいて、
前記変換後入力文字列ＣＮＰは、前記新たなパスワード文字列ＮＰを前記第１の暗号化演算式を用いて変換して得られた暗号化文字列であって、
前記強度判断部は、前記変換後入力文字列ＣＮＰに前記パスワード情報記憶部に記憶された当該ユーザの前記変換後パスワード文字列ＣＰＰが含まれる場合に、前記新たなパスワード文字列ＮＰの強度が低いと判断するパスワード管理システム。
【請求項４】
請求項２に記載のパスワード管理システムにおいて、
前記変換後入力文字列ＣＮＰは、前記新たなパスワード文字列ＮＰを前記第１の暗号化演算式を用いて変換して得られた暗号化文字列の一部を前記第１の規則に従って抽出して得られた文字列であって、
前記強度判断部は、前記変換後入力文字列ＣＮＰと前記パスワード情報記憶部に記憶された当該ユーザの前記変換後パスワード文字列ＣＰＰとが一致する場合に、前記新たなパスワード文字列ＮＰの強度が低いと判断するパスワード管理システム。
【請求項５】
請求項１に記載のパスワード管理システムにおいて、
前記パスワード情報記憶部に記憶された前記変換後パスワード文字列ＣＰＰは、入力された文字列を第２の規則に従って複数の文字列に分割し、各前記複数の文字列を、入力された文字列を一意性のある暗号化文字列に変換する第２の暗号化演算式を用いてそれぞれ一意性のある暗号化文字列に変換し、変換した各暗号化文字列の一部を第３の規則に従って組み合わせて得られたものであって、
前記変換後入力文字列ＣＮＰは、前記新たなパスワード文字列ＮＰを、前記第２の規則に従って複数の文字列に分割し、各前記複数の文字列を、前記第２の暗号化演算式を用いてそれぞれ一意性のある暗号化文字列に変換し、変換した各暗号化文字列の一部を前記第３の規則に従って組み合わせて取得された文字列であるパスワード管理システム。
【請求項６】
請求項１に記載のパスワード管理システムにおいて、
前記パスワード情報記憶部に記憶された前記変換後パスワード文字列ＣＰＰは、入力された文字列の一部を第４の規則に従って抽出して得られた文字列を、入力された文字列を一意性のある暗号化文字列に変換する第３の暗号化演算式を用いて一意性のある暗号化文字列に変換して得られたものであって、
前記変換後入力文字列ＣＮＰは、前記新たなパスワード文字列ＮＰの一部を前記第４の規則に従って抽出し、抽出した文字列を前記第３の暗号化演算式を用いて取得された暗号化文字列であるパスワード管理システム。
【請求項７】
請求項１から６いずれかに記載のパスワード管理システムにおいて、
前記パスワード情報記憶部は、前記ユーザの現在のパスワード文字列ＣＰを、入力された文字列を一意性のある暗号化文字列に変換する第４の暗号化演算式を用いて当該パスワード文字列ＣＰとは異なる暗号化パスワード文字列ＥＣＰに変換した状態で、前記変換後パスワード文字列ＣＰＰとともに記憶するパスワード管理システム。
【請求項８】
請求項２に記載のパスワード管理システムにおいて、
前記パスワード情報記憶部は、前記ユーザの現在のパスワード文字列ＣＰを、入力された文字列を一意性のある暗号化文字列に変換する第４の暗号化演算式を用いて当該パスワード文字列ＣＰとは異なる暗号化パスワード文字列ＥＣＰに変換した状態で、前記変換後パスワード文字列ＣＰＰとともに記憶し、
前記第４の暗号化演算式は、前記第１の暗号化演算式と等しいパスワード管理システム。
【請求項９】
請求項１から８いずれかに記載のパスワード管理システムにおいて、
前記パスワード情報記憶部は、ユーザ毎に、第１の過去のパスワード文字列ＰＰ１及び当該第１の過去のパスワード文字列ＰＰ１よりも古い世代の第２の過去のパスワード文字列ＰＰ２を、それぞれ、入力された文字列を一意性のある暗号化文字列に変換する暗号化演算式を一部に含み、同じ文字列については同じ変換結果を与えるとともに、変換後の文字列に対して元の文字列の候補が複数存在するように文字列を変換する所定の第１の演算式及び所定の第２の演算式を用いて変換した第１の変換後パスワード文字列ＣＰＰ１及び第２の変換後パスワード文字列ＣＰＰ２を記憶するとともに、当該変換後パスワード文字列ＣＰＰ１及び前記第２の変換後パスワード文字列ＣＰＰ２を前記所定の第１の演算式及び前記所定の第２の演算式を示す情報に対応づけて記憶し、
前記文字列変換部は、ユーザから、パスワードの変更指示とともに、前記新たなパスワード文字列ＮＰの入力を受け付けると、前記所定の第１の演算式又は当該第１の演算式に含まれる前記暗号化演算式を用いて前記新たなパスワード文字列ＮＰを当該パスワード文字列ＮＰとは異なる第１の変換後入力文字列ＣＮＰ１に変換するとともに前記所定の第２の演算式又は当該第２の演算式に含まれる前記暗号化演算式を用いて前記新たなパスワード文字列ＮＰを当該パスワード文字列ＮＰとは異なる第２の変換後入力文字列ＣＮＰ２に変換し、
前記強度判断部は、前記第１の変換後入力文字列ＣＮＰ１と前記第１の変換後パスワード文字列ＣＰＰ１と、及び第２の変換後入力文字列ＣＮＰ２と前記第２の変換後パスワード文字列ＣＰＰ２とに基づき、前記新たなパスワード文字列ＮＰの強度を判断するパスワード管理システム。
【請求項１０】
請求項９に記載のパスワード管理システムにおいて、
前記所定の第２の演算式は、前記所定の第１の演算式よりもセキュリティが低く、
前記強度判断部は、前記第１の変換後入力文字列ＣＮＰ１と前記第１の変換後パスワード文字列ＣＰＰ１とに基づく判断結果を前記第２の変換後入力文字列ＣＮＰ２と前記第２の変換後パスワード文字列ＣＰＰ２とに基づく判断結果よりも高い重み付けをして前記新たなパスワード文字列ＮＰの強度を判断するパスワード管理システム。
【請求項１１】
コンピュータを、
入力された文字列を一意性のある暗号化文字列に変換する暗号化演算式を一部に含み、同じ文字列については同じ変換結果を与えるとともに、変換後の文字列に対して元の文字列の候補が複数存在するように文字列を変換する所定の演算式を用いて、入力された文字列を当該文字列とは異なる文字列に変換する文字列変換手段、
ユーザ毎に、当該ユーザの過去のパスワード文字列ＰＰを、前記所定の演算式を用いて当該過去のパスワード文字列ＰＰとは異なる変換後パスワード文字列ＣＰＰに変換した状態で記憶するパスワード情報記憶手段、
パスワードの強度を判断する強度判断手段、
をして機能させ、
前記文字列変換手段は、ユーザから、パスワードの変更指示とともに、新たなパスワード文字列ＮＰの入力を受け付けると、前記所定の演算式又は前記暗号化演算式を用いて前記新たなパスワード文字列ＮＰを当該パスワード文字列ＮＰとは異なる変換後入力文字列ＣＮＰに変換し、
前記強度判断手段は、前記変換後入力文字列ＣＮＰと前記パスワード情報記憶手段に記憶された当該ユーザの前記変換後パスワード文字列ＣＰＰとに基づき、前記新たなパスワード文字列ＮＰの強度を判断するパスワード管理システム用プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パスワード管理システム及びパスワード管理システム用プログラムに関する。
【背景技術】
【０００２】
従来、ユーザにパスワードを入力させてログインを許可するシステムで、パスワードの強度を保つために当該ユーザが過去に設定したパスワードも保存しておき、ユーザにパスワードを再設定させる際に同じパスワードが新たなパスワードとして入力された場合に警告したり拒絶したりする仕組みがある（例えば特許文献１）。
【０００３】
ここで、システム側でパスワードを安全に保存するために、パスワード文字列そのものを平文で保存するのではなく、パスワード文字列に例えばハッシュ関数等の一方向性関数を用いた演算を行い、当該パスワードを一意に特定する暗号化文字列として保存することが行われる。また、このとき、例えばソルト（salt）と呼ばれる乱数値または固定値等をパスワード文字列に付加してから一方向性関数を用いた演算を行う手法も採用されている。この手法を用いた場合、一方向性関数を用いた演算結果が充分にランダム性を有しており、現実的に入力に対して演算結果の衝突が起きないことが確からしい状態であれば、同じ演算を行うことによりユーザのパスワードの検証が可能であり、かつ演算結果から元のパスワード文字列を復元することはほぼ不可能となる。そのため、万一保存していたパスワードの暗号化文字列が漏洩したとしても、元のパスワード文字列を復元することはほぼ不可能である。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００４−２８０１８９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、上記のように、パスワードを暗号化文字列として保存し、パスワードを暗号化文字列に変換した際には暗号化文字列から元のパスワード文字列を復元することはほぼ不可能であったとしても、コンピュータの計算速度の向上等により、暗号化文字列から元のパスワード文字列を復元（推測）することが可能となるケースも考えられる。
【０００６】
例えば、近年、予め任意の文字列に一方向性関数を用いた演算を行った演算結果の一覧であるレインボーテーブルを用いて元のパスワード文字列を推測するというレインボー攻撃が行われている。このような攻撃が行われた場合、保存していたパスワードの暗号化文字列が漏洩した場合には、元のパスワード文字列が推測されるおそれがある。
【０００７】
あるシステムから、有効なパスワードの暗号化文字列が漏洩した場合には、漏洩が生じたシステムでそのパスワードを無効とする等の対処を取ることにより、暗号化文字列から元のパスワード文字列が推測されたとしても、当該システムへの不正なアクセスは防ぐことができる。また、上述した特許文献１に記載された技術のように、ユーザが過去に設定していたパスワードも保存されており、それらのパスワードも漏洩した場合でも、そのシステムではユーザが過去に設定していたパスワードは有効ではないため、不正なアクセスを防ぐことができる。
【０００８】
しかし、現在、ユーザは様々なシステムやサイトに対してそれぞれパスワードを設定しており、複数のシステムやサイトにわたって同じ、又は類似のパスワードを設定することが多い。例えば、あるシステムで過去に設定していたパスワードが他のシステムでは現在も有効なパスワードとして利用されていることがある。このような場合に、あるシステムで過去に設定していたパスワードの暗号化文字列が漏洩し、元のパスワード文字列が推測されると、そのパスワード文字列を用いて他のシステムへの不正アクセスが行われるおそれがある。
【課題を解決するための手段】
【０００９】
本発明は上記事情に鑑みてなされたものであり、その目的とするところは、パスワードの強度を高めるために過去に設定されたパスワードに関する情報を保存しつつも、そのパスワードが漏洩した場合でも他のシステムへの不正アクセスを防ぐことができる技術を提供することにある。
【００１０】
本発明によれば、
入力された文字列を一意性のある暗号化文字列に変換する暗号化演算式を一部に含み、同じ文字列については同じ変換結果を与えるとともに、変換後の文字列に対して元の文字列の候補が複数存在するように文字列を変換する所定の演算式を用いて、入力された文字列を当該文字列とは異なる文字列に変換する文字列変換部と、
ユーザ毎に、当該ユーザの過去のパスワード文字列ＰＰを、前記所定の演算式を用いて当該過去のパスワード文字列ＰＰとは異なる変換後パスワード文字列ＣＰＰに変換した状態で記憶するパスワード情報記憶部と、
パスワードの強度を判断する強度判断部と、
を含み、
前記文字列変換部は、ユーザから、パスワードの変更指示とともに、新たなパスワード文字列ＮＰの入力を受け付けると、前記所定の演算式又は前記暗号化演算式を用いて前記新たなパスワード文字列ＮＰを当該パスワード文字列ＮＰとは異なる変換後入力文字列ＣＮＰに変換し、
前記強度判断部は、前記変換後入力文字列ＣＮＰと前記パスワード情報記憶部に記憶された当該ユーザの前記変換後パスワード文字列ＣＰＰとに基づき、前記新たなパスワード文字列ＮＰの強度を判断するパスワード管理システムが提供される。
【００１１】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【００１２】
本発明によれば、パスワードの強度を高めるために過去に設定されたパスワードに関する情報を保存しつつも、そのパスワードが漏洩した場合でも他のシステムへの不正アクセスを防ぐことができる技術を提供することができる。
【図面の簡単な説明】
【００１３】
【図１】本実施形態におけるネットワーク構成の一例を示すブロック図である。
【図２】本実施形態におけるユーザ端末装置のハードウェア構成の一例を示すブロック図である。
【図３】本実施形態におけるパスワード管理システムのハードウェア構成の一例を示すブロック図である。
【図４】本実施形態における端末装置およびパスワード管理システムの機能構成の一例を示すブロック図である。
【図５】本実施形態におけるパスワード情報記憶部の内部構成の一例を示す図である。
【図６】本実施形態における演算式記憶部の内部構成の一例を示す図である。
【図７】本実施形態の具体例における演算式記憶部の内部構成の一例を示す図である。
【図８】本実施形態の具体例におけるパスワード情報記憶部の内部構成の一例を示す図である。
【図９】本実施形態の具体例におけるパスワード管理システムの処理手順の一例を示すフローチャートである。
【図１０】本実施形態の具体例におけるパスワード情報記憶部の内部構成の他の例を示す図である。
【発明を実施するための形態】
【００１４】
以下、本発明の実施の形態について、図面を用いて説明する。尚、すべての図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。
【００１５】
図１は、本実施形態におけるネットワーク構成の一例を示すブロック図である。
【００１６】
ネットワーク構成は、ユーザが操作するユーザ端末装置１、移動無線基地局やＷｉ−Ｆｉステーション等のアクセスポイント２、ユーザの認証処理やパスワードの変更処理を管理（制御）するパスワード管理システム４を含む。パスワード管理システム４は、ネットワーク３を介して複数のユーザ端末装置１と接続される。ユーザ端末装置１は、例えば、携帯電話機、スマートフォン、ゲーム用コンソール、パーソナルコンピュータ、タッチパッド、電子書籍リーダー等の情報処理装置である。
【００１７】
図２は、本実施形態におけるユーザ端末装置１のハードウェア構成の一例を示すブロック図である。
【００１８】
ユーザ端末装置１は、電源システム１０１、メインシステム１０２、記憶部１０６、外部ポート１０７、高周波回路１０８、アンテナ１０９、オーディオ回路１１０、スピーカ１１１、マイク１１２、近接センサ１１３、Ｉ／Ｏサブシステム１１４、タッチ反応型ディスプレイシステム１１８、光学センサ１１９及び入力部１２０を含む。メインシステム１０２は、プロセッサ１０３、メモリコントローラ１０４及び周辺インタフェース１０５を含む。Ｉ／Ｏサブシステム１１４は、ディスプレイコントローラ１１５、光学センサコントローラ１１６及び入力コントローラ１１７を含む。
【００１９】
図３は、本実施形態におけるパスワード管理システム４のハードウェア構成の一例を示すブロック図である。
【００２０】
パスワード管理システム４は、システムバス４０１に接続されたＣＰＵ（Central Ｐrocessing Unit）４０２、ＲＯＭ（Read Only Memory）４０３、ＲＡＭ（Random Access Memory）４０４、ＮＶＲＡＭ（Non-Volatile Random Access Memory）４０５、Ｉ／Ｆ（Interface）４０６と、Ｉ／Ｆ４０６に接続された、キーボード、マウス、モニタ、ＣＤ／ＤＶＤ（Compact Disk/Digital Versatile Disk）ドライブ等のＩ／Ｏ（Input/Output Device）４０７、ＨＤＤ（Hard Disk Drive）４０８、ＮＩＣ（Network Interface Card）４０９等を含む。
【００２１】
図４は、ユーザ端末装置１およびパスワード管理システム４の機能構成を示すブロック図である。
【００２２】
ユーザ端末装置１は、サーバアクセス部１２、操作入力受付部１６及び画面表示処理部１８を含む。操作入力受付部１６は、ユーザ端末装置１を操作するユーザからの操作入力を受け付ける。サーバアクセス部１２は、パスワード管理システム４へアクセスし、パスワード管理システム４に対してリクエストを送信し、処理結果等をレスポンスとして受信する。画面表示処理部１８は、画面表示を行う。
【００２３】
パスワード管理システム４は、パスワード管理制御部４２、文字列変換部４４、強度判断部５２、パスワード情報記憶部６２、演算式記憶部６４及び強度判断条件記憶部６６を含む。
【００２４】
パスワード管理制御部４２は、パスワード管理システム４全体の制御を行う。
【００２５】
パスワード情報記憶部６２は、複数のユーザについて、各ユーザの現在のパスワード及び過去のパスワードを複数世代分（１世代前〜ｎ世代前）まで記憶する。セキュリティ確保のため、パスワード情報記憶部６２は、ユーザの現在のパスワード文字列及び過去のパスワード文字列を、平文のままではなく、平文の文字列とは異なる暗号化文字列として記憶する。
【００２６】
パスワード管理制御部４２は、例えば、ユーザからパスワード管理システム４へのログイン指示とともに、ユーザＩＤ及びパスワードの入力を受け付けると、パスワード情報記憶部６２に記憶されたユーザのユーザＩＤ及び現在のパスワードに基づき、ユーザの認証処理を行う。また、パスワード管理制御部４２は、ユーザから、現在のパスワードの変更指示とともに、新たなパスワード文字列の入力を受け付けると、文字列変換部４４及び強度判断部５２を制御して後述のパスワードの強度判断処理を行わせる。
【００２７】
文字列変換部４４は、ユーザから入力される平文のパスワード文字列を所定の暗号化演算式や所定の演算式に従って変換する。演算式記憶部６４は、文字列変換部４４が入力された文字列を変換する際に参照する所定の暗号化演算式や所定の演算式を記憶する。
【００２８】
強度判断部５２は、ユーザから、現在のパスワードの変更指示とともに、新たなパスワード文字列の入力を受け付けると、パスワード情報記憶部６２に記憶されたユーザの現在のパスワード及び当該ユーザの過去のパスワードに基づき、入力された新たなパスワード文字列の強度を判断する。強度判断条件記憶部６６は、強度判断部５２が入力されたパスワード文字列の強度を判断する際に参照する強度判断条件を記憶する。
【００２９】
本実施形態において、強度判断条件記憶部６６は、例えば、新たなパスワード文字列が当該ユーザの現在のパスワード文字列と同じである場合は、新たなパスワード文字列の強度が非常に低いとして、パスワード変更を受け付けないという条件を記憶する。また、強度判断条件記憶部６６は、例えば、新たなパスワード文字列が当該ユーザの過去のパスワード文字列のいずれかと同じである場合は、新たなパスワード文字列の強度が低いとして、ユーザに警告するという条件を記憶する。
【００３０】
図５は、本実施形態におけるパスワード情報記憶部６２の内部構成の一例を示す図である。
【００３１】
パスワード情報記憶部６２は、「ユーザＩＤ」、「現在のパスワード」、「過去のパスワード」等の項目を含む。「ユーザＩＤ」は、ユーザを一意に特定する情報である。「現在のパスワード」は、当該ユーザの現在のパスワード文字列ＣＰを一意に特定する暗号化パスワード文字列ＥＣＰである。「過去のパスワード」は、当該ユーザの過去のパスワード文字列ＰＰ１〜ＰＰｎに対応する変換後パスワード文字列ＣＰＰ１〜ＣＰＰｎである。
【００３２】
上述したように、現在のパスワードは、ユーザがパスワード管理システム４にログインする際の認証処理に用いられる。ユーザの認証処理は厳密に行う必要があるため、パスワード情報記憶部６２に記憶される「現在のパスワード」は、入力される平文の現在のパスワード文字列ＣＰを一意に特定するものである必要がある。従って、パスワード情報記憶部６２は、現在のパスワードを、入力された文字列を一意性のある暗号化文字列に変換する所定の暗号化演算式Ｅ１（第４の暗号化演算式）を用いて元のパスワード文字列ＣＰとは異なる暗号化パスワード文字列ＥＣＰに変換した状態で記憶する。暗号化演算式Ｅ１は、例えば、一方向性ハッシュ関数（ＭＤ関数）等の一方向で一意に決まる暗号化演算式とすることができる。
【００３３】
一方、過去のパスワードは、ユーザが現在のパスワードを新たなパスワードに変更する際に、新たなパスワードが当該ユーザが過去に利用していたパスワードと一致する場合には再登録を禁止したり、強度が低いことをユーザに提示して注意を促したりする等のために用いられる。従って、パスワード情報記憶部６２に記憶される過去のパスワードは、ユーザの認証処理に用いられる現在のパスワードとは異なり、ある程度の確度でパスワードの一致を検出することができれば、入力される平文の新たなパスワード文字列ＮＰを一意に特定するものである必要はない。
【００３４】
一方、過去のパスワードを現在のパスワードと同様に各パスワードを一意に特定する暗号化文字列として記憶しておくと、上述したように、暗号化文字列が漏洩した場合に元のパスワード文字列が推測されるおそれがある。そこで、本実施形態において、パスワード情報記憶部６２は、ユーザの過去のパスワード文字列ＰＰ１〜ＰＰｎについては、当該パスワード文字列ＰＰ１〜ＰＰｎを一意に特定する暗号化文字列として記憶しない構成とする。
【００３５】
本実施形態において、パスワード情報記憶部６２は、ユーザの過去のパスワード文字列ＰＰ１〜ＰＰｎを、それぞれ、同じ文字列については同じ変換結果を与えるとともに、変換後の文字列に対して元の文字列の候補が複数（ｘ個）存在するように文字列を変換する所定の演算式ｅを用いて元のパスワード文字列ＰＰ１〜ＰＰｎとは異なる変換後パスワード文字列ＣＰＰ１〜ＣＰＰｎに変換した状態で記憶する。演算式ｅについては後述の具体例で説明する。
【００３６】
図６は、本実施形態における演算式記憶部６４の内部構成の一例を示す図である。
【００３７】
演算式記憶部６４は、「対象」、「演算式」等の項目を含む。「対象」は、演算式を施した対象のデータを示す。「演算式」は、当該対象に施した演算式を示す。「現在のパスワード」には「暗号化演算式Ｅ１」が施され、「過去のパスワード」には「演算式ｅ」が施されたことが示されている。
【００３８】
図４に戻り、パスワード管理制御部４２、文字列変換部４４及び強度判断部５２の具体的な処理手順を説明する。
【００３９】
まず、ユーザの認証処理について説明する。
【００４０】
ユーザからパスワード管理システム４へのログイン指示とともに、ユーザＩＤと現在のパスワード文字列ＣＰ'の入力を受け付けると、パスワード管理制御部４２は、文字列変換部４４によりパスワード文字列ＣＰ'を上記暗号化演算式Ｅ１を用いて暗号化パスワード文字列ＥＣＰ'に変換させ、暗号化パスワード文字列ＥＣＰ'がパスワード情報記憶部６２において当該ユーザＩＤに対応づけられた暗号化パスワード文字列ＥＣＰと一致するか否かを判断する。
【００４１】
暗号化パスワード文字列ＥＣＰ'が暗号化パスワード文字列ＥＣＰと完全一致する場合、パスワード管理制御部４２は、認証成功として当該ユーザのパスワード管理システム４へのログインを許可する。一方、暗号化パスワード文字列ＥＣＰ'が暗号化パスワード文字列ＥＣＰと完全一致しない場合、パスワード管理制御部４２は、認証失敗として当該ユーザのパスワード管理システム４へのログインを許可しない。パスワード管理制御部４２は、認証失敗が所定回数（例えば５回）を越えると、エラー処理としてそれ以上の認証処理を行えないようにする。
【００４２】
次に、パスワードの変更処理について説明する。
【００４３】
パスワード管理システム４にログインしているユーザから、パスワードの変更指示とともに、新たなパスワード文字列ＮＰの入力を受け付けると、パスワード管理制御部４２の制御のもと、強度判断部５２は、新たなパスワード文字列ＮＰが現在のパスワード文字列ＣＰと同じでないかを確認する。
【００４４】
具体的には、パスワード管理制御部４２の制御のもと、文字列変換部４４は、新たなパスワード文字列ＮＰを上記暗号化演算式Ｅ１を用いて暗号化パスワード文字列ＥＮＰに変換する。
【００４５】
次いで、強度判断部５２は、暗号化パスワード文字列ＥＮＰがパスワード情報記憶部６２において当該ユーザＩＤに対応づけられた暗号化パスワード文字列ＥＣＰと一致するか否かを判断する。暗号化パスワード文字列ＥＮＰが暗号化パスワード文字列ＥＣＰと完全一致する場合、強度判断部５２は、強度判断条件記憶部６６の強度判断条件に従って、例えば、新たなパスワード文字列ＮＰの強度が非常に低いとして、パスワード変更を受け付けない。
【００４６】
一方、暗号化パスワード文字列ＥＮＰが暗号化パスワード文字列ＥＣＰと完全一致しない場合、パスワード管理制御部４２の制御のもと、強度判断部５２は、新たなパスワード文字列ＮＰが過去のパスワード文字列ＰＰのいずれかと同じでないかを確認する。
【００４７】
具体的には、文字列変換部４４は、新たなパスワード文字列ＮＰを上記演算式ｅを用いて変換後入力文字列ＣＮＰに変換する。次いで、強度判断部５２は、変換後入力文字列ＣＮＰと、パスワード情報記憶部６２において当該ユーザＩＤに対応づけられた変換後パスワード文字列ＣＰＰ１〜ＣＰＰｎとに基づき、新たなパスワード文字列ＮＰの強度を判断する。
【００４８】
例えば、少なくとも変換後入力文字列ＣＮＰにパスワード情報記憶部６２に記憶された変換後パスワード文字列ＣＰＰ１〜ＣＰＰｎのいずれかが含まれる場合に、強度判断部５２は、強度判断条件記憶部６６の強度判断条件に従って、例えば、入力されたパスワード文字列ＮＰの強度が低いとして、ユーザに警告する。また、例えば、変換後入力文字列ＣＮＰの所定箇所の一部とパスワード情報記憶部６２に記憶された変換後パスワード文字列ＣＰＰ１〜ＣＰＰｎの所定箇所の一部が一致する場合に、強度判断部５２は、強度判断条件記憶部６６の強度判断条件に従って、例えば、入力されたパスワード文字列ＮＰの強度が低いとして、ユーザに警告する。
【００４９】
一の変換後パスワード文字列に対する元の文字列の候補の数「ｘ」は、対象のパスワード管理システム４における要求やコンピュータの計算速度の向上等の時代背景等により異なるが、例えば、１００以上１００００以下程度とすることができる。具体的には、以下を考慮して決定することができる。
【００５０】
まず、「ｘ」の下限について説明する。ユーザが入力したパスワードに基づきユーザのログインを許可する一般的なユーザ認証システムでは、上述したように、所定のユーザＩＤとパスワードとの組み合わせに対して、所定回数入力ミスがあると、その組み合わせに対してそれ以上の入力が不能となる設定とされる。そこで、「ｘ」の下限は、世の中で出回っている一般的なユーザ認証システムにおいて、入力ミスが許容される回数「ｙ」よりも充分大きくなるように設定することができる。システムによって異なるが、例えば、入力ミスが許容される回数「ｙ」は、５回等、一桁程度の数とされることが多い。そのため、一の変換後パスワード文字列に対する元の文字列の候補の数「ｘ」が、例えば、１００以上程度となるようにすれば、たとえ変換後パスワード文字列が漏洩し、対応するパスワード文字列が推測されたとしても、パスワード文字列の候補が１００以上程度挙げられることになり、第三者の不正なアクセスを防ぐことができる。
【００５１】
次に、「ｘ」の上限について説明する。一の変換後パスワード文字列に対する元の文字列の候補の数「ｘ」が多すぎると、ユーザがパスワードを変更する際に新たに設定しようとするパスワードが、過去のパスワードとは全く異なるものであるにも関わらず、新たなパスワードに対応する変換後パスワード文字列が過去のパスワードの変換後パスワード文字列と偶然一致する「衝突」が生じる可能性が高くなる。このような「衝突」が生じると、過去のパスワードと全く異なる新たなパスワードであっても、システムにより強度が低いと判断されて、システムの仕様によってはその新たなパスワードが設定できないことがある。特に、登録ユーザの数が多く、多くのユーザのパスワード情報を記憶するシステムにおいては、偶然一致により「衝突」が生じる可能性が高くなる。従って、「ｘ」の上限は、「衝突」発生の頻度が現実のシステムの運用上で問題とならない程度となるように設定する必要がある。
【００５２】
以上のように、本実施形態におけるパスワード管理システム４によれば、パスワードの強度を高めるためにユーザの過去のパスワード文字列の変換後パスワード文字列ＣＰＰ１〜ＣＰＰｎを保存しつつも、各変換後パスワード文字列ＣＰＰ１〜ＣＰＰｎに対して元の文字列の候補が複数存在する構成となっている。従って、万一変換後パスワード文字列ＣＰＰ１〜ＣＰＰｎが漏洩して元の文字列が推測されたとしても、元のパスワード文字列の候補が複数存在することになり、本来のパスワード文字列を一意に特定することが困難となる。上述したように、一般的なユーザ認証システムにおいては、所定のユーザＩＤとパスワードとの組み合わせに対して、所定回数入力ミスがあると、その組み合わせに対してそれ以上の入力が不能となる設定とされる。従って、本実施形態におけるパスワード管理システム４によれば、パスワード文字列の候補をリストアップして他のシステムへの攻撃を行うリスト型アタックに対してもより強いセキュリティを担保することができる。そのため、他のシステムへの不正アクセスを防ぐことができる。
【００５３】
次に具体例を説明する。
（例１）
本例において、パスワード情報記憶部６２は、過去のパスワードについては、例えば、パスワード文字列に一方向性ハッシュ関数（ＭＤ関数）をかけて得られたハッシュ値全体を保存するのではなく、ハッシュ値から一部の文字列のみを当該パスワード文字列の変換後パスワード文字列として保持する構成とすることができる。
【００５４】
図７は、本例における演算式記憶部６４の内部構成の一例を示す図である。
【００５５】
パスワード情報記憶部６２に記憶された過去の変換後パスワード文字列ＣＰＰは、入力された文字列を一意性のある暗号化文字列に変換する暗号化演算式Ｅ２（第１の暗号化演算式）を用いて変換された暗号化文字列の一部を第１の規則Ｒ１に従って抽出して得られたものとすることができる。つまり、本例においては、上記演算式ｅは、暗号化演算式Ｅ２を行った後に第１の規則Ｒ１の処理を行う暗号化演算式Ｅ２と第１の規則Ｒ１の組み合わせとすることができる。また、変換後入力文字列ＣＮＰは、暗号化演算式Ｅ２を用いて新たなパスワード文字列ＮＰを変換して取得された文字列又は当該文字列の一部を第１の規則Ｒ１に従って抽出して取得された文字列とすることができる。
【００５６】
暗号化演算式Ｅ２は、例えば、一方向性ハッシュ関数（ＭＤ関数）等の一方向で一意に決まる暗号化演算式とすることができる。暗号化演算式Ｅ２と現在のパスワード文字列に施される上記暗号化演算式Ｅ１とは同じとすることもでき、異なるようにすることもできる。第１の規則Ｒ１は、暗号化演算式Ｅ２を用いて変換された暗号化文字列のどの位置から何桁（ｒ桁）の文字列を抽出するかを規定した規則とすることができる。第１の規則Ｒ１は、例えば、「末尾ｒ桁」、「先頭からａ１桁目〜ａ２桁目」等の規則とすることができる。
【００５７】
第１の規則Ｒ１の決定方法（何桁（ｒ桁）の文字列を抽出するか）の一例を説明する。
【００５８】
例えば、パスワード文字列が６２種類の英数字を用いた８桁であり、暗号化演算式Ｅ２が入力されたパスワード文字列を、当該文字列を一意に特定する１６進数の３２桁の暗号化文字列に変換するものであるとする。この場合、想定されるパスワード文字列の総数は約２．１８×１０１４通りとなる。また、暗号化文字列の総数は約３．４０×１０３８通りとなる。
【００５９】
まず、例えば、第１の規則Ｒ１が、上記暗号化文字列の所定箇所の一部（例えば末尾）６桁を抽出して変換後パスワード文字列を得るものである場合について検討する。この場合、得られる変換後パスワード文字列の総数は約１．６８×１０７通りとなる。
【００６０】
演算結果が完全にランダムであった場合、パスワード文字列は必ずいずれかの変換後パスワード文字列に変換されるため、一の変換後パスワード文字列に対する元のパスワード文字列の候補の数「ｘ」は、
ｘ≒（パスワード文字列の総数）／（変換後パスワード文字列の総数）＝（約２．１８×１０１４）／（約１．６８×１０７）＝約１．３０×１０７となる。
【００６１】
一方、新たに設定しようとするパスワード文字列に上述した「衝突」が生じる確率ｐは、
（一の変換後パスワード文字列に対する元のパスワード文字列の候補の数「ｘ」）／（パスワード文字列の総数）＝（約１．３０×１０７）／（約２．１８×１０１４）＝５．９６×１０−８となる。
【００６２】
過去のパスワードを複数世代分（１世代前〜ｎ世代）記憶している場合に新たに設定しようとするパスワード文字列に上述した「衝突」が生じる確率ｐｎは、
（世代数「ｎ」）×（一の変換後パスワード文字列に対する元のパスワード文字列の候補の数「ｘ」）／（パスワード文字列の総数）＝ｎ×（約１．３０×１０７）／（約２．１８×１０１４）＝ｎ×５．９６×１０−８となる。
【００６３】
以上のように、上記暗号化文字列の所定箇所の一部（例えば末尾）６桁を抽出して変換後パスワード文字列を得る場合、一の変換後パスワード文字列に対する元のパスワード文字列の候補の数「ｘ」は、約１．３０×１０７となり、リスト型アタックに対してもより強いセキュリティを担保することができる。一方、登録ユーザの数が多く、多くのユーザのパスワード情報を記憶するシステムにおいては、偶然一致による「衝突」が問題となる可能性がある。
【００６４】
そこで、例えば、第１の規則Ｒ１が、上記暗号化文字列の所定箇所の一部（例えば末尾）７桁を抽出して変換後パスワード文字列を得るものである場合について検討する。この場合、一の変換後パスワード文字列に対する元のパスワード文字列の候補の数「ｘ」は、
ｘ≒（パスワード文字列の総数）／（変換後パスワード文字列の総数）＝（約２．１８×１０１４）／（約１．１０１２）＝約１９８となる。
【００６５】
このように、上記暗号化文字列の所定箇所の一部（例えば末尾）７桁を抽出して変換後パスワード文字列を得る場合でも、一の変換後パスワード文字列に対する元のパスワード文字列の候補の数「ｘ」は、約１９８となり、リスト型アタックに対しても充分強いセキュリティを担保することができる。
【００６６】
一方、新たに設定しようとするパスワード文字列に上述した「衝突」が生じる確率ｐは、
（一の変換後パスワード文字列に対する元のパスワード文字列の候補の数「ｘ」）／（パスワード文字列の総数）＝（約１９８）／（約２．１８×１０１４）＝９．０８×１０−１３となり、「衝突」が生じる確率ｐを、第１の規則Ｒ１が、上記暗号化文字列の所定箇所の一部（例えば末尾）６桁を抽出して変換後パスワード文字列を得るものである場合に比べて充分に小さくすることができる。
【００６７】
以上のように、パスワード情報記憶部６２に記憶された過去の変換後パスワード文字列ＣＰＰの桁数ｒを何桁とするかは、想定されるリスクや対策を行うレベルに応じて決定することができる。
【００６８】
図８は、本例におけるパスワード情報記憶部６２の内部構成の一例を示す図である。
【００６９】
パスワード情報記憶部６２は、図５に示した例と同様、「ユーザＩＤ」、「現在のパスワード」、「過去のパスワード」等の項目を含む。パスワード情報記憶部６２は、「現在のパスワード」については、例えば、３２桁の暗号化文字列を記憶することができる。一方、パスワード情報記憶部６２は、「過去のパスワード」については、例えば、３２桁の暗号化文字列の一部である末尾ｒ桁を抽出した変換後パスワード文字列を記憶することができる。
【００７０】
図９は、本実施形態におけるパスワード管理システム４の処理手順の一例を示すフローチャートである。ここでは、パスワード情報記憶部６２に記憶された現在のパスワード文字列に施された暗号化演算式Ｅ１が過去のパスワード文字列に施される暗号化演算式Ｅ２と同じである場合を例として説明する。
【００７１】
パスワード管理システム４にログインしているユーザから、パスワードの変更指示とともに、新たなパスワード文字列ＮＰの入力を受け付け付けると（ステップＳ１０２）、パスワード管理制御部４２の制御のもと、文字列変換部４４は、新たなパスワード文字列ＮＰを暗号化演算式Ｅ１（＝暗号化演算式Ｅ２）を用いて暗号化パスワード文字列ＥＮＰに変換する（ステップＳ１０４）。
【００７２】
次いで、強度判断部５２は、暗号化パスワード文字列ＥＮＰがパスワード情報記憶部６２において当該ユーザＩＤに対応づけられた現在のパスワードの暗号化パスワード文字列ＥＣＰと一致するか否かを判断する（ステップＳ１０６）。暗号化パスワード文字列ＥＮＰが現在のパスワードの暗号化パスワード文字列ＥＣＰと完全一致する場合（ステップＳ１０８のＹＥＳ）、強度判断部５２は、強度判断条件記憶部６６の強度判断条件に従って、例えば、新たなパスワード文字列ＮＰの強度が非常に低いとして、パスワード変更を受け付けず、エラー表示を行う（ステップＳ１１８）。
【００７３】
一方、暗号化パスワード文字列ＥＮＰが現在のパスワードの暗号化パスワード文字列ＥＣＰと完全一致しない場合（ステップＳ１０８のＮＯ）、強度判断部５２は、新たなパスワード文字列ＮＰが当該ユーザの過去のパスワード文字列と一致するか否かを判断する。
【００７４】
一例として、強度判断部５２は、暗号化パスワード文字列ＥＮＰをそのまま変換後入力文字列ＣＮＰとして用いる。強度判断部５２は、暗号化パスワード文字列ＥＮＰにパスワード情報記憶部６２に記憶された変換後パスワード文字列ＣＰＰ１〜ＣＰＰｎのいずれかが含まれるか否かを判断する（ステップＳ１１０）。
【００７５】
暗号化パスワード文字列ＥＮＰにパスワード情報記憶部６２に記憶された変換後パスワード文字列ＣＰＰ１〜ＣＰＰｎのいずれかが含まれる場合（ステップＳ１１２のＹＥＳ）、暗号化パスワード文字列ＥＮＰから上記第１の規則Ｒ１に従って抽出した文字列が変換後パスワード文字列ＣＰＰ１〜ＣＰＰｎのいずれかと一致するということであり、入力された新たなパスワード文字列ＮＰが過去のパスワード文字列と同じである可能性が非常に高い。そのため、強度判断部５２は、入力された新たなパスワード文字列ＮＰの強度が低いと判断して、例えばユーザに警告等を行う（ステップＳ１１６）。
【００７６】
一方、暗号化パスワード文字列ＥＮＰにパスワード情報記憶部６２に記憶された変換後パスワード文字列ＣＰＰ１〜ＣＰＰｎのいずれも含まれない場合（ステップＳ１１２のＮＯ）、強度判断部５２は、入力された新たなパスワード文字列ＮＰの強度が高いと判断し、結果を出力する（ステップＳ１１４）。
【００７７】
他の例として、ステップＳ１１０において、文字列変換部４４は、暗号化パスワード文字列ＥＮＰから上記第１の規則Ｒ１に従って一部の文字列を抽出し、強度判断部５２は、当該一部の文字列を変換後入力文字列ＣＮＰとして用い、当該一部の文字列とパスワード情報記憶部６２に記憶された変換後パスワード文字列ＣＰＰ１〜ＣＰＰｎのいずれかとが一致するか否かを判断してもよい（ステップＳ１１０）。
【００７８】
当該文字列とパスワード情報記憶部６２に記憶された変換後パスワード文字列ＣＰＰ１〜ＣＰＰｎのいずれかとが一致する場合（ステップＳ１１２のＹＥＳ）、強度判断部５２は、入力された新たなパスワード文字列ＮＰの強度が低いと判断する（ステップＳ１１６）。一方、当該文字列とパスワード情報記憶部６２に記憶された変換後パスワード文字列ＣＰＰ１〜ＣＰＰｎのいずれかとが一致しない場合（ステップＳ１１２のＮＯ）、強度判断部５２は、入力された新たなパスワード文字列ＮＰの強度が高いと判断する（ステップＳ１１４）。
【００７９】
なお、パスワード情報記憶部６２に記憶された現在のパスワード文字列に施された暗号化演算式Ｅ１と過去のパスワード文字列に施される暗号化演算式Ｅ２とが異なる場合は、ステップＳ１１０において、パスワード管理制御部４２の制御のもと、文字列変換部４４は、新たなパスワード文字列ＮＰを暗号化演算式Ｅ２を用いて暗号化文字列に変換した後、上記と同様の処理を行う。
（例２）
本例において、パスワード情報記憶部６２に記憶された過去の変換後パスワード文字列ＣＰＰは、入力された文字列を第２の規則Ｒ２に従って複数の文字列に分割し、各複数の文字列を、入力された文字列を一意性のある暗号化文字列に変換する暗号化演算式Ｅ３（第２の暗号化演算式）を用いてそれぞれ一意性のある暗号化文字列に変換し、変換した各暗号化文字列の一部を第３の規則Ｒ３に従って組み合わせて得られたものとすることができる。つまり、本例においては、上記演算式ｅは、第２の規則Ｒ２と、暗号化演算式Ｅ３と、第３の規則Ｒ３とをこの順で行う組み合わせとすることができる。
【００８０】
文字列変換部４４は、新たなパスワード文字列ＮＰを、第２の規則Ｒ２に従って複数の文字列に分割し、各複数の文字列を、暗号化演算式Ｅ３を用いてそれぞれ一意性のある暗号化文字列に変換し、変換した各暗号化文字列の一部を第３の規則Ｒ３に従って組み合わせて取得した文字列を変換後入力文字列ＣＮＰとすることができる。
【００８１】
第２の規則Ｒ２は、変換前の文字列を、どのように分割するかを規定した規則とすることができる。例えば、第２の規則Ｒ２は、変換前の文字列を先頭から所定桁数ｓずつ分割するという規定とすることができる。例えば、変換前の文字列が「ｐａｓｓｗｏｒｄ」で、所定桁数ｓが２だとすると、文字列変換部４４は、「ｐａｓｓｗｏｒｄ」を「ｐａ」、「ｓｓ」、「ｗｏ」及び「ｒｄ」に分割する。
【００８２】
暗号化演算式Ｅ３は、例えば、一方向性ハッシュ関数（ＭＤ関数）等の一方向で一意に決まる暗号化演算式とすることができる。暗号化演算式Ｅ３と現在のパスワード文字列に施される上記暗号化演算式Ｅ１とは同じとすることもでき、異なるようにすることもできる。文字列変換部４４は、暗号化演算式Ｅ３を用いて、分割した「ｐａ」、「ｓｓ」、「ｗｏ」及び「ｒｄ」それぞれを暗号化文字列「Ｅ（ｐａ）」、「Ｅ（ｓｓ）」、「Ｅ（ｗｏ）」及び「Ｅ（ｒｄ）」に変換する。
【００８３】
第３の規則Ｒ３は、暗号化演算式Ｅ３を用いて変換された各暗号化文字列のどの位置から何桁（ｒ２）の文字列を抽出するかを規定するとともに、抽出した文字列をどのように結合するかを規定した規則とすることができる。第３の規則Ｒ３は、例えば、「末尾ｒ２桁」、「先頭からａ３桁目〜ａ４桁目」等の規則とすることができる。
【００８４】
文字列変換部４４は、各暗号化文字列「Ｅ（ｐａ）」、「Ｅ（ｓｓ）」、「Ｅ（ｗｏ）」及び「Ｅ（ｒｄ）」から、それぞれそれらの一部である所定位置の所定桁数ｒ２の文字列「Ｃ（ｐａ）」、「Ｃ（ｓｓ）」、「Ｃ（ｗｏ）」及び「Ｃ（ｒｄ）」を抽出する。次いで、文字列変換部４４は、抽出した文字列「Ｃ（ｐａ）」、「Ｃ（ｓｓ）」、「Ｃ（ｗｏ）」及び「Ｃ（ｒｄ）」を所定の順序で結合する。結合する順序は、例えば、変換前の文字列の配置と同様、「Ｃ（ｐａ）」、「Ｃ（ｓｓ）」、「Ｃ（ｗｏ）」及び「Ｃ（ｒｄ）」の順とすることができる。従って、パスワード情報記憶部６２に記憶される変換後パスワード文字列ＣＰＰは、例えば「Ｃ（ｐａ）Ｃ（ｓｓ）Ｃ（ｗｏ）Ｃ（ｒｄ）」のように並べた文字列とすることができる。
【００８５】
以上の構成としても、各文字列「Ｃ（ｐａ）」、「Ｃ（ｓｓ）」、「Ｃ（ｗｏ）」及び「Ｃ（ｒｄ）」は、各暗号化文字列「Ｅ（ｐａ）」、「Ｅ（ｓｓ）」、「Ｅ（ｗｏ）」及び「Ｅ（ｒｄ）」からそれぞれ一部を抽出したものであるため、一の変換後パスワード文字列に対する元の文字列の候補が複数になるようにすることができる。
【００８６】
また、このような構成とした場合は、入力されたパスワード文字列と、パスワード情報記憶部６２に記憶された過去のパスワード文字列の部分的な一致も検出することができるため、強度判断部５２は、ユーザが過去に利用したパスワードと部分的に一致するパスワードを新たに登録しようとする際に、警告等を行うことができる。例えば、過去のパスワード文字列が「ｐａｓｓ１１２２」で、新たに登録しようとするパスワードが「ｐａｓｓ３３４４」の場合、上記演算式ｅによる変換後の文字列は、それぞれ「Ｃ（ｐａ）Ｃ（ｓｓ）Ｃ（１１）Ｃ（２２）」、「Ｃ（ｐａ）Ｃ（ｓｓ）Ｃ（３３）Ｃ（４４）」となる。つまり、これらの文字列の前半部分が一致することになる。本例において、強度判断部５２は、このように、ユーザが過去に利用したパスワードと部分的に一致するパスワードを新たに登録しようとする際に、警告等を行うことができる。
（例３）
本例において、パスワード情報記憶部６２に記憶された変換後パスワード文字列ＣＰＰは、入力された文字列の一部を第４の規則Ｒ４に従って抽出して得られた文字列を、入力された文字列を一意性のある暗号化文字列に変換する暗号化演算式Ｅ４（第３の暗号化演算式）を用いて一意性のある暗号化文字列に変換して得られたものとすることができる。つまり、本例においては、上記演算式ｅは、第４の規則Ｒ４と、暗号化演算式Ｅ４とをこの順で行う組み合わせとすることができる。
【００８７】
文字列変換部４４は、新たなパスワード文字列ＮＰの一部を第４の規則Ｒ４に従って抽出し、抽出した文字列を暗号化演算式Ｅ４を用いて取得した暗号化文字列を変換後入力文字列ＣＮＰとすることができる。
【００８８】
第４の規則Ｒ４は、変換前の文字列のどの位置から何桁（ｒ３）の文字列を抽出するかを規定した規則とすることができる。第４の規則Ｒ４は、例えば、「末尾ｒ３桁」、「先頭からａ５桁目〜ａ６桁目」等の規則とすることができる。例えば、変換前の文字列が「ｐａｓｓｗｏｒｄ」で、第４の規則Ｒ４が「末尾４桁」だとすると、文字列変換部４４は、「ｐａｓｓｗｏｒｄ」から「ｗｏｒｄ」を抽出する。ここで、何桁（ｒ３）の文字列を抽出するかは、変換後の文字列に対して元の文字列の候補が複数（ｘ個）存在するように決定することができる。
【００８９】
暗号化演算式Ｅ４は、例えば、一方向性ハッシュ関数（ＭＤ関数）等の一方向で一意に決まる暗号化演算式とすることができる。暗号化演算式Ｅ４と現在のパスワード文字列に施される上記暗号化演算式Ｅ１とは同じとすることもでき、異なるようにすることもできる。
【００９０】
以上の構成としても、一の変換後パスワード文字列に対する元の文字列の候補が複数になるようにすることができる。
（例４）
なお、上述したように、コンピュータの計算速度の向上等により、暗号化演算式が破られる等してセキュリティが低下してしまう可能性もあり、時代とともに、新たな暗号化技術が開発されている。そのため、以上のように、過去のパスワードを複数世代分（１世代前〜ｎ世代前）記憶する構成とした場合、保存した時期によって、上記演算式ｅとして、異なる演算式を用いる可能性がある。
【００９１】
そのため、パスワード情報記憶部６２は、ユーザ毎に、第１の過去のパスワード文字列ＰＰ１及び当該第１の過去のパスワード文字列ＰＰ１よりも古い世代の第２の過去のパスワード文字列ＰＰ２を、それぞれ、同じ文字列については同じ変換結果を与えるとともに、変換後の文字列に対して元の文字列の候補が複数存在するように文字列を変換する所定の第１の演算式ｅ１及び所定の第２の演算式ｅ２を用いて変換した第１の変換後パスワード文字列ＣＰＰ１及び第２の変換後パスワード文字列ＣＰＰ２を記憶するとともに、当該変換後パスワード文字列ＣＰＰ１及び第２の変換後パスワード文字列ＣＰＰ２を所定の第１の演算式ｅ１及び所定の第２の演算式ｅ２を示す情報に対応づけて記憶することができる。
【００９２】
文字列変換部４４は、ユーザから、パスワードの変更指示とともに、新たなパスワード文字列ＮＰの入力を受け付けると、所定の第１の演算式ｅ１及び所定の第２の演算式ｅ２に基づき、新たなパスワード文字列ＮＰを当該パスワード文字列ＮＰとは異なる第１の変換後入力文字列ＣＮＰ１及び第２の変換後入力文字列ＣＮＰ２にそれぞれ変換することができる。
【００９３】
強度判断部５２は、第１の変換後入力文字列ＣＮＰ１と第１の変換後パスワード文字列ＣＰＰ１と、及び第２の変換後入力文字列ＣＮＰ２と第２の変換後パスワード文字列ＣＰＰ２とに基づき、新たなパスワード文字列ＮＰの強度を判断することができる。
【００９４】
図１０は、本例におけるパスワード情報記憶部６２の内部構成の一例を示す図である。
【００９５】
ここでも、図５に示した例と同様、パスワード情報記憶部６２は、「ユーザＩＤ」、「現在のパスワード」、「過去のパスワード」等の項目を含む。「過去のパスワード」は、世代毎に、当該ユーザの過去のパスワード文字列ＰＰ１〜ＰＰｎに対応する変換後パスワード文字列ＣＰＰ１〜ＣＰＰｎと、当該変換後パスワード文字列ＣＰＰ１〜ＣＰＰｎを得るために用いられた演算式を示す情報「ｅ１」、「ｅ２」とが対応づけられた構成となっている。演算式を示す情報「ｅ１」、「ｅ２」は、演算式そのものではなく、演算式を特定するＩＤ等とすることができる。
【００９６】
通常、より古い世代の過去のパスワードの変換後パスワード文字列に対応づけられた所定の第２の演算式ｅ２は、所定の第１の演算式ｅ１よりもセキュリティが低い。そのため、強度判断部５２が入力されたパスワードの強度を判断する際に、古い世代の過去のパスワードは例えば参照程度とする等、強度判断のレベルを下げてもよい。具体的には、強度判断部５２は、第１の変換後入力文字列ＣＮＰ１と第１の変換後パスワード文字列ＣＰＰ１とに基づく判断結果を第２の変換後入力文字列ＣＮＰ２と第２の変換後パスワード文字列ＣＰＰ２とに基づく判断結果よりも高い重み付けをして新たなパスワード文字列ＮＰの強度を判断することができる。このような条件は、強度判断条件記憶部６６に記憶される。
【００９７】
本実施形態において、以上の構成とすることにより、パスワードの強度を高めるために過去に設定されたパスワードに関する情報を保存しつつも、そのパスワードが漏洩した場合でも他のシステムへの不正アクセスを防ぐことができる技術を提供することができる。
【００９８】
なお、図４に示したユーザ端末装置１及びパスワード管理システム４の各構成要素は、ハードウェア単位の構成ではなく、機能単位のブロックを示している。ユーザ端末装置１及びパスワード管理システム４の各構成要素は、任意のコンピュータのＣＰＵ、メモリ、メモリにロードされた本図の構成要素を実現するプログラム、そのプログラムを格納するハードディスクなどの記憶ユニット、ネットワーク接続用インタフェースを中心にハードウェアとソフトウエアの任意の組合せによって実現される。そして、その実現方法、装置にはいろいろな変形例があることは、当業者には理解されるところである。また、パスワード管理システム４が行う機能は、一つの装置で実行される必要はなく、複数の装置に分散配置した構成としてもよい。
【００９９】
以上、図面を参照して本発明の実施形態について述べたが、これらは本発明の例示であり、上記以外の様々な構成を採用することもできる。
【符号の説明】
【０１００】
１    ユーザ端末装置
２    アクセスポイント
３    ネットワーク
４    パスワード管理システム
１２    サーバアクセス部
１６    操作入力受付部
１８    画面表示処理部
４２    パスワード管理制御部
４４    文字列変換部
５２    強度判断部
６２    パスワード情報記憶部
６４    演算式記憶部
６６    強度判断条件記憶部
【要約】
【課題】パスワードの強度を高めるために過去に設定されたパスワードに関する情報を保存しつつも、そのパスワードが漏洩した場合でも他のシステムへの不正アクセスを防ぐことができる技術を提供する。
【解決手段】パスワード管理システム４は、同じ文字列については同じ変換結果を与えるとともに、変換後の文字列に対して元の文字列の候補が複数存在するように文字列を変換する所定の演算式を用いて、入力された文字列を当該文字列とは異なる文字列に変換する文字列変換部４４と、ユーザ毎に、当該ユーザの過去のパスワード文字列ＰＰを、上記所定の演算式を用いて当該過去のパスワード文字列ＰＰとは異なる変換後パスワード文字列ＣＰＰに変換した状態で記憶するパスワード情報記憶部６２と、新たなパスワード文字列ＮＰの強度を判断するパスワードの強度を判断する強度判断部５２とを含む。
【選択図】図４【図１】
0005568696.tif 000002
【図２】
0005568696.tif 000003
【図３】
0005568696.tif 000004
【図４】
0005568696.tif 000005
【図５】
0005568696.tif 000006
【図６】
0005568696.tif 000007
【図７】
0005568696.tif 000008
【図８】
0005568696.tif 000009
【図９】
0005568696.tif 000010
【図１０】
0005568696.tif 000011