JP4646900B2 - 下位互換性のあるセキュアプロセッサとそれによるセキュアソフトウェアの実行方法 - Google Patents

下位互換性のあるセキュアプロセッサとそれによるセキュアソフトウェアの実行方法 Download PDF

Info

Publication number
JP4646900B2
JP4646900B2 JP2006503366A JP2006503366A JP4646900B2 JP 4646900 B2 JP4646900 B2 JP 4646900B2 JP 2006503366 A JP2006503366 A JP 2006503366A JP 2006503366 A JP2006503366 A JP 2006503366A JP 4646900 B2 JP4646900 B2 JP 4646900B2
Authority
JP
Japan
Prior art keywords
secure
processing unit
application software
mode
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 - Lifetime
Application number
JP2006503366A
Other languages
English (en)
Other versions
JP2007524883A (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.)
Acer Cloud Technology Inc
Original Assignee
iGware 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 iGware Inc filed Critical iGware Inc
Publication of JP2007524883A publication Critical patent/JP2007524883A/ja
Application granted granted Critical
Publication of JP4646900B2 publication Critical patent/JP4646900B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

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/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • 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/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/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/73Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by creating or determining hardware identification, e.g. serial numbers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/74Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode

Description

本発明は,概してセキュアプロセッサとそれによるセキュアソフトウェアの実行方法に係り,例えばアプリケーションソフトウェアのセキュアな実行を可能にするセキュアプロセッサを提供する。
現在のコンピュータシステムにおいて、マイクロプロセッサや他の処理装置による処理能力の有用性は,コンピュータシステムの価値というものを考えたとき,もはや「重要な制限」とはいえない。一方,アプリケーションソフトウェアやマルチメディアコンテンツの有用性,さらに正確には,アプリケーションソフトウェアやマルチメディアコンテンツを利用するための認証は,それらプロセッサによる実行や実演のための「本質的な制限」となった。これによる効果の一つとして,デバイスもしくはプラットフォーム上で実行されるアプリケーションソフトウェアやマルチメディアコンテンツが,多くのコンピュータシステムにとって相当価値のあるものとなった。アプリケーションソフトウェアやマルチメディアコンテンツはともに,例えばコミュニケーションネットワークや安価なCDROMメディアを利用した流通によって簡単に入手されるようになり,その結果,未許可のコピーや配信(「ソフトウェアの不正コピー」と呼ばれる)が経済的に重要な懸案事項となった。よって周知の技術における課題点は,例えば使用料が適切に支払われた場合や,信用できるコンテンツ発信元からの情報に関してコンテンツの安全性が検証された時など,使用権が認証された時のみ有益なアプリケーションソフトウェアやマルチメディアコンテンツがプロセッサ上で使用されることを確実にすることである。
周知技術におけるもう一つの課題としては,認証または変更なしではプロセッサ上で使用できないような特性をもつアプリケーションソフトウェアやマルチメディアコンテンツの提供が求められる一方で,その特性を提供するために該アプリケーションソフトウェアやマルチメディアコンテンツを再設計または再認可することは望ましくないとされている点がある。現在相当数のアプリケーションソフトウェアやマルチメディアコンテンツが入手可能であり,それらの価値は非常に大きく,該アプリケーションソフトウェアやマルチメディアコンテンツを修正するという手段はコストがかかり,信頼性も低く,手に負えるものではない。
したがって,元々のアプリケーションソフトウェアやマルチメディアコンテンツを大幅に修正することなく,認証されたプロセッサに対してのみアプリケーションソフトウェアやマルチメディアコンテンツの使用を制限するということは有益である。
本発明はセキュアプロセッサを提供し,さらにはアプリケーションソフトウェアのセキュアな実行,認証されたアプリケーションソフトウェアのみの実行,そして認証されたマルチメディアコンテンツのみの提示を確実にすることが可能なセキュアプロセッサの使用方法およびシステムを提供する。また,認証済みコンテンツの権利や許可について購入がなされ,その確認もなされたデバイスにおいてのみそのコンテンツが再生可能となることを確実にすることは重要である。そのようなセキュアプロセッサは,モニターモードおよびセキュアモードの二つの動作モードを具備する。前者はアプリケーションソフトウェアを透過的に実行する。後者は該アプリケーションソフトウェアの実行(およびマルチメディアコンテンツの提示)が認証されたことを検証し,アプリケーションソフトウェアが必要とするいかなる特別なサービスも実行する。当該セキュアプロセッサは,アプリケーションソフトウェアに対しても,一般的なプロセッサに対しても同一のハードウェアのように見えるものであり,一般的なプロセッサ用に書かれたアプリケーションソフトウェアを実質的な変更なしに実行可能である。また該セキュアプロセッサは最小限度のハードウェアを追加することで,一般的なプロセッサと同一のハードウェアを利用し,それによりセキュアプロセッサは,アプリケーションソフトウェアの速度やリソースを大幅に減少させることなく実行できる。
ある実施形態では,該セキュアプロセッサの一部分が元々の一般的なプロセッサ用の半導体ダイと実質的に同一であり(ダイのサイズや製造技術が異なるものを使用する場合を除いて),その結果アプリケーションソフトウェアが元々の一般的なプロセッサと同様に,該セキュアプロセッサにて確実に実行される。
ある実施形態では,当該セキュアプロセッサが電源ONのときにセキュアモードでの実行を開始する。この初期の実行段階では,該セキュアプロセッサはセキュアコードをセキュアモードで実行する。このセキュアコードはセキュアプロセッサチップの内部の不揮発性メモリにて管理されるので信用できる。上記同様セキュアプロセッサチップの内部の不揮発性メモリにて管理されるセキュリティ情報に関し,セキュアコードはソース(発信元)の信頼価値や追加するソースコードの信頼性を検証し,1以上の信頼できるソース(発信元)から追加のソースコードを読み込む。このセキュリティ情報には暗号化キー,セキュアハッシュ値,または,信頼できるソースの検証や追加ソースコードの認証のためのデータなどが含まれる。
読み込まれた追加のソースコードにより,該セキュアプロセッサが信頼できるソースからのアプリケーションソフトウェアを要求し,要求されたアプリケーションソフトウェアを該セキュアプロセッサが実行する認証を持つことを検証し,そのアプリケーションソフトウェアが正確に読み込まれるよう検証し,そのアプリケーションソフトウェアの安全性をチェックする。本発明の状況では,パーシステントメモリも信頼できるソースも,ここで述べた特別な手段を持つ必要性はない。例えば,パーシステントメモリも信頼できるソースも,セキュアプロセッサと結合したハードウェアデバイスに(ユーザーなどにより)差し替えもしくは補足されることができる。この場合セキュアプロセッサは,ソースから読み込んだコードを信頼する前に,これを連結することの安全性および信頼性を検証しハードウェアデバイスの動作を修正する。
該セキュアプロセッサはセキュアモードを終了し,モニターモードで正しく読み込まれたアプリケーションソフトウェアを実行することができる。アプリケーションソフトウェアはオリジナルコードの大幅な変更なしに実行され,それにより一般のプロセッサと実質的に異なることのない処理環境をアプリケーションソフトウェアが得ることになる。前記セキュアモードで前記プロセッシングユニットが実行するサービスをアプリケーションソフトウェアが必要とする場合,アプリケーションソフトウェアは一度中断し,セキュアモードが再開となり,前記セキュアモードでの前記プロセッシングユニットによって前記アプリケーションソフトウェアのために前記サービスが実行されてセキュアモード終了となり,その結果アプリケーションソフトウェアはモニターモードでの実行を続行できる。例えば,アプリケーションソフトウェアは追加のアプリケーションソフトウェアモジュールの要求,読み込み,そして実行を要求することもできる。他のサービスとして,セキュアプロセッサは入出力動作を監視することができるが,この動作は該セキュアプロセッサにより実行可能なセキュアコードに具備されたAPI(アプリケーション・プログラミング・インターフェイス)を使用して,アプリケーションソフトウェアが要求するものである。
該セキュアプロセッサはさらにタイマーを利用してアプリケーションソフトウェアに割り込むことも可能で,この割り込みによりセキュアモードに入って処理を実行し,再度モニターモードに戻ることも可能である。セキュアモードへ入るテクニックは複数あるが,該セキュアプロセッサはどのテクニックによってセキュアモードに入るかを判断することができる。該セキュアプロセッサはさらに外部メモリへのアクセスを記録することも可能で,それによりアプリケーションソフトウェアによる正確な実行を検証することができる。他の特徴として,該セキュアプロセッサは入出力動作を監視する(または正当性を再検討および確認する)ことも可能であり,さらにアプリケーションソフトウェアの要求に応じて(好ましくは正当性を再検討および確認した後に)セキュア動作を実行することもできる。
例えば,該セキュアプロセッサはアプリケーションソフトウェアがアクセスしようとする外部メモリ内の位置を調べることができる。アプリケーションソフトウェアが該セキュアプロセッサにより許可された範囲外の位置にアクセスしようとすれば,該セキュアプロセッサはアプリケーションソフトウェアが不適切な動作を行っていると判断することができる。例えばこのような場合,アプリケーションソフトウェアがソフトウェアエラーを有するか,ソフトウェアウィルスを含むか,または不正な動きをするよう設計されているなど考えられる。これに応じて該セキュアプロセッサは,前述のような不当な結果を制限するための適切な動作をとる。またこのような場合に該セキュアプロセッサは,それらの外部メモリ内の位置へアプリケーションソフトウェアがアクセスするのを制限する,またはアプリケーションソフトウェアによる動作を中断する,またはアプリケーションソフトウェアのウィルスチェックやウィルス処理を実行することも可能である。
さらに該セキュアプロセッサはアプリケーションソフトウェアに代わって暗号化または暗号解読処理を行うことも可能で,それによりアプリケーションソフトウェアの関知しないところで,標準的な動作に関し暗号化や暗号解読または他のセキュリティ機能が遂行される。例えば,アプリケーションソフトウェアは追加コードのチェック,またはサーバや外部の大容量ストレージ(記憶デバイス)や外部メモリから読み込んだマルチメディアコンテンツの信頼性のチェックを実行可能であるが,該セキュアプロセッサのユニークIDやプライベートキーにアクセスする必要はなく,該セキュアプロセッサのセキュリティ機能をフルに利用して行う。さらに例として,アプリケーションソフトウェアは外部エレメントと通信したセキュア情報の暗号化および暗号解読を実行できるが,やはり該セキュアプロセッサのユニークIDやプライベートキーにアクセスする必要はなく,該セキュアプロセッサのセキュリティ機能をフルに利用して行う。
実施例として,該セキュアプロセッサがユニークIDを具備し,そのユニークID(および,ユニークIDに付随する暗号化または暗号解読キー)を利用して該セキュアプロセッサ固有のインスタンス(実体)を独自に識別することが可能である。このような実施形態において該セキュアプロセッサは,アプリケーションソフトウェアの代わりに暗号化または暗号解読を行う際に,ユニークIDと独自暗号化キーまたは独自暗号解読キーを利用する。例えばセキュアプロセッサが外部エレメントと通信する際に,ユニークIDと独自暗号化キーまたは独自暗号解読キーを利用し,アプリケーションソフトウェアの代わりに暗号化および暗号解読を実行する。そのような場合に該セキュアプロセッサは,DRM(デジタル著作権管理)情報を確認,交換,取得するための外部エレメントとの通信を実行する。
該セキュアプロセッサは不揮発性メモリ(例えばNVROM)の中に,ユニークID,コード署名または暗号化ハッシュ,独自暗号化キーと独自暗号解読キー,さらには該セキュアプロセッサ固有のインスタンスに関するその他の詳細情報などを管理する。このNVROMは該セキュアプロセッサの製造および設定の際,該セキュアプロセッサ固有のインスタンスに関する詳細情報を記録するために利用される非接合ピンを含み,該ピンはNVROMが書き換え不能となるように,製造または設定後に非接合状態となる。
ユニークID(および独自暗号化キーまたは独自暗号解読キー)を有することで,有利なセキュアプロセッサを含むシステムを提供する:
・ サーバとの通信のためのセキュアプロセッサの利用は追跡可能であり,アプリケーションソフトウェアやマルチメディアコンテンツをダウンロードするために不正動作を行おうとするユーザーは規則違反の責任を問われる。
・ ユニークIDおよび独自暗号化キーと独自暗号解読キーを内蔵することで,サーバはアプリケーションソフトウェアやマルチメディアコンテンツのダウンロードを図るセキュアブートコードなどの該セキュアプロセッサの一部を,検証または信用する必要なく該セキュアプロセッサを信頼することができる。ユニークIDおよび独自暗号化キーと独自暗号解読キーを安全に製造元が組み込んでいること信頼するだけでよい。
・ 該セキュアプロセッサを有するシステムは,セキュアプロセッサを行き来する信号への妨害などのユーザー不正行為に対し抵抗力を持ち,また該システムでは,該セキュアプロセッサと通信する極秘データはセキュリティのために暗号化できる。そうでなければ,極秘データを危険にさらそうすると,セキュアプロセッサチップの破壊を招くことになる。
・ 該セキュアプロセッサでは,アプリケーションソフトウェアの実行やマルチメディアコンテンツの提示を行うCPUは,元々の非セキュアプロセッサと実質的に同一であり,それにより該セキュアプロセッサのセキュリティ機能を無効とする試みは,該CPUに望まれる機能をも無効とすることになる。
・ 該セキュアプロセッサは,アプリケーションソフトウェアの実行やマルチメディアコンテンツの提示を行うCPUによる権限を確実に検証することが可能である。例えば信用できるサーバ(または認証機関など他の信頼できるエレメント)は,該セキュアプロセッサによってユニークIDおよび独自暗号化キーと独自暗号解読キーを利用してその信頼性を検証できるものに対し,セキュアデジタル購入領収書(purchase receipt)を発行することができる。そのような場合,アプリケーションソフトウェアの実行やマルチメディアコンテンツの提示を行う権利を有する特定のデバイス(またはデバイスの種類)をそのセキュアデジタル購入領収書によって独自に識別することが可能である。
・ 該セキュアプロセッサはアプリケーションソフトウェアやマルチメディアコンテンツのコピー阻止およびコピー保護を強化できる。そのようなコンテンツは以下を含む可能性がある:(1)CPUが実行許可を受けた既に購入済みのアプリケーションソフトウェア,またはCPUが提示許可を受けた既に購入済みのマルチメディアコンテンツの一式,(2)前述の実行または提示を許可するデジタル著作権,(3)特定のデバイス(またはデバイスの種類)に制限するためのピアツーピアメッセージなど,CPUと他のデバイス間の利用情報。
用語集
以下に示す用語は本発明とその実施形態の態様に関する。各用語の一般的な意味は説明に役立てることを意図しており,制限するものではない。
・ 「セキュアプロセッサ」という語句は,信頼できるソフトウェアのみをサブユニット上で実行するよう確実にする能力を持つデバイスを意味する。サブユニットは「プロセッサ」または「プロセッシングユニット」を含む(ここではCPUと称す)。セキュアプロセッサにおいて,プロセッサまたはプロセッシングユニットのコンセプトには幅があり,少なくとも以下を含むことを意図している:汎用命令一式を有する汎用プロセッサ,制限された命令一式を有する特殊用途プロセッサ,プログラム命令を実行または解釈可能な特殊用途回路一式,様々なタイプのセキュアプロセッサと競合可能なファームウェアプログラム命令の一式,それらが合理的に一般化されたもの,等。
・ 「アプリケーションソフトウェア」という語句は,プロセッサによって実行または解釈されることが可能な命令またはパラメータ一式を示す。先と同様に,アプリケーションソフトウェアのコンセプトには幅があり,少なくとも以下を含むことを意図している:ソフトウェアまたはファームウェアのプログラム命令,ソフトウェアまたはファームウェアのプログラムパラメータ値,プログラミング言語コンパイラーにてコンパイル(翻訳)可能なソースコードおよびプログラミング言語インタープリターによって通訳可能なソースコード,コンパイルまたは通訳されたプログラム言語のマクロ定義,アプリケーションプログラムによって受信または実行される命令およびリクエスト,それらが合理的に一般化されたもの,等。
・ 「マルチメディアコンテンツ」という語句は,ユーザーに対し提示されることができる情報またはパラメータの一式を示す。先と同様に,マルチメディアコンテンツのコンセプトには幅があり,少なくとも以下を含むことを意図している:ソフトウェアまたはファームウェアのプログラム命令により解釈および提示するためのデータに組み込まれたアニメーション,オーディオビジュアルムービー,動画,またはサウンド;それらデータ自体を制作するためのソフトウェアまたはファームウェアのプログラム命令に組み込まれたアニメーション,オーディオビジュアルムービー,動画,またはサウンド;DHTML,SGML,VRML,マクロメディアフラッシュなど,マルチメディアコンテンツのためのマークアップ言語に組み込まれたアニメーション,オーディオビジュアルムービー,動画,またはサウンド;アプリケーションプログラムによって受信または実行される命令およびリクエスト;それらが合理的に一般化されたもの,等。
・ 「モニターモード」および「セキュアモード」という語句は,当該セキュアプロセッサに可能な動作状況を示す。先と同様に,モニターモードおよびセキュアモードのコンセプトには幅があり,少なくとも以下を含むことを意図している:セキュアプロセッサによって実行または解釈される命令がプロセッサの性能に対し見分けのつく程度アクセスする区別可能な状況,または,セキュアモードにあるセキュアプロセッサが,モニターモードにあるセキュアプロセッサのいかなるタイプのモニタリングや制限も実行できる区別可能な状況,等。
・ (該セキュアプロセッサによるアプリケーションソフトウェアの)「透過的な実行」の概念,および(該アプリケーションソフトウェアに対する該セキュアプロセッサの)「明白なハードウェア同一性」の概念は,該アプリケーションソフトウェアを実行する該セキュアプロセッサの性能をソフトウェアの視点で述べるもので,該アプリケーションソフトウェアがこれまで一般的なプロセッサで実行されていたということを前提とする。これにより該セキュアプロセッサは該アプリケーションソフトウェアを修正する必要なく実行可能となるが,ここに述べるセキュリティ機能は依然として保持することができる。例えば,セキュアプロセッサの一部分が元々の一般的なプロセッサ用の半導体ダイと実質的に同一であり,そのためアプリケーションソフトウェアが元々の一般的なプロセッサと同様に,該セキュアプロセッサにて確実に実行される。
・ 「電源ON」という語句は,プロセッシングユニットの初期の動作段階を示し,電気供給,リセット信号,または他の実質的な初期設定を変更した後に起きるセキュアプロセッサの状況を指す。先と同様に,電源ONのコンセプトには幅があり,ここで述べられるいかなる初期動作状況やそれが一般化されたものも含むことを意図する。
・ 「セキュアコード」そして「セキュアブート・ローダーコード」という語句は,該セキュアプロセッサによって解釈可能であり実行可能であるプログラム命令を示し,該セキュアプロセッサが信頼性があると見なすものである。セキュアコードは,例えばセキュアプロセッサチップのパーシステント(持続性)メモリに管理されているという理由から信頼性がある。追加のソースコードも,信頼できるソースから受信した,もしくは,予め構築された「セキュアコード」または「セキュアブート・ローダーコード」によってその正確さを認証されたという理由から,「セキュアコード」として構築可能である。先と同様に,セキュアコードのコンセプトには幅があり,該セキュアプロセッサが,例えばセキュリティ機能を実行するために信頼できるような,いかなるプログラムコードも含むことを意図する。
・ 「セキュリティ機能」および「セキュリティカーネルソフトウェア」という語句は,該セキュアプロセッサによって解釈可能であり実行可能であるプログラム命令を示し,該セキュアプロセッサにとって検証できるもので,セキュリティや認証や検証に関する機能を遂行可能とされる。例えば,デジタル署名,暗号化および暗号解読,デジタル署名の検証などの機能は,セキュリティ機能もしくはセキュリティカーネルソフトウェアによって遂行可能できる。ある実施形態では,そのようなセキュリティ機能もしくはセキュリティカーネルソフトウェアは,API(アプリケーション・プログラミング・インターフェイス)を使用するアプリケーションソフトウェアによる利用に適するよう構築可能である。実施形態では,セキュリティカーネルソフトウェアがセキュアブート・ローダーコードによって読み込まれ,その後実行される前に安全性および信頼性について検証される。セキュアプロセッサチップ内部のメモリ(好ましくは揮発性メモリ)で認証および管理されてきたセキュリティに関連するソフトウェアの部分は,「セキュアコード」のコンセプトに包含される。
・ 「セキュアプロセッサチップ」(ここでは「チップ」とも記載される)という語句は,該セキュアプロセッサが遂行される物理的なハードウェアを示す。先と同様に,セキュアプロセッサチップはハードウェア構造およびプログラム命令を有し,該セキュアプロセッサにとって信頼性がある。そして他者がそのチップのセキュリティを干渉または侵害するのは困難である。
本発明の範囲はここで示した定義や具体例に限定されるものではなく,それら定義や具体例,用語によって実施される最大幅なコンセプトを含むことを意図する。
システムエレメント
図1はセキュアな実行が可能なセキュアプロセッサを含むシステムの構成図を示す。
システム100はセキュアプロセッサ110,コミュニケーションリンク120,そして少なくとも1つのソフトウェアまたはコンテンツ発信元130を有する。状況に応じて,該ソフトウェアまたはコンテンツ発信元130(ここでは信頼できるサーバ130とも記載する)は,セキュアプロセッサ110やセキュアプロセッサ110によって制御されるデバイスに対し,追加コンテンツの送信をオンライン状態またはオフライン状態にすることが可能な信頼できるサーバを含み得る。
実施形態の一つとしてさらにシステム100は,少なくとも1つの入力デバイス141と少なくとも1つの出力デバイス142を有し,セキュアプロセッサ110によって実行されるアプリケーションソフトウェア143のコントロール下で動作するアプリケーションデバイス140を有する。
アプリケーションデバイス140は該セキュアプロセッサがモニターモードで動作されるとき,いかなるアプリケーションも実行可能である。例えばアプリケーションデバイス140は,ゲームセンターへの設置やパーソナルコンピュータへのインストールができるような,リアルタイム・オーディオビジュアルゲームで遊ぶもしくは参加するためのデバイスを含む。しかし本発明の状況において,アプリケーションデバイス140がそれほど具体的である必要性はない。むしろ,アプリケーションデバイス140は一般に以下を含むことができる。ゲームデバイス;パーソナルコンピュータまたはパーソナルワークステーション;ポケベル,PDA(パーソナル・デジタル・アシスタント)またはその他の手のひらサイズのコンピュータ,ノート型パソコンやラップトップコンピュータ,電話,腕時計,ロケーションまたはコンディションセンサー,バイオメトリック(生物測定)センシングデバイスまたはリポーティングデバイス,ペースメーカー,遠隔測定デバイス,または遠隔自動誘導デバイス,などの携帯用デバイス。
また,セキュアプロセッサ110が以下で述べる機能を実行可能である限り,アプリケーションデバイス140はコンピューティングプログラムに従ういかなるデバイスも含むことができる。
信頼できるアプリケーションまたはコンテンツをチップへ追加供給するため,コミュニケーションリンク120は信頼できるサーバ130からセキュアプロセッサ110へ通じる伝送経路を有するものが考えられる。例えばコミュニケーションリンク120は,インターネットやその一部をリアルタイムで利用する,または記憶および転送を行う一以上のデバイスを利用する,または一以上の中間キャッシングデバイスを利用する,または記憶媒体を通した物理的な配信,というような伝送経路を有する。しかし,別の実施形態でコミュニケーションリンク120は,個人または公共の交換電話ネットワーク,レンタル電話または他の個人コミュニケーションリンク,ラジオトランシーバ,マイクロ波トランシーバ,ワイヤレスまたはワイヤラインモデムなど,セキュアプロセッサ110の代わりに信頼できるサーバ130と通信可能なデバイスやシステムへの伝送経路(通信経路)を含むことができる。さらにコミュニケーションリンク120は,信頼できるサーバから物理的に運送または配達される記憶媒体(CDROMなど)など,コンテンツの配給のために考えられるあらゆる技術を含む。
信頼できるサーバ130には電子流通システムの一部としてのコンテンツ発信,配送,またはサービング事業体なども含まれる。実施形態の一つは,信頼できるサーバ130が,例えばアプリケーションソフトウェアやマルチメディアコンテンツなどの流通する全てのコンテンツに(状況に応じて)デジタル信号を発信することが可能であり,それによりセキュアプロセッサ110はそのコンテンツの信頼性を検証可能となる。実施形態の一つでは,公開鍵暗号システム(public key cryptosystem)や同様な性質を有するシステム,またはコンテンツの信頼性について検証を可能とする情報を生み出すことができるタイプの他のシステムなどと共用されるデジタル署名技術を利用して,デジタル署名が実現する。
別の実施形態において信頼できるサーバ130には,情報のリクエストを含むメッセージを受信可能で,さらにその情報のリクエストへの反応を含むメッセージを発信可能な,論理上の遠隔デバイス(logically remote device)を含むことができる。例えば,信頼できるサーバ130は高性能PCまたはワークステーションを含むインターネットサーバを有することもできる。その他の実施形態では信頼できるサーバ130は単独型サーバであるが,しかし本発明の状況において信頼できるサーバ130がそれほど具体的である必要性はない。むしろ信頼できるサーバ130は,ここで述べる動作を可能とするいかなるデバイスも,さらにハードウェアコンポーネントまたはソフトウェアコンポーネントの双方も含むことができる。
また本発明の状況においては信頼できるサーバ130が,特定のコンポーネントの組み合わせを有したり,単一のデバイスであったり,特定デバイスをそのまま全て有するものである必要性はない。むしろ信頼できるサーバ130は他のデバイスの一以上の部分を有するか,連結または連携して動作する一以上のデバイス(またはその部分)を有すことも可能である。さらに上述のように,信頼できるサーバ130は配送されるコンテンツの創作およびカプセル化を行ういかなるデバイスも含み,具体的にはセキュアプロセッサ110に物理的に配送される記憶媒体(CDROMなど)を書くためのデバイスが挙げられる。
上述のように,信頼できるサーバ130はコンテンツの配送に可能ないかなる技術も含むことができる。本発明の状況において,アクチュアルオンラインのコンテンツ配送や,セキュアプロセッサ110と信頼できるサーバ130との間にライブリンクまたはリアルタイムリンクを有する必要性はない。例えばアプリケーションソフトウェアまたはマルチメディアコンテンツは,以下に上げる技術もしくはその連結・連携によって信頼できるサーバ130からセキュアプロセッサ110へ配送可能である:
・ アプリケーションソフトウェアまたはマルチメディアコンテンツがインターアクティブ通信もしくは交換通信システムを使って配送可能である。
・ アプリケーションソフトウェアまたはマルチメディアコンテンツが物理的な記憶媒体を使って配送可能である。
・ アプリケーションソフトウェアまたはマルチメディアコンテンツが符号化または暗号化された形状で,第三者から,いかなる技術によっても配送可能であり,符号および暗号の解読キーが信頼できるサーバ130からいかなる技術によっても配送可能である。
・ アプリケーションソフトウェアまたはマルチメディアコンテンツが第三者から,いかなる技術によっても配送可能であり,証明書またはその他の信頼性の保証書が信頼できるサーバ130から,いかなる技術によっても配送可能である。
・ アプリケーションソフトウェアまたはマルチメディアコンテンツが中間ストレージやその他のタイプのキャッシングデバイスを使って,インターネットや他の配信技術を通していかなる技術によっても配送可能である。
セキュアプロセッサ110はモニタープロセッサ111,セキュリティロジック112一式,およびセキュリティ情報113一式を含む。セキュアプロセッサ110はモニターモードまたはセキュアモードの両方で動作できる。モニターモードで動作するとき,セキュアプロセッサ110はモニタープロセッサ111を有する回路を利用する。セキュアモードで動作するとき,セキュアプロセッサ110はモニタープロセッサ111およびセキュリティロジック112を有する回路と,セキュリティ情報113を含むデータを利用する。
1. モニタープロセッサ
モニタープロセッサ111は内部バス114,CPU A100,CPUメモリインターフェイスA103,大容量ストレージインターフェイスA135,メモリインターフェイスA140,アプリケーション固有回路A145,大容量ストレージデバイスA150,RAM A155を有する。
内部バス114はモニタープロセッサ111の部分間で,データのリクエストやデータを含む反応などの信号を通信可能である。内部バスはCPUメモリインターフェイスA103,大容量ストレージインターフェイスA135,メモリインターフェイスA140,アプリケーション固有回路A145,大容量ストレージA150と連結する。CPU A100はここで述べた機能の実行が可能な汎用プロセッサまたは特殊用途プロセッサを有する。例えばCPU A100は,AMD社またはインテル社製造の汎用プロセッサ,DSPや内蔵マイクロコントローラなどの特殊用途プロセッサを含む。
CPUメモリインターフェイスA103はCPU A100に連結する。CPUメモリインターフェイスA103はCPU A100からのメモリアクセスリクエストを受信し,CPU A100のRAM A155へのアクセスを記録する。一つの実施形態では,CPUメモリインターフェイスA103はそのような全てのアクセスを記録するが,他の実施形態ではCPUメモリインターフェイスA103は,セキュリティロジック112またはセキュリティ情報113によって指定された1セットの選択されたメモリ位置に特定したアクセスのみなど,記録するアクセスを選択することができる。
大容量ストレージインターフェイスA135は大容量ストレージA150とともに適切なインターフェイス機能を実施する。大容量ストレージA150はハードディスク,フレキシブルディスク,テープ,または他のタイプの大容量ストレージを含む。
メモリインターフェイスA140は外部メモリ(RAM A155を指す)に対して適切なインターフェイス機能を実行する。RAM A155は書き込み可能でも不可能でも,書き込み可能な場合一回のみ可能でもそれ以上でも,RAMのあらゆる形状を含む。
アプリケーション固有回路A145は,CPU A100によってまだ実行されていない,特定のモニタープロセッサ111に特有なその他の機能を実行する。CPU A100とアプリケーション固有回路A145は互いに連結・連帯して選択された機能を実行できる。
2. セキュリティロジック
セキュリティロジック112は,セキュアモード切替回路A105,セキュアタイマー回路A110,セキュアブートコードA115一式,アクセスコントロール回路A133,セキュアモードアクティブ信号A160,アクセスコントロール信号A163,NMI(マスク不可能な割り込み)信号A165,外部リセット信号A170の受信のためのポートA171を有する。さらにセキュリティ機能の手助けをするセキュアコードA120一式は大容量ストレージA150に保存される。
セキュアプロセッサ110は外部リセット信号170Aに反応することができる。CPU A100はリセット信号170Aに応じて,セキュアブートコードA115の予め選択されたリセット位置へとコントロールを移動させる(つまり新しい位置にて命令の実行を開始する)。予め選択されたリセット位置もセキュアブートコードA115も,CPU A100または他のアプリケーションソフトウェアによって変更はできない。
リセット信号170Aに応じて,セキュアモード切替回路A105はセキュアモードアクティブ信号A160を発信するが,それによりCPU A100がセキュアブートコードA115にアクセス可能となるようアクセス権がセットアップされ,命令を実行し,セキュリティ情報113を利用してデータの読み書きを行う。リセットの際には,セキュアプロセッサ110がコントロールをリセット位置へと移動させ,セキュアブートコードA115を実行し,(セキュアモードアクティブ信号A160がTRUEを示す状態で)CPU A100はチップの制限されたセキュア部分へアクセス可能となる。ある実施形態では,セキュアブートコードA115が個々の不揮発性メモリA115に保存され,その位置もコンテンツもアプリケーションソフトウェアは変更できない。
セキュアブートコードA115は,必要とされるセキュリティチェックを実行した後,セキュアカーネルコードA120に含有されるいかなる追加のソフトウェアもセキュリティ機能も,外部大容量ストレージA150から内部RAM A120の中へ配置し読み込む。
追加のソフトウェアを配置し読み込んだ後,CPU A100はコントロールをセキュアコードA120(=セキュアカーネルコード)へと移動させ,セキュアコードを実行開始する。セキュアコードA120によりCPU A100はアプリケーションコード143を認証・実行する準備を始める。アプリケーションコード143の実行のための準備が完了すれば,セキュアコードA120によりセキュアプロセッサ110がセキュアモードを終了する。
セキュアプロセッサ110はさらにNMI信号A165に反応することができる。NMI信号A165は,セキュアモードでサービスが実行されるようリクエストするために,例えばアプリケーションコード143により(例えばCPU A100によって実行可能なプログラム命令により)発信される。そのようなサービスの例としては,セキュアコードA120のみが実行の権限を有するセキュア機能または他の機能を実行することである。そのようなサービスを要求するには,アプリケーションコード143はセキュリティロジック112に選択されたビットを設定する。セキュアモードロジックはセキュアモードアクティブ信号A160をTRUEとなるように設定し,それによりCPU A100はセキュアプロセッサ110のセキュア部へアクセス可能となる。同時にセキュリティロジック112はNMI信号A165をCPU A100へ送信し,CPU A100がチップ内のセキュアブートコードA115へコントロールを移動させる。セキュアブートコードA115は,アプリケーションのためのサービスを実行し,RAM A155のいくつかの共用メモリ位置へ結果を提供し,セキュリティロジック112を利用してモニターモードへ移行する。予め選択されたNMIハンドラ位置,セキュアブートコードA115,そしてセキュリティカーネルソフトウェアの読み込みおよび検証を行う方法は,CPU A100または他のアプリケーションソフトウェアは変更できない。
ここで述べたように,セキュアカーネルコードA120は内部メモリ(不揮発性メモリ,または外部ストレージから読み込み認証された場合は揮発性メモリも)に保存される。セキュアモード切替回路A105はセキュアモードアクティブ信号A160を発信し,それによりCPU A100はセキュアブートコードA115を含む不揮発性メモリC100へアクセス可能となり,よってCPU A100は命令を実行し,セキュリティ情報113を利用してデータの読み書きを行う。
セキュアタイマー回路A110は,セキュアモード切替回路A105によって設定されたパラメータに応じて,CPU A100へのタイマー割り込み信号を発信することができる。セキュリティロジック112はまた,セキュアタイマーのタイムアウトに応じて,NMI信号A165をCPU A100へ発信できる。これに対しCPU A100は,セキュアカーネルコードA120にある予め選択されたタイマー割り込みハンドラ位置へコントロールを移動させる。その予め選択されたタイマー割り込みハンドラ位置もセキュアカーネルコードA120も,CPU A100や他のアプリケーションソフトウェア(または外部ストレージA150に保存された他のソフトウェア)は変更できない。
セキュアモードに入るためのその他の方法と同様に,セキュアプロセッサ110はタイマー割り込み信号A165に応じて,セキュアモードアクティブ信号A160をTRUEに設定し,その結果セキュアチップのセキュア部分へのアクセスを可能にする。
アクセスコントロール回路A133は,セキュアモードアクティブ信号A160に応じてアクセスコントロール信号A163を発信することによってセキュアプロセッサ110のエレメントへのアクセスを制御するもので,前記エレメントはアクセスコントロールが実行されるセキュアプロセッサ110の各エレメントと連結する。セキュアモードアクティブ信号A160が,セキュアプロセッサ110がセキュアモードにあることを示す時,アクセスコントロール回路A133は,CPU A100がセキュアプロセッサ110の全てのエレメントへアクセスすることを許可する。一方,セキュアモードアクティブ信号A160が,セキュアプロセッサ110がモニターモードにあることを示すとき,アクセスコントロール回路A133は,CPU A100がセキュアプロセッサ110の下位互換性のあるモニターモード部分にのみアクセスすることを許可する。好ましい実施形態では,そのような下位互換性のあるモニターモード部分はセキュリティロジック112(セキュアモードへの移行を示すもの以外)およびセキュリティ情報113を除外する。
さらに具体的には,セキュアモードアクティブ信号A160が,セキュアプロセッサ110がモニターモードにあることを示すとき,アクセスコントロール回路A133は,CPU A100が以下にアクセスすることを阻止する:セキュアモード切替回路A105(セキュアモードへの移行を示すもの以外),セキュアタイマー回路A110,セキュアブートコードA115,セキュアカーネルコードA120,アクセスコントロール回路A133,セキュアモードアクティブ信号A160,アクセスコントロール信号A163,リードオンリー・セキュアデータA125,リード/ライト(読み書き自在)一時的セキュア状況値A130,暗号化/暗号解読キーB101,ライセンス供与情報B102。
3.セキュリティ情報
セキュリティ情報113は,リードオンリー・セキュアデータA125一式,リード/ライト一時的セキュア状況値A130一式,個人キー一式(公開鍵暗号システムなどから得られるもの),暗号化/暗号解読キー一式,任意のユニークID一式,署名情報B101一式を含む。
リードオンリー・セキュアデータA125は,以下に示すようなセキュアコード一式を含む。即ち,リセット信号A170に応じて,随意のNMI信号A165に応じて,タイマー割り込み信号A165に応じて,或いはその他ではセキュアモードに移動したときに,CPU A100により実行可能となるコードなどを含む。ある実施形態では,リードオンリー・セキュアデータA125は,好ましくは個々のセキュアプロセッサ110に独自な,一またはそれ以上の個人キー一式と暗号化/暗号解読キーB101一式を有する。そのような実施形態でセキュアプロセッサ110は,公開鍵暗号システムを利用する信頼できるソース(発信元)からのメッセージを暗号解読するために暗号化/暗号解読キーB101を使う(例えば公開鍵暗号システムの個人/公開キーの個人キーを利用するなど)。そのほか,セキュアプロセッサ110は暗号化/暗号解読キーB101とは異なる他のコード署名B103一式を有し,認証のために他の技術を利用している信頼できるソースを認証する。同様に,このような実施形態においてセキュアプロセッサ110は,例えば認証された信頼できるソースから追加のセキュアコードを受信した際に,その追加セキュアコードに付随するデジタル署名またはセキュアハッシュの正確さに留意することで,メモリに読み込まれる追加セキュアコードの精度を検証するためにコード署名B101を利用する。
ある実施形態では,リードオンリー・セキュアデータA125はキー情報B102を含み,それにより個々のセキュアプロセッサ110はソースを認証し,個々のセキュアプロセッサ110が関連するアプリケーションソフトウェアを受信または実行する権利を有することを検証できる。例えばライセンス供与情報B102は,個々のセキュアプロセッサ110が関連するアプリケーションソフトウェアを実行するライセンスを有することを示す,信頼できる専門家による署名の入った証明書を含む。そのような実施形態では,認証された信頼できるソースはライセンス供与情報B102に応じて,アプリケーションソフトウェアの読み込み及び実行のための関連機能をセキュアプロセッサ110に供給する。ある実施形態ではこれらの機能は,アプリケーションソフトウェア自体,またはセキュアプロセッサ110がアプリケーションソフトウェアを読み込み及び実行することを承認するDRM(デジタル著作権管理)証明書の双方を含む。
リード/ライト一時的セキュア状況値A130は,セキュアプロセッサ110がセキュアコードを実行するために必要とするいかなる読み書き自在の一時的な記憶情報をも含む。ある実施形態では,セキュアプロセッサ110がその一時的な状況の全てをリード/ライト一時的セキュア状況値A130に保存し,その結果アプリケーションコードはセキュアコードによって使用されるいかなる状況情報にもアクセスできなくなる。さらにセキュアプロセッサ110は,CPU A100によって実行されるいかなるソフトウェアに対しても適切な認証や有効性チェックを行うために,CPU A100によって実行可能な命令をセキュアカーネルコードA120内に有する。リード/ライト一時的セキュア状況値A130の中にセキュアプロセッサ110の全ての一時的状況を保存することは,その一時的状況を読みセキュアプロセッサ110のセキュアモード動作のセキュリティを侵害しようとするユーザーにとって,作業要因を増やす効果がある。しかし他の実施形態では,セキュアプロセッサ110は少なくともいくつかの一時的状況を一般メモリに保存することができ,それによりアプリケーションコードはその状況に関連するいくつかの状況値にアクセス可能となる。
動作方法
図2はセキュアの実行が可能なセキュアプロセッサの動作方法の工程系統図を示す。
方法200はシステム100によって実行される。方法200は連続して記載されるが,フローポイントや手順は個々の要素によって,連結または並行して,非同期的または同期的に,またはパイプライン式に実行可能である。方法200は特に記載のない限り,本明細書の以下にあるフローポイントや手順の順序に従って実行される必要性はない。
1. 電源ON
フローポイント210では,セキュアプロセッサ110は電源を入れる準備ができている。
手順211では,セキュアプロセッサ110は電源が入る。
手順212では,リセット信号A170がアサートされ,そのためセキュアプロセッサ110がリセットされたことを示す。セキュアプロセッサ110がリセットされると,セキュアモードアクティブ信号A160がアサートされ(つまりTRUEにセットされ),CPU A100はセキュアブートコードA115へジャンプする(つまり実行コントロールを移動させる)。
手順213では,CPU A100がセキュアブートコードA115へのアクセスの許可を受け,その命令を実行し,セキュリティ情報113を使って読み書きを行うことを不揮発性メモリC100(図3)に対し示すセキュアモードアクティブ信号A160を,セキュアモード切替回路A105がアサートする。その後CPU A100は,セキュアブートコードA115の中の予め選択されたリセット位置へコントロールを移動させる。
手順214では,CPU A100はセキュアブートコードA115からの命令を実行する。
手順215では,CPU A100はセキュアブートコードA115を実行する。
ある実施形態において,以下に示すMIPSまたはMIPS互換プロセッサにおける実施例では,リセットによってセキュアモードへ入る結果となる。この実施例では,実行方法のフローポイント250から開始し,手順214と手順215に含まれる動作をとる。
・ 手順251では,リセット信号によってセキュアモードに入ることが要求される。
・ 手順252では,もしリセット位置0x1fbc0000へ後のキャッシュしていない(uncached)読み込みが行われた時のみ,セキュリティロジック112がセキュアモード信号A165をTRUEにセットする準備を行う。
・ 手順253では,CPU A100がリセット信号に応じるため,通常の実行を中断する。
・ 手順254では,CPU A100がリセット位置0x1fbc0000から次の命令を取得し,それによりリセット割り込みハンドラまたはNMI割り込みハンドラを作動する。
・ 手段255では,セキュリティロジック112がセキュアモード信号A160をTRUEにセットし,それによりチップのセキュア部へのアクセスおよびセキュアブートコードの実行を可能にする。
・ 手段256では,CPU A100がセキュアブートコードA120中のリセット割り込みハンドラもしくはNMI割り込みハンドラの実行へ進む。
セキュアブートコードA120の実行後,大容量ストレージA150から以下の手順にてセキュリティカーネルまたはセキュリティ機能を読み込む。
セキュアブートコードA115はセキュリティ情報113を読み,暗号によって署名された,もしくは検証可能な命令を受ける。そしてそれら追加命令を内部RAM A155へ記憶する。この手順の実行のために以下のサブステップをCPU A100が実行する:
・ サブステップ215では,セキュアモードで動作するCPU A100が,セキュアブートコードA120によって読み込まれ認証された大容量ストレージA150からのソフトウェア(サーバデバイスから取得したものである可能性もある)を実行する。ある実施形態では,セキュアモードで動作するCPU A100のみアクセス可能な,リードオンリー・セキュアデータA125に含まれる暗号化/暗号解読キーB101を利用してメッセージを暗号化する。
ある実施形態においては,CPU A100は追加命令をコミュニケーションリンクを利用して取得するが,他の実施形態ではシステム100は追加命令を(一部でも全体でも)他の手段で取得する。例えば,(1)物理的な媒体手段によって,または(2)DRM(デジタル著作権管理)証明書または他のサーバデバイスから取得される機能を有する第三者によって,それら追加命令を取得する可能性もある。
さらに,ある実施形態においては追加命令が暗号化形態によって送られるが,他の実施形態では,DRM証明書または他の機能や技術を利用して管理される追加命令への使用権を施行することで,暗号化されていない形態の追加命令を(一部でも全体でも)システム100が取得することができる。
・ サブステップ216では,チップ内部からのセキュア情報,またはセキュアなソフトウェアやデータによって既に信頼関係を樹立した信頼できるサーバからのメッセージに関し検証済みのセキュア情報に関し,セキュアモードで動作するCPU A100がソフトウェアを認証し,その安全性を検証する。ある実施形態では,CPU A100はこの認証のためのサブステップを,リードオンリー・セキュアデータA125に含まれる暗号化キーまたはコード署名B101を使った公開鍵暗号システム,または信頼できるサーバ130からの,暗号化/暗号解読キーB101またはリードオンリー・セキュアデータA125に含まれる他の情報(例えば信頼できるサーバ130の公開キーなど)を利用して実行する。
・ サブステップ216では,セキュアプロセッサ110がアプリケーションソフトウェアまたは他の追加命令を信頼できるサーバ130から受信する認証を受けていることを,信頼できるサーバ130が状況に応じて検証する。ある実施形態では,公開鍵暗号システム,リードオンリー・セキュアデータA125からの暗号化/暗号解読キーB101,またはライセンス供与情報B102やリードオンリー・セキュアデータA125からの他の情報を利用して,CPU A100がこの検証のためのサブステップを実行する。
当業者ならば本明細書を熟読すれば,暗号化署名や信用されたルートキーを利用するソフトウェアやサーバからのデータの認証のためには,多くの他の技術が利用できることが理解できる。また,そのような認証が信頼できるサーバ130のためだけのものである必要はない。他の実施形態では,サーバやクライアントが互いに認証し合うこともできる。
・ サブステップ217では,セキュアモードで動作するCPU A100が,信頼できるサーバ130からアプリケーションソフトウェアや他の追加命令を受け,それらの正確度(accuracy)を検証する。ある実施形態では,CPU A100はこの検証のためのサブステップを,公開鍵暗号システムやリードオンリー・セキュアデータA125からの暗号化/暗号解読キーB101,またはアプリケーションソフトウェアやリードオンリー・セキュアデータA125からの他の追加命令のためのセキュアハッシュを利用して実行する。
・ サブステップ218では,セキュアモードで動作するCPU A100がアプリケーションソフトウェアや他の追加命令をRAM A155に記憶する。このサブステップによりアプリケーションソフトウェアや他の追加命令がCPU A100によって実行される準備が整う。
アプリケーションソフトウェアの認証および読み込みのための方法例を上記に述べたが,他のさらなる技術が適応されることもできる。上述のように,本発明の状況では,アプリケーションソフトウェアの認証のために必ずしも特定の技術が用いられる必要はなく,具体的には,アプリケーションソフトウェアの認証のために必ずしも信頼できるサーバ130とのインターアクティブ通信が用いられる必要はない。
ある実施形態において,セキュアカーネルコードA120の少なくともいくらかの部分が,追加命令としてセキュアプロセッサ110によって取得される。他の実施形態では,以下の技術が利用される:
・ 立ち上げ(電源ONまたはリセット信号の受信)では,CPU A100は,セキュアブートコードによって正しくセキュアであると検証されたセキュアカーネルコードA120の実行を強制される。
・ ブートストラップローダによってプログラムコードを読み込んだ後,CPU A100はセキュアカーネルコードA120を実行し,それにより大容量ストレージA150または他の外部デバイスから内部メモリへの,セキュリティ機能の実行のためのコードの移動およびコピーを行う。他の実施形態では,内部メモリがSRAMメモリのようなオンチップ揮発性メモリである。
不揮発性ライトワンス(write once)メモリC110はセキュアプロセッサチップの製造段階で,例えば160ビットのセキュアハッシュまたはダイジェスト値など,暗号強度が高い署名値にて初期値の設定が行われる。ある実施形態では,前記セキュアハッシュまたはダイジェスト値は,SHAIセキュアハッシュまたは他の暗号強度が高い署名値を有する。不揮発性ライトワンスメモリの構成および初期値設定によって,セキュアプロセッサチップの製造の後,アプリケーションソフトウェアによって変更されるのを阻止する。
セキュアカーネルコードA120のブートストラップローダ部は新しく読み込んだプログラムコードの署名を計算し,その計算した署名と,不揮発性メモリC100に既に内部記憶された予め計算されている署名とを比較する。もしその計算された署名と予め計算されている署名とが合致する場合,セキュアカーネルコードA120のブートストラップローダ部は,新しく読み込んだプログラムコードが正確で信頼できるものであると判断を下す。この判断を受けたとき,CPU A100はセキュアコードの新しく読み込んだプログラムを実行できる。
ある実施形態では,セキュアモードにて実行されるべき追加ソフトウェアを読み込む度に,CPU A100は新しく読み込んだプログラムコードが正確で信頼できるものかどうかを再度検証する。例えばそのような場合とは(1)セキュアカーネルコードA120の一部分がRAM A155や大容量ストレージA150,または他の外部デバイスから読み込まれる時,(2)例えば新しいセキュリティ機能もしくはセキュアカーネルコードA120によって提供される新しい機能などの追加ソフトウェアが,セキュアカーネルコードA120へ追加または読み込まれるのが望ましい時である。
ある実施形態では,CPU A100は新しく読み込まれたプログラムコードの各モジュールが正確で信頼に値するものであることをそれぞれ検証する。例えばそのような場合とは(1)複数モジュールがRAM A155,大容量ストレージA150,またはその他の外部デバイスから読み込まれた場合,各モジュールの予め計算された署名を管理する,(2)追加のソフトウェアが一連のモジュールへ読み込まれるのが望ましい時,予め計算された新しい署名を各モジュールへ順に移動させる(3)各モジュールに対し個別に予め計算された署名と,モジュール一式に対し予め計算された一署名との両方を保存する。
手順219では,セキュアプロセッサ110はセキュアモードを終了してモニターモードへと移行する。一般的なセキュアモードからの終了方法は,後述する。
2. サービスのリクエスト
フローポイント220では,セキュアプロセッサ110はモニターモードにてアプリケーションソフトウェアを実行している。セキュアモードはアプリケーションソフトウェアからのサービスのリクエストを受ける準備ができている。
手順221では,アプリケーションソフトウェアはセキュアプロセッサ110へサービスのリクエストを提供する。
手順222では,ある実施形態において,アプリケーションソフトウェアがサービスのリクエストのためのパラメータをセキュアモードロジックの選択されたレジスタへ配置する。
手順223では,セキュアモードロジック112がセキュアモード信号A160をTRUEにセットする。
手順224では,セキュアモードロジック112がCPU A100に対しNMI割り込み信号を発信し,それによりCPU A100はサービスのリクエストに応じるためにセキュアカーネルコードA120へコントロールを移動する。
手順225では,手順213と同様に,CPU A100はセキュアコードの予め選択された割り込みハンドラ位置へとジャンプする。セキュアモード切替回路A105はセキュアモードアクティブ信号A160をアサートするタイマーに関与し,そのセキュアモードアクティブ信号A160によってCPU A100はセキュアコードにアクセスし,命令を実行し,セキュリティ情報113を使ってデータの読み書きを行うことができる。
手順226では,手順214と同様に,CPU A100はセキュアコードからの命令を実行する。セキュアコードはNMI割り込み(マスク不可能な割り込み)の処理を行う。
ある実施形態における,以下に示すMIPSおよびMIPS互換性プロセッサでの実施例では,アプリケーションコード143のリクエストによってセキュアモードに入るという結果を得た。この実施はフローポイントの250から開始する。
・ アプリケーションがセキュアモードロジック中のレジスタへキャッシュしていない読み込みを実行する。これはセキュアモードロジックを,NMIリセット位置である0xbfc0000からの次の読み込みと出会ったときだけ条件に応じてセキュアモードへと移行するよう保護する。
・ 手順252では,リセット位置である0xbfc0000へ次のキャッシュしていない読み込みが行われた時のみ,セキュリティロジック112はセキュアモード信号A165をTRUEにセットする。
・ 手順253では,セキュリティロジック112によりNMI信号がCPU A100へアサートされる。
・手順254では,CPU A100は位置0xbfc0000から次の命令をフェッチしようと試みるが,これによりリセット割り込みハンドラまたはNMI割り込みハンドラが起動する。
・手順255では,セキュリティロジック112はセキュアモード信号A165をTRUEにセットし,それによりチップのセキュア部へのアクセス及びブートセキュアコードの実行が可能となる。
・手順256では,CPU A100がセキュアコードA120にあるリセット割り込みハンドラまたはNMI割り込みハンドラの実行へ進む。
ある実施形態では,セキュアモードロジックのレジスタはセキュアモードへ入る理由(例えばリセットのため,アプリケーションコードからリクエストがあるためなど)を示すために保持される。
セキュアカーネルはセキュアモードへ入る原因を判断し,場合によってはチップの侵入禁止領域を読み込むことでアプリケーションによってリクエストされたサービスを実行し,アプリケーションと共用するメモリ領域へ結果を返信する。
リクエストされた動作を実行した後,セキュアカーネルはセキュアモードロジックを通って規定の終了手順(以下に述べる)を開始し,アプリケーションコード143へ戻る。
手順227では,セキュアプロセッサ110はリクエストされた動作の結果をRAM A155などの共用メモリへ保存する。
ある実施形態では,アプリケーションソフトウェアによって供給されたサービスのリクエストには,入出力動作を実行するリクエストが含まれる。そのような場合,セキュアプロセッサ110はセキュアモードで実行される少なくともいくつかの入出力動作を保留する。その結果,アプリケーションソフトウェアはセキュアコードからの補助なしではそのような入出力動作を実行できない。
アプリケーションソフトウェアは,リクエストされたサービスが入出力動作であることを示すサービスのリクエストを,リクエストに付随するパラメータによって提示する。リクエストに付随するパラメータは,好ましくはアプリケーションソフトウェアを実質的に変更せずにそのアプリケーションソフトウェアと連携して動作を行うために,セキュアプロセッサ110に合わせて設計者によって選択されたAPI(アプリケーション・プログラミング・インターフェイス)に従う。
ある実施形態では,アプリケーションソフトウェアによって提示されたサービスのリクエストが,追加ソフトウェアの読み込みリクエストを含むこともできる。そのような実施形態では,セキュアプロセッサ110は手順214およびそのサブステップに類似した手順を踏む。これによりシステム100において手順214に類似したサブステップでは,CPU A100は信頼できるサーバ130をサーバデバイスとして認証し,大容量ストレージA150または信頼できるサーバ130から追加ソフトウェアを読み込み/受信し,さらにそのソフトウェアの信頼性や安全性を検証した後にRAM A155に記憶する。
エラートラップまたは入出力エミュレーションは上記と同じ例示的メカニズムによってセキュアモードロジックを通って処理される。その場合セキュアモードロジックはCPUがセキュアモードへ入り,エラートラップや入出力リクエストを処理するために予め認証されたソフトウェアを必要に応じて実行するよう強制する。
手順228では,セキュアプロセッサ110はセキュアモードからモニターモードへと終了する。セキュアモードの終了のための一般的な実施例は,のちに概説する。
3. タイマー割り込み
フローポイント230では,セキュアプロセッサ110はモニターモードにて動作中のアプリケーションソフトウェアに割り込みできるタイマーをセットしており,タイマーはオフになる準備ができている。
手順231では,手順221と同様にタイマーがオフとなり,アプリケーションソフトウェアは割り込みされる。
手順232では,手順222と同様にタイマー割り込み信号A165がアサートされ,それによりセキュアプロセッサ110の処理が割り込まれたことを示す。
MIPSまたはMIPS互換性プロセッサにおけるセキュアタイマートラップの実施例は,以下の通りである。この実施例はフローポイント250から始まる手順に類似する。
・ セキュアタイマーは,ゼロまでカウントダウンしてセキュアタイマートラップの周期性を判断する値へとリセットするために,CPUのリセットセキュアブートソフトウェアにプログラムされる。
・ タイマーはプログラムされた設定からゼロに達するまでカウントダウンし,NMI信号A165をCPUに出力し(実行経路に割り込ませる),セキュアモードロジックが,次にキャッシュしていない読み込みのリクエストがNMIルーチン回路へ送られた場合のみ,条件に応じてセキュアモードアクティブ信号をアサートするよう保護する。
・ CPUは,タイマー割り込みが行われた時点で望まれる動作を実行するようセキュアカーネルが属するNMIルーチンを実行するためにジャンプする。
・ セキュアモードロジックは,NMI位置への読み込みが確認された時点でセキュアモードアクティブ信号をTRUEへとセットし,チップ内のセキュアリージョン(領域)へのアクセスを許可する。
・ タイマートラップの処理に関与するセキュアカーネルルーチンは,動作を実行し,最後にセキュアモードロジックを通って再度セキュアモードへ入る。
手順236では,CPU A100はセキュアコードを出てアプリケーションソフトウェアの実行ポイントへと戻る。セキュアモード切替回路A105はセキュアモードアクティブ信号A160のアサートを停止し,それによりCPU A100にはセキュアコードへのアクセスも,命令の実行も,セキュリティ情報113を利用したデータの読み書きも許可されないことを示す。
4. モニターメモリアクセス
フローポイント240では,セキュアプロセッサ110は,モニターモードで実行しているアプリケーションソフトウェアによる外部メモリへのアクセスを記録する準備ができている。
手順241では,CPU A100はRAM A155への読み書きを行う。この手順のために,CPU A100はCPUメモリインターフェイスA103へメモリアドレスを送る。
手順242では,CPUメモリインターフェイスA103は前記メモリアドレスを内部バス114へ伝送し,その内部バス114は該メモリアドレスをメモリインターフェイスA140およびセキュリティロジック112へと伝送する。
手順243では,アクセスコントロール回路A133を含むセキュリティロジック112が,CPU A100がRAM A155内のメモリアドレスにアクセスすべきかどうかを判断する。ある実施形態では,CPU A100によるRAM A155内のメモリアドレスへのアクセスは常に許可される。しかし他の実施形態では,アクセスコントロール回路A133がCPU A100による選択されたメモリアドレスへのアクセスを制限することができ,そのためCPU A100がモニターモードにて動作しているときRAM A155の選択された部分は孤立する。
手順244では,アクセスコントロール回路A133を有するセキュリティロジック112が,CPU A100によるRAM A155内の該メモリアドレスへのアクセスを記録する。ある実施形態では,CPU A100は選択されたメモリアドレスのみを記録する。例えばCPU A100がモニターモードで動作中にアクセスを記録するために,アクセスコントロール回路A133は一以上のRAM A155の部分を選択できる。しかし他の実施形態では,アクセスコントロール回路A133は前述のようなメモリアクセスの全ての記憶を試みることも,メモリアクセスのパターンに応じてメモリアクセスを記録することも,セキュアモードで動作しているCPU A100によって選択された他の基準に応じてメモリアクセスを記録することも可能である。アプリケーション仕様の制限情報は,アプリケーションが開始する通常の制限認証チェックの間,セキュリティソフトウェアによって読み込みが可能である。
以下の実施形態では,上記メカニズムのいずれかにおけるセキュアモード終了の実施方法が上げられる。
・ セキュアモードへの移動の理由を示すレジスタがクリア(除去)される。
・ ソフトウェアがセキュアカーネルソフトウェアを実行するために使われた全てのキャッシュまたは内部メモリ領域をクリアする。
・ NMIルーチンからセキュアカーネルソフトウェアが戻る。
不揮発性メモリ
図3は実質的に消去不可能な方法で不揮発性メモリを構成するためのデバイスを含む回路の構成図を示す。
回路300は不揮発性メモリC100,ディセーブル(不可能)ロジックC110,外部プログラムロジック回路C120,非接合ピンC130,外部プログラミングピン340一式を有する。
ある実施形態では,不揮発性メモリC100はフラッシュメモリまたは他の電気的にプログラム可能で読み込み可能なメモリを含み,それにより回路300は不揮発性メモリC100がデータでプログラムされたか否かを判断できる。本発明の状況では,ここで述べる機能を実行できる限り,不揮発性メモリC100は特定のメモリ技術を有する必要はない。
ディセーブルロジック回路C110は外部プログラムロジック回路C120と連携するが,それによりディセーブルロジック回路C110からのプログラムイネーブル信号が休止になったとき,外部プログラムロジック回路C120への入力が不可能になり,不揮発性メモリC100は外部プログラミングピンから電気的にプログラムできなくなる。
ディセーブルロジック回路C110もまた不揮発性メモリC100に連携されており,不揮発性メモリC100からの値を読み込むこと,さらにそれらの値をプログラムイネーブル署名値と比較することが可能であり,それによりディセーブルロジック回路C110は不揮発性メモリC100が初期段階にプログラムされたか否かを判断できる。もし不揮発性メモリC100がプログラムイネーブル署名値と初期段階でプログラムされたものであれば,ディセーブルロジック回路C110は外部プログラムロジック回路C120への入力を可能にし,それにより不揮発性メモリC100は電気的にプログラム可能になる。プログラムイネーブル署名値が不在な場合,ディセーブルロジック回路C110からのプログラムイネーブル出力が不可能になる。
非接合ピンC130は,セキュアプロセッサチップダイに配置され,ダイの実装前に精査可能な,いかなる外部ウィングや実装体にも接合されていない,電気的に伝導性のあるパッドを有する。これにより非接合ピンC130はセキュアプロセッサチップの製造時に外部回路と電気的に連結可能であるが,製造または実装の後,該非接合ピンC130は実質的にいかなる外部回路へも電気的に連結不可能となる。よってセキュアプロセッサチップの製造後そして実装前は,非接合ピンC130は不揮発性メモリC100のプログラミング時に利用が可能であるが,製造および実装が完了すると,該非接合ピン130は不揮発性メモリC100のプログラミング時に利用不可能となり,それにより外部からの不揮発性メモリC100のプログラミング動作は不可能となる。
製造後のウエハーテストでは,非接合ピンC130は選択された電圧(ロジック“0”)と連結され,それによりディセーブルロジックC110からのプログラムイネーブル出力の状況に関わらず,外部プログラムロジック回路C120はイネーブル(有効化)され,不揮発性メモリC100は電気的にプログラム可能となる。
独自情報の記録方法
図4は実質的に消去不可能な方法で不揮発性メモリを構成するデバイスを含む回路の動作方法を示す工程系統図を示す。
方法400はセキュアプロセッサ110の組み立ての際に,回路300に関し実行される。方法400は連続して記載されるが,フローポイントおよび手順は各々の要素によって連結または並行して,非同期的にまたは同期的に,またはパイプライン式に実行可能である。方法400は特に記載のない場合,本明細書にあるフローポイントや手順の順序に従って実行される必要性はない。
フローポイント410では,セキュアプロセッサ110の不揮発性メモリC100はプログラムされる準備ができている。ある実施形態では,この方法によってこの特定のセキュアプロセッサ110に特有なセキュリティ情報が不揮発性メモリに記録される。
手順411では,非接合ピンC130は選択された電圧(ロジック“0”)と連結され,それにより外部プログラムロジック回路C120はイネーブル(有効化)され,不揮発性メモリC100は電気的にプログラム可能となる。
手順412では,不揮発性メモリC100に(最後のメモリ位置に配置された)初期プログラムイネーブル署名値が電気的にプログラムされ,それにより不揮発性メモリC100はさらにプログラムされる準備が整う。
手順413では,回路300が実装され,それにより非接合ピンC130は外部回路との連結が不可能となる。
手順414では,不揮発性メモリC100が電気的にプログラムされる。
この手順が実行される実施形態においては,セキュアプロセッサ110の固有のインスタンスに特有なセキュリティ情報113は,不揮発性メモリC100に記録される。その結果,セキュアプロセッサ110の固有のインスタンスが各インスタンスごとに唯一に識別可能になり,信頼できるサーバ130に対し自らを唯一に識別できる。
手順415では,不揮発性メモリC100がプログラムイネーブル署名値を消去するためにさらに電気的にプログラムされる。プログラムイネーブル署名値が消去されると,ディセーブルロジック回路C110が不揮発性メモリC100はもはやプログラミング不可能であると判断し,外部プログラムロジック回路C120はディセーブル(不能)となる。この結果,不揮発性メモリC100は外部プログラミングピンからさらに電子的にプログラムされることが不可能となる。
フローポイント420では,不揮発性メモリC100にはすでにプログラムイネーブル署名値が存在せず,ディセーブルロジック回路C110が,不揮発性メモリC100はもはやプログラミング不可能であると判断し,それにより外部プログラムロジック回路C120がディセーブルとなる。セキュアプロセッサ110が電源ONになると,不揮発性メモリC100の外部プログラミングピンからのさらなる電子的プログラミングは不可能となる。
その他の実施形態
これ以降,好ましい実施形態を開示するが,他の多くの変形形態が本発明のコンセプト,範囲または均等範囲に含まれる。これらの変形形態は当業者が本出願を熟読すれば明白である。
・ 実行可能なコードまたはセキュアコードの全てが,セキュアプロセッサ110を統合するチップ上に存在する必要性はない。他の実施形態では,セキュアプロセッサ110はRAM 155,大容量ストレージA150,または他の外部デバイスにセキュアコードや実行可能なコードを有する。
・ セキュアプロセッサ110が単独の統合チップとして実行される必要はない。他の実施形態にてセキュアプロセッサ110は,暗号化された信号や,不法なのぞき見や改竄に対してセキュアな(安全化された)信号を利用して連結される,複数のデバイスを有する。
・ 全てのセキュアコードが一度に読み込まれる必要はない。他の実施形態にてセキュアプロセッサ110は,それぞれ異なるタイミングで(例えば順々に,またはオンデマンドで)読み込み検証されたセキュアコードの複数のセグメントを有する。第1例としては,セキュアカーネルコードA120は,セキュアモードで動作中のCPU A100によって実行される命令へ読み込み統合される一以上の追加ソフトウェアモジュールの署名を含み得る。さらに第2例としては,セキュアカーネルコードA120が,一以上の読み込み追加ソフトウェアモジュールの署名を含み,その各々の追加ソフトウェア自体が一以上の読み込み追加ソフトウェアモジュールの署名を含むような場合が考えられる。
・ メモリおよび大容量ストレージアクセスのチェックは,選択されたイベントに応じて実行される。例えばそのような選択されたイベントには,暗号化/暗号解読サービス,入出力サービス,またはアプリケーションソフトウェアによるセキュア署名や検証サービスが含まれる。さらに,そのような選択されたイベントには大容量ストレージアクセスのメモリへの定期的な妨害(N番目のアクセス毎など,Nは選択値),定期的なタイマー割り込みなどが含まれる。
・ 認証および検証チェックは,メモリおよび大容量ストレージアクセスのチェックと同様に,選択されたイベントに応じて実行される。例えばそのような選択されたイベントには暗号化/暗号解読サービス,入出力サービス,またはアプリケーションソフトウェアによるセキュア署名や検証サービスが含まれる。さらに,そのような選択されたイベントには大容量ストレージアクセスのメモリへの定期的な妨害(N番目のアクセス毎など,Nは選択値),定期的なタイマー割り込みなどが含まれる。
・ セキュアカーネルコードA120は上記に加え,アプリケーションソフトウェアに追加セキュリティサービスを申し込むことができる。例えばそのような追加サービスは,サーバ(上記記載の,信頼できるサーバ130以外のサーバ)や,他のメッセージングパートナー(ピアツーピアプロトコル中や,アプリケーションソフトウェアがサーバの役割を持つプロトコル中の)からのメッセージの認証および検証,サーバ(上記記載の,信頼できるサーバ130以外のサーバ)や他のメッセージングパートナーと交換したメッセージの暗号化/暗号解読,サーバ(上記記載の,信頼できるサーバ130以外のサーバ)や他のメッセージングパートナーと交換したメッセージの公開鍵暗号システム,二番目に信頼できるサーバから読み込み実行するための追加ソフトウェアの認証および検証,DRMライセンス供与情報の管理,CPU A100による実行のために読み込んだソフトウェアの定期的な(または上記のように,選択したイベントに応じた)認証および検証,などを含む。
・ セキュアカーネルコードA120は上記に加えアプリケーションソフトウェアに対しセキュリティに関連しないサービスを申し込むことができる。例えばその追加サービスには,特定デバイスドライバ,またはアプリケーションソフトウェアが動作ライセンスを有する特定ハードウェアの動作などが上げられる。
本発明の好ましい実施形態についての上記説明は,例示および説明の目的でなされたものであり,本発明を形態そのものに限定することを意図するものではない。
当業者には,多くの変更を行うことは明白であろう。実施形態は本発明の原理を最も良く説明するために選択及び説明したものであり,これにより当業者ならば,意図する特定用途に適した種々の実施形態及び種々の変更形態を理解できるであろう。本発明の範囲は,特許請求の範囲及びその均等範囲により定められるべきである。
セキュアの実行が可能なセキュアプロセッサを含むシステムの構成図 セキュアの実行が可能なセキュアプロセッサの動作方法の工程系統図 セキュアの実行が可能なセキュアプロセッサの動作方法の工程系統図 実質的に消去不可能な方法で不揮発性メモリをプログラムするデバイスを含む回路の構成図 実質的に消去不可能な方法で不揮発性メモリをプログラムするデバイスを含む回路の動作方法を示す工程系統図
符号の説明
100…システム
110…セキュアプロセッサ
111…モニタープロセッサ
112…セキュリティロジック
113…セキュリティ情報
114…内部バス
120…コミュニケーションリンク
130…コンテンツ発信元または信頼するサーバ
140…アプリケーションデバイス
141…入力
142…出力
143…アプリケーションソフトウェア
A100…CPU
A103…CPU/メモリアクセス記録
A105…セキュアモード切替回路
A110…タイマー
A115…ブートコード(セキュアブートコード)
A120…カーネルコード
A125…リードオンリー・セキュアコード及びデータ
A130…リード/ライト揮発性セキュア状況値
A131…リード/ライトセキュアコード及びデータ
A133…アクセスコントロール回路
A135…大容量ストレージインターフェイス
A140…メモリインターフェイス
A145…アプリケーション固有回路
A150…大容量ストレージデバイス
A155…外部RAM
A160…セキュリティ信号
A163…アクセスコントロール信号
A165…NMI(マスク不可能な割り込み)信号
A170…リセット信号
B101…キー識別セキュリティカーネルソフトウェア署名
200…実行方法
210…電源ONの準備
211…電源ON
212…リセット信号
213…セキュアモードアクティブ信号をTRUEにセット
214…CPUがブートコードへジャンプ
215…ブートローダーを実行
216…セキュリティ機能を読み込み及び認証
217…セキュリティ機能を実行
218…アプリケーションを認証及び起動
219…セキュアモードを終了
221…リクエストを提示
222…リクエストがセキュアモードロジックに記録される
223…セキュアモードアクティブ信号をTRUEにセット
224…NMIをCPUへ
225…あらかじめ搭載されたセキュアカーネルへCPUがジャンプ
226…セキュアカーネルがサービスを実行
227…共有メモリに結果を保存
228…セキュアモードロジックを通ってセキュアモードを終了,セキュアモードアクティブ信号をFALSEにセット
230…実行方法
231…タイマーがOFFへ
232…セキュアモードロジックに記録
233…セキュアモードアクティブをTRUEにセット
234…NMIをCPUへ
235…セキュアコードを実行
236…セキュアコードを終了
240…メモリアクセスをいつでも記録するよう準備
241…リード/ライトRAM
242…アドレスをバスとロジックへ連結
243…アクセスを容認?
244…アクセスを記録
250…セキュアモードへ入る流れの図
251…セキュアモードへリクエストを入力(リセット/アプリケーション/セキュアタイマー)
252…セキュアモードロジックがセキュアモードアクティブ信号をいつでも行使するよう準備
253…NMIをCPUへ発信
254…CPUがNMIハンドラの最初の指示を読む
255…セキュアモードロジックがセキュアモードアクティブ信号を行使
256…CPUがNMIハンドラ部を実行
300…回路
340…外部プログラミングピン
C100…フラッシュメモリ
C110…ディセーブル(不可能)ロジック
C120…外部プログラムロジック
C130…非接合ピン
400…方法
410…NV(不揮発性)/RAMをいつでもプログラムするよう準備
411…非接合ピンを電圧へ連結
412…NV(不揮発性)/ROMをデフォルト値でプログラムする
413…回路をまとめる
414…NV(不揮発性)/ROMを独自データでプログラムする
415…デフォルト値を消去
420…NV(不揮発性)/ROMはプログラム不可能に

Claims (39)

  1. アプリケーションソフトウェアをプロセッシングユニットによって実行する方法であって,以下の手順を含む:
    前記プロセッシングユニットが,前記プロセッシングユニットが前記アプリケーションソフトウェアを実行する権限を与えられていることを,該プロセッシングユニットが前記アプリケーションソフトウェアを実行する権限を有するか否かを示す情報に応じて検証すること;
    前記プロセッシングユニットが,前記プロセッシングユニットのモニターモードとセキュアモードとを該セキュアモードであるか否かを示す信号に応じて区別すること;
    さらに
    前記モニターモードでの前記プロセッシングユニットは,前記アプリケーションソフトウェアを前記アプリケーションソフトウェアに対し透過的に実行可能であり,
    前記セキュアモードでの前記プロセッシングユニットは,前記プロセッシングユニットが前記アプリケーションソフトウェアを実行する権限を与えられていることを検証すること。
  2. 前記モニターモードでは,前記セキュアモードには反応しない一般のプロセッサの半導体ダイによって実行可能である命令と実質的に同一な命令が,前記プロセッシングユニットの一部分によって実行される請求項1記載の方法。
  3. 前記モニターモードでの前記プロセッシングユニットが実行する前記アプリケーションソフトウェアから要求され,前記セキュアモードでのみ実行可能なサービスを,前記セキュアモードでの前記プロセッシングユニットが実行する請求項1記載の方法。
  4. 複数の原因の少なくとも一つが発生した場合に,前記モニターモードに割り込み前記セキュアモードへ入る;そして
    前記セキュアモードのときは,前記プロセッシングユニットが,どの原因によって前記セキュアモードへ入ったかを判断する手順を含む,請求項1記載の方法。
  5. 割り込み,リセット信号,またはタイマーの少なくとも一つに応じて,前記モニターモードへ割り込み,セキュアモードへ入る手順を含む,請求項1記載の方法。
  6. 前記プロセッシングユニットが,前記セキュアモードにおいて前記アプリケーションソフトウェアを認証した後,前記セキュアモードを終了し,前記モニターモードにて前記アプリケーションソフトウェアを実行する手順を含む,請求項1記載の方法。
  7. 前記プロセッシングユニットが,前記アプリケーションソフトウェアのオリジナルコードを変更せずに前記アプリケーションソフトウェアを実行してなる請求項6記載の方法。
  8. 前記プロセッシングユニットは,前記セキュアモードで前記プロセッシングユニットが実行するサービスを前記アプリケーションソフトウェアが必要とするとき,前記アプリケーションソフトウェアが割り込みを行うことで前記セキュアモードが再度作動し,前記セキュアモードでの前記プロセッシングユニットによって前記アプリケーションソフトウェアのために前記サービスが実行され,前記セキュアモードが終了し,それによって前記アプリケーションソフトウェアがモニターモードにて実行を続けることが可能となる手順を含む,請求項6記載の方法。
  9. 電源投入の際に前記セキュアモードにて命令を実行する手順を含む,請求項1記載の方法。
  10. 前記プロセッシングユニットが,前記電源投入に応じて,前記プロセッシングユニットを有するチップ内部にある不揮発性メモリに保存された前記セキュアモードで実行されるセキュアコードを実行する手順を含み,前記セキュアコードの実行手順が,
    一以上の信頼できる発信元から追加のセキュアコードである追加コードを読み込むこと;
    前記信頼できる発信元の信頼性を検証すること;
    前記追加コードの安全性を検証すること;
    を含む,請求項9記載の方法。
  11. 前記プロセッシングユニットが,前記電源投入に応じて,前記プロセッシングユニットを有するチップ内部にある不揮発性メモリに保存されたセキュアコードを前記セキュアモードで実行する手順を含み,前記セキュアコードの実行手順が,
    一以上の信頼できる発信元から追加のセキュアコードである追加コードを読み込むこと;
    前記信頼できる発信元の信頼性を検証すること;
    前記追加コードの安全性を検証すること;
    を含み,そして,
    信頼性と安全性を検証する前記手順が,前記チップ内部にある前記不揮発性メモリに記憶された情報に基づいて実行される,請求項9記載の方法。
  12. 前記プロセッシングユニットが,前記電源投入に応じて,前記プロセッシングユニットを有するチップ内部にある不揮発性メモリに保存されたセキュアコードを前記セキュアモードで実行する手順を含み,前記セキュアコードの実行手順が,
    一以上の信頼できる発信元から追加のセキュアコードである追加コードを読み込むこと;
    前記信頼できる発信元の信頼性を検証すること;
    前記追加コードの安全性を検証すること;
    を含み,そして,
    信頼性と安全性を検証する前記手順が,前記チップ内部にある前記不揮発性メモリに記憶された暗号化キー,セキュアハッシュ値,または前記信頼できる発信元の検証や前記追加コードの認証のための他のデータ,の少なくとも一つに基づいて実行される請求項9記載の方法。
  13. 前記アプリケーションソフトウェアが,前記セキュアモードにて実行されるセキュアコードのみが実行の権限を有する命令を少なくとも一つ有する,請求項1記載の方法。
  14. アプリケーションソフトウェアの実行が可能なプロセッシングユニットを含む装置であって,
    前記プロセッシングユニットが前記アプリケーションソフトウェアを実行する権限を有することを,該プロセッシングユニットが前記アプリケーションソフトウェアを実行する権限を有するか否かを示す情報に応じて検証可能であり;
    前記プロセッシングユニットはモニターモードとセキュアモードを有し,モニターモードにおいて前記プロセッシングユニットは,前記アプリケーションソフトウェアを前記アプリケーションソフトウェアに対し透過的に実行可能であり,前記セキュアモードにおいて前記プロセッシングユニットは,前記プロセッシングユニットが前記アプリケーションソフトウェアを実行する権限を有することを検証可能である装置。
  15. 前記モニターモードにおいて前記プロセッシングユニットの一部分が,前記セキュアモードには反応しない一般のプロセッサの半導体ダイによって実行可能である命令と実質的に同一な命令を実行する請求項14記載の装置。
  16. 前記セキュアモードにおける前記プロセッシングユニットが,前記モニターモードでの前記プロセッシングユニットが実行する前記アプリケーションソフトウェアから要求され,前記セキュアモードでのみ実行可能なサービスも実行可能である,請求項14記載の装置。
  17. 前記プロセッシングユニットが複数の原因の少なくとも一つが発生した場合に,前記モニターモードに割り込み前記セキュアモードに入ることが可能であり,前記セキュアモードでは前記プロセッシングユニットが,どの原因によって前記セキュアモードへ入ったかを判断できる,請求項14記載の装置。
  18. 前記プロセッシングユニットが,前記モニターモードに割り込みが可能であり,割り込み,リセット信号,タイマーの少なくとも一つに応じて前記セキュアモードに入ることが可能な,請求項14記載の装置。
  19. 前記プロセッシングユニットが,前記セキュアモードにおいて前記アプリケーションソフトウェアを認証した後,前記セキュアモードを終了し,前記モニターモードにおいて前記アプリケーションソフトウェアの実行が可能な,請求項14記載の装置。
  20. 前記プロセッシングユニットが,前記アプリケーションソフトウェアのオリジナルコードを変更せずに実行してなる請求項19記載の装置。
  21. 前記プロセッシングユニットは,前記セキュアモードで前記プロセッシングユニットが実行するサービスを必要とするとき,前記アプリケーションソフトウェアが割り込みを行うことで前記セキュアモードが再度作動し,前記セキュアモードで前記アプリケーションソフトウェアのために前記サービスを実行し,前記セキュアモードは終了し,それによって前記アプリケーションソフトウェアは前記モニターモードにて実行を続けることが可能となる,請求項19記載の装置。
  22. 前記アプリケーションソフトウェアが前記セキュアモードにて実行されるセキュアコードのみが実行の権限を有する少なくとも一つの命令を含む,請求項14記載の装置
  23. 前記プロセッシングユニットが電源投入の際に前記セキュアモードにて命令を実行する,請求項14記載の装置。
  24. 前記プロセッシングユニットが,前記電源投入に応じて,前記プロセッシングユニットを有するチップ内部にある不揮発性メモリに保存された前記セキュアモードで実行されるセキュアコードを実行し,前記セキュアコードが前記プロセッシングユニットに対し
    一以上の信頼できる発信元から追加のセキュアコードである追加コードを読み込むこと;
    前記信頼できる発信元の信頼性を検証すること;
    前記追加コードの安全性を検証すること;
    を実行するよう指示する命令を含む,請求項23記載の装置。
  25. 前記プロセッシングユニットが,前記電源投入に応じて,前記プロセッシングユニットを有するチップ内部にある不揮発性メモリで保存されたセキュアコードを実行し,前記セキュアコードが前記プロセッシングユニットに対し
    一以上の信頼できる発信元から追加のセキュアコードである追加コードを読み込むこと;
    前記信頼できる発信元の信頼性を検証すること;
    前記追加コードの安全性を検証すること;
    を実行するよう指示する命令を含み,
    前記信頼性と安全性の検証手順が前記チップ内部の前記不揮発性メモリに記憶された情報に基づいて実行される,請求項23記載の装置。
  26. 前記プロセッシングユニットが,前記電源投入に応じて,前記プロセッシングユニットを有するチップ内部にある不揮発性メモリに保存されたセキュアコードを前記セキュアモードで実行し,前記セキュアコードが前記プロセッシングユニットに対し
    一以上の信頼できる発信元から追加のセキュアコードである追加コードを読み込むこと;
    前記信頼できる発信元の信頼性を検証すること;
    前記追加コードの安全性を検証すること;
    を実行するよう指示する命令を含み,
    前記信頼性と安全性の検証手順が前記チップ内部の前記不揮発性メモリに記憶された暗号化キー,セキュアハッシュ値,または前記信頼できる発信元の検証や前記追加コードの認証のための他のデータ,の少なくとも一つに基づいて実行する請求項23記載の装置。
  27. コンピュータ機器によって解釈可能な命令を記録したコンピュータ読み取り可能な記録媒体であって,前記命令では:
    プロセッシングユニットにアプリケーションソフトウェアを実行させる;
    前記プロセッシングユニットが前記アプリケーションソフトウェアを実行する権限を有することを,該プロセッシングユニットが前記アプリケーションソフトウェアを実行する権限を有するか否かを示す情報に応じて検証させる;
    前記プロセッシングユニットのモニターモードとセキュアモードとを該セキュアモードであるか否かを示す信号に応じて区別させ,前記モニターモードでは前記プロセッシングユニット透過的にアプリケーションソフトウェアを実行可能とさせ,前記セキュアモードでは前記プロセッシングユニット前記アプリケーションソフトウェアを実行する権限を有することを検証可能とさせる
  28. コンピュータ機器によって解釈可能な命令を記録したコンピュータ読み取り可能な請求項27記載の記録媒体であって,前記命令では,
    前記セキュアモードには反応しない一般のプロセッサの半導体ダイによって実行可能である命令と,実質的に同一な命令を,前記モニターモードにて前記プロセッシングユニットの一部分によって実行させる
  29. コンピュータ機器によって解釈可能な命令を記録したコンピュータ読み取り可能な請求項27記載の記録媒体であって,前記命令では,
    前記モニターモードにおける前記プロセッシングユニット,前記アプリケーションソフトウェアによって要求され認証された前記セキュアモードでのみ実行可能なサービスも実行させる
  30. コンピュータ機器によって解釈可能な命令を記録したコンピュータ読み取り可能な請求項27記載の記録媒体であって,前記命令では,
    複数の原因の少なくとも一つが発生した場合に前記モニターモードに割り込み,また前記セキュアモードへ入り;
    前記セキュアモードにおいて,どの原因によって前記セキュアモード入ったかを判断する。
  31. コンピュータ機器によって解釈可能な命令を記録したコンピュータ読み取り可能な請求項27記載の記録媒体であって,前記命令では,
    割り込み,リセット信号,タイマーの少なくとも一つに応じて前記モニターモードへ割り込み,前記セキュアモードに入る。
  32. コンピュータ機器によって解釈可能な命令を記録したコンピュータ読み取り可能な請求項27記載の記録媒体であって,前記命令では,
    前記セキュアモードにおいて前記アプリケーションソフトウェアを認証した後,前記セキュアモードを終了し前記モニターモードにおいて前記アプリケーションソフトウェアを実行する手順を含む。
  33. コンピュータ機器によって解釈可能な命令を記録したコンピュータ読み取り可能な請求項32記載の記録媒体であって,前記命令では,
    前記アプリケーションソフトウェアを,前記アプリケーションソフトウェアのオリジナルコードの変更なしに実行させる
  34. コンピュータ機器によって解釈可能な命令を記録したコンピュータ読み取り可能な請求項32記載の記録媒体であって,前記命令では,
    前記アプリケーションソフトウェアが,前記セキュアモードで前記プロセッシングユニットが実行するサービスを必要とするとき,前記アプリケーションソフトウェアが割り込みを行うことで前記セキュアモード再度作動させ前記セキュアモードでの前記プロセッシングユニットに前記アプリケーションソフトウェアのために前記サービスを実行させ,前記セキュアモード終了させ,それによってモニターモードにて前記アプリケーションソフトウェアの実行を続行させる
  35. コンピュータ機器によって解釈可能な命令を記録したコンピュータ読み取り可能な請求項27記載の記録媒体であって,前記命令では,
    電源投入の際に前記セキュアモードにおいて命令を実行させる。
  36. コンピュータ機器によって解釈可能な命令を記録したコンピュータ読み取り可能な請求項35記載の記録媒体であって,前記命令では,
    前記電源投入に応じて,前記プロセッシングユニットを有するチップ内部にある不揮発性メモリに保存されたセキュアコードを実行させる。また前記セキュアコードの実行手順が,
    一以上の信頼できる発信元から追加のセキュアコードである追加コードを読み込ませること;
    前記信頼できる発信元の信頼性を検証させること;
    前記追加コードの安全性を検証させること;を含む。
  37. コンピュータ機器によって解釈可能な命令を記録したコンピュータ読み取り可能な請求項35記載の記録媒体であって,前記命令では,
    前記電源投入に応じて,前記プロセッシングユニットを有するチップ内部にある不揮発性メモリに保存されたセキュアコードを実行させる。また前記セキュアコードの実行手順が,
    一以上の信頼できる発信元から追加コードを読み込ませること;
    前記信頼できる発信元の信頼性を検証させること;
    前記追加コードの安全性を検証させること;を含み,
    さらに,信頼性と安全性を検証させる前記手順が前記チップ内部にある前記不揮発性メモリに記憶された情報に基づいて実行させる。
  38. コンピュータ機器によって解釈可能な命令を記録したコンピュータ読み取り可能な請求項35記載の記録媒体であって,前記命令では,
    前記電源投入に応じて,前記プロセッシングユニットを有するチップ内部にある不揮発性メモリに保存されたセキュアコードを前記セキュアモードで実行させる。また前記セキュアコードの実行手順が,一以上の信頼できる発信元から追加のセキュアコードである追加コードを読み込ませること;
    前記信頼できる発信元の信頼性を検証させること;
    前記追加コードの安全性を検証させること;を含み,
    さらに,信頼性と安全性を検証させる前記手順が前記チップ内部にある前記不揮発性メモリに記憶された暗号化キー,セキュアハッシュ値,または前記信頼できる発信元の検証や前記追加コードの認証のための他のデータ,の少なくとも一つに基づいて実行させる
  39. 前記アプリケーションソフトウェアが前記セキュアモードにて実行されるセキュアコードのみが実行の権限を有する少なくとも一つの命令を含む,請求項27記載の記録媒体
JP2006503366A 2003-02-07 2004-02-06 下位互換性のあるセキュアプロセッサとそれによるセキュアソフトウェアの実行方法 Expired - Lifetime JP4646900B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/360,827 US7322042B2 (en) 2003-02-07 2003-02-07 Secure and backward-compatible processor and secure software execution thereon
PCT/US2004/003413 WO2004072787A2 (en) 2003-02-07 2004-02-06 Secure and backward-compatible processor and secure software execution thereon

Publications (2)

Publication Number Publication Date
JP2007524883A JP2007524883A (ja) 2007-08-30
JP4646900B2 true JP4646900B2 (ja) 2011-03-09

Family

ID=32824069

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006503366A Expired - Lifetime JP4646900B2 (ja) 2003-02-07 2004-02-06 下位互換性のあるセキュアプロセッサとそれによるセキュアソフトウェアの実行方法

Country Status (5)

Country Link
US (2) US7322042B2 (ja)
EP (1) EP1625463B1 (ja)
JP (1) JP4646900B2 (ja)
CN (1) CN101103584B (ja)
WO (1) WO2004072787A2 (ja)

Families Citing this family (148)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8393001B1 (en) * 2002-07-26 2013-03-05 Mcafee, Inc. Secure signature server system and associated method
GB2402785B (en) * 2002-11-18 2005-12-07 Advanced Risc Mach Ltd Processor switching between secure and non-secure modes
DE60304602T2 (de) * 2002-11-18 2006-12-28 Arm Ltd., Cherry Hinton Ausnahmearten innerhalb eines sicheren verarbeitungssystems
US8131649B2 (en) * 2003-02-07 2012-03-06 Igware, Inc. Static-or-dynamic and limited-or-unlimited content rights
US7779482B1 (en) 2003-02-07 2010-08-17 iGware Inc Delivery of license information using a short messaging system protocol in a closed content distribution system
US20100017627A1 (en) 2003-02-07 2010-01-21 Broadon Communications Corp. Ensuring authenticity in a closed content distribution system
US7370212B2 (en) 2003-02-25 2008-05-06 Microsoft Corporation Issuing a publisher use license off-line in a digital rights management (DRM) system
US7305710B2 (en) * 2003-04-29 2007-12-04 Pitney Bowes Inc. Method for securely loading and executing software in a secure device that cannot retain software after a loss of power
US7334123B2 (en) * 2003-05-02 2008-02-19 Advanced Micro Devices, Inc. Computer system including a bus bridge for connection to a security services processor
TWI324875B (en) * 2003-12-31 2010-05-11 Green Packet Berhad Method of managing digital rights and a computer
US8028164B2 (en) * 2004-03-19 2011-09-27 Nokia Corporation Practical and secure storage encryption
US20050210274A1 (en) * 2004-03-22 2005-09-22 Frantz Gene A Apparatus and method for intellectual property protection using the microprocessor serial number
US8112618B2 (en) * 2004-04-08 2012-02-07 Texas Instruments Incorporated Less-secure processors, integrated circuits, wireless communications apparatus, methods and processes of making
US7584386B2 (en) * 2004-04-21 2009-09-01 Stmicroelectronics Sa Microprocessor comprising error detection means protected against an attack by error injection
US8074287B2 (en) * 2004-04-30 2011-12-06 Microsoft Corporation Renewable and individualizable elements of a protected environment
US20060242406A1 (en) 2005-04-22 2006-10-26 Microsoft Corporation Protected computing environment
US20050283602A1 (en) * 2004-06-21 2005-12-22 Balaji Vembu Apparatus and method for protected execution of graphics applications
WO2005124606A1 (en) * 2004-06-22 2005-12-29 Ebooks Corporation Limited Lending system and method
EP1612637A1 (fr) * 2004-06-29 2006-01-04 Nagracard S.A. Module de sécurité et méthode de personnalisation d'un tel module de sécurité
US20090249085A1 (en) * 2004-06-29 2009-10-01 Nagracard S.A. Security module and personalization method for such a security module
US20060026417A1 (en) * 2004-07-30 2006-02-02 Information Assurance Systems L.L.C. High-assurance secure boot content protection
US20060047959A1 (en) * 2004-08-25 2006-03-02 Microsoft Corporation System and method for secure computing
US7802110B2 (en) * 2004-08-25 2010-09-21 Microsoft Corporation System and method for secure execution of program code
US7702907B2 (en) * 2004-10-01 2010-04-20 Nokia Corporation System and method for safe booting electronic devices
US8347078B2 (en) 2004-10-18 2013-01-01 Microsoft Corporation Device certificate individualization
US8332653B2 (en) * 2004-10-22 2012-12-11 Broadcom Corporation Secure processing environment
US7502928B2 (en) * 2004-11-12 2009-03-10 Sony Computer Entertainment Inc. Methods and apparatus for secure data processing and transmission
US8336085B2 (en) 2004-11-15 2012-12-18 Microsoft Corporation Tuning product policy using observed evidence of customer behavior
US8601283B2 (en) * 2004-12-21 2013-12-03 Sandisk Technologies Inc. Method for versatile content control with partitioning
US8504849B2 (en) * 2004-12-21 2013-08-06 Sandisk Technologies Inc. Method for versatile content control
US8051052B2 (en) * 2004-12-21 2011-11-01 Sandisk Technologies Inc. Method for creating control structure for versatile content control
US20070168292A1 (en) * 2004-12-21 2007-07-19 Fabrice Jogand-Coulomb Memory system with versatile content control
US7802294B2 (en) 2005-01-28 2010-09-21 Microsoft Corporation Controlling computer applications' access to data
US7810153B2 (en) * 2005-01-28 2010-10-05 Microsoft Corporation Controlling execution of computer applications
WO2006082985A2 (en) * 2005-02-07 2006-08-10 Sony Computer Entertainment Inc. Methods and apparatus for providing a secure booting sequence in a processor
JP4522372B2 (ja) * 2005-02-07 2010-08-11 株式会社ソニー・コンピュータエンタテインメント プロセッサと外部のデバイスとの間にセキュアセッションを実現する方法および装置
JP4601557B2 (ja) * 2005-02-07 2010-12-22 株式会社ソニー・コンピュータエンタテインメント マルチプロセッサシステムにおいてプロセッサのセキュアな連携を行う方法および装置
JP4471937B2 (ja) * 2005-02-07 2010-06-02 株式会社ソニー・コンピュータエンタテインメント プロセッサのリソース管理によるコンテンツ制御方法および装置
JP2006221629A (ja) * 2005-02-07 2006-08-24 Sony Computer Entertainment Inc プロセッサのリソース管理によるコンテンツ制御方法および装置
JP4606339B2 (ja) * 2005-02-07 2011-01-05 株式会社ソニー・コンピュータエンタテインメント セキュアなプロセッサの処理の移行を実施する方法および装置
US8607328B1 (en) 2005-03-04 2013-12-10 David Hodges Methods and systems for automated system support
EP1703430A1 (en) * 2005-03-18 2006-09-20 Hewlett-Packard Development Company, L.P. Computer security method and system
US8438645B2 (en) 2005-04-27 2013-05-07 Microsoft Corporation Secure clock with grace periods
US8725646B2 (en) 2005-04-15 2014-05-13 Microsoft Corporation Output protection levels
US9436804B2 (en) 2005-04-22 2016-09-06 Microsoft Technology Licensing, Llc Establishing a unique session key using a hardware functionality scan
US9363481B2 (en) 2005-04-22 2016-06-07 Microsoft Technology Licensing, Llc Protected media pipeline
KR101238496B1 (ko) * 2005-04-22 2013-03-04 마이크로소프트 코포레이션 보호 컴퓨팅 환경
US7627807B2 (en) * 2005-04-26 2009-12-01 Arm Limited Monitoring a data processor to detect abnormal operation
US20060265758A1 (en) 2005-05-20 2006-11-23 Microsoft Corporation Extensible media rights
US7624111B2 (en) * 2005-06-27 2009-11-24 Microsoft Corporation Active content trust model
CN101218587B (zh) * 2005-07-05 2010-06-16 皇家飞利浦电子股份有限公司 用于数字内容保护的方法、系统与设备
US7748031B2 (en) * 2005-07-08 2010-06-29 Sandisk Corporation Mass storage device with automated credentials loading
US8769295B2 (en) * 2005-08-01 2014-07-01 Intel Corporation Computing system feature activation mechanism
US7934049B2 (en) * 2005-09-14 2011-04-26 Sandisk Corporation Methods used in a secure yet flexible system architecture for secure devices with flash mass storage memory
US8966284B2 (en) * 2005-09-14 2015-02-24 Sandisk Technologies Inc. Hardware driver integrity check of memory card controller firmware
US20100132053A1 (en) * 2005-10-04 2010-05-27 Nec Corporation Information processing device, information processing method and program
JP2009517972A (ja) * 2005-11-29 2009-04-30 トムソン ライセンシング デジタルコンテンツを保護する方法及び装置
US20070143223A1 (en) * 2005-12-16 2007-06-21 Microsoft Corporation Caching information for kernel and boot components
US20070162964A1 (en) * 2006-01-12 2007-07-12 Wang Liang-Yun Embedded system insuring security and integrity, and method of increasing security thereof
JP4795812B2 (ja) * 2006-02-22 2011-10-19 富士通セミコンダクター株式会社 セキュアプロセッサ
US8051299B2 (en) * 2006-03-20 2011-11-01 Hewlett-Packard Development Company, L.P. Computer security method and computer system
US8127145B2 (en) * 2006-03-23 2012-02-28 Harris Corporation Computer architecture for an electronic device providing a secure file system
US8041947B2 (en) * 2006-03-23 2011-10-18 Harris Corporation Computer architecture for an electronic device providing SLS access to MLS file system with trusted loading and protection of program execution memory
US8060744B2 (en) * 2006-03-23 2011-11-15 Harris Corporation Computer architecture for an electronic device providing single-level secure access to multi-level secure file system
EP2033350A2 (en) 2006-05-02 2009-03-11 Broadon Communications Corp. Content management system and method
US7979714B2 (en) * 2006-06-02 2011-07-12 Harris Corporation Authentication and access control device
US8266711B2 (en) * 2006-07-07 2012-09-11 Sandisk Technologies Inc. Method for controlling information supplied from memory device
US20080022395A1 (en) * 2006-07-07 2008-01-24 Michael Holtzman System for Controlling Information Supplied From Memory Device
US8140843B2 (en) * 2006-07-07 2012-03-20 Sandisk Technologies Inc. Content control method using certificate chains
US20100138652A1 (en) * 2006-07-07 2010-06-03 Rotem Sela Content control method using certificate revocation lists
US8245031B2 (en) * 2006-07-07 2012-08-14 Sandisk Technologies Inc. Content control method using certificate revocation lists
US8639939B2 (en) * 2006-07-07 2014-01-28 Sandisk Technologies Inc. Control method using identity objects
US8613103B2 (en) * 2006-07-07 2013-12-17 Sandisk Technologies Inc. Content control method using versatile control structure
US8116455B1 (en) * 2006-09-29 2012-02-14 Netapp, Inc. System and method for securely initializing and booting a security appliance
US7624276B2 (en) * 2006-10-16 2009-11-24 Broadon Communications Corp. Secure device authentication system and method
FR2907930B1 (fr) * 2006-10-27 2009-02-13 Viaccess Sa Procede de detection d'une utilisation anormale d'un processeur de securite.
US7613915B2 (en) * 2006-11-09 2009-11-03 BroadOn Communications Corp Method for programming on-chip non-volatile memory in a secure processor, and a device so programmed
US8423794B2 (en) * 2006-12-28 2013-04-16 Sandisk Technologies Inc. Method and apparatus for upgrading a memory card that has security mechanisms for preventing copying of secure content and applications
US20080189539A1 (en) * 2007-02-02 2008-08-07 Ming-Tso Hsu Computer system for authenticating requested software application through operating system and method thereof
US8108856B2 (en) 2007-03-30 2012-01-31 Intel Corporation Method and apparatus for adaptive integrity measurement of computer software
US7958371B2 (en) * 2007-05-09 2011-06-07 Sony Computer Entertainment Inc. Methods and apparatus for secure operating system distribution in a multiprocessor system
JP4956292B2 (ja) * 2007-06-25 2012-06-20 パナソニック株式会社 情報セキュリティ装置およびカウンタ制御方法
US8327363B2 (en) * 2007-07-24 2012-12-04 Microsoft Corporation Application compatibility in multi-core systems
US8544014B2 (en) * 2007-07-24 2013-09-24 Microsoft Corporation Scheduling threads in multi-core systems
US20090034734A1 (en) * 2007-07-31 2009-02-05 Viasat, Inc. Multi-Level Key Manager
US8375219B2 (en) * 2007-10-24 2013-02-12 Microsoft Corporation Program and operation verification
WO2009094371A1 (en) * 2008-01-22 2009-07-30 Authentium, Inc. Trusted secure desktop
US9122864B2 (en) * 2008-08-05 2015-09-01 International Business Machines Corporation Method and apparatus for transitive program verification
US8996885B2 (en) * 2008-10-02 2015-03-31 Broadcom Corporation Secure virtual machine manager
US9104618B2 (en) * 2008-12-18 2015-08-11 Sandisk Technologies Inc. Managing access to an address range in a storage device
US9065812B2 (en) 2009-01-23 2015-06-23 Microsoft Technology Licensing, Llc Protecting transactions
US9058491B1 (en) 2009-03-26 2015-06-16 Micron Technology, Inc. Enabling a secure boot from non-volatile memory
US20100269179A1 (en) * 2009-04-16 2010-10-21 Comcast Cable Communications, Llc Security Client Translation System and Method
RU2011148523A (ru) 2009-07-01 2013-08-20 Панасоник Корпорэйшн Способ защищенной загрузки и устройство защищенной загрузки
US20110010759A1 (en) * 2009-07-09 2011-01-13 Apple Inc. Providing a customized interface for an application store
US8849717B2 (en) * 2009-07-09 2014-09-30 Simon Cooper Methods and systems for upgrade and synchronization of securely installed applications on a computing device
JP5449905B2 (ja) * 2009-07-29 2014-03-19 フェリカネットワークス株式会社 情報処理装置、プログラム、および情報処理システム
US8732806B2 (en) * 2009-09-14 2014-05-20 Broadcom Corporation Method and system for hardware enforced virtualization in an integrated circuit
US9336410B2 (en) 2009-12-15 2016-05-10 Micron Technology, Inc. Nonvolatile memory internal signature generation
US8555059B2 (en) 2010-04-16 2013-10-08 Microsoft Corporation Secure local update of content management software
US8694737B2 (en) 2010-06-09 2014-04-08 Micron Technology, Inc. Persistent memory for processor main memory
US9448938B2 (en) 2010-06-09 2016-09-20 Micron Technology, Inc. Cache coherence protocol for persistent memories
US8782435B1 (en) 2010-07-15 2014-07-15 The Research Foundation For The State University Of New York System and method for validating program execution at run-time using control flow signatures
US8613074B2 (en) * 2010-09-30 2013-12-17 Micron Technology, Inc. Security protection for memory content of processor main memory
US9094385B2 (en) 2011-08-05 2015-07-28 Battelle Memorial Institute Intelligent sensor and controller framework for the power grid
US20130061328A1 (en) * 2011-09-06 2013-03-07 Broadcom Corporation Integrity checking system
US9262340B1 (en) * 2011-12-29 2016-02-16 Cypress Semiconductor Corporation Privileged mode methods and circuits for processor systems
US8627097B2 (en) 2012-03-27 2014-01-07 Igt System and method enabling parallel processing of hash functions using authentication checkpoint hashes
US8938796B2 (en) 2012-09-20 2015-01-20 Paul Case, SR. Case secure computer architecture
CN102929674B (zh) * 2012-11-02 2016-02-10 威盛电子股份有限公司 电子装置以及开机方法
CN103049694A (zh) * 2013-01-14 2013-04-17 上海慧银信息科技有限公司 一种智能金融交易终端的核心安全架构实现方法
US8935781B1 (en) 2013-02-01 2015-01-13 Google Inc. Native code module security for arm 64-bit instruction set architectures
US9344747B2 (en) * 2013-02-21 2016-05-17 Broadcom Corporation Mobile payTV DRM architecture
US9323541B2 (en) 2013-02-25 2016-04-26 Intel Corporation Method, apparatus, system, and machine readable storage medium for providing software security
US9280655B2 (en) * 2013-03-13 2016-03-08 Samsung Electronics Co., Ltd Application authentication method and electronic device supporting the same
US9600291B1 (en) * 2013-03-14 2017-03-21 Altera Corporation Secure boot using a field programmable gate array (FPGA)
WO2014153760A1 (en) * 2013-03-28 2014-10-02 Irdeto B.V. Detecting exploits against software applications
KR20140136166A (ko) * 2013-05-20 2014-11-28 삼성전자주식회사 관리자 권한 획득 방지 방법 및 장치
JP6117068B2 (ja) * 2013-09-20 2017-04-19 株式会社東芝 情報処理装置、およびプログラム
CN103577225B (zh) * 2013-10-22 2016-11-23 北京奇虎科技有限公司 一种软件安装方法和装置
DE102014214667A1 (de) 2014-07-25 2016-01-28 Bayerische Motoren Werke Aktiengesellschaft Anzeigen von dynamischen sicherheitsrelevanten dreidimensionalen Inhalten auf einer Anzeigeeinrichtung
CN104581094A (zh) * 2014-12-16 2015-04-29 河南铭视安防工程有限公司 一种视频光端机及其检测方法
US10318271B2 (en) * 2015-01-05 2019-06-11 Irdeto Canada Corporation Updating software components in a program
US10817609B2 (en) 2015-09-30 2020-10-27 Nvidia Corporation Secure reconfiguration of hardware device operating features
FR3043228B1 (fr) * 2015-11-03 2018-03-30 Proton World International N.V. Demarrage controle d'un circuit electronique
FR3043229B1 (fr) 2015-11-03 2018-03-30 Proton World International N.V. Demarrage securise d'un circuit electronique
CN105488924A (zh) * 2015-12-11 2016-04-13 福建新大陆支付技术有限公司 一种pos高端应用系统及解决方法
DE102015225270A1 (de) * 2015-12-15 2017-06-22 Siemens Aktiengesellschaft Verfahren und Sicherheitsmodul zum Bereitstellen einer Sicherheitsfunktion für ein Gerät
US10339299B1 (en) 2016-03-08 2019-07-02 Kashmoo, Inc. Runtime management of application components
SG10201602449PA (en) * 2016-03-29 2017-10-30 Huawei Int Pte Ltd System and method for verifying integrity of an electronic device
US10523418B2 (en) 2016-06-03 2019-12-31 Cryptography Research, Inc. Providing access to a hardware resource based on a canary value
CN108206741A (zh) * 2016-12-16 2018-06-26 北京国双科技有限公司 服务的验证方法、装置及系统
US10482258B2 (en) * 2017-09-29 2019-11-19 Nxp Usa, Inc. Method for securing runtime execution flow
AU2019239860A1 (en) 2018-03-21 2020-09-03 Precision Planting Llc Reagent cartridge
US10839108B2 (en) 2018-05-29 2020-11-17 Seagate Technology Llc Storage device and verification thereof
US10942668B2 (en) 2018-05-29 2021-03-09 Seagate Technology Llc Storage device and verification thereof
US10776327B2 (en) 2018-08-29 2020-09-15 Seagate Technology Llc Storage device manufacturing and associated block chain generation thereof
US11886434B1 (en) 2019-08-05 2024-01-30 Bildr, Inc. Management of application entities
CN110659458A (zh) * 2019-10-10 2020-01-07 陈昶宇 支持软件代码数据保密可信执行的中央处理器设计方法
CN111131898B (zh) * 2020-02-17 2021-09-21 聚好看科技股份有限公司 播放媒体资源的方法、装置、显示设备及存储介质
JP7249968B2 (ja) * 2020-03-09 2023-03-31 株式会社東芝 情報処理装置およびストレージ
FR3111441B1 (fr) 2020-06-10 2022-08-05 Proton World Int Nv Démarrage sécurisé d'un circuit électronique
GB2597082B (en) * 2020-07-14 2022-10-12 Graphcore Ltd Hardware autoloader
US11625480B2 (en) * 2020-09-08 2023-04-11 Osom Products, Inc. Mobile device with secure private memory
FR3118219B1 (fr) * 2020-12-17 2024-03-15 Stmicroelectronics Grand Ouest Sas Procédé de protection d’un système, par exemple un microcontrôleur, et sytème correspondant
CN113486353B (zh) * 2021-06-24 2023-08-01 邦彦技术股份有限公司 可信度量方法、系统、设备及存储介质
CN113468615B (zh) * 2021-06-24 2023-08-01 邦彦技术股份有限公司 可信度量方法、可信芯片、逻辑控制器及可信度量系统
GB2621170A (en) * 2022-08-05 2024-02-07 Xmos Ltd Execution of Instructions from Trusted and Untrusted Memories

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002353960A (ja) * 2001-05-30 2002-12-06 Fujitsu Ltd コード実行装置およびコード配布方法
JP2004503860A (ja) * 2000-06-12 2004-02-05 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ データ処理方法及び保護された命令の実行のための装置

Family Cites Families (113)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5715398A (en) 1989-06-16 1998-02-03 R.R. Donnelley & Sons Company System for distributing items from an origin to a plurality of destinations
GB2239810B (en) * 1990-01-10 1994-06-22 Leung Yiu Choi Computer game control apparatus
US5261069A (en) 1990-08-13 1993-11-09 Hewlett-Packard Company Method of maintaining consistency of cached data in a database system
US5367698A (en) 1991-10-31 1994-11-22 Epoch Systems, Inc. Network file migration system
US5404505A (en) 1991-11-01 1995-04-04 Finisar Corporation System for scheduling transmission of indexed and requested database tiers on demand at varying repetition rates
US6026452A (en) 1997-02-26 2000-02-15 Pitts; William Michael Network distributed site cache RAM claimed as up/down stream request/reply channel for storing anticipated data and meta data
US5400402A (en) 1993-06-07 1995-03-21 Garfinkle; Norton System for limiting use of down-loaded video-on-demand data
US5528513A (en) 1993-11-04 1996-06-18 Digital Equipment Corp. Scheduling and admission control policy for a continuous media server
US5586264A (en) 1994-09-08 1996-12-17 Ibm Corporation Video optimized media streamer with cache management
US5610839A (en) 1994-10-07 1997-03-11 Itt Corporation Communications management system architecture
US5715403A (en) 1994-11-23 1998-02-03 Xerox Corporation System for controlling the distribution and use of digital works having attached usage rights where the usage rights are defined by a usage rights grammar
US5638443A (en) 1994-11-23 1997-06-10 Xerox Corporation System for controlling the distribution and use of composite digital works
JPH08263438A (ja) * 1994-11-23 1996-10-11 Xerox Corp ディジタルワークの配給及び使用制御システム並びにディジタルワークへのアクセス制御方法
US6571279B1 (en) 1997-12-05 2003-05-27 Pinpoint Incorporated Location enhanced information delivery system
US5729279A (en) 1995-01-26 1998-03-17 Spectravision, Inc. Video distribution system
US6157721A (en) * 1996-08-12 2000-12-05 Intertrust Technologies Corp. Systems and methods using cryptography to protect secure computing environments
US5892900A (en) * 1996-08-30 1999-04-06 Intertrust Technologies Corp. Systems and methods for secure transaction management and electronic rights protection
US5867223A (en) 1995-07-17 1999-02-02 Gateway 2000, Inc. System for assigning multichannel audio signals to independent wireless audio output devices
US5815662A (en) 1995-08-15 1998-09-29 Ong; Lance Predictive memory caching for media-on-demand systems
US5765152A (en) * 1995-10-13 1998-06-09 Trustees Of Dartmouth College System and method for managing copyrighted electronic media
US5829046A (en) 1995-10-27 1998-10-27 Emc Corporation On-line tape backup using an integrated cached disk array
US5781901A (en) 1995-12-21 1998-07-14 Intel Corporation Transmitting electronic mail attachment over a network using a e-mail page
US5903723A (en) 1995-12-21 1999-05-11 Intel Corporation Method and apparatus for transmitting electronic mail attachments with attachment references
EP0880840A4 (en) * 1996-01-11 2002-10-23 Mrj Inc DEVICE FOR CONTROLLING ACCESS AND DISTRIBUTION OF DIGITAL PROPERTY
JPH09261617A (ja) 1996-01-19 1997-10-03 Matsushita Electric Ind Co Ltd オンデマンド通信システム
TW330999B (en) * 1996-03-08 1998-05-01 Matsushita Electric Ind Co Ltd Microprocessor suitable for reproducing AV data while protecting the AV data from illegal copy and image information processing system using the microprocessor
DE19610010A1 (de) 1996-03-14 1997-09-18 Sel Alcatel Ag Einrichtung und Dienst zur Übertragung von Videobilddaten sowie Einrichtung zur Übertragung von Anforderungssignalen
US5905860A (en) 1996-03-15 1999-05-18 Novell, Inc. Fault tolerant electronic licensing system
US5809242A (en) 1996-04-19 1998-09-15 Juno Online Services, L.P. Electronic mail system for displaying advertisement at local computer received from remote system while the local computer is off-line the remote system
JPH09284746A (ja) 1996-04-19 1997-10-31 Sony Corp 双方向情報伝送システムおよび双方向情報伝送方法
US6219708B1 (en) 1996-05-30 2001-04-17 Multi-Tech Systems, Inc. System for network resource management
US5928327A (en) 1996-08-08 1999-07-27 Wang; Pong-Sheng System and process for delivering digital data on demand
US6032200A (en) 1996-09-30 2000-02-29 Apple Computer, Inc. Process scheduling for streaming data through scheduling of disk jobs and network jobs and the relationship of the scheduling between these types of jobs
US6016348A (en) 1996-11-27 2000-01-18 Thomson Consumer Electronics, Inc. Decoding system and data format for processing and storing encrypted broadcast, cable or satellite video data
US6185625B1 (en) 1996-12-20 2001-02-06 Intel Corporation Scaling proxy server sending to the client a graphical user interface for establishing object encoding preferences after receiving the client's request for the object
US6049821A (en) 1997-01-24 2000-04-11 Motorola, Inc. Proxy host computer and method for accessing and retrieving information between a browser and a proxy
US6557104B2 (en) * 1997-05-02 2003-04-29 Phoenix Technologies Ltd. Method and apparatus for secure processing of cryptographic keys
US5983227A (en) 1997-06-12 1999-11-09 Yahoo, Inc. Dynamic page generator
US6219680B1 (en) 1997-06-19 2001-04-17 International Business Machines Corporation System and method for building a web site for use in E-commerce with user specific pricing
IL121230A (en) 1997-07-03 2004-05-12 Nds Ltd Intelligent electronic program guide
US6038601A (en) 1997-07-21 2000-03-14 Tibco, Inc. Method and apparatus for storing and delivering documents on the internet
FR2766942B1 (fr) * 1997-07-31 1999-10-01 Gemplus Card Int Lecteur de carte a puce avec microcontroleur et composant de securite
US6085193A (en) 1997-09-29 2000-07-04 International Business Machines Corporation Method and system for dynamically prefetching information via a server hierarchy
JPH11120048A (ja) 1997-10-20 1999-04-30 Fujitsu Ltd クライアント/サーバ分散システムにおけるデータキャッシング装置及び方法並びにデータキャッシングプログラムを記録した媒体
US6594682B2 (en) 1997-10-28 2003-07-15 Microsoft Corporation Client-side system for scheduling delivery of web content and locally managing the web content
US6289452B1 (en) * 1997-11-07 2001-09-11 Cybersource Corporation Method and system for delivering digital products electronically
US6167441A (en) 1997-11-21 2000-12-26 International Business Machines Corporation Customization of web pages based on requester type
US6170014B1 (en) 1998-03-25 2001-01-02 Community Learning And Information Network Computer architecture for managing courseware in a shared use operating environment
US6141756A (en) * 1998-04-27 2000-10-31 Motorola, Inc. Apparatus and method of reading a program into a processor
US6148340A (en) 1998-04-30 2000-11-14 International Business Machines Corporation Method and system for differencing container files
US6256637B1 (en) 1998-05-05 2001-07-03 Gemstone Systems, Inc. Transactional virtual machine architecture
US6389460B1 (en) 1998-05-13 2002-05-14 Compaq Computer Corporation Method and apparatus for efficient storage and retrieval of objects in and from an object storage device
US6052720A (en) 1998-05-14 2000-04-18 Sun Microsystems, Inc. Generic schema for storing configuration information on a server computer
WO1999059058A1 (fr) 1998-05-14 1999-11-18 Sega Enterprises, Ltd. Processeur d'informations, procede de traitement d'informations, support d'enregistrement d'informations et systeme de traitement d'informations
EP0961193B1 (en) 1998-05-29 2010-09-01 Texas Instruments Incorporated Secure computing device
US6427238B1 (en) 1998-05-29 2002-07-30 Opentv, Inc. Module manager for interactive television system
US6330566B1 (en) 1998-06-22 2001-12-11 Microsoft Corporation Apparatus and method for optimizing client-state data storage
US6256393B1 (en) * 1998-06-23 2001-07-03 General Instrument Corporation Authorization and access control of software object residing in set-top terminals
JP4634547B2 (ja) 1998-06-30 2011-02-16 株式会社東芝 リアルタイム情報配信方法
US6226618B1 (en) * 1998-08-13 2001-05-01 International Business Machines Corporation Electronic content delivery system
US6826593B1 (en) 1998-09-01 2004-11-30 Lucent Technologies Inc. Computer implemented method and apparatus for fulfilling a request for information content with a user-selectable version of a file containing that information content
US6412011B1 (en) 1998-09-14 2002-06-25 At&T Corp. Method and apparatus to enhance a multicast information stream in a communication network
US6338050B1 (en) 1998-11-16 2002-01-08 Trade Access, Inc. System and method for providing and updating user supplied context for a negotiations system
EP1003117A3 (en) 1998-11-17 2003-07-23 Citibank, N.A. Method and system for strategic services enterprise workload management
US6377972B1 (en) 1999-01-19 2002-04-23 Lucent Technologies Inc. High quality streaming multimedia
US6892238B2 (en) 1999-01-27 2005-05-10 International Business Machines Corporation Aggregating and analyzing information about content requested in an e-commerce web environment to determine conversion rates
US6412008B1 (en) 1999-01-28 2002-06-25 International Business Machines Corporation System and method for cooperative client/server customization of web pages
US6321209B1 (en) 1999-02-18 2001-11-20 Wired Solutions, Llc System and method for providing a dynamic advertising content window within a window based content manifestation environment provided in a browser
US6691312B1 (en) 1999-03-19 2004-02-10 University Of Massachusetts Multicasting video
US6470378B1 (en) 1999-03-31 2002-10-22 Intel Corporation Dynamic content customization in a clientserver environment
JP3471654B2 (ja) 1999-04-06 2003-12-02 富士通株式会社 ライセンスサーバ、著作権者システム、利用者システム、システム、記録媒体およびコンテンツ利用制御方法
US6920567B1 (en) 1999-04-07 2005-07-19 Viatech Technologies Inc. System and embedded license control mechanism for the creation and distribution of digital content files and enforcement of licensed use of the digital content files
US6697948B1 (en) * 1999-05-05 2004-02-24 Michael O. Rabin Methods and apparatus for protecting information
US6654388B1 (en) 1999-05-26 2003-11-25 Larscom Incorporated Method and apparatus for automatically determining allocation of voice and data channels on T1/E1 line
US6704797B1 (en) 1999-06-10 2004-03-09 International Business Machines Corporation Method and system for distributing image-based content on the internet
US6446113B1 (en) 1999-07-19 2002-09-03 Groove Networks, Inc. Method and apparatus for activity-based collaboration by a computer system equipped with a dynamics manager
US6526581B1 (en) 1999-08-03 2003-02-25 Ucentric Holdings, Llc Multi-service in-home network with an open interface
US6993557B1 (en) 1999-10-25 2006-01-31 Broadon Communications Corp. Creation of customized web pages for use in a system of dynamic trading of knowledge, goods and services
US6675350B1 (en) 1999-11-04 2004-01-06 International Business Machines Corporation System for collecting and displaying summary information from disparate sources
JP2003518287A (ja) * 1999-12-23 2003-06-03 ジェネラル・インスツルメント・コーポレイション デュアルモードプロセッサ
US6606644B1 (en) 2000-02-24 2003-08-12 International Business Machines Corporation System and technique for dynamic information gathering and targeted advertising in a web based model using a live information selection and analysis tool
US6901386B1 (en) 2000-03-31 2005-05-31 Intel Corporation Electronic asset lending library method and apparatus
US20020016818A1 (en) 2000-05-11 2002-02-07 Shekhar Kirani System and methodology for optimizing delivery of email attachments for disparate devices
US20020059384A1 (en) 2000-07-13 2002-05-16 Koninklijke Philips Electronics N.V. Substituting URL for attachment in forwarding electronic content
US7475398B2 (en) * 2000-08-01 2009-01-06 Wind River Systems, Inc. System and method for implementing a smart system call
US6805629B1 (en) * 2000-09-13 2004-10-19 Casino Data System Gaming device and method
US6785712B1 (en) 2000-09-21 2004-08-31 Rockwell Collins, Inc. Airborne e-mail data transfer protocol
AU2002253405A1 (en) * 2000-10-25 2002-08-28 Ngame Limited Adapting a game state to be compatible with a new version of a game
US7127069B2 (en) 2000-12-07 2006-10-24 Igt Secured virtual network in a gaming environment
US7168089B2 (en) 2000-12-07 2007-01-23 Igt Secured virtual network in a gaming environment
US6811486B1 (en) * 2000-12-20 2004-11-02 Sierra Design Group Method and apparatus for enhancing game play through savable game play state
US7092953B1 (en) 2000-12-28 2006-08-15 Rightlsline, Inc. Apparatus and methods for intellectual property database navigation
WO2002061538A2 (en) 2001-02-01 2002-08-08 Abn Amro Services Company, Inc. A system and method for an automatic license facility
US7134144B2 (en) 2001-03-01 2006-11-07 Microsoft Corporation Detecting and responding to a clock rollback in a digital rights management system on a computing device
JP2002358460A (ja) 2001-03-27 2002-12-13 Art Connection:Kk ウェブサイト付加システム
US7584491B2 (en) * 2001-04-25 2009-09-01 Sony Corporation System and method for managing interactive programming and advertisements in interactive broadcast systems
US6466048B1 (en) * 2001-05-23 2002-10-15 Mosaid Technologies, Inc. Method and apparatus for switchably selecting an integrated circuit operating mode
US8099364B2 (en) 2001-05-31 2012-01-17 Contentguard Holdings, Inc. Digital rights management of content when content is a future live event
US6976009B2 (en) 2001-05-31 2005-12-13 Contentguard Holdings, Inc. Method and apparatus for assigning consequential rights to documents and documents having such rights
US7421411B2 (en) * 2001-07-06 2008-09-02 Nokia Corporation Digital rights management in a mobile communications environment
US20030028622A1 (en) * 2001-08-06 2003-02-06 Mitsuhiro Inoue License management server, terminal device, license management system and usage restriction control method
US6811490B2 (en) * 2001-10-10 2004-11-02 Sony Computer Entertainment America Inc. System and method for saving game data
US7974923B2 (en) 2001-11-20 2011-07-05 Contentguard Holdings, Inc. Extensible rights expression processing system
US20030120541A1 (en) 2001-12-21 2003-06-26 Siann Jonathan I. Storage and delivery of electronic media content with advertising
WO2003077955A1 (en) 2002-03-14 2003-09-25 Contentguard Holdings, Inc. System and method for expressing usage rights using modulated signals
US7322044B2 (en) 2002-06-03 2008-01-22 Airdefense, Inc. Systems and methods for automated network policy exception detection and correction
AUPS324802A0 (en) 2002-06-27 2002-07-18 Borthwick, Frederick Kevin Graphical user interface for data acquisition, retrieval and communication
US7228567B2 (en) 2002-08-30 2007-06-05 Avaya Technology Corp. License file serial number tracking
US20040054923A1 (en) 2002-08-30 2004-03-18 Seago Tom E. Digital rights and content management system and method for enhanced wireless provisioning
US8332653B2 (en) * 2004-10-22 2012-12-11 Broadcom Corporation Secure processing environment
WO2007004219A2 (en) * 2005-07-04 2007-01-11 Discretix Technologies Ltd. System, device and method of verifying that a code is executed by a processor
US20070067826A1 (en) * 2005-09-19 2007-03-22 Texas Instruments Incorporated Method and system for preventing unsecure memory accesses
US8959339B2 (en) * 2005-12-23 2015-02-17 Texas Instruments Incorporated Method and system for preventing unauthorized processor mode switches

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004503860A (ja) * 2000-06-12 2004-02-05 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ データ処理方法及び保護された命令の実行のための装置
JP2002353960A (ja) * 2001-05-30 2002-12-06 Fujitsu Ltd コード実行装置およびコード配布方法

Also Published As

Publication number Publication date
EP1625463A4 (en) 2011-08-03
WO2004072787A3 (en) 2007-08-09
US7380275B2 (en) 2008-05-27
EP1625463A2 (en) 2006-02-15
CN101103584A (zh) 2008-01-09
US20050132217A1 (en) 2005-06-16
CN101103584B (zh) 2012-05-02
EP1625463B1 (en) 2018-12-19
US20040158742A1 (en) 2004-08-12
US7322042B2 (en) 2008-01-22
WO2004072787A2 (en) 2004-08-26
JP2007524883A (ja) 2007-08-30

Similar Documents

Publication Publication Date Title
JP4646900B2 (ja) 下位互換性のあるセキュアプロセッサとそれによるセキュアソフトウェアの実行方法
US7139915B2 (en) Method and apparatus for authenticating an open system application to a portable IC device
US7010684B2 (en) Method and apparatus for authenticating an open system application to a portable IC device
KR102470524B1 (ko) 집적회로들에서의 보안 피쳐 및 키 관리
US11843705B2 (en) Dynamic certificate management as part of a distributed authentication system
US10007960B2 (en) Electronic license management
US7225333B2 (en) Secure processor architecture for use with a digital rights management (DRM) system on a computing device
US7461268B2 (en) E-fuses for storing security version data
KR100809977B1 (ko) 집적 시스템 내에서의 보안 운영의 활성화 방법, 보안 운영의 초기화 방법, 암호화된 데이터의 변환 방법 및 집적 시스템 기능의 복원 방법
US7424606B2 (en) System and method for authenticating an operating system
WO2001042889A2 (en) Client-side boot domains and boot rules
US10282549B2 (en) Modifying service operating system of baseboard management controller
TW200834371A (en) Computerized apparatus and method for version control and management
CN115037493A (zh) 监测具有安全存储器装置的端点的完整性以用于身份认证
CN115357948A (zh) 一种基于tee及加密芯片的硬件防抄板加密方法及其装置
CN115037492A (zh) 基于在存储器装置中实施的安全特征的在线安全服务
CN115021949A (zh) 具有被保护用于可靠身份验证的存储器装置的端点的识别管理方法和系统

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20071112

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100420

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100714

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100722

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100809

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100816

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100914

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100922

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101014

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20101207

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131217

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4646900

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131217

Year of fee payment: 3

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: R3D02

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131217

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131217

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131217

Year of fee payment: 3

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131217

Year of fee payment: 3

R370 Written measure of declining of transfer procedure

Free format text: JAPANESE INTERMEDIATE CODE: R370

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131217

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131217

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250