JP5537742B2 - 多ユーザ機密コードおよびデータを保護するためのアーキテクチャを含む方法および装置 - Google Patents

多ユーザ機密コードおよびデータを保護するためのアーキテクチャを含む方法および装置 Download PDF

Info

Publication number
JP5537742B2
JP5537742B2 JP2013535046A JP2013535046A JP5537742B2 JP 5537742 B2 JP5537742 B2 JP 5537742B2 JP 2013535046 A JP2013535046 A JP 2013535046A JP 2013535046 A JP2013535046 A JP 2013535046A JP 5537742 B2 JP5537742 B2 JP 5537742B2
Authority
JP
Japan
Prior art keywords
samu
data
code
encrypted
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.)
Active
Application number
JP2013535046A
Other languages
English (en)
Other versions
JP2013541783A (ja
JP2013541783A5 (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.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices 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 Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of JP2013541783A publication Critical patent/JP2013541783A/ja
Publication of JP2013541783A5 publication Critical patent/JP2013541783A5/ja
Application granted granted Critical
Publication of JP5537742B2 publication Critical patent/JP5537742B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • 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/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • 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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/109Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM] by using specially-adapted hardware at the client

Landscapes

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

Description

本出願は、米国仮出願第61/405,045号および第61/405,054号(両出願とも、出願日は2010年10月20日)と、米国非仮出願第12/964,278号(出願日:2010年12月9日)および第12/975,555号(出願日:2010年12月22日)の利益を主張する。本明細書中、同文献の内容を参考のため援用する。
本出願は、ハードウェアに基づくセキュリティ実行環境に関する。
デジタル著作権管理(DRM)ライセンスのロバスト(頑強)な技術実行においては、復号化デジタルコンテンツの生ビットストリームへの直接アクセスの回避と、ライセンス実行機構そのものとが可能であることを前提としている。しかし、オープンコンピューティングプラットフォーム(例えば、パーソナルコンピュータ(PC))上においては、これを達成することは困難である。
機密コードおよびデータの機密性を維持するためにPCをロバストにすることが困難であることが分かっている。コード機密性の維持またはデータセキュリティを維持するための現行の方法として、既存のソフトウェアベースのソリューションがある。このソリューションは、アンチデバッギング、インテグリティ監視、および難読化技術に基づいて、リバースエンジニアリングおよび改ざんを阻止しようとするものである。別の技術においては、セキュアなブートプロセスの間のロード時間においてシステムが実行することを望むソフトウェアコードおよび/またはデータ定数の認証を含む。これは、例えば、当業者にとって認識される署名照合技術によって達成され得る。しかし、ロード時間認証技術の場合、欠陥がある。例えば、この技術においては、認証は、セキュアなブートプロセス時において1回のみ行われる。そのため、ロード時間認証技術を用いたシステムは、ランタイムにおいてプログラミング攻撃および/またはデータ破損を受けやすくなる。ここで、ランタイムは、ロード時間の直後(すなわち、セキュアなブートプロセスの後)の期間として認識される。
既存のコンピューティングシステムは、レジスタに保存されたデータの完全性(インテグリティ)の保護を、認証情報ベースのセキュリティシステムを実行することによって行おうとすることが多い。このようなシステムの場合、レジスタ(すなわち、読み出し/書き込み可能なメモリ内の位置)へのアクセスは、認証情報が照合されている機能(すなわち、ソフトウェアプログラム)に限定される。この照合は、コンピューティングシステム内の論理によって達成され得る。しかし、認証情報ベースのセキュリティシステムの場合、複数の欠陥がある。例えば、認証情報ベースのセキュリティシステムは、1つのデータアクセス方針しか実行することができない。具体的には、実行可能な認証情報を有する機能はレジスタ内のデータへのアクセスが許可される一方、実行可能な認証情報を持たない機能は、上記データへのアクセスを拒否される。このシステムの場合、データアクセス機構として認証情報ベースの照合のみに依存しているため、実行可能な認証情報が不正機能によって不適切に入手され、その結果、保護すべきデータへのアクセスを上記不正機能が得るようなシナリオにおいて脆弱である。さらに、これらのシステムの場合、認証情報ベースのデータアクセスは、保護対象となる全てのデータにとって適切なセキュリティ方針であるとの前提にたっている。しかし、異なる種類のデータを異なるアクセス方針で保護することが大抵望ましい。
公知の技術(例えば、上述したもの)は、通常のPC上で実行すべきソフトウェアに実装される場合、DRMシステムにおける利用には不十分であることが多い。リバースエンジニアリングを可能にするための多数のツールが利用可能となっている。
さらに、PCにおいては、オペレーティングシステムの保護アーキテクチャおよびアクセス制御モデルに起因して、クライアントとして機能するDRMコンテンツのためのプラットフォームとして用いるには煩雑になっている。なぜならば、オープンアーキテクチャでは、機密ソフトウェアコードを保護することが困難であるからである。機密性維持のための現行の方法の場合、素人ハッカーに対しては、コンピューターおよび出力オーバーヘッドの大きな犠牲と引き換えに、防御できることができることが分かっている。しかし、プロのハッカーに対しては、高価値財産を防護することは未だ困難である。そのため、機密コードおよびデータの実行のためのパーソナルコンピューティング環境において、セキュアな実行環境を提供することが必要とされている。
本明細書に記載の実施形態は、ハードウェアに基づいて保護された実行環境のために設けられたセキュリティ構成を含む。上記構成により、複数のアプリケーションまたはオンデマンド機密コードを同時に上記セキュアな実行環境へロードすることが可能となる。ランタイム生成されたデータを、外部メモリ内に保存された場合でもセキュアに保護することができる。各メモリコンテクストは別個に管理されるため、各コンテクスト間の機密性が保証される。実行環境は、セキュアな資産管理ユニット(SAMU)のアーキテクチャ詳細を含む。上記SAMUは、ホストプロセッサからのコードまたはデータの機密性を認証および維持するために上記コードまたはデータを暗号化フォーマットでオフロードすることにより、プログラムコードまたはデータのためのセキュアな実行環境を提供する。上記SAMUは、不正防止ソフトウェアのためのプラットフォームを提供することにより消費電力低減を可能にし、また、有効なソフトウェアが取り消される頻度を低減する。また、上記SAMUは、正当なユーザに対しては非侵入型であり、かつ、機密コードのリバースエンジニアリングを困難にするための保護された実行環境を提供する。このようなハードウェアに基づいたセキュリティ構成により、垂直または水平方向の特権違反の回避が促進される。
以下の記載を添付の図面と共に読めば、より詳細な理解が可能となる。
一実施形態によるホストシステムを示す図であり、機密コードがプロセッサからセキュアな資産管理ユニット(SAMU)へとオフロードされる様子を示す図である。 SAMU上位レベルアーキテクチャを示す図である。 マルチアプリケーションSAMUランタイムコンテクスト設定のフロー図である。 SAMUソフトウェアスタックを示す図である。 ランタイムメモリ管理の一例を示す図である。
本出願は、米国非仮出願第12/964,278号全体をあたかも同文献全体が記載されているかのように援用する点に留意されたい。
本明細書中用いられる「プロセッサ」という用語は、以下のうち任意のものを指す:プロセッサ、プロセッサコア、中央処理装置(CPU)、グラフィックス処理装置(GPU)、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、または類似のデバイス。上記プロセッサは、別のデバイス(例えば、一体型ノースブリッジ、アプリケーションプロセッサ(Appsプロセッサ)、CPU、DSP等)の一部を形成し得る。本明細書中用いられるプロセッサコアは、x86、RISC、または他の命令セットコアであり得る。
セキュアな資産管理ユニット(SAMU)は、プロセッサコア内に設けられるように構成されたコンポーネントであるか、または、プロセッサコアと協働して実行するように構成された別個のコンポーネントである。プロセッサコアまたはプロセッサコアとは別個のコンポーネントとして構成された場合、SAMUは、以下のうち少なくとも1つを実行するように構成される。ホストプロセッサから機密コードをオフロードすること、あるいは、メモリ中の機密コードまたはデータを暗号化すること。
上記SAMUは、ハードウェアに基づいた保護された実行環境を提供するように、ハードウェアにおいて実行することができる。このような環境において、機密コードおよびデータをセキュアなメモリにおいて保護することができ、平文形態でキャッシュまたは埋設メモリのみに保存することができる。さらに、デバッギングは、生成側において完全に無効にされ、セキュアなカーネルが実行環境を「所有」および制御し、メモリおよびリソースへのアクセスが全て制御される。上記SAMUは、メモリを上記プロセッサと共有してもよいし、あるいは専用のメモリを有してもよい。
図1Aは、一実施形態によるホストシステム101を示す。この実施形態において、機密コードがプロセッサからSAMUへとオフロードされる。図1Aは、プロセッサ102およびSAMU104を含むシステム101を示す。プロセッサ102およびSAMU104は、システムバスまたは内部バス105を介して接続される。システム101を用いて、セキュアなコードをプロセッサ102からSAMU104へとオフロードする。システム101は、データをピアで交換することが可能な任意のコンピュータシステムであり得る。さらに、システム101は、1つ以上のアプリケーション(図示せず)を含み得る。上記1つ以上のアプリケーション(図示せず)は、セキュアなプロトコルを用いて、プロセッサ102とSAMU104との間のデータ転送を行う。上記アプリケーションは、カーネル空間またはユーザ空間において実行され得る。
プロセッサ102は、システムカーネル(図示せず)において動作するように構成される。プロセッサ102は、外部デバイスとインターフェースで接続して、コンテンツソース(例えば、ブルーレイ(登録商標)ディスク等のコンテンツメディアや、インターネットから等)から、暗号化データおよびメッセージ(すなわち、パケット)を取り出す。プロセッサ102は、復号化および処理対象となる暗号化データをSAMU104へと提供し得る。いくつかのデータセット(例えば、ナビゲーションデータ)をSAMU104からプロセッサ102へと返送して、メディア消費プロセス全体を制御することができる。SAMU104はまた、保護が必要な場合、データを再暗号化フォーマットでプロセッサ102へと返送し得る。
一実施形態において、SAMU104は、外部デバイスへと送られるかまたは外部デバイスから受信したデータの処理を有効にするように構成された処理スタックを含む。よって、システム101が外部デバイスまたはインターネットとの接続を確立すると、ホストプロセッサ102が上記送信および受信したパケットを処理する代わりに、SAMU104は、SAMU104上において実行された処理スタックを介してこの処理機能を提供する。
別の実施形態において、SAMU104は、プロセッサ102の一部であり得る。
SAMU104のアーキテクチャについて、図1Bを参照してさらに詳述する。SAMU104は、セキュアなブートリードオンリーメモリ(ROM)110と、メモリ管理ユニット(MMU)120と、命令キャッシュ(Iキャッシュ)130と、データキャッシュ(Dキャッシュ)140と、メモリ高度暗号化標準(M−AES)コンポーネント150と、インテグリティ照合器(IV)160と、セキュリティアクセラレータ170と、プロセッサコア180と、セキュアなカーネル185と、メモリインターフェース190とを含む。セキュリティアクセラレータ170は、以下のうち少なくとも1つを実行するように構成される。128b/192b/256bAES;セキュアなハッシュアルゴリズム(SHA−1/−2);Rivest、ShamirおよびAdleman(RSA)暗号化;楕円曲線暗号化(ECC)演算;データ暗号化標準(DES);3DES;Rivest暗号化4(RC4);1024b/2048b/3072b冪剰余;または真の乱数生成器の提供。
SAMU104は、複数のプロセッサモード(例えば、シリコン内のブートコードのためのモードを含む)をサポートし得る。他のプロセッサモードは、セキュアなカーネル185によって定義され得る。セキュアなカーネル185は、例えば、カーネルコア機能、カーネルサービス、社内開発されたSAMU104アプリケーション、サードパーティが開発したSAMU104アプリケーション、署名されかつ暗号化されていないSAMU104アプリケーション、または未署名でありかつ暗号化されていないSAMU104アプリケーションを含む。
ブートROM110は、シリコン形態においてブートコードを実行して、デバッグ管理の実行と、所与のカーネルのインテグリティの確認と、メモリAESの設定とを実行した後、(インテグリティ確認を通過した)カーネルへ制御を送るように構成される。ここで、埋設プロセッサは、リセット状態から起動して、ブートコードを実行するように構成される。上記ブートコードは、eフューズ技術に基づいてデバッギング機能を構成または再構成するようにさらに構成される(例えば、全デバッグ機能の生成側へのアクセスを無効にするか、またはeフューズパターンへのアクセスを無効にする。上記eフューズパターンは、製造時においてチップ上へのエッチングまたはハードコーディングコンピュータ論理を用いて注入されるため、チップ製造後は変更不可能となる)。上記ブートコードはまた、SAMU104カーネルの初期化を待機するようにさらに構成される。ここで、SAMUドライバは、セキュアなカーネル185をロード対象として提示する。上記ブートコードはまた、インテグリティ照合器(IV)ハードウェア160を用いて、所与のイメージのインテグリティを検証するようにさらに構成される。IVハードウェア160は、所与のイメージからのハッシュコードを生成し、上記ハッシュコードと、上記イメージに取り付けられたハッシュコードとを比較するように構成され得る。上記生成されたハッシュコードと、上記取り付けられたハッシュコードとが整合した場合、IVハードウェア160はPASSレポートを提供し、そうではない場合、失敗を報告する。
ブートROM110は、インテグリティ確認成功の後にセキュアなカーネル185のための環境を準備し、セキュアなカーネル185へ制御を送るようにさらに構成される。セキュアなカーネル185は、同一のIVハードウェア160を用いて定期的に再検証することができる。
ブートROM110は、シリコン形態内のチップの一部として設けられてもよいし、あるいは外部ROMにセキュアに保存されてもよい。(暗号化および署名された)セキュアなカーネル185は、SAMUドライバの一部として設けられ得る。セキュアなカーネル185は、SAMU内のリソース(セキュリティ方針)に制御アクセスを提供し、SAMUサイクル(ジョブスケジューリング)に制御アクセスを提供し、ホスト上、またはSAMUで実行するSAMUアプリケーション上で実行するSAMUドライバを接続し、SAMUメモリまたは他のコンテクストをオンデマンドで構築/分解するように、構成される。
コード保護を最大化するために、異なるアプリケーションからの異なるSAMUコードを異なるコンテクストで実行する。各コードイメージは、署名ツールによって異なる態様で暗号化およびハッシュされる。署名時において、暗号鍵はランダムに生成される。さらに、インテグリティ確認を暗号化イメージに適用した後、イメージを実行対象として受容する。
M−AES150は、(ハードウェア内のさらなる専用スクランブリングを用いて)変調したAES復号化を読み出し時に実行し、変調したAES暗号化を書き込み時(キャッシュまたは埋設内部メモリ中のコンテンツは平文である)に実行する。あるいは、(MMUを介して構成された)通常のメモリアクセスのためのパススルーとしてバイパスモードが設けられてもよい。メモリAES鍵をブートROMコード又はセキュアなカーネル185によって生成してもよい。メモリAES鍵は、メモリインターフェースを通過する機密コードおよびデータを保護するためのハードウェアに設けられてもよい。コンテンツは、命令キャッシュ130、データキャッシュ140または内部埋設メモリ内のみにおいて平文である。同一のコンテクストについてコードおよびデータ鍵を共有することも可能である。セキュアなカーネル185は、コンテクスト生成時間においてランダムビットを用いてデータ鍵を初期化して、リプレー攻撃を阻止することもできる。
ランタイムに確立された機密データは、通常、ランタイム生成されたランダム鍵によって保護される。上記ランダム鍵の保護の仕方としては、2つの方法がある。1つの方法としては、外部消費(例えば、ホストまたはプロセッサ内の復号化アクセラレータ)の対象となる機密データを標準AESにおいて暗号化する。第2の方法としては、セキュアな実行環境内部に保存されるべき機密データをM−AES150によって暗号化する。M−AES動作においては、その他の場合の標準AESプロセスの前後において、ハードウェア生成変調による変調が行われる。
さらなるセキュリティを提供するための別の実施形態において、SAMUから来たメモリトラフィックを保護するために、M−AES150は、その他の場合の標準AES動作の前後においてハードウェア内のさらなる専用スクランブリングによるさらなる変調を行う。その結果、リバースエンジニアリングが困難となる。そのため、機密コードおよびデータを、既存のフレームバッファメモリまたはシステムメモリ内に保存および保護することが可能となる。異なるランダム鍵をデータセグメント保護のために生成することができ、コードおよびデータ鍵は共有されない。
さらなるセキュリティを提供するための別の実施形態において、署名ツールによって各コードイメージを暗号化およびハッシュする。署名時において、暗号鍵をランダム生成する(プロセスのこの部分は、ベンダーまたはサードパーティソフトウェアプロバイダにおいて行われる)。セキュアなカーネル185のための復号化鍵をブートROM110中のブートコードによって計算および回復し、SAMUアプリケーションのための復号化鍵をカーネルによって計算および回復する。さらに、インテグリティ確認を、IV160によって(暗号化バージョンで)適用し、その後実行対象のイメージが受容される。
MMU120による支援により、コンテクストまたはメモリ管理がセキュアなカーネル185によって行われる。MMU120は、アドレス変換論理を行うように構成される。上記アドレス変換論理は、プロセッサ180の仮想アドレス空間をデバイスアドレス空間(例えば、グラフィックスプロセッサ、デジタル信号プロセッサ、またはFPGA)へとマップする。MMU120は、16個までの非重複アドレスセグメントを4つのAES鍵によってサポートする。1つの可能な配置構成として、セキュアなカーネル185のための2つの鍵(1つはコード用およびもう1つはデータ用)と、SAMUアプリケーションのためのその他の2つの鍵(1つはコード用およびもう1つはデータ用)とを割りあてる配置構成がある。この構成において、同一コンテクストに所属する全データセグメントのうちメモリAES保護すべきもののみを、同一データ鍵によって保護することができる。各セグメントは、以下の要素に合わせて独立的に構成することができる:メモリサイズ、メモリAES保護、実行可能かどうか(例えば、実行フラグが無い)、およびアクセス制御(読み出し/書き込みアクセスのための最小プロセッサモード)。各メモリセグメントは、仮想アドレス空間において隣接しなければならない。全てのセグメントがメモリAES暗号化によって保護されるべきであるわけではない。詳細には、SAMU104と、外部デバイスまたはインターネットとの間の通信のためのバッファは、標準AESのみによって保護可能であるため、M−AES150をオフにした状態で構成するべきである。
セキュアなカーネル185は、MMU120を構成することが可能な唯一のエージェントである。(次のSAMU動作またはアプリケーションを提供するための)新規コンテクストへ切り換える前に、セキュアなカーネル185は、MMU120からの先行コンテクストに所属する全セグメントをアンマップし、MMU120を再構成して、対象コンテクストに所属する全セグメントをマップする。このプロセスを行うために、セキュアなカーネル185は、データキャッシュをフラッシュして、全キャッシュデータをメモリに返送し、メモリAES鍵を対象コンテクスト用のもので更新する必要があり得る。
メモリへのアクセスは、メモリインターフェース190を介して行われる。SAMU104およびその各コンポーネントは、デバイス(例えば、CPU、GPU、DSPまたはFPGAまたは他の同様のデバイスを含むプロセッサ)の観点から通常のクライアントとして扱われる。SAMU104は、機密コードおよびデータに対するメモリ保護を提供する際、M−AES150に依存する。
セキュアなカーネル185は、以下の範囲を提供するためにさらなるセキュリティサービスを含み得る:外部コンポーネントとのセキュアなトンネルを確立すること、デジタル著作権管理(DRM)ブロックとの鍵交換、ライセンス鍵、デバイス鍵またはコンテンツ鍵をアンラップすること、ビットストリームの逆多重化、ビットストリームの復号化または再暗号化、バーチャルマシン(例えば、BD+、ブルーレイ(登録商標)ディスクDRMシステムのコンポーネント)としての動作、または既存の経路を用いた音声/映像(A/V)の加速のためのデータ提出。
セキュアなカーネル185は、ロードおよび制御された後、SAMU実行環境を担当する。セキュリティサービスが(カーネルの一体部分となる代わりに)オンデマンドでロードされた場合、上記カーネルは、オンデマンドコードのインテグリティの確認と、これらのオンデマンドサービスに適した正しい復号化鍵の設定とを担当する。オンデマンドコードのための鍵誘導プロセスは、カーネルエンジニアリングプロセスによって決定され得、製品/デバイス生成または製造技術から変化し得る。(製品/デバイス生成は、デバイス製造を行うためのスケールである。例えば、プロセッサは、90ナノメートル(nm)または65nm技術を用いて製造され得る。)しかし、上記カーネルが鍵誘導アルゴリズムを変更するたびに、ユーザコードのためのオフライン署名ツールを暗号化プロセス内のフローに整合するように変更する必要がある。
プロセッサは、リセットされた後、シリコン内のROMコードからブートする。ブートストラップコードは、所与の暗号化カーネルのインテグリティを調査した後、復号化鍵を回復させ、上記鍵へと制御を転送するように構成される。インテグリティ照合は、IV160内の専用ハードウェア論理によって行われる。セキュアなカーネルのためのオフライン署名ツールは、インテグリティ照合ハードウェアと整合する暗号設定と、ブートROM110中にハードコードされた鍵回復機構とを有する。暗号化または鍵生成のためのハッシュ機能の選択は重要ではなく、一方向AES動作の連鎖法に基づき得る。
SAMU104のアーキテクチャは、暗号化要求に基づいて何百万個の命令を1秒あたりに(MIPS)行うことが可能であり、暗号化加速(例えば、AES、DES、SHAl、および他のアルゴリズム)をサポートし得る。SAMU104アーキテクチャは、以下のうち全てまたは一部をサポートし得る:真の乱数生成器および疑似乱数生成器、セキュアなタイマー、メモリ管理を用いた命令/データキャッシュ、複数の実行モード(または保護レベル)、(カーネルによって構成された)アドレス範囲実行、ブート−ストラップコード検証、およびさらなる開発ツール。
ハードウェアに基づいたページテーブルを用いることにより、セキュリティおよび性能双方が向上する。しかし、ほとんどのオペレーティングシステムによって用いられることが多い4キロ(K)バイトのページサイズをシステムによってサポートするためには、さらなる専用メモリが必要となるため、高コストになり得る。このようなサポートに関する問題は、本明細書に記載されるセキュアな実行ユニットによって正当化される。一実施形態において、1メガ(M)バイトのページサイズを開始点として用いる。ハードウェアページテーブル機構は、1Mバイト〜4ギガ(G)バイトの任意の2のべき乗のページサイズをサポートし得る。あるいは、他のページサイズもサポートされ得る。(例えば、4Kバイト、8Kバイト、16Kバイト、および他の2のべき乗のページサイズ)。
上記ページテーブルは、アドレス変換の他にも、他のセキュリティ特性を含み得る。例えば、上記ページテーブルは、以下のうち1つ以上を示すデータ構造を含み得る:ページ入力が活性であるかまたは無効であるか、ページがデータまたはコードを含むか否か、別個の読み出しアクセスおよび書き込みアクセス制御、メモリAESをオン・オフにするための暗号化フラグ、またはメモリAESが必要な場合の鍵索引。
ページ(またはセグメント)内にコードまたはデータが含まれるか否かを示すページテーブル情報は、大部分がセキュリティ問題であり、複数のコンテクストのサポートにおいて本質的ではないであろう。ページがデータ保存のためのものである旨をカーネルに通知することにより、上記カーネルは、当該ページからのコードを実行する試行を全て捕捉(トラップ)することができる。この情報により、バッファ−オーバーラン攻撃を捕捉するための有効な機構を促進することも支援される。
読み出しおよび書き込みアクセス制御は、ページ(またはセグメント)毎に規定され、当該ページ(またはセグメント)への読み出しおよび/または書き込みアクセスが許可される前に、コード実行中の最小保護リングを指定する。その結果、垂直特権違反が回避される。垂直特権違反は、低レベルの特権が割りあてられたアプリケーション(例えば、ユーザアプリケーション)がより高レベルの特権で実行する別のプロセス(例えば、カーネル)に所属するページへの読み出し/書き込みアクセスを取得する場合に発生する。典型的なプロセッサアーキテクチャにおいては、多様なレベルの保護/特権を用いて、制御機能およびプロセス(例えば、特定のデータ構造またはコードセグメントへアクセスするための特定の(事前規定された)保護レベルを持たなければならないプロセス)を分離および制御する。
暗号化フラグは、メモリインターフェースに対するキャッシュがM−AES150をオンにすることができるか否かを示す。M−AES150は、AES動作の前後に適用されたハードウェア変調を有する。M−AES150によって保護された情報は、セキュアな実行環境および/または環境内部において実行する機密機能のみによって用いられる機密データによって実行されるべきSAMU機密コードの内部において消費されるべきものである。ページテーブル入力において設定された暗号化フラグがマーク付けされたページに対し、ハードウェアは、命令キャッシュまたはデータキャッシュ中への全メモリ読み出し動作に対して復号化を自動的に適用し、キャッシュラインのフラッシュ時において、メモリ書き込みに対して暗号化を適用する。
MMU120における異なるページ入力は、異なる暗号鍵と関連付けられ得る。一実施形態においては、4つの活性暗号鍵が任意の時点においてサポートされ得る(別の実施形態においては、任意の数の鍵がサポートされ得る)。各ページ入力は、暗号化および復号化双方に用いることが可能な主要ハードウェアの索引を指定し得る。その結果、カーネルコード/データおよびユーザコード/データを独立した鍵で保護することが可能になる。ブートコードは、カーネルコード鍵を回復することを担当し、カーネルは、ユーザコード鍵を回復することを担当する。上記カーネルは、全データ鍵のランタイム生成も担当する。
別の実施形態において、上記コード鍵は、これらの機能双方に、それらへの入力部分としてeフューズ値を用いることにより、インテグリティ照合機構中の署名と接続される。上記復号化鍵と、上記インテグリティ照合機構とを接続することにより、SAMU改ざんが困難になる。
最終的に、これら全てのリソース(すなわち、ページテーブル入力およびメモリAES鍵)の構成空間の制御が必要となる。上記構成への読み出し/書き込みアクセスは、制御状態レジスタ中の別個のアクセス制御フィールドによって保護される。コードを適切な保護リング内に配置した後、上記コードにより、これらの構成設定を改変することができる。
このハードウェアに基づいた仮想メモリサポートと、上述の関連付けられたセキュリティ設定とにより、現代のPCベースのオペレーティングシステムと共に用いられる機密コードおよびデータを保護するためのロバストなソリューションが得られる。その結果、ソフトウェアベースの不正防止および難読化に関連する演算および出力/熱オーバーヘッドが無くなる。
図2は、SAMUアーキテクチャを用いた場合の単一のアプリケーションのフロー図である。SAMUのためのバイナリを生成する(ステップ210)。署名ツール内においてランダム鍵が生成される(ステップ215)。上記バイナリは、上記SAMUのために再暗号化され(ステップ220)、セキュアなカーネルを例えばGPUの表示ドライバの一部として発送することを含む。ユーザは、セキュアなカーネル(表示ドライバ)およびセキュアなアプリケーションを共に搬送するユーザのコンピュータ/システム上にドライバおよび上記アプリケーションをインストールし得る(ステップ225)。ブート時間において、セキュアなカーネル185がSAMUハードウェアへと提示される(ステップ230)。上記セキュアなカーネルは、ブートROM110によってインテグリティについて照合および検証される(ステップ235)。ブートROM110は、セキュアなカーネル185のインテグリティを検証(ステップ240)した後、(暗号化コードのオンデマンド復号化を行うための)メモリAES内の復号化鍵を構成し、制御をセキュアなカーネル185へと送る。上記セキュアなカーネルが検証に失敗した場合(ステップ245)、SAMUサービスはさらされず、上記アプリケーションはソフトウェアベースの保護スキームに後退する。検証が成功した場合、上記セキュアなカーネルのための復号化鍵がブートROM110によって構成される(ステップ250)。
アプリケーションがユーザによって起動される(ステップ255)。アプリケーションが起動すると、アプリケーションは、SAMUサービスの存在を検出し(ステップ260)、SAMUから提供された保護された実行環境を利用する準備をする。アプリケーションは、セキュアなSAMUアプリケーションを、コンテクスト生成のためのセキュアなカーネルへ提供する(ステップ265)。SAMUアプリケーションは、セキュアなカーネル185によってインテグリティについて検証される(ステップ270)。セキュアなカーネル185は、SAMUアプリケーションのインテグリティについて確認するように、IVハードウェア160を構成する(ステップ275)。インテグリティ検証の成功後、SAMUアプリケーションのための復号化鍵が、セキュアなカーネル185によって構成される(ステップ280)。IVハードウェア160がSAMUアプリケーションを検証できない場合(ステップ275)、SAMUアプリケーションは実行を許可されず、対応する失敗メッセージがアプリケーションへ返送される(ステップ285)。この場合、アプリケーションは、ソフトウェアベースの保護技術に後退することを選択することができる。
上述したようなハードウェア加速のためのSAMUに対するコードまたはデータのオフロードは、復号化のオフロードおよび3Dレンダリングのオフロードに類似する。例えば、アプリケーションは、APIを用いて、良好に規定されたワークアイテムをGPUへとオフロードする。
SAMU104は、セキュアなブート、インテグリティ確認、実行暗号化コード、機密機能によって用いられる機密データについてのメモリ保護を提供し、チップ製造におけるデバッギングを無効にすることにより、セキュアな実行環境を提供する。上記セキュアな環境内において、少なくとも異なる2種類のコードがある(例えば、カーネルコードまたはファームウェアコード、およびブートストラップコード)。
上記ブートストラップコードは、セキュアな保存部中に暗号化された態様で保存され、最終チップと共に発送される。上記ブートストラップコードは、ブート時において主に以下の3つのサービスを提供する:チップ製造のためのデバッギングの無効、SAMUドライバから提供されたカーネルイメージのインテグリティの確認、および所与のカーネルのために復号化鍵のコンピューティングを行った後、上記カーネルへ制御を送ること。
復号化鍵は、ブートプロセスの一部として計算され、カーネルイメージのインテグリティの照合が成功した後のみに用いられる。上記復号化鍵は、以下の複数の入力の関数である:(例えば、チップ製造後に変更ができないように、チップへのエッチングまたはコンピュータ論理のハードコーディングを含む)製造時において注入されたeフューズパターン、(署名されたカーネルイメージの一部として保存された)カーネル2値署名において生成されたランダムパターン、およびブート時において上記SAMUドライバから提供されたソフトウェアパラメータ。カーネル復号化鍵のコンピューティングにおいては、シリコン(例えば、秘密乗算器、DSPブロック、プロセッサ、高速IO論理、および埋設メモリ)に埋設された秘密機能へのアクセスも行われる。
カーネルコードは、SAMU104のためのマネージャとして機能し、サービスをSAMUドライバへ提供する。上記カーネルコードは、製造業者カーネル証明書を含み得、ブートローダによってインテグリティが実行される。上記カーネルコードは、SAMUリソースを制御し、SAMUおよびプロセッサ双方に対するレジスタレベルアクセスを有する。また、上記カーネルコードは、ランタイムにおいてオンデマンドサービスを提供するためのさらなるアプリケーションコードをロードし得る。セキュアなカーネル185は、ドライバ呼び出しを取り扱い、ファームウェアルーチンを相応に呼び出す。
図3は、SAMUソフトウェアスタック300を示す。ホストアプリケーション310およびSAMUドライバ320は、ホストプロセッサ360(例えば、パーソナルコンピュータ、スマートフォン)上に常駐する。ホストアプリケーション310から来たリクエストに基づいて、SAMUドライバ320はコマンド330を発行し、対応するデータ340をSAMUプロセッサ370のセキュアなカーネル380(例えば、プロセッサコア内またはGPU内のもの)へと転送する。セキュアなカーネル380は、複数のアプリケーションプロセス(例えば、SAMUアプリケーション)からのデータを受信し得る。このデータは、コード、アプリケーションデータ、および各鍵および(署名ツールによって埋設された)署名を含み得る。セキュアなカーネル380は、処理されたデータ340をSAMUドライバ320へと返送し得、その後SAMUドライバ320は上記情報をホストアプリケーション310へと送る。あるいは、セキュアなカーネル380は、終了コード350をSAMUドライバ320へと送り得、終了コード350は最終的には処理対象としてホストアプリケーション310へ送られる。
図4は、SAMUアーキテクチャにおけるランタイムメモリ管理の例を示す。SAMU仮想アドレス410は、MMU120内の仮想アドレスページテーブル入力(D0〜D15)へとマップされ、仮想アドレスページテーブル入力(D0〜D15)は、アドレスをデバイスアドレス空間420(例えば、GPUメモリ、DSPメモリ、FPGAメモリ、または他の類似のデバイス)内の入力へマップする。
一実施形態において、仮想アドレスページテーブルは、MMU120のハードウェアレジスタに保存され、外部保存に依存するのではなく、プロセッサ180へのみアクセスが可能となる。このスキームの1つの特徴は、複数のアプリケーションの同時管理が可能な点にある。この例において、(SAMUアドレス空間410およびデバイスアドレス空間420内の)SA2と、(デバイスアドレス空間420内の)SA1とは、少なくとも2つのアプリケーションを示し、SA2は、そのときにSAMUによってサービスされる活性コンテクストである。
以下、ページテーブル入力のアプリケーションについて説明する。ページテーブル入力を活性または非活性として表記して、ハードウェアに基づいたページ変換を行う。異なるコンテクストは、典型的には、異なる数のページテーブル入力を消費する。なぜならば、全コンテクストが同一数のメモリセグメントを利用しなければならない場合、ソフトウェア開発の観点からみて制限が高すぎるからである。入力毎のフラグにより、メモリ管理におけるカーネルの柔軟性が得られる。また、入力毎のフラグにより、水平特権違反も回避され得る。水平特権違反が発生する場合としては、同一保護リングが割りあてられた2つのコンテクスト(リング値は、SAMUアドレス空間410、SRBに示すようにSAMUリングバッファ中に保存される)が別のコンテクストに所属するページへのアクセスを得た場合がある。
本明細書に記載される実施形態においては、SAMUを用いて、ホストプロセッサからの機密コードをオフロードする。上記プロセッサは、SAMU上において実行する機密コードへ機密データを保護された態様で送る。貴重なコンテンツを取り扱うために、SAMUは、コンテンツコピー保護、逆多重化、および音声および/または映像パケットの抽出、音声および/または映像主要ストリームの構築、再暗号化を適用した後のホストおよび/またはさらなる処理のためのコーデック復号化への制御返送を提供し得る。
SAMUによって提供されるセキュアな実行環境を用いて、高価値コンテンツ消費のために確立されたコピー保護スキームと関連付けられた機密コードを実行することができる。セキュアな実行が必要となり得る環境の一例として、ブルーレイ(登録商標)ディスクプレーヤまたはホスト上において実行するブルーレイ(登録商標)プレーヤアプリケーションがある。ブルーレイ(登録商標)ディスクプレーヤは、パーソナルコンピュータまたはユーザデバイスの一部であり得る。ソフトウェアベンダーは、ブルーレイ(登録商標)ディスクを実行するためのセキュアな実行環境を必要とする。なぜならば、上記ディスクは、コンテンツ制作者がコンテンツ保護のために用いたロバストなコピー保護スキームと共に送られるからである。上記SAMUは、このような環境を提供する。ブルーレイ(登録商標)プレーヤは、コンテンツ保護機能(例えば、AACSおよびBD+機能)をオフロードして、セキュアな環境上において実行させることができる。上記保護されたブルーレイ(登録商標)コンテンツは、光ディスクからロードされるが、復号化動作および逆多重化動作を行う際には、上記セキュアな環境内のAACSおよびBD+機能に依存する。映像ビットストリームを上記セキュアな環境においてAESによって再暗号化して、映像復号器によって消費することができる。音声ビットストリームおよび他のナビゲーションデータをAESによって再暗号化して、プレーヤによって消費することができる。
しかし、当業者であれば、SAMUの用途はブルーレイ(登録商標)ディスクプレーヤに限定されないことを理解する。SAMUは、他のハードウェアプラットフォーム(例えば、携帯電話、ハンドヘルドアクセサリ、測位システムなど)においても利用可能である。
上記実施形態において、SAMUは、プロセッサ中心のセキュリティプラットフォームである。プロセッサは、別のデバイス(例えば、一体型ノースブリッジ、アプリケーションプロセッサ、中央処理装置、デジタル信号プロセッサ)の一部を形成し得る。SAMUはプロセッサの一部であるため、コーデック加速が可能となり、SAMUから出てきたビットストリームを保護するための鍵(単数または複数)をコーデックアクセラレータへの入力として用いることができ、上記鍵は、プロセッサから退出することなくSAMUからコーデックアクセラレータへと移動することができる。このような構造および動作により、高価値コンテンツ消費のためのセキュリティの向上が可能となる。
SAMUカーネルの一部として提供されたセキュリティサービスを検出および利用することにより、機密コードの実行をプロセッサからSAMUへと移動させることができる。あるいは、認証ドライバへのコードを署名されファームウェアとして半導体製造業者から提示することにより、機密コードをプロセッサからSAMUへと移動することも可能である。また、SAMUを用いて、他の暗号動作(例えば、秘密鍵へのアクセスが必要な場合における認証およびデジタル署名の生成)をオフロードすることもできる。これらの動作をSAMUへと移動することにより、秘密鍵を暗号化された態様でホストシステム中に保存することができ、上記秘密鍵の平文値は、保護された実行環境のみにおいて回復および消費される。
SAMUの利用により、全体的なシステムロバスト性および出力効率の向上が可能となる。SAMUは、信頼性確認のための単一ポイントを処理アーキテクチャ(例えば、プロセッサ、GPU、CPU、DSPまたはFPGA)内に提供する。SAMUは、暗号化および署名されたカーネルコードのみからブートし、暗号化および署名されたコードのみを実行する。SAMUハードウェアは、未署名でありかつ暗号化されていない(すなわち、未暗号化の)コードを実行し得る。SAMUは、ハードウェアに基づいたセキュアなブートおよびメモリ保護を備えており、ホストプロセッサから提供されたオンデマンドコードを実行することができる。
一実施形態において、デバイス(例えば、GPUプラットフォーム)内の32ビットRISCプロセッサを統合し、上記プロセッサにセキュリティ論理を付加することにより、出力効率が良くかつコスト効率の良いセキュアな実行環境が確立される。この環境における実行対象として2値がランダム生成された鍵によって暗号化され、オフラインツールによって同時署名される。保護された2値は、暗号化形態でドライバおよび/またはアプリケーションへ提供され、メモリにロードされた際にもこの形態のままである。機密コードがオンデマンドで命令キャッシュ中へとロードされる際、復号化が「オンザフライ」で行われる。このような構成により、PC中において利用可能な既存のメモリを用いて機密情報を保存することが可能になる。
機密コードは、オフライン署名ツールによって保護される。機密コードには、リソースアクセスを管理するカーネルと、実際のセキュリティ関連機能をホストアプリケーションへ提供するユーザコードとの2種類が少なくともある。SAMU製造業者は上記カーネルを所有し得るが、ユーザコードは、(SAMU用のアプリケーションを構築する)SAMU製造業者または外部ソフトウェアベンダーのいずれかから来る。これらの種類の機密コードのために、別個の署名ツールを開発してもよい。
また、SAMU製造業者が開発ツールをソフトウェアベンダーに提供した場合またはSAMU製造業者およびソフトウェアベンダー双方が分割スキームおよび関連APIを開発した場合、SAMUのコア機能をソフトウェアベンダーに提供することもできる。これらの状況において、SAMU製造業者またはソフトウェアベンダーのうちいずれかが、オンデマンドファームウェアコードを生成し得る。
さらに、本明細書に記載の実施形態により、研究および開発リソースのランダム化が低減し、収益からの小売り圧力が軽減し、また、パーソナルコンピュータプラットフォーム上における高価値ブロードキャストが可能となる。高価値コンテンツを挙げると、例えば、デジタル映像ブロードキャストハンドヘルド、ARIBがある。本明細書に記載の実施形態により、難読化された不正防止ソフトウェアの利用に費やされる出力が低減し、有効なソフトウェアの取り消し頻度が低減し、顧客にとって煩わしさが比較的少ないかまたはほとんど無くなるため、コンテンツ所有者の満足度も増す。
本明細書に記載の実施形態は、プロセッサコア内において実行され得る。上記プロセッサコアは、CPU、DSP、FPGA、GPUまたはこれらの組み合わせとして実現され得る。当業者であれば、プロセッサコアが別のデバイス(例えば、一体型ノースブリッジ、アプリケーションプロセッサ、CPU、DSP)の一部を形成し得ることを理解する。
適切なプロセッサを例示的に挙げると、汎用プロセッサ、特殊目的用プロセッサ、従来のプロセッサ、デジタル信号プロセッサ(DSP)、複数のマイクロプロセッサ、DSPコアと関連付けられた1つ以上のマイクロプロセッサ、コントローラ、マイクロコントローラ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)回路、他の任意の種類の集積回路(IC)および/または状態機械がある。
さらに、本発明は、ハードウェア、ソフトウェア、ファームウェアまたはこれらの任意の組み合わせとして実現され得る。本発明の実施形態またはその一部は、多数のプログラミング言語(例えば、ハードウェア記述言語(HDL)、アセンブリ言語、C言語、ネットリスト)で符号化され得る。例えば、HDL(例えば、Verilog)を用いて、本発明の1つ以上の実施形態の局面を実行するデバイス(例えば、プロセッサ、特定用途向け集積回路(ASIC)、および/または他のハードウェア要素)の合成、シミュレートおよび製造を行うことができる。Verilogコードを用いて、SAMUアプリケーションが可能なプロセッサのモデル化、設計および/または実行を行うことができる。
例えば、Verilogを用いて、レジスタ転送レベル(RTL)記述論理を生成することができる。この論理は、SAMUアプリケーションのための命令を実行することができる。次に、上記論理のRTL記述を用いて、所望の論理またはデバイスの製造に用いられるデータ(例えば、グラフィック設計システム(GDS)またはGDSIIデータ)を生成することができる。Verilogコード、RTL記述および/またはGDSIIデータは、コンピュータで読み出し可能な媒体上に保存され得る。本発明の局面を実行するために上記論理によって実行される命令は、多様なプログラミング言語(例えば、CおよびC++)によって符号化され得、オブジェクトコードとしてコンパイルされることにより、論理または他のデバイスによって実行され得る。
本発明の局面は、全体的または部分的に、コンピュータで読み出し可能な媒体上に保存され得る。上記コンピュータで読み出し可能な媒体上に保存された命令は、本発明を全体的または部分的に行うようにプロセッサを適合させることもできるし、あるいは、本発明を全体的または部分的に実行するように特定に適合されたデバイス(例えば、プロセッサ、ASICまたは他のハードウェア)を生成するように適合させることもできる。これらの命令を用いて、マスクワーク/フォトマスクの生成を通じて製造プロセスを最終的に構成して、本明細書に記載される本発明のハードウェアデバイスを実現する局面を得ることができる。

Claims (22)

  1. 別個のプログラムコードまたはデータの複数のインスタンスのためのセキュアな実行環境を提供するための方法であって、
    セキュアな資産管理ユニット(SAMU)が、別個のコードまたはデータの複数のインスタンスを、ホストプロセッサから前記SAMUへ暗号化フォーマットでオフロードして、前記別個のコードまたはデータの複数のインスタンスの機密性を認証および維持するステップであって、前記複数のインスタンスは複数のアプリケーションに関連し、前記SAMUは、前記複数のアプリケーションを同時に管理し、且つ、前記暗号化フォーマットの復号化フォーマットを提供し、前記ホストプロセッサは、暗号化フォーマットの前記データまたはコードを、外部デバイスと接続したインタフェースを介して、コンテンツソースから最初に取り出すステップと、
    前記SAMUが、前記データの保護が必要な場合には、前記データを再暗号化フォーマットで前記SAMUから前記ホストプロセッサへ返送し、前記データの保護が必要でない場合には、前記データを復号化フォーマットで前記SAMUから前記ホストプロセッサへ返送するステップであって、前記データの各々に関連する所与のフィールドが保護要求を示すステップと、
    を含む、方法。
  2. 前記オフロードするステップは、前記別個のコードまたはデータの複数のインスタンスの各インスタンスについて、署名ツール内で生成されたランダム鍵によって暗号化2値ブートイメージを生成するステップを含む、請求項1に記載の方法。
  3. 前記暗号化2値ブートイメージは、前記SAMUのために暗号化され、前記SAMU用のセキュアなカーネルおよびセキュアなアプリケーションとして提供される、請求項2に記載の方法。
  4. ユーザは、前記暗号化2値ブートイメージを前記ホストプロセッサにインストールし、前記暗号化2値ブートイメージをオンデマンドで前記SAMUに提供する、請求項3に記載の方法。
  5. 前記暗号化2値ブートイメージをインテグリティについて検証した後に、前記SAMUと共に用いられる復号化鍵を、ブートリードオンリーメモリ(ROM)を用いて構成するステップ、
    をさらに含む、請求項4に記載の方法。
  6. 前記SAMUと共に用いられる復号化鍵を、前記ブートROMによって生成するステップと、
    前記ブートROMが、前記暗号化2値ブートイメージのインテグリティの検証に成功したという肯定的な検証に応じて、前記暗号化2値ブートイメージに制御を送るステップと、
    をさらに含む、請求項5に記載の方法。
  7. 肯定的な有効化および前記セキュアなカーネルの実行に応じて、コンテンツへのアクセスを提供するためのアプリケーションは、前記SAMUハードウェアの利用可能性を検出し、前記セキュアなカーネルは、前記アプリケーションについてのコンテクストを生成して、前記アプリケーションのインテグリティを検証する、請求項6に記載の方法。
  8. 前記アプリケーション用の前記別個のコードまたはデータの複数のインスタンスの各々のコード復号化鍵は、カーネルイメージと共に生成された前記コンテクストと共に用いられるための肯定的な検証に応じて、前記セキュアなカーネルによって復元される、請求項7に記載の方法。
  9. 前記別個のコードまたはデータの複数のインスタンスの各々の前記セキュアなカーネルにおいて、前記カーネルイメージの肯定的な検証に応じて、前記アプリケーション用のデータ暗号鍵をランダムに生成するステップ、
    をさらに含む、請求項8に記載の方法。
  10. 前記暗号化2値ブートイメージのインテグリティの検証に失敗したという否定的な検証に応じて、前記ブートROMによってSAMUサービスがさらされず、前記アプリケーションは、SAMUハードウェアベースの保護された実行環境の代わりに、ソフトウェアベースの保護スキームに移行する、請求項5に記載の方法。
  11. 別個のプログラムコードまたはデータの複数のインスタンスのためのセキュアな実行ユニットを提供するためのシステムであって、
    コードまたはデータを含む複数のアプリケーションを実行し、かつ暗号化フォーマットのコードまたはデータを、外部デバイスと接続したインタフェースを介して、コンテンツソースから取り出すように構成されたホストプロセッサと、
    プログラムコードを実行するように構成されたセキュアな資産管理ユニット(SAMU)であって、前記ホストプロセッサに接続されており、別個のコードまたはデータの複数のインスタンスを、前記ホストプロセッサから暗号化フォーマットでオフロードして、前記別個のコードまたはデータの複数のインスタンスの機密性を認証および維持するように構成されている、セキュアな資産管理ユニット(SAMU)とを含み、
    前記複数のインスタンスは複数のアプリケーションに関連し、前記SAMUは、前記複数のアプリケーションを同時に管理し、且つ、前記暗号化フォーマットの復号化フォーマットを提供し、前記SAMUは、前記データの保護が必要な場合には、前記データを再暗号化フォーマットで前記ホストプロセッサへ返送し、前記データの保護が必要でない場合には、前記データを復号化フォーマットで前記ホストプロセッサへ返送し、前記データの各々に関連する所与のフィールドが保護要求を示す、
    システム。
  12. 前記SAMUは、前記別個のコードまたはデータの複数のインスタンスをオフロードすることの一部として、署名ツール内で生成されたランダム鍵によって暗号化2値ブートイメージを生成するように構成されている、請求項11に記載のシステム。
  13. 前記暗号化2値ブートイメージは、前記SAMUのために暗号化され、SAMUのためのセキュアなカーネルおよびセキュアなアプリケーションとして提供される、請求項12に記載のシステム。
  14. ユーザは、前記暗号化2値ブートイメージを前記ホストプロセッサにインストールし、前記暗号化2値ブートイメージを前記SAMUへオンデマンドで提供する、請求項12に記載のシステム。
  15. 前記SAMUは、前記暗号化2値ブートイメージをインテグリティについて検証した後、前記SAMUと共に用いられる復号化鍵をブートリードオンリーメモリ(ROM)を用いて構成するようにさらに構成されている、請求項14に記載のシステム。
  16. 前記ブートROMは、前記SAMUと共に用いられる復号化鍵の生成と、前記暗号化2値ブートイメージのインテグリティの検証に成功したという肯定的な検証に応じて前記暗号化2値ブートイメージへの制御送りとを行うようにさらに構成されている、請求項15に記載のシステム。
  17. 前記セキュアなカーネルの肯定的な検証および実行に応じて、コンテンツへのアクセスを提供するためのアプリケーションは、前記SAMUハードウェアの利用可能性を検出し、前記セキュアなカーネルは、前記アプリケーションのためのコンテクストを生成して、前記アプリケーションのインテグリティを検証する、請求項16に記載のシステム。
  18. 前記アプリケーションのための前記別個のコードまたはデータの複数のインスタンスの各々に対するコード復号化鍵は、カーネルイメージと共に生成された前記コンテクストと共に用いられるための肯定的な検証に応じて、前記セキュアなカーネルによって回復される、請求項17に記載のシステム。
  19. 前記カーネルイメージの肯定的な検証に応じて、前記別個のコードまたはデータの複数のインスタンスの各々の前記セキュアなカーネルにおいて、前記アプリケーション用のデータ暗号鍵をランダムに生成するように構成されている、請求項18に記載のシステム。
  20. 前記暗号化2値ブートイメージのインテグリティの検証に失敗したという否定的な検証に応じて、SAMUサービスはさらされず、前記アプリケーションは認証のためにソフトウェアベースの保護スキームに移行する、請求項15に記載のシステム。
  21. 1つ以上のプロセッサによって実行される1組の命令を記憶する、コンピュータで読み出し可能な非一時的な記憶媒体であって、前記1組の命令は、セキュアな資産管理ユニット(SAMU)の製造を容易にするためのものであり、前記SAMUは、
    プログラムコードを実行することと、
    別個のコードまたはデータの複数のインスタンスを、暗号化フォーマットでホストプロセッサからオフロードして、前記別個のコードまたはデータの複数のインスタンスの機密性を認証および維持することであって、前記複数のインスタンスは複数のアプリケーションに関連し、前記SAMUは、前記複数のアプリケーションを同時に管理し、且つ、前記暗号化フォーマットの復号化フォーマットを提供し、前記SAMUは、前記データの保護が必要な場合には、前記データを再暗号化フォーマットで前記ホストプロセッサへ返送し、前記データの保護が必要でない場合には、前記データを復号化フォーマットで前記ホストプロセッサへ返送し、前記データの各々に関連する所与のフィールドが保護要求を示すことと、
    を行うように構成されている、
    コンピュータで読み出し可能な非一時的な記憶媒体。
  22. 前記命令はハードウェア記述言語(HDL)命令であり、デバイスの製造に用いられる、請求項21に記載のコンピュータで読み出し可能な記憶媒体。
JP2013535046A 2010-10-20 2011-10-19 多ユーザ機密コードおよびデータを保護するためのアーキテクチャを含む方法および装置 Active JP5537742B2 (ja)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US40504510P 2010-10-20 2010-10-20
US40505410P 2010-10-20 2010-10-20
US61/405,045 2010-10-20
US61/405,054 2010-10-20
US12/964,278 US8904190B2 (en) 2010-10-20 2010-12-09 Method and apparatus including architecture for protecting sensitive code and data
US12/964,278 2010-12-09
US12/975,555 2010-12-22
US12/975,555 US8489898B2 (en) 2010-10-20 2010-12-22 Method and apparatus for including architecture for protecting multi-user sensitive code and data
PCT/US2011/056902 WO2012054615A1 (en) 2010-10-20 2011-10-19 Method and apparatus including architecture for protecting multi-user sensitive code and data

Publications (3)

Publication Number Publication Date
JP2013541783A JP2013541783A (ja) 2013-11-14
JP2013541783A5 JP2013541783A5 (ja) 2014-03-27
JP5537742B2 true JP5537742B2 (ja) 2014-07-02

Family

ID=45973980

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2013535046A Active JP5537742B2 (ja) 2010-10-20 2011-10-19 多ユーザ機密コードおよびデータを保護するためのアーキテクチャを含む方法および装置
JP2013535042A Active JP5670578B2 (ja) 2010-10-20 2011-10-19 機密コードおよびデータを保護するためのアーキテクチャを含む方法および装置

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2013535042A Active JP5670578B2 (ja) 2010-10-20 2011-10-19 機密コードおよびデータを保護するためのアーキテクチャを含む方法および装置

Country Status (6)

Country Link
US (2) US8904190B2 (ja)
EP (2) EP2630608B1 (ja)
JP (2) JP5537742B2 (ja)
KR (2) KR101397637B1 (ja)
CN (2) CN103210396B (ja)
WO (2) WO2012054615A1 (ja)

Families Citing this family (175)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8904190B2 (en) * 2010-10-20 2014-12-02 Advanced Micro Devices, Inc. Method and apparatus including architecture for protecting sensitive code and data
US10511630B1 (en) 2010-12-10 2019-12-17 CellSec, Inc. Dividing a data processing device into separate security domains
US9569633B2 (en) * 2012-06-29 2017-02-14 Intel Corporation Device, system, and method for processor-based data protection
WO2014022755A2 (en) * 2012-08-02 2014-02-06 Cellsec Limited Automated multi-level federation and enforcement of information management policies in a device network
US10305937B2 (en) 2012-08-02 2019-05-28 CellSec, Inc. Dividing a data processing device into separate security domains
US9294508B2 (en) 2012-08-02 2016-03-22 Cellsec Inc. Automated multi-level federation and enforcement of information management policies in a device network
US9703945B2 (en) 2012-09-19 2017-07-11 Winbond Electronics Corporation Secured computing system with asynchronous authentication
US9507540B1 (en) * 2013-03-14 2016-11-29 Amazon Technologies, Inc. Secure virtual machine memory allocation management via memory usage trust groups
US11669441B1 (en) 2013-03-14 2023-06-06 Amazon Technologies, Inc. Secure virtual machine reboot via memory allocation recycling
US9323552B1 (en) 2013-03-14 2016-04-26 Amazon Technologies, Inc. Secure virtual machine memory allocation management via dedicated memory pools
US9247316B2 (en) * 2013-04-23 2016-01-26 Microsoft Technology Licensing, Llc Protected media decoding using a secure operating system
US9495544B2 (en) 2013-06-27 2016-11-15 Visa International Service Association Secure data transmission and verification with untrusted computing devices
KR101471589B1 (ko) * 2013-08-22 2014-12-10 (주)잉카엔트웍스 공통중간언어 기반 프로그램을 위한 보안 제공 방법
US9455962B2 (en) 2013-09-22 2016-09-27 Winbond Electronics Corporation Protecting memory interface
US9343162B2 (en) 2013-10-11 2016-05-17 Winbond Electronics Corporation Protection against side-channel attacks on non-volatile memory
US9830456B2 (en) * 2013-10-21 2017-11-28 Cisco Technology, Inc. Trust transference from a trusted processor to an untrusted processor
US20150121054A1 (en) * 2013-10-31 2015-04-30 Advanced Micro Devices, Inc. Platform Secure Boot
EP3087520A4 (en) * 2013-12-24 2017-08-16 Intel Corporation Content protection for data as a service (daas)
US9318221B2 (en) 2014-04-03 2016-04-19 Winbound Electronics Corporation Memory device with secure test mode
WO2015154066A1 (en) 2014-04-04 2015-10-08 David Goldschlag Method for authentication and assuring compliance of devices accessing external services
US9438627B2 (en) 2014-06-11 2016-09-06 International Business Machines Corporation Shared security utility appliance for secure application and data processing
US9430619B2 (en) 2014-09-10 2016-08-30 Microsoft Technology Licensing, Llc Media decoding control with hardware-protected digital rights management
US9830289B2 (en) 2014-09-16 2017-11-28 Apple Inc. Methods and apparatus for aggregating packet transfer over a virtual bus interface
US9715402B2 (en) 2014-09-30 2017-07-25 Amazon Technologies, Inc. Dynamic code deployment and versioning
US9323556B2 (en) 2014-09-30 2016-04-26 Amazon Technologies, Inc. Programmatic event detection and message generation for requests to execute program code
US9830193B1 (en) 2014-09-30 2017-11-28 Amazon Technologies, Inc. Automatic management of low latency computational capacity
US9678773B1 (en) 2014-09-30 2017-06-13 Amazon Technologies, Inc. Low latency computational capacity provisioning
US9146764B1 (en) 2014-09-30 2015-09-29 Amazon Technologies, Inc. Processing event messages for user requests to execute program code
US10048974B1 (en) 2014-09-30 2018-08-14 Amazon Technologies, Inc. Message-based computation request scheduling
US9600312B2 (en) 2014-09-30 2017-03-21 Amazon Technologies, Inc. Threading as a service
IL234956A (en) 2014-10-02 2017-10-31 Kaluzhny Uri Data bus protection with enhanced key entropy
US9971397B2 (en) 2014-10-08 2018-05-15 Apple Inc. Methods and apparatus for managing power with an inter-processor communication link between independently operable processors
CN104331470B (zh) * 2014-10-31 2017-12-05 深圳市东信时代信息技术有限公司 基于缓存机制的数据处理方法及系统
EP3224759B8 (en) 2014-11-26 2019-06-19 Hewlett-Packard Development Company, L.P. In-memory attack prevention
US9858429B2 (en) * 2014-12-01 2018-01-02 Samsung Electronics Co., Ltd. Methods of data transfer in electronic devices
US9413626B2 (en) 2014-12-05 2016-08-09 Amazon Technologies, Inc. Automatic management of resource sizing
US9400674B2 (en) 2014-12-11 2016-07-26 Amazon Technologies, Inc. Managing virtual machine instances utilizing a virtual offload device
US9886297B2 (en) 2014-12-11 2018-02-06 Amazon Technologies, Inc. Systems and methods for loading a virtual machine monitor during a boot process
US9424067B2 (en) 2014-12-11 2016-08-23 Amazon Technologies, Inc. Managing virtual machine instances utilizing an offload device
US9292332B1 (en) 2014-12-11 2016-03-22 Amazon Technologies, Inc. Live updates for virtual machine monitor
US9535798B1 (en) 2014-12-19 2017-01-03 Amazon Technologies, Inc. Systems and methods for maintaining virtual component checkpoints on an offload device
US10706182B2 (en) * 2014-12-19 2020-07-07 Private Machines Inc. Systems and methods for using extended hardware security modules
US9733967B2 (en) 2015-02-04 2017-08-15 Amazon Technologies, Inc. Security protocols for low latency execution of program code
US9588790B1 (en) 2015-02-04 2017-03-07 Amazon Technologies, Inc. Stateful virtual compute system
KR102324336B1 (ko) * 2015-03-20 2021-11-11 한국전자통신연구원 사용자 장치 및 그것에 대한 무결성 검증 방법
US10211985B1 (en) * 2015-03-30 2019-02-19 Amazon Technologies, Inc. Validating using an offload device security component
US9667414B1 (en) 2015-03-30 2017-05-30 Amazon Technologies, Inc. Validating using an offload device security component
US10243739B1 (en) 2015-03-30 2019-03-26 Amazon Technologies, Inc. Validating using an offload device security component
JP6895666B2 (ja) 2015-04-07 2021-06-30 ランセーフ セキュリティー,インク. バイナリ及びメモリ多様性による難読化システム及び方法関連出願の相互参照
US9785476B2 (en) 2015-04-08 2017-10-10 Amazon Technologies, Inc. Endpoint management system and virtual compute system
US9930103B2 (en) 2015-04-08 2018-03-27 Amazon Technologies, Inc. Endpoint management system providing an application programming interface proxy service
JP2018514868A (ja) * 2015-04-30 2018-06-07 マイクロチップ テクノロジー インコーポレイテッドMicrochip Technology Incorporated 改良された命令セットを有する中央処理ユニット
KR101658641B1 (ko) * 2015-06-12 2016-09-22 서울대학교산학협력단 하드웨어 기반의 커널 코드 삽입 공격 탐지 장치 및 그 방법
US10042794B2 (en) 2015-06-12 2018-08-07 Apple Inc. Methods and apparatus for synchronizing uplink and downlink transactions on an inter-device communication link
US10089500B2 (en) * 2015-09-25 2018-10-02 Intel Corporation Secure modular exponentiation processors, methods, systems, and instructions
US10142101B2 (en) * 2015-09-29 2018-11-27 Intel Corporation Hardware enforced one-way cryptography
US9928108B1 (en) 2015-09-29 2018-03-27 Amazon Technologies, Inc. Metaevent handling for on-demand code execution environments
US10042660B2 (en) 2015-09-30 2018-08-07 Amazon Technologies, Inc. Management of periodic requests for compute capacity
US9894061B2 (en) 2015-10-16 2018-02-13 International Business Machines Corporation Method for booting and dumping a confidential image on a trusted computer system
US10754701B1 (en) 2015-12-16 2020-08-25 Amazon Technologies, Inc. Executing user-defined code in response to determining that resources expected to be utilized comply with resource restrictions
US10013267B1 (en) 2015-12-16 2018-07-03 Amazon Technologies, Inc. Pre-triggers for code execution environments
US9811434B1 (en) 2015-12-16 2017-11-07 Amazon Technologies, Inc. Predictive management of on-demand code execution
US9910713B2 (en) 2015-12-21 2018-03-06 Amazon Technologies, Inc. Code execution request routing
US10002026B1 (en) 2015-12-21 2018-06-19 Amazon Technologies, Inc. Acquisition and maintenance of dedicated, reserved, and variable compute capacity
US10067801B1 (en) 2015-12-21 2018-09-04 Amazon Technologies, Inc. Acquisition and maintenance of compute capacity
US10085214B2 (en) 2016-01-27 2018-09-25 Apple Inc. Apparatus and methods for wake-limiting with an inter-device communication link
US10191852B2 (en) 2016-02-29 2019-01-29 Apple Inc. Methods and apparatus for locking at least a portion of a shared memory resource
US10019571B2 (en) 2016-03-13 2018-07-10 Winbond Electronics Corporation Protection from side-channel attacks by varying clock delays
US10097606B2 (en) 2016-03-14 2018-10-09 Amazon Technologies, Inc. Application streaming using access and execution environments
EP3436927B1 (en) * 2016-03-30 2023-12-13 Amazon Technologies Inc. Processing pre-existing data sets at an on-demand code execution environment
US10891145B2 (en) 2016-03-30 2021-01-12 Amazon Technologies, Inc. Processing pre-existing data sets at an on demand code execution environment
US11132213B1 (en) 2016-03-30 2021-09-28 Amazon Technologies, Inc. Dependency-based process of pre-existing data sets at an on demand code execution environment
US10162672B2 (en) 2016-03-30 2018-12-25 Amazon Technologies, Inc. Generating data streams from pre-existing data sets
US10198364B2 (en) 2016-03-31 2019-02-05 Apple Inc. Memory access protection apparatus and methods for memory mapped access between independently operable processors
US10282229B2 (en) 2016-06-28 2019-05-07 Amazon Technologies, Inc. Asynchronous task management in an on-demand network code execution environment
US10102040B2 (en) 2016-06-29 2018-10-16 Amazon Technologies, Inc Adjusting variable limit on concurrent code executions
US10277708B2 (en) 2016-06-30 2019-04-30 Amazon Technologies, Inc. On-demand network code execution with cross-account aliases
US10203990B2 (en) 2016-06-30 2019-02-12 Amazon Technologies, Inc. On-demand network code execution with cross-account aliases
US10270598B2 (en) 2016-08-26 2019-04-23 Intel Corporation Secure elliptic curve cryptography instructions
CN106445808A (zh) * 2016-08-29 2017-02-22 北京中电华大电子设计有限责任公司 一种具有控制程序单步调试功能的仿真器
US10884787B1 (en) 2016-09-23 2021-01-05 Amazon Technologies, Inc. Execution guarantees in an on-demand network code execution system
US10061613B1 (en) 2016-09-23 2018-08-28 Amazon Technologies, Inc. Idempotent task execution in on-demand network code execution systems
US11119813B1 (en) 2016-09-30 2021-09-14 Amazon Technologies, Inc. Mapreduce implementation using an on-demand network code execution system
US10551902B2 (en) 2016-11-10 2020-02-04 Apple Inc. Methods and apparatus for providing access to peripheral sub-system registers
US10775871B2 (en) 2016-11-10 2020-09-15 Apple Inc. Methods and apparatus for providing individualized power control for peripheral sub-systems
US10402273B2 (en) 2016-12-14 2019-09-03 Microsoft Technology Licensing, Llc IoT device update failure recovery
US10715526B2 (en) 2016-12-14 2020-07-14 Microsoft Technology Licensing, Llc Multiple cores with hierarchy of trust
US10416991B2 (en) * 2016-12-14 2019-09-17 Microsoft Technology Licensing, Llc Secure IoT device update
US10367639B2 (en) * 2016-12-29 2019-07-30 Intel Corporation Graphics processor with encrypted kernels
KR102617354B1 (ko) 2017-01-05 2023-12-26 삼성전자주식회사 보안 부트 시퀀서 및 보안 부트 장치
US10404470B2 (en) * 2017-01-13 2019-09-03 Microsoft Technology Licensing, Llc Signature verification of field-programmable gate array programs
US10467416B2 (en) 2017-06-16 2019-11-05 International Business Machines Corporation Securing operating system configuration using hardware
US10567359B2 (en) 2017-07-18 2020-02-18 International Business Machines Corporation Cluster of secure execution platforms
US10346226B2 (en) 2017-08-07 2019-07-09 Time Warner Cable Enterprises Llc Methods and apparatus for transmitting time sensitive data over a tunneled bus interface
CN107563224B (zh) * 2017-09-04 2020-07-28 浪潮集团有限公司 一种多用户物理隔离方法及装置
US10528768B2 (en) * 2017-09-15 2020-01-07 Intel Corporation Methods and apparatus to provide user-level access authorization for cloud-based field-programmable gate arrays
US10564946B1 (en) 2017-12-13 2020-02-18 Amazon Technologies, Inc. Dependency handling in an on-demand network code execution system
US10303492B1 (en) 2017-12-13 2019-05-28 Amazon Technologies, Inc. Managing custom runtimes in an on-demand code execution system
US10331612B1 (en) 2018-01-09 2019-06-25 Apple Inc. Methods and apparatus for reduced-latency data transmission with an inter-processor communication link between independently operable processors
US10353678B1 (en) 2018-02-05 2019-07-16 Amazon Technologies, Inc. Detecting code characteristic alterations due to cross-service calls
US10572375B1 (en) 2018-02-05 2020-02-25 Amazon Technologies, Inc. Detecting parameter validity in code including cross-service calls
US10831898B1 (en) 2018-02-05 2020-11-10 Amazon Technologies, Inc. Detecting privilege escalations in code including cross-service calls
US10733085B1 (en) 2018-02-05 2020-08-04 Amazon Technologies, Inc. Detecting impedance mismatches due to cross-service calls
US10725752B1 (en) 2018-02-13 2020-07-28 Amazon Technologies, Inc. Dependency handling in an on-demand network code execution system
US10776091B1 (en) 2018-02-26 2020-09-15 Amazon Technologies, Inc. Logging endpoint in an on-demand code execution system
US11792307B2 (en) 2018-03-28 2023-10-17 Apple Inc. Methods and apparatus for single entity buffer pool management
US10430352B1 (en) 2018-05-18 2019-10-01 Apple Inc. Methods and apparatus for reduced overhead data transfer with a shared ring buffer
US11714910B2 (en) * 2018-06-13 2023-08-01 Hewlett Packard Enterprise Development Lp Measuring integrity of computing system
EP3811264A4 (en) * 2018-06-24 2022-03-02 Hex Five Security, Inc. CONFIGURATION, ENFORCEMENT AND MONITORING THE SEPARATION OF TRUSTED EXECUTION ENVIRONMENTS
US10853115B2 (en) 2018-06-25 2020-12-01 Amazon Technologies, Inc. Execution of auxiliary functions in an on-demand network code execution system
US10649749B1 (en) 2018-06-26 2020-05-12 Amazon Technologies, Inc. Cross-environment application of tracing information for improved code execution
US11146569B1 (en) * 2018-06-28 2021-10-12 Amazon Technologies, Inc. Escalation-resistant secure network services using request-scoped authentication information
US10949237B2 (en) 2018-06-29 2021-03-16 Amazon Technologies, Inc. Operating system customization in an on-demand network code execution system
US11443072B2 (en) 2018-06-29 2022-09-13 Microsoft Technology Licensing, Llc Peripheral device with resource isolation
EP3595256A1 (de) * 2018-07-13 2020-01-15 Siemens Aktiengesellschaft Vorrichtung und verfahren zum betreiben einer durch software gestalteten verarbeitungseinheit für ein gerät
US11099870B1 (en) 2018-07-25 2021-08-24 Amazon Technologies, Inc. Reducing execution times in an on-demand network code execution system using saved machine states
US10585699B2 (en) 2018-07-30 2020-03-10 Apple Inc. Methods and apparatus for verifying completion of groups of data transactions between processors
US10846224B2 (en) 2018-08-24 2020-11-24 Apple Inc. Methods and apparatus for control of a jointly shared memory-mapped region
US10719376B2 (en) 2018-08-24 2020-07-21 Apple Inc. Methods and apparatus for multiplexing data flows via a single data structure
US11243953B2 (en) 2018-09-27 2022-02-08 Amazon Technologies, Inc. Mapreduce implementation in an on-demand network code execution system and stream data processing system
US11099917B2 (en) 2018-09-27 2021-08-24 Amazon Technologies, Inc. Efficient state maintenance for execution environments in an on-demand code execution system
US10789110B2 (en) 2018-09-28 2020-09-29 Apple Inc. Methods and apparatus for correcting out-of-order data transactions between processors
US10838450B2 (en) 2018-09-28 2020-11-17 Apple Inc. Methods and apparatus for synchronization of time between independently operable processors
US11126757B2 (en) * 2018-10-19 2021-09-21 Microsoft Technology Licensing, Llc Peripheral device
US11163701B2 (en) * 2018-11-15 2021-11-02 Intel Corporation System, apparatus and method for integrity protecting tenant workloads in a multi-tenant computing environment
US11943093B1 (en) 2018-11-20 2024-03-26 Amazon Technologies, Inc. Network connection recovery after virtual machine transition in an on-demand network code execution system
US10884812B2 (en) 2018-12-13 2021-01-05 Amazon Technologies, Inc. Performance-based hardware emulation in an on-demand network code execution system
US11010188B1 (en) 2019-02-05 2021-05-18 Amazon Technologies, Inc. Simulated data object storage using on-demand computation of data objects
CN111562916B (zh) * 2019-02-13 2023-04-21 百度在线网络技术(北京)有限公司 共享算法的方法和装置
US11206128B2 (en) 2019-03-08 2021-12-21 International Business Machines Corporation Secure paging with page change detection
US11403409B2 (en) 2019-03-08 2022-08-02 International Business Machines Corporation Program interruptions for page importing/exporting
US11347869B2 (en) * 2019-03-08 2022-05-31 International Business Machines Corporation Secure interface control high-level page management
US11861386B1 (en) 2019-03-22 2024-01-02 Amazon Technologies, Inc. Application gateways in an on-demand network code execution system
US11119809B1 (en) 2019-06-20 2021-09-14 Amazon Technologies, Inc. Virtualization-based transaction handling in an on-demand network code execution system
US11115404B2 (en) 2019-06-28 2021-09-07 Amazon Technologies, Inc. Facilitating service connections in serverless code executions
US11159528B2 (en) 2019-06-28 2021-10-26 Amazon Technologies, Inc. Authentication to network-services using hosted authentication information
US11190609B2 (en) 2019-06-28 2021-11-30 Amazon Technologies, Inc. Connection pooling for scalable network services
US11829303B2 (en) 2019-09-26 2023-11-28 Apple Inc. Methods and apparatus for device driver operation in non-kernel space
US11558348B2 (en) 2019-09-26 2023-01-17 Apple Inc. Methods and apparatus for emerging use case support in user space networking
US11416628B2 (en) 2019-09-27 2022-08-16 Amazon Technologies, Inc. User-specific data manipulation system for object storage service based on user-submitted code
US11550944B2 (en) 2019-09-27 2023-01-10 Amazon Technologies, Inc. Code execution environment customization system for object storage service
US11023416B2 (en) 2019-09-27 2021-06-01 Amazon Technologies, Inc. Data access control system for object storage service based on owner-defined code
US11656892B1 (en) 2019-09-27 2023-05-23 Amazon Technologies, Inc. Sequential execution of user-submitted code and native functions
US10908927B1 (en) 2019-09-27 2021-02-02 Amazon Technologies, Inc. On-demand execution of object filter code in output path of object storage service
US11360948B2 (en) 2019-09-27 2022-06-14 Amazon Technologies, Inc. Inserting owner-specified data processing pipelines into input/output path of object storage service
US11386230B2 (en) 2019-09-27 2022-07-12 Amazon Technologies, Inc. On-demand code obfuscation of data in input path of object storage service
US11106477B2 (en) 2019-09-27 2021-08-31 Amazon Technologies, Inc. Execution of owner-specified code during input/output path to object storage service
US11250007B1 (en) 2019-09-27 2022-02-15 Amazon Technologies, Inc. On-demand execution of object combination code in output path of object storage service
US11055112B2 (en) 2019-09-27 2021-07-06 Amazon Technologies, Inc. Inserting executions of owner-specified code into input/output path of object storage service
US11394761B1 (en) 2019-09-27 2022-07-19 Amazon Technologies, Inc. Execution of user-submitted code on a stream of data
US11263220B2 (en) 2019-09-27 2022-03-01 Amazon Technologies, Inc. On-demand execution of object transformation code in output path of object storage service
US11023311B2 (en) 2019-09-27 2021-06-01 Amazon Technologies, Inc. On-demand code execution in input path of data uploaded to storage service in multiple data portions
US10996961B2 (en) 2019-09-27 2021-05-04 Amazon Technologies, Inc. On-demand indexing of data in input path of object storage service
US10942795B1 (en) 2019-11-27 2021-03-09 Amazon Technologies, Inc. Serverless call distribution to utilize reserved capacity without inhibiting scaling
US11119826B2 (en) 2019-11-27 2021-09-14 Amazon Technologies, Inc. Serverless call distribution to implement spillover while avoiding cold starts
US11714682B1 (en) 2020-03-03 2023-08-01 Amazon Technologies, Inc. Reclaiming computing resources in an on-demand code execution system
US11188391B1 (en) 2020-03-11 2021-11-30 Amazon Technologies, Inc. Allocating resources to on-demand code executions under scarcity conditions
US11775640B1 (en) 2020-03-30 2023-10-03 Amazon Technologies, Inc. Resource utilization-based malicious task detection in an on-demand code execution system
KR20210125330A (ko) * 2020-04-08 2021-10-18 삼성전자주식회사 보안 데이터 처리 방법 및 이를 지원하는 전자 장치
US11606302B2 (en) 2020-06-12 2023-03-14 Apple Inc. Methods and apparatus for flow-based batching and processing
US11775359B2 (en) 2020-09-11 2023-10-03 Apple Inc. Methods and apparatuses for cross-layer processing
US11954540B2 (en) 2020-09-14 2024-04-09 Apple Inc. Methods and apparatus for thread-level execution in non-kernel space
US11799986B2 (en) 2020-09-22 2023-10-24 Apple Inc. Methods and apparatus for thread level execution in non-kernel space
US11550713B1 (en) 2020-11-25 2023-01-10 Amazon Technologies, Inc. Garbage collection in distributed systems using life cycled storage roots
US11593270B1 (en) 2020-11-25 2023-02-28 Amazon Technologies, Inc. Fast distributed caching using erasure coded object parts
CN112906015B (zh) * 2021-01-26 2023-11-28 浙江大学 一种基于硬件标签的内存敏感数据加密保护系统
US11388210B1 (en) 2021-06-30 2022-07-12 Amazon Technologies, Inc. Streaming analytics using a serverless compute system
US11876719B2 (en) 2021-07-26 2024-01-16 Apple Inc. Systems and methods for managing transmission control protocol (TCP) acknowledgements
US11882051B2 (en) 2021-07-26 2024-01-23 Apple Inc. Systems and methods for managing transmission control protocol (TCP) acknowledgements
US11968280B1 (en) 2021-11-24 2024-04-23 Amazon Technologies, Inc. Controlling ingestion of streaming data to serverless function executions
CN114329479B (zh) * 2021-12-08 2024-05-28 浙江大学 一种面向risc-v架构的启动验证方法
US12015603B2 (en) 2021-12-10 2024-06-18 Amazon Technologies, Inc. Multi-tenant mode for serverless code execution
US12013970B2 (en) 2022-05-16 2024-06-18 Bank Of America Corporation System and method for detecting and obfuscating confidential information in task logs
CN116861411B (zh) * 2023-06-05 2024-06-25 北京连山科技股份有限公司 基于Seccomp机制的安全沙箱数据保护方法及系统
CN117056983B (zh) * 2023-10-13 2024-01-02 中国移动紫金(江苏)创新研究院有限公司 多级可控数据共享授权方法、装置及区块链系统

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US964278A (en) 1910-04-08 1910-07-12 Clifford J Larkin Method of making coats.
EP0842471A4 (en) 1995-07-31 2006-11-08 Hewlett Packard Co METHOD AND APPARATUS FOR MANAGING RESOURCES UNDER THE CONTROL OF A PROTECTED MODULE OR OTHER PROTECTED PROCESSOR
JP2002229447A (ja) * 2001-01-30 2002-08-14 Nippon Telegr & Teleph Corp <Ntt> デジタルコンテンツ流通における著作権保護システム
JP2002353960A (ja) * 2001-05-30 2002-12-06 Fujitsu Ltd コード実行装置およびコード配布方法
EP1593015B1 (en) * 2003-02-03 2018-05-30 Nokia Technologies Oy Architecture for encrypted application installation
EP1548537A1 (en) 2003-12-23 2005-06-29 STMicroelectronics Limited Secure processor arrangement
JP4447977B2 (ja) 2004-06-30 2010-04-07 富士通マイクロエレクトロニクス株式会社 セキュアプロセッサ、およびセキュアプロセッサ用プログラム。
JP2008505385A (ja) * 2004-07-02 2008-02-21 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ セキュリティユニットおよびそのようなセキュリティユニットを備える保護システムならびにデータを保護するための方法
US8332653B2 (en) * 2004-10-22 2012-12-11 Broadcom Corporation Secure processing environment
JP4596247B2 (ja) * 2005-01-31 2010-12-08 ソニー株式会社 データ処理回路、データ処理装置、データ処理方法、データ処理制御方法、データ処理プログラム及びデータ処理制御プログラム
WO2006082988A2 (en) 2005-02-07 2006-08-10 Sony Computer Entertainment Inc. Methods and apparatus for facilitating a secure processor functional transition
US7386775B2 (en) * 2005-08-18 2008-06-10 International Business Machines Corporation Scan verification for a scan-chain device under test
JP4795812B2 (ja) 2006-02-22 2011-10-19 富士通セミコンダクター株式会社 セキュアプロセッサ
US8135959B2 (en) * 2006-04-07 2012-03-13 Honeywell International Inc. External key to provide protection to devices
US7660769B2 (en) 2006-09-12 2010-02-09 International Business Machines Corporation System and method for digital content player with secure processing vault
US20080152142A1 (en) 2006-12-20 2008-06-26 Mark Buer Memory scrambler unit (msu)
JP4912921B2 (ja) * 2007-02-27 2012-04-11 富士通セミコンダクター株式会社 セキュアプロセッサシステム、セキュアプロセッサ及びセキュアプロセッサシステムの制御方法
US20080229117A1 (en) * 2007-03-07 2008-09-18 Shin Kang G Apparatus for preventing digital piracy
EP2164020B1 (en) * 2007-05-11 2014-02-26 Nagrastar L.L.C. Apparatus for controlling processor execution in a secure environment
US8010763B2 (en) * 2007-08-02 2011-08-30 International Business Machines Corporation Hypervisor-enforced isolation of entities within a single logical partition's virtual address space
US8526616B2 (en) * 2008-03-18 2013-09-03 Christopher V. FEUDO Method for payload encryption of digital voice or data communications
WO2009120301A2 (en) * 2008-03-25 2009-10-01 Square Products Corporation System and method for simultaneous media presentation
US8644499B2 (en) 2009-09-14 2014-02-04 Broadcom Corporation Method and system for securely protecting a semiconductor chip without compromising test and debug capabilities
US8904190B2 (en) * 2010-10-20 2014-12-02 Advanced Micro Devices, Inc. Method and apparatus including architecture for protecting sensitive code and data

Also Published As

Publication number Publication date
KR20130142135A (ko) 2013-12-27
CN103221961B (zh) 2015-10-14
KR101397637B1 (ko) 2014-05-22
KR20130080046A (ko) 2013-07-11
JP2013545182A (ja) 2013-12-19
CN103221961A (zh) 2013-07-24
JP2013541783A (ja) 2013-11-14
JP5670578B2 (ja) 2015-02-18
EP2630608B1 (en) 2016-01-20
US8904190B2 (en) 2014-12-02
US8489898B2 (en) 2013-07-16
EP2630608A1 (en) 2013-08-28
EP2630607A1 (en) 2013-08-28
WO2012054609A1 (en) 2012-04-26
EP2630607B1 (en) 2016-11-30
KR101735023B1 (ko) 2017-05-12
US20120102307A1 (en) 2012-04-26
WO2012054615A1 (en) 2012-04-26
US20120102333A1 (en) 2012-04-26
CN103210396A (zh) 2013-07-17
CN103210396B (zh) 2016-03-02

Similar Documents

Publication Publication Date Title
JP5537742B2 (ja) 多ユーザ機密コードおよびデータを保護するためのアーキテクチャを含む方法および装置
CN103069428B (zh) 不可信云基础设施中的安全虚拟机引导
KR100792287B1 (ko) 자체 생성한 암호화키를 이용한 보안방법 및 이를 적용한보안장치
KR100823374B1 (ko) 휴면 보호
TWI489308B (zh) 未知安全金鑰下開機影像之安全更新
US9009854B2 (en) Platform-hardened digital rights management key provisioning
JP2013545182A5 (ja)
US20080130893A1 (en) Methods and systems for utilizing cryptographic functions of a cryptographic co-processor
WO2009107330A1 (ja) 情報処理装置及びその制御方法
JP2013541783A5 (ja)
JP2005227995A (ja) 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
JP2014191509A (ja) 情報処理装置、情報処理プログラム
KR20100066404A (ko) 프로세서의 가상 머신 내 기밀 콘텐츠의 보안 처리를 위한 방법 및 장치
CN111444553A (zh) 支持tee扩展的安全存储实现方法及系统
JP2019057044A (ja) Bios管理装置、bios管理システム、bios管理方法、及び、bios管理プログラム
CN114296873B (zh) 一种虚拟机镜像保护方法、相关器件、芯片及电子设备
CN114816549B (zh) 一种保护bootloader及其环境变量的方法及系统
CN111291389B (zh) 一种计算机核心程序全生命周期的保护方法及系统
JP2004280678A (ja) データ処理装置、およびデータ処理方法
JP2007272923A (ja) サーバ
JP2010044792A (ja) セキュアデバイス、集積回路および暗号化方法

Legal Events

Date Code Title Description
A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20130925

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131002

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20131227

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140110

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140131

A524 Written submission of copy of amendment under article 19 pct

Free format text: JAPANESE INTERMEDIATE CODE: A524

Effective date: 20140203

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140305

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140312

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140425

R150 Certificate of patent or registration of utility model

Ref document number: 5537742

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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