(57)【要約】【課題】    認証機能を有しない一般アプリケーションプログラムについて認証機能を付加したのと同等の操作環境を提供でき、且つ、また該当するアプリケーションプログラムファイルが漏洩する可能性を抑制する。【解決手段】  セキュリティを確保するため、認証機能を付加しようとするアプリケーションプログラムファイルは、所定の可逆変換アルゴリズムに従って実行不可形式ファイルに変換される。そして、そのアプリケーションの起動要求があった場合には、認証処理を行い、その認証が成功した場合に限って、実行不可形式ファイルから元の実行可能なファイルに復元し（Ｓ１００４）、起動させる（Ｓ１００５）。その後、アプリケーションが終了した場合（ステップＳ１００８）、実行可能に復元されたファイルを削除する（ステップＳ１００９）。【選択図】  図１０
2006004087.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ上で動作するアプリケーションプログラムを管理するコンピュータプログラム管理装置であって、
予め設定された管理者用認証処理を経た管理者の指示に基づき、記憶装置に格納されている所望とするアプリケーションプログラムファイルを特定する情報を入力する入力手段と、
該入力手段で入力された情報で特定されるアプリケーションプログラムファイルから、所定の可逆変換アルゴリズムに従って実行不可形式ファイルを生成する変換手段と、
該変換手段で生成された実行不可形式ファイルに対応するアプリケーションプログラムの起動が指示された場合、予め登録された認証情報に従って起動指示を行った利用者の認証処理を行う認証手段と、
該認証手段により認証された場合に、（ａ）前記実行不可形式ファイルから前記所定の可逆変換アルゴリズムに従って実行可能なアプリケーションプログラムファイルを復元し、（ｂ）復元したアプリケーションプログラムファイルのアプリケーションプログラムの起動をオペレーティングシステムに要求し、（ｃ）起動したアプリケーションプログラムが終了された場合、復元したアプリケーションプログラムファイルの削除をオペレーティングシステムに要求するアプリケーション実行管理手段と
を備えることを特徴とするコンピュータプログラム管理装置。
【請求項２】
前記変換手段は、前記実行不可ファイルを生成すると共に前記入力手段で特定されるアプリケーションプログラムファイルを前記記憶装置から削除する削除手段を有することを特徴とする請求項１に記載のコンピュータプログラム管理装置。
【請求項３】
前記アプリケーション実行管理手段は、アプリケーションプログラムファイルの復元先が共有設定されているフォルダ内にある場合、前記復元処理を禁止し、処理を中断することを特徴とする請求項１又は２に記載のコンピュータプログラム管理装置。
【請求項４】
前記変換手段は、前記入力手段で入力された情報でアプリケーションプログラムファイルから所定データ量単位に読出し、読出したデータを所定数で分割し、分割データを並び替えて前記記憶装置に保存することで実行不可形式のファイルを生成し、
前記アプリケーション実行管理手段は、実行不可形式のファイルから所定データ量単位に読出し、読出したデータを所定数で分割し、分割データを前記並び替えとは逆に並び替えて前記記憶装置に保存することで実行可能なアプリケーションプログラムファイルを復元することを特徴とする請求項１乃至３のいずれか１項２に記載のコンピュータプログラム管理装置。
【請求項５】
コンピュータ上で動作するアプリケーションプログラムを管理するコンピュータプログラム管理装置の制御方法であって、
操作者の指示に基づき、記憶装置に格納されている所望とするアプリケーションプログラムファイルを特定する情報を入力する入力工程と、
該入力工程で入力された情報で特定されるアプリケーションプログラムファイルから、所定の可逆変換アルゴリズムに従って実行不可形式ファイルを生成する変換工程と、
該変換工程で生成された実行不可形式ファイルに対応するアプリケーションプログラムの起動が指示された場合、予め登録された認証情報に従って起動指示を行った利用者の認証処理を行う認証工程と、
該認証工程により認証された場合に、（ａ）前記実行不可形式ファイルから前記所定の可逆変換アルゴリズムに従って実行可能なアプリケーションプログラムファイルを復元し、（ｂ）復元したアプリケーションプログラムファイルのアプリケーションプログラムの起動をオペレーティングシステムに要求し、（ｃ）起動したアプリケーションプログラムが終了された場合、復元したアプリケーションプログラムファイルの削除をオペレーティングシステムに要求するアプリケーション実行管理工程と
を備えることを特徴とするコンピュータプログラム管理装置の制御方法。
【請求項６】
前記変換工程は、前記実行不可形式ファイルを生成すると共に、前記入力工程で特定されるアプリケーションプログラムファイルを前記記憶装置から削除する削除工程有することを特徴とする請求項５に記載のコンピュータプログラム管理装置の制御方法。
【請求項７】
前記アプリケーション実行管理工程は、アプリケーションプログラムファイルの復元先が共有設定されているフォルダ内にある場合、前記復元処理を禁止し、処理を中断することを特徴とする請求項５又は６に記載のコンピュータプログラム管理装置の制御方法。
【請求項８】
前記変換工程は、前記入力工程で入力された情報でアプリケーションプログラムファイルから所定データ量単位に読出し、読出したデータを所定数で分割し、分割データを並び替えて前記記憶装置に保存することで実行不可形式のファイルを生成し、
前記アプリケーション実行管理工程は、実行不可形式のファイルから所定データ量単位に読出し、読出したデータを所定数で分割し、分割データを前記並び替えとは逆に並び替えて前記記憶装置に保存することで実行可能なアプリケーションプログラムファイルを復元することを特徴とする請求項５乃至７のいずれか１項に記載のコンピュータプログラム管理装置の制御方法。
【請求項９】
コンピュータが読み込み実行することで、当該コンピュータ上で動作するアプリケーションプログラムを管理するコンピュータプログラム管理装置として機能するコンピュータプログラムであって、
ファイル変換プログラム、認証プログラムで構成され、、
前記ファイル変換プログラムは、操作者の指示に基づき、記憶装置に格納されている所望とするアプリケーションプログラムファイルを特定する情報を入力する入力手段と、
該入力手段で入力された情報で特定されるアプリケーションプログラムファイルから、所定の可逆変換アルゴリズムに従って実行不可形式ファイルを生成する変換手段として機能し、
前記認証プログラムは、
前記変換手段で生成された実行不可形式ファイルに対応するアプリケーションプログラムの起動が指示された場合、予め登録された認証情報に従って起動指示を行った利用者の認証処理を行う認証手段と、
該認証手段により認証された場合に、（ａ）前記実行不可形式ファイルから前記所定の可逆変換アルゴリズムに従って実行可能なアプリケーションプログラムファイルを復元し、（ｂ）復元したアプリケーションプログラムファイルのアプリケーションプログラムの起動をオペレーティングシステムに要求し、（ｃ）起動したアプリケーションプログラムが終了された場合、復元したアプリケーションプログラムファイルの削除をオペレーティングシステムに要求するアプリケーション実行管理手段
として機能することを特徴とするコンピュータプログラム。
【請求項１０】
前記ファイル変換プログラムは、前記変換手段が、前記実行不可形式ファイルを生成すると共に、前記入力手段で特定されるアプリケーションプログラムファイルを前記記憶装置から削除するよう機能することを特徴とする請求項９に記載のコンピュータプログラム。
【請求項１１】
前記ファイル変換プログラム、および前記認証プログラムはそれぞれ独立したプログラムとして起動される形式にて形成されていることを特徴とする請求項９又は１０に記載のコンピュータプログラム。
【請求項１２】
請求項９乃至１１のいずれか１項に記載のコンピュータプログラムを格納したことを特徴とするコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はパーソナルコンピュータ等の汎用情報処理装置上で動作する一般アプリケーションプログラムの実行許可／不許可を行う技術に関するものである。
【背景技術】
【０００２】
近年、セキュリティに関する重要性が高まり、様々な分野で幾つものセキュリティの仕組みが考えられている。特に、認証によるセキュリティの仕組みは広く用いられている。例えば、認証によるセキュリティの仕組みは、コンピュータ端末のオペレーティングシステム（以下、ＯＳ）の起動時やＷｅｂシステムへのログイン時など、端末やシステムにログインする際に正当なユーザのみに利用させる仕組みとして用いられている。
【０００３】
コンピュータ端末にインストールされたアプリケーションプログラムの起動に対してもセキュリティ機能を施す仕組みが考えられている。
【０００４】
かかる目的を達成するため、アプリケーションのインストールや起動に関してユーザ認証を行い、その認証処理を経ない限り、アプリケーションを起動しないという技術が知られている（特許文献１）。
【０００５】
この技術のシステムにおいては、認証によりアプリケーションの起動に対するセキュリティを提供し、さらに複数のアプリケーションに対する認証を簡素化することが可能となる。
【特許文献１】特開２００１−２３６３１５
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記の技術を用いたシステムにおける認証セキュリティ機能は、予め決められた特定のアプリケーションプログラムについてのみであり、認証を必要としない既存のアプリケーションに、後から認証セキュリティ機能を付加することはできない。
【０００７】
本発明は上記の課題を解決するためになされたものであり、認証要求機能を有さない所望とする一般的なアプリケーションプログラムに対してもセキュリティ機能を付加する技術を提供しようとするものである。
【課題を解決するための手段】
【０００８】
上記の目的を達成するための本発明によるアプリケーションプログラム管理装置は以下の構成を備える。すなわち、
コンピュータ上で動作するアプリケーションプログラムを管理するコンピュータプログラム管理装置であって、
予め設定された管理者用認証処理を経た管理者の指示に基づき、記憶装置に格納されている所望とするアプリケーションプログラムファイルを特定する情報を入力する入力手段と、
該入力手段で入力された情報で特定されるアプリケーションプログラムファイルから、所定の可逆変換アルゴリズムに従って実行不可形式ファイルを生成すると共に、前記入力手段で特定されるアプリケーションプログラムファイルを前記記憶装置から削除する変換手段と、
該変換手段で生成された実行不可形式ファイルに対応するアプリケーションプログラムの起動が指示された場合、予め登録された認証情報に従って起動指示を行った利用者の認証処理を行う認証手段と、
該認証手段により認証された場合に、（ａ）前記実行不可形式ファイルから前記所定の可逆変換アルゴリズムにしがって実行可能なアプリケーションプログラムファイルを復元し、（ｂ）復元したアプリケーションプログラムファイルのアプリケーションプログラムの起動をオペレーティングシステムに要求し、（ｃ）起動したアプリケーションプログラムが終了された場合、復元したアプリケーションプログラムファイルを削除要求をオペレーティングシステムに要求するアプリケーション実行管理手段とを備える。
【発明の効果】
【０００９】
本発明によれば、認証機能を有しない所望とする一般アプリケーションプログラムについて認証機能を付加したのと同等の操作環境を提供でき、且つ、また該当するアプリケーションプログラムファイルが漏洩する可能性を低くすることも可能となる。特に、アプリケーションプログラム開発者にとっては、特にセキュリティ機能を付加した開発を行う必要がなくなりプログラム開発に係る負担を軽減させることが可能となる。
【発明を実施するための最良の形態】
【００１０】
以下、添付図面に従って本発明に係る実施形態を詳細に説明する。
【００１１】
＜第１の実施の形態＞
図１は本発明の実施形態のアプリケーションプログラムのセキュリティ管理を実行するセキュリティ管理プログラムを有する、セキュリティ管理装置の構成を示す図である。
【００１２】
実施形態におけるセキュリティ管理装置は、図示の汎用情報処理装置であるパーソナルコンピュータ（以下、ＰＣ）１００を用いた例を説明する。また、ＰＣ１００上で動作するＯＳ（オペレーティングシステム）としては、米国マイクロソフト社が提供するWindows（登録商標）を例にする。
【００１３】
ＣＰＵ１０１は、システムバス１０４に接続される各デバイスやコントローラを統括的に制御する。また、ＲＯＭ１０２には、ＢＩＯＳ（Basic Input Output System)、ブートプログラムが格納されている。ＲＡＭ１０３は、ＣＰＵ１０１の主メモリ、ワークエリア等として機能する。
【００１４】
外部メモリ（通常はハードディスクドライブとする）１１１には、ＯＳ、各種アプリケーションプログラム（ワードプロセッサやスプレッドシート等であり、その種類は問わない）１１２が格納されている。これらアプリケーションプログラム１１２は、少なくともその母体となる実行プログラム１１３（ｅｘｅファイル）を含むことになる。また、実施形態における中枢となるセキュリティ管理プログラム１１４も外部メモリに格納される。更に、、外部メモリ１１１には、各種アプリケーションで作成されたデータファイルも記憶されることになる。
【００１５】
本装置に電源が投入されると、ＣＰＵ１０１はＲＯＭ１０２のブートプログラムを実行することで、メモリコントローラ１０７を介して外部メモリ１１１にアクセスし、ＯＳをＲＡＭ１０３にロードする。そして、ビデオコントローラ１０６を介してＣＲＴ１１０にＯＳの操作画面の表示処理と、入力コントローラ１０５を介したキーボード及びマウス（登録商標）等のポインティングデバイス（ＫＢ／ＰＤ）１０９（指示手段）から入力処理とを行い、必要に応じて外部メモリ１１１にアクセスしてアプリケーションプログラム１１２、実施形態におけるセキュリティ管理プログラム１１４の起動を行うことになる。場合によっては、通信インタフェース１０８を介してネットワークとの通信を行うことになる。
【００１６】
なお、図１は実施形態における装置の一例である点に注意されたい。すなわち、表示装置はＣＲＴに限らず液晶表示装置でも構わず、外部メモリ１１１はハードディスクに限らずその種類を問わない。
【００１７】
＜セキュリティ管理プログラムの概要＞
実施形態におけるセキュリティ管理プログラム１１４は、アプリケーションプログラム１１２にセキュリティ機能を付加するものであるが、２つの独立したプログラムで構成される。
【００１８】
１つは、既存の一般アプリケーションプログラムを実行不可形式ファイルに変換するファイル変換プログラム、もう１つは、実行不可形式に変換されたアプリケーションプログラムファイルについての起動とユーザメンテナンス処理を行う認証処理プログラムである。
【００１９】
「ファイル変換プログラム」は、その管理者のみ、つまり、予め設定された管理者用認証処理を経た管理者だけが実行可能なプログラムである。このため、このファイル変換プログラムをＰＣ１００にインストールする際、もしくは最初に起動した際、管理者名及びパスワードをキーボードから入力させ、それを暗号化して外部メモリの適当な位置に記憶（登録）し、次回起動した際には利用者にパスワードを入力させ、管理者として登録したパスワードと一致した場合にのみ、ファイル変換処理に移行できるようにした。つまり、このファイル変換プログラムそのものが認証処理を含んだものとなっており、よりセキュリティ機能を向上させているものである。
【００２０】
先ず、管理者は、ファイル変換プログラムを起動し認証に成功したものとする。管理者は、ＰＣ１００にインストールされているアプリケーションプログラム（ＯＳに関連するプログラム以外の一般アプリケーションであればその種類を問わない）のうち、特定の利用者のみに実行許可しようとするアプリケーションプログラムファイルを指定する。指定方法は如何なるものでも構わないが、例えば、キーボードより該当するアプリケーションプログラムをフルパス、例えば、“c:\aaa\bbb\ccc.exe”（ドライブｃのディレクトリ（フォルダ）“aaa”内の更なるディレクトリ“bbb”内に存在する“ccc.exe”という名の実行プログラムファイル）の文字列を入力する。或いは、ファイルブラウザ形式のウインドウを表示し、ポインティングデバイスの操作にしたがい、ドライブ、サブフォルダと順にたどっていき目的とする実行プログラムを指定する方法でも構わない。
【００２１】
いずれにしても目的とするアプリケーションプログラムファイル“ccc.exe”を指定し、所定の指示を与えると、実施形態のファイル変換プログラムは、認証処理プログラムを介しない限り実行できない形式に変換し（詳細後述）、その変換後のファイル名を“ccc.ex_”として、実施形態におけるセキュリティ管理プログラムの管理している所定のフォルダ（実施形態では、この管理フォルダのパスを「c:\Ovl\bin\」とする）に保存すると共に、オリジナルプログラムファイル“ccc.exe”を削除する。この際、変換後のファイル“ccc.ex_”のファイル属性（一般にアトリビュートと呼ばれる）の可視／不可視の情報を“不可視”に設定することで、見かけ上、そのファイルが外部メモリ１１１に存在しないように見せかける。以上の結果、アプリケーションプログラムファイル“ccc.exe”は実際に存在しなくなり、尚且つ、変換後のファイル“ccc.ex_”の存在も格別な操作をしなければ見えない状況を提供できるようになる。
【００２２】
なお、以下では、ファイル変換プログラムによって、実施形態における認証プログラムを介しない限り、実行又はオープンできないファイルをスクランブルファイルという。
【００２３】
一方、認証プログラムにおけるアプリケーション起動部分（メンテナンス処理についてはここでは除く）は、大きくわけて４つ処理を含む。第１には認証処理である。第２には認証に成功した場合にスクランブルファイル“ccc.ex_”から、実行可能なファイル“ccc.exe”に復元する復元処理である。そして、第３には、復元した“ccc.exe”の起動をＯＳに対して要求するアプリケーション起動処理である。そして、第４には、アプリケーションプログラム“ccc.exe”の終了要求をした後、その“ccc.exe”が終了するのを待って“ccc.exe”を削除する削除処理である。
【００２４】
以上の結果、アプリケーションプログラムファイル“ccc.exe”が外部メモリ１１１に存在する期間は、実質的に、そのアプリケーションが実行中に限られることとなり、第３者によって、実行可能アプリケーションプログラムファイル“ccc.exe”が複製されることを抑制することが可能となる。以下では、本実施形態について、より具体的に説明する。
【００２５】
なお、以下の説明において、実施形態におけるセキュリティ管理プログラム１１４は既に外部メモリにインストールされているものとする。
【００２６】
＜ファイル変換処理プログラムの説明＞
まず、実施形態におけるセキュリティ管理プログラム１１４を構成するファイル変換プログラムの処理を図３のフローチャートを用いて説明する。ここではセキュリティ機能を追加したいアプリケーションの実行ファイル１１３を、ＯＳからは直接起動することができないスクランブルファイルに変換するものである。以下に説明する各ステップはＣＰＵ１０１がＲＡＭ１０３にロードしたセキュリティ管理プログラムを実行することで実現されるものである。
【００２７】
まず、ユーザがセキュリティ管理プログラムのファイル変換処理を起動すると、ＣＰＵ１０１は、ビデオコントローラ１０６を制御して、管理者であるか否かを確認するため、管理者名とパスワードを入力するためのユーザインタフェース（ウインドウ）の描画指示を行い、キー入力を待つ（ステップＳ３１０）。なお、以下では、ビデオコントローラ１０６に対する描画要求を行う処理を、単に「表示する」と言う。
【００２８】
そして、ステップＳ３１１において、キー入力された結果と、予め登録された管理者名とパスワードとの一致した場合に限ってステップＳ３０１に処理を進める。なお、入力した管理者名とパスワードの誤り回数が所定回数以上の場合には本処理を終了するようにしても良い。
【００２９】
処理がステップＳ３０１に進むと、図４に示す入力画面のユーザインターフェース（以下、ＵＩ）を表示する。
【００３０】
ステップＳ３０２はユーザがキーボードやポインティングデバイスを用いて変換処理対象に指定するアプリケーションプログラムの実行ファイルの選択入力を行う。入力は、先に説明したように、目的とするアプリケーションプログラムファイルの所在を特定するパス付きファイル名の文字列をキーボードを操作してテキストボックス４１に入力するか、或いは、図４における「ファイル指定」ボタン４２の位置までポインティングデバイスに連動するカーソルを移動し、ポインティングデバイスに備えられたボタンを押下し、ファイルビューワウインドウ（不図示）を表示し、ドライブ、ディレクトリ、ファイル名を同様の操作で行う。ファイルの指定が行われると、そのファイルのパス情報を含む文字列がテキストボックス４１に表示される。なお、ファイルビューワにてファイルを選択する技術そのものは公知であるので、ここでの説明は省略する。
【００３１】
次にステップＳ３０３では、ＣＰＵ１０１はステップＳ３０２におけるファイルの選択入力がなされているかを判定し、選択入力がなされている場合には図４においてグレーアウトしていた「ファイル変換」ボタン４３を有効にする表示を行う（ステップＳ３０４、図５）。選択入力がなされていない場合にはステップＳ３０１に戻って図４のＵＩ表示を行う。
【００３２】
そして、ステップＳ３０５ではＣＰＵ１０１はファイル変換ボタン４３が押下されたか否かを判定する。ステップＳ３０５の判定の結果、ファイル変換ボタンが押下されている場合にはステップＳ３０６にて、指定されたファイル（テキストボックスに入力されたパス位置のファイルで、図示の場合、ドライブＤのディレクトリ“Test”内にある“FcPro.exe”というファイル）の変換を行う。このステップＳ３０６の詳細は後述するが、この結果、管理フォルダ（c:\Ovl\bin\）に、スクランブルファイル“FCPro.ex_”（実行ファイルを示す拡張子“exe”の３文字目をアンダーバーに置換えたファイル）が作成されることになる。
【００３３】
ステップＳ３０７にて、ファイル変換が正常終了したか否かを判断する。これは、ファイルを作成している際に、何らかのエラー（例えば、容量不足等で書き込み失敗した場合等）に対処するものである。異常終了した場合には、ステップＳ３０４に戻り、再度、ファイル変換ボタンを押下するよう促す。
【００３４】
また、正常に変換処理が終了したと判断した場合には、ステップＳ３０８にて、変換元のオリジナルファイル（図４では“FcPro.exe”）を削除し、本処理を終了する。
【００３５】
次に、上記ステップＳ３０６の処理内容の詳細を図６に従って説明する。スクランブルファイルは、先に説明したように、そのままでは実行できない形式になる。そして、実際に実行（起動）する際には、実行可能なファイルへの逆変換処理が介在することになるので、変換及び逆変換はストレス無く高速なものであることが望ましい。
【００３６】
そこで、本実施形態におけるステップＳ３０６は次のようにして、スクランブルファイルへの変換を行うようにした。
【００３７】
先ず、ＣＰＵ１０１は、ステップＳ６０１において、管理フォルダ内に、オリジナル実行プログラムファイルの拡張子の文字列が異なる書き込み用ファイルをオープンし、その先頭の１０２４バイト（１ＫＢ）にダミーデータを書き込む。
【００３８】
通常、ＯＳはプログラムファイルを実行する際、そのヘッダを解析して実行することになる。上記の書き込むダミーデータは、解析した際に、エラーになるようにしたデータである。理由は、仮に、ダミーデータを書き込まないで、手作業で拡張子“ex_”のファイルを“exe”にし、それを実行すると暴走してしまう可能性があるためである。上記の場合、拡張子及びファイルヘッダの２段階（後述するように不可視設定することになるので３段階とも言える）で実行不可にしているため、安全性を高めることになる。
【００３９】
次に、ステップＳ６０２においては、上述のステップＳ３０２でユーザが入力したファイル変換の対象ファイル（アプリケーションの実行ファイル）のファイルサイズを取得する。これはＯＳが通常有するファンクションをコールすることで得ることができる。
【００４０】
そしてステップＳ６０３でＣＰＵ１０１は実行ファイル１１３から所定量単位に、データをＲＡＭ１０３上に読み込む。実施形態におけるこの「所定量」は１０２４バイト（＝１ＫＢ）とした。
【００４１】
そして、ステップＳ６０４でＣＰＵ１０１はＲＡＭ１０３上の１０２４バイトのデータを、その半分である５１２バイトで２分割する。そしてステップＳ６０５においては分割したデータを所定の順番で組み替えて外部メモリ１１１の確保したファイルに書き込む。
【００４２】
実施形態では、２分割しているので、後半の５１２バイトを書き込み、その後で前半の５１２バイトを書き込むことになる。図７は、上記のステップＳ６０１乃至６０５における処理の具体例を示している。
【００４３】
ステップＳ６０６ではＣＰＵ１０１は実行ファイル１１３のファイルサイズと既に読み込んだデータ容量からまだ読み込んでいないデータサイズが１０２４バイト以下か否かを判定し、まだ１０２４バイト以上ある場合にはステップＳ６０３に戻って上記処理を継続する。もし、残りのデータサイズが１０２４バイト以下の場合には、ステップＳ６０７に進んで、残りのデータをＲＡＭ１０３に読み込み、外部メモリ１１１上の変換後のファイルに書き込む（ステップＳ６０８）。
【００４４】
以上で変換処理が完了したことになるが、実施形態では、安全のため、ステップＳ６０９にて、書き込みファイルとして生成したスクランブルファイル（xxx.ex_）のファイル属性として隠しファイルの属性をセットする。
【００４５】
＜認証プログラムにおけるセキュリティ管理の説明＞
上記のようにして、管理者は、必要なアプリケーションプログラムファイルから生成したスクランブルファイルを管理フォルダに格納していくが、そのファイル数に制限はない。
【００４６】
一方、復元して実行するためには、上記の逆の処理を行うことになるが、スクランブルファイルの数だけ、それを復元するためのプログラムを用意するのは、外部メモリ１１を消費してしまい、効率的とは言えない。
【００４７】
また、アプリケーションプログラムによっては、元々存在していたパス位置から起動することを条件にしているものもある。
【００４８】
そこで、実施形態では、複数のスクランブルファイル（実行不可に変換されたアプリケーションプログラムファイル）に対し、復元処理を実行する共通な認証プログラムを用いるものとした。ただし、個々の実行不可アプリケーションプログラムファイルの所在位置や引数はそれぞれ異なるので、各アプリケーション毎にショートカットファイルを作成することで対処した。ショートカットファイルとは、アプリケーションの実体ファイルではなく、そのアプリケーションプログラムファイルの所在情報、及び、引数となる文字列で構成されるものであり、ファイルサイズが非常に小さいものである。
【００４９】
例えば、実施形態における認証プログラム（復元プログラムを含む）ファイルが、
c:\Ovl\Bin\PWExec.exe
である場合、次のような記述形式のショートカットファイルを作成する。
c:\Ovl\Bin\PWExec.exe "｛パス付きオリジナルプログラム名｝" "c:\Ovl\Bin\｛スクランブルファイル名｝"
例えば、アプリケーションプログラムファイルが元々存在したパス付きファイル名が、
c:\Fcraft\FCXEdtr.exe
である場合には、次のような記述を含むショートカットファイルを作成する。
c:\Ovl\Bin\PWExec.exe "c:\Fcraft\FCXEdtr.exe" "c:\Ovl\Bin\FCXEdtr.ex_"
このショートカットファイルを、例えばデスクトップ画面に配置するとか、メニューに登録する等を行い、ユーザが実行の指示を入力すると、認証プログラム「c:\Ovl\Bin\PWExec.exe」が起動し、その際、認証プログラムに引数「c:\Fcraft\FCXEdtr.exe c:\Ovl\Bin\FCXEdtr.ex_」が引き渡されることになる。
【００５０】
従って、認証プログラムは起動した際に認証（管理者が設定したパスワードと利用者の入力したパスワードの合致するか否かの判定処理）を先ず行い、その認証に成功した場合、第２引数であるスクランブルファイル「c:\Ovl\Bin\FCXEdtr.ex_」を逆変換して第１引数であるオリジナルの実行可能なファイル「c:\Fcraft\FCXEdtr.exe」を作成した上で、逆変換して得られた「c:\Fcraft\FCXEdtr.exe」を起動させればよいことになる。
【００５１】
認証プログラム「c:\Ovl\Bin\PWExec.exe」は目的とするアプリケーションを起動した後も、ＲＡＭ１０３に常駐しつづけ、該当するアプリケーションが終了した場合は、その実行可能ファイルを削除し、自身の処理も終了する。
【００５２】
ショートカットファイルの作成であるが、実施形態の場合、ＰＣ１００上で稼働するＯＳがWindows（登録商標）としているので、ＯＳの機能を利用することとした。図２はＯＳに用意されているショートカット作成のＧＵＩの例を示している。図中の「コマンドライン」のテキストボックスに上記の文字列を記述することで作成できる（図示では３つの例を示している）。なお、実施形態ではショートカットファイルで実現する例を示したが、バッチファイルでも同様であり、他のＯＳにも同様に実現できるのは容易に想到し得よう。バッチファイルの場合には、テキストエディタで作成できるし、多くのＯＳでも採用されている。
【００５３】
さて、実施形態における認証プログラム（上記例では「c:\Ovl\Bin\PWExec.exe」）ファイルは、スクランブルファイルを実行可能ファイルに逆変換する以外の処理として、管理者が各利用者のパスワードの設定等のメンテナンス処理をも行うものとした。メンテナンス処理は、管理者コード及び管理者のパスワードを入力した場合についてのみ移行することが可能である。特に管理者がメンテナンス操作を行う場合には、ショートカットではなく認証プログラムをダイレクトに起動しても構わないことになる。
【００５４】
上記を踏まえ、実施形態における認証プログラムの処理手順を、図８のフローチャートに従って説明する。
【００５５】
なお、ここでは、
c:\Ovl\Bin\PWExec.exe "c:\test\AAA.exe" "c:\Ovl\Bin\AAA.ex_"
の文字列が記述されたショートカットファイルのアイコンを、ポインティングデバイスを操作（通常はダブルクリック）して起動した例を説明する。つまり、実行不可に変換されたプログラムファイル「c:\test\AAA.ex_」を逆変換して実行可能にし、起動する場合である。
【００５６】
本実施形態における認証プログラムが起動すると、ステップＳ８０１において、ＣＰＵ１０１は外部メモリ１１１に記憶される表示データを用いて図９に示すユーザインターフェース９０を表示し、テキストボックス９１、９２にユーザ名（ユーザＩＤ）及びパスワードの入力を促す。表示されるユーザインタフェースの上部には、実行しようとするファイル（この時点では存在しないが、逆変換された場合のファイル）名のメッセージ文字列が表示される。上記の例では、「c:\test\AAA.exe」を起動する旨のメッセージが表示されることになる。
【００５７】
そして、ステップＳ８０２でユーザ名（ユーザＩＤ）及びパスワードの文字列をキーボード１０９から入力するのを待つ。
【００５８】
次にＣＰＵ１０１は、ステップＳ８０３、Ｓ８０４、Ｓ８１１にて、「起動」ボタン９３、「メンテナンス」ボタン９４、「終了」ボタン９５のいずれが押下（クリック）されるのを待つ。
【００５９】
ステップＳ８０３で、「起動」ボタンが押下されていると判定した場合には、ＣＰＵ１０１はステップＳ８０５で認証識別処理を行う。また、ステップＳ８０４で「メンテナンス」ボタンが押下されていると判定した場合には、ステップＳ８０６で認証識別処理を行う。
【００６０】
ここでステップＳ８０５及びステップＳ８０６の処理であるが、管理者が予め設定登録したユーザＩＤとパスワードを対にするテーブルを作成しておき、それを参照して認証を行う。テーブルは、外部メモリ１１１にファイル（以下、認証テーブルファイルという）として格納されるものであるが、セキュリティを確保するため、所定の暗号化処理が施されるものとする。また、テーブルにはユーザＩＤとパスワード以外に、その権限情報（管理者であるか、一般ユーザであるか）、及び、各種メンテナンスに関る情報が１レコードとして記憶されている。登録するユーザ数（レコード数）に制限はない。
【００６１】
「起動」ボタン９３、「メンテナンス」ボタン９４が押下されると、認証テーブルファイルの暗号を復号する。そして、ステップＳ８０５では、テキストボックス９１、９２に入力されたユーザＩＤとパスワードの文字列が完全一致する情報が、暗号復号した認証テーブルファイル内に存在するか否かで認証処理を行う（管理者か一般ユーザかは問わない）。また、ステップＳ８０６では、認証テーブルファイルの権限情報として管理者を示すユーザＩＤとパスワードとの照合が行われる。換言すれば、「メンテナンス」ボタン９４の押下した際にメンテナンス処理に移行できるのは、管理者のみとなる。なお、暗号化処理、暗号復号処理そのものは公知であるので、その詳細については省略する。
【００６２】
また、認証テーブルファイルのパスワード等を暗号化したまま、入力されたパスワードを所定の方法で暗号化し、暗号化したままのデータ同士を比較して認証することも可能であることは言うまでもない。
【００６３】
さて、ステップＳ８０５、Ｓ８６７において認証に失敗した場合、処理はステップＳ８０７に進み、連続して失敗した回数が所定回数（実施形態では５回とした）になったか否かを判断する。所定回数に到達すると、ステップＳ８０８に進んで、アカウントロックしてそのユーザＩＤを使用できなくする。そしてステップＳ８０９でＣＲＴ１１０にエラー表示を行い、本処理を終了する。
【００６４】
また、ステップＳ８０５において、認証成功と判断した場合にはステップＳ８１０に進み、ＣＰＵ１０１は後述するセキュリティ管理処理の実体である組み替え実行処理を行う。
【００６５】
また、ステップＳ８０６において認証成功と判断した場合には、ステップＳ８１１に進んで、後述するメンテナンス処理を行う。
【００６６】
次に、図１０のフローチャートを用いてステップＳ８１０の組み替え実行処理を説明する。これはスクランブルファイルから実行可能なアプリケーションプログラムファイルを生成し、その起動を行う処理である。より詳しくは、不可視属性が設定されたファイル「c:\Ovl\bin\AAA.ex_」から、実行可能なファイルを「c:\test\AAA.exe」を一時的に生成し、それを起動し、モニタする処理である。
【００６７】
まず、ステップＳ１００１において、実施形態における認証プログラムが起動した際の引数を解析し、取得する。ここでの例では、２つの引数「c:\test\AAA.exe」（パス付き実行可能ファイル名）、「c:\Ovl\bin\AAA.ex_」（パス付きスクランブルファイル名）の文字列を得ることになる。
【００６８】
次いで、ＣＰＵ１０１は、ステップＳ１００２にて、取得した文字列の拡張子が「exe」のパス（この場合には「c:\test」）が、ＰＣ１００にてネットワーク上に共有フォルダとして設定されているか否かを調べる。共有フォルダであるか否かの判定は、ＯＳが管理するレジストリからＳｈａｒｅｄ情報のキーを取得しチェックすることが可能である。
【００６９】
共有フォルダに設定されていると判断した場合には、ステップＳ１００３にてエラー表示し、ステップＳ１０１１で監査ログ（不図示のログファイル）に、エラー発生とその種類を示すデータを出力する。
【００７０】
拡張子「exe」のパスが共有フォルダに設定されている場合にエラー処理する理由は、スクランブルファイルから実行可能ファイルに復元した場合、一時的と言えども、ネットワーク上の他のクライアント装置から実行可能となったファイルの存在が知られる可能性があり、悪意有るユーザにコピーされる危険性があるためである。
【００７１】
さて、拡張子「exe」のパスが共有フォルダに設定されていないと判断した場合には、ステップＳ１００４に進んで、ＥＸＥファイルの復元処理を行う（詳細後述）。この結果、実行可能なファイルが「c:\test\AAA.exe」に生成されるので、処理はステップＳ１００５に進んで、そのファイルの実行をＯＳに対して実行要求し、起動させる。この結果、少なくとも「c:\test\AAA.exe」を母体とするアプリケーションプログラムがＲＡＭ１０３に読み込まれ、そのアプリケーションを利用した各種作業が可能となる。なお、実行ファイルの起動要求は、ＯＳの関数CreateProcess()を用いて実行すればよい。
【００７２】
そして、ステップＳ１００６に進んで、ＣＰＵ１０１はユーザＩＤや起動時間、起動アプリケーション名を監査ログファイルに追加書き込みを行う。
【００７３】
以上の結果、起動したアプリケーションがＲＡＭ１０３に常駐することになるので、ＣＰＵ１０１はステップＳ１００７、Ｓ１００８においてアプリケーションの実行プロセス（「AAA.exe」がＲＡＭに常駐しているか否か）を監視する。実行プロセスの監視はアプリケーションの起動等の動作においてＯＳが返すプロセスＩＤからそのプロセスの状態を監視することで実現できる。そして、注目しているアプリケーションプログラムのプロセスが終了した、すなわち、ユーザがアプリケーション「AAA.exe」を終了した場合、ステップＳ１００８に進み、復元したアプリケーションプログラムファイル「c:\test\AAA.exe」を外部メモリ１１１から削除し、ステップＳ１０１０にて監査ログにアプリケーション終了タイミングを追加出力し、本処理を終える。
【００７４】
なお、通常、実行中のアプリケーションプログラムはＯＳによって保護され、削除できない。これを利用し、定期的（例えば５秒間隔）に実行中の実行ファイルの削除要求をＯＳに対して行い、削除成功した場合にステップＳ１０１０の処理を行うようにしても構わない。この場合、実際にアプリケーションプログラムを終了したタイミングより多少遅延した段階で、アプリケーションプログラムファイルの削除が行われる可能性があるが、せいぜい数秒程度に留めることが可能であり、実質的にアプリケーションの終了時に削除することと等価であろう。
【００７５】
次にステップＳ１００４のＥＸＥファイル復元処理を図１１のフローチャートを用いて説明する。本処理は図６及び図７を用いて説明した組み替えによるファイル変換処理の逆変換処理でもある。
【００７６】
ここで、２つの引数「c:\test\AAA.exe」（パス付き実行可能ファイル名）、「c:\Ovl\bin\AAA.ex_」（パス付きスクランブルファイル名）の文字列が既に与えられている点に注意されたい。
【００７７】
まず、ステップＳ１１０１で、スクランブルファイル「c:\test\AAA.ex_」のファイルサイズをファイルのプロパティ情報から取得し、「c:\test\AAA.exe」という名前の書き込み用ファイルをオープン（確保）する。
【００７８】
次いで、ステップＳ１１０２でスクランブルファイルの先頭から所定のバイト数のデータを読み飛ばして、ステップＳ１１０３へ移行する（実施形態では、この所定バイト数として１０２４バイトとしている）。
【００７９】
ステップＳ１１０３ではＣＰＵ１０１は読み飛ばした後のデータから所定量（例、１０２４バイト）のデータをＲＡＭ１０３に読み込む。そして、ステップＳ１００４ではＣＰＵ１０１は読み込んだデータを所定量（実施形態では５１２バイト）で分割する。この例では２分割される。
【００８０】
分割後のデータを後ろの所定量（５１２バイト）のデータを、書き込み用にオープンしているファイル「c:\test\AAA.exe」に書き込み、次いで前半の所定量（５１２バイト）のデータを書き込む（ステップＳ１１０５）。
【００８１】
このステップＳ１１０３乃至１１０５の処理を、ステップＳ１１０６にて、変換元の「c:\Ovl\bin\AAA.ex_」の未読取りデータ量が１０２４バイト以下になるまで繰り返す。
【００８２】
ステップＳ１１０６で残りが所定量以下の場合には、残りのデータをＲＡＭ１０３に読み出し（ステップＳ１１０７）、その読取ったデータを書き込み用にオープンしているファイルに書き込み、そのファイルをクローズして本処理を終了する。
【００８３】
＜メンテナンス処理＞
次に、実施形態におけるメンテナンス処理について説明する。この処理は、図９のＵＩにて、管理者が自身のユーザＩＤとパスワードを入力し、「メンテナンスボタン」９４を押下したとき、ステップＳ８０６の判定で認証成功した場合の処理である。
【００８４】
このメンテナンス処理はユーザＩＤやパスワード、各ユーザの権限の情報をメンテナンスするものである。ユーザの追加、削除、パスワードの変更、ユーザ権限の設定を行うものであり、図１２や図１３で示す入力画面を用いて各種設定を行う。これらの情報はステップＳ８０５、８０６の認証処理や、監査ログに用いる情報として利用される。
【００８５】
図１２はメンテナンス処理の初期ＵＩ１２０であり、上部領域１２１に表示されるのは認証テーブルファイルの内容であり、ユーザ名、権限情報、パスワードである。いずれのユーザが、管理者（権限項目で「super」＝メンテナンス処理が可能）であり、一般ユーザであるかが判別可能にしている。
【００８６】
また、表示されたユーザ名を選択した際、そのユーザに対して次の２項目を設定可能とした。１つは、表示領域１２２における利用期間であり（０の場合には無期限）、２つ目は、表示領域１２３に示すように、入力間違いを１０回以上重ねた場合の対策である。図８のステップＳ８０７では５回に設定された例を示している。実施形態では、無対策、ユーザＩＤを入力した際に受け付け停止されていることを示すメッセージを表示する、無視（何の処理も行わない）、の３つの中から選択できるようにした。
【００８７】
図１２において、領域１２１内の「追加」ボタンを押下すると、図１３の入力画面のユーザ名等の欄が空欄状態で表示され、新規のユーザ名、パスワード、権限を設定し、登録することが可能である。また、「削除／変更」ボタンを押下した場合、領域１２１で選択されたユーザに対して編集することができる。図１２ではユーザ名「ＢＢＢ」が選択状態であることを示しているので、この状態で「削除／変更」ボタンを押下すると、図１３に示すように、ユーザ名、パスワードの変更、或いは、管理者権限を付与する等の変更が可能となる。また、「削除」ボタンを押下した場合には、そのユーザ名に関する情報が削除され、図１２に戻ることになる。「設定」ボタンが押下された場合には、変更内容を仮決定し、図１２に戻る。
【００８８】
図１２における「設定終了」ボタンが押下された場合、メンテナンス操作を最終的に認証テーブルファイルに反映させる処理を行い、本処理を終了する。「キャンセル」ボタンが押下された場合には、直前までの作業を破棄し、認証テーブルファイルへの変更を行わないようにした。
【００８９】
なお上記実施形態では、スクランブルファイルを生成するアルゴリズムとしてオリジナルのアプリケーションプログラムファイルの所定量ごとに組み替える例を説明したが、実行ファイルを暗号化することで実行不可のファイルを生成しても構わない。ただし、一般に暗号化処理（及び暗号復号処理）は、複雑な演算を必要とし、ＣＰＵにかかる負荷は大きい。従って、実行可能なファイルに変換するまでに、無視できない時間を必要とする。かかる点、上記実施形態のように、所定量毎に組み替えする場合、スクランブル及びその解除処理が単純であり、違和感の無い時間内でアプリケーションを起動でき、好適である。
【００９０】
また、既存の一般アプリケーションプログラムを実行不可形式ファイルに変換するファイル変換プログラムと実行不可形式に変換されたアプリケーションプログラムファイルについての起動とユーザメンテナンス処理を行う認証処理プログラムはそれぞれが独立して実行できる形式のプログラムではなく、ひとつのセキュリティ管理プログラムとしてそれぞれの機能を実現する部分プログラムの形で提供されても良いものである。その場合には、セキュリティ管理プログラムの起動時には不図示の選択画面等で、ファイル変換機能を実行するかあるいは認証処理機能を実行するかを操作者に選択させるなどが必要であることは言うまでもない。
【００９１】
＜第２の実施形態＞
上記実施形態では、アプリケーションプログラムファイルのセキュリティ管理に関するものであった。従って、認証成功し、アプリケーションが起動した後に作成されるデータファイルについては、他のＰＣ上に該当するアプリケーションが実行可能であれば自由に閲覧し、編集できてしまう。そこで、本第２の実施形態では、アプリケーションプログラムで作成されたデータファイルについても、スクランブル処理して他のＰＣからオープン不可のファイルにする例を説明する。
【００９２】
説明を簡単なものとするため、セキュリティを付加しようとするアプリケーションプログラムファイル、及び、そのアプリケーションプログラムが編集可能でセキュリティを付加させようとするデータファイルのパスが次のようになっているとする。
アプリケーションプログラムファイル：「c:\Test\aaa.exe」
データファイル：「d:\data\xxx.dat」
【００９３】
これら２つのファイルを第１の実施形態で説明したファイル変換プログラムを用いて、セキュリティ付加された次の２つのファイルを生成し、オリジナルの２つのファイルを削除する。
セキュリティ付加後のアプリケーションプログラムファイル：「c:\Ovl\Bin\aaa.ex_」
セキュリティ付加後のデータファイル：「c:\Ovl\Bin\xxx.da_」
【００９４】
作成されるスクランブルファイルは２つあるので、それぞれ区別する必要がある。実施形態では、アプリケーションプログラムについては文字列「-p」オプションを付加し、データファイルについて文字列「-o」オプションを付加することで区別する。
【００９５】
従って、上記の場合、次の文字列を含むショートカットファイルを作成する際には、次のような文字列を入力する（認証プログラムは第１の実施形態と同じ「c:\Ovl\Bin\PWExec.exe」とする）。
c:\Ovl\Bin\PWExec.exe "-pc:\Test\aaa.exe" "c:\Ovl\Bin\aaa.ex_" "-od:\data\xxx.dat" "c:\Ovl\Bin\xxx.da_"
つまり、認証プログラム「c:\Ovl\Bin\PWExec.exe」は４つの引数を識別できるようにする。ここで、第１、第２の引数は、上記第１の実施形態と同じ扱いになる。３つ目、４つ目の引数の文字列で、セキュリティ解除後のデータファイル、セキュリティ付加されたスクランブルデータファイルを記述する。
【００９６】
認証プログラム「c:\Ovl\Bin\PWExec.exe」が上記オプションを含む４つの文字列を取得した場合、以下の処理を行う（但し、認証に成功した場合である）。
工程１．「-p」オプションに従ってスクランブルファイル「c:\Test\aaa.ex_」から「c:\Test\aaa.exe」（実行可能アプリケーションプログラム）を生成する。
工程２．「-o」オプションに従いスクランブルファイル「d:\data\xxx.da_」から「d:\data\xxx.dat」（アプリケーションで読み書きできるデータファイル）を生成する。
工程３．実行可能なアプリケーションプログラムに、そのアプリケーションが読み書き可能なデータファイルのパス付き文字列を引数を与えて起動する。
工程４．アプリケーションプログラム（上記の場合「aaa.exe」）の終了したか否かを監視する。
工程５．アプリケーションプログラムの終了した場合、そのアプリケーションプログラムファイル「c:\Test\aaa.exe」を外部メモリ１１１より削除する。
工程６．更新後のデータファイル「d:\data\xxx.dat」から、実施形態のファイル変換プログラムを用いて「d:\data\xxx.da_」を作成する。このとき、編集前に存在していた同名のファイルに対して上書きする。
工程７．ファイル「d:\data\xxx.dat」を外部メモリ１１１から削除する。
【００９７】
なお、工程５の処理は、工程６の後や工程７で行っても構わない。また、スクランブル解除後の実行可能ファイル、編集可能ファイルのパス位置が共有フォルダに含まれる場合、スクランブル解除しないのは第１の実施形態と同様である。
【００９８】
また、ファイル変換プログラム、ユーザＩＤ＆パスワードの認証処理について第１の実施形態と同じであるものとし、図８のステップＳ８１０に代わる処理について、図１４のフローチャートに従って説明することとする。なお、以下の説明において、ＤＦＬＡＧとは、スクランブル処理されたデータファイルを復元する／しないを判定するためのフラグであり、本処理が開始される際に当たって“０”クリアされ、ＲＡＭに確保されるものである。
【００９９】
先ず、ステップＳ１４０１において、認証プログラムを実行した際の引数を解析する。引数には、先に説明したように、「-p」オプションで始まるパス付き実行プログラムファイル名、及びそのスクランブルファイル名、「-o」オプションで始まるパスつきデータファイル名及びそのスクランブルファイル名が有り得る。
【０１００】
ステップＳ１４０２では、データファイルオプションが存在するか否かを上述した「-o」の有無で判定する。データファイルオプションがあると判定した場合、ステップＳ１４２１に進み、変換先のデータファイル名のパス位置が、共有フォルダに含まれるか否かを判定する。
【０１０１】
変換先パスが共有フォルダに含まれると判断した場合には、ステップＳ１４０３にてエラー表示し、ステップＳ１４０４にて、その旨のエラー情報を監査ログファイルに書き出す。
【０１０２】
また、データファイルの変換先が共有フォルダではないと判定した場合には、ステップＳ１４０５に進んで、フラグＤＦＬＡＧに“１”をセットする。
【０１０３】
一方、ステップＳ１４０２にてデータファイルオプションがないと判定された場合、或いは、ステップＳ１４０５の処理を経た場合、ＣＰＵ１０１はステップＳ１４０６の処理を行う。ここでは、引数にアプリケーションプログラムファイルオプションが存在するか否か「-p」の有無によりを判断する。アプリケーションプログラムファイルオプションが存在しない場合には、ステップＳ１４０７にてエラー表示、ステップＳ１４０８で監査ログにエラー情報を書き出すことになる。
【０１０４】
ステップＳ１４０６にて、アプリケーションプログラムファイルオプションがあると判断した場合、処理はステップＳ１４０９に進む。ここでは、フラグＤＦＬＡＧが“１”であるか否かを判定する。
【０１０５】
ＤＦＬＡＧが“０”である場合、スクランブルデータファイルが指定されておらず、アプリケーションプログラムの起動のみが設定されていることになるから、ステップＳ１４１１に進む。一方、ＤＦＬＡＧが“１”の場合には、復元対象であるアプリケーションを読み書き可能なデータファイルに復元する必要があることを示すので、ステップＳ１４１０にてデータファイルの復元処理を行い、ステップＳ１４１１に進む。
【０１０６】
ステップＳ１４１１に処理が進むと、アプリケーションプログラムの復元処理を行う。この結果、少なくとも実行可能なアプリケーションプログラムファイルが生成され、データファイルオプションがあった場合には、復元されたデータファイルが生成されることになるので、ステップＳ１４１２にて、復元されたデータファイル名（パス付き）を引数として、復元アプリケーションプログラムの起動をＯＳに要求する。尚、フラグＤＦＬＡＧ＝０の場合、復元データファイル名は空白となるので、結果的にアプリケーション単独の起動となり、第１の実施形態と同じとなる。
【０１０７】
この後、ステップＳ１４１３にて、アプリケーションが起動された旨のメッセージを監査ログに書き出し、ステップＳ１４１４、Ｓ１４１５にて、起動要求したアプリケーションが終了するのを監視する。
【０１０８】
起動したアプリケーションプログラムが終了したと判定した場合、処理はステップＳ１４１６に進み、復元したアプリケーションプログラムファイルを削除する。そして、ステップＳ１４１７にて、フラグＤＦＬＡＧが“１”である場合には、編集後のオリジナルデータファイル（データファイルオプションで指定された変換先パス付きファイル名で示されるデータファイル）をスクランブルするため、ステップＳ１４１８にてデータ変換処理を行い、ステップＳ１４１９にてオリジナルデータファイルを削除する。そして、ステップＳ１４２０にてアプリケーションが終了した旨、及び、データファイルを編集したのであればその旨を監査ログファイルに書き出し、本処理を終了する。
【０１０９】
以上説明したように本第２の実施形態によれば、第１の実施形態の作用効果に加えて、一般のアプリケーションで作成されるデータファイルでありながら、そのデータファイルのセキュリティをも確保することも可能になる。
【０１１０】
＜第３の実施形態＞
上記第１の実施形態では、認証プログラム、パス付きスクランブルファイル名、パスつき復元プログラムファイル名をキーボードより入力する必要がある。
【０１１１】
また、アプリケーションプログラムの中には、そのプログラムファイルが存在しなければならないパスが決まっているものもあり、復元先のパス位置を示す文字列の入力に誤りは許されないものもある。
【０１１２】
そこで、本第３の実施形態では、少なくとも復元先のパス位置の入力を省略可能にする例を説明する。
【０１１３】
図５に示すように、ファイル変換しようとするアプリケーションプログラムのパス付きファイル名が決定された場合、その際のテキストボックスに記述されたファイル名を活用するものである。
【０１１４】
図１５に示すように、スクランブルファイルの先頭の１０２４バイトは、図７のそれと同じ意味である。異なる点は、その次の１０２４バイト（このサイズに限定されるものではないが、パスを記述するのに十分な容量であれば良い）に、図５のテキストボックス４１に記述された文字列を格納し、最後に適当なエンドマークを示すコードを格納すればよい。また、文字列を暗号化して格納しても構わない。
【０１１５】
結果的に、スクランブルファイルのファイルサイズは、オリジナルのアプリケーションプログラムファイルより２０４８（２Ｋ）バイト多くなるが、昨今のアプリケーションのサイズが数百ＫＢ、場合によっては数ＭＢにもなることを考慮すると微々増加で済む。
【０１１６】
また、本第３の実施形態でのショートカットに記述する文字列は、
c:\Ovl\Bin\PWExec.exe  "c:\Ovl\Bin\｛スクランブルファイル名｝"
となる。
【０１１７】
これに伴い、認証プログラム「c:\Ovl\Bin\PWExec.exe」は、引数で渡されたスクランブルファイルの先頭から１０２５バイト目以降から復元先のパスつき実行ファイル名を取得する処理が付加される点だけであるので、説明は不要であろう。
【０１１８】
＜第４の実施形態＞
第３の実施形態から更に発展させた例を第４の実施形態として説明する。
【０１１９】
本第４の実施形態では、認証プログラム「c:\Ovl\Bin\PWExec.exe」を操作する例である。ただし、オリジナルの認証プログラム「c:\Ovl\Bin\PWExec.exe」を操作するのではなく、そのコピーを操作する。
【０１２０】
図１６は第４の実施形態における認証プログラム「c:\Ovl\Bin\PWExec.exe」メモリマップを示している。後端（必ずしも後端に限らない）には、適当な文字列を格納するための予約領域を用意しておく。そして、図６のステップＳ６０９の後に、図１７の処理を行う。
【０１２１】
ステップＳ６１０では、実行プログラムを格納するパス付きファイル名を入力させる。このパス、ファイル名は管理者が任意に決定しても良い。パスについては、キーボードで入力しても良いが、ファイルブラウザを用いて所望とするドライブ、フォルダを指定し、最後にファイル名、例えば「xyz.exe」等と入力すると操作が楽である。ちょうど、アプリケーションプログラムでデータを新規に作成した際の保存するファイル名を入力する場合と同じ要領である。
【０１２２】
ステップＳ６１１では、認証プログラム「c:\Ovl\Bin\PWExec.exe」を指定されたファイル名（上記の例では「xyz.exe」）としてコピーする。この段階では、ファイル「xyz.exe」とオリジナルファイル「PWExec.exe」はファイル名が異なるだけで、中身は同じである。
【０１２３】
次いで、ステップＳ６１２では、コピー先のプログラムファイル「xyz.exe」の予約領域に、管理者が選択した一般アプリケーションプログラムファイルのパスつきファイル名、及び、パスつきスクランブルファイル名の文字列（暗号化しても構わない）を格納する。
【０１２４】
本第４の実施形態における「PWExec.exe」（xyz.exeも同様である）は次のように動作する。
【０１２５】
起動した際、認証処理を行い、その認証が成功した場合、自身の予約領域内に有意な文字列が存在する場合、格納されているのはパスつきスクランブルファイル名、パス付き一般アプリケーションプログラムファイル名であると判定し、スクランブルファイルから実行可能なファイルを復元する。後は、第１の実施形態と同様である。
【０１２６】
また、本第４の実施形態によると、第２の実施形態で示されるパス付きデータファイル名を含ませることも可能である。
【０１２７】
以上、本発明に係る第１乃至第４の実施形態を説明したが、本発明の主要部分はコンピュータプログラムで構成される。通常、コンピュータプログラムはＣＤＲＯＭ等のコンピュータ可読記憶媒体に格納され、それをコンピュータにセットしてシステムにコピー若しくはインストールすることで実行可能となるから、当然そのようなコンピュータ可読記憶媒体も本発明の範疇に含まれるのは明らかである。
【０１２８】
また、実施形態では、認証プログラムには、スクランブルプログラムファイルを復元して実行する処理と、メンテナンスに関する処理が含まれるものとしたが、これらを独立したものとしても構わない。特に、第４の実施形態の場合、認証プログラムはショートカットファイルと比較してサイズが大きいので、作成される実行プログラムサイズ（認証プログラムのコピー）を小さくするためには、メンテナンスに関するプログラムは除かれることが望ましい。
【図面の簡単な説明】
【０１２９】
【図１】実施形態における装置のブロック構成図である。
【図２】ショートカット作成中の表示画面の例を示す図である。
【図３】実施形態におけるファイル変換プログラムの処理手順を示すフローチャートである。
【図４】ファイル変換プログラムの初期ウインドウを示す図である。
【図５】図４におけるアプリケーションプログラムファイルを指定した際のウインドウを示す図である。
【図６】図３におけるファイル変換処理の詳細を示すフローチャートである。
【図７】ファイル変換の概念を説明するための図である。
【図８】実施形態における認証プログラムの処理手順を示すフローチャートである。
【図９】認証プログラムの起動時に表示される認証ウインドウの例を示す図である。
【図１０】図８における組み替え実行処理の詳細を示すフローチャートである。
【図１１】図１０のＥＸＥファイルの復元処理の詳細を示すフローチャートである。
【図１２】メンテナイス設定のウインドウを示す図である。
【図１３】ユーザの設定・変更を行う際に表示されるウインドウを示す図である。
【図１４】第２の実施形態における、図８における組み替え実行処理の詳細を示すフローチャートである。
【図１５】第３の実施形態におけるファイル変換の概念を説明するための図である。
【図１６】第４の実施形態における認証プログラムのメモリマップを示す図である。
【図１７】第４の実施形態における図６に追加される処理手順を示すフローチャートである。
【図１】
2006004087.tif 000003
【図２】
2006004087.tif 000004
【図３】
2006004087.tif 000005
【図４】
2006004087.tif 000006
【図５】
2006004087.tif 000007
【図６】
2006004087.tif 000008
【図７】
2006004087.tif 000009
【図８】
2006004087.tif 000010
【図９】
2006004087.tif 000011
【図１０】
2006004087.tif 000012
【図１１】
2006004087.tif 000013
【図１２】
2006004087.tif 000014
【図１３】
2006004087.tif 000015
【図１４】
2006004087.tif 000016
【図１５】
2006004087.tif 000017
【図１６】
2006004087.tif 000018
【図１７】
2006004087.tif 000019
【手続補正書】
【提出日】平成16年12月20日(2004.12.20)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項４
【補正方法】変更
【補正の内容】
【請求項４】
前記変換手段は、前記入力手段で入力された情報でアプリケーションプログラムファイルから所定データ量単位に読出し、読出したデータを所定数で分割し、分割データを並び替えて前記記憶装置に保存することで実行不可形式のファイルを生成し、
前記アプリケーション実行管理手段は、実行不可形式のファイルから所定データ量単位に読出し、読出したデータを所定数で分割し、分割データを前記並び替えとは逆に並び替えて前記記憶装置に保存することで実行可能なアプリケーションプログラムファイルを復元することを特徴とする請求項１乃至３のいずれか１項に記載のコンピュータプログラム管理装置。