説明

ソフトウェアの実行制御プログラム、および実行制御方法

【課題】
不正使用されにくいソフトウェアの実行環境を提供する。
【解決手段】
利用者端末から実行可能なソフトウェアの固有識別情報および利用者端末から参照可能に接続されるハードウェアの固有識別情報に基づいて認証値を生成する認証値生成部と、上記ハードウェアの記憶領域に格納された暗号値を所定の公開鍵で復号化して復号値を生成する暗号値生成部と、上記認証値および上記暗号値の照合により上記認証値および上記復号値が一致した場合にのみ上記ソフトウェアの実行制限を解除する認証部とを備える。暗号値は、ソフトウェアの固有識別情報およびハードウェアの固有識別情報を所定の秘密鍵で暗号化して生成する。認証部における認証値および復号値の照合は、ソフトウェアの実行中に複数回行なうようにしてもよい。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ソフトウェアの不正利用を防止し、適正な利用者のみ使用可能にする、固有識別情報と記憶領域を有するハードウェアを用いたソフトウェアの実行制御プログラム、および実行制御方法プログラムに関する。
【背景技術】
【0002】
情報処理装置(以下、「利用者端末」。)におけるソフトウェアの著作権の保護を考えた場合、使用を許諾した適正な利用者にのみ使用を可能にする方法の実現が期待されている。従来このような不正利用防止対策としては、パスワードを利用する方法や専用のドングルを利用する方法がとられている。
【0003】
例えば、パスワードを利用する方法はソフトウェアの起動時に各ソフトウェアのパスワードを入力しソフトウェアの動作を有効にする方法で、ソフトウェア内に持つ暗号化したパスワード情報と入力したパスワードを照合してソフトウェアの使用認証を実現している。
【0004】
また、専用のドングル(ハードウェアキー)を利用する方法は、ソフトウェア提供者が、固有のキー番号を書き込んだドングルと、そのキー番号を元に多くは共通鍵暗号方式の共通鍵で暗号化したライセンス情報をソフトウェアに内包して利用者に提供し、ドングルを利用者のPCのパラレルポート等に接続させるとともに、そのキー番号と、ライセンス情報を復号して得られるキー番号の一致をもってプログラムの使用認証する方法がとられている(例えば、特許文献1)。
【特許文献1】特開2001−175468、図1等。
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかしながら、前述したパスワードを用いる方法では、パスワードの管理に対する脆弱性から意図的あるいは偶発的な漏洩により適正な利用者以外の者に伝わりソフトウェアが不正利用されてしまう可能性がある。また後述の専用ドングルを用いる方法においては、ソフトウェア内のライセンス情報が解読されてもドングルがなければ利用することができず、より安全性が高いと言うことができるが、その利用は費用とセキュリティの要求面で高額なソフトウェアでの採用に留まっており、費用負担が少なくセキュリティの高いプログラム実行プロテクト方法が要求されている。
【0006】
したがって、本発明の目的は、より高い安全性でソフトウェアの使用を制御することができ、かつ、装置継承の利便性や少ない費用負担で導入可能な固有識別情報と記憶領域を有するソフトウェアの実行制御プログラム、および実行制御方法を提供することにある。
【課題を解決するための手段】
【0007】
前記課題を解決する本発明の第1構成の実行制御プログラムでは、利用者端末から実行可能なソフトウェアの固有識別情報および利用者端末から参照可能に接続されるハードウェアの固有識別情報に基づいて認証値を生成する認証値生成部と、上記ハードウェアの記憶領域に格納された暗号値を所定の公開鍵で復号化して復号値を生成する復号値生成部と、上記認証値および上記復号値の照合により上記ソフトウェアの実行可否を判断する認証部とを備えたことを特徴とする。
利用者端末から参照可能に接続されるハードウェアとは、利用者端末とハードウェアが双方向アクセス可能に接続された状態を意味する。上記認証値および上記復号値の照合によりソフトウェアの実行可否を判断するには、例えば、両者の値が一致した場合、両者の値が特定の関係にある場合に限ってソフトウェアの実行を許可すること等が考えられる。
公開鍵暗号化方式は、現在広く使われている、RSA、DSAを採用可能である。認証値をハッシュ値とする場合、その生成には4D5、SHA1、SHA224などのハッシュ関数fを用いることができる。ソフトウェアの実行制限としては、例えば、データ改変を伴わない閲覧や印刷の機能は維持しつつ、データ編集を行えないようにすることが考えられる。
【0008】
本発明の第2構成の実行制御プログラムでは、第1構成の上記暗号値が、上記ソフトウェアの固有識別情報および上記ハードウェアの固有識別情報に基づいて生成される認証値に所定の秘密鍵を適用して暗号化する暗号値生成プログラムから生成されることを特徴とする。
本発明の第3構成の実行制御プログラムでは、第1構成または第2構成の上記認証部における上記認証値および上記復号値の照合が、上記ソフトウェアの実行中に複数回、例えば起動時や所定時間間隔などに行われることを特徴とする。
【0009】
本発明の第4構成の実行制御方法では、利用者端末から実行可能なソフトウェアの固有識別情報および利用者端末から参照可能に接続されるハードウェアの固有識別情報に基づいて認証値を生成すると共に、上記ハードウェアの記憶領域に格納された暗号値を所定の公開鍵で復号化して復号値を生成し、上記認証値および上記復号値の照合により上記ソフトウェアの実行可否を判断することを特徴とする。
【0010】
本発明の第5構成の実行制御方法では、第4構成の上記暗号値を上記ソフトウェアの固有識別情報および上記ハードウェアの固有識別情報に基づいて生成される認証値に所定の秘密鍵を適用して暗号化により生成したことを特徴とする。
本発明の第6構成の実行制御方法では、第4構成、第5構成の上記認証値および上記復号値の照合が、上記ソフトウェアの実行中に複数回、例えば起動時や所定時間間隔などに行われることを特徴とする。
【発明の効果】
【0011】
本発明に係るソフトウェアの実行制御方法、および実行制御プログラムによれば、所定の利用者端末内でソフトウェアを実行するには、ソフトウェアの固有識別情報に加えて、ハードウェアの固有識別情報が必要となる。
特に、ハードウェアの非利用者領域に記憶させた製造企業や製造番号等を示す固有識別情報は改竄されにくい特徴を有している。
したがって、ソフトウェア提供者が提供するソフトウェアとハードウェアの固有識別情報を同時に照合できる利用者端末環境が必要となるので、ソフトウェアの不正利用を未然に防止することができる。また、所定の利用者端末内でのソフトウェアを実行中に複数回の照合を行うことにより、ハードウェアを外した状態でソフトウェアの使用を制限することができる。
【発明を実施するための最良の形態】
【0012】
本発明の一実施形態について図面を参照して説明する。図1は本実施例における暗号値生成プログラムの説明図、図2は本実施例における暗号値生成プログラムのフロー図、図3は本実施例における実行制御プログラムの説明図、図4は本実施例における実行制御方法のフロー図である。
【実施例】
【0013】
[ソフトウェアの提供者側]
ソフトウェア3の固有識別情報30とハードウェア4の固有識別情報40から暗号値Eを生成し、ハードウェア4の記憶領域に暗号値Eを記憶させるまでについて説明する。
また、ソフトウェア3はハードウェア4の利用者(ユーザ)領域に記憶することも可能である。ハードウェア4における利用者領域とは、予め利用者用の記憶領域として確保された双方向にアクセス可能な記憶領域である。
ソフトウェア3に対応する情報を記憶させた利用者に提供するまでを説明する。
まず、ソフトウェア3の提供者のみに秘密にしておく公開鍵暗号方式による秘密鍵Ksと、秘密鍵Ksに対応する公開鍵Kpを作成すると共に、ハッシュ函数を用意する。
【0014】
ハードウェア4はその非利用者領域に固有識別情報40を記憶させているが、上記ソフトウェア3に対応する情報として、利用者領域である記憶領域に暗号値Eを記憶させるため、暗号値生成プログラム1が必要となる。ハードウェア4における非利用者領域とは、予め利用者用の記憶領域として確保されたものではないハードウェア情報等の記憶領域である。
暗号値生成プログラム1は、認証値生成部10、暗号値生成部11とから構成している。
認証値生成部10は、ソフトウェア3の固有識別情報30およびハードウェア4の固有識別情報40から、ハッシュ関数fを用いてハッシュ値としての認証値H1を生成させるものである。
暗号値生成部11は、秘密鍵Ksを用いて認証値H1から暗号値Eを生成し、ハードウェア4の記憶領域に暗号値Eを記憶させるものである。
【0015】
[ソフトウェアの利用者側]
ハードウェア4を接続した利用者端末(図示省略)におけるソフトウェア3の実行について説明する。
利用者端末の入出力ポートに接続したハードウェア4は、非利用者領域に記憶させた製造企業や製造番号等を示す固有識別情報30および利用者領域である記憶領域を有しており、その記憶領域には暗号値生成プログラム1に基づいて生成した暗号値Eを記憶している。利用者端末に格納されたソフトウェア3は、シリアル番号等の固有識別情報30を有している。
【0016】
ソフトウェア3の機能の一部として機能する本実施例の実行制御プログラム2は、認証値生成部20、復号値生成部21、認証部22とから構成している。
認証値生成部20は、ソフトウェア3の固有識別情報30およびハードウェア4の固有識別情報40から、ハッシュ関数fを用いてハッシュ値としての認証値H2を生成させるものである。
復号値生成部21は、公開鍵Kpを用いてハードウェア4の記憶領域に記憶させた暗号値Eから復号値Dを生成させるものである。
認証部22は、認証値H2と復号値Dを照合して、ソフトウェア3の実行可否を判断する。本実施例の認証部22では認証値H2と復号値Dの両者が一致したのみソフトウェア3の実行を許可し、両者が一致しない場合には実行環境を制限する。実行環境の制限とは、ソフトウェア3の一部機能のみを使用可能に制限するなどがある。
また、認証部22における照合は、ソフトウェア3の実行中に定期的に行うようにしてもよい。
【図面の簡単な説明】
【0017】
【図1】本実施例における暗号値生成プログラムの説明図である。
【図2】本実施例における暗号値生成プログラムのフロー図である。
【図3】本実施例における実行制御プログラムの説明図である。
【図4】本実施例における実行制御方法のフロー図である。
【符号の説明】
【0018】
1 暗号値生成プログラム
10 認証値生成部
11 暗号値生成部
2 実行制御プログラム
20 認証値生成部
21 復号値生成部
22 認証部
3 ソフトウェア
30 固有識別情報
4 ハードウェア
40 固有識別情報
D 復号値
E 暗号値
f ハッシュ関数
H1 認証値(暗号値生成プログラムにおける)
H2 認証値(実行制御プログラムにおける)
Kp 公開鍵
Ks 秘密鍵

【特許請求の範囲】
【請求項1】
利用者端末から実行可能なソフトウェアの固有識別情報および利用者端末から参照可能に接続されるハードウェアの固有識別情報に基づいて認証値を生成する認証値生成部と、上記ハードウェアの記憶領域に格納された暗号値を所定の公開鍵で復号化して復号値を生成する復号値生成部と、上記認証値および上記復号値の照合により上記ソフトウェアの実行可否を判断する認証部とを備えたことを特徴とするソフトウェアの実行制御プログラム。
【請求項2】
上記暗号値は、上記ソフトウェアの固有識別情報および上記ハードウェアの固有識別情報に基づいて生成される認証値に所定の秘密鍵を適用して暗号化する暗号値生成プログラムから生成されることを特徴とする請求項1記載のソフトウェアの実行制御プログラム。
【請求項3】
上記認証部における上記認証値および上記復号値の照合が、上記ソフトウェアの実行中に複数回行われることを特徴とする請求項1または2記載のソフトウェアの実行制御プログラム。
【請求項4】
利用者端末から実行可能なソフトウェアの固有識別情報および利用者端末から参照可能に接続されるハードウェアの固有識別情報に基づいて認証値を生成すると共に、上記ハードウェアの記憶領域に格納された暗号値を所定の公開鍵で復号化して復号値を生成し、上記認証値および上記復号値の照合により上記ソフトウェアの実行可否を判断することを特徴とするソフトウェアの実行制御方法。
【請求項5】
上記暗号値は、上記ソフトウェアの固有識別情報および上記ハードウェアの固有識別情報に基づいて生成される認証値に所定の秘密鍵を適用して暗号化により生成したことを特徴とする請求項4記載のソフトウェアの実行制御方法。
【請求項6】
上記認証値および上記復号値の照合が、上記ソフトウェアの実行中に複数回行われることを特徴とする請求項4または5記載のソフトウェアの実行制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate


【公開番号】特開2008−210324(P2008−210324A)
【公開日】平成20年9月11日(2008.9.11)
【国際特許分類】
【出願番号】特願2007−48636(P2007−48636)
【出願日】平成19年2月28日(2007.2.28)
【出願人】(306044711)株式会社シンク (1)
【Fターム(参考)】