Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP4288209B2 - システム・オン・チップのためのセキュリティ・アーキテクチャ - Google Patents
[go: Go Back, main page]

JP4288209B2 - システム・オン・チップのためのセキュリティ・アーキテクチャ - Google Patents

システム・オン・チップのためのセキュリティ・アーキテクチャ Download PDF

Info

Publication number
JP4288209B2
JP4288209B2 JP2004184034A JP2004184034A JP4288209B2 JP 4288209 B2 JP4288209 B2 JP 4288209B2 JP 2004184034 A JP2004184034 A JP 2004184034A JP 2004184034 A JP2004184034 A JP 2004184034A JP 4288209 B2 JP4288209 B2 JP 4288209B2
Authority
JP
Japan
Prior art keywords
apu
load
local storage
area
image
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
JP2004184034A
Other languages
English (en)
Other versions
JP2005018770A (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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2005018770A publication Critical patent/JP2005018770A/ja
Application granted granted Critical
Publication of JP4288209B2 publication Critical patent/JP4288209B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • G06F21/53Monitoring 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 by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • 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
    • 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/56Financial cryptography, e.g. electronic payment or e-cash

Landscapes

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

Description

本発明は、一般にチップ中のコードまたはデータあるいはその両方の認証に関し、より詳細には、付加プロセッサ・ユニット(attached processor unit)の隔離部(isolated section)内にあるコードまたはデータあるいはその両方の認証および保護に関する。
今日のマイクロプロセッサでは、セキュリティ機能をサポートすることの重要性が増している。1つの主な理由は、プロセッサをネットワーク化することが増加しているからである。ネットワークとの通信はモニタすることができ、したがって信頼することができない。このセキュリティの欠如により、構成要素であるネットワーク化プロセッサ中で認証機能および暗号化機能を実施することが必要となり得る。
決済システムを使用可能にするなど、ビジネス目的にネットワーク化コンピュータを使用するには、データと、ネットワーク全体にわたって配布される場合は、コードとの認証および保護が必要である。一般に、認証は、コードまたはデータが改竄またはその他の形で改変されたかどうかに関する判定として定義される。ネットワーク化システム中のハードウェアおよびソフトウェアは知的所有権のあるもの(proprietary)でもよい。その場合は、オペレーティング・システム・イメージを呼出しまたは開始する前に、それを認証する機能のサポートが必要となる。知的所有権のないシステム上では、ユーザは自分が選択したどのようなソフトウェアでも走らせることができる。知的所有権のあるシステム上では、ソフトウェアはシステム構築者によって制御される。システムはオープン・ソースでもよいが、知的所有権のあるものである。
このネットワークはまた、無許可のアクセスまたは使用から保護すべきソフトウェア、オーディオ、およびビデオなどのコンテンツを配布するためにも使用できる。このネットワークはさらに、決済システムにも使用できる。これらの配布機能はすべて、コードまたはデータへの無許可のアクセスが行われないようにするセキュリティ構造をコンピュータ・システム中に提供することに依存している。
初期のオペレーティング・システム・イメージが改竄されていないことを保証するセキュリティ用ハードウェア構造を提供することができる。しかし、システムが開始した後では、セキュリティ構造の完全性は、オペレーティング・システムのセキュリティに依存している。しかし、オペレーティング・システムは安全ではないことがあり、最大で週に1度の割合でセキュリティの手直しが必要になるものもある。頻繁に発見されるこれらのセキュリティ上の欠陥は、許可されていない第3者がコードにアクセスするための絶好の機会となっている。
他の従来型システムは、ハードウェアに基づくセキュリティ機能を2つの方法のうちの一方で提供する。第1のものは、コンピュータ・システム中の独立したセキュリティ・チップであり、TCA(商標)(trusted computing alliance)によって指定されるような、認証機能、暗号化機能、鍵管理機能を提供することができる。かかる独立したチップには、そのインターフェース・プロトコルをこれらのセキュリティ機能に限定できるという利点がある。こうすると、かかるチップにソフトウェア攻撃を仕掛けるのを非常に難しくすることができる。一方、このチップはマイクロプロセッサから独立しているので、インターフェースをモニタし、プロトコルを迂回するのが比較的容易である。したがって、例えばこのタイプの構造では、認証されたオペレーティング・システム・イメージが比較的容易に置き換えられるので、安全なブート機能を実施するための十分な保護を提供しない。
従来のセキュリティ・ハードウェアの別のタイプの実装形態は、プロセッサに一体化されたセキュリティ・ユニットを含むものであり、これは、例えばプロセッサの入出力(I/O)、またはメモリ・インターフェースに接続されてもよい。これらの一体化されたセキュリティ・デバイスはプロセッサ・チップに認証機能または暗号化機能あるいはその両方を提供する。かかる構成は、このプロセッサとこのようなユニットの間のインターフェースが容易にモニタされないという利点を有しており、したがって、独立したセキュリティ・チップよりも高度の保護を提供する。しかし、この構成のいくつかの欠点は、このユニットがプロセッサ・チップ上のかなりのシリコン面積を占有することがあり、通常はるかに高コストの技術によって実装されること、およびこのようなユニットは、妥当なコスト(面積)で実現しようとする場合、基本的な機能しか提供できないことである。言い換えると、このユニットは、一般にプログラム可能ではなく、提供できる一連のセキュリティ機能には限界がある。第3の限界は、オペレーティング・システムが汚染された場合、オンチップ・バス上の通信がモニタされるおそれのあることである。
したがって、従来型のハードウェアに基づくセキュリティ構造の少なくともいくつかの欠点を克服する、ハードウェアに基づくセキュリティ構造が求められている。
本発明は、プロセッサに結合されたローカル記憶域をコードまたはデータの認証のために区分し、かつ区分解除することによって、プロセッサをセキュリティ機能向けに動的に構成することを提供する。このローカル記憶域は隔離部と非隔離部に区分される。コードまたはデータは隔離部にロードされる。コードまたはデータはこのローカル記憶域の隔離部で認証される。一態様では、このコードまたはデータはまた、暗号解除される。他の態様では、プロセッサ・インターフェースは、隔離状態ではディセーブルされる。
本発明および本発明の利点をより完全に理解するために、添付図面とともに以下の詳細な説明を次に参照する。
以下の議論では、本発明の十分な理解を提供するために、多くの具体的細部について述べる。しかし、本発明は、かかる特定の細部がなくとも実施できることが当業者には理解されよう。他の例では、不必要な細部で本発明を不明確にしないために、周知の諸エレメントを概略図またはブロック図の形式で示してある。さらに、ほとんどの部分で、ネットワーク通信、電磁信号伝送技法などに関する細部は除外しているが、それは、かかる細部は、本発明を完全に理解するために必要であるとは考えられず、また当業者には理解できる範囲内にあると考えられるためである。
この説明の残りの部分では、処理装置(PU)は、ある装置中で演算処理用の単独のプロセッサであるとする。このような状況では、このPUは通常、MPU(main processing unit主演算処理装置)と呼ばれる。この処理装置はまた、所与の計算装置用に開発されたいくつかの方法またはアルゴリズムに従って計算負荷を共用する多くの処理装置の1つでもよい。この説明の残りの部分では、プロセッサへのすべての参照で、MPUが装置中で単独の計算エレメントであろうと、MPUが他のMPUとこの計算エレメントを共用していようと、別段の指示のない限り、MPUの用語を使用するものとする。
さらに、別段の指示のない限り、本明細書に述べるすべての機能は、ハードウェアもしくはソフトウェア、またはそれらのいくつかの組合せで実施されることに留意されたい。しかし、好ましい実施形態では、別段の指示のない限り、これらの諸機能は、コンピュータ・プログラム・コード、ソフトウェア、またはかかる機能を実施するようにコーディングされた集積回路あるいはそれらの組合せなどのコードに従って、コンピュータまたは電子データ・プロセッサなどのプロセッサによって実施される。
図1を参照すると、ローカル記憶域(LS)110を、隔離部112と非隔離(汎用アクセス)部111に区分することによってコードを認証するシステム100が開示されている。LS110は、LSバス115を介して付加プロセッサ・ユニット(APU)120に結合される。一般に、APUは、主メモリまたはシステム・メモリ(図示せず)に代わって、LS110などのローカル・メモリにアクセスする処理デバイスである。APUは通常、特定のコマンドおよびルーチンを走らせるように設計されており、これにより、処理速度および処理効率を高めることができる。
LS110はさらに、バス133を介してバス・インターフェース・ユニット(BIU)140に結合される。一般に、BIU140は、バス127を介してLS110と(オンチップの)プロセッサ・バス150の間に結合された接続部として機能する。さらに、APU120は、BIU140を使用してオンチップ・バス150から、コマンドもしくはデータを発行し、または受け取ることができる。MPU130は、それ自体のバス・インターフェース・ユニット(図示せず)を用いて、バス135を介してオンチップのプロセッサ・バス150に結合される。
さらに、システム100は、ロード/終了(load/exit)状態マシーン(LESM)145を備える。このLESM145は、マスタ・キーを含む。LESM145は、ロード状態マシーン・コマンド(ロード機能ともいう)実行中にマスタ・キーを利用する。システム100では、ロード/終了状態マシーンはBIU140の一部分である。APU制御バス138は、LESM145とAPU120の間に結合される。一般に、APU制御バス138は、LESM145によりロードまたは終了コマンドを実行する際に、コマンドをAPU120に運ぶのに使用される。このバスはまた、APU120がLESM145に諸コマンド(終了コマンドなど)を発行するのに使用することができる。図1では、LS110、APU120、BIU140の集合体およびそれらのそれぞれのバスは、一般に付加プロセッサ複合体(APC)180と称することができる。マスタ・キーは、別な方法でアクセスすることはできず、各システムに対して一意的なものにすることができる。
一般に、システム100では、セキュア(secure)な処理は、LS110の隔離部112のメモリ区域内で行われる。隔離部112内部のメモリには、APU120だけからアドレス指定可能である。しかし、MPU130は、汎用アクセス域111中のメモリにアクセスでき、その他にAPU120上の外部/内部デバッグ、検査、および診断用インターフェースなどのルーチンにアクセスできる。言い換えると、MPU130は、隔離または非隔離状態にあるローカル記憶域中のメモリ位置にロード/記憶コマンドまたはDMAコマンドを発行することができるが、隔離状態では、非隔離領域だけに限定される。APC180へのコマンドには、「ロード」および「終了」コマンド、ならびにAPC180の開始、停止を含む他の様々なコマンド、およびデバッグ用の様々なコマンドが含まれる。レジスタ・ファイルへのダイレクト・アクセス、外部デバッグおよび制御機能、または隔離状態で保護される、APC180の他の状態を提供するすべてのコマンドは、APCが隔離状態にあるときはディセーブルされる。
隔離部112は、「ロード」コマンドによって呼び出され、「終了」コマンドによって解放される。「終了」コマンドが発行されたとき、LS110全体が、汎用アクセス・メモリ111になる。ロード・コマンドは通常MPU130によって発行される。終了コマンドは、通常APU120によって発行されるが、特別な場合にはMPU130が発行する。ロード・コマンドは、LS110を汎用アクセス部111と隔離部112に区分する。ロード・コマンドはさらに、システム・メモリからローカル記憶域110の隔離領域112に、コードまたはデータ(ロード・イメージ)あるいはその両方を転送し、マスタ・キーを使用して、このコードおよびデータの認証または暗号解除あるいはその両方を行う。認証および暗号解除は、SHA(secure hash algorithm)、DES(data encryption standard)、またはRSA(Rivest,Shamirand Adleman algorithm)などのアルゴリズムおよび機能によって実施することができるが、他の認証機能および暗号解除の機能およびアルゴリズムも本発明の範囲に含まれることが当業者には理解されよう。
アプリケーションのロードされたイメージが認証に成功した場合、LESM145は、隔離された領域中にロードされたイメージ内にあるアドレスで、APU120の実行を開始する。終了コマンドは、LS110とAPU120内の状態情報とをクリアし、LS110を区分解除して汎用アクセス部111にする。
隔離部112は、隔離部112内の機密のデータおよびコードへのアクセスを、APU120から発行されたコマンドだけに限定する。一般に、隔離部112へと区分することにより、APU120以外の他の装置が、隔離部112内に記憶されたコードまたは情報を複製し、修正し、あるいはその他の形で破壊することが回避される。LS110中での処理は、そうでなければオペレーティング・システムによって汎用メモリ中で実施されることになる処理を回避する。さらに、LS110の隔離域112中で機密コードを処理することにより、システム100を制御するオペレーティング・システムが汚染されていたとしても、システム100の内部または外部にある他の装置によってそのコードが複製されまたは破壊される可能性が回避される。
ロード機能およびロード・コマンドにより、ロードされたコードの認証が成功したと判定された場合、次いでLS110の隔離域中のコード・イメージが呼び出され実行される。次いで、このコード・イメージはさらに、暗号化、暗号解除、認証、オペレーティング・システムの検証(例えば、システムのブート時、またはハイバネーション状態からの復帰後に)、鍵管理などのセキュリティ機能をシステムに提供することができる。
一実施形態では、あるコード・セクションが隔離部112にロードされ、認証される。次いで、このコード・セクションまたは関連するデータ・セクションから鍵を抽出し、デコード/暗号解除するためにマスタ・キーが使用される。マスタ・キーは、次いで隔離部112内で消去され、ロードされたコードに制御が渡されて「ロード」機能を完了する。次いで、第2のアプリケーションを、数セグメントずつ、隔離部112中にロードすることができ、元のコード・セクションから暗号解除した暗号解除鍵を使用して認証することができる。言い換えると、ロード・コマンドは、ロードされたイメージ・セクションの暗号解除など鍵生成機構および鍵抽出機構を実装することによって、ロードされたアプリケーションの認証を提供する。すべての認証にマスタ・キーを使用するのではなく、アプリケーションの認証には暗号解除されたキーを用いることによって、このマスタ・キーをシステム内でほとんどさらさなくて済むようにすることができる。マスタ・キーに追加の保護レベルを提供することに加えて、このプロセスでは、ハードウェアではなくソフトウェアで第2のロード機能を実施しており、したがってセキュアなアプリケーションをロードするために使用する認証アルゴリズムまたは暗号解除アルゴリズムあるいはその両方に対して追加の柔軟性および性能を提供する。したがって、このセキュアなアプリケーションは、マスタ・キーを用いて暗号解除された暗号解除鍵を使用して検証および認証される。
コード・イメージが認証され、実行を終了した後、APU120は終了コマンドを発行する。終了機能は、終了コマンドによって呼び出されるが、LS110の隔離領域112を解放して汎用アクセス部111と連続するものとして使用することができる唯一の方法である。終了コマンドはまた、隔離状態を解放して汎用アクセス部111とする前に、隔離部112中のすべての情報を消去する。消去は、システム100内の処理が、その他の停止、休止、または中止状態の場合でも行うことができる。後者の場合では、終了機能は通常、MPU130によって呼び出される。
システム100では、終了機能は、通常APU110によって呼び出される。しかし、呼び出された後、終了コマンドの様々なサブルーチンが自動的に実施される。言い換えると、隔離部112内のメモリのクリアは、終了コマンドが発行された後に自動的に行われ、APU110内のレジスタ・ファイルなども同様である。終了コマンドはまた、APU120が非隔離状態である場合も同様に呼び出すことができ、この場合、終了コマンドは、高速のLS110初期化機能として働く。
一実施形態では、コードの検証および認証プロセスが満足すべきものであると見なされた場合、ロード機能は、ロードされたコード・イメージの実行を開始することによってそのオペレーションを完了する。しかし、その検証プロセスが不満足なものであると見なされた場合は、APU120は、ローカル記憶域110内で隔離部112を維持する。したがって、APU120は、再開できない(non-resumable)停止状態における隔離状態にある(図2の状態250)ものと見なされる。この時点で、次いでMPU130が、新しいロード要求または終了要求を発行することができる。
一実施形態では、システム100のロード機能およびその他の属性を活動化するために、隔離イネーブル・ビット(isolate enable bit)を使用する。言い換えると、このビットが1にセットされた場合、ロード・コマンドを受け取る能力がイネーブルされる。この隔離イネーブル・ビットが0にセットされた場合、システム100は、隔離領域112の作成を開始できない。しかし、終了機能は、不揮発性の隔離イネーブル・ビットの設定いかんにかかわらず、利用可能である。したがって、終了コマンドが、簡便なLS110の初期化機能として使用できるようになる。
他の実施形態では、ロード・コマンドまたは終了コマンドが発行される前に、APU120によるコードおよび関連する直接メモリ・アクセス・データの以前の転送オペレーションが、APU120中で走っていたコードによって完全に完了される。他の実施形態では、複数のAPU120が、オンチップ・コヒーレント・バス(on-chip coherent bus)を用いて、MPU130などの汎用マイクロプロセッサと組み合わされている。この実施形態では、オペレーティング・システムは、MPU130などの汎用プロセッサ上で走っており、APU120は、オペレーティング・システムにより、セキュリティ機能または他のタスクを提供するように動的に構成することができる。言い換えると、セキュリティ機能が必要な(すなわち、隔離有効イネーブル・ビットが1に等しい)とき、APU120をプログラム可能なセキュリティ・コプロセッサとして動的に構成することができる。しかし、APU120はまた、別のときに非隔離モードで使用すべく他のタスクに使用することもできる。このようにすると、ロード機能および終了機能をサポートすれば、セキュリティ機能がサポートされる。
他の実施形態では、システム100は、複数の付加プロセッサ複合体(APC)180を有する。各APC180は、MPU130によって決定されるそれ自体のロード移行および終了移行を行う。
次に図2を参照すると、状態図200が開示されている。開始移行210が行われた後、次いで状態図は、初期のシステム・コンフィグレーションに応じて非隔離状態220または隔離状態230へ進む。分りやすくするため、状態図200は、始めに状態220へ進むものとして示している。しかし、状態図200は、状態220または状態230のいずれへも進むことができることを当業者なら理解されよう。
状態220では、LS110は隔離部112を有していない。そうではなくて、LS110全体が汎用アクセス状態111にある。APC180は、非隔離状態にあると称する。一般に、これは、APC180がLS110の内部に隔離部112を作成するように命令されていないことを意味する。
次いで、必要に応じてセキュアなローダまたはセキュアなアプリケーションを開始するために、MPU130がロード・コマンドを発行する。移行240で、マスタ・キーの値を用いることによって、コードまたはデータあるいはその両方からなるロード・イメージがロードされ、認証され、または暗号解除され、あるいはそれらの組合せが行われる。暗号解除は少なくとも1つの暗号解除鍵を生成するために使用でき、この鍵は次に、隔離部112内に記憶した他のコードを検証するために使用できる。いずれにしても、検証手続きが満足なものである場合、ロード機能は、ロードされたコード・イメージの実行を開始する。一実施形態では、このコードは、セキュアなローダであり、前述のように、第2の鍵を使用してセキュアなアプリケーションのローディングを担当する。しかし、別の実施形態では、このコードは、それ自体が決済システム、暗号解除、認証、鍵管理などセキュアであるべきアプリケーションでもよい。
状態230への移行では、APU120によってロード・コマンドが発行された後で、コード認証の前に、APU120上で処理しているどのような命令も中断される。また、状態230への移行中では、MPU130によるLS110の隔離部112への書き込み要求は、APU120によって無視され、MPU130によるLS110の隔離部112の読取り要求は、値0または他の定数を戻す。LS110の隔離部112が作成される(アクセスは、APU120によって開始されたロード/記憶のコマンドまたは命令の取り出しだけに限定される)。APU120のデバッグ/検査/診断用インターフェースのすべてに対するアクセスは、ディセーブルされる。LS110の非隔離/汎用アクセス領域111は、APU120が隔離部112の区分コマンドを発行していないときと同じアクセス権を保存する。さらに、APU120の非同期割込みは、少なくともLS110の一部が隔離状態112にあるとき、ディセーブルされる。
状態230への移行では、APU120の外部からアクセス可能ないくつかのレジスタが、通常64ビットの直接メモリ・アクセス・アドレスを取得するためにアクセスされる。この64ビット直接メモリ・アクセス・アドレスは、APU120の隔離部112にロードすべきコード・イメージの指定点に相当する。認証または暗号解除あるいはその両方を行うべきコードまたはデータあるいはその両方が見つかった後、LS110の隔離部112は、認証または暗号解除あるいはその両方を行うべきコードまたはデータあるいはその両方で上書きされる。
しかし、ロードされたコードまたはデータあるいはその両方が認証されない場合、状態250に進み、ダウンロードされたコードのそれ以上の認証は中止される。状態250で、認証に失敗した場合、MPU130にはこの認証失敗が通知されるが、APU120は隔離状況のままであり、LS110はその隔離領域112を保存する。一実施形態では、このMPU130の通知は、停止(stop)および信号(signal)コマンドによって実施される。しかし、認証失敗が通知された後でも、MPU130は、APU120に発行したコマンドによって、隔離部112内に記憶されたコードにアクセスすることができない。
しかし、ロード・イメージが認証された場合、状態230で、隔離部112内でのコード・イメージの実行が終了した後、APU120は、終了コマンドを発行する。典型的なセキュアなアプリケーションは、例えば、SSL(secure sockets layer)プロトコルや、セキュアな鍵管理、電子決済管理、「バーチャル・マネー(virtual money)」の保管、オペレーティング・システム・イメージの定期的な検証などに用いられる、認証、暗号化、または暗号解除機能であり得る。言い換えると、セキュアなアプリケーションとは、一般に、アプリケーションのセキュリティおよび完全性を重視するアプリケーションとして定義することができる。
一実施形態では、APU120は認証されたコードを実行する。APU120が終了コマンドを発行後、すべてのAPU120のレジスタ、およびLS110の隔離部112が、消去または上書きされる。これは、先に隔離部112内に存在したどのコードにも、任意のデバイスの教唆によってアクセスできないことを保証するために行うことができる。LS110へのアクセスは制限されておらず、APU120のデバッグ/検査/診断用インターフェースへのアクセスは、終了プロセスの完了後、再びイネーブルされる。最後に、APU120の非隔離状態への移行は、APU120がMPU130に通知したとき完了する。これは、APU120を停止させ、MPU130に信号を送る命令によって実施することができる。
しかし、停止状態250に入った後、MPU130は、APC180に終了コマンドを発行することができる。終了コマンドは、隔離部112を解放し、状態220へ進めるようにする。あるいは、停止状態250で、MPU130がAPC180へ別のロード・コマンドを発行し、それによって、認証すべき他のまたは異なるコードをロードすることができる。
本発明は、多くの形態および実施形態をとることができることを理解されたい。したがって、本発明の趣旨または範囲を逸脱することなく、前述の内容にいくつかの変形を加えることができる。本明細書に概要を示した機能により、様々なプログラミング・モデルが可能となってくる。この開示は、好ましい特定のプログラミング・モデルとして読むべきではなく、これらのプログラミング・モデルがその上に構築できる、その基礎となるメカニズムを対象とする。
本発明を、その好ましい実施形態のいくつかに即して述べてきたが、開示の実施形態は、限定的な性質のものではなく例示的なものであり、前述の開示において、広範囲の変形形態、修正形態、変更形態、および代用形態が企図され、いくつかの例では、本発明のいくつかの特徴は、その他の特徴をそれに対応して使用することなく、用いることができることに留意されたい。前述の好ましい実施形態を検討することにより、当業者には、このような多くの変形形態、および修正形態が望ましいと考えられることもあり得る。したがって、添付の特許請求の範囲は、広義に、かつ本発明の範囲に適合する形で解釈するのが適切である。
認証または暗号解除すべきコードまたはデータの隔離がローカル記憶域内で行われるシステムの概略図である。 付加プロセッサ・ユニット(APU)によって開始される隔離状態と非隔離状態の間の移行を示す状態図である。
符号の説明
100 システム
110 ローカル記憶域(LS)
111 非隔離(汎用アクセス)部、汎用アクセス領域、汎用アクセス・メモリ
112 隔離部、隔離領域
115 LSバス
120 付加プロセッサ・ユニット(APU)
127 バス
130 MPU
133 バス
135 バス
138 APU制御バス
140 バス・インターフェース・ユニット(BIU)
145 ロード/終了状態マシーン(LESM)
150 オンチップ・プロセッサ・バス
180 付加プロセッサ複合体(APC)

Claims (8)

  1. ローカル記憶域に動的に割り振られた区分内でロード・イメージ(コードまたはデータ)を認証するためのシステムであって、
    非隔離領域と付加プロセッサ(APU)によってのみアクセス可能な隔離領域に区分される前記ローカル記憶域と、
    前記ロード・イメージを前記隔離領域にロードし、マスタ・キーを使用して前記隔離領域にロードされたイメージの少なくとも一部分から少なくとも1つの暗号化された鍵を暗号解除し、前記隔離領域内で使用した前記マスタ・キーを消去した後、暗号解除された前記鍵を使用して前記ロード・イメージを認証し、前記ロード・イメージの実行が終了したことに応答して、前記隔離領域中の前記ロード・イメージをクリアし、前記ロード・イメージのクリア後、前記隔離領域を開放して、前記ローカル記憶域全体を前記非隔離領域に戻すロードおよび終了状態マシーンと、
    前記ローカル記憶域中で前記認証されたロード・イメージを実行するように構成され、前記ローカル記憶域に結合された前記APUとを備えるシステム。
  2. 前記APUが、ローカル記憶域隔離解除コマンドを発行するようにさらに構成される、請求項に記載のシステム。
  3. 前記APUが、前記隔離領域中の前記ロード・イメージをクリアするための消去コマンドを発行するようにさらに構成される、請求項に記載のシステム。
  4. 前記ローカル記憶域に間接的に結合され前記非隔離領域のみにアクセス可能な主演算処理装置(MPU)をさらに備える、請求項に記載のシステム。
  5. 前記APUが、前記ローカル記憶域の前記隔離領域内にある標識(indicia)に前記MPUがアクセスすることを拒否するように構成される、請求項に記載のシステム。
  6. コンピュータ・システム中にあるロード・イメージ(コードまたはデータ)を認証するためにローカル記憶域を動的に区分するためのコンピュータ可読なプログラムであって、前記プログラムが、
    前記ローカル記憶域を非隔離領域と付加プロセッサ(APU)によってのみアクセス可能な隔離領域に区分するステップと、
    前記ロード・イメージを前記隔離領域にロードするステップと、
    マスタ・キーを使用して前記隔離領域にロードされたイメージの一部から少なくとも1つの暗号化された鍵を暗号解除し、前記隔離領域内で使用した前記マスタ・キーを消去した後、暗号解除された前記鍵を使用して前記ロード・イメージを認証するステップと、
    前記ロード・イメージの認証に成功した場合、前記ロード・イメージを実行するステップと、
    前記ロード・イメージの実行が終了した後、前記隔離領域中の前記ロード・イメージをクリアするステップと、
    前記ロード・イメージのクリア後、前記隔離領域を開放して、前記ローカル記憶域全体を前記非隔離領域に戻すステップとを前記コンピュータ・システムに実行させる、プログラム。
  7. 前記ロード・イメージの認証に失敗した場合、前記APUを停止させるステップと、認証の失敗を、前記ローカル記憶域に間接的に結合され前記非隔離領域のみにアクセス可能な主演算処理装置(MPU)に知らせるステップとをさらに実行させる、請求項に記載のプログラム。
  8. 前記APU上のデバッグ、検査および診断用インタフェースへの前記MPUによるアクセスをディセーブルすることによって、隔離を実施するステップをさらに実行させる、請求項に記載のプログラム。
JP2004184034A 2003-06-23 2004-06-22 システム・オン・チップのためのセキュリティ・アーキテクチャ Expired - Fee Related JP4288209B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/601,374 US8838950B2 (en) 2003-06-23 2003-06-23 Security architecture for system on chip

Publications (2)

Publication Number Publication Date
JP2005018770A JP2005018770A (ja) 2005-01-20
JP4288209B2 true JP4288209B2 (ja) 2009-07-01

Family

ID=34079539

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004184034A Expired - Fee Related JP4288209B2 (ja) 2003-06-23 2004-06-22 システム・オン・チップのためのセキュリティ・アーキテクチャ

Country Status (3)

Country Link
US (1) US8838950B2 (ja)
JP (1) JP4288209B2 (ja)
CN (1) CN100375422C (ja)

Families Citing this family (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7103574B1 (en) * 1999-03-27 2006-09-05 Microsoft Corporation Enforcement architecture and method for digital rights management
US7370212B2 (en) 2003-02-25 2008-05-06 Microsoft Corporation Issuing a publisher use license off-line in a digital rights management (DRM) system
US7475257B2 (en) 2003-09-25 2009-01-06 International Business Machines Corporation System and method for selecting and using a signal processor in a multiprocessor system to operate as a security for encryption/decryption of data
US20060242406A1 (en) * 2005-04-22 2006-10-26 Microsoft Corporation Protected computing environment
US20060059372A1 (en) * 2004-09-10 2006-03-16 International Business Machines Corporation Integrated circuit chip for encryption and decryption having a secure mechanism for programming on-chip hardware
US8347078B2 (en) 2004-10-18 2013-01-01 Microsoft Corporation Device certificate individualization
US20060089917A1 (en) * 2004-10-22 2006-04-27 Microsoft Corporation License synchronization
US20060106920A1 (en) * 2004-11-15 2006-05-18 Microsoft Corporation Method and apparatus for dynamically activating/deactivating an operating system
US8464348B2 (en) * 2004-11-15 2013-06-11 Microsoft Corporation Isolated computing environment anchored into CPU and motherboard
US8336085B2 (en) 2004-11-15 2012-12-18 Microsoft Corporation Tuning product policy using observed evidence of customer behavior
US8176564B2 (en) * 2004-11-15 2012-05-08 Microsoft Corporation Special PC mode entered upon detection of undesired state
JP4596247B2 (ja) * 2005-01-31 2010-12-08 ソニー株式会社 データ処理回路、データ処理装置、データ処理方法、データ処理制御方法、データ処理プログラム及びデータ処理制御プログラム
JP4600750B2 (ja) * 2005-01-31 2010-12-15 ソニー株式会社 データ処理回路、データ処理装置、データ処理方法、データ処理制御方法、データ処理プログラム及びデータ処理制御プログラム
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
US9363481B2 (en) 2005-04-22 2016-06-07 Microsoft Technology Licensing, Llc Protected media pipeline
US9436804B2 (en) * 2005-04-22 2016-09-06 Microsoft Technology Licensing, Llc Establishing a unique session key using a hardware functionality scan
US20060265758A1 (en) * 2005-05-20 2006-11-23 Microsoft Corporation Extensible media rights
US8353046B2 (en) * 2005-06-08 2013-01-08 Microsoft Corporation System and method for delivery of a modular operating system
US8468361B2 (en) * 2005-09-21 2013-06-18 Broadcom Corporation System and method for securely provisioning and generating one-time-passwords in a remote device
US8438658B2 (en) * 2006-02-02 2013-05-07 International Business Machines Corporation Providing sealed storage in a data processing device
US20070180271A1 (en) * 2006-02-02 2007-08-02 Ibm Corporation Apparatus and method for providing key security in a secure processor
US20070288740A1 (en) 2006-06-09 2007-12-13 Dale Jason N System and method for secure boot across a plurality of processors
US20070288761A1 (en) * 2006-06-09 2007-12-13 Dale Jason N System and method for booting a multiprocessor device based on selection of encryption keys to be provided to processors
US7594104B2 (en) * 2006-06-09 2009-09-22 International Business Machines Corporation System and method for masking a hardware boot sequence
US20070288738A1 (en) * 2006-06-09 2007-12-13 Dale Jason N System and method for selecting a random processor to boot on a multiprocessor system
US20070288739A1 (en) * 2006-06-09 2007-12-13 Dale Jason N System and method for masking a boot sequence by running different code on each processor
US7774616B2 (en) * 2006-06-09 2010-08-10 International Business Machines Corporation Masking a boot sequence by providing a dummy processor
US8108905B2 (en) * 2006-10-26 2012-01-31 International Business Machines Corporation System and method for an isolated process to control address translation
US8364975B2 (en) * 2006-12-29 2013-01-29 Intel Corporation Methods and apparatus for protecting data
US8307426B2 (en) * 2007-01-26 2012-11-06 Mips Technologies, Inc. Systems and methods for controlling the use of processing algorithms, and applications thereof
US7913074B2 (en) * 2007-09-28 2011-03-22 Microsoft Corporation Securely launching encrypted operating systems
US8819839B2 (en) * 2008-05-24 2014-08-26 Via Technologies, Inc. Microprocessor having a secure execution mode with provisions for monitoring, indicating, and managing security levels
US8522354B2 (en) * 2008-05-24 2013-08-27 Via Technologies, Inc. Microprocessor apparatus for secure on-die real-time clock
WO2009158538A1 (en) * 2008-06-27 2009-12-30 Wms Gaming, Inc. Authenticating components in wagering game systems
US8868925B2 (en) * 2008-12-09 2014-10-21 Nvidia Corporation Method and apparatus for the secure processing of confidential content within a virtual machine of a processor
KR101682092B1 (ko) * 2009-11-12 2016-12-05 삼성디스플레이 주식회사 박막 트랜지스터 표시판 및 이를 포함하는 액정 표시 장치
US8424100B2 (en) * 2010-03-29 2013-04-16 Motorola Solutions, Inc. System and method of vetting data
US8954490B2 (en) 2010-06-24 2015-02-10 International Business Machines Corporation Speculative and coordinated data access in a hybrid memory server
US8898324B2 (en) 2010-06-24 2014-11-25 International Business Machines Corporation Data access management in a hybrid memory server
US9177177B1 (en) * 2012-10-04 2015-11-03 Symantec Corporation Systems and methods for securing storage space
US9164694B1 (en) * 2013-06-19 2015-10-20 Western Digital Technologies, Inc. Data storage device detecting read-before-write conditions and returning configurable return data
US9071581B2 (en) * 2013-09-23 2015-06-30 Nvidia Corporation Secure storage with SCSI storage devices
EP3248360B1 (en) 2015-01-19 2020-05-06 Inauth, Inc. Systems and methods for trusted path secure communication
US11115205B2 (en) 2016-09-29 2021-09-07 Nokia Technologies Oy Method and apparatus for trusted computing
KR102765870B1 (ko) * 2019-08-05 2025-02-07 삼성전자주식회사 시스템 온 칩
CN110704362B (zh) * 2019-09-12 2021-03-12 无锡江南计算技术研究所 一种处理器阵列局部存储混合管理方法
KR102837803B1 (ko) 2019-12-03 2025-07-22 삼성전자주식회사 사용자에 대한 인증을 통해 유저 데이터에 대한 권한을 부여하는 시큐리티 프로세서 및 이를 포함하는 컴퓨팅 시스템

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0769170B1 (en) 1994-06-01 1999-08-18 Quantum Leap Innovations Inc: Computer virus trap
JP2001524229A (ja) 1997-02-13 2001-11-27 ピーシーエスイーシー,リミティド ライアビリティ カンパニー コンピュータシステムの安全保障性能向上用の安全保障形共同プロセッサ
US6275938B1 (en) 1997-08-28 2001-08-14 Microsoft Corporation Security enhancement for untrusted executable code
US6327652B1 (en) * 1998-10-26 2001-12-04 Microsoft Corporation Loading and identifying a digital rights management operating system
WO2001006374A2 (en) * 1999-07-16 2001-01-25 Intertrust Technologies Corp. System and method for securing an untrusted storage
AU2001243147A1 (en) * 2000-02-17 2001-08-27 General Instrument Corporation Method and apparatus for providing secure control of software or firmware code downloading and secure operation of a computing device receiving downloaded code
US6795905B1 (en) * 2000-03-31 2004-09-21 Intel Corporation Controlling accesses to isolated memory using a memory controller for isolated execution
US7082615B1 (en) * 2000-03-31 2006-07-25 Intel Corporation Protecting software environment in isolated execution
US6769062B1 (en) * 2000-10-25 2004-07-27 Ericsson Inc. Method and system of using an insecure crypto-accelerator
CN1478222A (zh) 2000-11-06 2004-02-25 �Ҵ���˾ 用于处理客户请求的方法和系统
US7346928B1 (en) 2000-12-01 2008-03-18 Network Appliance, Inc. Decentralized appliance virus scanning
GB2371125A (en) 2001-01-13 2002-07-17 Secr Defence Computer protection system
US7073059B2 (en) * 2001-06-08 2006-07-04 Hewlett-Packard Development Company, L.P. Secure machine platform that interfaces to operating systems and customized control programs
EP1331539B1 (en) * 2002-01-16 2016-09-28 Texas Instruments France Secure mode for processors supporting MMU and interrupts
EP1329787B1 (en) * 2002-01-16 2019-08-28 Texas Instruments Incorporated Secure mode indicator for smart phone or PDA
US20030226014A1 (en) * 2002-05-31 2003-12-04 Schmidt Rodney W. Trusted client utilizing security kernel under secure execution mode

Also Published As

Publication number Publication date
JP2005018770A (ja) 2005-01-20
US20050021944A1 (en) 2005-01-27
US8838950B2 (en) 2014-09-16
CN100375422C (zh) 2008-03-12
CN1574730A (zh) 2005-02-02

Similar Documents

Publication Publication Date Title
JP4288209B2 (ja) システム・オン・チップのためのセキュリティ・アーキテクチャ
CN1229513B (zh) 用于保护闪速存贮器的方法和装置
CN109918919B (zh) 认证变量的管理
US5844986A (en) Secure BIOS
US8332653B2 (en) Secure processing environment
JP4498735B2 (ja) オペレーティングシステムおよびカスタマイズされた制御プログラムとインタフェースする安全なマシンプラットフォーム
US9535712B2 (en) System and method to store data securely for firmware using read-protected storage
EP1396778B1 (en) Semiconductor device including encryption section, semiconductor device including external interface, and content reproduction method
US20070180271A1 (en) Apparatus and method for providing key security in a secure processor
US8438658B2 (en) Providing sealed storage in a data processing device
US20060026417A1 (en) High-assurance secure boot content protection
EP1429224A1 (en) Firmware run-time authentication
US11960737B2 (en) Self-deploying encrypted hard disk, deployment method thereof, self-deploying encrypted hard disk system and boot method thereof
EP3980898B1 (en) Systems and methods for processor virtualization
JP2010182196A (ja) 情報処理装置およびファイル検証システム
CN112069506A (zh) 一种安全启动方法和装置
US8108905B2 (en) System and method for an isolated process to control address translation
US10824766B2 (en) Technologies for authenticated USB device policy enforcement
CN116049844B (zh) 一种可信平台模块调用方法、系统、装置及存储介质
US10592663B2 (en) Technologies for USB controller state integrity protection

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060620

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20060630

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20060630

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060915

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071002

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071217

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080226

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080526

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20080703

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

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20090324

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

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

Free format text: PAYMENT UNTIL: 20120403

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4288209

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130403

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130403

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20140403

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees