(57)【要約】【課題】認証専用のハードウェアを持たない安価なリムーバブル・デバイスで、複数のパスワードを１つのデバイスに記憶させ、ユーザの利便性とセキュリティを同時に向上させる認証方法を提供する。【解決手段】公開鍵２１１を用いてパスワード２０１を暗号化して認証情報３１を生成し、リムーバブル・デバイス１２７に格納した後に、暗号化に使用した公開鍵を管理者ＰＣから破棄する。秘密鍵２１３を格納したユーザＰＣ１１に、リムーバブル・デバイスを接続して認証情報を読み取り、秘密鍵を用いて認証情報を復号化することによってパスワードを獲得する。リムーバブル・デバイスの固有情報２１９を認証情報に含めること、および秘密鍵をユーザの個人情報２０７によって暗号化することによって、さらにセキュリティを向上させることができる。【選択図】図４
2008160325.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータがリムーバブル・デバイスに認証情報を格納する方法であって、
前記コンピュータに前記リムーバブル・デバイスを接続するステップと、
外部からユーザ・コンピュータのパスワードを受け取るステップと、
一対の公開鍵と秘密鍵とを生成するステップと、
前記公開鍵を用いて前記パスワードを暗号化し前記認証情報を生成するステップと、
前記暗号化に使用した公開鍵を前記コンピュータから破棄するステップと、
前記認証情報を前記リムーバブル・デバイスに格納するステップと
を有する格納方法。
【請求項２】
前記パスワードが、パワー・オン・パスワード、ハードディスク・パスワード、ログオン・パスワード、ネットワーク・パスワードを含むグループの中から選択されたいずれか１つまたは複数のパスワードを含む請求項１記載の格納方法。
【請求項３】
前記リムーバブル・デバイスの固有情報を読み取るステップと、
前記公開鍵を用いて前記固有情報を暗号化するステップと
を有し、前記認証情報が前記暗号化された固有情報を含む請求項１記載の格納方法。
【請求項４】
外部からユーザの個人情報を受け取るステップと、
前記秘密鍵を前記個人情報を用いて暗号化するステップと
を有する請求項１記載の格納方法。
【請求項５】
前記個人情報を用いて暗号化するステップが前記秘密鍵と前記個人情報とをＸＯＲ演算するステップを含む請求項４記載の格納方法。
【請求項６】
前記リムーバブル・デバイスを使用してユーザ認証をするためにユーザ・コンピュータで実行されるユーザ認証モジュールを生成するステップを有する請求項４記載の格納方法。
【請求項７】
外部からユーザの個人情報を受け取るステップと、
前記秘密鍵を前記リムーバブル・デバイスの固有情報を用いて暗号化し、さらに該暗号化された前記秘密鍵を前記個人情報を用いて暗号化するステップと
を有する請求項１記載の格納方法。
【請求項８】
リムーバブル・デバイスに格納された認証情報を使用してユーザ・コンピュータがユーザ認証を行う方法であって、
パスワードと管理者コンピュータで生成された秘密鍵を前記ユーザ・コンピュータに格納するステップと、
前記秘密鍵と対で生成された公開鍵を用いて前記パスワードを暗号化しその後前記公開鍵を前記管理者コンピュータから破棄することによって生成した認証情報を格納しているリムーバブル・デバイスを前記ユーザ・コンピュータに接続するステップと、
前記リムーバブル・デバイスから前記認証情報を読み取るステップと、
前記秘密鍵を用いて前記認証情報を復号化し前記パスワードを獲得するステップと、
前記復号化されたパスワードを前記ユーザ・コンピュータに格納されたパスワードと比較するステップと
を有する認証方法。
【請求項９】
前記コンピュータに格納された秘密鍵が前記管理者コンピュータにおいてユーザの個人情報を用いて暗号化されており、前記パスワードを獲得するステップが前記暗号化された秘密鍵を外部から前記ユーザの個人情報を受け取って復号化するステップを含む請求項８記載の認証方法。
【請求項１０】
前記認証情報が前記公開鍵を用いて暗号化された前記リムーバブル・デバイスの固有情報を含み、前記秘密鍵を用いて前記認証情報を復号化することにより獲得した前記固有情報と前記リムーバブル・デバイスから読み取った固有情報を比較するステップを有する請求項８記載の認証方法。
【請求項１１】
管理者コンピュータとユーザ・コンピュータにおけるユーザの認証方法であって、
前記管理者コンピュータが外部からパスワードを受け取るステップと、
前記管理者コンピュータが一対の公開鍵と秘密鍵とを生成するステップと、
前記管理者コンピュータが前記公開鍵を用いて前記パスワードを暗号化し認証情報を生成するステップと、
前記暗号化に使用した公開鍵を前記管理者コンピュータから破棄するステップと、
前記認証情報を前記リムーバブル・デバイスに格納するステップと、
前記ユーザ・コンピュータに前記パスワードと前記秘密鍵とを格納するステップと、
前記ユーザ・コンピュータが前記認証情報を前記リムーバブル・デバイスから読み取るステップと、
前記ユーザ・コンピュータが前記秘密鍵を用いて前記認証情報を復号化し前記パスワードを獲得するステップと、
前記ユーザ・コンピュータが前記復号化されたパスワードを前記ユーザ・コンピュータに格納されたパスワードと比較するステップと
を有する認証方法。
【請求項１２】
前記管理者コンピュータが外部からユーザの個人情報を受け取るステップと、
前記管理者コンピュータが前記個人情報を用いて前記秘密鍵を暗号化するステップと、
前記ユーザ・コンピュータが前記暗号化された秘密鍵を格納するステップとを有し、前記パスワードを獲得するステップが前記暗号化された秘密鍵を外部から前記ユーザの個人情報を受け取って復号化するステップを含む請求項１１記載の認証方法。
【請求項１３】
リムーバブル・デバイスへ認証情報を格納することが可能なコンピュータであって、
プロセッサと、
前記リムーバブル・デバイスの接続が可能なインターフェースと、
前記コンピュータに
外部からユーザ・コンピュータのパスワードを受け取る機能と、
一対の公開鍵と秘密鍵とを生成する機能と、
前記公開鍵を用いて前記パスワードを暗号化し前記認証情報を生成する機能と、
前記暗号化に使用した公開鍵を前記コンピュータから破棄する機能と、
前記認証情報を前記リムーバブル・デバイスに格納する機能と
を実現させるコンピュータ・プログラムを格納した記憶装置と
を有するコンピュータ。
【請求項１４】
前記コンピュータ・プログラムが前記コンピュータに、
前記リムーバブル・デバイスの固有情報を読み取る機能と、
前記公開鍵を用いて前記固有情報を暗号化する機能と、
前記暗号化された固有情報を前記認証情報に含める機能と
を実現させる請求項１３記載のコンピュータ。
【請求項１５】
リムーバブル・デバイスを利用してユーザ認証をするコンピュータであって、
プロセッサと、
パスワードと秘密鍵とを格納する記憶部と、
前記秘密鍵と対で生成された公開鍵を用いて前記パスワードを暗号化しその後前記公開鍵を管理者コンピュータから破棄することによって生成した認証情報を格納したリムーバブル・デバイスの接続が可能なインターフェースと、
前記リムーバブル・デバイスから前記認証情報を読み取る読み取り部と、
前記読み取った認証情報を前記秘密鍵で復号化し前記記憶部に格納されたパスワードと比較する認証部と
を有するコンピュータ。
【請求項１６】
前記認証部がＢＩＯＳとＳＭＲＡＭを含む請求項１５記載のコンピュータ。
【請求項１７】
前記記憶部がリード／ライト保護が可能なメモリで構成されている請求項１５記載のコンピュータ。
【請求項１８】
管理者コンピュータにより認証情報が格納されたリムーバブル・デバイスを製造する方法であって、
管理者コンピュータに前記リムーバブル・デバイスを接続するステップと、
外部からパスワードを受け取るステップと、
一対の公開鍵と秘密鍵とを生成するステップと、
前記公開鍵を用いて前記パスワードを暗号化し前記認証情報を生成するステップと、
前記暗号化に使用した公開鍵を前記管理者コンピュータから破棄するステップと、
前記認証情報を前記リムーバブル・デバイスに格納するステップと
を有する製造方法。
【請求項１９】
コンピュータに、
外部からユーザ・コンピュータのパスワードを受け取る機能と、
一対の公開鍵と秘密鍵とを生成する機能と、
前記公開鍵を用いて前記パスワードを暗号化し前記認証情報を生成する機能と、
前記暗号化に使用した公開鍵を前記コンピュータから破棄する機能と、
前記認証情報を前記リムーバブル・デバイスに格納する機能と
を実現させるコンピュータ・プログラム。
【請求項２０】
ユーザ・コンピュータに、
パスワードと管理者コンピュータで生成された秘密鍵とを格納する機能と、
前記秘密鍵と対で生成された公開鍵を用いて前記パスワードを暗号化しその後前記公開鍵を前記管理者コンピュータから破棄することによって生成した認証情報をリムーバブル・デバイスから読み取る機能と、
前記秘密鍵を用いて前記認証情報を復号化し前記パスワードを獲得する機能と、
前記復号化されたパスワードを前記ユーザ・コンピュータに格納されたパスワードと比較する機能と
を実現させるコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、リムーバブル・デバイスを用いてコンピュータのセキュリティを確保する技術に関し、さらに詳細にはセキュリティを確保しつつユーザによるパスワード入力の負担を軽減する技術に関する。
【背景技術】
【０００２】
パーソナル・コンピュータ（以下ＰＣという。）は、正当なユーザによる利用だけを許容するために、使用に際してユーザに対してパスワードを要求して本人の認証をすることができる。そしてユーザに要求されるパスワードの数は複数に及ぶ場合がある。たとえば、ＰＣを起動するときには、ＢＩＯＳ（Basic Input/Output System）に設定したパワー・オン・パスワード（以下ＰＯＰという。）、および磁気ディスク装置に設定したパスワード（以後ＨＤＰという。）の入力を要求される場合がある。ＰＯＰおよびＨＤＰのうち、いずれかが誤って入力されるとＰＣは起動しない。ＰＣが起動して、オペレーティング・システム（以後ＯＳという）が立ち上がった後は、ユーザがＯＳにログオンするためのユーザＩＤおよびパスワード（以後ログオン・パスワードという）の入力を要求される場合がある。ログオン・パスワードが誤って入力されると、ユーザはＯＳを利用することができず、ＯＳ上で動作するアプリケーション・プログラムを利用した作業を行うことができない。さらに、ネットワーク上の共有資源（共有ドライブ、共有フォルダ、共有プリンタなど）を利用する場合にも、ユーザはネットワーク・パスワードの入力を求められることがある。正しいネットワーク・パスワードを入力しない限り、ユーザは該当する共有資源を利用することができない。
【０００３】
他にも、インターネットへの接続、電子メールの利用、特定のウェブサイトの利用、特定のオンライン・サービスの利用などのたびに、それぞれに対して設定されたユーザＩＤおよびパスワードの入力が要求される場合がある。いずれの場合も、利用したいサービスに対するユーザＩＤおよびパスワードが誤って入力されると、ユーザはそのサービスを利用することができない。
【０００４】
近年は特に、ウェブログ、ＳＮＳ、オンライン・ショップ、インターネット・バンキングなどのように、ユーザＩＤおよびパスワードを入力して利用するウェブサイトおよびオンライン・サービスが増えている。その一方で、ＰＣに搭載された磁気ディスク装置の中に記憶されたり、ネットワークを介して交換されたりする情報の中には、機密性の高いものが多くなっている。機密性の高い情報とは、たとえば個人のプライバシーに関わる情報、業務上の機密に関わる情報、あるいはユーザ認証が必要なネットワークもしくはオンライン・サービスなどにアクセスするための認証情報などが該当する。これらの情報が、悪意のある第三者に漏洩して悪用もしくは改竄などをされると、その被害は重大なものとなる。つまり、ユーザの認証に係るセキュリティの向上が求められている状況のもとで、ユーザが覚えなければならないパスワードの個数が増加し、これがユーザの負担になっている。
【０００５】
なお、パスワードもしくは暗号化鍵を利用する技術としては、以下のような文献がある。特許文献１は、着脱可能な記憶手段をトークンとして暗号化鍵を記憶し、それを安全に処理する方法について開示している。特許文献２は、記録媒体のシリアル・ナンバをシステム本体が持つ暗号化鍵で暗号化して記録媒体に記録し、復号化して不正使用か否かを判断するという技術について開示している。特許文献３は、暗号化されたデジタルコンテンツを別の記録媒体に転送する際、転送が完了すると暗号化に使用した秘密鍵を消去するという技術について開示している。また非特許文献１は、複数のパスワードを記憶し、パスワードなどによる認証を１回行うだけで記憶された複数のパスワードを入力することが可能になるというソフトウェアについて記載している。
【特許文献１】特表２０００−５１６３７３号公報
【特許文献２】特開２００５−３０１３３９号公報
【特許文献３】特開２００５−３４６４０１号公報
【非特許文献１】WoodenSoldier、「パスワード管理ツール ID Manager」、[online]、[平成１８年９月５日検索]、インターネット＜URL: http://www.woodensoldier.info/soft/idm.htm＞
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ＰＣに設定したパスワードは、攻撃者に盗まれないように管理する必要がある。そのためには、パスワードをユーザの記憶の中だけに留め、メモを残さないことが望ましい。しかし、人間が長時間記憶することができるパスワードの桁数には限界がある。また、記憶しなければならないパスワードの数が増えるに従ってユーザの負担は増大する。この場合、ユーザはパスワードを桁数の少ない文字列や数字列またはその組み合わせに設定したり、パスワードを意味のある単語に設定したり、複数のパスワードを同一に設定したり、あるいは設定したパスワードを記録したメモをＰＣの近辺に残したりする。
【０００７】
桁数を少なくすると試行錯誤法による攻撃に対する平均攻撃空間が狭くなり、意味のある単語に設定すると辞書攻撃で解読されやすくなり、ユーザの記憶の外に残す場合は保管が負担になったりするためにセキュリティの耐性が低下する。また、複数のパスワードを設定する必要がある場合にすべて同じパスワードに設定すると個別に設定することの意義も失われる。
【０００８】
しかし、大きな桁数のランダムな文字・数字列で構成された複数のパスワードをユーザが記憶し、さらにそれを定期的に更新するようなことは一般的には困難であるといえる。この問題を解決するために、パスワードをいわゆるトークンという特別な認証デバイスに記憶させて管理する技術がある。トークンに記憶させるパスワードの桁数には実質的に制約がなく、また、ＰＣを使用してランダムな文字・数字列をパスワードとして記憶させることもできるので、ユーザはトークンを管理するだけでセキュリティを強化することができる。トークンは、通常ＰＩＮ（Private Identification Number）とともに使用されるので、トークンが盗まれてもＰＩＮが盗まれなければ安全である。また、トークンは情報としてのパスワードに比べて盗まれたことをユーザが認識しやすいので、盗まれたあとの対応がしやすい。
【０００９】
しかし、トークンは一般的に高価であり、ＰＩＮは通常４桁程度の数字であるため盗まれる場合もある。トークンをたとえばＵＳＢフラッシュ・メモリ、ＳＤメモリーカード、コンパクトフラッシュ（登録商標）、メモリースティック（登録商標）などのような安価で着脱可能な記憶装置（以後、リムーバブル・デバイスという。）で構成し、リムーバブル・デバイスにパスワードを暗号化して生成した認証情報を格納することが考えられる。
【００１０】
しかし、このようなリムーバブル・デバイスを利用した認証デバイスでは、同一のアルゴリズムを使用して認証情報を生成して、偽物の認証デバイスが製作される危険性がある。さらに、真正のリムーバブル・デバイスに格納された認証情報を、他のリムーバブル・デバイスにコピーすることによって、同一の認証情報を格納した認証デバイスが多数複製される危険性もある。同一の認証情報を格納した認証デバイスが多数存在すると、悪意のある第三者によりそれらの認証デバイスを不正に入手される危険性が高まるので、望ましいことではない。
【００１１】
認証デバイスを利用する際に生ずるこのような危険性を排除するには、パスワードのかわりに指紋、静脈、虹彩などのような生体情報によるユーザ認証（バイオメトリクス認証）方式を利用するという方法もある。しかし、生体情報を利用した認証を行うには、認証デバイスがユーザ認証専用の高価なハードウェアを持つことを必要とする。
【００１２】
そこで本発明の目的は、再生不可能なパスワードをリムーバブル・デバイスに格納する方法およびそのようなパスワードが格納されたリムーバブル・デバイスの製造方法を提供することにある。さらに本発明の目的は、ユーザのパスワード管理の負担を軽減しながらセキュリティを強化したユーザの認証方法を提供することにある。さらに本発明の目的は、ユーザのパスワード管理の負担を軽減しながらセキュリティを強化したコンピュータを提供することにある。さらに本発明の目的は、そのようなコンピュータを実現するコンピュータ・プログラムを提供することにある。
【課題を解決するための手段】
【００１３】
本発明の第１の側面は、コンピュータがリムーバブル・デバイスに認証情報を格納する方法を提供する。コンピュータは、ユーザからユーザ認証に使用するパスワードを受け取ると、内部で一対の公開鍵と秘密鍵とを生成し、その公開鍵を用いて受け取ったパスワードを暗号化して認証情報を生成する。ここで、暗号化に使用した公開鍵を他に転送したり内部に格納したりすることなくコンピュータから消去して破棄することにより、それ以降はコンピュータが同一パスワードを受け取っても同じ認証情報を生成することができないようになっている。生成された認証情報をリムーバブル・デバイスに格納することで、ユーザ・コンピュータに接続して認証作業に利用できるようになる。ユーザは、リムーバブル・デバイスに格納された認証情報に含まれるパスワードを記憶する必要はない。認証情報に含まれるパスワードはユーザが記憶する場合のような桁数の制約はなく、また複数個でもよい。パスワードはＰＯＰ、ＨＤＰ、ログオン・パスワード、ネットワーク・パスワードを含むグループの中から選択されたいずれか１つまたは複数のパスワードを含むものとすることができる。
【００１４】
リムーバブル・デバイスには通常、シリアル・ナンバなどのような固有情報が製造時に外部から与えられ、シリアル・ナンバはユーザによる書き込みができない領域に格納されている。異なるリムーバブル・デバイスが同じ固有情報を持つことはない。さらに、固有情報を外部から書き換えることも不可能である。この固有情報を公開鍵で暗号化して認証情報の中に含めるようにすれば、認証情報を真正のリムーバブル・デバイス以外のリムーバブル・デバイスにコピーして利用することを禁止することができる。
【００１５】
また、破棄された公開鍵によって暗号化されたパスワードを復号化するために必要な秘密鍵を、外部からユーザの個人情報を受け取り、それによって秘密鍵を暗号化するようにすれば、その個人情報を持つユーザ以外にはパスワードを復号化することができなくなるので、認証情報が格納されたリムーバブル・デバイスが盗難にあって第三者に利用されるなどのような危険性を低減することができる。ここでいう暗号化は、秘密鍵と個人情報とをＸＯＲ演算するなどのような方法でよい。さらに、秘密鍵をユーザの個人情報とリムーバブル・デバイスの固有情報によって、二重に暗号化して、リムーバブル・デバイスの中に固有情報を格納しないようにするという方法もある。リムーバブル・デバイスを使用してユーザ認証をするために、認証情報を生成したコンピュータにおいてユーザ・コンピュータで実行されるユーザ認証モジュールも生成すると、暗号化された秘密鍵と同時にユーザ・コンピュータに送り、ユーザ・コンピュータに容易にリムーバブル・デバイスによる認証環境を構築することができる。
【００１６】
本発明の第２の側面は、リムーバブル・デバイスに格納された認証情報を使用してユーザ・コンピュータがユーザ認証を行う方法を提供する。ユーザ認証は、管理者コンピュータで生成された認証情報を用いて行われる。認証情報は、管理者コンピュータが秘密鍵と対の公開鍵を用いてパスワードを暗号化しその後公開鍵を管理者コンピュータから破棄することによって生成され、リムーバブル・デバイスに格納される。なお、管理者コンピュータは、ユーザの認証を行うユーザ・コンピュータと同一であっても別であってもよい。ユーザ・コンピュータでは、リムーバブル・デバイスから読み取った認証情報を、秘密鍵を用いて復号化することによってパスワードを獲得すると、獲得したパスワードをコンピュータ内部にあらかじめ格納されたパスワードと比較することにより、ユーザの認証を行うことができる。
【００１７】
ユーザ認証を行うユーザ・コンピュータに格納された秘密鍵をユーザの個人情報を用いて暗号化されたものとして構成し、認証時にユーザからユーザの個人情報を受け取って暗号化された秘密鍵を復号化するようにすれば、その個人情報を持つユーザ以外には認証情報を復号化することができなくなるので、認証情報が格納されたリムーバブル・デバイスが盗難にあって利用されるなどのような危険性を低減することができる。また、リムーバブル・デバイスの固有情報を公開鍵を用いて暗号化したものを認証情報に含め、秘密鍵を用いて認証情報を復号化することにより獲得した固有情報とリムーバブル・デバイスから直接読み取った固有情報を比較するようにすれば、認証情報だけが別のリムーバブル・デバイスにコピーされて利用される危険性を排除することができる。
【００１８】
本発明の第３の側面は、認証情報および秘密鍵を生成する管理者コンピュータにおける処理と、管理者コンピュータで生成された認証情報および秘密鍵を利用してユーザの認証を行うユーザ・コンピュータにおける処理とを合わせた、ユーザの認証方法を提供する。管理者コンピュータは、本発明の第１の側面として述べたものと同一の方法で、認証情報および秘密鍵を生成する。生成された認証情報はリムーバブル・デバイスに格納される。そして生成された秘密鍵と、ユーザが認証情報に含めたパスワードとが、ユーザ・コンピュータに格納される。ユーザ・コンピュータは、本発明の第２の側面として述べたものと同一の方法で、ユーザの認証を行う。
【００１９】
本発明の第４の側面は、認証情報および秘密鍵を生成する管理者コンピュータとして使用される、リムーバブル・デバイスへ認証情報を格納することが可能なコンピュータを提供する。このコンピュータは、プロセッサと、リムーバブル・デバイスを接続可能なインターフェースと、コンピュータ・プログラムを格納した記憶装置とを備える。コンピュータ・プログラムはプロセッサに、外部からユーザ・コンピュータのパスワードを受け取る機能と、一対の公開鍵と秘密鍵とを生成する機能と、公開鍵を用いてパスワードを暗号化して認証情報を生成する機能と、暗号化に使用した公開鍵をコンピュータから破棄する機能と、認証情報をリムーバブル・デバイスに格納する機能とを実現させる。
【００２０】
本発明の第５の側面は、管理者コンピュータによって生成された認証情報および秘密鍵によってユーザの認証を行うユーザ・コンピュータとして使用されるコンピュータを提供する。このコンピュータは、プロセッサと、パスワードと秘密鍵とを格納する記憶部と、秘密鍵と対の公開鍵を用いてパスワードを暗号化しその後公開鍵を管理者コンピュータから破棄することによって生成した認証情報を格納したリムーバブル・デバイスを接続可能なインターフェースと、リムーバブル・デバイスから認証情報を読み取る読み取り部と、読み取った認証情報を秘密鍵で復号化し記憶部に格納されたパスワードと比較する認証部とを備える。認証部がＢＩＯＳとＳＭＲＡＭを含むようにすれば、ＯＳが起動する前の処理で使用されるＰＯＰやＨＤＰによる認証やＯＳ起動後の認証を安全に行うことができる。また、記憶部をリード／ライト保護が可能なメモリで構成すれば、より安全性が高まる。
【００２１】
また本発明は、本発明の第１の側面として述べたものと同一の方法によって、認証情報が格納されたリムーバブル・デバイスを製造する方法を提供することもできる。さらに、本発明の第１および第２の側面として述べたものと同一の方法をコンピュータに実現させるコンピュータ・プログラムを提供することもできる。
【発明の効果】
【００２２】
本発明により、再生不可能なパスワードをリムーバブル・デバイスに格納する方法およびそのようなパスワードが格納されたリムーバブル・デバイスの製造方法を提供することができた。さらに本発明により、ユーザのパスワード管理の負担を軽減しながらセキュリティを強化したユーザの認証方法を提供することができた。さらに本発明により、ユーザのパスワード管理の負担を軽減しながらセキュリティを強化したコンピュータを提供することができた。さらに本発明により、そのようなコンピュータを実現するコンピュータ・プログラムを提供することができた。
【発明を実施するための最良の形態】
【００２３】
図１は、本発明の実施形態に係る認証システムの全体構成を示す図である。本実施形態の認証システムでは、管理者ＰＣ１０とユーザＰＣ１１、１２、１３がセキュアなチャネルを有するネットワークで接続されていることを想定している。ただし、本発明は、管理者ＰＣ１０とユーザＰＣ１１、１２、１３がネットワークで接続されていない場合も含む。管理者ＰＣ１０では、ＯＳ上で動作する新規なソフトウェアである認証データ作成ツール５１が動作する。認証データ作成ツール５１は、ユーザの認証情報として使用される暗号化データ３１、３２、３３と、暗号化データ３１、３２、３３を使ってユーザＰＣ１１、１２、１３で認証作業を行うときに必要な秘密鍵データを登録するための鍵登録ツール２１、２２、２３を作成する。秘密鍵データは秘密鍵を暗号化して生成した情報であり鍵登録ツール２１、２２、２３の中に含まれる。
【００２４】
鍵登録ツール２１、２２、２３は、ユーザＰＣ１１、１２、１３において１度だけ実行することが可能なコンピュータ・プログラムとして作成され、１度実行されるとユーザＰＣ１１、１２、１３のすべての記憶領域から消去される。鍵登録ツール２１、２２、２３がそれぞれのユーザＰＣ１１、１２、１３で実行されることによって秘密鍵データが各々のユーザＰＣが持つセキュアな記憶領域（詳細は後述）に記憶されリムーバブル・デバイス４１、４２、４３を用いたユーザ認証が可能になる。管理者ＰＣ１０にリムーバブル・デバイス４１、４２、４３が接続されて、各々のユーザＰＣ１１、１２、１３に対応した暗号化データ３１、３２、３３が格納される。各々のリムーバブル・デバイス４１、４２、４３を、ユーザＰＣ１１、１２、１３に接続すると、後述のユーザ認証の処理が行われる。なお、管理者ＰＣ１０とユーザＰＣ１１は同一であってもよい。つまり、管理者ＰＣ１０で使用される秘密鍵データおよび暗号化データを、管理者ＰＣ１０で作成することも可能である。鍵登録ツール２１、２２、２３は、ネットワークのセキュアなチャネルを通じてユーザＰＣ１１、１２、１３に転送される。
【００２５】
図２は、本発明の実施形態に適用するＰＣ１００のシステム構成を示す概略ブロック図である。本実施形態では、管理者ＰＣ１０も、ユーザＰＣ１１、１２、１３も、筐体内部に搭載されているデバイスの構成を同一にすることができるため両者をＰＣ１００として説明する。ＣＰＵ１１１は、ＰＣの中枢機能を担う演算処理装置で、ＯＳ、ＢＩＯＳ、デバイス・ドライバ、あるいはアプリケーション・プログラムなどを実行する。ＣＰＵ１１１は、ＰＣ１００が管理者ＰＣ１０の場合は図１で説明した認証データ作成支援ツール５１を実行し、ユーザＰＣ１１、１２、１３の場合は鍵登録ツール２１、２２、２３と図４に示すユーザ認証モジュール１５７を実行する。ＣＰＵ１１１は、ＳＭＩ（System Management Interrupt）入力ピン（ＳＭＩ＃）がアサートされることによって、システム管理用の動作モードであるＳＭＭ（System Management Mode）で動作することが可能である。ＳＭＭでは、特別に割り当てられたメモリ空間において、米国インテル社製のＣＰＵに存在する割り込み制御ハンドラであるＳＭＩハンドラが実行される。ＳＭＭは主にサスペンド、レジューム、電源管理およびセキュリティ関連の操作などに利用される特権実行モードである。
【００２６】
ＣＰＵブリッジ１１３は、メイン・メモリ１１５へのアクセス動作を制御するためのメモリ・コントローラ機能や、接続されるデバイス間のデータ転送速度の差を吸収するデータ・バッファ機能などを含んだ構成となっている。メイン・メモリ１１５は、ＣＰＵ１１１が実行するプログラムの読み込み領域、処理データを書き込む作業領域として利用される書き込み可能メモリである。同時にメイン・メモリ１１５はＳＭＲＡＭ（System Management RAM）としての領域を含むが、これについては後述する。ビデオ・カード１１７は、ビデオ・チップ（図示せず）およびＶＲＡＭ（図示せず）を有し、ＣＰＵ１１１からの描画命令を受けて描画すべきイメージを生成しＶＲＡＭに書き込み、ＶＲＡＭから読み出されたイメージを描画データとしてディスプレイ１１９に送る。
【００２７】
Ｉ／Ｏブリッジ１２１は、ＣＰＵブリッジ１１３と同様にチップセットを構成するデバイス・コントローラである。Ｉ／Ｏブリッジ１２１は、ＩＤＥ(Integrated Device Electronics)インターフェース機能を備えており、磁気ディスク装置(ＨＤＤ)１２３およびＣＤドライブ、ＤＶＤドライブ等の光学ドライブ（図示せず）が接続される。ＨＤＤ１２３には、ＯＳ、デバイス・ドライバ、アプリケーション・プログラムなどがインストールされている。ＰＣ１００が管理者ＰＣ１０である場合には、認証データ作成ツール５１がＨＤＤ１２３に格納される。ＨＤＤ１２３を使用可能にするために必要なＨＤＰに関する取り扱いは、ＩＤＥインターフェースの仕様の中に含まれており、設定されたＨＤＰは磁気ディスク装置の管理領域の中に保存される。また、Ｉ／Ｏブリッジ１２１はＵＳＢインターフェース１２５を介して、ＵＳＢ規格に対応した各種周辺機器を接続することが可能である。管理者ＰＣ１０およびユーザＰＣ１１、１２、１３のいずれにおいても、リムーバブル・デバイス４１の一種であるＵＳＢフラッシュ・メモリ１２７がここに接続される。
【００２８】
さらにＩ／Ｏブリッジ１２１は、ＬＰＣバス１２９を介して、高速なデータ転送を要求しないデバイスに接続される。ＬＰＣバス１２９には、ＢＩＯＳフラッシュＲＯＭ１３１、セキュアＮＶＲＡＭ（Non-Volatile RAM、不揮発性ＲＡＭ）１３３、Ｉ／Ｏコントローラ１３５が接続されている。ＢＩＯＳフラッシュＲＯＭ１３１およびセキュアＮＶＲＡＭ１３３については後述する。Ｉ／Ｏコントローラ１３５にはキーボード１３７を始めとする入出力機器（図示せず）が接続される。
【００２９】
なお、図２は本実施形態を説明するために必要なハードウェアの構成および接続関係を簡素化して記載したに過ぎないものである。ここまでの説明で言及した以外にも、たとえばＣａｒｄＢｕｓ、ｍｉｎｉＰＣＩなどのインターフェースおよびそれらを介して接続される周辺機器、有線ＬＡＮアダプタ、無線ＬＡＮモジュール、電源装置、温度などの動作環境を制御するエンベデッド・コントローラなど、ＰＣ１００を構成するには多くのデバイスが使われる。しかしそれらは当業者には周知であり本発明の理解のために特に説明を必要としないので、ここでは詳しく言及しない。もちろん、図で記載した複数のブロックを１個の集積回路もしくは装置としたり、逆に１個のブロックを複数の集積回路もしくは装置に分割して構成したりすることも、当業者が任意に選択することができる範囲においては本発明の範囲に含まれる。
【００３０】
図３は、ＰＣ１００を構成するＢＩＯＳフラッシュＲＯＭ１３１、セキュアＮＶＲＡＭ１３３、およびメイン・メモリ１１５の内部構成を示す図である。図３（Ａ）に示すＢＩＯＳフラッシュＲＯＭ１３１は、不揮発性で記憶内容の電気的な書き替えが可能なメモリであり、システムの起動および管理に使われる基本プログラムであるシステムＢＩＯＳ１５１、電源および温度などの動作環境を管理するソフトウェアである各種ユーティリティ１５３、ＰＣの起動時にハードウェアのテストを行うソフトウェアであるＰＯＳＴ（Power-On Self Test）１５５、本発明の実施の形態に係るソフトウェアであるユーザ認証モジュール１５７、ＳＭＲＡＭ１７１に記憶されたパスワードを取得するサービス・ルーチン（詳しくは後述）であるパスワード・サービス・ルーチン１５８、ＣＰＵ１１１がＳＭＭで動作するときにＳＭＩサービス・ルーチンを起動するＳＭＩハンドラ１５９、ＨＤＤ１２３にアクセスするＩＮＴ１３Ｈハンドラ１６０などが記憶されている。ユーザ認証モジュール１５７は、ＰＣ１００がユーザＰＣ１１、１２、１３である場合にＢＩＯＳフラッシュＲＯＭ１３１に格納される。
【００３１】
図３（Ｂ）に示すセキュアＮＶＲＡＭ１３３は、ＰＣの電源を切っても消失しないように電池でバックアップされ、記憶された内容をシステムＢＩＯＳ１５１による操作によって読み書き禁止に設定することのできるＲＡＭである。セキュアＮＶＲＡＭ１３３がシステムＢＩＯＳ１５１の操作によって一度読み書き禁止に設定されると、ＰＣの電源がリセットされるまでは読み書き禁止は解除されない。ＢＩＯＳは、起動ルーチンを終了して制御をＯＳに移行するときにセキュアＮＶＲＡＭ１３３の読み書きを禁止する。よって、読み書き禁止にされたセキュアＮＶＲＡＭ１３３に記録された内容を外部から読み取ったり、ＯＳの動作環境下でセキュアＮＶＲＡＭ１３３の記憶内容を読み取ったりすることは困難である。セキュアＮＶＲＡＭ１３３は、ＰＣのデバイス・コントローラ（ＣＰＵブリッジ１１３およびＩ／Ｏブリッジ１２１）の設定情報１６１、および秘密鍵データ１６３を記憶している。設定情報１６１の内容としては、主にディスク装置の起動順序やドライブ番号、各周辺機器の接続方法やデータ転送に関するパラメータ、およびＰＯＰなどがある。本実施形態では、このセキュアＮＶＲＡＭ１３３を、秘密鍵データ１６３を記憶するセキュアな記憶領域として使用する。
【００３２】
ＰＯＰが設定されているＰＣを起動する際、システムＢＩＯＳ１５１はユーザに対してＰＯＰの入力を要求し、入力されたパスワードを設定情報１６１にあらかじめ格納されているＰＯＰと比較する。両者が等しければ起動の動作が続行され、等しくなければそこで起動のシーケンスが打ち切られる。また、ＨＤＰが設定されているＰＣを起動する際、システムＢＩＯＳ１５１はユーザに対してＨＤＰの入力を要求し、入力されたパスワードをＩＤＥインターフェースを介してＨＤＤ１２３に送る。ＨＤＤ１２３は、ＩＤＥインターフェースを介して送られたパスワードを、自らの中にあらかじめ格納していたＨＤＰと比較する。両者が等しければＨＤＤ１２３に対するアクセスが可能になりＯＳを起動することができるが、等しくなければＨＤＤ１２３に対してアクセスすることができないのでＯＳを起動することができない。
【００３３】
図３（Ｃ）に示すメイン・メモリ１１５には、ＰＣ１００の通常の動作で使用されるユーザ領域１７３の他に、ＳＭＲＡＭ（System Management RAM）１７１としての領域が確保されている。システムＢＩＯＳ１５１がＳＭＭへの移行を要求した場合、またはハードウェアによってＳＭＩ＃がアサートされた場合、ＣＰＵ１１１はＳＭＭに入り、ＳＭＩハンドラ１５９が呼び出され、ＣＰＵ１１１はシングル・タスクでの動作となる。ＳＭＭで動作するＣＰＵ１１１では、ＳＭＩハンドラ１５９がすべての割り込みを無効にすることにより、他のタスクに制御が渡ることがなくなる。さらに、ＳＭＲＡＭ１７１はＳＭＭで動作するＣＰＵ１１１のみが独占的に使用可能となる。従って、ＣＰＵ１１１がＳＭＭで動作している間、ＳＭＩハンドラ１５９の制御下で動作している単一のタスク以外のプログラムが動作することもなく、また当該プログラム以外のプロセスからＳＭＲＡＭ領域１７１にアクセスされることもない。
【００３４】
図４は、本発明の実施の形態における鍵登録ツール２１および暗号化データ３１の生成について説明するブロック図である。図５は、図４のブロック図に基づいて管理者ＰＣ１０において認証データ作成ツール５１が実行する、鍵登録ツール２１および暗号化データ３１の生成の手順について書き表したフローチャートである。この手順では、管理者ＰＣ１０上で、ＯＳ上で動作するソフトウェアである認証データ作成ツール５１を動作させて、秘密鍵データ１６３とユーザ認証モジュール１５７で構成される鍵登録ツール２１を作成する。また、認証データ作成ツール５１は、暗号化データ３１を作成してリムーバブル・デバイス４１に格納する。他のユーザＰＣに対する鍵登録ツールおよび暗号化データも同様の手順で生成することができる。リムーバブル・デバイス４１としては、ＵＳＢフラッシュ・メモリ１２７を使用する。リムーバブル・デバイス４１は、管理者ＰＣ１０およびユーザＰＣ１１に対して有線のインターフェースを有するものだけでなく、無線のインターフェースを有するものであってもよい。なお、認証データ作成ツール５１はＯＳ上で動作するが、管理者ＰＣ１０はセキュリティが十分に確保されているので、たとえばユーザが入力した内容がキー・ロガーやスパイウェアなどによって漏洩する可能性は、ここでは特に考えなくてもよいものとする。
【００３５】
管理者ＰＣ１０にＵＳＢフラッシュ・メモリ１２７を接続して、認証データ作成ツール５１を起動した後に（ブロック３０１）、管理者はユーザＰＣ１１で認証に使用するＰＯＰ２０１、ＨＤＰ２０３、およびその他のパスワード２０５を管理者ＰＣ１０に入力する（ブロック３０３）。その他のパスワード２０５は、ログオン・パスワード、およびインターネットへの接続、電子メールの利用、共有ドライブおよび共有プリンタなどの利用、特定のオンライン・サービスの利用などの場面ごとに必要なパスワードで構成される。その他のパスワード２０５として登録される情報には、ＵＳＢフラッシュ・メモリ１２７を使用するユーザのユーザＩＤ、パスワードやユーザＩＤの入力を要求するソフトウェアの名称、ウェブ・ページのＵＲＬ、またはサイトの名称などを含んでもよい。さらに管理者は、ユーザＰＣ１１がユーザを認証する時に入力するＰＩＮ２０７を入力する（ブロック３０５）。本実施の形態では、ユーザ認証に必要なパスワードはすべてＵＳＢフラッシュ・メモリ１２７に格納するので、ＰＩＮ２０７はユーザが長期間記憶できる程度の比較的簡単な数字列や文字列に設定することができる。
【００３６】
認証データ作成ツール５１は、ＵＳＢフラッシュ・メモリ１２７のシリアル・ナンバ２１９を読み取る（ブロック３０７）。シリアル・ナンバ２１９は、メーカーや機種などを問わず、製造段階でほとんどすべてのリムーバブル・デバイスに固有に与えられている番号であり、異なるリムーバブル・デバイスが同じシリアル・ナンバを持つことはない。本実施の形態では、リムーバブル・デバイスが必ずしもシリアル・ナンバ２１９のような固有情報を保有していなくてもよい。そして、認証データ作成ツール５１は非対称鍵生成部２０９によって、非対称鍵暗号（公開鍵暗号）方式で使用される一対の公開鍵２１１と秘密鍵２１３とを生成する（ブロック３０９）。非対称鍵暗号方式ではＲＳＡ暗号、楕円曲線暗号、Ｅｌ  Ｇａｍａｌ暗号などのアルゴリズムが採用される。そして、非対称鍵生成部２０９によって複数組の公開鍵２１１と秘密鍵２１３との対を連続して生成した場合、同一の鍵の対が複数個生成される確率は実質上ゼロに等しい。
【００３７】
認証データ作成ツール５１は、公開鍵２１１を利用してＰＯＰ２０１、ＨＤＰ２０３、およびその他のパスワード２０５を暗号化して暗号化データ３１を生成し（ブロック３１１）、ＵＳＢフラッシュ・メモリ１２７上に格納する（ブロック３１３）。暗号化データ３１には、ＰＯＰ２０１が暗号化された暗号化ＰＯＰ２０１’、ＨＤＰ２０３が暗号化された暗号化ＨＤＰ２０３’、その他のパスワード２０５が暗号化された暗号化その他のパスワード２０５’と、シリアル・ナンバ２１９が暗号化された暗号化シリアル・ナンバ２１９’とが含まれる。シリアル・ナンバ２１９が存在しないリムーバブル・デバイスを利用する場合は、認証データ作成ツール５１はあらかじめ定められた情報を暗号化シリアル・ナンバ２１９’として設定して暗号化データ３１に含める。そして認証データ作成ツール５１は、暗号化データ３１をＵＳＢフラッシュ・メモリ１２７上に格納した後、暗号化に使用した公開鍵２１１を管理者ＰＣ１０のどこにも残らないように消去することによって破棄する（ブロック３１５）。これによって、同一のＰＯＰ２０１、ＨＤＰ２０３、その他のパスワード２０５、およびシリアル・ナンバ２１９から暗号化データを生成しようとしても、非対称鍵生成部２０９によって生成される公開鍵２１１は毎回異なるので、ＵＳＢフラッシュ・メモリ１２７上に格納された暗号化データ３１と同一の暗号化データを後から生成することはできない。そして、この暗号化データ３１を復号化できるのは、公開鍵２１１と一対の非対称鍵として生成された秘密鍵２１３だけである。
【００３８】
そして認証データ作成ツール５１は、ユーザＰＣ１１のセキュアＮＶＲＡＭ１３３に秘密鍵データ１６３を格納するための鍵登録ツール２１を生成する（ブロック３１７）。鍵登録ツール２１は、秘密鍵データ１６３とユーザ認証モジュール１５７、およびパスワード・サービス・ルーチン１５８を含む。ユーザ認証モジュール１５７は、ユーザＰＣ１１のＢＩＯＳフラッシュＲＯＭ１３１に記憶されて動作する本発明の実施の形態にかかるソフトウェアである。秘密鍵データ１６３は、秘密鍵２１３と、ユーザが入力したＰＩＮ２０７とをＸＯＲ演算して暗号化した情報である。秘密鍵データ１６３を秘密鍵２１３をＰＩＮ２０７で暗号化して生成する理由は、ユーザＰＣ１１で認証作業を行うときにＰＩＮ２０７の入力がない場合には、秘密鍵データ１６３を復号化できないようにするためである。したがって、認証データ作成ツール５１はＰＩＮ２０７を鍵にした他の暗号方式で秘密鍵２１３を暗号化して秘密鍵データ１６３を生成するようにしてもよい。鍵登録ツール２１が生成されたら、同一の秘密鍵データ１６３が複数回作成されないよう、管理者ＰＣ１０から秘密鍵２１３を消去することができる（ブロック３１９）。鍵登録ツール２１は、ユーザＰＣ１１に格納されてＵＳＢフラッシュ・メモリ１２７とともにユーザ認証に使用される。したがって、鍵登録ツール２１はＵＳＢフラッシュ・メモリ１２７で認証するユーザＰＣに対応した数だけ作成することになるが、本実施の形態ではＵＳＢフラッシュ・メモリ１２７を使用して認証するのはユーザＰＣ１１だけであるとして説明する。以上で、鍵登録ツール２１および暗号化データ３１の生成の処理は終了する（ブロック３２１）。
【００３９】
図６は、ユーザＰＣ１１において鍵登録ツール２１が実行する、秘密鍵データ１６３の登録の手順について書き表したフローチャートである。鍵登録ツール２１は実行形式のコンピュータ・プログラムであり、フロッピー・ディスク（登録商標）やネットワーク、あるいはリムーバブル・デバイス（暗号化データ３１が記録されたものと同一であってもなくてもよい）などによって、管理者ＰＣ１０からユーザＰＣ１１にセキュアな環境下で移動し、ユーザＰＣ１１上で実行される（ブロック４０１）。なお、ユーザＰＣ１１には、あらかじめ真正なＰＯＰ２０１、ＨＤＰ２０３、およびその他のパスワード２０５が所定の場所に格納されているものとする。鍵登録ツール２１は、ユーザＰＣ１１のＢＩＯＳフラッシュＲＯＭ１３１にユーザ認証モジュール１５７およびパスワード・サービス・ルーチン１５８をインストールし（ブロック４０３）、セキュアＮＶＲＡＭ１３３に秘密鍵データ１６３を格納する（ブロック４０５）。その後で、鍵登録ツール２１は自らを実行不可能にして（ブロック４０７）、処理を終了する（ブロック４０９）。このことにより、鍵登録ツール２１がユーザＰＣ１１以外の意図しない他のユーザＰＣにおいて実行されることによって同一の秘密鍵データが複数台のユーザＰＣに登録されることを防止している。または、鍵登録ツール２１が生成されてから実行されるまでの時間を制限する方法や、実行の際にパスワード（ＰＩＮ２０７と同一であっても異なっていてもよい）の入力を要求する方法などによって、正当なユーザ以外に鍵登録ツール２１を実行できないようにする対策を含めてもよい。なお、ユーザＰＣ１１には、鍵登録ツール２１とは別個に、パスワード管理ユーティリティ２５１（詳細は後述）がインストールされる。
【００４０】
図７は、鍵登録ツール２１を実行したユーザＰＣ１１におけるユーザ認証について説明するブロック図である。図８は、ユーザＰＣ１１においてユーザ認証モジュール１５７が実行する、ユーザ認証の手順について書き表したフローチャートである。図６に示した手順によってユーザ認証モジュール１５７がインストールされ、秘密鍵データ１６３が格納されたユーザＰＣ１１にＵＳＢフラッシュ・メモリ１２７を接続して電源を入れると、システムＢＩＯＳ１５１によるハードウェアの初期化が行われた後、ユーザ認証モジュール１５７が起動する（ブロック５０１）。このときにセキュアＮＶＲＡＭ１３３の読み書き禁止はＢＩＯＳ１５１により解除される。ユーザ認証モジュール１５７は、ＵＳＢフラッシュ・メモリ１２７自体からシリアル・ナンバ２１９を読み取り、さらにそこに格納された暗号化データ３１を読み取る（ブロック５０３）。そして、ユーザは図４で管理者が入力したのと同じＰＩＮ２０７を入力する（ブロック５０５）。
【００４１】
それからユーザ認証モジュール１５７は、セキュアＮＶＲＡＭ１３３に記憶された秘密鍵データ１６３を読み取り（ブロック５０７）、読み取った秘密鍵データ１６３とブロック５０５で入力されたＰＩＮ２０７とをＸＯＲ演算する（ブロック５０９）。前述のように、秘密鍵データ１６３は、秘密鍵２１３とＰＩＮ２０７とをＸＯＲ演算したデータである。秘密鍵データ１６３の作成時にユーザが入力したＰＩＮ２０７とブロック５０５でユーザが入力したＰＩＮ２０７とが一致していれば、秘密鍵データ１６３とＰＩＮ２０７とをＸＯＲ演算することで秘密鍵２１３を得ることができる。
【００４２】
そしてユーザ認証モジュール１５７は、ＵＳＢフラッシュ・メモリ１２７から読み取った暗号化データ３１を、秘密鍵２１３によって復号化し（ブロック５１１）、復号化された暗号化データ３１に含まれるシリアル・ナンバ２１９を、ＵＳＢフラッシュ・メモリ１２７から読み取ったシリアル・ナンバ２１９と比較する（ブロック５１３）。秘密鍵２１３がＰＩＮ２０７によって復号化されていれば、暗号化データ３１は正しく復号化されるので、復号化されたシリアル・ナンバ２１９は、ＵＳＢフラッシュ・メモリ１２７から読み取ったシリアル・ナンバ２１９と等しくなる。つまり、ブロック５１３で、復号化されたシリアル・ナンバ２１９がＵＳＢフラッシュ・メモリ１２７自体から読み取ったシリアル・ナンバ２１９と等しければ、暗号化データ３１、秘密鍵データ１６３、シリアル・ナンバ２１９、そしてＰＩＮ２０７の全てが正当なものであると判断できるので、ユーザＰＣ１１は、ＵＳＢフラッシュ・メモリ１２７を接続してＰＩＮ２０７を入力したユーザを正当なユーザであると認証する。
【００４３】
ユーザが正しく認証されたら、ユーザ認証モジュール１５７はユーザＰＣ１１の起動に係る処理を続行する。ユーザ認証モジュール１５７は、暗号化データ３１を復号化して獲得したＰＯＰ２０１をシステムＢＩＯＳ１５１に入力し（ブロック５１５）、ＨＤＰ２０３をＨＤＤ１２３に入力し（ブロック５１７）、その他のパスワード２０５をＳＭＲＡＭ１７１に記憶する（ブロック５１９）。ＰＯＰ２０１およびＨＤＰ２０３が正しいことがシステムＢＩＯＳ１５１およびＨＤＤ１２３によって確認されれば、システムＢＩＯＳ１５１はＢＩＯＳフラッシュＲＯＭ１３１に格納されたＰＯＳＴ１５５を起動してハードウェアのテストを行い、セキュアＮＶＲＡＭ１３３を読み書き禁止にし、ＩＮＴ１３Ｈハンドラ１６０を呼び出すことによりＨＤＤ１２３を起動してＯＳの起動を開始する（ブロック５２１）。以上でＢＩＯＳ段階でのユーザ認証の処理を終了する（ブロック５２３）。ブロック５１３で、復号化されたシリアル・ナンバ２１９がＵＳＢフラッシュ・メモリ１２７から読み取られたシリアル・ナンバ２１９と等しくなければ、ユーザ認証モジュール１５７はＯＳを起動しないでユーザ認証の処理を打ち切って終了する（ブロック５２５）。なお、パスワード管理ユーティリティ２５１は、ユーザ認証が正常に完了してＯＳが立ち上がった後にＯＳ上で動作し、ＳＭＲＡＭ１７１に記憶されたその他のパスワード２０５を受け取って認証作業を行う周知のソフトウェアであるが、詳細は後述する。
【００４４】
図７および図８で示した認証処理で、たとえばユーザがＰＩＮ２０７の入力を間違えた場合は、ブロック５０９の処理で得られる鍵は、正しい秘密鍵２１３にならない。従って、ブロック５１１の処理で誤った鍵を利用して復号化されたシリアル・ナンバ２１９は、ＵＳＢフラッシュ・メモリ１２７から読み取られたシリアル・ナンバ２１９と等しくならないので、ブロック５１３の処理でユーザは認証されない。従って、悪意のある第三者がＵＳＢフラッシュ・メモリ１２７を盗んでも、ＰＩＮ２０７を入手しない限り、暗号化データ３１に含まれる情報を利用して認証することはできない。ＰＩＮ２０７はユーザが記憶できる範囲の数字・文字列に設定することができるので、ユーザはＰＩＮ２０７の秘密を保持することは比較的容易である。ここで、一定の回数連続して正しく認証されなかった場合に暗号化データ３１を無効にするようにして、試行錯誤法や辞書攻撃によってＰＩＮ２０７を割り出される可能性を低減させるようにしてもよい。
【００４５】
また、ＵＳＢフラッシュ・メモリ１２７に格納された暗号化データ３１を、他のＵＳＢフラッシュ・メモリにコピーしようと試みる場合、コピーできるのは格納されているデータだけでありシリアル・ナンバはコピーできない。したがって、コピーされたＵＳＢフラッシュ・メモリから読み取られたシリアル・ナンバは、真正のＵＳＢフラッシュ・メモリ１２７に附属するシリアル・ナンバ２１９と等しくならない。つまり、ＰＩＮ２０７を盗んで正しい秘密鍵２１３を得て、コピーされたＵＳＢフラッシュ・メモリからシリアル・ナンバ２１９を復号化したとしても、復号化されたシリアル・ナンバ２１９は、真正のＵＳＢフラッシュ・メモリ１２７から読み取られたシリアル・ナンバと等しくならないので、ブロック５１３の処理でユーザは認証されない。従って、悪意のある第三者がＵＳＢフラッシュ・メモリ１２７に記憶された暗号化データ３１を他のＵＳＢフラッシュ・メモリにコピーして、しかもＰＩＮ２０７を割り出すことができたとしても、正当なユーザになりすましてユーザＰＣ１１にアクセスすることはできない。
【００４６】
図９は、ＢＩＯＳの動作環境下でユーザの認証が正常に完了した後に、パスワード管理ユーティリティ２５１によって実行されるＯＳにログインするためのユーザ認証について書き表したフローチャートである。パスワード管理ユーティリティ２５１は、図６および図７で説明したユーザ認証が正常に完了してＯＳが立ち上がった後で、ユーザＰＣ１１のＯＳ上で動作するソフトウェアである。図９（Ａ）は、ＯＳが立ち上がり、ログオン・パスワードの入力を受け付ける段階で実行される処理である。ＯＳが立ち上がるとパスワード管理ユーティリティ２５１の実行が開始され（ブロック６０１）、パスワード管理ユーティリティ２５１はＣＰＵ１１１の動作をＳＭＭに移行させる（ブロック６０３）。ここで、ＢＩＯＳ段階で動作するパスワード・サービス・ルーチン１５８がＳＭＩハンドラ１５９を介して呼び出される。パスワード・サービス・ルーチン１５８は、ＳＭＲＡＭ１７１に記憶されたその他のパスワード２０５を読み取り、読み取ったその他のパスワード２０５をパスワード管理ユーティリティ２５１に渡す。（ブロック６０５）。
【００４７】
パスワード管理ユーティリティ２５１は、ＳＭＲＡＭ１７１およびパスワード・サービス・ルーチン１５８を介して暗号化データ３１から復号化されたその他のパスワード２０５を受け取るので、マルチ・タスクを実現するＯＳ環境下での処理であってもキー・ロガーやスパイウェアなどによってその他のパスワード２０５が第三者に読み取られる可能性は低い。ブロック６０５でその他のパスワード２０５を読み込んだ後、パスワード・サービス・ルーチン１５８はＳＭＲＡＭ１７１に記憶されたその他のパスワード２０５を消去してもよい。
【００４８】
パスワード管理ユーティリティ２５１はＳＭＭを終了してＯＳのログオン・パスワードの入力を受け付ける状態に戻り（ブロック６０７）、その他のパスワード２０５の中にログオンに使用するユーザＩＤおよびログオン・パスワードが存在するか否かを判断する（ブロック６０９）。ユーザＩＤおよびログオン・パスワードが存在すれば、ユーザＩＤおよびログオン・パスワードをＯＳへのログオン処理を行う周知の認証モジュール（図示せず）に対して入力して終了する（ブロック６１１〜６１３）。その他のパスワード２０５の中にユーザＩＤおよびログオン・パスワードが存在しなければ、その時点で終了する（ブロック６１５）。ログオン・パスワードはＯＳの中に暗号化されて保持されている。たとえば米国マイクロソフト社のＷｉｎｄｏｗｓ（登録商標）シリーズにおけるＧＩＮＡ（Graphical Identification and Authentication）などのようなログオン処理をする認証モジュールを介して入力されたユーザＩＤおよびログオン・パスワードと、あらかじめユーザにより登録されてＯＳの中に暗号化されて保持されているユーザＩＤおよびログオン・パスワードとを比較することによってユーザ認証が行われる。なお、ログオン・パスワードの認証が終了した後も、パスワード管理ユーティリティ２５１は常駐プログラムとして、ＯＳの動作が終了するまで動作を続ける。
【００４９】
図９（Ｂ）は、ユーザがＯＳにログオンした後の状態で実行される処理である。パスワード管理ユーティリティ２５１は常駐しているので、ユーザは、たとえば右クリック・メニューや特定のホット・キーなどの操作によって、パスワード管理ユーティリティ２５１のパスワード入力の機能を呼び出すことができる。または、パスワード管理ユーティリティ２５１がＯＳの動作状態の中からユーザＩＤおよびパスワード（もしくはパスワードのみ）の入力を必要とする特定の状態を検出し、それに応じてパスワード入力の機能を呼び出すこともできる。パスワード管理ユーティリティ２５１が検出する対象としては、たとえば特定のソフトウェアを実行している状態、ネットワーク上の特定の共有資源にアクセスしている状態、ウェブ・ブラウザで特定のＵＲＬを開いている状態などが該当する。
【００５０】
パスワード管理ユーティリティ２５１がパスワード入力の機能を呼び出すと（ブロック６５１）、パスワード管理ユーティリティ２５１はあらかじめユーザにより入力されＯＳの中に格納しておいたその他のパスワード２０５の中に、入力の対象に該当するユーザＩＤおよびパスワード（もしくはパスワードのみ）が存在するか否かを判断する（ブロック６５９）。該当するユーザＩＤおよびパスワード（もしくはパスワードのみ）が存在すれば、それらを該当するソフトウェアなどの入力対象に入力して終了する（ブロック６６１〜６６３）。その他のパスワード２０５の中に該当するユーザＩＤおよびパスワード（もしくはパスワードのみ）が存在しなければ、そのまま終了する（ブロック６６５）。
【００５１】
図１０は、本発明の実施形態における鍵登録ツールおよび暗号化データの生成についての他の例を説明するブロック図である。図１１は、図１０のブロック図に基づいて管理者ＰＣ１０において認証データ作成ツール７５１が実行する、鍵登録ツール７２１および暗号化データ７３１の生成の手順について書き表したフローチャートである。
【００５２】
図１０に示す鍵登録ツール７２１および暗号化データ７３１の生成において、図４で説明した方法と異なる点は、第１に暗号化データ７３１はシリアル・ナンバ２１９を公開鍵２１１によって暗号化したデータは含まない点である。第２に、鍵登録ツール７２１に含まれる秘密鍵データ７６３は、秘密鍵２１３とシリアル・ナンバ２１９とをＸＯＲ演算して得たデータとユーザが入力したＰＩＮ２０７とをＸＯＲ演算したデータである点である。第３に、鍵登録ツール７２１に含まれるユーザ認証モジュール７５７が、後で述べる認証の処理に対応したものである点である。
【００５３】
また、図１１のフローチャートが図５で説明したフローチャートと異なる点は、第１はブロック８１１で作成されてブロック８１３でＵＳＢフラッシュ・メモリ１２７に記録される暗号化データ７３１が、図１０に示した通りの内容になる点である。第２は、ブロック８１７で作成される鍵登録ツール７２１に含まれる秘密鍵データ７６３が、図１０に示した通りの内容になる点である。これらの相違点以外は、図１０および図１１に示す構成は図４および図５で説明した内容と共通するので、同一のものは参照番号も同一として説明を省略する。また、鍵登録ツール７２１のユーザＰＣ１１上での処理も、鍵登録ツール７２１に含まれる秘密鍵データ７６３とユーザ認証モジュール７５７が異なる点以外は図６で示した内容と同一であるので、説明を省略する。
【００５４】
図１２は、図１０、図１１に示した手順で作成された鍵登録ツール７２１を実行したユーザＰＣ１１が暗号化データ７３１を使用して行うユーザ認証について説明するブロック図である。図１３はユーザ認証モジュール７５７が実行する、ユーザ認証の手順について書き表したフローチャートである。図１２のブロック図が図７のブロック図と異なる点は、ＵＳＢフラッシュ・メモリ１２７から読み出されたシリアル・ナンバ２１９が、秘密鍵データ７６３の復号化に使われる点である。より具体的には、秘密鍵データ７６３とユーザにより入力されたＰＩＮ２０７とをＸＯＲ演算したデータに対して、さらにシリアル・ナンバ２１９をＸＯＲ演算することによって秘密鍵２１３を得て暗号化データ７３１を復号化する点である。
【００５５】
そして、図１３のフローチャートが図８のフローチャートと異なる点は、第１に秘密鍵２１３を得る処理が前述のように秘密鍵データ７６３と入力されたＰＩＮ２０７とをＸＯＲ演算し、さらにそれにシリアル・ナンバ２１９をＸＯＲ演算する処理になる（ブロック９０９）点である。第２に、シリアル・ナンバを比較するブロック５１３の処理がなく、そのかわりに、暗号化データ７３１を復号化して得られたＰＯＰ２０１およびＨＤＰ２０３をシステムＢＩＯＳ１５１およびＨＤＤ１２３に入力し、それによってＯＳが正しく起動できる状態になったか否かを判断するブロック９１８の処理がある点である。正しく復号化されたＰＯＰ２０１およびＨＤＰ２０３によってＯＳが起動できる状態になれば、秘密鍵２１３が正しかったことになり、ひいては暗号化データ７３１、秘密鍵データ７６３、シリアル・ナンバ２１９、そしてＰＩＮ２０７の全てが正当なものであったと判断できる。これら以外は、図１１および図１２に示す構成は図７および図８で説明した内容と共通するので、同一のものは参照番号も同一として説明を省略する。また、ユーザの認証が正常に完了した後でパスワード管理専用ユーティリティ２５１によって実行される処理についても、図９で示した内容と同一であるので、説明を省略する。
【００５６】
ここまでで示した本発明の実施の形態には、いくつかの変型が考えられる。たとえば、セキュリティを強化するためのモジュールであるＴＰＭ（Trusted Platform Module）というセキュリティ・チップを搭載したノートＰＣで、ＴＰＭ内に標準的に装備されている不揮発性メモリを前述の実施の形態におけるセキュアＮＶＲＡＭ１３３の代替として使用することができる。ＴＰＭの不揮発性メモリは読み書きを禁止することが可能であるので、本発明を実施するのに適している。これら以外でも、ＰＣに内蔵され、読み書きを禁止することが可能な不揮発性メモリであれば、本発明における秘密鍵データを記憶するセキュアな記憶領域として利用できる。
【００５７】
また、ＰＣによっては、ＰＯＰをセキュアＮＶＲＡＭ１３３の設定情報１６１内ではなく、Ｉ／Ｏブリッジ１２１のレジスタ内に記憶しているものもある。この場合も、前述の実施形態と全く同じようにして本発明を実施できる。本発明によれば、ユーザはＰＯＰ、ＨＤＰなどを記憶する必要がないので、桁数が大きくランダムな文字列や数字列を採用することができるため、ユーザＰＣに格納されたパスワードが第三者から攻撃されて解読される危険性が低下する。しかも、ユーザは負担にならない程度の桁数のＰＩＮだけを記憶してその秘密を確保しておけば、リムーバブル・デバイスが盗まれてもユーザＰＣが危険に晒されることはない。本発明によれば、リムーバブル・デバイスとして安価な記憶媒体を採用したとしても、格納する暗号化データのセキュリティが十分に確保されているので安全である。
【００５８】
これまで本発明について図面に示した特定の実施の形態をもって説明してきたが、本発明は図面に示した実施の形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができることは言うまでもないことである。
【産業上の利用可能性】
【００５９】
パスワードによる認証を行うコンピュータにおいて利用可能である。
【図面の簡単な説明】
【００６０】
【図１】本発明の認証システムの全体構成を示す図である。
【図２】本発明の実施形態に係るＰＣのシステム構成を示す概略ブロック図である。
【図３】本発明の実施形態に係るＰＣの中で、ＢＩＯＳフラッシュＲＯＭ、セキュアＮＶＲＡＭ、メイン・メモリの内部構成を示す図である。
【図４】本発明の実施形態に係る鍵登録ツールおよび暗号化データの生成について示すブロック図である。
【図５】本発明の実施形態に係る鍵登録ツールおよび暗号化データの生成の手順について書き表したフローチャートである。
【図６】本発明の実施形態に係る秘密鍵データの登録の手順について書き表したフローチャートである。
【図７】本発明の実施形態に係るユーザの認証について示すブロック図である。
【図８】本発明の実施形態に係るユーザの認証の手順について書き表したフローチャートである。
【図９】本発明の実施形態に係るパスワード管理ユーティリティによって実行される手順について書き表したフローチャートである。
【図１０】本発明の実施形態に係る鍵登録ツールおよび暗号化データの生成についての他の実施例を示すブロック図である。
【図１１】図１０に係る実施例において行われる、鍵登録ツールおよび暗号化データの生成の手順について書き表したフローチャートである。
【図１２】図１０に係る実施例において行われるユーザの認証について示すブロック図である。
【図１３】図１０にかかる実施例において行われるユーザ認証の手順について書き表したフローチャートである。
【符号の説明】
【００６１】
１０…管理者ＰＣ
１１、１２、１３…ユーザＰＣ
２１、２２、２３、７２１…鍵登録ツール
３１、３２、３３、７３１…暗号化データ
４１、４２、４３…リムーバブル・デバイス
５１、７５１…認証データ作成ツール
１２５…ＵＳＢインターフェース
１２７…ＵＳＢフラッシュ・メモリ
１３１…ＢＩＯＳフラッシュＲＯＭ
１３３…セキュアＮＶＲＡＭ
１５１…システムＢＩＯＳ
１５７、７５７…ユーザ認証モジュール
１６３、７６３…秘密鍵データ
１７１…ＳＭＲＡＭ
２０１…ＰＯＰ
２０３…ＨＤＰ
２０５…その他のパスワード
２０７…ＰＩＮ
２０９…非対称鍵生成部
２１１…公開鍵
２１３…秘密鍵
２１９…シリアル・ナンバ
【図１】
2008160325.tif 000003
【図２】
2008160325.tif 000004
【図３】
2008160325.tif 000005
【図４】
2008160325.tif 000006
【図５】
2008160325.tif 000007
【図６】
2008160325.tif 000008
【図７】
2008160325.tif 000009
【図８】
2008160325.tif 000010
【図９】
2008160325.tif 000011
【図１０】
2008160325.tif 000012
【図１１】
2008160325.tif 000013
【図１２】
2008160325.tif 000014
【図１３】
2008160325.tif 000015