(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-02
(45)【発行日】2024-12-10
(54)【発明の名称】データのセキュアなローカライズされたコネクションレスハンドオフ
(51)【国際特許分類】
H04W 12/0431 20210101AFI20241203BHJP
H04W 4/70 20180101ALI20241203BHJP
H04W 8/24 20090101ALI20241203BHJP
H04W 12/033 20210101ALI20241203BHJP
H04W 12/61 20210101ALI20241203BHJP
H04W 4/20 20180101ALI20241203BHJP
【FI】
H04W12/0431
H04W4/70
H04W8/24
H04W12/033
H04W12/61
H04W4/20 110
(21)【出願番号】P 2023572874
(86)(22)【出願日】2022-05-25
(86)【国際出願番号】 US2022030888
(87)【国際公開番号】W WO2022251335
(87)【国際公開日】2022-12-01
【審査請求日】2023-11-24
(32)【優先日】2021-05-26
(33)【優先権主張国・地域又は機関】US
【早期審査対象出願】
(73)【特許権者】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】ハーウィッツ,ジョナサン・ディ
(72)【発明者】
【氏名】ワン,ダイアン・シィ
【審査官】中村 信也
(56)【参考文献】
【文献】米国特許出願公開第2020/0127988(US,A1)
【文献】米国特許出願公開第2020/0288303(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04B 7/24-7/26
H04W 4/00-99/00
3GPP TSG RAN WG1-4
SA WG1-4
CT WG1、4
(57)【特許請求の範囲】
【請求項1】
セキュアなコネクションレスデータ通信のための方法であって、
第1のデバイスによって、コンピューティングデバイスから、第2のデバイスのローカルに生成された第2の鍵を受信することを含み、前記第2の鍵は、前記第1のデバイスおよび前記第2のデバイスが登録されているユーザアカウントに関連付けられており、前記方法はさらに、
前記第1のデバイスによって、前記第2のデバイスによってブロードキャストされた暗号化データをスキャンすることと、
前記第1のデバイスによって、前記第2の鍵を用いて、前記第2のデバイスによってブロードキャストされた前記暗号化データを復号し、解読データを生成することと、
前記第1のデバイスによって、前記第1のデバイス上に表示するための前記解読データを処理することと
を含む、方法。
【請求項2】
前記第1のデバイスは、前記第2のデバイスよりも大きいスクリーンを有するデバイスを含む、請求項1に記載の方法。
【請求項3】
前記第1のデバイスは、ユーザアカウント情報と、前記第2のデバイスに関連付けられたデバイスIDと、前記第2のデバイスに関連付けられた古い暗号化鍵と、前記古い暗号化鍵のTTL(存続期間)とをさらに含むタプルの一部として前記第2の鍵を記憶する、請求項1に記載の方法。
【請求項4】
前記コンピューティングデバイスによって、前記第1のデバイスおよび前記第2のデバイスを前記ユーザアカウントに登録することを含む、請求項1に記載の方法。
【請求項5】
前記第2のデバイスによって、前記第2のデバイスによって生成されるハッシュ関数またはランダムに生成された文字列を用いて、前記第2の鍵を生成することを含む、請求項1に記載の方法。
【請求項6】
前記第1のデバイスによって、前記第2のデバイスの存在を検知することを含む、請求項1に記載の方法。
【請求項7】
検知することは、ラウンドトリップ遅延を用いて前記第1のデバイスと前記第2のデバイスとの間の距離を決定することを含む、請求項6に記載の方法。
【請求項8】
前記距離を決定することは、無線技術を用いて前記距離を検出することを含む、請求項7に記載の方法。
【請求項9】
前記解読データは、ビデオコンテンツまたは健康統計のうちの1つまたは複数を含む、請求項1に記載の方法。
【請求項10】
前記コンピューティングデバイスは、第1のネットワークを介して前記第1のデバイスおよび前記第2のデバイスに結合されたサーバを含む、請求項1に記載の方法。
【請求項11】
スキャンすることは、前記第1のネットワークと異なる第2のネットワークを介して前記第1のデバイスによって実行される、請求項10に記載の方法。
【請求項12】
セキュアなコネクションレスデータ通信のための方法であって、
ユーザアカウントに登録された第1のデバイスによって、ローカルに生成された第1の鍵をコンピューティングデバイスに送信することと、
前記コンピューティングデバイスによって、前記ユーザアカウントに登録された第2のデバイスと前記第1の鍵を共有することと、
前記第1のデバイスによって、前記第1のデバイスの所定の距離内の前記第2のデバイスの位置を検知することと、
前記第1のデバイスによって、前記第1の鍵を用いて暗号化されたコンテンツを周期的にブロードキャストすることと、
前記第2のデバイスによって、
前記第1のデバイスがブロードキャストした前記コンテンツをスキャンし、前記第1の鍵を用いて前記コンテンツを復号することとを含む、方法。
【請求項13】
前記第1のデバイスは、前記第2のデバイスよりも小さいスクリーンを有するデバイスを含む、請求項12に記載の方法。
【請求項14】
前記第2のデバイスは、ユーザアカウント情報と、前記第1のデバイスに関連付けられたデバイスIDと、前記第1のデバイスに関連付けられた古い暗号化鍵と、前記古い暗号化鍵のTTL(存続期間)とをさらに含むタプルの一部として前記第1の鍵を記憶する、請求項12に記載の方法。
【請求項15】
前記コンピューティングデバイスによって、前記第1の鍵および第2の鍵を前記ユーザアカウントに関連付けることを含む、請求項12に記載の方法。
【請求項16】
前記第1のデバイスによって、前記第1のデバイスによって生成されるハッシュ関数またはランダムに生成された文字列を用いて、前記第1の鍵を生成することを含む、請求項12に記載の方法。
【請求項17】
前記位置を検知することは、ラウンドトリップ遅延を用いて前記第1のデバイスと前記第2のデバイスとの間の距離を決定することを含む、請求項12に記載の方法。
【請求項18】
前記距離を決定することは、1つまたは複数の無線信号を用いて前記距離を検出することを含む、請求項17に記載の方法。
【請求項19】
前記暗号化されたコンテンツは、ビデオコンテンツまたは健康統計のうちの1つまたは複数を含む、請求項12に記載の方法。
【請求項20】
前記コンピューティングデバイスは、第1のネットワークを介して前記第1のデバイスおよび前記第2のデバイスに結合されたサーバを含む、請求項12に記載の方法。
【請求項21】
スキャンすることは、前記第1のネットワークと異なる第2のネットワークを介して前記第1のデバイスによって実行される、請求項20に記載の方法。
【請求項22】
前記第2のネットワークを介して前記第1の鍵を用いて暗号化された前記コンテンツを周期的にブロードキャストすることを含む、請求項21に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、参照により本明細書に組み込まれる開示、2021年5月26日に出願された米国特許出願第17/331,185号の継続出願である。
【背景技術】
【0002】
背景
現代の家庭が、インターネットを介して他のコンピューティングデバイス、例えばサーバと通信することができる複数のコンピューティングデバイスを有することは珍しくない。例えば、そのような家庭は、スマートテレビジョン、ラップトップ、デスクトップ、エクササイズ機器、電化製品およびスマートフォンを有する場合がある。これらのデバイスは、家庭内のローカルエリアネットワーク(LAN)を介して互いに通信することもできる。これらのデバイスの各々は、有線(例えば、イーサネット)または無線(例えば、WiFi)ネットワークを通じて、広域ネットワーク、例えばインターネットを介してアクセス可能なコンピューティングシステムに独立して通信することもできる。コンピューティングシステムは、デバイスの2つ以上において実行することができるアプリケーション、例えば、銀行取引アプリケーション、エクササイズおよび/または健康アプリケーションをサポートする場合がある。いくつかの場合、1つのデバイス上で処理されているデータまたはアプリケーションが、別のデバイスにハンドオフされることが好都合である場合がある。例えば、ユーザは、ユーザが場所を変えることを要するエクササイズアプリケーションを実行する場合がある。例えば、エクササイズルーチンは、屋外の要素、例えばランニング、および屋内の要素、例えばマットエクササイズを含む場合がある。ユーザが場所を変える際、ユーザは、アプリケーションまたはデータが、自身のスマートフォンから自身のスマートテレビジョンまでセキュアにハンドオフされることを望む場合がある。
【発明の概要】
【0003】
概要
開示される技術の態様は、システム、装置または方法を含むことができる。
【0004】
1つの態様において、開示される技術は、コネクションレスデータハンドオフのための方法を含むことができる。本方法は、第1のデバイスによって、ローカルに生成された第1の鍵をコンピューティングデバイスに送信することと、第1のデバイスによって、コンピューティングデバイスから、第2のデバイスのローカルに生成された第2の鍵を受信することと、第1のデバイスによって、第2のデバイスによって送信された暗号化データをスキャンすることと、第1のデバイスによって、第2の鍵を用いて、第2のデバイスによって送信された暗号化データを復号し、解読データを生成することと(第1のデバイスは、第2のデバイスへの直接接続を確立することなく、このため、以前に処理され、かつ/または第2のデバイス上に表示されたデータのコネクションレスハンドオフにより、暗号化データを受信した)を含むことができる。本方法は、第1のデバイスによって、第1のデバイス上に表示するための解読データを処理することも含むことができる。
【0005】
本技術のこの態様によれば、第1のデバイスは、第2のデバイスよりも大きいスクリーンを有するデバイスを含む。
【0006】
本技術のこの態様によれば、第1のデバイスは、ユーザアカウント情報と、第2のデバイスに関連付けられたデバイスIDと、第2のデバイスに関連付けられた古い暗号化鍵と、古い暗号化鍵のTTL(存続期間)とをさらに含むタプルの一部として第2の鍵を記憶することができる。
【0007】
本技術のこの態様によれば、本方法は、コンピューティングデバイスによって、第1の鍵および第2の鍵をユーザアカウントに関連付けることを含むことができる。
【0008】
本技術のこの態様によれば、本方法は、第1のデバイスによって、第1のデバイスによって生成される、ハッシュ関数またはランダムに生成された文字列を用いて第1の鍵を生成することを含むことができる。
【0009】
本技術のこの態様によれば、本方法は、第1のデバイスによって、第2のデバイスの存在を検知することを含むことができる。加えて、検知することは、ラウンドトリップ遅延を用いて第1のデバイスと第2のデバイスとの間の距離を決定することを含む。さらに、距離を決定することは、無線技術を用いて距離を検出することを含むことができる。スキャンすることは、第1のデバイスによって第2のデバイスの存在を検知することに応答するだけで、第1のデバイスによって実行することができる。例えば、第1のデバイスが、第2のデバイスの存在を検知するための閾値境界に接近し、次に第2のデバイスを検知する場合、第1のデバイスは、第2のデバイスへのデータのハンドオフを自動的に開始することができる。データのハンドオフは、第1のデバイスに対し所定の距離内にあるのみでなく、第1のデバイスも関連付けられているユーザアカウントに関連付けられてもいる第2のデバイスに制約することができる。
【0010】
本技術のこの態様によれば、解読データは、ビデオコンテンツまたは健康統計のうちの1つまたは複数を含むことができる。
【0011】
本技術のこの態様によれば、コンピューティングデバイスは、第1のネットワークを介して第1のデバイスおよび第2のデバイスに結合されたサーバを含む。加えて、スキャンすることは、第1のネットワークと異なる第2のネットワークを介して第1のデバイスによって実行することができる。
【0012】
本技術のこの態様によれば、第1のデバイスによって、第1のデバイス上の表示のために解読データを処理することは、解読データの処理のために第1のデバイス上でアプリケーションを起動させることを伴うことができる。例えば、暗号化データの受信および復号に応答して、第2のデバイス上でアクティブなアプリを第1のデバイスにおいて自動的に起動することができる。このため、解読データは、解読されたハンドオフデータを表示のために処理するためのアプリケーション(アプリ)の起動をトリガすることができる。
【0013】
開示される技術の別の態様は、データのコネクションレスハンドオフのための方法を含むことができる。本方法は、第1のデバイスによって、ローカルに生成された第1の鍵をコンピューティングデバイスに送信することと、第1のデバイスによって、第2のデバイスによって生成された第2の鍵を受信することと、第1のデバイスによって、第1のデバイスの所定の距離内の第2のデバイスの位置を検知することと、第1のデバイスによって、第1の鍵を用いて暗号化されたデータを第2のデバイスに周期的にブロードキャストすることとを含むことができ、暗号化データは、さらなる処理および/または表示のために第2のデバイスにハンドオフされる。
【0014】
開示される技術のこの態様によれば、第1のデバイスは、第2のデバイスよりも小さいスクリーンを有するデバイスを含む。
【0015】
開示される技術のこの態様によれば、第1のデバイスは、ユーザアカウント情報と、第2のデバイスに関連付けられたデバイスIDと、第2のデバイスに関連付けられた古い暗号化鍵と、古い暗号化鍵のTTL(存続期間)とをさらに含むタプルの一部として第2の鍵を記憶することができる。
【0016】
加えて、本方法は、コンピューティングデバイスによって、第1の鍵および第2の鍵をユーザアカウントに関連付けることを含むことができる。本方法は、第1のデバイスによって、第1のデバイスによって生成される、ハッシュ関数またはランダムに生成された文字列を用いて第1の鍵を生成することも含むことができる。
【0017】
開示される技術のこの態様によれば、検知することは、ラウンドトリップ遅延を用いて第1のデバイスと第2のデバイスとの間の距離を決定することを含むことができる。
【0018】
開示される技術のこの態様によれば、決定することは、超広帯域信号、Bluetooth(登録商標)低エネルギー信号、またはBluetooth RSSI信号のうちの1つを用いて距離を検出することを含む。加えて、暗号化データは、ビデオコンテンツまたは健康統計のうちの1つまたは複数を含む。さらに、コンピューティングデバイスは、第1のネットワークを介して第1のデバイスおよび第2のデバイスに結合されたサーバを含むことができる。
【0019】
開示される技術のこの態様によれば、スキャンすることは、第1のネットワークと異なる第2のネットワークを介して第1のデバイスによって実行することができる。さらに、本方法は、第2のネットワークにわたって第1の鍵を用いて暗号化されたデータを周期的にブロードキャストすることを含むことができる。
【図面の簡単な説明】
【0020】
【
図1】開示される技術の態様による、例示的なシステムを示す。
【
図2】開示される技術の態様による、例示的なコンピューティングデバイスを示す。
【
図3】開示される技術の態様による、例示的なシステムを示す。
【
図4A】開示される技術の態様による、プロセスの例を示す。
【
図4B】開示される技術の態様による、例示的なシステムを示す。
【
図5】開示される技術の態様による、プロセスの例を示す。
【発明を実施するための形態】
【0021】
詳細な説明
概観
この技術は、デバイスの「ペアリング」またはデバイスがハンドオフの開始前に共通ネットワーク上に存在することを必要とすることなく、第1のデバイスにおいて実行されているアクティブなアプリケーション、または代替的にデータを第2のデバイスにセキュアにハンドオフするための技法に関する。例として、第1のデバイスにおけるアプリケーションは、屋外の要素(例えば、5キロのランニング)、それに続く屋内の要素(例えば、ヨガ)を含むワークアウトルーチンを実行する場合がある。この例における第1のデバイスは、モバイルフォン、スマートウオッチ、または、ユーザが屋外の要素を実行している間、この人物が装着するかまたは身につけることができる他のポータブルデバイスを含むことができる。屋外の要素が終了すると、ユーザは、次に自宅に入って屋内の要素を実行する場合がある。ユーザが屋内に入り、同様にアプリケーションを実行することができる自宅内の他のデバイスの近傍に来ると、第1のデバイス上で実行しているアプリケーションを、他のデバイスの中から、アクティブなアプリケーションに関係する情報を表示するための第2のデバイスにハンドオフすることができる。第2のデバイスは、テレビジョン受信機、コンピュータ、タブレット、またはアプリケーションを実行することが可能な任意の他のデバイスを含むことができる。ハンドオフが行われると、ユーザは、第2のデバイスを見ることによって、ワークアウトルーチンの屋内の要素を継続することができる。
【0022】
上記の例において、本技術は、屋内の要素および屋外の要素を有するワークアウトルーチンの文脈で説明されている。本技術はその例に限定されない。例えば、本技術は、第1のデバイスにおいて屋内で開始し、第2の屋内デバイスにハンドオフされるアプリケーションを伴うことができる。例えば、アプリケーションは、ユーザが自宅内の1つの場所から第2の場所に移動することを望む場合があるワークアウトルーチンを伴う場合がある。そのような例において、アプリケーションは、モバイルフォン、ラップトップまたは他のポータブルデバイス等の第1のデバイスにおいて最初に実行することができる。次に、ユーザは、既にアクティブなアプリケーションを、より大きなスクリーンを有する別のデバイス、例えばテレビジョン受信機にハンドオフさせることを望む場合がある。この例において、アクティブなアプリケーションは、ワークアウトアプリケーション、および、映画または他の娯楽コンテンツをストリーミングするアプリケーション(例えば、YOUTUBE(登録商標))、銀行取引アプリケーション、テキストエディタ等の他のアプリケーション、またはユーザが有用であると感じ得る任意の他のアプリケーションを含むことができる。
【0023】
開示される技術の態様は、ユーザアカウントに関連付けられたハンドオフデバイス候補間のセキュアな鍵生成およびデバイス鍵の共有である。例えば、本技術のこの態様を実施するための技法は、ハンドオフを行う前に、ブロードキャストされる暗号化データをピックアップまたは取得することが意図されたハンドオフデバイス候補間で1つまたは複数の解読鍵を共有することを含むことができる。各ハンドオフデバイスは、ユーザアカウントにサインインしたデバイスを含むことができる。ユーザアカウントは、例えば、Google(登録商標)またはGmail(登録商標)アカウント等のオンライン電子メールアカウントとすることができる。アカウントは、ユーザデバイスの登録、および登録されたデバイス間の鍵共有を可能にする任意のアカウントを含むことができる。アカウントに関連付けて記憶される一意の鍵を用いて、アカウントにサインインしたデバイスによって、アカウントにサインインした別のデバイスに送信されるデータを解読することができる。まだアカウントにサインインしていないデバイスについて、アカウントにサインインすると、次にそのようなデバイスがハンドオフデバイス候補となる。
【0024】
一意の鍵が、デバイスにおいてローカルに生成され、ランダムに生成された文字列またはハッシュによって生成された文字列を含むことができる。鍵が生成されると、この鍵は、サーバ上のタプル(例えば、n個の要素のシーケンスまたは順序付けされたリスト)に記憶され、ユーザのアカウントにリンク付けされる。したがって、ユーザアカウントに関連付けられた各デバイスは、一意の鍵を生成し、サーバ上に記憶させる。加えて、アカウントに関連付けられた各デバイスは、ユーザアカウントに関連付けられた他のデバイスの一意の鍵を記憶することができる。第1のデバイスから第2のデバイスへのアプリケーションハンドオフを有効にするプロセスの一部として、第2のデバイスは、第1のデバイスの一意の鍵を用いて、第1のデバイスによってブロードキャストされる暗号化データを解読する。すなわち、第1のデバイスは、自身の一意の鍵を用いて、アプリケーションコンテンツまたはデータを暗号化し、第2のデバイスにセキュアに送信する。次に、第2のデバイスは、一意の鍵を用いて、受信するアプリケーションコンテンツまたはデータを解読し、データまたはコンテンツをユーザに提示する。
【0025】
鍵がインターネットを介してリモートサーバに記憶される場合、デバイスは、所与のユーザアカウントに関連付けられたデバイスの鍵を提供し、これにアクセスを有するサーバに接続する必要がある場合がある。一般的に、デバイスは、1つまたは複数のネットワークを介してサーバに接続することが可能である必要がある。例えば、デバイスは、インターネットに直接(例えば、WiFi(登録商標)、LAN、セルラを介して)または間接的に(例えば、Bluetooth(例えば、BT-テザリングウオッチ)を介して)接続する、およびサーバに接続するかまたはサーバと連携するためにインターネット接続を有する別のデバイス(例えば、インターネットアクセスを有するスマートフォン)に接続する機能を必要とする場合がある。別の例において、デバイス鍵を維持および提供する機能は、例えば、インターネットを介してアクセス可能なサーバによって提供されるのと等価な機能を提供するローカルコンピュータによって実行することができる。さらなる例として、インターネットへの接続を必要とする代わりに、Google home speakerが、(例えばGoogleサーバを必要とする代わりに)仲介者および鍵記憶/共有デバイスとなり得る。これらの後者の場合、システムは、WANまたはインターネット接続が必要でないため、ユーザアカウントにリンクされたユーザデバイスが、コンテンツまたはデータのハンドオフに利用可能であるビルまたは他の場所に対しローカライズされているとみなすことができる。
【0026】
デバイスに関連付けられたタプルは、例えば、以下の形態をとることができる:(User_acct.、device ID、new_encryption_key、old_encryption_key、new_TTL(存続期間)、old_TTL)。new_encryption_keyおよびold_encryption_keyは、例えば、WiFiまたはネットワーク接続が失敗し、鍵が他のデバイス上でローカルに更新されない場合、記憶することができる。次に、近傍のまたは候補のデバイスは、受信したコンテンツまたはデータを解読することを試み、古い鍵または新たな鍵を用いることができる。「old_TTL」は、古い鍵の満了日を指し、この時点で鍵が無効になり、タプル内のその関連付けられたフィールドはゼロで埋められるかまたはゼロに設定される。新たな鍵またはハッシュが作成されると、アカウントに関連付けられた全てのデバイスは、自身のローカルストレージを、この新たな情報を用いて更新することができる。
【0027】
この技術の別の例は、近傍デバイス、または互いのリスン範囲内に位置するデバイス間の近接性検出である。例において、近接性検出は、1つまたは複数の送信信号および/または反射信号のラウンドトリップ時間を用いて2つのデバイス間の距離を推定する技法に基づくことができる。別の例において、超広帯域(UWB)技術をこの機能のために用いることができる。別の例において、Bluetooth低エネルギー(BLE)またはBluetooth受信信号強度インジケータ(RSSI)を用いて距離を推定することができる。時によって大きくなり得る、アンテナ設計、信号損失(例えば、デバイスのシャーシ)等に基づく受信信号強度における分散が存在するため、いくつかの場合、RSSIトレンディングを用いてポイント間の変化する距離を決定することが、RSSIの絶対値を用いることに対比して好ましい場合がある。複数のデバイスが存在する場合、三辺測量を用いて複数のデバイス間の距離を推定することができる。近接性検出の例として、ユーザが自身のウオッチにおいてワークアウトを行い、テレビジョン(例えば、Google TV(登録商標))の近くに移動する場合、RSSIを用いて、ウオッチとテレビジョンとの間の近さを決定し、TV上のガイド付きワークアウトに移動するアクションチップを提案することができる。例えば、ウオッチおよびTVが、ある特定の距離内にあるか、または検出された電力レベルが閾値を下回っている場合、ユーザは、ウオッチまたはTVを介して、TVがウオッチ上に提示されるコンテンツもしくはデータ(例えば、ストリーミングワークアウト)の閲覧またはインタラクトのために利用可能であることをアラートされ得る。
【0028】
開示される技術の態様は、コネクションレス方式を利用することである。コネクションレス接続は、デバイスが明示的な接続なしで別のデバイスにおけるリアルタイム情報(例えば、健康統計)を得ることを可能にする。特に、デバイスは、例えばアドバタイズメントおよびスキャンを介して接続なしで互いに通信することができる。アドバタイズメントは、全ての近傍デバイスがリスンすることができるブロードキャストの形態をとる。したがって、開示される技術のこの態様は、ユニキャストまたはポイントツーポイント接続方式に限定されない。代わりに、デバイスは、複数のエンドポイントまたは他のデバイスと同時に「ブロードキャスト」または「スピーク」することができる。開示される技術のこの態様に従って、BLEスキャンおよびアドバタイズを利用することができる。さらに、開示される技術のこの態様によれば、アドバタイズメントは6~37バイトで変動することができる。これは、通常、デバイス間の暗号化情報の通信を可能にするのに十分大きいものであり得る。暗号化情報は、例えば、氏名、健康、写真等の、機密である場合も機密でない場合もある、アドバタイズメントパケット内の情報を含むことができる。ペイロードは、暗号化されておらず、デバイスの一意のIDに対応する、カスタムプリアンブルを(ペイロードのデータ部分内に)含むことができる。このIDは、上記で論じたタプルに存在するものと同じものである。リスナ(スキャンを行うデバイス)は、ペイロードをアンパックし、デバイスIDを読み出し、ハッシュテーブルルックアップを行うためにその値をハッシュとして用い、それによってこのデバイスに対応するタプルを得ることになる。上記で言及したように、タプルは、古い暗号鍵および新しい暗号鍵を記憶し、これを用いてペイロードの残りの部分を解読することができる。この後、未加工データを処理することができる。
【0029】
開示される技術がポイントツーポイント接続を利用しないため、利用されるアドバタイズメントおよびスキャン方式は本質的に単方向性である。しかしながら、アドバタイズメントフィールドのペイロード内のシーケンス番号を用いて、ポイントツーポイント接続の特徴をエミュレートすることによって、双方向通信を得ることができる。リスナが、アドバタイザが送信しているパケットをピックアップすることを確実にするために、パケットを、ある特定の回数再送信することができる。データがリアルタイム心拍データ等の何らかの時系列に関係している場合、シーケンス番号または識別子をアドバタイズメントパケットにアタッチすることができる。
【0030】
開示される技術の上記の態様による例は、ユーザが、ウオッチを用いて、1つまたは複数の検出された健康関連パラメータに関連付けられた統計を追跡、処理および累算することを伴うエクササイズルーチンを行うことを含むことができる。ウオッチは、Google Gmailアカウント等のユーザアカウントに登録され得る。加えて、ユーザに関連付けられたTVも、ユーザアカウントに登録され得る。ウオッチおよびTVは各々、ローカルな一意の鍵を生成することができる。各鍵は、サーバと共有され、ユーザのGmailアカウントに関連付けられる。加えて、アカウントに関連付けられた各デバイス、例えばウオッチおよびTVは、アカウントに関連付けられた全ての他のデバイスの鍵を取得することができる。ウオッチがTVのある特定の距離内に位置するとき、TVは、ユーザに、ウオッチ上で実行されているエクササイズルーチンに関連付けられたデータを表示するのにTVが利用可能であることをアラートすることができる。ユーザが、データがTV上で表示されることを望む場合、ウオッチは、その一意の鍵を用いて収集するデータをアドバタイズし、TVは、そのようなアドバタイズメントをスキャンし、それらをウオッチの鍵を用いて解読して、収集されたデータを取得し、これをTV上に表示することができる。代替的に、ユーザは、アラートされる必要がない場合があり、例えば、ユーザに、2つのデバイスが互いに近接しているときはいつでも、表示をウオッチからTVに自動的に切り替えることの嗜好を示させることによって、データをTVに自動的に送信することができる。他の例において、ユーザは、自動ハンドオーバを行うことができる距離を設定することを許可されてもよい。
【0031】
データは、文字列をアドバタイズメントパケットペイロードフィールドに連結することによって、ウオッチおよびTVによって交換することができる。TVにおけるリアルタイム健康統計を可能にするために、ウオッチは、送信されているデータのタイプを知らせる識別ヘッダを追加することができ、TVは、この識別子を用いて、ペイロードフィールド内の値間のオフセットを決定する必要がある。データの範囲は、限定ではないが、1つまたは複数の以下のデータ、すなわち、心拍、心拍変動性、呼吸数、燃焼カロリー、移動データ(例えば、ステップ、距離、高度、速度)を含むベクトルを含むことができる。ウオッチは、いくらかの周期的間隔(例えば、2秒ごと)にアドバタイズメントをデータと共にブロードキャストし、TV等のリスナがアドバタイズメントをスキャンし、解読鍵を用いてデータを復号し、これをリアルタイムで表示する。
【0032】
1つの態様において、開示される技術は、ユーザによってホワイトリスト登録されたアプリケーションに関連して用いることができる。例えば、ユーザは、開示されるシステムおよび技法と共に用いるために、スマートフォン上に存在するある特定のアプリケーションを選択することができる。例えば、ユーザは、フィットネスアプリケーション(例えば、Fitbitアプリケーション)、コンテンツストリーミングアプリケーション(例えば、YOUTUBE)、またはこれらのアプリケーションがアクティブであるときに、これらをユーザアカウントに関連付けられた異なるデバイスにハンドオフすることができるようにホワイトリスト登録された他のアプリケーションを選択することができる。
【0033】
技術は、BlueToothまたはWiFi等の通信プラットフォームにおいて実施することができ、アドバタイズおよびスキャンを用い、鍵をバックグラウンドにおいてBlueToothまたはWiFi接続を介して共有することによってペアリングを回避することができる。これにより、ペアリングがデバイス間で鍵交換を行うことを回避する。これに関して、ペアリングは通常、ユーザがアクションを行う(例えば、ペアリングされるデバイス上に現れるコードを入力する)ことを必要とする。開示される技術の1つまたは複数の態様によれば、接続を確立するために必要なユーザアクションを有利に回避することができる。
【0034】
開示される技術の上記の態様は、例えばBluetooth接続において必要とされるような、データハンドオフに関与するデバイスを明示的にペアリングまたは接続する必要を回避することを1つの利点として提供する。加えて、デバイス間の通信は、ローカルに生成された鍵を用いてセキュアな方式で行われる。開示されるシステムおよび技法の別の利点は、デバイスが、LANまたは他のネットワークが利用可能でない場合があるときであっても、データを共有することができることである。さらに、デバイス間の通信リンクは、他のネットワークにおいてローカルに実行される未登録デバイスによる使用には利用可能でない。加えて、デバイスを互いに明示的にペアリングおよび接続する必要がないため、ユーザ体験全体がよりシームレスになる。加えて、ユーザアカウントに関連付けられた鍵は、ユーザアカウントに関連付けられた各デバイスに記憶することができるため、本技術はレイテンシを軽減する。したがって、秘密/公開鍵方式の一部として鍵を得ることに関連付けられた遅延、またはペアリングに関連付けられた遅延が軽減または回避される。
【0035】
例示的なシステムおよび/または装置
図1は、開示される技術の態様による例示的なシステム100を示す。システムは、1つまたは複数のサーバとのアクセスポイントを通じて通信することが可能な複数のコンピューティングデバイスを含むことができる。コンピューティングデバイスは、例えば、ウオッチ104、電話108、ラップトップ112、デスクトップ114、およびスマートディスプレイまたはテレビジョン118を含むことができる。いくつかの例において、コンピューティングデバイスのウオッチ104、電話108、ラップトップ112、デスクトップ114、スマートディスプレイまたはテレビジョン118、およびAP106は、これらのコンピューティングデバイスの各々が、近接場、Bluetooth、またはWiFi技術のうちの1つまたは複数を用いることによって、WANを伴うことなく互いに通信することができるという点で、オンプレミスまたはローカルエリアネットワーク(LAN)を形成するとみなすことができる。
【0036】
ウオッチ104は、装着者に関連付けられた、健康に関係するパラメータおよび他のパラメータを検出する機能を有するスマートウオッチとすることができる。これに関して、ウオッチ104は、装着者の健康関連メトリックを検出するように構成された1つまたは複数のセンサを含むことができる。例えば、ウオッチ104は、光電式容積脈波記録法(PPG)を実行するためのセンサおよび関連技術を利用することができる。より具体的には、ウオッチ104は、例えばLED等の光源および光検出器を含むことができ、これらは併せて、センサまたは検知回路部を形成することができる。光源および光検出器を用いて、PPG技術に基づいて心拍計算を行うことができる。ウオッチ104は、ウオッチを装着している間に装着者が進む距離、高度の変化、装着者の歩くステップ数の追跡を可能にし、ストレスを測定する他の技術、例えばGPS、加速度計も含むことができる。ウオッチ104は、装着者に関連付けられた睡眠パターンも検出および監視することができる。
【0037】
ウオッチ104は、他のコンピューティングデバイスと通信することを可能にする技術も含むことができる。そのような技術は、BlueTooth、WiFiおよびセルラ通信(例えば、4G、New Radio(「NR」)または5G)を含むことができる。WiFi通信は、アクセスポイント(AP)106を介して行うことができる。セルラ通信は、
図1を簡略化するために示されていない無線塔を介して行うことができる。
【0038】
ウオッチ104は、BlueToothを介して電話108等の別のコンピューティングデバイスと直接通信することができる。いくつかの例において、電話108はスマートフォンを含むことができ、スマートフォンも、WiFi技術を用いてAP106を介して、またはセルラネットワークを介して通信することができる。電話106(Phone106)は近距離通信(NFC)機能も含むことができる。電話106は、ウオッチ104または他のコンピューティングデバイスから受信したデータを受信し、さらに処理することを可能にするアプリケーションを実行することができる。そのようなデータは、健康関連メトリック、または健康関連メトリックを導出することができるデータもしくは信号を含むことができる。より一般的には、そのようなデータは、電話108または他のコンピューティングデバイスに存在する任意のデータを含むことができる。電話108は、WAN122を介してまたはWAN122上でデータおよび他の情報にアクセスする様々な他のソフトウェアおよび/またはアプリケーションも実行することができる。WAN122は、他のコンピューティングデバイスにサービスを提供する通信機器およびコンピューティングデバイスのネットワークとみなすことができる。いくつかの例において、WAN122はインターネットとみなすことができる。WAN122は、サーバファーム、データセンタ、またはプライベートネットワーク化されたコンピューティングデバイスとみなすことができる、コンピューティングデバイス130、132および134へのアクセスも提供することができる。これに関して、コンピューティングデバイス130、132および134は、いくつかの例において、WAN122またはインターネットの一部とみなすことができる。
【0039】
別の例として、コンピューティングデバイスは、ラップトップ112またはデスクトップ114を含むことができる。ラップトップ112およびデスクトップ114は、同様にWAN122上のデータにアクセスすることができるか、またはコンピューティングデバイス130、132および/もしくは134に存在するソフトウェアおよび/もしくはアプリケーションを含むコンピューティングデバイスを含む。ラップトップ112およびデスクトップ114は、AP106を介して無線で、または有線ネットワーク140を介してそのようなデータにアクセスすることができる。有線ネットワーク140は、例えばイーサネットを含むことができる。ラップトップ112およびデスクトップ114も、BlueToothおよび近距離通信技術を含むことができる。したがって、ラップトップ108(Laptop108)およびデスクトップ114は、互いに直接通信することができるか、または各々が電話108もしくはウオッチ104と通信することができる。
【0040】
別の例として、コンピューティングデバイスは、スマートディスプレイまたはテレビジョン118を含むことができる。スマートディスプレイ/TV118は、AP106と通信して、WAN122、またはコンピューティングデバイス130、132および134のうちの任意のものと通信することができる。このため、スマートディスプレイ/TV118はWiFi技術を利用することができる。加えて、スマートディスプレイ/TV118は、BlueToothおよび近距離通信技術も利用することができる。スマートディスプレイ/TV118は、イーサネットネットワーク140を介してAP106と接続することもできる。いくつかの例において、AP106はケーブルモデムも含むことができ、このケーブルモデムを通じて、スマートTV/ディスプレイ118も、WAN122上のビデオコンテンツ等のデータ、またはコンピューティングデバイス130、132および/もしくは134にアクセスすることができる。
【0041】
図2は、開示される技術の態様による、例示的なコンピューティングデバイス200を示す。コンピューティングデバイス200は、コンピューティングデバイス、すなわち、ウオッチ104、電話108、ラップトップ112、デスクトップ114、スマートディスプレイまたはテレビジョン118、ならびにコンピューティングデバイス130、132および134のうちの任意のものを含むことができる。コンピューティングデバイス200は、1つまたは複数のプロセッサ211、メモリ212、命令213およびデータ214を含むことができる。コンピューティングデバイス200は、ディスプレイ215、ユーザ入力216および通信230も含むことができる。
【0042】
1つまたは複数のプロセッサ211は、市販のCPUまたはマイクロプロセッサ等の任意の従来のプロセッサを含むことができる。代替的に、プロセッサは、ASICまたは他のハードウェアベースのプロセッサ等の専用コンポーネントであってもよい。必須ではないが、コンピューティングデバイス200は、特定のコンピューティング機能をより高速にまたはより効率的に実行するための専用ハードウェアコンポーネントを含むことができる。
【0043】
図2は、プロセッサ、メモリおよびコンピューティングデバイス200の他の要素を、同じそれぞれのブロック内にあるものとして機能的に示しているが、当業者であれば、プロセッサまたはメモリが、同じ物理的ハウジング内に記憶される場合もされない場合もある複数のプロセッサまたはメモリを実際に含み得ることを理解されよう。同様に、メモリは、コンピューティングデバイス200のハウジングと異なるハウジング内に位置するハードドライブまたは他のストレージ媒体であってもよい。したがって、プロセッサまたはコンピューティングデバイスへの言及は、並列に動作する場合もしない場合もあるプロセッサまたはコンピューティングデバイスまたはメモリの集合への言及を含むことが理解されよう。
【0044】
コンピューティングデバイス200のメモリ212は、1つまたは複数のプロセッサ211によってアクセス可能な情報を記憶することができる。その情報は、命令213および/またはデータ214を含むことができる。命令213およびデータ214は、プロセッサ211によって取り出し、操作または記憶することができる。メモリ212は、プロセッサ211によってアクセス可能な情報を記憶できる任意の非一時的タイプとすることができ、これは、非一時的コンピュータ可読媒体、または、ハードドライブ、メモリカード、リードオンリーメモリ(「ROM」)、ランダムアクセスメモリ(「RAM」)、光ディスク等の電子デバイスの支援により読み出すことができるデータを記憶する他の媒体、ならびに他の書き込み可能メモリおよびリードオンリーメモリを含む。
【0045】
命令213は、プロセッサ211により、機械コード等の直接実行される命令、またはスクリプト等の間接的に実行される命令の任意のセットとすることができる。この点に関し、「命令」、「アプリケーション」、「ステップ」、および「プログラム」という用語は、本明細書では交換可能に使用することができる。命令は、プロセッサによる直接の処理のためのオブジェクトコード形式で、または要求に応じて解釈されるかもしくは事前にコンパイルされた独立したソースコードモジュールのスクリプトまたは集合を含む任意の他のコンピューティングデバイス言語で記憶されてもよい。命令の機能、方法、およびルーチンは、以下でより詳細に説明される。
【0046】
データ214は、命令213に従って、プロセッサ111によって、取り出し、記憶、または変更することができる。例えば、本開示は特定のデータ構造によって制限されないが、データ214は、コンピュータのレジスタに、複数の異なるフィールドおよびレコード、XML文書、またはフラットファイルを有するテーブルとしてのリレーショナルデータベースに記憶することができる。データ214は、限定ではないが、2進数値、ASCII、またはユニコード等のコンピュータ可読フォーマットにフォーマット設定することもできる。さらに、単なる例として、データ214は、数、説明テキスト、占有コード、ポインタ、(他のネットワーク位置を含む)他のメモリに記憶されるデータへの参照、または関連するデータを計算する機能により用いられる情報等、関連する情報を識別するのに十分な情報を含むことができる。
【0047】
ディスプレイ215および本明細書に記載の他のディスプレイは、スクリーン、タッチスクリーン、プロジェクタまたはテレビジョンを有するモニタ等の任意のタイプのディスプレイとすることができる。これに関して、いくつかの例において、ディスプレイ215は、デバイスの一部を形成する実際のディスプレイを含むことができる。他の例において、ディスプレイ215は、コンピューティングデバイスがディスプレイポート(例えば、HDMI(登録商標)ポート)のみを提供すればよいように、コンピューティングデバイスの外部のディスプレイを含むことができる。1つまたは複数のコンピューティングデバイス200のディスプレイ215は、グラフィカルユーザインタフェース(「GUI」)または他のタイプのユーザインタフェースを介してユーザに情報を電子的に表示することができる。例えば、以下に論じられるように、ディスプレイ215は、ユーザアカウントに関連付けられた第1のコンピューティングデバイスが第2のコンピューティングデバイスの範囲内にあり、第1のデバイス内に存在しているかまたは第1のデバイス上で実行されているデータまたはアプリケーションを第2のデバイスと共有することができることを示す通知を電子的に表示することができる。
【0048】
ユーザ入力216は、マウス、キーボード、タッチスクリーン、マイクロフォン、または任意の他のタイプの入力とすることができる。ユーザ入力216は、コンピューティングデバイス200の一部として含まれてもよく、またはデバイス200と別個に提供されてもよい。
【0049】
通信ブロック230は、近距離場、Bluetooth、WiFi、セルラ、イーサネット、または他の通信技術を用いる通信を可能にする回路部、および関連する命令または方法を含むことができる。例えば、通信ブロック230は、AP106との間でデータを送受信する、無線送信機および受信機およびソフトウェアモジュール(例えば、メモリ212に存在するか、または通信ブロック230におけるメモリ上にある命令)を形成する回路部を含む無線インタフェースを含むことができる。同様に、通信ブロック230は、上記の通信技術のうちの任意のものを用いて通信する必要がある、コンピューティングデバイス200内の構成要素を含むことができる。
【0050】
コンピューティングデバイス200は、プロセッサ数、メモリの数およびサイズ、ディスプレイを含むか否か、ユーザ入力または通信ブロックのタイプの観点で異なる形で装備されてもよい。例えば、コンピューティングデバイス200がコンピューティングデバイス130、132または134のうちの1つである場合、コンピューティングデバイス200はサーバを含むことができる。この例において、コンピューティングデバイスは、互いに独立して実行する複数のプロセッサと、複数のメモリと、複数の通信ブロックとを有することができる。この例において、コンピューティングデバイスは、ディスプレイおよびキーボードを接続するためのポートのみを提供することができる。他の例において、コンピューティングデバイス200は、上記のように、当該技術分野において既知のスマートフォン、スマートウオッチ、ラップトップまたはデスクトップを形成するように装備されてもよい。
【0051】
図3は、開示される技術の態様による例示的なシステム300を示す。システム300は、スマートウオッチ310およびスマートフォン330を含む。スマートウオッチ310およびスマートフォン330は、以下でさらに詳細に説明されるように、所与のユーザアカウント(例えば、Andrew Pixel Googleアカウント)に関連付けられるかまたはこれに登録される。この例においてスマートウオッチ310は、ユーザが、例えば屋外要素および屋内要素を含み得るワークアウトに参加している間、ユーザまたはユーザアカウントの所有者によって装着されている。ワークアウトの一部として、スマートウオッチ310のユーザまたは装着者は、検出閾値境界340の右側の場所から、境界340の左の場所に変更することを望むかまたは変更を必要とする場合がある。検出閾値境界340は、スマートフォン330またはスマートウオッチ310が互いの存在を検知または検出することが可能な距離、または可能な範囲内の距離を例示的に示す。検出閾値境界340は、例えば、自宅または自宅の中の部屋等の、建物を画定する外壁を含むことができる。スマートウオッチ310は、閾値境界に接近すると、スマートフォン330の存在を検知または検出する。スマートフォン330を検知すると、スマートウオッチ310は、ワークアウトをスマートフォン330(例えば、Andrew Pixel 4A)に転送またはハンドオフすることができることを示すプロンプトをユーザに表示することができる。ユーザがスマートフォン330へのワークアウトのハンドオフを選択または承認する場合、スマートウオッチ310は、ユーザから収集したデータ(例えば、健康関連メトリック)を、ユーザがワークアウトを継続している間の表示またはさらなる処理のためにスマートフォン330にセキュアに送信することができる。例えば、スマートフォン330は、スマートウオッチ310によって検出された心拍を表示することができる。次に、これにより、ユーザは、スマートウオッチによって収集された心拍または他のデータをより容易に見ることが可能になる。
【0052】
他の例において、スマートウオッチ310からスマートフォン330へのワークアウトのハンドオフの選択または承認は、スマートウオッチからスマートフォンへの健康データの転送以上のものを伴うことができる。例えば、ワークアウトが命令をユーザに提供するアプリを通じて管理されている場合、ハンドオフアクションは、スマートフォンにおいてワークアウトアプリを起動させることも伴うことができる。このようにして、ワークアウトに関する命令がスマートウオッチを通じて継続する代わりに、そのような命令は、スマートフォン330上で起動されたワークアウトアプリを介してスマートフォン330を通じて継続することができる。したがって、スマートウオッチがワークアウト中にユーザまたは装着者からデータを収集し続けることができる一方で、命令をスマートフォン330から受信することができ、ワークアウトの継続中に収集されたデータをスマートフォン上に表示することができる。
【0053】
より一般的には、1つのデバイスをプライマリデバイス、別のデバイスをセカンダリデバイスとみなすことができる。プライマリデバイスは、ユーザの注意が最初に集中するデバイスとして定義することができ、セカンダリデバイスは、データ(例えば、アクティブなアプリケーションのコンテンツおよび/またはアクティブなアプリケーションに関係する命令)がハンドオフされるデバイスとして定義することができる。例えば、プライマリデバイス(例えば、スマートウオッチ)は、ユーザインタフェース(UI)および進行中のアクティビティのコンテンツを含むことができる。このとき、「ハンドオフ」は電話に対するものであり、電話は進行中のUIを表示するプライマリデバイスとなるが、スマートウオッチは依然として、より軽量にセッションに参加することができる。スマートウオッチは、ユーザ情報の収集を継続し、ステータスインジケータ、およびスマートウオッチをプライマリデバイスとして再び有効にするための(所望の場合にセッションUIをスマートウオッチに戻すための)方式を有することができる。例えば、スマートウオッチは、セッションを切り替えてUIに戻すことを選択するためのエリアをディスプレイ上に有する。
【0054】
システム300は、2つのデバイス、すなわち、スマートウオッチ310およびスマートフォン330を含む。この技術の態様によれば、デバイスは、2つのデバイスのペアリングを必要とすることなく、互いにセキュアに通信する。セキュアな通信は、例えば、共通アカウントを通じてデバイスに鍵または他のセキュリティコードを共有させることによって可能にされる。例えば、各デバイスを、オンラインアカウントに登録することができる。次に、各デバイスは、別のデバイスに通信することになるデータを暗号化するのに用いることができる一意の鍵またはコードを生成することができる。次に、共通アカウントが存在するサーバまたは他のコンピュータは、鍵を、アカウントに登録された他のデバイスと共有することができる。したがって、第1のデバイスが第2のデバイスから暗号化情報を受信すると、第1のデバイスは、送信されたデータまたはより一般的には第2のデバイスからの通信を暗号化するために第2のデバイスによって用いられる鍵をサーバから受信しているため(または提供されているため)、第2のデバイスから受信した情報を解読することができる。
【0055】
システム300において、スマートウオッチ310およびスマートフォン330は、例示的なコンピューティングデバイスとして用いられる。他の例において、システムのコンピューティングデバイスは、
図1に関連して上記で論じたコンピューティングデバイスのうちの任意のものを含むことができる。例えば、ハンドオフは、スマートフォンとスマートディスプレイ/TVとの間で行うことができる。ハンドオフは、スマートディスプレイ/TVからスマートフォンまたはスマートウオッチへのハンドオフも含むことができる。同様に、ハンドオフは、スマートフォンからスマートウオッチに行ってもよい。ハンドオフに関与するデバイスは、ユーザが最初に用いるデバイスと、ユーザが場所を変更するときに遭遇し得る他の近傍デバイスとに基づいて決定される。例えば、ユーザは、スマートフォンにおいて銀行取引アプリケーションを用いる処理中に、自身のデスクトップコンピュータが位置しているエリアに入る場合があり、デバイスが互いを検出または検知し、デスクトップコンピュータが、スマートフォンがデータの送信に用いることになる鍵またはコードを有している限り、スマートフォン上での実行に関連するデータおよび/またはアプリケーションの、デスクトップコンピュータへのハンドオフを開始することができる。したがって、開示される技術は、任意の2つのデバイス間で行うことができる。加えて、本技術は、同じデータまたはコンテンツのハンドオフを、1つのデバイスから複数の他のデバイスに行うことができるように構成することができる。
【0056】
例示的なプロセスおよび/または方法
これに関して、
図4Aは、開示される技術によるプロセス400の例を、スイムレーン図の形態で示す。プロセス400は、開示される技術の1つまたは複数の態様による、第1のデバイス410と第2のデバイス420との間のデータハンドオフを示す。示されるように、第1のデバイス410は、ブロック424を介して、一意の鍵414をサーバ430に送信する。ブロック424は、AP106、セルラシステムの一部であるセルラタワー、スイッチ、ルータ等を含むイーサネットシステム、または第1のデバイス410および/もしくは第2のデバイス420によるサーバ430との通信を可能にする任意の他のシステムを含むことができる。サーバ430は、コンピューティングデバイス130、132、134のうちの任意の1つまたは複数を含むことができる。加えて、サーバ430によって提供される機能は、例えばラップトップ112、デスクトップ114または電話108等のユーザデバイスによって提供することもできる。これに関して、他のデバイスは、ホームスピーカも含むことができる。これらの後者の例において、
図1におけるオンプレミスまたはLANの一部であるローカルデバイスは、サーバ430に関して説明した鍵登録および共有機能を提供することができる。
【0057】
一意の鍵は、第1のデバイス410上でまたは第1のデバイス410によってローカルで生成される。一意の鍵は、ランダムに生成された文字列またはハッシュ関数によって生成された文字列を含むことができる。鍵は、生成されると、線414で示すようにサーバ430に送信される。サーバ430は、鍵が第1のデバイス410に関連付けられたユーザアカウントにリンクされるように、鍵をタプルに記憶することができる。タプルは、例えば以下の形態をとることができる:(User_acct.、device ID、new_encryption_key、old_encryption_key、new_TTL(存続期間)、old_TTL)。「old_TTL」は、古い鍵の満了日を指し、この時点で鍵が無効になり、タプル内のその関連付けられたフィールドはゼロで埋められるかまたはゼロに設定される。new_encryption_keyおよびold_encryption_keyは、例えば、WiFiまたはネットワーク接続が失敗し、鍵が他の近傍デバイス上でローカルに更新されない場合、記憶することができる。サーバ430は、サーバ側の鍵の記憶および維持をサポートする認証のために用いられるGoogleアカウントまたは任意の他のアカウント等のユーザアカウントを管理するサーバを含むことができる。ユーザによって用いられるデバイスを、アカウントに登録することができる。いくつかの場合、登録されることに加えて、デバイスは、アカウントに関連付けられた他のデバイスによって生成される一意の鍵を受信するために、サインインを要求される場合がある。
【0058】
ループ436に示すように、サーバ430は、各登録されたデバイスごとに受信する鍵を記憶し、受信する鍵情報を処理する(例えば、これを、記憶および/または送信のために操作する)。サーバ430はまた、各デバイスの鍵を、ユーザアカウントに関連付けられた他のデバイスと共有する。
図4Aに示すように、サーバ430は、440に示すように、例えば、第1のデバイス410から受信した一意の鍵を第2のデバイス420と共有することができる。ユーザアカウントに登録および/またはサインインされた他のデバイスが存在する限り、サーバ430はまた、一意の鍵をこれらのデバイスと共有し、これらのデバイスによって生成された鍵を他の登録されたデバイス間で共有することもできる。次に、近傍のまたは候補デバイスは、受信したコンテンツまたはデータを解読することを試みて、古い鍵または新たな鍵を用いることができる。新たな鍵またはハッシュが作成されると、アカウントに関連付けられた全てのデバイスは、自身のローカルストレージを、新たな鍵またはハッシュ情報を用いて更新することができる。
【0059】
開示される技術の態様によれば、第1のデバイス410および第2のデバイス420は、近傍のデバイスを検出するために、近接性検出を実施する。近接性検出は、例えば、
図4Aにおけるループ444および448によって示される。近接性検出は、展開される無線技術に依拠して、複数の方式で実施することができる。用いることができる技術は、送信信号または反射信号に基づいてラウンドトリップを測定することを含む。2つの近傍デバイスがUWBを利用するとき、超広帯域(UWB)も用いることができる。さらに、近傍デバイス間の距離を推定するために、Bluetooth低エネルギー(BLE)を用いることもできる。加えて、Bluetooth受信信号強度インジケーション(RSSI)を用いることもできる。RSSIは、アンテナによって受信される電力レベルのインジケーションを提供し、これを用いて、Bluetooth無線がオンの状態で近傍デバイスを検知または検出することができる。受信信号強度はアンテナ設計に基づいて変動するため、RSSIの絶対値を用いる代わりに、RSSIトレンドを用いて、デバイス間の距離の変化を決定することができる。所与のデバイスの近傍に3つ以上のデバイスが存在する場合、三辺測量を用いてデバイス間の距離を推定することができる。
【0060】
第1のデバイス410は、例えばRSSI値に基づいて、第2のデバイス420が所定の距離内にあることを検出するとき、ループ450に示すように、第2のデバイス420を介してユーザへのデータまたはコンテンツのハンドオフ提案を開始することができる。ユーザが、ハンドオフを行うことができるような提案を選択する場合、BLEにおいて用いられるものと類似のスキャンおよびアドバタイズメント方式を用いて、第1のデバイス410によって第2のデバイス420にデータまたはコンテンツを送信させることができる。いくつかの例において、ユーザは、第1および第2のデバイス410、420の両方においてハンドオフ提案を受理する必要がある場合がある。他の例において、システムは、ユーザが第1のデバイス410においてのみ提案を受理する必要があるように実施され得る。この後者の例において、次に、第1のデバイス410は、第2のデバイス420において受信されたときに、第2のデバイス420に、第2のデバイス420が第1のデバイスからのデータの受信者になることを通知するメッセージをブロードキャストすることができる。これは、例えば、ブロードキャストされるメッセージに第2のデバイスのデバイス識別子を含めることによって実施することができる。本技術のこの態様は、複数のデバイス間のBLEスキャンおよびアドバタイズメントを用いて実施することができる。したがって、本技術は、コネクションレス方式を利用する。アドバタイズは「ブロードキャスト」の形態をとるため、全ての近傍デバイスがリスンすることができる。一般的に、デバイスは、アドバタイズメントおよびスキャンの結果として、接続する必要なく互いに通信する。したがって、例では、デバイスはBLEパケットを周期的にスキャンすることができる。
【0061】
いくつかの例において、ハンドオフに関与する第2のデバイスは、デバイスへの近接性を所与として明らかになる。例えば、最も近いデバイスに最高のランクを与え、自動的に第2のデバイスとして選択することができる。より詳細には、第1のデバイスがハンドオフを開始するためのデータをアドバタイズしているとき、ハンドオフ候補(受信者または第2のデバイス)も自身のデバイスIDでアドバタイズすることができる。次に、第1のデバイス(例えば、、ウオッチ)がこれらのIDを近接性メトリックと共に用いて、ユーザがハンドオフを「開始」している第1のデバイスまたはウオッチ上で選択することができるデバイスのリストをソートすることができる。曖昧性解消が必要とされ得る場合、近接性に基づいて、デバイスをハンドオフ候補としてランク付けすることができる。加えて、どのデバイス(すなわち、第2のデバイス)にデータまたはコンテンツがハンドオフされるべきかを選択するためのユーザ入力を提供するようにユーザにプロンプトすることができる。いくつかの例において、ユーザ選択は、近接性に基づいてランク付けすることができる。他の場合、ユーザ入力は、ユーザが、所望の場合、異なるハンドオフ候補を選択することを可能にすることができる。
【0062】
特に、第1のデバイス410は、ハンドオフを開始することを決定すると、ループ454および送信線456に示すように、BLEパケットを用いてデータ(例えば、距離、アプリ情報、コンテンツ)を周期的にアドバタイズする。アドバタイズは、暗号化後にデータをペイロードフィールドにパッケージングし(ループ454)、次に1つまたは複数のパケットをローカル環境内に送信すること(456)を伴う。アドバタイズメントペイロードは、6バイト~37バイトで変動することができ、これにより、デバイス間で暗号化情報を通信するための十分な空間を提供することができる。いくつかの例において、より多くのバイト、例えば最大255バイトが用いられる場合がある。アドバタイズメントパケットのペイロードは、暗号化されておらず、送信デバイスの一意のIDに対応する、(PDUのペイロードのデータ部分内の)カスタムプリアンブルを含むことができる。このIDは、上記で論じたタプルにおけるものと同じものとなる。リスナとしての役割を果たす第2のデバイス420は、ループ458に示すように、ブロードキャストされたパケットを周期的にスキャンする。第2のデバイス420は、送信456を受信すると、ペイロードをアンパックし、デバイスIDを読み出し、ハッシュルックテーブルルックアップを行うためにデバイスペイロードをハッシュとして用い、それによってデバイスに対応するタプルを得ることができる。タプルは、ユーザアカウントにリンクされたユーザデバイス上にローカルに記憶されているが、第2のデバイス420は、「hey,I just got a device ID(今デバイスIDを取得しました)」から「here’s what the data is.(これがデータです)」に遷移する何らかの方式を必要とする場合がある。遷移間の期間は、デバイスIDを用いてタプルを(ローカルに)ルックアップし、その後、他のまたは残りのデータを解読する鍵を得ることを必要とする場合がある。これらのステップはループ458に示されている。タプルが得られると、タプルを用いてペイロードの残りを解読することができる。ペイロードが解読されると、基礎をなすデータ(例えば、心拍情報)をユーザへの提示のために処理することができる。これらのステップは、ループ462によって示されている。
【0063】
上記の例において説明したように、本技術はコネクションレスであり、ポイントツーポイント接続を確立しない。したがって、アドバタイズメントおよびスキャンは本質的に単方向とみなすことができる。いくつかの例において、アドバタイズメントフィールドのペイロードにおいてシーケンス番号を用いることによりポイントツーポイント接続の特徴をエミュレートすることによって、本技術をより双方向性に変更することが可能であり得る。上記で示したように、アドバタイズメントパケットは、周期的に送信またはブロードキャストすることができ、例えば、ある特定の回数再送信することができる。これによって、パケットをピックアップしていないリスナがアドバタイズされることが軽減する。トランスポートされているデータが時系列に関係している場合(例えば、リアルタイム心拍)、シーケンス番号または識別子をアドバタイズメントパケットに含めるかまたはこれにアタッチすることができる。
【0064】
図4Bは、開示される技術の態様による、例示的なシステム480を示す。
図4Bは、ブロードキャスタからリスナへのデータのハンドオフを有効にするためにアドバタイズメントおよびスキャンを用いるブロードキャスタ484およびリスナまたはオブザーバ486を例示的に示す。ブロードキャスタ486は、アドバタイズメント490をその周囲環境に周期的に送信する。送信の周期性(例えば、2秒ごと)は、例えば、ブロードキャスタ486によって収集されているデータのタイプに依拠する場合があり、ブロードキャスタ486は、この例では、上記で論じたようにスマートウオッチとすることができる。データが例えば心拍データである場合、このデータは、オブザーバが、ユーザが更新情報をタイムリーに受信するようにタイムリーな方式でデータを表示することができるように、十分頻繁に送信される必要がある場合がある。データは、文字列をアドバタイズメントパケットペイロードフィールドに連結することによって交換および送信される。オブザーバ486は、アドバタイズメントを周期的にスキャンし(492)、オブザーバ486を対象としたアドバタイズメントを検出すると、上記で説明したようにアドバタイズメントをさらに処理する。
【0065】
ブロードキャスタ484は、オブザーバ486におけるリアルタイム健康統計を有することを可能にするために送信されるデータのタイプを示す識別子をヘッダに付加することができる。次に、オブザーバ486は、識別子を用いて、例えばペイロードフィールド内の値間のオフセットを決定することができる。データのタイプは、例えば、ワークアウトアプリケーションの場合、心拍、カロリー、ステップ、移動データ等を含むことができる。
【0066】
図5は、開示される技術の態様によるプロセスまたは方法500の例を示す。方法は、コンピューティングデバイスが、一意のローカル鍵を生成し、ローカル鍵をアカウントマネージャサーバと共有すること(ブロック504)を含む。生成および共有するステップがブロック504に示されているが、これらはコンピューティングデバイス内で別個のステップとして実施されてもよい。アカウントマネージャサーバは、異なるデバイスから受信する鍵をユーザアカウントに関連付ける。ユーザアカウントは、Googleアカウントまたは他のタイプのアカウントを含むことができる。
【0067】
ブロック508において、アカウントマネージャサーバは、ユーザアカウントに関連付けられたコンピューティングデバイス間で、受信する鍵を共有する。デバイスがアカウントに関連付けられた他のデバイスの鍵を受信するように認証されるために、デバイスは、アカウントに登録され、かつ/またはアカウントにサインインされるべきである。デバイスが近傍のデバイスを検出するとき、処理はブロック516に進み、ブロック516において、デバイスはユーザに、検出した別の近傍デバイスへのデータまたはアプリケーションのハンドオフを開始するように提案する。ユーザは、例えば、拒否のためのオプションを選択することによって、またはユーザが所与の時間窓内でハンドオフを肯定的に選択しない場合、ハンドオフ提案を拒否することができる。
【0068】
ブロック512において、デバイスは、例えば、近接性検出を実行して近傍デバイスを検出する。近傍デバイスが検出されない場合、デバイスは、ブロック512において近接性検出を周期的に実行することによって継続する。1つまたは複数の近傍デバイスが検出されるとき、処理はブロック516に進む。ブロック516において、近傍デバイスを検出するデバイスは、ユーザに、デバイスで実行中のアプリケーションまたはデバイス上のデータを近傍デバイスのうちの1つにハンドオフさせるためのオプションを提供する。ユーザがハンドオフを行わせることを選択する場合、ブロック520において、近傍デバイスを検出したデバイスは、近傍デバイスにハンドオフされるデータをアドバタイズする。ブロック526において、アドバタイズメントの対象となる近傍デバイスがスキャンの一部としてアドバタイズを検出する。ブロック536において、スキャンデバイスは、アドバタイズメントを受信すると、データを解読し、利用する。
【0069】
上記で論じたように、技術は、ワークアウトアプリケーションまたは銀行取引アプリケーション等のアプリケーションと共に用いることができる。技術は他のアプリケーションにおいて用いることもできる。例えば、アプリケーションは、コンテンツがインターネットを介して、YOUTUBEまたはコンテンツアプリケーションによりスマートフォンにストリーミングされている場合に用いることができる。例えば、ユーザは、帰宅中のバスの中でスマートフォンでYOUTUBEによるコンテンツストリーミングの視聴を始める場合がある。ユーザは、自宅に入ると、スマートディスプレイ/TVをオンにする場合がある。スマートフォンは、スマートディスプレイ/TVが近傍にあることを検出すると、ユーザに、電話上のコンテンツストリーミングのスマートディスプレイ/TVへのハンドオフを開始するようにプロンプトすることができる。ユーザがハンドオフの開始を選択する場合、コンテンツは、スマートディスプレイ/TVとスマートフォンとの間の接続の確立に必要とされるようなユーザからの任意のさらなる介入、例えばペアリングに必要なコードの入力なしで切り替えることができる。
【0070】
いくつかの例において、本技術は、ユーザが、どのアプリケーションがハンドオフ技術を利用することができるかに対する制御を有するように実施することができる。これは、ユーザに、ユーザデバイス上で実行しているある特定のアプリケーションをホワイトリスト登録するオプションを提供することによって実施することができる。例えば、ユーザは、エクササイズアプリケーションをホワイトリスト登録するが、銀行取引アプリケーションはホワイトリスト登録しない場合がある。デバイス間のハンドオフが承認されないアプリケーションの場合、近傍デバイスが検出されるときであってもハンドオフの開始の提案を提供しないように、本技術を実施することができる。加えて、いくつかの例において、ハンドオフは、ハンドオフを開始するための提案をユーザに提供することなく行ってもよい。例えば、アプリケーションのホワイトリスト登録の一部として、ユーザが、指定されたデバイス間の自動ハンドオフを選択することを可能にする機能が提供されてもよい。例えば、ワークアウトアプリケーションの場合、スマートウオッチまたはスマートフォンからスマートディスプレイ/TVへのハンドオフが自動的に行われるように本技術を実施することができる。
【0071】
開示される技術の態様は、以下の特徴および副特徴の任意の組合せを含むことができる。
【0072】
F1.コネクションレスデータハンドオフのための方法であって、
第1のデバイスによって、ローカルに生成された第1の鍵をコンピューティングデバイスに送信することと、
第1のデバイスによって、コンピューティングデバイスから、第2のデバイスのローカルに生成された第2の鍵を受信することと、
第1のデバイスによって、第2のデバイスによって送信された暗号化データをスキャンすることと、
第1のデバイスによって、第2の鍵を用いて、第2のデバイスによって送信された暗号化データを復号し、解読データを生成することと、
第1のデバイスによって、第1のデバイス上に表示するための解読データを処理することと
を含む、方法。
【0073】
F2.第1のデバイスは、第2のデバイスよりも大きいスクリーンを有するデバイスを含む、F1の方法。
【0074】
F3.第1のデバイスは、ユーザアカウント情報と、第2のデバイスに関連付けられたデバイスIDと、第2のデバイスに関連付けられた古い暗号化鍵と、古い暗号化鍵のTTL(存続期間)とをさらに含むタプルの一部として第2の鍵を記憶する、F1またはF2の方法。
【0075】
F4.コンピューティングデバイスによって、第1の鍵および第2の鍵をユーザアカウントに関連付けることを含む、F1からF3のいずれか1つの方法。
【0076】
F5.第1のデバイスによって、第1のデバイスによって生成されるハッシュ関数またはランダムに生成された文字列を用いて、第1の鍵を生成することを含む、F1からF4のいずれか1つの方法。
【0077】
F6.第1のデバイスによって、第2のデバイスの存在を検知することを含む、F1からF5のいずれか1つの方法。
【0078】
F7.検知することは、ラウンドトリップ遅延を用いて第1のデバイスと第2のデバイスとの間の距離を決定することを含む、F1からF6のいずれか1つの方法。
【0079】
F8.距離を決定することは、無線技術を用いて距離を検出することを含む、F1からF7のいずれか1つの方法。
【0080】
F9.スキャンすることは、第1のデバイスによって第2のデバイスの存在を検知することに応答して、第1のデバイスによって実行される、F6からF8のいずれか1つの方法。
【0081】
F10.解読データは、ビデオコンテンツまたは健康統計のうちの1つまたは複数を含む、F1からF9のいずれか1つの方法。
【0082】
F11.コンピューティングデバイスは、第1のネットワークを介して第1のデバイスおよび第2のデバイスに結合されたサーバを含む、F1からF10のいずれか1つの方法。
【0083】
F12.スキャンすることは、第1のネットワークと異なる第2のネットワークを介して第1のデバイスによって実行される、F1からF11のいずれか1つの方法。
【0084】
F13.第1のデバイスおよび第2のデバイスは、同一のユーザアカウントに関連付けられている、F1からF12のいずれか1つの方法。
【0085】
F14.第1のデバイスによって、第1のデバイス上の表示のために解読データを処理することは、解読データの処理のために第1のデバイス上でアプリケーションを起動させることを伴う、F1からF13のいずれか1つの方法。
【0086】
F15.データのコネクションレスハンドオフのための方法であって、
第1のデバイスによって、ローカルに生成された第1の鍵をコンピューティングデバイスに送信することと、
第1のデバイスによって、第2のデバイスによって生成された第2の鍵を受信することと、
第1のデバイスによって、第1のデバイスの所定の距離内の第2のデバイスの位置を検知することと、
第1のデバイスによって、第1の鍵を用いて暗号化されたデータを周期的にブロードキャストすることであって、このデータは第2のデバイスにハンドオフされることになる、周期的にブロードキャストすることと
を含む、方法。
【0087】
F16.第1のデバイスは、第2のデバイスよりも小さいスクリーンを有するデバイスを含む、F15の方法。
【0088】
F17.第1のデバイスは、ユーザアカウント情報と、第2のデバイスに関連付けられたデバイスIDと、第2のデバイスに関連付けられた古い暗号化鍵と、古い暗号化鍵のTTL(存続期間)とをさらに含むタプルの一部として第2の鍵を記憶する、F15またはF16の方法。
【0089】
F18.コンピューティングデバイスによって、第1の鍵および第2の鍵をユーザアカウントに関連付けることを含む、F15からF17のいずれか1つの方法。
【0090】
F19.第1のデバイスによって、第1のデバイスによって生成されるハッシュ関数またはランダムに生成された文字列を用いて、第1の鍵を生成することを含む、F15からF18のいずれか1つの方法。
【0091】
F20.位置を検知することは、ラウンドトリップ遅延を用いて第1のデバイスと第2のデバイスとの間の距離を決定することを含む、F15からF19のいずれか1つの方法。
【0092】
F21.距離を決定することは、超広帯域信号、Bluetooth低エネルギー信号、またはBluetooth RSSI信号のうちの1つを用いて距離を検出することを含む、F20の方法。
【0093】
F22.暗号化データは、ビデオコンテンツまたは健康統計のうちの1つまたは複数を含む、F15からF21のいずれか1つの方法。
【0094】
F23.コンピューティングデバイスは、第1のネットワークを介して第1のデバイスおよび第2のデバイスに結合されたサーバを含む、F15からF22のいずれか1つの方法。
【0095】
F24.スキャンすることは、第1のネットワークと異なる第2のネットワークを介して第1のデバイスによって実行される、F23の方法。
【0096】
F25.第2のネットワークを介して第1の鍵を用いて暗号化されたデータを周期的にブロードキャストすることを含む、F24の方法。
【0097】
特定の実施形態を参照して、本明細書において本発明の様々な態様が説明されたが、これらの実施形態は本発明の態様、原理および用途の単なる例であることを理解されたい。したがって、添付の特許請求の範囲によって定義される本発明の趣旨および範囲から逸脱することなく、例示的な実施形態に対し多数の変更を行うことができ、他の構成を考案することができることを理解されたい。