(58)【調査した分野】(Int.Cl.,DB名)
前記1つまたは複数のユーザ応答および前記1つまたは複数のリスクアセスメントスコアに少なくとも部分的に基づいて、前記オンラインリソースへの前記ユーザのアクセスを許可すべきかどうかを前記1つまたは複数のコンピューティングデバイスによって判定するステップをさらに含む請求項1に記載のコンピュータ実施方法。
前記複数のオブジェクトが、基準を満たす1つまたは複数のオブジェクトを含む第1のサブセットと、前記基準を満たさない1つまたは複数のオブジェクトを含むオブジェクトの第2のサブセットとを含む請求項2に記載のコンピュータ実施方法。
前記検証チャレンジを前記1つまたは複数のコンピューティングデバイスによって更新するステップが、前記1つまたは複数のコンピューティングデバイスによって、前記ユーザによって選択されたオブジェクトを代わりのオブジェクトに置き換えることを含む請求項2に記載のコンピュータ実施方法。
各リスクアセスメントスコアが、ユーザデバイスの種類、1つもしくは複数のユーザデバイスの能力、前記ユーザデバイスに関連するインターネットプロトコルアドレス、ユーザのウェブ履歴、または前記ユーザが様々なその他のウェブサービスに参加するかどうかに少なくとも部分的に基づいて決定される請求項1に記載のコンピュータ実施方法。
各リスクアセスメントスコアが、正しい前記検証チャレンジに対するユーザ応答の割合に少なくとも部分的に基づいて決定される請求項1に記載のコンピュータ実施方法。
各リスクアセスメントスコアが、対応するユーザ応答が受信されるのにかかった時間の長さに少なくとも部分的に基づいて決定される請求項1に記載のコンピュータ実施方法。
前記1つまたは複数のユーザ応答および前記1つまたは複数のリスクアセスメントスコアに少なくとも部分的に基づいて、前記オンラインリソースへの前記ユーザのアクセスを許可すべきかどうかを判定するステップをさらに含む請求項14に記載のコンピューティングシステム。
前記1つまたは複数のリスクアセスメントスコアの各々が、前記ユーザが不正な人間のユーザである見込みの尺度を提供する請求項14に記載のコンピューティングシステム。
1つまたは複数のプロセッサによって実行されるときに前記1つまたは複数のプロセッサに動作を実行させるコンピュータ可読命令を記憶する1つまたは複数の有形の非一時的コンピュータ可読記憶媒体であって、前記動作が、
ユーザデバイスから、オンラインリソースにアクセスする要求を、受信するステップと、
前記オンラインリソースにアクセスする前記要求を受信することに応答して、前記ユーザデバイスに検証チャレンジを提供するステップであって、前記検証チャレンジが、複数のオブジェクトと、前記複数のオブジェクトのうちの少なくとも1つのオブジェクトと対話するように前記ユーザデバイスのユーザに促す1つまたは複数の命令とを含む、ステップと、
前記検証チャレンジに対する1つまたは複数のユーザ応答を受信するステップであって、各ユーザ応答が、前記複数のオブジェクトからのオブジェクトとの前記ユーザによる対話に対応する、ステップと、
前記1つまたは複数のユーザ応答に少なくとも部分的に基づいて前記ユーザデバイスのユーザに関連する1つまたは複数のリスクアセスメントスコアを決定するステップと、
前記1つまたは複数のユーザ応答に応答して、前記1つまたは複数のリスクアセスメントスコアおよび前記1つまたは複数のユーザ応答に少なくとも部分的に基づいて前記検証チャレンジを更新するステップであって、前記更新するステップが、前記検証チャレンジを十分に解くために必要とされる前記1つまたは複数のユーザ応答のためのラウンド数を調整するステップを含み、前記ラウンド数が1であることは、1つのユーザ応答に対応する、ステップと
を含み、
前記リスクアセスメントスコアが閾値よりも大きいとき、前記リスクアセスメントスコアの閾値未満であるときよりも、前記検証チャレンジを十分に解くために必要とされる前記1つまたは複数のユーザ応答のための前記ラウンド数が多い、1つまたは複数の有形の非一時的コンピュータ可読記憶媒体。
前記1つまたは複数のリスクアセスメントスコアの各々が、前記ユーザが不正な人間のユーザである見込みの尺度を提供する請求項17に記載の1つまたは複数の有形の非一時的コンピュータ可読記憶媒体。
各リスクアセスメントスコアが、正しい前記検証チャレンジに対するユーザ応答の割合、または対応するユーザ応答が受信されるのにかかった時間の長さに少なくとも部分的に基づいて決定される、請求項18に記載の1つまたは複数の有形の非一時的コンピュータ可読記憶媒体。
【発明を実施するための形態】
【0015】
以降で、実施形態に対する参照が詳細になされ、実施形態の1つまたは複数の例が図面に示される。それぞれの例は、本開示の限定ではなく、実施形態の説明のために提供される。実際、本開示の範囲または精神を逸脱することなく実施形態に様々な修正および変更がなされ得ることは、当業者に明らかであろう。たとえば、一実施形態の一部として示されるかまたは説明される特徴は、さらなる実施形態を生み出すために別の実施形態によって使用される可能性がある。したがって、本開示の態様はそのような修正および変更を包含することが意図される。
【0016】
本開示の例示的な態様は、検証チャレンジを動的に更新することを対象とする。たとえば、ユーザデバイスからの検証要求に応答して、検証チャレンジがユーザデバイスに提供され得る。検証チャレンジは、複数のオブジェクトと、指定された方法で複数のオブジェクトのうちの少なくとも1つのオブジェクトと対話するようにユーザデバイスのユーザに促す1つまたは複数の命令とを含む可能性がある。検証チャレンジに対する1つまたは複数のユーザ応答が、受信され得る。各ユーザ応答は、オブジェクトとのユーザ対話に対応する可能性がある。それから、1つまたは複数のユーザ応答に少なくとも部分的に基づいてリスクアセスメントスコアが決定され得る。検証チャレンジは、各ユーザ応答に応答して更新される可能性があり、更新は、リスクアセスメントスコアおよび1つまたは複数のユーザ応答に少なくとも部分的に基づく可能性がある。
【0017】
たとえば、ユーザが、スマートフォンなどのユーザデバイスを使用してオンラインサービスまたはリソースにアクセスしようと試みる可能性がある。試みに応答して、ユーザは、複数の画像を含む検証チャレンジと、指定された基準を満たす各画像を選択するようにユーザに促す命令とを提示され得る(たとえば、
図2参照)。ユーザは、画像を選択することによって検証チャレンジに対する応答を入力し得る。ユーザ応答に少なくとも部分的に基づいてユーザに関連するリスクアセスメントスコアが決定され得る。検証チャレンジ内の選択された画像は、リスクアセスメントスコアに少なくとも部分的に基づいて代わりの画像に置き換えられる可能性があり、代わりの画像は、更新された検証チャレンジの一部としてユーザに提供される可能性がある。代わりの画像は、指定された基準を満たす可能性があり、または満たさない可能性がある。そして、ユーザは、第2の画像を選択することによって、更新された検証チャレンジに対する第2のユーザ応答を入力する可能性があり、第2の応答に少なくとも部分的に基づいて、更新されたリスクアセスメントスコアが、決定される可能性がある。それから、第2の選択された画像が、更新されたリスクアセスメントスコアに少なくとも部分的に基づいて代わりの画像に置き換えられ、検証チャレンジに対する更新の一部としてユーザに提供される可能性がある。このプロセスは、検証チャレンジ内にユーザに提示される基準を満たすいかなる画像ももはや存在しなくなるまで反復し得る。そのとき、ユーザ応答および/またはユーザに関連するリスクアセスメントスコアに少なくとも部分的に基づいて、オンラインリソースへのユーザのアクセスを許可すべきかどうかが判定され得る。
【0018】
本明細書において使用されるとき、ユーザデバイスは、ラップトップコンピュータ、デスクトップコンピュータ、スマートフォン、タブレット、ウェアラブルコンピューティングデバイス、または任意のその他の好適なユーザコンピューティングデバイスである可能性がある。示されるように、オンラインサービスにアクセスするために、ユーザは、まず、検証チャレンジを解くように要求され得る。たとえば検証チャレンジは、ユーザの正規の人間のステータスを検証するためにコンピュータ制御のコンピュータと人間を区別する完全に自動化された公開チューリングテスト(CAPTCHA)システムによって提供されるCAPTCHAチャレンジであり、それによって、「ボット」がオンラインサービスを毀損することを防止することができる。たとえば、CAPTCHAシステムは、CAPTCHAチャレンジをユーザに提供することができ、ユーザは、ユーザがチャレンジに「合格する」場合、オンラインサービスにアクセスすることができる。一部の実装において、検証チャレンジは、1つまたは複数の画像との対話によってチャレンジを解くようにユーザに促す命令を含む画像ベースのチャレンジである可能性がある。
【0019】
一部の実装において、複数のオブジェクトは、複数の画像を含み得る。そのような実装において、CAPTCHAチャレンジは、指定された基準を満たす複数の画像からの各画像を選択するかまたは指定された基準を満たす複数の画像からの各画像とそれ以外の方法で対話するようにユーザに促す命令をさらに含み得る。たとえば、命令は、特定の品物、物体、人、動物などを示す各画像を選択するようにユーザに促す可能性がある。このようにして、CAPTCHAチャレンジは、基準を満たす画像の第1のサブセットおよび基準を満たさない画像の第2のサブセットを含む複数の画像を含む可能性がある。
【0020】
一部の実装において、CAPTCHAチャレンジは、複数のラウンドまたは繰り返しを含む可能性がある。このようにして、各ラウンドが、単一のユーザ応答に対応する可能性がある。一部の実装においては、各ユーザ応答(たとえば、画像のそれぞれのユーザの選択)が、遠隔のコンピューティングデバイス(たとえば、サーバデバイス)に伝達される可能性がある。各ユーザ応答に応答して、リスクアセスメントスコアが決定されるかまたは更新される可能性がある。特に、リスクアセスメントスコアは、ユーザまたはユーザによって操作されるユーザデバイスに関して決定される可能性がある。たとえば、リスクアセスメントスコアは、ユーザまたはユーザデバイスが「CAPTCHAファーマー」またはその他の不正な人間のユーザなどの不正な人間のCAPTCHAユーザに関連付けられる見込みの尺度に対応する可能性がある。一部の実装において、リスクアセスメントスコアは、ユーザデバイスの種類、1つもしくは複数のユーザデバイスの能力、ユーザデバイスに関連するインターネットプロトコルアドレス、ユーザのウェブ履歴、またはユーザが様々なその他のウェブサービスに参加するかどうかに少なくとも部分的に基づいて決定される可能性がある。一部の実装において、リスクアセスメントスコアは、検証チャレンジに対するユーザによる正しい応答の割合および/またはユーザ応答が受信されるのにかかった時間の長さに少なくとも部分的に基づいて決定される可能性がある。
【0021】
検証チャレンジは、リスクアセスメントスコアに少なくとも部分的に基づいて更新される可能性がある。一部の実装において、検証チャレンジに対する各更新は、検証チャレンジの追加的なラウンドまたは繰り返しに対応する可能性がある。たとえば、検証チャレンジは、各ユーザ応答および/またはそれぞれの決定されたもしくは更新されたリスクアセスメントスコアに応答して更新される可能性がある。
【0022】
一部の実装において、検証チャレンジを更新することは、ユーザによって選択された画像を代わりの画像に置き換えることを含み得る。代わりの画像は、指定された基準を満たす可能性があり、または指定された基準を満たさない可能性がある。代わりの画像は、リスクアセスメントスコアに少なくとも部分的に基づいて決定されるかまたはそうでなければ選択される可能性がある。たとえば、リスクアセスメントスコアが閾値のスコアよりも大きいとき、指定された基準を満たす代わりの画像が選択される可能性があり、リスクアセスメントスコアが閾値のスコア未満であるとき、基準を満たさない代わりの画像が選択される可能性がある。このようにして、各ユーザ応答(たとえば、選択された画像)に関して、ユーザ応答に少なくとも部分的に基づいてリスクアセスメントスコアが決定される可能性があり、リスクアセスメントスコアに少なくとも部分的に基づいて決定されるかまたは選択される代わりの画像によって選択された画像が置き換えられる可能性がある。
【0023】
一部の実装において、初期リスクアセスメントスコアが、初期ユーザ応答に少なくとも部分的に基づいて決定される可能性がある。それから、1つまたは複数の後続のユーザ応答に少なくとも部分的に基づいてリスクアセスメントスコアが更新される可能性がある。このようにして、検証チャレンジの各ラウンドまたは繰り返しに関連する代わりの画像が、検証チャレンジのそのラウンドに関連する初期または更新されたリスクアセスメントスコアに少なくとも部分的に基づいて決定され得る。
【0024】
ユーザからの応答は、オンライサービスへのアクセスがユーザデバイスに許可されるべきかどうかを判定するために使用され得る。たとえば、応答が検証チャレンジを十分に完了させるかまたは解く場合、コンピュータ制御のCAPTCHAシステムは、ユーザデバイスを検証することができる。たとえば、検証チャレンジに関連する命令が指定された基準を満たす各画像を選択するようにユーザに促す実装において、ユーザは、基準を満たす選択すべきいかなる画像ももはや選択しないとき、検証チャレンジに「合格する」ことができる。そのような実装において、ユーザは、基準を満たすそれぞれの選択された画像が基準を満たさない代わりの画像に置き換えられるとき、検証チャレンジに「合格する」ことができる。このようにして、検証チャレンジを十分に完了させるかまたは解くために必要とされる繰り返しまたはラウンドの数が、リスクアセスメントスコアおよび/または代わりの画像に少なくとも部分的に基づいて決定され得る。
【0025】
上で示されたように、CAPTCHAファーマーが、「ボット」に関連する遠隔のコンピューティングデバイスに答えを示すデータを転送することによって、検証チャレンジに対する答えをボットに提供しようと試みる可能性がある。コミュニケーションの複数のラウンドを含むように検証チャレンジを更新することは、ボットに答えを提供する際の疑わしいCAPTCHAファーマーにとっての困難を高める結果をもたらすことができる。たとえば、検証チャレンジを十分に解くために必要とされるユーザの選択および/またはラウンドの数を動的に調整することができることは、ボットに答えを中継するために必要とされる時間および/またはコミュニケーションの繰り返しを増やすことができる。このようにして、検証チャレンジを十分に解くために必要とされるラウンドの数が、ユーザがCAPTCHAファーマーである疑わしい見込みに少なくとも部分的に基づいて(たとえば、リスクアセスメントスコアに少なくとも部分的に基づいて)決定され得る。
【0026】
例として、コンピュータ制御のCAPTCHAシステムが(たとえば、検証チャレンジに対する応答に基づいて)ユーザデバイスが正規の人間のユーザによって操作されると十分に確信すると、コンピュータ制御のCAPTCHAシステムは、検証トークンまたは証明書をユーザコンピューティングデバイスに提供し得る。それから、ユーザコンピューティングデバイスは、オンラインサービスに関連するリソースプロバイダに検証トークンを提供し得る。そして今度は、リソースプロバイダが、コンピュータ制御のCAPTCHAシステムによる検証トークンの有効性を確認し得る。トークンの有効性が確認されると、リソースプロバイダは、ユーザデバイスにリソースを提供することができる。
【0027】
ここで図面を参照して、本開示の例示的な態様が、より詳細に検討される。たとえば、
図1は、ユーザデバイスにCAPTCHAチャレンジを提供するための例示的なシステム100の全体像を示す。特に、システム100は、コンピュータ制御のCAPTCHAシステム102およびリソースプロバイダ104を含み得る。CAPTCHAシステム102は、たとえば、1つまたは複数のサーバなどの1つまたは複数のコンピューティングデバイスを使用して実装され得る。特に、CAPTCHAシステム102によって実行される任意のコンピューティングタスクが、並列または分散コンピューティングシステム内の接続された1つまたは複数のコンピューティングデバイスの任意の組合せによって実行され得る。
【0028】
CAPTCHAシステム102は、ユーザデバイスから検証プロセスに参加する要求を受信し、ユーザデバイスにCAPTCHAチャレンジを選択し提供するように構成されたCAPTCHAジェネレータ106を含み得る。たとえば、検証プロセスに参加する要求は、リソースプロバイダ104からのオンラインサービスまたはリソースにアクセスするためのユーザによる要求に対応する可能性がある。オンラインリソースまたはサービスの非限定的な例は、クラウドに基づく電子メールクライアント、ソーシャルメディアアカウントもしくはコンテンツ、サービスとしてのソフトウェア、オンラインオークションインターフェース、金融サービスアカウント、オンラインゲーム、データライブラリ、コードライブラリ、任意のウェブサービス、または任意のその他の好適なリソースを含む。一部の実装において、CAPTCHAチャレンジは、複数の画像を有する画像ベースのCAPTCHAチャレンジ、および画像のうちの1つもしくは複数を選択するかまたはそれ以外の方法で画像のうちの1つもしくは複数と対話するようにユーザデバイスのユーザに促す関連する命令である可能性がある。特に、命令は、指定された基準を満たすそれぞれの提示された画像を選択するかまたは指定された基準を満たすそれぞれの提示された画像と対話するようにユーザに促す可能性がある。たとえば、命令は、特定の物体、品物、人、動物などを示す各画像を選択するようにユーザに促す可能性がある。
【0029】
上で示されたように、CAPTCHAジェネレータ106は、ユーザに関連する1つまたは複数のリスクアセスメントスコアに少なくとも部分的に基づいてCAPTCHAチャレンジを更新するようにさらに構成され得る。たとえば、CAPTCHAチャレンジは、CAPTCHAチャレンジを十分に解くために複数のユーザ応答を必要とする可能性がある。CAPTCHAチャレンジは、ユーザ応答のうちの1つまたは複数に応答して更新される可能性がある。このようにして、CAPTCHAシステム100は、リスクスコアラ108をさらに含み得る。リスクスコアラ108は、ユーザおよび/またはユーザデバイスに関連する1つまたは複数の信号を取得し、取得された信号に少なくとも部分的に基づいてリスクアセスメントスコアを決定するように構成され得る。一部の実装において、リスクアセスメントスコアは、検証チャレンジに対する各ユーザ応答の後に更新され得る。
【0030】
CAPTCHAジェネレータ106は、決定されたまたは更新されたリスクアセスメントスコアに少なくとも部分的に基づいてCAPTCHAチャレンジを更新し得る。たとえば、一部の実装において、CAPTCHAチャレンジを更新することは、ユーザによって選択された画像を代わりの画像に置き換えることを含み得る。上で示されたように、代わりの画像は、リスクアセスメントスコアに少なくとも部分的に基づいて決定され得る。たとえば、CAPTCHAジェネレータ106は、代わりの画像を選択するために画像データベース112にアクセスし得る。
【0031】
一部の実装において、各ユーザ応答(たとえば、ユーザによる画像のそれぞれの選択)は、ユーザデバイスとCAPTCHAシステム102との間のコミュニケーションのラウンドに対応する可能性がある。たとえば、ユーザデバイスは、各ユーザ応答をCAPTCHAシステム102に提供する可能性があり、それに応答して、CAPTCHAシステム102は、更新されたCAPTCHAチャレンジをユーザデバイスに提供する可能性がある。そのような実装においては、命令内で指定された基準を満たす画像および/または代わりの画像の数が、チャレンジを十分に解き、ユーザが正当であると確認するために必要とされるユーザの選択および/またはコミュニケーションのラウンドの数を決定する可能性がある。
【0032】
CAPTCHAシステム102は、ユーザがCAPTCHAチャレンジを十分に解いたかどうかを判定し、それによって、オンラインサービスまたはリソースへのユーザのアクセスを許可すべきかどうかを判定するように構成されたユーザバリデータ110をさらに含み得る。たとえば、一部の実装においては、ユーザのアクセスを許可すると判定されると、ユーザバリデータ110は、検証トークンを生成し、ユーザデバイスに提供し、リソースプロバイダ104に関する検証トークンを受信し、有効性を確認するように構成され得る。
【0033】
さらに、CAPTCHAジェネレータ106、リスクスコアラ108、およびユーザバリデータ110は
図1においてCAPTCHAシステム102の別々のモジュールまたは構成要素として示されているが、一部の実装において、そのようなモジュールは、単一のモジュールを形成するために組み合わされるか、またはいくつかの追加的なモジュールを形成するために分散される可能性がある。
【0034】
図2〜
図5は、本開示の例示的な実施形態による例示的なCAPTCHAチャレンジを示す。たとえば、
図2は、CAPTCHAチャレンジ120を示す。CAPTCHAチャレンジ120は、複数の画像と、「現れるすべてのサラダを選択する」ようにユーザに促す命令とを含む。示されるように、画像122および124はサラダを示し、一方、画像の残りはサラダを示さない。ユーザは、1つまたは複数の応答をCAPTCHAチャレンジに提供する可能性がある。たとえば、
図3において、チェックマーク126は、ユーザが画像122を選択したことを示す。一部の実装において、このユーザ応答は、遠隔のコンピューティングデバイス(たとえば、サーバ)に提供される可能性があり、遠隔のコンピューティングデバイスは、画像122のユーザの選択に少なくとも部分的に基づいてCAPTCHAチャレンジ120を更新する可能性がある。CAPTCHAチャレンジ120に対する更新は、代わりの画像128などの代わりの画像によって画像122を置き換えることを含み得る。示されるように、代わりの画像128も、サラダを示す。
図4は、画像124のユーザの選択を示すチェックマーク130をさらに示す。
【0035】
このようにして、ユーザは、ユーザに提示されるサラダを示す画像が存在しないように、サラダを示す各画像がサラダを示さない画像に置き換えられるまで選択を行い続ける可能性がある。たとえば、
図5は、サラダを示す各画像がサラダを示さない画像に置き換えられた、更新されたCAPTCHAチャレンジ120を示す。指定された基準を満たす画像が残っていないと、ユーザは、検証ボックス132を選択し得る。検証ボックス132のユーザの選択に応答して、所望のリソースまたはサービスへのユーザのアクセスを許可すべきかどうかが判定され得る。たとえば、判定は、正しいユーザ応答の数、サラダを示した提示された画像の数、および/またはユーザに関連する1つもしくは複数のリスクアセスメントスコアに少なくとも部分的に基づく可能性がある。
【0036】
図6は、本開示の例示的な実施形態による、ユーザに検証チャレンジを提供する例示的な方法(200)の流れ図を示す。方法(200)は、
図9に示されるコンピューティングデバイスのうちの1つまたは複数などの1つまたは複数のコンピューティングデバイスによって実施され得る。特定の実装においては、方法(200)の様々な態様が、
図1のCAPTCHAシステム102によって実施される可能性がある。加えて、
図6は、図示および検討を目的として特定の順序で実行されるステップを示す。本明細書において提供される開示を使用する当業者は、本明細書において検討される方法のいずれかのステップが、本開示の範囲を逸脱することなく様々な方法で適合されるか、再配列されるか、拡張されるか、省略されるか、または修正され得ることを理解するであろう。
【0037】
(202)において、方法(200)は、検証チャレンジをユーザデバイスに提供することを含み得る。示されるように、検証チャレンジは、1つまたは複数のオブジェクトと、指定された方法で1つまたは複数のオブジェクトと対話するようにユーザに促す関連する命令とを含み得る。(204)において、方法(200)は、ユーザデバイスから1つまたは複数のユーザ応答を受信することを含み得る。たとえば、各ユーザ応答は、検証チャレンジのオブジェクトとのユーザによる対話を示す可能性がある。
【0038】
(206)において、方法(200)は、ユーザ応答に少なくとも部分的に基づいて1つまたは複数のリスクアセスメントスコアを決定することを含み得る。たとえば、一部の実装において、リスクアセスメントスコアは、ユーザデバイスの種類、1つもしくは複数のユーザデバイスの能力、ユーザデバイスに関連するインターネットプロトコルアドレス、ユーザのウェブ履歴、および/またはユーザが様々なその他のウェブサービスに参加するかどうかに少なくとも部分的に基づいて決定される可能性がある。一部の実装において、リスクアセスメントスコアは、検証チャレンジに対するユーザによる正しい応答の割合および/またはユーザ応答が受信されるのにかかった時間の長さに少なくとも部分的に基づいて決定される可能性がある。
【0039】
一部の実装において、リスクアセスメントスコアは、各ユーザ応答に関して決定される可能性がある。たとえば、
図7に関連して下でより詳細に説明されるように、初期リスクアセスメントスコアが、第1のユーザ応答に応答して決定される可能性があり、1つまたは複数の更新されたリスクアセスメントスコアが、1つまたは複数の後続のユーザ応答に応答して決定される可能性がある。このようにして、各リスクアセスメントスコアは、ユーザ応答に対応し得る。
【0040】
一部の実装において、リスクアセスメントスコアは、検証チャレンジをユーザデバイスに提供する前に決定される可能性がある。このようにして、検証チャレンジは、リスクアセスメントスコアに少なくとも部分的に基づいて選択されるおよび/または生成される可能性がある。たとえば、検証チャレンジが複数の画像と、指定された基準を満たす各画像を選択するようにユーザに促す命令とを含む実装においては、基準を満たす画像の数が、リスクアセスメントスコアに少なくとも部分的に基づいて決定される可能性がある。
【0041】
(208)において、方法(200)は、リスクアセスメントスコアに少なくとも部分的に基づいて検証チャレンジを更新することを含み得る。たとえば、リスクアセスメントスコアが各ユーザ応答に関して決定されるまたは更新される実装において、検証チャレンジは、それぞれの更新されたリスクアセスメントスコアに少なくとも部分的に基づいて更新される可能性がある。一部の実装において、検証チャレンジを更新することは、ユーザ応答内のユーザによって選択された画像を代わりの画像に置き換えることを含み得る。代わりの画像は、リスクアセスメントスコアに少なくとも部分的に基づいて決定される可能性がある。たとえば、代わりの画像は、代わりの画像が指定された基準を満たすように、または代わりの画像が指定された基準を満たさないように選択される可能性がある。
【0042】
そのような実装においては、代わりの画像が指定された基準を満たすか否かが、ユーザ応答に対応するリスクアセスメントスコアに少なくとも部分的に基づいて決定され得る。たとえば、対応するリスクアセスメントスコアが閾値未満である場合、代わりの画像は、代わりの画像が指定された基準を満たさないように選択される可能性がある。このようにして、対応するリスクアセスメントスコアが閾値よりも大きい場合、代わりの画像は、代わりの画像が指定された基準を確かに満たすように選択される可能性がある。
【0043】
図7は、ユーザに提示される検証チャレンジを動的に更新する例示的な方法(300)の流れ図を示す。たとえば、(302)において、方法(300)は、ユーザデバイスから検証チャレンジに対する初期ユーザ応答を受信することを含み得る。初期ユーザ応答は、ユーザによって選択された第1のオブジェクト(たとえば、画像)を示す可能性がある。
【0044】
(304)において、方法(300)は、ユーザおよび/またはユーザデバイスに関連する初期リスクアセスメントスコアを決定することを含み得る。上で示されたように、初期リスクアセスメントスコアは、初期ユーザ応答に対応する可能性がある。
【0045】
(306)において、方法(300)は、第1の代わりの画像によって第1の選択された画像を置き換えることを含み得る。代わりの画像は、初期リスクアセスメントスコアに少なくとも部分的に基づいて選択される可能性がある。特に、上で示されたように、代わりの画像は、初期リスクアセスメントスコアに少なくとも部分的に基づいて、検証チャレンジの指定された基準を満たすように、または指定された基準を満たさないように選択される可能性がある。
【0046】
(308)において、方法(300)は、追加的な選択された画像を示す追加的なユーザ応答を受信することを含み得る。(310)において、方法(300)は、追加的なユーザ応答に少なくとも部分的に基づいてリスクアセスメントスコアを更新することを含み得る。たとえば、更新されたリスクアセスメントスコアが、追加的なユーザ応答を反映するように決定され得る。例として、更新されたリスクアセスメントスコアは、初期リスクアセスメントスコアとは異なる可能性があり、または更新されたリスクアセスメントスコアは、初期リスクアセスメントスコアと同じである可能性がある。
【0047】
(312)において、方法(300)は、更新されたリスクアセスメントスコアに少なくとも部分的に基づいて第2の代わりの画像によって追加的な選択された画像を置き換えることを含み得る。特に、代わりの画像は、初期リスクアセスメントスコアに少なくとも部分的に基づいて、検証チャレンジの指定された基準を満たすように、または指定された基準を満たさないように選択される可能性がある。
【0048】
上で示されたように、ユーザが検証チャレンジを十分に解いたとき、ユーザは、検証され、所望のリソースまたはサービスへのアクセスを許可され得る。たとえば、
図8は、本開示の例示的な実施形態による、ユーザを検証する例示的な方法(400)の流れ図を示す。
【0049】
(402)において、ユーザデバイスが、リソースプロバイダからのリソースまたはオンラインサービスへのアクセスを要求し得る。(404)において、リソースプロバイダは、ユーザデバイスから要求を受信し得る。
【0050】
(406)において、リソースプロバイダは、直接、コンピュータ制御のCAPTCHAシステムによる検証プロセスに参加するようにユーザデバイスに命令し得る。(408)において、ユーザデバイスは、コンピュータ制御のCAPTCHAシステムと直接関わるためのリソースプロバイダからの命令を受信し得る。例として、リソースプロバイダは、ユーザデバイスがコンピュータ制御のCAPTCHAシステムに直接接続し、検証プロセスを開始するように、ユーザデバイスのブラウザをリダイレクトすることによって(406)においてユーザデバイスに命令する可能性がある。
【0051】
別の例として、(406)において、リソースプロバイダは、ユーザデバイスによって実行されるときにユーザデバイスをコンピュータ制御のCAPTCHAシステムと直接関わらせるクライアント側スクリプトをユーザデバイスに提供し得る。たとえば、クライアント側スクリプトは、インラインフレーム、埋め込みオブジェクト、ポートレット、またはその他の埋め込みアプリケーションもしくはウィジェットに含まれる可能性がある。一部の実装において、クライアント側スクリプトは、コンピュータ制御のCAPTCHAシステムからリソースプロバイダに提供されたプラグインに含まれる可能性がある。さらに、一部の実装においては、(406)で、リソースプロバイダが、コンピュータ制御のCAPTCHAシステムに対してリソースプロバイダを識別する公開鍵をユーザデバイスに提供する可能性がある。
【0052】
(410)において、ユーザデバイスは、検証プロセスに参加するためにコンピュータ制御のCAPTCHAシステムに要求を直接送信し得る。(412)において、コンピュータ制御のCAPTCHAシステムは、ユーザデバイスからの要求を受信し得る。
【0053】
例として、(410)において送信される要求は、コンピュータ制御のCAPTCHAシステムに関連するアプリケーションプログラミングインターフェースによってフォーマットされ得る。たとえば、要求は、(406)においてユーザデバイスに提供されたクライアント側スクリプトを実行した結果として送信される可能性がある。さらに、一部の実装において、(410)において送信される要求は、リソースプロバイダに関連する公開鍵を含み得る。
【0054】
(414)において、コンピュータ制御のCAPTCHAシステムは、CAPTCHAチャレンジを選択し、CAPTCHAチャレンジをユーザデバイスに提供し得る。一部の実装において、CAPTCHAチャレンジは、複数の選択可能なオブジェクトと、指定された方法でオブジェクトのうちの1つまたは複数を選択するようにユーザに促す1つまたは複数の関連する命令とを含み得る。一部の実装において、CAPTCHAチャレンジは、ユーザおよび/またはユーザデバイスに関連するリスクアセスメントスコアに少なくとも部分的に基づいて選択され得る。
【0055】
一部の実装においては、(414)で、チャレンジのフォーマット、チャレンジの種類、またはチャレンジのその他の属性が、様々なその他の好適な要因に基づいて選択され得る。たとえば、ユーザデバイスが、たとえば、スマートフォンまたはタブレットなどのモバイルデバイスである場合、(414)において、コンピュータ制御のCAPTCHAシステムは、モバイルデバイスのために設計されたCAPTCHAチャレンジを選択し得る。
【0056】
(416)において、ユーザデバイスは、コンピュータ制御のCAPTCHAシステムからCAPTCHAチャレンジを受信し、たとえば、ユーザデバイスのディスプレイ上でユーザにCAPTCHAチャレンジを提示し得る。(418)において、ユーザデバイスは、ユーザからCAPTCHAチャレンジに対する応答を受信し、コンピュータ制御のCAPTCHAシステムに応答を送信し得る。(420)において、コンピュータ制御のCAPTCHAシステムは、ユーザデバイスからの応答を受信し得る。
【0057】
(422)において、コンピュータ制御のCAPTCHAシステムは、CAPTCHAチャレンジが完了させられたかどうかを判定し得る。上述のように、CAPTCHAチャレンジは、CAPTCHAが完了させられる前に複数のユーザ応答を必要とする可能性がある。たとえば、CAPTCHAチャレンジが基準を満たす各画像を選択するようにユーザに促す実装において、CAPTCHAチャレンジは、基準を満たす各画像が基準を満たさない画像に置き換えられたときに完了させられ得る。一部の実装において、CAPTCHAチャレンジが完了しているかどうかの判定は、CAPTCHAチャレンジが完了していることを示すユーザ入力に応答してなされる可能性がある。たとえば、ユーザは、CAPTCHAチャレンジが完了していると判定するようにCAPTCHAシステムに促す検証インジケータを選択する可能性がある。
【0058】
CAPTCHAチャレンジが完了されていない場合、(424)において、CAPTCHAシステムは、CAPTCHAチャレンジを更新し、更新をユーザデバイスに提供し得る。たとえば、CAPTCHAチャレンジを更新することは、決定されたリスクアセスメントスコアに少なくとも部分的に基づいて、ユーザによって選択された画像を代わりの画像に置き換えることを含み得る。一部の実装において、リスクアセスメントスコアは、CAPTCHAチャレンジに対するユーザ応答に少なくとも部分的に基づいて決定される可能性がある。CAPTCHAチャレンジが更新されると、方法(400)は(416)に戻り得る。このようにして、CAPTCHAチャレンジが完了させられるまで、1つまたは複数の追加的なユーザ応答が入力され、CAPTCHAシステムに提供され得る。
【0059】
再び(422)を参照すると、CAPTCHAチャレンジが完了させられた場合、方法(400)は(426)に進み得る。(426)において、コンピュータ制御のCAPTCHAシステムは、1つまたは複数の検証条件が満たされる場合、検証トークンを生成し、その検証トークンをユーザデバイスに提供し得る。たとえば、条件が満たされるかどうかは、CAPTCHAチャレンジに対するユーザ応答および/またはユーザに関連するリスクアセスメントスコアに少なくとも部分的に基づいて判定され得る。(428)において、ユーザデバイスは、コンピュータ制御のCAPTCHAシステムから検証トークンを受信し得る。
【0060】
例として、コンピュータ制御のCAPTCHAシステムは、(424)において受信された応答がCAPTCHAチャレンジを正しく解くかまたはそうでなければ満たす場合、(426)において、検証トークンを生成し、その検証トークンをユーザデバイスに提供し得る。検証トークンは、認証証明書またはその他のセキュリティもしくは認証デバイスもしくはメカニズムである可能性がある。たとえば、一部の実装において、検証トークンは、ユーザデバイスの識別子のハッシュもしくはその他の情報を含む可能性があり、またはリソースプロバイダの公開鍵を組み込む可能性がある。
【0061】
一部の実装において、ステップ(410)〜(426)が検証プロセスと考えられ得ることは、理解されるであろう。さらに、一部の実装において、ステップ(410)〜(426)は、リソースプロバイダのウェブサイトに含まれるインラインフレーム、埋め込みオブジェクト、ポートレット、またはその他の埋め込みウィジェットもしくはアプリケーションを介して行われる可能性がある。
【0062】
(428)において、ユーザデバイスは、検証トークンをリソースプロバイダに提供し得る。(430)において、リソースプロバイダは、ユーザデバイスから検証トークンを受信し得る。
【0063】
(432)において、リソースプロバイダは、コンピュータ制御のCAPTCHAシステムに検証トークンを送信し得る。一部の実装においては、(432)で、リソースプロバイダは、コンピュータ制御のCAPTCHAシステムに検証トークンと一緒にそのリソースプロバイダの秘密鍵を送信する可能性もある。
【0064】
(434)において、コンピュータ制御のCAPTCHAシステムは、検証トークンが有効である場合、検証トークンの有効性の確認をリソースプロバイダに提供し得る。検証トークンが無効であるかまたは改ざんされた場合、コンピュータ制御のCAPTCHAシステムは、検証トークンが無効であることをリソースプロバイダに知らせることができる。
【0065】
(436)において、リソースプロバイダは、コンピュータ制御のCAPTCHAシステムから検証トークンの有効性の確認を受信し得る。(436)において有効性の確認を受信することに応答して、(438)において、リソースプロバイダは、リソースへのアクセスをユーザデバイスに提供し得る。(440)において、ユーザデバイスは、リソースにアクセスし得る。
【0066】
図9は、本開示の例示的な態様による方法およびシステムを実装するために使用され得る例示的なコンピューティングシステム500を示す。たとえば、システム500は、コンピュータ制御のCAPTCHAシステムをホストすることができる。システム500は、ネットワーク540を介して1つまたは複数のクライアントデバイス530と通信するサーバ510を含むクライアント-サーバアーキテクチャを使用して実装される可能性がある。システム500は、単一のコンピューティングデバイスなどのその他の好適なアーキテクチャを使用して実装される可能性がある。
【0067】
システム500は、ウェブサーバなどのサーバ510を含む。サーバ510は、任意の好適なコンピューティングデバイスを使用して実装される可能性がある。サーバ510は、1つまたは複数のプロセッサ512および1つまたは複数のメモリデバイス514を有する可能性がある。サーバ510は、ネットワーク540を介して1つまたは複数のクライアントデバイス(たとえば、ユーザデバイス)530と通信するために使用されるネットワークインターフェースも含み得る。ネットワークインターフェースは、たとえば、送信機、受信機、ポート、コントローラ、アンテナ、またはその他の好適な構成要素を含む、1つまたは複数のネットワークとインターフェースをとるための任意の好適な構成要素を含む可能性がある。
【0068】
1つまたは複数のプロセッサ512は、マイクロプロセッサ、マイクロコントローラ、集積回路、論理デバイス、またはその他の好適な処理デバイスなどの任意の好適な処理デバイスを含む可能性がある。1つまたは複数のメモリデバイス514は、非一時的コンピュータ可読媒体、RAM、ROM、ハードドライブ、フラッシュドライブ、またはその他のメモリデバイスを含むがこれらに限定されない1つまたは複数のコンピュータ可読媒体を含む可能性がある。1つまたは複数のメモリデバイス514は、1つまたは複数のプロセッサ512によって実行され得るコンピュータ可読命令516を含む、1つまたは複数のプロセッサ512によってアクセスされ得る情報を記憶し得る。命令516は、1つまたは複数のプロセッサ512によって実行されるときに1つまたは複数のプロセッサ512に動作を実行させる命令の任意の組である可能性がある。たとえば、命令516は、
図1を参照して説明されたCAPTCHAジェネレータ106、リスクスコアラ108、および/またはユーザバリデータ110を実装するために1つまたは複数のプロセッサ512によって実行され得る。
【0069】
図9に示されるように、1つまたは複数のメモリデバイス514は、1つまたは複数のプロセッサ512によって取り出されるか、操作されるか、生成されるか、または記憶され得るデータ518も記憶し得る。データ518は、たとえば、画像データ、CAPTCHAチャレンジ、およびその他のデータを含む可能性がある。データ518は、1つまたは複数のデータベースに記憶され得る。1つまたは複数のデータベースは、高帯域幅のLANもしくはWANによってサーバ510に接続される可能性があり、またはネットワーク540を通じてサーバ510に接続される可能性もある。1つまたは複数のデータベースは、それらのデータベースが複数の場所に置かれるように分割される可能性がある。
【0070】
サーバ510は、ネットワーク540を介して1つまたは複数のクライアントデバイス530とデータをやりとりすることができる。2つのクライアントデバイス530が
図9に示されるが、任意の数のクライアントデバイス530が、ネットワーク540を介してサーバ510に接続される可能性がある。クライアントデバイス530の各々は、多目的コンピュータ、専用コンピュータ、ラップトップ、デスクトップ、モバイルデバイス、ナビゲーションシステム、スマートフォン、タブレット、ウェアラブルコンピューティングデバイス、1つもしくは複数のプロセッサを備えたディスプレイ、またはその他の好適なコンピューティングデバイスなどの任意の好適な種類のコンピューティングデバイスである可能性がある。
【0071】
サーバ510と同様に、クライアントデバイス530は、1つまたは複数のプロセッサ532およびメモリ534を含み得る。1つまたは複数のプロセッサ532は、1つまたは複数の中央演算処理装置(CPU)、効率的に画像をレンダリングすることもしくはその他の特殊な計算を実行することに専用のグラフィックス処理ユニット(GPU)、および/またはその他の処理デバイスを含み得る。メモリ534は、1つまたは複数のコンピュータ可読媒体を含む可能性があり、1つまたは複数のプロセッサ532によって実行され得る命令536およびデータ538を含む、1つまたは複数のプロセッサ532によってアクセスされ得る情報を記憶する可能性がある。たとえば、メモリ534は、本開示の例示的な態様に従って決定されたCAPTCHAチャレンジを表示するためのユーザインターフェースモジュールを実装するための命令536を記憶し得る。
【0072】
図9のクライアントデバイス530は、タッチスクリーン、タッチパッド、データ入力キー、スピーカ、および/または音声認識に好適なマイクロフォンなどの、ユーザに情報を提供し、ユーザから情報を受信するための様々な入力/出力デバイスを含み得る。たとえば、クライアントデバイス530は、本開示の例示的な態様によるCAPTCHAチャレンジを表示するユーザインターフェースを提示するためのディスプレイデバイス535を有する可能性がある。
【0073】
クライアントデバイス530は、ネットワーク540を介して1つまたは複数の遠隔のコンピューティングデバイス(たとえば、サーバ510)と通信するために使用されるネットワークインターフェースも含み得る。ネットワークインターフェースは、たとえば、送信機、受信機、ポート、コントローラ、アンテナ、またはその他の好適な構成要素を含む、1つまたは複数のネットワークとインターフェースをとるための任意の好適な構成要素を含む可能性がある。
【0074】
ネットワーク540は、ローカルエリアネットワーク(たとえば、イントラネット)、広域ネットワーク(たとえば、インターネット)、セルラーネットワーク、またはこれらの何らかの組合せなどの任意の種類の通信ネットワークである可能性がある。ネットワーク540は、クライアントデバイス530とサーバ510との間の直接接続を含む可能性もある。概して、サーバ510とクライアントデバイス530との間の通信は、様々な通信プロトコル(たとえば、TCP/IP、HTTP、SMTP、FTP)、符号化もしくはフォーマット(たとえば、HTML、XML)、および/または保護方式(たとえば、VPN、セキュアHTTP、SSL)を使用して、任意の種類の有線および/またはワイヤレス接続を使用するネットワークインターフェースによって運ばれる可能性がある。
【0075】
本明細書において検討されたテクノロジは、サーバ、データベース、ソフトウェアアプリケーション、およびその他のコンピュータに基づくシステム、ならびに行われるアクション、およびそのようなシステムに送信され、そのようなシステムから送信される情報に言及する。当業者は、コンピュータに基づくシステムの固有の柔軟性が、構成要素の間のタスクおよび機能の非常に多様な可能な構成、組合せ、および分割を可能にすることを認めるであろう。たとえば、本明細書において検討されたサーバプロセスは、単一のサーバまたは組合せで働く複数のサーバを使用して実装される可能性がある。データベースおよびアプリケーションは、単一のシステム上に実装されるか、または複数のシステムに分散される可能性がある。分散された構成要素は、逐次的にまたは並列的に動作する可能性がある。
【0076】
本対象がその特定の例示的な実施形態に関連して詳細に説明されたが、上記の内容を理解すると、当業者はそのような実施形態に対する代替、変更、および均等物を容易に生み出すことができることは、理解されるであろう。したがって、本開示の範囲は、限定ではなく例示のためのものであり、対象の開示は、当業者に容易に分かるように、対象に対するそのような修正、変更、および/または追加を包含することを除外しない。