JP5362767B2 - リモートサーバからデータ記憶装置の安全性を検査する方法および装置 - Google Patents

リモートサーバからデータ記憶装置の安全性を検査する方法および装置 Download PDF

Info

Publication number
JP5362767B2
JP5362767B2 JP2011103280A JP2011103280A JP5362767B2 JP 5362767 B2 JP5362767 B2 JP 5362767B2 JP 2011103280 A JP2011103280 A JP 2011103280A JP 2011103280 A JP2011103280 A JP 2011103280A JP 5362767 B2 JP5362767 B2 JP 5362767B2
Authority
JP
Japan
Prior art keywords
data
remote server
driver
oob
storage device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2011103280A
Other languages
English (en)
Other versions
JP2011253525A (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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of JP2011253525A publication Critical patent/JP2011253525A/ja
Application granted granted Critical
Publication of JP5362767B2 publication Critical patent/JP5362767B2/ja
Expired - Fee Related 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/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • 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
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • 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/12Protecting executable software
    • 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/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/567Computer malware detection or handling, e.g. anti-virus arrangements using dedicated hardware
    • 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
    • G06F21/602Providing cryptographic facilities or services
    • 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
    • G06F21/606Protecting data by securing the transmission between two devices or processes
    • 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
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • 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/82Protecting input, output or interconnection devices
    • G06F21/85Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0038System on Chip
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Virology (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Description

ハードディスクドライブまたはソリッドステートドライブのようなデータ記憶装置上に存在するデータは、例えば、変造(corruption)または悪意のあるソフトウエア(マルウエア)による攻撃の対象となる。独立系ソフトウエアベンダー(ISV)によって、変造されたデータ若しくはマルウエアを検出する、および/または、データのバックアップコピーを提供することを目的として、データ記憶装置を検査する(scan)ウイルス防止(anti-virus)および監視(manageability)ソフトウエアパッケージが開発されている。記憶装置(storage)、セキュリティおよび監視に関するISVのいくつかは、例えばインターネットを介して、ウイルス防止検査、マルウエア除去、システム修理またはシステム・リイメージング(system reimaging)のようなサービスを提供している。これらのインターネットを使った(Internet-based)サービスは、概して、ローカルの計算装置上で動作するローカル・ソフトウエア・エージェントに未だに依存している。
しかしながら、これらのソフトウエア・ソリューション自体が、検出から隠れることを前提として動作するルートキット、スパイウエアおよびその他の種類のマルウエアによる攻撃の対象となる。例えば、記憶スタックの中にフィルタドライバとして隠れたマルウエアは、データ記憶装置の検査が要求されたときに、ウイルス防止または監視ソフトウエアに対して、未認証データ(non-authentic data)を提供することができるかもしれない(その結果、現実の、変造されたデータをソフトウエアから隠すことができるかもしれない。)。つまり、ウイルス防止または監視ソフトウエアによって検査されたデータは、データ記憶装置上に現実に存在するデータではないかも知れない。その上、ひとたび、ルートキットがプラットフォーム上(例えば、マスター・ブート・レコードの中)に隠れると、ルートキットは、ユーザの全ての動作を観察したり、ユーザ情報を獲得(capture)したり、ユーザの行動の迂回(circumvention)およびその他の悪意のある動作を実行したりすることができる。ユーザから隠れて、コンピュータ・システムのバックグラウンドで実行し、機密情報を収集してシステムの速度を大幅に低下させるルートキット、スパイウエアおよびその他のマルウエアが、益々発見されてきている。
本明細書に記載されているシステム、装置および方法が、発明を限定する目的ではなく、一例として、添付図面の中に記載されている。簡単かつ明確に説明する目的で、図面中に記載された要素は必ずしも縮尺どおりには記載されていない。例えば、説明を明確にする目的で、いくつかの要素の寸法は、他の要素と比較して大きく記載されている可能性がある。
リモートサーバから計算装置のデータ記憶装置の安全性検査(secure scan)を提供するように構成されたシステムの一実施形態の概略ブロック図を示す。 図1の計算装置およびリモートサーバのソフトウエア/ファームウエア環境(environment)の一実施形態の概略ブロック図を示す。 図1のシステムおよび図2のソフトウエア環境を用いて、リモートサーバからデータ記憶装置の安全性検査を提供する方法の一実施形態の概略フロー図を示す。 図1の計算装置およびリモートサーバのソフトウエア/ファームウエア環境の他の実施形態の概略ブロック図を示す。 図1のシステムおよび図4のソフトウエア環境を用いて、リモートサーバからデータ記憶装置の安全性検査を提供する方法の一実施形態の概略フロー図を示す。
ここに開示される概念(concept)は、様々に改変されたり、他の形態に代替されたりしてよい。一方、ここに開示される特定の例示的な実施形態は、一例として、図示されており、図面に詳細に記載されている。しかしながら、ここに開示される概念を開示された特定の形態に限定することを意図するものではなく、それどころか、添付の特許請求の範囲によって定義される発明の精神(spirit)および範囲(scope)に含まれる改変、均等物および代替物の全てをカバーすることを意図している。
以下の記載において、本開示の理解をより完全なものにする目的で、ロジックの実装(logic implementation)、オペコード(opcode)、オペランド特定手段(means to specify operands)、リソースのパーティショニング/シェアリング/複製の実装、システム要素のタイプおよび相互関係、ならびに、ロジックの分割/統合の選択のような、多くの特定の詳細が記載される可能性がある。しかしながら、当然のことながら、当業者であれば、そのような特定の詳細の記載がなくとも、本開示の実施形態を実施することができる。開示がわかりにくくなることを防止する目的で、他の実施形態においては、制御構造、ゲートレベル回路および完全なソフトウエア実行シーケンスの詳細について示されていない可能性がある。本明細書の記載に接した当業者は、過度の実験をしなくても、適切な機能を実行することができるであろう。
明細書中の「一実施形態」、「ある実施形態」、「例示的な実施形態」などへの言及は、記載されている実施形態が特定の特徴、構造または特性を含んでよいことを示す。しかし、必ずしも全ての実施形態において、当該特定の特徴、構造または特性が含まれる必要はない。さらに、そのような文言が、必ずしも同一の実施形態について言及している必要もない。その上、特定の特徴、構造または特性が、ある実施形態に関連して記載されるときには、そのことが明示的に記載されているかどうかに関わらず、他の実施形態に関しても、そのような特徴、構造または特性を生じさせることが、当業者の知識の範囲内であると考えられる。
開示されるいくつかの実施形態は、ハードウエア、ファームウエア、ソフトウエアまたはそれらの組合せに組み入れられてよい。開示される計算装置に組み入れられる実施形態は、1以上のバスを利用した(bus-based)要素間相互接続、および/または、1以上の2点間の(point-to-point)要素間相互接続を含んでよい。発明の実施形態は、1以上の有形の機械可読媒体に格納され、1以上のプロセッサによって読み込まれ、実行される命令(instruction)として実現されてもよい。有形の機械可読媒体は、機械(例えば計算装置)によって読み込まれる形で、情報を記憶または伝達するための有形の機構であれば、いかなるものであってもよい。例えば、有形の機械可読媒体は、リード・オンリー・メモリ(ROM)、ランダム・アクセス・メモリ(RAM)、磁気ディスク記憶媒体、光学記憶媒体、フラッシュメモリ、および、その他の有形の媒体を含んでよい。
本開示は、広く、リモートサーバからデータ記憶装置の安全性検査を提供する方法および装置に関連する。これらの方法および装置は、検査されたデータが、データ記憶媒体から実際に読み出された(retrieved)ものであり、なんらかのマルウエア(例えば、計算装置上に隠れているルートキット)によって不当に提供されたものではないことを保証する。本開示によれば、アウト・オブ・バンド(OOB)エージェントが用いられて、リモートサーバとデータ記憶媒体との間におけるブロックの読み込み/書き込みのためのインターフェースを実現する。OOBエージェントは、計算装置のホストドライバと連動して、信頼できる方法でデータ記憶装置からデータを読み出し、このデータをリモートサーバに提供する。OOBエージェントが耐タンパー性(tamper resistant)を有するので、リモートサーバは、そのデータが何らかのマルウエアによって偽造されていないことを保証されてよい。いくつかの実施形態において、OOBエージェントは、データ記憶装置の暗号化エンジンが生成した認証メタデータ(authentication metadata)を読み込んでもよい。この認証メタデータは、データがデータ記憶装置から実際に読み出されたことを検証する目的で、OOBエージェントまたはリモートサーバのいずれかによって用いられてよい。最初に、図1を参照して、システム100の様々なハードウエア要素が以下に記載される。次に、図2および図3を参照して、システム100のソフトウエア/ファームウエア環境として採用しうる一実施形態、および、関連する安全性検査方法300が、以下に記載される。最後に、図4および図5を参照して、システム100のソフトウエア/ファームウエア環境として採用しうる他の実施形態、および、関連する安全性検査方法500が、以下に記載される。一実施形態として、オペレーション・システムおよび少なくとも1つのドライバを実行し、上記オペレーション・システムから独立したセキュア・コンテナの中で上記ドライバを実行するインバンド・プロセッサと、リモートサーバと情報をやり取りする通信回路と、上記オペレーション・システムの状態に関わらず、上記通信回路を用いて上記リモートサーバと情報をやり取りすることができるアウト・オブ・バンド・プロセッサと、を備え、上記アウト・オブ・バンド・プロセッサは、上記リモートサーバからブロック読み出し要求を受信し、上記セキュア・コンテナの中で動作する上記少なくとも1つのドライバに指示して、データ記憶装置にストレージ命令を送信させ、上記データ記憶装置から読み出されたデータを、上記セキュア・コンテナの中で動作する上記少なくとも1つのドライバを経由して受信し、上記データを、上記リモートサーバに送信する、計算装置であってもよい。また、上記オペレーション・システムは、1以上のファームウエア・フックを経由して、上記セキュア・コンテナの中で動作する上記少なくとも1つのドライバに指示して、上記データ記憶装置に上記ストレージ命令を送信させることによって、上記データ記憶装置からデータを読み出す、計算装置であってもよい。

図1に関連して、リモートサーバ104からデータ記憶装置120のデータの安全性検査を提供するよう構成されたシステムの一例であるシステム100は、計算装置102と、リモートサーバ104と、計算装置102をリモートサーバ104と通信可能に結合するネットワーク106を含む。図1には、単一の計算装置102と、単一のリモートサーバ104と、単一のネットワーク106とが例示されているが、システム100に含まれる、類似または非類似のアーキテクチャの計算装置102、リモートサーバ104およびネットワーク106の数はいかなるものであってもよい。例えば、計算装置102は、1以上のネットワーク106を介して、複数のリモートサーバ104と通信してもよく、それぞれのリモートサーバ104は、1以上のネットワーク106を介して、複数の計算装置102と通信してよい。
計算装置102は、本明細書に記載される機能を実行することができる電子デバイスであれば、いかなるタイプの電子デバイスとして実現されてもよい。一例として、計算装置102は、パーソナル・コンピュータ、ワークステーション、ラップトップ・コンピュータ、ハンドヘルド・コンピュータ、携帯型のインターネット・デバイス(mobile internet device)、携帯電話、PDA(personal data assistant)、テレフォニー・デバイス(telephony device)、ネットワーク接続機器(network appliance)、仮想化デバイス(virtualization device)、ストレージ・コントローラまたはその他のコンピュータを利用したデバイスとして実現されてよい。図1に示された例示的な実施形態において、計算装置102は、インバンド・プロセッサ110と、チップセット112と、システムメモリ114と、通信回路116と、一以上の入出力デバイス118と、データ記憶装置120とを含む。いくつかの実施形態において、上述の要素のいくつかは、計算装置102のマザーボード上に組み込まれてよく、その他の要素は、例えばペリフェラル・ポート経由で、マザーボードと通信可能に結合されてよい。さらに、当然のことながら、計算装置102は、その他の要素、サブコンポーネント、ならびに、コンピュータおよび/または計算装置においてよく見られるデバイスを含んでよい。なお、説明をわかりやすくする目的で、それらは、図1には記載されていない。
計算装置102のインバンド・プロセッサ110は、ソフトウエア/ファームウエアを実行することができるプロセッサであれば、いかなるタイプのプロセッサであってよく、例えば、マイクロプロセッサ、デジタル・シグナル・プロセッサ、マイクロコントローラまたはそれらと同様のものであってよい。インバンド・プロセッサ110は、例えば、単一のプロセッサコア122を有するシングルコア・プロセッサとして実現されてよい。しかしながら、他の実施形態において、インバンド・プロセッサ110は、複数のプロセッサコア122を有するマルチコア・プロセッサとして実現されてよい。加えて、計算装置102は、1以上のプロセッサコア122を有するインバンド・プロセッサ110をさらに備えてもよい。インバンド・プロセッサ110は、通常、ソフトウエアスタックを実行することができる。ソフトウエアスタックは、(図2および図4に図示され、以下に記載されるように、)計算装置102上に存在するオペレーティング・システム200、様々なアプリケーション、プログラム、ライブラリ、ドライバ202およびドライバ204を含んでよい。
計算装置102のチップセット112は、メモリコントローラ・ハブ(MCHまたはノースブリッジ)、入出力コントローラ・ハブ(ICHまたはサウスブリッジ)、および、ファームウエア・デバイスを有してよい。チップセット112のファームウエア・デバイスは、基本入出力システム(BIOS)および/または命令および/またはその他の情報(例えば、計算装置102を起動する間に使用されるBIOSドライバ)を記憶するメモリデバイスとして実現されてよい。その他の実施形態において、その他の構成を有するチップセットが用いられてよい。例えば、いくつかの実施形態において、チップセット112は、プラットフォーム・コントローラ・ハブ(PCH)として実現されてよい。そのような実施形態において、メモリコントローラ・ハブ(MCH)が、インバンド・プロセッサ110の中に組み込まれる、または、その他の方法でインバンド・プロセッサ110に結合されてもよく、(図1において破線で示されているように)インバンド・プロセッサ110が、システムメモリ114と直接通信してもよい。これらのいずれの構成においても、チップセット112は、アウト・オブ・バンド(OOB)プロセッサ124を有してもよい。アウト・オブ・バンドプロセッサ124は、以下に、より詳細に説明される。
インバンド・プロセッサ110は、多くの信号経路を経由して、チップセット112と通信可能に結合される。これらの信号経路(および図1において説明されるその他の信号経路)は、計算装置102の要素の間の通信を促進することができる信号経路であれば、いかなるタイプの信号経路として実現されてもよい。例えば、信号経路は、いかなる数のワイヤ、ケーブル、導光路(light guide)、プリント配線基板の配線、ビア、バス、介在する装置(intervening device)および/またはそれらと同様のものであってよい。
計算装置102のシステムメモリ114は、多くの信号経路を経由して、チップセット112と通信可能に結合されてもよい。システムメモリ114は、1以上のメモリデバイスまたはデータ記憶番地(data storage location)として実現されてよい。1以上のメモリデバイスまたはデータ記憶番地は、例えば、ダイナミック・ランダム・アクセス・メモリデバイス(DRAM)、シンクロナス・ダイナミック・ランダム・アクセス・メモリデバイス(SDRAM)、ダブルデータレート・シンクロナス・ダイナミック・ランダム・アクセス・メモリデバイス(DDRSDRAM)、フラッシュメモリデバイスおよび/または他の揮発性メモリデバイスであってよい。加えて、図1には単一のシステムメモリ114のみが記載されているけれども、他の実施形態においては、計算装置102は複数のステムメモリ・デバイスをさらに備えてもよい。オペレーティング・システム200、アプリケーション、プログラム、ライブラリ、ドライバ202およびドライバ204は、インバンド・プロセッサ110によって実行されるソフトウエアスタックを構成し、実行中、システムメモリ114の中に駐在してもよい。さらに、システムメモリ114の中に記憶されるソフトウエアおよびデータは、メモリ管理操作の一部として、システムメモリ114およびデータ記憶装置120の間で交換されてよい。
計算装置102の通信回路116は、ネットワーク106を介して計算装置102とリモートサーバ104との間の通信を可能にするデバイスおよび回路であれば、いかなる数のデバイスおよび回路として実現されてもよい。ネットワーク106は、いかなるタイプの有線および/または無線のネットワークとして実現されてもよく、例えば、ローカルエリア・ネットワーク、ワイドエリア・ネットワーク、公衆が利用できるグローバルネットワーク(例えば、インターネット)またはそれらのいかなる組合せであってもよい。さらに、ネットワーク106は、計算装置102とリモートサーバ104との間の通信を促進するデバイスであれば、いかなる数のデバイスであっても有してよい。上記デバイスは、例えば、ルータ、スイッチ、介在するコンピュータおよび/またはそれらと同様のものであってよい。通信回路116は、ネットワーク106の有線および/または無線の部分を介して通信を促進する(facilitate)1以上の有線および/または無線のネットワーク・インターフェースを有してよい。通信回路116は、多数の信号経路を介してチップセット112と通信可能に結合され、インバンド・プロセッサ110とOOBプロセッサ124との両方が、ネットワーク106にそれぞれ独立にアクセスできるようにしてよい。
計算装置102の入出力デバイス118は、いかなる数の周辺装置(peripheral)またはインターフェース・デバイスを有してよい。説明のための実例として、入出力デバイス118は、計算装置102のディスプレイ、マウス、キーボードおよび/または1以上の外部スピーカを有してよい。入出力デバイス118に含まれる特定のデバイスは、例えば、計算装置102の目的とする用途次第であってよい。入出力デバイス118は、多数の信号経路を介してチップセット112と通信可能に結合されてよく、いくつかの実施形態においては、インバンド・プロセッサ110および/またはチップセット112が、入出力デバイス118からの入力を受信したり、入出力デバイス118に出力を送信したりできるようにしてよい。
計算装置102は、データ記憶装置(DSD)120を有してもよい。データ記憶装置120の一例は、短期間または長期間、データを記憶するよう構成されたデバイスであればどのようなものであってもよく、例えば、メモリデバイスおよび回路、メモリカード、ハードディスクドライブ、ソリッドステートドライブまたはその他のデータ記憶装置であってよい。いくつかの実施形態において、DSD120は、DSD120が電力を供給されていないときも記憶されたデータを保持することができる不揮発性メモリを有してよい。加えて、図1には単一のDSD120のみが記載されているけれども、他の実施形態において、計算装置102は、データ記憶装置をさらに備えてよい。DSD120は、多数の信号経路を経由してチップセット112と通信可能に結合してよい。いくつかの実施形態において、DSD120は、周辺構成要素相互接続エクスプレス(PCIe)インターフェースまたはシリアルATアタッチメント(SATA)インターフェースのような高速シリアルリンクを経由してチップセット112と結合してよい。当然のことながら、DSD120とチップセット112との間の他のタイプのインターフェース(例えば、パラレル信号経路)も考えられる。図1の例示的な実施形態において、DSD120は、暗号化回路126を備えてよい。暗号化回路126は、(図2に示すように)DSD120に、ハードウエアを利用した暗号化エンジン212を提供してよい。以下においてさらに記載されるように、暗号化回路126(およびそれとともに実現される暗号化エンジン212)は、DSD120が、DSD120から読み出されたデータに対応する認証メタデータをローカルで生成することを可能にしてよい。
チップセット112は、アウト・オブ・バンド(OOB)プロセッサ124を有してよい。アウト・オブ・バンドプロセッサ124は、インバンド・プロセッサ110とは異なるプロセッサであり、通常、インバンド・プロセッサ110と独立して動作する。OOBプロセッサ124は、ソフトウエア/ファームウエアを実行することができるプロセッサであれば、いかなるタイプのプロセッサであってよく、例えば、マイクロプロセッサ、デジタル・シグナル・プロセッサ、マイクロコントローラまたはそれらと同様のものであってよく、1以上のプロセッサコア(図示しない。)を含む1以上のプロセッサを有してよい。図1において、OOBプロセッサ124は、チップセット112に統合されているように説明されているけれども、他の実施形態において、OOBプロセッサ124は、多数の信号経路を経由してチップセット112と通信可能に結合されている拡張ボード上に配された1以上の別々の集積回路として実現されてもよい。いくつかの実施形態において、OOBプロセッサ124は、多数の信号経路を経由して、計算装置102の様々な要素(例えば、システムメモリ114および通信回路116)と独立して通信可能に結合されてよい。その代案として、または、それに加えて、OOBプロセッサ124は、専用メモリおよび/または専用通信回路(図示されていない)のような、類似の機能を有する組み込み要素(built-in component)を有してよい。
OOBプロセッサ124は、計算装置102のインバンド・プロセッサ110またはオペレーション・システム200の動作状態に関係なく、計算装置102の特定の機能を管理するように構成されている。そのような独立した動作を促進する目的で、OOBプロセッサ124は、計算装置102の電源回路(図示されていない。)に独立して接続されてよい。これにより、計算装置102の他の要素が出力を下げられたまたは電源を切られた場合であっても、OOBプロセッサ124は電力を保持することができる。さらに、OOBプロセッサ124は、通信回路116を経由して、1以上の独立したネットワーク・インターフェースを提供されてよい。通信回路116もまた、電源回路(図示されていない。)に独立して接続され、ネットワーク106を介して、アウト・オブ・バンド通信を可能にする。言い換えれば、OOBプロセッサ124は、インバンド・プロセッサ110上で動作しているオペレーション・システム200の外側へ、ネットワーク106上のデバイス(例えば、リモートサーバ104)と直接通信することができる。実際、この通信は、ユーザに認識されることなく実行されてよい。OOBプロセッサ124は、計算装置102を、オペレーション・システム200の起動を含む全出力運転状態に戻させることもできる。要約すれば、OOBプロセッサ124は、要求/コマンドの着信に基づいて、自動制御によって(intelligently)動作してよい。また、インバンド・プロセッサ110の電源が切られているか、待機状態で実行しているか、初期化されているか、または、通常動作中であるのかどうか、および、オペレーション・システム200が起動しているか、実行しているか、クラッシュしているか、あるいはそうでないのかを、ネットワーク106上で通信してよい。
いくつかの説明のための実施形態において、OOBプロセッサ124は、インテル(登録商標)・アクティブ・マネジメント・テクノロジ(インテル(登録商標)AMT)もしくはインテル(登録商標)AMTの一部を用いて、または、インテル(登録商標)・マネジメント・エンジン(インテル(登録商標)ME)を用いて実現されてよい。これらは全て、カルフォルニア州サンタクララのインテルコーポレーションから入手できるものであってもよく、および/または、インテルコーポレーションによって販売されているチップセットに含まれるものであってもよい。インテルAMT(登録商標)の組み込みプラットフォーム技術(embedded platform technology)は、エンドポイント・デバイス(endpoint device)のそれぞれのハードウエアおよび非揮発性メモリに格納されたソフトウエア情報に、アウト・オブ・バンドでアクセスすることを可能にする。インテルAMT(登録商標)の組み込みプラットフォーム技術(embedded platform technology)によって、機能しているオペレーション・システムおよび他の管理ツールにおいて見られるような多くのソフトウエア・エージェントが不要になる。
リモートサーバ104は、計算装置102とは別の計算装置であれば、いかなる計算装置として実現されてよい。一例として、リモートサーバ104は、パーソナル・コンピュータ、ワークステーション、ラップトップ・コンピュータ、ハンドヘルド・コンピュータ、携帯型のインターネット・デバイス(mobile internet device)、携帯電話、PDA(personal data assistant)、テレフォニー・デバイス(telephony device)、ネットワーク接続機器(network appliance)、仮想化デバイス(virtualization device)、ストレージ・コントローラ、または、ネットワーク106を介して、計算装置102と通信するよう構成されたその他のコンピュータを利用したデバイスとして実現されてよい。図1に示される説明のための実施形態において、リモートサーバ104は、プロセッサ130と、チップセット132と、システムメモリ134と、通信回路136と、1以上の大容量記憶装置138を備える(これらのそれぞれは、計算装置102のインバンド・プロセッサ110、チップセット112、システムメモリ114、通信回路116およびデータ記憶装置120のそれぞれと、同様の構成を有してよく、同様に動作してよい。)。リモートサーバ104は、その他の構成を有してよく、および/または、図1に示されていないその他の要素(例えば、1以上の入出力デバイス)を有してもよいと考えられる。
次に、図2を参照すると、システム100の計算装置102およびリモートサーバ104の上で動作するソフトウエア/ファームウエア環境に関する説明のための一実施形態が、簡略化されたブロック図として示されている。計算装置102のソフトウエアスタックは、オペレーション・システム(OS)200と、アドバンスド・ホストコントローラ・インターフェース(AHCI)ドライバ202と、ファイルシステムおよびその他のフィルタドライバ204とを含む(これらのそれぞれは、インバンド・プロセッサ110によって実行され、および/または、システムメモリ114の中またはDSD120上に格納されてよい。)。OS200は、ユーザスペース(リング3)に存在して(reside)、計算装置102のユーザが、通常、交信する(typically interact)、よりハイレベルのアプリケーションを提供する(host)。OS200は、AHCIドライバ202を含めて、カーネル(リング0)に存在するファイルシステムおよびフィルタドライバ204に対して、計算装置102のハードウエア要素(例えば、DSD120)にアクセスするよう要求する。当然のことながら、いくつかの実施形態において、OS200ならびに/またはドライバ202およびドライバ204を含むこれらのソフトウエアモジュールは、いかなるものであっても、ファームウエアまたはハードウエアの中に、部分的にまたは完全に組み入れられてよい。
AHCIドライバ202は、DSD120のインターフェース・モジュール210と互いに交信して、様々な読み込み/書き込み操作を実行するよう構成差荒れているので、図2においては、AHCIドライバ202と、ファイルシステムおよびその他のフィルタドライバ204とが別々に示されている。特に、AHCIドライバ202は、AHCIドライバ202によってDSDインターフェース・モジュール210に送られる可能性のあるストレージ命令(storage command)のライブラリ206を含む。ライブラリ206に含まれるこれらのストレージ命令は、DSD120に対して、何らかの動作を実行させるための要求および/または命令である。例えば、DSD120が、PCIeインターフェースを経由して接続されたNANDフラッシュメモリデバイスである場合には、AHCIドライバ202は、DSD120に様々な読み込み/書き込み動作を実行させるストレージ命令のうち、NAND命令ライブラリ206を含んでよい。別の例として、DSD120が、SATAインターフェースを経由して接続されたソリッドステートドライブである場合には、AHCIドライバ202は、DSD120に様々な読み込み/書き込み動作を実行させるストレージ命令のうち、ATA命令ライブラリ206を含んでよい。上述の通り、AHCIドライバ202が、(例えば、OS200によって)DSD120中のある特定の(certain)論理ブロックアドレス(LBA)のデータを読み出すことを要求されると、AHCIドライバ202は、ライブラリ206から適切なストレージ命令を選択し、このストレージ命令をDSD120に送信する。図2に示された説明のための実施形態は、AHCIドライバ202を用いて、DSDインターフェース・モジュール210に対するインターフェースを実現しているけれども、DSD120にアクセスすることができる計算装置102のホストドライバであれば(すなわち、適切なストレージ命令ライブラリ206を有していれば)、いかなるホストドライバであっても、AHCIドライバ202に追加して、または、AHCIドライバ202の代わりに用いることができると考えられる。いくつかの実施形態において、例えば、カルフォルニア州サンタクララのインテルコーポレーションから入手できる、インテル(登録商標)急速記憶テクノロジ(インテル(登録商標)RST)ドライバが用いられてよい。
図2の計算装置102は、DSDインターフェース・モジュール210のような、DSD120上で実行される可能性のあるいくつかのファームウエア・モジュールと、OOBプロセッサ124上で実行される可能性のあるOOBエージェント214とを有してもよい。それぞれ、DSD120のファームウエアおよびチップセット112のファームウエアの中に存在するように記載されているけれども、DSDインターフェース・モジュール210およびOOBエージェント214は、それぞれ、追加的または代替的に、1以上のハードウエアおよび/またはソフトウエアモジュールとして実現されてもよい。上述の通り、DSDインターフェース・モジュール210は、大抵、AHCIドライバ202(または、その他のホストドライバ)からストレージ命令を受信して、DSD120を制御して、様々な動作(例えば、読み込み/書き込み動作)を実行させるように構成されている。
DSDインターフェース・モジュール210は、ハードウエアを利用した暗号化エンジン212を有してよい。暗号化エンジン212は、DSD120の暗号化回路126によって実行されるファームウエアまたはソフトウエアを含んでよい。いくつかの実施形態において、DSDインターフェース・モジュール210は、暗号化エンジン212を用いて、AHCIドライバ202からの特定のストレージ命令(または、ストレージ命令の特定のクラスもしくはカテゴリ)に応じて、DSD120から読み出されたデータに対応する認証メタデータを生成させるように構成されてよい。その他の実施形態において、暗号化エンジン212は、DSDインターフェース・モジュール210によって受信された何らかのストレージ命令に応じて、DSD120から読み出されたデータに対応する認証メタデータを生成してよい。説明のための例として、暗号化エンジン212は、(信頼できるコンピューティング団体(Trusted Computing Group)によって公表された)オパールセキュリティサブシステムクラス標準に準拠するファームウエアの中に統合されてよい。
DSD120の暗号化エンジン212によって生成された認証メタデータは、関連データの信頼性を検証するのに用いられる形態であれば、いかなる形態であってもよい。いくつかの実施形態において、暗号化エンジン212は、メッセージ認証符号(MAC)を生成してよい。メッセージ認証符号は、DSD120から読み出されたデータに対する共有秘密鍵を用いる鍵付きハッシュ関数が適用されることにより、認証メタデータの中に含まれることになる。他のいかなる要素、デバイス、または、共通鍵を所有するユーザもまた、次に、そのデータに鍵付きハッシュ関数を再適用して、その出力を、認証メタデータに含まれるMACと比較する。追加的にまたは代替的に、暗号化エンジン212は、認証メタデータの中に含まれることになるカウンタ値(例えば、タイムスタンプ、または、データがDSD120から読み出された時間を示すその他のトークン)を生成してよい。他のいかなる要素、デバイス、または、ユーザは、次に、(古いデータ(stale data)を含む)反射攻撃から保護する目的で、データがDSD120から読み出されたはずである時間と比較してよい。その他の実施形態において、暗号化エンジン212は、DSD120から読み出されたデータに対する秘密鍵を用いる署名アルゴリズムを適用することによって認証メタデータに含まれることになる電子署名を生成してよい。他のいかなる要素、デバイス、または、秘密鍵に対応する公開鍵を所有するユーザは、次に、認証メタデータを用いて、署名検証アルゴリズムを適用してよい。さらに他の実施形態において、暗号化エンジン212は、いかなる数の暗号学的ハッシュ関数を用いて、認証メタデータを生成してよい。
(他の実施形態において、OOBエージェント214は、ハードウエア、ファームウエア、ソフトウエアまたはそれらのいかなる組み合わせとして実現されてもよいが、)ホストドライバを介して、リモートサーバ104にDSD120へのアクセスを提供するOOBエージェント214は、図2の実施形態において、OOBプロセッサ124上で実行されるファームウエア・モジュールとして説明される。OOBエージェント214は、大抵、いつも、リモートサーバ104によって利用でき、上述のOOBプロセッサ124の特性のおかげで、マルウエアによる改ざんに耐性を示す。OOBエージェント214は、リモート・ブロック・リード/ライト・モジュール216と、OOB通信モジュール218と、(いくつかの実施形態において)検証モジュール220とを有する。OOB通信モジュール218は、OOBエージェント214が、計算装置102の通信回路116の様々な部分を制御して、ネットワーク106を介して、リモートサーバ104との間でやりとりされる様々なネットワークメッセージの送受信を可能にする。リモート・ブロック・リード/ライト・モジュール216は、リモートサーバが、DSD120上の特定のLBAのデータを要求するためのインターフェースを提供する。OOB通信モジュール218を経由して、DSD120からデータを読むための要求が受信されると、リモート・ブロック・リード/ライト・モジュール216は、その要求を、インバンド・プロセッサ110上で動作するAHCIドライバ202に転送する。リモート・ブロック・リード/ライト・モジュール216とAHCIドライバ202との間のこのメッセージは、ホストエンベッデッドコントローラー・インターフェース(HECI)、または、OOBエージェント214とOS200との間で共有されるその他の何らかの記憶通信路(memory channel)を用いて送信されてよい。AHCIドライバ202は、OOBエージェント214からのそのようなメッセージを受信して、AHCI202に指示して、ライブラリ206から適切なストレージ命令を選択して送信させるように構成されるアプリケーションプログラム・インターフェース(API)208を有してよい。以下において、OOBエージェント214のいくつかの実施形態において含まれる検証モジュール220がより詳細に説明される。
リモートサーバ104のソフトウエアスタックは、OS(図示されていない。)と、1以上のISVアプリケーション222と、リモート・ブロック・リード/ライト・ドライバ224と、ファイルシステムおよびその他のフィルタドライバ226とを有する(これらのそれぞれは、プロセッサ130によって実行されてよく、および/または、システムメモリ132もしくは大容量記憶装置138に記憶されよい。)。図2において説明されるように、リモートサーバ104は、DSD120の1以上のディスクイメージ228(大容量記憶装置138に記憶される。)を有してよい。計算装置102の場合と同様に、リモートサーバ104のOS(ユーザスペース中に存在する。)は、例えば、ISVアプリケーション222のような、よりハイレベルのアプリケーションを提供する(host)。1以上のISVアプリケーション222は、DSD120の安全性検査を要求する、記憶装置(storage)、セキュリティおよび/または監視に関するアプリケーションとして実現されてよい。1以上のISVアプリケーション222は、(OSを経由して)ファイルシステムおよびフィルタドライバ226(カーネル中に存在する。)に対して、リモートサーバ104のハードウエア要素(例えば、大容量記憶装置138)にアクセスするよう要求してよい。例えば、ISVアプリケーション222は、ファイルシステムおよびフィルタドライバ226を経由して、大容量記憶装置138に格納されたディスクイメージ228にアクセスする。当然のことながら、いくつかの実施形態において、OS、ISVアプリケーション222および/またはドライバ226を含むこれらのソフトウエアモジュールは、部分的または完全に、ファームウエアまたはハードウエアに組み入れられてもよい。
リモート・ブロック・リード/ライト・ドライバ224は、リモートサーバ104が、ネット経由で(remotely)計算装置102のDSD120をマウントすることを可能にする。言い換えると、リモート・ブロック・リード/ライト・ドライバ224は、計算装置102上で動作するOOBエージェント214と連動して、リモートサーバ104が、DSD120をマッピングした後、あたかもDSD120がリモートサーバ104のローカルのメモリデバイスに存在するかのように、DSD120にアクセスすることを可能にする。リモートサーバ104によってDSD120がマウントされると、リモート・ブロック・リード/ライト・ドライバ224は、DSD120上の特定のLBAのデータを読み出すための要求を、OOBエージェントに送信してよい(上述の通り、OOBエージェントは、その後、AHCIドライバ202に転送する。)。要求されたデータが返されると、OOBエージェント214は、OOB通信モジュール218を用いて、このデータを(何らかの関連する認証メタデータ(associated authentication metadata)と一緒に)、リモートサーバ104のリモート・ブロック・リード/ライト・ドライバ224に転送してよい。リモート・ブロック・リード/ライト・ドライバ224は、その後、要求されたデータをISVアプリケーション222に提供してもよく、このデータをディスクイメージ228の一部として記憶してもよい。
リモート・ブロック・リード/ライト・ドライバ224は、関連する認証メタデータを用いてDSD120から読み出されたデータの信頼性を検証する検証モジュール230を有する。上述の通り、認証メタデータがMACを含む場合、(検証モジュール230が、暗号化エンジン212によって使用された共有秘密鍵を所有していると仮定すると、)検証モジュール230は、読み出されたデータにハッシュ関数を再適用して、その出力と、認証メタデータに含まれるMACとを比較してよい。追加的または代替的に、検証モジュール230は、認証メタデータ中のカウンタ値と、データがDSD120から読み出されたはずである時間とを比較して、反射攻撃から保護する。認証メタデータが電子署名を含む場合、(検証モジュール230が、暗号化エンジン212によって使用された秘密鍵に対応する公開鍵を所有していると仮定すると、)検証モジュール230は、認証メタデータを用いて、署名検証アルゴリズムを適用してよい。検証モジュール220は、いくつかの実施形態においてOOBエージェント214に含まれてよく、データをリモートサーバ104に送信する前に、実質的に同様の方法で、DSD120から読み出されたデータの信頼性を検証してよい。検証モジュール220を用いる実施形態においては(データの信頼性はすでに検証されているので、)、リモート・ブロック・リード/ライト・ドライバ224から検証モジュール230が省略されてよく、OOBエージェント214が認証メタデータをリモートサーバ104に送信することを見合わせてもよい。
OOBプロセッサ上で動作するOOBエージェント214と、DSD120上で動作する暗号化エンジン212のいくつかの特徴により、システム100は、リモートサーバ104から、計算装置102のDSD120の安全性検査を提供することができる。図3において説明されるとおり、計算装置102は、ネットワーク106を介して安全性検査を提供する方法300を実行するよう構成されている。一般に、方法300には、DSD120からの認証メタデータの検索(retrieval)が含まれる。認証メタデータの検索は、OOBエージェント214またはリモートサーバ104のリモート・ブロック・リード/ライト・ドライバ224によって、DSD120から読み出されたデータの信頼性を検証するために用いられてよい。例えば、OOBプロセッサ124、インバンド・プロセッサ110およびDSD120のハードウエアは、システム100のその他の要素と交信してよく、計算装置102のその他の要素と連動しながら、方法300を実行してよい。方法300は、いかなる目的に対しても、リモートサーバ104からのDSD120の安全性検査を可能にしてよい。上記の目的は限定されるものではないが、上記の目的には、ウイルス防止検査、マルウエア除去、システム修理、システム・リイメージング、および、ファイル/フォルダへの安全なアクセスが含まれる。
方法300は、まず、ブロック302から始まる。ブロック302において、OOBエージェント214は、リモートサーバ104によるDSD120のリモートマウントを確立する。DSD120のリモートマウントは、計算装置102またはリモートサーバ104のいずれかによって開始されてよい。リモートサーバを用いてデータ記憶装置をネット経由でマウントするプロセスの1つであって、方法300のブロック302において採用される可能性のあるプロセスが、現在係属中の米国特許出願12/475,216に開示されている。上記の米国特許出願は、2009年の5月29日に出願され、本出願の譲受人(assignee)に委譲されている。本明細書に記載されるように、リモート・ブロック・リード/ライト・ドライバ224が、DSD120のマスターブートレコード(MBR)、1以上のブートセクタおよび/または1以上のマスタファイルテーブル(MFTs)を要求して、OOBエージェント214が送信してよい。このデータ(大容量記憶デバイス138上のディスクイメージ228の一部に記憶されてよい。)は、リモート・ブロック・リード/ライト・ドライバ224がDSD120をマッピングすることを可能にしてよい。DSD120からのデータが1以上のISVアプリケーション222によって要求されるときはいつでも、その後に、リモート・ブロック・リード/ライト・ドライバ224が、DSD120のMBR、ブートセクタおよび/またはMFTsを用いて、OOBエージェント214からの要求に対するLBAを決定してよい。
方法300のブロック304において、OOBエージェント214が、ネットワーク106を介して、リモート・ブロック・リード/ライト・ドライバ224から、ブロック読み込み要求を受信する。OOBエージェント214は、OOB通信モジュール218を用いて、この要求を受信する。当然のことながら、OOBエージェント214は、持続する電力と、OOBプロセッサ124および通信回路116によって維持されているアウト・オブ・バンドの通信チャネルとのおかげで、計算装置102のインバンド・プロセッサ110が、OS200を実行していない、電力低減状態にあるまたは電源がオフの状態にあるときであっても、リモートサーバ104からのそのような要求を受信できる状態にある。説明のための実施形態はリモートサーバ104とOOBプロセッサ124との間で(通信回路116および通信回路136を経由して、)直接通信される場合について説明しているけれども、リモートサーバ104が、1以上のホストを利用したチャネル(例えば、インバンド・プロセッサ110およびOS200をも含む。)を経由して、OOBプロセッサ124と通信してよいことも考えられる。
ブロック306において、OOBエージェント214は、リモート・ブロック・リード/ライト・モジュール216を用いて、計算装置102のインバンド・プロセッサ110上で動作している適切なホストドライバに対して、ブロック読み出し要求を転送する。インバンド・プロセッサ110がOS200を実行しているとき(すなわち、OS200がすでに起動しているとき)、上述のように、OOBエージェント214が、AHCIドライバ202に対して、ブロック読み出し要求を転送してよい。しかしながら、インバンド・プロセッサ110が電力低減状態にあるもしくは電源がオフの状態にあるとき、または、OS200がまだ起動していないときには、その代わりに、リモート・ブロック・リード/ライト・モジュール216が、ブロック読み出し要求を、計算装置102のBIOSドライバに命令してよい(BIOSドライバへのアクセスを与えるのに必要であれば、OOBプロセッサ124によって、計算装置102に電力が供給されてよい。)。そのような実施形態において、OOBエージェント214は、計算装置102のOS200の状態に関わらず、リモートサーバ104にDSD120へのアクセスを提供してよい。
ブロック308において、AHCIドライバ202(またはその他のホストドライバ)が、認証ストレージ命令(authentication storage command)をDSDインターフェース・モジュール210に送信する。AHCIドライバ202は、OOBエージェント214から転送されたブロック読み出し要求を受信すると、ライブラリ206から、適切なIOTCLメッセージを選択する。図2および図3の説明のための実施形態において、AHCIドライバが、OOB API208経由で読み出し要求を受信したときはいつでも、AHCIドライバは、要求されたデータを読み出すだけでなく、DSD120に認証メタデータをも生成させるストレージ命令を選択して送信する。このようにして、リモート・ブロック・リード/ライト・ドライバ224に起因する全ての要求が認証メタデータをもたらすことになる。認証メタデータは、DSD120から読み出されたデータの信頼性を検証するのに用いられてよい。
ブロック310において、DSDインターフェース・モジュール210が、AHCI202からの認証ストレージ命令を受信したことに応じて、要求されたデータを、DSD120から読み出し、暗号化エンジン212を用いて、認証メタデータを生成する。認証メタデータは、上述したタイプのものであればいかなるものであってもよく、例えば、MAC、カウンタ値、電子署名、暗号化ハッシュ値および/またはそれらと同様のものであってよい。ブロック312において、DSDインターフェース・モジュール210は、DSD120から読み出されたデータと、DSD120によって生成された認証メタデータとを、AHCI202に返す。ブロック314において、AHCI202は、そのデータと認証メタデータとを、OOBエージェント214のリモート・ブロック・リード/ライト・モジュール216に転送する。
検証モジュール220を採用する実施形態において、方法300は、オプションのブロック316に進む。ブロック316において、OOBエージェント214が、DSD120によって生成された認証メタデータを用いて、DSD120から読み出したデータを検証する。DSD120から読み出されたデータの信頼性の検証は、上述されたいかなる方法を用いて実行されてもよい。オプションのブロック316の後(または、検証モジュール220のない実施形態においては、ブロック314の後)、方法300は、ブロック318に進む。ブロック318において、OOBエージェント214は、OOB通信モジュール218を用いて、ネットワーク106を介して、データおよび認証メタデータを、リモート・ブロック・リード/ライト・ドライバ224に送信する。
(ブロック320は、オプションのブロック316を実施する実施形態においては、スキップされてよいけれども、)ブロック320において、リモート・ブロック・リード/ライト・ドライバ224は、認証モジュール230を使用して、認証メタデータを用いてデータを検証してよい。DSD120から読み出されたデータの信頼性の検証は、上述されたいかなる方法を用いて実行されてもよい。データが検証されると、リモート・ブロック・リード/ライト・ドライバ224は、要求されたデータをISVアプリケーション222に提供してよい、および/または、ディスクイメージ228の一部として、このデータを記憶してよい。リモート・ブロック・リード/ライト・ドライバ224が、ネットワーク106を介して、OOBエージェント214に別のブロック読み出し要求を送信した場合、方法300は、ブロック304に戻ってよい(それぞれのサイクルの間、ブロック302は、繰り返されなくてもよい。)。
次に、図4を参照すると、システム100の計算装置102およびリモートサーバ104上で動作するソフトウエア/ファームウエア環境の説明のための実施形態の他の例が、簡略化されたブロック図として示されている。図4の実施形態は、類似する参照番号を用いて表示される、図2と同様の要素およびモジュールを有してよい。これらの要素およびモジュールの動作は、以下で説明される動作を除いて、図2を参照して説明された要素およびモジュールの動作と、実質的に同様であってよい。例えば、DSDインターフェース・モジュール210、OOBエージェント214およびリモートサーバ104のソフトウエアスタック(OS、1以上のISVアプリケーション222、リモート・ブロック・リード/ライト・ドライバ224ならびにファイルシステムおよびその他のフィルタドライバ226を含む。)の動作は、これらのモジュールが暗号化エンジン212、検証モジュール220または検証モジュール230を有しないこと以外は、図2を参照して説明された要素およびモジュールと同様であってよい。この説明のための実施形態において、DSD120から読み出されたデータの信頼性が、メタデータを用いることなく保証される。
図4に示すとおり、計算装置102のソフトウエアスタックは、OS200、AHCIドライバ202、ならびに、ファイルシステムおよびその他のフィルタドライバ204を含む(それらは、それぞれ、インバンド・プロセッサ110によって実行される、および/または、システムメモリ114もしくはDSD120に記憶されてよい。)。加えて、ソフトウエアスタックは、インバンド・プロセッサ110上で動作するセキュア・コンテナ400を含んでよい。セキュア・コンテナ400は、安全な(secure)メモリおよび/または実行空間(execution space)として実現されてよい。すなわち、セキュア・コンテナ400は、OS200から独立に維持され、ドライバ202およびドライバ204と結び付けられ、これらのソフトウエアモジュールに直接アクセスすることはできない(これにより、セキュア・コンテナ400の安全性を維持することができる。)。図4の説明のための実施形態において、AHCIドライバ202ではなく、セキュア・コンテナ内で動作するホストドライバが、DSD120へのアクセスに対する直接的な責任を有する。OS200は、やはり、AHCIドライバ202を介して、DSD120に間接的にアクセスする。しかし、AHCIドライバ202は、チップセットファームウエア含まれる1以上のファームウエア・フック402を信頼して、セキュア・コンテナ400の中で動作するドライバに要求を渡す。
セキュア・コンテナ400の中で動作するドライバは、ストレージ命令ライブラリ206およびOOB API208(図2において説明された実施形態のAHCI202のOOB APIに類似する。)を有する。この実施形態において、OOBエージェント214は、リモートサーバ104に、セキュア・コンテナ400の中で動作するホストドライバを経由したDSD120へのアクセスを提供する。リモート・ブロック・リード/ライト・モジュール216およびOOB通信モジュール218は、リモート・ブロック・リード/ライト・モジュール216が、AHCI202ではなく、セキュア・コンテナ400の中で動作するドライバのOOB API208に対して、ブロック読み出し要求を転送する点を除いて、上述のものと同様に機能する。OOB API208は、OOBエージェント214からのメッセージを受信し、ドライバに対して、ライブラリ206から適切なストレージ命令を選択して送信するよう指示するように構成される。DSD120から読み出されたデータは、ドライバに返され、OOBエージェント214に直接転送される。このデータ転送の間、OS200および関連するドライバ202およびドライバ204が迂回されてよいので、このセキュリティ上の懸念が除去され、DSD120が認証メタデータを生成する必要がない。
インバンド・プロセッサ110上で動作するセキュア・コンテナ400と、OOBプロセッサ124上で動作するOOBエージェント214との特徴のいくつかにより、システム100は、リモートサーバ104からの計算装置102の安全性検査を提供することができる。図5において説明されるとおり、計算装置102は、ネットワーク106を介して、安全性検査を提供する方法500を実行するように構成されてよい。一般的に、方法500は、OOBエージェント214が、セキュア・コンテナ400の中で動作するホストドライバと交信して、DSD120から読み出されたデータの信頼性を保証する段階を有する。例えば、OOBプロセッサ124、インバンド・プロセッサ110およびDSD120のハードウエアは、システム100のその他の要素と交信してよく、計算装置102のその他の要素と連動しながら、方法500を実行してよい。方法500は、いかなる目的に対しても、リモートサーバ104からのDSD120の安全性検査を可能にしてよい。上記の目的は限定されるものではないが、上記の目的には、ウイルス防止検査、マルウエア除去、システム修理、システム・リイメージング、および、ファイル/フォルダへの安全なアクセスが含まれる。
方法500は、まず、ブロック502から始まる。ブロック502において、OOBエージェント214は、リモートサーバ104によるDSD120のリモートマウントを確立する。ブロック504において、OOBエージェント214が、ネットワーク106を介して、リモート・ブロック・リード/ライト・ドライバ224から、ブロック読み込み要求を受信する。DSD120のリモートマウントの確立と、ブロック読み出し要求の受信は、大体、図3のブロック302およびブロック304を参照して説明されたように実行されてよい。
ブロック506において、OOBエージェント214は、リモート・ブロック・リード/ライト・モジュール216を用いて、計算装置102のインバンド・プロセッサ110上のセキュア・コンテナ400の中で動作するホストドライバに、受信したブロック読み出し要求を転送する。ブロック508において、セキュア・コンテナ400の中で動作するドライバは、DSDインターフェース・モジュール210に、ストレージ命令を送信する。セキュア・コンテナ400の中で動作するドライバは、OOBエージェント214から転送されたブロック読み出し要求を受信すると、ライブラリ206から、適切なIOTCLメッセージを選択する。
ブロック510において、セキュア・コンテナ400の中で動作するドライバからストレージ命令を受信したことに応じて、DSDインターフェース・モジュール210が、要求されたデータをDSD120から読み出だす。ブロック512において、DSDインターフェース・モジュール210が、ドライバに、DSD120から読み出されたデータを返す。ブロック514において、セキュア・コンテナ400の中で動作するドライバが、データと認証メタデータとを、OOBエージェント214のリモート・ブロック・リード/ライト・モジュール216に転送する。方法500は、ブロック516で終了する。ブロック516において、OOBエージェント214は、OOB通信回路218を用いて、ネットワーク106を介して、リモート・ブロック・リード/ライト・ドライバ224に、データを送信する。リモート・ブロック・リード/ライト・ドライバ224が、ネットワーク106を介して、OOBエージェント214に別のブロック読み出し要求を送信した場合、方法500は、ブロック504に戻ってよい(それぞれのサイクルの間、ブロック502は、繰り返されなくてもよい。)。
開示が図解され、図面および上述の記載により詳細に説明された。しかし、そのような図および説明は、一例と考えられるべきであり、文字通りに制限するものと考えられるべきではない。単に説明のための実施形態が示され、説明されていると理解されるべきであり、開示の精神および添付の特許請求の範囲でカバーされる全ての変更および改良が、保護されるべきと理解されるべきである。

Claims (18)

  1. 計算装置上で動作し、前記計算装置のオペレーション・システムの状態に関わらず、リモートサーバ・ドライバと情報をやり取りすることができるアウト・オブ・バンドエージェント(OOBエージェント)を用いて、リモートサーバから、ブロック読み出し要求を受信する段階と、
    前記ブロック読み出し要求の受信に応じて、前記計算装置のホストドライバを用いて、データ記憶装置にストレージ命令を送信する段階と、
    前記ストレージ命令に応じて、前記データ記憶装置から読み出されたデータと、前記データ記憶装置に備えられた暗号化エンジンにより生成された認証メタデータとを受信する段階と、
    前記認証メタデータを用いて、前記OOBエージェントまたは前記リモートサーバ・ドライバにより前記データを検証する段階と、
    を有する方法。
  2. 前記OOBエージェントを用いて、前記リモートサーバから、前記ブロック読み出し要求を受信する段階は、前記計算装置のOOBプロセッサ上で動作するファームウエア・モジュールを用いて、前記ブロック読み出し要求を受信する段階を含む、
    請求項1に記載の方法。
  3. 前記OOBエージェントを用いて、前記リモートサーバ・ドライバから、前記ブロック読み出し要求を受信する段階は、前記計算装置の前記オペレーション・システムが動作していない間に、前記ブロック読み出し要求を受信する段階を含む、
    請求項1または2に記載の方法。
  4. 前記データ記憶装置に前記ストレージ命令を送信する段階は、前記計算装置の基本入出力システム(BIOS)ドライバを用いて、前記ストレージ命令を生成する段階を含む、
    請求項3に記載の方法。
  5. 前記データ記憶装置に前記ストレージ命令を送信する段階は、前記計算装置のアドバンスド・ホストコントローラ・インターフェース(AHCI)ドライバを用いて、前記ストレージ命令を送信する段階を含む、
    請求項1または2に記載の方法。
  6. 前記データ記憶装置に備えられた前記暗号化エンジンによって生成された認証メタデータを受信する段階は、前記データ記憶装置から読み出された前記データに適用された鍵付きハッシュ関数の出力を受信する段階を含む、
    請求項1から5のいずれか1項に記載の方法。
  7. 前記認証メタデータを用いて、前記OOBエージェントまたは前記リモートサーバ・ドライバにより前記データを検証する段階は、前記鍵付きハッシュ関数を前記データに再適用して、前記鍵付きハッシュ関数の出力を、前記認証メタデータと比較する段階を含む、
    請求項6に記載の方法。
  8. 前記データ記憶装置に備えられた前記暗号化エンジンによって生成された認証メタデータを受信する段階は、前記データ記憶装置から前記データが読み出された時間を示すカウンタ値を受信する段階をさらに含む、
    請求項6または7に記載の方法。
  9. 前記認証メタデータを用いて、前記OOBエージェントまたは前記リモートサーバ・ドライバにより前記データを検証する段階は、前記カウンタ値を、期待された時間と比較する段階をさらに含む、
    請求項8に記載の方法。
  10. 前記データ記憶装置に備えられた前記暗号化エンジンによって生成された認証メタデータを受信する段階は、前記データ記憶装置から読み出されたデータと、秘密鍵とに基づく電子署名を受信する段階を含む、
    請求項1から5のいずれか1項に記載の方法。
  11. 前記認証メタデータを用いて、前記OOBエージェントまたは前記リモートサーバ・ドライバにより前記データを検証する段階は、前記秘密鍵に対応する公開鍵を用いて、前記電子署名を検証する段階を含む、
    請求項10に記載の方法。
  12. 前記認証メタデータを用いて前記データを検証する前記リモートサーバ・ドライバに、前記データおよび前記認証メタデータを、前記OOBエージェントを用いて送信する段階をさらに有する、
    請求項1から11のいずれか1項に記載の方法。
  13. 前記OOBエージェントを用いて、前記リモートサーバ・ドライバに前記データを送信する段階をさらに有し、
    前記OOBエージェントは、前記データを送信する前に、前記認証メタデータを用いて前記データを検証する、
    請求項1から11のいずれか1項に記載の方法。
  14. コンピュータに、
    請求項1から請求項13までの何れか一項に記載の方法を実行させるための、
    プログラム。
  15. オペレーション・システムおよび少なくとも1つのホストドライバを実行するインバンド・プロセッサと、
    リモートサーバと情報をやり取りする通信回路と、
    前記オペレーション・システムの状態に関わらず、前記通信回路を用いて前記リモートサーバと情報をやり取りすることができるアウト・オブ・バンド・プロセッサ(OOBプロセッサ)と、
    を備え、
    前記OOBプロセッサは、
    前記リモートサーバからブロック読み出し要求を受信し、
    前記少なくとも1つのホストドライバに指示して、データ記憶装置にストレージ命令を送信させ、
    前記データ記憶装置から読み出されたデータと、前記データ記憶装置に備えられた暗号化エンジンによって生成された認証メタデータとを受信し、
    認証メタデータを用いて前記データを検証し、
    前記検証に応じて、前記データを、前記リモートサーバに送信する、
    計算装置。
  16. 前記少なくとも1つのホストドライバは、前記オペレーション・システムが起動する前に、前記インバンド・プロセッサによって実行される基本入出力システム(BIOS)ドライバである、
    請求項15に記載の計算装置。
  17. 前記少なくとも1つのホストドライバは、前記オペレーション・システムの実行中に、前記インバンド・プロセッサによって実行されるアドバンスド・ホストコントローラ・インターフェース(AHCI)ドライバである、
    請求項15に記載の計算装置。
  18. 前記OOBプロセッサは、さらに、前記認証メタデータを、前記リモートサーバに送信する、
    請求項15から17のいずれか1項に記載の計算装置。
JP2011103280A 2010-05-21 2011-05-02 リモートサーバからデータ記憶装置の安全性を検査する方法および装置 Expired - Fee Related JP5362767B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/785,146 2010-05-21
US12/785,146 US8856534B2 (en) 2010-05-21 2010-05-21 Method and apparatus for secure scan of data storage device from remote server

Publications (2)

Publication Number Publication Date
JP2011253525A JP2011253525A (ja) 2011-12-15
JP5362767B2 true JP5362767B2 (ja) 2013-12-11

Family

ID=44350935

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011103280A Expired - Fee Related JP5362767B2 (ja) 2010-05-21 2011-05-02 リモートサーバからデータ記憶装置の安全性を検査する方法および装置

Country Status (6)

Country Link
US (1) US8856534B2 (ja)
EP (1) EP2388729A3 (ja)
JP (1) JP5362767B2 (ja)
KR (1) KR101289581B1 (ja)
CN (2) CN102255888B (ja)
WO (1) WO2011146857A2 (ja)

Families Citing this family (184)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013095573A1 (en) * 2011-12-22 2013-06-27 Intel Corporation Activation and monetization of features built into storage subsystems using a trusted connect service back end infrastructure
WO2013095568A1 (en) * 2011-12-22 2013-06-27 Intel Corporation Systems and methods for providing anti-malware protection and malware forensics on storage devices
US20130166672A1 (en) * 2011-12-22 2013-06-27 International Business Machines Corporation Physically Remote Shared Computer Memory
EP2795513A4 (en) * 2011-12-22 2015-12-16 Intel Corp SYSTEMS AND METHODS FOR PROVIDING PROTECTION AGAINST MALICIOUS SOFTWARE ON STORAGE DEVICES
CN104054315A (zh) * 2012-01-30 2014-09-17 惠普发展公司,有限责任合伙企业 在网络上访问安全信息
US9027148B2 (en) * 2012-03-19 2015-05-05 Intel Corporation Anti-malware protection operation with instruction included in an operand
KR101701277B1 (ko) * 2012-04-16 2017-02-01 인텔 코포레이션 확장성 보안 실행
US9367328B2 (en) * 2012-06-28 2016-06-14 Intel Corporation Out-of-band host OS boot sequence verification
US10064063B2 (en) * 2012-08-24 2018-08-28 Motorola Solutions, Inc. Method and apparatus for authenticating digital information
US8793506B2 (en) * 2012-08-31 2014-07-29 Intel Corporation Mechanism for facilitating encryption-free integrity protection of storage data at computing systems
CN105027526B (zh) * 2012-12-10 2018-09-14 皇家Kpn公司 用以保护移动网络的系统
KR101480903B1 (ko) * 2013-09-03 2015-01-13 한국전자통신연구원 모바일 악성코드 다중 점검 방법
US9442864B2 (en) * 2013-12-27 2016-09-13 Intel Corporation Bridging circuitry between a memory controller and request agents in a system having multiple system memory protection schemes
US10587689B2 (en) * 2014-02-14 2020-03-10 Western Digital Technologies, Inc. Data storage device with embedded software
CN103973703A (zh) * 2014-05-23 2014-08-06 杭州智屏科技有限公司 一种用于应用程序和服务器之间交换数据安全的请求方法
US9729583B1 (en) 2016-06-10 2017-08-08 OneTrust, LLC Data processing systems and methods for performing privacy assessments and monitoring of new versions of computer code for privacy compliance
WO2016049895A1 (zh) * 2014-09-30 2016-04-07 华为技术有限公司 配置的方法、配置的装置及设备
US9584532B2 (en) * 2014-10-31 2017-02-28 Ncr Corporation Enterprise intrusion detection and remediation
CN104461800A (zh) * 2014-11-24 2015-03-25 英业达科技有限公司 硬盘运行状态检测系统
US10185842B2 (en) 2015-03-18 2019-01-22 Intel Corporation Cache and data organization for memory protection
US9798900B2 (en) 2015-03-26 2017-10-24 Intel Corporation Flexible counter system for memory protection
US10054636B2 (en) 2015-10-23 2018-08-21 Intel IP Corporation Device, system and method to support communication of test, debug or trace information with an external input/output interface
US20220164840A1 (en) 2016-04-01 2022-05-26 OneTrust, LLC Data processing systems and methods for integrating privacy information management systems with data loss prevention tools or other tools for privacy design
US10706447B2 (en) 2016-04-01 2020-07-07 OneTrust, LLC Data processing systems and communication systems and methods for the efficient generation of privacy risk assessments
US11244367B2 (en) 2016-04-01 2022-02-08 OneTrust, LLC Data processing systems and methods for integrating privacy information management systems with data loss prevention tools or other tools for privacy design
US11004125B2 (en) 2016-04-01 2021-05-11 OneTrust, LLC Data processing systems and methods for integrating privacy information management systems with data loss prevention tools or other tools for privacy design
US10783256B2 (en) 2016-06-10 2020-09-22 OneTrust, LLC Data processing systems for data transfer risk identification and related methods
US11157600B2 (en) 2016-06-10 2021-10-26 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US11475136B2 (en) 2016-06-10 2022-10-18 OneTrust, LLC Data processing systems for data transfer risk identification and related methods
US11295316B2 (en) 2016-06-10 2022-04-05 OneTrust, LLC Data processing systems for identity validation for consumer rights requests and related methods
US10846433B2 (en) 2016-06-10 2020-11-24 OneTrust, LLC Data processing consent management systems and related methods
US10454973B2 (en) 2016-06-10 2019-10-22 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US11481710B2 (en) 2016-06-10 2022-10-25 OneTrust, LLC Privacy management systems and methods
US11354434B2 (en) 2016-06-10 2022-06-07 OneTrust, LLC Data processing systems for verification of consent and notice processing and related methods
US10242228B2 (en) 2016-06-10 2019-03-26 OneTrust, LLC Data processing systems for measuring privacy maturity within an organization
US11636171B2 (en) 2016-06-10 2023-04-25 OneTrust, LLC Data processing user interface monitoring systems and related methods
US11544667B2 (en) 2016-06-10 2023-01-03 OneTrust, LLC Data processing systems for generating and populating a data inventory
US11134086B2 (en) 2016-06-10 2021-09-28 OneTrust, LLC Consent conversion optimization systems and related methods
US10685140B2 (en) 2016-06-10 2020-06-16 OneTrust, LLC Consent receipt management systems and related methods
US10713387B2 (en) 2016-06-10 2020-07-14 OneTrust, LLC Consent conversion optimization systems and related methods
US11343284B2 (en) 2016-06-10 2022-05-24 OneTrust, LLC Data processing systems and methods for performing privacy assessments and monitoring of new versions of computer code for privacy compliance
US10885485B2 (en) 2016-06-10 2021-01-05 OneTrust, LLC Privacy management systems and methods
US10798133B2 (en) 2016-06-10 2020-10-06 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US10606916B2 (en) 2016-06-10 2020-03-31 OneTrust, LLC Data processing user interface monitoring systems and related methods
US11038925B2 (en) 2016-06-10 2021-06-15 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US11625502B2 (en) 2016-06-10 2023-04-11 OneTrust, LLC Data processing systems for identifying and modifying processes that are subject to data subject access requests
US10467432B2 (en) 2016-06-10 2019-11-05 OneTrust, LLC Data processing systems for use in automatically generating, populating, and submitting data subject access requests
US10997318B2 (en) 2016-06-10 2021-05-04 OneTrust, LLC Data processing systems for generating and populating a data inventory for processing data access requests
US11403377B2 (en) 2016-06-10 2022-08-02 OneTrust, LLC Privacy management systems and methods
US10282700B2 (en) 2016-06-10 2019-05-07 OneTrust, LLC Data processing systems for generating and populating a data inventory
US11146566B2 (en) 2016-06-10 2021-10-12 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US11651104B2 (en) 2016-06-10 2023-05-16 OneTrust, LLC Consent receipt management systems and related methods
US11651106B2 (en) 2016-06-10 2023-05-16 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US10284604B2 (en) 2016-06-10 2019-05-07 OneTrust, LLC Data processing and scanning systems for generating and populating a data inventory
US11210420B2 (en) 2016-06-10 2021-12-28 OneTrust, LLC Data subject access request processing systems and related methods
US10762236B2 (en) 2016-06-10 2020-09-01 OneTrust, LLC Data processing user interface monitoring systems and related methods
US11301796B2 (en) 2016-06-10 2022-04-12 OneTrust, LLC Data processing systems and methods for customizing privacy training
US11238390B2 (en) 2016-06-10 2022-02-01 OneTrust, LLC Privacy management systems and methods
US11074367B2 (en) 2016-06-10 2021-07-27 OneTrust, LLC Data processing systems for identity validation for consumer rights requests and related methods
US10896394B2 (en) 2016-06-10 2021-01-19 OneTrust, LLC Privacy management systems and methods
US10708305B2 (en) 2016-06-10 2020-07-07 OneTrust, LLC Automated data processing systems and methods for automatically processing requests for privacy-related information
US11416109B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Automated data processing systems and methods for automatically processing data subject access requests using a chatbot
US10496803B2 (en) 2016-06-10 2019-12-03 OneTrust, LLC Data processing systems and methods for efficiently assessing the risk of privacy campaigns
US10909265B2 (en) 2016-06-10 2021-02-02 OneTrust, LLC Application privacy scanning systems and related methods
US12045266B2 (en) 2016-06-10 2024-07-23 OneTrust, LLC Data processing systems for generating and populating a data inventory
US10776518B2 (en) 2016-06-10 2020-09-15 OneTrust, LLC Consent receipt management systems and related methods
US11277448B2 (en) 2016-06-10 2022-03-15 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US11200341B2 (en) 2016-06-10 2021-12-14 OneTrust, LLC Consent receipt management systems and related methods
US10769301B2 (en) 2016-06-10 2020-09-08 OneTrust, LLC Data processing systems for webform crawling to map processing activities and related methods
US11222142B2 (en) 2016-06-10 2022-01-11 OneTrust, LLC Data processing systems for validating authorization for personal data collection, storage, and processing
US11366786B2 (en) 2016-06-10 2022-06-21 OneTrust, LLC Data processing systems for processing data subject access requests
US11222139B2 (en) 2016-06-10 2022-01-11 OneTrust, LLC Data processing systems and methods for automatic discovery and assessment of mobile software development kits
US10706131B2 (en) 2016-06-10 2020-07-07 OneTrust, LLC Data processing systems and methods for efficiently assessing the risk of privacy campaigns
US10503926B2 (en) 2016-06-10 2019-12-10 OneTrust, LLC Consent receipt management systems and related methods
US11138242B2 (en) 2016-06-10 2021-10-05 OneTrust, LLC Data processing systems and methods for automatically detecting and documenting privacy-related aspects of computer software
US10740487B2 (en) 2016-06-10 2020-08-11 OneTrust, LLC Data processing systems and methods for populating and maintaining a centralized database of personal data
US11418492B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Data processing systems and methods for using a data model to select a target data asset in a data migration
US11461500B2 (en) 2016-06-10 2022-10-04 OneTrust, LLC Data processing systems for cookie compliance testing with website scanning and related methods
US11151233B2 (en) 2016-06-10 2021-10-19 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US10169609B1 (en) 2016-06-10 2019-01-01 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US10853501B2 (en) 2016-06-10 2020-12-01 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US10776514B2 (en) 2016-06-10 2020-09-15 OneTrust, LLC Data processing systems for the identification and deletion of personal data in computer systems
US11520928B2 (en) 2016-06-10 2022-12-06 OneTrust, LLC Data processing systems for generating personal data receipts and related methods
US10642870B2 (en) 2016-06-10 2020-05-05 OneTrust, LLC Data processing systems and methods for automatically detecting and documenting privacy-related aspects of computer software
US10706174B2 (en) 2016-06-10 2020-07-07 OneTrust, LLC Data processing systems for prioritizing data subject access requests for fulfillment and related methods
US11188862B2 (en) 2016-06-10 2021-11-30 OneTrust, LLC Privacy management systems and methods
US10509920B2 (en) * 2016-06-10 2019-12-17 OneTrust, LLC Data processing systems for processing data subject access requests
US11228620B2 (en) 2016-06-10 2022-01-18 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US10416966B2 (en) 2016-06-10 2019-09-17 OneTrust, LLC Data processing systems for identity validation of data subject access requests and related methods
US11675929B2 (en) 2016-06-10 2023-06-13 OneTrust, LLC Data processing consent sharing systems and related methods
US10678945B2 (en) 2016-06-10 2020-06-09 OneTrust, LLC Consent receipt management systems and related methods
US11438386B2 (en) 2016-06-10 2022-09-06 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US11586700B2 (en) 2016-06-10 2023-02-21 OneTrust, LLC Data processing systems and methods for automatically blocking the use of tracking tools
US10706379B2 (en) 2016-06-10 2020-07-07 OneTrust, LLC Data processing systems for automatic preparation for remediation and related methods
US10909488B2 (en) 2016-06-10 2021-02-02 OneTrust, LLC Data processing systems for assessing readiness for responding to privacy-related incidents
US10878127B2 (en) 2016-06-10 2020-12-29 OneTrust, LLC Data subject access request processing systems and related methods
US11100444B2 (en) 2016-06-10 2021-08-24 OneTrust, LLC Data processing systems and methods for providing training in a vendor procurement process
US10353673B2 (en) 2016-06-10 2019-07-16 OneTrust, LLC Data processing systems for integration of consumer feedback with data subject access requests and related methods
US10944725B2 (en) 2016-06-10 2021-03-09 OneTrust, LLC Data processing systems and methods for using a data model to select a target data asset in a data migration
US10997315B2 (en) 2016-06-10 2021-05-04 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US10949170B2 (en) 2016-06-10 2021-03-16 OneTrust, LLC Data processing systems for integration of consumer feedback with data subject access requests and related methods
US11025675B2 (en) 2016-06-10 2021-06-01 OneTrust, LLC Data processing systems and methods for performing privacy assessments and monitoring of new versions of computer code for privacy compliance
US10726158B2 (en) 2016-06-10 2020-07-28 OneTrust, LLC Consent receipt management and automated process blocking systems and related methods
US10839102B2 (en) 2016-06-10 2020-11-17 OneTrust, LLC Data processing systems for identifying and modifying processes that are subject to data subject access requests
US10565236B1 (en) 2016-06-10 2020-02-18 OneTrust, LLC Data processing systems for generating and populating a data inventory
US10565161B2 (en) 2016-06-10 2020-02-18 OneTrust, LLC Data processing systems for processing data subject access requests
US10873606B2 (en) 2016-06-10 2020-12-22 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US11366909B2 (en) 2016-06-10 2022-06-21 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US11416589B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US10848523B2 (en) 2016-06-10 2020-11-24 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US10949565B2 (en) 2016-06-10 2021-03-16 OneTrust, LLC Data processing systems for generating and populating a data inventory
US10496846B1 (en) 2016-06-10 2019-12-03 OneTrust, LLC Data processing and communications systems and methods for the efficient implementation of privacy by design
US10282559B2 (en) 2016-06-10 2019-05-07 OneTrust, LLC Data processing systems for identifying, assessing, and remediating data processing risks using data modeling techniques
US11087260B2 (en) 2016-06-10 2021-08-10 OneTrust, LLC Data processing systems and methods for customizing privacy training
US10803200B2 (en) 2016-06-10 2020-10-13 OneTrust, LLC Data processing systems for processing and managing data subject access in a distributed environment
US10796260B2 (en) 2016-06-10 2020-10-06 OneTrust, LLC Privacy management systems and methods
US11392720B2 (en) 2016-06-10 2022-07-19 OneTrust, LLC Data processing systems for verification of consent and notice processing and related methods
US10586075B2 (en) 2016-06-10 2020-03-10 OneTrust, LLC Data processing systems for orphaned data identification and deletion and related methods
US10318761B2 (en) 2016-06-10 2019-06-11 OneTrust, LLC Data processing systems and methods for auditing data request compliance
US11188615B2 (en) 2016-06-10 2021-11-30 OneTrust, LLC Data processing consent capture systems and related methods
US11727141B2 (en) 2016-06-10 2023-08-15 OneTrust, LLC Data processing systems and methods for synching privacy-related user consent across multiple computing devices
US10510031B2 (en) 2016-06-10 2019-12-17 OneTrust, LLC Data processing systems for identifying, assessing, and remediating data processing risks using data modeling techniques
US11336697B2 (en) 2016-06-10 2022-05-17 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US11328092B2 (en) 2016-06-10 2022-05-10 OneTrust, LLC Data processing systems for processing and managing data subject access in a distributed environment
US10565397B1 (en) 2016-06-10 2020-02-18 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US11416590B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US11023842B2 (en) 2016-06-10 2021-06-01 OneTrust, LLC Data processing systems and methods for bundled privacy policies
US10572686B2 (en) 2016-06-10 2020-02-25 OneTrust, LLC Consent receipt management systems and related methods
US11294939B2 (en) 2016-06-10 2022-04-05 OneTrust, LLC Data processing systems and methods for automatically detecting and documenting privacy-related aspects of computer software
US11057356B2 (en) 2016-06-10 2021-07-06 OneTrust, LLC Automated data processing systems and methods for automatically processing data subject access requests using a chatbot
US12052289B2 (en) 2016-06-10 2024-07-30 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US11562097B2 (en) 2016-06-10 2023-01-24 OneTrust, LLC Data processing systems for central consent repository and related methods
US10614247B2 (en) 2016-06-10 2020-04-07 OneTrust, LLC Data processing systems for automated classification of personal information from documents and related methods
US11144622B2 (en) 2016-06-10 2021-10-12 OneTrust, LLC Privacy management systems and methods
US10592692B2 (en) 2016-06-10 2020-03-17 OneTrust, LLC Data processing systems for central consent repository and related methods
US10592648B2 (en) 2016-06-10 2020-03-17 OneTrust, LLC Consent receipt management systems and related methods
US11416798B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Data processing systems and methods for providing training in a vendor procurement process
US11138299B2 (en) 2016-06-10 2021-10-05 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US10509894B2 (en) 2016-06-10 2019-12-17 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US11222309B2 (en) 2016-06-10 2022-01-11 OneTrust, LLC Data processing systems for generating and populating a data inventory
US10607028B2 (en) 2016-06-10 2020-03-31 OneTrust, LLC Data processing systems for data testing to confirm data deletion and related methods
US10776517B2 (en) 2016-06-10 2020-09-15 OneTrust, LLC Data processing systems for calculating and communicating cost of fulfilling data subject access requests and related methods
US11227247B2 (en) 2016-06-10 2022-01-18 OneTrust, LLC Data processing systems and methods for bundled privacy policies
US11410106B2 (en) 2016-06-10 2022-08-09 OneTrust, LLC Privacy management systems and methods
US11354435B2 (en) 2016-06-10 2022-06-07 OneTrust, LLC Data processing systems for data testing to confirm data deletion and related methods
US10706176B2 (en) 2016-06-10 2020-07-07 OneTrust, LLC Data-processing consent refresh, re-prompt, and recapture systems and related methods
US10585968B2 (en) 2016-06-10 2020-03-10 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US11341447B2 (en) 2016-06-10 2022-05-24 OneTrust, LLC Privacy management systems and methods
WO2018019838A1 (en) * 2016-07-25 2018-02-01 Telefonaktiebolaget Lm Ericsson (Publ) Proof-of-presence indicator
US10528485B2 (en) 2016-09-30 2020-01-07 Intel Corporation Method and apparatus for sharing security metadata memory space
CN106503550A (zh) * 2016-10-10 2017-03-15 哈尔滨理工大学 一种基于Python开发的预警机系统
CN106534172A (zh) * 2016-12-07 2017-03-22 北京数字观星科技有限公司 一种内网远程扫描系统及其扫描内网的方法
US10013577B1 (en) 2017-06-16 2018-07-03 OneTrust, LLC Data processing systems for identifying whether cookies contain personally identifying information
GB2564889B (en) * 2017-07-26 2021-12-15 Arm Ip Ltd A Device for applying to packaging
CN109857629B (zh) * 2017-11-30 2020-03-13 贵州白山云科技股份有限公司 一种扫描检测方法及装置
US20200387611A1 (en) * 2017-12-22 2020-12-10 Vincent J. Zimmer Manageability engine and automatic firmware validation
US10932603B2 (en) 2018-01-18 2021-03-02 Shema Israel Mezuzah Inc Electronic mezuzah system, device and method of use
EP3561709B1 (en) * 2018-04-25 2020-07-29 Siemens Aktiengesellschaft Data processing apparatus, system, and method for proving or checking the security of a data processing apparatus
CN110750206B (zh) * 2018-07-24 2023-05-02 阿里巴巴集团控股有限公司 数据处理方法、装置及系统
US10803202B2 (en) 2018-09-07 2020-10-13 OneTrust, LLC Data processing systems for orphaned data identification and deletion and related methods
US11144675B2 (en) 2018-09-07 2021-10-12 OneTrust, LLC Data processing systems and methods for automatically protecting sensitive data within privacy management systems
US11544409B2 (en) 2018-09-07 2023-01-03 OneTrust, LLC Data processing systems and methods for automatically protecting sensitive data within privacy management systems
EP3650968A1 (de) * 2018-11-07 2020-05-13 Siemens Aktiengesellschaft Verfahren zum betrieb einer produktions- oder werkzeugmaschine und produktions- oder werkzeugmaschine sowie computerprogramm zum betrieb einer produktions- oder werkzeugmaschine
EP3663957A1 (en) * 2018-12-03 2020-06-10 Nagravision S.A. Remote enforcement of device memory
CN109933444A (zh) * 2019-03-07 2019-06-25 上海连尚网络科技有限公司 一种寄宿应用间的即时通讯方法
US11074201B2 (en) * 2019-07-22 2021-07-27 Micron Technology, Inc. Apparatus with a security mechanism and methods for operating the same
US11614890B2 (en) * 2019-07-30 2023-03-28 Micron Technology, Inc. Handling of host-initiated requests in memory sub-systems
EP4062278A4 (en) * 2019-11-22 2023-08-16 Hewlett-Packard Development Company, L.P. DATA MANAGEMENT
EP4179435B1 (en) 2020-07-08 2024-09-04 OneTrust LLC Systems and methods for targeted data discovery
WO2022026564A1 (en) 2020-07-28 2022-02-03 OneTrust, LLC Systems and methods for automatically blocking the use of tracking tools
EP4193268A1 (en) 2020-08-06 2023-06-14 OneTrust LLC Data processing systems and methods for automatically redacting unstructured data from a data subject access request
US11436373B2 (en) 2020-09-15 2022-09-06 OneTrust, LLC Data processing systems and methods for detecting tools for the automatic blocking of consent requests
US20230334158A1 (en) 2020-09-21 2023-10-19 OneTrust, LLC Data processing systems and methods for automatically detecting target data transfers and target data processing
US11397819B2 (en) 2020-11-06 2022-07-26 OneTrust, LLC Systems and methods for identifying data processing activities based on data discovery results
CN112685753B (zh) * 2020-12-25 2023-11-28 上海焜耀网络科技有限公司 一种用于加密数据存储的方法及设备
WO2022159901A1 (en) 2021-01-25 2022-07-28 OneTrust, LLC Systems and methods for discovery, classification, and indexing of data in a native computing system
US11442906B2 (en) 2021-02-04 2022-09-13 OneTrust, LLC Managing custom attributes for domain objects defined within microservices
US11494515B2 (en) 2021-02-08 2022-11-08 OneTrust, LLC Data processing systems and methods for anonymizing data samples in classification analysis
US20240098109A1 (en) 2021-02-10 2024-03-21 OneTrust, LLC Systems and methods for mitigating risks of third-party computing system functionality integration into a first-party computing system
US11775348B2 (en) 2021-02-17 2023-10-03 OneTrust, LLC Managing custom workflows for domain objects defined within microservices
US11546661B2 (en) 2021-02-18 2023-01-03 OneTrust, LLC Selective redaction of media content
US20240311497A1 (en) 2021-03-08 2024-09-19 OneTrust, LLC Data transfer discovery and analysis systems and related methods
US11562078B2 (en) 2021-04-16 2023-01-24 OneTrust, LLC Assessing and managing computational risk involved with integrating third party computing functionality within a computing system
US11620142B1 (en) 2022-06-03 2023-04-04 OneTrust, LLC Generating and customizing user interfaces for demonstrating functions of interactive user environments

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5623600A (en) 1995-09-26 1997-04-22 Trend Micro, Incorporated Virus detection and removal apparatus for computer networks
US6044444A (en) * 1996-05-28 2000-03-28 Emc Corporation Remote data mirroring having preselection of automatic recovery or intervention required when a disruption is detected
US5987506A (en) * 1996-11-22 1999-11-16 Mangosoft Corporation Remote access and geographically distributed computers in a globally addressable storage environment
US6434681B1 (en) * 1999-12-02 2002-08-13 Emc Corporation Snapshot copy facility for a data storage system permitting continued host read/write access
KR100794136B1 (ko) 2000-06-30 2008-01-10 주식회사 케이티 원격 바이러스 검색 서비스 방법
JP3713491B2 (ja) 2002-02-28 2005-11-09 株式会社エヌ・ティ・ティ・ドコモ サーバ装置、及び情報処理方法
US7143288B2 (en) * 2002-10-16 2006-11-28 Vormetric, Inc. Secure file system server architecture and methods
US7685436B2 (en) * 2003-10-02 2010-03-23 Itt Manufacturing Enterprises, Inc. System and method for a secure I/O interface
JP4613018B2 (ja) 2004-02-27 2011-01-12 アマノ株式会社 ディジタルタイムスタンプ方法
US7653727B2 (en) 2004-03-24 2010-01-26 Intel Corporation Cooperative embedded agents
US20060005015A1 (en) * 2004-06-30 2006-01-05 David Durham System and method for secure inter-platform and intra-platform communications
US7386662B1 (en) * 2005-06-20 2008-06-10 Symantec Operating Corporation Coordination of caching and I/O management in a multi-layer virtualized storage environment
JP2008102678A (ja) 2006-10-18 2008-05-01 Ricoh Co Ltd 電子機器
US20080162809A1 (en) 2006-12-28 2008-07-03 Rothman Michael A Operating system-independent remote accessibility to disk storage
US20090167486A1 (en) * 2007-12-29 2009-07-02 Shah Rahul C Secure association between devices
US8201161B2 (en) 2008-01-07 2012-06-12 Lenovo (Singapore) Pte. Ltd. System and method to update device driver or firmware using a hypervisor environment without system shutdown
US8201239B2 (en) * 2008-06-23 2012-06-12 Intel Corporation Extensible pre-boot authentication
US20100083381A1 (en) 2008-09-30 2010-04-01 Khosravi Hormuzd M Hardware-based anti-virus scan service
US20100306177A1 (en) 2009-05-29 2010-12-02 Khosravi Hormuzd M Host operating system independent storage-related remote access and operations
JP5296627B2 (ja) 2009-07-31 2013-09-25 日本電信電話株式会社 端末保護システム及び端末保護方法
US20110154023A1 (en) * 2009-12-21 2011-06-23 Smith Ned M Protected device management

Also Published As

Publication number Publication date
WO2011146857A2 (en) 2011-11-24
WO2011146857A3 (en) 2012-04-05
US8856534B2 (en) 2014-10-07
CN102255888A (zh) 2011-11-23
CN106127043B (zh) 2019-04-30
EP2388729A2 (en) 2011-11-23
CN106127043A (zh) 2016-11-16
US20110289306A1 (en) 2011-11-24
EP2388729A3 (en) 2012-12-05
CN102255888B (zh) 2016-08-03
JP2011253525A (ja) 2011-12-15
KR20110128248A (ko) 2011-11-29
KR101289581B1 (ko) 2013-08-26

Similar Documents

Publication Publication Date Title
JP5362767B2 (ja) リモートサーバからデータ記憶装置の安全性を検査する方法および装置
EP3582129B1 (en) Technologies for secure hardware and software attestation for trusted i/o
US10061928B2 (en) Security-enhanced computer systems and methods
JP5539445B2 (ja) ハードウェアベースのアンチウィルススキャンサービス
JP5551130B2 (ja) サーバ管理コプロセッササブシステム内部のtcpaによる信頼性の高いプラットフォームモジュール機能のカプセル化
KR101359841B1 (ko) 신뢰성 있는 부트 최적화를 위한 방법 및 장치
KR101662618B1 (ko) 단일 신뢰 플랫폼 모듈을 가진 플랫폼 컴포넌트의 측정
US9064116B2 (en) Techniques for security management provisioning at a data storage device
US9087188B2 (en) Providing authenticated anti-virus agents a direct access to scan memory
KR101378639B1 (ko) 프로세서 메인 메모리의 메모리 콘텐츠를 위한 보안 보호
CN103080904B (zh) 提供多阶段锁步完整性报告机构
TWI514187B (zh) 提供儲存裝置上防有毒軟體保護之系統與方法
JP5346608B2 (ja) 情報処理装置およびファイル検証システム
EP1975836A2 (en) Server active management technology (AMT) assisted secure boot
JP5373753B2 (ja) 複数の認証済みコードモジュールを利用するプロセッサ、方法、及びシステム
US20230342472A1 (en) Computer System, Trusted Function Component, and Running Method
US8489686B2 (en) Method and apparatus allowing scan of data storage device from remote server
CN113127148A (zh) 一种虚拟化环境主动动态度量方法和系统

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130328

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130423

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130716

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130904

R150 Certificate of patent or registration of utility model

Ref document number: 5362767

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

LAPS Cancellation because of no payment of annual fees