(57)【特許請求の範囲】
【請求項１】
ユーザにより定義され、ユーザ認証を含むユーザ関数ルーチンを記憶する第１の記憶手段と、
処理値算出関数を記憶する第２の記憶手段と、
前記第１の記憶手段に記憶された前記ユーザ関数ルーチンを読み出して、当該ユーザ関数ルーチンにおいてユーザ認証を実行し、前記処理値算出関数に引数として渡される認証結果値を取得するとともに、取得した認証結果値及びユーザによる設定が不可能な所定値を引数として、前記第２の記憶手段に記憶された処理値算出関数を呼び出し、当該呼び出した処理値算出関数により前記ユーザ認証の正当性を確認するための第１の戻り値を演算する第１の演算手段と、
前記第１の演算手段において使用する引数と同一の値を引数として、前記第２の記憶手段に記憶された処理値算出関数を呼び出し、当該呼び出した処理値算出関数により前記ユーザ認証の正当性を確認するための第２の戻り値を演算する第２の演算手段と、
前記第１の演算手段により演算された第１の戻り値と、前記第２の演算手段により演算された第２の戻り値と、を比較する比較手段と、
この比較手段による比較結果に応じて、システム起動処理、キャンセル、セキュリティ処理を実行する起動処理手段と、
を備えたことを特徴とする情報処理装置。
【請求項２】
システムを起動する都度、乱数を発生させる乱数発生手段を更に備え、
前記第１及び第２の演算手段において演算される前記処理値算出関数の引数である前記所定値には、前記乱数発生手段によって発生された乱数を使用することを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記ユーザ関数ルーチンにおけるユーザ認証は、ユーザから入力されるログイン情報を用いて行われることを特徴とする請求項１記載の情報処理装置。
【請求項４】
前記ユーザ関数ルーチンにおけるユーザ認証の結果が正当なものである場合は、前記第１の演算手段による演算結果には、前記第１の戻り値及びシステム起動の際のログイン処理に必要なユーザ名が含まれ、
前記比較手段は、第１の演算手段により演算された第１の戻り値と第２の演算手段により演算された第２の戻り値とを比較し、
前記起動処理手段は、この比較手段によって、前記第１の演算手段により演算された第１の戻り値と前記第２の演算手段により演算された第２の戻り値とが一致すると判定された場合に、前記システム起動の際のログイン処理に必要なユーザ名を使用して、システムの起動処理を実行することを特徴とする請求項１記載の情報処理装置。
【請求項５】
コンピュータが実行可能なプログラムを格納した記憶媒体であって、
ユーザにより定義され、ユーザ認証を含むユーザ関数ルーチンを第１の記憶手段に記憶するためのコンピュータが実行可能なプログラムコードと、
処理値算出関数を第２の記憶手段に記憶するためのコンピュータが実行可能なプログラムコードと、
前記第１の記憶手段に記憶された前記ユーザ関数ルーチンを読み出して、当該ユーザ関数ルーチンにおいてユーザ認証を実行し、前記処理値算出関数に引数として渡される認証結果値を取得するとともに、取得した認証結果値及びユーザによる設定が不可能な所定値を引数として、前記第２の記憶手段に記憶された処理値算出関数を呼び出し、当該呼び出した処理値算出関数により前記ユーザ認証の正当性を確認するための第１の戻り値を演算するためのコンピュータが実行可能なプログラムコードと、
前記ユーザ関数ルーチンにおいて使用する引数と同一の値を引数として、前記第２の記憶手段に記憶された処理値算出関数を呼び出し、当該呼び出した処理値算出関数により前記ユーザ認証の正当性を確認するための第２の戻り値を演算するためのコンピュータが実行可能なプログラムコードと、
前記第１の戻り値と前記第２の戻り値とを比較するためのコンピュータが実行可能なプログラムコードと、
前記第１の戻り値と前記第２の戻り値とが一致するかを比較し、当該比較結果に応じて、システム起動処理、キャンセル、セキュリティ処理を実行するためのコンピュータが実行可能なプログラムコードと、
を含むプログラムを格納したことを特徴とする記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ユーザ定義のログイン情報を用いて、ユーザ認証を含むシステムの起動処理を実行する情報処理装置、及び記憶媒体に関する。
【０００２】
【従来の技術】
現在、パーソナルコンピュータやサーバ等のコンピュータ・システムはあらゆる状況で使用されている。そのため、そのコンピュータ・システムが安全で、且つ信頼できるようにし、また、そのコンピュータ・システムに蓄えられたデータの改竄や盗難などに備えることがとても重要になっている。そこで、コンピュータ・システムのセキュリティ対策として、コンピュータ・システムの起動時に、ユーザがユーザ名やパスワード等を入力し、コンピュータ・システム側でそれらの照合をする方法が主に採用されている。
【０００３】
一般に、上述したコンピュータ・システムの起動時のセキュリティ管理において、ユーザ名やパスワード等の入力は、図６に示すようなコンピュータ・システムの標準のログインダイアログ画面１０ａを使用して行い、且つこれらの管理もコンピュータ・システムの標準のシステム起動処理関数で行っている。
【０００４】
図６に示すように、コンピュータ・システムの標準のログインダイアログ画面１０ａには、ユーザ名を入力するためのユーザ入力欄１０ｂ、パスワードを入力するためのパスワード入力欄１０ｃ、ユーザ名とパスワード入力後、ユーザ認証処理を開始するためのＯＫボタン１０ｄ、ユーザ認証処理を行わずキャンセルするためのキャンセルボタン１０ｅが設けられている。
【０００５】
コンピュータ・システムを起動する際、ユーザは、この標準のログインダイアログ画面１０ａのユーザ入力欄１０ｂ、パスワード入力欄１０ｃに対して、それぞれユーザ名、パスワードを入力するといったログイン処理を行う。そして、コンピュータ・システムにおける標準のシステム起動処理関数は、これらのユーザ名やパスワードが予め設定されているものと一致するか否かを判定し、一致する場合のみ、コンピュータ・システムへのログインを可能とする。
【０００６】
一方、コンピュータ・システムは、様々な用途に使用されるようになってきている。例えば、個人用に使用する頻度の高い携帯型のパーソナルコンピュータ等においては、ユーザがより自己の機器を利用しやすくするため、適度にカスタマイズすることが可能である。そして、上述のログイン処理は、自己の機器の起動時毎に実行するものであるため、その実行頻度が高く、ログインダイアログ画面についても、ユーザ独自のものに変更して、使用しやすくしたいという要望があった。
【０００７】
【発明が解決しようとする課題】
しかしながら、コンピュータ・システムにおいて、ユーザが独自にコンピュータ・システムの起動時のログインダイアログ画面を作成することは、セキュリティ管理という性質から困難である。その上、仮にユーザ独自のログインダイアログ画面を作成でき、且つユーザ定義のログイン情報を用いてシステムへのログイン処理が行えたとしても、ユーザ定義のログイン情報に基づいて行われるユーザ認証が不十分となり、却ってコンピュータ・システムのセキュリティを確保することが困難になる可能性があった。
【０００８】
つまり、パスワードに、ユーザ自身の名前や生年月日に関連する番号など、ユーザ自信が忘れにくい文字列を設定した場合には、そのパスワードが容易に他者によって盗用される可能性がある。逆に、複雑なパスワードを設定した場合にも、文字列の組み合わせを変えて繰り返しログイン操作することによって、パスワードが盗用されてしまう可能性があったり、ユーザ自身が忘れてしまうのを防ぐために残したメモ等によって簡単に盗難されてしまう可能性がある。そして、ユーザ定義のログイン情報を用いてシステムへのログイン処理を行う場合には、ユーザ定義のログイン情報のセキュリティ管理が十分に確保されていない可能性も生じる。
【０００９】
そこで、本発明の課題は、ユーザ定義のログイン情報を用いて、ユーザ認証を含むシステムの起動処理を実行する際に、十分なセキュリティ機能を確保することを可能とする情報処理装置、及び記憶媒体を提供することである。
【００１０】
【課題を解決するための手段】
請求項１記載の発明は、
ユーザにより定義され、ユーザ認証を含むユーザ関数ルーチンを記憶する第１の記憶手段（例えば、図１に示すユーザ関数ライブラリ３ＵＬ）と、
処理値算出関数を記憶する第２の記憶手段（例えば、図１に示す標準関数ライブラリ３ＳＬ）と、
前記第１の記憶手段に記憶された前記ユーザ関数ルーチンを読み出して、当該ユーザ関数ルーチンにおいてユーザ認証を実行し、前記処理値算出関数に引数として渡される認証結果値（例えば、処理フラグ“Ｆｌｇ”）を取得するとともに、取得した認証結果値及びユーザによる設定が不可能な所定値（例えば、起動処理値“ｓＲｔ”）を引数として、前記第２の記憶手段に記憶された処理値算出関数を呼び出し、当該呼び出した処理値算出関数により前記ユーザ認証の正当性を確認するための第１の戻り値を演算する第１の演算手段（例えば、図１に示すＣＰＵ２；図５に示すパスワード入力ユーザ関数処理）と、
前記第１の演算手段において使用する引数と同一の値を引数として、前記第２の記憶手段に記憶された処理値算出関数を呼び出し、当該呼び出した処理値算出関数により前記ユーザ認証の正当性を確認するための第２の戻り値を演算する第２の演算手段（例えば、図１に示すＣＰＵ２；図４に示す処理値算出関数処理）と、
前記第１の演算手段により演算された第１の戻り値（例えば、戻り値“ｕＲｔ”）と、前記第２の演算手段により演算された第２の戻り値（例えば、戻り値“ｓｒＯｋ”、“ｓｒＣａｎ”）と、を比較する比較手段（図１に示すＣＰＵ２；図４に示す“Ｒｕ”と“Ｒｓ”との比較）と、
この比較手段による比較結果に応じて、システム起動処理、キャンセル、セキュリティ処理を実行する起動処理手段（例えば、図１に示すＣＰＵ２；図４に示すシステム起動処理、セキュリティ処理）と、
を備えたことを特徴としている。
【００１３】
請求項２記載の発明は、
システムを起動する都度、乱数を発生させる乱数発生手段（例えば、図１に示すＣＰＵ２；図４に示すステップＳ１１０）を更に備え、
前記第１及び第２の演算手段において演算される前記処理値算出関数の引数である前記所定値には、前記乱数発生手段によって発生された乱数を使用することを特徴としている。
【００１６】
請求項３記載の発明は、
前記ユーザ関数ルーチンにおけるユーザ認証は、ユーザから入力されるログイン情報（例えば、パスワード等）を用いて行われることを特徴とする。
【００１９】
請求項４記載の発明は、
前記ユーザ関数ルーチンにおけるユーザ認証の結果が正当なものである場合は、前記第１の演算手段による演算結果には、前記第１の戻り値及びシステム起動の際のログイン処理に必要なユーザ名（例えば、ユーザ名“ｕＵｓｅｒ”）が含まれ、
前記比較手段は、第１の演算手段により演算された第１の戻り値と第２の演算手段により演算された第２の戻り値とを比較し、
前記起動処理手段は、この比較手段によって、前記第１の演算手段により演算された第１の戻り値と前記第２の演算手段により演算された第２の戻り値とが一致すると判定された場合に、前記システム起動の際のログイン処理に必要なユーザ名を使用して、システムの起動処理を実行することを特徴としている。
【００２２】
【発明の実施の形態】
以下、図１〜図５を参照して本発明の情報処理装置の実施の形態について説明する。
【００２３】
この情報処理装置１は、ユーザ定義のログイン情報を用いて、システムの起動処理を行う際にも十分なセキュリティを確保するために、ユーザにより定義され、ユーザ認証を含むログイン関数ルーチン（パスワード入力ユーザ関数）を記憶しているユーザ関数ライブラリ３ＵＬと、処理値算出関数を記憶している標準関数ライブラリ３ＳＬとを備えている。そして、システムを起動する際は、前記ユーザ関数ライブラリ３ＵＬから、パスワード入力ユーザ関数を呼び出し、当該パスワード入力ユーザ関数内でユーザにより入力されるログイン情報（パスワード等のログインダイアログに入力されるログインコード）を用いたユーザ認証を行い、そのユーザ認証結果値（処理フラグ“Ｆｌｇ”）を取得し、取得したユーザ認証結果値及びユーザにより設定が不可能な起動処理値（ｓＲｔ；例えば、システムの起動の都度、発生される乱数等）を引数として、処理値算出関数を演算し、この演算結果を戻り値（ｕＲｔ）として取得する。また、システム側でも同一の値（起動処理値“ｓＲｔ”、処理フラグ“Ｆｌｇ”）を引数として、前記処理値算出関数を演算し、この演算結果を戻り値（ｓｒＯｋまたはｓｒＣａｎ）として取得する。これら戻り値として取得した両演算結果を比較することにより、両演算結果が一致しているかを否かを判別し、この判別結果に応じた起動処理（システム起動、キャンセル、セキュリティ処理）を行う。
【００２４】
詳細は後述するが、ユーザにより定義され、システム起動処理実行時にユーザにより入力されるログイン情報は、パスワード等のログインコードを含んでいる。パスワード入力ユーザ関数は、後述するユーザ関数ライブラリ３ＵＬのパスワードＤＬＬ内に記憶されている。また、処理値算出関数は、後述する標準関数ライブラリ３ＳＬの起動処理値算出関数ＤＬＬ内に記憶されている。
【００２５】
まず構成を説明する。
図１は、本実施の形態における情報処理装置１の内部構成を示すブロック図である。
【００２６】
この図１において、情報処理装置１は、ＣＰＵ２、ＲＡＭ３、ＲＯＭ４、表示部５、操作子部６、メモリカード７、及び通信部８によって構成されており、各部はバス９によって接続されている。
【００２７】
ＣＰＵ（Central Processing Unit）２は、記憶媒体であるメモリカード７内のメモリに記憶されている当該情報処理装置１に対応する各種プログラムの中から指定されたプログラムや、操作子部６から入力される各種指示信号に応じた各種データ等をＲＡＭ３内に格納し、この入力指示及び入力データに応じてＲＡＭ３内に格納したアプリケーションプログラムに従って各種処理を実行し、その処理結果をＲＡＭ３内に格納するとともに、表示部５に出力して表示する。そして、ＣＰＵ２は、ＲＡＭ３内に格納した処理結果を操作子部６から入力指示されるメモリカード７内のメモリの保存先に保存する。
【００２８】
また、ＣＰＵ２は、後述するシステムの起動処理を実行する際には、記憶媒体であるメモリカード７内のメモリからインストールされ、ＲＡＭ３内に格納されている、システムの起動処理（図４参照）、に係わるプログラムを読み出して、読み出したプログラムに従って、各処理を実行する。このシステムの起動処理には、ユーザ定義のパスワード入力ユーザ関数の処理（図５参照）が含まれる。
【００２９】
各処理については詳細を後述するが、ここで概略を説明する。ＣＰＵ２はシステムの起動の際に、記憶媒体であるメモリカード７内のメモリからインストールされ、ＲＡＭ３内に格納されたシステムの起動処理（図４参照）を行うが、予めユーザが定義したパスワード入力ユーザ関数をＤＬＬ（Dynamic Link Library）の形式で作成している場合には必ず、ユーザ定義のパスワード入力ユーザ関数の処理（図５参照）を実行する。
【００３０】
ここで、ＤＬＬ（Dynamic Link Library）とは、ＯＳが持つ機能であり、ルーチンをいくつかの“．ＤＬＬ”という拡張子を持つファイルに分けておき、必要なＤＬＬファイルだけをメモリにロードして使用する。修正も対象となるＤＬＬファイルだけに対して行え、たとえ別のルーチンであっても同じＤＬＬファイルを使用することが可能であるため、メモリを節約することにもなる。
【００３１】
ＣＰＵ２は、予めユーザにより定義されたパスワード入力ユーザ関数を呼び出す前に、ユーザによる設定が不可能な起動処理値を算出する。本実施の形態では、この起動処理値としてシステム起動毎に発生する乱数を使用する。
【００３２】
パスワード入力ユーザ関数とは、ユーザ関数ライブラリ３ＵＬのパスワードＤＬＬ内に記憶されている関数であり、ユーザ認証を行うための関数である。パスワード入力ユーザ関数では、このユーザから入力されるユーザ定義のログイン情報によるユーザ認証の結果値及び前記算出された起動処理値とを引数として、起動処理値算出ＤＬＬから呼びだされる処理値算出関数を演算し、ユーザ認証結果を含むその演算結果を戻り値として取得する。
【００３３】
処理値算出関数とは、標準関数ライブラリ３ＳＬの起動処理値算出ＤＬＬ内に記憶されている関数であり、パスワード入力ユーザ関数の正当性認証を行う関数である。ＣＰＵ２は、システムの起動処理（図４参照）とパスワード入力ユーザ関数処理（図５参照）とにおいて、同一の引数を用いて、処理値算出関数を演算し、その演算結果を戻り値として取得する。
【００３４】
そして、ＣＰＵ２は、パスワード入力ユーザ関数において演算された前記処理値算出関数の戻り値と、システムの起動処理側で演算された前記処理値算出関数の戻り値とを比較し、これらの戻り値が一致した場合で、且つシステム起動に必要な情報であるユーザ名を取得していす場合には正常なログイン処理が行われたと判断し、これら戻り値が一致しなかった場合には正常なログイン処理が行われなかったと判断する。その判断結果に応じて、システム起動処理のうちログイン処理、キャンセル処理、あるいはセキュリティ処理などを行う。
【００３５】
ＲＡＭ（Random Access Memory）３は、本情報処理装置１に対応したアプリケーションプログラム（例えば、アプリケーションプログラム１（ＡＰ１）、ＡＰ２、及びＡＰ３）や、システムスペックファイル３ＳＦ、アプリケーションスペックファイル３ＡＦ、標準関数ライブラリ３ＳＬ、ユーザ関数ライブラリ３ＵＬ等を格納するメモリエリアを有する。また、入力指示、入力データ及び処理結果を格納するワークメモリエリアも有する。
【００３６】
ＲＡＭ３内に格納されているアプリケーションプログラム（以下、「ＡＰ」と呼ぶ。）は、メモリカード７を介してインストールされ、情報処理装置１で使用可能なプログラムである。
【００３７】
システムスペックファイル３ＳＦは、情報処理装置１のシステムの定義や設定を行うために必要な情報を有するファイルである。
【００３８】
アプリケーションスペックファイル３ＡＦは、情報処理装置１におけるアプリケーションに対応して設定されるファイルである。
【００３９】
標準関数ライブラリ３ＳＬは、情報処理装置１がシステムの標準として持っている各種関数を格納したライブラリであり、標準的な起動処理を行うための処理関数やパスワード入力ユーザ関数の正当性認証を行うための処理値算出関数等を格納しているライブラリである。
【００４０】
ユーザ関数ライブラリ３ＵＬは、ユーザにより定義された各種関数を格納したライブラリであり、このユーザ関数ライブラリ３ＵＬ内のパスワードＤＬＬ内には、パスワード入力ユーザ関数等を格納している。
【００４１】
ＲＯＭ（Read Only Memory）４は、本情報処理装置１に対応したオペレーティングシステム（ＯＳ）プログラム等を記憶している。
【００４２】
表示部５は、ＣＲＴ（Cathode Ray Tube）、ＬＣＤ（Liquid Crystal Display）により構成され、ＣＰＵ２から入力される表示データを表示する。
【００４３】
操作子部６は、カーソルキーや数字入力キー等を備えたキーボード及びマウス等のポインティングデバイス等の入力装置を含み、キーボードにおいて押下されたキーの押下信号やマウスの位置信号をＣＰＵ２に出力する。
【００４４】
メモリカード７は、プログラムやデータ等が予め記憶されているメモリを有しており、このメモリは磁気的、光学的メモリ、若しくは半導体メモリで構成されている。このメモリカード７のメモリには、当該情報処理装置１に対応する各種アプリケーションプログラムや、各種処理プログラムで処理されたデータ等が記憶され、この記憶されているアプリケーションプログラムやデータ等は、ＲＡＭ３にインストールされる。
【００４５】
また、このメモリカード７に記憶するプログラムやデータ等は、後述する通信部８を介して他の装置から受信して記憶する構成としてもよく、更に、通信部８を介して接続された他の装置側に上記メモリカード７を設け、このメモリカード７に記憶されているプログラムやデータ等を通信部８を介して使用する構成にしてもよい。
【００４６】
通信部８は、モデム（ＭＯＤＥＭ：MOdulator / DEModulator ）、ターミナルアダプタ（ＴＡ：Terminal Adapter）、あるいはルータ等によって構成され、電話回線、ＩＳＤＮ回線、あるいは専用線等の通信回線を介して外部機器との通信を行うための制御を行う。
【００４７】
ここで、図２を参照して、各情報処理装置１とメインコンピュータ１１間のデータ交換の例を説明する。図２に記載されている携帯端末１Ａ、携帯端末１Ｂ、携帯端末１Ｃは、本発明を適用した携帯端末型の情報処理装置である。
【００４８】
携帯端末１Ａはメモリカード７Ａに対して、携帯端末１Ｂはメモリカード７Ｂに対して、そして携帯端末１Ｃはメモリカード７Ｃに対してデータを記憶し、各メモリカード７Ａ、７Ｂ、７Ｃに記憶されたそれぞれの内容が、カードリーダ／ライタ１２によってリードされる。そして、リードされた各内容が、カードリーダ／ライタ１２に接続されているメインコンピュータ１１へ転送される。また、このカードリーダ／ライタ１２は、メインコンピュータ１１のアプリケーションファイル１１ＡＦやデータファイル１１ＤＦをメモリカード７Ａ、７Ｂ、７Ｃへライトする。そして、携帯端末１Ａ、携帯端末１Ｂ、そして携帯端末１Ｃでは、各メモリカード７Ａ、７Ｂ、７Ｃに記憶されているアプリケーションやデータを読み出し、各々のＲＡＭ３へインストールする。
【００４９】
次に図３を参照して、ユーザ定義のログイン情報を入力するためのログインダイアログ画面を例を挙げて説明する。
【００５０】
図３は、ユーザ定義のログイン情報を用いてシステムの起動処理を行うためのログインダイアログ画面５ａの例であり、このログインダイアログ画面５ａは表示部５に表示される。図３に示すように、情報処理装置１のログインダイアログ画面５ａには、パスワードを入力するためのパスワード入力欄５ｂ、パスワード入力後、ユーザ認証処理を開始させるためのＯＫボタン５ｃ、ユーザ認証処理を行わずキャンセルさせるためのキャンセルボタン５ｄが設けられている。
【００５１】
この図３に示す、ログインダイアログ画面５ａでは、ユーザ個人を認証するための情報として、パスワードのみが入力される。パスワードのみの入力で、十分なセキュリティを確保するために、ＣＰＵ２は、以下に示すシステム起動処理（図４参照）及びユーザ定義のパスワード入力ユーザ関数の処理（図５参照）を実行する。
【００５２】
次に動作を説明する。
まず、図４を参照して情報処理装置１におけるシステムの起動処理の動作を説明する。図４は、ＣＰＵ２により実行されるシステム起動処理の動作を示すフローチャートである。
【００５３】
図４において、情報処理装置１が起動すると、ＣＰＵ２は、記憶媒体であるメモリカード７内のメモリに記憶されており、そのメモリ内からＲＡＭ３内にインストールされシステム起動処理プログラムを読み出して、システム起動処理プログラムを開始する。そしてまず、ＣＰＵ２は、ユーザ関数ライブラリ内のユーザ定義のパスワード入力ユーザ関数が記憶されているパスワードＤＬＬ（Dynamic Link Library）があるか否かを判定し（ステップＳ１０１）、パスワードＤＬＬが無い場合（ステップＳ１０１；ＮＯ）には、ステップＳ１０２〜ステップＳ１０８の標準のシステム起動処理を実行する。
【００５４】
一方、ユーザにより定義されたパスワード入力ユーザ関数が記憶されているパスワードＤＬＬがある場合（ステップＳ１０１；ＹＥＳ）には、パスワードＤＬＬ内に記憶されているパスワード入力ユーザ関数を呼び出し（図５参照）、ステップＳ１１０〜ステップＳ１１９のユーザ定義のシステム起動処理を実行する。予めユーザにより定義されたパスワード入力ユーザ関数については、後で詳細に説明する。
【００５５】
まず、パスワード入力ユーザ関数が記憶されているパスワードＤＬＬが無い場合（ステップＳ１０１；ＮＯ）について説明する。ユーザにより定義されたパスワード入力ユーザ関数が無い場合には、情報処理装置１の標準のシステム起動処理（ステップＳ１０２〜Ｓ１０８）を実行する。
【００５６】
標準のシステム起動処理では、パスワード等を入力する標準のログインダイアログ（Log-in Dialog）画面（ＤＬＧ）を表示する（ステップＳ１０２）。そして、カウンタ“Ｃ”を“０”に初期化した後（ステップＳ１０３）、ユーザが入力したパスワードが、ユーザ個人の登録パスワードと一致するか否かを判定する（ステップＳ１０４）。このカウンタ“Ｃ”は、ユーザにより、パスワード誤入力あるいはパスワード不正入力が連続して何回行われたかを計数し、このカウンタ“Ｃ”によるカウント値がある一定値“ｍ”と一致し、ユーザにより一定回数以上パスワード誤入力あるいはパスワード不正入力が行われた場合には、情報処理装置１のセキュリティ処理（ステップＳ１１９）を実行する。
【００５７】
ユーザが入力したパスワードがユーザ個人の登録パスワードと一致すると判定されると（ステップＳ１０４；ＹＥＳ）、ステップＳ１０７に移行し、ユーザ名が設定され、ログイン処理を実行し（ステップＳ１０７）、情報処理装置１のシステムを起動する（ステップＳ１０８）。ユーザが入力したパスワードがユーザ個人の登録パスワードと一致しないと判定されると（ステップＳ１０４；ＮＯ）、カウンタ“Ｃ”に“１”加算し（ステップＳ１０５）、その加算されたカウンタ“Ｃ”のカウント値がある一定値“ｍ”と一致すか否かを判定する（ステップＳ１０６）。カウンタ“Ｃ”が“ｍ”と一致しない場合（ステップＳ１０６；ＮＯ）には、ステップＳ１０２に移行し、もう一度、標準のログインダイアログ画面におけるパスワードの入力から処理を開始する。カウンタ“Ｃ”が“ｍ”と一致する場合（ステップＳ１０６；ＹＥＳ）には、ステップＳ１１９に移行し（矢印▲１▼）、情報処理装置１のセキュリティ処理を行い（ステップＳ１１９）、情報処理装置１におけるシステム起動処理を終了する。
【００５８】
次に、パスワード入力ユーザ関数が記憶されているパスワードＤＬＬがある場合（ステップＳ１０１；ＹＥＳ）について説明する。ユーザにより定義されたパスワード入力ユーザ関数がある場合には、このパスワード入力ユーザ関数を呼び出し、ユーザ定義のシステム起動処理（ステップＳ１１０〜Ｓ１１９）を実行する。
【００５９】
パスワードＤＬＬ内に記憶されているパスワード入力ユーザ関数を呼び出す前に、情報処理装置１は、パスワード入力ユーザ関数と処理値算出関数に引数として渡す起動処理値“ｓＲｔ”を取得する（ステップＳ１１０）。この起動処理値“ｓＲｔ”は、情報処理装置１のシステムを起動する都度、発生する乱
数であり、ユーザによる設定が不可能な数である。
【００６０】
起動処理値“ｓＲｔ”が取得されると、ＣＰＵ２はパスワードＤＬＬ内に記憶されている、ユーザにより定義されたパスワード入力ユーザ関数を呼び出す（ステップＳ１１１）。この際、このパスワード入力ユーザ関数の引数として、先程算出した起動処理値“ｓＲｔ”を渡す。本実施の形態において使用するパスワード入力ユーザ関数の形式を式（１）に示す。
【００６１】
Int Msv_Pw_Input(HWND hWnd, int sRt)    …（１）
【００６２】
この式（１）において、引数はアプリケーションハンドル“ｈＷｎｄ”、処理値算出関数“ｓＲｔ”であり、戻り値は式（１）で算出される値である。
【００６３】
なお、このパスワード入力ユーザ関数が一例であり、これに限られるものではなく、ＤＬＬ形式で作成された関数であればよい。
【００６４】
ここで呼び出されるパスワード入力ユーザ関数（１）により、情報処理装置１におけるシステム起動処理をユーザが予め定義したログインダイアログ画面等を利用して実行する。
【００６５】
図５は、ＣＰＵ２により実行されるユーザ定義のパスワード入力ユーザ関数（１）における処理の動作を説明するフローチャートである。
【００６６】
図５において、パスワード入力ユーザ関数（１）が図４のステップＳ１１１で呼びだされると、ＣＰＵ２は、記憶媒体であるメモリカード７内のメモリに記憶されており、そのメモリ内からＲＡＭ３にインストールされたパスワード入力ユーザ関数処理プログラムを読み出す。そして、ユーザ定義のパスワード入力ユーザ関数処理プログラムを開始する。
【００６７】
ユーザ定義のパスワード入力ユーザ関数（１）における処理は、ユーザが予め定義したパスワード等のログイン情報を入力するログインダイアログ（Log-in Dialog）画面５ａ（ＤＬＧ）（図３参照）を表示する（ステップＳ１２０）。そして、この表示されたログインダイアログ画面５ａに対して、パスワード等の予めユーザが設定したログイン情報を入力し（ステップＳ１２１）、ユーザ認証処理を実行するか否かを、“Ｏｋ”ボタン、あるいは“キャンセル”ボタンを操作することで決定する（ステップＳ１２２）。ユーザ認証処理を実行する場合には、ステップＳ１２３〜Ｓ１２８の処理を実行し、ユーザ認証処理をキャンセルする場合には、ステップＳ１２９の処理を実行する。
【００６８】
ステップＳ１２２において、“Ｏｋ”ボタンが選択されると（ステップＳ１２２；ＯＫ）、カウンタ“Ｃ”を“０”に初期化する（ステップＳ１２３）。カウンタ“Ｃ”は、図４のステップＳ１０３の場合と同様、ユーザ認証処理（ステップＳ１２４）が連続して正しく実行されなかった回数を計数し、システムのセキュリティ処理（図４、ステップＳ１１９）を実行するか否かの判断基準となる値である。
【００６９】
次に、ユーザ認証処理を行い（ステップＳ１２４）、正しくユーザ認証処理が行われたと判定されると（ステップＳ１２４；ＹＥＳ）、ユーザ認証結果値として処理フラグ“Ｆｌｇ＝０”を取得し、起動処理値“ｓＲｔ”と処理フラグ“Ｆｌｇ＝０”とを引数として起動処理値算出関数ＤＬＬ内の処理値算出関数を呼び出す（ステップＳ１２５）。本実施の形態においては、処理値算出関数の形式を式（２）に示す。
【００７０】
Int Msv_User_Deal(int sRt, int Flg)   …（２）
【００７１】
この式（２）において、引数は、起動処理値“ｓＲｔ”と処理フラグ“Ｆｌｇ”とであり、その戻り値は、“ｕＲｔ”として取得する。
【００７２】
なお、この処理値算出関数は一例であり、これに限られるものではなく、ＤＬＬ形式で作成された関数であればよい。
【００７３】
起動処理値“ｓＲｔ”と処理フラグ“Ｆｌｇ＝０”を引数として処理値算出関数を演算し、戻り値“ｕＲｔ”を得る。更に、ステップＳ１２４において正しくユーザ認証処理が行われたと判定されているので、ログイン処理に必要な情報であるユーザ名“ｕＵｓｅｒ”を取得する（ステップＳ１２６）。その後、戻り値“ｕＲｔ”及びユーザ名“ｕＵｓｅｒ”を取得すると、図４のステップＳ１１１に戻り、ユーザ定義のシステム起動処理に復帰する。
【００７４】
ユーザ認証処理を行い（ステップＳ１２４）、正しくユーザ認証処理が行われなかったと判定されると（ステップＳ１２４；ＮＯ）、上述したカウンタ“Ｃ”に“１”加算し（ステップＳ１２７）、その加算されたカウンタ“Ｃ”のカウント値がある一定値“ｎ”と一致するか否かを判定する（ステップＳ１２８）。カウント値が“ｎ”と一致しない場合（ステップＳ１２８；ＮＯ）には、ステップＳ１２１に移行し、もう一度、パスワード等のログインコードの入力から処理を開始する。カウント値が“ｎ”と一致する場合（ステップＳ１２８；ＹＥＳ）には、図４のステップＳ１１９に移行し（矢印▲１▼）、情報処理装置１のセキュリティ処理を行い（ステップＳ１１９）、情報処理装置１におけるシステム起動処理を終了する。
【００７５】
ステップＳ１２２において、“キャンセル”ボタンが選択されると（ステップＳ１２２；キャンセル）、ユーザ認証結果値として処理フラグ“Ｆｌｇ＝１”を取得し、起動処理値“ｓＲｔ”と処理フラグ“Ｆｌｇ＝１”とを引数として起動処理値算出ＤＬＬ内の処理値算出関数（２）を呼び出す（ステップＳ１２９）。その結果、戻り値として“ｕＲｔ”を取得し、図４のステップＳ１１１に戻り、ユーザ定義のシステム起動処理に復帰する。
【００７６】
図５を参照して上述した、ユーザ定義のパスワード入力ユーザ関数（１）の処理が終了すると、ユーザ定義のシステム起動処理へ復帰し、戻り値“ｕＲｔ”、ユーザ名“ｕＵｓｅｒ”を各々レジスタ“Ｒｕ”、レジスタ“Ｒｎ”に確保する（ステップＳ１１２）。  パスワード入力ユーザ関数（１）における戻り値“Ｒｕ”及び“Ｒｎ”を取得すると、図５に示すパスワード入力ユーザ関数（１）処理において、ユーザ認証処理が正しく行われ、正しいユーザ名が取得されたかどうか（ステップＳ１１３〜Ｓ１１５）、あるいはユーザ認証処理がキャンセルされ、キャンセル処理が行われたかどうか（ステップＳ１１６〜Ｓ１１８）を、パスワード入力ユーザ関数（１）の正当性認証を行うため、起動処理値算出ＤＬＬから処理値算出関数（２）を呼び出して、この演算結果を判断する。
【００７７】
上述した処理値算出関数（２）に引数として渡される処理フラグ“Ｆｌｇ”は、パスワード入力ユーザ関数（１）処理においてユーザ認証処理が正しく行われたか否かを判断するための基準となる戻り値を得るために、処理フラグ“Ｆｌｇ＝０”、あるいは処理フラグ“Ｆｌｇ＝１”にセットされる。処理値算出関数（２）において、この処理フラグ“Ｆｌｇ”を“Ｆｌｇ＝０”にセットすると、パスワード入力ユーザ関数（１）処理においてユーザ認証処理が正しく行われたか否かを判断するための基準となる戻り値“ｓｒＯｋ”を取得することができる。一方、処理値算出関数（２）において、この処理フラグ“Ｆｌｇ”を“Ｆｌｇ＝１”にセットすると、パスワード入力ユーザ関数（１）処理においてユーザ認証処理がキャンセルされたか否かを判断するための基準となる戻り値“ｓｒＣａｎ”を取得することができる。
【００７８】
まず、上述したパスワード入力ユーザ関数（１）処理において、ユーザ認証処理が正しく行われたか否かを判断する。ステップＳ１１３で、パスワード入力ユーザ関数（１）処理において、ユーザ認証処理が正しく行われたか否かを判断するために、処理フラグ“Ｆｌｇ＝０”にセットし、この処理フラグ“Ｆｌｇ＝０”及び起動処理値“ｓＲｔ”を引数として、処理値算出関数（２）を演算し、演算結果として戻り値“ｓｒＯｋ”を取得する。そして戻り値“ｓｒＯｋ”をレジスタ“Ｒｓ”に確保する（ステップＳ１１４）。ステップＳ１１４において戻り値“ｓｒＯｋ”を取得すると、ステップＳ１１２において取得したレジスタ“Ｒｕ”に確保した戻り値“ｕＲｔ”と一致するか否かを判定する（ステップＳ１１５）。
【００７９】
レジスタ“Ｒｕ”とレジスタ“Ｒｓ”とにそれぞれ確保されている戻り値が一致する場合、すなわち、ステップＳ１１２においてパスワード入力ユーザ関数（１）から取得した戻り値“ｕＲｔ”と、ステップＳ１１４において処理値算出関数（２）から取得した戻り値“ｓｒＯｋ”とが一致する場合（ステップＳ１１５；ＹＥＳ）には、パスワード入力ユーザ関数（１）における処理がユーザ認証処理の正当性が確認され、ステップＳ１０７に移行する。そして、パスワード入力ユーザ関数（１）処理において取得したユーザ名“ｕＵｓｅｒ”をレジスタ“Ｒｎ”から読み出し、情報処理装置１に設定し、情報処理装置１へログインし（ステップＳ１０７）、情報処理装置１のシステムを起動する（ステップＳ１０８）。逆に、レジスタ“Ｒｕ”とレジスタ“Ｒｓ”とにそれぞれ確保されている戻り値が一致しない場合（ステップＳ１１５；ＮＯ）には、ステップＳ１１６の処理に移行する。
【００８０】
上述したパスワード入力ユーザ関数（１）処理において、ユーザ認証処理が正しく行われなかったと判断されると、次に、パスワード入力ユーザ関数（１）処理において、ユーザ認証処理がキャンセルされたか否かを判断する。ステップＳ１１６で、パスワード入力ユーザ関数（１）処理において、ユーザ認証処理がキャンセルされたか否かを判断するために、ステップＳ１１３の処理の場合とは異なり、“Ｆｌｇ＝１”にセットし、この処理フラグ“Ｆｌｇ＝１”及び起動処理値“ｓＲｔ”を引数として、処理値算出関数（２）を演算して、演算結果として戻り値“ｓｒＣａｎ”を取得する（ステップＳ１１７）。そして戻り値“ｓｒＣａｎ”をレジスタ“Ｒｓ”に確保する。ステップＳ１１７において戻り値“ｓｒＣａｎ”を取得すると、ステップＳ１１２においてレジスタ“Ｒｕ”に確保した戻り値“ｕＲｔ”と一致するか否かを判定する（ステップＳ１１８）。
【００８１】
レジスタ“Ｒｕ”とレジスタ“Ｒｓ”とにそれぞれ確保されている戻り値が一致する場合、すなわち、ステップＳ１１２においてパスワード入力ユーザ関数（１）から取得した戻り値“ｕＲｔ”と、ステップＳ１１７において処理値算出関数（２）から取得した戻り値“ｓｒＣａｎ”とが一致する場合（ステップＳ１１８；ＹＥＳ）には、パスワード入力ユーザ関数（１）処理がキャンセル処理を行ったと判断し、情報処理装置１のシステム起動処理を終了する。逆に、レジスタ“Ｒｕ”とレジスタ“Ｒｓ”とにそれぞれ確保されている戻り値が一致しない場合（ステップＳ１１８；ＮＯ）には、ユーザ認証が正しく行われず、キャンセルもされていないものと判断して、ステップＳ１１９の処理に移行する。
【００８２】
ステップＳ１１９では情報処理装置１のセキュリティ処理を行い（ステップＳ１１９）、情報処理装置１におけるシステム起動処理を終了する。ステップＳ１１９におけるセキュリティ処理とは、情報処理装置１を使用不可にしたり、強制終了させたりする処理のことである。
【００８３】
以上のように、本発明を適用した実施の形態における情報処理装置１は、ユーザにより予め定義されたパスワード入力ユーザ関数をユーザ関数ライブラリ３ＵＬに記憶しているとともに、処理値算出関数を標準関数ライブラリ３ＳＬに記憶している。システムを起動する際には、このパスワード入力ユーザ関数において、ユーザにより入力されたログイン情報を利用したユーザ認証を実行し、そのユーザ認証の結果値として処理フラグ“Ｆｌｇ”を取得し、この処理フラグと、乱数である起動処理値とを引数として前記処理値算出関数の戻り値を算出する。また、システム側では、前記パスワード入力関数において使用した引数と同一の引数を用いて、前記処理値算出関数の戻り値を算出する。そして、前記両戻り値を比較することによって、ユーザ定義のシステム起動処理が正しく実行されるか否かを判別する。
【００８４】
したがって、パスワード入力ユーザ関数において、ユーザ認証結果と乱数である起動処理値とを引数として処理値算出関数を演算し、システムの起動処理において、同一の引数を用いて処理値算出関数を演算し、これらの演算結果を比較することによって、ユーザ認証の正当性を判定することができる。そのため、ユーザ定義のログインダイアログ画面に対して、ユーザが入力するログイン情報を用いてシステムを起動する場合にも、これらユーザ定義のログイン情報のセキュリティ管理やシステムのセキュリティを確実に確保することが可能となる。
【００８５】
また、システムを起動する都度乱数発生させ、発生した乱数をユーザ認証のための演算の引数とすることによって、意図的にユーザ認証の結果を操作されることを防ぐことができる。そのため、ユーザにより自由に定義されたシステムのセキュリティを更に強化することが可能となる。
【００８６】
そして、上述したユーザ認証に、ユーザにより入力されるログイン情報を用いることによって、ユーザは自己の利用しやすいパスワード等を用いてログイン時の処理を実行することができる。そのため、ユーザにより正しいログイン情報が入力されない限り、正しくユーザ認証されず、ユーザにより自由に定義されたシステムのセキュリティを確保することが可能となる。
【００８７】
さらに、システム起動に必要な情報は、ユーザ認証の結果が正当で、且つ所定の関数の演算を経た後取得されるので、他人に盗用されたり改竄されたりすることを少なくすることができる。また、ユーザ認証の結果から、ログインに必要な情報を取得していおり、且つログイン関数ルーチン側とシステム側とにおける処理値算出関数の演算結果が一致するという双方の条件を満たす場合のみ、システムが起動されるので、ユーザにより自由に定義されたログイン関数ルーチンを使用したシステム起動時のセキュリティをより一層強化することが可能となる。
【００８８】
なお、本発明は、上記実施の形態の内容に限られるものではなく、本発明の趣旨を逸脱しない範囲で適宜変更可能である。例えば、ユーザにより定義されるパスワード入力ユーザ関数や起動処理値算出ＤＬＬ内の処理値算出関数を、Ｃ＋＋言語形式で作成したが、これに限られるものではなく、ＤＬＬ形式でメモリに記憶可能な言語形式の関数であるばよい。
【００８９】
また、本実施の形態においては、記憶媒体としてメモリカードを利用したが、フロッピーディスクや、ＤＶＤ−ＲＯＭなどの他の記憶媒体であってもよい。
【００９０】
【発明の効果】
請求項１記載の発明の情報処理装置及び請求項５記載の記憶媒体によれば、ユーザにより自由に定義されたユーザ関数ルーチンを用いてユーザ認証を行い、そのユーザ認証の正当性を判定することができる。その結果、ユーザ定義のログインダイアログ画面に対して、ユーザが入力するログイン情報を用いてシステムを起動する場合にも、これらユーザ定義のログイン情報のセキュリティ管理やシステムのセキュリティを確実に確保することが可能となる。
【００９１】
請求項２記載の発明の情報処理装置によれば、システムを起動する都度乱数を発生させ、発生した乱数をユーザ認証のための演算の引数とするため、ある一定値をユーザ認証のための演算の引数とした場合とは異なり、演算結果を予測されたり、意図的にユーザ認証の結果を操作されることを防ぐことができる。その結果、ユーザにより自由に定義されたシステムのセキュリティを更に強化することが可能となる。
【００９２】
請求項３記載の発明の情報処理装置によれば、ユーザ関数ルーチンにおけるユーザ認証には、ユーザから入力されるログイン情報を用いるので、ユーザは自己の使用しやすいパスワード等を用いてログイン時の処理を実行することができる一方、ユーザにより正しいログイン情報が入力されない限り、正しくユーザ認証されず、ユーザにより自由に定義されたシステムのセキュリティを確保することが可能となる。
【００９３】
請求項４記載の発明の情報処理装置によれば、システム起動に必要な情報は、ユーザ認証の結果が正当で、且つ所定の関数の演算を経た後、取得されるので、他人に盗用されたり改竄されたりすることを少なくすることができる。また、ユーザ認証の結果からログインに必要な情報を取得し、且つユーザ関数ルーチン側とシステム側とにおける処理値算出関数の演算結果が一致するという双方の条件を満たす場合のみ、システムが起動されるので、ユーザにより自由に定義されたユーザ関数ルーチンを使用したシステム起動時のセキュリティをより一層強化することが可能となる。
【図面の簡単な説明】
【図１】本発明の実施の形態の情報処理装置１の内部構成を示すブロック図である。
【図２】複数の情報処理装置１とメインコンピュータ１１のデータ交換の例を示す図である。
【図３】情報処理装置１において、ユーザ定義のログイン情報を用いて、システムの起動処理を実行するためのログインダイアログ画面５ａの例を示す図である。
【図４】情報処理装置１における、システム起動処理の動作を説明するフローチャートである。
【図５】情報処理装置１における、ユーザ定義のパスワード入力ユーザ関数処理の動作を説明するフローチャートである。
【図６】コンピュータ・システムにおいて、一般に使用されている標準のシステム起動処理を行うための、標準のログインダイアログ画面１０ａの例を示す図である。
【符号の説明】
１      情報処理装置
１Ａ    携帯端末型情報処理装置
１Ｂ    携帯端末型情報処理装置
１Ｃ    携帯端末型情報処理装置
２      ＣＰＵ
３      ＲＡＭ
３ＳＦ  システムスペックファイル
３ＡＦ  アプリケーションスペックファイル
３ＳＬ  標準関数ライブラリ
３ＵＬ  ユーザ関数ライブラリ
４      ＲＯＭ
５      表示部
５ａ    ユーザ定義のログインダイアログ画面
５ｂ    パスワード入力欄
５ｃ    ＯＫボタン
５ｄ    キャンセルボタン
６      操作子部
７      メモリカード
７Ａ    メモリカード
７Ｂ    メモリカード
７Ｃ    メモリカード
８      通信部
９      バス
１０ａ    標準のログインダイアログ画面
１０ｂ    ユーザ入力欄
１０ｃ    パスワード入力欄
１０ｄ    ＯＫボタン
１０ｅ    キャンセルボタン
１１      メインコンピュータ
１１ＡＦ  アプリケーションファイル
１１ＤＦ  データファイル
１２      カードリーダ／ライタ
ＡＰ１    アプリケーションプログラム
ＡＰ２    アプリケーションプログラム
ＡＰ３    アプリケーションプログラム
【図１】
0004013413.tif 000002
【図２】
0004013413.tif 000003
【図３】
0004013413.tif 000004
【図４】
0004013413.tif 000005
【図５】
0004013413.tif 000006
【図６】
0004013413.tif 000007