(57)【要約】【課題】セキュリティを保護するＢＩＯＳおよび磁気ディスク装置のパスワードを、複数ユーザで共有できるコンピュータおよび共有パスワードの管理方法を提供する。【解決手段】  当該ユーザのみが入力できる外部鍵を利用して内部鍵を暗号化し、さらに内部鍵を利用して共有パスワードを暗号化する。暗号化された内部鍵および共有パスワードは、読み取り禁止設定が可能な不揮発性記憶手段に格納される。このことにより、ユーザは自らの外部鍵を知っていれば、共有パスワードを知らなくても当該コンピュータを使用でき、共有パスワードを変更できる。【選択図】図５
2008052704.tif 000002
【特許請求の範囲】
【請求項１】
共有パスワードを認識した後にオペレーティング・システムが動作するコンピュータであって、
システム・メモリと、
外部鍵を受け取る入力手段と、
内部鍵を生成する内部鍵生成手段と、
共有パスワードを生成する共有パスワード生成手段と、
前記内部鍵を利用して前記共有パスワードを暗号化し、前記外部鍵を利用して前記内部鍵を暗号化する暗号化手段と、
前記暗号化された内部鍵と前記暗号化された共有パスワードとを格納する読み取り禁止設定が可能な不揮発性記憶手段と
を有するコンピュータ。
【請求項２】
前記内部鍵が管理者用内部鍵を含み、前記内部鍵生成手段が乱数生成器を含み、前記内部鍵生成手段は前記管理者用内部鍵を前記乱数生成器によって生成された乱数を利用して生成する請求項１記載のコンピュータ。
【請求項３】
前記内部鍵がユーザ用内部鍵を含み、前記内部鍵生成手段は前記管理者用内部鍵をハッシュして前記ユーザ用内部鍵を生成する請求項２記載のコンピュータ。
【請求項４】
前記内部鍵生成手段は前記ユーザ用内部鍵をハッシュして、前記ユーザよりも下位権限のユーザ用内部鍵を生成する請求項３記載のコンピュータ。
【請求項５】
前記入力手段はユーザ情報を受け取り、前記暗号化手段は前記外部鍵を利用して前記ユーザ情報を暗号化し、前記不揮発性記憶手段は前記暗号化されたユーザ情報を記憶する請求項１記載のコンピュータ。
【請求項６】
前記外部鍵が複数存在し、前記内部鍵生成手段は前記複数の外部鍵にそれぞれ対応する複数の内部鍵を生成し、前記暗号化手段は各々の内部鍵をそれぞれに対応する外部鍵で暗号化する請求項１記載のコンピュータ。
【請求項７】
前記外部鍵が、文字列からなるパスワード、ユーザが持つ生体情報、ユーザが持つ電子情報のうち一つ以上を含む、請求項１記載のコンピュータ。
【請求項８】
前記共有パスワード生成手段は、乱数を利用して前記共有パスワードを生成する請求項１記載のコンピュータ。
【請求項９】
前記内部鍵および外部鍵による暗号化の方式が共通鍵方式である請求項１記載のコンピュータ。
【請求項１０】
共有パスワードを認識した後にオペレーティング・システムが動作するコンピュータであって、
プロセッサと、
ＳＭＲＡＭ領域を有するシステム・メモリと、
ＢＩＯＳフラッシュＲＯＭと、
不揮発性メモリと、
前記ＢＩＯＳフラッシュＲＯＭに格納され前記ＳＭＲＡＭ領域に読み込まれるプログラムとを有し、該プログラムは前記プロセッサに、
外部鍵を受け取るステップと、
内部鍵を生成するステップと、
共有パスワードを生成するステップと、
前記内部鍵を利用して前記共有パスワードを暗号化し、前記外部鍵を利用して前記内部鍵を暗号化するステップと、
前記暗号化された内部鍵と前記暗号化された共有パスワードとを前記不揮発性メモリに格納するステップと、
前記不揮発性メモリを読み取り禁止に設定するステップとを実行させる
コンピュータ。
【請求項１１】
前記プログラムは前記ＳＭＲＡＭ領域で実行される請求項１０記載のコンピュータ。
【請求項１２】
前記プログラムは前記プロセッサに、
前記コンピュータの電源がリセットされときに前記不揮発性メモリの読み取り動作を可能とするステップと、
前記オペレーティング・システムが動作する直前に前記不揮発性メモリの読み取り動作を禁止するステップとをさらに実行させる請求項１０記載のコンピュータ。
【請求項１３】
共有パスワードを認識した後にオペレーティング・システムが動作するコンピュータであって、
ＳＭＲＡＭ領域を有する記憶手段と、
外部鍵を受け取る入力手段と、
内部鍵を生成する内部鍵生成手段と、
前記内部鍵を利用して暗号化された共有パスワードと前記外部鍵を利用して暗号化された前記内部鍵を格納する読み取り禁止設定が可能な不揮発性記憶手段と、
前記暗号化された内部鍵と前記暗号化された共有パスワードとを前記ＳＭＲＡＭ領域に読み出し、前記外部鍵で前記内部鍵を復号化し、該復号化された内部鍵で前記共有パスワードを復号化する復号化手段と
を有するコンピュータ。
【請求項１４】
前記復号化手段が前記内部鍵と前記共有パスワードとを復号化した後に前記不揮発性記憶手段に対するアクセスを禁止するアクセス禁止手段を有する請求項１３記載のコンピュータ。
【請求項１５】
前記入力手段がネットワーク・インターフェイスである、請求項１３記載のコンピュータ。
【請求項１６】
前記共有パスワードが唯一のパワーオン・パスワードを含む、請求項１３記載のコンピュータ。
【請求項１７】
前記共有パスワードが唯一の管理者パスワードを含む、請求項１３記載のコンピュータ。
【請求項１８】
前記共有パスワードがハード・ディスク・ドライブに対する唯一のＨＤＤパスワードを含む、請求項１３記載のコンピュータ。
【請求項１９】
認証手段をさらに有し、前記復号化手段は前記ユーザの外部鍵を利用してあらかじめ暗号化されたユーザ情報を前記ＳＭＲＡＭ領域に読み出し、前記外部鍵で前記復号化手段が前記ユーザ情報を復号化し、前記認証手段は前記ユーザ情報に基づいて前記外部鍵の正当性を認証する請求項１３記載のコンピュータ。
【請求項２０】
前記内部鍵および外部鍵による復号化の方式が共通鍵方式である請求項１３記載のコンピュータ。
【請求項２１】
共有パスワードを認識した後にオペレーティング・システムが動作するコンピュータであって、
プロセッサと、
ＳＭＲＡＭ領域を有するシステム・メモリと、
ＢＩＯＳフラッシュＲＯＭと、
不揮発性メモリと、
前記ＢＩＯＳフラッシュＲＯＭに格納され前記ＳＭＲＡＭ領域に読み込まれるプログラムとを有し、該プログラムは前記プロセッサに、
外部鍵を受け取るステップと、
内部鍵を利用して暗号化された共有パスワードと前記外部鍵を利用して暗号化された前記内部鍵とを前記不揮発性メモリに提供するステップと、
前記暗号化された内部鍵と前記暗号化された共有パスワードとを前記ＳＭＲＡＭ領域に読み出し、前記外部鍵で前記内部鍵を復号化し、該復号化された内部鍵で前記共有パスワードを復号化するステップとを実行させる
コンピュータ。
【請求項２２】
ユーザに前記共有パスワードの更新メニューを提供する請求項２１記載のコンピュータ。
【請求項２３】
コンピュータにおいてＢＩＯＳが認識する共有パスワードを管理する方法であって、
前記コンピュータが外部鍵を受け取る第１の受け取りステップと、
前記コンピュータが内部鍵を生成するステップと、
前記コンピュータが前記共有パスワードを生成するステップと、
前記コンピュータが前記内部鍵を利用して前記共有パスワードを暗号化し、前記外部鍵を利用して前記内部鍵を暗号化するステップと、
前記コンピュータが前記暗号化された内部鍵と前記暗号化された共有パスワードとをそれ以後に実行されるプログラムで読み取ることができないように格納するステップと
を有する管理方法。
【請求項２４】
前記コンピュータが外部鍵を受け取る第２の受け取りステップと、
前記コンピュータが前記暗号化された内部鍵と前記暗号化された共有パスワードとをシステム・メモリのＳＭＲＡＭ領域に読み出し、前記第２の受け取りステップで受け取った外部鍵で前記内部鍵を復号化し、該復号化された内部鍵で前記共有パスワードを復号化するステップと、
前記コンピュータが前記復号化された前記共有パスワードをＢＩＯＳに提供するステップと
をさらに有する請求項２３記載の管理方法。
【請求項２５】
コンピュータにおいてＢＩＯＳが認識する共有パスワードを管理するプログラムであって、前記コンピュータに、
前記コンピュータが外部鍵を受け取る受け取り機能と、
前記コンピュータが内部鍵を生成する機能と、
前記コンピュータが前記共有パスワードを生成する機能と、
前記コンピュータが前記内部鍵を利用して前記共有パスワードを暗号化し、前記外部鍵を利用して前記内部鍵を暗号化する機能と、
前記コンピュータが前記暗号化された内部鍵と前記暗号化された共有パスワードとをそれ以後に実行されるプログラムで読み取ることができないように格納する機能と
を実現させるプログラム。
【請求項２６】
前記コンピュータの電源が投入されてからオペレーティング・システムが動作するまでの間に実行される請求項２５記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パスワードによってコンピュータのセキュリティを確保する技術に関し、さらに詳細には一つのパスワードしか受け入れないコンピュータを複数のユーザが使用するときにセキュリティを確保する技術に関する。
【背景技術】
【０００２】
ノート・ブック型パーソナル・コンピュータ（以下ノートＰＣという）は、持ち運びがしやすく、商用電源から電力の供給を受けられない場所でもバッテリー・パックから電力の供給を受けて動作することができる。ＣＰＵの処理能力、磁気ディスク装置の容量、ディスプレイの表示能力などで技術の改良が進んだ結果、ノートＰＣは既にデスクトップ型パーソナル・コンピュータに匹敵する性能を持つに至っている。このため、ノートＰＣは磁気ディスク装置に大量のデータが記憶された状態で持ち運びされることが多くなってきている。
【０００３】
しかし、ノートＰＣは同時に、その持ち運びのしやすさの故に盗難にあいやすいという一面も持ち合わせている。盗難にあったノートＰＣの磁気ディスク装置からデータを取り出された場合、その被害は重大なものとなる。特に最近は、磁気ディスク装置から取り出されるデータの中に個人のプライバシーに関わる情報、業務上の機密に関わる情報、あるいはユーザ認証が必要なネットワークもしくはオンライン・サービスなどにアクセスするための認証情報などが含まれることも多くなっており、これらの情報を盗まれた場合の被害は特に深刻である。つまり、ノートＰＣが万一盗難にあった場合に備えて、当該ノートＰＣの中に含まれるデータを盗まれないための対策を取る必要性はますます高まっている。より具体的には、ノートＰＣが盗難にあった場合でも本来のユーザ以外の人物が当該ノートＰＣを起動して使用することができないようにする対策、および当該ノートＰＣから磁気ディスク装置を取り外して他のコンピュータに取り付けても当該磁気ディスク装置からデータを読み出せないようにする対策が必要とされている。
【０００４】
そのために一般的に行われているのは、ノートＰＣのＢＩＯＳ（Basic Input/Output System）、および磁気ディスク装置にパスワードを設定し、設定されたパスワードを正しく入力しない限り当該ＢＩＯＳおよび磁気ディスク装置を使用できないようにする方法である。ＢＩＯＳのパスワードは、ＢＩＯＳの種類にもよるが、一般的にパワーオン・パスワードとスーパーバイザー・パスワードの２種類がある。パスワードが設定されているノートＰＣを起動すると、まずパスワードの入力を求められる。その際にパワーオン・パスワードとスーパーバイザー・パスワードのどちらか一方を入力する必要がある。パワーオン・パスワードを入力して正しく認証されると、オペレーティング・システム（以後ＯＳという）の起動だけが可能となる。スーパーバイザー・パスワードを入力して正しく認証されると、ＯＳの起動に加えてＢＩＯＳの設定変更やパワーオン・パスワードの設定などが可能になる。
【０００５】
また、磁気ディスク装置のパスワード（以後ＨＤＤパスワードという）は、コンピュータに外部記憶装置を接続するインターフェイスとして一般的なＡＴＡ／ＡＴＡＰＩの標準的な仕様に含まれている。ＨＤＤパスワードもＢＩＯＳによって設定することが可能である。ＨＤＤパスワードが設定されている場合、ノートＰＣを起動するとＢＩＯＳが磁気ディスク装置に対してＨＤＤパスワードを入力し、当該磁気ディスク装置を使用可能にする。ＢＩＯＳにパスワードが設定されている場合、ＢＩＯＳがパワーオン・パスワードまたはスーパーバイザー・パスワードを正しく認証した場合に限ってＨＤＤパスワードが磁気ディスク装置に入力される。以後、パワーオン・パスワード、スーパーバイザー・パスワード、ＨＤＤパスワードなどを共有することを本発明の目的とするので、これらのパスワードを総称して共有パスワードという。
【０００６】
なお、共有パスワードに関する技術として、以下のような文献がある。特許文献１は、ＨＤＤパスワードをＢＩＯＳが生成して磁気ディスク装置にセットし、コンピュータの起動時にＢＩＯＳが磁気ディスク装置にパスワードを入力する技術を開示する。これにより、当該コンピュータから当該磁気ディスク装置を取り外して他のコンピュータに取り付けても、当該磁気ディスク装置からデータを読み出すことは不可能となる。特許文献２は複数の記憶装置を持つコンピュータで、第１の記憶装置に対してパスワードを入力すれば、第１の記憶装置に記録されたパスワードが他の記憶装置に入力される技術を開示する。これにより、第１の記憶装置のパスワード１つだけで、複数の記憶装置のセキュリティを保護することが可能となる。
【特許文献１】特開２００４−７８５３９号公報
【特許文献２】特開２００６−２３９４３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ノートＰＣにおいても、Ｗｉｎｄｏｗｓ（登録商標）ＮＴ／２０００／ＸＰ、あるいはＬｉｎｕｘ（登録商標）など、一般的に使用されるＯＳはマルチユーザに対応している。実際、一つのノートＰＣが複数のユーザによって使われることも珍しくなく、その場合ＯＳの管理者はユーザごとに別々のユーザＩＤおよびパスワードを登録し、各ユーザは与えられたユーザＩＤおよびパスワードによってＯＳにログインしている。しかし、共有パスワードは、規格上マルチユーザに対応していない。そのため、複数のユーザによって使われるノートＰＣであっても、当該ノートＰＣのユーザ全員が全く同一の共有パスワードを知って使用することになる。これは、セキュリティ保護の観点からして、望ましいことではない。複数のユーザによって使われるノートＰＣで、共有パスワードによって保護された高いセキュリティを得るためには、共有パスワードもユーザごとに別々であることが望ましい。
【０００８】
図１６は、上記の問題を解決するために、指紋、静脈、虹彩などのような生体情報によるユーザ認証（バイオメトリクス認証）の技術を応用した例について示す構成図である。各ユーザの生体情報６０１と、共有パスワード６０３とを関連づけて、ノートＰＣ内部の不揮発性記憶装置６０５に格納する。そして生体情報入力装置６０７からユーザの生体情報６０９を入力すると、生体情報入力装置６０７で読み取られた情報と同一の生体情報が不揮発性記憶装置６０５に記憶されているかどうかが判定される。もし、読み取られた情報と同一の生体情報６０１が不揮発性記憶装置６０５に存在すれば、当該生体情報６０１に対応する共有パスワード６０３がＢＩＯＳ６１１および磁気ディスク装置６１３に入力される。これによって、各ユーザは共有パスワードを認識する必要がないので、ノートＰＣの内部だけで共有パスワードを使用することにより高いセキュリティを確保することができるようになっている。
【０００９】
しかし、この技術を使用するためには、生体情報６０１と共有パスワード６０３を対応づけて不揮発性記憶装置６０５に記憶することが必要である。つまり、各ユーザの生体情報６０１を登録するたびに、共有パスワード６０３を入力せねばならないので、その際に各ユーザに共有パスワード６０３を知られることになる。また、セキュリティを確保するためにはパスワードを定期的に変更することが望ましいが、共有パスワード６０３を変更するためには、そのたびにユーザ全員の生体情報６０１に変更後の共有パスワード６０３を対応づける作業が必要となる。この作業自体が煩雑であり、またユーザ全員に共有パスワード６０３を知られる危険性が生じることになる。
【００１０】
そこで本発明は、複数のユーザが使用する場合でもセキュリティが確保されたコンピュータを提供することにある。さらに本発明の目的は、コンピュータが受け入れるパスワードの数より多い人数のユーザが使用する場合でもセキュリティが確保されたコンピュータを提供することにある。さらに本発明の目的は、安全かつ容易にパスワードの変更が可能なコンピュータを提供することにある。さらに本発明の目的は、そのようなコンピュータで実現されるパスワードの管理方法、およびそのようなコンピュータを実現するコンピュータ・プログラムを提供することにある。
【課題を解決するための手段】
【００１１】
本発明の第１の側面に係るコンピュータはシステム・メモリを有し、ユーザが入力する外部鍵を入力手段で受け取り、内部鍵と共有パスワードとをそれぞれの生成手段で生成することができる。ここでいう外部鍵は当該ユーザのみが入力することができる情報である。内部鍵を利用して共有パスワードを暗号化手段で暗号化し、さらに外部鍵を利用して内部鍵を暗号化手段で暗号化する。暗号化された内部鍵および暗号化された共有パスワードは、読み取り禁止設定が可能な不揮発性記憶手段に格納される。このコンピュータは、共有パスワードを認識した後にＯＳが動作する。このことにより、ユーザは自らの外部鍵を知ってさえいれば、当該共有パスワード自体を知らなくても、共有パスワードによってセキュリティが確保されたコンピュータを使用することができる。さらに共有パスワードは各々のユーザが変更でき、変更された共有パスワードを他のユーザに知らせることなく、すべてのユーザが変更後の共有パスワードによってセキュリティが確保されたコンピュータを使用することができる。
【００１２】
ここでいう内部鍵は、当該コンピュータに固有の情報であることが望ましい。たとえば乱数生成器によって生成された乱数、あるいは内部クロックによって得られる現在の日時などのような情報を利用して生成された内部鍵は、別の時点に別のコンピュータで生成することができない、当該コンピュータに特有のものとなる。また、ユーザが複数いる中で、すべての操作ができる管理者としての権限を持つユーザが使用する内部鍵は、このようにコンピュータ特有の情報として生成されたものであることが望ましい。
【００１３】
操作できる範囲が管理者よりも狭く制限されている一般ユーザの使用する内部鍵は、管理者の使用する内部鍵をハッシュすることによって生成されることがさらに望ましい。ここでいう「ハッシュする」とは、暗号技術的ハッシュ関数（cryptographic hash function）と呼ばれる一方向性関数によって、データを変換することをいう。管理者は、管理者の内部鍵をハッシュすることによって一般ユーザの内部鍵を簡単に得ることができる。逆に、一般ユーザの内部鍵から管理者の内部鍵を得ることは、ハッシュ関数の一方向性によって困難である。共有パスワードの中で、管理者のみが使用可能なパスワードを管理者の内部鍵で暗号化し、管理者と一般ユーザが使用可能なパスワードを一般ユーザの内部鍵で暗号化すれば、ユーザの権限に応じて使用できる共有パスワードを制限することができる。なお、管理者と一般ユーザの他に、一般ユーザよりもさらに低い権限のユーザの階層がある場合も、ある階層のユーザの内部鍵をハッシュして当該ユーザよりも下の階層のユーザの内部鍵を生成することによって同じようにユーザの権限に応じて使用できる共有パスワードを制限することができる。
【００１４】
この内部鍵は複数生成され、不揮発性記憶手段に格納される各々のユーザについて当該ユーザの外部鍵で暗号化されたデータの中に、当該ユーザに対応する内部鍵と、それ以外の各ユーザの情報とを含めることができる。また、当該ユーザの外部鍵としては、文字列からなるパスワード、ユーザが持つ生体情報、ユーザが持つ電子情報などを使用でき、さらにこれらの情報のうち２つ以上を組み合わせて使用することも可能である。なお、管理者の内部鍵と同じように、共有パスワードも乱数によって自動的に生成することができる。また、内部鍵および外部鍵による暗号化が共通鍵方式によって行われると、暗号化に使用されたものと同一の鍵で復号化が可能である。
【００１５】
本発明の第２の側面に係るコンピュータは、プロセッサと、ＳＭＲＡＭ（System Management RAM）領域を有するシステム・メモリと、ＢＩＯＳフラッシュＲＯＭと、不揮発性メモリと、不揮発性メモリに格納されＳＭＲＡＭ領域に読み込まれるプログラムとを備える。このプログラムは、外部鍵を受け取り、内部鍵を生成し、共有パスワードを生成し、内部鍵を利用して共有パスワードを暗号化し、外部鍵を利用して内部鍵を暗号化し、暗号化された内部鍵と共有パスワードとを不揮発性メモリに格納し、その後で不揮発性メモリを読み取り禁止に設定するという処理をプロセッサに実行させる。ＳＭＲＡＭ領域を使用することにより、当該プログラム以外のプロセスが動作することがなくなり、コンピュータ・ウィルスやスパイウェアなどのような悪意のあるソフトウェアによって暗号化されていない共有パスワードや内部鍵を取得される危険性もなくなる。
【００１６】
もちろん、プログラム自体がＳＭＲＡＭ領域内で動作し、プロセッサをＳＭＭ（System Management Mode）で動作させるＳＭＩハンドラを含むことがさらに望ましい。また、不揮発性メモリをコンピュータの電源がリセットされたときに読み取り動作を可能とし、ＯＳが起動する直前に読み取り禁止に設定するようにしておけば、ＯＳが動作している間に当該不揮発性メモリの内容を悪意のあるソフトウェアなどによって読み取られる危険性がなくなる。
【００１７】
本発明の第３の側面に係るコンピュータはＳＭＲＡＭ領域を有するシステム・メモリを備え、ユーザが入力する外部鍵を入力手段で受け取り、内部鍵と共有パスワードとがそれぞれの生成手段で生成されており、内部鍵を利用して暗号化手段で暗号化された共有パスワードと、外部鍵を利用して暗号化手段で暗号化された内部鍵が、読み取り禁止設定が可能な不揮発性記憶手段に格納されている。暗号化された内部鍵と暗号化された共有パスワードとがＳＭＲＡＭ領域に読み出され、復号化手段によって外部鍵で内部鍵を復号化し、さらに復号化された内部鍵で共有パスワードを復号化する。これにより、このコンピュータでは、復号化された共有パスワードがＢＩＯＳで認識された後に、ＯＳが動作する。このことにより、ユーザが自らの外部鍵を入力すれば、当該共有パスワード自体を入力しなくても、共有パスワードによってセキュリティを保護されたコンピュータを使用することができるので、複数のユーザが共有パスワードを使用してコンピュータを使用する際のセキュリティが確保される。
【００１８】
ここでも、内部鍵と共有パスワードとが復号化された後で、アクセス禁止手段によって不揮発性記憶手段に対するアクセスが禁止されることが望ましい。また、外部鍵の入力手段は、キーボードだけではなくネットワーク・インターフェイスを利用することもできる。さらに、共有パスワードは、いずれも当該コンピュータで一つしか存在しないパワーオン・パスワード、管理者（スーパーバイザー）パスワード、ＨＤＤパスワードのうち、いずれか一つ以上を含むことができる。
【００１９】
さらに、認証手段による外部鍵の正当性の認証は、ユーザの外部鍵によって暗号化されたデータの中に含まれているユーザ情報をＳＭＲＡＭ領域の中に読み出し、入力されたユーザの外部鍵によって復号化し、暗号化されていないユーザ情報と復号化されたユーザ情報とを比較することによって行うことができる。これによって、コンピュータ内部にユーザの外部鍵を記憶させなくても、入力された外部鍵の正当性を認証することができるので、コンピュータ内部に記憶された情報から外部鍵が他者に知られる危険性は極めて小さくなる。また、内部鍵および外部鍵による復号化が共通鍵方式によって行われると、暗号化に使用されたものと同一の鍵で復号化が可能である。
【００２０】
本発明の第４の側面に係るコンピュータは、プロセッサと、ＳＭＲＡＭ領域を有するシステム・メモリと、ＢＩＯＳフラッシュＲＯＭと、不揮発性メモリと、不揮発性メモリに格納されＳＭＲＡＭ領域に読み込まれるプログラムとを備える。このプログラムは、外部鍵を受け取り、内部鍵を利用して暗号化された共有パスワードと外部鍵を利用して暗号化された内部鍵とを不揮発性メモリに提供し、暗号化された内部鍵と共有パスワードとをＳＭＲＡＭ領域に読み出し、外部鍵で前記内部鍵を復号化し、復号化された内部鍵で共有パスワードを復号化するという処理をプロセッサに実行させる。
【００２１】
その際、ユーザに対して共有パスワードを変更するための更新メニューを提供することにより、各々のユーザが共有パスワードを変更し、すべてのユーザが変更された共有パスワードによってセキュリティが確保されたコンピュータを使用することができる。また、ここでも不揮発性メモリをコンピュータの電源がリセットされたときに読み取り動作を可能とし、ＯＳが起動する直前に読み取り禁止に設定することが望ましい。
【００２２】
以上で述べてきた本発明の各々の側面における特徴は、コンピュータとしてだけではなく、コンピュータにおいてＢＩＯＳが認識する共有パスワードを管理する方法、あるいはコンピュータにおいてＢＩＯＳが認識する共有パスワードを管理するプログラムとして提供することも可能である。その場合、本発明に係るプログラムはＳＭＲＡＭ領域で実行され、またコンピュータの電源が投入されてからＯＳが動作するまでの間に実行されることが望ましい。
【発明の効果】
【００２３】
本発明により、複数のユーザが使用する場合でもセキュリティが確保されたコンピュータを提供することができた。さらに本発明により、コンピュータが受け入れるパスワードの数より多い人数のユーザが使用する場合でもセキュリティが確保されたコンピュータを提供することができた。さらに本発明により、安全かつ容易にパスワードの変更が可能なコンピュータを提供することができた。さらに本発明により、そのようなコンピュータで実現されるパスワードの管理方法、およびそのようなコンピュータを実現するコンピュータ・プログラムを提供することができた。
【発明を実施するための最良の形態】
【００２４】
図１は、本発明の実施の形態にかかるノートＰＣ１０のシステム構成を示す概略ブロック図である。ノートＰＣ１０の筐体内部には、図１に示す各種のデバイスが搭載されている。ＣＰＵ１１は、ノートＰＣ１０の中枢機能を担う演算処理装置で、ＯＳ、ＢＩＯＳ、デバイス・ドライバ、あるいはアプリケーション・プログラムなどを実行する。本実施の形態にかかるＣＰＵ１１は、ＳＭＩ（System Management Interrupt）入力ピン（ＳＭＩ＃）がアサートされることによって、システム管理用の動作モードであるＳＭＭ（System Management Mode）で動作することが可能である。ＳＭＭでは、特別に割り当てられたメモリ空間において、米国インテル社製のＣＰＵに存在する割り込み制御ハンドラであるＳＭＩハンドラが実行される。ＳＭＭは主にサスペンド、レジューム、電源管理およびセキュリティ関連の操作などに利用される特権実行モードである。
【００２５】
ＣＰＵ１１は、システム・バスとしてのＦＳＢ(Front Side Bus)１３、ＣＰＵ１１と周辺機器との間の通信を行うためのＰＣＩ(Peripheral Component Interconnect)バス１５、ＩＳＡバスに代わるインターフェイスであるＬＰＣ(Low Pin Count)バス１７という３段階のバスを介して各デバイスに接続されて信号の送受を行っている。ＦＳＢ１３とＰＣＩバス１５は、メモリ／ＰＣＩチップと呼ばれるＣＰＵブリッジ１９によって連絡されている。ＣＰＵブリッジ１９は、メイン・メモリ２１へのアクセス動作を制御するためのメモリ・コントローラ機能や、ＦＳＢ１３とＰＣＩバス１５との間のデータ転送速度の差を吸収するためのデータ・バッファ機能などを含んだ構成となっている。メイン・メモリ２１は、ＣＰＵ１１が実行するプログラムの読み込み領域、処理データを書き込む作業領域として利用される書き込み可能メモリである。同時にメイン・メモリ２１はＳＭＲＡＭ（System Management RAM）としての領域を含むが、これについては後述する。ビデオ・カード２３は、ビデオ・チップ（図示せず）およびＶＲＡＭ（図示せず）を有し、ＣＰＵ１１からの描画命令を受けて描画すべきイメージを生成しＶＲＡＭに書き込み、ＶＲＡＭから読み出されたイメージを描画データとしてディスプレイ２５に送る。
【００２６】
ＰＣＩバス１５とＬＰＣバス１７は、Ｉ／Ｏブリッジ２７で連絡される。また、またＩ／Ｏブリッジ２７は、ノートＰＣ１０の内蔵時計として機能するＲＴＣ（Real Time Clock）２８を含む。さらにＩ／Ｏブリッジ２７は、ＩＤＥ(Integrated Device Electronics)インターフェイス機能を備えており、磁気ディスク装置(ＨＤＤ)２９およびＣＤドライブ，ＤＶＤドライブ等の光学ドライブ（図示せず）が接続される。磁気ディスク装置２９を使用可能にするために必要なＨＤＤパスワードは、ＩＤＥインターフェイスの仕様の中に含まれ、設定されたパスワードは磁気ディスクの管理領域の中に磁気的に保存される。ＬＰＣバス１７には、ＢＩＯＳフラッシュＲＯＭ３１、セキュアＮＶＲＡＭ（Non-Volatile RAM、不揮発性ＲＡＭ）３３、Ｉ／Ｏコントローラ３５が接続されている。ＢＩＯＳフラッシュＲＯＭ３１およびセキュアＮＶＲＡＭ３３については後述する。Ｉ／Ｏコントローラ３５にはキーボード３７を初めとする入出力機器（図示せず）が接続される。
【００２７】
なお、図１は本実施の形態を説明するために、本実施の形態に関連する主要なハードウェアの構成および接続関係を簡素化して記載したに過ぎないものである。ここまでの説明で言及した以外にも、たとえばＣａｒｄＢｕｓ，ＵＳＢ，ｍｉｎｉＰＣＩなどのインターフェイスおよびそれらを介して接続される周辺機器、有線ＬＡＮアダプタ、無線ＬＡＮモジュール、電源装置、温度などの動作環境を制御するエンベデッド・コントローラなど、ノートＰＣ１０を構成するには多くのデバイスが使われる。しかしそれらは当業者には周知であるので、ここでは詳しく言及しない。もちろん、図で記載した複数のブロックを１個の集積回路もしくは装置としたり、逆に１個のブロックを複数の集積回路もしくは装置に分割して構成したりすることも、当業者が任意に選択することができる範囲においては本発明の範囲に含まれる。
【００２８】
図２は、本発明の実施の形態に係るノートＰＣ１０の中で、ＢＩＯＳフラッシュＲＯＭ３１、セキュアＮＶＲＡＭ３３、およびメイン・メモリ２１の内部構成を示す図である。図２（Ａ）に示すＢＩＯＳフラッシュＲＯＭ３１は、不揮発性で記憶内容を電気的に書き替え可能なメモリであり、システムの起動および管理に使われる基本プログラムであるシステムＢＩＯＳ（SSO Shell Bios）５１、電源および温度などの動作環境を管理するソフトウェアである各種ユーティリティ５３、ノートＰＣ１０の起動時にハードウェアのテストを行うソフトウェアであるＰＯＳＴ（Power-On Self Test）５５、本発明に係るパスワード共有システム５７、乱数を発生する乱数発生器５８，ＣＰＵ１１をＳＭＭで動作させるＳＭＩハンドラ５９、磁気ディスク装置２９にアクセスするＩＮＴ１３Ｈハンドラ６０などが記憶されている。乱数発生器５８は、ソフトウェアとして実装されても、ハードウェアとして実装されてもよい。
【００２９】
図２（Ｂ）に示すセキュアＮＶＲＡＭ３３は、ノートＰＣ１０の電源を切っても消失しないように電池でバックアップされ、記憶された内容をシステムＢＩＯＳ５１による操作によって読み書き禁止に設定することのできるＲＡＭである。セキュアＮＶＲＡＭ３３がシステムＢＩＯＳ５１の操作によって一度読み書き禁止にされると、ノートＰＣ１０の電源がリセットされるまでは読み書き禁止は解除されない。よって、読み書き禁止にされたセキュアＮＶＲＡＭ３３だけを取り外して外部から記録された内容を読み取ることは困難である。セキュアＮＶＲＡＭ３３は、ノートＰＣ１０のデバイス・コントローラの設定情報６１、暗号化された共有パスワード６３，および各ユーザのデータ６５を記憶している。設定情報６１の内容としては、主にディスク装置の起動順序やドライブ番号、各周辺機器の接続方法やデータ転送に関するパラメータなどがある。共有パスワードの中でノートＰＣ１０を起動する際に使用されるパスワードも、設定情報６１に含まれる。
【００３０】
図２（Ｃ）に示すメイン・メモリ２１には、ＰＣシステムの通常の動作で使用されるユーザ領域７３の他に、ＳＭＲＡＭ（System Management RAM）７１としての領域が確保されている。システムＢＩＯＳ５１からＳＭＩハンドラ５９が呼び出されることによってＣＰＵ１１がＳＭＭに入ると、ＣＰＵ１１はシングル・タスクでの動作となり、すべての割り込みは無効とされる。さらに、ＳＭＲＡＭ領域７１はＳＭＭで動作するＣＰＵ１１のみが独占的に使用可能となる。従って、ＣＰＵ１１がＳＭＭで動作している間、システムＢＩＯＳ５１の制御下で動作している単一のタスク以外のプログラムが動作することもなく、また当該プログラム以外のプロセスからＳＭＲＡＭ領域７１にアクセスされることもない。
【００３１】
本実施の形態では、ノートＰＣ１０を起動する際に使用されるパスワードとして、パワーオン・パスワード、マネージャ・パスワード、およびスーパーバイザー・パスワード、およびＨＤＤパスワードの４通りのパスワードを使用する。パワーオン・パスワードとＨＤＤパスワードを入力して正しく認証されると、ＯＳの起動だけが可能となる。マネージャ・パスワードとＨＤＤパスワードを入力して正しく認証されると、ＯＳの起動に加えてＢＩＯＳの一部の設定変更などが可能になる。スーパーバイザー・パスワードとＨＤＤパスワードを入力して正しく認証されると、ＢＩＯＳ全体の設定変更、および本発明に係るパスワード共有システムの有効／無効など、ＢＩＯＳに関わるすべての操作が可能になる。なお、ＯＳは磁気ディスク装置２９にインストールされており、ＢＩＯＳによるハードウェアの初期設定が終了した後で起動される。ＯＳの種類は本実施の形態で特定されるものではなく、たとえばＷｉｎｄｏｗｓ（登録商標）、Ｌｉｎｕｘ（登録商標）などが使用可能である。
【００３２】
図３は、本実施の形態で使用するユーザ階層と、各々のユーザ階層の権限について示す図である。本実施の形態では、ユーザには３段階の階層が用意されている。ユーザ階層０は「管理者」であり、管理者はＢＩＯＳ全体および登録ユーザ全員の設定に関するすべての操作が可能である。ユーザ階層１は「マネージャ」であり、マネージャはＢＩＯＳの一部とユーザ階層１および２のユーザの設定に関する操作が可能である。ユーザ階層２は「一般ユーザ」であり、一般ユーザはＢＩＯＳおよび他のユーザの設定に関する操作はできず、ＯＳの起動および自らの設定変更のみが可能である。共有パスワードの中で、ノートＰＣ１０を起動する際には、ユーザ階層０の「管理者」はスーパーバイザー・パスワードを使用する。ユーザ階層１の「マネージャ」はマネージャ・パスワードを使用する。ユーザ階層２の「一般ユーザ」はパワーオン・パスワードを使用する。ＨＤＤパスワードは、すべてのユーザ階層が共通して使用する。
【００３３】
ここで、本実施の形態で使用される「外部鍵」と「内部鍵」、およびそれらを利用した暗号化の概念について説明する。本実施の形態では、外部鍵もしくは内部鍵によって行われる暗号化および復号化は、すべて共通鍵方式によって行われる。つまり、暗号化に使用された鍵と同一の鍵があれば、暗号文を正常に復号化することができる。共通鍵方式のアルゴリズムとしては、たとえばＤＥＳ（Data Encryption Standard）、ＡＥＳ（Advanced Encryption Standard）などが知られている。共通鍵方式については、予め相手先に安全な方法で鍵を受け渡す必要があるなどのような問題点が一般的に指摘されている。しかし、本実施の形態では共通鍵方式の暗号化および復号化に使用される鍵はノートＰＣ１０のセキュアな領域に格納され、かつ、ＳＭＭで処理されるのでそのような点は問題にはならない。
【００３４】
外部鍵は、各ユーザが個別に管理して入力する鍵である。たとえば、文字列からなるパスワードであってもよいし、指紋、静脈、虹彩などのようなユーザの生体情報、あるいはスマートカードやＵＳＢトークンなどに保存された電子情報であってもよい。もちろん、これらの情報を組み合わせて使用することも、当業者が任意に選択することができる範囲において可能である。以後、各ユーザに与えられた文字列からなるパスワードを外部鍵として使用するものとして、本実施の形態の説明を行う。なお、外部鍵は、ノートＰＣのキーボードからユーザが直接入力してもよく、あるいは、ネットワーク・インターフェイスを通じて外部から入力してもよい。
【００３５】
内部鍵は、普段はセキュアＮＶＲＡＭ３３の内部に、暗号化された状態で記憶されている。ノートＰＣ１０の電源が投入されると、セキュアＮＶＲＡＭ３３が読み書き可能となり、暗号化された内部鍵がメイン・メモリ２１のＳＭＲＡＭ領域７１にコピーされ、当該内部鍵の復号化と以後の処理はすべてＳＭＲＡＭ領域７１の中だけで行われる。もちろんその間、ＣＰＵ１１はシングル・タスクのＳＭＭで動作している。従って、暗号化されていない状態の内部鍵がメイン・メモリ２１の外に出ることはない。内部鍵に係る処理が終わると、セキュアＮＶＲＡＭ３３を読み書き禁止としてからＯＳが起動される。以後ＯＳが動作している間、セキュアＮＶＲＡＭ３３は読み書き禁止となるので、ＯＳを介してセキュアＮＶＲＡＭ３３の内容を取得したり改竄したりすることは不可能である。つまり、本発明に係るパスワード共有システム以外の動作プログラムが当該内部鍵を取得したり改竄したりすることは不可能である。
【００３６】
図４は、本実施の形態で使用する内部鍵の生成について示す図である。ノートＰＣ１０を初めて起動するときなどで、本発明に係るパスワード共有システムを初期化すると、まずユーザ階層０の「管理者」の内部鍵が生成される（ブロック１４１〜１４２）。たとえば乱数発生器５８によって発生された乱数、Ｉ／Ｏブリッジ２７に含まれるＲＴＣ２８から取得できる現在の日時、あるいはノートＰＣ１０やＣＰＵ１１に固有のＩＤなど、該初期化処理を行った時点で当該ノートＰＣのみで得られる情報に基づいてユーザ階層０の内部鍵が生成される。その際、得られた情報をそのまま文字列としてもよいが、該文字列を特定の関数（後述の暗号技術的ハッシュ関数など）によりさらに変換する方が望ましい。このことにより、得られた内部鍵は別の時点に別のコンピュータで生成することができない、当該ノートＰＣに特有のものとなる。
【００３７】
ユーザ階層１の「マネージャ」の内部鍵は、ユーザ階層０の内部鍵をハッシュすることによって生成される（ブロック１４３）。文字列Ａをハッシュして文字列Ｂを得ることをＢ＝Ｈａｓｈ（Ａ）と表記すると、ユーザ階層１の内部鍵＝Ｈａｓｈ（ユーザ階層０の内部鍵）となる。ここでいう「ハッシュする」とは、暗号技術的ハッシュ関数（cryptographic hash function）と呼ばれる一方向性関数によって、文字列を変換することをいう。暗号技術的ハッシュ関数として、たとえばＳＨＡ１、ＳＨＡ２５６、ＭＤ５などのような関数が公知である。これらの関数は、一方向性と衝突困難性という二つの性質を持っている。一方向性とは、Ｂ＝Ｈａｓｈ（Ａ）である場合に、事前に定められた文字列Ｂから文字列Ａを得ることが事実上不可能であるという性質である。衝突困難性とは、Ｂ＝Ｈａｓｈ（Ａ１）でかつＢ＝Ｈａｓｈ（Ａ２）となる異なる２つの文字列Ａ１およびＡ２を得ることが事実上不可能であるという性質である。ここでいう「事実上不可能」とは、非常に膨大な計算量を必要とするため、実際に当該行為を行うことが非常に困難であるという意味である。つまり、ユーザ階層０の内部鍵をハッシュすればユーザ階層１の内部鍵は簡単に得られるが、逆にユーザ階層１の内部鍵からユーザ階層０の内部鍵を得ることは事実上不可能である。
【００３８】
ユーザ階層２の「一般ユーザ」の内部鍵も同様に、ユーザ階層２の内部鍵＝Ｈａｓｈ（ユーザ階層１の内部鍵）として生成される（ブロック１４４）。つまり、ユーザ階層０の内部鍵をハッシュすることによってユーザ階層１の内部鍵を得て、さらにユーザ階層１の内部鍵をハッシュすることによってユーザ階層２の内部鍵を得ることができる。しかし、逆にユーザ階層２の内部鍵からユーザ階層１および０の内部鍵を得ることは事実上不可能である。もちろん、ユーザ階層が２段階または４段階以上存在する場合も、ある階層のユーザの内部鍵をハッシュすることによって、当該ユーザより下位層の内部鍵を得ることができるが、当該ユーザより上位層のユーザの内部鍵を得ることは事実上不可能である。
【００３９】
図５は、セキュアＮＶＲＡＭ３３に記憶された内容の中で、暗号化された共有パスワード６３，および各ユーザのデータ６５についてさらに詳細にデータの構成を示す図である。暗号化された共有パスワード６３の中で、スーパーバイザー・パスワード１５１はユーザ階層０の内部鍵によって暗号化されている。マネージャ・パスワード１５２はユーザ階層１の内部鍵によって暗号化されている。パワーオン・パスワード１５３およびＨＤＤパスワード１５４はユーザ階層２の内部鍵によって暗号化されている。もちろん、共有パスワードの暗号化はすべて共通鍵方式によって行われているので、暗号化に使用されたものと同一の内部鍵を得られれば、当該共有パスワードを復号化して使用することができる。
【００４０】
従って、ユーザ階層０のユーザはユーザ階層０，１，２の内部鍵をすべて使用できるので、すべての暗号化された共有パスワードを使用できる。ユーザ階層１のユーザはユーザ階層１および２の内部鍵を使用できるので、ユーザ階層１および２の内部鍵で暗号化されたマネージャ・パスワード１５２、パワーオン・パスワード１５３およびＨＤＤパスワード１５４を使用できる。しかし、ユーザ階層１のユーザはユーザ階層０の内部鍵を得ることができないので、スーパーバイザー・パスワード１５１を使用することはできない。ユーザ階層２のユーザはユーザ階層２の内部鍵のみを使用できるので、パワーオン・パスワード１５３およびＨＤＤパスワード１５４を使用できる。しかし、ユーザ階層２のユーザはユーザ階層０および１の内部鍵を得ることができないので、スーパーバイザー・パスワード１５１およびマネージャ・パスワード１５２を使用することはできない。
【００４１】
各ユーザのデータ６５には、各々のメンバのデータ・セットが各メンバの外部鍵によって暗号化されて記憶されている。以下、ユーザ階層０（管理者）であるユーザＩＤ「ａｄｍｉｎ」のデータ・セット１００について説明する。データ・セット１００の冒頭には、インデックスとして平文のユーザＩＤ１０１が記憶されている。ユーザ「ａｄｍｉｎ」のデータ・セット１００の中で、インデックス１０１以外のデータはすべて、当該ユーザの外部鍵によって暗号化されている。この暗号化もすべて共通鍵方式によって行われているので、暗号化に使用されたものと同一の外部鍵があれば、当該データ・セットを復号化して使用することができる。
【００４２】
ユーザ「ａｄｍｉｎ」のデータ・セット１００の中には、暗号化されたユーザＩＤ１０２も記憶されている。ユーザがユーザＩＤと外部鍵（パスワード）を入力すると、入力されたユーザＩＤと同じ平文のインデックス１０１を持つデータ・セット１００が、入力された外部鍵によって復号化され、暗号化されたユーザＩＤ１０２を復号化したユーザＩＤがインデックス１０１と比較される。その際、入力された外部鍵が正当なものであれば平文のインデックス１０１と、暗号化されたユーザＩＤ１０２を復号化したユーザＩＤが同一のものとなる。入力された外部鍵が正当なものでなければ、暗号化されたユーザＩＤ１０２を復号化しても、インデックス１０１とは同一にはならない。つまり、外部鍵自体がユーザのデータ６５の中に含まれていなくても、入力された外部鍵の正当性を判断することができる。ノートＰＣ１０内部には外部鍵が存在しないので、当該ユーザ以外の者が当該ノートＰＣに記憶された内容から外部鍵を知ることは事実上不可能である。
【００４３】
ユーザ「ａｄｍｉｎ」のデータ・セット１００の中で、当該ユーザの外部鍵によって暗号化された情報には、ユーザＩＤ１０２の他にはユーザ階層１０３，内部鍵１０４，前回更新日時１０５，およびその他の情報１０６が含まれる。ユーザ階層１０３は、前述の通りユーザ階層０「管理者」、ユーザ階層１「マネージャ」、およびユーザ階層２「一般ユーザ」の区別を表す。ユーザ「ａｄｍｉｎ」は「管理者」であるので、ユーザ階層は０となる。内部鍵１０４は、当該ユーザのユーザ階層に対応した内部鍵である。ユーザ「ａｄｍｉｎ」については、ユーザ階層０「管理者」の内部鍵がここに記憶される。前回更新日時１０５は、ユーザが自らの外部鍵を更新した最新の日時である。前回更新日時１０５から一定以上の日数が経過していれば、当該ユーザに対して外部鍵の更新を促すことができる。その他の情報１０６としては、当該ユーザのフルネームや所属名、あるいは当該ノートＰＣでＯＳが起動した後に使用するデータ、たとえばＯＳにログインするためのＩＤおよびパスワード、あるいは当該ノートＰＣでセキュリティを強化するためのモジュールであるＴＰＭ（Trusted Platform Module）で使用するデータなどを記憶させておくことができる。
【００４４】
ユーザ「ａｄｍｉｎ」以外のユーザについても同様である。たとえばユーザ階層１（マネージャ）であるユーザＩＤ「ｕｓｅｒ１」のデータ・セット１１０には、平文のユーザＩＤ１１１と、ユーザ「ｕｓｅｒ１」の外部鍵によって暗号化されたユーザＩＤ１１２、ユーザ階層１１３、内部鍵１１４、前回更新日時１１５、その他の情報１１６などが含まれる。ユーザ階層１１３は「マネージャ」のユーザ階層１であり、内部鍵１１４はユーザ階層１の内部鍵である。また、ユーザ階層２（一般ユーザ）であるユーザＩＤ「ｕｓｅｒ２」のデータ・セット１２０には、平文のユーザＩＤ１２１と、ユーザ「ｕｓｅｒ２」の外部鍵によって暗号化されたユーザＩＤ１２２、ユーザ階層１２３，内部鍵１２４、前回更新日時１２５、その他の情報１２６などが含まれる。ユーザ階層１２３は「一般ユーザ」のユーザ階層２であり、内部鍵１２４はユーザ階層２の内部鍵である。以下、登録されたユーザ一人一人に対して、同様のデータ・セットが作成され、セキュアＮＶＲＡＭ３３に記憶される。ユーザ階層が共通し、ユーザＩＤおよび外部鍵の異なる別々のユーザがいる場合、各々のデータ・セットを復号化して得られる内部鍵は共通している。ただし、外部鍵が異なるので、暗号化された後のデータは異なる。
【００４５】
図６は、本発明に係るパスワード共有システムの初期化の処理をフローチャートで書き表したものである。図７は、図６の処理の際にディスプレイ２５の画面に表示される内容を示す図である。図７で、「＞」で始まる行は操作者がキーボード３７を通じて入力した内容を表す。パスワードの入力では、入力した文字はすべて「＊」に置き換えられて表示される。この初期化の処理は、管理者がノートＰＣ１０を最初に起動したとき、もしくは管理者が当該システムの初期化を選択したときなどに、システムＢＩＯＳ５１の制御によって実行が開始される（ブロック２０１）。セキュアＮＶＲＡＭ３３は、当該ノートＰＣが起動した際に読み書き禁止が解除された状態である。システムＢＩＯＳ５１から、ＳＭＩハンドラ５９が呼び出されることによって、ＣＰＵ１１はＳＭＭで動作する。パスワード共有システムの動作プログラム５７が、メイン・メモリ２１のＳＭＲＡＭ領域７１に読み出される。
【００４６】
まず、ディスプレイ２５に表示された、スーパーバイザー・パスワードの入力画面に従って、当該ノートＰＣで使用される初期スーパーバイザー・パスワードを操作者が入力（ブロック２０３、画面表示２５１）した後、本発明に係るパスワード共有システムを有効にするか否かを操作者が選択する（ブロック２０５、画面表示２５３）。ここで「Ｎ」（NO）を選択すると、本発明に係るパスワード共有システムは無効となり、ブロック２０３で入力したスーパーバイザー・パスワードをシステム設定６１に記憶させて、当該システムの初期化の処理は終了される（ブロック２２３）。ブロック２０５で「Ｙ」（YES）を選択すると、乱数生成器５８によって乱数が生成され、またＲＴＣ２８によって得られた現在の日時、あるいはノートＰＣ１０やＣＰＵ１１に固有のＩＤなど、当該ノートＰＣでのみ得られる情報が取得され（ブロック２０７）、取得された情報に基づいてスーパーバイザー・パスワードを初めとする各々の共有パスワードが生成される（ブロック２０９）。さらに乱数からユーザ階層０の内部鍵が生成される（ブロック２１１）。ブロック２０９においては、共有パスワードの全部もしくは一部を操作者に入力させることもできる。
【００４７】
ここで、現在当該ノートＰＣを操作している管理者に対して、ユーザＩＤおよび当該管理者の外部鍵となるパスワードの入力が要求される（ブロック２１３、画面表示２５５）。ブロック２１１で生成されたユーザ階層０の内部鍵から、前述のハッシュ関数によってユーザ階層１の内部鍵＝Ｈａｓｈ（ユーザ階層０の内部鍵）、ユーザ階層２の内部鍵＝Ｈａｓｈ（ユーザ階層１の内部鍵）として、ユーザ階層１および２の内部鍵が生成され（ブロック２１５）、各々の共有パスワードは各々のパスワードを使用できるユーザ階層に対応した内部鍵で暗号化される（ブロック２１７）。さらに、ユーザ階層０の内部鍵は、ブロック２１３で入力された管理者の外部鍵で暗号化される（ブロック２１９）。以上で暗号化された各々のデータが、セキュアＮＶＲＡＭ３３に記憶される（ブロック２２１）。以上で本発明に係るパスワード共有システムの初期化が終了し（ブロック２２３）、引き続いてユーザ登録の処理が行われる。
【００４８】
図８は、本発明に係るユーザ登録の処理をフローチャートで書き表したものである。図９は、図８の処理の際にディスプレイ２５の画面に表示される内容を示す図である。図９で、「＞」で始まる行は操作者がキーボード３７を通じて入力した内容を表す。ユーザ登録の処理が開始されると（ブロック３０１）、ディスプレイ２５に入力画面（画面表示３５１）が表示される。入力画面にしたがって、まずこの操作をする管理者が自らのユーザＩＤおよび外部鍵であるログイン・パスワードを入力する（ブロック３０３）ことにより、操作者が正当な管理者であることが確認される。ブロック３０３で入力された管理者の外部鍵でユーザ階層０の内部鍵が復号化され（ブロック３０５）、さらに前述のハッシュ関数によってユーザ階層１および２の内部鍵が生成される（ブロック３０７）。そこから管理者本人のユーザ情報、氏名、所属、ＯＳ用ログインＩＤなどを操作者が入力する（ブロック３０９、画面表示３５３）。入力が終了し、入力された内容を操作者が確認すると（画面表示３５５）、入力されたユーザ情報とユーザ階層０の内部鍵とが、管理者の外部鍵によって暗号化され（ブロック３１１）、セキュアＮＶＲＡＭ３３に保存される（ブロック３１３）。
【００４９】
管理者本人のユーザ情報の保存が完了すると、他のユーザの情報を登録するか否かを操作者が選択する（ブロック３１５、画面表示３５７）。ここで「Ｎ」（NO）を選択すると、管理者以外のユーザが登録されないままでユーザ登録の処理が終了し、当該ノートＰＣの電源が切れる（ブロック３１７）。ブロック３１５で「Ｙ」（YES）を選択すると、別のユーザの情報の入力が開始される（ブロック３０９、画面表示３５９）。別のユーザの情報の入力は、当該ユーザのユーザＩＤおよび外部鍵である初期パスワード、および当該ユーザのユーザ階層の入力から始まり、当該ユーザの氏名、所属、ＯＳ用ログインＩＤなどについても入力される。入力が終了し、入力された内容を操作者が確認すると、入力されたユーザ情報とユーザ階層に対応する内部鍵とが、当該ユーザの外部鍵によって暗号化され（ブロック３１１）、セキュアＮＶＲＡＭ３３に保存される（ブロック３１３）。以後、登録したいユーザ一人一人に対して、ブロック３０９〜３１５および画面表示３５９の入力と処理が繰り返される。
【００５０】
このようにして、すべてのユーザについて各々のユーザの外部鍵によって暗号化された情報が、図５に示したような形でセキュアＮＶＲＡＭ３３に保存される。ユーザ登録の処理が終了（ブロック３１７）したら、当該ノートＰＣの電源をいったん切ってもよいし、また後述するユーザのログイン処理に入ってもよい。ここまでの処理において、操作者がキーボード３７を通じて入力した情報はすべてメイン・メモリ２１のＳＭＲＡＭ領域７１内で暗号化され、暗号化が完了してからＳＭＲＡＭ領域７１を出てセキュアＮＶＲＡＭ３３に記憶されている。つまり、暗号化されていない情報がＳＭＲＡＭ領域７１から外に出ることはない。またＣＰＵ１１はシステムＢＩＯＳ５１の制御によってシングル・タスクのＳＭＭで動作しているので、パスワード共有システムの動作プログラム５７以外のプロセスが動作したりＳＭＲＡＭ領域７１を参照したりすることもない。従って、コンピュータ・ウィルス、スパイウェア、キーロガーなどのような悪意のあるソフトウェアによって、暗号化されていないパスワードや内部鍵を取得されることはない。
【００５１】
図１０は、本発明に係るパスワード共有システムのユーザのログインの処理をフローチャートで書き表したものである。図１１は、図１０の処理の際にディスプレイ２５の画面に表示される内容を示す図である。図１２は、図１０の処理におけるデータの移動および動作について示す概念図である。図１１で、「＞」で始まる行は操作者がキーボード３７を通じて入力した内容を表す。パスワードの入力では、入力した文字はすべて「＊」に置き換えられて表示される。ここでは、ユーザ階層１（マネージャ）であるユーザＩＤ「ｕｓｅｒ１」のユーザがノートＰＣ１０を起動して（ブロック４０１）ログインする場合について示す。セキュアＮＶＲＡＭ３３は、当該ノートＰＣが起動した際に読み書き禁止が解除された状態である。ＢＩＯＳフラッシュＲＯＭ３１から、ＳＭＩハンドラ５９が呼び出されることによって、ＣＰＵ１１はＳＭＭで動作する。パスワード共有システムの動作プログラム５７がＢＩＯＳフラッシュＲＯＭ３１からメイン・メモリ２１のＳＭＲＡＭ領域７１に読み出され、さらに、共有パスワード６３および各ユーザのデータ６５がそれぞれセキュアＮＶＲＡＭ３３からメイン・メモリ２１のＳＭＲＡＭ領域７１に読み出されてコピーされる（動作４７１〜４７２、コピーされたデータ・セットは１１０’、コピーされた共有パスワードは１５１’〜１５４’）。
【００５２】
まず、この操作をするユーザが自らのユーザＩＤおよび外部鍵であるログイン・パスワードを入力する（ブロック４０３、画面表示４５１、動作４７３）。入力されたユーザＩＤ「ｕｓｅｒ１」に対応するユーザの内部鍵１１４を含むデータ・セット１１０’が、ブロック４０３で入力されたユーザの外部鍵で復号化される（ブロック４０５、動作４７４）。平文のインデックス１１１’と、暗号化されたユーザＩＤ１１２を復号化したユーザＩＤ１１２’が同一のものとなれば、入力された外部鍵が正当なものであると判断され、ログインが成功する（ブロック４０７）。入力された外部鍵が正当なものでなければ、外部鍵の入力（ブロック４０３、画面表示４５１）に戻る。復号化されたユーザ階層１の内部鍵１１４’から、ユーザ階層２の内部鍵＝Ｈａｓｈ（ユーザ階層１の内部鍵）として、ユーザ階層２の内部鍵が生成され（ブロック４０９、動作４７５）、共有パスワードの中からマネージャ・パスワード１５２’が、ユーザ階層１の内部鍵１１４’によって復号化され（ブロック４１１）、システムＢＩＯＳ５１に入力される（ブロック４１３、動作４７６）。そしてＨＤＤパスワード１５４’が、ユーザ階層２の内部鍵によって復号化され（ブロック４１１）、磁気ディスク装置２９に入力される（ブロック４１３、動作４７７）。これによってＢＩＯＳによるユーザ認証の処理が完了し（ブロック４１５）、ログイン成功の画面表示４５３が表示される。
【００５３】
以上の記載からわかるように、ユーザ階層１のユーザは、自らの外部鍵によって自らのデータ・セットを復号化すれば、ユーザ階層１の内部鍵を得ることができる。さらに、ユーザ階層１の内部鍵をハッシュすれば、ユーザ階層２の内部鍵を得ることができる。従って、共有パスワードの中で、ユーザ階層１および２の内部鍵で暗号化されたものを復号化して使用することができる。この場合は、ユーザ階層１の内部鍵で暗号化されたマネージャ・パスワード１５２’、ユーザ階層２の内部鍵で暗号化されたパワーオン・パスワード１５３’およびＨＤＤパスワード１５４’を使用することができる。ちなみにユーザ階層１のユーザはマネージャ・パスワード１５２’を使用するので、通常はパワーオン・パスワード１５３’を使用しない。しかし、ユーザ階層１の内部鍵からユーザ階層０の内部鍵を得ることは前述のように事実上不可能であるので、スーパーバイザー・パスワード１５１’を使用することはできない。ユーザ階層２のユーザはユーザ階層２の内部鍵を得ることができるので、ユーザ階層２に対応したパワーオン・パスワード１５３’およびＨＤＤパスワード１５４’を使用することができ、ユーザ階層０および１に対応したその他の共有パスワードを使用することはできない。ユーザ階層０のユーザは、すべての共有パスワードを使用することができる。
【００５４】
ログイン成功の画面表示４５３で、０を入力するか１０秒間入力をせずに放置すると、ＯＳを起動する。ＯＳの起動については後述する。１を入力すると、マネージャ・パスワードで可能な範囲でＢＩＯＳの設定を変更できる。２を入力すると、４５５に示すような画面が表示され、ユーザＩＤ「ｕｓｅｒ１」に対応するパスワードを変更することが可能である。３を入力すると、マネージャ・パスワードで可能な範囲で共有パスワードを変更できるが、これについては後述する。４を入力すると、４５７に示すような画面が表示され、ユーザ階層１および２に該当するすべてのユーザのユーザ情報を変更することが可能である。ログイン成功の画面表示４５３でＯＳの起動が選択されると、ＢＩＯＳ−ＲＯＭ３１からＰＯＳＴ５５が起動されてハードウェアのテストが行われた後、セキュアＮＶＲＡＭ３３は読み書き禁止にされ、ＩＮＴ１３Ｈハンドラ６０が呼び出されることにより磁気ディスクドライブ２９が起動され、ＯＳの起動が開始される。
【００５５】
図１３は、本発明に係るパスワード共有システムでユーザが共有パスワードを変更する処理をフローチャートで書き表したものである。図１４は、図１３の処理の際にディスプレイ２５の画面に表示される内容を示す図である。図１５は、図１３の処理におけるデータの移動および動作について示す概念図である。図１４で、「＞」で始まる行は操作者がキーボード３７を通じて入力した内容を表す。パスワードの入力では、入力した文字はすべて「＊」に置き換えられて表示される。ここでは、ユーザ階層１（マネージャ）であるユーザＩＤ「ｕｓｅｒ１」のユーザが共有パスワードを変更する場合について示す。この処理は、既に当該ユーザが正しい外部鍵を入力してログインに成功している状態で、画面表示４５３で選択できるメニューの中から「３  共有パスワードの変更」を入力すると、これから説明する共有パスワードを変更する処理が実行される。
【００５６】
共有パスワード変更の処理が開始されると（ブロック５０１）、まずこの操作をする操作者が自らのユーザＩＤおよび外部鍵であるログイン・パスワードを入力する（ブロック５０３、画面表示５５１）ことにより、操作者が正当なマネージャであることが確認される。共有パスワードを変更するという操作者の意思について再び確認できたら（画面表示５５３）、既にセキュアＮＶＲＡＭ３３からＳＭＲＡＭにコピーされて復号化されているユーザＩＤ「ｕｓｅｒ１」に対応するデータ・セット１１０’に含まれるユーザ階層１の内部鍵１１４’から、ユーザ階層２の内部鍵＝Ｈａｓｈ（ユーザ階層１の内部鍵）として、ユーザ階層２の内部鍵が生成される（ブロック５０７、動作５７１）。
【００５７】
共有パスワードの中から、ユーザ階層１が操作できるマネージャ・パスワードとＨＤＤパスワードについて、変更後の新しいパスワードの入力が受け付けられる（ブロック５０９、画面表示５５５）。入力されたマネージャ・パスワード（動作５７２）がユーザ階層１の内部鍵１１４’によって暗号化され（ブロック５１１、動作５７３）、また入力されたＨＤＤパスワード（動作５７４）がユーザ階層２の内部鍵によって暗号化され（ブロック５１１、動作５７５）、各々セキュアＮＶＲＡＭ３３の共有パスワード６３内に記憶される（ブロック５１３、画面表示５５６）。以上で共有パスワード変更の処理は終了する（ブロック５１５）。その後は当該ノートＰＣの電源を切ってもよいし、ログイン成功の画面表示４５３に戻り、そこからＯＳを起動してもよい。
【００５８】
以上の処理が完了した後で、共有パスワードの変更を行ったユーザ以外のユーザが当該ノートＰＣの電源を投入して自らの外部鍵を入力した場合、当該ユーザの外部鍵が正当なものであると認識されれば、当該ユーザのユーザ階層に対応した内部鍵は正常に復号化される。共有パスワードの変更があっても、各々のユーザの外部鍵および内部鍵はその影響を受けることはない。しかも、当該ユーザのユーザ階層に対応した内部鍵さえあれば、当該ユーザ階層に対応した共有パスワードは正常に復号化されて使用可能になる。従って、共有パスワードを変更したユーザが他のユーザに変更した共有パスワードを知らせなくても、すべてのユーザが自らのユーザ階層に対応した変更済みの共有パスワードを使用することができる。もちろん、ログインするときと同様に、ユーザ階層１のユーザはユーザ階層１および２の内部鍵を得ることができるので、共有パスワードの中で、ユーザ階層１および２の内部鍵で暗号化されるものを変更することができる。しかしユーザ階層０の内部鍵を得ることは前述のように事実上不可能であるので、ユーザ階層０に対応した共有パスワードを変更することはできない。ユーザ階層２のユーザはユーザ階層２の内部鍵のみを得ることができるので、ユーザ階層２に対応した共有パスワードのみを変更することができ、ユーザ階層０および１に対応した共有パスワードを変更することはできない。ユーザ階層０のユーザは、すべての共有パスワードを変更することができる。
【００５９】
ここまでで示した本発明の実施の形態には、いくつかの変型が考えられる。たとえば、セキュリティを強化するためのモジュールであるＴＰＭ（Trusted Platform Module）を搭載したノートＰＣで、ＴＰＭ内に標準的に装備されている不揮発性メモリを前述の実施の形態におけるセキュアＮＶＲＡＭ３３の代替として使用することができる。もちろんこの場合も、当該不揮発性メモリの読み書きを停止することが可能であるので、本発明を実施する上で特に問題はない。また、ユーザの認証に関する情報の全部または一部を、ネットワークを介して交換することも可能である。この場合、ネットワークを介して交換される情報が傍受されないよう、ネットワークの通信方法がセキュアなプロトコルである必要はある。
【００６０】
また、入力された外部鍵の正当性を判断する方法は、暗号化されたユーザＩＤ１０２を復号化したユーザＩＤを平文のユーザＩＤ１０１と比較する前述の方法の他に、外部鍵で内部鍵を復号化し、内部鍵で共有パスワードを復号化し、共有パスワードをシステムＢＩＯＳ５１および磁気ディスク装置２９に入力し、当該ＢＩＯＳおよびディスク装置が利用可能になるか否かによって判断する方法もある。この方法においても、ノートＰＣ１０内部に外部鍵を保存しなくても入力された外部鍵の正当性を認証することができるので、コンピュータ内部に記憶された情報から外部鍵が他者に知られる危険性が低いという点は同じである。この場合、暗号化されたユーザＩＤ１０２をデータ・セット１００の中に持つ必要はない。
【００６１】
他にも、パスワード共有システムの初期化の際に、共有パスワードの全部もしくは一部を操作者に入力させ、入力された文字列をそのまま共有パスワードとして使用することもできるし、また入力された文字列をハッシュするなどの方法で何らかの変換を加えて使用することもできる。さらに、前述のように文字列からなるパスワードの替わりに、図１６で示した従来技術にある指紋、静脈、虹彩などのようなユーザの生体情報、スマートカードやＵＳＢトークンなどに保存された電子情報、あるいはこれらの情報を組み合わせたものを外部鍵として使用することも可能である。もちろん、本発明が適用されるコンピュータはノートＰＣに限定されない。たとえばデスクトップ型のコンピュータであっても、盗難にあって内部のデータを読み出される危険性はあるので、本発明を適用することが有用である。
【００６２】
これまで本発明について図面に示した特定の実施の形態をもって説明してきたが、本発明は図面に示した実施の形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができることは言うまでもないことである。
【産業上の利用可能性】
【００６３】
複数のユーザが使用するコンピュータにおいて利用可能である。
【図面の簡単な説明】
【００６４】
【図１】ノートＰＣの概略ブロック図である。
【図２】ＢＩＯＳフラッシュＲＯＭ、セキュアＮＶＲＡＭ、およびメイン・メモリの内部構成を示す図である。
【図３】ユーザ階層と、各々のユーザ階層の権限について示す図である。
【図４】内部鍵の生成について示す図である。
【図５】暗号化された共有パスワードおよび各ユーザのデータについてさらに詳細にデータの構成を示す図である。
【図６】パスワード共有システムの初期化の処理のフローチャートである。
【図７】図６の処理の際に画面に表示される内容を示す図である。
【図８】ユーザ登録の処理のフローチャートである。
【図９】図８の処理の際に画面に表示される内容を示す図である。
【図１０】ユーザのログインの処理のフローチャートである。
【図１１】図１０の処理の際に画面に表示される内容を示す図である。
【図１２】図１０の処理におけるデータの移動および動作について示す概念図である。
【図１３】ユーザが共有パスワードを変更する処理のフローチャートである。
【図１４】図１３の処理の際に画面に表示される内容を示す図である。
【図１５】図１３の処理におけるデータの移動および動作について示す概念図である。
【図１６】従来技術で生体情報によるユーザ認証の技術を応用した例について示す構成図である。
【符号の説明】
【００６５】
１０  ノートＰＣ
１１  ＣＰＵ
２８  ＲＴＣ（Real Time Clock）
２９  磁気ディスク装置(ＨＤＤ)
３１  ＢＩＯＳフラッシュＲＯＭ
３３  セキュアＮＶＲＡＭ
５１  システムＢＩＯＳ（SSO Shell Bios）
５７  パスワード共有システム
５８  乱数発生器
５９  ＳＭＩハンドラ
６１  設定情報
６３  共有パスワード
６５  各ユーザのデータ
７１  ＳＭＲＡＭ（System Management RAM）
１００，１１０，１２０  データ・セット
１０４，１１４，１２４  内部鍵
１５１  スーパーバイザー・パスワード
１５２  マネージャ・パスワード
１５３  パワーオン・パスワード
１５４  ＨＤＤパスワード
【図１】
2008052704.tif 000003
【図２】
2008052704.tif 000004
【図３】
2008052704.tif 000005
【図４】
2008052704.tif 000006
【図５】
2008052704.tif 000007
【図６】
2008052704.tif 000008
【図７】
2008052704.tif 000009
【図８】
2008052704.tif 000010
【図９】
2008052704.tif 000011
【図１０】
2008052704.tif 000012
【図１１】
2008052704.tif 000013
【図１２】
2008052704.tif 000014
【図１３】
2008052704.tif 000015
【図１４】
2008052704.tif 000016
【図１５】
2008052704.tif 000017
【図１６】
2008052704.tif 000018