(58)【調査した分野】(Int.Cl.,DB名)
前記装置タグが静的部分と、動的部分と、を含み、前記動的部分が第1動的値を有し、第2装置タグセットを送信することが、前記第1動的値を第2動的値で置き換えることを含み、前記第1装置タグセットを無効化することが、前記装置タグの前記動的部分の前記第1動的値を無効化することを含む、請求項2に記載の方法。
前記第1装置タグセット及び前記第2装置タグセットが複数の装置タグセットのシーケンスの一部であり、前記第2装置タグセットが、前記シーケンスにおいて前記第1装置タグセットの直後である、請求項1に記載の方法。
前記装置タグが静的部分と、動的部分と、を含み、前記動的部分が第1動的値を有し、第2装置タグセットを送信することが、前記第1動的値を第2動的値で置き換えることを含み、前記第1装置タグセットを無効化することが、前記装置タグの前記動的部分の前記第1動的値を無効化することを含む、請求項8に記載のシステム。
前記第1装置タグセット及び前記第2装置タグセットが複数の装置タグセットのシーケンスの一部であり、前記第2装置タグセットが、前記シーケンスにおいて前記第1装置タグセットの直後である、請求項9に記載のシステム。
前記第1装置タグセットが装置タグを含み、前記装置タグが静的部分と、動的部分と、を含み、前記動的部分が第1動的値を有し、第2装置タグセットを送信することが、前記第1動的値を第2動的値で置き換えることを含む、請求項11に記載の非一時的なコンピュータ可読記憶媒体。
【発明を実施するための形態】
【0010】
本明細書は、様々な実施例に従って、回復機能を有し、かつ復元可能な動的装置識別を提供する方法及びシステムについて説明する。ユーザが特定のクライアント装置を使用して初めてサーバ(例えば、ウェブサイトを提供するサーバ)にアクセスするとき、このクライアント装置はウェブサイトにとって未知である。未知状態のクライアント装置は、ウェブサイトに対してリスクを示す。2要素認証を使用するウェブサイトでは、ウェブサイトは、クライアント装置を使用したウェブサイトへのアクセスをユーザに許可する前に、複数の認証要素を要求できる。リスクベースの認証技術は、2要素認証の第2要素として装置のコンテキストを使用できる。ウェブサイトがアクセス資格情報を認証すると、ウェブサイトは、クライアント装置に装置タグを送信できる。今後クライアント装置がウェブサイトにアクセスすると、ウェブサイトは装置タグを使用して、既知のクライアント装置としてこの装置を識別できる。ウェブサイトへのアクセス時にクライアント装置が既知である、つまり、以前登録されている場合、要求は、未知のクライアント装置よりもリスクが低いと見なされ得る。低リスクの要求では、リスクベースの認証システムは、より低いユーザ及びクライアント装置認証を要求できる。
【0011】
装置タグは動的であり得、各装置検証後に変更できる。以前の装置タグは無効化され得、装置タグ追跡サービスは最新の装置タグを認識できる。最新の装置タグは、クライアント装置の検証に使用できる。これは、タグがコピーされて、別のクライアント装置で使用される場合の検出に役立つ。
【0012】
図1は、本開示の実施例が動作できる、例示のシステムアーキテクチャ100である。システムアーキテクチャ100は、1つ以上のネットワーク接続をそれぞれ有する、クライアント装置101、161、181と、ネットワーク130に接続するリソースマシン160、170と、を含み得る。
【0013】
リソースマシン160、170は、ネットワーク130を介してクライアント装置101、161、181に接続された、1つ以上のサーバコンピュータ、ゲートウェイ、又は他の類似のコンピューティング装置など1つ以上のマシンであってよい。システムアーキテクチャ100には、任意の数のリソースマシン又はサーバが存在し得る。
【0014】
リソースマシン160、170は、ネットワーク130を介してクライアント装置101、161、181にウェブページなどインターネットリソースを提供できる。リソースマシン160、170は、装置タグのプロビジョニング及び管理機能を提供する装置タグモジュール165、175を含み得る。装置タグモジュール165、175の例示の機能は、
図3に関連して以下で更に詳述する。ユーザ及び/又はクライアント装置の認証後、リソースマシン160、170は、クライアント装置の装置タグセットを生成し、送信できる。リソースマシン160、170は、装置タグセットを受信し、追跡できる。リソースマシン160、170がより最新のアクセス要求を受信すると、例えば、装置タグセットを検証でき、セットが有効な場合には、リソースマシン160、170は、クライアント装置の新しいセットを生成するか、割り当てることができる。受信した装置タグセット内の装置タグが無効な場合、例えば、リソースマシン160、170は、本明細書に更に詳述するように、装置タグセット全体及びクライアント装置に関連付けられたすべての装置タグセットを無効化できる。リソースマシン160、170が、要求されたウェブページをクライアント装置101、161、181に提供すると、装置タグモジュール165、175は、クライアント装置101、161、181に新しい、つまり更新された装置タグセット155をローカルに記憶させるコード(例えば、JavaScript(登録商標、以下同じ))をウェブページに含めることができる。例えば、JavaScriptは、クライアント装置101、161、181内の装置タグセット155を記憶するようにウェブブラウザに指示できる。クライアント装置101、161、181がリソースマシンへのアクセス要求を次回送信するときに、クライアント装置101、161、181は、リソースマシンに装置タグセット155を提供できる。次いで、装置タグモジュール165は、装置タグセット155を使用してクライアント装置101、161、181を識別できる。
【0015】
クライアント装置101、161、181が、リソースマシン160、170によって提供されるウェブサイトなどウェブサイトと対話するとき、装置タグ155を使用して、クライアント装置を識別使用できる。装置タグ155は、「ユーザが有する何か」認証要素など、2要素認証の認証要素を提供できる。装置タグの一例は、「Cookie」である。Cookieは、ユーザ設定、ログイン資格情報、認証データ、及び装置情報を記憶でき、例えば、以降の閲覧時にウェブサイトがクライアント装置101、161、181の識別に使用できる。
【0016】
クライアント装置101、161、181は、ブラウザなどアプリケーション若しくはブラウザのような機能を有するアプリケーションを有する、デスクトップコンピュータ、ラップトップコンピュータ、サーバコンピュータ、携帯電話(携帯電話(cell or cellular phone)とも称される)、ポケベル、携帯情報端末(PDA)、無線端末、タブレット、シンクライアント、若しくは別のコンピュータゲームシステム、テレビ、セットトップボックス、DVD若しくはブルーレイディスクプレーヤなど任意の電子機器、又はネットワーク130への1つ以上のネットワーク接続(無線又は有線接続のいずれか)を有する別の電子機器であってよい。システムアーキテクチャ100には、任意の数のクライアント装置が存在し得る。
【0017】
図示する実施形態では、クライアント装置101、161、181は、1つ以上のアプリケーション105と、装置タグエージェント107と、1つ以上の記憶位置151と、リソースマシン160、170から受信した1つ以上の装置タグセット155と、を含む。アプリケーション105は、ユーザが入力したURL又はユーザが作動させたリンクを使用してメディアオブジェクトを表示するブラウザであってよい。アプリケーション105は、リソースマシン160、170からなどインターネットからデータを受信して、クライアント装置101、161、181で表示できる。アプリケーション105がインターネットのウェブサイト又はリソースマシン160、170と対話すると、アプリケーション105は、クライアント装置101、161、181の1つ以上の記憶位置151にデータ、コンテンツ、及び情報を記憶するか、キャッシュすることができる。
【0018】
装置タグエージェント107は、通信可能にアプリケーション105に接続されており、装置タグセット155、185に関してリソースマシン160、170からの命令を受信し、実行できる。装置タグエージェント107は、例えば、記憶位置151での装置タグの配置及び設定を容易にすることができる。装置タグエージェント107はまた、装置タグ155の記憶位置151を識別し、装置タグ155の記憶位置151を指定する位置マップを作製できる。装置タグエージェント107はまた、装置タグ155の記憶位置151を識別し、装置タグ155の記憶位置151を指定する位置マップを作製できる。位置マップは、装置タグを記憶位置に関連付けることができ、表、行列など任意の形態であり得る。位置マップは、リソースマシン160、170に送信されて、装置タグが正しい、つまり予測された位置にあるかどうかを判定するために使用され得る。位置マップは、装置タグが記憶位置から欠落しているとき、又は装置タグが予測された記憶位置にないときを示すことができる。装置タグエージェントは、アプリケーション105の一部であり得る、アプリケーション105のプラグインであり得る、又はスタンドアローンのモジュール若しくはプログラムであり得る。
【0019】
記憶位置151は、アプリケーション、アプリケーションプラグイン、ブラウザ、又はブラウザプラグインによってアクセス可能である任意の位置であり得る。アプリケーションがブラウザであるとき、記憶位置151は、Cookieストア又はHTML5記憶位置などアプリケーション固有のオブジェクトストアであり得る。多数のアプリケーション105がクライアント装置101、161、181にインストールされているとき、各アプリケーション105は、他のアプリケーション105と共有されない、それ独自の記憶位置を有し得る。記憶位置151はまた、異なる種類のアプリケーション又はブラウザにわたって共有される、アプリケーション又はブラウザプラグインのオブジェクトストアであり得る。例えば、1つのアプリケーションプラグインは、装置タグの記憶に使用できる、その独自のデータストアを有し得る。装置タグ155は、例えば、ウェブ記憶法又はドキュメントオブジェクトモデル(DOM)記憶法及びプロトコルを使用して、記憶位置151に記憶され得る。他の記憶位置151の例としては、ローカルストレージ及びセッションストレージが挙げられる。ローカルストレージに記憶された装置タグは、アプリケーション105が閉じられた後も存続できる。セッションストレージの場合、装置タグはセッション期間中保持され、アプリケーション105が閉じられたときに消去され得る。記憶位置151は、任意の数のローカル、セッション、若しくは他のストレージタイプ、又はこれらの組み合わせを含み得る。JavaScriptがブラウザに装置タグセットを記憶するように指示すると、例えば、ブラウザは、クライアント装置101、161、181内の異なるカテゴリのデータストア、つまり記憶位置151に装置タグセット155を移動できる。
【0020】
ネットワーク130は、クライアント装置101、161、181とリソースマシン160、170との間に接続層を設ける。このネットワークは、プライベート若しくはパブリックネットワーク、又はこれらの任意の組み合わせであり得る。例えば、ネットワーク130は、ローカルエリアネットワーク(LAN)、イントラネット、エクストラネット、セルラーネットワーク、ページングネットワーク、インターネット、又はこれらの任意の組み合わせであってよい。ネットワーク接続は、LAN接続、インターネット接続、Wi−Fi接続、IEEE 802.11接続、3G接続、EDGE接続、CDMA、TDMA、GSM(登録商標)、4G接続、LTE、LTE−Advanced、WiMAX、IEEE 802.15 Bluetooth(登録商標)接続、又は他の種類のネットワーク接続であってよく、様々な種類のプロトコルを使用して、クライアント装置101、161、181及びネットワーク130に接続された他の装置に対してデータを送受信してよい。
【0021】
一実施例では、リソースマシン160、170は、
図2及び3に関連して更に詳述するように、1つ以上の動的装置タグを含む装置タグセット155を生成する。リソースマシン160、170は、例えば、ユーザ又はクライアント装置が認証に成功した後で、装置タグセット155を生成できる。装置タグセット155内の少なくとも1つの装置タグは、装置タグモジュール165、175による検証ごとに変化できる動的値を有し得る。装置タグモジュール165がリソースマシン又はサーバへのアクセス要求を受信すると、装置タグモジュール165は、クライアント装置101、161、181に関連付けられた装置タグセット155が以前割り当てられた装置タグセットと一致するかどうかを判定できる。一致する場合、装置タグモジュール165は、クライアント装置101、161、181の第2装置タグセット155を割り当てて、送信できる。第2装置タグセットは、クライアントによって保存され得る。第2装置タグセット155の割り当て後、装置タグモジュール165は、第1装置タグセットを無効と指定し、記憶システムに無効指定のレコードを記憶できる。無効化された装置タグセット155は、非アクティブ化でき、新たに割り当てられた装置タグセット155は、以降のサーバアクセス要求用に装置タグモジュール165によって認識され得る。無効化されたタグを非アクティブ化すると、装置タグセット155内の装置タグがコピーされ、別のクライアント装置によって使用されているかどうかを装置タグモジュール165が検出する際に役立ち得る。2つの装置タグセット155を受信すると、装置タグモジュール165は、最近受信した装置タグセット155が以前に受信した装置タグセット155のコピーであるかどうかを判定できる。例えば、非アクティブ化された装置タグセットは、元の認証された所有者から、又は装置タグセットをコピーした別のエンティティから受信され得る。無効化されたタグが再受信されると、この装置に関連付けられたすべてのタグが非アクティブ化され得る。装置タグセット155の動的本質は、装置固有の擬似タグを提供して、不正使用される期間を短縮できる。動的装置タグの例は、
図2に関連して以下で更に詳述する。
【0022】
別の実施例では、リソースマシン160、170は、クライアント装置の多数の記憶位置に記憶され得る多数の装置タグを使用させるようにできる。リソースマシン160、170は、装置タグセット内の装置タグ(157a、157b、...、157n)を複数の記憶位置(151a、151b、...、151n)に記憶するようにクライアント装置161に指示できる。装置タグ157は、同一であるか、装置タグセット155の装置タグに類似し得る。リソースマシン160、170は、装置タグ157のうちの任意の1つ又はサブセットを使用して、クライアント装置161を一意に識別できる。複数の装置タグ157を複数の記憶位置151に記憶することにより、ブラウザキャッシュの消去などにより装置タグ157が削除されたときに生じる問題を緩和できる。ユーザは、偶然に又は意図的にクライアント装置161から1つ以上の装置タグ157を削除することがある。少なくとも1つの装置タグ157がクライアント装置161に存在すれば、一部の装置タグ157を削除してもクライアント装置161の識別に悪意影響を及ぼさない。装置タグ157は相互に回復可能であり得る。つまり、各タグを使用して、任意の欠落している、つまり削除された装置タグ157を回復できる。装置タグを回復するために、リソースマシン160、170は、
図3に関連して以下で更に詳述するように、関連する装置タグ157のリストを記憶できる。いくつかの実施例では、リソースマシン160、170はまた、装置タグ157が記憶されるクライアント装置161の記憶位置を追跡できる。
【0023】
更なる実施形態では、1つ以上の装置タグ157は、機密性がないと思われ、かつ侵入性の低いファイル名又は値を有することができ、これは、クライアント装置の保護、正確な装置識別、及び装置タグの回復に役立ち得る。例えば、装置タグのファイル名は、装置タグを送信したウェブサイトを識別しない、ランダムな英数字文字列を有し得る。ユーザは、かかる装置タグを削除しにくい。更に、かかる装置タグは、ハッカーによって盗まれにくい。
【0024】
更に別の実施例では、システム100は、2つの異なるドメインなど異なるリソースプロバイダに関連付けられた装置タグ155、185を使用できる。ドメインは、例えば、ウェブドメイン又はウェブサイトのURLであり得る。リソースマシン160は、第1リソース(例えば、第1ウェブドメイン)をホストするリソースプロバイダであってよく、リソースマシン170は、第2リソース(例えば、第2ウェブドメイン)をホストするリソースプロバイダであってよい。リソースプロバイダ160、170は、互いのためにサービスを提供できる。ドメインが同一装置に対して異なる装置タグセット(例えば、155、185)を作製すると、装置タグモジュールは、異なるドメインから2つの装置タグセットを関連付けることができる。例えば第1ウェブドメインは、写真共有ウェブサイトであってよく、第2ウェブドメインは写真共有ウェブサイトのためにユーザ認証サービスを提供できる。装置タグを作製する間、写真共有ウェブサイトは、そのウェブページにコード(例えば、JavaScript)を含めて、写真共有ウェブサイト用にクライアント装置181内に装置タグ155を設定できる。特定の実施例では、Web_domain_Aはそのウェブページにインラインフレーム(例えば、iframe)を埋め込むことができる。iframeは、別のウェブサイト内にあるウェブサイトからのドキュメントを埋め込むことができる。Web_domain_A内のiframeは、web_domain_A内のweb_domain_Bを参照するコードを含むことができる。iframe内のJavaScriptは、記憶位置151にweb_domain_B用の装置タグ185を配置できる。クライアント装置181を使用して異なるドメインからの装置タグセットを使用する例では、ユーザは、第3者認証サービスを使用するウェブサイトにアクセスする。ユーザによる写真共有ウェブサイトへのアクセスを認証した後、装置タグモジュール165は、ウェブサイトの第1装置タグセット155を送信でき、装置タグモジュール175は、認証サービスの第2装置タグセット185をクライアント装置181に送信できる。ウェブサイトは装置タグセット155又は装置タグセット185のいずれかを使用して、以降のアクセス時にクライアント装置181を識別できる。ウェブサイトの装置タグセット155が削除された場合、例えば、装置タグモジュール165は、認証サービスの装置タグセット185を使用して、クライアント装置181を識別できる。装置タグセット155及び装置タグセット185を使用して、互いを復元することもできる。ウェブサイトの装置タグセット155が不完全であるか、欠落している場合、装置タグモジュール165は認証サービスの装置タグセット185を使用して、新しい装置タグセット155を復元できるか、作製できる。同様に、認証サービスの装置タグモジュール175は認証サービスの装置タグセット185を使用して、ウェブサイトの新しい装置タグセット155を復元できるか、作製できる。
【0025】
図2は、動的装置タグ200の一実施例を示す。装置タグ200は、
図1の装置タグセット155内の装置タグであってよい。装置タグ200は、静的部分210と、動的部分220と、を含み得る。
【0026】
静的部分210は、各装置認証又は識別後に不変である、一意の識別子又は値であり得る。静的部分210は、クライアント装置の識別に使用できる。例えば、特定のクライアント装置の装置タグ200は、静的部分値a13b02c99を有する。クライアントが受信する、新しい、つまり更新された各装置タグは、静的部分値a13b02c99を有し得る。多数の装置タグがクライアント装置に送信されるとき、各装置タグは、各装置認証又は識別後に不変である、一意の静的部分を有する。各装置タグはまた、同一の静的部分を有し得る。動的部分220は、装置タグが検証されるか、識別されるたびに変化できる。新しい動的値は装置に送信され、今後の装置識別に使用するために、装置タグモジュール300によって装置タグデータ365内などに記憶される。
【0027】
動的部分220は、セキュリティ及び複雑性の点で異なる、多数の形態であり得る。動的値220は、動的値シーケンス内で次の動的値の推測又は解明が困難であるように作製され得る。以降のシーケンス内の動的値を容易に推測できる場合、悪意あるユーザは以降の値を生成し、それによって認証をなりすますことができる。動的値シーケンスが予測可能なパターンである場合、装置タグ200で暗号化を使用できる。クライアント装置外の装置タグモジュールが装置タグを検証するため、暗号化鍵は、クライアント装置に存在せず、装置タグモジュールにある。
【0028】
装置タグの静的部分及び動的部分を生成する例示の方法では、暗号化された単純なカウンターとランダムなソルト値を使用できる。サンプル式は、D=Encrypt(S||counter||<random salt>)であってよく、式中、「D」=装置タグ、「S」=静的値、「counter」=カウンター値、「<random salt>」=ランダムなソルト値、「||」は文字列連結を示す。サーバによる、又はサーバ上で実行している装置タグモジュールによる装置タグの検証のたびに、カウンターは1つずつ増加し得る。ランダムなソルト値は、暗号化された値が、カウンターの推測又はユーザ若しくは悪意のあるユーザによって以前収集された動的値の再現に使用できないように使用できる。暗号化は、サーバによって、又は装置タグを追跡する装置タグモジュールによって行われる。暗号化鍵は、サーバのみに既知である。サーバは、装置タグの現在のカウンターを追跡できる。最近検証されたカウンター値よりも小さいカウンター値が提出された装置タグで検出された場合、装置タグはコピーと見なされ、ユーザは更なる認証を要求され得る。
【0029】
動的値を生成する別の例示の方法は、ワンタイムパスワード(OTP)の使用であってよい。OTPは、一般に1回のログインセッション又はトランザクションに対してのみ有効なパスワードである。OTPは、セキュリティトークンによって生成されてよい。サーバ又は装置タグモジュールは、イベントベースのOTPシークレットを生成し、このシークレットを静的値に関連付けることができる。次のOTPは、サーバ又は装置タグモジュールが追跡できる動的値に設定され得る。サーバ又は装置タグモジュールは、最新の既知の装置タグを受け取る。提出された動的値が、サーバ装置タグについてサーバが既知の値と一致した場合、サーバは新しい動的部分を設定できるか、そのデータストア内に新しい装置タグを設定できる。クライアント側のJavaScriptは、新しい動的値を設定できるか、クライアント装置の記憶位置に新しい装置タグを設定できる。OTPは使用されると無効になり、2回目は使用できない。動的値は暗号化され得る。ユーザは、コンピューティングシステムにログインするときにOTPを手動で(例えば、キーボードを介して)入力してよいか、セキュリティトークンがクライアント装置に連結されたときに、セキュリティトークン自体がOTPをコンピューティングシステムに提供してよい。
【0030】
装置タグ200の動的値を生成する別の例示の方法では、サーバ又は装置タグモジュールが追跡する、ランダムに生成された値を使用できる。この例では、サーバ又は装置タグモジュールは、最新の既知の装置タグ200のみを受け取る。受け取った動的値が、装置タグ200についてサーバが既知の値と一致した場合、サーバはそのレコードに新しい動的値を設定できる。サーバはまた、JavaScriptを提供して(例えば、ウェブページに埋め込んで)、少なくとも装置タグの動的部分をランダムに生成された動的値に置き換えることによって、クライアント装置上の1つ以上の記憶位置に新しい値を設定できる。装置タグ200は、本明細書に記載の例に限定することを意図しない、様々な方法で生成され、更新され、無効化され得る。
【0031】
図3は、装置タグモジュール300の一実施例のブロック図である。装置タグモジュール300は、
図1のリソースマシン160内の装置タグモジュール165と同一であってよい。一実施例では、装置タグモジュール300は、リソースマシン160外に存在し、リソースマシン160へのアクセス要求を遮断する。装置タグモジュール300は、クライアント装置を一意に識別できる装置タグ及び装置タグセットを管理する。装置タグモジュール300は、アクセス要求受信310と、装置タグ作製部320と、装置タグ検証部330と、装置タグ配置部340と、を含み得る。装置タグモジュール300は、より多い又はより少ないコンポーネントを含んでよい。
【0032】
アクセス要求受信部310は、リソースマシン160によってホストされるウェブサイトなどインターネットリソースへのアクセスを求めるアクセス要求をクライアント装置から受信できる。アクセス要求は、クライアント装置に関連付けられた装置タグセットなどクライアント装置に関する情報を含み得る。あるいは、装置タグセットは、アクセス要求とは別にクライアント装置から提供され得る。アクセス要求受信部310はまた、クライアント装置がウェブサイトへのアクセスを試みたときに、クライアント装置からの装置タグセットを要求し得る。アクセス要求受信部310は、装置タグデータ365を使用して、装置タグセット内のすべての装置タグが存在するかどうかを判定できる。一実施例では、装置タグモジュール300は、クライアント装置上の1つ以上の記憶位置を識別できる。この実施例では、クライアント装置は記憶位置を示し、及びアクセス要求受信部にそれを送信できる。次いで、アクセス要求受信部は、それを装置タグ位置データ369として記憶できる。以降のアクセス要求については、アクセス要求受信部は、受信した第2装置タグセットの位置データを装置タグ位置データ369と比較して、受信した第2セットの装置タグが予測された位置にあるかどうかを判定できる。
【0033】
アクセスを要求しているクライアント装置が装置タグセットを有していない場合、装置タグ作製部320は、今後の装置識別及び検証用にクライアント装置の装置タグセットを作製できる。装置タグ作製部320は新しい装置タグセットを作製できるか、既存の装置タグセットを更新でき、クライアント装置の更なる識別のためにこれらをクライアント装置に割り当てる。同様に、ウェブサイトがクライアント装置の完全な装置タグセットを受信しない場合、装置タグ作製部320は欠落している装置タグを復元できるか、クライアント装置の新しい装置タグセットを作製できる。装置タグは、
図2に関連して更に詳述するように、動的であり得るか、動的部分を有し得る。装置タグはまた、装置タグセットにグループ化され得る。セット内の装置タグは、異なる記憶位置又クライアント装置のストレージ種類に方向付けられ得る。例えば、各記憶位置又はストレージ種類について、少なくとも2つの装置タグが作製される。ランダムかつ強力な長い識別名値ペアc1=cv1、c2=cv2、...、cm=cvmが記憶位置に対して生成され得、式中、m>1であり、式中、「=」は2つのタグ間のペアリングを示す。クライアントセットc1、c2、...、cmはクライアント装置に送信され得る。ペアセットcv1、cv2、...、cvmは、装置タグモジュール300によるクライアントセットの検証に使用され得る。異なるセットの識別子h1=hv1、h2=hv2、...、hn=hvnは、HTML 5用に生成され得、式中、n>1であり、式中、「=」は、2つのタグ間のペアリングを示す。同様に、セットh1、h2、...、hnは、クライアント装置に送信され得、セットhv1、hv2、...、hvnは、装置タグモジュール300によって記憶され得る。装置タグはまた、特定のウェブサイト又はドメインに関連付けられ得る。非記述的なファイル名を有する装置タグなどおとり装置タグを各装置タグセットに混在させ得る。更に、装置タグは、装置タグセットに関連する情報を難読化し、クライアント装置ユーザの注意を喚起しないように一般的に名付けられ得る。例えば、装置タグを「Cookie:user@CorporationWebSite」と名付けるのではなく、装置タグファイル名は、「Cookie:user@i491e009g155」又は「Cookie:user@photoediting」であってよい。
【0034】
装置タグモジュール300がクライアント装置から装置タグセットを受信する場合、装置タグ検証部330は、以下に記載のように装置タグデータ365を使用して、受信した装置タグセットが有効かどうかを判定できる。装置タグセットが有効な場合には、装置タグモジュールはクライアント装置を識別できる。装置タグ検証部330は、以前割り当てられたか、ペアを成す装置タグセットと一致するかどうかを判定することにより、装置タグセットを検証できる。ペアを成すセットの例を上記から続行すると、受信した装置タグセットは、装置タグc1、c2m、c3を含む。装置タグモジュール300の装置タグセットが装置タグcv1、cv2、cv3を含む場合、名前値ペアは一致しており、装置タグ検証部330は受信した装置タグセットを検証する。装置タグモジュール300の装置タグセットが装置タグdv1、dv2、dv3を含む場合、名前値ペアは一致しておらず、装置タグ検証部330は受信した装置タグセットを検証しない。装置タグ検証部330はまた、装置タグ位置369を使用して、受信した装置タグセットが有効かどうかを判定できる。ペアを成すセットの例では、受信した装置タグセットの値がペアを成すセットの値と一致する場合であっても、受信したセット内の装置タグの少なくとも1つの位置が正しくなければ、装置タグ検証部330は、受信したセットは無効であると決定できる。装置タグ検証部330は、受信した装置タグセットが有効であるかどうかを、装置タグモジュール300の他のコンポーネントに通知できる。装置タグ検証部330は、装置タグセットの装置タグのサブセットを受信し、更に装置タグセットを検証できる。装置タグのサブセットがクライアント装置から削除された場合であっても、クライアント装置識別は正常に実行される。装置タグモジュールがクライアント装置から装置タグセットの一部を受信する場合、装置タグ検証部330は、アクセス要求受信部310で受信した装置タグセットが有効かどうかを判定できる。装置タグ検証部330はまた、第1装置タグセットc1、c2、...、cmからの少なくとも1つの装置タグ及び第2セットh1、h2、...、hnからの少なくとも1つの装置タグを要求して、クライアント装置を正常に検証できる。装置タグ検証部330は、装置タグ作製部320が新しい装置タグを復元するか、作製できるように、欠落している装置タグを装置タグ作製部320に通知できる。
【0035】
装置タグ配置部340は、クライアント装置に装置タグセットを送信できる。装置タグ配置部340はまた、装置タグ位置データ369に従って、装置タグをクライアント装置の特定の記憶位置に移動させることができる。
【0036】
データストア350は、永続的な記憶装置であってよい。永続的な記憶装置は、ローカル記憶装置又はリモート記憶装置であってよい。永続的な記憶装置は、磁気記憶装置、光記憶装置、ソリッドステート記憶装置、電子記憶装置(メインメモリ)、又は同様の記憶装置であり得る。永続的な記憶装置は、モノリシック装置であるか、分散セットの装置であり得る。本明細書で使用するとき、「セット」は、任意の正の整数のアイテムを指す。データストア350は、装置タグデータ365及び装置タグ位置データ369を記憶できる。
【0037】
装置タグデータ365は、装置タグセットに関連する任意のデータ又は情報を含むことができる。装置タグ間の関係は、装置タグデータ365として記憶できる。装置タグが無効化され、それを置き換える新たな装置タグが作製されると、これらの装置タグ間の関係を記憶できる。装置タグのシーケンスも記憶できる。現在の装置タグに関する情報も記憶できる。多数の装置タグが一度に装置で設定されると、これらの装置タグ間の関係は装置タグデータ365として記憶できる。更に、装置タグセットがクライアント装置に関連付けられているというデータを記憶できる。装置識別に装置タグペアを使用するとき、1セットのペアが装置タグデータ365に記憶されて、整合性又はクライアント装置上の関連ペアを検証するためにクエリされる。装置タグセットとクライアント装置との関係も記憶できる。
【0038】
装置タグ位置データ369は、装置タグセットごとに位置データを含むことができる。装置タグがクライアント装置上の多数の記憶位置に記憶されると、装置タグ位置データ369は、各装置タグの記憶位置を記憶できる。クライアント装置を検証するとき、装置タグ位置データ369は、クライアント装置の装置タグが予測された記憶位置にあるかどうかを確認するためにクエリされ得る。
【0039】
装置タグモジュールは、装置タグがコピーされたか、別の装置に移動されたかを判定するために使用され得る。装置タグが別のクライアント装置にコピーされ、検証される場合、装置タグの新しい値が他のクライアント装置で設定される。新しい値は、装置タグモジュール300によって記憶され、古い値は無効化される。元のクライアント装置が装置識別ルーチンを次回開始すると、その装置タグは、古く、無効であることが判明する。装置タグモジュール300は、無効な装置タグをコピーされたか、盗まれたと見なすことができる。これは、クライアント装置において新しい値が古い値を上書きするべきであるためである。装置タグモジュール300は、この装置タグに関連付けられたすべての装置タグ(最新の有効な装置タグセットを含む)を無効化でき、これによって、第2クライアント装置内の更新された装置タグがこれ以上使用されないようにする。クライアント装置のユーザは、更なる認証を要求されることがある。ユーザ認証時に、新しい装置タグが元のクライアント装置に設定され得る。このメカニズムにより、盗まれた又はコピーされた装置タグの攻撃期間を元のクライアント装置からの次回認証時までに制限できる。
【0040】
図4は、回復機能を有し、かつ復元可能な動的装置識別のための方法400の実施例のフロー図である。方法400は、ハードウェア(例えば、回路、専用ロジック、プログラマブルロジック、マイクロコードなど)、ソフトウェア(例えば、処理装置で実行される命令)、又はこれらの組み合わせを含み得る処理ロジックによって実行できる。一実施例では、方法400は、
図1のサーバマシン内の装置タグモジュール165によって実行される。
【0041】
ブロック405において、処理ロジックは、サーバ上のリソース(例えば、ウェブサイト、ドメイン)へのアクセス要求をクライアント装置から受信する。要求は、ユーザのアクセス資格情報(例えば、ユーザ名、パスワード)及び装置のアクセス資格情報を含み得る。処理ロジックは、処理ロジックが要求と共にアクセス資格情報を受信しないときなど、要求するクライアント装置からのアクセス資格情報を要求できる。
【0042】
ブロック410において、処理ロジックは、装置タグセットがクライアント装置に存在するかどうかを判定できる。処理ロジックは、受信した要求に含まれる場合、クライアント装置に装置タグセットが存在することを判定できる。あるいは、処理ロジックは、装置タグセットについてクライアント装置にクエリできる。
【0043】
装置タグセットが存在しない場合、ブロック415において、処理ロジックは、クライアント装置のユーザからの完全なアクセス資格情報を要求できる。完全なアクセス資格情報は、知識要素(例えば、ユーザ名、パスワード、PIN、パターン)、所有要素(例えば、装置に送信されたコード、ワンタイムパスワード、装置タグ、Cookie、トークン値)、及び内在要素(例えば、ヒトの生体認証)の組み合わせを含み得る。例えば、完全なアクセス資格情報は、ユーザ名、パスワード、及びクライアント装置に送信された有効期限コード(expiring code)であってよい。
【0044】
ブロック420において、処理ロジックは、受信した完全なアクセス資格情報を認証する。要求を認証するために、処理ロジックは、アクセス資格情報の許可される組み合わせをデータストアにクエリできる。認証に成功すると、処理ロジックは、ブロック425において、新しい装置タグセットを割り当てて、これをクライアント装置に送信できる。処理ロジックはまた、割り当てられた装置タグセットをローカルに記憶し、クライアント装置に送信できる。装置タグセットは、本明細書に記載するように、クライアント装置を今後識別するための1つ以上の装置タグであってよい。ブロック427において、処理ロジックは、要求を許可でき、これによってクライアント装置にサーバへのアクセスを許可する。
【0045】
ブロック410において、装置タグセットがクライアント装置内に存在する場合、処理ロジックは、ブロック430において部分的なアクセス資格情報を要求できる。例えば、完全なアクセス資格情報がユーザ名、パスワード、及びクライアント装置に送信された有効期限コードを含む場合、部分的なアクセス資格情報は、ユーザ名及びパスワードであり、有効期限コードは含まれなくてよい。一実施例では、装置タグセットがクライアント装置内に存在すると判定した後で、処理ロジックはまた、受信した装置タグセットが以前割り当てられた装置タグセットに一致するかどうかを判定できる。装置タグセットが以前割り当てられた装置タグセットに一致する場合、処理ロジックは、クライアント装置のユーザからの完全なアクセス資格情報を要求することなくサーバへのアクセスを許可できる。装置タグセットが以前割り当てられた装置タグセットに一致しない場合、装置タグモジュールは、クライアント装置のユーザからの完全なアクセス資格情報を要求できる。
【0046】
ブロック435において、処理ロジックは、受信した部分的なアクセス資格情報を認証する。認証に成功すると、処理ロジックは、ブロック440において、更新された装置タグセットを作製し、割り当てて、クライアント装置に送信できる。処理ロジックはまた、クライアント装置において装置タグセットを置き換えるまでの装置タグセット内の1つ以上の装置タグに更新版を送信できる。処理ロジックは装置タグセットを無効化し、第2装置タグセットを割り当てて、クライアント装置に送信できる。ブロック427において、処理ロジックは、要求を許可でき、これによってクライアント装置にサーバへのアクセスを許可する。実施例では、第2装置タグは、クライアント装置のユーザによる以降のアクセスの試みにおいて第1装置タグセットであり得る。
【0047】
図5は、回復機能を有し、かつ復元可能な動的装置識別のための方法500の別の実施例のフロー図である。方法500は、ハードウェア(例えば、回路、専用ロジック、プログラマブルロジック、マイクロコードなど)、ソフトウェア(例えば、処理装置で実行される命令)、又はこれらの組み合わせを含み得る処理ロジックによって実行できる。一実施例では、方法500は、
図1のサーバマシン160内の装置タグモジュール165によって実行される。
【0048】
ブロック505において、処理ロジックは、サーバ上のリソース(例えば、ウェブサイト、ドメイン)へのアクセス要求をクライアント装置から受信する。要求は、ユーザのアクセス資格情報(例えば、ユーザ名、パスワード)及び装置のアクセス資格情報を含み得る。処理ロジックは、処理ロジックが要求と共にアクセス資格情報を受信しないときなど、要求するクライアント装置からのアクセス資格情報を要求できる。
【0049】
ブロック510において、処理ロジックは、装置タグセットがクライアント装置に存在するかどうか、及び装置タグセット内の装置タグがクライアント装置の予測された記憶位置に存在するかどうかを識別できる。処理ロジックは、要求の一部として、装置タグセットがクライアント装置の予測された記憶位置にあるという通知をクライアント装置から受信できる。記憶位置は、本明細書に記載のように、ブラウザ、ブラウザプラグイン、又はクライアント装置にインストールされたクライアントエージェント若しくはアプリケーションによってアクセス可能である任意の記憶位置であり得る。処理ロジックはまた、様々な記憶位置の位置マップ及び各記憶位置に記憶された装置タグセットをクライアント装置にクエリできる。この位置マップを受信し、以前受信した位置マップと比較することにより、処理ロジックは、装置タグが予測された記憶位置にあるかどうかを判定できる。処理ロジックはまた、装置タグセットにアクセス要求が伴ったかどうかを検出できる。
【0050】
装置タグセットが予測された記憶位置に存在しない場合、ブロック515において、処理ロジックは、本明細書に記載のように、クライアント装置のユーザからの完全なアクセス資格情報を要求できる。
【0051】
ブロック520において、処理ロジックは、受信した完全なアクセス資格情報を認証する。認証に成功した場合、処理ロジックは、ブロック525において、装置タグセットを割り当て、これをクライアント装置に送信できる(装置タグは、クライアント装置の異なる記憶位置で設定されてよい)。処理ロジックはまた、割り当てられた装置タグセットを追跡し、クライアント装置に送信できる。処理ロジックはまた、クライアント装置から位置マップを受信することにより、装置タグの記憶位置を追跡できる。装置タグセットをクライアント装置に割り当てるとき、処理ロジックは、装置タグが配置されるべき記憶位置を示すことができる。クライアント装置はまた、装置タグを任意の使用可能な記憶位置に配置でき、次いで、これらは処理ロジックに報告される。かかる例において、クライアントによって装置タグセットの装置タグが配置された後で、処理ロジックは記憶位置を受信できる。ブロック527において、処理ロジックは、要求を許可でき、これによってクライアント装置にサーバへのアクセスを許可する。
【0052】
ブロック510において、処理ロジックがクライアント装置からの位置マップを使用して、装置タグセットはクライアント装置の予測された記憶位置に存在することを識別すると、処理ロジックは、ブロック530において、完全なアクセス資格情報の一部を要求できる。例えば、完全なアクセス資格情報がユーザ名、パスワード、及びクライアント装置に送信された有効期限コードを含む場合、完全なアクセス資格情報の一部は、ユーザ名及びパスワードであり、有効期限コードは含まれなくてよい。一実施例では、クライアント装置からの位置マップを使用して、装置タグセットがクライアント装置の予測された記憶位置に存在すると識別した後で、処理ロジックはまた、受信した装置タグセットが以前割り当てられた装置タグセットに一致するかどうかを判定できる。装置タグセットが以前割り当てられた装置タグセットに一致する場合、装置タグモジュールは、クライアント装置のユーザからの完全なアクセス資格情報を要求することなくサーバへのアクセスを許可できる。装置タグセットが以前割り当てられた装置タグセットに一致しない場合、装置タグモジュールは、クライアント装置のユーザからの完全なアクセス資格情報を要求できる。処理ロジックは、猶予期間及びクライアント装置のユーザからの完全なアクセス資格情報を要求する前に許可される試行回数を許可できる。
【0053】
ブロック535において、処理ロジックは、完全なアクセス資格情報の一部を認証する。認証に成功すると、処理ロジックは、ブロック540において、更新された装置タグセットを割り当てて、これをクライアント装置に送信できる。処理ロジックはまた、クライアント装置に対する、クライアント装置における装置タグセットの置き換え命令を含むまでの装置タグセット内の1つ以上の装置タグに更新版を送信できる。一部の記憶位置からの装置タグが欠落している場合、処理ロジックは、代わりの、つまり新しい装置タグをこれらの記憶位置に送信し、新しい装置タグを配置するようにクライアント装置に指示できる。処理ロジックはまた、装置タグセットを無効化し、第2装置タグセットを割り当てて、クライアント装置に送信できる。ブロック527において、処理ロジックは、要求を許可でき、これによってクライアント装置にサーバへのアクセスを許可する。
【0054】
図6は、本明細書に記載のいずれか1つ以上の方法をマシンに実行させる命令セットが実行され得る、コンピュータシステム600の例示のマシンを示す。別の実施例では、マシンは、LAN、イントラネット、エクストラネット、及び/又はインターネット内の他のマシンに接続されて(例えば、ネットワーク化されて)よい。マシンは、クライアントサーバネットワーク環境内のサーバ若しくはクライアントマシンの容量内で、又はピアツーピア(つまり、分散)ネットワーク環境内のピアマシンとして動作してよい。
【0055】
マシンは、パーソナルコンピュータ(PC)、タブレットPC、セットトップボックス(STB)、携帯情報端末(PDA)、携帯電話、ウェブアプライアンス、サーバ、ネットワークルータ、スイッチ若しくはブリッジ、又はそのマシンが取るべき動作を指定する(逐次的又は非逐次的)命令セットを実行できる任意のマシンであってよい。更に、単一のマシンが図示されているが、用語「マシン」は、個別に、又は連携して1つの命令セット(又は複数の命令セット)を実行して、本明細書に記載の方法のいずれか1つ以上を実行する、任意のマシン群を含むとも見なされるべきである。
【0056】
例示のコンピュータシステム600は、処理装置602と、メインメモリ604(例えば、読み取り専用メモリ(ROM)、フラッシュメモリ、同期的DRAM(SDRAM)又はDRAM(RDRAM)などダイナミックランダムアクセスメモリ(DRAM)など)と、スタティックメモリ606(例えば、フラッシュメモリ、スタティックランダムアクセスメモリ(SRAM)など)と、データ記憶装置618と、を含んでおり、これらは、バス630を介して互いに通信する。
【0057】
処理装置602は、マイクロプロセッサ、中央演算処理装置など1つ以上の汎用処理装置を示す。より具体的には、処理装置は、複合命令セットコンピューティング(CISC)マイクロプロセッサ、縮小命令セットコンピューティング(RISC)マイクロプロセッサ、超長命令語(VLIW)マイクロプロセッサ、又は他の命令セットを実行するプロセッサ、若しくは命令セットの組み合わせを実行するプロセッサであってよい。処理装置602はまた、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、デジタル信号プロセッサ(DSP)、ネットワークプロセッサなど1つ以上の専用処理装置であってよい。処理装置602は、本明細書に記載の操作及び工程を実行するために命令622を実行するように構成される。
【0058】
コンピュータシステム600は、ネットワークインターフェース機器608を更に含んでよい。コンピュータシステム600はまた、ビデオディスプレイユニット610(例えば、液晶ディスプレイ(LCD)又は陰極線管(CRT))、英数字入力装置612(例えば、キーボード)、カーソル制御装置614(例えば、マウス)、及び信号生成装置616(例えば、スピーカ)を含んでよい。
【0059】
データ記憶装置618は、マシン可読記憶媒体628(コンピュータ可読媒体としても知られる)を含んでよく、ここには、本明細書に記載方法又は機能のうちのいずれか1つ以上を具現化する命令622の1つ以上のセット又はソフトウェアが記憶される。命令622はまた、コンピュータシステム600によるその実行中にメインメモリ604内、及び/又は処理装置602内に完全に、又は少なくとも部分的に存在してよく、メインメモリ604及び処理装置602はまた、コンピュータ可読媒体を構成する。
【0060】
一実施例では、命令622は、装置タグモジュール(例えば、
図3の装置タグモジュール300)に対する命令及び/又は装置タグモジュール内のモジュールを呼び出す方法を含むソフトウェアライブラリを含む。マシン可読記憶媒体628は、例示の実施例において単一媒体として示されるが、用語「マシン可読記憶媒体」は、1つ以上の命令セットを記憶する、単一媒体又は複数媒体(例えば、集中型若しくは分散型データベース、並びに/又は関連付けられたキャッシュ及びサーバ)を含むと見なされるべきである。用語「マシン可読記憶媒体」はまた、マシンによって実行するための命令セットを記憶できるか、暗号化でき、かつ本発明の方法のうちのいずれか1つ以上をマシンに実行させる任意の媒体を含むと見なされるべきである。用語「マシン可読記憶媒体には、したがって、ソリッドステートメモリ、光学媒体、及び磁気媒体が挙げられるが、これらに限定されないと見なされるべきである。
【0061】
前述の「発明を実施するための形態」の一部は、コンピュータメモリ内のデータビットに関する操作のアルゴリズム及び象徴に関して示される。これらのアルゴリズム的記述及び表現は、データ処理分野の当業者によって、他の当業者に仕事の内容を最も効果的に伝達するために使用される手段である。アルゴリズムは本明細書で、概して、所望の結果をもたらす、自己無撞着操作の連続であると考えられる。操作は、物理量の物理的操作を必要とするものである。必ずしもそうとは限らないが、通常、これらの量は、記憶する、組み合わせる、比較する、及び他の方法で操作することが可能な、電気信号又は磁気信号の形態を取る。これらの信号をビット、値、要素、記号、文字、用語、数値などと称することが、主に一般的な用法の理由から時には好都合であることが判明している。
【0062】
しかしながら、これら及び同様の用語のすべてが、適切な物理量と関連付けられるものであり、これらの量に適用される好都合なラベルにすぎないことに留意すべきある。上記の考察から明らかなように、特に記述されない限り、説明全体にわたって、「識別する」、又は「判定する」、又は「送信する」、「作製する」などの用語を使用した考察は、コンピュータシステムのレジスタ及びメモリ内の物理(例えば、電子)量として表されるデータを、同様にコンピュータシステムのメモリ若しくはレジスタ、又は他のかかる情報記憶装置として表される他のデータに操作及び変換する、コンピュータシステム又は類似の電子コンピューティング装置の動作及びプロセスを指すことを理解されたい。
【0063】
本開示はまた、本明細書に記載の操作を実行する装置に関する。この装置は、意図された目的のために特別に構築されてよく、又はコンピュータに記憶されるコンピュータプログラムによって選択的に作動若しくは再構成される汎用コンピュータを備えてよい。かかるコンピュータプログラムは、フロッピー(登録商標)ディスク、光ディスク、CD−ROM、及び光磁気ディスクを含む任意の種類のディスク、読み取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、EPROM、EEPROM、磁気若しくは光カード、又は電子命令を記憶するのに好適な任意の種類の媒体などが挙げられるが、これらに限定されない、コンピュータ可読記憶媒体に記憶されてよく、それぞれがコンピュータシステムバスに接続される。
【0064】
本明細書に記載のアルゴリズム及びディスプレイは、任意の特定のコンピュータ又は他の装置に本質的に関連しない。様々な汎用システムが、本明細書の教示に従ったプログラムと共に使用されてよいか、方法を実行するために、より特化した装置の構築が便利であることが判明することがある。様々なこれらのシステムの構造は、以下の説明から明らかとなる。加えて、本開示は、任意の特定のプログラミング言語に関して記載されていない。本明細書に記載されるように、本開示の教示を実行するために様々なプログラミング言語が使用されてよいことを理解されたい。
【0065】
本開示は、コンピュータシステム(又は他の電子機器)に本開示に従ってプロセスを実行させるプログラムの作製に使用され得る、記憶された命令を有するマシン可読媒体を含んでよい、コンピュータプログラム製品又はソフトウェアとして提供されてよい。マシン可読媒体は、マシン(例えば、コンピュータ)可読の形態で情報を記憶する、任意のメカニズムを含む。例えば、マシン可読(例えば、コンピュータ可読)媒体は、読み取り専用メモリ(「ROM」)、ランダムアクセスメモリ(「RAM」)、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリ装置などマシン(例えば、コンピュータ)可読記憶媒体を含む。
【0066】
前述の仕様書では、本開示の実施例は、その特定の例示の実施例を参照して説明してきた。以下の「特許請求の範囲」に記載される、本開示の実施例のより広い趣旨及び範囲から逸脱することなく様々な変更を行うことができることは、明らかであろう。したがって、本明細書及び図面は、制限的意味ではなく、例示的意味と見なされるべきである。