(57)【要約】【課題】  不正使用されにくいソフトウェアの実行環境を提供する。【解決手段】  利用者端末から実行可能なソフトウェアの固有識別情報および利用者端末から参照可能に接続されるハードウェアの固有識別情報に基づいて認証値を生成する認証値生成部と、上記ハードウェアの記憶領域に格納された暗号値を所定の公開鍵で復号化して復号値を生成する暗号値生成部と、上記認証値および上記暗号値の照合により上記認証値および上記復号値が一致した場合にのみ上記ソフトウェアの実行制限を解除する認証部とを備える。暗号値は、ソフトウェアの固有識別情報およびハードウェアの固有識別情報を所定の秘密鍵で暗号化して生成する。認証部における認証値および復号値の照合は、ソフトウェアの実行中に複数回行なうようにしてもよい。【選択図】図３
2008210324.tif 000002
【特許請求の範囲】
【請求項１】
利用者端末から実行可能なソフトウェアの固有識別情報および利用者端末から参照可能に接続されるハードウェアの固有識別情報に基づいて認証値を生成する認証値生成部と、上記ハードウェアの記憶領域に格納された暗号値を所定の公開鍵で復号化して復号値を生成する復号値生成部と、上記認証値および上記復号値の照合により上記ソフトウェアの実行可否を判断する認証部とを備えたことを特徴とするソフトウェアの実行制御プログラム。
【請求項２】
上記暗号値は、上記ソフトウェアの固有識別情報および上記ハードウェアの固有識別情報に基づいて生成される認証値に所定の秘密鍵を適用して暗号化する暗号値生成プログラムから生成されることを特徴とする請求項１記載のソフトウェアの実行制御プログラム。
【請求項３】
上記認証部における上記認証値および上記復号値の照合が、上記ソフトウェアの実行中に複数回行われることを特徴とする請求項１または２記載のソフトウェアの実行制御プログラム。
【請求項４】
利用者端末から実行可能なソフトウェアの固有識別情報および利用者端末から参照可能に接続されるハードウェアの固有識別情報に基づいて認証値を生成すると共に、上記ハードウェアの記憶領域に格納された暗号値を所定の公開鍵で復号化して復号値を生成し、上記認証値および上記復号値の照合により上記ソフトウェアの実行可否を判断することを特徴とするソフトウェアの実行制御方法。
【請求項５】
上記暗号値は、上記ソフトウェアの固有識別情報および上記ハードウェアの固有識別情報に基づいて生成される認証値に所定の秘密鍵を適用して暗号化により生成したことを特徴とする請求項４記載のソフトウェアの実行制御方法。
【請求項６】
上記認証値および上記復号値の照合が、上記ソフトウェアの実行中に複数回行われることを特徴とする請求項４または５記載のソフトウェアの実行制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェアの不正利用を防止し、適正な利用者のみ使用可能にする、固有識別情報と記憶領域を有するハードウェアを用いたソフトウェアの実行制御プログラム、および実行制御方法プログラムに関する。
【背景技術】
【０００２】
情報処理装置（以下、「利用者端末」。）におけるソフトウェアの著作権の保護を考えた場合、使用を許諾した適正な利用者にのみ使用を可能にする方法の実現が期待されている。従来このような不正利用防止対策としては、パスワードを利用する方法や専用のドングルを利用する方法がとられている。
【０００３】
例えば、パスワードを利用する方法はソフトウェアの起動時に各ソフトウェアのパスワードを入力しソフトウェアの動作を有効にする方法で、ソフトウェア内に持つ暗号化したパスワード情報と入力したパスワードを照合してソフトウェアの使用認証を実現している。
【０００４】
また、専用のドングル（ハードウェアキー）を利用する方法は、ソフトウェア提供者が、固有のキー番号を書き込んだドングルと、そのキー番号を元に多くは共通鍵暗号方式の共通鍵で暗号化したライセンス情報をソフトウェアに内包して利用者に提供し、ドングルを利用者のＰＣのパラレルポート等に接続させるとともに、そのキー番号と、ライセンス情報を復号して得られるキー番号の一致をもってプログラムの使用認証する方法がとられている（例えば、特許文献１）。
【特許文献１】特開２００１−１７５４６８、図１等。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、前述したパスワードを用いる方法では、パスワードの管理に対する脆弱性から意図的あるいは偶発的な漏洩により適正な利用者以外の者に伝わりソフトウェアが不正利用されてしまう可能性がある。また後述の専用ドングルを用いる方法においては、ソフトウェア内のライセンス情報が解読されてもドングルがなければ利用することができず、より安全性が高いと言うことができるが、その利用は費用とセキュリティの要求面で高額なソフトウェアでの採用に留まっており、費用負担が少なくセキュリティの高いプログラム実行プロテクト方法が要求されている。
【０００６】
したがって、本発明の目的は、より高い安全性でソフトウェアの使用を制御することができ、かつ、装置継承の利便性や少ない費用負担で導入可能な固有識別情報と記憶領域を有するソフトウェアの実行制御プログラム、および実行制御方法を提供することにある。
【課題を解決するための手段】
【０００７】
前記課題を解決する本発明の第１構成の実行制御プログラムでは、利用者端末から実行可能なソフトウェアの固有識別情報および利用者端末から参照可能に接続されるハードウェアの固有識別情報に基づいて認証値を生成する認証値生成部と、上記ハードウェアの記憶領域に格納された暗号値を所定の公開鍵で復号化して復号値を生成する復号値生成部と、上記認証値および上記復号値の照合により上記ソフトウェアの実行可否を判断する認証部とを備えたことを特徴とする。
利用者端末から参照可能に接続されるハードウェアとは、利用者端末とハードウェアが双方向アクセス可能に接続された状態を意味する。上記認証値および上記復号値の照合によりソフトウェアの実行可否を判断するには、例えば、両者の値が一致した場合、両者の値が特定の関係にある場合に限ってソフトウェアの実行を許可すること等が考えられる。
公開鍵暗号化方式は、現在広く使われている、ＲＳＡ、ＤＳＡを採用可能である。認証値をハッシュ値とする場合、その生成には４Ｄ５、ＳＨＡ１、ＳＨＡ２２４などのハッシュ関数ｆを用いることができる。ソフトウェアの実行制限としては、例えば、データ改変を伴わない閲覧や印刷の機能は維持しつつ、データ編集を行えないようにすることが考えられる。
【０００８】
本発明の第２構成の実行制御プログラムでは、第１構成の上記暗号値が、上記ソフトウェアの固有識別情報および上記ハードウェアの固有識別情報に基づいて生成される認証値に所定の秘密鍵を適用して暗号化する暗号値生成プログラムから生成されることを特徴とする。
本発明の第３構成の実行制御プログラムでは、第１構成または第２構成の上記認証部における上記認証値および上記復号値の照合が、上記ソフトウェアの実行中に複数回、例えば起動時や所定時間間隔などに行われることを特徴とする。
【０００９】
本発明の第４構成の実行制御方法では、利用者端末から実行可能なソフトウェアの固有識別情報および利用者端末から参照可能に接続されるハードウェアの固有識別情報に基づいて認証値を生成すると共に、上記ハードウェアの記憶領域に格納された暗号値を所定の公開鍵で復号化して復号値を生成し、上記認証値および上記復号値の照合により上記ソフトウェアの実行可否を判断することを特徴とする。
【００１０】
本発明の第５構成の実行制御方法では、第４構成の上記暗号値を上記ソフトウェアの固有識別情報および上記ハードウェアの固有識別情報に基づいて生成される認証値に所定の秘密鍵を適用して暗号化により生成したことを特徴とする。
本発明の第６構成の実行制御方法では、第４構成、第５構成の上記認証値および上記復号値の照合が、上記ソフトウェアの実行中に複数回、例えば起動時や所定時間間隔などに行われることを特徴とする。
【発明の効果】
【００１１】
本発明に係るソフトウェアの実行制御方法、および実行制御プログラムによれば、所定の利用者端末内でソフトウェアを実行するには、ソフトウェアの固有識別情報に加えて、ハードウェアの固有識別情報が必要となる。
特に、ハードウェアの非利用者領域に記憶させた製造企業や製造番号等を示す固有識別情報は改竄されにくい特徴を有している。
したがって、ソフトウェア提供者が提供するソフトウェアとハードウェアの固有識別情報を同時に照合できる利用者端末環境が必要となるので、ソフトウェアの不正利用を未然に防止することができる。また、所定の利用者端末内でのソフトウェアを実行中に複数回の照合を行うことにより、ハードウェアを外した状態でソフトウェアの使用を制限することができる。
【発明を実施するための最良の形態】
【００１２】
本発明の一実施形態について図面を参照して説明する。図１は本実施例における暗号値生成プログラムの説明図、図２は本実施例における暗号値生成プログラムのフロー図、図３は本実施例における実行制御プログラムの説明図、図４は本実施例における実行制御方法のフロー図である。
【実施例】
【００１３】
［ソフトウェアの提供者側］
ソフトウェア３の固有識別情報３０とハードウェア４の固有識別情報４０から暗号値Ｅを生成し、ハードウェア４の記憶領域に暗号値Ｅを記憶させるまでについて説明する。
また、ソフトウェア３はハードウェア４の利用者（ユーザ）領域に記憶することも可能である。ハードウェア４における利用者領域とは、予め利用者用の記憶領域として確保された双方向にアクセス可能な記憶領域である。
ソフトウェア３に対応する情報を記憶させた利用者に提供するまでを説明する。
まず、ソフトウェア３の提供者のみに秘密にしておく公開鍵暗号方式による秘密鍵Ｋｓと、秘密鍵Ｋｓに対応する公開鍵Ｋｐを作成すると共に、ハッシュ函数を用意する。
【００１４】
ハードウェア４はその非利用者領域に固有識別情報４０を記憶させているが、上記ソフトウェア３に対応する情報として、利用者領域である記憶領域に暗号値Ｅを記憶させるため、暗号値生成プログラム１が必要となる。ハードウェア４における非利用者領域とは、予め利用者用の記憶領域として確保されたものではないハードウェア情報等の記憶領域である。
暗号値生成プログラム１は、認証値生成部１０、暗号値生成部１１とから構成している。
認証値生成部１０は、ソフトウェア３の固有識別情報３０およびハードウェア４の固有識別情報４０から、ハッシュ関数ｆを用いてハッシュ値としての認証値Ｈ１を生成させるものである。
暗号値生成部１１は、秘密鍵Ｋｓを用いて認証値Ｈ１から暗号値Ｅを生成し、ハードウェア４の記憶領域に暗号値Ｅを記憶させるものである。
【００１５】
［ソフトウェアの利用者側］
ハードウェア４を接続した利用者端末（図示省略）におけるソフトウェア３の実行について説明する。
利用者端末の入出力ポートに接続したハードウェア４は、非利用者領域に記憶させた製造企業や製造番号等を示す固有識別情報３０および利用者領域である記憶領域を有しており、その記憶領域には暗号値生成プログラム１に基づいて生成した暗号値Ｅを記憶している。利用者端末に格納されたソフトウェア３は、シリアル番号等の固有識別情報３０を有している。
【００１６】
ソフトウェア３の機能の一部として機能する本実施例の実行制御プログラム２は、認証値生成部２０、復号値生成部２１、認証部２２とから構成している。
認証値生成部２０は、ソフトウェア３の固有識別情報３０およびハードウェア４の固有識別情報４０から、ハッシュ関数ｆを用いてハッシュ値としての認証値Ｈ２を生成させるものである。
復号値生成部２１は、公開鍵Ｋｐを用いてハードウェア４の記憶領域に記憶させた暗号値Ｅから復号値Ｄを生成させるものである。
認証部２２は、認証値Ｈ２と復号値Ｄを照合して、ソフトウェア３の実行可否を判断する。本実施例の認証部２２では認証値Ｈ２と復号値Ｄの両者が一致したのみソフトウェア３の実行を許可し、両者が一致しない場合には実行環境を制限する。実行環境の制限とは、ソフトウェア３の一部機能のみを使用可能に制限するなどがある。
また、認証部２２における照合は、ソフトウェア３の実行中に定期的に行うようにしてもよい。
【図面の簡単な説明】
【００１７】
【図１】本実施例における暗号値生成プログラムの説明図である。
【図２】本実施例における暗号値生成プログラムのフロー図である。
【図３】本実施例における実行制御プログラムの説明図である。
【図４】本実施例における実行制御方法のフロー図である。
【符号の説明】
【００１８】
１  暗号値生成プログラム
１０  認証値生成部
１１  暗号値生成部
２  実行制御プログラム
２０  認証値生成部
２１  復号値生成部
２２  認証部
３  ソフトウェア
３０  固有識別情報
４  ハードウェア
４０  固有識別情報
Ｄ    復号値
Ｅ    暗号値
ｆ    ハッシュ関数
Ｈ１  認証値（暗号値生成プログラムにおける）
Ｈ２  認証値（実行制御プログラムにおける）
Ｋｐ  公開鍵
Ｋｓ  秘密鍵
【図１】
2008210324.tif 000003
【図２】
2008210324.tif 000004
【図３】
2008210324.tif 000005
【図４】
2008210324.tif 000006