JP5657811B2 - ハードウェアベースセキュリティエンジンを用いるセキュアソフトウェアライセンシング及びプロビジョニング - Google Patents

ハードウェアベースセキュリティエンジンを用いるセキュアソフトウェアライセンシング及びプロビジョニング Download PDF

Info

Publication number
JP5657811B2
JP5657811B2 JP2013539891A JP2013539891A JP5657811B2 JP 5657811 B2 JP5657811 B2 JP 5657811B2 JP 2013539891 A JP2013539891 A JP 2013539891A JP 2013539891 A JP2013539891 A JP 2013539891A JP 5657811 B2 JP5657811 B2 JP 5657811B2
Authority
JP
Japan
Prior art keywords
license
computing platform
key
server
management firmware
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
JP2013539891A
Other languages
English (en)
Other versions
JP2014501966A (ja
Inventor
ダドゥ,サウラブ
プールナチャンドラン,ラジェシュ
プラカシュ,ギヤン
アイッシ,セリム
コスラヴィ,ホルムズド,エム.
Original Assignee
インテル コーポレイション
インテル コーポレイション
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 インテル コーポレイション, インテル コーポレイション filed Critical インテル コーポレイション
Publication of JP2014501966A publication Critical patent/JP2014501966A/ja
Application granted granted Critical
Publication of JP5657811B2 publication Critical patent/JP5657811B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • 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
    • 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]
    • 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/105Arrangements for software license management or administration, e.g. for managing licenses at corporate level
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/061Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
    • H04L9/3228One-time or temporary data, i.e. information which is sent for every authentication or authorization, e.g. one-time-password, one-time-token or one-time-key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/60Digital content management, e.g. content distribution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/061Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying further key derivation, e.g. deriving traffic keys from a pair-wise master key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/101Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying security measures for digital rights management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity

Description

本開示は、概してコンピューティングの分野に関する。より具体的には、本発明の一実施形態は、ハードウェアベースセキュリティエンジンを用いるコンピューティングプラットフォームへのソフトウェアのセキュアライセンシングに関する。
コンピューティング装置は、ソフトウェアとともにエンドユーザに用いられ、ソフトウェアはソフトウェアサービスプロバイダその他のベンダーにより提供される正確なライセンシング/バージョニングシステムを必要とすることがある。現在のソフトウェアライセンシングメカニズムは、一般的に、(ドングルなどの)独自ハードウェアに基づくものか、オペレーティングシステム(OS)が提供するセキュリティ機能によるセキュア暗号鍵を用いるもののいずれかである。これらのメカニズムは、OSと、暗号化/復号に用いられる鍵をセキュアするOSのサービスとに依存し、ポリシーに基づくソフトウェアライセンスに対しリース期間を強制することがある。OSにより制御されたアプリケーションは、コンピュータウィルス、ハッカー、及び悪意のあるユーザにとって格好のターゲットとなる。彼らは、高度なツールを利用してOSにより管理されたストレージ中に隠された鍵を探したり、ポリシーをバイパスする方法を見つけたりする。例えばコンピューティングシステムの時間を変更してリース時間を延ばし、又はポリシーを読むのに文書を読む者が用いるファイルを、他のシステムから取得した異なるパラメータを有する有効ファイルと置き換えたりして、ポリシーをバイパスする。独自ハードウェアソリューションにはコストがかかり、ユーザを一ベンダーに制限し、ベンダーは素早く革新的なソリューションを開発できない。よって、コンピューティングシステムにソフトウェアをライセンスする、改良されたセキュアなメカニズムが必要である。
詳細な説明は、添付した図面を参照して行う。異なる図面で同じ参照番号を用いて、同様の又は同一のアイテムを示す。
本発明の一実施形態によるシステムアーキテクチャを示す図である。 本発明の一実施形態によるセキュアライセンス管理サービスをアクティブ化するプロセスを示す図である。 本発明の一実施形態によるケーパビリティライセンスサービスをアクティブ化するプロセスを示す図である。 本発明の一実施形態による、ライセンスを取得し、制約されたソフトウェアを許可(authorize)するプロセスを示す図である。 本発明の一実施形態による、ライセンスを取得し、制約されたソフトウェアを許可(authorize)するプロセスを示す図である。 本発明の一実施形態によるコンピューティングプラットフォームを示す図である。
本発明の実施形態は、ハードウェア実施のセキュリティエンジン(SE)を用いるソフトウェアライセンシングメカニズムを提供する。SEは、コンピューティングプラットフォームのチップセットに組み込まれ、ホストOSとは独立しており、認証用リモートサーバとセキュアに通信することができる。ホストOSと独立なハードウェアコンポーネントを用いて、ソフトウェアライセンス及び/又は(アプリケーションプログラムなどの)制限付きソフトウェアの復号、及びリース期間などのポリシーの強制に必要な暗号鍵保護するので、純粋なソフトウェアベースのソリューションと比較してセキュリティソリューションがよりセキュアになる。ソフトウェアだけのソリューションと比較して、SEをハッキングして鍵を取得することはずっと難しい。SEはユーザレベルやOSソフトウェアにより改ざんできないからである。
以下の詳細な説明では、様々な実施形態をよく理解してもらうために、具体的な詳細事項を多数記載する。しかし、本発明の様々な実施形態はこれらの具体的な詳細事項がなくても実施することができる。他の場合には、本発明の具体的な実施形態を分かりにくくしないように、周知の方法、手順、コンポーネント、回路は詳細には説明していない。さらに、本発明の実施形態の様々な態様は、集積半導体回路(「ハードウェア」)、コンピュータ読み取り可能記憶媒体に記憶された一又は複数のプログラムに組織化されたコンピュータ読み取り可能命令(「ソフトウェア」)、又はハードウェアとソフトウェアの組合せなどの様々な手段を用いて実行できる。本開示の目的において、「ロジック」とは、ハードウェア、(プロセッサの動作を制御するマイクロコードなどを含む)ソフトウェア、ファームウェア、又はこれらの組合せを意味するものとする。
図1は、本発明の一実施形態によるシステムアーキテクチャ100を示す図である。明りょう化のため、図1はコンピューティングプラットフォーム102の簡略図を含む。コンピューティングプラットフォームは、少なくとも一プロセッサと少なくとも一メモリとを有する任意のタイプのコンピューティング装置である。一実施形態では、コンピューティングプラットフォームは、セルラホン、スマートホン、タブレット、パーソナルデジタルアシスタント(PDA)、ネットブックなどのハンドヘルド及び/又はモバイルコンピューティング装置を含む。コンピューティングプラットフォームがハンドヘルド及び/又はモバイル装置である一実施形態では、先行技術のシステムにおけるようにハードウェアドングルを必要とするものは実際的ではなく、問題がある。コンピューティングプラットフォームの一実施形態のより詳細な例は、図6を参照して説明する。
本発明の実施形態では、制限付きソフトウェアの不正使用をライセンス、準備及び抑止するため、セキュアな実行及び記憶環境を提供するため、セキュリティエンジン(SE)108と呼ぶ組み込みマイクロコントローラを用いる。一実施形態では、セキュリティエンジン108は、チップセット106中の周知のマネージャビリティエンジン(ME)ハードウェアコンポーネント内の機能として実施してもよい。他の実施形態では、セキュリティエンジンは、MEとは別の、チップセット106内の回路として実施してもよい。SEはファームウェアを有する。このファームウェアは、セキュアな実行環境においてマイコロコントローラ上で実行され、コンピューティングプラットフォーム102中のプロセッサで実行されるユーザレベルプログラム、オペレーティングシステム(OS)、ベーシック入出力システム(BIOS)による改ざんから保護されたセキュア記憶エリア109を提供する。一実施形態では、セキュアストレージは、ソフトウェアライセンシングの目的で用いられる暗号鍵その他のデータを記憶している。セキュアストレージはいかなるタイプのメモリであってもよい。
一実施形態では、SEは少なくとも2つのファームウェアモジュールを有する。セキュアライセンスマネージメント(SLM)サービス112は、ライセンス情報とそれに関連するポリシーを復号するのに必要な鍵の記憶を管理するファームウェアモジュールを有する。ケーパビリティライセンシングサービス(CLS)110は、SEにおいてSLMサービスのセキュアプロビジョニングを提供するファームウェアモジュールを有する。コンピューティングプラットフォーム102は、チップセット106に結合した少なくとも一のプロセッサ104を含む。プロセッサ104は、ホストアプリケーション116と呼ぶアプリケーションプログラムを実行する。ホストアプリケーションは、コンピューティングプラットフォーム上にインストールされた制限付きソフトウェアを使い使用の許可を受ける目的で、コンピューティングプラットフォームのユーザとインターラクションする。制限付きソフトウェアは、ソフトウェアベンダが、ポリシーを定めて、ライセンスにより管理したいソフトウェアを含む。一実施形態では、ホストアプリケーション116は、セキュリティエンジンインタフェース(SEI)114により、SE108と通信する。様々な実施形態では、SEIは、既知の標準的通信インタフェース又は独自の通信インタフェースの一により実施できる。SEは、そのケーパビリティを、パブリック又はプライベートのセキュアアプリケーションプログラムインタフェース(API)により、OS(図1には図示せず)とホストアプリケーションとに公開している。
コンピューティングプラットフォーム102は、既知の方法を用いてネットワーク118と通信する。一実施形態では、ネットワークはインターネットである。一実施形態では、ホストアプリケーション116はネットワークと通信でき、またホストアプリケーション116やプロセッサ104により実行されるその他のプログラム(ユーザレベルプログラムやOSにかかわらず)とは独立に、SE108もネットワークと通信できる。このように、SE108は、プロセッサにより実行されるプログラムとは別に、コンピューティングプラットフォームに対して他の通信チャネルを提供する。ライセンスサーバ120は、ネットワークに結合し、ライセンスと通信ポリシーをプロビジョニングするケーパビリティと復号鍵をSEに提供する。一実施形態では、ライセンスサーバは、制限付きソフトウェアを、ユーザのコンピューティングプラットフォームに供給する。ある実施形態では、複数のライセンスサーバがあってもよい。一実施形態では、各ライセンスサーバは、ソフトウェアベンダ(独立ソフトウェアベンダ(ISV))により運営されてもよい。オーソライゼーションサーバ122が、ネットワークに結合し、CLSをイネーブルし、SE中のCLS110とSLM112をアクティブ化又は非アクティブ化する。
一実施形態では、ソフトウェアアプリケーションの取得及びライセンシングの前に、SLMサービス112はアクティブ化されなければならない。アクティブ化は、オーソライゼーションサーバ122を用いた実現できる。一実施形態では、SEは、オーソライゼーションサーバの暗号鍵のうち公開部分にアクセスできる。この部分は、コンピューティングプラットフォームの製造時に、そのチップセット106に書き込まれた(fused)ものであっても良い。SEは、オーソライゼーションサーバの公開鍵を用いて、オーソライゼーションサーバとのセキュア通信チャネルを生成できる。アクティブ化フローは、SLMサービスについて必要な修正をしたCLSアクティブ化プロセスに従う。アクティブ化プロセスは、ライセンスサーバの公開鍵をSEに記憶し、SLMサービスとライセンスサーバがその間にセキュアな通信チャネルを生成できるようにする。
図2は、本発明の一実施形態によるSLMサービスをアクティブ化するプロセス200を示す図である。ブロック202において、ユーザはライセンスサーバ120に接続し、ホストアプリケーションをダウンロードして実行し、所望の制限付きソフトウェアのライセンスをユーザのコンピューティングプラットフォーム102にインストールする。この接続は、周知のように、ウェブブラウザを用いて行える。制限付きソフトウェアは、コンピューティングプラットフォーム上でユーザにより使用される任意のプログラムであが、そのソフトウェアへのアクセスはライセンスメカニズムにより制限されている。ブロック204において、ホストアプリケーションはCLSアクティブ化プロセスを実行し、新しいオーソライゼーション(Authorization)をインストールし、SLMサービス112をアクティブ化する。一実施形態では、この処理はコンピューティングプラットフォームに対して一度だけ実行できる。他の実施形態では、この処理は制限付きソフトウェアをインストールする前に実行できる。
図3は、本発明の一実施形態によるケーパビリティライセンスサービス(CLS)をアクティブ化するプロセス300を示す図である。ブロック302において、ライセンスサーバ120は、ホストアプリケーション116とSEI114を介して、SE108内のCLS110に、ライセンスサーバの公開鍵を有するパーミット生成オブジェクト(create permit object)を送信する。ブロック304において、CLSは許可生成オブジェクトを用いてパーミット(permit)を生成し、そのパーミットをホストアプリケーションを介してライセンスサーバに送信する。ブロック306において、ライセンスサーバはそのパーミットにオーソライゼーションプロダクト鍵を付加し、ライセンスとパーミットの組合せをオーソライゼーションサーバ122に送信する。ブロック308において、オーソライゼーションサーバは、オーソライゼーションプロダクト鍵を確認し、成功裏に確認されれば、ルートパーミットサーバ鍵の秘密部分を用いて、そのパーミットに署名する。RPSKの公開部分は、コンピューティングプラットフォーム102の製造時に、SE108に格納されている。次に、ブロック310において、オーソライゼーションサーバは、ライセンスサーバとホストアプリケーションを介してCLSに、署名されたパーミットを送信する。署名されたパーミットを受信した時、ブロック312において、CLSは、RPSKの公開部分を用いて、署名されたパーミットを確認し、成功裏に確認されれば、パーミットデータを保存し、SLMサービスをアクティブ化する。最後に、ブロック314において、CLSは、ホストアプリケーションとライセンスサーバを介してオーソライゼーションサーバに、アクティブ化確認(activation confirmation)を送信する。
一実施形態では、オーソライゼーションサーバは、SEの製造者により所有及び/又は運営されてもよい。ライセンスサーバは、SLMサービスのサービスプロバイダ(例えば、ハードウェアメカニズムによりソフトウェアの使用を保護したいISV)により所有及び/又は運営されてもよい。一実施形態では、SEは、最初にコンピューティングプラットフォームが出荷される時に、オーソライゼーションサーバのみを信頼する。その後、オーソライゼーションサーバを用いて、SLMサービスの管理のため、ライセンスサーバに、信頼関係を委託(delegate)する。このように、コンピューティングプラットフォームの購入後、ユーザによりSLMサービスが付加される。これにより、ユーザが、同様のサービスを提供する複数のプロバイダからSLMサービスプロバイダを選択するフレキシビリティを提供できる。また、これにより、SE製造者と取引関係にあるサービスプロバイダのみに信頼関係を委託するセキュアな方法を提供できる。
図2に戻り、CLSアクティブ化プロセスが不成功であれば、エラー状態が報告され、アクティブ化処理は終了する。SLMサービスのアクティブ化が成功すれば、ブロック206において、ライセンスサーバ120は自機の時間をSLMサービスと同期させ、ライセンスのダウンロードの際、リース時間を適切に設定できるようにする。ホストアプリケーション116は、時間を同期した後、ブロック208においてパスワードを入力するようにユーザにプロンプトする。
ブロック210において、ホストアプリケーションは、(周知のコンピューティングプラットフォーム入力技術により)ユーザパスワードを受け取り、(製造プロセス中にSE内のセキュアストレージに記憶された)SLMサービス112の公開鍵でそのユーザパスワードを暗号化し、オーソライゼーションサーバ122にその暗号化したパスワードを送信する。ブロック212において、オーソライゼーションサーバは、その秘密鍵で、暗号化されたパスワードに署名し、その結果得られたメッセージ(暗号化され署名されたユーザパスワード)をSLMサービス112に送信する。ブロック214において、SLMサービスは、(製造時にSEに格納された)オーソライゼーションサーバの公開鍵を用いてそのメッセージを確認し、暗号化されたパスワードをSLMサービスの秘密鍵を用いて復号し、確認が成功すると、ユーザパスワードをセキュアストレージ109に記憶する。
SLMサービスの非アクティブ化は、CLS非アクティブ化プロセスを実行し、アクティブ化オーソライゼーション(activation Authorization)をヌルオーソライゼーション(null Authorization)で置き換えることにより、実現できる。
図4と図5は、本発明の一実施形態による、ライセンスを取得し、制約されたソフトウェアを許可(authorize)するプロセス400と500を示す図である。ブロック402において、ユーザは、ライセンスサーバ120に、ユーザのコンピューティングプラットフォーム102における使用のライセンスとともに、制限付きソフトウェアをダウンロードするように要求する。一実施形態では、この要求はホストアプリケーションを介して為される。ブロック404において、ライセンスサーバは、ライセンス暗号鍵(LEK)を生成し、LEKを用いて、要求された制限付きソフトウェアを暗号化する。一実施形態では、LEKは対称鍵である。ブロック406において、ライセンスサーバはLEKを用いてライセンスを生成する。一実施形態では、ライセンスは、要求された制限付きソフトウェアの一意的識別子、ユーザに関する情報、ソフトウェアを用いるリース期間、及びLEKを含む。ライセンスサーバはSLMサービスの公開鍵を用いてライセンスを暗号化する。一実施形態では、ホストアプリケーションはSLMサービスの公開鍵をユーザ要求の一部としてライセンスサーバに送信する。ライセンスサーバはライセンスサーバの秘密鍵を用いてライセンスに署名する。
ブロック408において、ライセンスサーバは、暗号化された制限付きソフトウェアと署名されたライセンスとを、ユーザのコンピューティングプラットフォーム上のホストアプリケーションに送信する。一実施形態では、ホストアプリケーションは、暗号化された制限付きソフトウェアと署名されたライセンスとを、コンピューティングプラットフォーム上のメモリに記憶する。他の一実施形態では、暗号化された制限付きソフトウェア及び/又はライセンスは、セキュアストレージ109に記憶される。ブロック410において、ユーザがソフトウェアの使用を要求する。ブロック412において、ホストアプリケーションはユーザにそのユーザのパスワードを入力するようにプロンプトする。ブロック414において、ユーザはパスワードを入力する。処理は図5のブロック502に続く。ブロック502において、ホストアプリケーションは、ユーザパスワードから対称鍵を求める。一実施形態では、このプロセスは、Password-Based Cryptography Specification (PKCS #5), Version 2.0, September 2000,B. Kaliski, RSA Laboratories, Request for Comments 2898により実施できる。他の実施形態では、他の鍵生成メカニズムを用いても良い。ブロック504において、ホストアプリケーションは、対称鍵で署名されたメッセージで、暗号化されたライセンスを、SEI114によりSLMサービス112に送信する。ブロック506において、SLMサービスは、ブロック214で記憶されたユーザパスワードから、対称鍵を求める。SLMサービスはメッセージのデジタル署名を確認する。SLMサービスは、メッセージの署名が正しいことが確認されると、さらに、ライセンスサーバの公開鍵を用いて、暗号化されたライセンスのライセンスサーバの署名を確認する。ライセンス署名が確認されると、SLMサービスは、SLMサービスの秘密鍵を用いて、暗号化されたライセンスを復号し、リース期限が過ぎていないことを確認する。リース期限が経過していなければ、ブロック508において、SLMサービスは、ライセンスからLEKを取り出し、そのLEKをホストアプリケーションに送信する。ブロック510において、ホストアプリケーションは、LEKを用いて、暗号化された制限付きソフトウェアを復号し、コンピューティングプラットフォーム上のソフトウェアへのアクセスを許可する。
一実施形態では、LEKは一意的であり、あるリース期間のみに対して生成され、ワンタイムで使用されるだけであってもよい。LEKは、一旦使用されると、ハッカーが鍵にアクセスできたとしても、有用ではなくなる。一実施形態では、SLMサービスは、LEKを用いて、暗号化されたソフトウェアを復号し、復号の結果得られたソフトウェアをホストアプリケーションに提供する。一実施形態では、LEKは一時的にメモリに記憶されるが、ハードディスクドライブには記憶されない。さらなる保護のため、一実施形態では、ホストアプリケーションは既知の方法により改ざん耐久性があるようにできる。
一実施形態では、コンピューティングプラットフォームに複数のオーソライゼーションがインストールされ、ユーザは複数のソフトウェアベンダから得られる制限付きソフトウェアプロダクトを同時にサブスクライブ(subscribe)できる。
一実施形態では、コンピューティングプラットフォームをさらに保護するため、コンピューティングプラットフォームの既知の窃盗対策技術を含んでいてもよい。一実施形態では、窃盗状態がトリガーされると、SLMサービスはライセンス暗号鍵(LEK)をホストアプリケーションに送信せずに、盗まれたコンピューティングプラットフォームでソフトウェアが使われることを防止する。他の一実施形態では、窃盗状態がトリガーされると、SLMサービスは、暗号化されたソフトウェアを復号しない。
一実施形態では、ホストアプリケーションは、上記の通りインストレーション機能を有する。他の一実施形態では、ホストアプリケーションは、制限付きソフトウェアだけでなくインストレーション機能を含む。一実施形態では、インストレーションはコンピューティングプラットフォームに対して一度だけ実行できる。他の一実施形態では、インストレーションは制限付きソフトウェアのインストールを試みる前に実行できる。
図6は、本発明の一実施形態によるコンピューティングプラットフォーム環境を示す図である。様々な実施形態では、システム600の一又は複数のコンポーネントは、本発明の実施形態を参照してここに説明する一又は複数の動作を実行できる様々な電子デバイスに設けることができる。例えば、システム600の一又は複数のコンポーネントを用いて、ここに説明する動作に従って例えば、命令を処理し、あるいはサブルーチンを実行するなどして、図1−5を参照して説明した動作を実行する。また、(例えば、図6を参照して)ここに説明する様々な記憶デバイスは、データ、動作結果などの記憶に用いることができる。一実施形態では、ネットワーク603を介して、又はローカルメモリデバイスから受け取ったデータは、プロセッサ602に備えられたキャッシュに記憶されてもよい。これらのプロセッサは、本発明の様々な実施形態によりここで説明する動作を用いる。図6のコンピューティングシステムは、モバイルコンピューティング装置、ハンドヘルドコンピューティング装置、又は据え置き型コンピューティング装置に組み込まれていてもよい。
より具体的には、コンピューティングシステム600は、相互接続ネットワーク(すなわちバス)604を介して通信する一又は複数の中央処理ユニット(CPU)602又はプロセッサを含む。したがって、ここに説明する様々な動作は、ある実施形態では、プロセッサにより実行される。さらに、プロセッサ602は、汎用プロセッサ、(コンピュータネットワーク603を介して通信されるデータを処理する)ネットワークプロセッサ、(RISC(reduced instruction set computer)又はCISC(complex instruction set computer)を含む)その他のタイプのプロセッサを含む。さらに、プロセッサ602はシングルコアデザインでもマルチコアデザインでもよい。マルチコアデザインのプロセッサ602は、同じ集積回路(IC)ダイ上に異なるタイプのプロセッサコアを集積したものであってもよい。また、マルチコアデザインのプロセッサ602は、対称又は非対称のマルチプロセッサとして実装されてもよい。さらに、図1−5を参照して説明した動作は、システム600の一又は複数のコンポーネントにより実行できる。一実施形態では、(プロセッサ1 602−1などの)プロセッサは、ハードワイヤードロジック(例えば、回路)又はマイクロコードとして、セキュアライセンス管理サービス及び/又はケーパビリティライセンシングサービスを有する。一実施形態では、これらのコンポーネントは、セキュリティエンジンに記憶されたファームウェアとして実装できる。
チップセット606も相互接続604で通信できる。チップセット606は、グラフィックス・メモリコントロールハブ(GMCH)608を含む。GMCH608は、メモリ612と通信するメモリコントローラ610を含む。メモリ612は、コンピューティングシステム600に含まれるプロセッサ602その他のデバイスにより実行される命令シーケンスを含むデータを記憶する。さらに、メモリ612は、(実行のためにプロセッサ602にロードされる前の)ホストアプリケーション116、暗号化されたライセンス、暗号化された制限付きソフトウェアプログラム、実行ファイルに対応する命令、マッピングなどのここで説明する一又は複数のプログラム又はアルゴリズムを記憶できる。(命令を含む)このデータの少なくとも一部は、ディスクドライブ628に、及び/又はプロセッサ602中の一又は複数のキャッシュに記憶できる。本発明の一実施形態では、メモリ612は、ランダムアクセスメモリ(RAM)、ダイナミックRAM(DRAM)、シンクロナスDRAM(SDRAM)、スタティックRAM(SRAM)、又はその他のタイプの記憶デバイスなどの一又は複数の揮発性ストレージ(すなわちメモリ)を含む。ハードディスクなどの不揮発性メモリも利用できる。複数のプロセッサ及び/又は複数のシステムメモリなど別のデバイスも、相互接続ネットワーク604を介して通信できる。
GMCH608は、ディスプレイ616と通信するグラフィックスインタフェース614も含む。本発明の一実施形態では、グラフィックスインタフェース614は、AGP(accelerated graphics port)を介してディスプレイ616と通信できる。本発明の一実施形態では、ディスプレイ616はフラットパネルディスプレイ又はタッチスクリーンディスプレイである。これらは、例えば信号変換器によりグラフィックスインタフェース614と通信する。信号変換器は、ビデオメモリやシステムメモリなどの記憶デバイスに記憶された画像のデジタル表現をディスプレイ信号に変換する。ディスプレイ信号はディスプレイ616により解釈され表示される。インタフェース614により生成されたディスプレイ信号は、ディスプレイ616により解釈され、ディスプレイ616上に表示される前に、様々な制御デバイスを通して送られる。
ハブインタフェース618により、GMCH608と入出力(I/O)コントロールハブ(ICH)620が通信できる。ICH620は、コンピューティングシステム600と通信するI/Oデバイスにインタフェースを提供する。ICH620は、ペリフェラルコンポーネント相互接続(PCI)ブリッジ、ユニバーサルシリアルバス(USB)コントローラ、又はその他のタイプのペリフェラルブリッジやコントローラなどのペリフェラルブリッジ(又はコントローラ)624を通してバス622と通信できる。ブリッジ624は、プロセッサ602とペリフェラルデバイスとの間にデータパスを提供する。他のタイプのトポロジーも利用できる。また、複数のバスが、例えば複数のブリッジ又はコントローラにより、ICH620と通信できる。さらに、ICH620と通信する他のペリフェラルには、本発明の様々な実施形態において、IDE(integrated drive electronics)又はSCSI(small computer system interface)ハードディスクドライブ、USBポート、キーボード、マウス、パラレルポート、シリアルポート、フロッピィ(登録商標)ディスクドライブ、デジタル出力サポート(DVI(digital video interface)など)、その他のデバイスが含まれる。一実施形態では、ICHはセキュリティエンジン108を有する。一実施形態では、セキュリティエンジンはICH内のファームウェアとして実装できる。
バス622は、オーディオデバイス626、一又は複数のディスクドライブ628、及びネットワークインタフェースデバイス630と通信できる。これらは(例えば、インターネット等の)コンピュータネットワーク603と通信できる。一実施形態では、デバイス630は、有線又は無線通信機能を有するネットワークインタフェースコントローラ(NIC)である。他のデバイスはバス622を介して通信できる。また、本発明の実施形態では、様々なコンポーネントがGMCH608と通信できる。また、プロセッサ602、GMCH608、及び/又はグラフィックスインタフェース514を結合して単一チップとしてもよい。
一実施形態では、セキュリティエンジン108は、プロセッサ602による動作とは独立に、(ICH620を介して)バス622及びネットワークインタフェースデバイス630を通じて、ネットワーク603と通信する。
さらに、コンピューティングシステム600は揮発性及び/又は不揮発性のメモリ(又はストレージ)を含む。例えば、不揮発性メモリは、次のうち一又は複数を含む:リードオンリメモリ(ROM)、プログラマブルROM(PROM)、イレーザブルPROM(EPROM)、電気的EPROM(EEPROM)、ディスクドライブ、フロッピィ(登録商標)ディスク、コンパクトディスクROM(CD−ROM)、デジタルバーサタイルディスク(DVD)、フラッシュメモリ、光磁気ディスク、又は(命令などを含む)電子的データを記憶することができる他のタイプの不揮発性機械読み取り可能媒体を含む。
他の一実施形態では、システム600のコンポーネントはポイント・ツー・ポイント(PtP)構成で構成できる。例えば、プロセッサ、メモリ、及び/又は入出力デバイスは、複数のポイント・ツー・ポイントインタフェースにより相互接続される。一実施形態では、チップセット606は、メモリコントローラハブ(MCH)とセキュリティエンジンとを有する。
本発明の様々な実施形態では、例えば、図1−5を参照してここで説明した動作は、ハードウェア(例えば、論理回路)、ソフトウェア(例えば、図6を参照して説明したプロセッサなどのプロセッサの動作を制御するマイクロコードを含む)、ファームウェア、又はこれらの組合せとして実装できる。これらは、コンピュータ(例えば、コンピューティング装置のプロセッサその他のロジック)のプログラムに用いられ、ここに説明する動作を実行させる命令(又はソフトウェアプロシージャ)を記憶した有体の機械読み取り可能又はコンピュータ読み取り可能媒体を含むコンピュータプログラム製品として提供できる。機械読み取り可能媒体は、ここに説明したような記憶デバイスを含み得る。
本明細書において「一実施形態」とは、その実施形態に関して説明する機能、構造、特徴が少なくとも1つの実施形態に含まれることを意味している。本明細書ではいろいろな箇所で「一実施形態とは」と記載するが、同じ実施形態を指すものであってもなくてもよい。
また、以下の説明及び請求項において、「coupled」と「connected」との用語及びその変化形を用いることがある。本発明のある実施形態では、「接続された(connected)」という用語を用いて、2以上の要素が互いに物理的または電気的に直接的に接触していることを示している。「結合された」という用語は、2つ以上の要素が物理的または電気的に直接的に接触していることを示している。しかし、「結合された」という用語は、複数の要素が互いに直接的には接触してないが、互いに協働または相互作用することを示している。
また、かかるコンピュータ読み取り可能媒体は、コンピュータプログラム製品としてダウンロード可能であってもよい。この場合、プログラムは、通信リンク(例えば、バス、モデム、又はネットワーク接続)を介して、リモートコンピュータ(例えば、サーバ)から要求コンピュータ(例えば、クライアント)に、データ信号により転送できる。
よって、本発明の実施形態を構造的特徴及び/又は方法動作の具体的な言葉で説明したが、言うまでもなく、本発明は説明した具体的な特徴や動作に限定されない。むしろ、具体的な特徴や動作は、請求した主題を実施する形式例として開示したものである。

Claims (30)

  1. ネットワークを通じて第1のサーバからコンピューティングプラットフォームへライセンスとアプリケーションプログラムをプロビジョニングする方法であって、前記ライセンスは第1の公開鍵を用いて前記第1のサーバにより暗号化され、第2の鍵を含み、前記アプリケーションプログラムは前記第2の鍵を用いて前記第1のサーバにより暗号化され、前記方法は、
    前記コンピューティングプラットフォームのプロセッサにより実行されるホストアプリケーションが、ユーザのユーザパスワードを受け取るステップと、
    前記ホストアプリケーションが、前記ユーザパスワードから、少なくとも部分的に対称鍵を求めるステップと、
    前記ホストアプリケーションが、前記対称鍵で署名されたメッセージで、前記コンピューティングプラットフォームのチップセット中のハードウェアで実装されたセキュリティエンジンのライセンス管理ファームウェアコンポーネントに、ライセンスを送るステップと、
    前記ライセンス管理ファームウェアコンポーネントが、前記ハードウェアで実装されたセキュリティエンジンのセキュアストレージに記憶された前記ユーザパスワードから少なくとも部分的に前記対称鍵を求め、前記対称鍵を用いて前記メッセージに対する署名を確認し、前記ライセンスに対する前記第1のサーバの署名を確認し、前記第1の公開鍵に対応する前記ライセンス管理ファームウェアコンポーネントの第1の秘密鍵を用いて前記ライセンスを復号して、前記第2の鍵を取得するステップと、
    前記ライセンス管理ファームウェアコンポーネントが、前記第2の鍵を前記ホストアプリケーションに送るステップと、
    前記ホストアプリケーションが、前記第2の鍵を用いて前記アプリケーションプログラムを復号するステップと
    を有する、方法。
  2. 前記コンピューティングプラットフォームが、前記第1のサーバに接続して、前記ホストアプリケーションを前記コンピューティングプラットフォームにダウンロードするステップをさらに有する、請求項1に記載の方法。
  3. 前記セキュリティエンジンのケーパビリティライセンシングサービスが、前記ユーザパスワードを受け取る前に、前記第1のサーバと前記ライセンス管理ファームウェアコンポーネントとの間の許可された通信チャネルをアクティブ化するステップをさらに有する、請求項2に記載の方法。
  4. 前記ライセンス管理ファームウェアコンポーネントの時間を前記第1のサーバの時間と同期するステップをさらに有する、請求項1に記載の方法。
  5. 前記ライセンス管理ファームウェアコンポーネントが、前記ライセンスを復号する前に、前記アプリケーションプログラムの許可された仕様のリース期限が徒かしたか確認するステップをさらに有する、請求項4に記載の方法。
  6. 前記ライセンスは、前記アプリケーションプログラムの一意的な識別子、前記ユーザのコンピューティングプラットフォームによる前記アプリケーションプログラムの許可された仕様のリース期限、及び前記第2の鍵を有する、請求項1に記載の方法。
  7. 前記コンピューティングプラットフォームにおいて窃盗状態がトリガーされたとき、前記ライセンス管理ファームウェアコンポーネントから前記ホストアプリケーションに前記第2の鍵を送らないステップをさらに有する、請求項1に記載の方法。
  8. コンピューティングプラットフォームであって、
    ホストアプリケーションを実行するプロセッサと、
    前記ホストアプリケーションを記憶するメモリと、
    インタフェースを通して前記プロセッサと結合したチップセットであって、前記チップセットはハードウェアで実装したセキュリティエンジンを有し、前記セキュリティエンジンはセキュアストレージとライセンス管理ファームウェアコンポーネントとを含む、チップセットとを有し、
    前記コンピューティングプラットフォームは、ネットワークを通じて第1のサーバから前記コンピューティングプラットフォームへライセンスとアプリケーションプログラムをプロビジョニングするように構成され、前記ライセンスは第1の公開鍵を用いて前記第1のサーバにより暗号化され、第2の鍵を含み、前記アプリケーションプログラムは前記第2の鍵を用いて前記第1のサーバにより暗号化され、
    前記ホストアプリケーションは、実行されたとき、ユーザのユーザパスワードを受け取り、前記ユーザパスワードから少なくとも部分的に対称鍵を求め、前記対称鍵で署名されたメッセージで、前記ライセンス管理ファームウェアコンポーネントに前記ライセンスを送り、
    前記ライセンス管理ファームウェアコンポーネントが、前記セキュアストレージに記憶された前記ユーザパスワードから少なくとも部分的に前記対称鍵を求め、前記対称鍵を用いて前記メッセージに対する署名を確認し、前記ライセンスに対する前記第1のサーバの署名を確認し、前記第1の公開鍵に対応する前記ライセンス管理ファームウェアコンポーネントの第1の秘密鍵を用いて前記ライセンスを復号して、前記第2の鍵を取得し、前記第2の鍵を前記ホストアプリケーションに送り、
    前記ホストアプリケーションは、実行されたとき、前記第2の鍵を用いて前記アプリケーションプログラムを復号する、
    コンピューティングプラットフォーム。
  9. 前記コンピューティングプラットフォームは、前記第1のサーバに接続され、前記ホストアプリケーションをダウンロードして前記メモリに記憶させる、請求項8に記載のコンピューティングプラットフォーム。
  10. 前記ハードウェアで実装されたセキュリティエンジンは、前記ユーザパスワードを受け取る前に、前記第1のサーバと前記ライセンス管理ファームウェアコンポーネントとの間の許可された通信チャネルをアクティブ化するケーパビリティライセンシングサービスコンポーネントを有する、請求項9に記載のコンピューティングプラットフォーム。
  11. 前記ライセンス管理ファームウェアコンポーネントは前記ライセンス管理ファームウェアコンポーネントの時間を前記第1のサーバの時間と同期する、請求項8に記載のコンピューティングプラットフォーム。
  12. 前記ライセンスを復号した後に、前記ライセンス管理ファームウェアコンポーネントが、前記アプリケーションプログラムの許可された仕様のリース期限が徒かしたか確認する、請求項11に記載のコンピューティングプラットフォーム。
  13. 前記ライセンスは、前記アプリケーションプログラムの一意的な識別子、前記ユーザのコンピューティングプラットフォームによる前記アプリケーションプログラムの許可された仕様のリース期限、及び前記第2の鍵を有する、請求項8に記載のコンピューティングプラットフォーム。
  14. 前記ライセンス管理ファームウェアコンポーネントは、前記コンピューティングプラットフォームにおいて窃盗状態がトリガーされたとき、前記ホストアプリケーションに前記第2の鍵を送らない、請求項8に記載のコンピューティングプラットフォーム。
  15. ネットワークにより第1のサーバからコンピューティングプラットフォームにライセンスとアプリケーションプログラムをプロビジョニングする方法であって、
    前記コンピューティングプラットフォーム上のプロセッサにより実行されているホストアプリケーションが、前記第1のサーバから前記ライセンスと前記アプリケーションプログラムを受け取るステップであって、前記ライセンスは前記コンピューティングプラットフォームのチップセット中のハードウェアで実装されたセキュリティエンジンのライセンス管理ファームウェアコンポーネントの公開鍵を用いて、前記第1のサーバにより暗号化され、前記アプリケーションプログラムは前記第1のサーバにより生成されたライセンス暗号化鍵を用いて前記第1のサーバにより暗号化され、前記暗号化されたライセンスは前記第1のサーバの秘密鍵により署名され、前記暗号化され署名されたライセンスと前記暗号化されたアプリケーションプログラムとを前記コンピューティングプラットフォームのメモリに記憶させる、ステップと、
    前記ホストアプリケーションが、前記コンピューティングプラットフォームのユーザからパスワードを取得するステップと、
    前記ホストアプリケーションが、前記パスワードから少なくとも部分的に対称鍵を求め、前記暗号化され署名されたライセンスを含むメッセージを前記対称鍵で署名するステップと、
    前記メッセージを、前記ホストアプリケーションから、前記ハードウェアで実装されたセキュリティエンジンのライセンス管理ファームウェアコンポーネントに送るステップと、
    前記ライセンス管理ファームウェアコンポーネントが、前記パスワードから、少なくとも部分的に前記対称鍵を求めるステップと、
    前記ライセンス管理ファームウェアコンポーネントが、前記対称鍵を用いて前記メッセージの署名を確認するステップと、
    前記メッセージの署名が正しいと確認されたとき、前記第1のサーバの公開鍵を用いて前記暗号化されたライセンスの署名を確認し、前記ライセンス署名が正しいと確認されたとき、前記ライセンス管理ファームウェアコンポーネントの秘密鍵を用いて前記暗号化されたライセンスを復号するステップと、
    前記ライセンス管理ファームウェアコンポーネントが、前記ライセンスからライセンス暗号化鍵を取り出し、前記ライセンス暗号化鍵を前記ホストアプリケーションに送るステップと、
    前記ホストアプリケーションが、前記ライセンス暗号化鍵を用いて、前記暗号化されたアプリケーションプログラムを復号し、前記コンピューティングプラットフォームにおいて前記アプリケーションプログラムへのアクセスを許可するステップと
    を有する、方法。
  16. 前記ライセンス管理ファームウェアコンポーネントが、前記対称鍵を求める前に、
    前記ホストアプリケーションが、前記コンピューティングプラットフォームのユーザからパスワードを取得するステップと、
    前記ホストアプリケーションが、前記ライセンス管理ファームウェアコンポーネントの公開鍵で前記パスワードを暗号化するステップと、
    前記ホストアプリケーションが、前記暗号化されたパスワードを、前記ネットワークにより前記コンピューティングプラットフォームに結合した第2のサーバに送るステップと、
    前記ライセンス管理ファームウェアコンポーネントが、前記第2のサーバの秘密鍵により署名された前記暗号化されたパスワードを受け取るステップと、
    前記ライセンス管理ファームウェアコンポーネントが、前記暗号化されたパスワードの署名を確認し、前記署名が正しいと確認されたとき、前記ライセンス管理ファームウェアコンポーネントの秘密鍵を用いて前記暗号化されたパスワードを復号し、前記パスワードを前記セキュアエンジン中のセキュアストレージに記憶させるステップと
    をさらに有する、請求項15に記載の方法。
  17. 前記コンピューティングプラットフォームが、前記第1のサーバに接続して、前記ホストアプリケーションを前記コンピューティングプラットフォームにダウンロードするステップをさらに有する、請求項15に記載の方法。
  18. 前記セキュリティエンジンのケーパビリティライセンシングサービスが、前記ユーザパスワードを受け取る前に、前記第1のサーバと前記ライセンス管理ファームウェアコンポーネントとの間の許可された通信チャネルをアクティブ化するステップをさらに有する、請求項17に記載の方法。
  19. 前記ライセンス管理ファームウェアコンポーネントの時間を前記第1のサーバの時間と同期するステップをさらに有する、請求項15に記載の方法。
  20. 前記ライセンス管理ファームウェアコンポーネントが、前記ライセンスを復号する前に、前記アプリケーションプログラムの許可された仕様のリース期限が徒かしたか確認するステップをさらに有する、請求項19に記載の方法。
  21. 前記ライセンスは、前記アプリケーションプログラムの一意的な識別子、前記ユーザのコンピューティングプラットフォームによる前記アプリケーションプログラムの許可された仕様のリース期限、及び前記ライセンス暗号化鍵を有する、請求項15に記載の方法。
  22. 前記コンピューティングプラットフォームにおいて窃盗状態がトリガーされたとき、前記ライセンス管理ファームウェアコンポーネントから前記ホストアプリケーションに前記ライセンス暗号化鍵を送らないステップをさらに有する、請求項15に記載の方法。
  23. コンピューティングプラットフォームであって、
    ホストアプリケーションを実行するプロセッサと、
    前記ホストアプリケーションを記憶するメモリと、
    インタフェースを通して前記プロセッサと結合したチップセットであって、前記チップセットはハードウェアで実装したセキュリティエンジンを有し、前記セキュリティエンジンはセキュアストレージとライセンス管理ファームウェアコンポーネントとを含む、チップセットとを有し、
    前記コンピューティングプラットフォームは、ネットワークにより第1のサーバからライセンスとアプリケーションプログラムをプロビジョニングし、
    前記ホストアプリケーションは前記第1のサーバから前記ライセンスと前記アプリケーションプログラムを受け取り、前記ライセンスは前記コンピューティングプラットフォームのチップセット中のハードウェアで実装されたセキュリティエンジンのライセンス管理ファームウェアコンポーネントの公開鍵を用いて、前記第1のサーバにより暗号化され、前記アプリケーションプログラムは前記第1のサーバにより生成されたライセンス暗号化鍵を用いて前記第1のサーバにより暗号化され、前記暗号化されたライセンスは前記第1のサーバの秘密鍵により署名され、前記暗号化され署名されたライセンスと前記暗号化されたアプリケーションプログラムとを前記メモリに記憶させ、ユーザからパスワードを取得し、前記パスワードから少なくとも部分的に対称鍵を求め、前記暗号化され署名されたライセンスを含むメッセージを前記対称鍵で署名し、前記メッセージを前記ライセンス管理ファームウェアコンポーネントに送り、
    前記ライセンス管理ファームウェアコンポーネントは、前記パスワードから少なくとも部分的に前記対称鍵を求め、前記対称鍵を用いて前記メッセージに対する署名を確認し、前記メッセージの署名が正しいと確認されたとき、前記第1のサーバの公開鍵を用いて前記暗号化されたライセンスの署名を確認し、前記ライセンス署名が正しいと確認されたとき、前記ライセンス管理ファームウェアコンポーネントの秘密鍵を用いて前記暗号化されたライセンスを復号し、前記ライセンスから前記ライセンス暗号化鍵を取り出し、前記ライセンス暗号化鍵を前記ホストアプリケーションに送り、
    前記ホストアプリケーションは、前記ライセンス暗号化鍵を用いて、前記暗号化されたアプリケーションプログラムを復号し、前記コンピューティングプラットフォームにおいて前記アプリケーションプログラムへのアクセスを許可する、
    コンピューティングプラットフォーム。
  24. 前記ライセンス管理ファームウェアコンポーネントは、前記ホストアプリケーションが、前記コンピューティングプラットフォームのユーザからパスワードを取得し、前記ライセンス管理ファームウェアコンポーネントの公開鍵で前記パスワードを暗号化し、
    前記ホストアプリケーションが、前記暗号化されたパスワードを、前記ネットワークにより前記コンピューティングプラットフォームに結合した第2のサーバに送り、
    前記ライセンス管理ファームウェアコンポーネントが、前記第2のサーバの秘密鍵により署名された前記暗号化されたパスワードを受け取り、前記暗号化されたパスワードの署名を確認し、前記署名が正しいと確認されたとき、前記ライセンス管理ファームウェアコンポーネントの秘密鍵を用いて前記暗号化されたパスワードを復号し、前記パスワードを前記セキュリティエンジン中のセキュアストレージに記憶させる、
    請求項23に記載のコンピューティングプラットフォーム。
  25. 前記コンピューティングプラットフォームは、前記第1のサーバに接続され、前記ホストアプリケーションをダウンロードして前記メモリに記憶させる、請求項23に記載のコンピューティングプラットフォーム。
  26. 前記ハードウェアで実装されたセキュリティエンジンは、前記ユーザパスワードを受け取る前に、前記第1のサーバと前記ライセンス管理ファームウェアコンポーネントとの間の許可された通信チャネルをアクティブ化するケーパビリティライセンシングサービスコンポーネントを有する、請求項25に記載のコンピューティングプラットフォーム。
  27. 前記ライセンス管理ファームウェアコンポーネントは前記ライセンス管理ファームウェアコンポーネントの時間を前記第1のサーバの時間と同期する、請求項23に記載のコンピューティングプラットフォーム。
  28. 前記ライセンスを復号した後に、前記ライセンス管理ファームウェアコンポーネントが、前記アプリケーションプログラムの許可された仕様のリース期限が徒かしたか確認する、請求項27に記載のコンピューティングプラットフォーム。
  29. 前記ライセンスは、前記アプリケーションプログラムの一意的な識別子、前記ユーザのコンピューティングプラットフォームによる前記アプリケーションプログラムの許可された仕様のリース期限、及び前記ライセンス暗号化鍵を有する、請求項23に記載のコンピューティングプラットフォーム。
  30. 前記ライセンス管理ファームウェアコンポーネントは、前記コンピューティングプラットフォームにおいて窃盗状態がトリガーされたとき、前記ホストアプリケーションに前記ライセンス暗号化鍵を送らない、請求項23に記載のコンピューティングプラットフォーム。
JP2013539891A 2010-11-22 2011-11-08 ハードウェアベースセキュリティエンジンを用いるセキュアソフトウェアライセンシング及びプロビジョニング Expired - Fee Related JP5657811B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/951,853 US8332631B2 (en) 2010-11-22 2010-11-22 Secure software licensing and provisioning using hardware based security engine
US12/951,853 2010-11-22
PCT/US2011/059692 WO2012071168A2 (en) 2010-11-22 2011-11-08 Secure software licensing and provisioning using hardware based security engine

Publications (2)

Publication Number Publication Date
JP2014501966A JP2014501966A (ja) 2014-01-23
JP5657811B2 true JP5657811B2 (ja) 2015-01-21

Family

ID=46065516

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013539891A Expired - Fee Related JP5657811B2 (ja) 2010-11-22 2011-11-08 ハードウェアベースセキュリティエンジンを用いるセキュアソフトウェアライセンシング及びプロビジョニング

Country Status (7)

Country Link
US (1) US8332631B2 (ja)
EP (1) EP2643788B1 (ja)
JP (1) JP5657811B2 (ja)
KR (1) KR101377359B1 (ja)
CN (1) CN103221957B (ja)
AU (1) AU2011332180B2 (ja)
WO (1) WO2012071168A2 (ja)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8332631B2 (en) 2010-11-22 2012-12-11 Intel Corporation Secure software licensing and provisioning using hardware based security engine
WO2014027998A1 (en) 2012-08-14 2014-02-20 Empire Technology Development Llc Updating a currently utilized device
US20140115672A1 (en) * 2012-10-18 2014-04-24 Roger Wood Storing and Accessing Licensing Information in Operating System-Independent Storage
US20140143885A1 (en) * 2012-11-20 2014-05-22 Ati Technologies Ulc Firmware-implemented software licensing
CN104462993B (zh) * 2013-09-18 2018-01-09 北大方正集团有限公司 加密方法、解密方法、加密装置和解密装置
US10726162B2 (en) * 2014-12-19 2020-07-28 Intel Corporation Security plugin for a system-on-a-chip platform
US10289814B2 (en) * 2014-12-23 2019-05-14 Intel Corporation Licensing in the cloud
KR101655890B1 (ko) * 2015-04-08 2016-09-08 (주)세이퍼존 배드 유에스비 방지를 위한 보안 유에스비 장치의 펌웨어 설치 방법
US10248791B2 (en) * 2015-07-20 2019-04-02 Intel Corporation Technologies for secure hardware and software attestation for trusted I/O
JP6729122B2 (ja) * 2016-07-19 2020-07-22 富士通株式会社 情報処理装置、プログラムおよび情報処理システム
KR102174665B1 (ko) * 2016-11-14 2020-11-05 인테그리티 시큐리티 서비시즈 엘엘씨 디바이스의 보안 프로비저닝 및 관리
US10642987B2 (en) * 2017-01-19 2020-05-05 Ebay Inc. Cryptography based fraud tracking
JP6796861B2 (ja) * 2017-04-11 2020-12-09 株式会社アクセル アプリケーションソフトウェアの提供及び認証方法並びにそのためのシステム
CN107169344B (zh) * 2017-05-10 2020-04-21 威盛电子股份有限公司 阻挡非授权应用程序的方法以及使用该方法的装置
RU2653247C1 (ru) * 2017-06-16 2018-05-07 Закрытое акционерное общество "Особое Конструкторское Бюро Систем Автоматизированного Проектирования" (ЗАО "ОКБ САПР") Способ лицензирования программного обеспечения при помощи аппаратных средств
CN107688729B (zh) * 2017-07-27 2020-11-27 大唐高鸿信安(浙江)信息科技有限公司 基于可信主机的应用程序保护系统及方法
US20190095593A1 (en) * 2017-09-25 2019-03-28 Hewlett Packard Enterprise Development Lp License information based on baseboard management controller
US11372977B2 (en) * 2018-11-12 2022-06-28 Thirdwayv, Inc. Secure over-the-air firmware upgrade
CN109684790B (zh) * 2018-12-26 2021-06-04 佛山市瑞德物联科技有限公司 软件启动方法、软件授权验证方法、设备和存储介质
WO2021159052A1 (en) * 2020-02-08 2021-08-12 Cameron Laghaeian Method and apparatus for managing encryption keys and encrypted electronic information on a network server
CN115189929A (zh) * 2022-06-27 2022-10-14 苏州华兴源创科技股份有限公司 授权认证的方法、装置、计算机设备和存储介质
US11836255B1 (en) * 2023-03-28 2023-12-05 Verkada Inc. Microcontroller unit (MCU) secure boot

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1183841A (zh) * 1995-02-13 1998-06-03 英特特拉斯特技术公司 用于安全交易管理和电子权利保护的系统和方法
JP3688356B2 (ja) * 1995-08-31 2005-08-24 富士通株式会社 ライセンシー通知システム
US7171662B1 (en) 1998-03-18 2007-01-30 Microsoft Corporation System and method for software licensing
US7194092B1 (en) * 1998-10-26 2007-03-20 Microsoft Corporation Key-based secure storage
JP2001211162A (ja) * 2000-01-26 2001-08-03 Sony Corp データ処理システム、記録デバイス、およびデータ処理方法、並びにプログラム提供媒体
US7062567B2 (en) * 2000-11-06 2006-06-13 Endeavors Technology, Inc. Intelligent network streaming and execution system for conventionally coded applications
JP2002229447A (ja) * 2001-01-30 2002-08-14 Nippon Telegr & Teleph Corp <Ntt> デジタルコンテンツ流通における著作権保護システム
JP2003298565A (ja) * 2002-03-29 2003-10-17 Matsushita Electric Ind Co Ltd コンテンツ配信システム
US7308573B2 (en) * 2003-02-25 2007-12-11 Microsoft Corporation Enrolling / sub-enrolling a digital rights management (DRM) server into a DRM architecture
WO2004109972A1 (ja) * 2003-06-05 2004-12-16 Matsushita Electric Industrial Co., Ltd. ライセンス受信用ユーザ端末
EP1735939A1 (en) * 2004-03-29 2006-12-27 Smart Internet Technology Crc Pty Limited Digital license sharing system and method
US7890428B2 (en) 2005-02-04 2011-02-15 Microsoft Corporation Flexible licensing architecture for licensing digital application
US8194859B2 (en) * 2005-09-01 2012-06-05 Qualcomm Incorporated Efficient key hierarchy for delivery of multimedia content
US7814023B1 (en) 2005-09-08 2010-10-12 Avaya Inc. Secure download manager
US8660964B2 (en) 2006-06-30 2014-02-25 Hewlett-Packard Development Company, L.P. Secure device licensing
US20090327741A1 (en) * 2008-06-30 2009-12-31 Zimmer Vincent J System and method to secure boot uefi firmware and uefi-aware operating systems on a mobile internet device (mid)
US8904191B2 (en) * 2009-01-21 2014-12-02 Microsoft Corporation Multiple content protection systems in a file
US8332631B2 (en) 2010-11-22 2012-12-11 Intel Corporation Secure software licensing and provisioning using hardware based security engine

Also Published As

Publication number Publication date
JP2014501966A (ja) 2014-01-23
CN103221957B (zh) 2015-12-09
KR101377359B1 (ko) 2014-03-25
US8332631B2 (en) 2012-12-11
EP2643788A4 (en) 2017-07-05
EP2643788B1 (en) 2018-09-19
AU2011332180B2 (en) 2016-05-19
CN103221957A (zh) 2013-07-24
WO2012071168A3 (en) 2012-07-19
AU2011332180A1 (en) 2013-07-11
EP2643788A2 (en) 2013-10-02
KR20130079602A (ko) 2013-07-10
WO2012071168A2 (en) 2012-05-31
US20120131345A1 (en) 2012-05-24

Similar Documents

Publication Publication Date Title
JP5657811B2 (ja) ハードウェアベースセキュリティエンジンを用いるセキュアソフトウェアライセンシング及びプロビジョニング
JP5526450B2 (ja) ハードウェア構成を変更する方法、ハードウェア構成の変更を遠隔位置において可能にする方法、及びそのための装置
KR101530809B1 (ko) 멀티-테넌트 서비스 제공자에 의한 동적 플랫폼 재구성
US7986786B2 (en) Methods and systems for utilizing cryptographic functions of a cryptographic co-processor
EP2913956B1 (en) Management control method and device for virtual machines
US9064116B2 (en) Techniques for security management provisioning at a data storage device
CN107567630B (zh) 受信输入/输出设备的隔离
KR20130044293A (ko) 플랫폼 자원들의 도메인-인증 제어
US9280687B2 (en) Pre-boot authentication using a cryptographic processor
KR102660863B1 (ko) 구성 설정들의 안전한 서명
US10282549B2 (en) Modifying service operating system of baseboard management controller
CN106992978B (zh) 网络安全管理方法及服务器
JP5806187B2 (ja) 秘密情報の交換方法およびコンピュータ

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140521

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140701

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141001

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: 20141028

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141126

R150 Certificate of patent or registration of utility model

Ref document number: 5657811

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees