(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-11
(45)【発行日】2024-11-19
(54)【発明の名称】装置への安全な資格情報転送を認証するための方法およびシステム
(51)【国際特許分類】
G06F 21/44 20130101AFI20241112BHJP
G06F 21/57 20130101ALI20241112BHJP
【FI】
G06F21/44
G06F21/57 370
【外国語出願】
(21)【出願番号】P 2023117262
(22)【出願日】2023-07-19
(62)【分割の表示】P 2022506248の分割
【原出願日】2020-07-22
【審査請求日】2023-08-16
(32)【優先日】2019-07-30
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】スホムリノフ,バディム
(72)【発明者】
【氏名】マーティン,アルベルト
(72)【発明者】
【氏名】プロニン,アンドレイ
【審査官】岸野 徹
(56)【参考文献】
【文献】特開2014-238664(JP,A)
【文献】特表2008-537370(JP,A)
【文献】米国特許出願公開第2013/0073463(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/00-88
(57)【特許請求の範囲】
【請求項1】
第1のクライアント装置の1つ以上のプロセッサが、ユーザから、第2のクライアント装置を認証するプロセスを開始するための入力を受信することと、
前記1つ以上のプロセッサが、前記ユーザ入力の受信に応答して、前記第2のクライアント装置上で安全な資格情報転送を開始するための命令を、前記第2のクライアント装置に送信することと、
前記1つ以上のプロセッサが、前記第2のクライアント装置から、前記送信された命令に応答して送信された、前記第2のクライアント装置の識別子を受信することと、
前記1つ以上のプロセッサが、前記ユーザの識別情報を検証すること、
前記1つ以上のプロセッサが、前記受信した識別子に従って、前記第2のクライアント装置の識別情報を検証することと、
前記1つ以上のプロセッサが、前記ユーザの前記識別情報および前記第2のクライアント装置の前記識別情報の検証に応答して、ユーザアカウントまたはユーザプロファイルへのアクセスを前記第2のクライアント装置に許可するプリセット期間において、セッションを開始することとを含む、方法。
【請求項2】
前記ユーザ入力は、前記安全な資格情報転送を行うための前記ユーザアカウント
を示す情報を提供する、請求項1に記載の方法。
【請求項3】
前記1つ以上のプロセッサが、前記ユーザ入力の受信に応答して、前記安全な資格情報転送を行うための前記第1のクライアント装置、前記ユーザアカウントまたは前記ユーザプロファイルの少なくとも1つに関連する情報を、認証サーバに送信することをさらに含む、請求項2に記載の方法。
【請求項4】
前記ユーザの前記識別情報の検証に応答して、チャレンジ情報を前記第2のクライアント装置に送信することと、
前記1つ以上のプロセッサが、前記チャレンジ情報に応答して、前記安全な資格情報転送を行うための転送トークンを受信することとをさらに含む、請求項3に記載の方法。
【請求項5】
前記1つ以上のプロセッサが、前記転送トークンの受信に応答して、前記第1のクライアント装置のディスプレイ上で、前記ユーザアカウントの選択に関するプロンプトを前記
ユーザに提示することと、
前記1つ以上のプロセッサが、前記プロンプトに応答して、前記ユーザから、選択されたアカウントを含む入力を受信することとをさらに含む、請求項4に記載の方法。
【請求項6】
前記1つ以上のプロセッサが、前記選択されたアカウントの一時トークンを要求するためのリクエストを、前記認証サーバに送信することをさらに含む、請求項5に記載の方法。
【請求項7】
前記1つ以上のプロセッサが、前記送信されたリクエストに応答して、前記一時トークンを受信することをさらに含む、請求項6に記載の方法。
【請求項8】
前記1つ以上のプロセッサが、前記一時トークンの受信に応答して、前記一時トークンを前記第2のクライアント装置に送信することをさらに含む、請求項7に記載の方法。
【請求項9】
前記1つ以上のプロセッサが、前記一時トークンの送信に応答して、前記第2のクライアント装置から、正式なセッショントークンを受信することをさらに含む、請求項8に記載の方法。
【請求項10】
前記正式なセッショントークンの受信に応答して、前記選択されたアカウントへのアクセスを前記第2のクライアント装置に許可することをさらに含む、請求項9に記載の方法。
【請求項11】
方法であって、
第1のクライアント装置の1つ以上のプロセッサが、第2のクライアント装置から、前記第1のクライアント装置上で安全な資格情報転送を開始するための命令を含む第1の情報を受信することを含み、前記第2のクライアント装置は、ユーザアカウントまたはユーザプロファイルに関連付けられ、
前記1つ以上のプロセッサが、前記第1の情報の受信に応答して、前記第1のクライアント装置上で、前記安全な資格情報転送に対するユーザ確認を促すプロンプトを生成することと、
前記1つ以上のプロセッサが、前記ユーザ確認の受信に応答して、(i)前記第1のクライアント装置の識別子および(ii)ユーザ識別情報の検証要求を、前記第2のクライアント装置に送信することと、
前記1つ以上のプロセッサが、受信した検証チャレンジに対する応答を生成することとを含み、前記応答は、前記第1のクライアント装置の安全状態に関連する識別子を含む署名を含み、
前記1つ以上のプロセッサが、前記生成された応答を認証サーバに送信することと、
前記認証サーバから、前記安全な資格情報転送を行うための1以上のトークンを取得することと、
前記1つ以上のプロセッサが、前記取得された1つ以上のトークンを用いて、前記第2のクライアント装置とのセッションを開始することとを含み、前記セッションは、プリセット期間において公開であり、
前記1つ以上のプロセッサが、前記プリセット期間において前記ユーザアカウントまたは前記ユーザプロファイルにアクセスすることとを含む、方法。
【請求項12】
前記取得された1つ以上のトークンは、転送トークンをさらに含む、請求項11に記載の方法。
【請求項13】
前記1つ以上のプロセッサが、前記転送トークンを、前記第2のクライアント装置に送信することをさらに含む、請求項12に記載の方法。
【請求項14】
前記1つ以上のプロセッサが、前記第2のクライアント装置から、一時トークンを受信することをさらに含む、請求項11に記載の方法。
【請求項15】
前記取得された1つ以上のトークンは、転送トークンをさらに含み、
前記1つ以上のプロセッサが、セキュリティコンポーネントからの識別子を用いて、前記一時トークンに署名することと、
前記1つ以上のプロセッサが、前記署名された一時トークンと前記転送トークンを前記認証サーバに送信して、前記第1のクライアント装置と前記第2のクライアント装置との間のチャネルを検証することとをさらに含む、請求項14に記載の方法。
【請求項16】
前記取得された1つ以上のトークンは、正式なセッショントークンをさらに含む、請求項15に記載の方法。
【請求項17】
前記1つ以上のプロセッサが、前記署名されて送信された一時トークンに応答して、前記認証サーバから、前記正式なセッショントークンを受信することをさらに含む、請求項16に記載の方法。
【請求項18】
前記1つ以上のプロセッサが、前記正式なセッショントークンを前記第2のクライアント装置に送信することをさらに含む、請求項17に記載の方法。
【請求項19】
前記1つ以上のプロセッサが、前記送信された正式なセッショントークンに応答して、前記第2のクライアント装置から、前記ユーザアカウントまたは前記ユーザプロファイルにアクセスするための許可を受信することをさらに含む、請求項18に記載の方法。
【請求項20】
前記1つ以上のプロセッサが、前記送信された正式なセッショントークンに応答して、前記第2のクライアント装置から、前記ユーザプロファイルを受信することをさらに含む、請求項18記載の方法。
【発明の詳細な説明】
【背景技術】
【0001】
関連出願の参照
本願は、2019年7月30日に提出された米国出願16/526384の継続であり、その開示全体が参照により本明細書に組み込まれる。
【0002】
背景
新しい装置をセットアップするときに、ユーザは、パスワードを提供することによって、2要素認証を使用することによって、または他の方法で、システムに再度ログインしなければならない。このログインプロセスは、追加のステップ、例えば、パスワード検索システムにアクセスすることを含むことができる。ログインする前に、ユーザは、新しい装置を完全に探索することができず、新しい装置が自身のニーズに適合するか否かまたは新しい装置が仕事または他の用途のための安全な装置であるか否かを判断することができない。
【発明の概要】
【課題を解決するための手段】
【0003】
概要
本開示の態様は、装置への安全な資格情報転送(secure credential transfer)を認証するための方法を提供する。この方法は、第1のクライアント装置上の1つ以上の第1のプロセッサが、第2のクライアント装置への安全な資格情報転送を開始するためのユーザ入力を受信することを含み、ユーザ入力は、情報を第2のクライアント装置に送信することをトリガし、1つ以上の第1のプロセッサが、ユーザIDの入力を要求し、ユーザIDの入力を受信することによって、ユーザ識別情報(user identity)を検証(verify)することと、第2のクライアント装置の1つ以上の第2のプロセッサが、第2のクライアント装置のハードウェアから、第2のクライアント装置の安全状態(security status)を決定し、第2のクライアント装置の安全状態に関連する識別子を認証サーバ(authentication server)に呼び出し、および呼び出された識別子に基づいた第2のクライアント装置の証明書(certification)を認証サーバから受信することによって、第2のクライアント装置の装置識別情報(device identity)を検証することと、1つ以上の第2のプロセッサが、安全な資格情報転送を行うためのアカウントに関連する1つ以上のトークンを受信することと、ユーザ識別情報および装置識別情報を検証した後、1つ以上の第1のプロセッサおよび1つ以上の第2のプロセッサが、1つ以上のトークンを用いて、第1のクライアント装置と第2のクライアント装置との間に安全な資格情報転送を行うための安全な通信チャネルを確立することとを含む。
【0004】
一例において、第2のクライアント装置への安全な資格情報転送を開始するためのユーザ入力は、第1のクライアント装置上にインストールされたアプレットに入力されたタップを含む。別の例において、情報は、近距離通信を用いて、第1のクライアント装置から第2のクライアント装置に送信される。この例において、方法は、第2のクライアント装置の1つ以上の第2のプロセッサが、情報を受信した後、第2のクライアント装置への安全な資格情報転送に対するユーザ確認(user confirmation)を要求することをさらに含む。
【0005】
さらなる例において、ユーザIDの入力は、第1のクライアント装置のユーザ識別情報に対する既存の検証である。さらに別の例において、第2のクライアント装置の安全状態は、第2のクライアント装置の信頼できるセキュリティチップから決定される。さらに別の例において、認証サーバからの証明書は、呼び出された識別子が認証サーバのデータベース内の既知のクライアント装置に関連付けられていることを示す。
【0006】
別の例において、方法は、1つ以上の第1のプロセッサが、第2のクライアント装置の証明書を受信することをさらに含む。さらなる例において、方法は、1つ以上の第1のプロセッサが、安全な資格情報転送を行うためのアカウントの選択を受信することをさらに含む。さらに別の例において、第2のクライアント装置の安全状態に関連する識別子を認証サーバに呼び出すことは、第1のクライアント装置を、識別子を認証サーバに呼び出すためのプロキシとして使用することを含む。
【0007】
本開示の他の態様は、1つ以上のプロセッサが実行可能な命令を記憶するように構成された非一時的なコンピュータ可読媒体を提供する。命令は、実行されると、1つ以上のプロセッサに方法を実行させる。この方法は、第1のクライアント装置が、第2のクライアント装置への安全な資格情報転送を開始するためのユーザ入力を受信することを含み、ユーザ入力は、情報を第2のクライアント装置に送信することをトリガし、第1のクライアント装置が、ユーザIDの入力を要求し、および1つ以上の第1のプロセッサがユーザIDの入力を受信することによって、ユーザ識別情報を検証することと、第2のクライアント装置が、第2のクライアント装置のハードウェアから、第2のクライアント装置の安全状態を決定し、第2のクライアント装置の安全状態に関連する識別子を認証サーバに呼び出し、および呼び出された識別子に基づいた第2のクライアント装置の証明書を認証サーバから受信することによって、第2のクライアント装置の装置識別情報を検証することと、安全な資格情報転送を行うためのアカウントに関連する1つ以上のトークンを認証サーバから受信することと、ユーザ識別情報および装置識別情報を検証した後、第1のクライアント装置と第2のクライアント装置との間に安全な資格情報転送を行うための安全な通信チャネルを確立することとを含む。
【0008】
一例において、第2のクライアント装置への安全な資格情報転送を開始するためのユーザ入力は、第1のクライアント装置上にインストールされたアプレットに入力されたタップを含む。別の例において、情報は、近距離通信を用いて、第1のクライアント装置から第2のクライアント装置に送信される。さらなる例において、第2のクライアント装置の安全状態は、第2のクライアント装置の信頼できるセキュリティチップから決定される。さらに別の例において、認証サーバからの証明書は、呼び出された識別子が認証サーバのデータベース内の既知のクライアント装置に関連付けられていることを示す。
【0009】
さらなる例において、この方法は、第1のクライアント装置が、第2のクライアント装置の証明書を受信することをさらに含む。別の例において、方法は、第1のクライアント装置が、安全な資格情報転送を行うためのアカウントの選択を受信することをさらに含む。さらなる例において、第2のクライアント装置の安全状態に関連する識別子を認証サーバに呼び出すことは、第1のクライアント装置を、識別子を認証サーバに呼び出すためのプロキシとして使用することを含む。
【0010】
本開示のさらなる態様は、システムを提供する。システムは、安全状態が既に検証された複数の装置の装置識別情報を含むデータベースを記憶するためのメモリと、メモリと通信する1つ以上のプロセッサとを備える。1つ以上のプロセッサは、第1のコンピューティング装置から、安全な資格情報転送を開始することに関連する情報を受信し、第2のコンピューティング装置から、チャレンジ情報を含む有効性確認要求(validation request)を受信するように構成され、有効性確認要求は、ユーザ識別情報の検証に関連する情報と、以前のチャレンジ情報からの第1の識別子と、第2のコンピューティング装置から得られた、第2のコンピューティング装置の安全状態に関連する第2の識別子を含む署名とを含み、1つ以上のプロセッサは、有効性確認要求の検証を実行するように構成され、有効性確認要求の検証は、ユーザ識別情報の検証に関連する情報が第1のコンピューティング装置からのものであることを検証すること、第1の識別子が第2の識別子と一致するこ
とを検証すること、および第2の識別子が装置識別情報を含むデータベース内の装置と一致することを検証することを含み、1つ以上のプロセッサは、第2のコンピューティング装置への安全な資格情報転送を行うための安全な通信チャネルを確立するために、1つ以上のトークンを第1のコンピューティング装置および第2のコンピューティング装置に提供するように構成されている。
【0011】
一例において、1つ以上のプロセッサは、有効性確認要求の証明書を含む第1のトークンを第2のコンピューティング装置に提供し、第1のコンピューティング装置からユーザアカウントの選択を受信し、ユーザアカウントの第2のトークンを第1のコンピューティング装置に提供し、第2のコンピューティング装置から署名済み第2のトークンを受信し、安全な資格情報転送を行うための安全な通信チャネルを確立するための第3のトークンを第2のコンピューティング装置に提供することによって、1つ以上のトークンを提供するように構成されている。
【図面の簡単な説明】
【0012】
【
図1】本開示の態様に係る例示的なシステム100を示す機能図である。
【
図2】本開示の態様に係る例示的なシステム100を示す概略図である。
【
図3】本開示の態様に係る例示的な方法を示すフロー
図300である。
【
図4】本開示の態様に係る例示的な方法を示す詳細
図400である。
【
図5】本開示の態様に係る例示的な方法を示すフロー
図500である。
【発明を実施するための形態】
【0013】
詳細な説明
概要
本開示の技術は、装置への安全な資格情報転送を認証するための方法およびシステムに関する。ユーザが新しい装置または貸出装置を使用する場合、一般的には、ユーザプロファイルおよび他の設定を当該装置に転送するために、資格情報が必要とされる。通常、パスワード、2要素認証、および他の検証方法のいくつかの組み合わせが実行される。しかしながら、これらの方法の1つの問題として、これらの方法は、通常、装置が安全な装置であることを検証するための手段を含んでいないことである。本明細書に記載された方法およびシステムは、資格情報の転送に先立って、ユーザおよび装置を検証することができる一連のステップを提供する。また、本明細書に記載された方法およびシステムは、他の認証方法およびシステムよりも少ないユーザ相互作用を必要とするため、ユーザにより単純なプロセスを提供することができる。さらに、本明細書に記載された方法は、資格情報を新しい装置または貸出装置に手動で入力する必要を減らすことによって、および/または資格情報の一時的な転送/認証を可能にすることによって、ユーザプロファイルおよび他の設定の安全性を改善することができる。
【0014】
認証システムは、第1のクライアント装置と、第2のクライアント装置と、認証サーバとを含む。ユーザは、第1のクライアント装置上にまたは第1のクライアント装置からアクセス可能なユーザプロファイルを有することができる。ユーザプロファイルは、装置の設定、アプリケーションのダウンロード、アプリケーションの設定、またはアカウントの設定を含むことができる。第2のクライアント装置は、ユーザプロファイルを記憶していないまたは当該装置からユーザプロファイルにアクセスできない任意の装置であってもよい。認証サーバは、セキュリティが既知であるまたは既に検証されている複数の装置の装置識別情報を含むデータベースを有してもよい。
【0015】
ユーザプロファイルの安全な資格情報転送を開始するために、第1のクライアント装置は、ユーザ入力を受信し、次いで、第2のクライアント装置は、第1のクライアント装置から第2のクライアント装置への転送を確認することができる。確認に応じて、第2のク
ライアント装置は、第2のクライアント装置の識別子を第1のクライアント装置に送信することができる。この識別子は、第2のクライアント装置のハードウェアから取得され、第2のクライアント装置が信頼できる転送装置であることを示す安全状態を含むことができる。第2のクライアント装置からユーザ確認を受信した後に、第1のクライアント装置は、第2のクライアント装置への安全な資格情報転送の要求をさらに確認するために、ユーザ識別情報の検証を実行することができる。また、第2のクライアント装置の署名を認証サーバに送信して、検証することによって、第2のクライアント装置の装置識別情報の検証を実行することができる。第2のクライアント装置が検証された場合、認証サーバは、第2のクライアント装置の証明書および転送トークンを第2のクライアント装置に提供することができる。第2のクライアント装置は、証明書および転送トークンを第1のクライアント装置に送信することができ、第1のクライアント装置は、第2のクライアント装置の証明書の追加チェックを実行することができる。
【0016】
第1のクライアント装置は、安全な資格情報転送を行うためのアカウント、例えば、ユーザプロファイルおよび有効期限(validity time)を選択するためのユーザ入力を受信
することができる。次いで、第1のクライアント装置は、認証サーバから、選択されたアカウントの一時トークン(temporary token)を要求することができる。この要求に応答
して、認証サーバは、一時トークンを第1のクライアント装置に送信し、第1のクライアント装置は、この一時トークンを第2のクライアント装置に送信する。第2のクライアント装置は、一時トークンに署名し、第1のクライアント装置と第2のクライアント装置との間のチャネルを検証するために、署名済み一時トークンを認証サーバに送信することができる。署名済み一時トークンに関連する情報が検証されると、認証サーバは、要求された安全な資格情報転送の有効期限を含む正式なセッショントークン(regular session token)を第2のクライアント装置に提供する。次いで、正式なセッショントークンを用い
て、第1のクライアント装置から第2のクライアント装置へのユーザプロファイルの安全な資格情報転送を実行する。すなわち、第2のクライアント装置は、第1のクライアント装置によって認証されており、有効期限中にユーザプロファイルにアクセスすることができる。
【0017】
上述の特徴は、クライアント装置上のユーザ資格情報へのアクセスを許可するためのより安全な方法を提供するという技術効果を有する。この方法は、ユーザに既に信頼されているクライアント装置を用いて第2のクライアント装置を認証することによって、より少ないユーザ入力を必要とする技術効果を有し、未知の装置上で手動でユーザ資格情報を入力する必要を排除することによって安全性を改善することができる。この認証方法は、ログイン情報のユーザ入力および追加のユーザ検証を必要せず、信頼できる装置から特定のアカウントの転送および認証のユーザ要求を必要とする。また、この方法は、認証サーバを用いて第2のクライアント装置を信頼できる装置として検証するため、ユーザは、ユーザ資格情報を第2のクライアント装置に転送するまたは利用する安全性をより高く信頼する。また、この方法は、ユーザ資格情報の転送に先立って、第1のクライアント装置および第2のクライアント装置の両方の識別情報を相互検証することによって、安全性をさらに改善することができる。
【0018】
例示的なシステム
図1および2は、本明細書に記載された特徴を実現できる例示的なシステム100を示す。例示的なシステムは、クライアントコンピューティング装置を認証するためのシステムであってもよい。この例において、システム100は、ネットワーク160を介して接続された複数のコンピューティング装置110、120、130および記憶システム150を含んでもよい。コンピューティング装置110は、認証サーバとして動作するサーバコンピューティング装置であってもよい。コンピューティング装置120および130は、クライアントコンピューティング装置であってもよい。
【0019】
図1に示すように、認証サーバ110は、1つ以上のプロセッサ112と、メモリ114と、命令116と、データ118とを含む。1つ以上のプロセッサ112は、任意の従来のプロセッサ、例えば市販のCPUであってもよい。代替的に、1つ以上のプロセッサは、専用のプロセッサ、例えばASICまたは他のハードウェアベースのプロセッサであってもよい。
図1は、コンピューティング装置110のプロセッサ、メモリ、および他の要素が同一のブロックに配置されていると機能的に示しているが、当業者には理解できるように、プロセッサ、コンピューティング装置、またはメモリは、実際に、同じまたは異なる物理ハウジング内に配置または格納されている複数のプロセッサ、複数のコンピューティング装置、または複数のメモリを含むことができる。一例において、1つ以上のコンピューティング装置110は、1つ以上のサーバコンピューティング装置を含むことができ、1つ以上のサーバコンピューティング装置は、他のコンピューティング装置との間でデータを受信、処理および送信するために、ネットワークの異なるノードを介して情報を交換する複数のコンピューティング装置、例えば、負荷分散サーバファームを含むことができる。
【0020】
メモリ114は、1つ以上のプロセッサ112によってアクセス可能な情報、例えば、プロセッサ112によって実行または使用され得る命令116およびデータ118を記憶する。メモリ114は、プロセッサによってアクセス可能な情報を記憶できる任意の種類の媒体、例えば、コンピューティング装置可読媒体、または電子装置を介して読出すことができるデータを記憶する他の媒体、例えばハードドライブ、メモリカード、ROM、RAM、DVD、他の光ディスク、他の書込み可能メモリおよび読取り専用メモリであってもよい。システムおよび方法は、前述したものの異なる組み合わせを含んでもよい。従って、命令およびデータの異なる部分は、異なる種類の媒体上に記憶されてもよい。特に、メモリ114は、複数のコンピューティング装置の装置識別情報を含むデータベースを記憶するように構成されてもよい。
【0021】
命令116は、プロセッサによって直接に実行される任意の命令(例えば、機械コード)または間接に実行される任意の命令(例えば、スクリプト)であってもよい。例えば、命令は、コンピューティング装置コードとしてコンピューティング装置可読媒体上で記憶されてもよい。この場合、「命令」および「プログラム」という用語は、本明細書において互換的に使用されてもよい。命令は、プロセッサが直接に処理できるオブジェクトコードフォーマットで記憶されてもよく、またはオンデマンドで解釈されるかもしくは事前にコンパイルされるスクリプトまたは独立したソースコードモジュールの集合を含む任意の他のコンピューティング装置言語で記憶されてもよい。命令のプロセス、機能、方法およびルーチンは、以下でより詳細に説明される。また、命令116は、安全であることが既知である装置または安全であると検証されている装置の装置識別情報を含むデータベースをコンパイルおよび更新することを含んでもよい。
【0022】
プロセッサ112は、命令116に従って、データ118を取得、記憶または修正することができる。一例として、メモリ114に記憶されたデータ118は、複数のコンピューティング装置の装置識別情報を含むデータベースであってもよい。また、データ118は、1つ以上のクライアントコンピューティング装置、例えば、クライアントコンピューティング装置120、130のサービスをサポートするためのデータを含んでもよい。このデータは、ウェブベースのアプリケーションのホスティング、ファイル共有サービス、通信サービス、ゲームサービス、ビデオもしくはオーディオファイルの共有サービス、または任意の他のネットワークベースのサービスをサポートするためのデータを含んでもよい。
【0023】
クライアントコンピューティング装置120および130の各々は、1つ以上のプロセッサ、メモリ、命令、およびデータを含むように、上述した認証サーバ110と同様に構
成されてよい。各クライアントコンピューティング装置120、130は、ユーザによって使用されるパーソナルコンピューティング装置であってもよい。
図2に示すように、クライアントコンピューティング装置120および130の両方は、単一ユーザ220によって使用されてもよい。いくつかの代替例において、認証サーバ110は、クライアントコンピューティング装置120または130から離れているものではなく、クライアントコンピューティング装置120または130の一部であってもよい。
【0024】
また、各クライアントコンピューティング装置120、130は、通常、パーソナルコンピューティング装置に関連して使用される全ての構成要素、例えば、1つ以上のプロセッサ(例えば、中央処理装置(CPU))、データおよび命令を記憶するためのメモリ(例えば、RAMおよび内部ハードドライブ)、ディスプレイ122、132などのディスプレイ(例えば、スクリーンを有するモニタ、タッチスクリーン、プロジェクタ、テレビ、または情報を表示するように動作可能な他の装置)、スピーカ、およびユーザ入力装置124、134(例えば、マウス、キーボード、タッチスクリーン、カメラ、またはマイクロフォンである)を含む。各クライアントコンピューティング装置の1つ以上のプロセッサは、1つ以上のプロセッサ112と同じまたは同様であってもよい。命令およびデータを記憶するための各クライアントコンピューティング装置のメモリは、命令116およびデータ118を記憶するためのメモリ114と同じまたは同様であってもよい。また、各クライアントコンピューティング装置は、近距離無線通信(NFC)機能を可能にする1つ以上の構成要素を含むことができる。
【0025】
各クライアントコンピューティング装置120、130は、普通サイズのパーソナルコンピューティング装置であってもよいが、代替的に、インターネットなどのネットワークを介して、サーバコンピューティング装置(例えば、サーバコンピューティング装置110)との間に無線でデータを交換することができるモバイルコンピューティング装置であってもよい。一例として、クライアントコンピューティング装置120は、携帯電話、ワイヤレス対応PDA、タブレットPC、ウェアラブルコンピューティング装置もしくはシステム、またはインターネットもしくは他のネットワークを介して情報を取得することができるネットブックであってもよい。別の例として、クライアントコンピューティング装置120は、ウェアラブルコンピューティングシステム、例えばスマートウォッチであってもよい。
【0026】
ユーザ、例えば、ユーザ220のユーザプロファイルは、クライアントコンピューティング装置120上でオンであるまたはアクセス可能である。ユーザプロファイルは、装置の設定、アプリケーションのダウンロード、アプリケーションの設定、および/またはアカウントの設定を含んでもよい。クライアントコンピューティング装置130は、当該装置上にユーザプロファイルを記憶していものであってもよく、または当該装置からユーザプロファイルにアクセスできないものであってもよい。例えば、クライアントコンピューティング装置130は、新しく購入したラップトップもしくは貸出ラップトップであってもよく、または小売環境に展示されているラップトップであってもよい。
【0027】
記憶システム150は、メモリ114と同様に、サーバコンピューティング装置110によってアクセス可能な情報を記憶可能な任意種類のコンピュータ記憶媒体、例えば、ハードドライブ、メモリカード、ROM、RAM、DVD、CD-ROM、書き込み可能メモリ、および読み出し専用メモリであってもよい。また、記憶システム150は、同じまたは異なる場所に物理的に配置された複数の異なる記憶装置上にデータを記憶するように構成された分散記憶システムを含んでもよい。記憶システム150は、図示のように、ネットワーク160を介してコンピューティング装置に接続されてもよく、および/またはコンピューティング装置110、120、130のいずれかに直接に接続されてもよくまたはそれに組み込まれてもよい。記憶システム150は、本明細書に記載された特徴の一
部または全てを実現するために、認証サーバ110などの1つ以上のサーバコンピューティング装置、および/またはクライアントコンピューティング装置120または130などの1つ以上のクライアントコンピューティング装置によって取得されるまたはアクセス可能な様々な情報を記憶することができる。
【0028】
図1は、コンピューティング装置のプロセッサ、メモリおよび他の要素が同一のブロックに配置されていると機能的に示しているが、プロセッサ、コンピュータ、コンピューティング装置、またはメモリは、実際に、同じまたは異なる物理ハウジング内に配置または格納されている複数のプロセッサ、複数のコンピューティング装置、または複数のメモリを含むことができる。例えば、メモリ114は、コンピューティング装置110のハウジングとは異なるハウジング内に配置されるハードドライブまたは他の記憶媒体であってもよい。
【0029】
明細書に記載されたプロセッサ、コンピュータ、コンピューティング装置、またはメモリは、並列または直列に動作できるプロセッサ、コンピュータ、コンピューティング装置、またはメモリのセットを含むものとして理解されてもよい。例えば、コンピューティング装置110は、例えば、負荷分散サーバファームまたは分散システムとして動作するサーバコンピューティング装置を含んでもよい。さらに、以下に記載されるいくつかの機能は、単一のプロセッサを含む単一のコンピューティング装置上で実現されたものとして示されているが、本明細書に記載された主題の様々な態様は、例えば、ネットワーク160を介して情報を通信する複数のコンピューティング装置によって実現されてもよい。
【0030】
ネットワーク160および中間ノードは、様々な構成およびプロトコル、例えば、ブルートゥース(登録商標)およびブルートゥース(登録商標)LEなどの短距離通信プロトコル、インターネット、ワールドワイドウェブ、イントラネット、仮想プライベートネットワーク、ワイドエリアネットワーク、ローカルネットワーク、1つ以上の会社の専用の通信プロトコルを使用するプライベートネットワーク、イーサネット(登録商標)、WiFi(登録商標)、HTTP、およびそれらの様々な組み合わせを含むことができる。他のコンピューティング装置との間でデータを送受信することができる任意の装置、例えばモデムおよびワイヤレスインターフェイスは、このような通信を容易にすることができる。
【0031】
例示的な方法
上記で説明され、図面に示された動作に加えて、以下、様々な動作を説明する。以下の動作は、以下で説明する順序の通りに実行される必要がない。むしろ、様々な動作を異なる順序でまたは同時に実行してもよく、動作を追加または省略してもよい。例えば、
図3は、本開示の態様に係るフロー
図300を示す。より具体的には、
図3は、認証サーバ110を用いて、クライアントコンピューティング装置120(以下「第1のクライアント装置」という)からクライアントコンピューティング装置130(以下「第2のクライアント装置」という)への安全な資格情報転送を認証するための例示的な方法のフローを示す。第1のクライアント装置120および第2のクライアント装置130は、NFC対応装置であってもよい。また、
図4は、
図3に示された方法の追加の詳細、例えば、第1のクライアント装置120と第2のクライアント装置130と認証サーバ110との間の通信を示す機能
図400を示す。
【0032】
ブロック302において、ユーザプロファイルの安全な資格情報転送を開始するために、第1のクライアント装置120および第2のクライアント装置130は、ユーザ入力を受信することができる。例えば、
図4に示すように、ステップ402において、第2のクライアント装置130を認証するためのプロセスを開始するために、第1のクライアント装置120は、ユーザ入力を受信することができる。ユーザ入力は、第1のクライアント
装置のユーザ入力装置124が、第1のクライアント装置上にインストールされたアプレットまたは第1のクライアント装置上で開かれたブラウザを用いて受信したタップであってもよい。理解すべきことは、代替的に、他の種類のユーザ入力を使用してもよいことである。場合によって、ユーザ入力は、安全な資格情報転送を行うためのアカウントを表すことができる。ステップ404aにおいて、ユーザ入力は、第1のクライアント装置から認証サーバに第1の情報を送信することをトリガすることができる。第1の情報は、第1のクライアント装置に関連する情報、安全な資格情報転送の開始に関連する情報、および/または転送を行うためのアカウントに関連する情報を含んでもよい。また、ステップ404bにおいて、ユーザ入力は、NFCまたは別の短距離通信プロトコルを用いて、第2の情報の送信をトリガすることができる。第2の情報は、第2のクライアント装置上で安全な資格情報転送を開始するための命令を含んでもよい。第2のクライアント装置は、第1のクライアント装置からの情報を検出して、ステップ406aにおいて、第2のクライアント装置上の転送を確認するようにユーザを促すプロンプトを提示することができる。このプロンプトは、第2のクライアント装置上でブラウザ(または他のアプリケーション)を開くこと、およびブラウザを介してユーザ入力を要求することを含んでもよい。ステップ406bにおいて、第2のクライアント装置は、第2のクライアント装置上のユーザ入力装置を用いて、ユーザ確認を受信することができる。
【0033】
ブロック304において、第2のクライアント装置は、ユーザ確認に応答して、第2のクライアント装置の識別子を第1のクライアント装置に送信することができる。
図4のステップ408に示すように、識別子は、第2のクライアント装置のハードウェア、例えば信頼できるセキュリティチップから取得することができる。また、識別子は、同様に第2のクライアント装置のハードウェアから取得することができる安全状態を含んでもよい。特に、第2のクライアント装置の安全状態は、第2のクライアント装置が安全な資格情報転送のために準備されていることを示すことができる。例えば、安全状態は、第2のクライアント装置が「検証済みブートモード」にあることを示すことができる。検証済みブートモードの安全状態は、第2のクライアント装置のプラットフォームファームウェアおよび/またはオペレーティングシステムが既知の信頼できるソースからのものであると認証されていることを示すことができる。一例において、検証済みブートモードの安全状態は、第2のクライアント装置上で実行される全てのコードが既知の信頼できるソースツリーからのものであると認証されていることを示すことができる。ステップ410に示すように、第2のクライアント装置の識別子は、取得された後、例えばNFCを介して第1のクライアント装置120に送信されてもよい。
【0034】
ブロック306において、第1のクライアント装置は、第2のクライアント装置への安全な資格情報転送の要求を確認するために、ユーザ識別情報の検証を実行する。
図4のステップ412に示すように、第2のクライアント装置は、ユーザ確認を受信した後、ユーザ識別情報の検証を要求することができる。第2のクライアント装置は、例えば、NFCまたは別の短距離通信プロトコルを用いて、ユーザ識別情報の検証要求をチャレンジ情報として送信することができる。ステップ414において、第1のクライアント装置は、検証要求の受信に応答して、ユーザIDの入力を促すプロンプトを提示することができる。このプロンプトは、第1のクライアント装置のディスプレイ122上に提示されてもよい。これは、双方向検証プロセスを容易にすることができ、資格情報の転送安全性を改善するという技術利点を有する。ユーザIDの入力は、第1のクライアント装置上の既存の検証プロセスであってもよい。例えば、第1のクライアント装置をロック解除するユーザID、例えば、パスワード、指紋認証、顔認識を入力することができる。ステップ416に示すように、ユーザIDが入力され、第1のクライアント装置によって検証されると、ユーザ識別情報の検証が完了する。必要に応じて、ユーザ識別情報の検証は、後の段階で、例えば、以下のブロック312において、転送を行うためのアカウントを選択するときに行われてもよい。
【0035】
ブロック308において、第2のクライアント装置の識別子を用いて、第2のクライアント装置の装置識別情報の検証を実行することができる。第1のクライアント装置は、ユーザ識別情報の検証を完了した後に、第2のクライアント装置の装置識別情報の検証を開始することができる。
図4のステップ418に示すように、第1のクライアント装置は、少なくとも第2のクライアント装置の識別子を含むチャレンジ情報を、第2のクライアント装置に送信することができる。いくつかの実装形態において、チャレンジ情報は、現在のチャレンジ情報と以前のチャレンジ情報との間の連携を示す複合チャレンジ情報であってもよい。この連携は、現在の装置識別情報を検証するためのチャレンジ情報とブロック306で実行されるユーザ識別情報を検証ためのチャレンジ情報との間の連携であってもよい。したがって、この複合チャレンジ情報は、第2のクライアント装置の識別子と、ユーザ識別情報の検証に関連する情報とを含むことができる。
【0036】
装置識別情報を検証するためのチャレンジ情報を受信したことに応答して、第2のクライアント装置は、第2のクライアント装置の安全状態に関連する識別子を含む署名を挿入することができる。前述したように、第2のクライアント装置の安全状態は、第2のクライアント装置のハードウェア、例えば信頼できるセキュリティチップから取得することができる。ステップ420において、識別子を含む署名は、有効性確認要求と共に、認証サーバに送信される。認証サーバが第2のクライアント装置130の一部であるいくつかの実装形態において、有効性確認要求は、識別子を含む署名を呼び出すまたは引用することによって、識別子を含む署名共に認証サーバに送信されてもよい。
【0037】
ステップ422において、認証サーバは、有効性確認要求を受信した後、識別子と装置識別情報を含むデータベースとを用いて、第2のクライアント装置を安全な装置として検証する。上記で説明したように、装置識別情報を含むデータベースは、認証サーバ110のメモリ114に記憶されてもよく、または認証サーバの1つ以上のプロセッサ112によってアクセス可能な記憶システム150に記憶されてもよい。装置識別情報を含むデータベースは、既知の安全な装置の識別子を含んでもよい。署名内の識別子がデータベース内の装置の識別子と一致する場合、第2のクライアント装置は、安全な装置として検証される。また、この検証は、所定のクライアント装置の有効性確認を実行したことを保証するように、チャレンジ情報内の識別子が署名内の識別子と一致することを確認することを含むことができる。また、この検証は、ユーザ識別情報の検証に関連する情報が第1のクライアント装置からのものであることを確認することを含むことができる。
【0038】
次いで、ステップ424において、認証サーバは、検証(証明書)の確認および安全な資格情報転送を行うための転送トークンと共に、応答を第2のクライアント装置に送信する。証明書は、チャレンジ情報にさらに挿入された認証サーバの識別子を含む署名であってもよい。次いで、ステップ426において、第2のクライアント装置は、証明書を用いて更新されたチャレンジ情報と共に、転送トークンを第1のクライアント装置に送信することができる。
【0039】
ステップ428において、第1のクライアント装置は、必要に応じて、更新されたチャレンジ情報に基づいて、第2のクライアント装置の証明書の追加チェックを実行することができる。追加チェックは、(i)第2のクライアント装置の署名が証明書内の署名と一致することを検証することと、(ii)認証サーバの署名が既知の認証サーバの識別子を含むことを検証することとを含んでもよい。追加認証を実行することによって、装置識別情報を検証するプロセスの安全性および完全性をさらに改善することができる。
【0040】
ブロック310において、第1のクライアント装置は、(アカウントがまだ選択されていない場合)安全な資格情報転送を行うためのアカウントを選択するためのユーザ入力を
受信する。選択されたアカウントは、第1のクライアント装置上のユーザプロファイルであってもよい。
図4のステップ430において、第1のクライアント装置は、転送トークンを受信した後および/または証明書の追加チェックを実行した後に、アカウントの選択に関するユーザ入力を促すプロンプトを提示することができる。このプロンプトは、第1のクライアント装置のディスプレイ122上に提示されてもよい。したがって、第2のクライアント装置が信頼できるものであり且つ安全な資格情報転送を行うために準備されているという確認を受信するまで、ユーザのアカウントを示す情報を第2のクライアント装置に提供しないため、資格情報転送プロセスの安全性を改善することができる。ユーザ入力は、ステップ432で受信されてもよく、アカウントの正式なセッショントークンの有効期限に関する要求を含んでもよい。有効期限は、15~45分、例えば30分であってもよい。これは、ユーザアカウントまたはプロファイルおよび関連する設定の一時認証を容易にすることができる。この一時認証は、後の時間で第三者によるアクセスを防止することによって、ユーザの安全性を改善することができる。必要に応じて、ユーザ識別情報の検証は、アカウントを選択する前またはアカウントを選択した後に実行されてもよい。
【0041】
ブロック312において、認証サーバによって生成された1つ以上のトークンを用いて、第1のクライアント装置と第2のクライアント装置との間に安全な通信チャネルを確立する。
図4のステップ434において、第1のクライアント装置は、選択されたアカウントの一時トークンを認証サーバから要求することができる。これに応答して、認証サーバは、ステップ436において、一時トークンを第1のクライアント装置に送信し、必要に応じて、要求された正式なセッショントークンの有効期限を記録することができる。一時トークンは、比較的短い時間に、例えば10秒~30秒の間に有効であってもよい。一時トークンの有効期限は、安全な通信チャネルを確立するのに充分な長さを有すればよい。ステップ438において、第1のクライアント装置は、NFCを用いて、一時トークンを第2のクライアント装置に送信し、第2のクライアント装置は、この一時トークンに署名する。例えば、第2のクライアント装置は、セキュリティチップから得られた識別子を用いて、一時トークンに署名することができる。ステップ440において、第2のクライアント装置は、第1のクライアント装置と第2のクライアント装置との間の通信チャネルを検証するために、署名済み一時トークンおよび転送トークンを認証サーバに送信する。ステップ442において、署名/識別子、一時トークン、および転送トークンが全て認証サーバに記憶されているものと一致する場合、認証サーバは、通信チャネルを検証する。次いで、ステップ444において、認証サーバは、要求された安全な資格情報転送の有効期限を含む正式なセッショントークンを、第2のクライアント装置に送信する。
【0042】
ブロック314において、正式なセッショントークンを用いて、第1のクライアント装置から第2のクライアント装置へのユーザプロファイルの安全な資格情報転送を実行する。
図4のステップ446において、第2のクライアント装置は、正式なセッショントークンを第1のクライアント装置に送信する。次いで、第1のクライアント装置は、ステップ448において、NFCを用いて、要求された有効期限の間において第2のクライアント装置を信頼できる装置として認証する。第2のクライアント装置は、有効期限の間において、ブラウザなどのアプリケーションを介してユーザプロファイルへのアクセスが許可される。代替的に、第1のクライアントは、正式なセッショントークンを受信した後、ユーザプロファイルを第2のクライアント装置に送信する。いくつかの他の例において、ユーザが有効期限を指定していない場合に、有効期限の代わりに別の期間を使用してもよい。この期間は、事前設定された期間であってもよく、または第1のクライアント装置が第2のクライアント装置の近傍に位置する期間として定義されてもよい。
【0043】
いくつかの代替例において、信頼できるプラットフォームモジュール(TPM)、中央処理装置に組み込まれたセキュリティ関連命令コード、または信頼できる実行環境(TEE)ソリューションは、信頼できるセキュリティチップの代わりに、第2のクライアント
装置の状態または署名済み識別子を提供することができる。
【0044】
別の例において、第2のクライアント装置は、認証サーバにアクセスできるネットワーク接続を有しない場合に、第1のクライアント装置を、認証サーバと通信するためのインターネットゲートウェイとして利用することができる。この目的を達成するために、第1のクライアント装置は、第2のクライアント装置に一時的なワイヤレス接続を提供し、第2のクライアント装置の代わりに認証サーバに送信する/認証サーバから受信することによってまたは他の既知の手段によって、プロキシとして機能することができる。
【0045】
図5は、本開示の態様に係るフロー
図500である。より具体的には、
図5は、認証サーバ110の1つ以上のプロセッサ112によって実行された、第1のクライアント装置120から第2のクライアント装置130への安全な資格情報転送を認証するための例示的な方法のフローを示す。
【0046】
ブロック502において、1つ以上のプロセッサ112は、第1のコンピューティング装置から、安全な資格情報転送を開始することに関連する情報を受信することができる。ステップ402および404aに関連して上記で説明したように、情報の送信は、第1のコンピューティング装置で受信したユーザ入力、例えば第1のコンピューティング装置上で開いているアプレットに入力されたタップに基づいてトリガされてもよい。
【0047】
ブロック504において、第2のコンピューティング装置から、有効性確認要求を受信することができる。有効性確認要求は、チャレンジ情報を含み、チャレンジ情報は、ユーザ識別情報の検証に関連する情報と、以前のチャレンジ情報からの第1の識別子と、第2のコンピューティング装置から得られた、第2のコンピューティング装置の安全状態に関連する第2の識別子を含む署名とを含んでもよい。ユーザ識別情報の検証に関連する情報は、ステップ412~416に関連して上述したように取得されてもよい。第1の識別子は、ステップ408、410および418に関連して上述したように取得されてもよい。
【0048】
ブロック506において、1つ以上のプロセッサ112は、有効性確認要求を検証することができる。ブロック506に示され、上記のステップ422に関連してさらに説明したように、検証は、(i)ユーザ識別情報の検証に関連する情報が第1のコンピューティング装置からのものであることを検証することと、(ii)第1の識別子が第2の識別子と一致することを検証することと、(iii)第2の識別子が装置識別情報を含むデータベース内の装置と一致することを検証することとを含んでもよい。
【0049】
ブロック508において、第2のコンピューティング装置への安全な資格情報転送を行うための安全な通信チャネルを確立するために、1つ以上のプロセッサ112は、1つ以上のトークンを第1のコンピューティング装置および第2のコンピューティング装置に送信することができる。具体的に、1つ以上のプロセッサ112は、第1のトークンを生成し、有効性確認要求の証明書と共に第2のコンピューティング装置に送信することができる。ステップ424および426に関連して上述したように、第1のトークンは、転送トークンであってもよい。また、1つ以上のプロセッサ112は、選択されたユーザアカウントの第2のトークンを生成し、第1のコンピューティング装置に送信することができる。ステップ434および436に関連して上述したように、第2のトークンは、ユーザアカウントの選択を示すユーザ入力を受信した後に第1のクライアント装置によって要求された一時トークンであってもよい。さらに、1つ以上のプロセッサ112は、安全な資格情報転送を行うための安全な通信チャネルを確立するための第3のトークンを生成し、第2のコンピューティング装置に送信することができる。ステップ442および444に関連して上述したように、第3のトークンは、署名済み一時トークンおよび転送トークンに基づいて通信チャネルを検証した後に生成され、送信されてもよい。
【0050】
上述した特徴は、クライアント装置上のユーザ資格情報へのアクセスを許可するためのより安全な方法を提供する。この方法は、ユーザに既に信頼されているクライアント装置を用いて第2のクライアント装置を認証することによって、より少ないユーザ入力を必要とするため、未知の装置上で手動でユーザ資格情報を入力する必要を排除することによって安全性を改善することができる。この認証方法は、ログイン情報のユーザ入力および追加のユーザ検証を必要せず、信頼できる装置から特定のアカウントの転送および認証のユーザ要求を必要とする。また、この方法は、認証サーバを用いて第2のクライアント装置を信頼できる装置として検証するため、ユーザは、ユーザ資格情報を第2のクライアント装置に転送するまたは利用する安全性をより高く信頼する。また、この方法は、ユーザ資格情報の転送に先立って、第1のクライアント装置および第2のクライアント装置の両方の識別情報を相互検証することによって、安全性をさらに改善することができる。
【0051】
特に明記しない限り、前述の代替例は、相互排他的なものではなく、特定の利点を達成するために様々な組み合わせで実装されてもよい。特許請求の範囲によって定義された主題から逸脱することなく、上述した特徴の様々な変形および組み合わせを利用することができる。実施形態の上記の説明は、例示であり、特許請求の範囲によって定義された主題を限定するものではない。また、本明細書に記載された実施例、および「例えば」、「含む」などの表現は、特許請求の範囲を特定の実施例に限定するものとして解釈すべきではない。むしろ、実施例は、多くの可能な実施形態の1つのみを例示することを意図している。さらに、異なる図面において、同じ参照番号は、同じまたは同様の要素を示す。
【0052】
本明細書に記載されたシステムは、個人情報を収集する場合または個人情報を使用する場合、プログラムまたは特徴がユーザ情報(例えば、パスワード、ユーザのソーシャルネットワークに関する情報、ユーザ特性(例えば、年齢、性別および職業)、社会行為または活動、ユーザの嗜好、ユーザによって作成または提出されたコンテンツ、ユーザの現在の地理位置に関する情報)を収集するか否かを制御するための1つ以上の機会をユーザに与える。また、特定のデータは、記憶または使用される前に、個人識別情報を取り除くように1つ以上の方法で処理されてもよい。例えば、ユーザのIDは、ユーザの個人識別情報を特定できないように処理されてもよく、またはユーザの地理位置は、(例えば、市、郵便番号、または州レベルなどの)位置情報が得られる場合、ユーザの位置を特定できないように一般化されてもよい。したがって、ユーザは、収集されるユーザ情報、情報の用途、およびユーザに提供される情報を制御することができる。