IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ アクロニス・インターナショナル・ゲーエムベーハーの特許一覧

特許7746218イベントチェーンに基づいてユーザ同一性を認証するためのシステムおよび方法
<>
  • 特許-イベントチェーンに基づいてユーザ同一性を認証するためのシステムおよび方法 図1
  • 特許-イベントチェーンに基づいてユーザ同一性を認証するためのシステムおよび方法 図2
  • 特許-イベントチェーンに基づいてユーザ同一性を認証するためのシステムおよび方法 図3
  • 特許-イベントチェーンに基づいてユーザ同一性を認証するためのシステムおよび方法 図4
  • 特許-イベントチェーンに基づいてユーザ同一性を認証するためのシステムおよび方法 図5
  • 特許-イベントチェーンに基づいてユーザ同一性を認証するためのシステムおよび方法 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-09-19
(45)【発行日】2025-09-30
(54)【発明の名称】イベントチェーンに基づいてユーザ同一性を認証するためのシステムおよび方法
(51)【国際特許分類】
   G06F 21/62 20130101AFI20250922BHJP
【FI】
G06F21/62
【請求項の数】 16
【外国語出願】
(21)【出願番号】P 2022079789
(22)【出願日】2022-05-13
(65)【公開番号】P2023048093
(43)【公開日】2023-04-06
【審査請求日】2022-08-31
【審判番号】
【審判請求日】2024-07-18
(31)【優先権主張番号】17/486,069
(32)【優先日】2021-09-27
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】313015247
【氏名又は名称】アクロニス・インターナショナル・ゲーエムベーハー
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】アレクサンドル トルマソフ
(72)【発明者】
【氏名】ノーム ヘロルド
(72)【発明者】
【氏名】ユーリ アヴェルキエフ
(72)【発明者】
【氏名】セルゲイ ベロウソフ
(72)【発明者】
【氏名】スタニスラフ プロタソフ
【合議体】
【審判長】吉田 美彦
【審判官】林 毅
【審判官】松崎 孝大
(56)【参考文献】
【文献】特開2017-120559(JP,A)
【文献】特開2017-134750(JP,A)
【文献】特開2006-331048(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F21/62
(57)【特許請求の範囲】
【請求項1】
イベントチェーンに基づいてユーザ同一性を認証するための方法であって、
環境内の少なくとも1つのセンサからセンサデータを受信することと、
コンピューティングデバイスを介してデータにアクセスする権限を有するユーザの、複数の識別子を判定するために、前記センサデータをパースすることと、
前記複数の識別子の各識別子について、前記識別子に対応するユーザによって特定の場所において実行された動作であるイベントを、前記動作を実行した時間であるタイムスタンプに関連付けて生成することと、
前記コンピューティングデバイス上のデータにアクセスする権限を有する前記ユーザの識別子を含むデータアクセス要求をインターセプトすることと、
前記データアクセス要求が、データにアクセスする権限を有する前記ユーザからのものであるか否かを認証することとを含み、前記認証することが、
前記データアクセス要求に先行する期間について、イベントチェーンを生成することであって、前記イベントチェーンが、それぞれに関連付けられたタイムスタンプに基づいて順序付けられ、前記ユーザの識別子について生成された複数のイベントを含む、イベントチェーンを生成することと、
前記ユーザによる認証済みアクセスを示すターゲットイベントチェーンとの、前記イベントチェーンのずれであって、イベント順序および前のイベントの終了から各イベントに割り当てられた時間長の関数であるずれを判定することと、
前記ずれが、ずれ閾値未満であり、並びに、前記イベントチェーンのイベント順序が非論理的シーケンスでなく、前記コンピューティングデバイス上で実行された動作が通常の使用と矛盾しておらず、かつ、人が前記コンピューティングデバイスに物理的にアクセスしていないことを示すイベントが検出されないと判定したことに応じて、前記データアクセス要求が前記ユーザからのものであることを認証し、前記データアクセス要求を許可することとを含む方法。
【請求項2】
前記ずれが、前記ずれ閾値未満でないと判定したことに応じて、前記データアクセス要求が前記ユーザからのものであると認証せず、前記データアクセス要求をブロックすることをさらに含む請求項1に記載の方法。
【請求項3】
前記データアクセス要求が複数のデータアクセスの内の第1のデータアクセスであり、
前記方法が、前記ターゲットイベントチェーンが、前記第1のデータアクセスのターゲットイベントチェーンであると判定することによって、前記ターゲットイベントチェーンを特定することをさらに含む請求項1に記載の方法。
【請求項4】
前記第1のデータアクセスが、特定の場所に固定されたコンピューティングデバイスからのアクセスであって、前記ターゲットイベントチェーンが、前記特定の場所に入り、前記コンピューティングデバイスにアクセスする前記ユーザの進捗を示す、請求項3に記載の方法。
【請求項5】
前記第1のデータアクセスが、携帯可能なコンピューティングデバイスからのアクセスであって、前記ターゲットイベントチェーンが、前記データアクセス要求を開始するために前記コンピューティングデバイス上で動作を実行する前記ユーザの進捗を示す、請求項3に記載の方法。
【請求項6】
前記ターゲットイベントチェーン内の前記各それぞれのイベントが、前記それぞれのイベントの重要性を示す重みを割り当てられる、請求項1に記載の方法。
【請求項7】
前記ターゲットイベントチェーンが、以前のデータアクセスの前に前記ユーザによって実行された履歴イベントチェーンである、請求項1に記載の方法。
【請求項8】
イベントチェーンに基づいてユーザ同一性を認証するためのシステムであって、
環境内の少なくとも1つのセンサからセンサデータを受信し、
コンピューティングデバイスを介してデータにアクセスする権限を有するユーザの、複数の識別子を判定するために、前記センサデータをパースし、
前記複数の識別子の各識別子について、前記識別子に対応するユーザによって特定の場所において実行された動作であるイベントを、前記動作を実行した時間であるタイムスタンプに関連付けて生成し、
前記コンピューティングデバイス上のデータにアクセスする権限を有する前記ユーザの識別子を含むデータアクセス要求をインターセプトし、
前記データアクセス要求が、データにアクセスする権限を有する前記ユーザからのものであるか否かを、
前記データアクセス要求に先行する期間について、イベントチェーンを生成することであって、前記イベントチェーンが、それぞれに関連付けられたタイムスタンプに基づいて順序付けられ、前記ユーザの識別子について生成された複数のイベントを含む、イベントチェーンを生成し、
前記ユーザによる認証済みアクセスを示すターゲットイベントチェーンとの、前記イベントチェーンのずれであって、イベント順序および前のイベントの終了から各イベントに割り当てられた時間長の関数であるずれを判定し、
前記ずれが、ずれ閾値未満であり、並びに、前記イベントチェーンのイベント順序が非論理的シーケンスでなく、前記コンピューティングデバイス上で実行された動作が通常の使用と矛盾しておらず、かつ、人が前記コンピューティングデバイスに物理的にアクセスしていないことを示すイベントが検出されないと判定したことに応じて、前記データアクセス要求が前記ユーザからのものであることを認証し、前記データアクセス要求を許可することによって、認証するように構成されたハードウェアプロセッサを備えるシステム。
【請求項9】
前記ハードウェアプロセッサが、前記ずれが前記ずれ閾値未満でないと判定したことに応じて、前記データアクセス要求が前記ユーザからのものであると認証せず、前記データアクセス要求をブロックするようにさらに構成される、請求項に記載のシステム。
【請求項10】
前記データアクセス要求が複数のデータアクセスの内の第1のデータアクセスであり、前記ハードウェアプロセッサは、前記ターゲットイベントチェーンが、前記第1のデータアクセスのターゲットイベントチェーンであると判定することによって前記ターゲットイベントチェーンを特定するようにさらに構成される、請求項に記載のシステム。
【請求項11】
前記第1のデータアクセスが、特定の場所に固定されたコンピューティングデバイスからのアクセスであって、前記ターゲットイベントチェーンが、前記特定の場所に入り、前記コンピューティングデバイスにアクセスする前記ユーザの進捗を示す、請求項10に記載のシステム。
【請求項12】
前記第1のデータアクセスが、携帯可能なコンピューティングデバイスからのアクセスであって、前記ターゲットイベントチェーンが、前記データアクセス要求を開始するために前記コンピューティングデバイス上で動作を実行する前記ユーザの進捗を示す、請求項10に記載のシステム。
【請求項13】
前記ターゲットイベントチェーン内の前記各それぞれのイベントが、前記それぞれのイベントの重要性を示す重みを割り当てられる、請求項に記載のシステム。
【請求項14】
前記ターゲットイベントチェーンが、以前のデータアクセスの前に前記ユーザによって実行された履歴イベントチェーンである、請求項に記載のシステム。
【請求項15】
イベントチェーンに基づいてユーザ同一性を認証するためのコンピュータ実行可能命令を格納する非一時的コンピュータ可読媒体であって、
環境内の少なくとも1つのセンサからセンサデータを受信する命令と、
コンピューティングデバイスを介してデータにアクセスする権限を有するユーザの、複数の識別子を判定するために、前記センサデータをパースする命令と、
前記複数の識別子の各識別子について、前記識別子に対応するユーザによって特定の場所において実行された動作であるイベントを、前記動作を実行した時間であるタイムスタンプに関連付けて生成する命令と、
前記コンピューティングデバイス上の、データにアクセスする権限を有する前記ユーザの識別子を含むデータアクセス要求をインターセプトする命令と、
前記データアクセス要求が、データにアクセスする権限を有する前記ユーザからのものであるか否かを、
前記データアクセス要求に先行する期間について、イベントチェーンを生成することであって、前記イベントチェーンが、それぞれに関連付けられたタイムスタンプに基づいて順序付けられ、前記ユーザの識別子について生成された複数のイベントを含むイベントチェーンを生成し、
前記ユーザによる認証済みアクセスを示すターゲットイベントチェーンとの、前記イベントチェーンのずれであって、イベント順序および前のイベントの終了から各イベントに割り当てられた時間長の関数であるずれを判定し、
前記ずれが、ずれ閾値未満であり、並びに、前記イベントチェーンのイベント順序が非論理的シーケンスでなく、前記コンピューティングデバイス上で実行された動作が通常の使用と矛盾しておらず、かつ、人が前記コンピューティングデバイスに物理的にアクセスしていないことを示すイベントが検出されないと判定したことに応じて、前記データアクセス要求が前記ユーザからのものであることを認証し、前記データアクセス要求を許可することによって、認証する命令とを含む非一時的コンピュータ可読媒体。
【請求項16】
前記ずれが、前記ずれ閾値未満でないと判定したことに応じて、前記データアクセス要求が前記ユーザからのものであると認証せず、前記データアクセス要求をブロックする命令をさらに含む、請求項15に記載の非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、データセキュリティの分野に関し、より具体的には、イベントチェーンに基づいてユーザ同一性を認証するためのシステムおよび方法に関する。
【背景技術】
【0002】
システムのユーザを特定するための従来の手法は、入力されたユーザ名およびパスワードを照合することを含む。しかしながら、この手法は、代理ではなく権限を有する人が入力を提供しているか否かを認証しないため、主要なセキュリティ問題に対処しない。これを解決するために、物理オブジェクト(例えば、IDカード)または生体認証(例えば、指紋、虹彩スキャン、顔認識など)などの異なるパラメータが認証および検証に使用されることがある。しかしながら、これらの対策であっても回避される場合がある。例えば、権限のない人が、IDカードを盗む、または指紋を偽造する場合がある。
【発明の概要】
【課題を解決するための手段】
【0003】
これらの欠点に対処するために、本開示の態様は、イベントチェーンに基づいてユーザ同一性を認証するための方法およびシステムを記載する。
【0004】
例示的な一態様では、方法は、環境内の少なくとも1つのセンサからセンサデータを受信することを含む。本方法は、コンピューティングデバイスを介してデータにアクセスする権限を有するユーザの、複数の識別子を判定するために、センサデータをパースすることを含む。本方法は、複数の識別子の各識別子について、ユーザを含むイベントであって、各々がそれぞれのタイムスタンプを含むイベントを生成することを含む。本方法は、コンピューティングデバイス上のデータにアクセスする権限を有するユーザの識別子を含むデータアクセス要求をインターセプトする。本方法は、データアクセス要求が、データにアクセスする権限を有するユーザからのものであるか否かを認証することを含み、上記認証することが、データアクセス要求に先行する期間について、イベントチェーンを生成することであって、イベントチェーンが、各それぞれのタイムスタンプに基づいて順序付けられ、ユーザを含む生成された複数のイベントを含む、イベントチェーンを生成することと、ユーザによる認証済みアクセスを示すターゲットイベントチェーンとの、イベントチェーンのずれを判定することと、ずれが、ずれ閾値未満であると判定したことに応じて、データアクセス要求がユーザからのものであることを認証し、データアクセス要求を許可することとを含む。
【0005】
いくつかの態様では、本方法は、ずれが、ずれ閾値未満でないと判定したことに応じて、データアクセス要求がユーザからのものであると認証せず、データアクセス要求をブロックすることを含む。
【0006】
いくつかの態様では、データアクセス要求が複数のデータアクセスの内の第1のデータアクセスであり、本方法が、ターゲットイベントチェーンが、第1のデータアクセスのターゲットイベントチェーンであると判定することによって、ターゲットイベントチェーンを特定することを含む。
【0007】
いくつかの態様では、第1のデータアクセスが、特定の場所に固定されたコンピューティングデバイスからのアクセスであって、ターゲットイベントチェーンが、特定の場所に入り、コンピューティングデバイスにアクセスするユーザの進捗を示す。
【0008】
いくつかの態様では、第1のデータアクセスが、携帯可能なコンピューティングデバイスからのアクセスであって、ターゲットイベントチェーンが、データアクセス要求を開始するためにコンピューティングデバイス上で動作を実行するユーザの進捗を示す。
【0009】
いくつかの態様では、ずれが、イベント順序および各イベントに割り当てられた時間長の関数である。
【0010】
いくつかの態様では、ターゲットイベントチェーン内の各それぞれのイベントが、それぞれのイベントの重要性を示す重みを割り当てられる。
【0011】
いくつかの態様では、ターゲットイベントチェーンが、以前のデータアクセスの前にユーザによって実行された履歴イベントチェーンである。
【0012】
いくつかの態様では、本方法は、イベントチェーンのシーケンスにおける不一致であって、ユーザがコンピューティングデバイスに物理的にアクセスすることができないことを示す不一致を特定することと、データアクセス要求を認証せず、データアクセス要求をブロックすることとを含む。
【0013】
上述した方法は、ハードウェアプロセッサを備えるシステムで実装されてもよいことに留意されたい。あるいは、本方法は、非一時的コンピュータ可読媒体のコンピュータ実行可能命令を使用して実装されてもよい。
【0014】
例示的な態様の上記の簡略化された概要は、本開示の基本的な理解を提供するのに役立つ。この概要は、考えられるすべての態様の広範な概要ではなく、すべての態様の主要または重要な要素を特定することも、本開示のいずれかまたはすべての態様の範囲を描写することも意図されていない。その唯一の目的は、以下の本開示のより詳細な説明の前置きとして、簡略化された形態で1つ以上の態様を提示することである。上記を達成するために、本開示の1つ以上の態様は、特許請求の範囲に記載され、例示的に指摘された機能を含む。
【0015】
本明細書に組み込まれ、本明細書の一部を構成する添付の図面は、本開示の1つ以上の例示的な態様を示し、詳細な説明と共に、それらの原理および実装形態を説明するのに役立つ。
【図面の簡単な説明】
【0016】
図1】特定の場所に固定されたデバイスにおけるデータアクセスのためのセキュリティシステムによって検出されたイベントチェーンを示す図である。
【0017】
図2】携帯デバイスでのデータアクセスのためにセキュリティシステムによって検出されたイベントチェーンを示す図である。
【0018】
図3】イベントチェーンに基づいてユーザ同一性を認証するためのシステムを示すブロック図である。
【0019】
図4】イベントチェーンに基づいてユーザ同一性を認証するための方法のフロー図を示す。
【0020】
図5】イベントチェーンにおける不一致を特定するための方法のフロー図を示す。
【0021】
図6】本開示の態様を実装することができる汎用コンピュータシステムの一例を提示する。
【発明を実施するための形態】
【0022】
例示的な態様は、本明細書では、イベントチェーンに基づいてユーザ同一性を認証するためのシステム、方法、およびコンピュータプログラム製品の文脈で記載される。当業者は、以下の説明が例示にすぎず、決して限定することを意図するものではないことを理解するであろう。他の態様は、本開示の利益を有する当業者に容易に示唆されるであろう。ここで、添付の図面に示す例示的な態様の実装形態を詳細に参照する。同じまたは同様の項目を参照するために、図面および以下の説明を通して可能な限り同じ参照符号が使用される。
【0023】
ユーザ同一性は、孤立した状態で認証されることが多い。例えば、セキュリティシステムは、ユーザが実際に「権限を有する」ユーザであるか否かを認証するために、ユーザからの有限個の入力のみを必要とする場合がある。ユーザが入力(例えば、パスワード、ワンタイムアクセスコードなど)を提供できる場合、ユーザはアクセスを許可される。しかしながら、前述したように、孤立した状態での入力を評価すると、無権限アクセスが容易となってしまう。例えば、セキュリティシステムからパスワードに加えてワンタイムアクセスコードが要求されたとしても、権限のない人がワンタイムアクセスコードを受信するデバイス(例えば、権限を有するユーザに属するスマートフォン)にアクセスすることができ、セキュリティシステムを欺く可能性がある。
【0024】
さらに、追加の入力は、実際のユーザにとってデータへのアクセスを不便にする。例えば、セキュリティシステムが、異なるデバイスから複数のアクセスコードを、または複数の生体認証データ(例えば、顔スキャン、指紋など)を要求する場合、認証プロセスは煩雑になる。理想的には、これらの問題を対処するために、非侵襲的かつ動的なセキュリティシステムが必要である。物理的環境は、そのようなセキュリティシステムを作成するための重大なツールである。
【0025】
本開示は、物理的世界における様々な外部データポイントおよびイベントを使用して、他のオブジェクトまたはイベントと一致する現実の特定の画像を構築することを説明する。したがって、このシステムまたはイベントチェーンにおけるリンクの欠如は、無権限アクセスまたは侵入者による攻撃の試みとして評価することができる。例えば、ユーザが職場のコンピュータシステムにログインする場合、ログインプロセスに先行し、ユーザがオフィスビルに入る、エレベータを呼ぶ、所望の階のボタンを押す、部屋に入るなどの一連の物理的動作およびイベントが行われなければならない。何らかの理由で、少なくとも1つの動作が検出されない場合、ログインはシステムへの侵入の試みの可能性がある。
【0026】
俯瞰的観点から、実装形態は、特定の状況に基づいて異なるシナリオを特定すること(例えば、人が物理的に存在することを確認すること)と、特定の状況に関連付けられたイベントセット(例えば、ビルに入ること、最下階から上に移動すること、部屋に入ることなど)を特定することと、これらのイベントシーケンス(例えば、イベントAは常にイベントBに先行し、イベントCはイベントBの前と後の両方で発生し得るなど)を特定することと、特定のイベントのシーケンスの欠如または変化の重要度(例えば、重要性を示す重み)を判定することとを含んでもよい。
【0027】
図1は、特定の場所に固定されたデバイスにおけるデータアクセスのためのセキュリティシステムによって検出されたイベントチェーン100を示す図である。人104は、オフィスビルに入る場合があり、入るという動作は、センサ106a(例えば、セキュリティカメラ)によって取り込まれる場合がある。自分の実際のオフィスに入るために、人104は、アクセスコードを入力する、または自分のIDバッジをスワイプする必要のある場合がある。センサ106bは、これらの資格情報を受信する。図1に示すように、人104は、オフィス324に入るためにセンサ106bでアクセスコードを入力する場合がある。その後、人104は、自分の机に座ってコンピューティングデバイス108(例えば、コンピュータまたはラップトップからなるワークステーション)にアクセスしてもよい。センサ106cは、人104の映像を取り込む別のカメラであってもよい。いくつかの態様では、センサ106cは、コンピューティングデバイス108に組み込まれていてもよい。例えば、センサ106cは、顔スキャンを実行するコンピューティングデバイス108のカメラであってもよい。次いで、人104は、データにアクセスするためにポータル110にログイン資格情報を入力する場合がある。
【0028】
これらの各動作は、複数のイベント102内のイベントとして特定されてもよい。複数のイベント102のシーケンス(イベントチェーンとも呼ばれる)が重要であることに留意されたい。例えば、イベント102dがイベント102aの前に発生する(すなわち、ユーザは、人104がビルに入る前にコンピューティングデバイス108でデータにアクセスする)場合、ログイン資格情報が有効であっても、アクセス権限がない可能性が高い。同様に、イベント102cがイベント102bの前に発生する場合、データにアクセスするユーザが何らかの方法でセンサを欺いた可能性がある。
【0029】
図2は、携帯デバイスでのデータアクセスのためのセキュリティシステムによって検出されるイベントチェーン200を示す図である。イベントチェーン200において、イベント202aは、人204がコンピューティングデバイス206の電源を入れ、パスワードを入力すること、またはスリープ状態から生体認証パラメータ(例えば、指紋、顔画像)を提供することを含む場合がある。コンピューティングデバイス206は、スマートフォンであってもよい。イベント202bは、人204がコンピューティングデバイス206のインターフェース上で動作208a(例えば、スワイプ)を実行することを含む。イベント202cは、人204が動作208b(例えば、アプリケーションを起動する)を実行することを含む。イベント202dは、人204が動作208c(例えば、アプリケーションにログイン資格情報を入力する)を実行することを含む。
【0030】
このシーケンスは、人204が特定のアプリケーション上のデータにアクセスする日常的な方法であってもよいことに留意されたい。イベントチェーンが異なると仮定する。例えば、ユーザが誤ったパスワードを提供し続けるために、イベント202a(すなわち、コンピューティングデバイス206を起動すること)が、複数回発生する。ユーザがアプリケーションを見つけることができないため、イベント202bも複数回発生すると仮定する。これらの追加のイベントは、無権限アクセスが行われており、ログイン資格情報が正しいか否かにかかわらずログインを阻止すべきであることを示唆している。
【0031】
図3は、イベントチェーンに基づいてユーザ同一性を認証するためのシステム300を示すブロック図である。システム300は、コンピューティングデバイス302(コンピューティングデバイス108またはコンピューティングデバイス206であってもよい)を備える。いくつかの態様では、コンピューティングデバイス302は、ユーザ同一性を認証するためにセキュリティモジュール306を実行する。他の態様では、セキュリティサーバ318は、セキュリティモジュール306のシック(thick)クライアントアプリケーションを実行(例えば、アクセスを許可するか阻止するか否かを判定)し、コンピューティングデバイス302は、セキュリティモジュール306のシン(thin)クライアントアプリケーションを実行(例えば、シッククライアントから評点を受信し、アクセスを有効にするか、またはブロックする)する。いくつかの態様では、セキュリティモジュール306は、ファイアウォールアプリケーションの構成要素である。
【0032】
セキュリティモジュール306は、コンピューティングデバイス302の周りの物理的環境に分散される場合のある複数のセンサ304と通信してもよい。例えば、センサ304aはセンサ106aであってもよく、センサ304bはセンサ106bであってもよく、センサ304cはセンサ106cであってもよく、センサ304Nはコンピューティングデバイス302内の組み込みセンサ(例えば、タッチスクリーン)であってもよい。
【0033】
セキュリティモジュール306は、複数のセンサ304から情報を取得し、その情報をイベントリンクモジュール310と互換性のあるフォーマットに変換するデータパーサ308などの複数の構成要素を備える。イベントリンクモジュール310は、コンピューティングデバイス302に関連付けられた、権限を有する人を特定し、データパーサ308によって提供された、パースされたデータにおけるその人の存在を追跡する。特に、イベントリンクモジュール310は、権限を有するユーザを含むイベントチェーンを生成する。認証モジュール316は、権限を有するユーザがデータアクセスを要求したユーザであるか否かを判定するように構成される。いくつかの態様では、認証モジュール316は、履歴イベントデータベース312内のデータを利用して、権限を有するユーザによって実行された履歴イベントチェーンが現在のイベントチェーンと一致するか否かを判定する。いくつかの態様では、認証モジュール316は、イベント対応付けデータベース314内のデータを利用して、(履歴イベントデータベース312から導出することができる)予想されるイベントチェーンに対する現在のイベントチェーンにおける不一致を特定する。イベント対応付けデータベース314を使用して、セキュリティモジュール306は、現在のイベントチェーン内のどのイベントが欠けているか、各イベントが発生するのにかかる時間長、およびイベントの重要性(例えば、イベントの重み)を特定してもよい。
【0034】
例示的な態様では、セキュリティモジュール306は、保護データ識別子320にリストされているコンピューティングデバイス302上のアプリケーションまたはデータにアクセスするログインの試みを検出する。例えば、セキュリティモジュール306は、電子メールクライアントについてコンピューティングデバイス302に入力されたログイン資格情報をインターセプトしてもよく、電子メールクライアントの名前を識別子320に含んでもよい。いくつかの態様では、セキュリティモジュール306は、ログイン資格情報が正しいか否かの通知を(例えば、ログイン資格情報が提供されたウェブアプリケーションから)受信する。通知の受信に応じて、セキュリティモジュール306は、ログイン資格情報を提供したユーザがアプリケーションおよび/またはコンピューティングデバイス302の権限を有するユーザであるか否かを判定する。
【0035】
いくつかの態様では、セキュリティモジュール306を開始するためにログイン資格情報が提供される必要はない。セキュリティモジュール306は、保護データにアクセスしようとするあらゆる試みをインターセプトしてもよい。例えば、ユーザは、「マイドキュメント」というフォルダにアクセスしようと試みる場合があり、セキュリティモジュール306は、ユーザ同一性の認証が済むまで動作をインターセプトしてアクセスを阻止してもよい。
【0036】
次いで、セキュリティモジュール306は、インターセプトした情報(例えば、ログイン資格情報)に基づいて、ユーザの識別子を取得する。例えば、セキュリティモジュール306は、ログイン資格情報からユーザ名を取得してもよい。セキュリティモジュール306は、その後、権限を有するユーザの識別子322内で、利用可能なユーザの他のすべての識別子を取得する。他の識別子は、生体認証データ(例えば、顔画像、指紋スキャンなど)、代替ユーザ名、アクセスコード、バッジ、個人情報(例えば、住所、電話番号など)、または特定のユーザに固有の任意の他の情報であってもよい。
【0037】
セキュリティモジュール306(特にイベントリンクモジュール310)は、一定期間内に取り込まれた情報をデータパーサ308から取得する。この情報は、取得された識別子のすべてに関連付けられていてもよく、履歴イベントデータベース312に格納されてもよい。この情報は、個人の映像(例えば、顔認識を使用してタグ付けされたクリップ、すなわち、センサ106aまたはセンサ106cによって取り込まれたクリップ)、特定のセンサにおけるアクセスコード入力記録(例えば、センサ106bに設けられたPINコード)、指紋入力記録、バッジスキャン入力などを含んでもよい。この情報は、複数のイベントに分割されてもよく、各イベントは、イベントに関連付けられた、少なくとも1つのタイムスタンプを有してもよい。例えば、映像クリップを使用してイベントを生成してもよく、映像クリップがいつ開始し、いつ終了したかを示す複数のタイムスタンプを映像クリップは有してもよい。
【0038】
データパーサ308は、複数のセンサ304から情報を連続的に受信してもよく、パースされたデータをイベントとして履歴イベントデータベース312に格納してもよい。例えば、センサ304aは、映像ストリーム/クリップをデータパーサ308に送信してもよい。データパーサ308は、コンピュータビジョン技術および/または機械学習アルゴリズム(例えば、画像分類器)を利用して、映像ストリーム内の個人を特定し、その個人に識別子を割り当ててもよい。例えば、人が映像クリップ内に存在する場合、データパーサ308は、権限を有するユーザの識別子322内の共通画像(例えば、照合させる顔画像)に基づいてその人を特定し、特定の期間(例えば、東部標準時で月曜日の午前10:00から月曜日の午前10:01)内に、その人がその映像内にいることを示すイベントを生成してもよい。その映像を取り込んだセンサが特定の場所(例えば、オフィスビルの入口)に関連付けられている場合、データパーサ308は、イベントに位置情報をさらに含めてもよい。したがって、センサ304aによって取り込まれたデータからデータパーサ308によって生成されたイベントは、人が東部標準時で月曜日の午前10:00から月曜日の午前10:01までオフィス入口に位置していたことを示してもよい。
【0039】
イベントリンクモジュール310は、こうして履歴イベントデータベース312内の複数のイベントにアクセスすることができ、ログイン資格情報またはデータアクセス要求を受信した後にパースプロセスを開始する必要はない。このアクセシビリティは、権限を有するユーザがアクセスしたいデータにアクセスするための遅延を最小限に抑える。イベントリンクモジュール310は、権限を有するユーザに関連付けられた期間(例えば、1日)内のすべてのイベントを取得する。その期間内に利用可能なイベントがない場合、データ要求は悪意のあるものである可能性が高い。例えば、コンピューティングデバイス108でデータ要求が行われ、人104(すなわち、権限を有するユーザ)の存在を示すイベントが履歴イベントデータベース312に見つからない場合、認証モジュール316は、データアクセス要求をブロックすべきであると判定してもよい。
【0040】
履歴イベントデータベース312は、権限を有するユーザの識別子に基づいて編成されてもよい。これにより、履歴イベントデータベース312による検索が高速かつ効率的になる。さらに、各イベントは、履歴イベントデータベース312のサイズを最小化するためにコンパクトなフォーマット(例えば、複数の文字)であってもよい。いくつかの態様では、期間の閾値を超えてアクセスされない場合、イベントが削除される場合がある。例えば、1週間以上経過したイベントは、削除される場合がある。いくつかの態様では、データパーサ308によって生成されたイベントのみが、コンピューティングデバイス302またはコンピューティングデバイス302に格納されたアプリケーションの、権限を有するユーザと関連付けられている。したがって、センサ304aによって取り込まれた映像内で人が特定され、その人がコンピューティングデバイス302またはコンピューティングデバイス302上のアプリケーション(例えば、電子メールクライアント)の権限を有するユーザではない場合、イベントは記録されない。
【0041】
イベントリンクモジュール310は、タイムスタンプに基づいて、権限を有するユーザに関連付けられた、取得された複数のイベントの各々を編成することによってイベントチェーンを生成する。例えば、イベントリンクモジュール310は、イベント102a、102b、102c、および102dを含むイベントチェーン100を生成してもよい。
【0042】
認証モジュール316は、イベントチェーンに基づいて、データアクセスが許可されるべきか否かを判定するように構成される。認証モジュール316は、イベント対応付けデータベース314を参照してもよい。イベント対応付けデータベース314は、要求データにアクセスする権限を有することを示すイベントの複数のターゲットイベントチェーンを含んでもよい。例示的なターゲットイベントチェーンは、以下のように格納されてもよい。
【表1】
【0043】
この例は、特定の種類のデータを要求するために、権限を有するユーザに関して、以下のイベント、すなわち、ビルに入ること、オフィスに入ること、コンピューティングデバイスにアクセスすること、およびログイン資格情報を提供することが検出される必要があることを示す。この順序はシーケンス番号によって規定される。いくつかの態様では、ある複数のイベントは、特定の複数のイベントが異なる順序であり得ることを示す複数のシーケンス番号を有してもよい。動作時間は、あるイベントと、その前のイベントとの間の時間差を表す。例えば、イベント1とイベント2との間の時間差は最大で5分である。これは、オフィスに入るイベントの動作時間が、ビルに入ってから最大で5分であることを示す。
【0044】
いくつかの態様では、これらのターゲット値は、権限を有するユーザの履歴挙動データに基づいて設定されてもよい。例えば、権限を有するユーザの日常的な習慣に基づいて、権限を有するユーザは、ビルの入口からオフィスの入口まで移動するのに5分を超える時間を決して費やさないと判定されてもよい。他の態様では、これらのターゲット値は、集団研究に基づいて予め決定されてもよい。後者の場合、ターゲットイベントチェーンは、いかなる権限を有するユーザにも適用可能である。前者の場合、ターゲットイベントチェーンは、特定の権限を有するユーザに合わせて調整される。
【0045】
次いで、認証モジュール316は、決定されたイベントチェーン100と、ターゲットイベントチェーンとを比較する。特に、認証モジュール316は、シーケンスが正しいか否か、イベントが欠けているか否か、および/または各チェーン内のそれぞれの動作時間の間の差を判定する。各チェーンは、データ構造としてフォーマットされてもよい。例えば、イベントチェーン100は、以下のようであってもよい。
【表2】
【0046】
いくつかの態様では、認証モジュール316は、シーケンス番号および/または動作時間の関数であるアルゴリズムを実行する。このアルゴリズムは、認証モジュール316が閾値と比較する定量的または定性的出力をもたらしてもよい。例えば、認証モジュール316は、シーケンス値を比較してもよい。各イベントについて、シーケンス値が同じである場合、出力は0である。シーケンス値が異なる場合、出力は1である。その後、認証モジュール316は、動作時間を評価してもよい。決定されたイベントチェーンにおける時間差がターゲットイベントチェーンにおける動作時間内である場合、出力は0である。動作時間外である場合、出力は時間の差の関数である。次いで、認証モジュール316は、出力を組み合わせ、重みを適用してもよい。例示的な関数を以下に示す。
ずれ=|Σ(イベントiのときのシーケンス番号差+イベントiのときの時間差)*イベントiのときの重み|
ここで、イベントチェーン100についてのずれは、|[(1-1)+(0)]×1.5+[(2-2)+(0)]×1.2+[(3-3)+(0)]*1+[(4-4)+(0)]×1|=0となる。
【0047】
あるイベントが欠けていると仮定する。例えば、ユーザが、オフィスに入らないとする。ずれは次のようになる。
|[(0-1)+(0)]×1.5+[(1-2)+(0)]×1.2+[(2-3)+(0)]×1+[(3-4)+(0)]×1|=1.5+1.2+1+1=4.7となる。
【0048】
この値を比較するための閾値が3である場合、認証モジュール316は、第1のインスタンスでは、ユーザはアクセスを許可されるべきであり、第2のインスタンスでは、ユーザはアクセスを許可されるべきではないと判定してもよい。
【0049】
いくつかの態様では、比較するための閾値は、所与のターゲットイベントチェーンに固有のものである。他の態様では、閾値は普遍的であり、すべてのターゲットイベントチェーンに適用される。
【0050】
認証モジュール316は、決定されたイベントチェーンを、1つ以上のターゲットイベントチェーンと比較してもよいことに留意されたい。認証モジュール316は、行われているデータアクセス要求の種類に基づいてこれらの比較用のターゲットイベントチェーンを具体的に絞り込んでもよい。データアクセス要求の種類は、使用されているコンピューティングデバイスに基づいてもよい。例えば、特定の場所に固定されるコンピューティングデバイスもあれば、携帯可能なコンピューティングデバイスもある。データアクセス要求の種類は、アクセスされているアプリケーションに基づいてもよい。例えば、映像ストリーミングアプリケーションへのログインは、業務関連アプリケーションへのログインとは異なるコンテキストに関連付けられていてもよい。
【0051】
例えば、イベントチェーン200の場合、認証モジュール316は、データ要求が携帯デバイス上で行われており、イベントが特定のアプリケーションと密接に関連していると判定してもよい。したがって、認証モジュール316によって選択された比較用ターゲットイベントチェーンは、携帯デバイス上の特定のアプリケーションへのアクセスに関連する。
【0052】
いくつかの態様では、イベントリンクモジュール310は、決定されたチェーンから「キー」イベントではないイベントを除外してもよい。例えば、人がビルに入った後、カフェテリアに行く場合、カフェテリアに行く動作はイベントチェーンに含まれなくてもよい。代わりに、イベントリンクモジュール310に、コンピューティングデバイスへのアクセスに直接関連するイベント(例えば、コンピューティングデバイスがある場所に入る)を含ませてもよい。
【0053】
いくつかの態様では、認証モジュール316は、イベントシーケンスにおける不一致を特定してもよい。例えば、決定されたイベントチェーン100が、権限を有する人がビルに入った後、ビルを出たことを示した場合、権限を有する人がもはや建物にいない時点以降のデータアクセスは悪意のあるものとみなされ、セキュリティモジュール306によってブロックされる。同様に、図2では、イベント202aにおいて、人204が少なくとも回数の閾値だけ誤ったPINコードを入力し、データ要求が行われたアプリケーションを見つけることが困難である(例えば、人204が、アプリケーションを選択せずにスワイプし続ける)場合、認証モジュール316は、その挙動を通常の使用との不一致として特定してもよい。不一致の他の例は、携帯デバイスの所有権が失われたと報告された(例えば、「iPhone(登録商標)を探す」機能が開始された)後のデータアクセス、および権限を有するユーザに関連付けられていないIPアドレスからのデータアクセスを含んでもよい。
【0054】
図4は、イベントチェーンに基づいてユーザ同一性を認証するための方法400のフロー図を示す。402において、セキュリティモジュール306のデータパーサ308は、環境内の少なくとも1つのセンサ(例えば、センサ304)からセンサデータを受信する。404において、データパーサ308は、コンピューティングデバイスを介してデータにアクセスする権限を有するユーザの複数の識別子を判定するために、センサデータをパースする。例えば、データパーサ308は、映像内のユーザの顔および入力記録内のユーザのバッジスキャンを特定してもよい。406において、データパーサ308は、複数の識別子の各識別子について、ユーザを含むイベントであって、各々がそれぞれのタイムスタンプを含むイベントを生成する。例えば、データパーサ308は、人104の顔の検出に応じてイベント102aを生成し、センサ106bでのバッジスキャンの検出に応答してイベント102bを生成してもよい。
【0055】
408において、セキュリティモジュール306は、コンピューティングデバイス108上のデータにアクセスする権限を有するユーザの識別子を含むデータアクセス要求をインターセプトする。例えば、セキュリティモジュール306は、人104がコンピューティングデバイス108にログインを試みていることを検出してもよい。この識別子は、コンピューティングデバイス108の権限を有するユーザのログイン資格情報であってもよい。したがって、セキュリティモジュール306は、データアクセス要求がデータにアクセスする権限を有するユーザからのものであるか否か(例えば、コンピューティングデバイス108に実際にアクセスしているのは人104か、なりすましか)を認証する。
【0056】
410において、イベントリンクモジュール310は、データアクセス要求に先行する期間(例えば、1時間)について、イベントチェーン(例えば、イベントチェーン100)を生成することであって、イベントチェーンが、各それぞれのタイムスタンプに基づいて順序付けられた、ユーザを含む生成されたイベントを含む。イベントチェーンは、権限を有するユーザ(例えば、人104)の識別子を含む、データパーサ308によって生成されたイベントをすべて含んでもよい。
【0057】
412において、認証モジュール316は、ユーザによる認証済みアクセスを示すターゲットイベントチェーンとの、イベントチェーンのずれ(例えば、2)を判定する。ターゲットイベントチェーンは、イベント対応付けデータベース314から取得されてもよい。いくつかの態様では、データアクセス要求は、複数のデータアクセスの内の第1のデータアクセスであり、認証モジュール316は、ターゲットイベントチェーンも第1のデータアクセスであるという判定に応じて、比較用のターゲットイベントチェーンを選択する。
【0058】
いくつかの態様では、第1のデータアクセスが、特定の場所に固定されたコンピューティングデバイス(例えば、コンピューティングデバイス108)からのアクセスであって、ターゲットイベントチェーンは、特定の場所に入り、コンピューティングデバイスにアクセスするユーザの進捗を示す。他の態様では、第1のデータアクセスは、携帯可能なコンピューティングデバイス(例えば、コンピューティングデバイス206)からのアクセスであり、ターゲットイベントチェーンは、データアクセス要求を開始するためにコンピューティングデバイス上で動作(例えば、コンピューティングデバイス206上のタッチスクリーンセンサによって受信されたスワイプおよび他のナビゲーション入力)を実行するユーザの進捗を示す。いくつかの態様では、ターゲットイベントチェーンが、以前のデータアクセスの前にユーザによって実行された履歴イベントチェーンである。
【0059】
414において、認証モジュール316は、ずれが、ずれ閾値(例えば、3)未満であるか否かを判定する。いくつかの態様では、ずれが、イベント順序および各イベントに割り当てられた時間長の関数である、ターゲットイベントチェーンにおける各それぞれのイベントは、それぞれのイベントの重要性を示す重みを割り当てられる。ずれが、ずれ閾値未満であると判定したことに応じて、方法400は416に進み、認証モジュール316は、データアクセス要求が、権限を有するユーザからのものであることを認証し、データアクセス要求を許可(例えば、ログインを有効にする)。
【0060】
あるいは、ずれが、ずれ閾値未満でないと判定したことに応じて、方法400は418に進み、認証モジュール316は、データアクセス要求が、権限を有するユーザからのものであることを認証せず、データアクセス要求をブロックする。例えば、セキュリティモジュール306は、コンピューティングデバイスのユーザインターフェース上でアクセスが拒否されたことを示す警告を生成してもよい。いくつかの態様では、セキュリティモジュール306は、データアクセス要求で見つかった識別子に関連付けられた、権限を有するユーザの別のコンピューティングデバイスに警告をさらに送信してもよい。これは、認識されていない人によってデータアクセスが試みられたことを、権限を有するユーザに通知する。次いで、権限を有するユーザは、(アクセスを有効にするため、またはアクセス要求を拒否するため)アクセス要求を確認してもよい。応答によっては、セキュリティモジュール306は、イベント対応付けデータベース314内のターゲットイベントチェーンを更新してもよい。例えば、ブロックされたデータアクセス要求が、実際には本物である場合、セキュリティモジュール306は、同様のイベントチェーンが今後拒否されないように、検出されたイベントチェーンをイベント対応付けデータベース314に含んでもよい。
【0061】
図5は、イベントチェーンにおける不一致を特定するための方法500のフロー図を示す。502において、認証モジュール316は、イベントチェーンのシーケンスに、不一致が存在するか否かを特定する。504において、認証モジュール316は、イベント順序が非論理的シーケンスであるか否かを判定する。例えば、非論理的シーケンスは、人がビル内の自分のオフィスに入った後にビルに入ったことを示す。順序問題は、ターゲットイベントチェーンにおけるシーケンス番号を使用して判定される。イベント順序が非論理的順序を含む場合、方法500は418に進む。
【0062】
イベント順序が非論理的シーケンスを有さない場合、方法500は506に続き、認証モジュール316は、コンピューティングデバイス上で実行された動作が通常の使用と矛盾しているか否かを判定する。矛盾した動作の例は、回数の閾値を超えて誤ったログイン資格情報を入力すること(例えば、5回の誤った入力)と、ブラックリストに記録されたウェブアプリケーション(例えば、悪意のあるアクティビティをダウンロードすることができるウェブサイト)を使用することと、セキュリティ設定を変更することなどを含んでもよい。そのような動作が検出された場合、認証モジュール316は、418でデータアクセス要求をブロックしてもよい。
【0063】
そのような動作が検出されない場合、方法500は508に進み、認証モジュール316は、権限を有するユーザがコンピューティングデバイスに物理的にアクセスしていないことを示すイベントが検出されたか否かを判定する。例えば、イベントは、権限を有する人がオフィスを去ることを含んでもよい。その後のデータアクセスの試みは、人がオフィスに戻るイベントを必要とし、そうでなければ人は物理的に存在しない。したがって、データアクセス要求は418で拒否されるべきである。別の例は、紛失が確認されたコンピューティングデバイスにアクセスすることであってもよい。そのようなイベントが検出されない場合、認証モジュール316は、不一致が存在しないため、416においてデータアクセスが許可されるべきであると判定してもよい。
【0064】
図6は、イベントチェーンに基づいてユーザ同一性を認証するためのシステムおよび方法の態様を例示的な態様に従って実装してもよいコンピュータシステム20を示すブロック図である。コンピュータシステム20は、複数のコンピューティングデバイスの形態、または単一のコンピューティングデバイス、例えば、デスクトップコンピュータ、ノートブックコンピュータ、ラップトップコンピュータ、携帯用コンピューティングデバイス、スマートフォン、タブレットコンピュータ、サーバ、メインフレーム、組み込みデバイス、および他の形態のコンピューティングデバイスの形態とすることができる。
【0065】
図示のように、コンピュータシステム20は、中央処理装置(CPU)21と、システムメモリ22と、中央処理装置21に関連付けられたメモリを含む様々なシステム構成要素を接続するシステムバス23とを含む。システムバス23は、バスメモリまたはバスメモリコントローラと、周辺バスと、任意の他のバスアーキテクチャと相互作用することができるローカルバスとを備えてもよい。バスの例は、PCI、ISA、PCI-Express、HyperTransport(商標)、InfiniBand(商標)、Serial ATA、IC、および他の適切な相互接続を含んでもよい。中央処理装置21(プロセッサとも呼ばれる)は、単一または複数のコアを有する単一または複数のプロセッサセットを含むことができる。プロセッサ21は、本開示の技術を実装する、1つ以上のコンピュータ実行可能コードを実行してもよい。例えば、図1図5で説明されるコマンド/ステップのいずれかは、プロセッサ21によって実行されてもよい。システムメモリ22は、本明細書で使用されるデータおよび/またはプロセッサ21によって実行可能なコンピュータプログラムを格納するための任意のメモリであってもよい。システムメモリ22は、ランダムアクセスメモリ(RAM)25などの揮発性メモリ、および読み取り専用メモリ(ROM)24やフラッシュメモリなどの不揮発性メモリ、またはそれらの任意の組み合わせを含んでもよい。基本入出力システム(BIOS)26は、ROM24を使用してオペレーティングシステムをロードするときの手順など、コンピュータシステム20の要素間で情報を転送するための基本手順を格納してもよい。
【0066】
コンピュータシステム20は、1つ以上の着脱式ストレージデバイス27、1つ以上の非着脱式ストレージデバイス28、またはこれらの組み合わせなどの、1つ以上のストレージデバイスを含んでもよい。1つ以上の着脱式ストレージデバイス27および非着脱式ストレージデバイス28は、ストレージインターフェース32を介してシステムバス23に接続される。一態様において、ストレージデバイスおよび対応するコンピュータ可読ストレージ媒体は、コンピュータシステム20のコンピュータ命令、データ構造、プログラムモジュール、および他のデータを記憶するための、電力に依存しないモジュールである。システムメモリ22、着脱式ストレージデバイス27、および非着脱式ストレージデバイス28は、様々なコンピュータ可読ストレージ媒体を使用してもよいコンピュータ可読ストレージ媒体の例には、キャッシュ、SRAM、DRAM、ゼロコンデンサRAM、ツイントランジスタRAM、eDRAM、EDO RAM、DDR RAM、EEPROM、NRAM、RRAM(登録商標)、SONOS、PRAMなどのマシンメモリと、フラッシュメモリまたはソリッドステートドライブ(SSD)もしくはフラッシュドライブなどの他のメモリ技術と、磁気カセット、磁気テープ、およびハードディスクドライブまたはフロッピー(登録商標)ディスクなどの磁気ディスクストレージと、コンパクトディスク(CD-ROM)またはデジタル多用途ディスク(DVD)などの光学ストレージと、所望のデータを格納するために使用される場合があり、コンピュータシステム20によってアクセスされることができる任意の他の媒体とが含まれる。
【0067】
コンピュータシステム20の、システムメモリ22、着脱式ストレージデバイス27、および非着脱式ストレージデバイス28は、オペレーティングシステム35、追加プログラムアプリケーション37、他のプログラムモジュール38、およびプログラムデータ39を格納するために使用されてもよい。コンピュータシステム20は、キーボード、マウス、スタイラス、ゲームコントローラ、音声入力デバイス、タッチ入力デバイスなどの入力デバイス40、またはプリンタもしくはスキャナなどの他の周辺機器から、シリアルポート、パラレルポート、ユニバーサルシリアルバス(USB)、または他の周辺機器インターフェースなどの1つ以上のI/Oポートを介して、データを通信するための周辺機器インターフェース46を含んでもよい。1つ以上のモニタ、プロジェクタ、または統合ディスプレイなどのディスプレイデバイス47が、映像アダプタなどの出力インターフェース48を介してシステムバス23に接続されてもよい。ディスプレイデバイス47に加えて、コンピュータシステム20は、スピーカおよび他の視聴覚デバイスなどの他の周辺出力デバイス(不図示)を備えてもよい。
【0068】
コンピュータシステム20は、1つ以上のリモートコンピュータ49へのネットワーク接続を使用して、ネットワーク環境で動作する場合がある。(1つまたは複数の)リモートコンピュータ49は、コンピュータシステム20の性質を説明する際に上述した要素のほとんどもしくはすべてを備えるローカルコンピュータワークステーションまたはサーバであってもよい。ルータ、ネットワークステーション、ピアデバイス、または他のネットワークノードなどであるが、これらに限定されない他のデバイスもコンピュータネットワーク内に存在してもよい。コンピュータシステム20は、ローカルエリアコンピュータネットワーク(LAN)50、ワイドエリアコンピュータネットワーク(WAN)、イントラネット、およびインターネットなどの1つ以上のネットワークを介してリモートコンピュータ49と通信するための、1つ以上の、ネットワークインターフェース51またはネットワークアダプタを含んでもよい。ネットワークインターフェース51の例には、イーサネット(登録商標)インターフェース、フレームリレーインターフェース、SONETインターフェース、および無線インターフェースが含まれる場合がある。
【0069】
本開示の態様は、システム、方法、および/またはコンピュータプログラム製品であってもよい。コンピュータプログラム製品は、プロセッサに本開示の態様を実行させるためのコンピュータ可読プログラム命令を有する(1つまたは複数の)コンピュータ可読ストレージ媒体を含んでもよい。
【0070】
コンピュータ可読ストレージ媒体は、コンピュータシステム20などのコンピューティングデバイスのプロセッサによってアクセスすることができる命令またはデータ構造の形態のプログラムコードを保持および格納することができるタンジブルデバイスとすることができる。コンピュータ可読ストレージ媒体は、電子ストレージデバイス、磁気ストレージデバイス、光学ストレージデバイス、電磁ストレージデバイス、半導体ストレージデバイス、またはそれらの任意の適切な組み合わせであってもよい。例として、そのようなコンピュータ可読ストレージ媒体は、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、EEPROM、コンパクトディスク読み取り専用メモリ(CD-ROM)、デジタル多用途ディスク(DVD)、フラッシュメモリ、ハードディスク、携帯コンピュータディスケット、メモリスティック、またはフロッピーディスク、さらには命令が記録されたパンチカードもしくは溝内の隆起構造などの機械的にエンコードされたデバイスを備えることもできる。本明細書で使用される場合、コンピュータ可読ストレージ媒体は、電波もしくは他の自由に伝搬する電磁波、導波路もしくは伝送媒体を伝搬する電磁波、または導線を介して送信される電気信号などの一時的な信号自体と解釈されるべきではない。
【0071】
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体からそれぞれのコンピューティングデバイスにダウンロードすることができ、あるいはネットワーク、例えば、インターネット、ローカルエリアネットワーク、ワイドエリアネットワークおよび/または無線ネットワークを介して、外部コンピュータまたは外部ストレージデバイスにダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータおよび/またはエッジサーバを備えてもよい。各コンピューティングデバイス内のネットワークインターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、それぞれのコンピューティングデバイス内のコンピュータ可読ストレージ媒体に保存するためにコンピュータ可読プログラム命令を転送する。
【0072】
本開示の動作を実行するためのコンピュータ可読プログラム命令は、アセンブリ命令、命令セットアーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、またはオブジェクト指向プログラミング言語および従来の手続き型プログラミング言語を含む1つ以上のプログラミング言語の任意の組み合わせで記述されたソースコードもしくはオブジェクトコードのいずれかであってもよい。コンピュータ可読プログラム命令は、ユーザのコンピュータで完全に実行されてもよいし、スタンドアロンのソフトウェアパッケージとして、一部がユーザのコンピュータで実行されてもよいし、一部がユーザのコンピュータで、一部がリモートコンピュータで実行されてもよいし、またはリモートコンピュータもしくはサーバで完全に実行されてもよい。後者のシナリオでは、リモートコンピュータは、LANまたはWANを含む任意の種類のネットワークを介してユーザのコンピュータに接続されてもよく、または外部コンピュータに(例えば、インターネットを介して、)接続されてもよい。いくつかの実施形態では、例えば、プログラマブル論理回路、フィールドプログラマブルゲートアレイ(FPGA)、またはプログラマブル論理アレイ(PLA)を含む電子回路は、本開示の態様を実行するために、コンピュータ可読プログラム命令の状態情報を利用して電子回路をパーソナライズすることによって、コンピュータ可読プログラム命令を実行してもよい。
【0073】
様々な態様において、本開示に記載されたシステムおよび方法は、モジュールを単位として対処することができる。本明細書で使用される「モジュール」という用語は、例えばアプリケーション固有の集積回路(ASIC)もしくはFPGAなどによるハードウェアを使用して、またはマイクロプロセッサシステムおよび命令セットであって(実行中に)マイクロプロセッサシステムを専用デバイスに変えるモジュールの機能を実装する命令セットなどのハードウェアとソフトウェアとの組み合わせとして実装される、現実世界のデバイス、構成要素、または構成要素の配置を指す。モジュールはまた、特定の機能はハードウェアのみによって容易にされ、他の機能はハードウェアとソフトウェアの組み合わせによって容易にされて、2つの組み合わせとして実装されてもよい。特定の実装形態では、モジュールの少なくとも一部、場合によってはすべてを、コンピュータシステムのプロセッサにおいて実行する場合がある。したがって、各モジュールは、様々な適切な構成で実現されてもよく、本明細書に例示された特定の実装形態に限定されるべきではない。
【0074】
明確化のため、上記態様のすべてのルーチン機能が本明細書に開示されているわけではない。本開示の、いかなる実際の実装形態の開発においても、開発者の特定の目標を達成するために、実装形態に特有の多数の決定を行わなければならず、これらの特定の目標は、実装形態ごとおよび開発者ごとに異なることが理解されよう。そのような開発努力は複雑で時間がかかるかもしれないが、それでも、本開示の利益を有する当業者にとってはエンジニアリングのルーチン仕事であることが理解される。
【0075】
さらに、本明細書で使用される表現または用語は、限定ではなく説明を目的とするものであり、本明細書の用語または表現は、当業者の知識と組み合わせて、本明細書に提示される教示および案内に照らして当業者によって解釈されるべきであることを理解されたい。さらに、本明細書および特許請求の範囲のいかなる用語も、そのように明示的に記載されていない限り、一般的でない意味、すなわち特別な意味とみなされることを意図しない。
【0076】
本明細書で開示される様々な態様は、例示として本明細書で参照される既知のモジュールに対する、現在知られている均等物および将来知られる均等物を包含する。さらに、態様および用途を示し説明してきたが、本明細書に開示された発明の概念から逸脱することなく、上述したより多くの変更形態が可能であることは、本開示の利益を有する当業者には明らかであろう。
図1
図2
図3
図4
図5
図6