(57)【要約】  ユーザ認証情報に依存するアプリケーションが、コンピューティングデバイスのアプリケーションコンテナ内で実行される。アプリケーションコンテナは、プラグレシーバモジュールおよび代理モジュールを含む。認証に対する要求が開始されると、ユーザは、コンピューティングデバイスにリモート識別デバイスを接続するように促される。リモート識別デバイスは、ユーザ秘密コードの暗号化されたバージョンを記憶する。プラグレシーバモジュールは、ユーザ秘密コードの暗号化されたバージョンを読み込み、リモート認証サーバに暗号化された情報を通信する。リモート認証サーバは、ユーザ秘密コードを解読し、代理モジュールへの対応するユーザ認証情報を識別および通信するために、解読されたユーザ秘密コードを使用する。代理モジュールは、ユーザ認証情報をアプリケーションコンテナで実行されているアプリケーションで利用可能にすることによって、認証されたセッションを確立する。
2017511673.tif 000002
【特許請求の範囲】
【請求項１】
コンピューティングデバイスのアプリケーションコンテナで実行されているプラグレシーバモジュールによって、要求するアプリケーションからユーザ認証情報に対する要求を受信するステップであって、前記アプリケーションコンテナは、オペレーティングシステムまたはブラウザアプリケーションであるステップと、
前記プラグレシーバモジュールによって、前記コンピューティングデバイスへのリモート識別デバイスの接続を検出するステップであって、前記リモート識別デバイスは、ユーザ秘密コードの暗号化されたバージョンをそこに記憶しているステップと、
前記プラグレシーバモジュールによって、前記リモート識別デバイスから前記ユーザ秘密コードの前記暗号化されたバージョンを読み込むステップと、
前記プラグレシーバモジュールによって、前記アプリケーションコンテナで実行されている代理モジュールに前記ユーザ秘密コードの前記暗号化されたバージョンを通信するステップと、
前記代理モジュールによって、リモート認証サーバに前記暗号化されたユーザ秘密コードを通信するステップであって、前記リモート認証サーバは、前記暗号化されたユーザ秘密コードを解読し、前記代理モジュールに、対応するユーザ認証情報を識別および通信するために前記解読されたユーザ秘密コードを使用するステップと、
前記代理モジュールによって、前記リモート認証サーバから前記ユーザ認証情報を受信するステップと、
前記代理モジュールによって、前記要求するアプリケーションに前記ユーザ認証情報を通信することによって、認証されたセッションを確立するステップと
を含む、パスワードなしでコンピューティングデバイスのユーザを認証するコンピュータ実装方法。
【請求項２】
前記リモート識別デバイスは、ワイヤード通信チャネルを使用して、前記コンピューティングデバイスに接続する請求項1に記載の方法。
【請求項３】
前記リモート識別デバイスは、ワイヤレス通信チャネルを使用して、前記コンピューティングデバイスに接続する請求項1に記載の方法。
【請求項４】
前記アプリケーションコンテナは、オペレーティングシステムである請求項1に記載の方法。
【請求項５】
前記アプリケーションコンテナは、ブラウザアプリケーションであり、前記1つまたは複数のアプリケーションは、個々のウェブページまたはウェブ表示である請求項1に記載の方法。
【請求項６】
前記コンピューティングデバイスは、携帯電話コンピューティングデバイスである請求項1に記載の方法。
【請求項７】
前記認証資格情報は、ユーザ識別子を含む請求項1に記載の方法。
【請求項８】
前記認証資格情報は、アカウント番号を含む請求項1に記載の方法。
【請求項９】
前記プラグレシーバモジュールによって、前記リモート識別デバイスと前記コンピューティングデバイスの間の接続を監視するステップと、
前記プラグレシーバモジュールによって、前記リモート識別デバイスと前記コンピューティングデバイスの間の通信チャネルが閉じられていることを検出するステップと、
前記通信チャネルは、前記プラグレシーバモジュールによって閉じられていることを検出することに応じて、
前記代理モジュールによって、前記1つまたは複数の要求するアプリケーションへのユーザアクセスを終了するステップと
をさらに含む請求項1に記載の方法。
【請求項１０】
コンピュータによって実行されたときに、前記コンピュータに、パスワードなしで前記コンピュータにユーザを認証させる、そこに実施されたコンピュータ実行可能プログラム命令を持つ非一時的コンピュータ実行可能記憶デバイス
を含むコンピュータプログラム製品であって、
前記コンピュータ実行可能プログラム命令は、
コンピューティングデバイスのアプリケーションコンテナで実行されている1つまたは複数の要求するアプリケーションからユーザ認証情報に対する要求を受信するためのコンピュータ実行可能プログラム命令と、
前記コンピュータへのリモート識別デバイスの接続を検出するためのコンピュータ実行可能プログラム命令と、
前記リモート識別デバイスに記憶された、暗号化されたユーザ秘密コードを読み込むためのコンピュータ実行可能プログラム命令と、
リモート認証サーバに前記暗号化されたユーザ秘密コードを通信するためのコンピュータ実行可能プログラム命令であって、前記リモート認証サーバは、前記暗号化されたユーザ秘密コードを解読し、前記認証アプリケーションへの対応するユーザ認証情報を識別および通信するために前記ユーザ秘密コードを使用するコンピュータ実行可能プログラム命令と、
前記リモート認証サーバから前記ユーザ認証情報を受信するためのコンピュータ実行可能プログラム命令と、
前記1つまたは複数の要求するアプリケーションに前記ユーザ認証情報を通信するためのコンピュータ実行可能プログラム命令と
を含むコンピュータプログラム製品。
【請求項１１】
前記リモート識別デバイスは、ワイヤード通信チャネルを使用して、前記コンピュータに接続する請求項10に記載の製品。
【請求項１２】
前記リモート識別デバイスは、ワイヤレス通信チャネルを使用して前記コンピュータに接続する請求項10に記載の製品。
【請求項１３】
前記アプリケーションコンテナは、オペレーティングシステムである請求項10に記載の製品。
【請求項１４】
前記アプリケーションコンテナは、ブラウザアプリケーションであり、前記1つまたは複数のアプリケーションは、個々のウェブページである請求項10に記載の製品。
【請求項１５】
前記認証資格情報は、ユーザ識別子またはアカウント識別子を含む請求項10に記載の製品。
【請求項１６】
ユーザ記録および1つまたは複数の解読鍵を含むリモート認証サーバであって、前記ユーザ記録は、ユーザ認証情報およびユーザ秘密コードを含むリモート認証サーバと、
前記ユーザ秘密コードの暗号化されたバージョンを記憶するメモリを含むリモート識別デバイスと、
記憶デバイスおよび前記記憶デバイスに通信可能に結合されたプロセッサを含むコンピューティングデバイスであって、前記プロセッサは、前記記憶デバイスに記憶され、前記コンピューティングデバイスに、
前記コンピューティングデバイスのアプリケーションコンテナで実行されている、要求するアプリケーションからユーザ認証情報に対する要求を受信することと、
前記コンピューティングデバイスへの前記リモート識別デバイスの接続を検出することと、
前記リモート識別デバイスに記憶された前記ユーザ秘密コードの前記暗号化されたバージョンを読み込むことと、
前記リモート認証サーバに前記暗号化されたユーザ秘密コードを通信することであって、前記リモート認証サーバは、前記1つまたは複数の解読鍵を使用して、前記暗号化されたユーザ秘密コードを解読し、前記コンピューティングデバイスへの対応するユーザ認証情報を識別および通信するために前記解読されたユーザ秘密コードを使用することと、
前記リモート認証サーバから前記ユーザ認証情報を受信することと、
前記コンピューティングデバイスで実行されている、前記要求するアプリケーションに前記ユーザ認証情報を通信することと
を行わせるアプリケーションコード命令を実行するコンピューティングデバイスと
を含む、パスワードなしでコンピューティングデバイスのユーザを認証するためのシステム。
【請求項１７】
前記リモート識別デバイスは、ワイヤード通信チャネルを使用して、前記コンピューティングデバイスに接続する請求項16に記載のシステム。
【請求項１８】
前記リモート識別デバイスは、ワイヤレス通信チャネルを使用して、前記コンピューティングデバイスに接続する請求項16に記載のシステム。
【請求項１９】
前記アプリケーションコンテナは、コンピューティングデバイスのオペレーティングシステムである請求項16に記載のシステム。
【請求項２０】
前記アプリケーションコンテナは、ブラウザアプリケーションであり、前記1つまたは複数の要求するアプリケーションは、個々のウェブページである請求項16に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般的に、コンピューティングデバイスおよびコンピューティングデバイスで実行されているアプリケーションにユーザを認証することに関し、より詳細には、ユーザがパスワードを入力することを必要とせずに、コンピューティングデバイスおよびコンピューティングデバイスで実行されているアプリケーションにユーザを認証することに関する。
【背景技術】
【０００２】
ユーザ認証は、仕事およびパーソナルコンピュータにログオンするとき、ならびにインターネット上の様々なウェブサイトにアクセスするときに行う、ユーザにとっての毎日の儀式である。この認証のために、ユーザは、いくつかの異なるログイン資格情報を使用および記憶する必要がある。さらに、桁、大文字と小文字、および特殊文字を混ぜて使用することを要求する様々なサービスプロバイダによって課される、高まるセキュリティ要件のために、パスワードは、記憶するのがより難しくなった。パスワードが盗まれた場合、多くの場合、事実が明らかになるまで、パスワードが危険にさらされてきたと決定することは可能ではない。したがって、安全であるが、複数のパスワードを維持および入力する面倒なプロセスを要求しない、オフラインおよびオンラインのユーザ認証手段の技術に対してニーズがある。
【発明の概要】
【課題を解決するための手段】
【０００３】
本明細書に記述した特定の例示的な実施形態では、パスワードなしでコンピューティングデバイスでユーザを認証するための方法は、コンピューティングデバイスでのユーザ認証に対する要求を受信するステップと、コンピューティングデバイスへのリモート識別デバイスの接続を検出するステップと、リモート識別デバイスから暗号化されたユーザ秘密コードを読み込むステップと、リモート認証サーバに暗号化されたユーザ秘密コードを通信するステップと、リモート認証サーバからユーザ認証情報を受信するステップと、コンピューティングデバイスの1つまたは複数の要求するアプリケーションにユーザ認証情報を提供することによって、認証されたセッションを確立するステップとを含む。
【０００４】
本明細書に記述した特定の他の例示的な実施形態では、パスワードなしでコンピューティングデバイスでユーザを認証するためのシステムおよびコンピュータプログラム製品が提供される。
【０００５】
例示的な実施形態のこれらおよび他の態様、目的、特徴、および利点は、図示した例示的な実施形態の以下の詳細な説明を考察すると、当業者には明白になるであろう。
【図面の簡単な説明】
【０００６】
【図１】特定の例示的な実施形態により、パスワードなしでコンピューティングデバイスにユーザを認証するためのシステムを示すブロック図である。
【図２】特定の例示的な実施形態により、パスワードなしでコンピューティングデバイスにユーザを認証するための方法を示すブロック流れ図である。
【図３】特定の例示的な実施形態により、リモート識別デバイスにユーザを登録するための方法を示すブロック流れ図である。
【図４】特定の例示的な実施形態による、計算機械およびモジュールを示すブロック図である。
【発明を実施するための形態】
【０００７】
概要
本明細書に記述した実施形態は、ユーザパスワードを要求せずに、コンピューティングデバイスでユーザを認証するためのシステムおよび方法を提供する。認証を要求するアプリケーションは、コンピューティングデバイスのアプリケーションコンテナ内で実行される。アプリケーションコンテナは、コンピューティングデバイスのオペレーティングシステム、またはブラウザアプリケーションの場合がある。ブラウザアプリケーションのオペレーティング環境という状況では、他のアプリケーションは、ブラウザアプリケーションに表示されるウェブページまたはウェブ表示である。ユーザ認証情報に対して1つまたは複数のアプリケーションから要求を受信すると、アプリケーションコンテナで実行されているプラグレシーバモジュールは、リモート識別デバイスとの通信チャネルが確立されているかどうかを決定する。通信チャネルは、ワイヤードまたはワイヤレスの通信チャネルの場合がある。リモート識別デバイスは、暗号化されたユーザ秘密コードを記憶する。リモート識別デバイスが検出された場合、プラグレシーバモジュールは、リモート識別デバイスから暗号化されたユーザ秘密コードを読み込む。
【０００８】
次に、プラグレシーバモジュールは、アプリケーションコンテナ内で実行されている代理モジュールにユーザ秘密コードの暗号化されたバージョンを通信する。代理モジュールは、リモート認証サーバに暗号化されたユーザ秘密コードを通信する。暗号化されたユーザ秘密コードのコピーは、コンピューティングデバイスに記憶または維持されない。コンピューティングデバイスで実行されている他のアプリケーションは、暗号化されたユーザ秘密コードにアクセスしない。リモート認証サーバは、暗号化されたユーザ秘密コードを解読し、リモート認証サーバに記憶された対応するユーザ認証情報を識別するために、解読されたユーザ秘密コードを使用する。ユーザ認証情報は、たとえばユーザ名またはアカウント番号の場合がある。リモート認証サーバは、コンピューティングデバイスの代理モジュールにユーザ認証情報を通信する。
【０００９】
次に、代理モジュールは、1つまたは複数の要求するアプリケーションに対して認証されたセッションを確立する。プラグレシーバモジュールは、リモート識別デバイスとの接続を監視し、リモート識別デバイスが取り外されるか、そうでなければ、リモート識別デバイスとの通信チャネルが閉じられた場合、認証されたセッションを終了する。
【００１０】
ここで、図面の全体を通じて同様の数字は同様の要素(しかし、必ずしも同一でない)を表している図面を見ると、例示的な実施形態について詳細に記述されている。
【００１１】
例示的なシステムアーキテクチャ
図1は、特定の例示的な実施形態により、ユーザパスワードの入力を要求することなく、コンピューティングデバイスおよびアプリケーションにユーザを認証するためのシステム100を示すブロック図である。図1に描写したように、システム100は、1つまたは複数のネットワーク105を介して相互に通信するように構成されたネットワークコンピューティングデバイス110、120、および130を含む。一部の実施形態では、デバイスに関連付けられたユーザは、本明細書に記述された手法の利点を得るために、アプリケーションをインストールし、および/または機能を選択する必要がある。加えて、ネットワークコンピューティングデバイス110と120は、直接接続を介して通信することができる。
【００１２】
各ネットワーク105は、ネットワークデバイス(デバイス110、120、および130を含む)がデータを交換することができるワイヤードまたはワイヤレスの電気通信手段を含む。たとえば、ネットワーク105は、ローカルエリアネットワーク(「LAN」)、ワイドエリアネットワーク(「WAN」)、イントラネット、インターネット、ストレージエリアネットワーク(SAN)、パーソナルエリアネットワーク(PAN)、メトロポリタンエリアネットワーク(MAN)、ワイヤレスローカルエリアネットワーク(WLAN)、仮想プライベートネットワーク(VPN)、セルラー方式もしくは他のモバイル通信ネットワーク、Bluetooth、NFC、またはそれらの任意の組み合わせ、または信号、データ、および/またはメッセージの通信を促進する他の適切なアーキテクチャもしくはシステムを含むことができる。例示的な実施形態の記述の全体にわたって、「データ」および「情報」という用語は、テキスト、イメージ、オーディオ、ビデオ、またはコンピュータベースの環境に存在することができる他の形態の情報を表すために区別なく本明細書に使用されることを理解されたい。
【００１３】
各ネットワークデバイス110および130は、ネットワーク105を通じてデータを送信および受信することができる通信モジュールを持つデバイスを含む。たとえば、各ネットワークデバイス110、120および130は、サーバ、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、1つまたは複数のプロセッサがそこに組み込まれ、および/またはそこに結合されたテレビ、スマートフォン、ハンドヘルドコンピュータ、携帯情報端末(「PDA」)、または任意の他のワイヤードもしくはワイヤレスのプロセッサで駆動されるデバイスを含むことができる。図1に描写された例示的な実施形態では、ネットワークデバイス110、120は、エンドユーザまたは消費者(図示せず)によって運用され、ネットワークデバイス130は、認証サーバオペレータ(図示せず)によって運用される。
【００１４】
図示したネットワーク接続は例を示すものであり、コンピュータとデバイスの間に通信リンクを確立する他の手段が使用され得ることを理解されるであろう。さらに、本開示の恩恵を受ける当業者は、図1に示したコンピューティングデバイス110、リモート識別デバイス120、およびリモート認証サーバ130は、他の複数の適切なコンピュータシステム構成のいずれかを持つことができることを理解されるであろう。たとえば、携帯電話またはハンドヘルドコンピュータとして実施されたコンピューティングデバイス110は、上に記述したすべてのコンポーネントを含んでいるとは限らない場合がある。加えて、リモート識別ドングルとして実施されたコンピューティングデバイス110は、上に記述したすべてのコンポーネントを含んでいない場合がある。
【００１５】
例示的なプロセス
図2および図3に示した例示的な方法について、例示的な動作環境100のコンポーネントに関して以下に記述する。図2および図3の例示的な方法は、また、他のシステムおよび他の環境で実行され得る。
【００１６】
図2は、特定の例示的な実施形態により、パスワードなしでコンピューティングデバイスでユーザを認証するための方法200を示すブロック流れ図である。
【００１７】
方法200は、ブロック205で始まり、そこで、ユーザは、リモート識別デバイス120に登録する。方法205については、図3に関連してさらに詳細に記述する。
【００１８】
図3は、リモート識別デバイスに対してユーザを登録するための方法205を示すブロック流れ図である。方法205は、ブロック305で始まり、そこで、ユーザは認証システムに登録する。たとえば、ユーザは、リモート認証サーバ130によってホストされたウェブサイトにログオンすることができる。登録の間、ユーザは、リモート認証情報にユーザ認証情報を提供する。ユーザ認証情報は、ユーザ名、アカウント番号、またはユーザコンピューティングデバイスの1つまたは複数で実行されているオンラインサービスまたはソフトウェアアプリケーションによって要求される他のユーザに特有の識別情報を含むことができる。
【００１９】
ブロック310で、リモート認証サーバ130は、ユーザ記録に受信されたユーザ認証情報を記憶し、対応するユーザ秘密コードを記録に割り当てる。
【００２０】
ブロック315で、ユーザ秘密コードは、対称もしくは非対称の暗号化またはハッシュ生成アルゴリズムなど暗号化技術を使用して暗号化される。次いで、暗号化されたバージョンは、リモート識別デバイス120に記憶され、ユーザに発行される。リモート識別デバイス120は、暗号化された形式のみでユーザ秘密コードを記憶するメモリ122を含む。リモート識別デバイス120は、USBポートを通じてなどワイヤード接続を介して、またはBluetooth、NFC、RFID、Wi-Fi、もしくは他の適切な接続などワイヤレス接続を介して、コンピューティングデバイス110に接続する、たとえばフラッシュドライブサイズのデバイスまたはより小さいものなど、小型のデバイスの場合がある。あるいは、リモート識別デバイス120は、ワイヤレス接続を使用して、コンピューティングデバイス110に接続するワイヤレスカードデバイスの場合がある。ワイヤレスのリモート識別デバイス120は、アクティベータモジュール121をさらに含むことができる。アクティベータ121は、コンピューティングデバイス110にリモート識別デバイス120を接続するユーザの意図を検出し、タッチ、運動、もしくは音声コマンド、またはコンピューティングデバイス110によるデバイス120の問い合わせを検出することができる。特定の例示的な実施形態では、リモート識別デバイス120は、上記のコンポーネントを含み、携帯可能で目立たず、ユーザが容易にアクセス可能なようにサイズを変更することができる。リモート識別デバイス120が紛失または盗難された場合には、リモート識別デバイス120は、リモート認証サーバ130で、対応するユーザアカウントを凍結させることによって凍結され得る。
【００２１】
図2のブロック210に戻ると、コンピューティングデバイス110で実行されているプラグレシーバモジュール112aは、ユーザ認証情報に対する要求を受信する。コンピューティングデバイス110が起動するか、またはスリープもしくは省電力モードから戻ったときに、認証情報に対する要求が受信され得る。あるいは、認証情報に対する要求は、起動の後に1つまたは複数の要求するアプリケーション114a〜cから受信され得る。たとえば、要求するアプリケーションは、支払いを承認するためにユーザ認証情報を要求するバンキングアプリケーションの場合がある。プラグレシーバモジュール112aおよびすべての要求するアプリケーション114は、アプリケーションコンテナ111で実行される。要求するアプリケーション114が、ユーザ認証情報を必要とすることを決定すると、要求するアプリケーション114は、アプリケーションコンテナ111に認証要求を通信し、要求はプラグレシーバモジュール112aによって受信される。アプリケーションコンテナ111は、コンピューティングデバイスのオペレーティングシステムまたはブラウザアプリケーションの場合がある。オペレーティングシステムの状況では、アプリケーションは、電子ウォレットアプリケーションまたはバンキングアプリケーションなど、コンピューティングデバイス110で実行されている個々のソフトウェアアプリケーションである。ブラウザアプリケーションの状況では、アプリケーションは、ユーザログイン用のウェブページなど、個々のウェブページまたはウェブ表示である。特定の例示的な実施形態では、プラグレシーバモジュール112aは、コンピューティングデバイス110に表示するために、ユーザ認証情報に対する要求が受信されたことを示すメッセージを通信することができる。メッセージは、コンピューティングデバイス110にユーザがユーザのリモート識別デバイス120を接続することをさらに要求することができる。
【００２２】
ユーザが、要求された認証を提供することを希望する場合、次いで、ユーザは、コンピューティングデバイス110の適切なポートにリモート識別デバイス120を直接的に差し込むか、またはコンピューティングデバイス110へのワイヤレス接続を確立するためにアクティベータ121を連結することによって、コンピューティングデバイス110にユーザのリモート識別デバイス120を接続する。次いで、方法は、ブロック215に進む。
【００２３】
ブロック215で、プラグレシーバモジュール112aは、リモート識別デバイス120がコンピューティングデバイス110に接続されているかどうかを決定する。プラグレシーバモジュール112aは、リモート識別デバイス120がコンピューティングデバイス110に接続し通信することを可能にする。プラグレシーバモジュール112aは、リモート識別デバイス120が、ワイヤードまたはワイヤレスの接続を使用して、コンピューティングデバイス110に接続することを可能にすることができる。プラグレシーバモジュール112aは、リモート識別デバイス120が接続されているかどうかを決定するために、設定された期間、待つことができる。設定された時間期間が経過し、リモート識別アプリケーション120が検出されていない場合、方法は、ブロック220に進む。
【００２４】
ブロック220で、プラグレシーバモジュール112aは、コンピューティングデバイス110によって表示するためにメッセージを通信する。メッセージは、リモート識別デバイス120が検出されていないことを示し、ユーザがユーザのリモート識別デバイス120を接続することを要求する。次いで、プラグレシーバモジュール112aは、リモート識別デバイス120が接続されているかどうかを決定するために、設定された期間、再び待つことができる。このプロセスは、プロセスの前に、定義された反復回数、繰り返すことができ、方法200が終了する。プラグレシーバモジュール112aがリモート識別デバイス120を検出した場合、次いで、方法は、ブロック225に進む。
【００２５】
ブロック225で、プラグレシーバモジュール112aは、リモート識別デバイス120に記憶された、暗号化されたユーザ秘密コードを読み込むか、そうでなければ受信する。プラグレシーバモジュール112aは、代理モジュール112bに暗号化されたユーザ秘密コードを通信する。プラグレシーバモジュール112aは、コンピューティングデバイス110に暗号化されたユーザ秘密コードを記憶せず、要求するアプリケーション114またはコンピューティングデバイス110の他のコンポーネントに、暗号化されたユーザ秘密コードへのアクセスを提供しない。特定の例示的な実施形態では、プラグレシーバモジュール112aは、単に、リモート識別デバイス120から暗号化された秘密コードを読み込んだ後に、代理モジュール112bに暗号化された秘密コードを通信し、コンピューティングデバイス110の永久的または一時的なデータ記憶構造に、暗号化されたユーザ秘密コードのコピーを記憶または維持しない。
【００２６】
ブロック230で、代理モジュール112bは、リモート認証サーバ130に暗号化されたユーザ秘密コードを通信する。特定の例示的な実施形態では、代理モジュール112bは、プラグレシーバモジュール112aから暗号化されたユーザ秘密コードを受信した後、およびリモート認証サーバ130に暗号化されたユーザ秘密コードを通信する前に、ユーザに二次的な承認を要求することができる。たとえば、代理モジュール112bは、コンピューティングデバイス110によって表示されるユーザインターフェースオブジェクトを通信することができ、ユーザインターフェースオブジェクトは、パスワードもしくは個人識別番号または他の適切な認証情報を入力するようにユーザに促す。この二次的な認証情報は、代理モジュール112bによって記憶され得るか、またはプラグレシーバモジュール112aによってリモート識別デバイス120から読み込まれて、暗号化されたユーザ秘密コードを用いて代理モジュール112bに通信され得る。
【００２７】
特定の例示的な実施形態では、代理モジュール112bは、期限切れポリシーを設定するか、そうでなければ構成することを希望するかどうかをユーザに尋ねる、コンピューティングデバイス110に表示されるユーザインターフェースオブジェクトをさらに通信することができる。期限切れポリシーは、代理モジュール112bによって取得された、認証されたセッションの終了をトリガする時間期間または他のイベントを定義することができる。ユーザインターフェースオブジェクトは、また、認証の範囲を設定するようにユーザに促すことができる。たとえば、ユーザは、現在の認証セッションの間に認証情報に依存することができるアプリケーションの数またはタイプを制限することができる。
【００２８】
特定の例示的な実施形態では、代理モジュール112bは、単に、プラグレシーバモジュール112aから暗号化された秘密コードを受信した後に、リモート認証サーバに暗号化された秘密コードを通信し、コンピューティングデバイスの永久的または一時的なデータ記憶構造に、暗号化されたユーザ秘密コードのコピーを記憶または維持しない。特定の他の例示的な実施形態では、代理モジュール112bは、リモート認証サーバ130に暗号化されたユーザ秘密コードを通信した後、コンピューティングデバイス110の任意のデータ構造に一時的に記憶されている、暗号化されたユーザ秘密コードの任意のコピーを削除する。
【００２９】
ブロック235で、リモート認証サーバ130は、暗号化されたユーザ秘密コードを解読する。使用される解読のタイプは、使用される暗号に依存し、リモート識別デバイス120にユーザ秘密コードを作成および記憶する。たとえば、対称または非対称の暗号手法を使用して、ユーザ秘密コードが暗号化される場合、リモート認証サーバ130は、ユーザ秘密コードを解読するために必要とされる対応する暗号鍵を記憶する。同様に、ユーザ秘密コードが、安全なハッシュとしてリモート識別デバイス120に記憶されている場合、リモート認証サーバ130は、ユーザ秘密コードを再生成するために必要とされる、対応するハッシュ鍵およびハッシュアルゴリズムのコピーを維持する。リモート認証サーバ130は、ユーザ認証情報および割り当てられたユーザ秘密コードを含むユーザ記録を含む。リモート認証サーバ130は、対応する割り当てられたユーザ秘密コードを用いてユーザ記録を識別するために、解読されたユーザ秘密コードを使用し、次いで、識別された記録に対応するユーザ認証情報を読み込むことができる。ユーザ認証情報は、ユーザ名、アカウント番号、パスワード、または他のユーザに特有の識別情報の場合がある。対応する認証情報を識別した後、リモート認証サーバ130は、代理モジュール112bに認証情報を通信する。特定の例示的な実施形態では、リモート認証サーバ130は、認証モジュール112aに認証情報を伝達する前に、認証情報を暗号化する。ユーザ認証情報を暗号化するために使用されるこの暗号化は、ユーザ秘密コードを暗号化するために使用される暗号とは異なる場合があり、リモート認証サーバ130からコンピューティングデバイス110までの安全な送信に使用される。
【００３０】
ブロック240で、代理モジュール112bは、リモート認証サーバ130からユーザ認証情報を受信する。ユーザ認証情報が暗号化されている場合、認証モジュール112bは、認証情報を解読する。認証モジュール112aは、暗号化または解読された形で、ペーストボードなど一時的なデータ空間に認証情報を記憶することができる。
【００３１】
ブロック245で、代理モジュール112aは、1つまたは複数の要求するアプリケーションに認証情報へのアクセスを提供することによって、認証されたセッションを確立する。1つの例示的な実施形態では、認証情報は、1つまたは複数の要求するアプリケーション114に直接的に通信され得る。別の例示的な実施形態では、認証モジュール112aは、認証情報に1つまたは複数の要求するアプリケーションによって一時的にアクセスされ得るURLを提供することができる。要求するアプリケーションは、方法200の実行の間のどの時点においても、ユーザ秘密コードにアクセスしない。
【００３２】
ブロック250で、接続モジュール112bは、リモート識別デバイス120が切断されたこと、または期限切れポリシーが呼び出されたことを検出する。たとえば、設定された期間の制限は、期限が切れている場合がある。
【００３３】
ブロック255で、認証モジュール112aは、リモート識別デバイス120が切断されたか、期限切れポリシーが呼び出されたことを検出するのに応じて、1つまたは複数の要求するアプリケーション114との認証されたセッションを終了する。たとえば、代理モジュール112aは、以前に認証アプリケーションに利用可能になった認証情報を消去することができる。特定の例示的な実施形態では、代理モジュール112aは、ユーザがログアウトするか、または要求するアプリケーションもしくはブラウザアプリケーションがシャットダウンすることを要求するログアウトプロトコルを実行することができる。
【００３４】
他の例示的な実施形態
図4は、特定の例示的な実施形態による計算機械2000およびモジュール2050を示している。計算機械2000は、様々なコンピュータ、サーバ、モバイルデバイス、組み込まれたシステム、または本明細書に提示されたコンピューティングシステムのいずれかに対応することができる。モジュール2050は、本明細書に提示された様々な方法および処理機能を実行する際に、計算機械2000を促進するように構成された1つまたは複数のハードウェアまたはソフトウェアの要素を含むことができる。計算機械2000は、プロセッサ2010、システムバス2020、システムメモリ2030、記憶媒体2040、入力/出力インターフェース2060、およびネットワーク2080と通信するためのネットワークインターフェース2070など、様々な内部コンポーネントまたは接続されたコンポーネントを含むことができる。
【００３５】
計算機械2000は、従来のコンピュータシステム、組み込みコントローラ、ラップトップ型コンピュータ、サーバ、モバイルデバイス、スマートフォン、セットトップボックス、キオスク、乗り物の情報システム、テレビに関連付けられた1つまたは複数のプロセッサ、カスタマイズされた機械、他のハードウェアプラットフォーム、またはその任意の組み合わせもしくは多数として実装され得る。計算機械2000は、データネットワークまたはバスシステムを介して相互に接続された複数の計算機械を使用して機能するように構成された分散型システムの場合がある。
【００３６】
プロセッサ2010は、本明細書に記述した動作および機能を実行するためにコードまたは命令を実行し、要求フローおよびアドレス対応を管理し、および計算を実行しコマンドを生成するように構成され得る。プロセッサ2010は、計算機械2000のコンポーネントの動作を監視および制御するように構成され得る。プロセッサ2010は、汎用プロセッサ、プロセッサコア、マルチプロセッサ、再構成可能なプロセッサ、マイクロコントローラ、デジタル信号プロセッサ(「DSP」)、特定用途向け集積回路(「ASIC」)、グラフィック処理ユニット(「GPU」)、フィールドプログラマブルゲートアレイ(「FPGA」)、プログラマブルロジックデバイス(「PLD」)、コントローラ、状態機械、ゲートロジック(gated logic)、個別のハードウェアコンポーネント、他の処理ユニット、またはその任意の組み合わせもしくは多数の場合がある。プロセッサ2010は、単一の処理ユニット、複数の処理ユニット、単一の処理コア、複数の処理コア、専用処理コア、コプロセッサ、または任意のそれらの組み合わせの場合がある。特定の実施形態によると、計算機械2000の他のコンポーネントとともにプロセッサ2010は、1つまたは複数の他の計算機械内で実行される仮想化された計算機械の場合がある。
【００３７】
システムメモリ2030は、読み取り専用メモリ(「ROM」)、プログラム可能読み取り専用メモリ(「PROM」)、消去可能プログラム可能読み取り専用メモリ(「EPROM」)、フラッシュメモリ、または印加された電力を用いて、または用いずにプログラム命令またはデータを記憶することができる他のデバイスなど不揮発性メモリを含むことができる。システムメモリ2030は、また、ランダムアクセスメモリ(「RAM」)、スタティックランダムアクセスメモリ(「SRAM」)、ダイナミックランダムアクセスメモリ(「DRAM」)および同期的なダイナミックランダムアクセスメモリ(「SDRAM」)など揮発性メモリを含むことができる。他のタイプのRAMは、また、システムメモリ2030を実装するために使用され得る。システムメモリ2030は、単一のメモリモジュールまたは複数のメモリモジュールを使用して実装され得る。システムメモリ2030は、計算機械2000の一部として描写されているが、システムメモリ2030は、主題となる技術の範囲から逸脱することなく計算機械2000から分離され得ることを当業者は認識されるであろう。また、システムメモリ2030は、記憶媒体2040など不揮発性記憶デバイスを含むか、またはそれと連携して動作することができることを理解されたい。
【００３８】
記憶媒体2040は、ハードディスク、フロッピーディスク、コンパクトディスク読み取り専用メモリ(「CD-ROM」)、デジタル多用途ディスク(「DVD」)、ブルーレイディスク、磁気テープ、フラッシュメモリ、他の不揮発性メモリデバイス、ソリッドステートドライブ(「SSD」)、任意の磁気記憶デバイス、任意の光学記憶デバイス、任意の電気記憶デバイス、任意の半導体記憶デバイス、任意の物理ベースの記憶デバイス、他のデータ記憶デバイス、またはその任意の組み合わせもしくは多数を含むことができる。記憶媒体2040は、1つまたは複数のオペレーティングシステム、アプリケーションプログラムおよびモジュール2050などプログラムモジュール、データ、または他の情報を記憶することができる。記憶媒体2040は、計算機械2000の一部であるか、またはそこに接続され得る。記憶媒体2040は、また、サーバ、データベースサーバ、クラウド記憶装置、ネットワーク接続された記憶装置など、計算機械2000との通信状態にある1つまたは複数の他の計算機械の一部の場合がある。
【００３９】
モジュール2050は、本明細書に提示された様々な方法および処理機能を実行する際に、計算機械2000を促進するように構成された1つまたは複数のハードウェアまたはソフトウェア要素を含むことができる。モジュール2050は、システムメモリ2030、記憶媒体2040、または両方と関連してソフトウェアまたはファームウェアとして記憶された命令の1つまたは複数の連続を含むことができる。したがって、記憶媒体2040は、命令またはコードがプロセッサ2010によって実行するために記憶され得る機械またはコンピュータ可読媒体の例を表す場合がある。機械またはコンピュータ可読媒体は、一般的に、プロセッサ2010に命令を提供するために使用される任意の媒体または媒体を指すことができる。モジュール2050に関連付けられたそのような機械またはコンピュータ可読媒体は、コンピュータソフトウェア製品を含むことができる。モジュール2050を含むコンピュータソフトウェア製品は、また、ネットワーク2080、任意の信号伝達媒体、または他の通信もしくは伝達技術を介して、計算機械2000にモジュール2050を送るために、1つまたは複数のプロセスまたは方法に関連付けられ得ることを理解されたい。モジュール2050は、また、ハードウェア回路、またはFPGAもしくは他のPLDに対して、マイクロコードもしくは構成情報などハードウェア回路を構成するための情報を含むことができる。
【００４０】
入力/出力(「I/O」)インターフェース2060は、1つまたは複数の外部デバイスに結合し、1つまたは複数の外部デバイスからデータを受信し、1つまたは複数の外部デバイスへデータを送るように構成され得る。様々な内部デバイスとともにそのような外部デバイスも、周辺デバイスとして認識され得る。I/Oインターフェース2060は、計算機械2000またはプロセッサ2010に様々な周辺デバイスを操作可能なように結合するための電気的接続および物理的接続の両方を含むことができる。I/Oインターフェース2060は、周辺デバイス、計算機械2000、またはプロセッサ2010の間でデータ、アドレス、および制御信号を通信するように構成され得る。I/Oインターフェース2060は、スモールコンピュータシステムインターフェース(「SCSI」)、シリアルアタッチドSCSI(「SAS」)、ファイバチャネル、ペリフェラルコンポーネントインターコネクト(「PCI」)、PCI Express(PCIe)、シリアルバス、パラレルバス、アドバンストテクノロジーアタッチメント(「ATA」:advanced technology attached)、シリアルATA(「SATA」)、ユニバーサルシリアルバス(「USB」)、サンダーボルト、FireWire、様々なビデオバスなど、任意の標準インターフェースを実装するように構成され得る。I/Oインターフェース2060は、1つだけのインターフェースまたはバス技術を実装するように構成され得る。あるいは、I/Oインターフェース2060は、複数のインターフェースまたはバス技術を実装するように構成され得る。I/Oインターフェース2060は、システムバス2020の一部、全部として、またはそれと連携して動作するように構成され得る。I/Oインターフェース2060は、1つまたは複数の外部デバイス、内部デバイス、計算機械2000、またはプロセッサ2010の間の送信をバッファリングするために1つまたは複数のバッファを含むことができる。
【００４１】
I/Oインターフェース2060は、マウス、タッチスクリーン、スキャナ、電子デジタイザ、センサ、受信機、タッチパッド、トラックボール、カメラ、マイクロホン、キーボード、他のポインティングデバイス、またはその任意の組み合わせを含む各種入力デバイスに計算機械2000を結合することができる。I/Oインターフェース2060は、ビデオディスプレイ、スピーカ、プリンタ、プロジェクタ、触覚フィードバックデバイス、自動化制御、ロボットコンポーネント、アクチュエータ、モータ、ファン、ソレノイド、バルブ、ポンプ、送信機、信号エミッタ、光などを含む様々な出力デバイスに計算機械2000を結合することができる。
【００４２】
計算機械2000は、ネットワーク2080を横断して、1つまたは複数の他のシステムまたは計算機械へのネットワークインターフェース2070を通じて、論理接続を使用して、ネットワーク化された環境で動作することができる。ネットワーク2080は、ワイドエリアネットワーク(WAN)、ローカルエリアネットワーク(LAN)、イントラネット、インターネット、ワイヤレスアクセスネットワーク、ワイヤードネットワーク、モバイルネットワーク、電話ネットワーク、光学ネットワーク、またはその組み合わせを含むことができる。ネットワーク2080は、パケット交換、回線交換、または任意のトポロジの場合があり、任意の通信プロトコルを使用することができる。ネットワーク2080内の通信リンクは、光ファイバケーブル、自由空間光通信、導波路、導電体、ワイヤレスリンク、アンテナ、無線周波数通信など様々なデジタルまたはアナログの通信媒体を伴うことができる。
【００４３】
プロセッサ2010は、システムバス2020を通じて、本明細書に記述した計算機械2000の他の要素または様々な周辺装置に接続され得る。システムバス2020は、プロセッサ2010内、プロセッサ2010外、または両方ある場合があることを理解されたい。一部の実施形態によると、本明細書に記述したプロセッサ2010、計算機械2000の他の要素、または様々な周辺装置のいずれかは、システムオンチップ(「SOC」)、システムオンパッケージ(「SOP」)、またはASICデバイスなど単一のデバイスへ統合され得る。
【００４４】
本明細書に記述したシステムが、ユーザに関する個人情報を収集するか、または個人情報を利用することができる状況では、ユーザは、プログラムまたは機能がユーザ情報(たとえば、ユーザのソーシャルネットワーク、社会活動、または行動に関する情報、職業、ユーザの好み、またはユーザの現在の場所)を収集するかどうかを制御するか、またはコンテンツサーバからユーザにより関連する可能性があるコンテンツを受信するかどうか、および/またはその方法を制御するための機会を提供され得る。加えて、特定のデータは、個人的に識別可能な情報が削除されるように、記憶または使用される前に、1つまたは複数の方法で処理され得る。たとえば、ユーザの識別情報は、個人的に識別可能な情報がユーザに対して決定され得ないように処理され得るか、またはユーザの特定の場所が決定され得ないように、位置情報が取得されたユーザの地理的な場所(市、郵便番号、または州レベル(city, ZIP code, or state level)など)が一般化され得る。したがって、ユーザは、ユーザに関する情報がどのように収集されるか、およびコンテンツサーバによってどのように使用されるかを制御することができる。
【００４５】
実施形態は、本明細書に記述および図示した機能を実施するコンピュータプログラムを含むことができ、コンピュータプログラムは、機械可読媒体に記憶された命令および命令を実行するプロセッサを含むコンピュータシステムに実装される。しかし、コンピュータプログラミングにおいて実施形態を実装する多くの異なる方法がある可能性があり、実施形態は、コンピュータプログラム命令の任意の1組に限定するものと解釈されるべきでないことは明白であろう。さらに、熟練したプログラマは、出願文の添付されたフローチャートおよび関連する記述に基づいて、開示された実施形態のうちの一実施形態を実装するために、そのようなコンピュータプログラムを記述することができるであろう。したがって、プログラムコード命令の特定の組の開示は、実施形態をどのように構成および使用するかについて適切に理解するために必要であるとは考えられない。さらに、当業者は、本明細書に記述した実施形態の1つまたは複数の態様は、1つまたは複数のコンピューティングシステムで実施され得るように、ハードウェア、ソフトウェア、またはそれらの組み合わせによって実行され得ることを理解されるであろう。さらに、複数のコンピュータが動作を実行することができるため、コンピュータによって実行されている動作へのいくつかの言及は、単一のコンピュータによって実行されるものとして解釈されるべきでない。
【００４６】
本明細書に記述した例示的な実施形態は、本明細書に記述した方法および処理機能を実行するコンピュータハードウェアおよびソフトウェアとともに使用され得る。本明細書に記述したシステム、方法、および手順は、プログラム可能なコンピュータ、コンピュータ実行可能ソフトウェア、またはデジタル回路で実施され得る。ソフトウェアは、コンピュータ可読媒体に記憶され得る。たとえば、コンピュータ可読媒体は、フロッピーディスク、RAM、ROM、ハードディスク、リムーバブル媒体、フラッシュメモリ、メモリスティック、光学媒体、光磁気媒体、CD-ROMなどを含むことができる。デジタル回路は、集積回路、ゲートアレイ、ビルディングブロックロジック、フィールドプログラマブルゲートアレイ(FPGA)などを含むことができる。
【００４７】
以前に提示した実施形態に記述した例示的なシステム、方法、および動作は実例であり、代替実施形態では、特定の動作は、異なる順序で、並行して実行される、完全に省略される、および/または異なる例示的な実施形態間で組み合わせられ得て、および/または様々な実施形態の範囲および精神から逸脱することなく、特定の追加の動作が実行され得る。したがって、そのような代替実施形態は、以下の請求項に含まれており、その範囲は、そのような代替実施形態を包含するように最も広い解釈を与えられるものである。
【００４８】
特定の実施形態について上に詳細に記述しているが、記述は単に説明を目的とするものである。したがって、上に記述した多くの態様は、明示的に記述していない限り、必要とされる要素または必須の要素として意図するものではないことを理解されたい。上に記述したものに加えて、例示的な実施形態の開示された態様への変更、およびそれに対応する同等なコンポーネントまたは動作は、以下の特許請求の範囲に定義された実施形態の精神および範囲から逸脱することなく、本開示の恩恵を受ける当業者によってなし得るものであり、その範囲はそのような変更および同等な構造を包含するように最も広い解釈を与えられるものである。
【符号の説明】
【００４９】
100  システム
100  動作環境
105  ネットワーク
110、120、130  ネットワークコンピューティングデバイス
111  アプリケーションコンテナ
112a  プラグレシーバモジュール
112a  代理モジュール
112a  認証モジュール
112b  接続モジュール
112b  代理モジュール
112b  認証モジュール
114  アプリケーション
114a  要求するアプリケーション
114b  要求するアプリケーション
114c  要求するアプリケーション
120  コンピューティングデバイス
120  リモート識別アプリケーション
120  リモート識別デバイス
120  リモート接続デバイス
121  アクティベータモジュール
122  メモリ
130  ネットワークデバイス
130  リモート識別サーバ
130  リモート認証サーバ
2000  計算機械
2010  プロセッサ
2020  システムバス
2030  システムメモリ
2040  記憶媒体
2050  モジュール
2060  入力/出力(「I/O」)インターフェース
2070  ネットワークインターフェース
2080  ネットワーク
【図１】
2017511673.tif 000003
【図２】
2017511673.tif 000004
【図３】
2017511673.tif 000005
【図４】
2017511673.tif 000006
【国際調査報告】
2017511673.tif 000007
2017511673.tif 000008