JP2012531663A - コンピュータ・システム中の安全オブジェクトに対するサポート - Google Patents

コンピュータ・システム中の安全オブジェクトに対するサポート Download PDF

Info

Publication number
JP2012531663A
JP2012531663A JP2012517492A JP2012517492A JP2012531663A JP 2012531663 A JP2012531663 A JP 2012531663A JP 2012517492 A JP2012517492 A JP 2012517492A JP 2012517492 A JP2012517492 A JP 2012517492A JP 2012531663 A JP2012531663 A JP 2012531663A
Authority
JP
Japan
Prior art keywords
processor
data
software
code
secure
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.)
Granted
Application number
JP2012517492A
Other languages
English (en)
Other versions
JP5613232B2 (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 JP2012531663A publication Critical patent/JP2012531663A/ja
Application granted granted Critical
Publication of JP5613232B2 publication Critical patent/JP5613232B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/125Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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/72Protecting 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 in cryptographic circuits

Landscapes

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

Abstract

【課題】インターネット・ベースのアタックによるコンピュータ・システムからの情報窃取の防止を助力し、コンピュータ・システム中の機密データおよびソフトウエアを、アタッカが標的コンピュータ・システムに取り込ませることのでき得るソフトウエアを含む他のソフトウエアから保護することができるシステムおよび方法を提供する。
【解決手段】暗号によってコンピュータ・システム中の他のソフトウエアから保護されているコードおよびデータを包含する安全オブジェクトをサポートするメカニズムを含む、コンピュータ・システムにおける方法および構造を提供する。
【選択図】図3

Description

本発明は、一般に、コンピュータ・システム中の他のソフトウエアからのアタックに対する保護を含め、さまざまな形のアタックから、コンピュータ・システム中のデータおよびソフトウエアを保護することに関する。さらに具体的には、ある例示実施形態において、2つの新規マシン命令が暗号化/復号を制御し、「安全オブジェクト」中の機密ソフトウエアおよびデータが、これら機密ソフトウエアおよびデータがCPU内部で使用されている期間を除き、常時暗号化されているようにするメカニズムを提供する。
インターネットは、世の中を一変させた強力なツールである。IBM(IBMの登録商標)の先の会長でCEOだったルー・ガースナーがいったように「インターネットは、事業、経済、および社会の変化を促進するための、我々がかつて経験した中で唯一、最強のツールにほかならない」。
だが、多くのツールと同様、このツールも善用も悪用もできる。毎週のごとく、我々は、インターネット・ベースのアタックで、システムが侵害され、機密情報が盗まれた事件を耳にする。
最近のニュースの一部には次のようなものがある。
● 英国のMI5:中国のサイバー・アタックの標的である上位の会社、(ロンドン)タイムス、2007年12月3日、
● 不法ソフトウエアによる大量のデータ漏洩:ハナフォード・ブラザーズ・スーパーマーケットのサーバ上に密かにインストールされた不正コンピュータ・プログラムが、420万に上るデビット・カードおよびクレジット・カードの情報を漏洩、AP、2008年3月28日、
● ロシアの非行集団が大規模画策でPCをハイジャック、ニューヨーク・タイムス、2008年8月6日、
● ホテル・チェーン・ハッカーによるクレジット・カード明細の盗難により、800万の人々がID詐欺のリスクをかかえる、(UK)ディリー・メール、2008年8月25日、
● ニューヨーク・メロン銀行のデータ漏洩、今や1,250万に影響、ロイター、2008年8月28日、および
● 米国当局は、TJXカンパニーズを含む、数社の小売業者から数千万のクレジット・カードおよびデビット・カード番号を盗んだとして、5カ国の11人を告発した、ロイター、2008年8月28日(上記ニューヨークの銀行の記事から引用)。
この他にも多くの類似の事件がある。
このように、インターネット・ベースのアタックによるコンピュータ・システムからの情報窃取の防止を助力し、コンピュータ・システム中の機密データおよびソフトウエアを、アタッカが標的コンピュータ・システムに取り込ませることのでき得るソフトウエアを含む他のソフトウエアから保護することができるシステムおよび方法が求められている。
本発明の典型的特徴は、従来型システムの上記および他の典型的な問題、欠点、並びに不利点をかんがみ、コンピュータ・システムに対し、暗号によってコンピュータ・システム中の他のソフトウエアから保護されたコードおよびデータを含む、安全オブジェクトをサポートするためのメカニズムを包含するプロセッサを提供することである。
本発明の別の典型的特徴は、データおよびコードの少なくとも一つを、安全オブジェクトが実際にCPU内で処理されているときを除き、安全オブジェクトの暗号によって保護された部分として維持するための構造および方法を提供することである。
本発明の別の典型的特徴は、安全オブジェクトが、該安全オブジェクトの処理のためCPUの中に入るときに安全オブジェクトを復号するための、暗号エンジンおよび暗号エンジン中にキーをロードするマシン命令を包含するメカニズムを提供することである。
従って、本明細書の第一例示態様においては、暗号によってコンピュータ・システム中の他のソフトウエアから保護されたコードおよびデータを包含する安全オブジェクトをサポートするメカニズムを組み込んだ、コンピュータ・システム中のプロセッサについて説明する。
また、本明細書の第二例示態様においては、安全オブジェクトのコードがプロセッサで実行されている間、安全オブジェクトへのアクセスを提供するための暗号エンジンおよび暗号エンジン中にキーをロードする命令を包含するメカニズムを説明する。
さらに、本明細書の第三例示態様においては、プライベート情報を保護する方法、およびその方法を実行するマシン可読命令を格納する記憶媒体を説明する。
さらに、本明細書の第四例示態様においては、暗号によってコンピュータ・システム中の他のソフトウエアから保護された、マシン可読記憶媒体中に有形に具現されたデータ構造を説明する。
さらに、本明細書の第五例示態様においては、暗号によってコンピュータ・システム中の他のソフトウエアから保護されたコードおよびデータを包含する安全オブジェクトをサポートするメカニズムを提供するマシン命令を説明する。
従って、本発明は、データ構造のプライベート・データが、コンピュータ・システム中のCPU内で処理されている間を除き、常時、暗号によって保護され、これにより、そのプライベート・データに対し、コンピュータ・システム中の他のソフトウエアからの保護を与える新規のマシン命令およびデータ構造を提供する。
前述および他の目的、態様および利点は、以下に、図面を参照しながら本発明の例示実施形態を詳細説明することによってよりよく理解できるであろう。
暗号によって他のソフトウエアから保護されているコードおよびデータを包含する安全オブジェクト100の高級言語の記述を示す。 安全オブジェクトの低レベルのインプリメンテーション200(例、コンパイル・バージョン)の実例である。 安全オブジェクトに対するサポートを提供するマイクロプロセッサの例示ブロック図300を示す。 安全オブジェクトを実装するため使われるesm命令フォーマット400を示す。 第二例示実施形態の概念500を例示的に示し、暗号化/復号キーを見出すため、esm命令のハンドルが復号される。 第一例示実施形態に対し、安全オブジェクトを包含する実行ファイルを構築するプロセス600を示す。 第二例示実施形態に対し使用可能な、安全オブジェクトを包含する実行ファイルを構築する別のプロセス700を示す。 安全オブジェクトが他のオブジェクトに対しどのようにメッセージを呼び出しまたはこれに送信するかを示す。 本発明を中に組み入れるための例示的ハードウエア/情報処理システム900を示す。 本発明による方法のプログラムのステップを格納するための信号担持記憶媒体1000(例、記憶媒体)を示す。
以下に、図面を参照しながら、本発明による方法および構造の例示的実施形態を説明する。
本発明は、ソフトウエア・アタックに対し強力な防衛を提供する新規の構成概念「安全オブジェクト」を実装するためのメカニズムを提供する。この安全オブジェクトは、他のオブジェクト指向プログラミング言語のオブジェクトと同様に、データと、そのデータを操作しデータへのアクセスを提供するコードとを包含する。安全オブジェクトは、安全オブジェクトのプライベート・コードおよびデータが、他の一切のソフトウエアが安全オブジェクトのプライベート情報にアクセスできないように、暗号によって保護されているという点で、Javaなど既存のプログラミング言語に存在するオブジェクトとは異なる。
図1は、安全オブジェクト100が、高級プログラミング言語において、どのように見え得るかその一例を提示している。この安全オブジェクトは、プライベート・データ101およびプライベート・メソッド102、並びに、そのパブリック・インタフェース103、105を介して安全オブジェクトへのアクセスを可能にするメソッドを包含する。他のソフトウエアは安全オブジェクトを用いることができる(すなわち、他のソフトウエアは安全オブジェクトに対し「呼び出し」または「メッセージの送信」をすることができる)が、他のソフトウエアは、パブリック・インタフェース103、105を介してだけ安全オブジェクトにアクセスすることができる。
安全オブジェクトをベースとしたシステムでは、プライベート情報は、ほぼ常時暗号化されている。これは、メモリ中に在る間およびディスク上に在る間は、ページング・システム中でも、ファイル・システム中でも暗号化されている。
図2は、安全オブジェクトのコンパイル・バージョン200が、メモリ中でどのように見え得るかを示す。
安全オブジェクトのプライベート情報は以下のときにだけ「非暗号化状態」である。
● 安全オブジェクト内部からアクセスされるとき、
● その情報がマイクロプロセッサ内部にある間だけ。
他のコードは、安全オブジェクトのプライベート情報へのアクセスを持たないので、別のソフトウエア・モジュールの脆弱性を介してシステム中に入り込んだソフトウエア・アタックは、安全オブジェクトのプライベート情報の暗号化されていないバージョンへのアクセス手段を有さない。図2に示されるように、暗号化されたプライベート情報には、プライベート・コードとプライベート・データとを含めることができ、これらは図1のプライベート・コード102およびプライベート・データ101に対応している。
本発明の概念を説明するために用いられる例示実施形態において、本新規設計は、安全オブジェクトのパブリック・メソッドに参入しこれから出るために使われ、「安全メソッドに参入する(enter secure method)」および「安全メソッドから出る(leave secure method)」にそれぞれ対応する新規の2つの命令、「esm」および「lsm」を包含する。
esm命令は、安全オブジェクトのプライベート・コードおよびデータがメモリからマイクロプロセッサ中に移動するに際して、これらコードおよびデータを復号するために使われる特別レジスタ中に、いくつかの暗号キー情報をロードする。引数など本メソッドに渡される他のデータ、および安全オブジェクトが呼び出されたときに保存された復帰アドレスは、この暗号化なしにアクセスされる。
図3は、安全オブジェクトに対しサポートを提供するマイクロプロセッサ301のブロック図300である。このマイクロプロセッサは、現在一般に使われているマイクロプロセッサとほとんど同じようにコードを実行するが、(1)機密情報が外部メモリ303からL1キャッシュ304中に移動される際にその情報を復号し、(2)機密情報がL1キャッシュ304から外部メモリ303に移動される際にそれを暗号化するための暗号エンジン302を包含する。この暗号化は、ウイルス、ワーム、および他の「アタック・ソフトウエア」を含め、他のソフトウエアが機密情報の暗号化されていないバージョンを取得できないことを確実にするため使われる。
また図3は、暗号エンジン内に、暗号化および復号プロセスで使われるキーを保持する「キー」と標示されたブロック305を示している。このキー・ブロックには、これらのキーを保持するために特別に指定された暗号レジスタのセットを包含させることができよう。なお、暗号エンジン302は、プロセッサ307と関連させたコプロセッサとすることも、あるいはこの暗号エンジンをCPUプロセッサ自体によって実行される機能とすることもできよう。
lsm命令はオペコードだけで構成することができ、これは、特別暗号レジスタ305の前の状態を復元するので、安全メソッドに戻されたとき、この暗号化および復号なしに通常の非安全コードが実行できる。
この安全オブジェクト・システムにおいて、安全オブジェクトのプライベート情報を復号するのに用いられるキー305は安全オブジェクトには利用可能であるが、他の一切のコードはこれらのキーを利用できない。
図4に例示的に示すように、esm命令400は、オブジェクトのプライベート・データへのアクセスを提供するため、オペコード・フィールド401と、キー・ブロック305中の特別暗号キー・レジスタの中にキーをロードするのに使われる、オペコード・フィールド401の「ハンドル」と言われるオペランド・フィールド402とを有する。しかしながら、「オブジェクト」のプライベート情報の復号に使われるキーは、他の一切のコードが利用できてはならないので、ハンドルは、他のソフトウエアが使用できない暗号キー情報への間接参照を提供する。このプロセスについては後記でさらに詳しく説明する。
安全オブジェクトの内部で、プライベート情報は、メモリ303からCPU307への経路上で復号され、CPU307からメモリ303への経路上で暗号化される。この暗号法は、安全オブジェクトのプライベート・コードおよびデータの完全性並びにこれらの秘匿性を保護するための暗号完全性バリューを包含する。かくして、敵対ソフト、またはソフトウエア・バグ、または別のソフトウエア・モジュールからのソフトウエア・アタックがオブジェクトのプライベート・コードまたはデータを「改ざんする」と、該オブジェクトが次にそのコードまたはデータにアクセスするとき、暗号ハードウエアが暗号完全性例外を生成することになる。
これに対し、安全オブジェクトがそのプライベート・データ101を更新するときは、その暗号完全性バリューを更新するため「オブジェクト」のキーが使われ、「オブジェクト」がこのデータに後にアクセスするとき、完全性例外は発生しない。暗号完全性保護を包含する暗号化および復号プロセスは、前述で識別された同時係属出願中に記載されたようにして実施することができよう。
この完全性保護は、オブジェクトのプライベート情報へのアクセスを提供するキーを保護するために必須でもある。敵対ソフトが、他の何らかのコードを使って安全オブジェクトのハンドル(これは安全オブジェクトのesm命令の中で使用可能)を使用しようとすると、この「他の」コードの使用が暗号完全例外を生成し、その実行が打ち切られることになる。敵対ソフトはキーが利用できないので、敵対ソフトは、キーが使われるときに暗号完全性チェックに合格するコードを生成することはできない。そして、敵対ソフトは、ハンドルを介する以外に、キーを取得または使用するどのような方法も持たないので、敵対ソフトは安全オブジェクトのキーまたはプライベート情報にアクセスを得るどのような方法も有さない。
一つの例示実装において、暗号キー情報およびハンドルからキーへのマッピングは、ソフトウエアがアクセスできない保護領域306に格納される。この実装において、CPUがesm命令を実行するとき、CPUはesm命令からハンドルを取得し、そのハンドルを暗号キー情報にマップし、次いでこの暗号キー情報をキー・ブロック305中の特別暗号レジスタ中にロードする。
図5に示される第二例示的実装500では、ハンドルは、オブジェクトの暗号キー情報を格納する必要性を排除するような仕方で設計される。この設計において、ハンドルは安全オブジェクトのキー情報の暗号化形態であり、これは、ソフトウエアには利用できない特別な「システム・キー」の下に暗号化されている。この設計では、CPUは、esm命令の実行において、上記システム・キーを使ってハンドルを復号してオブジェクトのキー情報を得、次いで、該オブジェクトのキー情報を暗号レジスタ中にロードしてオブジェクトのプライベート情報へのアクセスを提供する。このシステム・キーをさらに保護しなければならないが、この設計は、多くの数に上り得る、オブジェクト・キーとハンドルからオブジェクト・キーへのマッピングとを格納しておく必要がないので、より拡張性が高い。
この暗号化、復号、および完全性チェックを実装する一つの方法の詳細が、前述で識別した同時係属出願に記載されている。
図6および図7は、前述2種類の実装に対する安全オブジェクトを備えた実行ファイルを構築するプロセスを例示的に示す。
図6は、第一例示的実装に対する実行ファイルを構築するプロセス600を示す。通常のコンパイラ処理601に加え、ステップ602において、コンパイラは、安全オブジェクトのパブリック・メソッドへの参入点およびこれからの戻り点において、esmおよびlsm命令を生成することになる。引き続きの追加処理は、図6に示されるように、
● 所与のオブジェクトに対するesm命令をハンドルと関連付ける(ステップ603)、
● オブジェクトのハンドルを、秘匿性および完全性を保護するための暗号キー情報にリンクする(ステップ604)、
● 各オブジェクトのキー情報を使ってそのオブジェクトのプライベート・コードおよびデータを暗号化する(ステップ605)、および
● キー情報およびハンドルからキー情報へのマッピングを、大部分のソフトウエアはアクセスできないが、esm命令の実行において使用される「保護領域」に格納する(ステップ606)、
ことになる。
図7は、第二例示的実装に対する実行ファイルを構築するプロセス700を示す。前のケースにおけるように、ステップ701で通常のコンパイラの処理が行われ、ステップ702において、コンパイラは、安全オブジェクトのパブリック・メソッドへの参入点およびこれからの戻り点において、esmおよびlsm命令を生成することになる。しかしながら、このケースでの追加処理は、
● 各安全オブジェクトに対する暗号キー情報を生成する(ステップ703)、
● 各オブジェクトの暗号キー情報を使ってそのオブジェクトのプライベート・コードおよびデータを暗号化する(ステップ704)、
● 特別な「システム・キー」を用いて各オブジェクトの暗号キー情報を暗号化する(ステップ705)、および
● 各オブジェクトのキー情報の暗号化形態を、そのオブジェクトのesm命令中のハンドルとして用いる(ステップ705)、
ことになる。
この追加処理は、小さな、注意深く精査された信頼の置けるプログラムで行われることになる。
なお、第二実装においては、この追加処理は、実行ファイルが作動されるシステム上で実施する必要はない。追加処理を別の作成マシンで実施し、しかる後所望の送り先マシンに送信して実行すればよい。
この処理が完了したならば、実行ファイル中の安全オブジェクトは「安全」である。これらは、デバイス・ドライバ、オペレーティング・システム、およびハイパーバイザなどの特権ソフトウエア中のバグまたはそれらからのアタックを含め、他のソフトウエア・モジュール中のバグ、またはそれらからのアタックから保護される。上記の第二実装において、これらオブジェクトは、これらが作成マシンから所望の送り先マシンに「送信中」の間も保護されている。
この設計は、OS、ミドルウエア、およびアプリケーションのコードの何百万ものラインの正確さを証明する必要なく、所与の安全オブジェクトのコンテンツが確かに安全であると知ることを可能にする。この設計では、前述した安全オブジェクトメカニズムの正確さと、特定の安全オブジェクトの設計の正確さとを証明する必要があるだけである。
[安全オブジェクトの利用]
安全オブジェクトは、上記の「背景技術」セクションに記載した類のセキュリティ障害を回避するため用いることができよう。もし機密情報が安全オブジェクトの中に保存されていたとすれば、例えば、かの420万のクレジット・カードおよびデビット・カードの盗難は回避できたであろう。安全オブジェクト自体以外の一切のソフトウエアは、完全なリストは利用できないであろうし、注意深い設計と、「オブジェクト」のコードをできるだけ小さく保つことと、ソフトウエア脆弱性について「オブジェクト」のコードを注意深く精査することとによって、安全オブジェクトのコードへのソフトウエア・アタックの問題を最小化または回避することができよう。前述のように、アプリケーションおよびシステム・コードの何百万ものラインの正確さを証明する必要はなく、安全オブジェクトの正確さを証明するだけでよい。
また、「オブジェクト」自体を保護するのに加えて、安全オブジェクトへの出入りの経路を保護し、ソフトウエア・アタックがこれらの経路を「盗聴」し、多量の機密情報を時間をかけて収集することできないようにする必要もある。
こうした経路は、標準的な通信セキュリティ・メカニズムによって保護することが可能である。「良好な」設計においては、機密情報は決して脆弱化することはないものである。安全オブジェクトに送信される機密情報は、それが無事に安全オブジェクトの内部に入るまでは、通信セキュリティ・メカニズムによって保護されることになる。同様に、安全オブジェクトから送信される機密情報は、それが安全オブジェクトを去る前から通信セキュリティ・メカニズムによって保護されることになる。
この種の設計であれば、アタック・ソフトウエアは、システムからいかなる機密情報も入手することはできないであろう。アタック・ソフトウエアは、安全オブジェクト内に所在する機密情報を入手できず、機密情報が安全オブジェクトに送信、またはこれから受信される際にも機密情報を奪取できないことになろう。
[他のオブジェクトを呼び出すオブジェクト]
安全オブジェクトは、他のオブジェクトを呼び出す(またはこれらにメッセージを送信する)ことができる。すなわち、安全オブジェクトは、安全オブジェクトおよび非安全オブジェクトの双方を使用することができる。この一例が、図8に例示的に示されたプロセス800に図示されている。
この例において、ProcessCardRequest(プロセスカード要求)801は、機密のクレジット・カード情報を包含する安全オブジェクトである。ProcessCardRequest 801は、遠隔システムに送信する機密情報を暗号化するため、別の安全オブジェクトEncryptAndDecrypt(暗号化および復号)802を呼び出す。次いで、ProcessCardRequest 801は、遠隔システムへの伝送のため既に暗号化されたメッセージを送信するため、普通の非安全オブジェクトであるSendandReceiveMsg(メッセージ送受信)803を呼び出す。
なお、機密情報を暗号化および復号するオブジェクトは、それが「非暗号化状態」の機密情報にアクセスする必要があるので、安全オブジェクトでなくてはならない。他方、遠隔システムにメッセージを送信するオブジェクトは、それが送信のために受け取るデータが、システム間の「送信中」の間の保護のため既に暗号化されているならば、普通の非安全オブジェクトとすることができる。また、安全オブジェクトが別のオブジェクトを呼び出す場合、呼び出されたオブジェクトのために暗号キー情報を適切にセットアップしてやる必要があることに留意する。
この例は、安全オブジェクトの別の態様を示している。先に述べたように、安全オブジェクト中のプライベート情報はほぼ常時暗号化されている。他方、安全オブジェクト中の公開情報は暗号化されない、すなわち安全オブジェクト暗号法の下では暗号化されない。ProcessCardRequestのクラスが、遠隔システムに渡されることになる暗号化メッセージを格納するための公開フィールドを有する場合、そのフィールドを非安全SendandReceiveMsgオブジェクトに渡すことができ、そのフィールドは安全オブジェクトの暗号法によって「妨げられる」ことはないので、SendandReceiveMsgオブジェクトは、ProcessCardRequestが見るのと同じメッセージを見ることになる。
この設計において、機密情報が脆弱化することはない。これは、安全オブジェクトの暗号法または通信暗号法のいずれかによって常時保護されている。
追加詳細
割り込みおよびプロセス・ディスパッチング
安全オブジェクトへの割り込みがあったとき、安全オブジェクトのプライベート情報へのアクセスを提供する特別暗号ハードウエアの状態を保存しなければならない。そして、後に安全オブジェクトが実行を再開する際に、その状態を復元しなければならない。デバイス・ドライバ、またはプロセス・ディスパッチング・コードまたは他のオペレーティング・システム・レベルのコードが「オブジェクト」のキーにアクセスできるのは、「オブジェクト」のセキュリティを危険に曝す可能性があって望ましくないので、割り込みハンドラおよびOSレベルのコードは、キーでなくハンドルを保存、復元することになり、ハンドル・レジスタ中へのハンドルのローディングによって、適切なキー情報が暗号ハードウエア中にロードされることになる。暗号ハンドルの現在状態は、プロセスが一時中断され再開される際に保存、復元されねばならない「プロセス・コンテキスト」のもう一つの要素となるだけである。
[ファイル・システム中のスワッピング、ページング、および実行ファイル]
あるプロセスがメモリ中に在るときは、その安全オブジェクト中のプライベート情報は前述のように暗号化されており、残余のコードおよびデータは非暗号化状態である。ディスクにスワップまたはページ・アウトされるとき、そのプロセス・イメージは、同じ形を有する、すなわち、安全オブジェクトは暗号化されており、残余のコードおよびデータはされていない。従って、安全オブジェクトは、スワッピングまたはページング・システムにおいて特別な処理をしなくても、スワップまたはページされるときも安全である。
前述のように、暗号化、復号、および完全性保護は、上記で識別された同時係属出願に記載されたようにして実施することができよう。しかしながら、この場合、プロセスまたはプロセスの一部がディスクにスワップまたはページされるとき、コードおよびデータの物理アドレスが変わる可能性があるので、暗号化、復号、および完全性チェックで使われるアドレスは、物理アドレスではなく仮想アドレスに基づくものとなる。
ファイル・システム中の実行ファイルは、それがメモリ中に在るときと同様な保護を有し、安全オブジェクト中のプライベート情報は暗号化され、実行ファイルの他の部分はされない。新規のプロセスを生成するためファイルがメモリ中に持ち込まれる場合も、特別な処理をする必要はない。
引数および戻り値の引き渡し
一つのオブジェクトが別のオブジェクトを呼び出す場合、通常、引数および戻り値は両方のオブジェクトに「理解可能」でなくてはならず、場合によっては、これらの値の暗号化変換が必要となることがある。考慮すべきいくつかのケースがある。
1. 普通の非安全オブジェクトが別の普通の非安全オブジェクトを呼び出す。引数および戻り値は、呼び出し側オブジェクトおよび被呼び出し側オブジェクトの両方において「非暗号化状態」である。変換の必要はない。
2. 安全オブジェクトが非安全オブジェクトを呼び出す。この場合、引数を非安全オブジェクトに渡す、またはその非安全オブジェクトから戻り値を受け取るために使われる、安全オブジェクト中のフィールドはパブリックとすべきである。(情報が非安全オブジェクト中で曝露されているならば、安全オブジェクトの中でそれをプライベートにする意味がない。)これらのフィールドは「非暗号化状態」であることになり、従って変換は必要ない。
3. 非安全オブジェクトが安全オブジェクトを呼び出す。この場合、渡される引数、および戻り値のために使われる、安全オブジェクト中のフィールドはパブリックとすべきである。これらのフィールドは「非暗号化状態」であることになり、従って変換は必要ない。
4. 安全オブジェクトが別の安全オブジェクトを呼び出す。この場合、この呼び出しで渡されるプライベート情報は、呼び出し側オブジェクトのキーを使って復号され、被呼び出し側オブジェクトのキーを使って再暗号化されなければならない。これはesm命令の中で実施することができる。同様に、呼び出し側オブジェクト中のプライベートなフィールドに戻り値が渡されるとき、その情報は被呼び出し側オブジェクトのキーを使って復号され、呼び出し側オブジェクトのキーを使って再暗号化されなければならない。これはlsm命令の中で実施することができる。
ファイル・システムI/O
また、安全オブジェクトは、ファイル・システム中にプライベート情報を格納しこれからプライベート情報を取り出す能力を有するべきである。そして、このプライベート情報は、ファイル・システム中に在る間プライベートのままでなければならない。これは、ファイル・システムから安全読み取りおよびこれへの安全書き込みを行うための安全オブジェクトを呼び出すことによって行うことできる。ファイル記述子、バッファ、およびbuflen(バッファ長)引数に加え、例えば、SecureWrite(安全書き込み)メソッドによって暗号キー情報に対する引数または引数群を受け取り、ファイルに書き込まれるプライベート情報が、ファイル・システムに在る間、暗号によって保護されその秘匿性および完全性を守ることができよう。同様に、SecureRead(安全読み取り)メソッドにより暗号キー情報に対する引数または引数群を受け取り、この方法で読み取りを行い、それがファイル・システムから読み取ったプライベート情報の完全性の妥当性確認を行うことができよう。(この暗号キー情報は、SecureWriteメソッドおよびSecureReadメソッドを呼び出す安全オブジェクト中のプライベートなフィールドまたはフィールド群中に格納できよう。)SecureReadおよびSecureWriteは、実際のファイル・システムI/Oの「標準的な」読み取りおよび書き込みシステム・コールを使って、必要な全ての、暗号法の暗号化、復号、および完全性のチェックを遂行することができよう。(ファイル・システムI/Oでの暗号化および復号で使われる「アドレス」は、ファイルの開始部の数バイトとすることができよう。)
キャッシュ
また、安全オブジェクトのプライベート情報は、L1、L2、およびL3キャッシュ中で「非暗号化状態」に見える場合には保護する必要がある。一つの実装において、図3に示すように、暗号化および復号はL1キャッシュとL2キャッシュとの間で行われる。この設計において、L2またはL3キャッシュ中のプライベート情報は、それが外部メモリに在る場合と同様、暗号によって保護されている。この設計では、プライベート情報はL1キャッシュ内では非暗号化状態であり、従って、この平文のプライベート情報を他の一切のソフトウエアが利用できないことを確実にする必要がある。
安全オブジェクトが割り込まれた場合、または安全オブジェクトが該安全オブジェクト外部のコードの呼び出しを行う場合、一つの可能な仕方はlsm命令を実行時にL1キャッシュ(またはL1キャッシュ中のプライベート情報を包含するエントリだけ)をクリアすることである。あるマルチコア設計では、所与のCPUコアに対するL1キャッシュ(またはキャッシュ群)は他のCPUコアは利用できないようになっている。
別の設計においては、暗号化および復号は、CPUコアとL1キャッシュとの間で行われる。この場合、L1内のプライベート情報は、それが外部メモリに在る場合と同様に暗号によって保護されているが、プライベート情報がL1キャッシュからロードされるときまたはこれに格納するときには常に暗号化/復号をしなければならないことになる。
別の設計では、L1キャッシュとCPUとの間に追加の「L0.5」キャッシュを組み込むことも考えられる。この設計では、L1、L2、およびL3キャッシュは、全て、暗号化形態のプライベート情報を包含し、L0.5は、安全オブジェクトの実行において、プライベート情報の非暗号化形態のために使われ、これだけに使われることになる追加レベルのキャッシュを提供することになろう。このL0.5キャッシュの内容は、安全メソッドに戻るとき、割り込みが生じたとき、安全メソッドが、安全オブジェクト外部のコードを呼び出すときにはクリアされることになる。
安全プロセス
前述のように、安全オブジェクトをプロセス・レベルで用いて、安全オブジェクトがファイル・システム中に格納またはこれから取り出すプライベート情報を含め、プロセスのプライベート情報の全てをその全ライフタイムに亘って保護することができる。esm命令は、実行の開始時点で暗号化保護をセットアップすることになり、これはプロセスが存在する間は使用されることになろう。先に説明したように、プロセスが、オペレーティング・システムの呼び出しなど、外部のコードの呼び出しを行う場合、その外部コードは安全オブジェクトのキーにアクセスすることなく実行される。
[要約]
ソフトウエア・ベースのアタックに対する強力な防衛を提供するための新規のアプローチについて説明してきた。このアプローチは新しい構成概念、安全オブジェクトに基づくものであり、これにおいてプライベート情報は確実にプライベートにされる。安全オブジェクトのプライベート情報は、それがメモリに在る間も、ディスクにページ・アウトされる間も、ファイル・システムに書き出される間も、その全ライフサイクルに亘って保護される。プライベート情報は、暗号によって、デバイス・ドライバ、オペレーティング・システム、およびハイパーバイザのような特権ソフトウエアを含めた他のソフトウエアから保護される。この暗号法は、他のソフトウエアがプライベート情報を取得したり、または検知されずに情報を修改したりするのを防止する。
安全オブジェクトの能力は、オペレーティング・システム、ミドルウエア、およびアプリケーションのコードの何百万ものラインの正確さを証明する必要なく、機密情報が確かに安全であることの証明を可能にする。安全オブジェクトの実装のためのメカニズムの正確さと、所与の安全オブジェクトの設計の正確さとを証明することが必要とされるだけである。
安全オブジェクト機能は、「下位互換性のある」仕方でプロセッサに加えることができる。既存の全てのコードは、修正なしに且つパフォーマンス上の不利なしに継続して実行可能である。そうでありながら、安全オブジェクト機能を活用する新規のコードを書くことによって、機密情報に対するずっと強固な安全を提供することができる。
[典型的ハードウエア実装]
前述したように、図3に示されたマイクロプロセッサは、2つの新規命令esmおよびlsmと、暗号レジスタおよび上記の状況下でこれらレジスタをクリアする能力を包含する暗号エンジンとを組み込んで改良されながらも、従来型のマイクロプロセッサとよく似た動作をする。
図9は、本発明による情報処理/コンピュータ・システムの典型的ハードウエア構成を示し、このシステムは、望ましくは、それぞれがesmおよびlsm命令を実行するよう実装された、少なくとも一つのプロセッサまたは中央処理装置(CPU:central processing unit)910を有する。
CPU910は、システム・バス912を介して、ランダム・アクセス・メモリ(RAM:random access memory)914、読み取り専用メモリ(ROM:read−only memory)916、(ディスク・ユニット921およびテープ・ドライブ940などの周辺デバイスをバス912に接続するための)入力/出力(I/O:input/output)アダプタ918、(キーボード924、マウス926、スピーカ928、マイクロフォン932、もしくは他のユーザ・インタフェース・デバイスまたはこれの組み合わせをバス912に接続するための)ユーザ・インタフェース・アダプタ922、情報処理システムを、データ処理ネットワーク、インターネット、イントラネット、パーソナル・エリア・ネットワーク(PAN:personal area network)などに接続するための通信アダプタ934、およびバス912をディスプレイ・デバイス938もしくは(例えばデジタル・プリンタなどの)プリンタ939またはその両方に接続するためのディスプレイ・アダプタ936に相互接続されている。
前述したハードウエア/ソフトウエア環境に加え、本発明の別の態様は、上記の方法を遂行するためのコンピュータ実装の方法を包含する。この方法は、一例として、前述の特定の環境中に実装することができる。
かかる方法は、例えば、コンピュータを作動し、デジタル・データ処理装置によって具現してマシン可読命令のシーケンスを実行させることで実施することができる。これらの命令は、さまざまな種類の信号担持記憶媒体中に収容することができる。
しかして、本発明のこの態様は、本発明の方法を遂行するため、上記のCPU910およびハードウエアを組み込んだデジタル・データ処理装置によって実行可能な、マシン可読命令のプログラムを有形に具現した信号担持記憶媒体を含むプログラム製品を指向している。
この信号担持記憶媒体は、例えば、高速アクセス記憶装置に代表されるような、CPU910に内蔵されるRAMを含み得る。あるいは、これら命令を、CPU910が直接にまたは間接的にアクセス可能な、磁気データ記憶ディスケット1000(図10)などの別の信号担持記憶媒体に包含させることもできる。
ディスケット1000に包含されたものであれ、コンピュータ/CPU910 に包含されたものであれ、または別の媒体に包含されたものであれ、これらの命令は、(例えば、従来型の「ハード・ドライブ」またはRAIDアレイなどの)DASD記憶装置、磁気テープ、(例えば、ROM、EPROM、またはEEPROMなどの)電子読み取り専用メモリ、(例えば、CD−ROM、WORM、DVD、デジタル光テープなどの)光記憶デバイス、ペーパ・パンチ・カード、あるいは、コンピュータ命令の伝送に使える可能性のある、デジタルまたはアナログなどさまざまなフォーマットの命令を記憶するための記憶デバイスを組み込んだ、通信リンクまたは無線などの伝送媒体中で使われるデバイスおよびメモリを含む、他の適した信号担持記憶媒体、などといったさまざまなマシン可読データ記憶媒体に格納することができる。本発明のある例示実施形態において、マシン可読命令には、ソフトウエア・オブジェクト・コードを含めることができる。
本発明を例示実施形態に関連させて説明してきたが、当業者は、添付の請求項の精神および範囲内での修改を用いて本発明を実施することが可能であることを認識していよう。
さらに、本出願者の意図は、たとえ後の手続き処理の間に修正されたとしても、全ての請求エレメントの同等物を網羅することにあるのに留意すべきである。

Claims (27)

  1. コンピュータ・システム中のプロセッサであって、前記プロセッサは、暗号によって前記コンピュータ・システム中の他のソフトウエアから保護されたコードおよびデータを含む安全オブジェクトをサポートするメカニズムを含む、前記プロセッサ。
  2. 前記メカニズムは、
    暗号エンジンと、
    前記安全オブジェクトの前記コードが前記プロセッサ上で実行さていれる間、前記安全オブジェクトのデータへのアクセスを提供するキー情報を前記暗号エンジンの中にロードする命令と、
    を含む、請求項1に記載のプロセッサ。
  3. 前記安全オブジェクトの前記データは、前記プロセッサによって前記安全オブジェクトの前記コードが実行されている間だけアクセス可能なプライベート情報を含む、請求項1に記載のプロセッサ。
  4. 前記キー情報をロードする前記命令は第一命令を含み、前記メカニズムは、前記暗号エンジン中の前記キー情報を以前の状態に復元するための第二命令をさらに含む、請求項2に記載のプロセッサ。
  5. 前記安全オブジェクトの前記データはプライベート・データを含み、前記プライベート・データは、前記安全オブジェクトのコード内からアクセスされたときと、そのデータが前記プロセッサ内に在るときとだけに復号される、請求項1に記載のプロセッサ。
  6. 前記メカニズムは、前記安全オブジェクトの秘匿性および完全性の両方を保護するために暗号法を用いる、請求項1に記載のプロセッサ。
  7. 前記命令のフィールドから抽出された暗号化キー情報を復号して得られた前記キー情報を、前記暗号エンジン中にロードする、請求項2に記載のプロセッサ。
  8. 暗号法完全性チェック・メカニズムを使って、前記安全オブジェクト・ソフトウエア以外のソフトウエアが前記暗号化キー情報を用いるのを防止する、請求項7に記載のプロセッサ。
  9. 前記キー情報を前記暗号エンジン中にロードする前記命令は、他のソフトウエアから前記キー情報を保護する保護領域に格納されている、キー情報への間接参照を用いる、請求項2に記載のプロセッサ。
  10. 暗号法完全性チェック・メカニズムを使って、前記安全オブジェクト・ソフトウエア以外のソフトウエアが前記間接参照を用いるのを防止する、請求項9に記載のプロセッサ。
  11. 前記プロセッサによる前記コードの前記実行の間保護される、前記プロセッサに関連付けられた少なくとも一つのキャッシュをさらに含む、請求項2に記載のプロセッサ。
  12. 前記コードの前記実行が割り込みされたとき前記安全オブジェクトへのアクセスを提供する暗号キー情報への間接参照を保存し、後で前記実行が再開されたとき前記間接参照を復元する、割り込みハンドラおよびオペレーティング・システム・コードの少なくとも一つをさらに含む、請求項4に記載のプロセッサ。
  13. 前記安全オブジェクトは、ファイル・システム中に情報を格納しこれから取り出し、前記情報は暗号によって前記他のソフトウエアから保護される、請求項1に記載のプロセッサ。
  14. コンピュータ・システム中のプライベート情報を保護する方法であって、前記方法は、暗号によって前記コンピュータ・システム中の他のソフトウエアから保護されたコードおよびデータを含む安全オブジェクトをサポートするメカニズムを提供するステップを含む、前記方法。
  15. 前記メカニズムは、
    暗号エンジンと、
    前記安全オブジェクトの前記コードがプロセッサ上で実行さていれる間、前記安全オブジェクトのデータへのアクセスを提供するキー情報を前記暗号エンジンの中にロードする命令と、
    を含む、請求項14に記載の方法。
  16. 前記安全オブジェクトの前記データは、前記安全オブジェクトの前記コードが実行さていれる間だけアクセス可能なプライベート情報を含む、請求項14に記載の方法。
  17. 前記メカニズムでの使用のため安全オブジェクトを生成するステップであって、前記安全オブジェクトは、前記安全オブジェクト内で処理されている間プライベート情報を復号する、前記安全オブジェクト中の命令を実行することによってだけ、復号されたフォーマットでアクセスが可能な前記プライベート情報を含む、前記生成するステップと、
    前記生成された安全オブジェクトをメモリに送信するステップと、
    をさらに含む、請求項14に記載の方法。
  18. 前記キー情報をロードする前記命令は第一命令を含み、前記メカニズムは、前記暗号エンジン中の前記キー情報を以前の状態に復元するための第二命令をさらに含む、請求項15に記載の方法。
  19. 暗号化キー情報を復号することによって得られたキー情報を、前記暗号エンジン中にロードするステップをさらに含む、請求項15に記載の方法。
  20. 前記安全オブジェクトとともに暗号法完全性チェック・メカニズムを用いるステップをさらに含む、請求項15に記載の方法。
  21. 前記安全オブジェクトの前記実行の過程で別のオブジェクトを呼び出すステップ、および
    前記安全オブジェクトの前記実行の過程で別のオブジェクトにメッセージを送信するステップ、
    の少なくとも一つを含む、請求項15に記載の方法。
  22. プライベート情報が第一安全オブジェクトから第二安全オブジェクトに渡されるときに前記プライベート情報を暗号化変換するステップをさらに含む、請求項21に記載の方法。
  23. 請求項14に記載の前記方法を実行するマシン可読の命令のセットを有形に具現する記憶媒体。
  24. プロセッサが前記メカニズムを実行するための命令を格納する、コンピュータ・システム中のメモリ、
    前記プロセッサが選択的に実行するための前記命令を格納する、前記コンピュータ・システム中のメモリ、および
    前記命令を格納するための独立したディスケット、
    の一つを含む、請求項23に記載の記憶媒体。
  25. マシン可読の記憶媒体中に有形に具現されたデータ構造であって、前記データ構造は、暗号によってコンピュータ・システム中の他のソフトウエアから保護されたコードおよびデータを包含する安全オブジェクトを含む、前記データ構造。
  26. 前記安全オブジェクトは、前記オブジェクトの前記コードがプロセッサ上で実行されている間前記安全オブジェクトのデータへのアクセスを提供するキー情報を、暗号エンジン中にロードする命令を含む、請求項25に記載のデータ構造。
  27. マシン上で実行されるマシン命令であって、暗号によって前記マシン中の他のソフトウエアから保護されたコードおよびデータを包含する安全オブジェクトをサポートするメカニズムを含む、前記マシン命令。
JP2012517492A 2009-06-26 2010-06-23 コンピュータ・システム中の安全オブジェクトに対するサポート Active JP5613232B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/492,738 US8819446B2 (en) 2009-06-26 2009-06-26 Support for secure objects in a computer system
US12/492,738 2009-06-26
PCT/US2010/001811 WO2010151322A1 (en) 2009-06-26 2010-06-23 Support for secure objects in a computer system

Publications (2)

Publication Number Publication Date
JP2012531663A true JP2012531663A (ja) 2012-12-10
JP5613232B2 JP5613232B2 (ja) 2014-10-22

Family

ID=42734672

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012517492A Active JP5613232B2 (ja) 2009-06-26 2010-06-23 コンピュータ・システム中の安全オブジェクトに対するサポート

Country Status (6)

Country Link
US (3) US8819446B2 (ja)
EP (1) EP2446389A1 (ja)
JP (1) JP5613232B2 (ja)
CN (1) CN102428473B (ja)
TW (1) TWI471754B (ja)
WO (1) WO2010151322A1 (ja)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10628579B2 (en) 2009-06-26 2020-04-21 International Business Machines Corporation System and method for supporting secure objects using a memory access control monitor
US9954875B2 (en) 2009-06-26 2018-04-24 International Business Machines Corporation Protecting from unintentional malware download
US8990582B2 (en) * 2010-05-27 2015-03-24 Cisco Technology, Inc. Virtual machine memory compartmentalization in multi-core architectures
CN104040552B (zh) * 2011-12-29 2018-03-30 英特尔公司 安全地分发软件的方法、处理器、计算设备及安全地存储和执行应用的系统
US9465946B2 (en) 2012-06-01 2016-10-11 Intel Corporation Identification and execution of subsets of a plurality of instructions in a more secure execution environment
US9223965B2 (en) 2013-12-10 2015-12-29 International Business Machines Corporation Secure generation and management of a virtual card on a mobile device
US9235692B2 (en) 2013-12-13 2016-01-12 International Business Machines Corporation Secure application debugging
US9251330B2 (en) 2014-04-09 2016-02-02 International Business Machines Corporation Secure management of a smart card
WO2016097954A1 (en) 2014-12-15 2016-06-23 International Business Machines Corporation System and method for supporting secure objects using memory access control monitor
JP6547306B2 (ja) * 2015-01-27 2019-07-24 富士ゼロックス株式会社 情報処理装置、データ退避方法およびプログラム
DE102015201430A1 (de) * 2015-01-28 2016-07-28 Ihp Gmbh - Innovations For High Performance Microelectronics / Leibniz-Institut Für Innovative Mikroelektronik Intrinsische Authentifizierung von Programcode
US9779262B2 (en) * 2015-04-20 2017-10-03 Qualcomm Incorporated Apparatus and method to decrypt file segments in parallel
US9832199B2 (en) 2015-09-25 2017-11-28 International Business Machines Corporation Protecting access to hardware devices through use of a secure processor
US10931455B2 (en) * 2015-09-28 2021-02-23 EyeVerify Inc. Secure image pipeline
US10142101B2 (en) * 2015-09-29 2018-11-27 Intel Corporation Hardware enforced one-way cryptography
US10430587B2 (en) 2015-10-28 2019-10-01 Hrl Laboratories, Llc System and method for maintaining security tags and reference counts for objects in computer memory
CA3051851A1 (en) * 2017-01-26 2018-08-02 Semper Fortis Solutions, LLC Multiple single levels of security (msls) in a multi-tenant cloud
US10387686B2 (en) 2017-07-27 2019-08-20 International Business Machines Corporation Hardware based isolation for secure execution of virtual machines
US10296741B2 (en) 2017-07-27 2019-05-21 International Business Machines Corporation Secure memory implementation for secure execution of virtual machines
EP3746879B1 (en) * 2018-01-29 2023-06-21 Shi, Alexander Secure blockchain integrated circuit
US11068607B2 (en) 2018-03-10 2021-07-20 International Business Machines Corporation Protecting cognitive code and client data in a public cloud via deployment of data and executables into a secure partition with persistent data
US10685106B2 (en) 2018-03-10 2020-06-16 International Business Machines Corporation Protecting cognitive code and client data in a public cloud via deployment of data and executables into a stateless secure partition
US11520913B2 (en) 2018-05-11 2022-12-06 International Business Machines Corporation Secure execution support for A.I. systems (and other heterogeneous systems)
US11706039B2 (en) * 2020-12-26 2023-07-18 Intel Corporation ISA accessible physical unclonable function
US11570010B2 (en) * 2020-12-26 2023-01-31 Intel Corporation ISA accessible physical unclonable function
US11700135B2 (en) * 2020-12-26 2023-07-11 Intel Corporation ISA accessible physical unclonable function
US12022013B2 (en) 2020-12-26 2024-06-25 Intel Corporation ISA accessible physical unclonable function

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07287514A (ja) * 1994-03-30 1995-10-31 Philips Electron Nv メッセージ署名システム実行装置及びこれを具えるチップカード
JP2001230770A (ja) * 2000-02-14 2001-08-24 Toshiba Corp マイクロプロセッサ
JP2001318787A (ja) * 2000-05-08 2001-11-16 Toshiba Corp マイクロプロセッサ、これを用いたマルチタスク実行方法、およびマルチレッド実行方法
JP2002232417A (ja) * 2001-01-31 2002-08-16 Toshiba Corp マイクロプロセッサ
WO2005096120A1 (ja) * 2004-04-02 2005-10-13 Matsushita Electric Industrial Co., Ltd. 実行装置
JP2006018528A (ja) * 2004-06-30 2006-01-19 Fujitsu Ltd セキュアプロセッサ、およびセキュアプロセッサ用プログラム。
JP2006309766A (ja) * 2005-04-26 2006-11-09 Internatl Business Mach Corp <Ibm> プロセッサ命令の暗号解読のための方法、データ処理システム、及び装置
JP2007514994A (ja) * 2003-11-26 2007-06-07 インターナショナル・ビジネス・マシーンズ・コーポレーション 耐タンパ・トラステッド仮想マシン
JP2007233426A (ja) * 2004-04-05 2007-09-13 Matsushita Electric Ind Co Ltd アプリケーション実行装置
JP2008210225A (ja) * 2007-02-27 2008-09-11 Fujitsu Ltd セキュアプロセッサシステム、セキュアプロセッサ及びセキュアプロセッサシステムの制御方法

Family Cites Families (83)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4926481A (en) 1988-12-05 1990-05-15 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Computer access security code system
JP3053106B2 (ja) 1990-11-02 2000-06-19 株式会社日立製作所 暗号化処理装置、及び復号化処理装置
US5481613A (en) 1994-04-15 1996-01-02 Northern Telecom Limited Computer network cryptographic key distribution system
SE504085C2 (sv) 1995-02-01 1996-11-04 Greg Benson Sätt och system för att hantera dataobjekt i enlighet med förutbestämda villkor för användare
JPH09233066A (ja) 1996-02-23 1997-09-05 Sony Corp 暗号化/解読化方法および装置
US20010050990A1 (en) 1997-02-19 2001-12-13 Frank Wells Sudia Method for initiating a stream-oriented encrypted communication
ATE246820T1 (de) 1997-05-29 2003-08-15 Sun Microsystems Inc Verfahren und vorrichtung zur versiegelung und unterschrift von objekten
US7290288B2 (en) 1997-06-11 2007-10-30 Prism Technologies, L.L.C. Method and system for controlling access, by an authentication server, to protected computer resources provided via an internet protocol network
US6708273B1 (en) 1997-09-16 2004-03-16 Safenet, Inc. Apparatus and method for implementing IPSEC transforms within an integrated circuit
US6704871B1 (en) 1997-09-16 2004-03-09 Safenet, Inc. Cryptographic co-processor
US6397331B1 (en) 1997-09-16 2002-05-28 Safenet, Inc. Method for expanding secure kernel program memory
US6185685B1 (en) 1997-12-11 2001-02-06 International Business Machines Corporation Security method and system for persistent storage and communications on computer network systems and computer network systems employing the same
US6754820B1 (en) 2001-01-30 2004-06-22 Tecsec, Inc. Multiple level access system
US6523118B1 (en) 1998-06-29 2003-02-18 Koninklijke Philips Electronics N.V. Secure cache for instruction and data protection
US7055040B2 (en) 1999-04-02 2006-05-30 Hewlett-Packard Development Company, L.P. Method and apparatus for uniquely and securely loading software to an individual computer
US7644439B2 (en) 1999-05-03 2010-01-05 Cisco Technology, Inc. Timing attacks against user logon and network I/O
US6959384B1 (en) 1999-12-14 2005-10-25 Intertrust Technologies Corporation Systems and methods for authenticating and protecting the integrity of data streams and other data
US6983374B2 (en) 2000-02-14 2006-01-03 Kabushiki Kaisha Toshiba Tamper resistant microprocessor
US7203311B1 (en) 2000-07-21 2007-04-10 The Directv Group, Inc. Super encrypted storage and retrieval of media programs in a hard-paired receiver and storage device
US6807577B1 (en) 2000-09-14 2004-10-19 International Business Machines Corporation System and method for network log-on by associating legacy profiles with user certificates
GB0024918D0 (en) 2000-10-11 2000-11-22 Sealedmedia Ltd Method of providing java tamperproofing
ATE319256T1 (de) 2000-10-26 2006-03-15 Gen Instrument Corp Anfängliche betrachtungsperiode für die autorisierung von multimedia-inhalten
AU2002228676A1 (en) 2000-11-27 2002-06-03 Parenty Consulting, Llc Method and system for object encryption using transparent key management
JP4226816B2 (ja) 2001-09-28 2009-02-18 株式会社東芝 マイクロプロセッサ
US7260726B1 (en) * 2001-12-06 2007-08-21 Adaptec, Inc. Method and apparatus for a secure computing environment
US6968420B1 (en) 2002-02-13 2005-11-22 Lsi Logic Corporation Use of EEPROM for storage of security objects in secure systems
FR2838007B1 (fr) * 2002-03-29 2004-07-16 Schlumberger Systems & Service Procede personnalise de delivrance de biens ou services
US6751709B2 (en) 2002-05-15 2004-06-15 Sun Microsystems, Inc. Method and apparatus for prefetching objects into an object cache
US7478235B2 (en) 2002-06-28 2009-01-13 Microsoft Corporation Methods and systems for protecting data in USB systems
US7383587B2 (en) * 2002-11-18 2008-06-03 Arm Limited Exception handling control in a secure processing system
US7121639B2 (en) 2002-12-02 2006-10-17 Silverbrook Research Pty Ltd Data rate equalisation to account for relatively different printhead widths
US8745409B2 (en) 2002-12-18 2014-06-03 Sandisk Il Ltd. System and method for securing portable data
WO2005008385A2 (en) 2003-07-07 2005-01-27 Cryptography Research, Inc. Reprogrammable security for controlling piracy and enabling interactive content
JP2005050160A (ja) * 2003-07-29 2005-02-24 Yazaki Corp ハードウェアプロテクトキー及び情報処理システム
US7457958B2 (en) 2003-09-22 2008-11-25 Proofprint, Inc. System for detecting authentic e-mail messages
JP4263976B2 (ja) 2003-09-24 2009-05-13 株式会社東芝 オンチップマルチコア型耐タンパプロセッサ
US8332652B2 (en) 2003-10-01 2012-12-11 International Business Machines Corporation Computing device that securely runs authorized software
US7249225B1 (en) 2003-10-31 2007-07-24 Sun Microsystems, Inc Method and apparatus for supporting read-only objects within an object-addressed memory hierarchy
US7721329B2 (en) 2003-11-18 2010-05-18 Aol Inc. Method and apparatus for trust-based, fine-grained rate limiting of network requests
US7694151B1 (en) 2003-11-20 2010-04-06 Johnson Richard C Architecture, system, and method for operating on encrypted and/or hidden information
EP1870814B1 (en) 2006-06-19 2014-08-13 Texas Instruments France Method and apparatus for secure demand paging for processor devices
US7167956B1 (en) 2004-05-03 2007-01-23 Sun Microsystems, Inc. Avoiding inconsistencies between multiple translators in an object-addressed memory hierarchy
WO2005119960A2 (en) 2004-06-01 2005-12-15 Ben-Gurion University Of The Negev Research And Development Authority Structure preserving database encryption method and system
US7886345B2 (en) 2004-07-02 2011-02-08 Emc Corporation Password-protection module
JP2006022777A (ja) 2004-07-09 2006-01-26 Toyota Motor Corp 内燃機関
US7483930B1 (en) 2004-07-29 2009-01-27 Sun Microsystems, Inc. Method and apparatus for maintaining an object-based write barrier to facilitate garbage-collection operations
US20060106801A1 (en) 2004-11-12 2006-05-18 International Business Machines Corporation Securing location of an installed middleware application and securing location of containers contained within installed middleware application
US20080288786A1 (en) 2004-12-20 2008-11-20 Michael Stephen Fiske System with access keys
US20060156418A1 (en) 2005-01-10 2006-07-13 Ibm Corporation Method and apparatus for preventing unauthorized access to data
JP4737592B2 (ja) 2005-02-16 2011-08-03 ルネサスエレクトロニクス株式会社 データ処理装置
US20060242611A1 (en) * 2005-04-07 2006-10-26 Microsoft Corporation Integrating programmable logic into personal computer (PC) architecture
US7840993B2 (en) 2005-05-04 2010-11-23 Tricipher, Inc. Protecting one-time-passwords against man-in-the-middle attacks
EP1897019A4 (en) * 2005-05-13 2011-10-05 Cryptomill Technologies Ltd CRYPTOGRAPHIC CONTROL FOR MOBILE MEMORY
US20070006294A1 (en) 2005-06-30 2007-01-04 Hunter G K Secure flow control for a data flow in a computer and data flow in a computer network
US20070101124A1 (en) 2005-07-15 2007-05-03 Pitts William M Secure provisioning of digital content
US8230222B2 (en) 2005-08-23 2012-07-24 International Business Machines Corporation Method, system and computer program for deploying software packages with increased security
US20070130463A1 (en) 2005-12-06 2007-06-07 Eric Chun Wah Law Single one-time password token with single PIN for access to multiple providers
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
US20090276859A1 (en) 2006-07-07 2009-11-05 Linkotec Oy Media content transcoding
WO2008018457A1 (en) 2006-08-10 2008-02-14 Panasonic Corporation Memory controller, secure memory card, and secure memory card system
US20080072068A1 (en) 2006-09-19 2008-03-20 Wang Liang-Yun Methods and apparatuses for securing firmware image download and storage by distribution protection
US20090249492A1 (en) 2006-09-21 2009-10-01 Hans Martin Boesgaard Sorensen Fabrication of computer executable program files from source code
US8356361B2 (en) 2006-11-07 2013-01-15 Spansion Llc Secure co-processing memory controller integrated into an embedded memory subsystem
US20080155273A1 (en) 2006-12-21 2008-06-26 Texas Instruments, Inc. Automatic Bus Encryption And Decryption
US7933413B2 (en) 2007-02-02 2011-04-26 Microsoft Corporation Key exchange verification
WO2008116346A1 (en) 2007-03-26 2008-10-02 Intel Corporation Enhanced digital right management framework
JP2008245112A (ja) * 2007-03-28 2008-10-09 Hitachi Global Storage Technologies Netherlands Bv データ記憶装置及びその暗号鍵の管理方法
US7971059B2 (en) * 2007-05-30 2011-06-28 Bank Of America Corporation Secure channel for image transmission
US20090006796A1 (en) 2007-06-29 2009-01-01 Sandisk Corporation Media Content Processing System and Non-Volatile Memory That Utilizes A Header Portion of a File
US7865488B2 (en) 2007-11-28 2011-01-04 International Business Machines Corporation Method for discovering design documents
US20090240717A1 (en) * 2008-03-20 2009-09-24 Hitachi, Ltd. Method and apparatus for verifying archived data integrity in integrated storage systems
US8127131B2 (en) 2008-04-10 2012-02-28 Telefonaktiebolaget Lm Ericsson (Publ) System and method for efficient security domain translation and data transfer
DE112008003855B4 (de) 2008-05-09 2013-09-05 Hewlett-Packard Development Co., L.P. a Texas Limited Partnership System und Verfahren zum Bereitstellen von sicherem Zugriff auf einen Systemspeicher
US8478973B2 (en) * 2008-05-30 2013-07-02 Infineon Technologies Ag System and method for providing a secure application fragmentation environment
US8335931B2 (en) 2008-06-20 2012-12-18 Imation Corp. Interconnectable personal computer architectures that provide secure, portable, and persistent computing environments
US8381288B2 (en) 2008-09-30 2013-02-19 Intel Corporation Restricted component access to application memory
US8464011B2 (en) 2008-10-27 2013-06-11 Advanced Micro Devices, Inc. Method and apparatus for providing secure register access
US20100119068A1 (en) * 2008-11-11 2010-05-13 Harris Scott C Digital File Anti pirating
US8606997B2 (en) 2008-12-23 2013-12-10 Oracle America, Inc. Cache hierarchy with bounds on levels accessed
US8738932B2 (en) 2009-01-16 2014-05-27 Teleputers, Llc System and method for processor-based security
US8533859B2 (en) 2009-04-13 2013-09-10 Aventyn, Inc. System and method for software protection and secure software distribution
US8479286B2 (en) 2009-12-15 2013-07-02 Mcafee, Inc. Systems and methods for behavioral sandboxing
US8812860B1 (en) 2010-12-03 2014-08-19 Symantec Corporation Systems and methods for protecting data stored on removable storage devices by requiring external user authentication

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07287514A (ja) * 1994-03-30 1995-10-31 Philips Electron Nv メッセージ署名システム実行装置及びこれを具えるチップカード
JP2001230770A (ja) * 2000-02-14 2001-08-24 Toshiba Corp マイクロプロセッサ
JP2001318787A (ja) * 2000-05-08 2001-11-16 Toshiba Corp マイクロプロセッサ、これを用いたマルチタスク実行方法、およびマルチレッド実行方法
JP2002232417A (ja) * 2001-01-31 2002-08-16 Toshiba Corp マイクロプロセッサ
JP2007514994A (ja) * 2003-11-26 2007-06-07 インターナショナル・ビジネス・マシーンズ・コーポレーション 耐タンパ・トラステッド仮想マシン
WO2005096120A1 (ja) * 2004-04-02 2005-10-13 Matsushita Electric Industrial Co., Ltd. 実行装置
JP2007233426A (ja) * 2004-04-05 2007-09-13 Matsushita Electric Ind Co Ltd アプリケーション実行装置
JP2006018528A (ja) * 2004-06-30 2006-01-19 Fujitsu Ltd セキュアプロセッサ、およびセキュアプロセッサ用プログラム。
JP2006309766A (ja) * 2005-04-26 2006-11-09 Internatl Business Mach Corp <Ibm> プロセッサ命令の暗号解読のための方法、データ処理システム、及び装置
JP2008210225A (ja) * 2007-02-27 2008-09-11 Fujitsu Ltd セキュアプロセッサシステム、セキュアプロセッサ及びセキュアプロセッサシステムの制御方法

Also Published As

Publication number Publication date
US8819446B2 (en) 2014-08-26
US9727709B2 (en) 2017-08-08
US20100332843A1 (en) 2010-12-30
US9372967B2 (en) 2016-06-21
TWI471754B (zh) 2015-02-01
CN102428473B (zh) 2016-08-17
EP2446389A1 (en) 2012-05-02
CN102428473A (zh) 2012-04-25
TW201112035A (en) 2011-04-01
WO2010151322A1 (en) 2010-12-29
US20150019876A1 (en) 2015-01-15
JP5613232B2 (ja) 2014-10-22
US20160253485A1 (en) 2016-09-01

Similar Documents

Publication Publication Date Title
JP5613232B2 (ja) コンピュータ・システム中の安全オブジェクトに対するサポート
US10007793B2 (en) Secure object having protected region, integrity tree, and unprotected region
US8954752B2 (en) Building and distributing secure object software
US7975308B1 (en) Method and apparatus to secure user confidential data from untrusted browser extensions
US7853803B2 (en) System and method for thwarting buffer overflow attacks using encrypted process pointers
US7734932B2 (en) System and method for securing executable code
KR101067399B1 (ko) 대칭 키 암호화에 기초한 데이터의 저장 및 검색을 위한, 컴퓨팅 장치에서 구현되는 방법, 시스템 및 복수의 명령어를 저장하는 하나 이상의 컴퓨터 판독가능 매체
US8285987B1 (en) Emulation-based software protection
Boivie et al. SecureBlue++: CPU support for secure execution
US20040003273A1 (en) Sleep protection
JP2004537786A (ja) オペレーティングシステムおよびカスタマイズされた制御プログラムとインタフェースする安全なマシンプラットフォーム
CN101661544A (zh) 在主显示器内提供安全显示窗口的方法和设备
WO2008145602A1 (en) Updateable secure kernel extensions
JP5049185B2 (ja) 情報セキュリティ装置、セキュリティシステム及び入力情報漏洩防止方法
US20060253714A1 (en) Information processor, tamper-proof method, and tamper-proof program
Jang et al. Retrofitting the partially privileged mode for TEE communication channel protection
CN107563226A (zh) 一种存储器控制器、处理器模块及密钥更新方法
CN100424611C (zh) 用于处理加密软件的方法和中央处理单元
Park et al. CAFE: A virtualization-based approach to protecting sensitive cloud application logic confidentiality
JP2002351686A (ja) データ処理方法及びデータ処理方法のプログラム
Parker Protecting cryptographic keys and functions from malware attacks
KR100557340B1 (ko) 보안 입력 디바이스 드라이버를 이용한 컴퓨터 보안 장치및 보안 방법
Xu et al. Protecting Cryptographic Keys and Functions from Malware Attacks
JP2008033457A (ja) 暗号化ソフトウェアを処理する方法及び中央処理装置
KR20060097548A (ko) 보안 입력 디바이스 드라이버를 이용한 컴퓨터 보안 장치및 보안 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130305

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140129

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140304

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140428

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20140428

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20140428

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20140428

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

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20140821

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20140821

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140905

R150 Certificate of patent or registration of utility model

Ref document number: 5613232

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150