(57)【要約】【課題】ユーザが記憶しやすく、攻撃者に盗まれにくく、毎回異なるパスワードでユーザを認証するコンピュータを提供する。【解決手段】ユーザは、登録パスワードの文字列そのものではなく、キーボードのキー配列で形成可能なイメージ・パターン１０３と、イメージ・パターンを形成するときのキーの入力順序を表すイメージ・シーケンス１０５からなるパスワード・イメージ１０１、および指定順位１０７を記憶する。ＰＣ１０が指定順位に割り当てる特定キー１０９を生成すると、ユーザはこの特定キーとパスワード・イメージと指定順位とに基づいて入力パスワード２０１をキーボードから入力する。ＰＣは、特定キーと指定順位と登録パスワード７３から抽出したパスワード・イメージとに基づいて認証パスワードを生成し、認証パスワードと入力パスワードとを比較してユーザの認証を行う。【選択図】図３
2008181440.tif 000002
【特許請求の範囲】
【請求項１】
キーボードを備えるコンピュータ・システムであって、
前記キーボードのキー配列で形成可能なイメージ・パターンと前記キー配列に前記イメージ・パターンを形成するときのキーの入力順序を表すイメージ・シーケンスを属性として備えるパスワード・イメージに基づいて入力された登録パスワードを格納するパスワード格納部と、
前記イメージ・シーケンスの特定の順位として選択された指定順位に割り当てる特定キーを生成する特定キー生成部と、
前記特定キーと前記パスワード・イメージと前記指定順位とに基づいて前記キーボードから入力された入力パスワードを受け取るパスワード受取部と、
前記特定キーと前記指定順位と前記登録パスワードから抽出したパスワード・イメージとに基づいて認証パスワードを生成し該認証パスワードと前記入力パスワードとを比較する認証部と
を有するコンピュータ・システム。
【請求項２】
前記イメージ・パターンが、前記キーボードのキー配列で形成可能な文字を表す請求項１記載のコンピュータ・システム。
【請求項３】
前記イメージ・パターンが、前記キーボードのキー配列で形成可能な図形を表す請求項１記載のコンピュータ・システム。
【請求項４】
前記入力パスワードを一方向関数で暗号化する暗号化部を含み、前記認証部が前記一方向関数で暗号化された認証パスワードと前記一方向関数で暗号化された入力パスワードとを比較する請求項１記載のコンピュータ・システム。
【請求項５】
前記特定キー生成部が、毎回異なる特定キーを生成する請求項１記載のコンピュータ・システム。
【請求項６】
前記特定キー生成部が、毎回異なる指定順位を生成する請求項１記載のコンピュータ・システム。
【請求項７】
前記特定キー生成部が、前記キー配列上に前記イメージ・パターンを形成することが可能な特定キーを生成する請求項１記載のコンピュータ・システム。
【請求項８】
前記特定キー生成部が、前記入力パスワードを入力するときにユーザが前記キーボードに指定する入力モードを生成する請求項１記載のコンピュータ・システム。
【請求項９】
前記指定順位が、前記イメージ・シーケンスの第１順位または最終順位である請求項１記載のコンピュータ・システム。
【請求項１０】
前記入力パスワードがパワーオン・パスワードである請求項１記載のコンピュータ・システム。
【請求項１１】
前記コンピュータ・システムがネットワークで相互に接続された複数のコンピュータで構成され、前記入力パスワードがネットワーク・パスワードである請求項１記載のコンピュータ・システム。
【請求項１２】
キーボードを備えるコンピュータ・システムであって、
前記キーボードのキー配列で形成可能なイメージ・パターンと前記キー配列に前記イメージ・パターンを形成するときのキーの入力順序を表すイメージ・シーケンスを属性として備えるパスワード・イメージに基づいて入力された登録パスワードを受け取り該登録パスワードを一方向関数で暗号化して格納するパスワード格納部と、
前記イメージ・シーケンスの特定の順位として選択された指定順位に割り当てる特定キーを生成する特定キー生成部と、
前記特定キーと前記パスワード・イメージと前記指定順位とに基づいて前記キーボードから入力された入力パスワードを受け取るパスワード受取部と、
前記入力パスワードから抽出したパスワード・イメージに適用可能な前記キー配列のキーを順番に選択して複数の入力パスワードを生成する入力パスワード生成部と、
前記複数の入力パスワードをそれぞれ前記一方向関数で暗号化して複数の暗号化入力パスワードを生成し、該複数の暗号化入力パスワードと暗号化された前記登録パスワードとを順次比較する認証部と
を有するコンピュータ・システム。
【請求項１３】
前記特定キー生成部が、毎回異なる特定キーおよび毎回異なる指定順位を生成する請求項１２記載のコンピュータ・システム。
【請求項１４】
キーボードを備えるコンピュータ・システムにパスワードを格納する方法であって、
前記キーボードのキー配列で形成可能なイメージ・パターンと前記キー配列に前記イメージ・パターンを形成するときのキーの入力順序を表すイメージ・シーケンスを属性として備えるパスワード・イメージを用意するステップと、
前記パスワード・イメージに基づいてパスワードを入力するステップと、
前記入力されたパスワードを格納するステップと
を備えるパスワードの格納方法。
【請求項１５】
キーボードを備えるコンピュータ・システムにおいてユーザを認証する方法であって、
前記キーボードのキー配列で形成可能なイメージ・パターンと前記キー配列に前記イメージ・パターンを形成するときのキーの入力順序を表すイメージ・シーケンスを属性として備えるパスワード・イメージを提供するステップと、
前記パスワード・イメージに基づいて前記キーボードから入力された登録パスワードを格納するステップと、
前記イメージ・シーケンスの特定の順位として選択された指定順位に割り当てる特定キーをユーザに提供するステップと、
前記特定キーと前記指定順位と前記登録パスワードから抽出したパスワード・イメージとに基づいて認証パスワードを生成するステップと、
前記特定キーと前記パスワード・イメージと前記指定順位とに基づいて前記キーボードから入力された入力パスワードを受け取るステップと、
前記認証パスワードと前記入力パスワードとを比較するステップと
を有する認証方法。
【請求項１６】
前記指定順位および前記特定キーまたはその何れか一方を、認証ごとに異なる値とするステップを含む請求項１５記載の認証方法。
【請求項１７】
前記指定順位が前記コンピュータ・システムからユーザに前記特定キーと同時に提供される請求項１６記載の認証方法。
【請求項１８】
キーボードを備えるコンピュータ・システムにおいてユーザを認証する方法であって、
前記キーボードのキー配列で形成可能なイメージ・パターンと前記キー配列に前記イメージ・パターンを形成するときのキーの入力順序を表すイメージ・シーケンスを属性として備えるパスワード・イメージを提供するステップと、
前記パスワード・イメージに基づいて前記キーボードから入力された登録パスワードを一方向関数で暗号化して格納するステップと、
前記イメージ・シーケンスの特定の順位として選択された指定順位に割り当てる特定キーをユーザに提供するステップと、
前記特定キーと前記パスワード・イメージと前記指定順位とに基づいて前記キーボードから入力された入力パスワードを受け取るステップと、
前記入力パスワードから抽出したパスワード・イメージに適用可能な前記キー配列のキーを順番に選択して複数の入力パスワードを生成するステップと、
前記複数の入力パスワードをそれぞれ前記一方向関数で暗号化して複数の暗号化入力パスワードを生成するステップと、
前記複数の暗号化入力パスワードと暗号化された前記登録パスワードとを順次比較するステップと
を有する認証方法。
【請求項１９】
キーボードを備えるコンピュータ・システムにおいて実行されるプログラムであって、前記コンピュータ・システムに、
前記キーボードのキー配列で形成可能なイメージ・パターンと前記キー配列に前記イメージ・パターンを形成するときのキーの入力順序を表すイメージ・シーケンスを属性として備えるパスワード・イメージを認識する機能と、
前記パスワード・イメージに基づいて前記キーボードから入力された登録パスワードを格納する機能と、
前記イメージ・シーケンスの特定の順位として選択された指定順位に割り当てる特定キーをユーザに提供する機能と、
前記特定キーと前記指定順位と前記登録パスワードから抽出したパスワード・イメージとに基づいて認証パスワードを生成する機能と、
前記特定キーと前記パスワード・イメージと前記指定順位とに基づいて前記キーボードから入力された入力パスワードを受け取る機能と、
前記認証パスワードと前記入力パスワードとを比較する機能と
を実現させるプログラム。
【請求項２０】
キーボードを備えるコンピュータ・システムにおいて実行されるプログラムであって、前記コンピュータ・システムに、
前記キーボードのキー配列で形成可能なイメージ・パターンと前記キー配列に前記イメージ・パターンを形成するときのキーの入力順序を表すイメージ・シーケンスを属性として備えるパスワード・イメージを提供するステップと、
前記パスワード・イメージに基づいて前記キーボードから入力された登録パスワードを一方向関数で暗号化して認識する機能と、
前記イメージ・シーケンスの特定の順位として選択された指定順位に割り当てる特定キーをユーザに提供する機能と、
前記特定キーと前記パスワード・イメージと前記指定順位とに基づいて前記キーボードから入力された入力パスワードを受け取る機能と、
前記入力パスワードから抽出したパスワード・イメージに適用可能な前記キー配列のキーを順番に選択して複数の入力パスワードを生成する機能と、
前記複数の入力パスワードをそれぞれ前記一方向関数で暗号化して複数の暗号化入力パスワードを生成する機能と、
前記複数の暗号化入力パスワードと暗号化された前記登録パスワードとを順次比較する機能と
を実現させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータのセキュリティを確保する技術に関し、さらに詳細にはユーザによるパスワード入力の負担を軽減しつつセキュリティを確保する技術に関する。
【背景技術】
【０００２】
パーソナル・コンピュータ（以下ＰＣという。）を利用するときに、正当なユーザによる利用だけを許容するために、ＰＣはユーザに対してパスワードを要求して本人の認証を行うことが多い。たとえば、ＰＣを起動するときにユーザは、ＢＩＯＳ（Basic Input/Output System）に設定したパワーオン・パスワード（以下ＰＯＰという。）の入力を要求される場合がある。ＰＯＰが誤って入力されると、ＢＩＯＳは設定を行ったりオペレーティング・システム（以後ＯＳという）を起動したりすることを禁止して、ユーザに対してＰＣの使用を許可しない。ＰＣが起動して、ＯＳが立ち上がった後は、ユーザはＯＳにログオンするためのユーザＩＤおよびパスワード（以後ログオン・パスワードという）の入力を要求される場合がある。ログオン・パスワードが誤って入力されると、ユーザはＯＳを利用することができず、ＯＳ上で動作するアプリケーション・プログラムを利用した作業を行うことができない。さらに、ネットワーク上の共有資源（共有ドライブ、共有フォルダ、共有プリンタなど）の利用、インターネットへの接続、電子メールの利用、特定のウェブサイトの利用、特定のオンライン・サービスの利用などのたびに、それぞれに対して設定されたユーザＩＤおよびパスワードの入力が要求される場合がある。いずれの場合も、利用したいサービスに対するユーザＩＤおよびパスワードが誤って入力されると、ユーザはそのサービスを利用することができない。
【０００３】
パスワードは、キーボードを介してユーザが入力する文字列である。パスワードは、該当するユーザのみが記憶および入力することができて、攻撃者が推測できない文字列である必要がある。近年は特に、ユーザＩＤおよびパスワードを入力して利用するウェブサイトおよびオンライン・サービスが増えている。その一方で、ＰＣに搭載された磁気ディスク装置の中に記憶されたり、ネットワークを介して交換されたりする情報の中には、機密性の高いものが多くなっている。機密性の高い情報とは、たとえば個人のプライバシーに関わる情報、業務上の機密に関わる情報、あるいはユーザ認証が必要なネットワークもしくはオンライン・サービスなどにアクセスするための認証情報などである。パスワードが悪意のある第三者に漏洩すると、これらの機密性の高い情報が漏洩することになり、悪用もしくは改竄などをされる危険性が極めて高くなるため、その被害は重大なものとなる。従って、各々のユーザがパスワードを厳重に管理することの重要性は、ますます高まっている。
【０００４】
なお、キーボードを介してパスワードを入力する技術としては、以下のような文献がある。特許文献１は、システム側が画面にランダムに表示した数字の中で特定の位置に表示されたものをパスワードとして入力するという方法について開示している。特許文献２は、システム側が表示した文字列を、ユーザが乱数表を利用して変換してパスワードとして入力するという方法について開示している。特許文献３は、たとえばキャッシュカードのカード番号の特定の桁をシステム側が指定し、それをパスワードとして入力するという方法について開示している。
【特許文献１】特開２００５−０２５５２１号公報
【特許文献２】特開平１０−３０７７９９号公報
【特許文献３】特開２００５−２２８１２１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
他人のパスワードを盗もうとする攻撃者がパスワードを盗む手法の中で、代表的なものにはたとえば、ユーザの背後や周辺などから、ユーザが実際にパスワードを入力する際の指の位置や動きを観察してパスワードを推測する、ソーシャル・ハッキング的手法がある。ユーザは、同一のパスワードを使い続けている様子を攻撃者により複数回観察されると、パスワードを盗まれる危険性がさらに高まる。従って、この手法に対して有効な対策は、頻繁にパスワードを変更し、同一のパスワードを使い続けないことであるとされる。しかし、そのことはユーザにとって負担となる。
【０００６】
また、辞書攻撃や総当たり攻撃（ブルートフォース・アタック）などのように、ソフトウェアによって文字や単語などを組み合わせて多数のパスワードを生成して順次入力していくことによってパスワードを盗む手法もある。辞書攻撃は、辞書に載っている単語を組み合わせてパスワードを生成するのに対し、総当たり攻撃は全ての文字を組み合わせてパスワードを生成するので、総当たり攻撃で生成されるパスワードの数は辞書攻撃と比べて膨大である。さらに、パスワードを長くしたり、使用する文字種（アルファベットの大文字と小文字、数字、記号など）を多くしたりすると、攻撃のために生成されるパスワードの数はさらに膨大になる。生成されるパスワードの数が多いほど、それらを順次入力する必要があるので、攻撃者がそのような手法によってパスワードを割り出すには時間がかかることになる。
【０００７】
従って、パスワードとして望ましい文字列は、「意味のない文字列」、「ある程度以上の長さを持った文字列」、または「多くの文字種を組み合わせた文字列」などのような条件を満たす文字列であるとされている。しかし、それらの条件を満たす文字列はユーザにとっては記憶しにくいものであるので、そのような文字列をパスワードとして使用することはユーザにとっては負担である。逆に、「辞書に載っている、意味のある単語である文字列」、「短い文字列」、または「使用する文字種を数字などに限定した文字列」などに該当する文字列を用いたパスワードは辞書攻撃や総当たり攻撃によって盗まれやすいが、ユーザにとっては記憶しやすいので、パスワードとしてそのような文字列が多く使用されているのが実情である。また、頻繁にパスワードを変更することは、ある時点で有効であるパスワードを辞書攻撃や総当たり攻撃によって盗むことができたとしても、盗まれたパスワードはその後短時間に無効となるので、それらの手口に対しても有効な対策となる。しかし、やはりそれは前述のようにユーザにとって負担となる。
【０００８】
さらに、ユーザが入力したパスワードを、ユーザが操作するそのコンピュータに常駐している不正なソフトウェアによって記録することにより、パスワードを盗む手法もある。たとえば、ユーザが使用するＰＣにキー・ロガーと呼ばれるソフトウェアが常駐させられている場合、そのＰＣのキーボードを介して入力された文字は全てキー・ロガーによって記録され、ネットワークなどを介して攻撃者に送られることになる。「ＰＣのキーボードを介して入力された文字」には、ユーザが入力したパスワードも当然含まれることになるので、攻撃者は容易にそのパスワードを得ることができる。
【０００９】
また、ネットワークを介して交換されるパケットを、同一ネットワーク上にある別のコンピュータやネットワーク機器などで盗聴することによってパスワードを盗む、スニファリングと呼ばれる手法もある。たとえば電子メールの標準的なプロトコルのＰＯＰ３などでは、暗号化されていないパスワードがそのままパケットに含まれるので、攻撃者はパケットの盗聴によってそのパスワードを容易に得ることができる。さらに、スニファリングによって得られたパスワードが暗号化されている場合には、攻撃者は反射攻撃（リプレイ・アタック）という手法を使用することができる。その暗号化されたパスワードを復号化せず、認証側のシステムにそのまま再送信すれば、認証側はそれを正しく復号化して正しいパスワードが得られたとみなすので、攻撃者は正しい認証を得ることができる。頻繁にパスワードを変更することは、辞書攻撃および総当たり攻撃への対策について述べたのと同じ理由で、キー・ロガーおよびスニファリングなどのような手法に対しても有効な対策となるが、やはり前述のようにユーザにとって負担となる。
【００１０】
以上で述べたように、文字列で構成されたパスワードは、攻撃者に盗まれる危険性を多くはらんでいる。しかも、その危険性を軽減してセキュリティを確保しようとすると、パスワードは記憶しにくいものとなり、また頻繁にパスワードを変更する必要があるので、ユーザに大きな負担を強いることになる。このため、パスワード以外のユーザ認証方法を利用する場合がある。たとえばトークン、スマートカードなどのような電子情報によるユーザ認証、指紋、静脈、虹彩などのような生体情報によるユーザ認証（バイオメトリクス認証）、あるいは筆跡を認識することによるユーザ認証などがある。しかし、それらはいずれも認証情報の入力などに特別な装置を必要とする。また、毎回異なるパスワードを使用するワンタイム・パスワードと呼ばれる方法もある。しかしこれにも、毎回違うパスワードを生成して入力するために特別な装置が必要である。
【００１１】
一方、特許文献１〜３に示した技術は、いずれもキーボードを介してパスワードを入力するものであり、パスワードの生成や認証情報の入力などに特別な装置を必要とはせずに、パスワードとして望ましいとされる文字列を入力することができる。しかし、それらの技術では、システム側が画面に表示した内容に基づき、ユーザは一定の法則で一文字ずつ文字列を変換してパスワードを生成し、それを入力する必要がある。これはユーザに煩雑な思考を強いることになり、かつパスワードの入力に時間がかかることになる。パスワードを長くすると、これらのデメリットはさらに大きくなる。
【００１２】
そこで本発明の目的は、ユーザが記憶しやすく、かつ攻撃者に盗まれにくいパスワードでユーザを認証するコンピュータ・システムを提供することにある。さらに本発明の目的は、ユーザの負担を軽減しながら、毎回異なるパスワードを入力してユーザを認証するコンピュータ・システムを提供することにある。さらに本発明の目的は、そのようなコンピュータ・システムにおいて実行されるユーザの認証方法、およびそのような認証方法を実現するコンピュータ・プログラムを提供することにある。
【課題を解決するための手段】
【００１３】
本発明の第１の側面は、キーボードを備えるコンピュータ・システムを提供する。このコンピュータ・システムは、パスワードをパスワード・イメージとして構成してユーザを認証する。ここでいうパスワード・イメージとはキーボードのキー配列で形成可能なイメージ・パターンと、このキー配列にイメージ・パターンを形成するときのキーの入力順序を表すイメージ・シーケンスを属性として備える。このコンピュータ・システムは、そのパスワード・イメージに基づいて入力された登録パスワードをパスワード格納部に格納し、イメージ・シーケンスの特定の順位として選択された指定順位に割り当てる特定キーを特定キー生成部で生成する。ユーザが、この特定キーとパスワード・イメージと指定順位とに基づいて入力パスワードをキーボードから入力しパスワード受取部がその入力パスワードを受け取る。そして認証部が、特定キーと指定順位と登録パスワードから抽出したパスワード・イメージとに基づいて認証パスワードを生成し、認証パスワードと入力パスワードとを比較してユーザの認証を行う。
【００１４】
ユーザは、登録パスワードの文字列そのものを記憶する必要はなく、パスワード・イメージおよび指定順位を記憶していればよい。指定順位は、コンピュータ・システムがユーザに毎回提供するようにすれば、ユーザが記憶しておく必要はない。ユーザは、コンピュータ・システムから提示された特定キーを、指定順位に当てはめるようにしてパスワード・イメージを入力すれば、パスワードとして望ましい「意味のない文字列」、「ある程度以上の長さを持った文字列」、または「多くの文字種を組み合わせた文字列」などの条件を満たした文字列で構成された入力パスワードを、容易に入力することができる。
【００１５】
なお、イメージ・パターンは、キーボードのキー配列で形成可能な文字もしくは図形とすれば、イメージ・シーケンスと共にユーザが記憶しやすいので、よりユーザの負担を軽減することができる。また、入力パスワードを一方向関数で暗号化し、認証パスワードと入力パスワードの両方を一方向関数で暗号化してから比較するようにすれば、それらのパスワードが認証部に送られるまでの経路において盗まれる危険性を軽減できる。
【００１６】
また、コンピュータ・システムの特定キー生成部が毎回異なる特定キーを生成するようにすれば、入力パスワードが毎回異なるものになるので、パスワードを盗もうとする多くの手口に対して有効な対策となる。同様に、毎回異なる指定順位を生成するようにしても、入力パスワードは毎回異なるものになる。中でも、イメージ・シーケンスの第１順位または最終順位を指定順位とすれば、ユーザが入力パスワードを入力しやすくなる。また、特定キー生成部は、キー配列上でイメージ・パターンの通りにキーを入力することが実際に可能なように、特定キーを生成する。さらに、特定キーと同時に、入力パスワードを入力するときにユーザがキーボードに指定する入力モードを特定キー生成部が生成するようにすれば、パスワードに使用される文字種をさらに増やすことができるので、パスワードとしてより望ましい文字列を入力することができる。
【００１７】
ここでいうコンピュータ・システムは、１台のコンピュータであってもよく、またネットワークで相互に接続された複数のコンピュータであってもよい。１台のコンピュータである場合は、ＰＯＰなどに本発明を適用することができる。ネットワークで相互に接続された複数のコンピュータである場合は、ネットワーク・パスワードなどに本発明を適用することができる。
【００１８】
本発明の第２の側面は、キーボードを備える他のコンピュータ・システムを提供する。第１の側面では、コンピュータ・システムのパスワード格納部は暗号化されていない登録パスワードを格納しているのに対し、第２の側面では一方向関数で暗号化された登録パスワードを格納する。特定キー生成部およびパスワード受取部は第１の側面と同様の構成であるが、入力パスワード生成部が入力された入力パスワードからパスワード・イメージを抽出し、そのパスワード・イメージに適用可能なキー配列のキーを順番に選択して、複数の入力パスワードを生成する。認証部は、生成された複数の入力パスワードをそれぞれ登録パスワードの暗号化に使用した一方向関数で暗号化して複数の暗号化入力パスワードを生成し、それらの複数の暗号化入力パスワードと暗号化された登録パスワードとを順次比較してユーザの認証を行う。登録パスワードを一方向関数で暗号化してからコンピュータ・システムに格納することにより、パスワード格納部から直接登録パスワードを盗まれる危険性を軽減することができる。また、コンピュータ・システムが登録パスワードを暗号化して記憶することを要求する場合においても、本発明を適用することができる。
【００１９】
また本発明は、パスワードを登録する方法およびユーザを認証する方法として表現することもできる。さらに、それらの方法をコンピュータに実現させるコンピュータ・プログラムを提供することもできる。
【発明の効果】
【００２０】
本発明により、ユーザが記憶しやすく、かつ攻撃者に盗まれにくいパスワードで、ユーザを認証するコンピュータ・システムを提供することができた。さらに本発明により、ユーザの負担を軽減しながら毎回異なるパスワードを入力してユーザを認証するコンピュータ・システムを提供することができた。さらに本発明により、そのようなコンピュータ・システムにおいて実行されるユーザの認証方法、およびそのような認証方法を実現するコンピュータ・プログラムを提供することができた。
【発明を実施するための最良の形態】
【００２１】
本発明は、コンピュータがパスワードによってユーザの認証を行う場合の多くについて適用することが可能であるが、ここではまず、ＰＣを起動する際に入力するＰＯＰに本発明を適用した場合の実施形態について示す。図１は、本発明の実施形態に適用するＰＣ１０のシステム構成を示す概略ブロック図である。ＰＣ１０は、図１に示す構成要素のすべてを１つの筐体に含んでいてもよいし、ディスプレイ１９およびキーボード３３のいずれか片方もしくは両方が外付けであってもよい。ＣＰＵ１１は、ＰＣの中枢機能を担う演算処理装置で、ＯＳ、ＢＩＯＳ、デバイス・ドライバ、あるいはアプリケーション・プログラムなどを実行する。ＣＰＵブリッジ１３は、メイン・メモリ１５へのアクセス動作を制御するためのメモリ・コントローラ機能や、接続されるデバイス間のデータ転送速度の差を吸収するデータ・バッファ機能などを含んだ構成となっている。メイン・メモリ１５は、ＣＰＵ１１が実行するプログラムの読み込み領域、処理データを書き込む作業領域として利用される書き込み可能メモリである。ビデオ・カード１７は、ビデオ・チップ（図示せず）およびＶＲＡＭ（図示せず）を有し、ＣＰＵ１１からの描画命令を受けて描画すべきイメージを生成しＶＲＡＭに書き込み、ＶＲＡＭから読み出されたイメージを描画データとしてディスプレイ１９に送る。
【００２２】
Ｉ／Ｏブリッジ２１は、ＣＰＵブリッジ１３と同様にチップセットを構成するデバイス・コントローラである。Ｉ／Ｏブリッジ２１は、ＩＤＥ(Integrated Device Electronics)インターフェース機能を備えており、磁気ディスク装置(ＨＤＤ)２３、ＣＤドライブ、ＤＶＤドライブ等のディスク駆動装置（図示せず）が接続される。ＨＤＤ２３には、ＯＳ、デバイス・ドライバ、アプリケーション・プログラムなどがインストールされている。また、Ｉ／Ｏブリッジ２１は、ＬＰＣバス２５を介して、高速なデータ転送を要求しないデバイスに接続される。ＬＰＣバス２５には、ＢＩＯＳフラッシュＲＯＭ２７、セキュアＮＶＲＡＭ（Non-Volatile RAM、不揮発性ＲＡＭ）２９、Ｉ／Ｏコントローラ３１が接続されている。ＢＩＯＳフラッシュＲＯＭ２７およびセキュアＮＶＲＡＭ２９については後述する。Ｉ／Ｏコントローラ３１にはキーボード３３を始めとする入出力機器（図示せず）が接続される。
【００２３】
なお、図１は本実施形態を説明するために必要なハードウェアの構成および接続関係を簡素化して記載したに過ぎないものである。ここまでの説明で言及した以外にも、たとえばＵＳＢ、ＣａｒｄＢｕｓ、ｍｉｎｉＰＣＩなどのインターフェースおよびそれらを介して接続される周辺機器、有線ＬＡＮアダプタ、無線ＬＡＮモジュール、電源装置、温度などの動作環境を制御するエンベデッド・コントローラなど、ＰＣ１０を構成するには多くのデバイスが使われる。しかしそれらは当業者には周知であり本発明の理解のために特に説明を必要としないので、ここでは詳しく言及しない。もちろん、図で記載した複数のブロックを１個の集積回路もしくは装置としたり、逆に１個のブロックを複数の集積回路もしくは装置に分割して構成したりすることも、当業者が任意に選択することができる範囲においては本発明の範囲に含まれる。
【００２４】
図２は、ＰＣ１０を構成するＢＩＯＳフラッシュＲＯＭ２７およびセキュアＮＶＲＡＭ２９の内部構成を示す図である。図２（Ａ）に示すＢＩＯＳフラッシュＲＯＭ２７は、不揮発性で記憶内容の電気的な書き替えが可能なメモリであり、システムの起動および管理に使われる基本プログラムであるシステムＢＩＯＳ５１、本発明の実施の形態に係るソフトウェアであるユーザ認証モジュール５３およびパスワード生成モジュール５５（これらについて詳しくは後述）、およびそれらの処理に付随して使用されるソフトウェアである乱数生成モジュール５７および暗号化モジュール５９などが記憶されている。暗号化モジュール５９は、入力された文字列を暗号技術的ハッシュ関数などの一方向関数によって暗号化して出力する。パスワード生成モジュール５５は、キー配列情報６１を含む。
【００２５】
図２（Ｂ）に示すセキュアＮＶＲＡＭ２９は、ＰＣの電源を切っても記憶された内容が消失しないように電池でバックアップされ、記憶された内容をシステムＢＩＯＳ５１による操作によって読み書き禁止に設定することのできるＲＡＭである。セキュアＮＶＲＡＭ２９がシステムＢＩＯＳ５１の操作によって一度読み書き禁止に設定されると、ＰＣの電源がリセットされるまでは読み書き禁止は解除されない。ＢＩＯＳは、起動ルーチンを終了して制御をＯＳに移行するときにセキュアＮＶＲＡＭ２９の読み書きを禁止する。よって、読み書き禁止にされたセキュアＮＶＲＡＭ２９に記録された内容を外部から読み取ったり、ＯＳの動作環境下でセキュアＮＶＲＡＭ２９の記憶内容を読み取ったりすることは困難である。セキュアＮＶＲＡＭ２９は、ＰＣのデバイス・コントローラ（ＣＰＵブリッジ１３およびＩ／Ｏブリッジ２１）の設定情報７１、登録パスワード７３、およびパスワード・イメージ情報７５を記憶している。設定情報７１の内容としては、主にディスク装置の起動順序やドライブ番号、各周辺機器の接続方法やデータ転送に関するパラメータなどがある。登録パスワード７３、およびパスワード・イメージ情報７５については後述する。また、ＰＣによっては、登録パスワード７３をセキュアＮＶＲＡＭ２９ではなく、Ｉ／Ｏブリッジ２１内部のレジスタに記憶しているものもあるが、本実施形態においてはセキュアな記憶領域であれば登録パスワードの記憶に利用することができる。
【００２６】
図３は、本実施の形態でユーザが記憶し、入力する入力パスワードの構成について示す概念図である。図３（ａ）は、ＰＣ１０のキーボード３３のキー配列１００を示している。キー配列１００は、タイプライターおよびコンピュータのキーボードなどで一般的である、ＱＷＥＲＴＹ配列と呼ばれるキー配列を採用している。以後ここでは、ＱＷＥＲＴＹ配列を採用したキーボードの一つである日本語１０６／１０９キーボードにおける例について説明する。なお、図３（ａ）では、一般的な文字および記号を入力する文字キーのみを図示している。また、図３（ａ）では、キーボードの入力モードを英数モードとし、シフトやＣＡＰＳ  ＬＯＣＫなどの修飾キーを押していない状態で、各々の文字キーを押したときに入力される文字のみを、キートップの文字として表示している。
【００２７】
図３（ｂ）および図３（ｃ）は、ユーザがＰＣ１０に記憶させる入力パスワードの一例について示す。この例では、図３（ｂ）に示すように、ユーザはＰＣ１０のキーボード３３に半角英数モードで「ｅｄｃｆｇｙｈｎ」という入力パスワードを入力して記憶させる。ユーザは、キー配列１００の上で、この入力パスワードを入力する際に押される各々のキーの配置を、アルファベット大文字の「Ｈ」に類似した形状として選択し、特定の順番でキーを入力してキーボード３３にパターンを具現化する。このパスワード・イメージは、この形状とキーの入力順序という属性を備えており、キー配列の特定のキーからは独立した抽象的な存在で、キーボード上の様々なキー配列を利用して具現化することができる。
【００２８】
パスワード・イメージ１０１は、形状を表すイメージ・パターン１０３と、入力順序を表すイメージ・シーケンス１０５という２種類の情報で表現することができる。イメージ・パターン１０３は、パスワードを入力する際に押される各々のキーの位置関係である。この例では「Ｈ」に類似した形状として、この位置関係を特定している。イメージ・シーケンス１０５は、この位置関係の中で、パスワードを入力する際に各々のキーが押される順序である。ユーザは選択したイメージ・パターン１０３に対して、筆順などのような記憶しやすい順番をイメージ・シーケンス１０５に選択してイメージ・パターン１０３に含まれる各キーを入力すると予想されるが、イメージ・シーケンス１０５はユーザが任意に選択することができる。
【００２９】
図３（ｃ）では丸数字でイメージ・シーケンス１０５を示している。ユーザは、丸数字の１〜８の順番で、各々のキーを押して入力パスワードを入力する。ユーザがＰＣ１０にイメージ・シーケンス１０５の順番でイメージ・パターン１０３を入力すればこれが登録パスワードとして登録され、システムは登録パスワードからパスワード・イメージ１０１を抽出することができる。指定順位１０７は、パスワード・イメージ１０１からは独立して指定されるもので、イメージ・シーケンス１０５の中で、パスワードを入力する際に基準となる入力順位である。指定順位１０７は、あらかじめＰＣ１０とユーザとの間で特定の順位に決めておいてもよいが、毎回システムがユーザに異なる順位を提示するようにしてもよい。ここではイメージ・シーケンス１０５の中で１番目に押されるキーを、指定順位１０７として指定し、ユーザは、パスワード・イメージ１０１とともに指定順位１０７を記憶しているものとする。
【００３０】
図３（ｄ）および（ｅ）は、図３（ｂ）および（ｃ）でＰＣ１０に登録した登録パスワードによって、ユーザの認証を行うときの例について示す。入力パスワードを入力させる際に、ＰＣ１０はキーボード３３上のキーのいずれかを特定キー１０９として指定し、ディスプレイ１９に特定キー１０９の文字を表示する。特定キー１０９として指定されるキーは、パスワード・イメージ１０１の中の指定順位１０７を特定キー１０９と一致させた場合に、パスワード・イメージ１０１に含まれる全てのキーが、キーボード３３のキー配列１００上の文字キーの範囲からはみ出すことなく入力可能であるように、選択される必要がある。この条件さえ満たせば、特定キー１０９は乱数などを使用してアトランダムに決定することができ、入力パスワードを毎回異なるキー入力で構成することができる。
【００３１】
ユーザは、その特定キー１０９が、自分の記憶している指定順位１０７に一致するようにして、パスワード・イメージ１０１に基づいてキーボード３３上の各々のキーを押して入力パスワードを入力する。図３（ｄ）は、「７」のキーが特定キー１０９として指定された場合のパスワードの入力である。特定キー１０９である「７」のキーを、指定順位１０７として指定されたイメージ・シーケンス１０５の中で１番目に押されるキーと一致させて、ユーザが記憶しているイメージ・パターン１０３およびイメージ・シーケンス１０５に基づいてキーを押していくと、「７ｕｊｉｏ０ｐ；」というパスワードが入力される。図３（ｅ）は、「２」のキーが特定キー１０９として指定された場合のパスワードの入力である。これも、前述と同じようにパスワード・イメージ、指定順位、および特定キーに基づいてユーザがキーを押していくと、「２ｗｓｅｒ５ｔｇ」という入力パスワードが入力される。ＰＣ１０は、登録パスワードからパスワード・イメージを認識することができるので、ユーザとの間で指定順位の共通認識が図られていれば、パスワード・イメージ、指定順位、および特定キーに基づいて入力された入力パスワードの文字列をあらかじめ計算することができる。したがって、ＰＣ１０は、特定キー１０９にパスワード・イメージ１０１および指定順位１０７を適用した入力パスワードが入力されたと判断した場合に、ユーザを正しく認証する。その認証にかかる処理については後述する。
【００３２】
ユーザは、「ｅｄｃｆｇｙｈｎ」という、意味のない文字列を記憶することは困難である。しかし、「Ｈ」に類似した形状をイメージ・パターン１０３として記憶することは比較的容易である。また、パスワードの字数が長くなっても、イメージ・パターン１０３の形状が変わるだけである。さらに、特定キー１０９として指定されるキーによっては、そのパスワード・イメージ１０１によって押される文字キーに、アルファベットのキーだけでなく、数字や記号などのキーが含まれる場合も出てくる。従って、実際に押されるキーの文字とは関係ないパスワード・イメージ１０１および指定順位１０７を記憶することによって、ユーザはパスワードとして望ましい文字列の条件である「意味のない文字列」、「ある程度以上の長さを持った文字列」、または「多くの文字種を組み合わせた文字列」などの条件を満たした文字列を容易に生成することができる。これは、パスワードを辞書攻撃や総当たり攻撃などによって盗まれにくくすることに対して有効である。
【００３３】
また、ＰＣ１０が特定キー１０９として毎回異なるキーを指定することにより、パスワードとして実際に入力される文字列を毎回異なるものにすることができる。入力されるパスワードが毎回異なるものとなれば、ユーザがパスワードを入力するときにキーボード３３に触れる位置が毎回異なるので、攻撃者がパスワードを入力するユーザを観察することによってパスワードを盗むことは難しくなる。また、辞書攻撃や総当たり攻撃、あるいはキー・ロガーおよびスニファリングなどによって、攻撃者がある時点で有効な入力パスワードの文字列を盗むことができたとしても、パスワード・イメージ１０１と指定順位１０７を盗まない限り、ＰＣ１０から前回と異なる特定キーが指定されたときに有効な入力パスワードを生成することはできない。さらに、特許文献１〜３に示した技術で一文字ずつ一定の法則に基づいて文字列を変換してパスワードを生成することが煩雑で時間がかかるのに対して、特定キー１０９にパスワード・イメージ１０１および指定順位１０７を適用することにより、本実施形態ではユーザは毎回異なるパスワードを短時間で容易に生成して入力することが可能である。しかも、特別な装置などは必要なく、標準的なキーボード３３のみで本実施形態によるパスワードの入力が可能である。
【００３４】
図４は、パスワード・イメージの変型について示す概念図である。図４（ａ）は、図３（ｂ）および図３（ｃ）と同一のイメージ・パターン１０３で、イメージ・シーケンス１１５を図３（ｂ）および図３（ｃ）のイメージ・シーケンス１０５と異なる入力順序とした例である。同一のイメージ・パターンに対して、イメージ・シーケンスは複数採用することが可能であるので、ユーザが記憶して再現できる範囲でなるべく複雑な入力順序を取ることが望ましい。また、図３で示した例では、指定順位１０７をイメージ・シーケンスの中で１番目に押されるキーとしたが、必ずしもそうである必要はなく、たとえば最後に押されるキーが指定順位であってもよいし、それら以外のキーであってもよい。これも、ユーザが記憶してイメージ・シーケンス１０５を再現できる範囲で適宜変更できる。さらに、ユーザがイメージ・シーケンスを間違えにくくするという意味で、イメージ・シーケンスの中で複数のキーを指定順位とすることもできる。ちなみに図４（ａ）では、イメージ・シーケンス１１５の中で最後に押されるキーを指定順位１１７としている。
【００３５】
指定順位を毎回同じ順位とせず、認証ごとに毎回異なる順位を指定するには、たとえば図３（ｂ）および図３（ｃ）に示したパスワード・イメージ１０１で、ユーザに「ｅｄｃｆｇｙｈｎ」という文字列を入力させようとする場合、ある時には特定キーを「３文字目がｃ」として指定し、別の時には「６文字目がｙ」として指定するなどのようなことができる。あるいは、特定キーは固定して、ＰＣ１０が毎回指定順位を変更するようにしてもよい。さらに、特定キーと同時に、キーボード３３の入力モードも、毎回異なるモードをアトランダムに指定させることができる。たとえば、キーボード３３を英数モードとして、図３（ｂ）および図３（ｃ）に示したパスワード・イメージで、シフトやＣＡＰＳ  ＬＯＣＫなどの修飾キーを押していない状態で「ｅｄｃｆｇｙｈｎ」と入力できるが、キーボード３３をＣＡＰＳ  ＬＯＣＫキーを押した状態にして同一のシーケンスで同一のキーを押すと、入力される文字列は「ＥＤＣＦＧＹＨＮ」となる。同様に、キーボード３３をカナモードにすると、入力される文字列は「イシソハキンクミ」となる。これも、毎回異なる文字列をキーワードとして入力できるようにするという意味で有用である。以後の説明では、キーボード３３の入力モードについての情報も、特定キー１０９に含まれうるものとする。
【００３６】
図４（ｂ）は、図３（ｂ）とは異なる形状のイメージ・パターン１２３の例である。この例では、ユーザは一辺に４つずつのキーが含まれる三角形の形状として、そのイメージ・パターンを記憶することができる。イメージ・パターンは、キーボード３３上で形成することができ、かつユーザが記憶して再現できる範囲で、なるべく多くのキーを使用して、かつなるべく複雑な形状とすることが望ましい。イメージ・シーケンスおよび指定順位は、図３で示した例と同様に、イメージ・パターン１２３の中でユーザが記憶して再現できる範囲で適宜設定できる。
【００３７】
図５は、ＰＣ１０が本実施形態で示す方法によってユーザを認証する際の処理の一例について説明するブロック図である。図５の例では、セキュアＮＶＲＡＭ２９に登録パスワード７３として格納される情報は、暗号化されていない登録パスワードである。ここでは、セキュアＮＶＲＡＭ２９から登録パスワードが漏洩する危険性を考えなくてもよいことを前提としている。図５（ａ）は、ＰＯＰとしてパスワードを登録する際の処理である。ユーザは、キーボード３３から、入力パスワード２０１、および指定順位１０７を入力する。パスワード生成モジュール５５はそれらの入力を受け付け、入力パスワード２０１を暗号化せず、セキュアＮＶＲＡＭ２９に登録パスワード７３として格納する。そして指定順位１０７を、セキュアＮＶＲＡＭ２９にパスワード・イメージ情報７５として格納する。なお、指定順位１０７は、認証のために入力パスワードを入力する際にユーザとＰＣ１０が共通に認識していればよいので、ユーザが指定しないで、認証時にＰＣ１０が生成してユーザに提供するようにしてもよい。
【００３８】
図５（ｂ）は、登録されたパスワードに基づいてユーザを認証する際の処理を示すブロック図である。図６は、その処理においてパスワード生成モジュール５５が実行する手順について書き表したフローチャートである。ＰＣ１０に電源が投入されると、システムＢＩＯＳ５１による制御でパスワード生成モジュール５５が起動し、認証の処理が開始される（ブロック３０１）。パスワード生成モジュール５５は、セキュアＮＶＲＡＭ２９から、登録パスワード７３およびパスワード・イメージ情報７５としての指定順位１０７を読み出す（ブロック３０３）。パスワード生成モジュール５５は、登録パスワード７３を、キー配列情報６１に照らし合わせることによって、登録パスワードのイメージ・パターン１０３およびイメージ・シーケンス１０５を生成する（ブロック３０５）。
【００３９】
パスワード生成モジュール５５はさらに、乱数生成モジュール５７に乱数を発生させ、発生した乱数２０３を受け取る（ブロック３０７）。乱数２０３に基づいて、パスワード生成モジュール５５は特定キー１０９を生成し（ブロック３０９）、さらにパスワード・イメージ１０１および指定順位１０７に特定キー１０９を適用して得られる認証パスワード２０５を生成する（ブロック３１１）。なお、ブロック３０９および３１１の処理は、キー配列情報６１が適用され、図３に示した原理に基づいて、パスワード・イメージ１０１に含まれる全てのキーがキーボード３３のキー配列１００上の文字キーの範囲からはみ出すことなく入力可能であるように特定キー１０９を選択して行われる。また、特定キー１０９で生成される情報にキーボード３３の入力モードが含まれる場合は、その入力モードも同時に適用して認証パスワード２０５を生成する。そしてパスワード生成モジュール５５は、ディスプレイ１９に特定キー１０９を表示し（ブロック３１３）、得られた認証パスワード２０５を暗号化モジュール５９を介してユーザ認証モジュール５３に送る（ブロック３１５）。なお、暗号化モジュール５９で認証パスワード２０５を暗号化することは必須ではないが、特定の一方向関数によって認証パスワードを暗号化することによって、パスワードが送られる経路上で盗まれる危険性を軽減することができる。
【００４０】
ユーザが、パスワード・イメージと指定順位と特定キーに基づいてキーボード３３から入力パスワード２０１を入力すると（ブロック３１７）、パスワード生成モジュール５５は入力パスワード２０１を暗号化モジュール５９で暗号化してユーザ認証モジュール５３に送る（ブロック３１９）。ユーザ認証モジュール５３は、送られた認証パスワード２０５と入力パスワード２０１を比較し（ブロック３２１）、同じであればユーザ認証を完了する（ブロック３２３〜３２５）。違っていればブロック３１７のパスワード入力から処理をやり直させる。なお、認証パスワード２０５と入力パスワード２０１とが同一であれば、各々を同じ一方向関数で暗号化した後も、認証パスワード２０５と入力パスワード２０１とは等しくなる。認証が完了すれば、ＰＣ１０ではシステムＢＩＯＳ５１による初期化の処理が完了した後、ＨＤＤ２３からＯＳが読み出されて起動される。
【００４１】
図７は、ＰＣ１０が本実施形態で示す方法によってユーザを認証する際の処理の別の例について説明するブロック図である。図７の例では、セキュアＮＶＲＡＭ２９に登録パスワード７３として格納される情報は、一方向関数で暗号化された登録パスワードである。図７（ａ）は、ＰＯＰとして入力パスワードを登録する際の処理である。ユーザは、キーボード３３から、入力パスワード２０１、および指定順位１０７を入力する。パスワード生成モジュール５５はそれらの入力を受け付け、入力パスワード２０１から抽出したイメージ・パターン１０１と指定順位１０７をキー配列情報６１に照らし合わせることによって、特定キー１０９の有効範囲２０９を生成する。特定キー１０９の有効範囲２０９は、パスワード・イメージ１０１に含まれる全てのキーがキーボード３３のキー配列１００上の文字キーの範囲からはみ出すことなく入力可能であるキーの範囲である。パスワード生成モジュール５５は、特定キーの有効範囲２０９に関する情報をパスワード・イメージ情報７５としてセキュアＮＶＲＡＭ２９に格納する。そして、入力パスワード２０１を暗号化モジュール５９によって暗号化し、セキュアＮＶＲＡＭ２９に登録パスワード７３として格納する。セキュアＮＶＲＡＭ２９には暗号化された登録パスワード７３および特定キーの有効範囲２０９だけが格納されているので攻撃されにくいが、図６で示した手順のようにＮＶＲＡＭ２９に格納された情報から、パスワード・イメージ１０１を抽出することはできない。
【００４２】
図７（ｂ）は、登録されたパスワードに基づいてユーザを認証する際の処理を示すブロック図である。図８は、その処理においてパスワード生成モジュール５５が実行する手順について書き表したフローチャートである。ＰＣ１０に電源が投入されると、システムＢＩＯＳ５１による制御でパスワード生成モジュール５５が起動し、認証の処理が開始される（ブロック４０１）。パスワード生成モジュール５５は、セキュアＮＶＲＡＭ２９から、特定キーの有効範囲２０９を読み出す（ブロック４０３）。
【００４３】
パスワード生成モジュール５５はさらに、乱数生成モジュール５７に乱数を発生させ、発生した乱数２０３を受け取る（ブロック４０５）。パスワード生成モジュール５５は乱数２０３と特定キーの有効範囲２０９に基づいて、特定キー１０９を生成する（ブロック４０７）。ブロック４０７の処理では、ＮＶＲＡＭ２９に格納された特定キーの有効範囲２０９に基づいて行われるので、イメージ・パターン１０３に含まれる全てのキーがキーボード３３のキー配列１００上の文字キーの範囲からはみ出すことなく入力可能であるように特定キー１０９が選択される。
【００４４】
そしてパスワード生成モジュール５５は、ディスプレイ１９に特定キー１０９を表示する（ブロック４１１）。ユーザがＰＣ１０から指定された特定キーと記憶していたイメージ・パスワード１０１および指定順位に基づいてキーボード３３から入力パスワード２０１を入力すると（ブロック４１３）、パスワード生成モジュール５５は、入力パスワード２０１をキー配列情報６１に照らし合わせることによって、イメージ・パターン１０３およびイメージ・シーケンス１０５を取り出す（ブロック４１５）。
【００４５】
そして、暗号化された登録パスワード７３を、認証パスワード２０５としてユーザ認証モジュール５３に送る（ブロック４１９）。ここでパスワード生成モジュール５５は、入力パスワードから抽出したイメージ・パターン１０３、イメージ・シーケンス１０５および特定キーの有効範囲２０９に基づいて、キーボード３３上でイメージ・パターン１０３を構成するすべてのキーの入力が可能な特定キーを順番に選択して複数の認証パスワード２０７を生成する（ブロック４２１）。特定キー１０９で生成される情報にキーボード３３の入力モードが含まれる場合は、その入力モードによって入力可能な複数のパスワード２０７を生成する。そして、生成された複数の入力パスワード２０７のうちの一つを、暗号化モジュール５９で暗号化してユーザ認証モジュール５３に送る（ブロック４２３）。ユーザ認証モジュール５３は、受け取った認証パスワード２０５と暗号化された入力パスワード２０７を比較し（ブロック４２５）、同じであればユーザ認証を完了する（ブロック４２７〜４２９）。違っていた場合、生成した複数のパスワード２０７の中で入力していないものがあるか否かを判断し（ブロック４３１）、入力していないものがあれば複数のパスワード２０７のうちの次の一つをユーザ認証モジュール５３に送り（ブロック４３３）、ブロック４２５からの判断を繰り返す。複数のパスワード２０７の中で入力していないパスワードが残っていなければ、ブロック４１３のパスワード入力から処理をやり直させる。認証が完了すれば、ＰＣ１０ではシステムＢＩＯＳ５１による初期化の処理が完了した後、ＨＤＤ２３からＯＳが読み出されて起動される。
【００４６】
図７〜８で示した認証処理の例は、ＰＣが、登録パスワードからユーザが入力する正しい唯一のパスワードをあらかじめ計算することはできないが、ユーザが、パスワード・イメージ、指定順位、および特定キーに基づいて入力パスワードを正しく入力すれば、入力パスワードと特定キーの有効範囲に基づいて決定される複数の入力パスワードのいずれかは、必ず登録パスワードに一致するという原理に基づいている。この方法でも、ユーザは毎回指定された異なる特定キーに基づいて記憶していたパスワード・イメージを入力するので、入力パスワードは毎回異なる文字列になる。この方法は、たとえばシステムの仕様で登録パスワードが必ず暗号化されて保存される必要があるなどの条件があり、暗号化される前の登録パスワードを得ることができない場合であっても、適用することが可能となる。また、図５〜６で示した認証処理の例と比べて、セキュアＮＶＲＡＭ２９から登録パスワードが漏洩することによるリスクを軽減できる。
【００４７】
ここまでで示した本発明の実施の形態では、ＰＯＰに本発明を適用した場合について示したが、これ以外にもコンピュータがパスワードによってユーザの認証を行う場合の多くについて、本発明を適用することが可能である。図９は、代表的なＯＳの一つである米国マイクロソフト社のウィンドウズ（登録商標）へのログオンについて、本発明を適用した場合の実施形態を示す概念図である。ウィンドウズが起動されると、ウィンドウズで通常作業を行なっている時に表示される画面であるアプリケーション・デスクトップ６０１、スクリーン・セーバーを表示するスクリーン・セーバー・デスクトップ６０３、ログオン画面の表示を行うＷｉｎＬｏｇｏｎデスクトップ６０５の３つのデスクトップ画面が作成される。ディスプレイに表示されるデスクトップ画面は常にそのうちの一つだけである。ＷｉｎＬｏｇｏｎ６０７は、ウィンドウズの中でログオン・セッションの管理、およびディスプレイに表示するデスクトップ画面の切り替えなどを行うコンポーネントである。ウィンドウズが起動されたときには、ＷｉｎＬｏｇｏｎデスクトップ６０５がまず表示され、その画面にＧＩＮＡ（Graphic Identification and Authentication）６０９と呼ばれるコンポーネントがユーザＩＤおよびパスワードの入力を要求するダイアログ６１１を表示する。
【００４８】
ダイアログ６１１に対して、ユーザがユーザＩＤ、ログオン・パスワード、およびログオン先を入力すると、入力されたユーザＩＤおよびログオン・パスワードはＧＩＮＡ６０９から、ユーザのログオンおよび認証を処理するエージェントであるＬＳＡ（Local Security Authority、ローカル セキュリティ認証）６１３と呼ばれるコンポーネントに渡される。ＬＳＡ６１３は、ユーザが入力したユーザＩＤ、ログオン・パスワードおよびログオン先を、ログオン先に応じてユーザの認証を行うＡＰ（Authentication Package、認証パッケージ）６１５に渡す。ログオン先がローカル・ログオンであれば、ＡＰ６１５はＬＳＡ６１３から受け取ったログオン・パスワードをウィンドウズのＳＡＭ（Security Account Manager）６１７と呼ばれるコンポーネントが保持するユーザ・アカウント・データベース６１９の中から検索したパスワードと比較し、当該ユーザＩＤおよびログオン・パスワードを入力したユーザが正当なユーザであるかどうかを認証する。
【００４９】
ログオン先がドメイン・ログオンであれば、ＡＰ６１５はＰＣが属するドメインのドメイン・コントローラ６２１にアクセスし、ＬＳＡ６１３から受け取ったユーザＩＤおよびログオン・パスワードをドメイン・コントローラ６２１に対して照会する。なお、ローカル・ログオンおよびドメイン・ログオンのどちらであっても、ＡＰ６１５は入力されたログオン・パスワードを暗号化してＳＡＭ６１７またはドメイン・コントローラ６２１に照会する。認証が成功すれば、ＷｉｎＬｏｇｏｎ６０７はディスプレイに表示されるデスクトップ画面をアプリケーション・デスクトップ６０１に切り替える。以上で示したユーザ認証の仕組みは、ウィンドウズの標準的な仕様として定められており、さらに開発者向けにユーザ認証をカスタマイズする仕組みが公開されている。
【００５０】
このようなログオンに対して本発明を適用する場合、ＧＩＮＡ６０９をカスタマイズし、前述の実施形態でパスワード生成モジュール５５が行う処理として示した機能を実行させるようにすればよい。この場合、ユーザ認証モジュール５３はＬＳＡ６１３に置き換えられ、登録パスワード７３はＳＡＭ６１７またはドメイン・コントローラ６２１に保存される。パスワード・イメージ情報７５は、セキュアＮＶＲＡＭ２９などのようなセキュアな記憶手段に保存される。また、この例では登録パスワード７３は暗号化されて保存されることがウィンドウズの仕様として定められているので、図５〜６で示した認証処理の方法を適用することはできず、図７〜８で示した方法を適用する必要がある。
【００５１】
図１０は、ユーザがウェブサイトにログオンするときの処理に、本発明を適用した場合の実施形態を示す概念図である。クライアントＰＣ７０１は、インターネット７０３を経由して、ウェブ・サーバ７０５に接続している。ユーザは、クライアントＰＣ７０１を操作して、ブラウザ・ウィンドウ７０７を開き、ウェブ・サーバ７０５で運用されているウェブサイト７０９に接続している。ウェブサイト７０９の利用には、ＩＤおよびパスワードによってログオンする必要がある。ウェブ・サーバ７０５には認証サーバ７１１が接続され、ユーザの入力したＩＤおよびパスワードの認証を行っている。認証サーバ７１１は、ユーザがインターネット７０３を介して直接アクセスしてＩＤおよびパスワードについての情報を不正に取得されないよう、セキュリティが確保されているものとする。
【００５２】
この場合は、前述の実施形態でパスワード生成モジュール５５が行う処理として示した機能を、ウェブ・サーバ７０５で実行させればよい。ユーザ認証モジュール５３の機能、および登録パスワード７３とパスワード・イメージ情報７５の保存の機能は、認証サーバ７１１が担う。この構成にすれば、クライアントＰＣ７０１の側にソフトウェアをインストールする必要はなく、また認証にかかる情報をクライアントＰＣ７０１のＲＡＭやＨＤＤなどに保存する必要もない。また、この例では図５〜６で示した方法と図７〜８で示した方法の、両方を適用することができる。なお、クライアントＰＣ７０１とウェブ・サーバ７０５との接続においては、ＳＳＬなどのセキュアな接続プロトコルを使用することが望ましい。
【００５３】
ここまで説明した以外にも、コンピュータがパスワードによってユーザの認証を行う必要のある場合は数多く存在する。当業者は、そのような場合の多くに対して、本発明を適用することが可能である。また、キーボードはＱＷＥＲＴＹ配列のもの以外でも、キー配列上でパスワード・イメージを形成できるものであればよい。さらに、キー自体が物理的に存在しているキーボードでなくてもよく、たとえばタッチ・スクリーン上の仮想キーボードや、ソフトウェアによってＧＵＩ上に実現されるソフトウェア・キーボードなどであっても本発明を適用することが可能である。
【００５４】
これまで本発明について図面に示した特定の実施の形態をもって説明してきたが、本発明は図面に示した実施の形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができることは言うまでもないことである。
【産業上の利用可能性】
【００５５】
キーボードを介して入力されるパスワードによってユーザの認証を行うコンピュータにおいて利用可能である。
【図面の簡単な説明】
【００５６】
【図１】本発明の実施形態に適用するＰＣのシステム構成を示す概略ブロック図である。
【図２】ＰＣを構成するＢＩＯＳフラッシュＲＯＭおよびセキュアＮＶＲＡＭの内部構成を示す図である。
【図３】本実施の形態でユーザが記憶し、入力するパスワードについて示す概念図である。
【図４】パスワード・イメージの変型について示す概念図である。
【図５】ＰＣが本実施形態で示す方法によってユーザを認証する際の処理の一例について説明するブロック図である。
【図６】図５で示したユーザを認証する際の処理においてパスワード生成モジュールが実行する手順について書き表したフローチャートである。
【図７】ＰＣが本実施形態で示す方法によってユーザを認証する際の処理の別の例について説明するブロック図である。
【図８】図７で示したユーザを認証する際の処理においてパスワード生成モジュールが実行する手順について書き表したフローチャートである。
【図９】ウィンドウズへのログオンについて、本発明を適用した場合の実施形態である。
【図１０】ユーザがウェブサイトにログオンするときの処理に、本発明を適用した場合の実施形態を示す概念図である。
【符号の説明】
【００５７】
１０…ＰＣ
２７…ＢＩＯＳフラッシュＲＯＭ
２９…セキュアＮＶＲＡＭ
３３…キーボード
５１…システムＢＩＯＳ
５３…ユーザ認証モジュール
５５…パスワード生成モジュール
５７…乱数生成モジュール
５９…暗号化モジュール
６１…キー配列情報
７１…設定情報
７３…登録パスワード
７５…パスワード・イメージ情報
１００…キー配列
１０１…パスワード・イメージ
１０３、１２３イメージ・パターン
１０５、１１５…イメージ・シーケンス
１０７、１１７…指定順位
１０９…特定キー
２０１…入力パスワード
２０３…乱数
２０５…認証パスワード
２０７…複数のパスワード
２０９…特定キーの有効範囲
【図１】
2008181440.tif 000003
【図２】
2008181440.tif 000004
【図３】
2008181440.tif 000005
【図４】
2008181440.tif 000006
【図５】
2008181440.tif 000007
【図６】
2008181440.tif 000008
【図７】
2008181440.tif 000009
【図８】
2008181440.tif 000010
【図９】
2008181440.tif 000011
【図１０】
2008181440.tif 000012