(57)【要約】  本開示は、コンテンツ配信の認証された制御のためのシステムおよび方法を提供する。方法は、コンピューティングデバイスからのコンテンツのアイテムの要求を受信するステップであって、要求が、コンピューティングデバイスに関連付けられたセキュリティトークンと、ドメインのグループの識別子とを備える、ステップと、識別子からドメインのグループを識別するステップと、ドメインのグループに関連付けられたセキュリティ鍵を取り出すステップとを含む。方法は、セキュリティトークンの署名を解読するステップと、認証文字列を識別するステップと、認証文字列がサーバ認証文字列と一致すると決定するステップと、セキュリティトークンの特性を識別するステップとをさらに含む。セキュリティトークンの特性は、信頼性スコアを含む。方法は、セキュリティトークンの信頼性スコアをしきい値と比較するステップと、信頼性スコアがしきい値を超えないと決定するステップと、コンピューティングデバイスへのコンテンツの送信を防止するステップとをさらに含む。
2021533426.tif 000002
【特許請求の範囲】
【請求項１】
コンテンツ配信の認証された制御のための方法であって、
サーバデバイスによって、コンピューティングデバイスからのコンテンツのアイテムの要求を受信するステップであって、前記要求が、前記コンピューティングデバイスに関連付けられたセキュリティトークンと、前記セキュリティトークンが関連付けられるドメインのグループの識別子とを備える、ステップと、
前記サーバデバイスによって、前記識別子から前記ドメインのグループを識別するステップと、
前記サーバデバイスによって、前記ドメインのグループに関連付けられたセキュリティ鍵を取り出すステップと、
前記サーバデバイスによって、前記セキュリティ鍵を使用して、前記セキュリティトークンの署名を解読するステップと、
前記サーバデバイスによって、前記セキュリティトークンに関連付けられた認証文字列を識別するステップと、
前記サーバデバイスによって、前記認証文字列がサーバ認証文字列と一致すると決定するステップと、
前記認証文字列が前記サーバ認証文字列と一致するとの前記決定に応答して、前記サーバデバイスによって、前記セキュリティトークンの特性を識別するステップであって、前記セキュリティトークンの前記特性が、前記コンピューティングデバイスが悪意のあるエンティティに関連付けられない尤度を示す信頼性スコアを備える、ステップと、
前記サーバデバイスによって、前記セキュリティトークンの前記信頼性スコアをしきい値と比較するステップと、
前記サーバデバイスによって、前記信頼性スコアが前記しきい値を超えないと決定するステップと、
前記信頼性スコアが前記しきい値を超えないとの前記決定に応答して、前記サーバデバイスによって、前記コンピューティングデバイスへのコンテンツの送信を防止するステップと
を含む方法。
【請求項２】
前記しきい値が前記ドメインのグループの前記識別に関連付けられ、前記セキュリティトークンの前記信頼性スコアを前記しきい値と比較するステップが、
前記識別子からの前記ドメインのグループの前記識別に応答して、前記サーバデバイスによって、前記ドメインのグループの前記識別に関連付けられた前記しきい値を識別するステップと、
前記信頼性スコアを前記しきい値と比較するステップと
をさらに含む、請求項1に記載の方法。
【請求項３】
前記信頼性スコアが、前記ドメインのグループのうちの少なくとも1つのドメインに関連付けられたウェブサイト上の前記コンピューティングデバイスのブラウジングアクティビティの識別に応答して、前記ドメインのグループに関連付けられたサーバによって計算される、請求項1に記載の方法。
【請求項４】
前記ブラウジングアクティビティの識別が、前記ウェブサイト上のアカウントの作成、前記ウェブサイトへのログイン回数、前記ウェブサイトへの訪問回数、前記ウェブサイト上の対話回数、または認証された通信の前の事例を備える、請求項3に記載の方法。
【請求項５】
前記サーバデバイスによって、第2のコンピューティングデバイスからの第2のコンテンツのアイテムの第2の要求を受信するステップであって、前記第2の要求が、前記第2のコンピューティングデバイスに関連付けられた第2のセキュリティトークンと、前記第2のセキュリティトークンが関連付けられる第2のドメインのグループの第2の識別子とを備える、ステップと、
前記サーバデバイスによって、前記第2の識別子から前記第2のドメインのグループを識別するステップと、
前記サーバデバイスによって、前記第2のドメインのグループに関連付けられた第2のセキュリティ鍵を取り出すステップと、
前記サーバデバイスによって、前記第2のセキュリティ鍵を使用して、前記第2のセキュリティトークンの第2の署名を解読するステップと、
前記サーバデバイスによって、前記第2のセキュリティトークンに関連付けられた第2の認証文字列を識別するステップと、
前記サーバデバイスによって、前記第2の認証文字列が第2のサーバ認証文字列と一致すると決定するステップと、
前記第2の認証文字列が前記第2のサーバ認証文字列と一致するとの前記決定に応答して、前記サーバデバイスによって、前記第2のセキュリティトークンの第2の特性を識別するステップであって、前記第2のセキュリティトークンの前記第2の特性が、前記第2のコンピューティングデバイスが悪意のあるエンティティに関連付けられない第2の尤度を示す第2の信頼性スコアを備える、ステップと、
前記サーバデバイスによって、前記第2のセキュリティトークンの前記第2の信頼性スコアを第2のしきい値と比較するステップと、
前記サーバデバイスによって、前記第2の信頼性スコアが前記第2のしきい値を超えると決定するステップと、
前記第2の信頼性スコアが前記第2のしきい値を超えるとの前記決定に応答して、前記サーバデバイスによって、前記第2のコンピューティングデバイスにコンテンツを送信するステップと
をさらに含む、請求項1に記載の方法。
【請求項６】
前記第2の認証文字列がタイムスタンプを備え、前記方法が、
前記サーバデバイスによって、前記タイムスタンプの時間を識別するステップと、
前記サーバデバイスによって、前記時間を現在の時間と比較するステップと、
前記サーバデバイスによって、前記時間と前記現在の時間との間の時間の長さを決定するステップと、
前記サーバデバイスによって、前記時間の長さを第3のしきい値と比較するステップと、
前記サーバデバイスによって、前記時間の長さが前記第3のしきい値を下回ると決定するステップと
をさらに含み、
前記第2のコンピューティングデバイスに前記コンテンツを送信するステップが、前記時間の長さが前記第3のしきい値を下回るとの前記決定に応答してさらに実行される、請求項5に記載の方法。
【請求項７】
サーバデバイスによって、第2のコンピューティングデバイスからの第2のコンテンツのアイテムの第2の要求を受信するステップであって、前記第2の要求が、前記第2のコンピューティングデバイスに関連付けられた複数の第2のセキュリティトークンを備え、各第2のセキュリティトークンが、第2の識別子に関連付けられた異なるドメインのグループに関連付けられる、ステップと、
前記複数の第2のセキュリティトークンのうちの各第2のセキュリティトークンについて、
前記サーバデバイスによって、前記第2の識別子から第2のドメインのグループを識別するステップと、
前記サーバデバイスによって、前記第2のドメインのグループに関連付けられた第2のセキュリティ鍵を取り出すステップと、
前記サーバデバイスによって、前記第2のセキュリティ鍵を使用して、前記第2のセキュリティトークンの第2の署名を解読するステップと、
前記サーバデバイスによって、前記第2のセキュリティトークンに関連付けられた第2の認証文字列を識別するステップと、
前記サーバデバイスによって、前記第2の認証文字列が第2のサーバ認証文字列と一致すると決定するステップと、
前記第2の認証文字列が前記第2のサーバ認証文字列と一致するとの前記決定に応答して、前記サーバデバイスによって、カウンタのカウントをインクリメントするステップと、
前記サーバデバイスによって、前記カウントを第2のしきい値と比較するステップと、
前記サーバデバイスによって、前記カウントが前記第2のしきい値を超えると決定するステップと、
前記カウントが前記第2のしきい値を超えるとの前記決定に応答して、前記サーバデバイスによって、前記第2のコンピューティングデバイスにコンテンツを送信するステップと
をさらに含む、請求項1に記載の方法。
【請求項８】
前記要求が第2のセキュリティ鍵をさらに備え、前記方法が、
前記サーバ認証文字列と一致する前記認証文字列に応答して、前記要求から、前記サーバデバイスによって、前記第2のセキュリティ鍵を取り出すステップと、
前記サーバデバイスによって、前記第2のセキュリティ鍵を使用して、前記セキュリティトークンの第2の署名を解読するステップと、
前記サーバデバイスによって、前記セキュリティトークンに関連付けられた第2の認証文字列を識別するステップと、
前記サーバデバイスによって、前記第2の認証文字列が第2のサーバ認証文字列と一致すると決定するステップと
をさらに含み、
前記信頼性スコアを識別するステップが、前記第2の認証文字列が前記第2のサーバ認証文字列と一致するとの前記決定に応答してさらに実行される、請求項1に記載の方法。
【請求項９】
前記第2のセキュリティ鍵が、前記ドメインのグループのサブグループに関連付けられ、前記ドメインのグループの前記サブグループが、前記ドメインのグループのうちのドメインに関連付けられる複数のコンピューティングデバイスに関連付けられる、請求項8に記載の方法。
【請求項１０】
前記第2のセキュリティ鍵が、前記コンピューティングデバイスに関連付けられる、請求項8に記載の方法。
【請求項１１】
コンテンツ配信の認証された制御のためのサーバデバイスであって、
複数のクライアントデバイスのうちの第1のコンピューティングデバイスと通信している、ネットワークインターフェースと、
プロセッサと
を備え、前記プロセッサが、
前記ネットワークインターフェースを介して、前記第1のコンピューティングデバイスから、コンテンツのアイテムの要求を受信することであって、前記要求が、前記第1のコンピューティングデバイスに関連付けられたセキュリティトークンと、前記セキュリティトークンが関連付けられるドメインのグループの識別子とを備える、受信すること、
前記識別子からドメインのグループを識別すること、
前記ドメインのグループに関連付けられたセキュリティ鍵を取り出すこと、
前記セキュリティ鍵を使用して、前記セキュリティトークンの署名を解読すること、
前記セキュリティトークンに関連付けられた認証文字列を識別すること、
前記認証文字列がサーバ認証文字列と一致すると決定すること、
前記認証文字列が前記サーバ認証文字列と一致するとの前記決定に応答して、前記セキュリティトークンの特性を識別することであって、前記セキュリティトークンの前記特性が、前記第1のコンピューティングデバイスが悪意のあるエンティティに関連付けられない尤度を示す信頼性スコアを備える、識別すること、
前記セキュリティトークンの前記信頼性スコアをしきい値と比較すること、
前記信頼性スコアが前記しきい値を超えないと決定すること、および
前記信頼性スコアが前記しきい値を超えないとの前記決定に応答して、前記第1のコンピューティングデバイスへのコンテンツの送信を防止すること
を行うように構成される、サーバデバイス。
【請求項１２】
前記しきい値が前記ドメインのグループの前記識別に関連付けられ、前記プロセッサが、
前記ドメインのグループの前記識別に関連付けられた前記しきい値を識別すること、および
前記信頼性スコアを前記しきい値と比較すること
によって、前記セキュリティトークンの前記信頼性スコアを前記しきい値と比較する、請求項11に記載のサーバデバイス。
【請求項１３】
前記信頼性スコアが、前記ドメインのグループのうちの少なくとも1つのドメインに関連付けられたウェブサイト上の前記第1のコンピューティングデバイスのブラウジングアクティビティの識別に応答して、前記ドメインのグループに関連付けられたサーバによって計算される、請求項11に記載のサーバデバイス。
【請求項１４】
前記ブラウジングアクティビティの識別が、前記ウェブサイト上のアカウントの作成、前記ウェブサイトへのログイン回数、前記ウェブサイト上の対話回数、または前記ウェブサイトへの訪問回数を備える、請求項13に記載のサーバデバイス。
【請求項１５】
前記プロセッサが、
前記ネットワークインターフェースを介して、第2のコンピューティングデバイスから、前記第2のコンピューティングデバイスからの第2のコンテンツのアイテムの第2の要求を受信することであって、前記第2の要求が、前記第2のコンピューティングデバイスに関連付けられた第2のセキュリティトークンと、前記第2のセキュリティトークンが関連付けられる第2のドメインのグループの第2の識別子とを備える、受信すること、
前記第2の識別子から前記第2のドメインのグループを識別すること、
前記第2のドメインのグループに関連付けられた第2のセキュリティ鍵を取り出すこと、
前記第2のセキュリティ鍵を使用して、前記第2のセキュリティトークンの第2の署名を解読すること、
前記第2のセキュリティトークンに関連付けられた第2の認証文字列を識別すること、
前記第2の認証文字列が第2のサーバ認証文字列と一致すると決定すること、
前記第2の認証文字列が前記第2のサーバ認証文字列と一致するとの前記決定に応答して、前記第2のセキュリティトークンの第2の特性を識別することであって、前記第2のセキュリティトークンの前記第2の特性が、前記第2のコンピューティングデバイスが悪意のあるエンティティに関連付けられない第2の尤度を示す第2の信頼性スコアを備える、識別すること、
前記第2のセキュリティトークンの前記第2の信頼性スコアを第2のしきい値と比較すること、
前記第2の信頼性スコアが前記第2のしきい値を超えると決定すること、および
前記第2の信頼性スコアが前記第2のしきい値を超えるとの前記決定に応答して、前記ネットワークインターフェースを介して、前記第2のコンピューティングデバイスに、前記第2のコンピューティングデバイスへのコンテンツを送信すること
を行うようにさらに構成される、請求項11に記載のサーバデバイス。
【請求項１６】
前記第2の認証文字列がタイムスタンプを備え、前記プロセッサが、
前記タイムスタンプの時間を識別すること、
前記時間を現在の時間と比較すること、
前記時間と前記現在の時間との間の時間の長さを決定すること、
前記時間の長さを第3のしきい値と比較すること、
前記時間の長さが前記第3のしきい値を下回ると決定すること
を行うようにさらに構成され、
前記プロセッサが、前記時間の長さが前記第3のしきい値を下回るとの前記決定にさらに応答して、前記第2のコンピューティングデバイスに前記コンテンツを送信する、請求項15に記載のサーバデバイス。
【請求項１７】
前記プロセッサが、
前記ネットワークインターフェースを介して、第2のコンピューティングデバイスから、第2のコンピューティングデバイスからの第2のコンテンツのアイテムの第2の要求を受信することであって、前記第2の要求が、前記第2のコンピューティングデバイスに関連付けられた複数の第2のセキュリティトークンを備え、各第2のセキュリティトークンが、第2の識別子に関連付けられた異なるドメインのグループに関連付けられる、受信すること、
前記複数の第2のセキュリティトークンのうちの各第2のセキュリティトークンについて、
前記第2の識別子から第2のドメインのグループを識別すること、
前記第2のドメインのグループに関連付けられた第2のセキュリティ鍵を取り出すこと、
前記第2のセキュリティ鍵を使用して、前記第2のセキュリティトークンの第2の署名を解読すること、
前記第2のセキュリティトークンに関連付けられた第2の認証文字列を識別すること、
前記第2の認証文字列が第2のサーバ認証文字列と一致すると決定すること、および
前記第2の認証文字列が前記第2のサーバ認証文字列と一致するとの前記決定に応答して、カウンタのカウントをインクリメントすること、
前記カウントをしきい値と比較すること、
前記カウントが前記しきい値を超えると決定すること、ならびに
前記カウントが前記しきい値を超えるとの前記決定に応答して、前記ネットワークインターフェースを介して、前記第2のコンピューティングデバイスに、前記第2のコンピューティングデバイスへのコンテンツを送信すること
を行うようにさらに構成される、請求項11に記載のサーバデバイス。
【請求項１８】
前記要求が第2のセキュリティ鍵をさらに備え、前記プロセッサが、
前記サーバ認証文字列と一致する前記認証文字列に応答して、前記要求から、前記第2のセキュリティ鍵を取り出すこと、
前記第2のセキュリティ鍵を使用して、前記セキュリティトークンの第2の署名を解読すること、
前記セキュリティトークンに関連付けられた第2の認証文字列を識別すること、
前記第2の認証文字列が第2のサーバ認証文字列と一致すると決定すること
を行うようにさらに構成され、
前記プロセッサが、前記第2の認証文字列が前記第2のサーバ認証文字列と一致するとの前記決定にさらに応答して、前記信頼性スコアを識別する、請求項11に記載のサーバデバイス。
【請求項１９】
前記第2のセキュリティ鍵が、前記ドメインのグループのサブグループに関連付けられ、前記ドメインのグループの前記サブグループが、前記ドメインのグループのうちのドメインに関連付けられる複数のコンピューティングデバイスに関連付けられる、請求項18に記載のサーバデバイス。
【請求項２０】
前記第2のセキュリティ鍵が、前記第1のコンピューティングデバイスに関連付けられる、請求項18に記載のサーバデバイス。
【発明の詳細な説明】
【背景技術】
【０００１】
人々は、実店舗に行くのではなく、オンラインで商品の買い物をすることがある。人々が買い物をするために異なるウェブページおよびドメインを訪問している間、多くの事例では、ウェブページおよびドメインに関連付けられたサードパーティが、人々がウェブページを訪問するために使用するコンピューティングデバイスに、コンテンツを提供し得る。サードパーティは、コンピューティングデバイスからの要求に応答して、コンテンツを提供し得る。場合によっては、悪意のあるパーティ(malicious party)が、サイバー攻撃(たとえば、サービス拒否攻撃、分散型サービス拒否攻撃、リプレイ攻撃、タイミング攻撃など)において、コンテンツ要求を送ることがある。
【０００２】
デバイスオペレーティングシステムによって課せられるセキュリティポリシーを含む様々な理由のために、コンテンツプロバイダなどのサードパーティは、サードパーティがコンテンツを提供する先のコンピューティングデバイスについての情報を取得することができないことがある。結果として、サードパーティは、コンテンツを要求しているデバイスが、インターネットをブラウズしているユーザであるか、悪意のあるパーティであるかを決定することができないことがある。したがって、悪意のあるパーティは、サードパーティをだまして、不正な要求を使用して、悪意のあるパーティにコンテンツを提供させ、様々なタイプのサイバー攻撃を実行させることがある。したがって、サードパーティは、デバイスが正規のユーザに関連付けられることを検証することを望むことがある。しかしながら、多くの事例では、デバイスまたはユーザが、認証情報、または、コンピューティングデバイスがサイバー攻撃もしくは悪意のあるパーティに関連付けられないことを示す他のデータを提供しようと試みる場合、コンピューティングデバイスは、コンピューティングデバイス、またはコンピューティングデバイスが関連付けられるドメインについて、望まれる以上に多くの情報を非意図的にあらわにすることがある。さらに悪いことに、いくつかの事例では、悪意のあるパーティは、コンピューティングデバイスとサードパーティまたはコンテンツプロバイダとの間の通信を盗聴もしくは傍受することがあり、ユーザの個人情報、またはコンピューティングデバイスについての情報へのアクセスを取得することがある。
【発明の概要】
【課題を解決するための手段】
【０００３】
本明細書で説明するシステムおよび方法は、コンピューティングデバイスまたはユーザについての情報を公開することなしに、コンテンツサーバが、コンテンツ要求が悪意のあるエンティティに関連付けられるコンピューティングデバイスにおいて発生したか否かを決定することができるように、コンテンツ配信の認証された制御のための方法を提供する。コンピューティングデバイスが様々なウェブページにアクセスし、ウェブページに関連付けられたユーザアカウントを作成し、ユーザアカウントにログインし、かつ/またはウェブページを介して認証された通信を有するとき、ウェブページに関連付けられたサーバは、コンピューティングデバイスに関連付けられた信頼性スコアを維持し得る。信頼性スコアは、コンピューティングデバイスが悪意のあるエンティティに関連付けられない(たとえば、サイバー攻撃を実行するためではなく、コンテンツのためにウェブページにアクセスしているユーザに関連付けられる)という、各サーバが有する確信度を示し得る。いくつかの実装形態では、しきい値を超える確信度まで、コンピューティングデバイスが悪意のあるエンティティに関連付けられないと決定すると、ウェブページのサーバは、互いに関連付けられるサーバのグループ(たとえば、サーバコンソーシアム(server consortium))に関連付けられたグループ署名を用いて、セキュリティトークンに署名し、コンピューティングデバイスのブラウザ中に、グループ署名に関連付けられたサーバのグループの識別情報を含むセキュリティトークンを記憶し得る。
【０００４】
いくつかの実装形態では、コンテンツ要求を送るコンピューティングデバイスのプライバシーを保護するために、要求側コンピューティングデバイスにセキュリティトークンを提供するサーバは、コンピューティングデバイスが要求に匿名で署名するために使用することができる、サーバコンソーシアムのサブグループに関連付けられた証明書を、コンピューティングデバイスに提供し得る。サーバは、それについての情報を有するコンピューティングデバイスのハッシュ化された識別子を様々なサブグループ(たとえば、サーバコンソーシアムのサブグループ)に区分し得る。サーバは、グループ署名を各サブグループに関連付け得る。しきい値を上回る確信度まで、要求側コンピューティングデバイスが悪意のあるパーティに関連付けられないと決定すると、サーバは、コンピューティングデバイスが、グループ署名に関連付けられた公開暗号鍵を使用してのみ検証され得る要求に署名するための、サブグループの証明書を、各サブグループのコンピューティングデバイスに提供し得る。コンテンツ要求において、コンピューティングデバイスは、要求中に、サーバコンソーシアムのグループ署名と、サーバコンソーシアムのサブグループのグループ署名とを含めることができる。署名は、どのサーバコンソーシアムに署名側サーバが関連付けられるかについての情報以外の、署名を提供したコンピューティングデバイスまたはサーバの個々を識別する情報を含まないので、コンテンツサーバは、どの特定のサーバがセキュリティトークンを提供したか、またはどのコンピューティングデバイスが要求を送ったかを識別することができないことがある。
【０００５】
別のウェブページにアクセスすると、コンピューティングデバイスは、コンテンツサーバに、セキュリティトークンを含むコンテンツ要求を送り得る。コンテンツサーバは、セキュリティトークンが有効であるか否かを決定(たとえば、サーバのグループに関連付けられたセキュリティ鍵を使用して、セキュリティトークンの署名を解読し、解読が成功したことを検証)し得る。セキュリティトークンが有効である場合、コンテンツサーバは、セキュリティトークンがある基準を満たすか否かを決定(たとえば、セキュリティトークンの信頼性スコアがしきい値を超えるか否かを決定)することができる。セキュリティトークンが有効であり、基準を満たす場合、コンテンツサーバは、要求側コンピューティングデバイスにコンテンツを提供し得る。セキュリティトークンが無効である場合、またはさもなければ、基準を満たさない場合、コンテンツサーバは、コンピューティングデバイスへのコンテンツの送信を防止し得る(たとえば、コンピューティングデバイスにいかなるコンテンツも提供しない)。
【０００６】
有利には、本明細書で説明するシステムおよび方法を実装することによって、コンピューティングデバイスは、コンピューティングデバイスが正規のものであるか、または悪意のある攻撃者に関連付けられないことを示す、様々なウェブサイトのサーバから受信された検証を、コンテンツサーバに提供し得る。コンピューティングデバイスは、要求側コンピューティングデバイス、または要求側コンピューティングデバイスに検証を提供したサーバを識別する情報を提供することなしに、そのように行い得る。コンテンツサーバは、コンテンツサーバが受信するグループ署名に関連付けられるサーバのグループを識別し得るが、サーバのグループは、そこからコンテンツサーバがグループのグループ署名に基づいて個々のサーバを識別することができないようになる、多数のサーバを含み得る。さらに、コンピューティングデバイスを、コンテンツサーバによって個々に識別されないように匿名化するために、コンピューティングデバイスは、サーバに関連付けられる(たとえば、サーバに関連付けられたウェブサイトにアクセスした)コンピューティングデバイスのサブセットに関連付けられた第2のグループ署名を用いて、セキュリティトークンに署名し得る。第2のグループ署名は、コンテンツサーバが、同じ署名を含むコンテンツ要求からコンピューティングデバイスを識別することができないことがあるように、要求側コンピューティングデバイスを匿名に保ち得る。
【０００７】
本明細書で説明する一態様では、コンテンツ配信の認証された制御のための方法について説明する。方法は、サーバデバイスによって、コンピューティングデバイスからのコンテンツのアイテムの要求を受信するステップであって、要求が、コンピューティングデバイスに関連付けられたセキュリティトークンと、セキュリティトークンが関連付けられるドメインのグループの識別子とを備える、ステップと、サーバデバイスによって、識別子からドメインのグループを識別するステップと、サーバデバイスによって、ドメインのグループに関連付けられたセキュリティ鍵を取り出すステップと、サーバデバイスによって、セキュリティ鍵を使用して、セキュリティトークンの署名を解読するステップと、サーバデバイスによって、セキュリティトークンに関連付けられた認証文字列を識別するステップと、サーバデバイスによって、認証文字列がサーバ認証文字列と一致すると決定するステップと、認証文字列がサーバ認証文字列と一致するとの決定に応答して、サーバデバイスによって、セキュリティトークンの特性を識別するステップであって、セキュリティトークンの特性が、コンピューティングデバイスが悪意のあるエンティティに関連付けられない尤度を示す信頼性スコアを備える、ステップとを含み得る。方法は、サーバデバイスによって、セキュリティトークンの信頼性スコアをしきい値と比較するステップと、サーバデバイスによって、信頼性スコアがしきい値を超えないと決定するステップと、信頼性スコアがしきい値を超えないとの決定に応答して、サーバデバイスによって、コンピューティングデバイスへのコンテンツの送信を防止するステップとをさらに含み得る。
【０００８】
いくつかの実装形態では、しきい値は、ドメインのグループの識別に関連付けられ得る。セキュリティトークンの信頼性スコアをしきい値と比較するステップは、識別子からのドメインのグループの識別に応答して、サーバデバイスによって、ドメインのグループの識別に関連付けられたしきい値を識別するステップと、信頼性スコアをしきい値と比較するステップとをさらに含み得る。
【０００９】
いくつかの実装形態では、信頼性スコアは、ドメインのグループのうちの少なくとも1つのドメインに関連付けられたウェブサイト上のコンピューティングデバイスのブラウジングアクティビティの識別に応答して、ドメインのグループに関連付けられたサーバによって計算され得る。いくつかの実装形態では、ブラウジングアクティビティの識別は、ウェブサイト上のアカウントの作成、ウェブサイトへのログイン回数、ウェブサイトへの訪問回数、ウェブサイト上の対話回数、または認証された通信の前の事例を備え得る。
【００１０】
いくつかの実装形態では、方法は、サーバデバイスによって、第2のコンピューティングデバイスからの第2のコンテンツのアイテムの第2の要求を受信するステップであって、第2の要求が、第2のコンピューティングデバイスに関連付けられた第2のセキュリティトークンと、第2のセキュリティトークンが関連付けられる第2のドメインのグループの第2の識別子とを備える、ステップと、サーバデバイスによって、第2の識別子から第2のドメインのグループを識別するステップと、サーバデバイスによって、第2のドメインのグループに関連付けられた第2のセキュリティ鍵を取り出すステップと、サーバデバイスによって、第2のセキュリティ鍵を使用して、第2のセキュリティトークンの第2の署名を解読するステップと、サーバデバイスによって、第2のセキュリティトークンに関連付けられた第2の認証文字列を識別するステップと、サーバデバイスによって、第2の認証文字列が第2のサーバ認証文字列と一致すると決定するステップとをさらに含み得る。方法は、第2の認証文字列が第2のサーバ認証文字列と一致するとの決定に応答して、サーバデバイスによって、第2のセキュリティトークンの第2の特性を識別するステップをさらに含み得る。第2のセキュリティトークンの第2の特性は、第2のコンピューティングデバイスが悪意のあるエンティティに関連付けられない第2の尤度を示す第2の信頼性スコアを備え得る。方法は、サーバデバイスによって、第2のセキュリティトークンの第2の信頼性スコアを第2のしきい値と比較するステップと、サーバデバイスによって、第2の信頼性スコアが第2のしきい値を超えると決定するステップと、第2の信頼性スコアが第2のしきい値を超えるとの決定に応答して、サーバデバイスによって、第2のコンピューティングデバイスにコンテンツを送信するステップとをさらに含み得る。
【００１１】
いくつかの実装形態では、第2の認証文字列は、タイムスタンプを備え得る。方法は、サーバデバイスによって、タイムスタンプの時間を識別するステップと、サーバデバイスによって、時間を現在の時間と比較するステップと、サーバデバイスによって、時間と現在の時間との間の時間の長さを決定するステップと、サーバデバイスによって、時間の長さを第3のしきい値と比較するステップと、サーバデバイスによって、時間の長さが第3のしきい値を下回ると決定するステップとをさらに含み得る。第2のコンピューティングデバイスにコンテンツを送信するステップは、時間の長さが第3のしきい値を下回るとの決定に応答してさらに実行され得る。
【００１２】
いくつかの実装形態では、方法は、サーバデバイスによって、第2のコンピューティングデバイスからの第2のコンテンツのアイテムの第2の要求を受信するステップであって、第2の要求が、第2のコンピューティングデバイスに関連付けられた複数の第2のセキュリティトークンを備え、各第2のセキュリティトークンが、第2の識別子に関連付けられた異なるドメインのグループに関連付けられる、ステップをさらに含み得る。方法は、複数の第2のセキュリティトークンのうちの各第2のセキュリティトークンについて、サーバデバイスによって、第2の識別子から第2のドメインのグループを識別するステップと、サーバデバイスによって、第2のドメインのグループに関連付けられた第2のセキュリティ鍵を取り出すステップと、サーバデバイスによって、第2のセキュリティ鍵を使用して、第2のセキュリティトークンの第2の署名を解読するステップと、サーバデバイスによって、第2のセキュリティトークンに関連付けられた第2の認証文字列を識別するステップと、サーバデバイスによって、第2の認証文字列が第2のサーバ認証文字列と一致すると決定するステップと、第2の認証文字列が第2のサーバ認証文字列と一致するとの決定に応答して、サーバデバイスによって、カウンタのカウントをインクリメントするステップとをさらに含み得る。方法は、サーバデバイスによって、カウントを第2のしきい値と比較するステップと、サーバデバイスによって、カウントが第2のしきい値を超えると決定するステップと、カウントが第2のしきい値を超えるとの決定に応答して、サーバデバイスによって、第2のコンピューティングデバイスにコンテンツを送信するステップとをさらに含み得る。
【００１３】
いくつかの実装形態では、要求は、第2のセキュリティ鍵をさらに備え得る。方法は、サーバ認証文字列と一致する認証文字列に応答して、要求から、サーバデバイスによって、第2のセキュリティ鍵を取り出すステップと、サーバデバイスによって、第2のセキュリティ鍵を使用して、セキュリティトークンの第2の署名を解読するステップと、サーバデバイスによって、セキュリティトークンに関連付けられた第2の認証文字列を識別するステップと、サーバデバイスによって、第2の認証文字列が第2のサーバ認証文字列と一致すると決定するステップとをさらに含み得る。信頼性スコアを識別するステップは、第2の認証文字列が第2のサーバ認証文字列と一致するとの決定に応答してさらに実行され得る。
【００１４】
いくつかの実装形態では、第2のセキュリティ鍵が、ドメインのグループのサブグループに関連付けられ得る。ドメインのグループのサブグループが、ドメインのグループのうちのドメインに関連付けられる複数のコンピューティングデバイスに関連付けられ得る。いくつかの実装形態では、第2のセキュリティ鍵が、コンピューティングデバイスに関連付けられる。
【００１５】
本明細書で説明する別の態様では、コンテンツ配信の認証された制御のためのサーバデバイスについて説明する。サーバデバイスは、複数のクライアントデバイスのうちの第1のコンピューティングデバイスと通信している、ネットワークインターフェースと、プロセッサとを備え得る。プロセッサは、ネットワークインターフェースを介して、第1のコンピューティングデバイスから、コンテンツのアイテムの要求を受信することであって、要求が、コンピューティングデバイスに関連付けられたセキュリティトークンと、セキュリティトークンが関連付けられるドメインのグループの識別子とを備える、こと、識別子からドメインのグループを識別すること、ドメインのグループに関連付けられたセキュリティ鍵を取り出すこと、セキュリティ鍵を使用して、セキュリティトークンの署名を解読すること、セキュリティトークンに関連付けられた認証文字列を識別すること、認証文字列がサーバ認証文字列と一致すると決定すること、および、認証文字列がサーバ認証文字列と一致するとの決定に応答して、セキュリティトークンの特性を識別することであって、セキュリティトークンの特性が、コンピューティングデバイスが悪意のあるエンティティに関連付けられない尤度を示す信頼性スコアを備える、ことを行うように構成され得る。プロセッサは、セキュリティトークンの信頼性スコアをしきい値と比較すること、信頼性スコアがしきい値を超えないと決定すること、および、信頼性スコアがしきい値を超えないとの決定に応答して、コンピューティングデバイスへのコンテンツの送信を防止することを行うようにさらに構成され得る。
【００１６】
いくつかの実装形態では、しきい値がドメインのグループの識別に関連付けられ得、プロセッサが、ドメインのグループの識別に関連付けられたしきい値を識別すること、および信頼性スコアをしきい値と比較することによって、セキュリティトークンの信頼性スコアをしきい値と比較する。
【００１７】
いくつかの実装形態では、信頼性スコアは、ドメインのグループのうちの少なくとも1つのドメインに関連付けられたウェブサイト上のコンピューティングデバイスのブラウジングアクティビティの識別に応答して、ドメインのグループに関連付けられたサーバによって計算され得る。いくつかの実装形態では、ブラウジングアクティビティの識別は、ウェブサイト上のアカウントの作成、ウェブサイトへのログイン回数、ウェブサイト上の対話回数、またはウェブサイトへの訪問回数を備え得る。
【００１８】
いくつかの実装形態では、プロセッサは、ネットワークインターフェースを介して、第2のコンピューティングデバイスから、第2のコンピューティングデバイスからの第2のコンテンツのアイテムの第2の要求を受信することであって、第2の要求が、第2のコンピューティングデバイスに関連付けられた第2のセキュリティトークンと、第2のセキュリティトークンが関連付けられる第2のドメインのグループの第2の識別子とを備える、こと、第2の識別子から第2のドメインのグループを識別すること、第2のドメインのグループに関連付けられた第2のセキュリティ鍵を取り出すこと、第2のセキュリティ鍵を使用して、第2のセキュリティトークンの第2の署名を解読すること、第2のセキュリティトークンに関連付けられた第2の認証文字列を識別すること、第2の認証文字列が第2のサーバ認証文字列と一致すると決定すること、第2の認証文字列が第2のサーバ認証文字列と一致するとの決定に応答して、第2のセキュリティトークンの第2の特性を識別することを行うようにさらに構成され得る。第2のセキュリティトークンの第2の特性は、第2のコンピューティングデバイスが悪意のあるエンティティに関連付けられない第2の尤度を示す第2の信頼性スコアを備え得る。プロセッサは、第2のセキュリティトークンの第2の信頼性スコアを第2のしきい値と比較すること、第2の信頼性スコアが第2のしきい値を超えると決定すること、および、第2の信頼性スコアが第2のしきい値を超えるとの決定に応答して、ネットワークインターフェースを介して、第2のコンピューティングデバイスに、第2のコンピューティングデバイスへのコンテンツを送信することを行うようにさらに構成され得る。
【００１９】
いくつかの実装形態では、第2の認証文字列は、タイムスタンプを備え得る。プロセッサは、タイムスタンプの時間を識別すること、時間を現在の時間と比較すること、時間と現在の時間との間の時間の長さを決定すること、時間の長さを第3のしきい値と比較すること、および、時間の長さが第3のしきい値を下回ると決定することを行うようにさらに構成され得る。プロセッサは、時間の長さが第3のしきい値を下回るとの決定にさらに応答して、第2のコンピューティングデバイスにコンテンツを送信し得る。
【００２０】
いくつかの実装形態では、プロセッサは、ネットワークインターフェースを介して、第2のコンピューティングデバイスから、第2のコンピューティングデバイスからの第2のコンテンツのアイテムの第2の要求を受信することであって、第2の要求が、第2のコンピューティングデバイスに関連付けられた複数の第2のセキュリティトークンを備えることができ、各第2のセキュリティトークンが、第2の識別子に関連付けられた異なるドメインのグループに関連付けられる、ことを行うようにさらに構成され得る。複数の第2のセキュリティトークンのうちの各第2のセキュリティトークンについて、プロセッサは、サーバデバイスによって、第2の識別子から第2のドメインのグループを識別すること、第2のドメインのグループに関連付けられた第2のセキュリティ鍵を取り出すこと、第2のセキュリティ鍵を使用して、第2のセキュリティトークンの第2の署名を解読すること、第2のセキュリティトークンに関連付けられた第2の認証文字列を識別すること、第2の認証文字列が第2のサーバ認証文字列と一致すると決定すること、および、第2の認証文字列が第2のサーバ認証文字列と一致するとの決定に応答して、カウンタのカウントをインクリメントすることを行うように構成され得る。プロセッサは、カウントをしきい値と比較すること、カウントがしきい値を超えると決定すること、および、カウントがしきい値を超えるとの決定に応答して、ネットワークインターフェースを介して、第2のコンピューティングデバイスに、第2のコンピューティングデバイスへのコンテンツを送信することを行うようにさらに構成され得る。
【００２１】
いくつかの実装形態では、要求は、第2のセキュリティ鍵をさらに備え得る。プロセッサは、サーバ認証文字列と一致する認証文字列に応答して、要求から、第2のセキュリティ鍵を取り出すこと、第2のセキュリティ鍵を使用して、セキュリティトークンの第2の署名を解読すること、セキュリティトークンに関連付けられた第2の認証文字列を識別すること、および、第2の認証文字列が第2のサーバ認証文字列と一致すると決定することを行うようにさらに構成され得る。プロセッサは、第2の認証文字列が第2のサーバ認証文字列と一致するとの決定にさらに応答して、信頼性スコアを識別し得る。
【００２２】
いくつかの実装形態では、第2のセキュリティ鍵が、ドメインのグループのサブグループに関連付けられ得、ドメインのグループのサブグループが、ドメインのグループのうちのドメインに関連付けられる複数のコンピューティングデバイスに関連付けられる。いくつかの実装形態では、第2のセキュリティ鍵が、コンピューティングデバイスに関連付けられる。
【００２３】
一態様の随意の特徴が、任意の他の態様と組み合わせられ得る。
【００２４】
1つまたは複数の実装形態の詳細が、添付の図面および以下の説明において記載される。本開示の他の特徴、態様、および利点は、説明、図面、および特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【００２５】
【図１】いくつかの実装形態による、各シーケンスが、コンピューティングデバイスがコンテンツサーバにコンテンツを要求することを含む、2つのシーケンスのブロック図である。
【図２Ａ】いくつかの実装形態による、コンテンツ配信の認証された制御のためのシステムの一実装形態のブロック図である。
【図２Ｂ】いくつかの実装形態による、中央サーバを使用するコンテンツ配信の認証された制御のためのシステムの一実装形態のブロック図である。
【図３】いくつかの実装形態による、コンテンツ配信の認証された制御のための方法を示すフローチャートである。
【図４】いくつかの実装形態による、中央サーバを使用するコンテンツ配信の認証された制御のための方法を示すフローチャートである。
【発明を実施するための形態】
【００２６】
様々な図面における同様の参照番号および名称は、同様の要素を示す。
【００２７】
サードパーティが、コンテンツサーバを通して、クライアントデバイスにコンテンツを提供するとき、サードパーティは、コンテンツを要求するデバイスが、インターネットをブラウズしているユーザに関連付けられるか、サービス拒否攻撃、「クリック詐欺」攻撃(たとえば、正規のコンテンツ要求ではなく、コンテンツプロバイダまたはパブリッシャーへの支払いを増加させるためにのみ意図されたコンテンツ要求など)などのサイバー攻撃、あるいは不正なコンテンツ要求、あるいは違法な、またはさもなければ正規のユーザもしくは要求に関連付けられない同様のコンテンツ要求を実行する、悪意のあるパーティであるかを決定することができないことがある。したがって、悪意のあるパーティは、サードパーティをだまして、不正な要求を使用して、悪意のあるパーティにコンテンツを提供させることがある。不正な要求は、サードパーティに対するサイバー攻撃(たとえば、サービス拒否攻撃、分散型サービス拒否攻撃、リプレイ攻撃、タイミング攻撃など)の一部であり得る。したがって、サードパーティは、デバイスが正規のユーザに関連付けられることを検証することを望むことがある。
【００２８】
クライアントデバイスが正規のユーザに関連付けられることを検証するために、サードパーティに関連付けられたコンテンツサーバは、(たとえば、サーバに関連付けられたウェブサイト上のアカウントを作成し、かつ/またはウェブサイト上のアカウントにログインし、ウェブサイトを訪問することによって、クライアントデバイスが提供する情報を通して、および/あるいはウェブサイトを通して実行された認証された通信を通して)クライアントデバイスについての情報を有し得る他のサーバに依拠し得る。他のサーバは、クライアントデバイスが悪意のあるエンティティに関連付けられないことを証明し得る認証情報を、クライアントデバイスに提供し得る。コンテンツ要求において、クライアントデバイスは、クライアントデバイスが悪意のあるパーティに関連付けられない可能性が高いと、サーバが決定したことを示す認証情報を、コンテンツサーバに提供し得る。コンテンツ要求を送るクライアントデバイスは、認証情報を提供したクライアントデバイスまたはサーバについての識別する情報を提供することなしに、要求を送ることができないことがある。インターネットをブラウズしているユーザを、悪意のあるサードパーティから分離するための方法によって、コンテンツを提供するコンテンツサーバ、および場合によっては要求を傍受する盗聴者が、コンテンツを要求するコンピューティングデバイス、および/またはクライアントデバイスに認証情報を提供するサーバのデータ収集能力を個々に識別することが可能になり得る。
【００２９】
たとえば、最初に図1を参照すると、図示されているものは、いくつかの実装形態では、2つのシーケンス102および114のブロック図であり、各シーケンス102および114が、コンピューティングデバイスがコンテンツサーバにコンテンツ要求を送ることを含む。シーケンス102は、ブラウザアプリケーションなど、アプリケーションのユーザインターフェースをもつクライアントデバイス104を含むシーケンスであり得る。場合によっては、ブラウザアプリケーションは、出力をレンダリングしないことがある(たとえば、ヘッドレスブラウザ)。クライアントデバイス104は、コンテンツサーバ108にコンテンツを要求し得る。悪意のあるエンティティは、コンテンツサーバ上で様々なサイバー攻撃(たとえば、サービス拒否攻撃、分散型サービス拒否攻撃、リプレイ攻撃、タイミング攻撃など)を実行するために、ブラウザアプリケーションを使用し得る。たとえば、サイバー攻撃において、悪意のあるパーティは、ピクチャファイルまたはビデオファイルをロードすることなしに、インターネットをブラウズするために、ブラウザアプリケーションを使用し得る。ブラウザアプリケーションは、コンテンツを表示することなしに、コンテンツサーバ108にコンテンツを連続的に要求し得る。コンテンツサーバ108は、要求が悪意のあるエンティティから発生したか否かを決定することなしに、ブラウザアプリケーションにコンテンツを提供し得る。シーケンス114は、サイバー攻撃において、コンテンツサーバ120にコンテンツを要求するブラウザアプリケーションをもつ、別のクライアントデバイス116のシーケンスであり得る。コンテンツサーバ120は、要求を受信し、要求が悪意のあるエンティティに関連付けられる可能性が高いと決定し、ブラウザアプリケーションへのコンテンツの送信を防止し得る。
【００３０】
シーケンス102で、ブラウザアプリケーションを使用して、ウェブサイトを訪問すると、クライアントデバイス104は、コンテンツサーバ108にコンテンツ要求を送り得る。ブラウザアプリケーションのユーザインターフェースは、ウェブページをロードすると、ディスプレイ106を表示し得る。ブラウザアプリケーションを介して、クライアントデバイス104は、コンテンツサーバ108への不正なコンテンツ要求(たとえば、サイバー攻撃に関連付けられた要求)を送り得る。コンテンツサーバ108は、要求が悪意のあるエンティティに関連付けられたクライアントデバイスにおいて発生したと決定する方法を有していないことがあり、コンテンツ選択器110を介して、悪意のあるエンティティにコンテンツを提供し得る。ディスプレイ112は、コンテンツを受信した後、ブラウザアプリケーションのインターフェースを表示し得る。したがって、コンテンツサーバ108は、悪意のあるエンティティにコンテンツを提供した可能性がある。「不正な」と呼ばれるが、要求は、上記で説明したように、悪意のあるサービス拒否攻撃、誤作動しているデバイスからの偽の要求、正規のユーザに関連付けられない要求、「クリック詐欺」要求、または通常に応答されるべきではない任意の他のタイプの要求など、何らかの違法なものと見なされ得る。
【００３１】
逆に、シーケンス114は、クライアントデバイス116がコンテンツサーバ120に同様の不正なコンテンツ要求を送る、例示的なシーケンスを示す。ただし、シーケンス114では、クライアントデバイス116は、クライアントデバイス116がサーバから受信したトークンまたはコードに基づいて、クライアントデバイス116が生成した、セキュリティトークンまたはコードを含め得る。サーバは、しきい値を上回る尤度までの、クライアントデバイス116が悪意のあるエンティティに関連付けられないとの決定に応答して、セキュリティトークンまたはコードを提供した可能性がある。セキュリティトークンまたはコードは、1つまたは複数のグループ署名など、1つまたは複数の署名を含み得る。1つのそのような署名は、サーバがセキュリティトークンに署名するために使用し得る証明書を、サーバコンソーシアムのうちのサーバに配布する、サーバコンソーシアムに関連付けられ得る。
【００３２】
証明書の署名は、サーバコンソーシアムに関連付けられたセキュリティ鍵(たとえば、公開暗号鍵)を使用してのみ解読され得る。他の署名は、クライアントデバイスがその一部である、サーバコンソーシアムのサブグループに関連付けられ得る。セキュリティトークンに署名し、クライアントデバイスにセキュリティトークンを提供するサーバは、サーバに関連付けられたウェブサイトに関連付けられた各クライアントデバイスを、様々なグループに区分し得る。サーバは、クライアントデバイスが、サブグループに関連付けられたセキュリティ鍵を使用してのみ解読され得る署名を用いて、セキュリティトークンに署名することを可能にする証明書を、各サブグループのクライアントデバイスに提供し得る。コンテンツサーバ120にコンテンツを要求するとき、クライアントデバイス116は、セキュリティトークンを提供したサーバからの署名と、クライアントデバイス116が関連付けられるサブグループに関連付けられた署名と、コンテンツサーバ120がサブグループの署名を検証するために使用することができる、サブグループに関連付けられたセキュリティ鍵とを含む、セキュリティトークンを含め得る。
【００３３】
コンテンツサーバ120は、コンテンツ要求を受信し、要求側クライアントデバイスにコンテンツを提供する、サーバであり得る。コンテンツサーバ120は、クライアントデバイス116から、セキュリティトークンと二重グループ署名とを含むコンテンツ要求を受信し、署名が真正であるか否かを決定し得る。識別情報検証器122を通して、コンテンツサーバ120は、クライアントデバイス116が悪意のあるエンティティに関連付けられるか否かを検証し得る。以下でより詳細に説明するように、識別情報検証器122は、セキュリティトークンの両方のグループ署名を検証するために、セキュリティ鍵を使用し得る。署名検証が成功する場合、識別情報検証器122は、サーバがクライアントデバイス116中に記憶したセキュリティトークンにおいて、サーバが提供した信頼性スコアを識別し得る。識別情報検証器122は、他の情報(たとえば、サーバが関連付けられるサーバコンソーシアムについての情報)に加えて、信頼性スコアを使用して、(たとえば、しきい値まで)クライアントデバイスが悪意のあるエンティティに関連付けられない可能性が高いか否かを決定し得る。識別情報検証器122が、クライアントデバイス116が悪意のあるエンティティに関連付けられる可能性が高いと決定する場合、コンテンツサーバ120のコンテンツ選択器124は、クライアントデバイス116にコンテンツを提供しないか、または低い値に関連付けられるコンテンツを提供し得る。
【００３４】
ディスプレイ118は、クライアントデバイス116がコンテンツサーバ120にコンテンツを要求する前に、ウェブページをロードすると、クライアントデバイス116上で実行しているブラウザアプリケーションの出力を示し得る。ディスプレイ126は、コンテンツサーバ120が、クライアントデバイス116が悪意のあるエンティティに関連付けられない可能性が高いと決定する場合、コンテンツサーバ120の出力を示し得る。図示のように、ディスプレイ126は、コンテンツサーバ120からのコンテンツを含まないことがあり、その理由は、コンテンツサーバ120が、クライアントデバイス116が悪意のあるエンティティに関連付けられる可能性が高いと決定し、要求に応答してコンテンツを提供することを拒否した可能性があるからである。図示しないが、コンテンツサーバ120が、クライアントデバイス116が悪意のあるエンティティに関連付けられない可能性が高いと決定する場合、コンテンツサーバ120は、コンテンツを選択し、クライアントデバイス116に送り得る。
【００３５】
有利には、シーケンス114において表されるように、クライアントデバイス116が、クライアントデバイス116を悪意のあるパーティに関連付けられない可能性が高いクライアントデバイスとして認証するために、コンテンツサーバ120にセキュリティトークンを提供することができるので、コンテンツサーバ120は、コンテンツを提供する先のクライアントデバイスをフィルタ処理し、悪意のあるエンティティへのコンテンツの提供を回避することができる。セキュリティトークンにおける二重グループ署名は、クライアントデバイス116のプライバシー、およびクライアントデバイスにセキュリティトークンを提供するサーバのデータ収集能力の保護を助けることができる。セキュリティトークンは、サーバが、十分な尤度まで、クライアントデバイスが悪意のあるエンティティに関連付けられないと決定したことを示し得る。したがって、コンテンツサーバ120は、ある尤度まで、コンテンツ要求に関連付けられたクライアントデバイスが悪意のあるエンティティに関連付けられないか否かを識別することができる。コンテンツサーバ120は、悪意のあるエンティティに関連付けられる可能性が高いクライアントデバイスへのコンテンツの提供を回避し、悪意のあるエンティティに関連付けられない可能性が高いクライアントデバイスにコンテンツを提供し得る。
【００３６】
さらに、コンテンツを要求するクライアントデバイスのプライバシーの保護に加えて、本明細書で説明するシステムおよび方法は、クライアントデバイスが悪意のあるパーティに関連付けられないことを示すセキュリティトークンを提供する、サーバコンソーシアムのうちのサーバの秘密情報(たとえば、データ収集能力および関係)の保護を提供し得る。セキュリティトークンが、個々のサーバの署名ではなく、サーバコンソーシアムのグループ署名を含むので、コンテンツを提供するコンテンツサーバ、または他の悪意のあるパーティ(たとえば、盗聴者)は、サーバを個々に識別すること、または各サーバに関連付けられるクライアントデバイスの数を識別することができないことがある。したがって、コンテンツサーバも悪意のあるパーティも、セキュリティトークンを提供するサーバ、または要求側クライアントデバイスとサーバとの間の関係を個々に識別することができないことがある。
【００３７】
最後に、本明細書で説明するシステムおよび方法はまた、様々なサーバコンソーシアムのうちのサーバが、サーバに関連付けられた(たとえば、サーバ上でホストされた)ウェブサイトにアクセスする悪意のあるパーティに関連付けられない可能性が高いクライアントデバイスを識別する助けになり得る。サーバは、クライアントデバイスのアクティビティを追跡し、サーバが、クライアントデバイスが悪意のあるパーティに関連付けられない可能性があると決定すると、クライアントデバイスのブラウザ中にセキュリティトークンを記憶することによって、サーバが信用するクライアントデバイスにラベルを付け得る。サーバは、どのクライアントデバイスを信用するかを決定するために、サーバが関連付けられるサーバコンソーシアムのルールおよびプロセスを使用し得る。
【００３８】
たとえば、次に図2Aを参照すると、いくつかの実装形態による、コンテンツ配信の認証された制御のためのシステムの一実装形態が示される。システム200は、ドメインサーバ202および209と、ネットワーク216と、クライアントデバイス218と、コンテンツサーバ232とを含むように示される。クライアントデバイス218は、異なるサードパーティおよびそれらのサーバに関連付けられたウェブページおよびドメインを訪問することによって、インターネットをブラウズすることができる。クライアントデバイス218は、ネットワーク216を介して、インターネットをブラウズすることができる。ネットワーク216は、同期ネットワークまたは非同期ネットワークを含み得る。クライアントデバイス218がインターネットをブラウズするとき、クライアントデバイス218は、クライアントデバイス218が訪問する様々なウェブサイトに関連付けられたサーバ(たとえば、ドメインサーバ202および209)から、セキュリティトークンを受信し得る。セキュリティトークンは、セキュリティトークンを提供したサーバが、クライアントデバイス218が悪意のあるエンティティに関連付けられないことを確信したことを示し得る。クライアントデバイス218は、別のウェブサイトを訪問すると、コンテンツ要求においてコンテンツサーバ232にセキュリティトークンを提供し得る。以下でより詳細に説明するように、コンテンツサーバ232は、セキュリティトークンを識別し、セキュリティトークンが、コンテンツサーバ232がクライアントデバイス218にコンテンツを提供するために十分な情報を提供するか否かを決定し得る。コンテンツサーバ232が、クライアントデバイス218が悪意のあるエンティティに関連付けられないと決定する場合、コンテンツサーバ232は、要求に応答して、クライアントデバイス218にコンテンツを提供し得る。しかしながら、コンテンツサーバ232が、クライアントデバイス218が悪意のあるエンティティに関連付けられる可能性が高いと決定する場合、コンテンツサーバ232は、クライアントデバイス218にコンテンツを提供しないか、または小さい値に関連付けられるコンテンツを提供し得る。
【００３９】
ドメインサーバ202および209は、ある確信度(たとえば、信頼性スコア)まで、クライアントデバイス218が悪意のあるエンティティに関連付けられるか否かを決定すること、および、ドメインサーバ202または209のいずれかが、クライアントデバイス218が悪意のあるエンティティに関連付けられないと十分に確信する場合、クライアントデバイス218に(たとえば、セキュリティトークンを介して)認証を提供することを行うように構成された、1つまたは複数のサーバまたはプロセッサを各々備え得る。本明細書で説明するように、ドメインサーバは、ドメインサーバ、サーバ、またはウェブサイトに関連付けられ、クライアントデバイスのブラウザにセキュリティトークンを提供することができる、任意の他のデバイスとして説明されることがある。ドメインサーバ202および209は、サーバコンソーシアムを形成するサーバのグループに各々関連付けられ得る。サーバコンソーシアムに加入すると、ドメインサーバ202および209の各々は、デジタル証明書、Cserverを受信し得る。ドメインサーバ202および209は、それらのそれぞれのデジタル証明書を使用して、場合によっては、サーバコンソーシアムの公開されたセキュリティ鍵(たとえば、公開暗号鍵)を使用してのみ解読され得るメッセージに署名し得る。サーバコンソーシアムは、様々なクライアントデバイスが、サーバコンソーシアムに関連付けられるサーバによって実行されたグループ署名を検証するために使用することができる、セキュリティ鍵に関連付けられ、セキュリティ鍵を公開し得る。サーバコンソーシアムは、グループマネージャサーバを含み得る。グループマネージャサーバは、他のデバイスが、サーバコンソーシアムのうちのサーバによって署名されたメッセージを解読および検証するために、セキュリティ鍵を取り出すことができるように、セキュリティ鍵を公開し得る。有利には、サーバコンソーシアムのグループ署名を使用することによって、グループ署名を検証するデバイスは、グループ署名を用いてメッセージに署名したサーバコンソーシアムのうちのサーバを個々に識別することができないことがある。
【００４０】
たとえば、ドメインサーバ202は、いくつかの実装形態では、プロセッサ204とメモリ206とを含むように示される。概要では、プロセッサ204を通して、ドメインサーバ202は、クライアントデバイス(たとえば、クライアントデバイス218)を識別すること、クライアントデバイスが悪意のあるエンティティに関連付けられないことを示す信頼性スコアを計算すること、信頼性スコアをしきい値と比較すること、および、しきい値を超える信頼性スコアに応答して、クライアントデバイスにセキュリティトークンを提供することを行うように構成され得る。ドメインサーバ202内の1つまたは複数の構成要素は、ドメインサーバ202内の各構成要素と、クライアントデバイス218およびコンテンツサーバ232などの外部構成要素との間の通信を容易にすることができる。ドメインサーバ202は、(たとえば、サーババンク、ブレードサーバのグループ、またはマルチプロセッサシステムとして)複数の接続されたデバイスを含むことができ、各デバイスは、必要な動作の部分を提供することができる。ドメインサーバ209、プロセッサ210、メモリ212、およびアプリケーション214は、ドメインサーバ202のそれぞれの構成要素204、206、および208と同様であり、同様の動作を実行し得る。
【００４１】
プロセッサ204は、いくつかの実装形態では、ドメインサーバ202内のメモリ206におけるモジュールまたは構成要素上で命令を実行するように構成された、1つまたは複数のプロセッサを備え得る。いくつかの実装形態では、プロセッサ204は、メモリ206内のモジュールを実行し得る。メモリ206は、いくつかの実装形態では、アプリケーション208を含むように示される。アプリケーション208は、ドメインサーバ202に関連付けられるウェブサイト(たとえば、ドメインサーバ202に関連付けられたドメインをもつウェブサイト)を訪問するクライアントデバイスを識別するためのアプリケーション、サーバ、サービス、デーモン、ルーチン、または他の実行可能論理を備え得る。アプリケーション208は、ウェブサイト上のクライアントデバイスのブラウジングアクティビティに基づいて、クライアントデバイスを識別し得る。たとえば、クライアントデバイスは、ウェブサイト上でユーザアカウントを作成し得る。アプリケーション208は、ユーザアカウントのアカウント情報から、クライアントデバイスを識別し得る。アプリケーション208は、クライアントデバイスがユーザアカウントにログインする各事例を識別し得る。いくつかの実装形態では、アプリケーション208は、各クライアントデバイスがウェブサイトを訪問する各事例において、クライアントデバイスを識別し得る。アプリケーション208は、クライアントデバイスがユーザアカウントにログインする、かつ/またはクライアントデバイスがウェブサイトを訪問するたびに、カウンタをインクリメントおよび維持し得る。
【００４２】
アプリケーション208は、クライアントデバイスが悪意のあるエンティティに関連付けられない尤度を示す信頼性スコアを決定し得る。アプリケーション208は、クライアントデバイスのブラウジングアクティビティ、およびドメインサーバ202のサーバコンソーシアムに関連付けられる様々なルールに基づいて、信頼性スコアを決定し得る。サーバコンソーシアムにおける各サーバは、様々なクライアントデバイスのための信頼性スコアを決定するために、同じルールを実装し得る。たとえば、サーバコンソーシアムのルールは、クライアントデバイスがウェブサイト上でユーザアカウントを作成する場合、ウェブサイトに関連付けられたサーバがクライアントデバイスに40%の信頼性スコアを割り当て得ることを示し得る。別のルールは、クライアントデバイスがユーザアカウントにログインするたびに、信頼性スコアが5%だけ増加することを示し得る。したがって、クライアントデバイスがウェブサイト上でアカウントを作成し、ウェブサイトのアカウントに5回ログインする場合、ウェブサイトに関連付けられたサーバは、クライアントデバイスに65%の信頼性スコアを割り当て得る。
【００４３】
別の例では、ユーザアカウントが値に関連付けられ得る。サーバコンソーシアムは、より高い値がより高い信頼性スコアに関連付けられる(たとえば、100,000の値が70%の信頼性スコアに関連付けられ得るが、10の値が5%の信頼性スコアに関連付けられ得る)ことを示すルールを有し得る。サーバコンソーシアムのうちのサーバは、ユーザアカウントのアカウント情報から、ユーザアカウントに関連付けられた値を識別し、ルールを使用して、ユーザアカウントに関連付けられたクライアントデバイスのための信頼性スコアを決定し得る。場合によっては、サーバは、アカウント情報の様々な組合せ(たとえば、値およびアカウント作成、アカウント作成およびログイン回数、値、アカウント作成、ログイン回数、認証された通信の前の事例、対話履歴など)を評価して、クライアントデバイスのための信頼性スコアを決定するために、ルールを使用し得る。異なるサーバコンソーシアムは、異なるルールを有し、異なるアカウント情報またはデータに基づいて、クライアントデバイスのための信頼性スコアを決定し得る。サーバコンソーシアムは、クライアントデバイスのための信頼性スコアを決定するために、任意の数のルールを実装することができる。
【００４４】
サーバコンソーシアムのうちのサーバは、クライアントデバイスのための信頼性スコアを決定するために、任意のタイプの方法を使用し得る。たとえば、サーバは、クライアントデバイスが悪意のあるエンティティに関連付けられない尤度を示す信頼性スコアを決定するための信号として、ユーザアカウント情報および他の情報(たとえば、値、作成時間、ウェブサイトのタイプ、ログイン回数、サイト訪問回数など)を使用して、機械学習モデル(たとえば、ニューラルネットワーク、ランダムフォレスト、サポートベクターマシンなど)を実装し得る。信頼性スコアを決定するために使用される機械学習モデルは、教師ありの方法、教師なしの方法、または半教師ありの方法を使用してトレーニングされ、クライアントデバイスが様々なサーバに関連付けられたウェブサイトを訪問し、ウェブサイト上で様々な対話を実行するとき、モデルがクライアントデバイスのための確率を決定し続けるので、トレーニングを継続するために生のデータを使用し得る。別の例では、サーバは、データベース内でルックアップテーブルを実装し、アカウント情報をルックアップテーブルと比較し得る。ルックアップテーブルは、サーバコンソーシアムの各サーバがアクセスし得るクラウドデータベース内にあり得る。ユーザアカウントが特定のユーザアカウント情報(たとえば、しきい値を超える値、ログイン回数など)に関連付けられる場合、サーバは、ルックアップテーブルから、ユーザアカウント情報に関連付けられた信頼性スコアを決定し得る。
【００４５】
アプリケーション208がクライアントデバイス218のための信頼性スコアを決定すると、アプリケーション208は、信頼性スコアをしきい値と比較し得る。しきい値は、アプリケーション208が十分なデータを収集しており、クライアントデバイス218が悪意のあるエンティティに関連付けられないことに十分な信頼性を有することを示す、アドミニストレータによって設定された、あらかじめ決定されたしきい値であり得る。あらかじめ決定されたしきい値は、ドメインサーバ202のサーバコンソーシアムに関連付けられ得る(たとえば、サーバコンソーシアムの各サーバは、同じしきい値を実装し得る)。いくつかの実装形態では、あらかじめ決定されたしきい値は、サーバコンソーシアムのうちのサーバに固有であり得る。アプリケーション208が、信頼性スコアがあらかじめ決定されたしきい値を超えると決定する場合、アプリケーション208は、クライアントデバイス218の(以下でより詳細に説明する)ブラウザ中にセキュリティトークンを記憶し得る。アプリケーション208が、信頼性スコアがあらかじめ決定されたしきい値を超えないと決定する場合、アプリケーション208は、ブラウザ中にセキュリティトークンを記憶しないことがある。いくつかの実装形態では、アプリケーション208は、クライアントデバイス218に関連付けられた信頼性スコアをしきい値と比較することなしに、クライアントデバイス218のブラウザ中にセキュリティトークンを記憶し得る。
【００４６】
アプリケーション208がクライアントデバイス218のブラウザ中にセキュリティトークンを記憶するとき、アプリケーション208は、セキュリティトークン中に(たとえば、セキュリティトークンのメタデータとして、セキュリティトークンのヘッダにおける識別情報としてなど)、クライアントデバイス218の決定された信頼性スコアを含め得る。いくつかの実装形態では、サーバもまた、セキュリティトークン中に(たとえば、セキュリティトークンのヘッダ中に)サーバが関連付けられるサーバコンソーシアムの識別情報を含め得る。アプリケーション208は、ドメインサーバ202がサーバコンソーシアムへの加入時に受信した証明書を使用して、セキュリティトークンに署名し得る。有利には、セキュリティトークンに署名するために、サーバコンソーシアムに関連付けられた証明書を使用することによって、セキュリティトークンを受信するクライアントデバイスまたはサーバ(たとえば、コンテンツサーバ232)は、セキュリティトークンを提供したサーバを個々に識別することを可能にすることなしに、サーバコンソーシアムに関連付けられたサーバが、サーバによって決定された情報を含むセキュリティトークンを提供したことを検証することができる。したがって、悪意のあるパーティ(たとえば、盗聴者)、またはコンテンツサーバなどの他のデバイスは、セキュリティトークンを受信したクライアントデバイスと、セキュリティトークンを提供したサーバとの間の関係を決定することができないことがある。
【００４７】
いくつかの実装形態では、アプリケーション208は、アプリケーション208のウェブサイトに関連付けられる(たとえば、ウェブサイトでのユーザアカウントを有する、ウェブサイトにログインした、ウェブサイトを訪問したなどの)様々なクライアントデバイスの識別子を、グループ(たとえば、サーバコンソーシアムのサブグループ)にランダムに区分し得る。識別子をグループにランダムに区分するために、アプリケーション208は、クライアントデバイスおよび関連付けられたユーザアカウントが匿名および/または異種のままであり得るように、(たとえば、SHA-2、SHA-256、MD5などを使用して)アカウント識別子をハッシングし得る。有利には、クライアントデバイスの識別子をランダムに区分することによって、サーバは、クライアントデバイスの共通の特性を使用することなしに、識別子を区分し得る。したがって、コンテンツサーバおよび悪意のあるパーティは、識別子のグループの共通の特性に基づいて、クライアントデバイスについてのいかなるプライベート情報も識別または収集できないことがある。
【００４８】
いくつかの実装形態では、アプリケーション208は、各クライアントデバイスの識別データに基づいて、識別子を区分し得る。たとえば、アプリケーション208は、関連付けられたクライアントデバイスがユーザアカウントを作成したときのロケーション、クライアントデバイスがそれらのユーザアカウントを作成したときのユーザアカウントに関連付けられた値、クライアントデバイスがそれらのユーザアカウントを作成したときに訪問した前のウェブサイトなどに基づいて、識別子を区分し得る。アプリケーション208は、識別子が同じグループ内のままであり得るように、識別子をグループに区分するときに固定されたままである、ユーザアカウントに関連付けられたデータを使用し得る。
【００４９】
アプリケーション208は、各グループ内のクライアントデバイスの数がしきい値を超えるように、様々なクライアントデバイスの識別子をグループに区分し得る。しきい値は、クライアントデバイスが存在するグループに基づいて、クライアントデバイスが個々に識別され得ないように、アドミニストレータによって設定された、あらかじめ決定されたしきい値であり得る。たとえば、アプリケーション208は、各グループが105を超える識別子の数を含むように、各グループを区分し得る。あらかじめ決定されたしきい値は、任意の数の識別子に関連付けられ得る。
【００５０】
各グループについて、ドメインサーバ202は、アプリケーション208を介して、グループマネージャとして動作し、アプリケーション208がクライアントデバイスのブラウザ中に記憶するセキュリティトークンを介して、グループに関連付けられたクライアントデバイスにブラウザ証明書を配布し得る。クライアントデバイスは、ブラウザが関連付けられるグループのグループ署名を用いて、ブラウザによって送られたメッセージに署名するために、ブラウザ証明書を使用し得る。アプリケーション208はまた、セキュリティトークンにおいて、クライアントデバイスにサブグループセキュリティ鍵を配布し得る。サブグループセキュリティ鍵は、別のデバイスがクライアントデバイスによって行われたグループ署名を解読するために使用し得るセキュリティ鍵であり得る。アプリケーション208は、Cserverを使用するサーバコンソーシアムグループ署名を用いて、認証文字列(たとえば、アプリケーション208がセキュリティトークンとともに送るメッセージまたはサブグループセキュリティのプレーンテキストなど、文字列のハッシュ)を暗号化することによって、セキュリティトークンに署名し得る。アプリケーション208はまた、セキュリティトークンにおいて、サブグループセキュリティ鍵とブラウザ証明書の両方のための満了までの時間(たとえば、有効期間)を送り得る。したがって、信頼性スコア、およびドメインサーバ202が関連付けられるサーバコンソーシアムの識別情報に加えて、アプリケーション208は、ブラウザ証明書、Cbrowserと、サブグループセキュリティ鍵、Kgroupと、サーバコンソーシアム署名
S(Kgroup,Cserver)
とを、セキュリティトークン中に含め得る。Sは署名関数であり得、Kgroupは、サブグループセキュリティ鍵、および署名中に暗号化される認証文字列であり得、Cserverは、アプリケーション208がクライアントデバイスブラウザ中に記憶するセキュリティトークンにおいてグループ署名を提供するために、サーバが使用する証明書であり得る。アプリケーション208はまた、セキュリティトークンにおいて、セキュリティ鍵とブラウザ証明書の両方の満了までの時間を提供し得る。いくつかの実装形態では、アプリケーション208は、Cserverを用いてそれを暗号化する前に、Kgroup上でハッシュ関数を実行し得る。アプリケーション208は、署名中の任意の文字列(たとえば、署名に付随するメッセージのプレーンテキスト、タイムスタンプ、ナンスなど)を暗号化し得る。
【００５１】
クライアントデバイス218は、デスクトップコンピュータ、ラップトップコンピュータ、ポータブルコンピュータ、タブレットコンピュータ、ウェアラブルコンピュータ、埋込みコンピュータ、スマートテレビ、セットトップボックス、コンソール、モノのインターネット(IoT)デバイスもしくはスマートアプライアンス、または任意の他のタイプおよび形態のコンピューティングデバイスを含む、任意のタイプおよび形態のメディアデバイスまたはコンピューティングデバイスを備え得る。クライアントデバイスは、クライアント、デバイス、クライアントデバイス、ユーザデバイス、コンピューティングデバイス、匿名化されたコンピューティングデバイス、または任意の他のそのような用語で様々に呼ばれることがある。クライアントデバイスは、ローカルエリアネットワーク(LAN)、インターネットなどのワイドエリアネットワーク(WAN)、衛星ネットワーク、ケーブルネットワーク、ブロードバンドネットワーク、光ファイバーネットワーク、マイクロ波ネットワーク、セルラーネットワーク、ワイヤレスネットワーク、またはこれらもしくは他のそのようなネットワークの任意の組合せを含む、任意の適切なネットワークを介して、データを受信し得る。多数の実装形態では、ネットワークは、同じまたは異なるタイプであり得る複数のサブネットワークを含み得、ゲートウェイ、モデム、ファイアウォール、ルータ、スイッチなどを含む、複数の追加のデバイス(図示せず)を含み得る。
【００５２】
クライアントデバイス218は、クライアントデバイス218、またはドメインサーバ202および209のいずれかを識別する情報をコンテンツサーバ232に提供することなしに、コンテンツサーバ232にコンテンツを要求し、コンテンツサーバ232からコンテンツを受信するように構成された、1つまたは複数のクライアントデバイスを備え得る。クライアントデバイス218は、いくつかの実装形態では、プロセッサ220とメモリ222とを含むように示される。クライアントデバイス218内の1つまたは複数の構成要素は、クライアントデバイス218内の各構成要素と、コンテンツサーバ232、ドメインサーバ202および209、ならびに様々な他のコンピューティングデバイス(図示せず)など、外部構成要素との間の通信を容易にすることができる。
【００５３】
プロセッサ220は、いくつかの実装形態では、クライアントデバイス218内のメモリ222におけるモジュールおよび/または構成要素上で命令を実行するように構成された、1つまたは複数のプロセッサを備え得る。メモリ222は、ブラウザ223を含むように示される。ブラウザ223は、ネットワーク216を介してインターネットに接続し、コンテンツサーバ232など、様々なコンテンツサーバにコンテンツを要求するウェブサイトを訪問し得る。ブラウザ223は、いくつかの実装形態では、トークン受信機224と、トークン計算機226と、トークン生成器228とを含むように示される。メモリ222およびブラウザ223は、任意の数の構成要素を含み得る。各構成要素224、226、および228の動作を実行するために、メモリ222におけるモジュール上で命令を実行することによって、プロセッサ220は、コンテンツサーバ232(または、任意の他のコンテンツサーバ)が、クライアントデバイス218によって行われたコンテンツ要求中の情報に基づいて、クライアントデバイス218にセキュリティトークンを提供したクライアントデバイス218またはドメインサーバ(たとえば、ドメインサーバ202またはドメインサーバ209)を個々に識別することを防止することができる。
【００５４】
ブラウザ223は、トークン受信機224を含むように示される。トークン受信機224は、様々なサーバ(たとえば、ドメインサーバ202または209)からセキュリティトークンを受信するためのアプリケーション、サーバ、サービス、デーモン、ルーチン、または他の実行可能論理を備え得る。トークン受信機224は、サーバに関連付けられたウェブサイト上でブラウジングアクティビティを実行すると、サーバからセキュリティトークンを受信し得る。各セキュリティトークンにおいて、トークン受信機224は、セキュリティトークンを受信し、セキュリティトークンから、セキュリティトークンを提供したサーバのサーバコンソーシアムの識別情報と、ブラウザ証明書と、サブグループセキュリティ鍵と、サーバコンソーシアムグループ署名と、ブラウザ証明書およびサブグループ鍵の満了までの時間とを取り出して、データベース(図示せず)中に記憶し得る。トークン受信機224は、満了までの時間が満たされる(たとえば、ブラウザ証明書およびサブグループ鍵が満了する)と、データベースからブラウザ証明書およびサブグループ鍵を除去(たとえば、破棄)し得る。
【００５５】
セキュリティトークンを受信すると、トークン受信機224は、サーバコンソーシアムの識別情報を識別し、サーバコンソーシアムのグループセキュリティ鍵を取り出し得る。トークン受信機224は、メモリ222内のデータベースから、またはサーバコンソーシアムのグループマネージャサーバに関連付けられた、公開されたウェブサイトから、グループセキュリティ鍵を取り出し得る。トークン受信機224は、グループセキュリティ鍵を取り出し、グループ署名
S(Kgroup,Cserver)
を、グループセキュリティ鍵を用いて検証し得る。トークン受信機224は、グループセキュリティ鍵を用いて、グループ署名を解読すること、およびサブグループセキュリティ鍵を解読された署名と比較することによって、グループ署名を検証し得る。トークン受信機224が、サブグループセキュリティ鍵が一致すると決定する場合、トークン受信機224は、グループ署名が真正であると決定し得る。
【００５６】
ウェブサイトを訪問すると、ブラウザ223は、コンテンツサーバ232にコンテンツを要求し得る。クライアントデバイス218が悪意のあるエンティティに関連付けられないことを、コンテンツサーバ232に証明するために、ブラウザ223は、コンテンツ要求中にクライアントセキュリティトークンを含め得る。ブラウザ223は、インターネットのブラウズ中に様々なサーバから複数のセキュリティトークンを受信し得るので、ブラウザ223は、トークン計算機226を介して、セキュリティトークンのどのサブセットをコンテンツ要求中に含めるかを計算する必要があり得る。ブラウザ223は、コンテンツサーバ232が、セキュリティトークンに関連付けられるサーバコンソーシアムに関連付けられ得るクライアントデバイスの交差から、クライアントデバイス218を個々に識別することを可能にし得る、セキュリティトークンを提供することなしに、そうする必要があり得る。たとえば、靴に関連付けられたサーバコンソーシアムに関連付けられた10,000のクライアントデバイスと、バスケットボールに関連付けられたサーバコンソーシアムに関連付けられた5,000のクライアントデバイスと、テニスに関連付けられたサーバコンソーシアムに関連付けられた2,500のクライアントデバイスと、ピアノに関連付けられたサーバコンソーシアムに関連付けられた1,000のクライアントデバイスとがあり得る。5つのクライアントデバイスのみが、靴に関連付けられたサーバコンソーシアム、およびピアノに関連付けられたサーバコンソーシアムから、セキュリティトークンを受信した可能性があるが、2,000のクライアントデバイスは、バスケットボールに関連付けられたサーバコンソーシアム、および靴に関連付けられたサーバコンソーシアムから、セキュリティトークンを受信した可能性がある。コンテンツサーバ232は、靴コンソーシアムおよびピアノコンソーシアムのセキュリティトークンに基づいて、クライアントデバイス218を識別することが可能であり得るが、クライアントデバイス218は、ブラウザ223がコンテンツサーバ232に靴コンソーシアムおよびバスケットボールコンソーシアムのセキュリティトークンを送る場合、匿名のままであり得る。以下で説明するように、トークン計算機226は、クライアントデバイス218がコンテンツ要
求において匿名のままであり得るように、どのセキュリティトークンをコンテンツサーバ232に送るかを決定し得る。
【００５７】
トークン計算機226は、どのセキュリティトークンをコンテンツサーバ232へのコンテンツ要求中に含めるかを計算するためのアプリケーション、サーバ、サービス、デーモン、ルーチン、または他の実行可能論理を備え得る。トークン計算機226は、ブラウザ223中に記憶されたセキュリティトークンに関連付けられる各サーバコンソーシアムの識別情報を識別し得る。いくつかの実装形態では、トークン計算機226は、各サーバコンソーシアムに関連付けられるクライアントデバイスの数、および場合によっては、サーバコンソーシアムの各交差に関連付けられるクライアントデバイスの数を決定することができる、中央サーバ(図示せず)に識別情報を送り得る。各サーバコンソーシアムまたはサーバコンソーシアムの交差に関連付けられるクライアントデバイスの数を決定するために、中央サーバは、クライアントデバイスがサーバコンソーシアムまたはサーバコンソーシアムのグループに関連付けられることを示す、クライアントデバイスからの指示を受信し得る。中央サーバは、クライアントデバイスがサーバコンソーシアムまたはサーバコンソーシアムのグループに関連付けられるという指示を中央サーバに送る各クライアントデバイスについて、各サーバコンソーシアムおよび/またはサーバコンソーシアムの交差に関連付けられたカウンタをインクリメントおよび維持し得る。カウンタのカウントに基づいて、中央サーバは、任意の数のサーバコンソーシアムの間の交差に関連付けられるクライアントデバイスの数、および/または各サーバコンソーシアムに関連付けられるクライアントデバイスの数を決定することができる。中央サーバは、そのためにトークン計算機226が識別情報を送る、各サーバコンソーシアムおよびサーバコンソーシアムの交差のクライアントデバイスの数を決定および送信し得る。
【００５８】
いくつかの実装形態では、各サーバコンソーシアムに関連付けられるクライアントデバイスの数をトークン計算機226に送信するのではなく、中央サーバは、各サーバコンソーシアムまたはサーバコンソーシアムのサブセットに関連付けられたクライアントデバイスの数がしきい値を超えるか否かを示す、ブール変数(たとえば、イエスおよびノーの可能な値、または1および0をもつ変数)の値を送信し得る。しきい値は、アドミニストレータによって設定され得る。トークン計算機226は、ブール変数の値を受信し、ブール変数の値に基づいて十分に識別不可能なままであるために、サーバコンソーシアムまたはサーバコンソーシアムのサブセットに関連付けられた十分なクライアントデバイスがあるか否かを決定し得る。有利には、中央サーバがトークン計算機226にブール変数のみを送る場合、クライアントデバイス218は、サーバコンソーシアムまたはサーバコンソーシアムのサブセットに関連付けられるデバイスの数を決定することができないことがある。
【００５９】
トークン計算機226が、各サーバコンソーシアムおよびサーバコンソーシアムの交差に関連付けられるクライアントデバイスの数を受信すると、トークン計算機226は、しきい値を超えるクライアントデバイスの数に関連付けられるサーバコンソーシアムの交差に関連付けられるセキュリティトークンのサブセットを識別し得る。しきい値は、クライアントデバイス218がコンテンツ要求中で匿名のままであり得るように、アドミニストレータによって設定された、あらかじめ決定されたしきい値であり得る。トークン計算機226は、セキュリティトークンの各サブセットのカウントをしきい値と比較して、どのセキュリティトークンのサブセットがしきい値を超えるために十分なクライアントデバイスに関連付けられるかを決定し得る。トークン計算機226は、しきい値を超えるために十分なクライアントデバイスに関連付けられる、コンテンツ要求とともにコンテンツサーバ232に送るためのセキュリティトークンのサブセットを選択し得る。いくつかの実装形態では、トークン計算機226は、最高数のクライアントデバイスに関連付けられるセキュリティトークンのサブセットを選択し得る。
【００６０】
トークン計算機226が、コンテンツサーバ232に送るためのセキュリティトークンまたはセキュリティトークンのサブセットを選択すると、トークン生成器228は、クライアントセキュリティトークンを生成し、コンテンツサーバ232にクライアントセキュリティトークンを送信し得る。トークン生成器228は、クライアントセキュリティトークンを生成し、コンテンツ要求とともにコンテンツサーバ232にクライアントセキュリティトークンを送信するための、アプリケーション、サーバ、サービス、デーモン、ルーチン、または他の実行可能論理を備え得る。トークン生成器228は、トークン計算機226がコンテンツサーバ232に送るために選択したセキュリティトークンを識別し、選択されたセキュリティトークンの各々のためのクライアントセキュリティトークン、または選択されたセキュリティトークンのデータの全部または一部を備えるクライアントセキュリティトークンを生成し得る。
【００６１】
選択されたセキュリティトークンの各々について、トークン生成器228は、次の式を用いて、ブラウザの署名を含むクライアントセキュリティトークンを生成し得る。
S(ナンス||タイムスタンプ,Cbrowser)
Sは署名関数を示し得る。||は、別個の文字列の値を1つの文字列に連結すること、または複数の他のメッセージを含むメッセージを作成するための方法を示す。トークン生成器228は、常にインクリメント(たとえば、時間、クライアントデバイス218とコンテンツサーバ232との間で送られたメッセージなどに対応してインクリメント)しているカウンタの使用を通して、ナンスを決定し得る。トークン生成器228が署名において使用したナンスを、コンテンツサーバ232が知ることになるように、ナンスは、クライアントデバイス218とコンテンツサーバ232との間で同期され得る。いくつかの実装形態では、クライアントデバイス218は、コンテンツサーバ232がナンスを識別し、セキュリティトークンを解読することができるように、コンテンツ要求とともに、コンテンツサーバ232にナンスの全部または一部を送り得る。タイムスタンプは、トークン生成器228がコンテンツサーバ232にクライアントセキュリティトークンを送信する時間であり得る。Cbrowserは、クライアントデバイス218が関連付けられ、ブラウザ223がサーバからそれぞれのセキュリティトークンを受信したときに受信した、サブグループに関連付けられた証明書であり得る。トークン生成器228は、Cbrowserを用いて、連結されたナンスおよびタイムスタンプに署名し得る。いくつかの実装形態では、トークン生成器228は、Cbrowserを用いて署名する前に、連結されたナンスおよびタイムスタンプにおいてハッシュ関数(たとえば、SHA-256)を実行し得る。
【００６２】
さらに、トークン生成器228は、サブグループセキュリティ鍵、Kgroupと、トークン受信機224がコンテンツ要求において受信した署名
S(Kgroup,Cserver)
とを含め得る。上記で説明したように、Kgroupは、署名
S(ナンス||タイムスタンプ,Cbrowser)
を解読および検証することができるセキュリティ鍵であり得、Cserverは、選択されたセキュリティトークンをブラウザ223中に記憶したサーバが、サーバコンソーシアムのグループ署名を用いて、選択されたセキュリティトークンに署名するために使用した証明書であり得る。トークン生成器228はまた、クライアントセキュリティトークン中(たとえば、クライアントセキュリティトークンのヘッダ中)に、選択されたセキュリティトークンに関連付けられるサーバコンソーシアムの識別情報と、選択されたセキュリティトークンとともに含められた信頼性スコアとを含め得る。トークン生成器228は、クライアントセキュリティトークンを生成し、コンテンツ要求とともに、コンテンツサーバ232にクライアントセキュリティトークンを送信し得る。
【００６３】
コンテンツサーバ232は、コンテンツ要求を受信すること、ある確信度まで、コンテンツ要求が悪意のあるエンティティに関連付けられないクライアントデバイスによって送信されたか否かを決定すること、およびコンテンツサーバ232が、クライアントデバイス218が悪意のあるエンティティに関連付けられない可能性が高いと決定する場合、クライアントデバイス218にコンテンツを送信することを行うように構成された、1つまたは複数のサーバまたはプロセッサを備え得る。たとえば、コンテンツサーバ232は、いくつかの実装形態では、プロセッサ234とメモリ236とを含むように示される。概要では、プロセッサ234を通して、コンテンツサーバ232は、クライアントデバイス218から、クライアントセキュリティトークンまたはクライアントセキュリティトークンのサブセットを受信すること、各クライアントセキュリティトークンに関連付けられたサーバコンソーシアムの識別情報を識別すること、サーバコンソーシアムに関連付けられたセキュリティ鍵を取り出すこと、セキュリティ鍵を用いて、クライアントセキュリティトークンを解読すること、クライアントセキュリティトークンがサーバコンソーシアムに関連付けられることを検証すること、クライアントセキュリティトークンの信頼性スコアがしきい値を超えるか否かを決定すること、および、コンテンツサーバ232が、クライアントセキュリティトークンがサーバコンソーシアムに関連付けられており、信頼性スコアがしきい値を超えると決定する場合、クライアントデバイス218にコンテンツを送信することを行うように構成され得る。
【００６４】
コンテンツサーバ232内の1つまたは複数の構成要素は、コンテンツサーバ232内の各構成要素と、クライアントデバイス218ならびにドメインサーバ202および209など、外部構成要素との間の通信を容易にすることができる。コンテンツサーバ232は、(たとえば、サーババンク、ブレードサーバのグループ、またはマルチプロセッサシステムとして)複数の接続されたデバイスを含むことができ、各デバイスは、必要な動作の部分を提供することができる。
【００６５】
プロセッサ234は、いくつかの実装形態では、コンテンツサーバ232内のメモリ236におけるモジュールまたは構成要素上で命令を実行するように構成された、1つまたは複数のプロセッサを備え得る。いくつかの実装形態では、プロセッサ234は、メモリ236内のモジュールを実行し得る。メモリ236は、いくつかの実装形態では、トークン受信機238と、検証器240と、アプリケーション242と、送信機244と、特性データベース246とを含むように示される。構成要素238〜246の各々は、コンテンツ要求を送信したクライアントデバイスが悪意のあるパーティに関連付けられない可能性が高いと決定し、クライアントデバイスにコンテンツを送信するために、協調し得る。構成要素238〜246は、クライアントデバイス218がそのコンテンツ要求中に含めたクライアントセキュリティトークンのコンテンツに基づいて、決定を行い得る。
【００６６】
トークン受信機238は、クライアントデバイス218が計算したクライアントセキュリティトークンまたはクライアントセキュリティトークンのサブセットを含む、クライアントデバイス218からのコンテンツ要求を受信することができる、アプリケーション、サーバ、サービス、デーモン、ルーチン、または他の実行可能論理を備え得る。要求はまた、セキュリティトークンまたはセキュリティトークンのサブセットを提供した、サーバコンソーシアムの識別情報、またはサーバコンソーシアムの識別情報のグループを含み得る。トークン受信機238は、要求を受信し、クライアントセキュリティトークンと、クライアントセキュリティトークンに関連付けられたサーバコンソーシアムの識別情報とを識別し得る。上記で説明したように、クライアントセキュリティトークンは、セキュリティトークンに署名したサーバのサーバコンソーシアムに関連付けられたグループ署名と、サーバコンソーシアムのサブグループに関連付けられた署名と、サーバコンソーシアムのサブグループの署名を解読するためのセキュリティ鍵とを各々備え得る(場合によっては、サブグループのためのセキュリティ鍵は、セキュリティトークンに署名したサーバに関連付けられたウェブサイト上で公的に利用可能であり得る)。いくつかの実装形態では、クライアントセキュリティトークンは、クライアントセキュリティトークンが関連付けられるサーバコンソーシアムの識別情報を含み得る。
【００６７】
検証器240は、クライアントデバイス218からのコンテンツ要求の署名を検証することができる、アプリケーション、サーバ、サービス、デーモン、ルーチン、または他の実行可能論理を備え得る。検証器240は、要求から(たとえば、要求のヘッダから、またはクライアントセキュリティトークンから)サーバコンソーシアムの識別情報を識別し、サーバコンソーシアムに関連付けられたセキュリティ鍵(たとえば、公開暗号鍵)を取り出し得る。検証器240は、セキュリティ鍵を、特性データベース246中に記憶されている場合は特性データベース246から、またはサーバコンソーシアムのうちのサーバのウェブサイト(たとえば、サーバコンソーシアムのグループマネージャサーバのウェブサイト)から取り出し得る。検証器240は、取り出されたセキュリティ鍵を使用して、クライアントセキュリティトークン(たとえば、クライアントセキュリティトークンの署名)を解読し得る。
【００６８】
デジタル署名を確認するために、検証器240は、サーバコンソーシアムに関連付けられた署名を解読し、解読された署名の文字列を認証文字列として識別し得る。認証文字列は、要求のプレーンテキストのハッシュ値、ナンスおよび/またはタイムスタンプのハッシュ値などであり得る。認証文字列はまた、サブグループセキュリティ鍵のハッシュ値であり得る。認証文字列がサブグループセキュリティ鍵のハッシュ値である場合、検証器240は、コンテンツ要求とともに送られたサブグループセキュリティ鍵を識別し、予想される認証文字列を取得するために、サブグループセキュリティ鍵においてハッシュ関数を実行し得る。コンテンツサーバ232およびクライアントデバイス218は、両方が一致する認証文字列を取得するために、同じデータ上で同じハッシュ関数を実行するように同期され得る。いくつかの実装形態では、検証器240は、ナンスおよび/またはタイムスタンプを要求のコンテンツに連結して、連結された文字列を取得し、連結された文字列をハッシングして、予想される認証文字列を取得し得る。検証器240は、予想される認証文字列を、検証器240が解読した認証文字列と比較して、それらが一致するか否かを決定し得る。認証文字列が一致する場合、検証器240は、識別情報に関連付けられたサーバコンソーシアムに関連付けられたサーバが、署名を提供したと決定し得、送信機244は、クライアントデバイス218にコンテンツを送信し得る。サーバコンソーシアムの署名がグループ署名であり得るので、検証器240は、サーバコンソーシアムのうちのどのサーバがクライアントセキュリティトークンの署名を提供したかを識別することができないことがある。認証文字列が一致しない場合、検証器240は、署名が、識別情報のサーバコンソーシアムに関連付けられたサーバによって提供されなかったと決定し得る。したがって、送信機244は、一致が発見されなかったことを示す信号をクライアントデバイス218に送信し、クライアントデバイス218へのコンテンツの送信を防止し得る。
【００６９】
いくつかの実装形態では、検証器240がサーバコンソーシアムの署名を認証すると、検証器240は、クライアントデバイス218がコンテンツ要求において提供したサブグループセキュリティ鍵を使用して、第2の署名を解読することによって、クライアントセキュリティトークンの第2の署名を検証し得る。検証器240は、第2の署名を解読して、第2の認証文字列を取得し得る。第2の認証文字列は、タイムスタンプと連結されたナンス、ならびに/または一緒に連結された要求のナンス、タイムスタンプ、およびプレーンテキストのハッシュ値であり得る。コンテンツサーバ232は、コンテンツサーバ232が予想される認証文字列を取得するために、同じタイムスタンプおよびナンス値を使用し得るように、クライアントデバイス218と同期され得る。タイムスタンプは、クライアントデバイス218が要求を送った時間、またはコンテンツサーバ232が要求を受信した時間に関連付けられ得る。コンテンツサーバ232はまた(たとえば、検証器240を介して)、予想される認証文字列を取得するために、タイムスタンプおよびナンス値の連結上でクライアントデバイス218と同じハッシュ関数を実行することも知り得る。検証器240は、ハッシングされたタイムスタンプおよびナンスを含む、予想される認証文字列を、サーバコンソーシアムのサブグループに関連付けられた署名の解読された認証文字列と比較し得る。検証器240が、一致があると決定する場合、検証器240は、どのメンバーが署名を提供したかを識別することを可能にすることなしに、署名がサーバコンソーシアムのサブグループのメンバーによって署名されたと決定し得る。しかしながら、検証器240が、一致がないと決定する場合、検証器240は、要求が真正でないと決定し得、送信機244は、一致がなかったことを示すために、クライアントデバイス218にメッセージを送信し、クライアントデバイス218へのコンテンツのいかなる送信も防止し得る。
【００７０】
いくつかの実装形態では、クライアントデバイス218は、コンテンツ要求とともに、コンテンツサーバ232にタイムスタンプを渡し得る。したがって、クライアントデバイス218およびコンテンツサーバ232は、それらの内部クロックを同期させる必要がないことがある。さらに、クライアントデバイス218は、ナンスをランダムに生成し得る。そのような事例では、クライアントデバイス218は、コンテンツサーバ232が第2のグループ署名を検証するために使用するためのナンス値を知り得るように、コンテンツ要求とともにコンテンツサーバ232にナンスを送信し得る。
【００７１】
いくつかの実装形態では、リプレイ攻撃などのサイバー攻撃を止めるために、検証器240は、認証文字列のタイムスタンプの時間を識別し、その時間を現在の時間(たとえば、コンテンツサーバ232がコンテンツ要求を受信した時間)と比較し得る。検証器240は、時間の長さを計算するために、現在の時間からタイムスタンプの時間を減算し得る。検証器240は、時間の長さを、アドミニストレータによって設定されるような、あらかじめ決定されたしきい値と比較して、時間の長さがしきい値を超えるか否かを決定し得る。時間の長さがしきい値を超える場合、検証器240は、コンテンツ要求が古くなっていると決定し、コンテンツの送信を防止し得る。しかしながら、時間の長さがしきい値を超えず、署名が別段に有効である(たとえば、認証文字列が一致する)場合、検証器240は、署名が有効であると決定し得る。
【００７２】
いくつかの実装形態では、クライアントデバイス218は、クライアントデバイス218がサーバコンソーシアムのサブグループのグループ署名を使用して提供した署名の代わりに、またはそれに加えて、クライアントデバイス218の秘密暗号鍵を使用して、クライアントセキュリティトークンに署名を提供し得る。そのような実装形態では、コンテンツサーバ232は、クライアントデバイス218の公開暗号鍵を使用して、署名を解読し、上記で説明した技法と同様の認証技法を使用して、解読を認証(たとえば、署名の認証文字列が予想される認証文字列と一致するか否かを決定)し得る。
【００７３】
いくつかの実装形態では、検証器240が、サーバコンソーシアム、サーバコンソーシアムのサブグループ、および/またはクライアントデバイスに関連付けられた署名が真正である(たとえば、予想される認証文字列に対して確認された)と決定すると、アプリケーション242は、しきい値を超えるために十分高い尤度まで、クライアントデバイス218が悪意のあるエンティティに関連付けられないと決定するために、クライアントセキュリティトークンを含むコンテンツ要求中に十分な情報があるか否かを決定し得る。そうするために、アプリケーション242は、クライアントセキュリティトークンの特性を識別および解析し得る。特性は、クライアントデバイス218にセキュリティトークンを提供したドメインサーバが、クライアントデバイス218が悪意のあるエンティティに関連付けられない可能性が高いと決定するために使用した、データのタイプについての情報を提供する、クライアントセキュリティトークンに関連付けられた識別情報および/またはメタデータであり得る。クライアントセキュリティトークンの特性は、限定はしないが、ドメインサーバが決定した、クライアントデバイス218が悪意のあるエンティティに関連付けられない尤度を示す信頼性スコア、ドメインサーバが信頼性スコアを決定するために使用したデータ、ドメインサーバが信頼性スコアを決定するためにデータに適用したルール、ドメインサーバが関連付けられるサーバコンソーシアムの識別情報などを含み得る。
【００７４】
アプリケーション242は、クライアントセキュリティトークンの特性を識別し、送信機244がコンテンツを提供するために、要求およびクライアントデバイス218を認証するために十分な情報があるか否かを決定し得る。十分な情報があるか否かを決定するために、アプリケーション242は、クライアントセキュリティトークンに関連付けられた信頼性スコアを、アドミニストレータによって設定された、あらかじめ決定されたしきい値と比較し得る。信頼性スコアがあらかじめ決定されたしきい値を超えるか、または満足する場合、アプリケーション242は、クライアントデバイス218が悪意のあるエンティティに関連付けられないと決定するために十分高い尤度があると決定し得、送信機244は、クライアントデバイス218にコンテンツを送信し得る。しかしながら、信頼性スコアがあらかじめ決定されたしきい値を越えない場合、アプリケーション242は、クライアントデバイスが悪意のあるエンティティに関連付けられないと決定するために十分高い尤度(または、十分な情報)がないと決定し得、アプリケーション242または送信機244は、クライアントデバイス218へのコンテンツの送信を防止し得る。有利には、コンテンツサーバ232のアドミニストレータによって設定されるしきい値を実装することによって、ドメインサーバが、コンテンツサーバ232を満足させるために十分な信頼性なしに、クライアントデバイスにセキュリティトークンを提供する場合、コンテンツサーバ232は、悪意のあるパーティからの要求をさらにフィルタ処理して除去することができる。コンテンツサーバ232は、クライアントデバイスが悪意のあるエンティティに関連付けられるか否かを決定するために、ドメインサーバのみに依拠する必要がなくてもよく、代わりに、それらのフィルタ処理を実行して、サイバー攻撃からコンテンツサーバ232自体を保護することができる。
【００７５】
いくつかの実装形態では、同じあらかじめ決定されたしきい値を、各クライアントセキュリティトークンの信頼性スコアに適用する代わりに、アプリケーション242は、クライアントセキュリティトークンの信頼性スコアを、クライアントセキュリティトークンが関連付けられるサーバコンソーシアムに個々に関連付けられるしきい値に適用し得る。各クライアントセキュリティトークンに関連付けられたしきい値は、コンテンツサーバ232がクライアントセキュリティトークンに関連付けられたサーバコンソーシアムとともに有する信用のレベルに関連付けられ得る。たとえば、コンテンツサーバ232は、靴に関連付けられたサーバコンソーシアムへの高い信用のレベルを有し得る。したがって、サーバコンソーシアムは、低い信頼性スコアしきい値(たとえば、60%)に関連付けられ得る。別の例では、コンテンツサーバ232は、楽器に関連付けられたサーバコンソーシアムへの低い信用のレベルを有し得る。したがって、楽器に関連付けられたサーバコンソーシアムは、高い信頼性スコアしきい値(たとえば、90%)に関連付けられ得る。信用のレベルは、サーバコンソーシアムが様々なクライアントデバイスのための信頼性スコアを決定するために使用する基準に対応し得る。様々なサーバコンソーシアムのための信用、基準、およびしきい値は、以下で説明するように、コンテンツサーバ232の特性データベース246中に記憶され得る。アプリケーション242は、クライアントデバイス218がコンテンツを要求するとき、クライアントデバイス218にコンテンツを提供するか否かを決定するために、クライアントセキュリティトークンの信頼性スコアを、信頼性スコアを決定したサーバのサーバコンソーシアムに関連付けられたしきい値と比較し得る。
【００７６】
いくつかの実装形態では、アプリケーション242は、コンテンツサーバ232がコンテンツ要求において受信するクライアントセキュリティトークンの特性に基づいて、クライアントデバイス218が悪意のあるエンティティに関連付けられない尤度を示すそれ自体の信頼性スコアを決定することによって、クライアントセキュリティトークンの信頼性スコアを識別し得る。アプリケーション242は、任意の方法を使用して、信頼性スコアを決定し得る。たとえば、アプリケーション242は、クライアントデバイス218が悪意のあるエンティティに関連付けられない尤度を示すバイナリ出力を決定するために、機械学習モデル(たとえば、ニューラルネットワーク、ランダムフォレスト、サポートベクターマシンなど)を実装し得る。アプリケーション242は、アプリケーション242がクライアントセキュリティトークンの特性として受信した機械学習モデルに、信号を提供し得る。信号の例には、限定はしないが、クライアントセキュリティトークンの信頼性スコア、セキュリティトークンを提供したサーバに関連付けられたサーバコンソーシアム、サーバがセキュリティトークンを提供するために使用したデータ、サーバがセキュリティトークンを提供するためにデータに適用したルールなどが含まれる。機械学習モデルは、教師ありの方法、教師なしの方法、および/または半教師ありの方法を使用してトレーニングされ、生のデータを使用してトレーニングするので、より正確になり続け得る。機械学習モデルは、クライアントデバイス218が悪意のあるエンティティに関連付けられない尤度を示す割合を提供し得る。アプリケーション242は、割合をしきい値と比較し得る。割合がしきい値を超える場合、送信機244は、クライアントデバイス218にコンテンツを送信し得る。しかしながら、割合がしきい値を超えない場合、送信機244は、クライアントデバイス218へのコンテンツの送信を防止し得るか、または、クライアントデバイス218に、低い値に関連付けられたコンテンツを提供し得る。
【００７７】
いくつかの実装形態では、アプリケーション242は、コンテンツサーバ232がクライアントデバイス218からのコンテンツ要求において受信するクライアントセキュリティトークンの特性において、一連のルールを実装することによって、クライアントデバイス218にコンテンツを提供するか否かを決定し得る。たとえば、ルールは、特定のサーバコンソーシアムに関連付けられるクライアントセキュリティトークンを含む要求が、その要求がしきい値を超えるために十分なクライアントセキュリティトークンを含む場合、コンテンツサーバ232がクライアントデバイス218にコンテンツを送信するために十分な情報のみを含み得ることを示し得る。アプリケーション242は、コンテンツサーバ232がコンテンツ要求とともに受信する各クライアントセキュリティトークンのためのカウンタをインクリメントおよび維持し、カウンタのカウントがしきい値を超える場合、クライアントデバイス218にコンテンツを送信し得る。カウントがしきい値を超えない場合、アプリケーション242は、クライアントデバイス218へのコンテンツの送信を防止し得るか、または送信機244は、低い値に関連付けられたコンテンツを送信し得る。ルールは、送信機244がコンテンツを送信するために、クライアントセキュリティトークンが、異なるサーバコンソーシアム、同じサーバコンソーシアム、または同じおよび異なるサーバコンソーシアムの組合せに関連付けられなければならないことを示し得る。
【００７８】
特性データベース246は、サーバコンソーシアムに関連付けられたセキュリティ鍵(たとえば、公開暗号鍵)、様々なサーバコンソーシアムについて、クライアントデバイス218が悪意のあるパーティに関連付けられないとコンテンツサーバ232が決定するために満たされる必要がある基準など、様々なサーバコンソーシアムについての情報を含む動的なデータベースであり得る。特性データベース246は、グラフデータベース、MySQL、Oracle、Microsoft SQL、PostgreSql、DB2、ドキュメントストア、サーチエンジン、キー値ストアなどであり得る。特性データベース246は、任意の量のデータを保持するように構成され得、任意の数の構成要素から構成され得る。特性データベース246中に記憶されたセキュリティ鍵は、トークン受信機238が、ウェブサイトに関連付けられたサーバコンソーシアムの識別情報を含むクライアントセキュリティトークンを受信するとき、ウェブサイトに関連付けられたサーバから、トークン受信機238によって取り出された可能性がある。特性データベース246中に様々なサーバコンソーシアムのためのセキュリティ鍵を記憶することによって、コンテンツサーバ232が、サーバコンソーシアムのうちのサーバおよび/またはウェブサイトから、それぞれのセキュリティ鍵を取り出す必要がないことがあるので、コンテンツサーバ232は、サーバコンソーシアムの署名をより迅速に検証し得る。代わりに、コンテンツサーバ232は、特性データベース246からセキュリティ鍵を取り出すことができる。
【００７９】
上記で説明したように、クライアントデバイス218が悪意のあるパーティに関連付けられない可能性が高いか否かを、コンテンツサーバ232が決定するために満たされる必要がある基準は、各サーバコンソーシアムに固有である要件を含み得る。コンテンツサーバ232は、各サーバコンソーシアムへの異なる信用のレベルを有し得る。したがって、各サーバコンソーシアムについて基準が満足されるための要件は、信用のレベルに基づいて異なり得る。各サーバコンソーシアムに関連付けられた要件、信用のレベル、およびしきい値は、特性データベース246中に各々記憶され得る。有利には、クライアントデバイス要求を認証するための異なる基準を記憶および実装することによって、コンテンツサーバ232は、どのクライアントデバイスが悪意のあるエンティティに関連付けられるかを決定するための強力なシステムなしに、サーバコンソーシアムに関連付けられたクライアントセキュリティトークンを含むコンテンツのクライアントデバイス要求の認証を回避し得る。コンテンツサーバ232は、クライアントセキュリティトークンをフィルタ処理して、コンテンツサーバ232が信用するセキュリティコンソーシアムに関連付けられたクライアントセキュリティトークンのみを受け入れ得る。
【００８０】
送信機244は、コンテンツ要求と、クライアントデバイスが悪意のあるパーティに関連付けられない十分な尤度があるとの決定とに応答して、クライアントデバイス(たとえば、クライアントデバイス218)にコンテンツを送信するための、アプリケーション、サーバ、サービス、デーモン、ルーチン、または他の実行可能論理を備え得る。アプリケーション242が、要求側クライアントデバイスが悪意のあるエンティティに関連付けられない十分な尤度がないと決定する場合(たとえば、信頼性スコアがしきい値を超えない場合)、送信機244は、要求側クライアントデバイスにコンテンツを送信しないことがある(たとえば、送信機244は、クライアントデバイスへのコンテンツの送信を防止し得る)。アプリケーション242が、要求側クライアントデバイスが悪意のあるエンティティに関連付けられない十分な尤度があると決定する場合、送信機244は、コンテンツを識別し、要求側クライアントデバイスにコンテンツを送り得る。
【００８１】
いくつかの実装形態では、様々なコンテンツが異なる値に関連付けられ得る。アプリケーション242が、十分な尤度まで、要求側クライアントデバイスが悪意のあるエンティティに関連付けられないと決定する場合、送信機244は、高い値に関連付けられるコンテンツを送信し得る。しかしながら、アプリケーション242が、要求側クライアントデバイスが悪意のあるエンティティに関連付けられない十分な尤度がないと決定する場合、送信機244は、低い値に関連付けられたコンテンツを選択し、要求側クライアントデバイスに送信し得る。
【００８２】
図2Bは、いくつかの実装形態による、中央サーバを使用するコンテンツ配信の認証された制御のためのシステム250の一実装形態のブロック図である。システム250は、いくつかの実装形態では、ドメインサーバ252と、ネットワーク260と、クライアントデバイス262と、中央サーバ274と、コンテンツサーバ282とを含むように示される。ドメインサーバ252は、プロセッサ254と、メモリ256と、アプリケーション258とを含むように示される。ドメインサーバ252およびそのそれぞれの構成要素は、図2Aを参照しながら図示および説明したドメインサーバ202と同様であり得る。ネットワーク260は、ネットワーク216と同様であり得る。システム250では、クライアントデバイス262は、上記で説明した方法と同様の方法を使用して計算された、ドメインサーバ252からのセキュリティトークンを受信し得る。クライアントデバイス262は、中央サーバ274にセキュリティトークンを送り得る。以下で説明するように、中央サーバ274は、セキュリティトークンが有効であることを検証し、クライアントデバイス262に中央サーバセキュリティトークンを送り得る。クライアントデバイス262は、コンテンツサーバ282にコンテンツを要求し、要求中に中央サーバセキュリティトークンを含め得る。コンテンツサーバ282は、中央サーバセキュリティトークンを認証し、要求側クライアントデバイスにコンテンツを提供し得る。
【００８３】
クライアントデバイス262は、図2Aを参照しながら図示および説明したクライアントデバイス218と同様のクライアントデバイスであり得る。クライアントデバイス262は、プロセッサ264とメモリ266とを含むように示される。メモリ266は、ブラウザ268を含むように示される。ブラウザ268は、インターネットの様々なウェブページをブラウズし、コンテンツサーバ(たとえば、コンテンツサーバ282)にコンテンツ要求を送信し得る。ブラウザ268は、トークン受信機270と、送信機272とを含むように示される。ドメインサーバ252が、信頼性スコアしきい値まで、クライアントデバイス262が悪意のあるパーティに関連付けられない可能性が高いと決定すると、トークン受信機270および送信機272を通して、ブラウザ268は、ドメインサーバ252からセキュリティトークンを受信し得る。ドメインサーバ252は、次の署名を用いて、ドメインサーバ252の秘密鍵をもつセキュリティトークンに署名し、
S(ドメインサーバのドメイン||ナンス,Cserver)
クライアントデバイス262にセキュリティトークンを送り得る。署名において、Sは署名関数であり得、ドメインサーバのドメインは、ドメインサーバ252、またはさもなければ署名を提供したサーバに関連付けられたドメイン名であり得、ナンスは、上記で説明したように、クライアントデバイス262とドメインサーバ252との間で知られている値であり得、Cserverは、ドメインサーバ252が署名を提供するために使用した証明書であり得る。いくつかの実装形態では、署名は、上記で説明したように、サーバコンソーシアムのグループ署名である。コンテンツ要求とともにコンテンツサーバ282に、受信されたセキュリティトークンを送信する代わりに、送信機272は、クライアントデバイス262がコンテンツサーバ282にコンテンツを要求する前に認証されるために、中央サーバ274に、いくつかの実装形態では、ドメインサーバ252のドメイン名と、署名のナンスとを含む、セキュリティトークンを送信し得る。
【００８４】
中央サーバ274は、クライアントデバイス262がドメインサーバ252から受信するセキュリティトークンを認証するように構成された、1つまたは複数のサーバまたはプロセッサを備え得る。中央サーバ274は、プロセッサ276とメモリ278とを含むように示される。メモリは、アプリケーション280を含むように示される。アプリケーション280を通して、プロセッサ276は、クライアントデバイス262が中央サーバ274に提供するセキュリティトークンを認証し、中央サーバセキュリティトークンを生成し、クライアントデバイス262に中央サーバセキュリティトークンを送信し得る。
【００８５】
アプリケーション280は、セキュリティトークンを認証し、クライアントデバイス262に中央サーバセキュリティトークンを提供するための、アプリケーション、サーバ、サービス、デーモン、ルーチン、または他の実行可能論理を備え得る。アプリケーション280は、クライアントデバイス262から、ドメインサーバ252によって発行されたセキュリティトークンを受信し、セキュリティトークンがドメインサーバ252によって署名されたか否かを検証し得る。アプリケーション280は、(たとえば、中央サーバ274のデータベース(図示せず)を介して、またはドメインサーバ252から)ドメインサーバ252の公開鍵を取り出し、公開鍵を使用して、セキュリティトークンの署名を解読し、解読されたハッシュを取得し得る。アプリケーション280は、解読されたハッシュを、予想される解読されたハッシュ(たとえば、ドメインサーバ252に関連付けられたドメインとタイムスタンプとの連結された文字列)と比較し得る。ハッシュが一致する場合、アプリケーション280は、セキュリティトークンが真正であり、ドメインサーバ252によって署名されたと決定し得る。したがって、アプリケーション280は、次の署名を含む、中央サーバの秘密鍵を使用する、中央サーバセキュリティトークンを生成し得る。
S(中央サーバドメイン||タイムスタンプ||ナンス,Kcentral server)
Sは署名関数であり得、||は、2つの文字列関数の間の連結であり得、中央サーバドメインは、中央サーバ274に関連付けられたドメイン名であり得、タイムスタンプは、上記で説明したようなタイムスタンプであり得、ナンスは、上記で説明したようなナンスであり得、Kcentral serverは、中央サーバ274が署名を提供するために使用した中央サーバ274の秘密鍵であり得る。アプリケーション280は、中央サーバセキュリティトークンを生成し、クライアントデバイス262に中央サーバセキュリティトークンを送信し得る。
【００８６】
いくつかの実装形態では、クライアントデバイス262が中央サーバ274に送るセキュリティトークンはまた、ドメインサーバ252が関連付けられるサーバコンソーシアムの識別情報と、クライアントデバイス262が悪意のあるエンティティに関連付けられない可能性が高いと、ドメインサーバ252が決定するために使用した信頼性スコアとを含み得る。アプリケーション280は、サーバコンソーシアムおよび信頼性スコアを識別し、図2Aを参照しながら図示および説明した、コンテンツサーバ232によって実行される技法と同様の技法を実行して、セキュリティトークンを認証し、中央サーバセキュリティトークンを提供するか否かを決定し得る。有利には、中央サーバ274を使用して、セキュリティトークンを認証することによって、ドメインサーバ、クライアントデバイス、およびコンテンツサーバは、セキュリティトークンを認証するために、信用できるサーバに各々依拠し得る。ドメインサーバもクライアントデバイスも、コンテンツサーバに識別する情報を提供しなくてよい。代わりに、クライアントデバイスは、信用できるデバイス(たとえば、図2Bにおける中央サーバ274)から、コンテンツサーバ282に認証トークンを提供し得る。
【００８７】
トークン受信機270を介して、クライアントデバイス262は、中央サーバ274から中央サーバセキュリティトークンを受信し、コンテンツサーバ282へのコンテンツ要求において中央サーバセキュリティトークンを使用し得る。クライアントデバイス262の送信機272は、中央サーバセキュリティトークンをコンテンツ要求に関連付け(たとえば、アペンドし)、コンテンツサーバ282に要求を送り得る。
【００８８】
コンテンツサーバ282は、クライアントデバイス262が中央サーバ274から受信する中央サーバセキュリティトークンを認証するように構成された、1つまたは複数のサーバまたはプロセッサを備え得る。たとえば、コンテンツサーバ282は、いくつかの実装形態では、プロセッサ284とメモリ286とを含むように示される。プロセッサ284は、中央サーバセキュリティトークンを受信すること、中央サーバセキュリティトークンを認証すること、および認証の成功に基づいて、クライアントデバイス262にコンテンツを提供することを行うために、メモリ中の命令を実行し得る。これらのプロセスを実行するために、メモリ286は、いくつかの実装形態では、トークン受信機288と、検証器290と、送信機292とを備え得る。
【００８９】
トークン受信機288は、クライアントデバイス262から中央サーバセキュリティトークンを含むコンテンツ要求を受信するためのアプリケーション、サーバ、サービス、デーモン、ルーチン、または他の実行可能論理を備え得る。トークン受信機288は、要求を受信し、クライアントデバイス262が悪意のあるエンティティに関連付けられない十分な尤度があるか否かを、検証器290が決定するために、要求中の中央サーバ274の署名を識別し得る。
【００９０】
検証器290は、中央サーバセキュリティトークンを認証し、クライアントデバイス262が悪意のあるエンティティに関連付けられない可能性が高いことを検証するための、アプリケーション、サーバ、サービス、デーモン、ルーチン、または他の実行可能論理を備え得る。検証器290は、中央サーバ274の署名を識別し、コンテンツサーバ282のデータベース、または中央サーバ274のウェブサイトから、中央サーバ274に関連付けられたセキュリティ鍵(たとえば、公開暗号鍵)を取り出し得る。検証器290はまた、中央サーバドメイン、中央サーバ274が中央サーバトークンに署名した時間に対応するタイムスタンプ、およびナンスを識別し得る。検証器290は、中央サーバ274が中央サーバセキュリティトークンに署名するときに使用したハッシング技法と同様のハッシング技法を用いて、これらの値の各々の連結のハッシュを作成し得る。検証器290は、中央サーバ274のセキュリティ鍵を使用して、署名を解読して、ハッシュを取得し、そのハッシュを、検証器290がタイムスタンプ、ナンス、および中央サーバのドメイン名を用いて生成したハッシュと比較し得る。検証器290が、一致があると決定する場合、検証器290は、署名が有効であると決定し得る。したがって、クライアントデバイス262が悪意のあるパーティに関連付けられない高い尤度があることを示すために、セキュリティの情報が十分であるか否かを、中央サーバ274が決定する実装形態では、送信機292は、要求に応答して、クライアントデバイス262にコンテンツを送信し得る。送信機292は、図2Aを参照しながら図示および説明した送信機244と同様であり得る。しかしながら、検証器290が、一致がないと決定する場合、検証器290は、署名が無効であると決定し得、検証器290は、要求に対するクライアントデバイス262へのコンテンツの送信を防止し得る。
【００９１】
いくつかの実装形態では、コンテンツサーバ282は、クライアントデバイス262が認証のために中央サーバ274に送るセキュリティトークンを認証するために、中央サーバ274を信用しないことがある。そのような実装形態では、コンテンツサーバ282は、ドメインサーバ(たとえば、ドメインサーバ252)がクライアントデバイス262にセキュリティトークンを提供するために使用した情報を受信し、検証器290を通して、ドメインサーバが信用できるか否か、および/または、コンテンツサーバ282がクライアントデバイス262を、しきい値を超えるために、悪意のあるエンティティに関連付けられない十分に高い尤度を有するとして認証するために、十分な情報があるか否かを決定し得る。検証器290は、図2Aを参照しながら図示および説明した、アプリケーション242と同様の要求を認証するためのプロセスを実行し得る。
【００９２】
次に図3を参照すると、いくつかの実装形態による、コンテンツ配信の認証された制御のための方法300のフローチャートが示される。方法300は、任意の数の動作を含み得る。動作は、任意の順序で実行され得る。方法300は、サーバデバイス(たとえば、コンテンツサーバ232)によって実行され得る。動作302で、サーバデバイスは、セキュリティトークンを含む、コンテンツのアイテムの要求を受信することができる。サーバデバイスは、クライアントデバイスがウェブサイトにアクセスするとき、クライアントデバイスからコンテンツのアイテムの要求を受信することができる。コンテンツのアイテムの要求は、セキュリティトークンと、セキュリティトークンに関連付けられるサーバコンソーシアムの識別情報とを含み得る。クライアントデバイスは、サーバコンソーシアムのうちのサーバが、信頼性スコアしきい値まで、クライアントデバイスが悪意のあるエンティティに関連付けられないと決定したとき、セキュリティトークンを受信した可能性がある。コンテンツのアイテムの要求は、同じサーバコンソーシアムに関連付けられたサーバ、および/または異なるサーバコンソーシアムに関連付けられたサーバからの複数のセキュリティトークンを含み得る。
【００９３】
動作304で、サーバデバイスは、セキュリティトークンのドメインのグループを識別することができる。ドメインのグループは、サーバコンソーシアムのうちのサーバに関連付けられるドメインを含み得る。各ドメインは、異なるサーバに関連付けられ得る。ドメインのグループは、共通の特性またはトピックに関連付けられ得る。たとえば、各ドメインは、サッカーに関連付けられ得る。サーバデバイスは、コンテンツ要求中に含まれた識別情報から、ドメインのグループを識別し得る。
【００９４】
動作306で、サーバデバイスは、ドメインのグループのセキュリティ鍵を取り出すことができる。ドメインのグループは、グループ署名に関連付けられ得る。ドメインのグループに関連付けられたサーバは、別のコンピューティングデバイスが、ドメインのグループに関連付けられるどのサーバがメッセージに署名したかを、署名から識別することを可能にすることなしに、グループ署名を用いてメッセージ(たとえば、セキュリティトークン)に署名し得る。グループ署名を認証するために、サーバデバイスは、ドメインのグループに関連付けられたグループマネージャサーバに関連付けられたウェブサイトから、ドメインのグループのセキュリティ鍵(たとえば、公開暗号鍵)を取り出し得る。
【００９５】
動作308で、サーバデバイスは、取り出されたセキュリティ鍵を使用して、セキュリティトークンを解読し得る。サーバデバイスは、セキュリティトークンに関連付けられる(たとえば、アペンドされる)署名に、取り出されたセキュリティ鍵を適用することによって、セキュリティトークンを解読し得る。動作310で、サーバデバイスは、認証文字列を識別し得る。認証文字列は、解読が成功したこと、およびしたがって、識別情報に関連付けられたサーバコンソーシアムに関連付けられたサーバが、グループ署名を用いてセキュリティトークンに署名したことを検証するために、サーバデバイスが知られている値(たとえば、予想される認証文字列)と比較することができる、解読された署名の文字列であり得る。サーバデバイスは、サーバデバイスがサーバコンソーシアムのセキュリティ鍵を使用して解読した署名から、認証文字列を識別し得る。認証文字列は、セキュリティトークンのメッセージプレーンテキスト、サーバコンソーシアムのサブグループに関連付けられた第2のセキュリティ鍵、ナンス、タイムスタンプなどであり得るか、またはそれを含み得る。いくつかの実装形態では、認証文字列は、上記の例のいずれかのハッシュ値であり得る。
【００９６】
動作312で、サーバデバイスは、解読された認証文字列が予想される認証文字列と一致するか否かを決定し得る。サーバデバイスは、解読された認証文字列を予想される認証文字列と比較し得る。予想される認証文字列は、サーバデバイスが要求において受信するセキュリティトークンにおいて提供され得るか、または、サーバデバイスが決定し、サーバデバイスのデータベース中に記憶した文字列であり得る。たとえば、予想される認証文字列は、セキュリティトークンに関連付けられた第2の署名に関連付けられた第2のセキュリティ鍵であり得る。コンテンツ要求は、サーバデバイスが解読された第2のセキュリティ鍵を要求の第2のセキュリティ鍵と比較し得るように、第2のセキュリティ鍵を含み得る。いくつかの実装形態では、第2の認証文字列は、文字列のハッシュ値(たとえば、第2のセキュリティ鍵のハッシュ値)であり得る。サーバデバイスは、文字列のハッシュ値を生成するために使用されたハッシュ関数を知り、ハッシュ値が一致することを検証するために、予想される認証文字列において同様のハッシュ関数を実行し得る。第2のセキュリティ鍵のハッシュ値が一致しない場合、動作314で、サーバデバイスは、要求側クライアントデバイスに、一致が発見されなかったことを示す信号を送信し得る。いくつかの実装形態では、サーバデバイスは、認証文字列が一致しないと決定すると、方法300を停止し得る。
【００９７】
しかしながら、サーバデバイスが、第2のセキュリティ鍵のハッシュ値が一致すると決定する場合、動作316で、サーバデバイスは、第2のセキュリティ鍵を取り出し得る。第2のセキュリティ鍵は、サーバコンソーシアムのサブグループに関連付けられ得る。サーバコンソーシアムのサブグループは、セキュリティトークンを提供したサーバコンソーシアムのうちのサーバが、クライアントデバイスの特性(たとえば、クライアントデバイスのアカウントに関連付けられた値、クライアントデバイスがアカウントを作成するときのクライアントデバイスの物理的ロケーション、クライアントデバイスがアカウントを作成した時刻など)に基づいて、要求側クライアントデバイスを分類したグループであり得る。サーバは、サブグループのグループマネージャとして動作し、要求側クライアントデバイスが、第2のセキュリティ鍵を使用して解読され得る署名を用いて、要求のセキュリティトークンに署名するために使用することができる証明書を、要求側クライアントデバイスに提供し得る。クライアントデバイスは、コンテンツ要求中に第2のセキュリティ鍵を含め得る。サーバデバイスは、コンテンツ要求から、サーバに関連付けられたウェブサイトから、またはサーバデバイスのデータベースから、第2のセキュリティ鍵を取り出し得る。
【００９８】
動作318で、サーバデバイスは、取り出された第2のセキュリティ鍵を使用して、セキュリティトークンを解読し得る。サーバデバイスは、セキュリティトークンに関連付けられる別の署名に、取り出された第2のセキュリティ鍵を適用することによって、セキュリティトークンを解読し得る。動作320で、サーバデバイスは、第2の認証文字列を識別し得る。サーバデバイスは、第2のセキュリティ鍵を使用して、サーバデバイスによって解読された署名から、第2の認証文字列を識別し得る。第2の認証文字列は、動作310の認証文字列と同様である文字列であり得る(たとえば、メッセージプレーンテキスト、別のセキュリティ鍵、ナンス値、タイムスタンプなどを含み得る)。第2の認証文字列は、任意の文字列を含み得る。たとえば、第2の認証文字列は、クライアントデバイスがコンテンツ要求を送った時間を示すタイムスタンプと連結されたナンス値を含み得る。
【００９９】
動作322で、サーバデバイスは、解読された第2の認証文字列が第2の予想される認証文字列と一致するか否かを決定し得る。サーバデバイスは、解読された第2の認証文字列を第2の予想される認証文字列と比較し得る。第2の予想される認証文字列は、サーバデバイスが要求において受信するセキュリティトークンにおいて提供され得るか、またはサーバデバイスがサーバデバイスのデータベース中に記憶した文字列であり得る。たとえば、第2の予想される認証文字列は、タイムスタンプと連結されたナンス値を含み得る。いくつかの実装形態では、第2の認証文字列は、文字列のハッシュ値であり得る。サーバデバイスは、ハッシュ値を生成するために使用されたハッシュ関数を知り、ハッシュ値が一致することを検証するために、同じタイプのデータを備える文字列上で同様のハッシュ関数を実行し得る。サーバデバイスが、第2の認証文字列が一致しないと決定する場合、動作324で、サーバデバイスは、要求側クライアントデバイスに、一致が発見されなかったことを示す信号を送信し得る。いくつかの実装形態では、サーバデバイスは、第2の認証文字列が一致しないと決定すると、方法300を停止し得る。
【０１００】
しかしながら、サーバデバイスが、第2の認証文字列が一致すると決定する場合、動作326で、サーバデバイスは、セキュリティトークンの信頼性スコアを識別し得る。信頼性スコアは、クライアントデバイスにセキュリティトークンを提供したサーバによって決定されるような、クライアントデバイスが悪意のあるパーティに関連付けられない尤度を示し得る。サーバは、サーバが関連付けられるサーバコンソーシアムに関連付けられた基準およびルールに基づいて、信頼性スコアを決定し得る(たとえば、サーバコンソーシアムの各サーバは、同じ基準およびルールを使用して、クライアントデバイスのための信頼性スコアを決定する)。様々なサーバコンソーシアムは、異なるルールおよび基準に基づいて、信頼性スコアを決定し得る。サーバデバイスは、セキュリティトークンおよび/またはコンテンツ要求のプレーンテキストから、信頼性スコアを識別し得る。
【０１０１】
動作328で、サーバデバイスは、信頼性スコアがしきい値を超えるか否かを決定し得る。しきい値は、セキュリティトークンが関連付けられるサーバコンソーシアムに固有であり得る。各サーバコンソーシアムは、サーバデバイスがサーバコンソーシアムにおいて有する信用のレベルに基づいて、異なるしきい値に関連付けられ得る。たとえば、サーバデバイスは、信頼性スコアが、サーバデバイスがそれに対して低い信用のレベルを有するサーバコンソーシアムに関連付けられるセキュリティトークンの場合はより高くなること、および、サーバデバイスがそれに対して高い信用のレベルを有するサーバコンソーシアムに関連付けられるセキュリティトークンの場合はより低くなることを必要とし得る。サーバデバイスは、要求のセキュリティトークンに関連付けられたしきい値を識別し、セキュリティトークンの信頼性スコアを、サーバコンソーシアムに関連付けられたしきい値と比較し得る。
【０１０２】
サーバデバイスが、信頼性スコアがしきい値を超えないと決定する場合、動作330で、サーバデバイスは、クライアントデバイスに、信頼性スコアがしきい値を超えないことを示す信号を送信し得る。いくつかの実装形態では、サーバデバイスは、代わりに、要求側クライアントデバイスに、低い値に関連付けられるコンテンツのアイテムを送信し得る。しかしながら、サーバデバイスが、信頼性スコアがしきい値を超えると決定する場合、動作332で、サーバデバイスは、要求側クライアントデバイスにコンテンツを送信し得る。
【０１０３】
次に図4を参照すると、いくつかの実装形態による、認証のために中央サーバを使用するコンテンツ配信の認証された制御のための方法400のフローチャートが示される。方法400は、任意の数の動作を含み得る。動作は、任意の順序で実行され得る。方法400は、サーバデバイス(たとえば、コンテンツサーバ232)によって実行され得る。動作402で、サーバデバイスは、セキュリティトークンを含む、コンテンツのアイテムの要求を受信することができる。動作402は、図3を参照しながら図示および説明した動作302と同様であり得る。動作402のセキュリティトークンは、しかしながら、サーバコンソーシアムではなく、中央サーバに関連付けられた署名に関連付けられ得る。動作404で、サーバデバイスは、中央サーバのセキュリティ鍵(たとえば、公開暗号鍵)を取り出し得る。中央サーバは、ドメインに関連付けられ得る。サーバデバイスは、ドメインから、またはさもなければ中央サーバから、セキュリティ鍵を取り出し得る。いくつかの実装形態では、サーバデバイスは、サーバデバイスのデータベース中に記憶されたセキュリティ鍵を有し得る。サーバデバイスは、データベースからセキュリティ鍵を取り出し得る。
【０１０４】
動作406で、サーバデバイスは、セキュリティ鍵を使用して、セキュリティトークンを解読し得る。サーバデバイスは、セキュリティトークンの署名を識別し、署名にセキュリティ鍵を適用することによって、セキュリティトークンを解読し得る。動作408で、サーバデバイスは、認証文字列を識別し得る。認証文字列は、解読された署名の文字列であり得る。認証文字列は、要求のメッセージのプレーンテキスト、中央サーバのドメインと、タイムスタンプと、ナンスとを含む連結された値、または任意の他の文字列であり得る。いくつかの実装形態では、認証文字列は、ハッシュ関数を使用して、コンテンツのアイテムの要求を送ったクライアントデバイスによって生成された、これらの例のハッシュ値であり得る。
【０１０５】
動作410で、サーバデバイスは、認証文字列を予想される認証文字列と比較し、一致があるか否かを決定し得る。予想される認証文字列は、サーバデバイスにおいて記憶されている対応する認証文字列であり得る。たとえば、サーバデバイスは、コンテンツ要求を送ったクライアントデバイスと同期され、両方が同じナンス値を知り、タイムスタンプを決定するために同様のクロックを有するようになり得る。さらに、サーバデバイスは、クライアントデバイスが署名を提供するときにどのハッシュ関数を使用したか、および、クライアントデバイスが、中央サーバドメインと、メッセージが送られたときのタイムスタンプと、ナンス値との連結を備える文字列をハッシングしたことを知り得る。サーバデバイスは、中央サーバのセキュリティ鍵を使用して、署名を解読し、クライアントデバイスが使用した同じハッシュ関数を用いて、同じ構成要素を備える予想される認証文字列をハッシングし得る。ハッシュ値が一致しない場合、動作412で、サーバデバイスは、クライアントデバイスに、一致が発見されなかったことを示す信号を送信するか、または、クライアントデバイスに低い値のコンテンツを送信し得る。
【０１０６】
しかしながら、サーバデバイスが、認証文字列が一致すると決定する場合、動作414で、サーバデバイスは、セキュリティトークンの信頼性スコアを識別し得る。上記で説明したように、信頼性スコアは、クライアントデバイスに別のセキュリティトークンを提供したサーバコンソーシアムのうちのサーバによって決定された、クライアントデバイスが悪意のあるパーティに関連付けられない尤度を示し得る。コンテンツ要求は、(たとえば、コンテンツ要求のプレーンテキストにおいて)サーバコンソーシアムのうちのサーバが提供した信頼性スコアを含み得る。サーバデバイスは、メッセージから信頼性スコアを識別し得る。
【０１０７】
いくつかの実装形態では、信頼性スコアを識別するのではなく、サーバデバイスは、中央サーバの署名の認証の成功に基づいて、要求側クライアントデバイスにコンテンツを提供し得る。中央サーバは、サーバデバイスが信用し、ブラウザ中にセキュリティトークンを記憶する前に、サーバコンソーシアムのうちのサーバによって提供されたセキュリティトークンが十分な情報を提供したか否かを決定するために、それ自体の基準を実装する、サーバであり得る。したがって、サーバデバイスは、中央サーバを信用し、要求側クライアントデバイスが悪意のあるエンティティに関連付けられる尤度を決定する際に余分な処理を回避し得る。
【０１０８】
しかしながら、他の実装形態では、動作416で、サーバデバイスは、信頼性スコアがしきい値を超えるか否かを決定し得る。しきい値は、セキュリティトークンが関連付けられるサーバコンソーシアムに固有であり得る。動作416は、図3を参照しながら図示および説明した動作328と同様であり得る。サーバデバイスが、信頼性スコアがしきい値を超えないと決定する場合、動作418で、サーバデバイスは、要求側クライアントデバイスに、信頼性スコアがしきい値を超えなかったことを示す信号を送信するか、または、要求側クライアントデバイスに低い値のコンテンツを提供し得る。しかしながら、サーバデバイスが、信頼性スコアがしきい値を超えると決定する場合、動作420で、サーバデバイスは、要求側クライアントデバイスにコンテンツを送信し得る。
【０１０９】
有利には、コンテンツ要求を認証するために、グループ署名階層を実装することによって、サーバデバイスは、悪意のあるエンティティのクライアントデバイスにおいて発生したコンテンツ要求をフィルタ処理して除去することが可能であり得る。グループ署名階層によって、クライアントデバイスは、コンテンツサーバがコンテンツ要求を認証するために依拠するセキュリティトークンを提供したクライアントデバイスまたはサーバを、コンテンツサーバが個々に識別またはフィンガープリントするために十分な情報を提供することなしに、コンテンツサーバにコンテンツを要求することが可能になり得る。クライアントデバイスにセキュリティトークンを提供するサーバは、サーバに固有である署名ではなく、セキュリティトークンにおいて、多数のサーバを含むサーバコンソーシアムに関連付けられたグループ署名を提供することによって、コンテンツサーバに対して匿名のままであり得る。クライアントデバイスは、クライアントデバイスがその一部であるサブグループに関連付けられる第2のグループ署名を提供することによって、匿名のままであり得る。サブグループは、コンテンツサーバがサブグループの署名からクライアントデバイスを識別することができないことがあるように、十分に大きいものであり得る。したがって、本明細書で説明するシステムおよび方法を使用して、クライアントデバイスからコンテンツ要求を受信するコンテンツサーバは、悪意のあるエンティティに関連付けられないクライアントデバイスにコンテンツを提供しながら、悪意のあるエンティティ(たとえば、コンテンツを要求するためにヘッドレスブラウザを使用するエンティティ)へのコンテンツの提供を回避することが可能であり得る。そうしている間、コンテンツサーバは、要求を行ったクライアントデバイス、またはクライアントデバイスにセキュリティトークンを提供したサーバを識別することができないことがある。
【０１１０】
本明細書で説明するシステムが、ユーザまたはユーザデバイス上にインストールされたアプリケーションについての個人情報を収集するか、または個人情報を使用する状況では、ユーザは、プログラムまたは機能がユーザ情報(たとえば、ユーザのソーシャルネットワーク、ソーシャルアクション、もしくはアクティビティ、職業、ユーザの選好、またはユーザの現在のロケーションについての情報)を収集するか否かを制御するための機会を提供され得る。追加として、あるデータは、個人情報が除去されるように、記憶または使用される前に1つまたは複数の方法で扱われ得る。たとえば、ユーザのアイデンティティは、ユーザについての個人を特定可能な情報を決定することができないように扱われ得るか、またはユーザの地理的ロケーションが一般化され得、その場合、ユーザの特定のロケーションを決定することができないように、(市、郵便番号、または州レベルまでなどの)ロケーション情報が取得される。したがって、ユーザは、ユーザについての情報がどのように収集され、コンテンツサーバによって使用されるかに対する制御を有し得る。
【０１１１】
本明細書で説明する主題および動作の実装形態は、本明細書で開示する構造およびそれらの構造的等価物を含む、デジタル電子回路において、またはコンピュータソフトウェア、ファームウェア、もしくはハードウェアにおいて、またはそれらのうちの1つもしくは複数の組合せにおいて実装され得る。本明細書で説明する主題の実装形態は、1つまたは複数のコンピュータプログラム、すなわち、データ処理装置による実行のために、またはデータ処理装置の動作を制御するために、1つまたは複数のコンピュータ記憶媒体上に符号化されたコンピュータプログラム命令の1つまたは複数のモジュールとして実装され得る。代替的にまたは追加として、プログラム命令は、データ処理装置による実行のために、好適な受信機装置への送信のために情報を符号化するために生成される、人工的に生成された伝搬信号、たとえば、機械により生成された電気信号、光信号、または電磁信号上で符号化され得る。コンピュータ記憶媒体は、コンピュータ可読記憶デバイス、コンピュータ可読記憶基板、ランダムもしくは順次アクセスメモリアレイもしくはデバイス、またはそれらのうちの1つもしくは複数の組合せであり得るか、またはその中に含まれ得る。その上、コンピュータ記憶媒体は伝搬信号ではないが、コンピュータ記憶媒体は、人工的に生成された伝搬信号において符号化されたコンピュータプログラム命令の送信元または宛先になり得る。コンピュータ記憶媒体はまた、1つまたは複数の別個の構成要素または媒体(たとえば、複数のCD、ディスク、または他の記憶デバイス)でもあり得るか、またはその中に含まれ得る。したがって、コンピュータ記憶媒体は有形であり得る。
【０１１２】
本明細書で説明する動作は、1つまたは複数のコンピュータ可読記憶デバイス上で記憶されているか、または他の送信元から受信されたデータにおいて、データ処理装置によって実行される動作として実装され得る。
【０１１３】
「クライアント」または「サーバ」という用語は、プログラマブルプロセッサ、コンピュータ、システムオンチップ、または前述のうちの複数、もしくは前述の組合せなど、データを処理するためのすべての種類の装置、デバイス、およびマシンを含む。装置は、専用論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ)、またはASIC(特定用途向け集積回路)を含み得る。装置はまた、ハードウェアに加えて、問題のコンピュータプログラムのための実行環境を作成するコード、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、クロスプラットフォームランタイム環境、仮想マシン、またはそれらのうちの1つもしくは複数の組合せを構成するコードを含み得る。装置および実行環境は、ウェブサービス、分散コンピューティングおよびグリッドコンピューティングインフラストラクチャなど、様々な異なるコンピューティングモデルインフラストラクチャを実現することができる。
【０１１４】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとしても知られる)は、コンパイラ型言語またはインタープリタ型言語、宣言型言語または手続き型言語を含む、任意の形式のプログラミング言語において記述され得、スタンドアロンプログラムとして、またはモジュール、構成要素、サブルーチン、オブジェクト、もしくはコンピューティング環境において使用するのに好適な他のユニットとしてを含む、任意の形態において展開され得る。コンピュータプログラムは、ファイルシステム内のファイルに対応し得るが、その必要はない。プログラムは、他のプログラムもしくはデータを保持するファイルの一部分において(たとえば、マークアップ言語ドキュメント中に記憶された1つまたは複数のスクリプト)、問題のプログラム専用の単一のファイルにおいて、または複数の協調されたファイル(たとえば、1つまたは複数のモジュール、サブプログラム、またはコードの部分を記憶するファイル)において記憶され得る。コンピュータプログラムは、1つのコンピュータ上、または、1つのサイトに位置するか、もしくは複数のサイトにわたって分散され、通信ネットワークによって相互接続される、複数のコンピュータ上で実行されるように展開され得る。
【０１１５】
本明細書で説明するプロセスおよび論理フローは、入力データにおいて動作すること、および出力を生成することによって、アクションを実行するために、1つまたは複数のプログラマブルプロセッサが1つまたは複数のコンピュータプログラムを実行することによって実行され得る。プロセスおよび論理フローはまた、専用論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ)もしくはASIC(特定用途向け集積回路)によって実行され得、装置もまた専用論理回路として実装され得る。
【０１１６】
コンピュータプログラムの実行に好適なプロセッサには、汎用マイクロプロセッサと専用マイクロプロセッサの両方、および任意の種類のデジタルコンピュータの任意の1つまたは複数のプロセッサが含まれる。一般に、プロセッサは、読取り専用メモリもしくはランダムアクセスメモリ、または両方から、命令およびデータを受信することになる。コンピュータの本質的な要素は、命令に従ってアクションを実行するためのプロセッサ、ならびに、命令およびデータを記憶するための1つまたは複数のメモリデバイスである。一般に、コンピュータはまた、データを記憶するための1つまたは複数の大容量記憶デバイス、たとえば、磁気ディスク、光磁気ディスク、または光ディスクを含むか、または、それからデータを受信するため、もしくはそれにデータを転送するため、もしくはその両方のために動作可能に結合されることになる。ただし、コンピュータは、そのようなデバイスを有する必要はない。その上、コンピュータは、別のデバイス、たとえば、ほんのいくつかの例を挙げれば、モバイル電話、携帯情報端末(PDA)、モバイルオーディオもしくはビデオプレーヤ、ゲームコンソール、全地球測位システム(GPS)受信機、またはポータブル記憶デバイス(たとえば、ユニバーサルシリアルバス(USB)フラッシュドライブ)中に埋め込まれ得る。コンピュータプログラム命令およびデータを記憶するのに好適なデバイスには、半導体メモリデバイス、たとえば、EPROM、EEPROM、およびフラッシュメモリデバイス、磁気ディスク、たとえば、内蔵ハードディスクまたはリムーバブルディスク、光磁気ディスク、ならびにCD-ROMおよびDVD-ROMディスクを含む、すべての形態の不揮発性メモリ、媒体、およびメモリデバイスが含まれる。プロセッサおよびメモリは、専用論理回路によって補助されるか、または専用論理回路に組み込まれ得る。
【０１１７】
ユーザとの対話を提供するために、本明細書で説明する主題の実装形態は、ディスプレイデバイス、たとえば、CRT(陰極線管)、LCD(液晶ディスプレイ)、OLED(有機発光ダイオード)、TFT(薄膜トランジスタ)、プラズマ、他のフレキシブルな構成、または情報をユーザに表示するための任意の他のモニタ、およびそれによってユーザがコンピュータに入力を与えることができるキーボード、ポインティングデバイス、たとえば、マウス、トラックボールなど、またはタッチスクリーン、タッチパッドなどを有する、コンピュータ上で実装され得る。他の種類のデバイスが、ユーザとの対話を提供するために同様に使用され得、ユーザに与えられるフィードバックは、任意の形態の感覚フィードバック、たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックであり得、ユーザからの入力は、音響入力、音声入力、または触覚入力を含む、任意の形態で受信され得る。加えて、コンピュータは、ユーザによって使用されるデバイスにドキュメントを送ること、およびそのデバイスからドキュメントを受信することによって、ユーザのコンピューティングデバイス上のウェブブラウザから受信された要求に応答して、そのウェブブラウザにウェブページを送ることによって、ユーザと対話することができる。
【０１１８】
本明細書で説明する主題の実装形態は、バックエンド構成要素を、たとえば、データサーバとして含むか、あるいは、ミドルウェア構成要素、たとえば、アプリケーションサーバを含むか、あるいは、フロントエンド構成要素、たとえば、それを通してユーザが、本明細書で説明する主題の一実装形態と対話することができる、グラフィカルユーザインターフェースもしくはウェブブラウザを有するクライアントコンピュータ、または、1つもしくは複数のそのようなバックエンド構成要素、ミドルウェア構成要素、もしくはフロントエンド構成要素の任意の組合せを含む、コンピューティングシステムにおいて実装され得る。システムの構成要素は、任意の形態または任意の媒体のデジタルデータ通信、たとえば、通信ネットワークによって相互接続され得る。通信ネットワークには、ローカルエリアネットワーク(「LAN」)およびワイドエリアネットワーク(「WAN」)、インターネットワーク(たとえば、インターネット)、ならびにピアツーピアネットワーク(たとえば、アドホックピアツーピアネットワーク)が含まれ得る。
【０１１９】
本明細書は、多数の特定の実装詳細を含むが、これらは、いずれかの発明の範囲の限定、または請求され得るものの範囲の限定として解釈されるべきではなく、むしろ、特定の発明の特定の実装形態に固有の特徴の説明として解釈されるべきである。別個の実装形態との関連で本明細書で説明するいくつかの特徴はまた、単一の実装形態において組み合わせて実装され得る。逆に、単一の実装形態との関連で説明する様々な特徴もまた、複数の実装形態において別個に、または任意の好適な部分組合せにおいて実装され得る。その上、特徴は、いくつかの組合せにおいて作用するとして上記で説明されることがあり、最初にそのようなものとして請求されることさえあるが、請求される組合せからの1つまたは複数の特徴は、場合によっては、その組合せから削除され得、請求される組合せは、部分組合せ、または部分組合せの変形形態を対象とし得る。
【０１２０】
同様に、動作は、特定の順序で図面において図示されるが、これは、望ましい結果を達成するために、そのような動作が図示された特定の順序で、もしくは順番に実行されること、またはすべての図示された動作が実行されることを必要とするものとして理解されるべきではない。いくつかの状況では、マルチタスキングおよび並列処理が有利であり得る。その上、上記で説明した実装形態における様々なシステム構成要素の分離は、すべての実装形態においてそのような分離を必要とするものとして理解されるべきではなく、説明したプログラム構成要素およびシステムは、一般に単一のソフトウェア製品にともに統合され得るか、または複数のソフトウェア製品にパッケージ化され得ることを理解されたい。
【０１２１】
このように、主題の特定の実装形態について説明した。他の実装形態は、以下の特許請求の範囲の範囲内である。場合によっては、特許請求の範囲に記載されているアクションは、異なる順序で実行され、なお、望ましい結果を達成することが可能である。加えて、添付の図面に図示されたプロセスは、望ましい結果を達成するために、必ずしも図示された特定の順序、または順番を必要とするとは限らない。いくつかの実装形態では、マルチタスキングまたは並列処理が利用され得る。
【符号の説明】
【０１２２】
102、114  シーケンス
104、116、218、262  クライアントデバイス
106、112、118、126  ディスプレイ
108、120、232、282  コンテンツサーバ
110、124  コンテンツ選択器
122  識別情報検証器
200、250  システム
202、209、252  ドメインサーバ
204  プロセッサ、構成要素
206  メモリ、構成要素
208、242  構成要素、アプリケーション
210、220、234、254、264、276、284  プロセッサ
212、222、236、256、266、278、286  メモリ
214、258、280  アプリケーション
216、260  ネットワーク
223、268  ブラウザ
224、238  トークン受信機、構成要素
226  トークン計算機、構成要素
228  トークン生成器、構成要素
240  検証器、構成要素
244  送信機、構成要素
246  特性データベース、構成要素
270、288  トークン受信機
272、292  送信機
274  中央サーバ
290  検証器
【図１】
2021533426.tif 000003
【図２Ａ】
2021533426.tif 000004
【図２Ｂ】
2021533426.tif 000005
【図３】
2021533426.tif 000006
【図４】
2021533426.tif 000007
【国際調査報告】
2021533426.tif 000008
2021533426.tif 000009