JP2006099411A - ソフトウェアの使用制限方法 - Google Patents

ソフトウェアの使用制限方法 Download PDF

Info

Publication number
JP2006099411A
JP2006099411A JP2004284440A JP2004284440A JP2006099411A JP 2006099411 A JP2006099411 A JP 2006099411A JP 2004284440 A JP2004284440 A JP 2004284440A JP 2004284440 A JP2004284440 A JP 2004284440A JP 2006099411 A JP2006099411 A JP 2006099411A
Authority
JP
Japan
Prior art keywords
software
embedded software
cpu
hardware
processing program
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2004284440A
Other languages
English (en)
Other versions
JP2006099411A5 (ja
Inventor
Momoto Watanabe
百人 渡邉
Hiroaki Sano
博明 佐野
Makoto Hanawa
誠 花輪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Oki Electric Industry Co Ltd
Original Assignee
Oki Electric Industry Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Oki Electric Industry Co Ltd filed Critical Oki Electric Industry Co Ltd
Priority to JP2004284440A priority Critical patent/JP2006099411A/ja
Priority to KR1020050065220A priority patent/KR20060053890A/ko
Priority to CNB2005100881024A priority patent/CN100549904C/zh
Priority to US11/235,271 priority patent/US7451491B2/en
Publication of JP2006099411A publication Critical patent/JP2006099411A/ja
Publication of JP2006099411A5 publication Critical patent/JP2006099411A5/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

【課題】コンピュータだけでなく、一般の家電製品にも使われる組込ソフトウェアについて、不正コピーによって作られたソフトウェアの使用を防止する。
【解決手段】認証処理プログラム23が組込ソフトウェア21を使用するハードウェア内のCPU 10を認証することによって、そのソフトウェア21がコピーされたものか否かを判断する。また、そのソフトウェア21がコピーされたものと判断された場合、不正処理プログラム24を実行し、そのあと必ずソフトウェア21を実行させる。しかし、ソフトウェア21は不正処理プログラム24の実行により、本来の機能が存分に発揮されることはなく、またユーザは両プログラム23・24の存在にも気づきにくい。
【選択図】図1

Description

本発明は、ソフトウェアの不正使用を防止するソフトウェア使用制限方法に関するものである。
一般に、コンピュータ用に販売されているソフトウェアは、購入した者が使用する権利を有する。しかし、汎用性があるため、このソフトウェアを不正にコピーして、他のコンピュータ上で使用することが可能である。
コンピュータはキーボードのような、ユーザからの入力を受け付ける入力装置を有している。
一方、冷蔵庫や電子レンジなど、様々な形態の入力装置を有しているか、あるいは入力装置を全く有していない家電製品に、あらかじめ組み込まれているソフトウェア(以下「組込ソフト」と略す)も存在する。
また、広い意味では、コンピュータにプリインストールされているソフトウェアも組込ソフトとも言える。
こうした組込ソフトは、通常、あらかじめ組み込まれるハードウェアのみでの使用が想定されている。つまり、特定のメーカ製のハードウェア上で使用することは許可されているが、それ以外のメーカ製のハードウェア上で使用することは禁止されている。しかし、特定のメーカ製のハードウェアにプリインストールされた組込ソフトに汎用性があれば、これを不正にコピーして、他の種類のハードウェア上で不正に使用することも可能な場合がある。仮にそのような不正使用が明らかになった場合は、上記特定のメーカは法的措置をとって、不正使用者に対し然るべき損害賠償請求ができる。しかし、このような不正使用の摘発は通常、困難な場合が多い。
そこで昨今ソフトウェアの不正使用防止方法には様々なものが提案されている。その具体例として、特許文献1、特許文献2および特許文献3などに記載のソフトウェアプロテクト方法が挙げられる。例えば特許文献1では、入力装置であるキーボードからキーワードを入力し、正当なキーコードと判断されれば、ソフトウェアを使用可能となる。
特開平7−219761号公報 特開2002−258963号公報 特開2004−171500号公報
しかし、上記のような従来のソフトウェアのプロテクト方法では入力装置の存在およびその入力装置からパスワードなどが入力可能なことが前提となっている。したがって、一般の家電製品や電子機器など、入力装置に様々な形態があるハードウェアや入力装置そのものを有しないハードウェアに使われる組込ソフトウェアには適用できない。
また、上記のようなソフトウェアのプロテクト方法では不正使用であると判明すると、ソフトウェアの機能を制限する、またはソフトウェアの使用そのものを禁止するなどの処置を行う。するとユーザには、ソフトウェアプロテクトが発動されていることが分かってしまうため、ソフトウェアの機能が制限された場面、もしくは動作しなくなった場面の直前にプロテクト用プログラムが存在することが推測されてしまう。つまり実行履歴を追っていけばプロテクト用プログラムの解析は比較的容易に行える。そしてユーザは時間をかければ、そのプログラムを無効化してしまうことが可能な場合もある。これでは完全に不正使用を防止することはできない。
本発明は以上のような従来技術の欠点を解消し、とりわけ、入力装置を有しない家電製品などのハードウェアに使われる組込ソフトウェアの不正使用を防止し、しかもプロテクトの存在そのものを隠蔽して、プロテクトの無効化に対抗するソフトウェア使用制限方法を提供することを目的とする。
本発明によるソフトウェア使用制限方法は課題を解決するために、ソフトウェアを所定のハードウェアで実行する前に、所定のハードウェアが特定の種類のハードウェアに固有の構成を有するか否かを確認する工程と、所定のハードウェアが固有の構成を有することが確認された場合のみソフトウェアを所定のハードウェアで実行する工程とを有し、これによって、ソフトウェアを特定の種類のハードウェアでしか正常に実行させないことを特徴とする。
本発明によれば、ソフトウェアの不正使用が判明した場合でも、ソフトウェアは実行される。すなわち、不正使用であるか否かの認証処理の存在が隠蔽されているため、使用制限措置が行われていることに不正使用者は気づきにくい。また使用制限措置が行われた場合は、不正コピーされたソフトウェアは本来の機能を発揮できないため、不正使用を行った者に、ソフトウェア自体に欠陥(バグ)があると誤認させる効果が期待できる。
さらに本発明では、ユーザが何らハードウェアの操作を行わなくとも、組込ソフトウェアの実行に先立って、自動的に不正使用であるか否かの認証処理が行なわれる。したがって、入力装置を有しない家電製品等のハードウェアの組込ソフトウェアについても、不正使用が防止できる。
次に添付図面を参照して本発明による組込ソフトウェアを不正使用から保護する方法の実施例を詳細に説明する。
図1は本発明を適用するCPU(Central Processing Unit) 10とCPUの外部にある汎用メモリ29とを例示する構成図である。CPU 10は、例えばコンピュータや携帯電話機などのハードウェアに含まれる制御部である。ただし、本発明の特徴は、ユーザからの入力がなくとも組込ソフトウェア(ファームウェア)を実行するハードウェアにおいて、組込ソフトウェアの不正使用を防止することである。したがって、CPU 10は、ユーザが入力を行うための入力装置を有しない、家電製品などのハードウェアに内蔵されるものでもよい。CPU 10に含まれるプログラムメモリ20は組込ソフトウェア21とソフトウェアモジュール22とを有する。ソフトウェアモジュール22は認証処理プログラム23および不正処理プログラム24を有し、信号線26から送られてくる信号に従って、組込ソフトウェア21・認証処理プログラム23・不正処理プログラム24を信号線28に送信する。
汎用メモリ29は信号線30より送られてくる任意の情報を保管しておく記憶装置である。
CPUコア31はCPU 10に含まれ、アドレス生成器32とデコーダ34とを含む。アドレス生成器32は信号線36、外部バス・インターフェイス38および信号線30を介して汎用メモリ42に格納されている命令を取り出し、その命令を信号線44、外部バス・インターフェイス38および信号線46とを介してデコーダ34に送ることができる。また、同様にアドレス生成器32は信号線26を介してプログラムメモリ20から命令を取り出し信号線28を介してデコーダ34に送ることもできる。さらにアドレス生成器32はデコーダ34から信号線48を介してアドレスを受け取り、プログラムメモリ20または汎用メモリ24からそのアドレスの場所にある命令を取り出すこともできる。
デコーダ34はアドレス生成器32が取り出してきた命令を信号線28、または信号線46から受け取り、解釈する。解釈した命令が別のアドレスを示す内容であれば、デコーダ34は信号線48を介してアドレス生成器32にそのアドレスを送る。解釈した命令が演算であれば、信号線50を介して演算器52にその内容を送る。
データ・パス51はCPU 10に含まれ、演算器52、固有レジスタ54および汎用レジスタ56を含む。演算器52は信号線50より送られた演算内容にそって演算を行う。固有レジスタ54および汎用レジスタ56はいずれも演算器52が演算した途中の結果を保存する記憶装置である。したがって、演算器52は演算を行うとき、計算の途中の結果を信号線58と信号線60とを介して固有レジスタ54および汎用レジスタ56に送り保存しておくことができる。また、両レジスタ54,56の保存内容を信号線62と信号線64とを介して演算器52に送ることもできる。さらに両レジスタ54,56の内容は信号線66と信号線68とを介して汎用メモリに転送可能であり、汎用メモリの内容を信号線66と信号線68とを介して両レジスタ54,56に転送することもできる。
図1に示す固有レジスタ54はCPU 10に固有のものであり、CPU 10を製造したメーカ以外の者が製造したCPUには固有レジスタ54は存在しない。したがって、固有レジスタ54が存在することによって、CPU 10は他の種類のCPUと識別可能である。なお、CPU 10を他の種類のCPUと識別するための特徴は固有レジスタ54には限られない。他のCPUと異なる固有の構成であれば、どのようなものでもよい。
図2は本発明を適用するCPUとCPUの外部にある汎用メモリ29とを例示する他の構成図であり、図1から固有レジスタ54を除いたものである。図1と図2との違いはその点のみで、他の構成は図1と同様である。固有レジスタ54がないため、図2のCPU 12は図1のCPU 10とは種類が異なる。本発明の目的は、後述するように、図1のCPU 10では組込ソフトウェア21を実行可能とするが、図2のCPU 12では組込ソフトウェア21を事実上実行不能にすることである。
図3は図1の変形例であり、プログラムメモリ20がCPU 10の外部にある場合を示す。この場合において、アドレス生成器32がプログラムメモリ20から命令を取り出すときは、外部バス・インターフェイス38と信号線70とを介してプログラムメモリ20から命令を取り出し、信号線72に送る。
図4は図1に示すソフトウェアモジュール22が行う、本発明によるソフトウェア使用制限方法を示すフローチャートである。図1には図示していないが、図1のCPU 10に入力装置が接続されている場合、入力装置から組込ソフトウェア21を実行させる命令が入力されると、アドレス生成器32は汎用メモリ29から組込ソフトウェア21を実行させる命令を取り出し、デコーダ34に送る。また、入力装置の有無に関わらず、図1に記載のCPU 10および汎用メモリ29を有するハードウェアが組込ソフトウェア21の機能を必要としたとき、自動的にアドレス生成器32は汎用メモリ29から組込ソフトウェア21を実行させる命令を取り出し、デコーダ34に送る。デコーダ34での解釈の結果が組込ソフト実行命令S20と判断されると、デコーダ34はその解釈した命令をアドレス生成器32に送る。アドレス生成器32はプログラムメモリ20内にあるソフトウェアモジュール22の認証処理プログラム23を取り出してデコーダ34に送り、認証処理80内の認証判断S22に進む。デコーダ34は認証処理プログラム23を解釈して演算器53に解釈した命令を送り、演算器53はその命令に則して演算を開始し、その演算の際に固有レジスタ54、汎用レジスタ56および汎用メモリ29を使用する。その演算には、例えば任意の数字を固有レジスタ54に保存する演算を含む。その保存された内容を汎用メモリ29にコピーし、アドレス生成器32は汎用メモリ29にコピーされた内容を確認する。上記任意の数字が正しく汎用メモリ29に記録されていれば、固有レジスタ54の存在が確認できる。なお、認証判断S22で行う処理は、このような固有レジスタ54の有無を確認する処理であればどのようなものでもよく、他の方法によって固有レジスタ54の存在を確認してもよい。
固有レジスタ54があると判断した場合は、組込ソフト実行S24に進む。アドレス生成器32は汎用メモリ29から組込ソフトウェア21を実行させる命令を取り出し、その命令をデコーダ34が解釈し、アドレス生成器32に送る。アドレス生成器32はプログラムメモリ20にある組込ソフトウェア21を取り出してデコーダ34に送り、組込ソフトウェア21を実行させる。
固有レジスタ54がないと判断した場合は、認証処理80内の使用制限措置S26に進む。この措置S26では、アドレス生成器32は汎用メモリ29から不正処理プログラム24を実行させる命令を取り出し、その命令をデコーダ34が解釈し、アドレス生成器32に送る。アドレス生成器32はプログラムメモリ20のソフトウェアモジュール22から不正処理プログラム24を取り出し、デコーダ34に送り、不正処理プログラム24を実行させる。不正処理プログラム24は組込ソフトウェア21が実行されたとき不具合を起こさせるようなプログラム、もしくは組込ソフトウェア21が実行されたとき処理速度を低下させるプログラムである。この不正処理プログラム24はソフトウェアモジュール22の実行の間に織り交ぜてある。不正処理プログラム24はソフトウェアモジュール22の実行中に実行され、前述のような不具合を起こさせるもしくは処理速度を低下させるといったペナルティを課す。このように、不正処理プログラム24が実行される使用制限措置S26は図4に示すとおり、組込ソフト21の実行S24の前工程として行えばよい。
一方、図4の使用制限措置S26は、組込ソフト21の実行S24に織り交ぜる方法で実行してもよい。すなわち、不正処理プログラム24が課すペナルティとして、固有レジスタを有するCPU 10が組込ソフト21の実行に要する時間より長い時間をかけて、組込ソフト21をCPU 12で実行する、という方法があるが、これは具体的には、組込ソフト21の実行S24中に、遅延時間を織り交ぜればよい。ユーザは、長い時間がかかるものの組込ソフト21は実行されるため、使用制限措置S26がなされていることに気付きにくい。しかも組込ソフト21の実行には無意味に長い時間がかかるため、組込ソフト21を実質的に使用不能にすることができる。
また不正処理プログラム24は、例えば、組込ソフトウェア21の実行S24中に、組込ソフト21以外の動作をさせてもよい。ユーザは、組込ソフト21が実行されるものの、時折、組込ソフト21とは全く関係のない動作が行なわれるため、使用制限措置S26が行なわれているとは気付かず、組込ソフト21自体にバグがあるものと誤認することが期待される。仮にユーザが使用制限措置S26が実行されていることに気付いたとしても、組込ソフト21そのものは実行され、実行中に無限ループに陥ったり異常終了したりすることがないため、不正処理プログラム24の所在を明らかにしてそれを無効化させることは困難である。
このようなペナルティとして課されるプログラムを有するソフトウェアモジュール22はバイナリー形式、もしくはライブラリ形式と呼ばれるもので配布される。これらは機械語と呼ばれる数字の羅列であり、一般のプログラム開発に用いられるC言語やフォートランなどの高級言語と違って可読性が非常に悪い。このため、ペナルティを課している箇所を特定しにくくする。そして、使用制限措置S26のあとはいかなる場合でも必ず組込ソフト実行S24に進む。そして、前述の組込ソフト実行S24と同様の動作を行う。しかし、組込ソフトウェア21が実行されても不正処理プログラム24が同時に実行されているため、不具合の様な動作や速度低下が起こり、実質的に使い物にならない。また、ペナルティが課されたことがユーザに分かったとしても、ペナルティが課されたあとは必ず組込ソフト実行S24に進むため、プログラムが途中で止まることはない。このため、ペナルティが課されたプログラムのプロテクトを破るには可読性の悪いプログラムをすべて確認しなければならない。プロテクト破りに費やす時間と、それで得られるプログラムの価値とのトレードオフを考えれば、その行為は無駄であると考えられる。
一方、図5に記載の従来の不正使用防止方法では、組込ソフト実行命令S28が出たあと、認証処理82内の認証判断S30が行われ、組込ソフトウェアを実行してもよい判断が下されれば組込ソフト実行S32となる。しかし、認証判断によって組込ソフトウェアを実行させてはならないとの判断が下された場合、認証処理82内の使用禁止措置S34として同じ処理を無限に繰り返す、またはシステムを暴走させるなどの処理を実行し、いかなる場合でも組込ソフトウェアが実行されることはない。したがって、使用禁止措置S34が実行されている箇所を、プログラムの中から特定しやすく、プロテクト破りしやすいという欠点がある。
図6および図7は本発明の他の実施例であり、図7に示す認証側PC(Personal Computer) 100内のUSB通信モジュール101から被認証側PC 102にUSB(Universal Serial Bus)ケーブル104を介して組込ソフトウェア21を送るときの例である。すなわち本実施例では被認証側PC 102で組込ソフトウェア21を使用可能か否かが認証される。図6に示すPCからのコマンド受信S50において、認証側PC 100は被認証側PC 102から組込ソフトウェア21の送信命令をUSBケーブル104を介して受信する。その命令を受信した認証側PC 100は、即座に組込ソフトウェア21を送ることはせずに、まず認証処理プログラム23および不正処理プログラム24の送信S52をする。被認証側PC 102は両プログラム23・24を受信し、認証処理プログラム23を実行させ、被認証側PC 102内で図1の実施例と同様の方法で認証処理84内で認証判断S54を行い、被認証側PC 102が有するCPU 103が特定のCPUか否かを判断する。
被認証側PC 102が有するCPU 103が特定のCPUと判断されたとき、被認証側PC 102は認証側PC 100にその結果を送信し、認証側PC 100は組込ソフトウェア21の送信S56を開始する。
被認証側PC 102が有するCPU 103が特定のCPUではないと判断されたとき、被認証側PC 102は使用制限措置S58で不正処理プログラム24を実行し、その結果を認証側PC 100に送信し、認証側PC 100は組込ソフトウェア21の送信S56を行う。しかし、被認証側PC 102では不正処理プログラム24が実行されているため、通常の転送速度より極端に遅い転送速度で転送される。
以上のように構成された本実施例の動作について、以下説明する。まず図1に示すCPU 10の内部にプログラムメモリ20がある動作を説明する。図1には図示していないが、図1のCPU 10に入力装置が接続している場合、組込ソフトウェアを実行するには、入力装置から組込ソフトウェア21を実行させる命令が入力されると、アドレス生成器32は汎用メモリ29から組込ソフトウェア21を実行させる命令を取り出し、デコーダ34に送ればよい。また、入力装置の有無に関わらず、図1に記載のCPU 10および汎用メモリ29を有するハードウェアが組込ソフトウェア21の機能を必要としたとき、自動的にアドレス生成器32は汎用メモリ29から組込ソフトウェア21を実行させる命令を取り出し、デコーダ34に送ることによって組込ソフトウェア21を実行してもよい。デコーダ34での解釈の結果が組込ソフト実行命令S20であると判断されると、デコーダ34はその解釈した命令をアドレス生成器32に送る。アドレス生成器32はプログラムメモリ20内にあるソフトウェアモジュール22の認証処理プログラム23を取り出してデコーダ34に送り、認証処理82内の認証判断S22を行う。デコーダ34は認証処理プログラム23を解釈して演算器53に解釈した命令を送り、演算器53はその命令に則して演算を開始し、その演算の際に固有レジスタ54、汎用レジスタ56および汎用メモリ29を使用する。その演算には、例えば任意の数字を固有レジスタ54に保存する演算を含む。その保存された内容を汎用メモリ29にコピーし、アドレス生成器32は汎用メモリ29にコピーされた内容を確認する。上記任意の数字が正しく汎用メモリ29に記録されていれば、固有レジスタ54の存在が確認できる。
固有レジスタ54があると判断した場合は、組込ソフトウェア21は不正にコピーされたものでないと分かるため、組込ソフト実行S24をする。アドレス生成器32は汎用メモリ29から組込ソフトウェア21を実行させる命令を取り出し、その命令をデコーダ34が解釈し、アドレス生成器32に送る。アドレス生成器32はプログラムメモリ20にある組込ソフトウェア21を取り出してデコーダ34に送り、組込ソフトウェア21を実行させる。
固有レジスタ54がないと判断した場合は、組込ソフトウェア21は不正にコピーされたものであると分かるため、認証処理80内の使用制限措置S26をする。アドレス生成器32は汎用メモリ29から不正処理プログラム24を実行させる命令を取り出し、その命令をデコーダ34が解釈し、アドレス生成器32に送る。アドレス生成器32はプログラムメモリ20のソフトウェアモジュール22から不正処理プログラム24を取り出し、デコーダ34に送り、不正処理プログラム24を実行させる。これにより組込ソフトウェア21が実行されたとき不具合を起こさせ、もしくは処理速度を低下させる。そして、使用制限措置S26のあとはいかなる場合でも必ず組込ソフト実行S24に進む。そして、前述の組込ソフト実行S24と同様の動作を行う。しかし、組込ソフトウェア21が実行されても不正処理プログラムが同時に実行されているため、本来の機能が存分に発揮されることはない。
図3のようにプログラムメモリ20がCPU 10の外部にある実施例の動作も図1と同様である。ただし、アドレス生成器32がプログラムメモリ20から命令を取り出し、その命令をデコーダ34に送る場合には外部バス・インターフェイス38を経由しなければならない。
次に図6および図7に示す本発明をUSB通信へ応用した実施例の動作について説明する。認証側PC 100は被認証側PC 102から組込ソフトウェア21の送信命令をUSBケーブル104を介して受信する。その命令を受信した認証側PC 100は、即座に組込ソフトウェア21を送ることはせずに、まず認証処理プログラム23および不正処理プログラム24の送信S52をする。被認証側PC 102は両プログラム23・24を受信し、認証処理プログラム23を実行させ、被認証側PC 102内で前記図1の動作の場合と同様に認証処理84内で認証判断S54を行い、被認証側PC 102が有するCPU 103が特定のCPUか否かを判断する。
被認証側PC 102が有するCPU 103が特定のCPUと判断されると、組込ソフトウェアの不正使用でないと分かるため、被認証側PC 102は認証側PC 100にその結果を送信し、認証側PC 100は組込ソフトウェア21の送信S56を開始する。
被認証側PC 102が有するCPU 103が特定のCPUではないと判断されると、不正使用と分かるため、被認証側PC 102は使用制限措置S58で不正処理プログラム24を実行し、その結果を認証側PC 100に送信し、認証側PC 100は組込ソフトウェア21の送信S56を行う。しかし、被認証側PC 102では不正処理プログラム24が実行されているため、通常の転送速度より極端に遅い転送速度で転送される。これによって、被認証側PC 102でのソフトウェア21の使用は事実上不能になる。
本発明を適用するCPUとCPUの外部にある汎用メモリとを含む実施例を示す構成図である。 本発明を適用するCPUとCPUの外部にある汎用メモリとを例示する他の実施例の構成図であり、図1から固有レジスタを除いたものである。 図1の変形例を示す図であり、プログラムメモリがCPUの外部にある実施例を示す。 図1に示すソフトウェアモジュールが行う、本発明の不正使用保護方法の例を示すフローチャートである。 従来の不正使用保護方法を示すフローチャートである。 図7に示す応用例のフローを示した図である。 本発明の応用であり、認証側PC内のUSB通信モジュールから被認証側PCにUSBケーブルを介して組込ソフトウェアを送るときの例で、その構成を示した図である。
符号の説明
10、12 CPU
21 組込ソフトウェア
23 認証処理プログラム
24 不正処理プログラム
29 汎用メモリ
32 アドレス生成器
33 デコーダ
52 演算器
54 固有レジスタ

Claims (3)

  1. ソフトウェアを所定のハードウェアで実行する前に、該所定のハードウェアが特定の種類のハードウェアに固有の構成を有するか否かを確認する工程と、
    前記所定のハードウェアが前記固有の構成を有することが確認されると、前記ソフトウェアを前記所定のハードウェアで実行する工程とを有し、
    これによって、ソフトウェアを前記特定の種類のハードウェアでしか正常に実行させないことを特徴とするソフトウェア使用制限方法。
  2. 請求項1に記載のソフトウェア使用制限方法において、該方法はさらに、
    前記固有の構成が前記所定のハードウェアにない場合は前記ソフトウェアの実行に前記特定の種類のハードウェアが要する時間より長い時間をかけて前記ソフトウェアを前記所定のハードウェアで実行する工程を有し、
    これによってソフトウェア使用制限方法の存在自体を隠蔽することを特徴とするソフトウェア使用制限方法。
  3. 請求項1に記載のソフトウェア使用制限方法において、該方法はさらに、
    前記固有の構成が前記所定のハードウェアにない場合は前記ソフトウェアを実行し該実行中に該実行以外の動作をさせる工程を有し、
    これによってソフトウェア使用制限方法の存在自体を隠蔽することを特徴とするソフトウェア使用制限方法。
JP2004284440A 2004-09-29 2004-09-29 ソフトウェアの使用制限方法 Pending JP2006099411A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2004284440A JP2006099411A (ja) 2004-09-29 2004-09-29 ソフトウェアの使用制限方法
KR1020050065220A KR20060053890A (ko) 2004-09-29 2005-07-19 소프트웨어의 사용제한 방법
CNB2005100881024A CN100549904C (zh) 2004-09-29 2005-07-29 软件的使用限制方法
US11/235,271 US7451491B2 (en) 2004-09-29 2005-09-27 Method and a device for allowing only a specific kind of hardware to correctly execute software

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004284440A JP2006099411A (ja) 2004-09-29 2004-09-29 ソフトウェアの使用制限方法

Publications (2)

Publication Number Publication Date
JP2006099411A true JP2006099411A (ja) 2006-04-13
JP2006099411A5 JP2006099411A5 (ja) 2007-03-29

Family

ID=36100669

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004284440A Pending JP2006099411A (ja) 2004-09-29 2004-09-29 ソフトウェアの使用制限方法

Country Status (4)

Country Link
US (1) US7451491B2 (ja)
JP (1) JP2006099411A (ja)
KR (1) KR20060053890A (ja)
CN (1) CN100549904C (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9319406B2 (en) * 2011-07-12 2016-04-19 Apple Inc. System and method for linking pre-installed software to a user account on an online store
US9760113B2 (en) * 2015-02-20 2017-09-12 Sony Interactive Entertainment America Llc Backward compatibility through use of spoof clock and fine grain frequency control

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62236035A (ja) * 1986-04-07 1987-10-16 Sharp Corp ソフトウエア保護方式
JPH09114786A (ja) * 1995-10-13 1997-05-02 Fujitsu Ltd オンライン機能制限解除システム
WO2000039688A1 (fr) * 1998-12-28 2000-07-06 Sega Enterprises, Ltd. Dispositif et procede de gestion de memoire de sauvegarde, machine de jeu et support enregistre
JP2003186558A (ja) * 2001-12-20 2003-07-04 Super Studio Inc プログラムの利用管理システム、利用管理機能付きプログラム、及びWebサービスの利用管理システム

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4688169A (en) * 1985-05-30 1987-08-18 Joshi Bhagirath S Computer software security system
CA1270339A (en) * 1985-06-24 1990-06-12 Katsuya Nakagawa System for determining a truth of software in an information processing apparatus
US5113518A (en) * 1988-06-03 1992-05-12 Durst Jr Robert T Method and system for preventing unauthorized use of software
JP3227542B2 (ja) * 1991-06-17 2001-11-12 サン・マイクロシステムズ・インコーポレーテッド 特定のコンピュータ・ハードウェア・アーキテクチャのために作成されたソフトウェアのバージョンの互換性を確保する装置および方法
EP0559221B1 (en) * 1992-03-06 1999-05-12 Microsoft Corporation Method for storing programs
US5790834A (en) * 1992-08-31 1998-08-04 Intel Corporation Apparatus and method using an ID instruction to identify a computer microprocessor
JPH07219761A (ja) 1994-01-31 1995-08-18 Yokogawa Electric Corp ソフトウェアプロテクト方法および装置
JP2002258963A (ja) 2001-02-27 2002-09-13 Brother Ind Ltd ソフトウェア製品の不正コピー抑制方法,抑制システム,記憶媒体,及びソフトウェア製品の不正コピー抑制プログラム
JP2004171500A (ja) 2002-11-15 2004-06-17 Atsuhiro Miura ソフトウェアプログラムの不正使用防止法
WO2006033419A1 (en) * 2004-09-20 2006-03-30 Sony Computer Entertainment Inc. Methods and apparatus for distributing software applications

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62236035A (ja) * 1986-04-07 1987-10-16 Sharp Corp ソフトウエア保護方式
JPH09114786A (ja) * 1995-10-13 1997-05-02 Fujitsu Ltd オンライン機能制限解除システム
WO2000039688A1 (fr) * 1998-12-28 2000-07-06 Sega Enterprises, Ltd. Dispositif et procede de gestion de memoire de sauvegarde, machine de jeu et support enregistre
JP2003186558A (ja) * 2001-12-20 2003-07-04 Super Studio Inc プログラムの利用管理システム、利用管理機能付きプログラム、及びWebサービスの利用管理システム

Also Published As

Publication number Publication date
CN1755575A (zh) 2006-04-05
US7451491B2 (en) 2008-11-11
CN100549904C (zh) 2009-10-14
KR20060053890A (ko) 2006-05-22
US20060070057A1 (en) 2006-03-30

Similar Documents

Publication Publication Date Title
JP3552627B2 (ja) スタック保護システム、コンピュータシステム、コンパイラ、スタック保護方法および記憶媒体
US7739517B2 (en) Hardware-based authentication of a software program
KR101740224B1 (ko) 불법 모드 변경처리
KR101122950B1 (ko) 소프트웨어 업데이트를 제한하는 방법 및 시스템
US6226747B1 (en) Method for preventing software piracy during installation from a read only storage medium
US20070276969A1 (en) Method and device for controlling an access to peripherals
WO2007041501A2 (en) Secure execution environment by preventing execution of unauthorized boot loaders
US7949874B2 (en) Secure firmware execution environment for systems employing option read-only memories
IE980483A1 (en) Method and System for Preventing Unauthorised Access to a Computer Program.
US20090125728A1 (en) Security method of system by encoding instructions
US7512761B2 (en) Programmable processor and methods thereof having memory access locking
US7458100B2 (en) Adding copy protection to a computer program
US20110047305A1 (en) Apparatus and method for securing data of usb devices
US20040250086A1 (en) Method and system for protecting against software misuse and malicious code
CN113486413A (zh) 一种防截屏处理方法、计算设备及可读存储介质
JP2006099411A (ja) ソフトウェアの使用制限方法
US20070157012A1 (en) Method and system for handling operation of multiple devices within a single system-on-chip (SoC) integrated circuit (IC)
KR101013419B1 (ko) 시스템 보호 장치 및 방법
JP2008287449A (ja) データプロセッサ
JP4847827B2 (ja) アクセス制御装置
Msgna et al. Secure application execution in mobile devices
JP2009199529A (ja) 情報機器、プログラム及び不正なプログラムコードの実行防止方法
US20040193914A1 (en) Method for protecting embedded software
JP2020173806A (ja) システム起動を監視するための安全装置及び安全方法
CN112948241B (zh) 应用程序的反调试方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070208

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070208

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20081126

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20090213

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100615

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100812

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100831