(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-03-04
(45)【発行日】2024-03-12
(54)【発明の名称】改良されたデータ制御及びアクセスの方法及びシステム
(51)【国際特許分類】
G06F 21/62 20130101AFI20240305BHJP
G06F 21/55 20130101ALI20240305BHJP
G06F 21/60 20130101ALI20240305BHJP
【FI】
G06F21/62 318
G06F21/55 340
G06F21/60 340
【外国語出願】
(21)【出願番号】P 2022113269
(22)【出願日】2022-07-14
(62)【分割の表示】P 2021513372の分割
【原出願日】2019-05-09
【審査請求日】2022-08-05
(32)【優先日】2018-05-11
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2018-08-16
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520440124
【氏名又は名称】サイジェント テクノロジー インコーポレイテッド
【氏名又は名称原語表記】CIGENT TECHNOLOGY, INC.
(74)【代理人】
【識別番号】100147485
【氏名又は名称】杉村 憲司
(74)【代理人】
【識別番号】230118913
【氏名又は名称】杉村 光嗣
(74)【代理人】
【識別番号】100211395
【氏名又は名称】鈴木 裕貴
(72)【発明者】
【氏名】トニー エドワード フェッセル
【審査官】岸野 徹
(56)【参考文献】
【文献】特開2017-098658(JP,A)
【文献】特開2013-045292(JP,A)
【文献】米国特許第08312064(US,B1)
【文献】米国特許第09749331(US,B1)
【文献】米国特許出願公開第2015/0215314(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/62
G06F 21/55
G06F 21/60
(57)【特許請求の範囲】
【請求項1】
データアクセスを制御する方法であって、
コンピューティングシステムのデータストレージデバイスのメモリに、それぞれのデータアクセス規則が、(i)1つ以上のデータファイル、又は(ii)前記データストレージデバイスのセクタ/ブロック範囲を指定し、第1の認証要素、第2の認証要素、及び時間範囲を含む、複数のデータアクセス規則を記憶することと、
前記データストレージデバイスのホストコントローラの受信機により、前記コンピューティングシステム内のホストデバイスからのデータアクション要求であって、データコマンド及び影響を受けるデータ項目を含むデータアクション要求を受信することと、
前記ホストコントローラにより、該当するデータアクセス規則に含まれる前記1つ以上のデータファイルと一致する、或いは前記該当するデータアクセス規則に含まれる前記セクタ/ブロック範囲に記憶されている、前記影響を受けるデータ項目に基づいて、前記該当するデータアクセス規則を識別することと、
前記ホストコントローラの送信機により、前記該当するデータアクセス規則内の前記第1の認証要素を使用する第1の認証要求を送信することと、
前記ホストコントローラの前記送信機により、前記該当するデータアクセス規則内の前記第2の認証要素を使用する第2の認証要求を送信することと、
前記ホストコントローラの前記受信機により、認証成功を示す前記第1の認証要求に対する第1の応答と、認証成功を示す前記第2の認証要求に対する第2の応答とを受信することと、
前記ホストコントローラにより、前記受信された第1の応答と、前記受信された第2の応答と、前記該当するデータアクセス規則に含まれる前記時間範囲内の前記データアクション要求の受信とに基づいて、前記該当するデータアクセス規則の遵守を判定することと、
前記ホストコントローラにより、前記データアクション要求に含まれる前記データコマンドを実行することと、を含む、方法。
【請求項2】
前記第1の認証要素は、前記コンピューティングシステムのユーザが前記コンピューティングシステムに既知のデータ値を入力することを要求し、
前記第2の認証要素は、前記コンピューティングシステムとインタフェース接続されるセキュリティデバイスの存在を要求する、請求項1に記載の方法。
【請求項3】
前記第1の認証要素は、パスワード及びセキュリティコードのうちの少なくとも1つを使用する、請求項2に記載の方法。
【請求項4】
前記セキュリティデバイスは、セキュリティドングル及びバイオメトリックスキャナのうちの1つである、請求項2に記載の方法。
【請求項5】
前記該当するデータアクセス規則に含まれる前記時間範囲は、時刻、曜日、及び月日のうちの少なくとも1つを含む、請求項1に記載の方法。
【請求項6】
データアクセスを制御するシステムであって、
データストレージデバイスを含むコンピューティングシステムを含み、
前記データストレージデバイスは、ホストコントローラを含み、それぞれのデータアクセス規則が、(i)1つ以上のデータファイル、又は(ii)前記データストレージデバイスのセクタ/ブロック範囲を指定し、第1の認証要素、第2の認証要素、及び時間範囲を含む、複数のデータアクセス規則を記憶し、
前記ホストコントローラは、
前記コンピューティングシステム内のホストデバイスから、データコマンド及び影響を受けるデータ項目を含む、データアクション要求を受信し、
該当するデータアクセス規則に含まれる前記1つ以上のデータファイルと一致する、或いは前記該当するデータアクセス規則に含まれる前記セクタ/ブロック範囲に記憶されている、前記影響を受けるデータ項目に基づいて、前記該当するデータアクセス規則を識別し、
前記該当するデータアクセス規則内の前記第1の認証要素を使用する第1の認証要求を送信し、
前記該当するデータアクセス規則内の前記第2の認証要素を使用する第2の認証要求を送信し、
認証成功を示す前記第1の認証要求に対する第1の応答と、認証成功を示す前記第2の認証要求に対する第2の応答とを受信し、
前記受信された第1の応答と、前記受信された第2の応答と、前記該当するデータアクセス規則に含まれる前記時間範囲内の前記データアクション要求の受信とに基づいて、前記該当するデータアクセス規則の遵守を判定し、
前記データアクション要求に含まれる前記データコマンドを実行するように構成されている、システム。
【請求項7】
前記第1の認証要素は、前記コンピューティングシステムのユーザが前記コンピューティングシステムに既知のデータ値を入力することを要求し、
前記第2の認証要素は、前記コンピューティングシステムとインタフェース接続されるセキュリティデバイスの存在を要求する、請求項6に記載のシステム。
【請求項8】
前記第1の認証要素は、パスワード及びセキュリティコードのうちの少なくとも1つを使用する、請求項7に記載のシステム。
【請求項9】
前記セキュリティデバイスは、セキュリティドングル及びバイオメトリックスキャナのうちの1つである、請求項7に記載のシステム。
【請求項10】
前記該当するデータアクセス規則に含まれる前記時間範囲は、時刻、曜日、及び月日のうちの少なくとも1つを含む、請求項6に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、コンピューティングデバイスにおけるデータの使用及びアクセスの監視及び
制御に関し、具体的には、ホストコントローラドライバ及びソフトウェアデバイスを使用
して、データストレージレベルでのデータへのアクセスを監視し、その制御を行って、重
要なデータの攻撃、悪用、及び消失を阻止することに関する。
【背景技術】
【0002】
コンピューティングデバイス内のデータは、非常に重要な場合がある。多くの場合、デ
ータの消失は、攻撃による場合でも、偶発的な削除による場合でも、極めて重大であり、
ある場合には、完全に取り返しのつかないことである。データ保護のほとんどの解決策は
、オペレーティングシステムレベルで実行され、オペレーティングシステムで発生する攻
撃を監視し、データを定期的にバックアップして、何らかの事態が発生した場合にリカバ
リできるようにするために、ソフトウェアアプリケーションが使用される。しかしながら
、このようなアプリケーションは、オペレーティングシステムレベルで発生し、そのため
に検出可能な消失又は攻撃に対してのみ有用である。例えば、オペレーティングシステム
自体を攻撃してオペレーティングシステムの起動を阻止するようなネットワークデバイス
から来る攻撃は、オペレーティングシステムがアクティブなときにのみ実行されるアプリ
ケーションプログラムでは防ぐことができず、オリジナルのデータと同様にデータバック
アップを攻撃することができる。
【0003】
したがって、オペレーティングシステムよりも下のレベルで実施されるデータ監視及び
制御を可能にする解決策が必要とされている。
【発明の概要】
【0004】
本開示は、データストレージデバイスのホストコントローラ、及び/又はコンピューテ
ィングデバイスのオペレーティングシステムとは別個に動作する別のハードウェアデバイ
スにおける実装を介して、データストレージレベルで発生するデータアクセス監視及び制
御のシステム及び方法の記述を提供する。このようなデバイスは、データストレージデバ
イスの個々のデータセクタ及びブロックへのアクセスを監視して、データ自体の内容に関
係なく、その使用及びアクセスを監視することができる。このタイプの実装では、オペレ
ーティングシステムが侵害されている可能性がある場合に、データのバックアップ、攻撃
の停止、及びその他のアクションを実行でき、これには、ユーザが変化を認識していなく
ても、侵害されていない異なるオペレーティングシステムの実行を選択することも含まれ
る。この結果、オペレーティングシステムレベルではできない、より高いレベルのデータ
保護、監視、及び制御が実施される。
【0005】
データフローを制御する方法は、オペレーティングシステムのユーザに基づいてユーザ
パーミッションを識別することと、データストレージデバイスのホストコントローラによ
り、識別されたパーミッションに基づいてデータの取得を制御することと、を含む。
【0006】
オペレーティングシステムの自動復元の方法は、データストレージデバイスの第1のデ
ータセクタ内に第1のオペレーティングシステムファイルのセットを記憶することと、デ
ータストレージデバイスの第2のデータセクタ内に第2のオペレーティングシステムファ
イルのセットを記憶することと、データストレージデバイスのホストコントローラにより
、復元コマンドを受信することと、データストレージデバイスのホストコントローラ内の
ドライバに送信されたデータ取得要求に、第1のオペレーティングシステムファイルのセ
ットの要求内にある第2のオペレーティングシステムファイルのセットを応答することと
、を含む。
【0007】
データをバックアップする方法は、データストレージデバイスのホストコントローラに
より、データストレージデバイス内の1つ以上のデータファイルを識別する脅威イベント
のインディケーションを受信することと、ドライバにより、脅威イベントを遅延させるこ
とと、ドライバにより、脅威イベントを許可する前に、データストレージデバイス内の1
つ以上のデータファイルをバックアップすることと、を含む。
【0008】
コンピューティングネットワークにおいて相互接続されたセキュリティを提供する方法
は、コンピューティングネットワークにより、複数のコンピューティングデバイスを接続
することと、複数のコンピューティングデバイスのそれぞれにより、複数のコンピューテ
ィングデバイス内の、他のコンピューティングデバイスのそれぞれとの間に、代替のセキ
ュアな通信チャネルを確立することと、複数のコンピューティングデバイスの1つにより
、脅威イベントを検出することと、複数のコンピューティングデバイスの1つにより、検
出された脅威イベントの通知を、複数のコンピューティングデバイス内の他のコンピュー
ティングデバイスのそれぞれに送信することと、を含む。
【0009】
異常なシステムアクティビティを検出する方法は、データストレージデバイスのホスト
コントローラにより、コンピューティングシステムのユーザによって実行される複数のア
クションを経時的にログに記録することと、ホストコントローラにより、ログに記録され
た複数のアクションに基づいて、複数の使用アクションを含むユーザのユーザフィンガー
プリントを判定することと、ホストコントローラにより、ユーザフィンガープリントに含
まれない実行されたアクションに基づいて、異常なシステムアクティビティを検出するこ
とと、を含む。
【0010】
データアクセスを制御する方法は、ハードウェアデバイスにより、データストレージデ
バイスのホストコントローラとの第1の通信チャネルと、別のデバイスとの第2の通信チ
ャネルとを確立することと、ハードウェアデバイスにより、第1及び第2の通信チャネル
を使用して、データストレージデバイスから別のデバイスに送信されるデータを制御する
ことと、を含む。
【0011】
データアクセスを制御する方法は、データストレージデバイスのホストコントローラに
より、1つ以上の確立された規則の遵守を検出することと、ホストコントローラにより、
検出された遵守に基づいて、データストレージデバイス内のデータへのアクセスを制御す
ることと、を含む。
【0012】
データの使用を監視する方法は、データストレージデバイスのファイルシステムレベル
で、データストレージデバイスからホストデバイスに転送されたデータ量を検出すること
を含む。
【0013】
データ保護をトリガする方法は、ストレージプラットホームコントローラとインタフェ
ース接続された入力回路により、所定のコマンドの有無を検出することと、ストレージプ
ラットホームコントローラにより、検出の結果として所定のアクションを実行することと
、を含む。
【0014】
データストレージアクセスを追跡する方法は、データストレージデバイスのホストコン
トローラにより、データストレージデバイスの1つ以上のセクタへのアクセスを追跡する
ことを含む。
【0015】
使用されないフラッシュメモリをクリアする方法は、フラッシュメモリ・ストレージデ
バイスにおいて、複数のデータ記憶ブロック内の1つ以上のインアクティブなブロックを
検出することと、1つ以上のインアクティブなブロックにおいてデータ除去のための1つ
以上のアクションを実行することと、を含む。
【0016】
使用されないフラッシュメモリをクリアする方法は、フラッシュメモリ・ストレージデ
バイスにおいて、ウェアレベリング・プロセスを実行することと、新たなデータが1つ以
上のブロックに転送されることなく、古いデータが1つ以上のブロックから転送されるウ
ェアレベリング・プロセスに含まれる、1つ以上のブロックのデータ除去のための1つ以
上のアクションを実行することと、を含む。
【0017】
データアクセスを制御する方法は、データストレージデバイスのファイルシステム又は
セクタ/ブロックレベルにおいて、1つ以上のデータファイルへのアクセスのための2要
素認証を必要とすることを含み、この2要素認証は、事前設定された基準に基づく期間内
に要求される。
【0018】
拡張現実(augmented reality)を用いた認証方法は、場所、位置、及びオブジェクト
データを用いて、その場所又は位置におけるユーザの存在をユーザによりキャプチャされ
た画像データをチェックすること、及び指定されたオブジェクトを見ることにより、ユー
ザを認証することを含み、ある場合には、拡張現実表示において、追加の認証情報がオブ
ジェクトに、又はオブジェクトの上に表示されてもよい。
【0019】
タイピングヒューリスティックによるユーザ認証の方法は、タイピングキーストローク
から判定されるタイピングパターンに基づいて、ユーザのキーを生成することを含み、こ
こでは、ユーザがタイピングしたときに新たなキーが生成され、登録されたキーに対する
新たなキーの比較がユーザの認証に使用される。
【図面の簡単な説明】
【0020】
本開示の範囲は、以下の例示的な実施形態の詳細な説明を添付の図面と併せて読むこと
によって最も良く理解される。図面には、以下の図面が含まれる。
【
図1】
図1は、例示的な実施形態に係る、データストレージデバイスのホストコントローラを含む実装によりデータアクセス及び使用を監視及び制御するように構成されたコンピューティングデバイスのハイレベルアーキテクチャを示すブロック図である。
【
図2】
図2は、例示的な実施形態に係る、データストレージデバイスに送受信されるデータパケットを観察及び制御するために、
図1のコンピューティングデバイスにおいて使用可能なハードウェアデバイスを示すブロック図である。
【
図3】
図3は、例示的な実施形態に係る、
図1のコンピューティングシステムのデータストレージデバイスのメインコントローラにより実施されるプロセスを示すフロー図である。
【
図4】
図4は、例示的な実施形態に係る、
図3に示されるプロセスの一部としてのコマンドパケットの解析のプロセスを示すフロー図である。
【
図5】
図5は、例示的な実施形態に係る、
図3に示されるプロセスの一部としてのベンダコマンドの処理のプロセスを示すフロー図である。
【
図6】
図6は、例示的な実施形態に係る、
図3に示されるメインコントローラプロセスの一部としてのコマンドの処理のプロセスを示すフロー図である。
【
図7】
図7は、例示的な実施形態に係る、
図3に示されるメインコントローラプロセスにおけるアイドルプロセスを示すフロー図である。
【
図8】
図8は、例示的な実施形態に係る、
図6に示されるプロセスにおけるコマンドの実施を示すフロー図である。
【
図9】
図9は、例示的な実施形態に係る、コンピュータシステムアーキテクチャを示すブロック図である。
【0021】
本開示の更なる適用範囲は、以下に提供される詳細な説明から明らかになるのであろう
。例示的な実施形態の詳細な説明は、例示の目的のみを意図しており、したがって、必ず
しも本開示の範囲を限定することを意図していないことを理解されたい。
【発明を実施するための形態】
【0022】
<コンピューティングシステムにおけるデータアクセスの監視及び制御>
図1は、コンピューティングシステム100の一実施形態を示す。
図1に示されるコン
ピューティングシステム100の実施形態は、例示としてのみ提供され、本明細書で説明
される機能の実行に適したコンピューティングシステム100の取り得るすべての構成を
網羅するものではないことは、当業者には明らかであろう。例えば、
図9に示され、以下
で詳細に説明されるコンピュータシステム900は、コンピューティングシステム100
の適切な一構成とされ得る。
【0023】
コンピューティングシステム100は、複数のモジュール、エンジン、デバイス、メモ
リ、及び、データストレージデバイス106へのアクセスの監視及びそこに記憶されたデ
ータの使用を含む、本明細書で説明されるような機能の実行のために特別に構成された他
のコンポーネントから構成されてもよい。データストレージデバイス106は、ハードデ
ィスクドライブ、ソリッドステートドライブ、コンパクトディスク、デジタルビデオディ
スク、磁気テープなどを含む、データの記憶に適した任意のタイプのデバイスであっても
よい。データストレージデバイス106は、ホストコントローラ108を含んでもよい。
ホストコントローラ108は、データストレージデバイス106内のデータを読み出し及
び書き込みするように構成された、データストレージデバイス106内のハードウェア、
ソフトウェア、又はそれらの組み合わせで実現されるアプリケーションプログラムであっ
てもよい。ホストコントローラは、データストレージデバイス106内の1つ以上のデー
タファイル、セクタ、又はブロックへのアクセスの阻止、セクタ又はブロックの変更から
のロックなどを含む、データストレージデバイス106に記憶されたデータのアクセス及
び変更に関連付けられた任意の機能を実行するように構成されてもよい。本明細書で説明
されるように、データストレージデバイス106に記憶されたデータに関してコンピュー
ティングシステム100で実行されるアクションは、ホストコントローラ108により、
又はホストコントローラ108と連携して、実行されてもよい。例えば、
図3~
図8に示
されるプロセスは、ホストコントローラ108又はその中にインストールされたアプリケ
ーションプログラム(例えば、ドライバ)により、別のハードウェアデバイス(例えば、
以下で詳細に説明される中継装置118)により、或いはそれらの組み合わせにより、実
行されてもよい。ある場合には、データストレージデバイス106は、ホストコントロー
ラ108によって使用されるメモリを含み、ホストコントローラ108の機能及びコマン
ドを実行する際に使用されるデータを記憶してもよく、このようなメモリは、コンピュー
ティングシステム100のモジュール及びエンジンによって使用されるデータストレージ
デバイス106のデータストレージとは別であってもよい。
【0024】
ホストコントローラ108は、コンピューティングシステム100のデータストレージ
レベルで動作するように構成されてもよい。換言すれば、コンピューティングシステム1
00は、オペレーティングシステム(OS)アプリケーション120を含むことができ、
これはコンピューティングシステム100の処理装置により実行され、コンピューティン
グシステム100のユーザ、及びソフトウェアアプリケーションプログラムが実行され得
るプラットホームへのインタフェースを提供することができ、ここで、ホストコントロー
ラ108は、OSアプリケーション120とは別個に動作することができる。例えば、O
Sアプリケーションは、以下で詳細に説明される通信モジュール104を介して、そのホ
ストコントローラ108と通信することにより(例えば、情報をやり取りすることにより
)、データストレージデバイス106にアクセスすることができる。例えば、OSアプリ
ケーション120は、プログラムコードとしてデータストレージデバイス106に記憶さ
れ、独自のファイル、或いはホストコントローラ108からの対応するデータの要求によ
りOS上で実行されるアプリケーションプログラムによって使用されるファイルにアクセ
スすることができる。
【0025】
ある実施形態では、コンピューティングシステム100は、データストレージデバイス
106に加えてメモリ110を含んでもよい。メモリ110は、OSアプリケーション1
20の実行及び使用においてコンピューティングシステム100によって使用され得る、
リードオンリーメモリ、ランダムアクセスメモリ、又は他のタイプのメモリである、別の
データストレージデバイスであってもよい。ある場合には、ホストコントローラ108は
、メモリ110のホストコントローラとしても動作するように構成されてもよく、或いは
メモリ110に記憶されたデータへのアクセス及びその使用を監視するように構成されて
もよい。メモリ110は、本明細書で説明される機能を実行する際にコンピューティング
システム100によって使用されるデータを記憶するように構成されてもよい。メモリ1
10は、データストレージデバイス106と同様に、適切なデータフォーマット方法及び
スキーマを使用してデータを記憶するように構成されてもよく、任意の適切なタイプのメ
モリであってもよい。メモリ110は、例えば、暗号化キー及びアルゴリズム、通信プロ
トコル及び規格、データフォーマット規格及びプロトコル、処理装置のモジュール及びア
プリケーションプログラムのプログラムコード、並びに、当業者には明らかなように本明
細書で開示される機能の実施においてコンピューティングシステム100によって使用さ
れるのに適した他のデータを含むことができる。ある実施形態では、メモリ110は、そ
こに記憶された構造化データセットの記憶、特定、変更、更新、アクセスなどのために構
造化クエリ言語を使用するリレーショナルデータベースで構成されてもよく、或いはそれ
を含んでいてもよい。
【0026】
ある実施形態では、コンピューティングシステム100は、フラッシュメモリ112を
含んでもよい。フラッシュメモリ112は、データストレージデバイス106とは別のソ
リッドステートメモリデバイス(例えば、該当する場合は、メモリ110)であってもよ
く、ある場合には、コンピューティングシステム100から取り外し可能であってもよい
。フラッシュメモリ112は、その中のデータの記憶を実施するために可動機械部品を使
用せずに動作することができるので、フラッシュメモリ112は、そのデータの記憶及び
アクセスのためにホストコントローラ108によって実行される、異なるアクション及び
/又は変更されたアクションの対象とされてもよい。ある実施形態では、データストレー
ジデバイス106のホストコントローラ108は、フラッシュメモリ112のホストコン
トローラ108として動作してもよい。他の実施形態では、フラッシュメモリ112は、
別のホストコントローラ108を有してもよい。本明細書で説明されるように、ホストコ
ントローラ108によって実行される機能はいずれも、コンピューティングシステム10
0のそれぞれのメモリ及びデータストレージデバイスのホストコントローラによって実行
されてもよい。
【0027】
コンピューティングシステム100は、受信装置102を含んでもよい。受信装置10
2は、1つ以上のネットワークプロトコルを介して、1つ以上のネットワークでデータを
受信するように構成されてもよい。ある実施例では、受信装置102は、無線周波数、ロ
ーカルエリアネットワーク、ワイヤレスエリアネットワーク、セルラ通信ネットワーク、
ブルートゥース、インターネットなどの1つ以上の通信方法を介して、コンピューティン
グシステム100のローカルネットワーク上に配置され、或いは、コンピューティングシ
ステムの外部に配置される、他のコンピューティングシステムからデータを受信するよう
に構成されてもよい。ある実施形態では、受信装置102は、例えばローカルエリアネッ
トワークを介してデータを受信する第1の受信装置及びインターネットを介してデータを
受信する第2の受信装置などの、異なるネットワークを介してデータを受信する異なる受
信装置など、複数のデバイスから構成されてもよい。受信装置102は、電子的に送信さ
れたデータ信号を受信することができ、データは、データ信号において重畳され、或いは
符号化され、受信装置102によるデータ信号の受信を介して復号化され、解析され、読
み出され、或いは取得されてもよい。ある実施例では、受信装置102は、受信されたデ
ータ信号を解析して、その上に重畳されたデータを取得するための、解析モジュールを含
んでもよい。例えば、受信装置102は、データ信号を受信し、受信されたデータ信号を
本明細書で説明される方法及びシステムを実行するために処理装置によって実行される機
能で使用可能な入力に変換するように構成された解析プログラムを含んでもよい。
【0028】
コンピューティングシステム100は、送信装置124を含んでもよい。送信装置12
4は、1つ以上のネットワークプロトコルを介して、1つ以上のネットワークでデータを
送信するように構成されてもよい。ある実施例では、送信装置124は、無線周波数、ロ
ーカルエリアネットワーク、ワイヤレスエリアネットワーク、セルラ通信ネットワーク、
ブルートゥース、インターネットなどの1つ以上の通信方法を介して、コンピューティン
グシステム100のローカルネットワーク上に配置され、或いは、コンピューティングシ
ステムの外部に配置される、コンピューティングシステムにデータを送信するように構成
されてもよい。ある実施形態では、送信装置124は、例えばローカルエリアネットワー
クを介してデータを送信する第1の送信装置及びインターネットを介してデータを送信す
る第2の送信装置などの、異なるネットワークを介してデータを送信する異なる送信装置
など、複数のデバイスから構成されてもよい。送信装置124は、受信側コンピューティ
ングデバイスによって解析され得るデータが重畳されたデータ信号を電子的に送信するこ
とができる。ある実施例では、送信装置124は、データを送信に適したデータ信号に重
畳し、符号化し、或いはフォーマットする1つ以上のモジュールを含んでもよい。
【0029】
コンピューティングシステム100は、通信モジュール104を含んでもよい。通信モ
ジュール104は、本明細書で説明される機能を実行する際に使用され、モジュール、エ
ンジン、データベース、メモリ、及びコンピューティングシステム100の他のコンポー
ネント(例えば、コンピューティングシステム100の「デバイス」又は「ホストデバイ
ス」とも称される)の間でデータを送信するように構成されてもよい。通信モジュール1
04は、1つ以上の通信タイプで構成され、コンピューティングデバイス内の通信のため
の様々な通信方法を使用することができる。例えば、通信モジュール104は、バス、コ
ンタクトピンコネクタ、ワイヤなどで構成されてもよい。ある実施形態では、通信モジュ
ール104は、コンピューティングシステム100の内部コンポーネントと、外部接続デ
ータベース、表示装置、入力装置などのコンピューティングシステム100の外部コンポ
ーネントとの間で通信するように構成されてもよい。コンピューティングシステム100
は、処理装置を含んでもよい。処理装置は、当業者には明らかなように、本明細書で説明
されるコンピューティングシステム100の機能を実行するように構成されてもよい。あ
る実施形態では、処理装置は、処理装置の1つ以上の機能を実行するように特別に構成さ
れた複数のエンジン及び/又はモジュールを含み、且つ/又はそれらで構成されてもよい
。本明細書で使用されるように、「モジュール」という用語は、特に、入力を受信し、入
力を使用して1つ以上のプロセスを実行し、出力を提供するようにプログラムされた、ソ
フトウェア又はハードウェアであってもよい。様々なモジュールによって実行される入力
、出力、及びプロセスは、本開示に基づいて当業者には明らかであろう。
【0030】
上述のように、コンピューティングシステム100は、OSアプリケーション120を
含んでもよい。OSアプリケーション120は、OSアプリケーション120をプラット
ホームとして使用して実行されるアプリケーションプログラムと、データストレージデバ
イス106及びコンピューティングシステムの他のメモリとの間の連絡機構として動作す
るシステムソフトウェアであってもよい。ある実施形態では、コンピューティングシステ
ム100は、その中に記憶された複数のOSアプリケーション120を有してもよく、そ
れらはそれぞれ、データストレージデバイス106及び/又はコンピューティングシステ
ム100の他のメモリに記憶されてもよい。このような実施形態では、単一のOSアプリ
ケーション120がコンピューティングシステム100の実行時に実行されてもよく、そ
れはコンピューティングシステム100のベーシックインプット/アウトプットシステム
(BIOS)によって選択されてもよい。以下で詳細に説明されるように、ホストコント
ローラ108は、コンピューティングシステム100で動作するOSアプリケーション1
20の選択を変更し、或いはデータ記憶操作を通じて、選択されたOSアプリケーション
102を変更して、コンピューティングシステム100への攻撃を防ぐように、或いは効
率的な動作を保証するように構成されてもよい。
【0031】
コンピューティングシステム100は、ファイルシステムコントローラ122を含んで
もよい。ファイルシステムコントローラ122は、OSアプリケーション120の一部で
あってもよく、コンピューティングシステム102のユーザ又はOSアプリケーション1
02のアプリケーションプログラムがデータストレージデバイス106のファイルシステ
ム又はコンピューティングシステム102の他のメモリ110にアクセスするためのイン
タフェースを(例えばアプリケーションプログラミングインタフェースとして)提供する
ように構成してもよい。ある場合には、ファイルシステムコントローラ122は、(例え
ば通信モジュール104を介して)それぞれのデータストレージデバイス106のホスト
コントローラ108と通信して、そこに記憶されたデータの取得又は変更をしてもよい。
例えば、OSアプリケーション102を使用して動作するアプリケーションプログラムは
、データストレージデバイス106に記憶されたデータへのアクセスのために、ファイル
システムコントローラ122と相互に作用することができ、ここで、ファイルシステムコ
ントローラ122は、読み出し又は書き込みを行うデータに関する命令をホストコントロ
ーラ108に提供することができ、ホストコントローラ108は、データストレージデバ
イス106内の必要な機能を実行して、要求された動作を実行することができる。
【0032】
ある実施形態では、コンピューティングシステム100は、中継装置118(interpos
ition device)を含んでもよい。中継装置118は、データストレージデバイス106及
びコンピューティングシステム100の他のハードウェアコンポーネントとは別のハード
ウェアデバイスであってもよく、通信モジュール104を使用してコンピューティングシ
ステム100を通過するような、データストレージデバイス106に送受信されるデータ
パケットを監視するように構成されてもよい。中継装置118の実装については、
図2の
ハードウェアデバイス200に関して以下で詳細に説明する。ある実施形態では、中継装
置118は、データストレージデバイス106のホストコントローラ108に実装されて
もよい。他の実施形態では、中継装置118は、ホストコントローラ108と直接的に通
信して、データストレージデバイス106に送受信されるデータパケットを監視してもよ
い。
【0033】
コンピューティングシステム100は、1つ以上の入力装置を含んでもよく、或いはそ
れとインタフェース接続されてもよい。入力装置は、コンピューティングシステム100
の内部にあってもよく、コンピューティングシステム100の外部にあってもよく、デー
タの送受信のために1つ以上の接続(例えば、有線又は無線)を介して接続されてもよい
。入力装置は、コンピューティングシステム100のユーザからの入力を受け付けるよう
に構成されてもよく、それは、後続処理のために、コンピューティングシステム100の
別のモジュール又はエンジンに(例えば通信モジュール204を介して)提供されてもよ
い。入力装置は、キーボード、マウス、クリックホイール、スクロールホイール、マイク
ロフォン、タッチスクリーン、トラックパッド、カメラ、光学撮像素子など、本明細書で
説明される機能を実行するための入力を受け付けるのに適した、任意のタイプの入力装置
を含んでもよい。入力装置は、例えば、キーストローク情報、物理的環境の光学画像、及
び本明細書で説明されるような用途の、他のデータを受信するように構成されてもよい。
【0034】
コンピューティングシステム100は、表示装置を含んでもよく、或いは表示装置とイ
ンタフェース接続されてもよい。表示装置は、コンピューティングシステム100の内部
にあってもよく、コンピューティングシステム100の外部にあってもよく、データの送
受信のために1つ以上の接続(例えば、有線又は無線)を介して接続されてもよい。表示
装置は、コンピューティングシステム100のユーザに対してデータを表示するように構
成されてもよい。表示装置は、液晶ディスプレイ、発光ダイオードディスプレイ、薄膜ト
ランジスタディスプレイ、静電容量式タッチディスプレイ、陰極線管ディスプレイ、光投
影ディスプレイなど、本明細書で説明される機能の一部としてデータを表示するのに適し
た任意のタイプの表示装置であってもよい。ある実施例では、コンピューティングシステ
ム100は、複数の表示装置を含んでもよい。表示装置は、例えば、認証情報、物理領域
の拡張現実表示、OSアプリケーション120の一部としてのファイルシステムなどを表
示するように構成されてもよい。
【0035】
<中継装置>
図2は、コンピューティングシステム100において中継装置118として動作可能な
ハードウェアデバイス200を示す。
図2に示されるハードウェアデバイス200の実施
形態は、例示としてのみ提供され、本明細書で説明される機能の実行に適したハードウェ
アデバイス200の取り得るすべての構成を網羅するものではないことは、当業者には明
らかであろう。
【0036】
ハードウェアデバイス200は、マイクロコントローラ202を含んでもよい。マイク
ロコントローラ202は、本明細書で説明される中継装置118の機能を実行するように
構成された集積回路であってもよく、例えば、コンピューティングシステム100内のデ
ータストレージデバイス106に送受信されるデータパケットを監視するように構成され
た、プログラムされた処理装置(programmed processing device)であってもよい。ハー
ドウェアデバイス200は、シリアルアドバンストテクノロジアタッチメント(シリアル
ATアタッチメント、SATA)ドライブ210を含んでもよく、ハードウェアデバイス
200に関連付けられた機能を実行する際にハードウェアデバイス200により使用され
るデータを記憶するように構成されてもよい。例えば、SATAドライブ210は、デー
タパケットの移動の監視などの、マイクロコントローラ202により実行されるプログラ
ムコードを記憶するように構成されてもよい。また、SATAドライブ210は、例えば
、コンピューティングシステム100のユーザによるレビュのためのデータログ、データ
送信に関連付けられた警告を送信するための規則、コンピューティングシステム100に
おける潜在的な攻撃を識別するためのアルゴリズム等、データパケット監視に関する情報
を記憶するように構成されてもよい。
【0037】
ハードウェアデバイス200は、SATAを用いて、ホスト208とインタフェース接
続するように構成されてもよい。SATAホスト208は、例えば、通信モジュール10
4又はデータストレージデバイス106であってもよく、ハードウェアデバイス200は
、SATAホスト208又はそこから受信されたデータを介して、データストレージデバ
イス106へのデータパケットの送受信を監視してもよい。ハードウェアデバイス200
は、例えばマイクロコントローラ202によって指示されることで実行されるハードウェ
アデバイス200の機能に応じて、SATAドライブ210とSATAホスト208との
間を切り替えるように構成される、ポートセレクタ206を含んでもよい。
【0038】
ある実施形態では、マイクロコントローラ202は、パラレルATアタッチメント(P
ATA)を介して通信するように構成されてもよい。このような実施形態では、ハードウ
ェアデバイス200は、PATA/SATAブリッジ204を含むことができ、PATA
を使用してマイクロコントローラ202とインタフェース接続し、SATAを使用してポ
ートセレクタとインタフェース接続し、マイクロコントローラ202とSATAドライブ
210とSATAホスト208との間で交換される通信を可能にするように構成されても
よい。ハードウェアデバイス200は、SATAドライブ210に、その動作のために電
力を供給するように構成されたコンポーネントである、駆動電源212を含んでもよい。
駆動電源212は、マイクロコントローラ202に接続され、そこから動作の命令を受信
してもよく、それにより、SATAドライブ210に動作(停止)させてもよい。ある実
施形態では、ハードウェアデバイス200は、ハードウェアデバイス200のコンポーネ
ント、コンピューティングシステム100のコンポーネント、ハードウェアデバイス20
0とコンピューティングシステム100とのインタフェース接続、ハードウェアデバイス
200の実施形態のタイプなど、ハードウェアデバイス200における必要性に応じて、
ハードウェアデバイス200内の電圧の安定化のために、+3.3電圧レギュレータ及び
/又は+1.8電圧レギュレータ216を含んでもよい。
【0039】
上述のように、ハードウェアデバイス200は、コマンドパケット及びデータパケット
を、データストレージデバイス106及びコンピューティングシステム100の他のメモ
リ110に送受信されるときに検査し、中継するように構成された、コンピューティング
システム100の中継装置118として動作してもよい。ハードウェアデバイス200は
、データストレージデバイス106宛てのすべてのインバウンド及びアウトバウンドのデ
ータストレージを観察、制御、及びルーティングするように構成されてもよい。このよう
な動作は、本明細書で説明されるコンピューティングシステム100に関連付けられた機
能の実施のための他の動作と併せて実施されてもよい。例えば、ホストコントローラ10
8は、以下に説明されるように、データアクセスに関連付けられたユーザアクションのル
ーチンに基づいて、データストレージデバイス106に記憶されたデータの潜在的な攻撃
又は他の悪用を監視するように構成されてもよく、データストレージデバイス106のハ
ードウェアデバイスのインバウンド及びアウトバウンドの通信の観察を使用して、データ
アクセスが識別されてもよい。
【0040】
<ホストコントローラ及び中継装置の例示的な機能>
上述のように、コンピューティングシステム100のホストコントローラ108及び中
継装置118は、データストレージデバイス106に記憶されたデータへのアクセス及び
使用を監視して、データの悪用、データに対する攻撃の試みを阻止し、データのバックア
ップを容易にするように、或いはコンピューティングシステム100に記憶されたデータ
を保護するように構成されてもよい。
【0041】
一実施形態では、ホストコントローラ108は、データストレージデバイス106から
ファイルシステムコントローラ122などのデバイス要求側に流れるデータであって、コ
ンピューティングシステム102のユーザにより、表示、又は他の方法での使用を要求さ
れたデータを制御するように構成されてもよい。このような実施形態では、ホストコント
ローラ108は、ファイルシステムコントローラ122によって送信されるリクエストを
理解し、ファイルシステムコントローラ122に提供されるデータを変更して、これによ
り、データストレージデバイス106に記憶された基礎となるデータに変更を加えること
なく、ホストコントローラ108によってデータのユーザのビューが変更されるように構
成されてもよい。例えば、コンピューティングシステム100のユーザは、認証プロセス
(例えばOSアプリケーション120を使用したログイン)を実施してもよく、コンピュ
ーティングシステム100のそれぞれのユーザは、そのユーザが閲覧又は他の方法でアク
セス可能なデータに関して、ユーザに関連付けられたパーミッションのレベルを有しても
よい。ホストコントローラ108は、このパーミッションのレベルに基づいて、ユーザが
許可されているデータのみを見ることができるように、データストレージデバイス106
に記憶されたデータに関してファイルシステムコントローラ122に提供される情報を変
更してもよい。ユーザが閲覧を許可されていないデータは、ホストコントローラ108に
よる変更なしにデータストレージデバイス106に記憶され続けてもよいが、ファイルシ
ステムコントローラ122は、それに関連付けられた情報をユーザに提示しない。例えば
、データは、ユーザの観点からは存在しないが、データストレージデバイス106に安全
に記憶されている。したがって、このような例では、データストレージデバイス106は
、権限を有する者による場合を除いて、データの削除又は誤用から保護することができる
。
【0042】
ホストコントローラ108は、コンピューティングシステム100の起動に使用される
OSアプリケーション120を自動的に選択するように構成されてもよい。例えば、コン
ピューティングシステム100が(例えばホストコントローラ108、中継装置118、
又は他のコンポーネントを介して)、OSアプリケーション120の動作の不良又はOS
アプリケーション120の侵害などの、デフォルトのOSアプリケーション120に関す
る潜在的な問題を検出した場合、ホストコントローラ108は、コンピューティングシス
テム100で使用される、リカバリOSアプリケーション120を自動的に選択するよう
に構成されてもよい。ある場合では、リカバリOSアプリケーション120は、基礎とな
るデータストレージデバイスの動作を介して選択されてもよい。例えば、ホストコントロ
ーラ108は、デフォルトのOSアプリケーション120を記憶するために使用されるデ
ータセクタ及び/又はブロックを、リカバリOSアプリケーション120を記憶するもの
と切り替えて、コンピューティングシステム100が、通常動作を試みるときに、リカバ
リOSアプリケーション120を実行するようにしてもよい。このような実施形態では、
リカバリOSアプリケーション120は、自動的に実行され、これにより、侵害されたO
Sアプリケーション120がコンピューティングシステム100に有害な変更を加えるこ
とを阻止し、ユーザに侵害を取り除く機会を提供することができる。
【0043】
OSアプリケーション120を自動的に選択する能力は、OSアプリケーション120
のリストア又はリフレッシュを実行するために、ホストコントローラ108によって使用
されてもよい。例えば、ホストコントローラ108は、データストレージデバイス106
内の所定の位置に記憶されたOSアプリケーション120のスナップショット又は保存さ
れた状態(saved state)を有してもよい。OSアプリケーション120に潜在的な問題
(例えば、検出された攻撃、OSアプリケーション120の動作エラー)が特定された場
合、或いはコンピューティングシステム100のユーザによって要求された場合、ホスト
コントローラ108は、(例えば、潜在的な問題の前に)保存されたOSアプリケーショ
ン120が代わりに実行されるように、OSアプリケーション120を保存された状態に
自動的に切り替えることができる。このような場合、ホストコントローラ108は、コン
ピューティングシステム102のアイドルサイクル中に、交換後の侵害されたOSアプリ
ケーション120を上書きして、侵害を取り除き、コンピューティングシステム100を
更に保護することもできる。このような実装では、OSアプリケーション120は、ユー
ザの知識又は行動なしに復元されてもよい。ある実施形態では、リストアは、変更のログ
を使用して実行されてもよい。例えば、ホストコントローラ108は、データストレージ
デバイス106に関して実行されたすべての動作のログを維持することができ、復元動作
は、データストレージデバイス106(及びその中に記憶されたOSアプリケーション1
20)を以前の状態に戻すために、データストレージデバイス106に記憶されたデータ
を変更、移動、又は置換するなど、(例えば事前定義された復元ポイントに戻るように)
所定の期間におけるすべての動作を逆行させることを含んでもよい。
【0044】
ある実施形態では、ホストコントローラ108は、データストレージデバイス106に
記憶されたデータを自動的にバックアップするように構成されてもよい。そのような実施
形態では、ホストコントローラ108は、コンピューティングシステム100内で発生し
た、データに脅威をもたらす可能性があるイベントを監視するように(例えば、中継装置
118などの別のコンポーネントによって直接的又は間接的に通知されるように)構成さ
れてもよい。例えば、未知の通信、ファイル削除又は変更の要求、データの暗号化又は復
号化などは、潜在的なネガティブイベントとしてホストコントローラ108によって識別
され得る。このようなイベントが検出されると、イベントは、ホストコントローラ108
がデータをバックアップしている間に、一時停止されてもよく、或いは遅延させられても
よい。ある場合には、バックアップされるデータは、予め判定されてもよい。例えば、(
例えば、OSアプリケーション120に不可欠なもの、ユーザによって選択されたものな
ど)試みられているアクションに関係なくバックアップされるデータが存在してもよい。
他の場合では、バックアップされるデータは、イベントにより影響を受けるデータであっ
てもよい。例えば、イベントが特定のデータブロックの削除である場合、これらのデータ
ブロックがバックアップされてもよい。ホストコントローラ108は、データストレージ
デバイス106内の所定の位置にデータをバックアップしてもよく、バックアップが完了
するとイベントを発生させてもよい。このような実施形態では、コンピューティングシス
テム100に記憶されたデータは、起こり得る潜在的なイベントに関わらず、保護された
ままとされてもよい。ある場合には、バックアップされるデータが、イベント又はそれに
よって影響され得るデータの種類に基づいて異なるように、或いは実行されるアクション
がイベントの種類に基づいて異なるようになど、複数のポリシーが実装されてもよい。
【0045】
ある実施形態では、コンピューティングシステム100は、他のコンピューティングシ
ステムのネットワークの一部であってもよい。このような実施形態では、潜在的な脅威イ
ベント又はネガティブイベントは、ネットワーク内の他のコンピューティングシステムに
よって検出されてもよい。このような場合には、ホストコントローラ108は、(例えば
、ホストコントローラ108又は他のコンピューティングシステム内の中継装置118な
どにより、本明細書で説明される機能を使用して検出される)これらの潜在的な脅威イベ
ントに関する情報を他のコンピューティングシステムから受信してもよく、それに基づい
て本明細書で説明されるアクションを実行してもよい。ある実施例では、ホストコントロ
ーラ108又はコンピューティングシステム100の他のハードウェアコンポーネントは
、ネットワーク内の他のコンピューティングシステムの対応するコンポーネントとの代替
のセキュアな通信チャネルを確立してもよい。このようなチャネルは、ネットワークで発
生し、ネットワークを侵害する可能性がある脅威イベントが代替のセキュアなチャネルに
アクセスできないように、或いは影響を与えることができないように、ネットワークの通
信チャネルとは別であってもよい。ある場合には、セキュアチャネルは、そのチャネルを
使用する通信をセキュアにする技術(例えば、暗号化)を使用して、そのネットワーク自
体の上で動作してもよい。他の場合では、別のプロトコル及び/又は通信パスが使用され
てもよい。ある場合には、他のコンピューティングシステムは、他のコンピューティング
システム100であってもよく、或いは、動き検出器、近接ドアセンサ、バイオメトリッ
クスキャナ、セットトップボックス、ビデオゲームシステム、ウェアラブルコンピューテ
ィングデバイスなど、コンピューティングシステム100とのセキュアな通信チャネルを
確立し、脅威イベントを検出することができる任意のタイプのコンピューティングデバイ
スであってもよい。
【0046】
ある実施形態では、ホストコントローラ108は、データストレージデバイス106へ
のアクセスに関して、ユーザ又はコンピューティングシステム100の他の動作に関連付
けられた過去の使用データのセットを作成するように構成されてもよい。過去の使用デー
タは、データストレージデバイス106のデータのアクセス、取得、変更、又は書き込み
など、データストレージデバイス106に関連して実行されるアクションのログであって
もよい。ログは、数秒のスパン、データストレージデバイス106の全寿命、又はそれら
の間の任意の長さの時間をカバーしてもよい。ログは、データの読み出し、データの書き
込み、データの上書き、データの変更などを含む、データストレージデバイス106に関
連付けられた任意のアクションをカバーしてもよく、影響を受けるセクタ及び/又はブロ
ックを指定し、そして、それらがどのように影響を受けるかを指定してもよい。ログを使
用して、ホストコントローラ108は、コンピューティングシステム100の典型的な使
用特性の「フィンガープリント」又は「スナップショット」を構築してもよく、ある場合
には、コンピューティングシステム100のユーザに直接関連付けられてもよい(例えば
、それぞれのユーザは個人的なアクションに基づいて独自のフィンガープリントを持つこ
とができる)。このようなスナップショットは、それぞれのユーザ又はコンピューティン
グシステム100全体の署名を判定するために、そして、データストレージデバイス10
6を使用するときに、どのようなアクションが標準的又は「通常」と見なされるかを判定
するために、考慮されてもよい。ユーザの署名に基づいて標準と考えられるものから外れ
ているイベントが試みられるとき、そのイベントは脅威イベントであると判定されてもよ
い。それから、ホストコントローラ108は、脅威イベントが検出されたときに、(例え
ば、データの自動的なバックアップ、代替のセキュアなチャネルを使用した他のコンピュ
ーティングデバイスの通知、データの暗号化、ファイルシステムデータの変更など)任意
の好適なアクションを実行してもよい。ある実施形態では、ホストコントローラ108に
は、既知のウイルス、ランサムウェア、又は他の望ましくないエージェントのための署名
が提供されてもよく、署名は、ネガティブなアクションが実行される前に、このようなエ
ージェントの存在を検出するために使用されてもよい。
【0047】
ある実施形態では、ホストコントローラ108は、確立された規則への遵守(complian
ce)に基づいて、データストレージデバイス106へのアクセスを制御するように構成さ
れてもよい。ある実施例では、規則は、追加のハードウェアコンポーネントの使用、又は
コンピューティングシステム100に依存する他の局面を含んでもよい。例えば、規則は
、コンピューティングシステム100が(例えば、全地球測位システムに基づく)特定の
地理的領域に位置することを要求してもよく、それは、ホストコントローラ108、コン
ピューティングシステム100の標準コンポーネント、コンピューティングシステム10
0の一部であるが、コンピューティングシステム100の他のコンポーネントとは独立し
て動作する別のハードウェアコンポーネント、或いはOSアプリケーション120による
アクセスが不可能である別のハードウェアコンポーネントによって識別されてもよい。他
の実施例では、ホストコントローラ108は、データストレージデバイス106へのアク
セスのためにセキュリティドングルの存在を要求してもよく、また、(例えば、ファイル
システムコントローラ122により提示されるデータのビューを変更することに関して上
述されたように)セキュリティドングルから受信したクレデンシャルに基づいて、データ
の閲覧又は使用を阻止してもよい。他の実施例では、規則は、コンピューティングシステ
ム100と別のデバイスとの間の物理的な接続を要求してもよい。ある場合には、確立さ
れた規則に従わないことで、ホストコントローラ108により脅威イベントとして識別さ
れてもよく、それに応じて必要なアクションが実行されてもよい。
【0048】
ある実施形態では、ホストコントローラ108は、データストレージデバイス106か
ら転送された(例えば、読み出された)データ量を監視するように構成されてもよい。ホ
ストコントローラ108は、データストレージデバイス106から読み出されたデータ量
を追跡し続け、データ量に基づいてアクションを実行してもよい。例えば、読み出される
データの量の限界が設定されてもよく、限界に達すると、データへのアクセスが阻止又は
制限されてもよく、或いは、限界に達したことが脅威イベントとして見なされてもよい。
データストレージデバイス106から読み出されたデータ量は、ユーザのフィンガープリ
ント又は署名の一部と見なされてもよい。ある場合には、データの量は、時間ごと、日ご
と、週ごと、月ごとなどの期間にどれだけのデータがアクセスされるかを測定するなど、
期間に関連付けて監視されてもよい。ある実施形態ではホストコントローラ108は、デ
ータストレージデバイス106の特定のセクタ及び/又はブロックから転送されるデータ
量を監視してもよく、限界又は規則は、セクタ及び/又はブロックに応じて異なってもよ
い。例えば、OSアプリケーション120のプログラムコード又はバックアップデータを
記憶するために使用されるブロックから読み出されるデータには制限がないが、他のデー
タを記憶するために使用されるブロックには制限が設定されてもよい。ある場合には、ホ
ストコントローラ108は、ファイルシステムコントローラ122と通信して、アクセス
されたデータの監視に使用可能な、ファイルタイプ情報など、アクセスされたデータに関
する追加の情報を受信してもよい。例えば、(ビデオ、画像、音楽などの)メディアファ
イルについて読み出されるデータ量に制限が設定され、一方で、(ダイナミックリンクラ
イブラリ、システムファイルなどの)オペレーティングシステムファイルについては設定
されなくてもよい。
【0049】
ある実施形態では、コンピューティングシステム100は、データストレージデバイス
106に記憶されたデータへのアクセスを制御する際にホストコントローラ108によっ
て使用される、独立した機械的及び/又は電気的なコンポーネントを含んでもよい。独立
コンポーネントは、コンピューティングシステム100のユーザが、独立コンポーネント
の使用を(例えば、該当する、追加の状態の間に)アクティブ化又はインアクティブ化す
るように構成可能であり、データストレージデバイス106内のデータへのアクセスが、
独立コンポーネントの状態に基づいて、ホストコントローラ108により制御されてもよ
い。例えば、ホストコントローラ108とは別の任意の他のコンポーネントとインタフェ
ース接続されていないボタンがコンピューティングシステム100に含められてもよく、
このボタンが押されると、データストレージデバイス106の所定の領域へのアクセスが
阻止されてもよい。ボタン、スイッチ、センサ、加速度計、バイオメトリックスキャナ、
光学撮像素子、マイクロフォンなど、任意の適切なタイプの機械的及び/又は電気的コン
ポーネントが使用されてもよい。ある実施例では、独立コンポーネントによって検出され
たアクションは、ホストコントローラ108によって脅威イベントと見なされてもよい。
例えば、バイオメトリックスキャナは、登録されたユーザのバイオメトリクスが読み出さ
れたときに、データストレージデバイス106の一部へのアクセスを制御するために使用
されてもよいが、権限のないユーザがバイオメトリックスキャナを使用して認証を試みた
場合に、脅威イベントが検出されてもよい。
【0050】
ある実施形態では、ホストコントローラ108は、データストレージデバイス106が
フラッシュメモリを使用するときに、追加の機能を実行するように構成されてもよい。フ
ラッシュメモリの性質のために、データは、ウェアレベリング(wear leveling)・アル
ゴリズムを使用するフラッシュメモリの摩耗及び劣化のために、フラッシュメモリ内のブ
ロック間で移動されることがある。伝統的に、摩耗したブロックは、そのブロックから別
のブロックにデータを移動させるが、オリジナルのブロックは消去されず、したがって残
されたデータが侵害の対象となる。ある実施形態では、ホストコントローラ108は、フ
ラッシュメモリ112に対して実行されるウェアレベリング・プロセスの一部として、こ
れらのオリジナルのブロックの完全消去を実行するように構成されてもよい。ホストコン
トローラ108は、ブロックの使用を監視してもよく、ブロックは、その中に記憶された
データの状態及びフラッシュメモリ112内でのその使用に基づいて、アクティブ又はイ
ンアクティブとしてラベル付けされてもよい。ホストコントローラ108は、所定の期間
に、インアクティブブロック内のデータの完全消去を実行して、その侵害を阻止し、デー
タブロックの寿命を延ばすことができる。完全消去は、書き込みの繰り返し、データにお
いてより小さな部分のアドレス指定、ブランク又は解読不可能なデータによるデータの上
書き、及び古いブロック又はインアクティブなブロック内のデータを確実にクリアするた
めに使用される他の技術を使用することによって達成されてもよい。ある実施例では、ホ
ストコントローラ108は、使用するブロックのタイプ(例えば、インアクティブブロッ
ク、使い古されたブロック(worn blocks)など)又は消去プロセスのタイプを指定した
、コンピューティングシステム100のユーザによるコマンド入力に応答して、ブロック
の完全消去を実行するように構成されてもよい。
【0051】
ある実施形態では、ホストコントローラ108は、データストレージデバイス106に
記憶されたデータファイルへのアクセスを制御するために2要素認証を使用するように構
成されてもよい。2要素認証は、(i)ユーザが何を知っているか(例:パスワード)と
(ii)ユーザが何を持っているか(例:ドングル)とに依存する2つの異なるタイプの
認証を要求することにより、認証ルーチンのセキュリティを高める方法である。ある場合
には、ユーザは、バイオメトリックスキャナ、パスワード、第三者認証サービス、セキュ
リティドングル、スマートデバイスなど、いずれか又はすべてのタイプの認証を設定して
もよい。ある実施例では、ユーザは、アクセスするために2要素認証が必要なデータファ
イルを選択してもよい。このような場合には、使用される2要素認証のタイプは、制御さ
れるアクセスによって異なってもよい。例えば、ユーザは、データストレージデバイス1
06に記憶されたすべての画像にアクセスするために、パスワード及びセキュリティドン
グルから成る2要素認証を要求してもよく、特定のフォルダ内のファイルにアクセスする
ために、指紋スキャン及び異なるセキュリティドングルから成る2要素認証を要求しても
よい。2要素認証は、特定のファイル又はフォルダ、ファイルの種類、特定の取得条件を
満たすファイル又はフォルダなどに対して設定されてもよい。ある場合には、2要素認証
が要求されるときの基準が、ユーザによって設定されてもよい。例えば、ユーザは、(例
えば、特定の2要素認証の規則のセットについて)2要素認証が常に要求されること、2
要素認証が所定の期間(例えば、午後5時から午前6時の間)にのみ要求されること、特
定のタイムフレーム(例えば、次の1時間、翌日、翌週など)に要求されること、或いは
コンピューティングデバイス100によって攻撃が検出された場合(例えば、直接的に検
知した場合、又は外部システム又はデバイスによって通知された場合)又はコンピューテ
ィングデバイス100が攻撃の危険にさらされている可能性があると判定された場合(例
えば、上述のように識別された場合)にのみ2要素認証が要求されること、を指定しても
よい。ユーザは、基準、保護タイプ、及び2要素認証タイプの任意の組合せを有してもよ
く、データストレージデバイス106に対してアクティブな複数の保護のセットを有して
もよい。ある場合には、データストレージデバイスは、データストレージデバイス106
がオペレーティングシステムから取り外された場合に(例えば、ホストコントローラ10
8がアクセスされることで、或いはオペレーティングシステムがホストコントローラの代
わりに2要素認証を管理するために使用されることで)データへのアクセスを阻止するな
どの、ユーザが2要素認証プロセスを終了できない限り、1つ以上のセクタへのアクセス
を制限する、ファームウェア変更を有してもよい。
【0052】
ある実施形態では、コンピューティングシステム100は、例えば上述の2要素認証に
おける要素のうちの1つとして、認証プロセスの一部に拡張現実を使用するように構成さ
れてもよい。このような実施形態では、位置的、物理的、及び視覚的な入力の組合せが、
コンピューティングシステム100におけるユーザの認証に使用されてもよい。このよう
な入力は、ジオロケーション、ローカル環境、ローカル位置、及びオブジェクトの入力を
含んでもよい。ジオロケーション入力は、全地球測位システムの使用により提供されるよ
うな、地理的座標(例えば、緯度及び経度)を含んでもよい。ローカル環境入力は、(例
えば、オフィス、自宅、特定のオフィス、野球場など)ユーザのすぐ周囲の環境を識別す
る広範な視覚的な手がかりを含んでもよい。ローカル位置入力は、(例えば、オフィスの
コーナー、特定のオフィスの中央、野球場のファーストベース上など)ローカル環境にお
けるユーザの位置を識別するために、ローカル環境に関連付けられた、より具体的な環境
特徴を含んでもよい。オブジェクト入力は、(例えば、取り付けられた写真、名刺、カウ
チのコーナー、壁金庫の裏、壁のステッカーなど)ユーザのローカル位置から見ることが
できるローカル環境における特定のオブジェクト又はその特徴に関するデータを含んでも
よい。これらの入力のシリーズは、ユーザの認証に使用するための認証データのセットと
して使用されてもよい。例えば、ユーザは、カメラを(例えば、スマートフォン、ウェア
ラブルコンピューティングデバイス、又は他の適切なデバイス上に)所有してもよく、カ
メラを使用して画像データをキャプチャし、画像がキャプチャされた地理的位置を特定し
て、コンピューティングシステム100に送信してもよい。次に、コンピューティングシ
ステム100は、地理的位置を使用してユーザが登録されたジオロケーションにいるか否
かを識別し、そして、画像データから、ユーザがローカル環境内の正しいローカル位置に
いるか否かを判定し、ユーザが特定のオブジェクトを見ているか否かを判定してもよい。
例えば、認証は、ユーザが自宅にいて、自宅のオフィスにいて、オフィスの特定の壁にあ
る特定のステッカーを見ることを要求してもよい。
【0053】
ある場合には、拡張現実の使用が2要素認証の一部として使用されてもよい。このよう
な場合、指定されたジオロケーションの、指定された環境における、指定されたオブジェ
クトのユーザによる目視の認証は、オブジェクトの目視に加えて提供され認証されるパス
ワード又は他の情報のような、追加データの提供と組み合わされてもよい。ある実施例で
は、オブジェクトの目視は、認証の2番目の要素に使用されるデータを明らかにするため
に使用されてもよい。例えば、ユーザは、カメラ又は他の光学撮像装置を使用して、コン
ピューティングシステム100に送信される画像データをキャプチャしてもよく、コンピ
ューティングシステム100は、カメラによってキャプチャされ、コンピューティングシ
ステム100に送信されるものを表示するスマートフォンなど、キャプチャされた光学画
像のリアルタイム表示をユーザに提供する表示装置を含んでもよい。ユーザがコンピュー
ティングシステム100によって判定された正しいオブジェクトを見ている場合、コンピ
ューティングシステム100は、パスワード又は他のデータを、標準的な拡張現実技術を
使用して、正しいオブジェクトに重ねてデータを表示可能な、デバイスに送信してもよい
。例えば、上記の例では、パスワードのリストがユーザの自宅のオフィスの特定のステッ
カーに表示され、ユーザは、リストから適切なパスワードを第2の認証要素として提供し
てもよい。したがって、ユーザが正しいパスワードを識別することができる唯一の方法は
、正しい環境の正しい位置にいて、正しいオブジェクトを見ていることである(パスワー
ドは、例えば、静的であってもよく、或いは、動的で、ユーザへの表示のために送信する
前にコンピューティングシステム100によって生成されてもよい)。
【0054】
ある実施形態では、タイピングヒューリスティックが、コンピューティングシステム1
00における認証要素として使用されてもよい。コンピューティングシステム100は、
そのユーザによって入力されたキーストロークを受け付けるために、コンピューティング
システム100とインタフェース接続された入力装置として、キーボードを含んでもよく
、或いは、コンピューティングシステム100は、ユーザの認証要求の一部としてキース
トローク情報を受信してもよい。キーストローク情報は、少なくとも、ユーザによってキ
ーボード上で押下されたキーを含んでもよく、また、それぞれのキーストロークに関する
タイムスタンプ情報を含んでもよく、(例えば、それぞれのキーを押下するために使用さ
れる)タイピング圧力、それぞれのキーストロークの押下及び/又は解放時間(例えば、
ユーザがキーを押下し、或いは一旦押下されたキーを解放するのにどれだけの時間がかか
るか)などの、任意の他の使用可能な情報を含んでもよい。コンピューティングシステム
100は、キーストローク情報を受信し、ユーザのタイピングパターンを識別してもよい
(例えば、任意の適切なプロセスを通じてユーザを識別してもよい)。タイピングパター
ンは、タイピング速度、キーストローク速度、キーストローク圧力、キーストローク間の
時間(例えば、一般的なキーストローク、及び/又は、ある特定の文字から別の文字へと
いった特定のキーストローク)、タイピング精度などの、ユーザのタイピングヒューリス
ティックの評価であってもよい。タイピングパターンは、ユーザの認証キーを生成するた
めに使用されてもよく、認証キーは、タイピングヒューリスティックをハッシュ化するこ
とにより生成される値のような、タイピングパターンを示すデータ値であってもよい。認
証キーは、コンピューティングシステム100との後続の相互アクションにおいてユーザ
を認証するために使用されてもよい。例えば、一例では、タイピングヒューリスティック
は、コンピューティングシステム100のユーザ(或いは、例えば、認証のためにコンピ
ューティングシステム100を使用する他の外部デバイスのユーザ)が電子メールを書く
任意の時点でキャプチャされてもよい。ユーザが電子メールメッセージのコンテンツをタ
イプすると、そのキーストロークがキャプチャされ、そのタイピングヒューリスティック
が送信前にコンピューティングシステム100によって評価されてもよい。コンピューテ
ィングシステム100は、電子メールのタイピングパターンに基づいて新たなキーを生成
し、登録プロセス中にユーザのために生成された認証キーと比較してもよい。比較が成功
すると、電子メールをタイプしたユーザは、登録ユーザと判定され、電子メールが正常に
送信されてもよい。比較が失敗すると、タイプパターンの違いにより他人が登録されたユ
ーザであると主張していることを示すような、認証失敗を示すエラーメッセージが電子メ
ールの代わりに(或いは、例えば、電子メールとともに)送信されてもよい。ある実施例
では、タイピングヒューリスティックは、上述のユーザフィンガープリントと組み合わさ
れてもよい。
【0055】
<例示的なホストコントローラプロセス>
図3は、コンピューティングシステム100におけるデータストレージデバイス106
の動作に関して、データストレージデバイス106のホストコントローラ108によって
実行されるプロセス300を示す。
図3に示すプロセス300は一例であり、ホストコン
トローラ108がその動作中に追加及び/又は代替のプロセスを使用し得ることは、当業
者には明らかであろう。
【0056】
ステップ302において、ホストコントローラ108は、インタフェース(例えば、フ
ァイルシステムコントローラ122、中継装置118などと通信するためのアプリケーシ
ョンプログラミングインタフェース)のアクティベーション、記憶ブロック及びセクタの
読み出し及びログへの記録、任意のベンダ機能のアクティベーション、コンピューティン
グシステム100又はネットワーク内の他のコンポーネントとのセキュアチャネルの確立
などを含む、プラットホームの初期化を実施してもよい。ステップ304において、デー
タストレージデバイス106の動作のためのホストコントローラ108によるコマンドの
標準的な処理を含む、コマンド処理ループが開始されてもよい。
【0057】
ステップ306において、ホストコントローラ108は、ホストコントローラ108、
中継装置118、又はデータをホストコントローラ108と通信する他のデバイスにより
検出され得る脅威イベントなどの、セキュリティイベントが発生したか否かを判定しても
よい。例えば、脅威イベントは、独立コンポーネントに関連付けられたコマンドの有無、
データアクセスリミットへの到達、セキュアチャネルを使用して通信される他のコンピュ
ーティングデバイスによる脅威イベントの検出などであってもよい。セキュリティイベン
トが検出された場合、ステップ308において、ホストコントローラ108は、構成可能
な応答テーブルに従って適切な応答を実行してもよい。構成可能な応答テーブルは、検出
されたイベントに対する応答のリストを含んでもよく、応答は、例えば、データのバック
アップ、データの暗号化、OSアプリケーション120の復元、他のコンピューティング
システム100への通知、データの消去、データへのアクセスの阻止、(例えば、0x0
0s、ランダムデータなどの)代替のデータの返送を含んでもよい。ホストコントローラ
106により追跡されているイベントのプロンプトがある場合、適切な応答が実行される
と、セキュリティイベントのプロンプトがリストから除去されてもよい。
【0058】
脅威イベントではないイベントが発生した場合、ステップ310において、イベント(
本明細書ではコマンドパケットとも称される)が解析される。コマンドパケットの解析は
、
図4に示されるプロセス400を使用して実行されてもよい。ステップ402において
、データの読み出し、データの変更、データの上書き、データの移動などのコマンドであ
る、コマンドパケットが審査されてもよい。ステップ404において、ホストコントロー
ラ108は、コマンドの要求者又はそれに関連付けられたアクションなどに基づいて、コ
マンドのコマンドタイプを判定してもよい。例えば、コマンドは、ファイルシステムコン
トローラ122から受信した標準読み出しコマンドであってもよく、或いは、データスト
レージデバイス106の一部としてベンダアクションから発行されたコマンドであっても
よい。ステップ406において、ホストコントローラ108は、データストレージデバイ
ス106に向かうデータ、データストレージデバイス106から出てくるデータ、或いは
、データストレージデバイス106に出入りするデータなし、というように、コマンドの
結果としてデータが流れる方向を判定してもよい。
【0059】
コマンドパケットが解析されると、ステップ312において、ホストコントローラ10
8は、(例えば、ステップ404の解析に基づいて)コマンドパケットがベンダコマンド
であるか否かを判定してもよい。コマンドパケットがベンダコマンドである場合、ステッ
プ314において、
図5に示されるプロセス500が実行されてもよい。ステップ502
において、ホストコントローラ108は、その動作が、ベンダコマンドに対応するベンダ
に関連付けられたモードにあるか否かを判定してもよい。そうではない場合、プロセス5
00は終了してもよい。あるいは、ホストコントローラ108のモードが、それに応じて
調整されてもよい。ホストコントローラ108がベンダモードにある場合、ステップ50
4において、ベンダコマンドがホストコントローラ108によって実行され、対応するア
クションが実行されてもよい。
【0060】
ステップ312において、コマンドパケットが非ベンダコマンドのものであるとホスト
コントローラ108が判定した場合、ステップ316において、ホストコントローラ10
8は、
図6に示されるプロセス600を実行してもよい。ステップ602において、コマ
ンドの前に実行されるベンダに関連付けられた任意のプロセスが、ホストコントローラ1
08によって実行されてもよい。ステップ604において、(例えばコマンドパケットに
示されるように)実行されるべきコマンドがパターンエンジンに追加されてもよい。ステ
ップ606において、パターンエンジンは、(例えばコマンドの)パターンが正常である
か否か、及び、(署名、実行されるべきコマンドなどに基づいて)パターンが脅威イベン
トであることの何らかの兆候を示すか否かを判定するために照会されてもよい。ステップ
608において、ホストコントローラ108は、パターンエンジンのチェックが失敗した
か否か(例えば、脅威又は異常イベントが検出されたか否か)を判定する。チェックが失
敗した場合、ステップ610において、ステップ308に記載されているように、構成可
能な応答テーブルに示されるような適切な応答が実行されてもよい。ある場合には、プロ
セス600は、応答が実行されると完了されてもよい。他の場合、又はチェックが合格し
た場合、ステップ612において、コマンドパケット内のコマンド(例えばデータ読み出
し、書き込み、上書き、変更など)が実行されてもよい。コマンドの実行は、
図8に示さ
れ、以下で詳細に説明されるプロセス800を使用してもよい。
【0061】
ステップ614において、コマンド後処理が実行されてもよい。ある場合には、コマン
ド後処理は、コマンドの実行の結果として生じるような脅威イベントの識別を含んでもよ
い。脅威イベントが発生した場合、脅威イベントは、適切な応答の実行のために(例えば
ステップ306で)ホストコントローラ108にフィードバックされてもよい。ステップ
616において、コマンドの実行に関するメトリクスがキャプチャされ、後続のイテレー
ションにおけるステップ606で行われる将来の判定に使用されるためにパターンエンジ
ンにフィードバックされてもよい。
【0062】
コマンドが処理されると、ステップ318において、ホストコントローラ108は、プ
ロセス300がアイドルであるか否かを判定してもよい。この判定は、例えば、実行を待
っている受信されたコマンドのプロンプトリストに基づいてもよく、ホストコントローラ
108は、ホストコントローラ108による処理を現在待っているコマンドパケットがな
い場合にはアイドルであってもよい。ホストコントローラ108がアイドルではない場合
、ステップ322において、プロセス300は、ステップ304に戻り、次のコマンドパ
ケットを処理してもよい。
【0063】
ホストコントローラ108がアイドルである場合、ステップ320において、ホストコ
ントローラ108は、
図7に示されるような、アイドルプロセス700を実行してもよい
。アイドルプロセスでは、ステップ702において、ホストコントローラ108は、何ら
かの実行されるべき処理が(例えば古いデータのクリア、データセクタの切り替えなどの
ために)データストレージデバイス106に記憶されたデータを変更するか否かを判定し
てもよい。変更が行われる場合、ステップ704において、ホストコントローラ108は
、独立コンポーネントのステータス、該当する規則の遵守などに基づいて、このような変
更が許可されるか否かを判定してもよい。変更が許可されないが、コマンドに必要である
場合、プロセス700は、コマンドを実行せずに完了してもよい。変更が許可される場合
、又は変更が必要ではない場合、ステップ706において、ホストコントローラ108は
、アイドル処理コマンドを実行してもよい。アイドル処理コマンドは、例えば、ガーベッ
ジコレクション、古い又はインアクティブなブロックのクリア、パターンエンジンの更新
、及び当業者には明らかな他のアクションを含んでもよい。
【0064】
ホストコントローラ108によるコマンドの実行は、
図8に示されるプロセス800を
使用してもよい。ステップ802において、ホストコントローラ108は、(例えばステ
ップ406で判定されるように)コマンドが読み出しコマンドであるか否かを判定する。
コマンドが読み出しコマンドである場合、ステップ804において、ホストコントローラ
108は、ユーザ制限、ユーザパーミッション、独立コンポーネント状態などに基づいて
、データの読み出しが現在許可されるか否かを判定してもよい。読み出しが許可されない
場合、ステップ806において、ホストコントローラ108は、試みられた読み出しアク
セスがログに記録されるべきか否かを判定してもよい。このような判定は、コンピューテ
ィングシステム100のオペレータ、データストレージデバイス106の製造者、コマン
ドの性質などにより行われる、ホストコントローラ108の設定に基づいてもよい。アク
セスがログに記録されるべきではない場合、プロセス800は完了されてもよい。アクセ
スがログに記録されるべきである場合、ステップ808において、試みられた読み出しコ
マンドは、ホストコントローラ108において(或いは、例えば中継装置118のSAT
Aドライブ210などの他の適切なコンポーネントにおいて)ログに記録されてもよい。
【0065】
ステップ804において、読み出しが許可されるとホストコントローラ108が判定し
た場合、ステップ810において、ホストコントローラ108は、アクションの実行がロ
グに記録されるべきか否かを判定してもよい。そうであれば、ステップ812において、
ホストコントローラ108は(或いは、例えば他の適切なコンポーネントは)、コマンド
の実行をログに記録してもよい。ステップ814において、ホストコントローラ108は
、読み出されるデータが(例えば、コマンドパケットに示されるなどにより)返される前
に変更されるべきか否かを判定してもよい。データが変更される場合、ステップ816に
おいて、データはそれに応じて変更されてもよい。データが変更された場合、或いは、変
更が行われなかった場合、ステップ818において、データは、ファイルシステムコント
ローラ122又はコマンドパケットに示される他の該当するコンポーネントに返され、プ
ロセス800が完了してもよい。
【0066】
ステップ802において、コマンドパケットがデータの読み出しに関するものではない
とホストコントローラ108が判定した場合、ステップ820において、ホストコントロ
ーラ108は、コマンドパケットがデータの書き込みに関するものであるか否かを判定し
てもよい。コマンドパケットがデータの読み出し又は書き込みを行わないコマンドに関す
るものである場合、ステップ822において、ホストコントローラ108によって、デー
タなし(non-data)コマンドが実行されてもよい。コマンドがデータの書き込みを伴う場
合、ステップ824において、ホストコントローラ108は、上述のように、対応するデ
ータへの変更が許可される否かを判定してもよい。変更が許可されない場合、ステップ8
26及び828において、ホストコントローラ108は、試みられた変更がログに記録さ
れるべきか否かを判定し、それに応じて処理を進めてもよい。
【0067】
変更が許可される場合、ステップ830において、ホストコントローラ108は、変更
がログに記録されるべきか否かを判定してもよく、そうであれば、ステップ832におい
て、実行される変更をログに記録してもよい。ステップ834において、ホストコントロ
ーラ108は、変更されるデータが変更前にバックアップされるべきか否かを判定しても
よい。このような判定は、コマンドのタイプ、ホストコントローラ108で設定されたポ
リシー、脅威イベントとしてのコマンドパケットの検出などに基づいてもよい。バックア
ップが実行される場合、ステップ836において、ホストコントローラ108は、データ
をデータストレージデバイス106内の所定のブロック及び/又はセクタにコピーするこ
となどにより、変更されるデータをバックアップしてもよい。バックアップが完了した場
合、又はバックアップが実行されない場合、ステップ838において、ホストコントロー
ラ108は、対応するデータブロック又はセクタへの変更を実行して、コマンドパケット
に示されるとおりに、データの書き込みを達成してもよい。
【0068】
<コンピュータシステムアーキテクチャ>
図9は、本開示の実施形態又はその一部がコンピュータ可読コードとして実装され得る
コンピュータシステム900を示す。例えば、
図1のコンピューティングシステム100
は、ハードウェア、ソフトウェア、ファームウェア、命令を記憶した非一時的コンピュー
タ可読媒体、又はそれらの組み合わせを使用してコンピュータシステム900に実装され
てもよく、1つ以上のコンピュータシステム又は他の処理システムに実装されてもよい。
ハードウェア、ソフトウェア、又はそれらの任意の組合せにより、
図3~
図8の方法を実
施するために使用されるモジュール及びコンポーネントが具現化されてもよい。
【0069】
プログラマブルロジックが使用される場合、このようなロジックは、専用のコンピュー
タ又は専用のデバイスとなるように、実行可能なソフトウェアコードによって構成された
市販の処理プラットホーム上(例えばプログラマブルロジックアレイ、特定用途向け集積
回路など)で実行されてもよい。開示された主題の実施形態が、マルチコアマルチプロセ
ッサシステム、ミニコンピュータ、メインフレームコンピュータ、分散機能を用いてリン
ク又はクラスタ化されたコンピュータ、並びに、実質的に任意のデバイスに組み込まれ得
るパーベイシブ又はミニチュアコンピュータを含む、様々なコンピュータシステム構成で
実施され得ることは、当業者であれば理解されよう。例えば、少なくとも1つのプロセッ
サデバイス及びメモリを使用して、上述の実施形態が実装されてもよい。
【0070】
本明細書で説明されるプロセッサユニット又はデバイスは、単一のプロセッサ、複数の
プロセッサ、又はそれらの組み合わせとされてもよい。プロセッサデバイスは、1つ以上
のプロセッサ「コア」を有してもよい。本明細書で論じられる「コンピュータプログラム
媒体」、「非一時的コンピュータ可読媒体」、及び「コンピュータ使用可能媒体」という
用語は、一般に、リムーバブルストレージユニット918、リムーバブルストレージユニ
ット922、及びハードディスクドライブ912に設置されるハードディスクのような、
有形媒体を指すために使用される。
【0071】
本開示の様々な実施形態は、この例示的なコンピュータシステム900に関連付けて説
明されている。本説明を読んだ後、他のコンピュータシステム及び/又はコンピュータア
ーキテクチャを使用して、どのように本開示を実装するかは、当業者には明らかになるで
あろう。動作は連続的なプロセスとして記述されてもよいが、動作のいくつかは実際には
並列、同時、及び/又は分散環境において実行されてもよく、シングル又はマルチプロセ
ッサマシンによるアクセスのためにローカル又はリモートに記憶されたプログラムコード
を用いて実行されてもよい。さらに、ある実施形態では、動作の順序は、開示された主題
の趣旨から逸脱することなく再構成されてもよい。
【0072】
プロセッサデバイス904は、本明細書で説明される機能を実行するように特に構成さ
れた、専用又は汎用プロセッサデバイスであってもよい。プロセッサデバイス904は、
バス、メッセージキュー、ネットワーク、マルチコアメッセージパッシングスキームなど
の、通信インフラストラクチャ906に接続されてもよい。ネットワークは、本明細書で
開示されるような機能を実行するのに適した任意のネットワークであってもよく、ローカ
ルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、ワイヤレスネ
ットワーク(例えば、WiFi)、移動体通信網、衛星ネットワーク、インターネット、
光ファイバ、同軸ケーブル、赤外線、無線周波数(RF)、又はそれらの任意の組合せを
含んでもよい。他の適切なネットワークのタイプ及び構成は、当業者には明らかであろう
。コンピュータシステム900は、メインメモリ908(例えば、ランダムアクセスメモ
リ、リードオンリーメモリなど)を含んでもよく、セカンダリメモリ910を含んでもよ
い。セカンダリメモリ910は、ハードディスクドライブ912と、フロッピーディスク
ドライブ、磁気テープドライブ、光ディスクドライブ、フラッシュメモリなどのリムーバ
ブルストレージドライブ914と、を含んでもよい。
【0073】
リムーバブルストレージドライブ914は、周知の方法で、リムーバブルストレージユ
ニット918への読み出し及び/又は書き込みを実施可能であってもよい。リムーバブル
ストレージユニット918は、リムーバブルストレージドライブ914によって読み出し
及び書き込みされ得る、取り外し可能な記憶媒体を含んでもよい。例えば、リムーバブル
ストレージデバイス914がフロッピーディスクドライブ又はユニバーサルシリアルバス
ポートである場合、リムーバブルストレージユニット918は、それぞれフロッピーディ
スク又はポータブルフラッシュドライブであってもよい。一実施形態では、リムーバブル
ストレージユニット918は、非一時的コンピュータ可読記録媒体であってもよい。
【0074】
ある実施形態では、セカンダリメモリ910は、例えばリムーバブルストレージユニッ
ト922及びインタフェース920など、コンピュータプログラム又は他の命令をコンピ
ュータシステム900にロードすることを可能にする代替手段を含んでもよい。このよう
な手段の例は、当業者には明らかなように、(例えばビデオゲームシステムに見られるよ
うな)プログラムカートリッジ及びカートリッジインタフェース、(例えばEEPROM
、PROMなどの)リムーバブルメモリチップ及び関連付けられたソケット、並びに他の
リムーバブルストレージユニット922及びインタフェース920を含んでもよい。
【0075】
コンピュータシステム900に(例えば、メインメモリ908及び/又はセカンダリメ
モリ910に)記憶されるデータは、光学ストレージ(例えば、コンパクトディスク、デ
ジタルバーサタイルディスク、ブルーレイディスク等)又は磁気テープストレージ(例え
ば、ハードディスクドライブ)のような、任意のタイプの適切なコンピュータ可読媒体に
記憶されてもよい。データは、リレーショナルデータベース、ストラクチャードクエリラ
ンゲージ(SQL)データベース、分散データベース、オブジェクトデータベースなど、
任意のタイプの適切なデータベース構成で構成されてもよい。好適な構成及びストレージ
タイプは、当業者には明らかであろう。
【0076】
コンピュータシステム900は、通信インタフェース924を含んでもよい。通信イン
タフェース924は、コンピュータシステム900と外部デバイスとの間でソフトウェア
及びデータを転送可能にするように構成されてもよい。例示的な通信インタフェース92
4は、モデム、ネットワークインタフェース(例えば、イーサネットカード)、通信ポー
ト、PCMCIAスロット及びカードなどを含んでもよい。通信インタフェース924を
介して転送されるソフトウェア及びデータは、当業者には明らかなように、電子的、電磁
気的、光学的、又は他の信号などの、信号の形態であってもよい。信号は、信号を伝送す
るように構成され、ワイヤ、ケーブル、光ファイバ、電話回線、携帯電話リンク、無線周
波数リンクなどを使用して実施され得る、通信パス926を介して移動してもよい。
【0077】
コンピュータシステム900は、表示インタフェース902を更に含んでもよい。表示
インタフェース902は、コンピュータシステム900と外部ディスプレイ930との間
でデータを転送可能にするように構成されてもよい。例示的なディスプレイインタフェー
ス902は、高精細度マルチメディアインタフェース(HDMI)、デジタルビジュアル
インタフェース(DVI)、ビデオグラフィックスアレイ(VGA)などを含んでもよい
。ディスプレイ930は、陰極線管(CRT)ディスプレイ、液晶ディスプレイ(LCD
)、発光ダイオード(LED)ディスプレイ、静電容量タッチディスプレイ、薄膜トラン
ジスタ(TFT)ディスプレイなどを含む、コンピュータシステム900の表示インタフ
ェース902を介して送信されるデータを表示するための任意の適切なタイプのディスプ
レイであってもよい。
【0078】
コンピュータプログラム媒体及びコンピュータ使用可能媒体は、メモリ半導体(例えば
DRAMなど)であり得る、メインメモリ908及びセカンダリメモリ910などのメモ
リを指してもよい。これらのコンピュータプログラム製品は、コンピュータシステム90
0にソフトウェアを提供するために手段である。コンピュータプログラム(例えば、コン
ピュータ制御ロジック)は、メインメモリ908及び/又はセカンダリメモリ910に記
憶されてもよい。コンピュータプログラムは、通信インタフェース924を介して受信さ
れてもよい。このようなコンピュータプログラムは、実行されると、コンピュータシステ
ム900が本明細書で論じられる本方法を実施できるようにしてもよい。具体的には、コ
ンピュータプログラムは、実行されると、本明細書で説明すされるように、プロセッサデ
バイス904が
図3~
図8に示される方法を実施できるようにしてもよい。したがって、
このようなコンピュータプログラムは、コンピュータシステム900のコントローラを表
してもよい。本開示がソフトウェアを使用して実装される場合、ソフトウェアは、コンピ
ュータプログラム製品に記憶され、リムーバブルストレージドライブ914、インタフェ
ース920、及びハードディスクドライブ912、又は通信インタフェース924を使用
して、コンピュータシステム900にロードされてもよい。
【0079】
プロセッサデバイス904は、コンピュータシステム900の機能を実行するように構
成された1つ以上のモジュール又はエンジンを備えてもよい。モジュール又はエンジンの
それぞれは、ハードウェアを使用して実装されてもよく、ある実施例では、メインメモリ
908又はセカンダリメモリ910に記憶されたプログラムコード及び/又はプログラム
に対応するようなソフトウェアを使用してもよい。このような場合、プログラムコードは
、コンピュータシステム900のハードウェアによる実行の前に、プロセッサデバイス9
04(例えばコンパイルモジュール又はエンジン)によってコンパイルされてもよい。例
えば、プログラムコードは、プロセッサデバイス904及び/又はコンピュータシステム
900の任意の追加のハードウェアコンポーネントによる実行のために、アセンブリ言語
又はマシンコードのような下位言語(lower level language)に翻訳されるプログラミン
グ言語で書かれたソースコードであってもよい。コンパイルのプロセスは、語彙分析、前
処理、構文解析、意味解析、構文指向翻訳、コード生成、コード最適化、及び本明細書に
開示される機能を実行するためにコンピュータシステム900を制御するのに適した下位
言語へのプログラムコードの翻訳に適している他の任意の技術の使用を含んでもよい。こ
のようなプロセスの結果、コンピュータシステム900が、上述の機能を実行するように
一意にプログラムされた、特別に構成されたコンピュータシステム900になることは、
当業者には明らかであろう。
【0080】
本開示と整合性のある技術は、特に、データアクセスの監視及び制御のシステム及び方
法を提供する。開示されたデバイス及び方法の様々な例示的な実施形態が上述されたが、
限定ではなく、単に例示の目的のために提示されたことを理解されるべきである。これは
網羅的ではなく、開示された厳密な形態に限定するものではない。上記の教示に照らして
、変更及び変形が可能であり、あるいは、本開示の実施から、その範囲又はスコープから
逸脱することなく、変更及び変形を得ることができる。