JP5847455B2 - ソフトウェアアプリケーションを実行するための方法、システム及びセキュアプロセッサ - Google Patents

ソフトウェアアプリケーションを実行するための方法、システム及びセキュアプロセッサ Download PDF

Info

Publication number
JP5847455B2
JP5847455B2 JP2011141759A JP2011141759A JP5847455B2 JP 5847455 B2 JP5847455 B2 JP 5847455B2 JP 2011141759 A JP2011141759 A JP 2011141759A JP 2011141759 A JP2011141759 A JP 2011141759A JP 5847455 B2 JP5847455 B2 JP 5847455B2
Authority
JP
Japan
Prior art keywords
secure processor
host
software code
software
code
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.)
Expired - Fee Related
Application number
JP2011141759A
Other languages
English (en)
Other versions
JP2012009030A (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.)
Thomson Licensing SAS
Original Assignee
Thomson Licensing SAS
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 Thomson Licensing SAS filed Critical Thomson Licensing SAS
Publication of JP2012009030A publication Critical patent/JP2012009030A/ja
Application granted granted Critical
Publication of JP5847455B2 publication Critical patent/JP5847455B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • G06F21/123Restricting unauthorised execution of programs by using dedicated hardware, e.g. dongles, smart cards, cryptographic processors, global positioning systems [GPS] devices
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/34User authentication involving the use of external additional devices, e.g. dongles or smart cards
    • 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/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2153Using hardware token as a secondary aspect

Description

本発明は、一般にコンピュータソフトウェアに関し、特にコンピュータソフトウェアのコピー防止に関する。
本節は、以下に説明されかつ/又はクレームされる本発明の様々な態様に関係し得る様々な技術の態様を読者に紹介するよう意図されている。この議論は、本発明の様々な態様の理解をより容易にするために、読者に背景の情報を提供することによって、有益であると考えられる。したがって、これらの文章はこの点では読まれるべきであり、先行技術の自認としてではないことが理解されるべきである。
物理的な媒体において流通されるソフトウェアは、しばしば不正コピーにさらされるため、そのようなコピーを妨害し、阻止するため、数多くの技術が必然的に開発されている。これらの技術は:
−登録手続中に電話を通してダイヤルされる、物理的な媒体上に印字されたランダムの数字、又は、サーバによって対象のホストのために作成されているライセンスファイルのような、一意のシリアル番号をそれぞれの顧客に提供すること。この技術の主な特徴は、保護されたソフトウェアは、この値を、番号の中の参照値と比較することである。この比較処理は、当然ながら攻撃者の標的である。
−ソフトウェアからの問合せに応答するドングルと呼ばれる外部デバイスの使用。不正な応答は、ソフトウェアの実行を停止させる。再度、攻撃者はこれらの問合せの発生を迂回しようと試みるであろう。
−ソフトウェアによって測定される所定のセクタへのディスクの回転速度及びアクセス時間のような、いくらかの定義された特徴を有する実際の物理的な媒体の存在を検証すること。二種類の攻撃が、この技術に対して用いられる。第一の種類は、検証に用いられる位置を特定し、前のケースと同様にそれらを迂回する。第二の攻撃は、正確に物理的な媒体をエミュレートするAlcohol 120%及びVirtual Daemonのような高機能の仮想ドライブソフトウェアを用いる。
出願人は、WO 2009/074686において別の解決策を提供している。ソフトウェアの各インスタンス固有の補助的なセキュアプロセッサが用いられ、コードのいくつかの要素はホストのプロセッサよりむしろこのプロセッサ内に保存され、実行される。このセキュアプロセッサなしでは、ソフトウェアは実行できない。セキュアプロセッサは複製することが難しいため、この解決策はカジュアルなハッキングに対して堅牢である。
この解決策はよく機能したが、固有のソフトウェアプログラムを保護するための用途に当初制限された;すなわち、各タイトルは専用のセキュアプロセッサを必要とする。いくつかの場合において、例えば電子的に提供されるタイトルの場合、複数のタイトルを保護するセキュアプロセッサを有することは有益である。セキュアプロセッサによって実行されるソフトウェアはそのタイトルに依存するため、以下の二つの選択肢がある:
−前もって複数のタイトルのソフトウェアコードをセキュアプロセッサに読み込む。この選択肢は単純であるが、保護するタイトルが前もって知られていなければならず、これらのタイトルが利用可能になっている必要があるという欠点を有する。
−タイトルを実行するとき、セキュアプロセッサの中のソフトウェアコードをリアルタイムに読み込む。セキュアプロセッサでソフトウェアコードを安全に読み出す、Java(登録商標) Card及びSimツールキットのような既存の解決策が存在する。コードは、しばしばデジタルダウンロードにより提供される。さらなる詳細については、2008年にSpringer−Verlag New York Inc.から出版されている、K.MarkantonakisとK.Mayesによる、Smart Cards, Token, Security and Applicationsを参照されたい。しかしながら、これらの解決策はさらに改善の余地がある。
したがって、ユーザが権利を取得したタイトルのみアクセスを許可すると同時に、異なる複数のソフトウェアのタイトルの保護を有効にするシステムへの必要性があることが認められるだろう。また、システムは、タイトルが前もって知られていないときでも動作すべきである。本発明は、そのようなシステムを提供する。
第一の態様において、本発明は、プロセッサを有するホスト、ホストへ接続されるセキュアプロセッサ及びリモートサーバを有するシステムにおいてソフトウェアアプリケーションを実行する方法を対象とする。ホストは、ソフトウェアアプリケーションのホストソフトウェアコード及びセキュアプロセッサソフトウェアコードを読み込み、後者を、リモートサーバへソフトウェアアプリケーションのためのアクティベーション列を要求するセキュアプロセッサへ渡す。セキュアプロセッサは、ソフトウェアアプリケーションのためのアクティベーション列を受信し、セキュアプロセッサソフトウェアコードを実行可能にするために、それを使用する。ホストは、ホストソフトウェアコードを実行し、セキュアプロセッサで実行可能なセキュアプロセッサソフトウェアコードの手続を呼び出す。セキュアプロセッサは、返されるべき呼び出しへの応答を取得するため、実行可能なセキュアプロセッサソフトウェアコードの手続を実行する。
第一の望ましい実施形態においては、セキュアプロセッサソフトウェアコードは保護され、セキュアプロセッサが前記保護されたセキュアプロセッサソフトウェアコードの保護を解除する。保護されたセキュアプロセッサソフトウェアコードは暗号化によって保護されており、アクティベーション列は復号鍵であり、かつ、セキュアプロセッサは前記復号鍵を用いて復号化することによって前記保護されたセキュアプロセッサソフトウェアコードの保護を解除する点で有利である。
第二の望ましい実施形態においては、セキュアプロセッサは、セキュアプロセッサソフトウェアコードの整合性を検証する。
第三の望ましい実施形態においては、アクティベーション列は、パスワード、セキュアプロセッサソフトウェアコードを補完するコードの一部、およびセキュアプロセッサソフトウェアコードの準備をさせるための、セキュアプロセッサによって実行されるよう意図されるバイナリコードのグループから選択される。
第四の望ましい実施形態においては、セキュアプロセッサはメモリ内にアクティベーション列を保存する。
第五の望ましい実施形態においては、セキュアプロセッサは、複数のソフトウェアアプリケーションを保護するように構成される。
第六の望ましい実施形態においては、ホストは、ソフトウェアアプリケーションのためのタイトル識別子を読み込み、要求の中にタイトルIDを含んでセキュアプロセッサへタイトル識別子を渡す。
第二の態様において、本発明はソフトウェアアプリケーションを実行するためのシステムを対象とする。システムは、プロセッサを有するホスト及びホストへ接続されるセキュアプロセッサを有する。ホストは、ソフトウェアアプリケーションのホストソフトウェアコード及びセキュアプロセッサソフトウェアコードを読み込み;セキュアプロセッサソフトウェアコードをセキュアプロセッサに渡し;ホストソフトウェアコードを実行し;およびソフトウェアコードを実行するとき、セキュアプロセッサで実行可能なセキュアプロセッサソフトウェアコードの手続を呼び出す;よう構成される。セキュアプロセッサは、セキュアプロセッサソフトウェアコードを受信し;リモートサーバにソフトウェアアプリケーションのためのアクティベーション列を要求し;リモートサーバからソフトウェアアプリケーションのためのアクティベーション列を受信し;セキュアプロセッサソフトウェアコードを実行可能にするためのアクティベーション列を使用し;呼び出しへの応答を取得するために実行可能なセキュアプロセッサソフトウェアコードの手続を実行し;及び呼び出しへの応答を返すよう構成される。
第三の態様において、本発明は、ソフトウェアアプリケーションを実行するためのシステムにおけるセキュアプロセッサを対象とする。システムは、プロセッサを有し、かつ、セキュアプロセッサへ接続されるホストをさらに有する。
セキュアプロセッサは、ホストからセキュアプロセッサソフトウェアコードを受信し;リモートサーバへソフトウェアアプリケーションのためのアクティベーション列を要求し;リモートサーバからソフトウェアアプリケーションのためのアクティベーション列を受信し;セキュアプロセッサソフトウェアコードを実行可能にするためにアクティベーション列をセキュアプロセッサソフトウェアコードに適用し;ホストからセキュアプロセッサソフトウェアコードの手続のために呼び出しを受信し;呼び出しへの応答を取得するために実行可能なセキュアプロセッサソフトウェアコードの手続を実行し;及びホストへ呼び出しへの応答を返すよう構成される。
本発明の望ましい機能は、例を限定しない目的で、添付の図面への参照とともに以下の図面において説明される。
本発明は、各ソフトウェアタイトルのために動的に適応する単一のセキュアプロセッサを用いて、複数のソフトウェアタイトルの保護を可能にする。
本発明のシステムを一般的に表す。 本発明のシステムの望ましい実施形態を表す。 本発明の望ましい実施形態によるアプリケーションの物理コピーの生成を表す
WO 2009/074686において記載されている解決策と同様に、本発明のシステム100は、ホスト110及びセキュアプロセッサ120の二つの要素を有する図1において示されている。
セキュアプロセッサ120は、例えばアプリケーションのファミリのような、ソフトウェアのタイトルに対応する複数のアプリケーションを保護する能力を有する。それぞれのアプリケーション130は、3つの主要部分:ホスト110のためのソフトウェアコード131(“ホストソフトウェアコード”)、セキュアプロセッサ120のためのソフトウェアコード132(“セキュアプロセッサソフトウェアコード”)およびアクティベーション列133を有し、少なくともアクティベーション列133は、ホストソフトウェアコード131から分離してホスト110へと配送されることができる。セキュアプロセッサソフトウェアコード132は、権限を与えられたセキュアプロセッサ120のみが実行できるよう、望ましくは機密性および整合性ともに保護される。ホスト110はアプリケーション130を読み込むとき、ホストソフトウェアコード131を保持し、セキュアプロセッサソフトウェアコード132をセキュアプロセッサ120へ渡す。ホスト110は、通常、次にホストソフトウェアコード131を実行する。
セキュアプロセッサ120は、権限を与えられていない人又はデバイスによってアクセスすることが困難、望ましくは不可能に近いように、目的を持ってその計算が保護されているのと同様、保存するコードの少なくとも一部分はセキュアである。セキュアプロセッサの共通の例は、スマートカードおよび耐タンパプロセッサを含む。
セキュアプロセッサ120が存在するとき、受信されたセキュアプロセッサソフトウェアコード132を実行するために、セキュアプロセッサ120は望ましくは:
−例えば、復号によって、ソフトウェアコードのブロックの順列によって、又は他の所定の命令のためにある命令を置換することによって、ソフトウェアコードの保護を解除する。
−保護が解除されたソフトウェアコードの整合性を確認する。保護されたソフトウェアコードの整合性をチェックすることも必然的に可能であることは注意しなければならない。
−現在のアクティベーション列133を待つ。アクティベーション列133は、このタイトル(又はタイトルのグループ)について包括的であることができ、又は、既知のアプリケーション130と既知のセキュアプロセッサ120を組にするよう特別に作成されることができる。アクティベーション列は、リモートサーバからセキュアに配送されることができる。
セキュアプロセッサ120は、保護の解除、整合性確認およびホスト110との通信のための他のものの中で用いられる常駐ソフトウェアコード(図示されない)を有することに注意しなければならない。
アクティベーション列133は、セキュアプロセッサソフトウェアコードを使用可能(すなわち、実行可能)にするために、セキュアプロセッサ120によってセキュアプロセッサソフトウェアコード132へ適用される。正しいアクティベーション列133がないと、セキュアプロセッサソフトウェアコード132は、望ましくは実行不可能である。アクティベーション列133は、多数の異なる形をなすことができる。例えば、セキュアプロセッサソフトウェアコード132(この場合、アクティベーション列はコードの保護を解除するために必要とされる)を復号するための鍵、セキュアプロセッサソフトウェアコード132によって動作するために必要とされる‘パスワード’、セキュアプロセッサソフトウェアコード132(一つの命令から全てのプログラムの部分に及ぶ)から欠落している望ましくは必要不可欠なソフトウェア、又はセキュアプロセッサソフトウェアコード132を準備するためにセキュアプロセッサ120によって実行されるべきバイナリコードである。
理想的には、セキュアプロセッサ120は、複数のアクティベーション列133を保存する能力を有する。この場合、セキュアプロセッサ120は、既に有するアクティベーション列133を要求する必要がない点で有利である。
図2において示される望ましい実施形態において、ホスト210は、インターネット240へアクセス可能な一般的なコンピュータである。ホスト210は、少なくとも一つのプロセッサ、メモリ、インターネットインターフェース等を有する。セキュアプロセッサ220は、アクティベーション列等を保存するメモリ221を有するスマートカード又はスマートカード型デバイスであり、望ましくはUSBバス250を経てホスト210へと接続されている。セキュアプロセッサ220は、ホスト210を通じてリモートサーバ260へ仮想の直接接続280を開くことができる。好ましい実施形態の目的は、セキュアプロセッサ220が、ソフトウェアプロバイダによって提供されたアプリケーションのファミリを保護することである。
望ましい実施形態において、アプリケーション230は、CD−ROM、DVD−ROM又はブルーレイディスクのような物理的な光学記憶媒体270に、ホストコード271、暗号化されたコード272およびタイトルID273として保存されている。アプリケーション230は、ホストコード271およびセキュアプロセッサコード275を有し、セキュアプロセッサコード275は順に以下の3つの部分:
−タイトルID273、タイトルに一意(保護されていない)である識別子
−一般コード277、すなわち一つ以上のタイトルによって使用可能なコード、および
−タイトル固有コード278、すなわちタイトルに固有のコード
を有する。
一般コード277およびタイトル固有コード278は、暗号化されたコード272から生成される。一般コード277およびタイトル固有コード278は、アプリケーション230が実行されるとき、セキュアプロセッサ220によって実行されるソフトウェアコードである。
図3は、本発明の望ましい実施形態によるアプリケーションの物理コピーの生成を表す。
−ランダムな128ビットの鍵であるタイトル鍵305が選択される(310)。タイトル鍵305およびタイトルID273は、アクティベーション列を形成する。
−タイトル固有コード278は、タイトル鍵305を用いてAESで暗号化され(320)、保護されたタイトルコード308を生成する。
−2048ビットのプロバイダ秘密鍵315を用いて、一般コード277および保護されたタイトルコード308に関してRSAの署名が計算され(330)、タイトル署名318を生成する。全てのセキュアプロセッサ220(プロバイダと接続された)は、対応する2048ビットのプロバイダ公開鍵を保存する。
−一般コード277、保護されたコード308およびタイトル署名318は、128ビットのプロバイダ対称鍵335を用いてAESで暗号化され(340)、暗号化されたコード272を生成する。全てのセキュアプロセッサ220(プロバイダに接続された)は、プロバイダ対称鍵335も保存する。
−ホストコード271、保護されたコード272およびタイトルID273は、次に、たとえば光学記憶媒体270のような物理コピーに保存される(350)。物理光学記憶媒体270を読み込むとき、ホスト210は、セキュアプロセッサ220に、暗号化されたコード272およびタイトルID273を供給する。
セキュアプロセッサ220は、次に、以下の処理を行う:
−プロバイダ対称鍵335を用いて暗号化されたコード272を復号する
−プロバイダ公開鍵を用いてタイトル署名318が正しいか検証する
−署名の検証が正しい場合、アクティベーション列メモリ221がタイトルID273に対応するアクティベーション列233を保存しているかどうか検証する。
−−アクティベーション列メモリ221がそのようなアクティベーション列233を保存していないとき、セキュアプロセッサ220はサーバ260へアクティベーション列233を要求する。これは、セキュアプロセッサの個別の一意の鍵ペアを用いて、SAC(Secure Authenticated Channel)のようないかなる適切な先行技術を用いて、望ましくは実行される。
−−要求されたアクティベーション列233を受信すると、セキュアプロセッサ220は、アクティベーション列メモリ221にセキュアに保存する。
−アクティベーション列233によって提供されたタイトル鍵305を用いて、タイトル固有コード278を復号化する。
−一般コード277及びタイトル固有コード278によって形成されるコードを実行する。
ホスト210がホストコード271を実行するとき、ホスト210はセキュアプロセッサ220内の一般コード277及びタイトル固有コード278内の手続を呼び出す。セキュアプロセッサは、要求された手続を実行し、対応する応答を返す。
セキュアプロセッサ220がないとき、不正なコード(例えば、別のタイトルに対応するコードのみ)を含むとき、又は正しいアクティベーション列233を欠くとき、全く返答が返されないか又は不正であるとの返答が返され、かつ、タイトルの実行は適切に働かないであろう。
当然のことながら、望ましい実施形態は、一つのソフトウェアプロバイダのみをサポートする。当業者は、複数のプロバイダに拡張するアイデアを容易に理解するだろう。
それぞれのプロバイダは、自分のプロバイダ対称鍵並びに自分のプロバイダ公開鍵及び自分のプロバイダ秘密鍵の鍵ペアを有するだろう。アプリケーションは、発行するプロバイダを識別する追加の情報を有するであろう。
当業者は、本発明が、ソフトウェアのファミリ又は複数のソフトウェアプログラムを保護することができることを理解するだろう。例えば、本発明の、それぞれのタイトルを動的に保護するよう構成されているセキュアプロセッサは、既知の編集者又は販売業者によって提供される、いかなるソフトウェアをも保護することができる。このことは、ソフトウェアにつき一つのトークンを用いるよりもユーザフレンドリである。
詳細な説明、(適切な)クレーム及び図面に開示されるそれぞれの機能は、独立して提供されてもよく、いかなる適切な組み合わせにおいて提供されてもよい。ハードウェアで実装されるよう記載されている機能は、ソフトウェアでも実装されてもよく、その逆も同様である。クレーム内に現れる参照番号は、説明の手段として記載されたものであり、クレームの範囲に何ら制限を及ぼすべきではない。
上記の実施形態に加えて、以下の付記を開示する。
(付記1)
プロセッサを有するホスト、ホストへ接続されるセキュアプロセッサ及びリモートサーバを有するシステムにおいてソフトウェアアプリケーションを実行する方法であって、前記方法は:
前記ホストにより、前記ソフトウェアアプリケーションのホストソフトウェアコード及びセキュアプロセッサソフトウェアコードを読み込む段階と;
前記セキュアプロセッサソフトウェアコードを前記セキュアプロセッサへ渡す段階と;
前記セキュアプロセッサにより、前記ソフトウェアアプリケーションのためのアクティベーション列を前記リモートサーバへ要求する段階と;
前記セキュアプロセッサにより、前記ソフトウェアアプリケーションのための前記アクティベーション列を前記リモートサーバから受信する段階と;
前記セキュアプロセッサにより、前記セキュアプロセッサソフトウェアコードを実行可能にするために、前記アクティベーション列を使用する段階と;
前記ホストにより、前記ホストソフトウェアコードを実行する段階と;
前記ホストで実行される前記ホストソフトウェアコードにより、前記セキュアプロセッサ内の前記の実行可能なセキュアプロセッサソフトウェアコードの手続を呼び出す段階と;
前記セキュアプロセッサにより、前記呼び出しへの応答を取得するために、前記の実行可能なセキュアプロセッサソフトウェアコードの手続を実行する段階と;
前記セキュアプロセッサにより、前記呼び出しへの前記応答を返す段階と;
を有する、方法。
(付記2)
付記1に記載の方法であって、
前記セキュアプロセッサソフトウェアコードは保護され、かつ、
前記方法は、前記セキュアプロセッサにより、前記の保護されたセキュアプロセッサソフトウェアコードの保護を解除する段階
をさらに有する、方法。
(付記3)
付記2に記載の方法であって、
前記セキュアプロセッサソフトウェアコードは暗号化によって保護され、
前記アクティベーション列は復号鍵であり、かつ、
前記セキュアプロセッサは、前記復号鍵を用いた復号により前記の保護されたセキュアプロセッサソフトウェアコードの保護を解除する
ことを特徴とする、方法。
(付記4)
付記1に記載の方法であって、
前記セキュアプロセッサにより、前記セキュアプロセッサソフトウェアコードの整合性を検証する段階
をさらに有する、方法。
(付記5)
付記1に記載の方法であって、
前記アクティベーション列は、パスワード、前記セキュアプロセッサソフトウェアコードを補完するコードの一部、および前記セキュアプロセッサソフトウェアコードの準備をさせるための前記セキュアプロセッサによって実行されるよう意図されるバイナリコードのグループから選択される
ことを特徴とする、方法。
(付記6)
付記1に記載の方法であって、
前記セキュアプロセッサにより、前記アクティベーション列をメモリに保存する段階
をさらに有する、方法。
(付記7)
付記1に記載の方法であって、
前記セキュアプロセッサは、複数のソフトウェアアプリケーションを保護するよう構成される
ことを特徴とする、方法。
(付記8)
付記1に記載の方法であって:
前記ホストにより、前記ソフトウェアアプリケーションのタイトル識別子を読み込む段階;及び
前記ホストにより、前記セキュアプロセッサへ前記タイトル識別子を渡す段階;
をさらに有し、
前記セキュアプロセッサは、前記要求に前記タイトル識別子を含める
ことを特徴とする、方法。
(付記9)
ソフトウェアアプリケーションを実行するためのシステムであって、前記システムは、プロセッサを有するホスト及び前記ホストへ接続されるセキュアプロセッサを有し:
前記ホストは:
前記ソフトウェアアプリケーションのホストソフトウェアコード及びセキュアプロセッサソフトウェアコードを読み込み;
前記セキュアプロセッサソフトウェアコードを前記セキュアプロセッサへ渡し;
前記ホストソフトウェアコードを実行し;かつ
前記ホストソフトウェアコードを実行するとき、前記セキュアプロセッサ内の実行可能な前記セキュアプロセッサソフトウェアコードの手続を呼び出す;
よう構成され、
前記セキュアプロセッサは:
前記セキュアプロセッサソフトウェアコードを受信し;
前記ソフトウェアアプリケーションのアクティベーション列をリモートサーバへ要求し;
前記ソフトウェアアプリケーションの前記アクティベーション列を前記リモートサーバから受信し;
前記セキュアプロセッサソフトウェアコードを実行可能にするために前記アクティベーション列を使用し;
前記呼び出しへの応答を取得するために前記の実行可能なセキュアプロセッサの前記手続を実行し;かつ
前記呼び出しへの前記応答を返す;
よう構成されることを特徴とする、システム。
(付記10)
ソフトウェアアプリケーションを実行するためのシステムにおけるセキュアプロセッサであって、前記システムは、プロセッサを有し、かつ、前記セキュアプロセッサへ接続されるホストをさらに有し、前記セキュアプロセッサは:
前記ホストからセキュアプロセッサソフトウェアコードを受信し;
前記ソフトウェアアプリケーションのためのアクティベーション列をリモートサーバへ要求し;
前記ソフトウェアアプリケーションのための前記アクティベーション列をリモートサーバから受信し;
前記セキュアプロセッサソフトウェアコードを実行可能にするために前記アクティベーション列を使用し;
前記ホストから、前記セキュアプロセッサソフトウェアコードの手続のための呼び出しを受信し;
前記呼び出しへの応答を取得するために前記の実行可能なセキュアプロセッサソフトウェアコードの前記手続を実行し;かつ
前記呼び出しへの前記応答を前記ホストへ返す
よう構成される、セキュアプロセッサ。

110 ホスト
120 セキュアプロセッサ
130 ソフトウェアアプリケーション
131 ホストソフトウェアコード
132 セキュアプロセッサソフトウェアコード
133 アクティベーション列

Claims (10)

  1. プロセッサを有するホスト、ホストへ接続されるセキュアプロセッサ及びリモートサーバを有するシステムにおいてソフトウェアアプリケーションを実行する方法であって、前記方法は:
    前記ホストにより、前記ソフトウェアアプリケーションのホストソフトウェアコード及びセキュアプロセッサソフトウェアコードを読み込む段階と;
    前記セキュアプロセッサソフトウェアコードを前記セキュアプロセッサへ渡す段階と;
    前記セキュアプロセッサにより、前記ソフトウェアアプリケーションのためのアクティベーション列を前記リモートサーバへ要求する段階と;
    前記セキュアプロセッサにより、前記ソフトウェアアプリケーションのための前記アクティベーション列を前記リモートサーバから受信する段階と;
    前記セキュアプロセッサにより、前記セキュアプロセッサソフトウェアコードを実行可能にするために、前記アクティベーション列を使用する段階と;
    前記ホストにより、前記ホストソフトウェアコードを実行する段階と;
    前記ホストで実行される前記ホストソフトウェアコードにより、前記セキュアプロセッサ内の前記の実行可能なセキュアプロセッサソフトウェアコードの手続を呼び出す段階と;
    前記セキュアプロセッサにより、前記呼び出しへの応答を取得するために、前記の実行可能なセキュアプロセッサソフトウェアコードの手続を実行する段階と;
    前記セキュアプロセッサにより、前記呼び出しへの前記応答を返す段階と;
    を有する、方法。
  2. 請求項1に記載の方法であって、
    前記セキュアプロセッサソフトウェアコードは保護され、かつ、
    前記方法は、前記セキュアプロセッサにより、前記の保護されたセキュアプロセッサソフトウェアコードの保護を解除する段階
    をさらに有する、方法。
  3. 請求項2に記載の方法であって、
    前記セキュアプロセッサソフトウェアコードは暗号化によって保護され、
    前記アクティベーション列は復号鍵であり、かつ、
    前記セキュアプロセッサは、前記復号鍵を用いた復号により前記の保護されたセキュアプロセッサソフトウェアコードの保護を解除する
    ことを特徴とする、方法。
  4. 請求項1に記載の方法であって、
    前記セキュアプロセッサにより、前記セキュアプロセッサソフトウェアコードの整合性を検証する段階
    をさらに有する、方法。
  5. 請求項1に記載の方法であって、
    前記アクティベーション列は、パスワード、前記セキュアプロセッサソフトウェアコードを補完するコードの一部、および前記セキュアプロセッサソフトウェアコードの準備をさせるための前記セキュアプロセッサによって実行されるよう意図されるバイナリコードのグループから選択される
    ことを特徴とする、方法。
  6. 請求項1に記載の方法であって、
    前記セキュアプロセッサにより、前記アクティベーション列をメモリに保存する段階
    をさらに有する、方法。
  7. 請求項1に記載の方法であって、
    前記セキュアプロセッサは、複数のソフトウェアアプリケーションを保護するよう構成される
    ことを特徴とする、方法。
  8. 請求項1に記載の方法であって:
    前記ホストにより、前記ソフトウェアアプリケーションのタイトル識別子を読み込む段階;及び
    前記ホストにより、前記セキュアプロセッサへ前記タイトル識別子を渡す段階;
    をさらに有し、
    前記セキュアプロセッサは、前記要求に前記タイトル識別子を含める
    ことを特徴とする、方法。
  9. ソフトウェアアプリケーションを実行するためのシステムであって、前記システムは、プロセッサを有するホスト及び前記ホストへ接続されるセキュアプロセッサを有し:
    前記ホストは:
    前記ソフトウェアアプリケーションのホストソフトウェアコード及びセキュアプロセッサソフトウェアコードを読み込み;
    前記セキュアプロセッサソフトウェアコードを前記セキュアプロセッサへ渡し;
    前記ホストソフトウェアコードを実行し;かつ
    前記ホストソフトウェアコードを実行するとき、前記セキュアプロセッサ内の実行可能な前記セキュアプロセッサソフトウェアコードの手続を呼び出す
    よう構成され、
    前記セキュアプロセッサは:
    前記セキュアプロセッサソフトウェアコードを受信し;
    前記ソフトウェアアプリケーションのアクティベーション列をリモートサーバへ要求し;
    前記ソフトウェアアプリケーションの前記アクティベーション列を前記リモートサーバから受信し;
    前記セキュアプロセッサソフトウェアコードを実行可能にするために前記アクティベーション列を使用し;
    前記呼び出しへの応答を取得するために前記の実行可能なセキュアプロセッサの前記手続を実行し;かつ
    前記呼び出しへの前記応答を返す;
    よう構成されることを特徴とする、システム。
  10. ソフトウェアアプリケーションを実行するためのシステムにおけるセキュアプロセッサであって、前記システムは、プロセッサを有し、かつ、前記セキュアプロセッサへ接続されるホストをさらに有し、前記セキュアプロセッサは:
    前記ホストからセキュアプロセッサソフトウェアコードを受信し;
    前記ソフトウェアアプリケーションのためのアクティベーション列をリモートサーバへ要求し;
    前記ソフトウェアアプリケーションのための前記アクティベーション列をリモートサーバから受信し;
    前記セキュアプロセッサソフトウェアコードを実行可能にするために前記アクティベーション列を使用し;
    前記ホストから、前記セキュアプロセッサソフトウェアコードの手続のための呼び出しを受信し;
    前記呼び出しへの応答を取得するために前記の実行可能なセキュアプロセッサソフトウェアコードの前記手続を実行し;かつ
    前記呼び出しへの前記応答を前記ホストへ返す
    よう構成される、セキュアプロセッサ。
JP2011141759A 2010-06-28 2011-06-27 ソフトウェアアプリケーションを実行するための方法、システム及びセキュアプロセッサ Expired - Fee Related JP5847455B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP10305696A EP2400420A1 (en) 2010-06-28 2010-06-28 Method, system and secure processor for executing a software application
EP10305696.6 2010-06-28

Publications (2)

Publication Number Publication Date
JP2012009030A JP2012009030A (ja) 2012-01-12
JP5847455B2 true JP5847455B2 (ja) 2016-01-20

Family

ID=42830657

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011141759A Expired - Fee Related JP5847455B2 (ja) 2010-06-28 2011-06-27 ソフトウェアアプリケーションを実行するための方法、システム及びセキュアプロセッサ

Country Status (6)

Country Link
US (1) US20120079280A1 (ja)
EP (2) EP2400420A1 (ja)
JP (1) JP5847455B2 (ja)
KR (1) KR20120001656A (ja)
CN (1) CN102298528A (ja)
BR (1) BRPI1103067A2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6072907B2 (ja) 2012-09-18 2017-02-01 グーグル インコーポレイテッド 複数のサービスプロバイダのトラステッドサービスマネジャーとセキュアエレメントとをインターフェース接続するためのシステム、方法、およびコンピュータプログラム製品
CN103049694A (zh) * 2013-01-14 2013-04-17 上海慧银信息科技有限公司 一种智能金融交易终端的核心安全架构实现方法
US9213530B2 (en) * 2013-08-15 2015-12-15 Oracle International Corporation Runtime memory throttling
EP3258660B1 (en) * 2016-06-16 2018-10-03 Riddle & Code GmbH Protection device and dongle and method for using the same

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0266748B1 (en) * 1986-11-05 1995-02-08 International Business Machines Corporation A software protection system using a single-key cryptosystem, a hardware-based authorization system and a secure coprocessor
EP1076279A1 (en) * 1999-08-13 2001-02-14 Hewlett-Packard Company Computer platforms and their methods of operation
WO2001013198A1 (en) * 1999-08-13 2001-02-22 Hewlett-Packard Company Enforcing restrictions on the use of stored data
EP1288768A3 (de) * 2001-08-29 2004-01-02 Siemens AG Österreich Intelligenter Dongle
US20090144713A1 (en) * 2006-07-04 2009-06-04 George Russell Techniques for program performance analysis
US20080114685A1 (en) * 2006-11-15 2008-05-15 Keen Hun Leong System and method for preventing unauthorized installation of a software program
TWI335531B (en) * 2006-12-13 2011-01-01 Inst Information Industry Apparatus, method, application program, and computer readable medium thereof for generating and utilizing a feature code to monitor a program
US8181038B2 (en) * 2007-04-11 2012-05-15 Cyberlink Corp. Systems and methods for executing encrypted programs
US20100274948A1 (en) 2007-12-13 2010-10-28 Thomson Licensing Copy-protected software cartridge
US20090254482A1 (en) * 2008-04-07 2009-10-08 Microsoft Corporation Time-based licenses

Also Published As

Publication number Publication date
BRPI1103067A2 (pt) 2012-11-20
KR20120001656A (ko) 2012-01-04
US20120079280A1 (en) 2012-03-29
CN102298528A (zh) 2011-12-28
JP2012009030A (ja) 2012-01-12
EP2400420A1 (en) 2011-12-28
EP2400422A1 (en) 2011-12-28

Similar Documents

Publication Publication Date Title
CA1292791C (en) Hardware assist for protecting pc software
US8234638B2 (en) Creating a relatively unique environment for computing platforms
US8533860B1 (en) Personalized digital media access system—PDMAS part II
EP1342149B1 (en) Method for protecting information and privacy
RU2385483C2 (ru) Система и способ использования гипервизора, чтобы управлять доступом к предоставляемой в аренду вычислительной машине
TWI567580B (zh) 用於防止惡意軟體執行的方法與系統
US20050021968A1 (en) Method for performing a trusted firmware/bios update
JP5636371B2 (ja) 汎用コンピューティングデバイスにおけるコード実行制御および再帰的セキュリティプロトコルでのコード実行制御のための方法およびシステム
US20110167503A1 (en) Tpm-based license activation and validation
US20060112019A1 (en) System and method of authenticating licensed computer programs
JP2010510574A (ja) セキュアデバイス・システムにおけるフラッシュメモリ・ブロックの保護と方法
WO2010005425A1 (en) Systems and method for data security
WO2017000648A1 (zh) 一种被加固软件的认证方法及装置
WO2007044947A2 (en) Software-firmware transfer system
CN112434286A (zh) 动态库的调用方法、装置、电子装置和存储介质
JP5847455B2 (ja) ソフトウェアアプリケーションを実行するための方法、システム及びセキュアプロセッサ
JP5118700B2 (ja) 仮想マシンのアクティブ化を伴う携帯可能な大容量記憶装置
US6651169B1 (en) Protection of software using a challenge-response protocol embedded in the software
JP2010500656A5 (ja)
JP2007094879A (ja) オペレーティングシステム用基本プログラムの認証システム、これに用いるコンピュータ、およびコンピュータプログラム
JP2008021021A (ja) ソフトウエアのライセンス認証方法
EP1983458A1 (en) Media package, system comprising a media package and method of using stored data
TW487839B (en) A method of providing secure linkage of program modules
CN117216813B (zh) 用于读写数据的方法、装置和安全芯片
JP5355351B2 (ja) コンピュータ

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140613

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150708

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150811

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151009

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20151027

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151125

R150 Certificate of patent or registration of utility model

Ref document number: 5847455

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees