説明

安全で回復可能なパスワード

【課題】自分の2つのパスワードの一方を忘れたユーザが、忘れたパスワードを安全に回復することができるようにする方法および装置を提供すること。
【解決手段】ユーザが自分の2つのパスワードの一方を使ってログインした後で、他方のパスワードをユーザに明らかにする。各パスワードは、その元の形としてではなく、ハッシュ化された形と暗号化された形の両方で永続的な表に格納される。例示的実施形態は、2つの点において、忘れられたパスワードがデフォルト値にリセットされる従来技術よりも有利である。第1に、例示的実施形態は、ユーザが、デフォルトのパスワードを使ってログインし、適切なパスワードとなるはずの新規の文字列を考え出し、パスワードをデフォルトから新規の文字列に変更しなければならない不都合を回避する。第2に、例示的実施形態は、セキュリティを危殆化するおそれのあるデフォルト値のパスワードの使用を回避する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般にコンピュータ・セキュリティに関し、より詳細には、回復可能なパスワードを格納する安全な方法に関する。
【背景技術】
【0002】
多くのオペレーティング・システムは、システム管理者(またはスーパユーザ)がコンピュータ上で複数のユーザ・アカウントを作成することができるようにする。各ユーザ・アカウントは、通常、ユーザ名と呼ばれる関連付けられた識別子と、そのアカウントでコンピュータにログインする際にユーザ名と組み合わせて提供されねばならないパスワードとを有する。
【0003】
コンピュータ・オペレーティング・システムは、通常、永続的な記憶(例えばディスク・ファイルやディレクトリなど)にパスワード表を維持し、ユーザがコンピュータにログインしようとするときにパスワード表を調べる。悪意のあるユーザ(そのコンピュータにアカウントを持つユーザである可能性もあり、外部の「クラッカ」である可能性もある)がパスワード表にアクセスして別のユーザのパスワードを取得しようとすることもあるため、パスワード表には、通常、実際のパスワードではなく、ハッシュ化されたパスワードが格納される。ハッシュ化されたパスワードとは、パスワードに暗号ハッシュ関数が適用されるときに獲得される値である。暗号ハッシュ関数とは、第1の文字列(パスワードなど)を第2の文字列(ハッシュ化されたパスワードなど)に変換する関数hであり、以下の3つの特性を呈する。
(1)原像耐性:ハッシュ化されたパスワードが与えられた場合に、元のハッシュ化されていないパスワードを見つけるのが困難である(すなわち、ハッシュ化パスワードzが与えられた場合に、z=h(y)であるようなyを見つけるのが困難である)。
(2)第2原像耐性:第1のパスワードyが与えられた場合に、h(y)=h(y)であるような(yとは異なる)第2のパスワードyを見つけるのが困難である。
(3)衝突耐性:h(y)=h(y)であるような2つの異なるパスワードyおよびyを見つけるのが困難であるべきである。
よって、悪意のあるユーザが、コンピュータのパスワード表にアクセスして、別のユーザのハッシュ化されたパスワードを取得することができる場合であっても、その悪意のあるユーザが、ハッシュ化されたパスワードから元のハッシュ化されていないパスワードを突き止めるのは極めて難しい。
【0004】
オペレーティング・システムによっては、ユーザ・アカウントは、2つのパスワードを持つことがあり、その場合ユーザは、そのユーザ名と共にそれらのパスワードのどちらかを提供することによってログインすることができる。通常、ユーザは、自分の「1次」パスワードを忘れたときには、その「2次」パスワードを用いてログインし、1次パスワードは、デフォルトの文字列(「john123」や「password」など)にリセットされる。次いで、ユーザは、デフォルトの文字列を使ってログインし、1次パスワードをしかるべく変更することができる。(パスワード表はセキュリティのためにハッシュ化されたパスワードだけを格納しているので、ハッシュ化されていない1次パスワードがそのままユーザに対して明らかにされることはない。)システムによっては、2次パスワードを、おそらく他のユーザには知られていない情報(例えば母親の旧姓、出生地、以前の住所での電話番号など)とすることもあり、他のシステムでは、2次パスワードを、1次パスワードと同様に、任意に選択される文字列とすることもある。
【0005】
図1に、従来技術による電気通信システム100を示す。電気通信システム100は、図示のように相互接続された、電気通信網105とコンピュータ110とを備える。
電気通信網105は、コンピュータ110と他の装置(デスクトップ・コンピュータ、ノート型コンピュータ、サーバ、無線電気通信端末など)の間でメッセージを搬送する、公衆交換電話網(PSTN)やインターネットなどのネットワークである。
【0006】
コンピュータ110は、そのオペレーティング・システムが、1つまたは複数のユーザ・アカウントを提供することのできるデスクトップ・コンピュータ、ノート型コンピュータ、サーバなどである。コンピュータ110上でアカウントを持つユーザは、入力装置(キーボードなど)を介して、あるいは電気通信網105を介してリモート・コンピュータからこのコンピュータにログインすることができる。ユーザは、コンピュータ110にログインするために有効なユーザ名/パスワードの組み合わせを提供しなければならない。
【0007】
図2に、従来技術によるコンピュータ110の主な構成要素を示す。コンピュータ110は、図示のように相互に接続された、受信機201と、プロセッサ202と、メモリ203と、送信機204と、入力装置205とを備える。
【0008】
受信機201は、電気通信網105を介してクライアント(デスクトップ・コンピュータやノート型コンピュータなど)から信号を受け取り、信号に符号化されている情報をプロセッサ202に転送する。
【0009】
プロセッサ202は、受信機201から情報を受け取ることができ、メモリ203に格納された命令を実行することができ、メモリ203との間でデータの読取りおよび書込みを行うことができ、送信機204に情報を送ることのできる汎用プロセッサである。
【0010】
メモリ203は、図3に関連して以下で説明するパスワード表を含むデータを格納することができ、実行可能命令を格納することができる。メモリ203は、ランダム・アクセス・メモリ(RAM)、フラッシュ・メモリ、ディスク・ドライブ・メモリなどの任意の組み合わせとしてもよい。
【0011】
送信機204は、プロセッサ202から情報を受け取り、この情報を符号化している信号を、電気通信網105を介してクライアント(デスクトップ・コンピュータ、ノート型コンピュータなど)に送る。
【0012】
入力装置205は、ユーザからの入力(ユーザ名やパスワードなど)を受け取り、その入力を表す信号をプロセッサ202に送るキーボード、マウス、マイクロホンなどである。
【0013】
図3に、従来技術による、メモリ203に格納されたパスワード表300を示す。パスワード表300は、3つの列と1つまたは複数の行を備え、各行は、コンピュータ110の1つのユーザ・アカウントに対応する。列301は、各ユーザ・アカウントごとのユーザ名を格納し、列302は、各ユーザ・アカウントごとのハッシュ化された第1のパスワード(すなわち、第1のパスワードに適用された暗号ハッシュ関数の値)を格納し、列303は、各ユーザ・アカウントごとのハッシュ化された第2のパスワードを格納する。
【発明の開示】
【発明が解決しようとする課題】
【0014】
本発明は、自分の2つのパスワードの一方を忘れたユーザが、忘れたパスワードを安全に回復することができるようにするものである。特に、例示的実施形態では、2つの元のハッシュ化されていないパスワードのいずれも永続的な記憶に(例えば、ディスク・ファイルやLDAPディレクトリなどに)保存させることなく、ユーザがその2つのパスワードの一方を使ってログインした後で、他方のパスワードをユーザに明らかにする。よって、例示的実施形態は、従来技術の2つの主要な欠点、すなわち、
(i)ユーザが
デフォルトのパスワードを使ってログインし、
適切なパスワードとなるはずの新規の文字列を考え出し、
パスワードを、デフォルトから新規の文字列に変更する
必要があるという不都合、および
(ii)パスワードをデフォルト値にリセットすることに起因する(特に、ユーザがデフォルトのパスワードを直ちに変更しないときの)セキュリティの危殆化
を克服するものである。
【課題を解決するための手段】
【0015】
本発明の例示的実施形態は、従来技術のパスワード表300に2つの列を追加したパスワード表を用いる。第1の追加列は、ユーザの第1のパスワードpの暗号化バージョンp’を格納し、この暗号鍵は、
(i)システムからアクセス可能(例えば、ローカル・ディスクに格納されている、ネットワークで接続されたファイル・デバイスに格納されているなど)であり、
ユーザに知られていない
データd(文字列、数など)と、
(ii)ユーザの第2のパスワードq
に基づく、上記(i)と(ii)が知られているときにp’が解読され得るようなものである。同様に、第2の追加列も、ユーザの第2のパスワードqの暗号化バージョンq’を格納し、この暗号鍵は、データdと第1のパスワードpに基づく、dとpとが知られているときにq’が解読され得るようなものである。
【0016】
例示的実施形態によれば、ユーザが、(1)ユーザ名と(2)そのユーザ名のパスワードの一方(例えばp)にマッチさせるための入力xを提供することによってログインしようとするときに、入力xがハッシュ化され、パスワード表内の対応するハッシュ化されたパスワードh(p)と比較される。h(x)がh(p)とマッチする場合、ユーザはログインされ、(パスワードpと等しい確率が非常に高い)入力xおよびデータdを使ってq’が解読され、その結果qがユーザに明らかにされる。同様に、h(x)がh(q)とマッチする場合にも、ユーザはログインされ、(パスワードqと等しい確率が非常に高い)入力xおよびデータdを使ってp’が解読され、その結果pがユーザに明らかにされる。
例示的実施形態は、第1のデータに適用された暗号ハッシュ関数の値を格納する第1の記憶場所と、上記第1のデータの暗号化バージョンを格納する第2の記憶場所とを備える。
【発明を実施するための最良の形態】
【0017】
図4に、本発明の例示的実施形態による電気通信システム400を示す。電気通信システム400は、図示のように相互接続された、電気通信網105とコンピュータ410とを備える。
【0018】
コンピュータ410は、図6および7に関連して以下で説明するように、ユーザがリモート・クライアントからログインし、そのパスワードを安全に回復することができるようにするコンピュータである。
【0019】
図5に、本発明の例示的実施形態によるコンピュータ410の主な構成要素を示す。コンピュータ410は、図示のように相互接続された、受信機501と、プロセッサ502と、メモリ503と、送信機504と、入力装置505と、クロック506とを備える。
【0020】
受信機501は、よく知られているやり方で、電気通信網105を介してクライアント(デスクトップ・コンピュータ、ノート型コンピュータなど)から信号を受け取り、信号に符号化されている情報を、プロセッサ502に転送する。本明細書を読めば、当分野の技術者には、受信機501をどのようにして作成し、使用するかが明らかになるであろう。
【0021】
プロセッサ502は、受信機501および入力装置505から情報を受け取ることができ、メモリ503に格納された命令を実行することができ、メモリ503との間でデータの読取りおよび書込みを行うことができ、図7に関連して以下で説明するタスクを実行することができ、送信機504に情報を送ることのできる汎用プロセッサである。本発明のいくつかの代替実施形態では、プロセッサ502は、専用プロセッサとしてもよい。どちらにせよ、本明細書を読めば、当分野の技術者には、プロセッサ502をどのようにして作成し、使用するかが明らかになるであろう。
【0022】
メモリ503は、当分野でよく知られているように、図6に関連して以下で説明するパスワード表を含むデータおよび実行可能命令を格納する。メモリ503は、ランダム・アクセス・メモリ(RAM)、フラッシュ・メモリ、ディスク・ドライブ・メモリなどの任意の組み合わせとしてもよく、本明細書を読めば、当分野の技術者には、どのようにしてメモリ503を作成し、使用するかが明らかになるであろう。
【0023】
送信機504は、よく知られているやり方で、プロセッサ502から情報を受け取り、この情報を符号化している信号を、電気通信網105を介してクライアント(デスクトップ・コンピュータ、ノート型コンピュータなど)に送る。本明細書を読めば、当分野の技術者には、どのようにして送信機504を作成し、使用するかが明らかになるであろう。
【0024】
入力装置505は、よく知られているやり方で、ユーザからの入力(ユーザ名、パスワードなど)を受け取り、その入力を表す信号をプロセッサ502に送るキーボード、マウス、マイクロホンなどである。
【0025】
クロック506は、よく知られているやり方で、現在の日時をプロセッサ502に送る。
図6に、本発明の例示的実施形態による、メモリ503に格納されたパスワード表600を示す。パスワード表600は、6つの列と1つまたは複数の行を備え、各行は、コンピュータ410のユーザ・アカウントに対応する。列601は、パスワード表300の列301と同様に、各ユーザ・アカウントごとのユーザ名を格納し、列602は、パスワード表300の列302と同様に、各ユーザ・アカウントごとのハッシュ化された第1のパスワードを格納し、列603は、パスワード表300の列303と同様に、各ユーザ・アカウントごとのハッシュ化された第2のパスワードを格納する。
【0026】
列604は、各ユーザの第1のパスワードpの暗号化バージョンp’を格納し、この暗号鍵は、(i)コンピュータ410からアクセス可能であるが、ユーザには知られていないデータdと、(ii)ユーザの第2のパスワードqに基づく、上記(i)と(ii)の両方が知られているときにp’が解読され得るようなものである。このようなやり方で第1のパスワードpを暗号化することにより、コンピュータ410のシステム管理者も、コンピュータ410にアクセスすることのできるクラッカも、(容易に)列604の値を解読し、ユーザの第1のパスワードを獲得することができない。これは、ユーザの第2のパスワードが、コンピュータ410上に、ハッシュ化され、暗号化された形でのみ格納され、(システム管理者またはクラッカに発見された場合でも)データdの値だけでは、p’を解読するのに不十分であるためである。
【0027】
列605は、各ユーザの第2のパスワードqの暗号化バージョンq’を格納し、この暗号鍵は、データdと第1のパスワードpに基づくものである。上記と同じ理由で、このようなやり方で第2のパスワードqを暗号化すれば、悪意のあるユーザがデータdの値を発見した場合であっても、その悪意のあるユーザがq’を(容易に)解読することが防止される。
【0028】
図7に、本発明の例示的実施形態による、コンピュータ410の主なタスクの流れ図を示す。図7に示すどのタスクが同時に、または図示されているのと異なる順序で実行され得るかは、当分野の技術者には明らかであろう。
【0029】
タスク710で、コンピュータ410は、ユーザ名、および第1のパスワードpとマッチさせるための入力xを受け取る。
タスク720で、コンピュータ410は、入力xに適用された暗号ハッシュ関数hの値である、h(x)を生成する。
【0030】
タスク730で、コンピュータ410は、列602とユーザ名に対応する行の所の表600のエントリの値を読み取る。
タスク740で、コンピュータ410は、そのエントリの値がh(x)と等しいかどうかチェックする。等しい場合、タスク750で実行が継続し、そうでない場合、図7の方法が終了する。
【0031】
タスク750で、コンピュータ410は、入力xとデータdに基づいて、列605とユーザ名の行の所の表600のエントリ(すなわちq’)を解読する。
タスク760で、コンピュータ410は、解読したエントリ(すなわちパスワードq)を、xが入力された装置に送る。タスク760の後で、図7の方法は終了する。
【0032】
例示的実施形態は、オペレーティング・システムのパスワードの状況で開示されているが、当分野の技術者には、どのようにして他の種類の(例えば、Webサイト、アプリケーション、データベースなどへのアクセスのための)パスワードについて本発明の実施形態を作成し、使用するかが明らかであろう。同様に、例示的実施形態は、2つのパスワードのユーザ・アカウントの状況で開示されているが、当分野の技術者には、どのようにして3つ以上のパスワードを有するユーザ・アカウントについて本発明の実施形態を作成し、使用するかも明らかであろう。
【0033】
前述の実施形態は、単に、本発明を例示するためのものにすぎず、当分野の技術者によれば、本発明の範囲を逸脱することなく、前述の実施形態の多くの変形が考案され得ることを理解すべきである。例えば、本明細書では、本発明の例示的実施形態の十分な説明および理解を提供するために、多くの具体的詳細が提供されている。しかしながら、本発明がそれらの詳細の1つまたは複数がなくとも、あるいは他の方法、材料、構成要素などを用いても実施され得ることを、当分野の技術者は理解するであろう。
【0034】
さらに、場合によっては、例示的実施形態の態様を曖昧にすることを回避するために、よく知られた構造、材料、または動作が詳細に図示されず、説明されないこともある。図に示す様々な実施形態は例示のためのものであり、必ずしも一定の縮尺で描かれているとは限らないことが理解されるものである。本明細書全体を通して、「一実施形態」、「ある実施形態」または「いくつかの実施形態」と言う場合、(1つまたは複数の)実施形態との関連で説明する特定の特徴、構造、材料、または特性が、必ずしも本発明のすべての実施形態とは限らないが、少なくとも1つの実施形態に含まれていることを意味するものである。したがって、本明細書全体の様々な箇所において「一実施形態において」、「ある実施形態において」または「いくつかの実施形態において」という句が現れる場合、必ずしもすべてが同じ実施形態を指すものであるとは限らない。さらに、特定の特徴、構造、材料、または特性は、1つまたは複数の実施形態において、任意の適切なやり方で組み合わされてもよい。したがって、かかる変形は、添付の特許請求の範囲およびその均等物に含まれるものである。
【図面の簡単な説明】
【0035】
【図1】従来技術による電気通信システムを示す図である。
【図2】従来技術による、図1に示すコンピュータ110の主な構成要素を示す図である。
【図3】従来技術による、図2に示すメモリ203に格納されたパスワード表を示す図である。
【図4】本発明の例示的実施形態による電気通信システムを示す図である。
【図5】本発明の例示的実施形態による、図4に示すコンピュータ410の主な構成要素を示す図である。
【図6】本発明の例示的実施形態による、図5に示すメモリ503に格納されたパスワード表を示す図である。
【図7】本発明の例示的実施形態による、コンピュータ410の主なタスクを示す流れ図である。

【特許請求の範囲】
【請求項1】
第1のデータに適用された暗号ハッシュ関数の値を格納する第1の記憶場所と、
前記第1のデータの暗号化バージョンを格納する第2の記憶場所と
を備える装置。
【請求項2】
前記第1のデータは、(i)プロセッサと(ii)メモリの一方または両方を備えるシステムにアクセスするためのパスワードである請求項1に記載の装置。
【請求項3】
前記第1のデータの前記暗号化バージョンは、前記システムからアクセスできない第2のデータに基づくものである請求項2に記載の装置。
【請求項4】
前記第2のデータは第2のパスワードである請求項3に記載の装置。
【請求項5】
前記第1のパスワードおよび前記第2のパスワードは前記システムのユーザと関連付けられている請求項4に記載の装置。
【請求項6】
前記第1のデータの前記暗号化バージョンは、前記システムからアクセス可能であり、前記ユーザに知られていない第3のデータに基づくものでもある請求項5に記載の装置。
【請求項7】
前記第2のデータの暗号化バージョンを格納する第3の記憶場所
をさらに備える請求項6に記載の装置。
【請求項8】
前記第2のデータの前記暗号化バージョンは、前記第1のデータと前記第3のデータに基づくものである請求項7に記載の装置。
【請求項9】
前記第2のデータに適用された第2の暗号ハッシュ関数の値を格納する第3の記憶場所
をさらに備える請求項6に記載の装置。
【請求項10】
前記第1の暗号ハッシュ関数および前記第2の暗号ハッシュ関数は同じである請求項9に記載の装置。
【請求項11】
データに適用された暗号ハッシュ関数の値を生成するステップと、前記データの暗号化バージョンを生成するステップと
を含む方法。
【請求項12】
前記値を第1の記憶場所に格納するステップと、前記暗号化バージョンを第2の記憶場所に格納するステップ
の少なくとも1つをさらに含む請求項11に記載の方法。
【請求項13】
前記第1の記憶場所および前記第2の記憶場所は共通のアドレス空間を共用する請求項12に記載の方法。
【請求項14】
前記データはパスワードである請求項11に記載の方法。
【請求項15】
(a)データ処理システムにおいて、第1のパスワードpおよび第2のパスワードqを持つユーザから入力xを受け取るステップであって、前記第1のパスワードpには前記データ処理システムからアクセスできず、前記データ処理システムは、
(i)前記第1のパスワードpに適用された暗号ハッシュ関数hの値である、h(p)、および
(ii)暗号化が、
(1)前記第1のパスワードpと、
(2)前記データ処理システムからアクセス可能であり、前記ユーザに知られていないデータd
の組み合わせに基づくものである前記第2のパスワードqの暗号化バージョンq’
にアクセスすることができるステップと、
(b)前記入力xに適用された前記暗号ハッシュ関数hの値であるh(x)を生成するステップと、
(c)h(x)がh(p)と等しいときに、前記入力xと前記データdに基づいて前記暗号化バージョンq’を解読して前記第2のパスワードqを取得するステップと
を含む方法。
【請求項16】
前記データ処理システムは前記第1のパスワードpを揮発性メモリのみに書き込む請求項15に記載の方法。
【請求項17】
前記データ処理システムは前記第2のパスワードqを揮発性メモリのみに書き込む請求項15に記載の方法。
【請求項18】
前記データ処理システムは前記第1のパスワードpの暗号化バージョンp’にアクセスすることができる請求項15に記載の方法。
【請求項19】
前記暗号化バージョンp’は、前記第2のパスワードqと前記データdに基づくものである請求項18に記載の方法。
【請求項20】
前記データ処理システムは、前記第2のパスワードqに適用された暗号ハッシュ関数gの値であるg(q)にアクセスすることができる請求項15に記載の方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2007−95077(P2007−95077A)
【公開日】平成19年4月12日(2007.4.12)
【国際特許分類】
【出願番号】特願2006−267617(P2006−267617)
【出願日】平成18年9月29日(2006.9.29)
【出願人】(506079711)アバイア テクノロジー エルエルシー (45)
【Fターム(参考)】