(57)【要約】【課題】スタンドアロンの環境において、目的とするアプリケーションソフトウェアの実行を制御する。【解決手段】カレンダクロックから得られる、その日の日付を示す文字列と、内部で保持している固有値文字列とを組み合わせ、ハッシュ関数にてハッシュ文字列を生成する。これを入力された文字列と比較して、一致したらアプリケーションソフトウェアの本体部分を実行する。一致しなければ本体部分を実行せずに終了する。【選択図】図４
2008102840.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
文字列よりなる固有値と、
日付文字列発生部と、
前記固有値と、前記日付文字列発生部から得られる日付文字列とを組み合わせて、所定の文字列を生成するパスワード生成部と、
入力文字列と前記パスワード生成部から得られる文字列とを照合し、一致したときに所定のプログラムの実行を行う一致判定部と
を実現させることを特徴とする、ソフトウェア実行制御プログラム。
【請求項２】
コンピュータに、
入力文字列から期間を抽出する期間抽出部と、
文字列よりなる固有値と、
日付文字列発生部と、
前記固有値と、前記日付文字列発生部から得られる日付文字列と、前記期間抽出部から得られる期間文字列を組み合わせて、所定の文字列を生成するパスワード生成部と、
入力文字列の全体或は一部と前記パスワード生成部から得られる文字列とを照合し、一致したときに所定のプログラムの実行を行う一致判定部と
を実現させることを特徴とする、ソフトウェア実行制御プログラム。
【請求項３】
パスワードの入力を得るためのユーザインターフェースを表示するステップと、
内部に保持している固有値文字列とカレンダクロックから得られる日付文字列から所定のアルゴリズムにてパスワードを生成するステップと、
前記入力されたパスワードと、前記生成されたパスワードとを照合して、それらパスワードの文字列が一致したときに、目的とするプログラムの実行を行うステップと
よりなることを特徴とする、ソフトウェア実行制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェアの実行を制御する方法及びそのプログラムに関する。
より詳細には、ネットワーク等の資源を用いずに、簡単に、目的とするプログラムの、期間を限定した実行制御を実現する方法、またそのプログラムに関する。
【背景技術】
【０００２】
ある種のプログラムには、むやみやたらにユーザに実行されると困る類のものがある。
例えば、ＯＡシステムサービスにおいて、顧客のパソコンで何らかの異常が生じたときに、ＯＳのシステムレジストリの一部や、ウィルスチェッカの実行結果のログ等を抜粋する必要が生じることがある。このような作業は、システムサービス担当者が顧客を直接訪問し、上述の作業を行う。
しかし、顧客の数が多くなれば、このような訪問対応は限界がある。
そこで、上述のような作業を顧客自身に行わせるツールを開発し、顧客のパソコンにインストールしておく。
顧客は必要が生じた、つまり使用しているパソコンに何らかの障害が生じた際に、当該ツールを実行する。
【特許文献１】特開２００３−２１６８７２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
前述の調査ツールはその性質上、みだりに実行をすべきものではなく、本来ならシステムサービス担当者が自ら顧客を訪問し、実行をすべきである。しかし、顧客のモラルだけに依存するのは危険である。
【０００４】
特許文献１には、プログラムの実行制御を行う仕組みが開示されている。しかしながら、特許文献１の技術はネットワークを通じたサーバへのアクセスを必要とする。
【０００５】
本発明はかかる点に鑑みてなされたものであり、ネットワーク等の資源を用いずに、簡単に、目的とするプログラムの、期間を限定した実行制御を実現する方法、またそのプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するための本発明は、文字列よりなる固有値と、日付文字列発生部から得られる日付文字列とを組み合わせて、所定のパスワード文字列を生成する。一方、入力された文字列と先に生成したパスワードとを照合し、一致したときに所定のプログラムの実行を行うものである。
【０００７】
通常、パスワードは恒久的に対象へのアクセス等を許可するものである。
一方、その日一日だけ実行を許可する場合は、実行を要する度毎に毎回パスワードを生成する必要がある。
そこで発明者は、日付文字列と所定の文字列とを組み合わせて、ハッシュ関数による一義的な文字列生成を行い、これをパスワードとすることを思いついた。
【発明の効果】
【０００８】
本発明により、所定期間に限って実行を許可する、パスワードプロテクトを施したプログラム、及びその方法を提供できる。
【発明を実施するための最良の形態】
【０００９】
以下、本発明の実施の形態を、図１〜図８を参照して説明する。
【００１０】
図１（ａ）及び（ｂ）は、本発明の第一の実施形態にかかる実行制御プログラムを使用した、実際の運用形態を模式的に説明する図である。
図１（ａ）はパソコンを利用する顧客である。顧客１０２はパソコン１０３内の調査ツールを実行する。すると、ディスプレイ１０４には実行制御プログラムを組み込んでいる調査ツールを実行した状態のウィンドウ１０５が表示される。このウィンドウ１０５が図２（ａ）に示すＧＵＩ（Graphical User Interface）である。
顧客１０２は調査ツールを本稼動させるためのパスワードを聞き出すべく、パソコン１０３を利用する際の保守契約を締結している会社のシステムサービス担当者１１２に電話をする。システムサービス担当者１１２は図１（ｂ）に示すように、顧客１０２からの問い合わせに対し、パスワード生成ツールを起動して、顧客１０２が調査ツールを一日だけ稼動できるためのパスワードを生成し、これを電話を通じて顧客１０２に教える。
【００１１】
調査ツールは、顧客１０２のパソコン１０３で何らかの異常が生じたときに、顧客１０２が実行し、その結果をシステムサービス担当者１１２へメールで送信する機能を備えている。
顧客１０２のパソコン１０３ではマイクロソフト社のＷｉｎｄｏｗｓ（登録商標）が稼動している。調査ツールは、システムレジストリの一部を抜粋したり、ウィルスチェッカの実行結果のログ等を抜粋したりして、それら情報を圧縮し、これを添付ファイルとしてシステムサービス担当者１１２へメール送信する。
調査ツールはその性質上、みだりに実行をすべきものではなく、本来ならシステムサービス担当者１１２が自ら顧客１０２を訪問し、実行をすべきである。しかし、時間的あるいは場所的な制約により、訪問サービスが困難である場合や、また効率面を考慮して、顧客１０２に限定的な実行のみを許可する場合がある。このような限定的な実行のために、その日一日だけ有効なパスワードによる実行制御を行わせることが必要とされる。
【００１２】
図２（ａ）及び（ｂ）は、本発明の実施形態にかかる実行制御プログラムを組み込んでいる調査ツールの実行画面を示す図である。
図２（ａ）は調査ツールを実行した直後の状態の表示画面を示す。
ウィンドウ１０５にはパスワード入力欄２０２と「ＯＫ」ボタン２０３と「Ｃａｎｃｅｌ」ボタン２０４が設けられている。
パスワード入力欄２０２にシステムサービス担当者１１２から聞きだしたパスワードを入力し、「ＯＫ」ボタン２０３を押す。すると、パスワードが一致していれば、図２（ｂ）に示すように、調査ツールが実行可能になる。もし、パスワードが一致しないと、図２（ｂ）の画面は表示されず、そのまま当該のプログラムは終了してしまう。
【００１３】
図３はパスワード生成ツールの表示画面を示す図である。
パスワード生成ツールを実行すると表示されるウィンドウ１１５には、固有値入力欄３０２と、日付入力欄３０３が設けられている。これらを入力した後「パスワード計算」ボタン３０４を押すと、パスワード表示欄３０５にパスワードが表示される。
【００１４】
図４（ａ）及び（ｂ）は、実行制御プログラムを含む調査ツールと、パスワード生成ツールの機能ブロック図を示す。
図４（ａ）は調査ツールのブロック図である。調査ツール４０１の本体はアプリケーションソフトウェア４０２に集約されている。本実施形態の主要部分はアプリケーションソフトウェア４０２の実行制御を行う、実行制御プログラム４０３である。
入力部４０４はパソコン１０３に接続されるキーボード及びポインティングデバイスである。
パスワード入力欄２０２は初期画面のＧＵＩに設けられる入力欄である。この欄に入力されたパスワードは、パスワード生成部４０５から生成されたパスワードと、一致判定部４０６にて文字列の一致・不一致が判定される。
一致判定部４０６は、入力された二つのパスワードが一致したら、アプリケーションソフトウェア４０２を実行する。
パスワード生成部４０５は、プログラム内部に埋め込まれている固有値４０７と、パソコンに内蔵されているカレンダクロック４０８から得られる日付文字列を基に、パスワードを生成する。つまり、日毎に異なるパスワードが生成されることとなる。
【００１５】
図４（ｂ）はパスワード生成ツールのブロック図である。パスワード生成ツール４２１の実体は、パスワード生成部４２２と、これを稼動させるためのＧＵＩよりなる。
入力部４２３はパソコン１１３に接続されるキーボード及びポインティングデバイスである。
固有値入力欄３０２と日付入力欄３０３は実行画面のＧＵＩに設けられる入力欄である。
パスワード生成部４２２は、固有値入力欄３０２に入力された固有値４０７の文字列と、日付入力欄３０３に入力された日付文字列を基に、パスワードを生成する。
ここで、図４（ａ）のパスワード生成部４０５と図４（ｂ）のパスワード生成部４２２は、全く同じアルゴリズムにて構成されている。一例としては、ハッシュ関数である。
【００１６】
システムサービス担当者１１２は顧客１０２のパソコン１０３にインストールされている調査ツール４０１の固有値４０７を予め知っている。つまり、顧客１０２が電話で問い合わせれば、当該固有値４０７をパスワード生成ツール４２１の固有値入力欄３０２に入力し、問い合わせの日を日付入力欄３０３に入力する。すると、パスワード表示部に当該顧客１０２が欲する、その日一日だけ実行可能なパスワードが生成されるのである。
【００１７】
図５は、実行制御プログラムのフローチャートである。
プログラムを起動すると（Ｓ５０１）、パスワード入力画面を表示させ、ユーザからパスワードの入力を待つ（Ｓ５０２）。
ユーザがパスワードを入力し、「ＯＫ」ボタン２０３を押すと、パスワード生成部４０５はカレンダクロック４０８から今日の日付を取得する（Ｓ５０３）。そして、内部に保持されている固有値４０７の文字列と、当該日付の文字列を基に、パスワード生成部４０５の実体であるハッシュ関数にて、ハッシュ文字列を生成する（Ｓ５０４）。
生成したハッシュ文字列と、入力されたパスワード文字列は、一致判定部４０６にて一致・不一致が判定される（Ｓ５０５）。その結果、一致していれば、アプリケーションプログラムの本体である調査ツール４０１を実行する（Ｓ５０６）。一致していなければ、アプリケーションプログラムを終了する（Ｓ５０７）。
【００１８】
上述の第一実施形態では、その日一日だけ有効なパスワードによる実行制御を行わせる、実行制御プログラムを組み込んだ調査ツールを示した。
本実施形態による実行制御プログラムは、時間的あるいは場所的な制約により、訪問サービスによる調査ツールの実行が困難である場合や、また効率面を考慮して、顧客に調査ツールの限定的な実行を許可する場合に、限定的に調査ツールを実行させるためのものである。
すなわち、この実行制御プログラムによれば、調査ツールを顧客に限定的に実行させることにより、訪問サービスの手間を軽減し、顧客に迅速なサービスを提供することができる。
また、万が一パスワードが漏洩しても、当該パスワードはその日一日しか使えない。つまり、漏洩してもその漏洩の危機が及ぶのはたった一日だけである。つまり、パスワード漏洩に伴うセキュリティ面における危機は一日だけに限定されるので、被害が最小限で済むことが期待できる。
【００１９】
図６は、本発明の第二の実施形態にかかるパスワード生成ツールの表示画面の図である。
第二の実施形態にかかるソフトウェアの表示画面は、図２（ａ）と等しいので省略する。
本実施形態は、任意の期間におけるソフトウェアの実行制御を実現するものである。
図６において、固有値入力欄３０２、日付入力欄３０３、パスワード表示欄３０５、「パスワード計算」ボタン３０４及び「終了」ボタン３０６は、図３の表示画面と等しい。但し、日付入力欄３０３に入力する日付は、顧客１０２が実行するアプリケーションプログラムの実行を許可する期間の最初の日付を入力する。
期間入力欄６０３は、顧客１０２が実行するアプリケーションプログラムの実行を許可する期間の日数を入力する。
図６のパスワード表示欄３０５には、一例として「２ＥＡ９６８＄２０」というパスワード文字列が表示されている。ここで、「＄（Dollar: ダラー、ドル記号）」はセパレータである。セパレータは文字列を区切る区切り子である。パスワード文字列の実体に相当するハッシュ文字列は、＄の前の「２ＥＡ９６８」である。＄の後ろの「２０」は、日数である。この例の場合、パスワード文字列は＄を除く文字で構成され、日数は数字で表される。＄を除く文字の一例としては、１６進数を表す文字である、０〜９及びＡ〜Ｆが考えられる。
【００２０】
図７（ａ）及び（ｂ）は、実行制御プログラムを含むアプリケーションプログラムと、パスワード生成ツールの機能ブロック図を示す。図７（ａ）及び（ｂ）のうち、図４（ａ）及び（ｂ）と機能が等しい箇所は、同じ番号を付して、その説明を省略する。
図７（ａ）において、期間抽出部７０４は、パスワード入力欄２０２から得られたパスワード文字列から、文字列のセパレータを介して期間を示す部分の文字列を抽出する。
パスワード生成部７０５は、固有値４０７から得られる固有値文字列と、カレンダクロック４０８から得られるその日の日付文字列と、期間抽出部７０４から得られる期間文字列を基に、ハッシュ関数にてハッシュ文字列を生成する。
一致判定部７０６は図４（ａ）と機能的には等しいが、パスワード生成部７０５と協調して、指定期間の日数分のループ処理を行う。この動作の詳細は図８のフローチャートにて後述する。
図７（ｂ）では、ＧＵＩには固有値入力欄３０２と、日付入力欄３０３と、期間入力欄６０３の三つが設けられている。
【００２１】
図８は、図７（ａ）に示す実行制御プログラムのフローチャートである。
プログラムを起動すると（Ｓ８０１）、パスワード入力画面を表示させ、ユーザからパスワードの入力を待つ（Ｓ８０２）。
ユーザがパスワードを入力し、「ＯＫ」ボタンを押すと、パスワード生成部７０５はカレンダクロック４０８から今日の日付を取得する（Ｓ８０３）。
次に、期間抽出部７０４はパスワード文字列をセパレータで分割し、ハッシュ文字列と期間を得る。ハッシュ文字列はパスワードの本体である。期間はアプリケーションプログラムの実行を許可される期間である。期間は変数Ｎに代入される（Ｓ８０４）。
そして、カウンタ変数ｉに初期値１を設定する（Ｓ８０５）。
これ以降はループ処理である。
先ず、パスワード生成部７０５は、内部に保持されている固有値の文字列と、当該日付の文字列と、期間の文字列を基に、パスワード生成部７０５の実体であるハッシュ関数にて、ハッシュ文字列を生成する（Ｓ８０６）。
パスワード生成部７０５にて生成されたハッシュ文字列と、パスワード入力欄２０２にて入力され、期間抽出部７０４にてセパレータから分離されたパスワード文字列は、一致判定部７０６にて一致・不一致を判定される（Ｓ８０７）。その結果、一致していれば、アプリケーションプログラムの本体である調査ツールを実行する（Ｓ８０８）。
一致していなければ、次に日付文字列を一日デクリメントする（Ｓ８０９）。具体的には、日付文字列を一旦日付のデータに変換した後、一日デクリメントして、再び文字列に変換する。例えば、「２００６１０１０」という日付文字列であれば、「２００６１００９」にデクリメントする。
次に、カウンタ変数ｉをインクリメントする（Ｓ８１０）。そして、期間Ｎと比較して（Ｓ８１１）、期間を超えていなければ、再び「固有値の文字列」＋「デクリメントした日付の文字列」＋「期間の文字列」を基に、ハッシュ文字列を生成する（Ｓ８０６）。
こうして、期間Ｎの間にハッシュ文字列の一致があればアプリケーションを起動し、一致がなければアプリケーションは終了する（Ｓ８１２）。
【００２２】
第二の実施形態では、指定した期間における実行を制御できる。この機能により、任意の期間内の実行をユーザに許可することができる。本実施形態は特に、シェアウェア等、ソフトウェアに対する金額の支払いに応じて実行可能期間を設定するようなプログラムに有効である。
なお、ハッシュ文字列の生成処理に期間を含めたのは、元の文字列に期間を含めないと、任意の期間を設定して実行制御を回避される可能性があるためである。
【００２３】
本実施形態には、以下のような応用例が考えられる。
（１）第二の実施形態では日数をベースとした使用可能期間を定めていたが、これを分単位等の時間で設定することもできる。
（２）暗号による実行制御プログラムをどのように実装するかは様々な方法が考えられる。
ソースコードベースでプログラム本体と共にコーディングする方法が一番簡単である。
これ以外に、外部ライブラリとして実装することも可能である。
また、シェルの一種として実装し、実効制御の対象となるプログラムの実行ファイルを内包する実装形態も考えられる。
外部ライブラリ形式等の場合、ライブラリの差し替え作業にて、ハッシュアルゴリズムを後から変更したりすることもできる。
（３）固有値の実装も様々な形態が考えられる。
ソースコード内に定数として定義したり、外部のファイルやレジストリに記録したり、様々な方法がある。
固有値を外部に保持させることで、セキュリティ等の必要に応じて固有値を変更することもできる。
（４）調査ツール４０１において、固有値４０７を複数持たせて、夫々の固有値に対応して、アプリケーションソフトウェア４０２で利用できる機能を制限することが考えられる。
一例としては、固有値Ａで実行許可判定が出た場合は、アプリケーションソフトウェア４０２の全ての機能を利用できるが、固有値Ｂで実行許可判定が出た場合は、アプリケーションソフトウェア４０２の一部の機能しか使えないように実装することができる。この技術思想は、アプリケーションプログラム７０１においても同様に適用できる。
【００２４】
本実施形態においては、ネットワーク等とは関係なく、独立したプログラム自体に、パスワードによる期間を指定した実行制御を実現できる。
【００２５】
以上、本発明の実施形態例について説明したが、本発明は上記実施形態例に限定されるものではなく、特許請求の範囲に記載した本発明の要旨を逸脱しない限りにおいて、他の変形例、応用例を含むことは言うまでもない。
【図面の簡単な説明】
【００２６】
【図１】本発明の第一の実施形態にかかる実行制御プログラムを使用した、実際の運用形態を模式的に説明する図である。
【図２】本発明の実施形態にかかる実行制御プログラムを組み込んでいる調査ツールの実行画面を示す図である。
【図３】パスワード生成ツールの表示画面を示す図である。
【図４】実行制御プログラムを含む調査ツールと、パスワード生成ツールの機能ブロック図である。
【図５】実行制御プログラムのフローチャートである。
【図６】本発明の第二の実施形態にかかるパスワード生成ツールの表示画面の図である。
【図７】実行制御プログラムを含むアプリケーションプログラムと、パスワード生成ツールの機能ブロック図を示す。
【図８】実行制御プログラムのフローチャートである。
【符号の説明】
【００２７】
１０２…顧客、１０３…パソコン、１０４…ディスプレイ、１０５…ウィンドウ、１１２…システムサービス担当者、２０２…パスワード入力欄、２０３…「ＯＫ」ボタン、２０４…「Ｃａｎｃｅｌ」ボタン、３０２…固有値入力欄、３０３…日付入力欄、３０４…「パスワード計算」ボタン、３０５…パスワード表示欄、４０１…調査ツール、４０２…アプリケーションソフトウェア、４０３…実行制御プログラム、４０４…入力部、４０５…パスワード生成部、４０６…一致判定部、４０７…固有値、４０８…カレンダクロック、４２１…パスワード生成ツール、４２２…パスワード生成部、４２３…入力部
【図１】
2008102840.tif 000003
【図２】
2008102840.tif 000004
【図３】
2008102840.tif 000005
【図４】
2008102840.tif 000006
【図５】
2008102840.tif 000007
【図６】
2008102840.tif 000008
【図７】
2008102840.tif 000009
【図８】
2008102840.tif 000010