JP2004515845A - System and method for preventing software piracy - Google Patents

System and method for preventing software piracy Download PDF

Info

Publication number
JP2004515845A
JP2004515845A JP2002533037A JP2002533037A JP2004515845A JP 2004515845 A JP2004515845 A JP 2004515845A JP 2002533037 A JP2002533037 A JP 2002533037A JP 2002533037 A JP2002533037 A JP 2002533037A JP 2004515845 A JP2004515845 A JP 2004515845A
Authority
JP
Japan
Prior art keywords
component
software
hardware
computer system
software component
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.)
Withdrawn
Application number
JP2002533037A
Other languages
Japanese (ja)
Inventor
ボズウェル,チャールズ・アール
マレック,ティモシー・シィ
コール,テリー・リン
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.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices Inc
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 Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of JP2004515845A publication Critical patent/JP2004515845A/en
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/101Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM] by binding digital rights to specific entities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/109Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM] by using specially-adapted hardware at the client

Landscapes

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

Abstract

ソフトウェア著作権侵害を防止するためのシステムおよび方法である。1つの実施例では、システムは、ハードウェアコンポーネント(10)およびソフトウェアコンポーネント(101,300)を含む装置を含み得る。ハードウェアコンポーネントは、その中に第1のソフトウェアコンポーネント(101)を保存し得る。第1のソフトウェアコンポーネントはハードウェアが作動するのを許すが、機能は縮小されている。第2のソフトウェアコンポーネント(300)は、ダイヤルアップ接続またはインターネット接続で達成され得るダウンロードによって入手され得る。ユーザは、ハードウェアコンポーネントおよび第2のソフトウェアコンポーネントを登録する必要があり得る。次に、登録が完了すると、第2のソフトウェアコンポーネントをダウンロードし得る。一旦ダウンロードされると、第2のソフトウェアコンポーネントは、ハードウェアコンポーネントが、意図される、そのフル機能で作動するのを許し得る。A system and method for preventing software piracy. In one embodiment, the system may include a device that includes a hardware component (10) and a software component (101, 300). The hardware component may store the first software component (101) therein. The first software component allows the hardware to operate, but with reduced functionality. The second software component (300) may be obtained by download, which may be achieved with a dial-up connection or an Internet connection. A user may need to register a hardware component and a second software component. Then, once registration is complete, the second software component may be downloaded. Once downloaded, the second software component may allow the hardware component to operate at its intended full functionality.

Description

【0001】
【発明の背景】
[技術分野]
この発明は、コンピュータソフトウェアに関し、より特定的には、ソフトウェア著作権侵害を防止するためのメカニズムに関する。
【0002】
[背景技術]
ソフトウェア著作権侵害は、今日の知的財産の盗用のかなりの源泉である。多数の同一コピーが容易にかつ安価に製造され得るため、多くの場合、コンピュータソフトウェアは容易に偽造され得る。次に、こうした違法なソフトウェアコピーは広く流通し得るので、ソフトウェア発行者が正当な収益を上げられなくなってしまう。インターネットの出現により、違法コピーされたソフトウェアの流通はますます容易になり、広まっている。
【0003】
ソフトウェア著作権侵害は、甚大な経済的影響を及ぼし得る。たとえば、ソフトウェア業界団体(Software Publishers Association)(SPA)の見積りでは、1998年におけるソフトウェア盗用の結果、米国のソフトウェア業界は、米国で29億ドル以上、世界的には110億ドル以上の損失を被っている。同年の米国ソフトウェア業界の経済に対する寄与の概算が、所得で556億ドル、連邦所得税および州所得税で123億ドルであったことを考えると、これは非常に重大な影響である。
【0004】
ソフトウェア著作権侵害を防止するために存在する技術は多い。そのような技術の1つには、パスワードまたは他のソフトウェア用のキーが含まれる。このタイプの技術はほとんど有効でないことがわかっている。というのも、パスワードは熱心なコンピュータ「ハッカー」によって盗まれることがしばしばあり得るからである。また、パスワードも簡単に紛失されたりまたは忘れられたりすることがあり、ユーザ間で共有されることもしばしばである。
【0005】
ハードウェア技術を用いてもよいが、これには費用がかかり、かつ面倒であり得る。そのようなハードウェア技術は、単純なハードウェアドングルおよびコプロセッサドングルを含み得る(ドングルとは、所与のアプリケーションへのアクセスを制御するためにコンピュータに結合する装置のことである)。単純なハードウェアドングルは、単純な問合せ/応答プロトコルを実現し得、ソフトウェアルーチンが特定の応答に対してハードウェアをポーリングし得るものである。コプロセッサドングルは複雑な機能呼出しインタラクションを利用する。ソフトウェアはドングルを機能のように扱い、パラメータを伝えて、アルゴリズム依存する答えを入手し得る。この技術は、単純なハードウェアドングルよりも破るのがはるかに難しいが、それでも攻撃を受けやすい。
【0006】
ソフトウェア著作権侵害は、ワードプロセッサなどの多数の異なるタイプのソフトウェアにとっての懸案である。コンピュータにとって基本的なアプリケーション(ワードプロセッサ、オペレーティングシステムなど)は著作権を侵害されやすい。
【0007】
ソフトウェア著作権侵害が懸案となっている別の分野がソフト周辺装置である。ソフト周辺装置は、ソフトモデムおよびソフトネットワークインターフェイスなどの装置を含む。ソフト周辺装置は、ハードウェア機能の大部分をソフトウェアで置換え得る。たとえば、ソフトモデムは、モデムのハードウェア機能をソフトウェアで置換えて、CODEC(コーダ/デコーダ)およびハードウェアで実現される他の必須回路構成しか残さない。コードをCODECに埋込んでもよく、ソフトモデムは、ソフトウェアがこのコードを読出すのに成功したときしか機能しないように構成され得る。しかしながら、コンピュータハッカーがコードの読出しに成功すれば、多数の偽造CODECが製造されてしまうことがあり、これにより、ソフトモデムの違法な流通が広がってしまう。場合によっては、CODECの偽造を目論む人物がロジックアナライザまたは他のテスト機器を用いて装置の内部ロジックを調べ出し、そういった人物がこれをコピーできてしまうことがある。
【0008】
【発明の開示】
上記に概説した問題は、ソフトウェア著作権侵害を防止するためのシステムおよび方法によって大部分が解決される。1つの実施例では、システムは、ハードウェアコンポーネントならびに第1および第2のソフトウェアコンポーネントを含み得る。ハードウェアコンポーネントは、その中に第1のソフトウェアコンポーネントを保存し得る。第1のソフトウェアコンポーネントは、ハードウェアコンポーネントが作動するのを可能にし得るが、その機能は縮小されている。たとえば、ハードウェアコンポーネントおよびソフトウェアコンポーネントが56kモデムを含む場合、第1のソフトウェアコンポーネントは、モデム(ハードウェアコンポーネント)が14.4k以下の速度で動作するのを可能にし得る。第1のソフトウェアコンポーネントは、ハードウェアコンポーネントを機能縮小して作動させ得るため、装置のユーザは、ハードウェアコンポーネントにフル機能を与え得る第2のソフトウェアコンポーネントを入手する十分な動機を持つであろう。第2のソフトウェアコンポーネントは、ダイヤルアップ接続またはインターネット接続によって達成され得るダウンロードによって入手され得る。ユーザは、ハードウェアコンポーネントおよび第2のソフトウェアコンポーネントを登録する必要があり得る。登録が完了すると、第2のソフトウェアコンポーネントがダウンロードされ得る。一旦ダウンロードされると、第2のソフトウェアコンポーネントは、ハードウェアコンポーネントが、意図されるそのフル機能で作動できるようにし得る。
【0009】
1つの実施例では、ハードウェアコンポーネントは一意なシリアル番号を含み得る。一旦ダウンロードされると、ソフトウェアはシリアル番号を読出し、このシリアル番号によってのみ適正に機能するようにそれ自身を構成し得る。これは、ソフトウェアが違法にコピーされるのを防止する有効な手段であろう。ソフトウェアは、異なるシリアル番号を有するハードウェアコンポーネントを用いた場合にはフルに機能することができないからである。
【0010】
種々の実施例において、ハードウェアコンポーネントは、モデム、ネットワークインターフェイス、CD−ROM(コンパクトディスク読出専用メモリ)またはその他の周辺装置などの周辺装置用のハードウェアを含み得る。これら実施例のソフトウェアコンポーネントは、ソフトウェアが正しく機能できるようにするドライバであり得る。第1のソフトウェアコンポーネントは、ハードウェアコンポーネントに保存されるかまたは埋込まれてもよく、ハードウェアに縮小機能しか許さない「無能な(crippled)」ドライバであってもよい。第2のソフトウェアコンポーネントは、装置にフル機能を許すドライバであってもよく、コンピュータシステムのユーザによる登録の後、ダウンロードによって入手され得る。
【0011】
別の実施例では、ハードウェアコンポーネントは、コンピュータシステムマザーボードであり得る。そのような実施例では、ソフトウェアコンポーネントはオペレーティングシステムを含み得る。マザーボードは、一意なシリアル番号を有し得る少なくとも1つのプロセッサを含み得る。コンピュータマザーボード上の他の装置も一意なシリアル番号を有し得る。第1のソフトウェアコンポーネントは、機能の数が減じられたバージョンのオペレーティングシステムであってもよい。これに代えて、第1のソフトウェアコンポーネントは、プロセッサ、システムバスまたはその両者に対して速度を落としてコンピュータシステムを作動させるように構成されてもよい。第2のソフトウェアコンポーネントは、オペレーティングシステムのフル機能版であってもよく、コンピュータシステムがフルスピードで作動するのを可能にするように構成され得る。
【0012】
このように、種々の実施例で、ソフトウェア著作権侵害を防止するためのシステムおよび方法は、ソフトウェアの未許諾コピーを防止する有効な手段となり得る。一意なシリアル番号を有するハードウェアコンポーネントを用いた場合しか機能しないようにソフトウェアを構成することにより、未許諾コピーが急増するのが難しくなるであろう。潜在的偽造者は、実際に使用可能な偽造ソフトウェアのコピーを流通させるには、シリアル番号を振られたハードウェアコンポーネントを模造しなければならなくなる。これは、もはや費用対効果がなくなるところまで偽造コストを上昇させるであろう。
【0013】
この発明のその他の目的および利点は、以下の詳細な説明を読み、添付の図面を参照すると、明らかになるであろう。
【0014】
この発明は、さまざまな変形および代替的形態が可能であるが、例示の目的で図面にその具体的な実施例を示し、本明細書中で詳細に説明する。しかしながら、図面および説明は開示される特定の形態にこの発明を限定することを意図するものではなく、反対に、この発明は、添付の請求項に規定されるように、本発明の範囲および意図に含まれるすべての変形、均等物および代替物を含むことを理解されたい。
【0015】
【発明を実行するためのモード】
ここで図1を参照して、バスブリッジ202によって種々のシステムコンポーネントに結合されたプロセッサ10を含むコンピュータシステム200の一実施例のブロック図を示す。他の実施例が可能であり、企図される。示された実施例は、本明細書に記載のようにソフトウェア著作権侵害を防止するように構成されるハードウェアコンポーネントおよびソフトウェアコンポーネントを含み得る。示されたシステムでは、メモリバス206によってメインメモリ204がバスブリッジ202に結合され、AGPバス210によってグラフィックコントローラ208がバスブリッジ202に結合される。最後に、PCIバス214によって複数のPCIデバイス212A−212Bがバスブリッジ202に結合される。第2のバスブリッジ216がさらに設けられ、EISA/ISAバス220により1つ以上のEISAまたはISAデバイス218への電気的インターフェイスに対応し得る。プロセッサ10は、CPUバス224によってバスブリッジ202に結合され、かつ、オプションのL2キャッシュ228に結合される。
【0016】
バスブリッジ202は、プロセッサ10と、メインメモリ204と、グラフィックコントローラ208と、PCIバス214に取付けられるデバイスとの間のインターフェイスを与える。バスブリッジ202に接続されたデバイスの1つからオペレーションを受けると、バスブリッジ202は、そのオペレーションのターゲットを識別する(たとえば、特定のデバイス、または、PCIバス214の場合は、ターゲットはPCIバス214上にある)。バスブリッジ202はそのオペレーションをターゲットデバイスに伝達する。バスブリッジ202は、一般的に、ソースデバイスまたはバスが用いるプロトコルからターゲットデバイスまたはバスが用いるプロトコルにオペレーションを変換する。
【0017】
PCIバス214にISA/EISAバスへのインターフェイスを設けるだけでなく、第2のバスブリッジ216は、所望により、付加機能をさらに組入れてもよい。入出力コントローラ(図示せず)は、それが第2のバスブリッジ216の外部にあってもまたはそれと一体化されていても、所望により、コンピュータシステム200内に含まれて、キーボードおよびマウス222ならびに各種シリアルおよびパラレルポートに対する動作サポートを与えてもよい。他の実施例で、外部キャッシュユニット(図示せず)をプロセッサ10とバスブリッジ202との間のCPUバス224にさらに結合してもよい。これに代えて、外部キャッシュをバスブリッジ202とキャッシュコントロールロジックとに結合してもよく、または、外部キャッシュをバスブリッジ202に一体化してもよい。プロセッサ10への裏面構成で、L2キャッシュ228をさらに示す。L2キャッシュ228は、プロセッサ10とは別個にされていても、プロセッサ10とともにカートリッジ(たとえばスロット1もしくはスロットA)に一体化されても、または、プロセッサ10とともに半導体基板上に集積化すらされてもよいことに留意されたい。
【0018】
メインメモリ204は、その中にアプリケーションプログラムが記憶されるメモリであり、プロセッサ10はこのメモリから主に実行する。好適なメインメモリ204は、DRAM(ダイナミックランダムアクセスメモリ)を含む。たとえば、SDRAM(シンクロナスDRAM)またはRambusDRAM(RDRAM)の複数のバンクが好適であろう。
【0019】
PCIデバイス212A−212Bは、たとえば、ネットワークインターフェイスカード、ビデオアクセラレータ、オーディオカード、ハードディスクドライブもしくはフロッピー(R)ディスクドライブまたはドライブコントローラ、SCSI(小型コンピュータシステムインターフェイス)アダプタおよびテレフォニーカードなどの各種周辺装置の例示である。同様に、ISAデバイス218は、モデム、サウンドカード、および、GPIBまたはフィールドバスインターフェイスカードなどの各種データ収集カードなどのさまざまなタイプの周辺装置の例示である。
【0020】
グラフィックコントローラ208は、ディスプレイ226での文字および画像のレンダリングを制御するために設けられる。グラフィックコントローラ208は、メインメモリ204へおよびそこから効果的にシフト可能な3次元データ構造をレンダリングする、技術分野で一般的に公知の典型的なグラフィックアクセラレータを具体化し得る。したがって、グラフィックコントローラ208は、バスブリッジ202内でターゲットインターフェイスへのアクセスを要求しかつそれを受けることによりメインメモリ204へのアクセスを得ることができるという点で、AGPバス210のマスタであり得る。専用グラフィックバスは、メインメモリ204からのデータの迅速な検索に対応する。あるオペレーションに対して、グラフィックコントローラ208は、AGPバス210にPCIプロトコルトランザクションを生成するようにさらに構成され得る。したがって、バスブリッジ202のAGPインターフェイスは、AGPプロトコルトランザクションと、PCIプロトコルターゲットおよびイニシエータトランザクションとの両者をサポートする機能を含み得る。ディスプレイ226は、画像または文字を表示可能な任意の電子ディスプレイである。好適なディスプレイ226には、陰極管(CRT)、液晶ディスプレイ(LCD)などが含まれる。
【0021】
留意されるのは、上記記載ではAGP、PCIおよびISAまたはEISAバスを例として用いているが、所望によりどのバスアーキテクチャも置換え得ることである。さらに留意されるのは、コンピュータシステム200は、さらなるプロセッサ(たとえば、コンピュータシステム200のオプション構成要素として示されるプロセッサ10a)を含む多重プロセッシングコンピュータシステムであってもよいということである。プロセッサ10aはプロセッサ10と同様のものであってもよい。より特定的には、プロセッサ10aはプロセッサ10とまったく同じコピーであってもよい。プロセッサ10aは、(図5に示されるような)独立バスを介してバスブリッジ202に接続されてもよく、または、プロセッサ10とCPUバス224を共有してもよい。さらに、プロセッサ10aを、L2キャッシュ228と同様のオプションL2キャッシュ228aに結合してもよい。
【0022】
ここで図2に移って、フル機能ソフトウェアコンポーネントをダウンロードしかつ登録するためのソフトウェアリポジトリ/データベースへの、コンピュータシステムの一実施例の接続を図示するブロック図を示す。示された実施例では、コンピュータシステム200は、インターネットサービスプロバイダ(ISP)350を通してソフトウェア発行者のデータベース/リポジトリ300に接続される。コンピュータシステム200とISP350との間の接続は、ネットワーク接続またはダイヤルアップ接続を通してであり得る。(ISPによらない)ダイヤルアップ接続を通してコンピュータ200がデータベース/リポジトリ300に直接に接続し得る代替的な実施例が可能であり、企図される。
【0023】
コンピュータシステム200は、図1のコンピュータシステム200と同等のものであってもよく、または、異なるアーキテクチャに基づくコンピュータシステムであってもよい。コンピュータシステム200のユーザは、ハードウェアコンポーネントのインストールの後、ISP350を通して登録情報をデータベース/リポジトリ300に送信し得る。ハードウェアコンポーネントは、モデム、ネットワークインターフェイスカード、コンパクトディスク読出専用メモリ(CD−ROM)ドライブまたは他の装置などの周辺装置であり得る。ハードウェアコンポーネントは、コンピュータシステム200のマザーボードであってもよい。第1のソフトウェアコンポーネントは、コンピュータシステム200のハードウェアコンポーネントに保存されてもよく、ハードウェアが機能を限定して作動できるようにし得る。たとえば、ハードウェアコンポーネントが56kモデムである場合、第1のソフトウェアコンポーネントは、モデムのボーレートを14.4kに制限するドライバであり得る。別の例で、ハードウェアコンポーネントがコンピュータシステムマザーボードである場合、第1のソフトウェアコンポーネントは、機能の数が減じられたオペレーティングシステムであり得、減じられたクロックスピードでコンピュータシステムを作動させるようにも構成され得る。
【0024】
データベース/リポジトリ300は、コンピュータシステム200から登録情報を受けるように構成され得る。次に登録情報をデータベースに保存し得、コンピュータシステム200のユーザがこれを用いて、登録されているソフトウェアを将来アップグレードし得る。データベース/リポジトリは、コンピュータシステム200内のハードウェアコンポーネントと関連があるフル機能版ソフトウェアを保存するように構成されてもよい。
【0025】
登録情報を受けたのに応答して、データベース/リポジトリ300は次に、コンピュータシステム200のハードウェアコンポーネントと関連があるフル機能版ソフトウェアであり得る第2のソフトウェアコンポーネントのダウンロードを可能にし得る。一旦ダウンロードされると、第2のソフトウェアコンポーネントは、ハードウェアコンポーネントが、意図されるそのフル機能で作動するのを可能にし得る。
【0026】
図3は、ソフトウェア著作権侵害を防止するための方法の一実施例のフロー図である。方法400はステップ401で始まり、ここで、コンピュータシステムは、第1のソフトウェアコンポーネントを含むハードウェアコンポーネントをロードされる。ハードウェアコンポーネントは、各種実施例において、周辺装置用アドインカードであってもよく、または、コンピュータシステム用のマザーボードであってもよい。各種実施例で、ハードウェアコンポーネントは、ソフトモデムまたはソフトネットワークインターフェイスなどの「ソフトデバイス」の一部であってもよい。そのようなソフトデバイスは最小限のハードウェアしか用いないので、ソフトウェアを用いて多くの機能を実行し得る。
【0027】
ステップ402で、コンピュータシステムのユーザは、ソフトウェアの発行者に登録情報を提供し得る。ソフトウェア発行者は、図2に示されるようなデータベース/リポジトリ300などのデータベースおよびソフトウェアリポジトリを利用し得る。データベースは登録情報を保存するように構成され得る。ユーザがデータベースに送った登録情報は、ユーザ名、ソフトウェアおよびハードウェアコンポーネントの購入日ならびに他の関連情報を含み得る。登録情報は、ハードウェアコンポーネント用の一意なシリアル番号または他の一意な識別子も含み得る。このシリアル番号または一意な識別子は、ユーザが送った他の登録情報とともにデータベースに保存され得る。ハードウェアコンポーネントは、一意なシリアル番号を含むコーダ/デコーダ(CODEC)を含み得る。これに代えて、一意なシリアル番号をハードウェアコンポーネントの別の装置内に含んでもよい。ハードウェアコンポーネントがコンピュータシステムマザーボードである実施例では、システムプロセッサ、チップセットデバイスまたはマザーボード上に搭載される他のデバイス内に一意なシリアル番号を含み得る。
【0028】
登録情報を受けたのに応答して、ユーザは、(アドインコンポーネントであり得る)ハードウェアコンポーネントと関連のフル機能版ソフトウェアであり得る第2のソフトウェアコンポーネントのダウンロード(ステップ403)を許諾され得る。ダウンロードを実行する前に、リポジトリは、第2のソフトウェアコンポーネントにそれ自身を再構成させて、一意なシリアル番号または識別子を含むハードウェアコンポーネントを用いた場合しか作動しないようにし得る。この再構成の後、第2のソフトウェアコンポーネントのダウンロードを行い得る。
【0029】
ステップ404で、コンピュータシステムをリブートし得る。これは、第2のソフトウェアコンポーネントの初期化を行う前に必要であり得る。プラグアンドプレイデバイスのインストールを含むなどの、いくつかの実施例では、コンピュータシステムのリブートは必要ないであろう。
【0030】
コンピュータシステムにダウンロードされると、第2のソフトウェアコンポーネントの初期化の準備が整い得る(ステップ405)。初期化は、ハードウェアコンポーネント内に埋込まれたシリアル番号を第2のソフトウェアコンポーネントが読出すことを含み得る。正しいシリアル番号を確認すると、第2のソフトウェアコンポーネントの作動の準備が整い、これにより、その関連のハードウェアコンポーネントにフル機能を与え得る。ソフトウェア初期化が完了すると、ハードウェアコンポーネントはそのフル機能で作動され得る(ステップ406)。
【0031】
ここで図4に移って、ソフトウェア著作権侵害を防止するためのシステムが実現され得る、シリアル番号を与えられたマイクロプロセッサを有するコンピュータシステムの一実施例のブロック図を示す。コンピュータシステム200は、図1のコンピュータシステム200と同様のものであってもよく、または、代替的な実施例であってもよい。示された実施例において、コンピュータシステム200は、基本入出力システム(BIOS)105およびバスブリッジ202に結合されるプロセッサ10を含む。バスブリッジ202は、キーボード/マウス222、ディスク記憶装置240、システムメモリ245、モデム250およびグラフィックコントローラ208にも結合される。グラフィックコントローラ208はディスプレイ226に結合される。
【0032】
プロセッサ10には、シリアル識別子102および第1のソフトウェアコンポーネント、すなわち機能縮小オペレーティングシステム(OS)101が埋込まれる。本明細書中で用いるように、オペレーティングシステムは、タスクスケジューリング、メモリおよび記憶装置管理ならびに周辺装置との通信などの機能を果たす、コンピュータシステムのメインコントロールプログラムと定義される。オペレーティングシステムの一般的な例には、Microsoft社のWindows(R)、Unix(R)、およびDOS(ディスクオペレーティングシステム)が含まれる。
【0033】
縮小機能OS101は、コンピュータに基本機能を提供するが、オペレーティングシステム機能のすべての使用を可能にするわけではないオペレーティングシステムであり得る。シリアル識別子102は、それが埋込まれる特定のプロセッサに一意なシリアル番号であり得る。縮小機能OS101は、消去可能プログラマブル読出専用メモリ(EPROM)回路構成またはスタティックランダムアクセスメモリ(SRAM)回路構成を用いてプロセッサ10に埋込まれ得る。これに代えて、縮小機能OS101は、プロセッサ10の製造時にリソグラフィマスクによってプロセッサ10にハードワイヤードされてもよい。BIOS105は、コンピュータシステム200の起動の際に縮小機能OS105がメモリにロードされるように構成され得る。
【0034】
モデム250は、図2を参照して説明されたものなどの、ソフトウェア発行者のデータベース/リポジトリにコンピュータシステム200を接続するように構成され得る。データベース/リポジトリへの接続がインターネット接続またはネットワークインターフェイスカードを通して確立される他の実施例が可能であり、企図される。モデム250を用いて接続を確立すると、コンピュータシステム200のユーザは、登録情報をデータベース/リポジトリに送信し得る。シリアル識別子102は登録情報に含まれてもよく、他の情報とともにソフトウェア発行者のデータベースに保存されてもよい。
【0035】
登録情報を受けたのに応答して、ソフトウェア発行者のリポジトリは、コンピュータシステム200で用いられるように第2のソフトウェアコンポーネントを構成し得る。コンピュータシステム200内で適正に機能するためには、そのような構成は、第2のソフトウェアコンポーネントがシリアル識別子102を読出すのを必要とし得る。そのような実施例では、第2のソフトウェアコンポーネントは、一意なシリアル識別子102によってのみ機能するように構成され得る。
【0036】
上述の構成の後、ソフトウェア発行者のリポジトリは、コンピュータシステム200が第2のソフトウェアコンポーネントをダウンロードするのを可能にし得る。第2のソフトウェアコンポーネントは、プロセッサ10に埋込まれたオペレーティングシステムのフル機能版であり得る。これに代えて、第2のソフトウェアコンポーネントは、縮小機能OS101と組合わせるとフル機能OSを含むオペレーティングシステムの一部であってもよい。ダウンロードの後、コンピュータシステム200は、フル機能版のOSとともに用いられるように構成され得る。そのような構成はOSがシリアル識別子102を確認することを含み、このことにより、識別子102が、登録情報とともにソフトウェア発行者のデータベースに送られたシリアル識別子と確実に一致するようになる。
【0037】
ここで図5に移って、ソフトウェア著作権侵害を防止するためのシステムが実現され得る、周辺装置を有するコンピュータシステムの一実施例のブロック図を示す。コンピュータシステム200は、バスブリッジ202に結合されるプロセッサ10を含む。バスブリッジ202は、システムメモリ245、モデム250、キーボード/マウス222、ディスク記憶装置240およびグラフィックコントローラ208に結合される。グラフィックコントローラ208はディスプレイ226に結合される。バスブリッジには、周辺装置、すなわちネットワークインターフェイス110も結合される。CD−ROMドライブ、モデムなどの他の周辺装置を含む実施例が可能であり、企図される。
【0038】
ネットワークインターフェイス110には、シリアル識別子102および縮小機能ドライバが埋込まれる。縮小機能ドライバと、フル機能ドライバとなる第2のソフトウェアコンポーネントとは、両者ともデバイスドライバである。本明細書中で用いるように、デバイスドライバは、オペレーティングシステムとインターフェイスして、ディスクドライブ、ネットワークインターフェイスまたはモデムなどの装置をサポートするプログラムとして定義される。さらに、デバイスドライバは、ワードプロセッシングプログラムがその中で作成される文書のハードコピーを作成するのにプリンタを用いる場合などに、この明細書の目的のために、アプリケーションソフトウェアがデバイスを使えるようにし得るプログラムとして定義され得る。
【0039】
縮小機能ドライバ103は、ハードウェアコンポーネント(この場合はネットワークインターフェイス110)が作動できるようにする第1のソフトウェアコンポーネントとして働くが、ただし、機能は限定されている。示された実施例では、縮小機能ドライバは、フル機能ドライバを用いた場合よりも遅い速度でネットワークインターフェイス110が情報を送受信できるように構成され得る。
【0040】
シリアル識別子102は、シリアル番号であるか、または、ネットワークインターフェイス110を一意に識別する他の識別子である。縮小機能ドライバ103は、CODECなどのネットワークインターフェイス110のハードウェアデバイスに埋込まれてもよい。縮小機能ドライバ103の埋込みは、ハードウェアデバイスの製造時に、リソグラフィマスクにより、EPROM回路構成、SRAM回路構成またはハードワイヤード回路構成を用いて達成され得る。言及されたこれらのものだけでなく、他のタイプの回路構成を用いて第1のソフトウェアコンポーネントをハードウェアコンポーネントに埋込んでもよい。また、シリアル識別子102を縮小機能ドライバ103と同じハードウェアデバイスに埋込んでもよく、または、第1のハードウェアコンポーネントの異なるデバイスに埋込んでもよいことにも留意されたい。
【0041】
モデム250は、図2を参照して説明されたものなどの、ソフトウェア発行者のデータベース/リポジトリにコンピュータシステム200を接続するように構成され得る。データベース/リポジトリへの接続がインターネット接続またはネットワークインターフェイス110を通して確立される他の実施例が可能であり、企図される。モデム250を用いて接続を確立すると、コンピュータシステム200のユーザは、登録情報をデータベース/リポジトリに送信し得る。シリアル識別子102は登録情報に含まれてもよく、他の情報とともにソフトウェア発行者のデータベースに保存されてもよい。
【0042】
登録情報を受けたのに応答して、ソフトウェア発行者のリポジトリは、ネットワークインターフェイス110とともに使用されるように第2のソフトウェアコンポーネントを構成し得る。ネットワークインターフェイス110とともに適正に機能するためには、そのような構成は、第2のソフトウェアコンポーネントがシリアル識別子102を読出すのを必要とし得る。そのような実施例では、第2のソフトウェアコンポーネントは、一意なシリアル識別子102によってしか機能しないように構成され得る。
【0043】
上述の構成の後、ソフトウェア発行者のリポジトリは、第2のソフトウェアコンポーネント、この場合はネットワークインターフェイス110とともに使用されるフル機能ドライバのダウンロードを可能にし得る。これに代えて、第2のソフトウェアコンポーネントは、縮小機能ドライバ103と組合わせるとネットワークインターフェイス110用フル機能ドライバを形成し得るドライバの一部であってもよい。ダウンロードの後、コンピュータシステム200は、フル機能ドライバによって作動するようにネットワークインターフェイス110を構成し得る。そのような構成はシリアル識別子102の確認を含み得、これにより、シリアル識別子102が、登録情報とともにソフトウェア発行者のデータベースに送られたシリアル識別子と確実に一致するようになる。
【0044】
この発明は特定の実施例を参照して説明されたが、実施例は例示的なものであり、発明の範囲はそのように限定されるものではないことを理解されたい。記載の実施例に対するいかなる修正、変形、追加および改良も可能である。これらの修正、変形、追加および改良は、添付の請求項に詳細に記載されるように、この発明の範囲内に入るであろう。
【0045】
[産業上の利用可能性]
この発明は、コンピュータソフトウェアに適用可能である。
【図面の簡単な説明】
【図1】ソフトウェア著作権侵害を防止するためのシステムおよび方法が実現され得るコンピュータシステムの1つの実施例のブロック図である。
【図2】フル機能ソフトウェアコンポーネントをダウンロードしかつ登録するためのソフトウェアリポジトリ/データベースへの、コンピュータシステムの一実施例の接続を図示するブロック図である。
【図3】ソフトウェア著作権侵害を防止するための方法の一実施例のフロー図である。
【図4】ソフトウェア著作権侵害を防止するためのシステムが実現され得る、シリアル番号を与えられたマイクロプロセッサを有するコンピュータシステムの一実施例を図示するブロック図である。
【図5】ソフトウェア著作権侵害を防止するためのシステムが実現され得る、周辺装置を有するコンピュータシステムの一実施例のブロック図である。
[0001]
BACKGROUND OF THE INVENTION
[Technical field]
The present invention relates to computer software, and more particularly, to a mechanism for preventing software piracy.
[0002]
[Background Art]
Software piracy is a significant source of intellectual property plagiarism today. Computer software can often be easily counterfeited because many identical copies can be easily and inexpensively manufactured. Second, such illegal software copies can be widely distributed, preventing software publishers from making legitimate revenues. With the advent of the Internet, the distribution of pirated software is becoming easier and more widespread.
[0003]
Software piracy can have enormous economic consequences. For example, the Software Publishers Association (SPA) estimates that the US software industry suffered more than $ 2.9 billion in the United States and more than $ 11 billion globally as a result of software theft in 1998. ing. This is a very significant impact, given that the estimated contribution of the US software industry to the economy for the year was $ 55.6 billion in income and $ 12.3 billion in federal and state income taxes.
[0004]
There are many technologies that exist to prevent software piracy. One such technique involves a password or key for other software. This type of technique has proven to be almost ineffective. Because passwords can often be stolen by avid computer "hackers". Also, passwords can easily be lost or forgotten, and are often shared between users.
[0005]
Hardware technology may be used, but this can be expensive and cumbersome. Such hardware technologies may include simple hardware dongles and coprocessor dongles (dongles are devices that couple to a computer to control access to a given application). A simple hardware dongle may implement a simple query / response protocol, one in which a software routine may poll the hardware for a specific response. Coprocessor dongles make use of complex function call interactions. The software may treat the dongle like a function, communicate the parameters and get an algorithm-dependent answer. This technique is much harder to break than a simple hardware dongle, but is still vulnerable.
[0006]
Software piracy is a concern for many different types of software, such as word processors. Applications that are fundamental to computers (word processors, operating systems, etc.) are vulnerable to copyright infringement.
[0007]
Another area in which software piracy is a concern is software peripherals. Soft peripherals include devices such as soft modems and soft network interfaces. Soft peripherals may replace most of the hardware functions with software. For example, a soft modem replaces the hardware functionality of the modem with software, leaving only the CODEC (coder / decoder) and other essential circuitry implemented in hardware. The code may be embedded in the CODEC, and the soft modem may be configured to function only when the software successfully reads the code. However, if a computer hacker successfully reads the code, a number of counterfeit CODECs may be manufactured, thereby widening the illegal distribution of soft modems. In some cases, a person attempting to counterfeit the CODEC may use a logic analyzer or other test equipment to look up the internal logic of the device, and such a person may be able to copy it.
[0008]
DISCLOSURE OF THE INVENTION
The problems outlined above are in large part solved by systems and methods for preventing software piracy. In one example, a system may include hardware components and first and second software components. The hardware component may store the first software component therein. The first software component may allow the hardware component to operate, but with reduced functionality. For example, if the hardware and software components include a 56k modem, the first software component may allow the modem (hardware component) to operate at speeds below 14.4k. Because the first software component may operate with reduced hardware components, the user of the device will have sufficient motivation to obtain a second software component that may provide the hardware component with full functionality. . The second software component may be obtained by download, which may be achieved by a dial-up connection or an Internet connection. A user may need to register a hardware component and a second software component. Upon completion of registration, a second software component may be downloaded. Once downloaded, the second software component may enable the hardware component to operate at its intended full functionality.
[0009]
In one embodiment, a hardware component may include a unique serial number. Once downloaded, the software can read the serial number and configure itself to function properly only with this serial number. This would be an effective means of preventing software from being copied illegally. Software cannot function fully with hardware components having different serial numbers.
[0010]
In various embodiments, the hardware components may include hardware for a peripheral device, such as a modem, a network interface, a CD-ROM (Compact Disk Read Only Memory) or other peripheral device. The software component in these embodiments may be a driver that allows the software to function properly. The first software component may be a "cripple" driver that may be stored or embedded in a hardware component and allows only reduced functionality to the hardware. The second software component may be a driver that allows full functionality to the device and may be obtained by download after registration by a user of the computer system.
[0011]
In another example, the hardware component may be a computer system motherboard. In such an embodiment, the software component may include an operating system. The motherboard may include at least one processor that may have a unique serial number. Other devices on the computer motherboard may also have unique serial numbers. The first software component may be a version of the operating system with a reduced number of features. Alternatively, the first software component may be configured to slow down the processor, the system bus, or both, to operate the computer system. The second software component may be a full featured version of an operating system and may be configured to allow the computer system to run at full speed.
[0012]
Thus, in various embodiments, systems and methods for preventing software piracy can be an effective means of preventing unauthorized copying of software. By configuring the software to function only with hardware components having a unique serial number, it will be difficult to increase the number of unauthorized copies. Potential counterfeiters would have to imitate serialized hardware components in order to distribute copies of counterfeit software that could actually be used. This will increase counterfeit costs to a point where they are no longer cost effective.
[0013]
Other objects and advantages of the present invention will become apparent upon reading the following detailed description and upon reference to the accompanying drawings.
[0014]
While the invention is susceptible to various modifications and alternative forms, specific embodiments thereof have been shown by way of example in the drawings and will herein be described in detail. However, the drawings and description are not intended to limit the invention to the particular forms disclosed, which, on the contrary, is intended to limit the scope and spirit of the invention as defined by the appended claims. It is to be understood that all variations, equivalents, and alternatives included herein are included.
[0015]
Mode for carrying out the invention
Referring now to FIG. 1, a block diagram of one embodiment of a computer system 200 that includes a processor 10 coupled to various system components by a bus bridge 202 is shown. Other embodiments are possible and contemplated. The illustrated embodiments may include hardware and software components configured to prevent software piracy as described herein. In the illustrated system, a main memory 204 is coupled to the bus bridge 202 by a memory bus 206 and a graphics controller 208 is coupled to the bus bridge 202 by an AGP bus 210. Finally, a plurality of PCI devices 212A-212B are coupled to bus bridge 202 by PCI bus 214. A second bus bridge 216 is further provided, which may support an electrical interface to one or more EISA or ISA devices 218 via an EISA / ISA bus 220. Processor 10 is coupled to bus bridge 202 by CPU bus 224 and to optional L2 cache 228.
[0016]
Bus bridge 202 provides an interface between processor 10, main memory 204, graphics controller 208, and devices attached to PCI bus 214. Upon receiving an operation from one of the devices connected to the bus bridge 202, the bus bridge 202 identifies the target of the operation (eg, a particular device or, in the case of a PCI bus 214, the target is a PCI bus 214). It's above). Bus bridge 202 communicates the operation to the target device. Bus bridge 202 generally translates operations from the protocol used by the source device or bus to the protocol used by the target device or bus.
[0017]
In addition to providing the PCI bus 214 with an interface to the ISA / EISA bus, the second bus bridge 216 may further incorporate additional features, if desired. An input / output controller (not shown), whether it is external to or integral with the second bus bridge 216, is optionally included within the computer system 200 and includes a keyboard and mouse 222 and Operational support for various serial and parallel ports may be provided. In other embodiments, an external cache unit (not shown) may be further coupled to CPU bus 224 between processor 10 and bus bridge 202. Alternatively, an external cache may be coupled to bus bridge 202 and cache control logic, or an external cache may be integrated into bus bridge 202. The L2 cache 228 is further shown in a backside configuration to the processor 10. L2 cache 228 may be separate from processor 10, integrated with cartridge (eg, slot 1 or slot A) with processor 10, or even integrated with processor 10 on a semiconductor substrate. Note that it is good.
[0018]
The main memory 204 is a memory in which application programs are stored, and the processor 10 executes mainly from this memory. Suitable main memory 204 includes a DRAM (Dynamic Random Access Memory). For example, multiple banks of SDRAM (synchronous DRAM) or Rambus DRAM (RDRAM) may be suitable.
[0019]
PCI devices 212A-212B are examples of various peripheral devices such as, for example, network interface cards, video accelerators, audio cards, hard disk drives or floppy disk drives or drive controllers, SCSI (small computer system interface) adapters, and telephony cards. It is. Similarly, ISA device 218 is illustrative of various types of peripheral devices, such as modems, sound cards, and various data collection cards such as GPIB or fieldbus interface cards.
[0020]
Graphic controller 208 is provided to control the rendering of characters and images on display 226. Graphics controller 208 may embody a typical graphics accelerator commonly known in the art that renders three-dimensional data structures that can be effectively shifted into and out of main memory 204. Thus, the graphics controller 208 may be a master of the AGP bus 210 in that it can request access to and receive access to the target interface within the bus bridge 202 to gain access to the main memory 204. The dedicated graphic bus supports quick retrieval of data from main memory 204. For certain operations, the graphics controller 208 may be further configured to generate PCI protocol transactions on the AGP bus 210. Thus, the AGP interface of bus bridge 202 may include functionality to support both AGP protocol transactions and PCI protocol target and initiator transactions. Display 226 is any electronic display capable of displaying images or characters. Suitable displays 226 include cathode ray tubes (CRT), liquid crystal displays (LCD), and the like.
[0021]
It should be noted that although the above description uses AGP, PCI and ISA or EISA buses as examples, any bus architecture can be substituted if desired. It is further noted that computer system 200 may be a multi-processing computer system that includes an additional processor (eg, processor 10a shown as an optional component of computer system 200). Processor 10a may be similar to processor 10. More specifically, processor 10a may be an exact copy of processor 10. Processor 10a may be connected to bus bridge 202 via an independent bus (as shown in FIG. 5), or may share CPU bus 224 with processor 10. Further, processor 10a may be coupled to an optional L2 cache 228a similar to L2 cache 228.
[0022]
Turning now to FIG. 2, a block diagram illustrating the connection of one embodiment of a computer system to a software repository / database for downloading and registering full-featured software components is shown. In the illustrated embodiment, the computer system 200 is connected to a software publisher's database / repository 300 through an Internet Service Provider (ISP) 350. The connection between computer system 200 and ISP 350 may be through a network connection or a dial-up connection. Alternative embodiments are possible and contemplated where the computer 200 can connect directly to the database / repository 300 through a dial-up connection (not by the ISP).
[0023]
Computer system 200 may be equivalent to computer system 200 of FIG. 1, or may be a computer system based on a different architecture. A user of computer system 200 may send registration information to database / repository 300 through ISP 350 after installation of hardware components. The hardware component can be a peripheral device such as a modem, a network interface card, a compact disk read-only memory (CD-ROM) drive or other device. The hardware component may be a motherboard of the computer system 200. The first software component may be stored on a hardware component of computer system 200 and may allow the hardware to operate with limited functionality. For example, if the hardware component is a 56k modem, the first software component may be a driver that limits the modem's baud rate to 14.4k. In another example, if the hardware component is a computer system motherboard, the first software component may be an operating system with a reduced number of functions, and may also operate the computer system at a reduced clock speed. Can be configured.
[0024]
Database / repository 300 may be configured to receive registration information from computer system 200. The registration information may then be stored in a database and used by a user of computer system 200 to upgrade the registered software in the future. The database / repository may be configured to store the full-featured software associated with the hardware components in the computer system 200.
[0025]
In response to receiving the registration information, the database / repository 300 may then allow for the downloading of a second software component, which may be full-featured software associated with the hardware components of the computer system 200. Once downloaded, the second software component may enable the hardware component to operate at its intended full functionality.
[0026]
FIG. 3 is a flow diagram of one embodiment of a method for preventing software piracy. Method 400 begins at step 401, where a computer system is loaded with hardware components, including a first software component. The hardware component may in various embodiments be an add-in card for a peripheral device or a motherboard for a computer system. In various embodiments, a hardware component may be part of a "soft device" such as a soft modem or a soft network interface. Since such soft devices use minimal hardware, many functions can be performed using software.
[0027]
At step 402, a user of the computer system may provide registration information to a publisher of the software. Software publishers may utilize databases and software repositories, such as database / repository 300 as shown in FIG. The database may be configured to store the registration information. The registration information sent by the user to the database may include the username, the date of purchase of the software and hardware components, and other relevant information. The registration information may also include a unique serial number or other unique identifier for the hardware component. This serial number or unique identifier may be stored in a database along with other registration information sent by the user. Hardware components may include a coder / decoder (CODEC) that includes a unique serial number. Alternatively, the unique serial number may be included in another device of the hardware component. In embodiments where the hardware component is a computer system motherboard, it may include a unique serial number within the system processor, chipset device, or other device mounted on the motherboard.
[0028]
In response to receiving the registration information, the user may be authorized to download (step 403) a second software component, which may be a full-featured software associated with the hardware component (which may be an add-in component). Before performing the download, the repository may cause the second software component to reconfigure itself so that it will only work with hardware components that include a unique serial number or identifier. After this reconfiguration, a download of the second software component may take place.
[0029]
At step 404, the computer system may be rebooted. This may be necessary before initializing the second software component. In some embodiments, such as involving the installation of a plug and play device, a reboot of the computer system may not be required.
[0030]
Once downloaded to the computer system, the second software component may be ready for initialization (step 405). The initialization may include a second software component reading a serial number embedded in the hardware component. Upon confirming the correct serial number, the second software component is ready for operation, which may give its associated hardware component full functionality. Upon completion of software initialization, the hardware components may be operated at their full functionality (step 406).
[0031]
Turning now to FIG. 4, a block diagram of one embodiment of a computer system having a microprocessor with a serial number in which a system for preventing software piracy can be implemented is shown. Computer system 200 may be similar to computer system 200 of FIG. 1, or may be an alternative embodiment. In the embodiment shown, computer system 200 includes a processor 10 coupled to a basic input / output system (BIOS) 105 and a bus bridge 202. Bus bridge 202 is also coupled to keyboard / mouse 222, disk storage 240, system memory 245, modem 250 and graphics controller 208. Graphics controller 208 is coupled to display 226.
[0032]
Embedded in the processor 10 is a serial identifier 102 and a first software component, a reduced function operating system (OS) 101. As used herein, an operating system is defined as a main control program of a computer system that performs functions such as task scheduling, memory and storage device management, and communication with peripheral devices. Common examples of operating systems include Microsoft's Windows (R), Unix (R), and DOS (Disk Operating System).
[0033]
Reduced function OS 101 may be an operating system that provides basic functions to the computer, but does not enable all use of operating system functions. Serial identifier 102 may be a serial number that is unique to the particular processor in which it is embedded. The reduced function OS 101 can be embedded in the processor 10 using an erasable programmable read only memory (EPROM) circuit configuration or a static random access memory (SRAM) circuit configuration. Alternatively, the reduced function OS 101 may be hard-wired to the processor 10 by a lithographic mask when the processor 10 is manufactured. The BIOS 105 can be configured such that the reduced function OS 105 is loaded into the memory when the computer system 200 is started.
[0034]
Modem 250 may be configured to connect computer system 200 to a software publisher's database / repository, such as that described with reference to FIG. Other embodiments are possible and contemplated where the connection to the database / repository is established through an Internet connection or a network interface card. Upon establishing a connection using modem 250, a user of computer system 200 may send registration information to a database / repository. The serial identifier 102 may be included in the registration information and may be stored with other information in the software publisher's database.
[0035]
In response to receiving the registration information, the software publisher's repository may configure a second software component for use with computer system 200. To function properly within computer system 200, such an arrangement may require a second software component to read serial identifier 102. In such an embodiment, the second software component may be configured to function only with the unique serial identifier 102.
[0036]
After the configuration described above, the software publisher's repository may enable the computer system 200 to download the second software component. The second software component may be a full featured version of an operating system embedded in processor 10. Alternatively, the second software component may be part of an operating system that, when combined with the reduced function OS 101, includes a full function OS. After downloading, computer system 200 may be configured for use with a full-featured version of the OS. Such an arrangement involves the OS verifying the serial identifier 102, which ensures that the identifier 102 matches the serial identifier sent to the software publisher's database along with the registration information.
[0037]
Turning now to FIG. 5, a block diagram of one embodiment of a computer system having peripheral devices in which a system for preventing software piracy can be implemented is shown. Computer system 200 includes processor 10 coupled to bus bridge 202. Bus bridge 202 is coupled to system memory 245, modem 250, keyboard / mouse 222, disk storage 240, and graphics controller 208. Graphics controller 208 is coupled to display 226. A peripheral device, that is, a network interface 110 is also coupled to the bus bridge. Embodiments that include other peripherals such as CD-ROM drives, modems, etc. are possible and contemplated.
[0038]
A serial identifier 102 and a reduced function driver are embedded in the network interface 110. The reduced function driver and the second software component that is a full function driver are both device drivers. As used herein, a device driver is defined as a program that interfaces with an operating system and supports devices such as disk drives, network interfaces or modems. Further, the device driver may enable application software to use the device for the purposes of this specification, such as when a word processing program uses a printer to make a hard copy of the document created therein. It can be defined as a program.
[0039]
The reduced function driver 103 serves as a first software component that enables the hardware component (in this case, the network interface 110) to operate, but with limited functionality. In the illustrated embodiment, the reduced function driver may be configured to allow the network interface 110 to send and receive information at a slower rate than with a full function driver.
[0040]
The serial identifier 102 is a serial number or another identifier that uniquely identifies the network interface 110. The reduced function driver 103 may be embedded in a hardware device of the network interface 110 such as a CODEC. The embedding of the reduced function driver 103 can be achieved by using a lithographic mask, using an EPROM circuit configuration, an SRAM circuit configuration, or a hard-wired circuit configuration when manufacturing a hardware device. In addition to those mentioned, other types of circuitry may be used to embed the first software component into the hardware component. It should also be noted that the serial identifier 102 may be embedded in the same hardware device as the reduced function driver 103, or may be embedded in a different device of the first hardware component.
[0041]
Modem 250 may be configured to connect computer system 200 to a software publisher's database / repository, such as that described with reference to FIG. Other embodiments in which the connection to the database / repository is established through an Internet connection or network interface 110 are possible and contemplated. Upon establishing a connection using modem 250, a user of computer system 200 may send registration information to a database / repository. The serial identifier 102 may be included in the registration information and may be stored with other information in the software publisher's database.
[0042]
In response to receiving the registration information, the software publisher's repository may configure the second software component for use with the network interface 110. To function properly with network interface 110, such a configuration may require a second software component to read serial identifier 102. In such an embodiment, the second software component may be configured to function only with the unique serial identifier 102.
[0043]
After the above configuration, the software publisher's repository may allow for the download of a second software component, in this case, a full-featured driver for use with the network interface 110. Alternatively, the second software component may be part of a driver that, when combined with the reduced function driver 103, can form a full function driver for the network interface 110. After downloading, computer system 200 may configure network interface 110 to operate with the full-featured driver. Such an arrangement may include a confirmation of the serial identifier 102, which ensures that the serial identifier 102 matches the serial identifier sent to the software publisher's database along with the registration information.
[0044]
Although the invention has been described with reference to particular embodiments, it is to be understood that the embodiments are illustrative and that the scope of the invention is not so limited. Any modifications, variations, additions and improvements to the embodiments described are possible. These modifications, variations, additions and improvements will fall within the scope of the invention, as set forth in detail in the appended claims.
[0045]
[Industrial applicability]
The invention is applicable to computer software.
[Brief description of the drawings]
FIG. 1 is a block diagram of one embodiment of a computer system in which systems and methods for preventing software piracy may be implemented.
FIG. 2 is a block diagram illustrating the connection of one embodiment of a computer system to a software repository / database for downloading and registering full-featured software components.
FIG. 3 is a flow diagram of one embodiment of a method for preventing software piracy.
FIG. 4 is a block diagram illustrating one embodiment of a computer system having a serialized microprocessor in which a system for preventing software piracy may be implemented.
FIG. 5 is a block diagram of one embodiment of a computer system having peripheral devices in which a system for preventing software piracy may be implemented.

Claims (10)

コンピュータシステムであって、
ハードウェアコンポーネント(10)と、
前記ハードウェアコンポーネント内に保存される第1のオペレーティングシステムコンポーネント(101)とを含み、前記第1のオペレーティングシステムコンポーネントは、前記ハードウェアコンポーネントを、機能縮小して作動させるように構成され、前記ハードウェアコンポーネントは、第2のオペレーティングシステムコンポーネント(300)のダウンロードに応答して、フル機能で作動するように構成される、コンピュータシステム。
A computer system,
A hardware component (10);
A first operating system component (101) stored within the hardware component, wherein the first operating system component is configured to operate the hardware component with reduced functionality; The computer system, wherein the wear component is configured to operate in full function in response to a download of the second operating system component (300).
前記コンピュータシステムのユーザは、前記ダウンロードの前に、前記第2のオペレーティングシステムコンポーネントを登録するように要求される、請求項1に記載のコンピュータシステム。The computer system of claim 1, wherein a user of the computer system is required to register the second operating system component prior to the download. 方法であって、
ハードウェアコンポーネント(10)をコンピュータシステムにインストールするステップを含み、前記ハードウェアコンポーネントは第1のソフトウェアコンポーネント(101)を保存するように構成され、第1のソフトウェアコンポーネントは、前記ハードウェアコンポーネントを、機能縮小して作動させるように構成され、前記ハードウェアコンポーネントは一意な識別子(102)を含み、さらに
第2のソフトウェアコンポーネント(300)を登録するステップを含み、前記登録ステップは、前記ハードウェアコンポーネント用の前記一意な識別子をデータベースに与えるステップを含み、前記第2のソフトウェアコンポーネントは、前記一意な識別子を前記データベースに与える前記ステップに応答して、前記ハードウェアコンポーネントを用いる場合しか作動しないように構成され、さらに
前記第2のソフトウェアコンポーネントをダウンロードするステップと、
前記第2のソフトウェアコンポーネントをインストールするステップとを含み、前記ハードウェアコンポーネントは、前記第2のソフトウェアコンポーネントのインストールの後にフル機能で作動するように構成される、方法。
The method,
Installing a hardware component (10) on a computer system, wherein the hardware component is configured to store a first software component (101), wherein the first software component replaces the hardware component with: The hardware component includes a unique identifier (102), and further comprises registering a second software component (300), the registration step comprising: Providing the unique identifier to the database in response to the step of providing the unique identifier to the database. A step only when using the components are configured not to operate, further downloading the second software component,
Installing the second software component, wherein the hardware component is configured to operate at full functionality after installation of the second software component.
前記一意な識別子を含む登録情報を前記データベースに保存するステップをさらに含む、請求項3に記載の方法。4. The method of claim 3, further comprising storing registration information including the unique identifier in the database. 前記ダウンロードの後に前記第2のソフトウェアコンポーネントを初期化するステップをさらに含む、請求項3に記載の方法。4. The method of claim 3, further comprising initializing the second software component after the download. 前記初期化ステップは、前記第2のソフトウェアコンポーネントが前記一意な識別子を読出すステップを含む、請求項5に記載の方法。The method of claim 5, wherein the initializing step comprises the second software component reading the unique identifier. 周辺装置であって、
コンピュータシステムにインストールされるように構成されるハードウェアコンポーネント(110)と、
前記ハードウェアコンポーネント内に保存される第1のデバイスドライバコンポーネント(202)とを含み、前記第1のデバイスドライバコンポーネントは、前記ハードウェアコンポーネントを、機能縮小して作動させるように構成され、前記ハードウェアコンポーネントは、第2のデバイスドライバコンポーネント(300)のダウンロードに応答して、フル機能で作動するように構成される、周辺装置。
Peripheral devices,
A hardware component (110) configured to be installed on the computer system;
A first device driver component (202) stored within the hardware component, wherein the first device driver component is configured to operate the hardware component with reduced functionality; The peripheral device, wherein the wear component is configured to operate in full function in response to the download of the second device driver component (300).
前記ハードウェアコンポーネントは、コーダ/デコーダ(CODEC)(110)を含む、請求項7に記載の周辺装置。The peripheral device of claim 7, wherein the hardware component comprises a coder / decoder (CODEC) (110). 前記CODECは一意な識別子を含む、請求項8に記載の周辺装置。9. The peripheral device according to claim 8, wherein the CODEC includes a unique identifier. 前記第2のデバイスドライバコンポーネントは、前記一意な識別子を含む前記CODECによってしか機能しないように構成される、請求項9に記載の周辺装置。The peripheral device according to claim 9, wherein the second device driver component is configured to function only with the CODEC including the unique identifier.
JP2002533037A 2000-10-05 2001-06-06 System and method for preventing software piracy Withdrawn JP2004515845A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US68024300A 2000-10-05 2000-10-05
PCT/US2001/018471 WO2002029528A2 (en) 2000-10-05 2001-06-06 System and method for preventing software piracy

Publications (1)

Publication Number Publication Date
JP2004515845A true JP2004515845A (en) 2004-05-27

Family

ID=24730320

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002533037A Withdrawn JP2004515845A (en) 2000-10-05 2001-06-06 System and method for preventing software piracy

Country Status (7)

Country Link
EP (1) EP1352305A2 (en)
JP (1) JP2004515845A (en)
KR (1) KR20030036895A (en)
CN (1) CN1468393A (en)
AU (1) AU2001266762A1 (en)
TW (1) TW525089B (en)
WO (1) WO2002029528A2 (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7577849B2 (en) 2003-04-02 2009-08-18 Microsoft Corporation Keyed-build system for controlling the distribution of software
CN100345112C (en) * 2005-11-25 2007-10-24 中国科学院软件研究所 Member extending method for operating system
KR100852199B1 (en) * 2007-02-13 2008-08-13 삼성전자주식회사 Producing method of nand flash module capable of protecting illegal copy of operation system and computer system including nand flash module
US10019741B2 (en) * 2010-08-09 2018-07-10 Western Digital Technologies, Inc. Methods and systems for a personal multimedia content archive
FR2997204B1 (en) * 2012-10-23 2014-12-26 Thales Sa METHOD FOR DOWNLOADING AT LEAST ONE COMPONENT SOFTWARE IN A COMPUTER APPARATUS, COMPUTER PROGRAM PRODUCT, COMPUTER APPARATUS AND COMPUTER SYSTEM THEREOF

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1121779A4 (en) * 1998-10-07 2004-09-15 Nuvomedia Inc Certificate handling for digital rights management system

Also Published As

Publication number Publication date
EP1352305A2 (en) 2003-10-15
WO2002029528A2 (en) 2002-04-11
TW525089B (en) 2003-03-21
KR20030036895A (en) 2003-05-09
CN1468393A (en) 2004-01-14
WO2002029528A3 (en) 2003-08-07
AU2001266762A1 (en) 2002-04-15

Similar Documents

Publication Publication Date Title
EP1084549B1 (en) Method of controlling usage of software components
AU767286B2 (en) Methods and apparatus for protecting information
US7380275B2 (en) Secure and backward-compatible processor and secure software execution thereon
EP1443381B1 (en) System and method for secure software activation with volume licenses
US6460140B1 (en) System for controlling the use of licensed software
US7308576B2 (en) Authenticated code module
AU2002305490B2 (en) Systems and methods for the prevention of unauthorized use and manipulation of digital content
US8103592B2 (en) First computer process and second computer process proxy-executing code on behalf of first process
KR20010049886A (en) Virus resistant and hardware independent method of flashing system bios
US20030126454A1 (en) Authenticated code method and apparatus
US20060179002A1 (en) Flexible licensing architecture for licensing digital application
JP2002287978A (en) Method and system for safely initializing code in computer
JP2004038247A (en) License management method, system, and program
US7979911B2 (en) First computer process and second computer process proxy-executing code from third computer process on behalf of first process
JP2004515845A (en) System and method for preventing software piracy
JP2004046756A (en) License management method, system and program
WO2006101765A2 (en) Method for preventing unauthorized installation of a software product
Van Aubel et al. Investigating SRAM pufs in large cpus and gpus
JP2002222021A (en) License managing method for software and storage medium
JPH0934799A (en) Data protection method
CA2399317A1 (en) Apparatus and method for enforcing software license
JP2004070560A (en) License management device and program
KR20020009548A (en) How to Prevent unauthorized use of software by random digits
AU2010202883A1 (en) Systems and Methods for Preventing Unauthorized Use of Digital Content

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20080902