IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

2022-517548リモートアクセスの容易化 (関連出願の相互参照) 本出願は、その内容および教示全体が参照により本明細書に組み込まれる、2018年12月31日に出願された米国仮出願第62/786,813号の利益を主張する。
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-03-09
(54)【発明の名称】リモートアクセスの容易化 (関連出願の相互参照) 本出願は、その内容および教示全体が参照により本明細書に組み込まれる、2018年12月31日に出願された米国仮出願第62/786,813号の利益を主張する。
(51)【国際特許分類】
   H04W 48/04 20090101AFI20220302BHJP
   H04W 64/00 20090101ALI20220302BHJP
   H04W 84/10 20090101ALI20220302BHJP
   H04W 88/04 20090101ALI20220302BHJP
   H04W 92/18 20090101ALI20220302BHJP
   H04W 12/08 20210101ALI20220302BHJP
   H04W 12/63 20210101ALI20220302BHJP
【FI】
H04W48/04
H04W64/00 120
H04W84/10
H04W88/04
H04W92/18
H04W12/08
H04W12/63
【審査請求】有
【予備審査請求】有
(21)【出願番号】P 2021538364
(86)(22)【出願日】2019-12-30
(85)【翻訳文提出日】2021-06-29
(86)【国際出願番号】 US2019068974
(87)【国際公開番号】W WO2020142446
(87)【国際公開日】2020-07-09
(31)【優先権主張番号】62/786,813
(32)【優先日】2018-12-31
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】508045099
【氏名又は名称】シトリックス・システムズ・インコーポレイテッド
【氏名又は名称原語表記】Citrix Systems,Inc.
(74)【代理人】
【識別番号】100118913
【弁理士】
【氏名又は名称】上田 邦生
(74)【代理人】
【識別番号】100142789
【弁理士】
【氏名又は名称】柳 順一郎
(74)【代理人】
【識別番号】100201466
【弁理士】
【氏名又は名称】竹内 邦彦
(72)【発明者】
【氏名】ニヴェーディター オージャ
(72)【発明者】
【氏名】ステファン ウィルソン
(72)【発明者】
【氏名】デレク ソルスランド
【テーマコード(参考)】
5K067
【Fターム(参考)】
5K067AA21
5K067DD17
5K067DD20
5K067DD23
5K067DD24
5K067EE02
5K067EE16
5K067EE25
5K067JJ56
(57)【要約】
一態様では、認証を実施するための技法は、第1のデバイスが、ネットワーク接続を第1のデバイスと共有する第2のデバイスからセキュリティデータを受信することを含む。第1のデバイスは、ネットワーク上のセキュアなリソースへの認証を要求するとき、第2のデバイスから受信されたセキュリティデータを適用する。
別の態様では、コンピュータ化アクセスを管理するための技法は、ネットワーク接続を第1のコンピューティングデバイスと共有する第2のコンピューティングデバイスからロケーション情報を受信する第1のコンピューティングデバイスを含む。第1のコンピューティングデバイスは、ネットワーク上のリソースへのアクセスを要求するとき、第2のコンピューティングデバイスから受信されたロケーション情報を適用する。したがって、第1のコンピューティングデバイスは、認証強度を増加させるために、および/またはアクセス権の監督を容易にするために、第2のコンピューティングデバイスのプレゼンスと、第2のコンピューティングデバイスのロケーション情報とを活用する。
また別の態様では、技法は、団体による管理制御をコンピューティングデバイスのローカル環境におけるIoT(モノのインターネット)デバイスに拡張するために、管理されているコンピューティングデバイスを使用する。コンピューティングデバイスは、ローカルIoTデバイスを発見し、これらのIoTデバイスのうちの1つまたは複数を管理制御下に置くためにサーバとの通信に参加する。いくつかの例では、管理制御を拡張することは、選択されたIoTデバイスを団体の管理フレームワークにエンロールすることと、管理されているデバイスを通してサーバとそれぞれのIoTデバイスとの間の通信をダイレクトすることとを伴い、これは、ローカル環境における選択されたIoTデバイスの管理を監督するためのポイントオブプレゼンスを提供する。
【選択図】図11
【特許請求の範囲】
【請求項1】
コンピュータネットワークへの第1の接続を有する第1のデバイスによって、前記コンピュータネットワークへの第2の接続を有し、該第2の接続を前記第1のデバイスと共有する、第2のデバイスからセキュリティデータを受信することであって、前記セキュリティデータが、前記第2のデバイスとサーバとの間に前に確立された信用できる関係を示すことと、
前記第1のデバイスによって、前記コンピュータネットワーク上のセキュアなリソースにアクセスするための要求を前記サーバに送ることであって、前記要求が、前記第2のデバイスからの前記受信されたセキュリティデータに基づくインジケータを含み、該インジケータに少なくとも部分的に基づいて認証を実施するように前記サーバに指示することと、
前記第2のデバイスから受信された前記セキュリティデータに少なくとも部分的に基づく前記要求の認証に応答して、前記第1のデバイスによって、前記セキュアなリソースにアクセスすることと、
を含む方法。
【請求項2】
認証を実施するように前記サーバに指示することが、前記インジケータを認証ファクタとして提供することを含む請求項1に記載の方法。
【請求項3】
前記コンピュータネットワークへの前記第1の接続をWi-Fi接続として確立することと、前記コンピュータネットワークへの前記第2の接続をセルラーデータ接続として確立することと、を含む請求項1に記載の方法。
【請求項4】
前記第2の接続をセルラーデータ接続として確立することが、前記第2の接続をLTE(ロングタームエボリューション)接続として提供することを含む請求項2に記載の方法。
【請求項5】
前記第2の接続を前記第1のデバイスと共有することが、(i)Bluetooth、(ii)Wi-Fi、または(iii)ケーブルのうちの1つを介して前記第1のデバイスを前記第2のデバイスと通信可能に結合することを含む請求項1に記載の方法。
【請求項6】
前記セキュアなリソースにアクセスすることが、前記第2の接続を介して前記セキュアなリソースと通信している前記第1のデバイスを含む請求項1に記載の方法。
【請求項7】
前記インジケータが前記第2のデバイスの識別情報の表現を含む請求項1に記載の方法。
【請求項8】
前記インジケータが、前記第2のデバイスによって作り出されたまたは獲得されたセキュアトークンを含み、認証を実施するように前記サーバに指示することが、前記セキュアトークンを認証ファクタとして前記サーバに提供することを含む請求項1に記載の方法。
【請求項9】
前記セキュアなリソースにアクセスすることが、
前記第1のデバイスが前記第1の接続を介して前記セキュアなリソースと通信することと、
前記第1の接続を通した信号強度の低減に応答して、前記第1のデバイスが前記第2の接続を介して前記セキュアなリソースと通信することと、
を含む請求項1に記載の方法。
【請求項10】
前記第2のデバイスから前記セキュリティデータを受信することが、前記第1のデバイスが前記第2のデバイスに通信可能に結合されたことに応答して実施される請求項1に記載の方法。
【請求項11】
コンピュータネットワークへの第1の接続と制御回路とを備えるコンピュータ化デバイスであって、前記制御回路が、
前記コンピュータネットワークへの第2の接続を有し、該第2の接続をコンピュータ化デバイスと共有する、第2のデバイスからセキュリティデータを受信することであって、前記セキュリティデータが、前記第2のデバイスとサーバとの間に前に確立された信用できる関係を示すことと、
前記コンピュータネットワーク上のセキュアなリソースにアクセスするための要求を前記サーバに送ることであって、前記要求が、前記第2のデバイスからの前記受信されたセキュリティデータに基づくインジケータを含み、該インジケータに少なくとも部分的に基づいて認証を実施するように前記サーバに指示することと、
前記第2のデバイスから受信された前記セキュリティデータに少なくとも部分的に基づく前記要求の認証に応答して、前記セキュアなリソースにアクセスすることと、
を行うように構築および構成されたコンピュータ化デバイス。
【請求項12】
前記コンピュータネットワークへの前記第1の接続がWi-Fi接続であり、前記コンピュータネットワークへの前記第2の接続がセルラーデータ接続であり、前記コンピュータ化デバイスが、(i)Bluetooth、(ii)Wi-Fi、または(iii)ケーブルのうちの1つを介して前記第2の接続を前記第2のデバイスと共有する請求項11に記載のコンピュータ化デバイス。
【請求項13】
前記インジケータが前記第2のデバイスの識別情報の表現を含む請求項11に記載のコンピュータ化デバイス。
【請求項14】
前記インジケータが、前記第2のデバイスによって作り出されたまたは獲得されたセキュアトークンを含む請求項11に記載のコンピュータ化デバイス。
【請求項15】
セキュアなリソースにアクセスするための認証要求を第1のデバイスから受信することであって、前記認証要求が、ネットワーク接続を提供するための、前記第1のデバイスが結合された第2のデバイスから前記第1のデバイスによって取得されるセキュリティデータに基づくインジケータを含むことと、
前記認証要求を受信したことに応答して、前記インジケータに少なくとも部分的に基づいて認証を実施することと、
前記要求の認証に応答して、前記第1のデバイスに前記セキュアなリソースへのアクセスを提供することと、
を含む方法。
【請求項16】
前記認証を実施することが、前記インジケータを認証ファクタとして提供することを含む請求項15に記載の方法。
【請求項17】
前記インジケータを提供することが、前記第2のデバイスの識別情報の表現を提供することを含む請求項15に記載の方法。
【請求項18】
認証を実施することが、(i)前記第2のデバイスの前記識別情報を検査することと、(ii)前記第1のデバイスが前記第2のデバイスに通信可能に結合されたことを確認することと、を含む請求項17に記載の方法。
【請求項19】
前記インジケータが、前記第2のデバイスによって作り出されたまたは獲得されたセキュアトークンを含み、認証を実施することが、前記セキュアトークンを認証ファクタとして使用することを含む請求項15に記載の方法。
【請求項20】
サーバ内の、またはサーバを介してアクセス可能なリソースにアクセスするための認証要求を第1のデバイスから受信することであって、前記認証要求が、ネットワーク接続を提供するための、前記第1のデバイスが結合された第2のデバイスから前記第1のデバイスによって取得されるセキュリティデータに基づくインジケータを含むことと、
前記認証要求の受信に応答して、前記インジケータに少なくとも部分的に基づいて前記第1のデバイスからの前記要求の認証を実施することと、
前記要求の認証に応答して、前記第1のデバイスに前記リソースへのアクセスを提供することと、
を行うように構築および構成された制御回路を備えるサーバ。
【請求項21】
認証を実施することが、(i)前記第2のデバイスの識別情報を検査することと、(ii)前記第1のデバイスが前記第2のデバイスに通信可能に結合されたことを確認することと、を含む請求項20に記載のサーバ装置。
【請求項22】
前記インジケータが、前記第2のデバイスによって作り出されたまたは獲得されたセキュアトークンを含み、認証を実施することが、前記セキュアトークンを認証ファクタとして使用することを含む請求項20に記載のサーバ装置。
【請求項23】
認証を実施することが、前記インジケータならびに前記第1のデバイスから受信された追加の認証ファクタのセットを検証することを含む請求項20に記載のサーバ装置。
【請求項24】
第1のコンピューティングデバイスによって、第2のコンピューティングデバイスからデータを受信することであって、前記データが前記第2のコンピューティングデバイスのロケーションを示し、前記第2のコンピューティングデバイスがコンピュータネットワークへの接続を有することと、
前記第1のコンピューティングデバイスによって、前記第2のコンピューティングデバイスからの前記受信されたデータに少なくとも部分的に基づいてロケーションインジケータを決定することと、
前記第1のコンピューティングデバイスによって、前記コンピュータネットワークのリソースにアクセスするための要求を送ることであって、前記要求が、前記決定されたロケーションインジケータを含むことと、
前記第1のコンピューティングデバイスによって、前記リソースにアクセスするための許可に応答して前記コンピュータネットワークの前記リソースにアクセスすることであって、前記許可が、前記要求に応答して、および前記決定されたロケーションインジケータに少なくとも部分的に基づいて許諾され、前記第2のコンピューティングデバイスから受信された前記ロケーションインジケータが、ロケーションに少なくとも部分的に基づいて前記リソースへの前記第1のコンピューティングデバイスによるアクセスを可能にするために、前記第1のコンピューティングデバイスのロケーションのインジケーションを提供することと、
を含む方法。
【請求項25】
前記第2のコンピューティングデバイスが、前記コンピュータネットワークへの前記接続を前記第1のコンピューティングデバイスと共有し、ロケーション情報を受信することが、前記第1のコンピューティングデバイスと前記第2のコンピューティングデバイスとの間のローカル接続上で、前記第2のコンピューティングデバイスから前記ロケーション情報を取得することを含む請求項24に記載の方法。
【請求項26】
前記第2のコンピューティングデバイスが、(i)モバイルデバイスまたは(ii)セルラードングルのうちの1つであり、前記ローカル接続上で前記ロケーション情報を取得するとき、前記第1のコンピューティングデバイスが、(i)Bluetooth、(ii)Wi-Fi、または(iii)ケーブルのうちの1つを使用して前記ローカル接続上で前記第2のコンピューティングデバイスにテザリングされる請求項25に記載の方法。
【請求項27】
前記要求を送ることが、前記第2のコンピューティングデバイスによって前記第1のコンピューティングデバイスと共有される共有接続上で前記要求を送信することを含む請求項25に記載の方法。
【請求項28】
前記第1のコンピューティングデバイスが、前記共有接続とは別個の、前記コンピュータネットワークへの第2の接続を有し、前記アクセス要求を送ることが、前記第2の接続上で前記アクセス要求を送信することを含む請求項25に記載の方法。
【請求項29】
前記第2のコンピューティングデバイスの前記ロケーションを示す前記ロケーション情報が第2のロケーション情報であり、
前記方法が、前記第1のコンピューティングデバイスによって、前記第1のコンピューティングデバイスの第1のロケーション情報を取得することを含み、
前記ロケーションインジケータを形成することが、前記第1のロケーション情報および前記第2のロケーション情報に少なくとも部分的に基づく請求項25に記載の方法。
【請求項30】
前記第1のコンピューティングデバイスの前記第1のロケーション情報を取得することが、前記第1のコンピューティングデバイスが属するWi-Fiネットワークを識別することを含む請求項29に記載の方法。
【請求項31】
前記第2のコンピューティングデバイスの前記第2のロケーション情報を取得することが、前記第2のコンピューティングデバイスのGPS(全地球測位システム)座標を受信することを含む請求項29に記載の方法。
【請求項32】
前記第2のコンピューティングデバイスの前記第2のロケーション情報を取得することが、前記第2のコンピューティングデバイスのIP(インターネットプロトコル)アドレスを識別することを含む請求項29に記載の方法。
【請求項33】
前記第2のコンピューティングデバイスの前記ロケーションを示す前記ロケーション情報が第2のロケーション情報であり、前記方法が、
前記ローカル接続上で前記第1のコンピューティングデバイスによって、前記第2のコンピューティングデバイスの前記ロケーションを示す第3のロケーション情報を取得することであって、前記第3のロケーション情報が前記第2のロケーション情報のソースとは別個のソースから導出されることを含み、
前記ロケーションインジケータを形成することが、前記第1のロケーション情報、前記第2のロケーション情報および前記第3のロケーション情報に少なくとも部分的に基づく請求項25に記載の方法。
【請求項34】
サーバによって、コンピュータネットワーク上で第1のコンピューティングデバイスから要求を受信することであって、前記要求が、前記コンピュータネットワーク上のリソースにアクセスするためのものであり、ロケーションインジケータを含み、前記ロケーションインジケータが、第2のコンピューティングデバイスのロケーションを示すデータに少なくとも部分的に基づくことと、
前記サーバによって、前記受信された要求の前記ロケーションインジケータに少なくとも部分的に基づいて、前記ロケーションインジケータによって示されたロケーションが、前記コンピュータネットワークの前記リソースにアクセスするための許可されたロケーションに一致することを検証することと、
前記ロケーションの前記検証に応答して、前記サーバによって、前記コンピュータネットワーク上の前記リソースへのアクセスを前記第1のコンピューティングデバイスに許諾することと、
を含む方法。
【請求項35】
前記第2のコンピューティングデバイスの前記ロケーションを示す前記データが第2のロケーション情報であり、前記ロケーションインジケータが、前記第1のコンピューティングデバイスの第1のロケーション情報に少なくとも部分的に基づき、
前記方法が、前記第1のコンピューティングデバイスの前記第1のロケーション情報および前記第2のコンピューティングデバイスの前記第2のロケーション情報に少なくとも部分的に基づいて代表的ロケーションを確立することを含み、
前記ロケーションインジケータが前記許可されたロケーションに一致することを検証することが、前記代表的ロケーションが前記許可されたロケーションと整合することを確認することを含む請求項34に記載の方法。
【請求項36】
前記ロケーションインジケータが、前記第2のコンピューティングデバイスの第3のロケーション情報に少なくとも部分的に基づき、前記第3のロケーション情報が、前記第2のロケーション情報のソースとは別個のソースから導出され、
代表的ロケーション情報を生成することが、少なくとも前記第1のロケーション情報、前記第2のロケーション情報、および前記第3のロケーション情報に基づいて地理的ロケーションを組み合わせることを含み、
前記代表的ロケーション情報が許可されたロケーションと整合することを確認することが、前記第1のロケーション情報、前記第2のロケーション情報および前記第3のロケーション情報に少なくとも部分的に基づく請求項35に記載の方法。
【請求項37】
前記代表的ロケーションを生成することが、前記第1のロケーション情報および前記第2のロケーション情報に少なくとも部分的に基づいて重心を作り出すことを含み、前記重心が、前記第1のロケーション情報および前記第2のロケーション情報に少なくとも部分的に基づく地理的中心を示す請求項35に記載の方法。
【請求項38】
前記第1のロケーション情報および前記第2のロケーション情報に信頼性スコアを割り当てることと、前記重心を作り出すときに前記信頼性スコアを重みとして適用することと、を含む請求項37に記載の方法。
【請求項39】
前記第2のコンピューティングデバイスの前記ロケーションを示す前記データが第2のロケーション情報であり、前記ロケーションインジケータが、前記第1のコンピューティングデバイスの第1のロケーション情報に少なくとも部分的に基づき、前記第1のロケーション情報が、前記第1のコンピューティングデバイスが接続されたワイヤレスネットワークのWi-Fi識別子を含み、前記方法が、前記Wi-Fi識別子を前記第1のコンピューティングデバイスの地理的ロケーションに変換することを含む請求項34に記載の方法。
【請求項40】
前記第2のロケーション情報が前記第2のコンピューティングデバイスのIP(インターネットプロトコル)アドレスを含み、前記方法が、前記IPアドレスを前記第2のコンピューティングデバイスの地理的ロケーションに変換することを含む請求項39に記載の方法。
【請求項41】
前記第2のコンピューティングデバイスのロケーション情報が、前記第2のコンピューティングデバイスのGPS(全地球測位システム)座標を含み、前記ロケーションインジケータによって示された前記ロケーションが許可されたロケーションに一致することを検証することが、前記第2のコンピューティングデバイスの前記GPS座標が、所定の距離しきい値内まで、許可されたロケーションのGPS座標と整合することを確認することを含む請求項34に記載の方法。
【請求項42】
コンピュータネットワーク上で第1のコンピューティングデバイスから要求を受信することであって、前記要求が、前記コンピュータネットワーク上のリソースにアクセスするためのものであり、ロケーションインジケータを含み、前記ロケーションインジケータが、第2のコンピューティングデバイスのロケーションを示すデータに少なくとも部分的に基づくことと、
前記受信された要求の前記ロケーションインジケータに少なくとも部分的に基づいて、前記ロケーションインジケータによって示されたロケーションが、前記コンピュータネットワークの前記リソースにアクセスするための許可されたロケーションと整合することを検証することと、
前記ロケーションの前記検証に応答して、前記コンピュータネットワーク上の前記リソースにアクセスすることを前記第1のコンピューティングデバイスに許諾することと、
を行うように構成される制御回路を備えるサーバ。
【請求項43】
前記第2のコンピューティングデバイスの前記ロケーションを示す前記データが第2のロケーション情報であり、
前記ロケーションインジケータが、前記第1のコンピューティングデバイスの第1のロケーション情報に少なくとも部分的に基づき、
前記制御回路が、少なくともロケーション情報の第1のセットおよびロケーション情報の第2のセットに基づいて地理的ロケーションを組み合わせて、ロケーション情報の前記第1のセットおよびロケーション情報の前記第2のセットに少なくとも部分的に基づいて代表的ロケーションを生成するように構成され、前記ロケーションを検証するように構成された前記制御回路が、前記代表的ロケーションが許可されたロケーションと整合することを確認するように構成される請求項42に記載のサーバ。
【請求項44】
前記制御回路が、前記代表的ロケーションを重心として作り出すように構成され、前記重心が、少なくとも前記第1のロケーション情報および前記第2のロケーション情報によって形成される地理的中心を示す請求項43に記載のサーバ。
【請求項45】
コンピューティングデバイスによって、該コンピューティングデバイスの周りの環境におけるIoT(モノのインターネット)デバイスを走査するための要求を処理することであって、前記コンピューティングデバイスが、エンティティによって管理され、コンピュータネットワーク上で前記エンティティのサーバに通信可能に結合されることと、
前記コンピューティングデバイスによって、前記環境におけるIoTデバイスのセットを発見することであって、IoTデバイスの前記セットが前記エンティティによって管理されていないことと、
前記コンピューティングデバイスによって、前記エンティティによる管理制御をIoTデバイスの前記セットに拡張するために前記サーバとの通信に参加することであって、前記管理制御は、IoTデバイスの前記セットが前記エンティティの1つまたは複数のポリシーに従って動作することを可能にすることと、
を含む方法。
【請求項46】
前記コンピューティングデバイスが、前記サーバからのデータイングレスをIoTデバイスの前記セットにルーティングすることと、IoTデバイスの前記セットからのデータエグレスを前記サーバにルーティングすることとを含む請求項45に記載の方法。
【請求項47】
前記コンピューティングデバイスがハブであり、IoTデバイスの前記セットがそれぞれのスポークを介して前記ハブに動作可能に接続する論理ネットワークを形成することと、
前記論理ネットワークの前記ハブとして働く前記コンピューティングデバイスを通してIoTデバイスの前記セットと前記サーバとの間の通信をダイレクトすることと、
を含む請求項46に記載の方法。
【請求項48】
IoTデバイスの前記セットのための管理ポリシーを展開することであって、前記管理ポリシーが前記エンティティによって定義されることを含む請求項47に記載の方法。
【請求項49】
前記管理ポリシーを展開することが、IoTデバイスの前記セットのうちの少なくとも1つについて、悪意のあるコードについてそれぞれのIoTデバイスを走査することを含む請求項48に記載の方法。
【請求項50】
前記管理ポリシーを展開することが、IoTデバイスの前記セットのうちの少なくとも1つについて、前記それぞれのIoTデバイス上のソフトウェアおよび/またはファームウェアを更新することを含む請求項48に記載の方法。
【請求項51】
前記管理ポリシーを展開することが、IoTデバイスの前記セットのうちの少なくとも1つについて、前記それぞれのIoTデバイス上にスキルのセットをインストールすることであって、前記スキルが前記エンティティのために開発されることを含む請求項48に記載の方法。
【請求項52】
前記コンピューティングデバイス上のソフトウェア構成要素を稼働することと、
前記ソフトウェア構成要素の入力のためのソースおよび/または出力のための宛先になるようにIoTデバイスの前記セットのうちの少なくとも1つに指示することと、
を含む請求項48に記載の方法。
【請求項53】
前記ソフトウェア構成要素が該ソフトウェア構成要素の入力および/または出力のためにIoTデバイスの前記セットのうちの前記少なくとも1つを使用することを可能にするように、ユーザに促すことを含む請求項52に記載の方法。
【請求項54】
前記ソフトウェア構成要素の入力および/または出力を提供するための、IoTデバイスの前記セットのうちの複数のIoTデバイスの間のアクティビティを調整することを含む、請求項52に記載の方法。
【請求項55】
IoTデバイスの前記セットのうちのIoTデバイスとの通信を確立した後に、前記コンピューティングデバイスが、IoTデバイスとの通信を前記サーバにハンドオフすることと、次いで、前記IoTデバイスが、前記コンピューティングデバイスを通してデータをルーティングすることなしに前記サーバと通信することと、を含む請求項48に記載の方法。
【請求項56】
スキルの前記セットが、前記サーバから団体のリソースにアクセスするためのボイスアシスタントとしてIoTデバイスを動作させるスキルを含む請求項51に記載の方法。
【請求項57】
スキルの前記セットが、前記コンピューティングデバイスの機能を制御するためのボイスアシスタントとしてIoTデバイスを動作させるスキルを含み、前記方法が、前記コンピューティングデバイスがボイスコマンドに基づいて前記IoTデバイスからの制御入力に応答することを含む請求項51に記載の方法。
【請求項58】
前記コンピューティングデバイスが、前記サーバとの特定用途向けVPN(仮想プライベートネットワーク)を確立することと、前記特定用途向けVPNを通して前記サーバとIoTデバイスの前記セットとの間でネットワークトラフィックを伝達することと、を含む請求項47に記載の方法。
【請求項59】
コンピューティングデバイスの周りの環境におけるIoT(モノのインターネット)デバイスを走査するための要求を処理することであって、前記コンピューティングデバイスがエンティティによって管理されることと、
前記環境におけるIoTデバイスのセットを発見することであって、IoTデバイスの前記セットが前記エンティティによって管理されていないことと、
前記エンティティによる管理制御をIoTデバイスの前記セットに拡張するために前記エンティティのサーバとの通信に参加することであって、前記管理制御は、IoTデバイスの前記セットが前記エンティティの1つまたは複数のポリシーに従って動作することを可能にすることと、
を行うように構成される制御回路を備えるコンピューティングデバイス。
【請求項60】
前記制御回路が、
前記コンピューティングデバイスがハブであり、IoTデバイスの前記セットが前記ハブのそれぞれのスポークである、論理ネットワークを形成することと、
前記論理ネットワークの前記ハブとして働く前記コンピューティングデバイスを通してIoTデバイスの前記セットと前記サーバとの間の通信をダイレクトすることと、
を行うように構成される請求項59に記載のデバイス。
【請求項61】
前記制御回路が、
前記コンピューティングデバイス上のソフトウェア構成要素を稼働することと、
前記ソフトウェア構成要素の入力のためのソースおよび/または出力のための宛先になるようにIoTデバイスの前記セットのうちの少なくとも1つに指示することと、
を行うように構成される請求項60に記載のデバイス。
【請求項62】
サーバによって、コンピューティングデバイスから、該コンピューティングデバイスがすでにエンロールされた団体にIoTデバイスをエンロールするための要求を受信することであって、前記IoTデバイスが、管理されているデバイスの周りの環境において配設されることと、
前記要求を受信したことに応答して、前記IoTデバイスが前記団体の1つまたは複数のポリシーに従うことになるように前記IoTデバイスを前記団体にエンロールするために、前記サーバによって、前記コンピューティングデバイスとの通信に参加することと、
前記サーバによって、前記コンピューティングデバイスを介して前記エンロールされたIoTデバイスと通信することと、
を含む方法。
【請求項63】
悪意のあるコードについて前記IoTデバイスを走査するように前記コンピューティングデバイスに指示することを含む請求項62に記載の方法。
【請求項64】
前記エンロールされたIoTデバイスと通信することが、前記サーバと前記コンピューティングデバイス上で稼働しているソフトウェア構成要素との間に確立された特定用途向けVPN(仮想プライベートネットワーク)上で行われる請求項62に記載の方法。
【請求項65】
前記IoTデバイスに関するデータを前記コンピューティングデバイスのユーザのユーザプロファイルに追加することと、
ソフトウェア特徴を動作させるための要求を前記コンピューティングデバイスから受信することと、
前記ソフトウェア特徴を動作させるための前記要求を受信したことに応答して、(i)前記ユーザプロファイルから前記IoTデバイスを識別することと、(ii)前記ソフトウェア構成要素の入力および/または出力を提供するために前記IoTデバイスを使用するように前記ユーザに促すように、前記コンピューティングデバイス上の前記ソフトウェア構成要素に指示することと、
を含む請求項62に記載の方法。
【発明の詳細な説明】
【背景技術】
【0001】
現代のコンピューティングデバイスは、複数のネットワーク接続をサポートすることが一般的である。たとえば、ラップトップコンピュータは、イーサネット(登録商標)、Wi-Fi(IEEE802.11x)、および/またはセルラーネットワーク接続をサポートし得る。あるネットワーク接続が失敗した場合、ユーザは、たとえば、ラップトップ上のネットワーク設定にアクセスし、異なるネットワークを選択することによって、ネットワークを変更するオプションを有する。
【0002】
いくつかのデバイスは、ネットワーク接続を自動的に変更する。たとえば、スマートフォンのユーザは、スマートフォンがWi-Fiに接続された自宅でポッドキャストを聴き始め得るが、次いで、外で聴き続けることにすることがある。ユーザがWi-Fi範囲から出たとき、スマートフォンは、Wi-Fiの喪失を検出し、セルラーサービスに切り替える。十分なバッファリングがある場合、遷移はシームレスであるように見えることがあり、ユーザは、接続失敗があり、次いでWi-Fiからセルラーサービスへのフェイルオーバがあったことに決して気づかないことがある。
【発明の概要】
【0003】
残念ながら、いくつかのアプリケーションは、アプリケーションが稼働するデバイスがネットワークを切り替えたとき、シームレスな遷移をサポートしない。たとえば、リアルタイム対話性を伴うウェブ会議のようなアプリケーションは、ネットワーク接続が変化したとき、一時的にフリーズし得る。いくつかの場合には、新しい接続を確立することは、ハンドシェイキングまたは他の通信を必要とし得、これは、アウテージの持続時間を延長することがある。アウテージがほんの一瞬であったとしても、アウテージは依然としてフラストレーションおよび不快感を引き起こし、ユーザエクスペリエンスを低下させることがある。
【0004】
第1の態様によれば、本明細書で開示される技法は、同時に複数のネットワーク経路を維持し、ネットワーク経路を通して冗長的に同じデータを交換し、受信機が、データのソースとしてネットワーク経路のうちの1つを選択することを可能にする。第1の、現在選択されているネットワーク経路が弱くなった場合、たとえば、受信機は、データのソースを第2のネットワーク経路に自動的におよびシームレスに切り替えることができるが、第1のネットワーク経路は動作可能のままである。第2のネットワーク経路がすでにオンであり、データを伝達しているとすれば、遷移はほぼ瞬時である。ネットワークデッドゾーンまたは干渉を有する環境中で稼働している高度対話型アプリケーションでさえ、概してダウンタイムなしで、完全に機能的なままであり得る。
【0005】
いくつかの構成では、第1のデバイスが、第2のデバイスに動作可能に結合することによってネットワークへの追加の接続を確立し得る。たとえば、第1のデバイスは、Wi-Fiに接続し得、たとえば、Bluetooth(登録商標)、Wi-Fi、またはケーブルを介して第2のデバイスにも接続し得、第2のデバイスは、第2のデバイスのネットワーク接続を第1のデバイスと共有するように構成される。その場合、第1のデバイスは、第1のデバイス自体のWi-Fi接続と、第2のデバイスからの共有接続の両方を使用することが可能である。
【0006】
したがって、第1のデバイスは、追加のネットワーク経路を有することの信頼性から利益を得ることができる。この第1の態様が、認証を実施するときのセキュリティおよび/またはユーザ利便性の向上にも役立つことがわかった。
【0007】
これらの傾向に沿って、および第2の態様によれば、改善された認証技法は、ネットワーク接続を第1のデバイスと共有する第2のデバイスからセキュリティデータを受信する第1のデバイスを含む。第1のデバイスは、ネットワーク上のセキュアな(secured)リソースへの認証を要求するとき、第2のデバイスから受信されたセキュリティデータを適用する。たとえば、セキュリティデータは、トークンコード、または第2のデバイスに関する識別情報など、トークンとして使用され得る他のデータを含み得る。改善された技法を使用して、第1のデバイスは、認証強度および/または利便性を増加させるために第2のデバイスのプレゼンス(presence)を効果的に活用する。ユーザが関与する場合、いくつかの実施形態は、自動的におよびユーザにとって透過的に進行し、ユーザエクスペリエンスならびにセキュリティを促進し得る。
【0008】
以下の段落(M1-1)~(M1-9)は、本開示に従って実装され得る方法の例について説明する。
(M1-1) 方法は、コンピュータネットワークへの第1の接続を有する第1のデバイスによって、コンピュータネットワークへの第2の接続を有し、第2の接続を第1のデバイスと共有する、第2のデバイスからセキュリティデータを受信することであって、セキュリティデータが、第2のデバイスとサーバとの間に前に確立された信用できる関係を示すことを含む。本方法は、第1のデバイスによって、コンピュータネットワーク上のセキュアなリソースにアクセスするための要求をサーバに送ることであって、要求が、第2のデバイスからの受信されたセキュリティデータに基づくインジケータを含み、インジケータに少なくとも部分的に基づいて認証を実施するようにサーバに指示することをさらに含む。第2のデバイスから受信されたセキュリティデータに少なくとも部分的に基づく要求の認証に応答して、本方法は、第1のデバイスによって、セキュアなリソースにアクセスすることをさらに含む。
(M1-2) 方法は、段落(M1-1)において説明されたように実施され得、インジケータを認証ファクタとして提供することをさらに伴い得る。
(M1-3) 別の方法は、段落(M1-1)~(M1-2)のいずれか1つにおいて説明されたように実施され得、コンピュータネットワークへの第1の接続をWi-Fi接続として確立することと、コンピュータネットワークへの第2の接続をセルラーデータ接続として確立することとをさらに伴う。いくつかの変形態によれば、セルラーデータ接続はLTE(ロングタームエボリューション)接続として確立される。
(M1-4) 別の方法は、段落(M1-1)~(M1-3)のいずれか1つにおいて説明されたように実施され得、第1のデバイスが、(i)Bluetooth、(ii)Wi-Fi、または(iii)ケーブルのうちの1つを介して第2の接続を第2のデバイスと共有することをさらに伴い得る。
(M1-5) 別の方法は、段落(M1-1)~(M1-4)のいずれか1つにおいて説明されたように実施され得、セキュアなリソースにアクセスすることは、第1のデバイスが、第2の接続を介してセキュアなリソースと通信することを含む。
(M1-6) 別の方法は、段落(M1-1)~(M1-5)のいずれか1つにおいて説明されたように実施され得、インジケータが第2のデバイスの識別情報の表現を含むことをさらに伴い得る。
(M1-7) 別の方法は、段落(M1-1)~(M1-6)のいずれか1つにおいて説明されたように実施され得、インジケータが、第2のデバイスによって作り出されたまたは獲得されたセキュア(secure)トークンを含むことをさらに伴い得、認証を実施するようにサーバに指示することが、セキュアトークンを認証ファクタとしてサーバに提供することを含む。
(M1-8) 別の方法は、段落(M1-1)~(M1-7)のいずれか1つにおいて説明されたように実施され得、セキュアなリソースにアクセスすることは、第1のデバイスが、第1の接続を介してセキュアなリソースと通信することと、第1の接続を通した信号強度の低減に応答して、第1のデバイスが、第2の接続を介してセキュアなリソースと通信することとをさらに伴い得る。
(M1-9) 別の方法は、段落(M1-1)~(M1-8)のいずれか1つにおいて説明されたように実施され得、第1のデバイスが第2のデバイスに通信可能に結合されたことに応答して、第2のデバイスからセキュリティデータを受信することをさらに伴い得る。
【0009】
以下の段落(D1-1)~(D1-4)は、本開示に従って実装され得るデバイスの例について説明する。
(D1-1) コンピュータ化デバイスは、コンピュータネットワークへの第1の接続と制御回路とを備え得、制御回路は、コンピュータネットワークへの第2の接続を有し、第2の接続を本コンピュータ化デバイスと共有する、第2のデバイスからセキュリティデータを受信することであって、セキュリティデータが、第2のデバイスとサーバとの間に前に確立された信用できる関係を示すことと、コンピュータネットワーク上のセキュアなリソースにアクセスするための要求をサーバに送ることであって、要求が、第2のデバイスからの受信されたセキュリティデータに基づくインジケータを含み、インジケータに少なくとも部分的に基づいて認証を実施するようにサーバに指示することと、第2のデバイスから受信されたセキュリティデータに少なくとも部分的に基づく要求の認証に応答して、セキュアなリソースにアクセスすることとを行うように構築および構成される。
(D1-2) 別のコンピュータ化デバイスは、段落(D1-1)において説明されたように提供され得、コンピュータネットワークへの第1の接続がWi-Fi接続であり、コンピュータネットワークへの第2の接続がセルラーデータ接続であり、本コンピュータ化デバイスが、(i)Bluetooth、(ii)Wi-Fi、または(iii)ケーブルのうちの1つを介して第2の接続を第2のデバイスと共有することをさらに伴い得る。
(D1-3) 別のコンピュータ化システムは、段落(D1-1)~(D1-2)のいずれか1つにおいて説明されたように提供され得、インジケータが第2のデバイスの識別情報の表現を含むことをさらに伴い得る。
(D1-4) 別のコンピュータ化システムは、段落(D1-1)~(D1-3)のいずれか1つにおいて説明されたように提供され得、インジケータが、第2のデバイスによって作り出されたまたは獲得されたセキュアトークンを含むことをさらに伴い得る。
【0010】
さらに、以下の段落(M2-1)~(M2-5)は、本開示に従って実装され得る方法の例について説明する。
(M2-1) 方法は、セキュアなリソースにアクセスするための認証要求を第1のデバイスから受信することであって、認証要求が、ネットワーク接続を提供するための、第1のデバイスが結合された第2のデバイスから第1のデバイスによって取得されるセキュリティデータに基づくインジケータを含むことを含み得る。認証要求を受信したことに応答して、本方法は、インジケータに少なくとも部分的に基づいて認証を実施することをさらに含み得る。要求の認証に応答して、本方法は、第1のデバイスにセキュアなリソースへのアクセスを提供することをまたさらに含み得る。
(M2-2) 別の方法は、段落(M2-1)において説明されたように提供され得、認証を実施するとき、インジケータを認証ファクタとして提供することをさらに伴い得る。
(M2-3) 別の方法は、段落(M2-1)~(M2-2)のいずれか1つにおいて説明されたように提供され得、インジケータを第2のデバイスの識別情報の表現として提供することをさらに伴い得る。
(M2-4) 別の方法は、段落(M2-1)~(M2-3)のいずれか1つにおいて説明されたように提供され得、(i)第2のデバイスの識別情報を検査することと、(ii)第1のデバイスが第2のデバイスに通信可能に結合されたことを確認することとをさらに伴い得る。
(M2-5) 別の方法は、段落(M2-1)~(M2-4)のいずれか1つにおいて説明されたように提供され得、インジケータが、第2のデバイスによって作り出されたまたは獲得されたセキュアトークンを含むことをさらに伴い得、認証を実施することが、セキュアトークンを認証ファクタとして使用することを含む。
【0011】
さらに、以下の段落(D2-1)~(D2-4)は、本開示に従って実装され得るデバイスの例について説明する。
(D2-1) サーバ装置は、制御回路を備え得、制御回路は、セキュアなリソースにアクセスするための認証要求を第1のデバイスから受信することであって、認証要求が、ネットワーク接続を提供するための、第1のデバイスが結合された第2のデバイスから第1のデバイスによって取得されるセキュリティデータに基づくインジケータを含むことと、認証要求の受信に応答して、インジケータに少なくとも部分的に基づいて認証を実施することと、要求の認証に応答して、第1のデバイスにセキュアなリソースへのアクセスを提供することと、を行うように構築および構成される。
(D2-2) 別のサーバ装置は、段落(D2-1)において説明されたように提供され得、認証を実施することは、(i)第2のデバイスの識別情報を検査することと、(ii)第1のデバイスが第2のデバイスに通信可能に結合されたことを確認することとを含む。
(D2-3) 別のサーバ装置は、段落(D2-1)~(D2-2)のいずれか1つにおいて説明されたように提供され得、インジケータが、第2のデバイスによって作り出されたまたは獲得されたセキュアトークンを含むことをさらに伴い得、認証を実施することが、セキュアトークンを認証ファクタとして使用することを含む。
(D2-4) 別のサーバ装置は、段落(D2-1)~(D2-3)のいずれか1つにおいて説明されたように提供され得、認証を実施することが、インジケータならびに第1のデバイスから受信された追加の認証ファクタのセットを検証することを含む。
【0012】
第1の態様が、ロケーションに基づくアクセス制御の向上に役立つことがさらにわかった。これらの傾向に沿って、および第3の態様によれば、改善された技法は、ネットワーク接続を第1のデバイスと共有する第2のデバイスからロケーション情報を受信する第1のデバイスを含む。第1のデバイスは、ネットワークのリソースへのアクセスを要求するとき、第2のデバイスから受信されたロケーション情報を適用する。改善された技法を使用して、第1のデバイスは、認証強度を増加させるために、および/またはアクセス権の監督を容易にするために、第2のデバイスのプレゼンスと、第2のデバイスのロケーション情報とを活用する。
【0013】
以下の段落(M3-1)~(M3-10)は、本開示に従って実装され得る方法の例について説明する。
(M3-1) 方法は、第1のコンピューティングデバイスによって、第2のコンピューティングデバイスからデータを受信することであって、データが第2のコンピューティングデバイスのロケーションを示し、第2のコンピューティングデバイスがコンピュータネットワークへの接続を有することと、第1のコンピューティングデバイスによって、第2のコンピューティングデバイスからの受信されたデータに少なくとも部分的に基づいてロケーションインジケータを決定することとを含む。本方法は、第1のコンピューティングデバイスによって、コンピュータネットワークのリソースにアクセスするための要求を送ることであって、要求が、決定されたロケーションインジケータを含むことと、第1のコンピューティングデバイスによって、リソースにアクセスするための許可に応答してコンピュータネットワークのリソースにアクセスすることであって、許可が、要求に応答して、および決定されたロケーションインジケータに少なくとも部分的に基づいて許諾され、第2のコンピューティングデバイスから受信されたロケーションインジケータが、ロケーションに少なくとも部分的に基づいてリソースへの第1のコンピューティングデバイスによるアクセスを可能にするために、第1のコンピューティングデバイスのロケーションのインジケーションを提供することと、をさらに含む。
(M3-2) 別の方法は、段落(M3-1)において説明されたように実施され得、第2のコンピューティングデバイスが、コンピュータネットワークへの接続を第1のコンピューティングデバイスと共有し、ロケーション情報を受信することが、第1のコンピューティングデバイスと第2のコンピューティングデバイスとの間のローカル接続上で、第2のコンピューティングデバイスからロケーション情報を取得することを含む。
(M3-3) 別の方法は、段落(M3-2)において説明されたように実施され得、第2のコンピューティングデバイスが、(i)モバイルデバイスまたは(ii)セルラードングルのうちの1つであることをさらに伴い、ローカル接続上でロケーション情報を取得するとき、第1のコンピューティングデバイスが、(i)Bluetooth、(ii)Wi-Fi、または(iii)ケーブルのうちの1つを使用してローカル接続上で第2のコンピューティングデバイスにテザリングされる。
(M3-4) 別の方法は、段落(M3-1)~(M3-3)のいずれか1つにおいて説明されたように実施され得、要求を送ることが、第2のコンピューティングデバイスによって第1のコンピューティングデバイスと共有される共有接続上で要求を送信することを含む。
(M3-5) 別の方法は、段落(M3-1)~(M3-4)のいずれか1つにおいて説明されたように実施され得、第1のコンピューティングデバイスが、共有接続とは別個の、コンピュータネットワークへの第2の接続を有し、アクセス要求を送ることが、第2の接続上でアクセス要求を送信することを含む。
(M3-6) 別の方法は、段落(M3-1)~(M3-5)のいずれか1つにおいて説明されたように実施され得、第2のコンピューティングデバイスのロケーションを示すロケーション情報が第2のロケーション情報であり、本方法は、第1のコンピューティングデバイスによって、第1のコンピューティングデバイスの第1のロケーション情報を取得することをさらに伴い得、ロケーションインジケータを形成することが、第1のロケーション情報および第2のロケーション情報に少なくとも部分的に基づく。
(M3-7) 別の方法は、段落(M3-1)~(M3-6)のいずれか1つにおいて説明されたように実施され得、第1のコンピューティングデバイスの第1のロケーション情報を取得することが、第1のコンピューティングデバイスが属するWi-Fiネットワークを識別することを含む。
(M3-8) 別の方法は、段落(M3-1)~(M3-7)のいずれか1つにおいて説明されたように実施され得、第2のコンピューティングデバイスの第2のロケーション情報を取得することが、第2のコンピューティングデバイスのGPS(全地球測位システム)座標を受信することを含む。
(M3-9) 別の方法は、段落(M3-1)~(M3-7)のいずれか1つにおいて説明されたように実施され得、第2のコンピューティングデバイスの第2のロケーション情報を取得することが、第2のコンピューティングデバイスのIP(インターネットプロトコル)アドレスを識別することを含む。
(M3-10) 別の方法は、段落(M3-1)~(M3-9)のいずれか1つにおいて説明されたように実施され得、第2のコンピューティングデバイスのロケーションを示すロケーション情報が第2のロケーション情報であり、本方法は、ローカル接続上で第1のコンピューティングデバイスによって、第2のコンピューティングデバイスのロケーションを示す第3のロケーション情報を取得することであって、第3のロケーション情報が第2のロケーション情報のソースとは別個のソースから導出されることをさらに伴い得、ロケーションインジケータを形成することが、第1のロケーション情報、第2のロケーション情報、および第3のロケーション情報に少なくとも部分的に基づく。
【0014】
以下の段落(M4-1)~(M4-8)は、本開示に従って実装され得る方法のさらなる例について説明する。
(M4-1) 方法は、サーバによって、コンピュータネットワーク上で第1のコンピューティングデバイスから要求を受信することであって、要求が、コンピュータネットワーク上のリソースにアクセスするためのものであり、ロケーションインジケータを含み、ロケーションインジケータが、第2のコンピューティングデバイスのロケーションを示すデータに少なくとも部分的に基づくことを含む。本方法は、サーバによって、受信された要求のロケーションインジケータに少なくとも部分的に基づいて、ロケーションインジケータによって示されたロケーションが、コンピュータネットワークのリソースにアクセスするための許可されたロケーションに一致することを検証することと、ロケーションの検証に応答して、サーバによって、コンピュータネットワーク上のリソースへのアクセスを第1のコンピューティングデバイスに許諾することとをさらに含む。
(M4-2) 別の方法は、段落(M4-1)において説明されたように実施され得、第2のデバイスのロケーションを示すデータが第2のロケーション情報であり、ロケーションインジケータが、さらに、第1のコンピューティングデバイスの第1のロケーション情報に少なくとも部分的に基づき、本方法は、第1のコンピューティングデバイスの第1のロケーション情報および第2のコンピューティングデバイスの第2のロケーション情報に少なくとも部分的に基づいて代表的ロケーション(representative location)を確立することをさらに伴い、ロケーションインジケータが許可されたロケーションに一致することを検証することは、代表的ロケーションが許可されたロケーションと整合することを確認することを含む。
(M4-3) 別の方法は、段落(M4-1)~(M4-2)のいずれか1つにおいて説明されたように実施され得、ロケーションインジケータが、さらに、第2のコンピューティングデバイスの第3のロケーション情報に少なくとも部分的に基づき、第3のロケーション情報が、第2のロケーション情報のソースとは別個のソースから導出され、代表的ロケーションを生成することが、少なくとも第1のロケーション情報、第2のロケーション情報、および第3のロケーション情報に基づいて地理的ロケーションを組み合わせることを含み、代表的ロケーションが許可されたロケーションと整合することを確認することが、第1のロケーション情報、第2のロケーション情報、および第3のロケーション情報に少なくとも部分的に基づく。
(M4-4) 別の方法は、段落(M4-1)~(M4-3)のいずれか1つにおいて説明されたように実施され得、代表的ロケーションを生成することが、第1のロケーション情報および第2のロケーション情報に少なくとも部分的に基づいて重心(centroid)を作り出すことを含み、重心が、第1のロケーション情報および第2のロケーション情報に少なくとも部分的に基づく地理的中心を示す。
(M4-5) 別の方法は、段落(M4-1)において説明されたように実施され得、第1のロケーション情報および第2のロケーション情報に信頼性スコアを割り当てることと、重心を作り出すときに信頼性スコアを重みとして適用することとをさらに伴い得る。
(M4-6) 別の方法は、段落(M4-1)~(M4-5)のいずれか1つにおいて説明されたように実施され得、第2のコンピューティングデバイスのロケーションを示すデータが第2のロケーション情報であり、ロケーションインジケータが、さらに、第1のコンピューティングデバイスの第1のロケーション情報に少なくとも部分的に基づき、第1のロケーション情報は、第1のコンピューティングデバイスが接続されたワイヤレスネットワークのWi-Fi識別子を含み、本方法は、Wi-Fi識別子を第1のコンピューティングデバイスの地理的ロケーションに変換することをさらに含む。
(M4-7) 別の方法は、段落(M4-1)~(M4-6)のいずれか1つにおいて説明されたように実施され得、第2のロケーション情報が第2のコンピューティングデバイスのIP(インターネットプロトコル)アドレスを含み、本方法は、IPアドレスを第2のコンピューティングデバイスの地理的ロケーションに変換することをさらに含む。
(M4-8) 別の方法は、段落(M4-1)~(M4-7)のいずれか1つにおいて説明されたように実施され得、第2のコンピューティングデバイスのロケーション情報が、第2のコンピューティングデバイスのGPS(全地球測位システム)座標を含み、ロケーションインジケータによって示されたロケーションが許可されたロケーションに一致することを検証することは、第2のコンピューティングデバイスのGPS座標が、所定の距離しきい値内まで、許可されたロケーションのGPS座標と整合することを確認することを含む。
【0015】
さらに、以下の段落(S1-1)~(S1-3)は、本開示に従って実装され得るサーバの例について説明する。
(S1-1) サーバは、制御回路を備え得、制御回路は、コンピュータネットワーク上で第1のコンピューティングデバイスから要求を受信することであって、要求が、コンピュータネットワーク上のリソースにアクセスするためのものであり、ロケーションインジケータを含み、ロケーションインジケータが、第2のコンピューティングデバイスのロケーションを示すデータに少なくとも部分的に基づくことと、受信された要求のロケーションインジケータに少なくとも部分的に基づいて、ロケーションインジケータによって示されたロケーションが、コンピュータネットワークのリソースにアクセスするための許可されたロケーションと整合することを検証することと、ロケーションの検証に応答して、コンピュータネットワーク上のリソースにアクセスすることを第1のコンピューティングデバイスに許諾することと、を行うように構成される。
(S1-2) 別のサーバは、段落(S1-1)において説明されたように提供され得、第2のコンピューティングデバイスのロケーションを示すデータが第2のロケーション情報であり、ロケーションインジケータが、さらに、第1のデバイスの第1のロケーション情報に少なくとも部分的に基づき、制御回路が、少なくともロケーション情報の第1のセットおよびロケーション情報の第2のセットに基づいて地理的ロケーションを組み合わせて、ロケーション情報の第1のセットおよびロケーション情報の第2のセットに少なくとも部分的に基づいて代表的ロケーションを生成することと、代表的ロケーションが許可されたロケーションと整合することを検証することとを行うようにさらに構成される。
(S1-3) 別のサーバは、段落(S1-1)または(S1-2)のいずれか1つにおいて説明されたように提供され得、制御回路が、代表的ロケーションを重心として作り出すようにさらに構成され、重心が、少なくとも第1のロケーション情報および第2のロケーション情報によって形成される地理的中心を示す。
【0016】
さらに、以下の段落(D3-1)は、本開示に従って実装され得るデバイスの一例について説明する。
(D3-1) デバイスは、制御回路を備え、制御回路は、第2のデバイスのロケーションを示すロケーション情報を取得することであって、第2のデバイスが、(i)クライアントデバイスに動作可能に結合され、(ii)コンピュータネットワークへの接続を有し、(iii)接続をクライアントデバイスと共有することと、第2のデバイスから受信されたロケーション情報に少なくとも部分的に基づくロケーションインジケータを形成することと、コンピュータネットワークのリソースにアクセスするための、ロケーションインジケータを含むアクセス要求をサーバに送ることと、ロケーションインジケータが、リソースにアクセスするための許可されたロケーションに一致するという決定に少なくとも部分的に基づいて、リソースにアクセスすることとを行うように構成される。
【0017】
さらに、ユーザデバイスは、会社、学校、政府機関、または他のエンティティなど、団体によって、全体的にまたは部分的に管理され得る。ユーザデバイスは、団体が制御するセキュリティ要件、アップグレード、ならびに/または他のアクティビティおよびポリシーに従い得る。管理制御は、デバイス全体に拡張し得るか、あるいは、デバイス上で稼働している指定されたアプリケーションおよび/または特徴にのみ拡張し得る。本明細書で使用される「管理されているデバイス」という用語は、団体によって完全に制御されるデバイスと、たとえば、制御が1つまたは複数のアプリケーションまたは他の特徴にのみ拡張する、部分的に制御されるデバイスの両方を指す。
【0018】
管理されているデバイスのユーザは、しばしば、自宅で、あるいは団体によって所有または制御されていない他のロケーションにおいてなど、団体からオフサイトで(off-site)働く。そのようなロケーションには、スマートスピーカー(たとえば、Amazon Echoおよび/またはGoogle Home)、スマートTV、カメラ、ライト、セキュリティシステム、サーモスタットなど、多数のIoT(モノのインターネット)デバイスがあり得る。本明細書で使用される「IoTデバイス」は、1つまたは複数の機能を実施し、コンピュータネットワーク上で通信することが可能である、任意のデバイス、マシン、器具、システム、衣類などを指す。
【0019】
通常オフサイトで動作する管理されているデバイスは、管理されているデバイスの周りの、すなわち、管理されているデバイスのローカル環境における、IoTデバイスに接続する能力を有する。たとえば、管理されているデバイスは、スマートスピーカーを通してオーディオを再生するか、または同じ部屋にあるスマートTVを通してビデオを再生し得る。残念ながら、そのようなIoTデバイスは、管理されているデバイスと同じ管理制御に従わない。そのようなIoTデバイスは、古いソフトウェアを稼働し、悪意のあるコードを稼働し、より一般的には、管理されているデバイスを危険にさらし得る。これは特に、多くのIoTデバイスがセキュリティを念頭に置いて設計されていない場合である。ユーザは、管理されているデバイスをローカルIoTデバイスに接続したくなることがあるが、そうすることは、団体を危険にさらし得る。
【0020】
これらの傾向に沿って、および第4の態様によれば、改善された技法は、団体による管理制御を、管理されているデバイスのローカル環境におけるIoT(モノのインターネット)デバイスに拡張する、管理されているデバイスを採用する。管理されているデバイスは、ローカルIoTデバイスを発見し、これらのデバイスのうちの1つまたは複数を管理制御下に置くためにサーバとの通信に参加する。いくつかの例では、管理制御を拡張することは、選択されたIoTデバイスを団体の管理フレームワークにエンロールする(enroll)ことと、管理されているデバイスを通してサーバとそれぞれのIoTデバイスとの間の通信をダイレクトすることとを伴い、これは、ローカル環境における選択されたIoTデバイスの管理を監督するためのポイントオブプレゼンスを提供する。
【0021】
以下の段落(M5-1)~(M5-14)は、本開示に従って実装され得る方法の例について説明する。
(M5-1) 方法は、コンピューティングデバイスによって、コンピューティングデバイスの周りの環境におけるIoT(モノのインターネット)デバイスを走査するための要求を処理することであって、コンピューティングデバイスが、エンティティによって管理され、コンピュータネットワーク上でエンティティのサーバに通信可能に結合されることを伴う。本方法は、コンピューティングデバイスによって、環境におけるIoTデバイスのセットを発見することであって、IoTデバイスのセットがエンティティによって管理されていないことと、コンピューティングデバイスによって、エンティティによる管理制御をIoTデバイスのセットに拡張するためにサーバとの通信に参加することであって、管理制御は、IoTデバイスのセットがエンティティの1つまたは複数のポリシーに従って動作することを可能にすることとをさらに伴う。
(M5-2) 別の方法は、段落(M5-1)において説明されたように実施され得、コンピューティングデバイスが、サーバからのデータイングレス(ingress)をIoTデバイスのセットにルーティングすることと、IoTデバイスのセットからのデータエグレス(egress)をサーバにルーティングすることとをさらに伴い得る。
(M5-3) 別の方法は、段落(M5-1)~(M5-2)のいずれか1つにおいて説明されたように実施され得、コンピューティングデバイスがハブであり、IoTデバイスのセットがそれぞれのスポークを介してハブに動作可能に接続する、論理ネットワークを形成することと、論理ネットワークのハブとして働くコンピューティングデバイスを通してIoTデバイスのセットとサーバとの間の通信をダイレクトすることとをさらに伴い得る。
(M5-4) 別の方法は、段落(M5-1)~(M5-3)のいずれか1つにおいて説明されたように実施され得、IoTデバイスのセットのための管理ポリシーを展開することであって、管理ポリシーがエンティティによって定義されることをさらに伴い得る。
(M5-5) 別の方法は、段落(M5-1)~(M5-4)のいずれか1つにおいて説明されたように実施され得、管理ポリシーを展開することが、IoTデバイスのセットのうちの少なくとも1つについて、悪意のあるコードについてそれぞれのIoTデバイスを走査することを含む。
(M5-6) 別の方法は、段落(M5-1)~(M5-5)のいずれか1つにおいて説明されたように実施され得、管理ポリシーを展開することが、IoTデバイスのセットのうちの少なくとも1つについて、それぞれのIoTデバイス上のソフトウェアおよび/またはファームウェアを更新することを含む。
(M5-7) 別の方法は、段落(M5-1)~(M5-6)のいずれか1つにおいて説明されたように実施され得、管理ポリシーを展開することが、IoTデバイスのセットのうちの少なくとも1つについて、それぞれのIoTデバイス上にスキルのセットをインストールすることであって、スキルがエンティティのために開発されることを含む。
(M5-8) 別の方法は、段落(M1)~(M7)のいずれか1つにおいて説明されたように実施され得、コンピューティングデバイス上のソフトウェア構成要素を稼働することと、ソフトウェア構成要素の入力のためのソースおよび/または出力のための宛先になるようにIoTデバイスのセットのうちの少なくとも1つに指示することとをさらに伴い得る。
(M5-9) 別の方法は、段落(M5-8)において説明されたように実施され得、ソフトウェア構成要素がソフトウェア構成要素の入力および/または出力のためにIoTデバイスのセットのうちの前記少なくとも1つを使用することを可能にするように、ユーザに促すことをさらに伴い得る。
(M5-10) 別の方法は、段落(M5-8)~(M5-9)のいずれか1つにおいて説明されたように実施され得、ソフトウェア構成要素の入力および/または出力を提供するための、IoTデバイスのセットのうちの複数のIoTデバイスの間のアクティビティを調整することをさらに伴い得る。
(M5-11) 別の方法は、段落(M5-8)~(M5-10)のいずれか1つにおいて説明されたように実施され得、IoTデバイスのセットのうちのIoTデバイスとの通信を確立した後に、コンピューティングデバイスが、IoTデバイスとの通信をサーバにハンドオフすることと、次いで、IoTデバイスが、コンピューティングデバイスを通してデータをルーティングすることなしにサーバと通信することとをさらに伴い得る。
(M5-12) 別の方法は、段落(M5-7)において説明されたように実施され得、スキルのセットが、サーバからエンティティのリソースにアクセスするためのボイスアシスタントとしてIoTデバイスを動作させるスキルを含む。
(M5-13) 別の方法は、段落(M5-7)において説明されたように実施され得、スキルのセットが、コンピューティングデバイスの機能を制御するためのボイスアシスタントとしてIoTデバイスを動作させるスキルを含み、本方法は、コンピューティングデバイスが、ボイスコマンドに基づいてIoTデバイスからの制御入力に応答することをさらに含む。
(M5-14) 別の方法は、段落(M5-1)~(M5-3)のいずれか1つにおいて説明されたように実施され得、コンピューティングデバイスが、サーバとの特定用途向けVPN(仮想プライベートネットワーク)を確立することと、特定用途向けVPNを通してサーバとIoTデバイスのセットとの間でネットワークトラフィックを伝達することとをさらに伴い得る。
【0022】
さらに、以下の段落(D3-1)~(D3ー3)は、本開示に従って実装され得るデバイスの一例について説明する。
(D3-1) デバイスは、制御回路を備え、制御回路は、コンピューティングデバイスの周りの環境におけるIoT(モノのインターネット)デバイスを走査するための要求を処理することであって、コンピューティングデバイスがエンティティによって管理されることと、環境におけるIoTデバイスのセットを発見することであって、IoTデバイスのセットがエンティティによって管理されていないことと、エンティティによる管理制御をIoTデバイスのセットに拡張するためにエンティティのサーバとの通信に参加することであって、管理制御は、IoTデバイスのセットがエンティティの1つまたは複数のポリシーに従って動作することを可能にすることと、を行うように構成される。
(D3-2) 別のデバイスは、段落(D3-1)において説明されたように提供され得、制御回路は、コンピューティングデバイスがハブであり、IoTデバイスのセットがハブのそれぞれのスポークである、論理ネットワークを形成することと、論理ネットワークのハブとして働くコンピューティングデバイスを通してIoTデバイスのセットとサーバとの間の通信をダイレクトすることとを行うようにさらに構成される。
(D3-3) 別のデバイスは、段落(D3-1)~(D3-2)のいずれか1つにおいて説明されたように提供され得、制御回路が、コンピューティングデバイス上のソフトウェア構成要素を稼働することと、ソフトウェア構成要素の入力のためのソースおよび/または出力のための宛先になるようにIoTデバイスのセットのうちの少なくとも1つに指示することとを行うようにさらに構成される。
【0023】
以下の段落(M6-1)~(M6-4)は、本開示に従って実装され得る方法のさらなる例について説明する。
(M6-1) 方法は、サーバによって、コンピューティングデバイスから、コンピューティングデバイスがすでにエンロールされた団体にIoTデバイスをエンロールするための要求を受信することであって、IoTデバイスが、管理されているデバイスの周りの環境において配設されることを含む。本方法は、要求を受信したことに応答して、IoTデバイスが団体の1つまたは複数のポリシーに従うことになるようにIoTデバイスを団体にエンロールするために、サーバによって、コンピューティングデバイスとの通信に参加することと、サーバによって、コンピューティングデバイスを介してエンロールされたIoTデバイスと通信することとをさらに含む。
(M6-2) 別の方法は、段落(M6-1)において説明されたように実施され得、悪意のあるコードについてIoTデバイスを走査するようにコンピューティングデバイスに指示することをさらに伴い得る。
(M6-3) 別の方法は、段落(M6-1)~(M6-2)のいずれか1つにおいて説明されたように実施され得、エンロールされたIoTデバイスと通信することが、サーバとコンピューティングデバイス上で稼働しているソフトウェア構成要素との間に確立された特定用途向けVPN(仮想プライベートネットワーク)上で行われる。
(M6-4) 別の方法は、段落(M6-1)~(M6-3)のいずれか1つにおいて説明されたように実施され得、IoTデバイスに関するデータをコンピューティングデバイスのユーザのユーザプロファイルに追加することと、ソフトウェア特徴を動作させるための要求をコンピューティングデバイスから受信することと、ソフトウェア特徴を動作させるための要求を受信したことに応答して、(i)ユーザプロファイルからIoTデバイスを識別することと、(ii)ソフトウェア構成要素の入力および/または出力を提供するためにIoTデバイスを使用するようにユーザに促すように、コンピューティングデバイス上のソフトウェア構成要素に指示することと、をさらに伴い得る。
【0024】
上記の概要は、本明細書で提示される例示的な特徴を読者が容易に把握するのを支援するために説明の目的で提示されるが、本発明の概要は、必要とされる要素を記載するものではなく、またはいかなる形でも本出願の実施形態を限定するものではない。上記で説明された特徴は、技術的に意味をなす何らかの様式で組み合わせられ得、すべてのそのような組合せは、そのような組合せが明示的に識別されるか否かにかかわらず、本明細書で開示されるものとすることを諒解されたい。
【0025】
上記および他の特徴および利点は、添付の図面に示されているような、特定の実施形態の以下の説明から明らかになろう。添付の図面において、異なる図全体にわたって同様の参照符号が同じまたは同様の部分を指す。
【図面の簡単な説明】
【0026】
図1】開示される技法の実施形態が実践され得る例示的な環境のブロック図である。
図2】サーバからクライアントにSaaS(サービスとしてのソフトウェア:Software as a Service)アプリケーションをダウンロードするための例示的な構成を示すブロック図である。
図3図1の環境中でクライアントおよび/またはサーバを動作させるための例示的な方法を示すフローチャートである。
図4a】クライアントアプリケーション構成要素のグラフィカルユーザインターフェース(GUI)のシミュレートされたスクリーンショットである。
図4b】クライアントアプリケーション構成要素のグラフィカルユーザインターフェース(GUI)のシミュレートされたスクリーンショットである。
図4c】クライアントアプリケーション構成要素のグラフィカルユーザインターフェース(GUI)のシミュレートされたスクリーンショットである。
図4d】クライアントアプリケーション構成要素のグラフィカルユーザインターフェース(GUI)のシミュレートされたスクリーンショットである。
図5】SaaSワークスペースアプリケーションのGUIのシミュレートされたスクリーンショットである。
図6】クライアントデバイスによって行われる例示的な方法を示すフローチャートである。
図7】サーバによって行われる例示的な方法を示すフローチャートである。
図8】クライアントデバイスとサーバの両方を備えるシステムによって行われる例示的な方法を示すフローチャートである。
図9】本開示の様々な態様が実装され得る例示的なネットワーク環境を示すブロック図である。
図10】クライアントデバイス、器具および/またはサーバの一実施形態を実践するために有用なコンピューティングデバイスを示すブロック図である。
図11】認証を実施するための実施形態が実践され得る例示的なシステムのブロック図である。
図12】第2のデバイスから受信されたセキュリティデータに少なくとも部分的に基づいて第1のデバイスによって認証を実施するための例示的なプロシージャを示すシーケンス図である。
図13】第2のデバイスから受信されたセキュリティデータに少なくとも部分的に基づいて第1のデバイスによって認証を実施するための別の例示的なプロシージャを示すシーケンス図である。
図14】認証に参加するための、クライアントデバイスによって行われる例示的な方法を示すフローチャートである。
図15】認証に参加するための、サーバによって行われる例示的な方法を示すフローチャートである。
図16】ロケーション情報を活用するための実施形態が実践され得る例示的なシステムのブロック図である。
図17】第1のデバイスによるアクセス要求を行うときに第2のデバイスのロケーション情報を使用するための例示的なプロシージャを示すシーケンス図である。
図18】第2のデバイスの位置特定情報を使用してリソースにアクセスするための、クライアントデバイスによって行われる例示的な方法を示すフローチャートである。
図19】第2のデバイスのロケーション情報を使用して第1のデバイスにリソースへのアクセスを提供するための、サーバによって行われる例示的な方法を示すフローチャートである。
図20】団体による管理制御をローカル環境におけるIoTデバイスに拡張するための実施形態が実践され得る例示的なシステムのブロック図である。
図21】管理されているデバイスと、図11のローカル環境における複数のIoTデバイスとの間に形成された例示的な論理ネットワークを示すブロック図である。
図22】管理制御をIoTデバイスに拡張することに関与する例示的な通信を示すシーケンス図である。
図23】管理制御をIoTデバイスに拡張するための、管理されているデバイスによって行われる例示的な方法を示すフローチャートである。
図24】団体の管理下にIoTデバイスをエンロールするための要求に応答するための、サーバによって行われる例示的な方法を示すフローチャートである。
【発明を実施するための形態】
【0027】
次に、開示される技法の実施形態が説明される。そのような実施形態は、いくつかの特徴および原理を示すために例として提供されるが、限定するものではないことを諒解されたい。
【0028】
この文書は、読者を支援するために以下のセクションにおいて提供される。
・セクションIは、複数の、同時ネットワーク経路の使用によってネットワーク信頼性を改善するための例示的な環境および技法を提示する。
・セクションIIは、第2のデバイスを使用して、第2のデバイスにテザリングされた第1のデバイスによって行われる認証要求の認証強度および/または利便性を改善するための例示的な技法を提示する。
・セクションIIIは、第1のデバイスによってリソースへのアクセスを要求するときに第2のデバイスのロケーション情報を活用するための例示的な技法を提示する。
・セクションIVは、管理制御をIoTデバイスに拡張するための例示的な技法を提示する。
セクションI、II、III、およびIVにおいて開示される技法は、一緒に、または独立して使用され得る。各技法は他の技法の特徴から利益を得ることがあるが、いずれの技法も、他の技法とともに使用されることを必要とされない。
セクションI:複数の、同時ネットワーク経路を維持するための例示的な環境および技法
【0029】
アプリケーションを動作させるための技法は、複数の、同時ネットワーク経路を維持し、ネットワーク経路を通して冗長的に同じデータを交換し、受信機が、データのソースとしてネットワーク経路のうちの1つを選択することを可能にする。
【0030】
図1は、開示される技法の実施形態が実践され得る例示的な環境100を示す。ここで、クライアントデバイス110(「クライアント」)は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、インターネット、および/または何らかの他のタイプのネットワークもしくはネットワークの組合せなど、ネットワーク170上で、サーバ装置120(「サーバ」)に動作可能に接続される。クライアント110は、ラップトップコンピュータ、デスクトップコンピュータ、タブレットコンピュータ、スマートフォン、個人情報端末(personal data assistant)、セットトップボックス、ゲーミングシステムなど、任意のユーザ操作可能コンピュータまたはデバイスとして提供され得る。サーバ120は、同様の形態で提供され得るが、一般に、データセンターにおいて稼働し、インターネット上で、を意味する「クラウドにおいて」利用可能である、サーバグレード(server-grade)コンピュータである。いくつかの例では、サーバ120は、分散型サーバまたはサーバクラスタの一部として、複数のコンピュータを使用して実装される。
【0031】
クライアント110は、複数の経路180を介してネットワーク170に接続され、複数の経路180は、たとえば、イーサネット経路180a、Wi-Fi経路180b、およびセルラーデータ経路180cを含み得る。より多数またはより少数の経路180が提供され得、本開示は、(1つまたは複数の)特定のタイプの経路に限定されない。一例では、セルラーデータ経路180cは、LTE(ロングタームエボリューション)データ経路である。クライアント110は、モニタ、タッチスクリーンなどのディスプレイ116を有し、ディスプレイ116は、グラフィカルユーザインターフェース(GUI)118をレンダリングするように構成され、これはユーザ102によって動作され得る。
【0032】
図示のように、クライアント110は、イーサネットポート、Wi-Fiアンテナ、セルラーアンテナなど、1つまたは複数の通信インターフェース112cを備える。クライアント110は、1つまたは複数の処理チップおよび/またはアセンブリなどのプロセッサ114cのセットと、メモリ130cとをも備え、メモリ130cは、揮発性メモリ、たとえば、RAM(ランダムアクセスメモリ)と、1つまたは複数のROM(読取り専用メモリ)、ディスクドライブ、ソリッドステートドライブなどの不揮発性メモリの両方を備え得る。プロセッサ114cのセットとメモリ130cとは、クライアント制御回路を一緒に形成し、クライアント制御回路は、本明細書で説明される様々なクライアント方法および機能を行うように構築および構成される。また、メモリ130cは、実行可能な命令の形態で実現される様々なソフトウェア構成体を含む。実行可能な命令がプロセッサ114cのセットによって稼働されたとき、(1つまたは複数の)プロセッサは、ソフトウェア構成体の動作を行う。いくつかのソフトウェア構成体が詳細に図示および説明されているが、メモリ130cが一般に、オペレーティングシステム、様々なアプリケーション、プロセス、およびデーモンなど、図示されていない多くの他のソフトウェア構成要素を含むことを理解されたい。
【0033】
サーバ120の構成は、クライアント110の構成と同様であり得、(1つまたは複数の)通信インターフェース112sと、(1つまたは複数の)プロセッサ114sと、メモリ130sとをもつ。(1つまたは複数の)プロセッサ114sとメモリ130sとは、サーバ制御回路を形成し、サーバ制御回路は、本明細書で説明される様々なサーバ方法および機能を行うように構築および構成される。サーバ120上の実行可能な命令が(1つまたは複数の)プロセッサ114sによって稼働されたとき、(1つまたは複数の)プロセッサは、ソフトウェア構成体の動作を行う。
【0034】
図1にさらに示されているように、クライアント110のメモリ130cは、ソフトウェアアプリケーション132のクライアント構成要素132cと、マイクロVPN(仮想プライベートネットワーク)クライアント134cと、リンクボンディング(link bonding)クライアント140cとを「含む」、すなわち、ソフトウェア命令の実行によって実現する。メモリ130cは、TCP/IP(伝送制御プロトコル/インターネットプロトコル)ドライバ150c、ならびに、イーサネットドライバ160a、Wi-Fiドライバ160b、およびセルラーデータドライバ160cなどの追加のドライバ160をさらに備える。
【0035】
次にサーバ120を参照すると、メモリ130sは、ソフトウェアアプリケーション132のサーバ構成要素132sと、マイクロVPNサーバ134sと、リンクボンディングサービス140sとを備える。メモリ130sは、TCP/IPドライバ150s、ならびに、1つまたは複数の接続経路180のための1つまたは複数のドライバ160をさらに備える。特定の例では、サーバ120は、イーサネットドライバ160dを介してアクセスされる、イーサネットなどの単一の接続経路のみを使用する。
【0036】
一例では、マイクロVPNクライアント134cとリンクボンディングクライアント140cとは、それぞれのソフトウェアライブラリとして提供され、各ライブラリは、そのそれぞれの機能を公開するための、それ自体のAPI(アプリケーションプログラムインターフェース)を有する。さらに、マイクロVPNクライアント134cとリンクボンディングクライアント140cとは、各々、アプリケーションプログラム132のクライアント構成要素132cに「スコープ(scope)」され得、これは、マイクロVPNクライアント134cおよびリンクボンディングクライアント140cの機能が、アプリケーションプログラム132を伴う通信に限定され、概して、クライアントデバイス110上で稼働している他のプログラムに拡張しないことを意味する。たとえば、マイクロVPNクライアント134cは、ネットワークトンネル134などの暗号化されたチャネルを確立するためにマイクロVPNサーバ134sと協調し、これは、クライアント構成要素132cとサーバ構成要素132sとの間のネットワーク170上での通信に限定される。トンネル134がクライアントデバイス110全体に適用される(従来のVPNのための一般的な構成である)のではなく、トンネル134は、代わりに、クライアント110とサーバ120との間を通る、アプリケーションプログラム132のネットワークトラフィックに制限され得る。この構成では、クライアントデバイス110上で稼働している他のプログラムによって行われる他のネットワークアクティビティは、トンネル134の外側にあり得、そのようなアクティビティはトンネル134によってセキュアにされない。したがって、マイクロVPNは、全体としてクライアントマシン110のためのものではなく、特定のアプリケーションのためのネットワークトンネル134を提供する。特に、この特徴は、リンクボンディングクライアント140cおよびクライアントアプリケーションコード132cとともに、マイクロVPNが、クライアントデバイス110上にインストールされ得る単一のダウンロード可能パッケージ(図2参照)中で提供されることを可能にし、これは、複数のインストールプロシージャの必要を回避し、すべての関係する部分を一緒に保持する。一例では、マイクロVPNクライアント134cとマイクロVPNサーバ134sとは、トンネル134を通して渡されるデータの暗号化および解読を実施することによって、暗号化されたチャネルを確立するように構成される。マイクロVPNクライアント134cとマイクロVPNサーバ134sとはまた、たとえば、許可されたサイトのホワイトリストおよび/またはブロックされたサイトのブラックリストを適用することによって、ネットワーク170上の指定されたリソースへの接続を制限するように構成され得る。本明細書で使用される「チャネル」という用語は、任意の1つのネットワーク経路に限定されず、むしろ、ネットワーク経路180のすべての上でのすべての通信を包含することを諒解されたい。リンクボンディングクライアント140cは、複数のネットワーク経路180上で(クライアント構成要素132cからの)発信データをダイレクトし、ネットワーク経路180上で到着した着信データを受信し、クライアント構成要素132cに提供されるべきデータのソースとしてネットワーク経路のうちの1つを選択するように構成される。同様にして、リンクボンディングサーバ140sは、ネットワーク経路180上で(サーバ構成要素132sからの)発信データをダイレクトし、同じネットワーク経路180上で到着した着信ネットワークデータを受信し、サーバ構成要素132sに提供されるべきデータのソースとしてネットワーク経路180のうちの1つを選択するように構成される。いくつかの例では、リンクボンディングクライアント140cとリンクボンディングサービス140sとは、OSI(開放型システム間相互接続)モデルのデータリンクレイヤ(レイヤ2)において動作するが、これは必要とされない。マイクロVPNクライアント構成要素132cとリンクボンディングクライアント構成要素140cとは、本明細書ではソフトウェアライブラリとして示されているが、マイクロVPNクライアント構成要素132cとリンクボンディングクライアント構成要素140cとは、代替的に、少なくとも部分的にハードウェアおよび/またはファームウェアを使用して実装され得る。また、マイクロVPNクライアントおよびサーバと、リンクボンディングクライアントおよびサービスとは、例示にすぎず、限定するものではないことを諒解されたい。
【0037】
一例では、アプリケーションプログラム132は、SaaSアプリケーションである。クライアント構成要素132cは、ウェブページおよび/またはサーバ構成要素132sからダウンロードされた他のコンテンツを稼働するウェブブラウザまたは他のクライアント側プログラムであり得る。一例では、アプリケーションプログラム132は、ワークスペースフレームワーク、すなわち、単一のインターフェースからの複数のサブアプリケーションへのユーザアクセスを提供するソフトウェア環境である。そのようなサブアプリケーションは、ワークスペースフレームワーク内で稼働し、これらのサブアプリケーションの着信および発信データは、リンクボンディング構成要素140cを介してトンネル134を通過する。いくつかの例によれば、トンネル134は、アプリケーションフレームワークへのおよびそこからのすべてのアプリケーショントラフィックに適用される。
【0038】
例示的な動作では、クライアントデバイス110のユーザ102は、たとえば、ショートカットをクリックもしくはタップすることによって、またはブラウザ中でナビゲートすることによって、クライアント構成要素132cをローンチする。前に確立された関連付け114に基づいて、クライアント構成要素132cは、サーバ構成要素132sにネットワーク170上で接続し、トンネル134は、マイクロVPNクライアント134cおよびマイクロVPNサーバ134sのアクションによって確立される。リンクボンディングクライアント140cとリンクボンディングサービス140sとは、次いで、トンネル134を通してメッセージ148を交換し得る。リンクボンディングクライアント140cは、経路180上でネットワーク性能を測定するための基礎としてメッセージ148を使用する。たとえば、センサー144が、たとえばラウンドトリップ遅延(ピングユーティリティ(ping utility)を使用)としてのネットワーク速度、帯域幅などを測定する。一例では、センサー144は、経路180の各々上でネットワーク速度または帯域幅を別々に測定し、ネットワーク速度または帯域幅の測定を、ほぼ連続的に、または、50ms(ミリ秒)ごとに1回などの一定の間隔で、繰り返し得る。メッセージ148は、リンクボンディングクライアント140cとリンクボンディングサーバ140sとを直接接続する点線として示されているが、そのようなメッセージは、実際には、たとえば、クライアント側およびサーバ側ドライバ160を介して、および各経路180のための任意のサポートインフラストラクチャ(たとえば、セルフォンタワー、ルータ、インターネットサービスプロバイダなど)を通して、ネットワーク170を通過する。このようにして、センサー144は、各経路180のリアルタイム測定値を取得する。いくつかの例では、センサー144は、選択された経路144a、すなわち、最高の速度、帯域幅、一貫性、経済性などを提供する、経路180のうちの1つを識別し、選択された経路144aを識別する、選択された経路144aの識別情報を、たとえば、ネットワーク170上で送られるインジケータ中で、サーバ120上のリンクボンディングサービス140sにアラートする。
【0039】
ユーザ102がGUI118を動作させてアプリケーション132を制御するとき、クライアント110は、実質的に同じ時間に、および並行して、すべての経路180上でアプリケーションデータ162をネットワーク170に送る。たとえば、リンクボンディングクライアント140cは、発信アプリケーションデータ162をTCP/IPドライバ150cに渡す。TCP/IPドライバ150cは、マルチパスルーティングを使用して、アプリケーションデータを、イーサネットドライバ160aとWi-Fiドライバ160bとセルラーデータドライバ160cとにフォワーディングする。クライアントデバイス110は、次いで、イーサネットポートとWi-Fiアンテナとセルフォンアンテナとを介してパケット162a、162b、および162cを送出する。パケット162a、162b、および162cはすべて、同じデータ162を伝達し、ネットワーク170を並行しておよび同時に通過するか、または概ねそのように行われ、これらの間の何らかの差が、経路180に沿った異なる遅延から派生する。一例では、すべての経路を通して送られるすべてのアプリケーションデータ162がトンネル134を通過する。
【0040】
サーバ120において、パケット162a、162b、および162cは、ドライバ160aに到着し、TCP/IPドライバ150sに渡り、次いでリンクボンディングサービス140sに渡る。リンクボンディングサービス140sは、クライアントデバイス110から送られたインジケータに基づいて、選択された経路144aの識別情報を取得しており、続いて、他の経路のすべて上で到着したすべてのパケットを廃棄する。たとえば、イーサネット経路180aが、選択された経路144aとして確立された場合、リンクボンディングサービス140sは、すべてのパケット162bおよび162cを廃棄し、パケット162aのみがサーバ構成要素132sに渡ることを可能にする。パケット162が異なるソースから発生し、サーバ120へ向かう途中で異なる経路180中を進むので、サーバ120がイーサネット接続のみを含む場合でも、サーバ120がすべての経路180を介してパケット162を受信することを諒解されたい。
【0041】
図1の下部に示されているように、すべてのパケットを表すものであるパケット164は、シーケンス識別子164aとペイロード164bとを含む。シーケンス識別子164aは各パケットに固有であるが、同じシーケンス識別子164aを有する同じパケットの複製が異なる経路180上で送られ得る。一例では、リンクボンディングサービス140sは、シーケンス識別子164aの整合に基づいて到着パケットを廃棄する。たとえば、リンクボンディングサービス140sは、すべての最近受信されたパケットのシーケンス識別子164aのリストを維持し、同じシーケンス識別子164aを有する冗長パケットを、すでにリスト上にあるものとして廃棄する。リンクボンディングサービス140sは、パケットを区別するための他の手法を使用し得る。たとえば、パケット中の特定のポート指定または他の指定子が、パケットが送信された経路180を識別し得る。そのような場合、リンクボンディングサービス140sは、そのポート指定または他の指定子が選択された経路144aのポート指定または他の指定子と整合しない、パケットを廃棄し得る。
【0042】
サーバ120がアプリケーションデータ162をクライアントデバイス110に送るとき、リンクボンディングサービス140sは、アプリケーションデータをTCP/IPドライバ150sに渡し、イーサネットドライバ160dを通してネットワーク170に渡す。サーバ120は、同じパケットが経路180のすべてを介して並行してクライアントデバイス110に到着するように、すべての経路180にダイレクトされるパケット中で同じアプリケーションデータを冗長的に送る。したがって、サーバ120はイーサネットのみを使用してネットワーク170に接続し得るにもかかわらず、サーバ120はすべての経路180を介してパケットを送る。
【0043】
クライアントデバイス110上のドライバ160a、160b、および160cは、パケット162を受信し、パケット162をTCP/IPドライバ150cに渡し、TCP/IPドライバ150cは、パケット162をリンクボンディングクライアント140cに渡す。リンクボンディングクライアント140c中のセレクタ142が、サーバ構成要素132sからのパケットのソースとして、選択された経路144aを割り当てる。セレクタは、選択された経路144aとして指定されていないすべての経路からのパケット162dを廃棄し、選択された経路144aからのパケットをクライアント構成要素132cに渡す。一例では、セレクタ142は、サーバに関して上記で説明された同じ技法を使用して、選択された経路144a上で到着したパケットを識別する。
【0044】
一例では、センサー144は、経路180上でネットワーク速度を連続的にまたは繰り返し監視する。別の経路が、たとえば、速度、経済性などに関して、現在の選択された経路144aよりも良く機能する場合、リンクボンディングクライアント140cは、より良く機能する経路を新しい選択された経路144aとして選択し、新しい選択された経路144aをリンクボンディングサービス140sに通信し得る。特定の例では、Wi-FiおよびLTE経路のみが利用可能である。その場合、リンクボンディングサービス140sは、デフォルトでWi-Fiを選択し得る。Wi-Fi速度が、指定されたしきい値146を下回る場合、リンクボンディングクライアント140cは、新しい選択された経路144aとしてLTEを選定し得る。いくつかの例では、リンクボンディングクライアント140cは、現在のWi-Fi速度が現在のLTE速度を下回るときにのみ、LTEに切り替える。Wi-Fi速度が後で回復した場合、リンクボンディングクライアント140cは、選択された経路144aをWi-Fiに再割り当てし得る。選択された経路144aの割当ては、これにより、どのパケットがクライアント構成要素132cに渡され、どのパケットが廃棄されるかが決定されるという点で、重要(consequential)である。また、これにより、サーバ120上のリンクボンディングサービス140sがどのパケットをサーバ構成要素132sに渡し、どのパケットを廃棄するかが決定され得る。一例では、しかしながら、選択された経路144aの割当ては、クライアント110またはサーバ120によって送信される発信データに影響を及ぼさず、なぜなら、現在の選択された経路144aにかかわらず、送信がすべての経路180上で並行して行われるからである。
【0045】
説明された構成の場合、クライアントデバイス110は、経路180の速度を監視し、所与の時間に、選択された経路144aを選択する。たとえば、ユーザ102がWi-Fiデッドスポットに移動したので、Wi-Fiが突然弱くなった場合、動作は、LTEに(または何らかの他の経路に)シームレスにおよび透過的に切り替わる。ユーザ102がアクティブWi-Fiエリアに戻ったとき、動作は、Wi-Fiにシームレスにおよび透過的に切り替わる。ユーザ102は、切替えが生じたことを決して知る必要はなく、一般に、サービスの中断を経験しない。
【0046】
いくつかの例では、クライアント110は、セルラーデータ接続を一時的に停止することによって、電力および/またはコストを節約し得る。たとえば、センサー144によって測定されるWi-Fi信号強度および/または速度が一貫して高い場合、クライアント110は、LTE接続を一時的に閉じ、Wi-Fiのみの通信を進め得る。しかしながら、センサー144による速度テストは続き得、Wi-Fi速度または信号強度が減衰し始めた場合、クライアント110はLTE接続を再確立し得る。好ましくは、クライアント110は、Wi-Fi信号の完全な喪失より前にWi-FiからLTEへの切替えがシームレスに進むことができるように、Wi-Fi信号が使用不可能になる前にLTEを介して再接続する。いくつかの例では、GUI118は、ユーザ102が不要な経路をオフにすることを可能にする制御を含む。たとえば、ユーザ102が、強いWi-Fi信号をもつエリア中にいて、セッションの進行中に移動するつもりがない場合、ユーザ102は、GUI118を動作させてLTEをオフにし、それにより、LTE処理に関連付けられた電力消費を低減し、場合によってはコストを低減し得、これは、使用される分(minutes)に基づき得る。
【0047】
選択された経路144aの選定が様々なファクタに基づき得ることを諒解されたい。これらは、たとえば、速度、帯域幅、ラウンドトリップ時間、ネットワーク強度の変動性、(たとえば、ドロップされたパケットの数に基づいて測定された)干渉、およびコストを含み得る。そのようなファクタは、組合せ論理、加重和、ファジー論理、機械学習、ニューラルネットなどを使用することなど、任意の好適なやり方で組み合わせられ得る。選択された経路144aは、多くの場合、最も速い経路であり得るが、これは必要とされない。たとえば、良好なユーザエクスペリエンスを提供するのに依然として十分速い、より遅い経路が、使用するのに安価であり、および/または他の利点を有する場合、選択された経路144aとして選定され得る。
【0048】
本出願の実施形態のメイン動作モードは、複数のネットワーク経路を同時にアクティブに保つためのものであるが、そのような実施形態は、常にこのように働くことを必要とされるとは限らない。たとえば、Wi-Fiなどのネットワーク経路が、一貫して強い信号を提供することがわかり、自由に使用することができる場合、選択された経路144aとしてWi-Fiが選定され得、他のネットワーク経路上の動作が停止され得る。同様に、高電力消費を必要とするネットワーク経路が、クライアントデバイス110のバッテリー寿命を温存するために一時的に停止され得る。センサー144が、選択された経路144aの性能の低下を検出した場合、停止された経路180は復活し得る。
【0049】
さらに、単一の選択された経路144aが説明されたが、いくつかの実施形態は、クライアントデバイス110へのダウンロードのためのある経路、およびサーバ120へのダウンロードのための別の経路など、複数の選択された経路を可能にする。したがって、クライアントデバイス110中のセレクタ142はクライアントデバイスのための選択された経路を選定し、サーバ120中の同様のセレクタ(図示せず)はサーバ120のための選択された経路を選定する。選択された経路がクライアントおよびサーバについて異なることを可能にすることは、アップロード対ダウンロード性能の差を反映し、これは、多くのタイプのネットワーク経路に共通である。これらの状況では、選択された経路を選定するための基礎として使用される測定値は、ラウンドトリップ遅延ではなく単方向遅延に基づき得る。いくつかの変形態によれば、別個のコンピュータまたは他の設備が、クライアントデバイス110および/またはサーバ120に代わってネットワーク速度または帯域幅を監視し得る。
【0050】
図2は、クライアントデバイス110上にアプリケーションプログラムをインストールするための例示的な構成を示す。ここで、サーバ120はダウンロード可能アプリケーションパッケージ210を記憶し、ダウンロード可能アプリケーションパッケージ210は、たとえば、圧縮されたアーカイブとして提供され得、クライアント構成要素132cと、マイクロVPNクライアント134cと、リンクボンディングクライアント140cとを実装するためのコードを含む。アプリケーションプログラム132をインストールするために、クライアントデバイス110は、たとえば、ウェブサイトを介してサーバ120に接触し、ネットワーク170上でアプリケーションパッケージ210をクライアントデバイス110にダウンロードする。クライアントデバイス110は、次いで、アプリケーションパッケージ210を開き、任意の圧縮されたコンテンツを解凍し、構成要素をインストールする。すべての3つの構成要素132c、134c、および140cは単一のパッケージ210中で一緒に提供されるので、クライアントデバイス110は、単一のダウンロードを介して、アプリケーションプログラム132の暗号化されたマルチパス動作をサポートするためのすべての必要な構成要素をインストールすることが可能である。
【0051】
図3は、品質属性に基づいてWi-FiおよびLTEなどの2つの接続経路間でシームレスにおよび透過的に切り替えるための例示的な方法300を示し、品質属性は、それ自体が、速度、帯域幅、ネットワーク一貫性、および/またはコスト、すなわち、選択された経路144aを選定するための上記で説明されたファクタのいずれかに基づき得る。方法300は2つの接続経路180に焦点を当てるが、方法300は、任意の数のそのような経路に拡張され得る。また、図示された行為は特定の順序で示されているが、この順序は変動し得、いくつかの行為は同時に実施され得る。
【0052】
310において、たとえば、ユーザ102がクライアント構成要素132cをローンチした結果として、アプリケーションクライアント132cとアプリケーションサーバ132sとの間に通信セッションが確立される。一例では、通信セッションは、マイクロVPNクライアント134cとマイクロVPNサーバ134sとの間に確立されたトンネル134を介して行われる。それぞれのネットワーク接続は各接続経路180を介して構成され、クライアント構成要素132cとサーバ構成要素132sとの間のすべての通信は、すべての経路180について、トンネル134を通過する。リンクボンディングクライアント140cは、現在選択されている経路144aを識別し、続いて、この選択された経路144aを介して到着したデータ(たとえば、パケット)をクライアント構成要素132cに渡す。したがって、リンクボンディングクライアント140cは、選択された経路144aを、すべての着信アプリケーションデータ162のための唯一のソースとして使用し、他の経路を介して到着したデータ162を廃棄する。一例では、センサー144が何らかのネットワーク測定を行う前に、リンクボンディングサービス140cは、最初の選択された経路144aとしてのWi-Fiにデフォルト設定され、Wi-Fi信号が検出されなかった場合のみ別の経路に切り替える。
【0053】
320において、リンクボンディングクライアント140c中のセンサー144は、たとえば、ピングコマンド(ping command)、帯域幅測定、および/または他の手法を使用することによって、すべての経路180上の接続を測定し、各接続経路180についての品質属性(QA:quality attribute)を生成する。いくつかの例では、品質属性は、それぞれの経路の速度のみに基づく。他の例では、品質属性は、たとえば、速度、帯域幅、コスト、および/または一貫性を含み得る、ファクタの任意の組合せに基づく。
【0054】
330において、リンクボンディングクライアント140cは、Wi-Fi経路(接続1)の品質属性がしきい値146(しきい値1)を下回ったかどうかを決定する。しきい値は、たとえば、あらかじめ決定されるかまたは動的に確立され得る。リンクボンディングクライアント140cは、Wi-Fiの品質属性がLTE(接続2)の品質属性よりも小さいかどうかをも決定し得る。リンクボンディングクライアント140cは、代替として、または任意の組合せで、これらの決定を適用し得る。
【0055】
Wi-Fiの品質属性がしきい値1を下回り、および/またはLTEの品質属性を下回った場合、動作は340に進み、その後、リンクボンディングクライアント140cは、続いて、LTEを介して到着したデータを処理し、Wi-Fiを介して到着したデータを廃棄する。リンクボンディングクライアント140cは、リンクボンディングサービス140sに送られる、属性のこの変化を通信し得、リンクボンディングサービス140sも、LTE経路を介した到着データを処理し、Wi-Fiを介して到着したデータを廃棄し得る。次いで、動作は320に戻り、その後、品質属性の生成と決定とが繰り返される。
【0056】
330において、Wi-Fiについての品質属性がしきい値1を下回らず、および/またはLTEの品質属性を下回らなかった場合、動作は代わりに350に進み、その後、リンクボンディングクライアント140cは、Wi-Fi経路(接続1)の品質属性が第2のしきい値(好ましくはしきい値1よりもわずかに高いしきい値2)を超え、および/またはLTEの品質属性を超えるかどうかを決定する。上記を超えない場合、動作は320に戻り、他の場合、動作は360に進み、その後、リンクボンディングクライアント140cは、続いて、Wi-Fiを介して到着したデータを処理し、LTEを介して到着したデータを廃棄する。前述のように、リンクボンディングクライアント140cは、リンクボンディングサーバ140sにこの変化を通信し得、リンクボンディングサーバ140sも、Wi-Fi経路を介して到着したデータを処理し、LTEを介して到着したデータを廃棄し得る。次いで、動作は320に戻り、上記で説明された行為が繰り返される。しきい値2は、たとえば、あらかじめ決定されるかまたは動的に確立され得る。
【0057】
動作は、アプリケーションプログラム132が稼働し続ける限り、無期限にこのようにして進み得る。しきい値2をしきい値1よりもわずかに高くすることについての論拠は、品質属性がしきい値1に近いとき、動作がソース間でチャタリングする(chatter)のを防ぐことである。これが問題にならない場合、しきい値2は、単にしきい値1に設定され得る(すなわち、両方について同じしきい値が使用され得る)。しきい値1としきい値2とが任意の好適なやり方で確立され得ることを諒解されたい。たとえば、しきい値1としきい値2とは、ユーザアクティビティおよび/またはアプリケーション132の性質に基づいて動的に確立され得る。たとえば、しきい値は、より低いレベルのネットワーク性能がユーザエクスペリエンスを損なわないように、アプリケーション132が比較的小さいデータを交換する場合、より低い値に設定され得る。逆に、しきい値は、より帯域幅集約なアプリケーションが稼働されている場合、より高い値に設定され得る。
【0058】
図4a~図4dは、アプリケーションプログラム132のクライアント構成要素132sによってレンダリングされるような、およびクライアントデバイス110のディスプレイ116上で閲覧されるような、GUI118の部分を表す様々なスクリーンショット118a~118dを示す。図示されたGUIのレイアウトを一般的なスマートフォンアプリのレイアウトとして認識するかもしれないが、GUI118a~118dは、スマートフォンアプリケーションに限定されない。たとえば、スクリーンショット118a~118dは、ラップトップコンピュータ上にまたは任意の他のコンピューティングデバイス上に表示され得る。ラップトップは、Wi-Fi接続を有し得、Bluetoothを介して、LTE接続を有するスマートフォンにテザリングされ得る(テザリングは、PAN- パーソナルエリアネットワークを介してデータを共有する、多くのスマートフォンの能力である)。
【0059】
図4aに示されているように、GUI118aは、現在アクティブな接続経路180のためのアイコン410を表示する。Wi-FiおよびBluetooth PANのためのアイコン410が詳細に図示されており、これは、クライアントデバイス110がWi-FiとLTEの両方を介してインターネットに接続されることを示す(LTE接続はBluetoothテザリング(Bluetooth-tethered)スマートフォンを介して達成される)。GUI118は、たとえば、リンクボンディングクライアント140c中のセンサー144によって測定される、両方の経路についてのネットワーク速度(メガビット毎秒単位)(Wi-Fiについての0.6MbpsおよびLTEについての0.1Mbps)を示す速度インジケータ420を表示する。
【0060】
図4b~図4dは、図4bでは、回復されたパケットについての統計値430(5.9MB、経路を切り替えることによって回復されたパケットの数)および守られた接続についての統計値430(2、接続喪失が経路を切り替えることによって回避された回数)を含む、追加情報を示す。図4cは、使用内訳440(各経路からどのくらいのデータが使用されたか)を示し、図4dは、レイテンシと喪失の両方に関して、接続品質450を示す。いくつかの実施形態では、図4a~図4dは、より大きいGUI118の部分を表す。
【0061】
図5は、全体的GUI118が上記で説明されたGUI部分118a~118dを含む、このような実施形態の一例を示す。たとえば、ユーザ102は、全体的GUI118上の矢印510をクリックすることによって、GUI部分118a~118dを呼び出し得る。全体的GUI118は、この例ではワークスペースフレームワークアプリケーションである、アプリケーションプログラム132のためのユーザインターフェースを提供する。ワークスペースフレームワークアプリケーションは、たとえば、ウェブブラウザまたは他のコンテナにおいて、SaaSアプリケーションとして稼働し、ユーザ102が、ユーザ102の登録されたサブアプリケーションのいずれかを選択し、稼働することを可能にする。登録されたサブアプリケーションはすべて、マイクロVPNクライアント134cおよびリンクボンディングクライアント140cを介してすべてが通信するように、アプリケーションプログラム132のコンテキスト内で稼働する。したがって、図示された構成は、複数の経路180を使用するマイクロVPN上でのSaaSアプリケーションの動作を一意にサポートし、複数の経路180は、デッドスポットの存在下でさえ、高品質接続を維持するために、シームレスに切り替えられる。
【0062】
図6図8は、環境100に関して行われ得る例示的な方法600、700、および800を示す。方法600は、たとえば、クライアントデバイス110のメモリ130c中に常駐し、プロセッサ114cのセットによって稼働される、図1に関して説明されたソフトウェア構成体によって実施され得る。方法700は、たとえば、サーバ120のメモリ130s中に常駐し、プロセッサ114sのセットによって稼働される、ソフトウェア構成体によって実施され得る。方法800は、クライアントデバイス110とサーバ120の両方中に常駐するソフトウェア構成体によって実施され得る。方法600、700、および800の様々な行為は、任意の好適なやり方で順序付けられ得る。したがって、図示された順序とは異なる順序で行為が実施される実施形態が構築され得、これは、いくつかの行為を同時に実施することを含み得る。
【0063】
図6では、方法600は、クライアントデバイス110によって実施され得る。行為610において、クライアントデバイス110は、単一のアプリケーション132のためにクライアントデバイス110とサーバ120との間で情報を伝達するように構成された暗号化されたチャネル134によって使用される複数のネットワーク経路180を監視する。
【0064】
620において、クライアントデバイス110は、複数のネットワーク経路180の各々を介してサーバ120から単一のアプリケーション132のデータ162を受信する。複数のネットワーク経路の各々から受信されたデータ162は、同じデータである。
【0065】
630において、クライアントデバイス110は、クライアントデバイス110上のクライアント構成要素132cのためのデータ162のソースとして、複数のネットワーク経路180のうちの第1のネットワーク経路144aを選択する。たとえば、リンクボンディングクライアント140c中のセレクタ142は、選択された経路144a上で到着したパケットを渡し、他の経路上で到着したパケットを廃棄する。
【0066】
640において、クライアントデバイス110は、第1のネットワーク経路のネットワーク連続性の低減によって引き起こされるデータの受信の遅延を防ぐように、複数のネットワーク経路180を監視することに少なくとも部分的に基づいて、クライアント構成要素132cのためのデータのソースを、第1のネットワーク経路から複数のネットワーク経路のうちの第2のネットワーク経路に調節する。
【0067】
次に図7を参照すると、方法700は、サーバ120によって実施され得る。710において、サーバ120は、単一のアプリケーション132のためにサーバ120とクライアントデバイス110との間に提供された暗号化されたチャネル134上で、クライアントデバイス100からアプリケーションデータを受信する。アプリケーションデータ162は、複数のネットワーク経路180を介して並行して受信され、複数のネットワーク経路はすべて、同じアプリケーションデータを伝達する。
【0068】
720において、サーバは、サーバ120上で稼働しているサーバ構成要素132sのためのアプリケーションデータ162のソースとして、複数のネットワーク経路180のうちの第1のネットワーク経路を割り当てる。
【0069】
730において、サーバ120は、サーバ構成要素132sのためのアプリケーションデータ162のソースを、第1のネットワーク経路から複数のネットワーク経路のうちの第2のネットワーク経路に調節する。調節することは、クライアントデバイス110から受信されたインジケータに少なくとも部分的に基づき、第1のネットワーク経路のネットワーク連続性の低減によって引き起こされるデータの受信の遅延を防ぐように働く。
【0070】
次に図8を参照すると、方法800は、クライアントデバイス110とサーバ120の両方によって実施され得る。810において、暗号化されたチャネル134が、クライアントデバイス110とサーバ120との間に確立される。暗号化されたチャネル134は、単一のアプリケーション132のための暗号化された通信を伝達するように構成される。暗号化されたチャネル134は、クライアントデバイス110の指示の下で、サーバ120の指示の下で、またはクライアントデバイス110とサーバ120との間の協調に基づいて、確立され得る。
【0071】
820において、クライアントデバイス110とサーバ120との間の暗号化されたチャネル134によって使用される複数のネットワーク経路180が監視される。たとえば、クライアント110、サーバ120、および/または何らかの別個のコンピュータもしくは設備が、複数のネットワーク経路180の各々に関係するネットワーク速度、帯域幅、および/または他のファクタを測定する。
【0072】
830において、サーバ120は、複数のネットワーク経路180の各々を介して、暗号化されたチャネル134上で、単一のアプリケーション132のアプリケーションデータ162のセットをクライアントデバイス110に送信する。複数のネットワーク経路180の各々は、アプリケーションデータ162の同じセットを伝達する。クライアントデバイス110が、データを送る側であるとき、クライアントデバイス110は、複数のネットワーク経路180の各々を介して、暗号化されたチャネル134上で、単一のアプリケーション132のアプリケーションデータ162のセットをサーバ120に送信し、複数のネットワーク経路180の各々がアプリケーションデータ162の同じセットを伝達する。
【0073】
840において、クライアントデバイス110は、クライアントデバイス110上で稼働しているクライアント構成要素132cのためのアプリケーションデータ162のソースとして、複数のネットワーク経路180のうちの第1のネットワーク経路を選択する。サーバ120が、データを受信する側であるとき、サーバ120は、サーバ120上で稼働しているサーバ構成要素132sのためのアプリケーションデータ162のソースとして、複数のネットワーク経路180のうちの第1のネットワーク経路を選択する。
【0074】
840において、クライアントデバイス110は、第1の経路のネットワーク連続性の低減によって引き起こされる、クライアントデバイスとサーバとの間でデータを通信することの遅延を防ぐように、複数のネットワーク経路を監視することに少なくとも部分的に基づいて、データのソースを、第1のネットワーク経路から複数のネットワーク経路のうちの第2のネットワーク経路に調節する。サーバ120がデータを受信しているとき、サーバ120は、第1の経路のネットワーク連続性の低減によって引き起こされる、サーバとクライアントデバイスとの間でデータを通信することの遅延を防ぐように、複数のネットワーク経路を監視することに少なくとも部分的に基づいて、データのソースを、第1のネットワーク経路から複数のネットワーク経路のうちの第2のネットワーク経路に調節する。
【0075】
次に図9を参照すると、本開示の様々な態様が実装され得る非限定的なネットワーク環境901が、コンピューティング環境901内に設置される、1つまたは複数のクライアントマシン902A~902Nと、1つまたは複数のリモートマシン906A~906Nと、1つまたは複数のネットワーク904、904’と、1つまたは複数の器具908とを含む。クライアントマシン902A~902Nは、ネットワーク904、904’を介してリモートマシン906A~906Nと通信する。
【0076】
いくつかの実施形態では、(クライアントデバイス110と同様であり得る)クライアントマシン902A~902Nは、中間器具908を介して(サーバ120と同様であり得る)リモートマシン906A~906Nと通信する。示されている器具908は、ネットワーク904とネットワーク904’との間に配置され、ネットワークインターフェースまたはゲートウェイと呼ばれることもある。いくつかの実施形態では、器具908はアプリケーション配信コントローラ(ADC)として動作して、データセンターもしくはクラウドにおいて展開されるか、または様々なクライアントデバイスにわたってサービスとしてのソフトウェア(SaaS)として配信される、ビジネスアプリケーションおよび他のデータへのアクセスをクライアントに提供し、ならびに/あるいは、負荷分散などの他の機能を提供し得る。いくつかの実施形態では、複数の器具908が使用され得、(1つまたは複数の)器具908は、ネットワーク904および/または904’の一部として展開され得る。
【0077】
クライアントマシン902A~902Nは、一般に、クライアントマシン902、ローカルマシン902、クライアント902、クライアントノード902、クライアントコンピュータ902、クライアントデバイス902、コンピューティングデバイス902、エンドポイント902、またはエンドポイントノード902と呼ばれることがある。リモートマシン906A~906Nは、一般に、サーバ906またはサーバファーム906と呼ばれることがある。いくつかの実施形態では、クライアントデバイス902は、サーバ906によって提供されるリソースへのアクセスを求めるクライアントノードと、他のクライアントデバイス902A~902Nのためのホストされたリソースへのアクセスを提供するサーバ906との両方として機能する能力を有し得る。ネットワーク904、904’は、一般に、ネットワーク904と呼ばれることがある。ネットワーク904は、ワイヤードネットワークとワイヤレスネットワークとの任意の組合せで構成され得る。
【0078】
サーバ906は、たとえば、ファイルサーバ、アプリケーションサーバ、ウェブサーバ、プロキシサーバ、器具、ネットワーク器具、ゲートウェイ、アプリケーションゲートウェイ、ゲートウェイサーバ、仮想化サーバ、展開サーバ、セキュアソケットレイヤ仮想プライベートネットワーク(SSL VPN)サーバ、ファイアウォール、ウェブサーバ、アクティブディレクトリを実行するサーバ、クラウドサーバ、または、ファイアウォール機能、アプリケーション機能、もしくは負荷分散機能を提供するアプリケーション加速プログラムを実行するサーバなど、任意のサーバタイプであり得る。
【0079】
サーバ906は、ソフトウェア、プログラム、実行可能な命令、仮想マシン、ハイパーバイザ、ウェブブラウザ、ウェブベースクライアント、クライアントサーバアプリケーション、シンクライアントコンピューティングクライアント、ActiveXコントロール、Java(登録商標)アプレット、ソフトIP電話のようなボイスオーバーインターネットプロトコル(VoIP)通信に関係するソフトウェア、ビデオおよび/もしくはオーディオをストリーミングするためのアプリケーション、リアルタイムデータ通信を容易にするためのアプリケーション、HTTPクライアント、FTPクライアント、Oscarクライアント、Telnetクライアント、または実行可能な命令の任意の他のセットのうちのいずれか1つであり得るアプリケーションを実行するか、動作させるか、またはさもなければ提供し得る。
【0080】
いくつかの実施形態では、サーバ906は、シンクライアントまたはリモートディスプレイプロトコルを使用して、サーバ906上で実行しているアプリケーションによって作り出されたディスプレイ出力をキャプチャし、アプリケーションディスプレイ出力をクライアントデバイス902に送信する、リモートプレゼンテーションサービスプログラムまたは他のプログラムを実行し得る。
【0081】
また他の実施形態では、サーバ906は、クライアントデバイス902のユーザにコンピューティング環境へのアクセスを提供する仮想マシンを実行し得る。クライアントデバイス902は仮想マシンであり得る。仮想マシンは、たとえば、ハイパーバイザ、仮想マシンマネージャ(VMM)、またはサーバ906内の任意の他のハードウェア仮想化技術によって管理され得る。
【0082】
いくつかの実施形態では、ネットワーク904は、ローカルエリアネットワーク(LAN)、メトロポリタンエリアネットワーク(MAN)、ワイドエリアネットワーク(WAN)、1次パブリックネットワーク904、および1次プライベートネットワーク904であり得る。追加の実施形態は、様々なプロトコルを使用してモバイルデバイスの間で通信する携帯電話網のネットワーク904を含み得る。ワイヤレスローカルエリアネットワーク(WLAN)内の短距離通信の場合、プロトコルは、802.11、Bluetooth、およびニアフィールド通信(NFC)を含み得る。
【0083】
図10は、クライアントデバイス902、器具908および/またはサーバ906の一実施形態を実践するために有用なコンピューティングデバイス900のブロック図を示す。コンピューティングデバイス900は、1つまたは複数のプロセッサ903と、揮発性メモリ922(たとえば、ランダムアクセスメモリ(RAM))と、不揮発性メモリ928と、ユーザインターフェース(UI)923と、1つまたは複数の通信インターフェース918と、通信バス950とを備える。
【0084】
不揮発性メモリ928は、1つまたは複数のハードディスクドライブ(HDD)または他の磁気もしくは光記憶媒体、フラッシュドライブもしくは他のソリッドステート記憶媒体などの1つまたは複数のソリッドステートドライブ(SSD)、1つまたは複数のハイブリッド磁気およびソリッドステートドライブ、ならびに/あるいは、クラウドストレージなどの1つまたは複数の仮想ストレージボリューム、あるいはそのような物理ストレージボリュームおよび仮想ストレージボリュームの組合せ、あるいはこれらのアレイを含み得る。
【0085】
ユーザインターフェース923は、グラフィカルユーザインターフェース(GUI)924(たとえば、タッチスクリーン、ディスプレイなど)と、1つまたは複数の入出力(I/O)デバイス926(たとえば、マウス、キーボード、マイクロフォン、1つまたは複数のスピーカー、1つまたは複数のカメラ、1つまたは複数の生体スキャナ、1つまたは複数の環境センサー、および1つまたは複数の加速度計など)とを備え得る。
【0086】
不揮発性メモリ928は、たとえば、オペレーティングシステム915および/またはアプリケーション916のコンピュータ命令が揮発性メモリ922の中から(1つまたは複数の)プロセッサ903によって実行されるように、オペレーティングシステム915と、1つまたは複数のアプリケーション916と、データ917とを記憶する。いくつかの実施形態では、揮発性メモリ922は、メインメモリよりも速い応答時間を与え得る1つまたは複数のタイプのRAMおよび/またはキャッシュメモリを含み得る。データは、GUI924の入力デバイスを使用して入力されるか、または(1つまたは複数の)I/Oデバイス926から受信され得る。コンピュータ900の様々な要素は、通信バス950を介して通信し得る。
【0087】
示されているコンピューティングデバイス900は、例示的なクライアントデバイスまたはサーバとして示されているにすぎず、本明細書で説明されるように動作することが可能な好適なハードウェアおよび/またはソフトウェアを有し得る任意のタイプのマシンまたはマシンのセットをもつ任意のコンピューティングまたは処理環境によって実装され得る。
【0088】
(1つまたは複数の)プロセッサ903は、システムの機能を実施するために、コンピュータプログラムなどの1つまたは複数の実行可能な命令を実行するために1つまたは複数のプログラマブルプロセッサによって実装され得る。本明細書で使用される「プロセッサ」という用語は、機能、動作、または動作のシーケンスを実施する回路を表す。機能、動作、または動作のシーケンスは、回路にハードコーディングされるか、または、メモリデバイス中に保持され、回路によって実行される命令としてソフトコーディングされ得る。プロセッサは、デジタル値を使用しておよび/またはアナログ信号を使用して、機能、動作、または動作のシーケンスを実施し得る。
【0089】
いくつかの実施形態では、プロセッサは、関連メモリとともに、1つまたは複数の特定用途向け集積回路(ASIC)、マイクロプロセッサ、デジタル信号プロセッサ(DSP)、グラフィックス処理ユニット(GPU)、マイクロコントローラ、フィールドプログラマブルゲートアレイ(FPGA)、プログラマブル論理アレイ(PLA)、マルチコアプロセッサ、または汎用コンピュータにおいて具現され得る。
【0090】
プロセッサ903は、アナログ、デジタルまたは混合信号であり得る。いくつかの実施形態では、プロセッサ903は、1つまたは複数の物理プロセッサ、または1つまたは複数の仮想(たとえば、遠隔に位置するまたはクラウド)プロセッサであり得る。複数のプロセッサコアを含むプロセッサおよび/または複数のプロセッサが、命令の並列同時実行のための、または2つ以上のデータに対する1つの命令の並列同時実行のための、機能を提供し得る。
【0091】
通信インターフェース918は、コンピューティングデバイス100が、セルラー接続を含む様々なワイヤードおよび/またはワイヤレス接続を通して、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、パーソナルエリアネットワーク(PAN)、またはインターネットなどのコンピュータネットワークにアクセスすることを可能にするための、1つまたは複数のインターフェースを含み得る。
【0092】
説明される実施形態では、コンピューティングデバイス900は、クライアントデバイスのユーザに代わってアプリケーションを実行し得る。たとえば、コンピューティングデバイス900は、ハイパーバイザによって管理される1つまたは複数の仮想マシンを実行し得る。各仮想マシンは、ホストされたデスクトップセッションなど、アプリケーションがユーザまたはクライアントデバイスに代わって実行する実行セッションを提供し得る。コンピューティングデバイス900は、ホストされたデスクトップ環境を提供するための端末サービスセッションをも実行し得る。コンピューティングデバイス900は、1つまたは複数のアプリケーションと、1つまたは複数のデスクトップアプリケーションと、1つまたは複数のアプリケーションが実行し得る1つまたは複数のデスクトップセッションとを含む、リモートコンピューティング環境へのアクセスを提供し得る。
【0093】
ネットワーク170上での通信を管理するための技法が説明された。この技法は、複数のネットワーク経路180を同時に維持し、すべてのネットワーク経路180を通して同じデータ162を冗長的に交換し、受信機(たとえば、セレクタ142)がネットワーク経路180のうちの1つをデータのソースとして選択することを可能にする。Wi-Fiなど、第1の、現在選択されているネットワーク経路が弱くなった場合、受信機142は、データのソースをLTEなどの第2のネットワーク経路に自動的におよびシームレスに切り替えるが、第1のネットワーク経路は動作可能のままである。第2の(LTE)ネットワーク経路がすでにオンであり、すでにデータを伝達しているとすれば、遷移はほぼ瞬時である。非一貫性ネットワークをもつ環境中で稼働している高度対話型アプリケーションでさえ、概してダウンタイムなしで完全に機能的なままであり得るので、ユーザエクスペリエンスは大幅に改善される。それにより、信頼性およびユーザエクスペリエンスが向上する。
セクションII:結合されたデバイスを介した、セキュアなリソースへの認証
【0094】
第1のデバイスによって認証を実施するための技法は、ネットワーク接続を第1のデバイスと共有する第2のデバイスから受信されたセキュリティデータに少なくとも部分的に基づいて認証強度および/または利便性を増加させる。このセクションにおいて説明される技法は、セクションIの環境において、たとえば、デバイスが複数の同時ネットワーク接続を維持し、これらの間でシームレスに切り替える構成において、提供され得る。ただし、このセクションにおいて提示される技法はセクションIにおいて提示された技法から独立して使用され得るので、セクションI構成は必要とされない。
【0095】
図11は、開示される技法の実施形態が実践され得る例示的なシステム1100を示す。ここで、第1の(クライアント)デバイス110と、第2の(結合)デバイス1110と、サーバ120とが、ネットワーク170に動作可能に接続する。第1のデバイス110とサーバ120とネットワーク170とは、図1に関して説明されたものと同様であり得るが、これは必要とされない。また、第1のデバイス110と第2のデバイス1110とは、同じ個人またはエンティティによって所有および動作され得るが、これも必要とされない。
【0096】
第1のデバイス110は第1のネットワーク経路180-1を介してネットワーク170に接続し、第2のデバイス1110は第2のネットワーク経路180-2を介してネットワーク170に接続する。たとえば、第1のネットワーク経路180-1はWi-Fi(IEEE802.11X)であり得、第2のネットワーク経路180-2は、LTE(ロングタームエボリューション)、GSM(モバイル用グローバルシステム)、CDMA(符号分割多元接続)、またはWiMAXなど、セルラーデータであり得る。また、第2のネットワーク経路180-2は、5G、あるいは何らかの他の開発中のまたは将来のセルラー方式であり得る。第1のデバイス110は、ラップトップ、タブレット、または他のコンピュータであり得、第2のデバイス1110は、スマートフォン、タブレット、ドングル、パーソナルリーダー、またはセルラーデータインターフェースを有する他のデバイスであり得る。デバイス110および1110は、両方とも、ネットワーク170への単一の経路180-1または180-2を有するものとして示されているが、各デバイスがネットワーク170への複数の経路を有し得ることを諒解されたい。たとえば、第1のデバイス110は、Wi-Fiに加えてイーサネットおよび/またはセルラーインターフェースを有し得、第2のデバイス1110は、セルラーに加えてイーサネットおよび/またはWi-Fiインターフェースを有し得る。ネットワーク170は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、イントラネット、インターネット、および/あるいは何らかの他のタイプのネットワークまたはネットワークの組合せとして提供され得る。特定の例では、ネットワーク170はインターネットを含み、サーバ120は、SaaS(サービスとしてのソフトウェア)アプリケーションおよび/またはファイルストレージなど、クラウドベースサービスおよび/または仮想サービスのプロバイダである。一例では、第1のデバイス110と第2のデバイス1110とは、両方とも、サーバ120に登録される。たとえば、これらのデバイスは、サーバ120に対してそれぞれのデバイスを一意に識別するコードまたは他のデータ要素を有する。
【0097】
示されている様式では、第1のデバイス110は、たとえば第1のデバイス110と第2のデバイス1110とをテザリングするかまたはさもなければ通信可能に結合することによって、第2のデバイス1110を介して第2のネットワーク経路180-2にアクセスするように構成される。「テザリング」は、モバイルデバイスのネットワーク接続を他のコンピュータと共有することを表す。第2のデバイス1110に通信可能に結合することによって、第1のデバイス110は、ネットワーク170への、したがってサーバ120への複数の同時接続経路を維持することが可能である。接続経路180-1が弱くなった場合、クライアントデバイス110は、ほとんどまたはまったく中断せずに、接続経路180-2にシームレスにおよび透過的に切り替え得、またはその逆も同様である。第2のデバイス1110による第1のデバイス110の結合は、Bluetooth、Wi-Fi、USB(ユニバーサルシリアルバス)、あるいは何らかの他のプロトコルまたはタイプのケーブルなど、接続媒体1112上で達成され得る。
【0098】
例示的な動作では、ユーザ102は、第2のデバイス1110のネットワーク経路180-2を第1のデバイス110と共有(たとえば、テザリング)するように第2のデバイス1110を構成する。たとえば、第2のデバイス1110がApple iOS(登録商標)を稼働する場合、ユーザ102は、第2のデバイス1110上で設定に入り、セルラー設定を選択し、パーソナルホットスポットをセットアップするための制御を動作させ得る。第2のデバイス1110は、次いで、Wi-Fi、Bluetooth、またはUSBを使用して第1のコンピュータ110に接続するための選択肢をユーザに与え得る。同様のプロシージャが、Android(登録商標) OS、Chrome OS(登録商標)、Windows Phone(登録商標)、および他のモバイルオペレーティングシステムを稼働しているデバイス上で利用可能である。
【0099】
第2のデバイス1110が第2のネットワーク経路180-2を共有するように構成された場合、第1のデバイス110は、第2のネットワーク経路180-2を発見し、第2のネットワーク経路180-2に接続し、その結果、第1のデバイス110は、第1のネットワーク経路180-1と第2のネットワーク経路180-2の両方を介してネットワーク170にアクセスすることができる。
【0100】
いくつかの例では、第2のネットワーク経路180-2を発見すると、第1のデバイス110は、第2のデバイス1110とのハンドシェイキングプロトコルを始動して、第2のデバイス1110上のセキュリティエージェント1118からセキュリティデータ1114を取得する。セキュリティデータ1114は、セキュリティトークン、第2のデバイス1110を識別する情報、または任意の他の形態など、様々な形態をとり得る。たとえば、最初のハンドシェイキング中に、第1のデバイス110は、セキュリティデータ1114を取得し、セキュリティデータ1114を将来の使用のために利用可能に保つ。ハンドシェイキングは、有利には、第2のネットワーク経路180-2を発見すると実施されるが、ハンドシェイキングは、ユーザ102による至急の要求に応答してなど、任意の時間に実施され得るので、これは一例にすぎない。
【0101】
ある時点において、ユーザ102は、セキュアにされたSaaSアプリケーション、セキュアなファイル、または認証を必要とするサーバ120上の何らかの他のリソースなど、サーバ120上のセキュアなリソース1140にアクセスするように、第1のデバイス110を動作させることを望み得る。セキュアなリソース1140はユーザ102によってのみアクセス可能であり得るか、または、セキュアなリソース1140は、たとえばそれぞれの許可設定に基づいて、複数の認証されたユーザにとってアクセス可能であり得る。リソースにアクセスするために、ユーザ102は、第1のデバイス110上のブラウザまたはクライアント側アプリケーションを開始し得る。ブラウザまたはクライアント側アプリケーションは、パスワード、トークン、生体入力など、認証ファクタをユーザ102に要求する、認証ページを表示する。ユーザは、認証ページに記入し、認証ページをサーバ120にサブミットする。
【0102】
本出願の特定の改善によれば、第2のデバイス1110から受信されたセキュリティデータ1114は、セキュアなリソース1140にアクセスするときの認証強度および/または利便性を改善するための基礎を提供する。たとえば、セキュリティデータ1114は、第2のデバイス1110の登録コード(たとえば、セキュリティエージェント1118によってサーバ120から前に取得されたもの)など、第2のデバイス1110に関する識別情報を含み得る。受信されたセキュリティデータに基づいて、第1のデバイス110上で稼働している認証エージェント1116が、インジケータ1114aを作り出し、インジケータ1114aを認証要求1150の一部として提供し、認証要求1150は、たとえば、パスワード、生体入力など、1つまたは複数の他の認証ファクタ1117とともに、サーバ120にサブミットされ得る。インジケータ1114aは、セキュリティデータ1114と同じであり得るか、またはさもなければセキュリティデータ1114に基づき得る。いくつかの例では、インジケータ1114aは非表示にされ、その結果、ユーザ102は、インジケータ1114aを決して見ないか、または扱わない。むしろ、インジケータ1114aは、たとえば、非表示にされた認証ファクタとして、認証要求1150に自動的に含まれ得る。
【0103】
第1のデバイス110が認証要求1150をサーバ120にサブミットしたとき、認証サーバ1130が、要求1150を受信し、受信された情報を検査することを試みる。たとえば、認証サーバ1130は、提供された認証ファクタ1114aおよび1117を、これらのファクタについての予想される値と比較する認証動作を実施して、認証結果1160を生成する。結果1160は、実際の値と予想される値とが整合した場合は成功であり、これらの値が整合しない場合は不成功である。認証動作の一部として、認証サーバ1130は、インジケータ1114aを、インジケータ1114aの予想される値と比較し、認証結果1160を、インジケータ1114aがインジケータ1114aの予想される値と整合するかどうかに少なくとも部分的に基づかせる。認証が成功した場合、認証サーバ1130は、第1のデバイス110がセキュアなリソース1140にアクセスすることを可能にし得る。他の場合、認証サーバ1130は、そのようなアクセスを拒否するか、または、追加の認証ファクタを供給するようにユーザ102に要求し得る。
【0104】
認証サーバ1130はサーバ120の一部であると見なされるが、認証サーバ1130が同じ物理コンピュータ上に位置する必要はない。むしろ、セクションIの場合のように、サーバ120は、本明細書ではまとめて「サーバ」と呼ばれる任意の数の物理コンピュータおよび/または仮想マシンを使用して実装され得る。
【0105】
いくつかの例では、セキュリティエージェント1118は、セキュリティデータ1114またはセキュリティデータ1114の一部分をトークンコードとして作り出し、トークンコードは、認証要求1150のための追加の認証ファクタを提供する。たとえば、第2のデバイス1110上のセキュリティエージェント1118は、Symantec VIPなど、サードパーティトークンプロバイダ1120aと同期され得る。セキュリティエージェント1118とトークンプロバイダ1120aとは、各々、共通シードからトークンコードを作り出し得、その結果、両方が同じ時間に同じトークンコードを作り出すことが可能である。認証サーバ130は、認証要求1150中で受信されたトークンコードを、サードパーティトークンプロバイダ1120aから現在のコードを取得し、受信されたコードを現在のコードと比較することによって、検査し得る。いくつかの例では、認証サーバ130自体がローカルトークンプロバイダ1120bを稼働し、ローカルトークンプロバイダ1120bは、サードパーティトークンプロバイダ1120aと同様の役割を実施するが、サーバ120上でローカルに稼働する。
【0106】
説明される様式では、第1のデバイス110は、セキュアなリソース1140への認証を支援するために第1のデバイス110が結合された第2のデバイス1110を活用する。したがって、第2のデバイス1110は、信頼性を向上させるために第2のデバイス1110のネットワーク経路180-2を共有するだけでなく、第2のデバイス1110はまた、認証を向上させるためにセキュリティデータ1114を供給する。
【0107】
図12は、第1のデバイス110に通信可能に結合された第2のデバイス1110のプレゼンスが認証要求1150のための認証ファクタとして働く例示的な構成1200を示す。示されているアクティビティは、第1のデバイス110と、第2のデバイス1110と、認証サーバ1130と、セキュアなリソース1140とに関与し得る。
【0108】
1210において、第1のデバイス110は、第2のデバイス1110に通信可能に結合されると、第2のネットワーク経路180-2を発見する。たとえば、ユーザ102は、第2のデバイス1110をパーソナルホットスポットとして構成し、たとえば、Wi-Fi、Bluetooth、またはUSBを介して、第1のデバイス110と第2のデバイス1110との間の接続を確立する。第1のデバイス110は、第2のネットワーク経路180-2を発見し、第2の経路を通してネットワーク170への接続を確立する。
【0109】
1220において、第1のデバイス110は、第2のデバイス1110からセキュリティデータ1114を受信する。この例では、セキュリティデータ1114は、第2のデバイス1110の識別子、たとえば、他のデバイスの中から第2のデバイス1110を一意に識別するために作成されるかまたは割り振られる登録コードまたは他の共有秘密を含み得る。たとえば、サーバ120は、第2のデバイス1110をサーバ120に登録するための登録プロセスの一部として、特に第2のデバイス1110のための、登録コードを前に作成していることがある。登録コードは、第2のデバイス110を知られているデバイスとして識別し、サーバ120は、第2のデバイス110に、ある信用レベルを与え得る。
【0110】
1230において、第1のデバイス110は、セキュリティデータ1114からインジケータ1114aを作り出す。インジケータ1114aは、セキュリティデータ1114と同一であり得るか、または、さもなければ、セキュリティデータ1114に基づき得る。たとえば、インジケータ1114aは、登録コードの暗号化されたバージョンとして、または登録コード上のアルゴリズムを稼働した結果として、提供され得る。いくつかの例では、インジケータ1114aは、第1のデバイス110が現在第2のデバイス1110にテザリングされているかまたはさもなければ通信可能に結合されていることを指定するコードなど、追加情報を含む。
【0111】
1240において、第1のデバイスは、認証要求1150を認証サーバ1130に送る。認証要求1150はインジケータ1114aを含み、インジケータ1114aは、非表示にされた認証ファクタとして提供され得る。いくつかの例では、認証要求1150は、パスワード、サムプリントなど、1つまたは複数の追加の認証ファクタ1117をも含む。第1のデバイス110は、これらの追加の認証ファクタ1117を認証要求1150に追加し得る。
【0112】
1250において、認証サーバ1130は、認証要求1150を受信し、認証動作1252を実施する。一例では、認証動作1252は、受信された認証ファクタ(または受信された認証ファクタの何らかのサブセット)を検証し、成功の結果または不成功の結果を生成する。成功の結果を作り出したことに応答して、認証動作1252は、パスコード1254を作り出し得、パスコード1254は、セキュアなリソース1140をロック解除するための鍵として働く。認証要求1150が一般に複数の認証ファクタ(たとえば、1114aおよび1117)を指定し、複数の認証ファクタのうち、サブセット1114aのみが、通常、第2のデバイス1110によって提供されることを諒解されたい。したがって、悪意のあるユーザは認証が成功するために必要とされる他のファクタ1117を入力することができないので、悪意のあるユーザは、通常、許可されたユーザのフォン(または他のデバイス)を盗み、ログオンすることを試みることによって、成功裡に認証することができない。
【0113】
1260において、認証サーバ1130は、たとえば認証応答1160の一部として、パスコード1254を第1のデバイス110に返す。
【0114】
1270において、第1のデバイス110は、パスコード1254を使用して、セキュアなリソース1140にアクセスする、たとえば、セキュアなSaaSアプリケーションを稼働するかまたはセキュアなファイルにアクセスする。
【0115】
したがって、構成1200は、第1のデバイス110によって行われる認証要求1150の認証強度および/または利便性を改善するために、第2のデバイス1110の、前に確立された知識を活用する。いくつかの状況では、インジケータ1114aは、複数の無音認証ファクタのうちの1つであり得るか、または、認証の成功を生成するために単独で使用され得、その結果、ユーザ102は認証ファクタを手動で入力する必要がない。そのような場合、ユーザ102は、認証の目的で他に何もする必要なしに、単に、セキュアなリソース1140へのアクセスを要求することによって、セキュアなリソース1140にアクセスし得る。
【0116】
図13は、第2のデバイス1110が、追加の認証ファクタを提供するためのセキュリティトークンを第1のデバイス110に自動的に提供する、例示的な構成1300を示す。図12の場合のように、示されている構成は、第1のデバイス110と、第2のデバイス1110と、認証サーバ1130と、セキュアなリソース1140とに関与し得る。
【0117】
図13中のフローは、図12の場合と同様に、1210において開始し得、第1のデバイス110が、第2のデバイス1110に通信可能に結合されると、第2のネットワーク経路180-2を発見する。
【0118】
しかしながら、動作は、1310において、第1のデバイス110が第2のデバイス1110にセキュリティデータ1114を要求するという点で、図12の動作とは異なる。要求は、ユーザ102の指示で発行され得るか、または自動的に発行され得る。1320において、1310における要求に応答して、第2のデバイス1110は、たとえばセキュリティエージェント1118の動作によって、新しいセキュリティトークン1322を作り出す。新しいセキュリティトークン1322は、トークンプロバイダ1120aもしくは1120bに知られているかまたはトークンプロバイダによって計算され得る、ワンタイムパスワードまたは他のタイプのトークンであり得る。1220において、第2のデバイス1110は、新しいトークン1322を第1のデバイス110に返す。
【0119】
その後のアクティビティは図12に示されているものと同様であり得、同様の参照番号が同様の行為を示す。しかしながら、ここで、認証動作1252は、さらに、セキュリティトークン1322を検証するためにトークンプロバイダ1120aまたは1120bに接触することを伴い得る。
【0120】
したがって、図13の構成は、ユーザ102が第2のデバイス1110から第1のデバイス110にトークンコード1322を手動で転送することを必要とすることなしに、トークンコード1322が第1のデバイス110に自動的に伝達されることを可能にする。したがって、トークンコード1322は、ユーザ102の側の追加の手動アクティビティを必要とすることなしに、追加の認証ファクタを提供することができる。図12の場合のように、認証プロセスはユーザ関与なしに自動的に実施され得るので、認証プロセス全体がユーザ102にとって透過的にされ得る。
【0121】
図12のアクティビティおよび図13のアクティビティは代替形態として示されているが、これらは代替的に、一緒に使用され得る。たとえば、セキュリティデータ1114を受信する行為1220は、図13の場合のようなトークンコード1322と、図12の場合のような第2のデバイス1110の登録コードまたは他の共有秘密との両方を返し得る。その場合、両方の要素がインジケータ1114a中に含まれ得、インジケータ1114aは、認証要求1150の一部としてサーバ120に送られ得る。したがって、開示される構成は、自動的に2つの認証ファクタ、たとえば、知られている第2のデバイス1110のためのある認証ファクタおよびトークンコード1322のための別の認証ファクタを、シームレスに提供する。
【0122】
図14および図15は、環境1100に関して行われ得る例示的な方法1400および1500を示す。方法1400および1500は、それぞれ、クライアントの観点およびサーバの観点から提示される。
【0123】
図14では、動作は1410において始まり、第1のデバイス110が第2のデバイス1110からセキュリティデータ1114を受信する。第2のデバイス1110は、第1のデバイス110と共有される、セルラーデータ経路など、ネットワーク経路180-2を有する。第1のデバイス110は、Wi-Fiなど、第1のデバイス110自体のネットワーク経路180-1を有し得る。セキュリティデータ1114は、登録コードまたは他の共有秘密など、第2のデバイス1110に関する識別情報を含み得、および/あるいは、ワンタイムパスワードなど、トークンコード1322を含み得る。
【0124】
1420において、第1のデバイス110は、セキュリティデータ1114に基づくインジケータ1114aを使用して、セキュアなリソース1140にアクセスするための要求をサーバ120に送る。たとえば、セキュアなリソース1140は、セキュアなSaaSアプリケーション、セキュアなファイル、または何らかの他のリソースである。インジケータ1114aは、受信されたセキュリティデータ1114と同一であり得るか、または、インジケータ1114aは、そのようなセキュリティデータ1114に基づき得る。要求は、追加の認証ファクタ1117をも含み得る。
【0125】
1430において、第1のデバイス110は、識別子1114aに少なくとも部分的に基づく認証の成功に応答して、セキュアなリソース1140にアクセスする。たとえば、認証の成功は、第2のデバイス1110が第1のデバイス110に結合され、サーバ120に知られている(たとえば、サーバ120に登録されているか、またはさもなければサーバ120によって信用されている)こと、および/または、認証要求1150中で提供されたトークンコード1322が予想されるトークンコードと整合することの検証から生じ得る。
【0126】
次に図15を参照すると、動作は1510において始まり、サーバ120は、セキュアなリソース1140にアクセスするための認証要求1150を第1のデバイス110から受信する。受信された認証要求1140は、第1のデバイス110へのネットワーク接続を共有する第2のデバイス1110から取得されたセキュリティデータ1114に基づくインジケータ1114aを含む。インジケータ1114aは、たとえば、登録コードまたは他の共有秘密、および/あるいは第2のデバイス1110によって作り出されたワンタイムパスワードなど、第2のデバイス1110の識別子を含み得る。
【0127】
1520において、たとえば認証サーバ1130を通して働く、サーバ120は、受信されたインジケータ1114aに少なくとも部分的に基づいて認証動作1252を実施する。たとえば、認証動作1252は、登録コードに基づいて、第2のデバイス1110がサーバ120に知られていることを検証し、および/またはトークンコード1322が予想される値と整合することを検証する。
【0128】
1530において、サーバ120は、第1のデバイス110が、認証動作1252が成功の結果を生成したことに応答して、セキュアなリソース1140にアクセスすることを可能にする。たとえば、サーバ120は、第1のデバイス110がセキュアなリソース1140にアクセスするための鍵として使用し得るパスコード1254を作り出し得る。
【0129】
認証を実施するための技法が説明された。この技法は、ネットワーク接続180-2を第1のデバイス110と共有する第2のデバイス1100からセキュリティデータ1114を受信することによって、認証強度および/または利便性を増加させる。第1のデバイス110が第2のデバイス1100のネットワーク接続180-2を使用して複数の同時ネットワーク接続180を維持する場合、第2のデバイス1100は、ユーザの側の追加の労力をほとんどまたはまったく伴わずに、増加された認証強度を提供することができる。むしろ、いくつかの例では、第2のデバイス1100は、ユーザ関与をほとんどまたはまったく伴わずに、第1のデバイス110によって行われる認証要求1152に認証強度を透過的に追加することができる。
【0130】
いくつかの実施形態について説明したが、多数の代替実施形態または変形形態が行われ得る。たとえば、第2のデバイス1110は、認証強度を向上させるために登録コードおよび/またはトークンコードを提供するものとして本明細書で説明されたが、実施形態は、これらの特定のタイプのセキュリティデータに限定されない。たとえば、第2のデバイス1110とサーバ120の両方に知られている共有秘密は、認証強度および/または利便性を改善するための基礎として働き得るので、そのような秘密は十分であり得る。
【0131】
さらに、第1のデバイス110がセキュアなリソース1140をロック解除するための鍵として使用し得るパスコード1254を認証サーバ1130が提供する、実施形態が説明されたが、これは一例にすぎない。たとえば、SAML(セキュリティアサーションマークアップ言語)など、他の機構が、認証されたユーザにセキュアアクセスを提供するために使用され得る。
【0132】
さらにまた、第2のデバイス1110が、たとえば複数の冗長ネットワーク経路をサポートするために、コンピュータネットワークへの第2の接続を提供する、実施形態が説明されたが、これも一例にすぎない。代替的に、第2のデバイス1110は、認証を支援するために使用されるが、ネットワークへの第2の接続を必要としない。
【0133】
さらに、実施形態はユーザ102に関して説明されたが、実施形態は、ユーザに関与するものに限定されないことを諒解されたい。たとえば、認証は、いかなるユーザも伴わずに実施され得る。
セクションIII:第1のデバイスによってリソースへのアクセスを要求するときに第2のデバイスのロケーション情報を活用すること
【0134】
コンピュータ化アクセスを管理するための改善された技法は、ネットワーク接続を第1のデバイスと共有する第2のデバイスからロケーション情報を受信する第1のデバイスを含む。第1のデバイスは、ネットワーク上のリソースへのアクセスを要求するとき、第2のデバイスから受信されたロケーション情報を適用する。改善された技法を使用して、第1のデバイスは、認証強度を増加させるために、および/またはアクセス権の監督を容易にするために、第2のデバイスのプレゼンスと、第2のデバイスのロケーション情報とを活用する。
【0135】
このセクションにおいて説明される技法は、セクションIの環境において、たとえば、デバイスが複数の同時ネットワーク接続を維持し、これらの間でシームレスに切り替える構成において、提供され得る。さらに、このセクションにおいて説明される技法は、セクションIIにおいて説明された特定の特徴を伴って提供され得、たとえば、第1のデバイスが、認証を実施するときに第2のデバイスのプレゼンスを活用する。ただし、このセクションにおいて提示される技法は前のセクションにおいて提示された技法から独立して使用され得るので、セクションI構成もセクションII構成も必要とされない。
【0136】
図16は、改善された技法の実施形態が実践され得る例示的なシステム1600を示す。ここで、第1のコンピューティングデバイス110(クライアント)と、第2のコンピューティングデバイス1110(結合)と、サーバ120とが、ネットワーク170に動作可能に接続する。第1のコンピューティングデバイス110(または単に、「第1のデバイス」)とサーバ120とネットワーク170とは、図1および図11に関して説明されたものと同様であり得るが、これは必要とされない。また、第1のデバイス110と第2のコンピューティングデバイス1110(「第2のデバイス」)とは、同じ個人またはエンティティによって所有および動作され得るが、これも必要とされない。図16に示されているサーバ装置120は、許可/認証(A/A)サーバ1630を含むと見なされ、許可/認証(A/A)サーバ1630は、システムリソースへの認証とアクセス制御(たとえば、許可)の両方をサポートするように構成される。前述のように、サーバ120は、本明細書ではまとめて「サーバ」と呼ばれる任意の数の物理コンピュータおよび/または仮想マシンを使用して実装され得る。
【0137】
図11中の参照番号と同じ参照番号を有する図16の特徴が、同様に実現され得る。たとえば、第1のデバイス110は第1のネットワーク経路180-1を介してネットワーク170に接続し、第2のデバイス1110は第2のネットワーク経路180-2を介してネットワーク170に接続する。第1のネットワーク経路180-1はWi-Fi(IEEE802.11X)であり得、第2のネットワーク経路180-2は、LTE(ロングタームエボリューション)、GSM(モバイル用グローバルシステム)、CDMA(符号分割多元接続)、またはWiMAXなど、セルラーデータであり得る。また、第2のネットワーク経路180-2は、5G、あるいは何らかの他の開発中のまたは将来のセルラー方式であり得る。第1のデバイス110は、ラップトップ、タブレット、または他のコンピュータであり得、第2のデバイス1110は、スマートフォン、タブレット、ドングル(たとえば、LTEドングル)、パーソナルリーダー、またはセルラーデータインターフェースを有する他のデバイスであり得る。デバイス110および1110は、両方とも、ネットワーク170への単一の経路180-1または180-2を有するものとして示されているが、各デバイスがネットワーク170への複数の経路を有し得ることを諒解されたい。ネットワーク170は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、イントラネット、インターネット、および/あるいは何らかの他のタイプのネットワークまたはネットワークの組合せとして提供され得る。特定の例では、ネットワーク170はインターネットを含み、サーバ120は、SaaS(サービスとしてのソフトウェア)アプリケーションおよび/またはファイルストレージなど、クラウドベースサービスおよび/または仮想サービスのプロバイダである。
【0138】
示されている様式では、第1のデバイス110は、たとえば第1のデバイス110と第2のデバイス1110とをテザリングするかまたはさもなければ通信可能に結合することによって、第2のデバイス1110を介して第2のネットワーク経路180-2にアクセスするように構成される。「テザリング」は、モバイルデバイスのネットワーク接続を他のコンピュータと共有することを表す。第2のデバイス1110に通信可能に結合することによって、第1のデバイス110は、ネットワーク170への、したがってサーバ120への複数の同時接続経路を維持することが可能である。接続経路180-1が弱くなった場合、たとえば、クライアントデバイス110は、ほとんどまたはまったく中断せずに、接続経路180-2にシームレスにおよび透過的に切り替え得、またはその逆も同様である。第2のデバイス1110による第1のデバイス110の結合は、Bluetooth、Wi-Fi、USB(ユニバーサルシリアルバス)、あるいは何らかの他のワイヤレスプロトコルまたはタイプのケーブルとして提供され得る、接続媒体1112など、ローカル接続上で達成され得る。
【0139】
図16にさらに示されているように、デバイス110および1110は、第1のデバイス110の第1のロケーション情報1610aおよび第2のデバイス1110の第2のロケーション情報1610bなど、ロケーション情報1610を提供し得る。ロケーション情報1610は、GPS(全地球測位システム)座標、Wi-Fi識別子、MAC(メディアアクセス制御)アドレス、IP(インターネットプロトコル)アドレス、電話番号など、様々な形態をとり得る。
【0140】
このデータのすべてが、通常、ロケーションソースと見なされるとは限らないが、そのようなデータからロケーションを推論するための様々な技術が発展した。たとえば、Wi-Fiマッピング技術は、Wi-Fiホットスポットをそれぞれのロケーションに関連付け、それぞれのロケーションは、GPS座標および/または他のロケーションソースとの相関によって取得され得る。Wi-Fi識別子は、MACアドレスおよび/またはSSID(サービスセット識別子)を含み得、これらはホットスポットを一意に識別し、検出されたMACアドレスおよびSSIDに基づくロケーションの単純なルックアップを可能にする。ロケーションサービスはまた、ISP(インターネットサービスプロバイダ)データ、電話番号、および/または特別にコンパイルされたマップに基づいて、ロケーションを追跡する。IPアドレスは、ISPおよび関連するネットワーク構成要素がネットワーク配信および顧客データに基づいてロケーションを追跡するように、ロケーション情報の共通ソースを提供する。「私のIPアドレスは何ですか?」の単純なオンライン検索により、しばしば、驚くべき正確度まで、ロケーションが明らかになる。さらに、携帯電話番号は、セルフォンタワーに対する三角測量に基づくロケーションの正確な測度を可能にすることができる。したがって、ロケーション情報が様々な形態で入ってくることがあり、本開示がこの点について限定されないことを諒解されたい。
【0141】
例示的な動作では、ユーザ102は、たとえば、セクションIIにおいて説明された様式と同様の様式で、第2のデバイス1110のネットワーク経路180-2を第1のデバイス110と共有(たとえば、テザリング)するように第2のデバイス1110を構成する。ネットワーク接続180-2の共有は、ローカル接続1112上で確立され得、ローカル接続1112は、たとえば、Wi-Fi、Bluetooth、またはUSBであり得る。第2のデバイス1110が第2のネットワーク経路180-2を共有するように構成された場合、第1のデバイス110は、第2のネットワーク経路180-2を発見し、第2のネットワーク経路180-2に接続し、その結果、第1のデバイス110は、第1のネットワーク経路180-1と第2のネットワーク経路180-2の両方を介してネットワーク170にアクセスすることができる。
【0142】
いくつかの例では、第2のネットワーク経路180-2を発見すると、第1のデバイス110は、第2のデバイス1110とのハンドシェイキングプロトコルを始動して、第2のデバイス1110のロケーション情報1610bを取得する。ただし、第1のデバイス110は、代わりに、要望に応じておよび/または必要に応じて、たとえば、ロケーション情報1610bを使用する特定の要求または動作に応答して、ロケーション情報1610bを要求し得るので、最初のハンドシェイキングは必要とされない。
【0143】
たとえば、ユーザ102および/または第1のデバイス110上で稼働しているアプリケーション(図示せず)は、セキュアなリソース1140など、ネットワーク170のリソースへのアクセスを要求する。セキュアなリソース1140は、ファイル、ファイルシステム、アプリケーション、仮想マシン、または要求側ロケーションに基づくアクセスが望まれる任意の他のリソースであり得る。第1のデバイス110上のアクセスマネージャ1608が、アクセス要求1650を準備し始める。リソース1140への認証および/またはアクセス権は、少なくとも部分的に要求側のロケーションに依存し得るので、第1のデバイス110は、ロケーション情報1610bを第2のデバイス1110に要求し得(1608a)、第2のデバイス1110は、ロケーション情報1610bを第1のデバイス110に返す(1608b)。
【0144】
ロケーション情報1610bを取得すると、第1のデバイス110上で稼働しているロケーションプロセッサ1620が、ロケーションインジケータ1622を形成する。ロケーションインジケータ1622は、様々なやり方で形成され得る。一例では、ロケーションプロセッサ1620は、第1のデバイス110の第1のロケーション情報1610aを取得し、第1のロケーション情報1610aを第2のデバイス1110からの第2のロケーション情報1610bと組み合わせ、それにより、ロケーションインジケータ1622を形成し、ロケーションインジケータ1622は、第1のロケーション情報1610aと第2のロケーション情報1610bの両方に基づく。代替的に、ロケーションプロセッサ1620は、第2のデバイス1100の第2のロケーション情報1610bのみに基づくロケーションインジケータ1622を形成し、すなわち、ロケーション情報1610aを無視し、ロケーション情報1610aは、すべての実施形態において必要とされるとは限らず、存在する必要がない。また別の例では、ロケーションプロセッサ1620は、第1のロケーション情報1610a、第2のロケーション情報1610b、および第3のロケーション情報1610cなど、ロケーション情報1610の3つまたはそれ以上のソースに基づくロケーションインジケータ1622を形成する。
【0145】
上記の一般性を制限することなく、第1のロケーション情報1610aは、Wi-Fi識別子(たとえば、MACアドレス、またはMACアドレス+SSID)またはIPアドレスであり得る。また、第2のロケーション情報1610bは、GPS座標、IPアドレス、電話番号などであり得る。好ましくは、第1のロケーション情報1610aと第2のロケーション情報1610bと(提供される場合)第3のロケーション情報1610cとは、別個のソースから選択され、したがって、これらが提供する情報は冗長でない。たとえば、第1のロケーション情報はWi-Fiであり、第2のロケーション情報はGPSであり、第3のロケーション情報はIPアドレスまたは電話番号である。これらは例にすぎない。
【0146】
いくつかの例によれば、ロケーションプロセッサ1620は、利用可能なロケーション情報1610を、別々に、すなわち、ほとんどまたはまったく処理することまたは組み合わせることなしに、含めることによって、ロケーションインジケータ1622を形成する。他の例では、ロケーションプロセッサ1620は、提供されたロケーション情報1610を処理して、組み合わせられたロケーション情報を生成する。ロケーション情報1610の複数のソースが利用可能である場合、組み合わせられたロケーション情報は、概して、個々のソースのいずれかが単独で利用可能であり得る場合よりも正確な、ロケーションの測度を提供する。
【0147】
ロケーションインジケータ1622がこのように形成された場合、アクセスマネージャ1608は、リソース1140にアクセスするためのアクセス要求1650を発行する。アクセス要求1650はロケーションインジケータ1622を含み、ロケーションインジケータ1622は利用可能なロケーション情報1610に基づく。いくつかの例では、第1のデバイス110は、アクセス要求1650をネットワーク経路180-1(たとえば、Wi-Fi)上でサーバ120に送る。他の例では、第1のデバイス110は、たとえば、Wi-Fiが利用不可能であるか、機能していないか、またはさもなければ好ましくない場合、ローカル接続1112を介して、ネットワーク経路180-2(たとえば、LTE)上でアクセス要求1650を送る。
【0148】
いくつかの例では、アクセス要求1650は、認証要求(たとえば、図11の認証要求1150)の一部である。そのような例では、要求側のロケーションは、ユーザ102および/またはデバイス110を認証するために必要とされる明示的認証ファクタ(たとえば、認証ファクタ1117のうちの1つ)であり得る。他の例では、ユーザ102および/またはデバイス110はすでに認証されており(または認証が必要とされず)、その場合、サーバ120は、依然として、アクセス制御決定を行うためにロケーションインジケータ1622を使用し得る。たとえば、サーバ120は、発信ロケーションがユーザの自宅であるとき、リソースへのアクセスを可能にし得るが、発信ロケーションが近隣のコーヒーショップであるとき、アクセスを拒否し得る。
【0149】
いくつかの例では、サーバ120はロケーションマネージャ1636を含み、ロケーションマネージャ1636は、アクセス要求1650中で到着したロケーションインジケータ1622を受信および処理する。いくつかの例によれば、ロケーションマネージャ1636は、サードパーティロケーションサービス1632aに接触して、および/またはローカルロケーションサービス1632bを使用して、ロケーション情報1610(たとえば、1610a、1610b、1610c)の要素を地理的ロケーションのそれぞれの地理座標または他のインジケータに変換する。たとえば、ロケーションサービス1632aおよび/または1632bは、MACアドレス(またはMACアドレス+SSID)、IPアドレス、電話番号などのいずれかを、対応する地理的ロケーションに変換する。ロケーションマネージャ1636は、得られたロケーションを任意の好適なやり方で組み合わせて、ロケーション情報1610の受信された要素に基づいて代表的ロケーション1638を生成し得る。
【0150】
代表的ロケーション1638を作り出すためのプロセスは、ロケーション情報1610自体の要素に基づいて変動し得る。たとえば、ロケーション情報1610bまたは1610cが、時間とともに安定したままであるGPS座標(強いGPS信号を示唆する)を含む場合、ロケーションマネージャ1636は、単に、GPS座標を代表的ロケーション1638として使用し、他のロケーション情報を事実上無視し得る。GPS座標が雑音が多い(弱いGPS信号を示す)場合、ロケーションマネージャ1636は、代わりに、Wi-Fi、IPアドレス、および/または電話番号を使用し得る。ロケーションマネージャ1636は、明らかに誤っているように見えるロケーション情報を廃棄し、明らかに誤っているように見えるロケーション情報が代表的ロケーション1638に寄与することを防ぎ得る。たとえば、IPアドレスに基づくロケーションは、プロキシサーバから受信されたIPアドレスの場合、まったく信頼できないことがある。ロケーション情報1610の複数の要素が利用可能である場合、いくつかの要素は、これらが他の要素と食い違う場合、軽視され得る。
【0151】
いくつかの例では、ロケーション情報1610の複数の要素から代表的ロケーション1638を決定することは、要素の重心を計算すること(これは、明らかに誤っているとわかる要素を除外し得る)を伴い得る。たとえば、ロケーション情報1610aおよび1610bの2つの正確であると考えられる要素が、緯度(LAT)および経度(LON)を有するロケーションを暗示する場合、ロケーションマネージャ1636は、重心を平均緯度および平均経度として計算し得る。たとえば、
【数1】
ここで、下付き文字「a」および「b」は、それぞれ、要素1610aおよび1610bに対応する。より一般的には、ロケーション情報の「N」個の異なる要素について、ロケーションマネージャ1636は、以下のように重心を計算し得る。
【数2】
ここで、Wは、それぞれのロケーション情報の信頼性スコアを表す重みである。したがって、より信頼性が高いロケーション情報は、より信頼性が低いロケーション情報よりも高い重みを与えられ得、その結果、より高く重み付けされたソースのほうへ重心をバイアスすることにつながる。ロケーションマネージャ1636は、次いで、代表的ロケーション1638を重心座標として設定し得る。信頼できるGPSが利用可能でない場合、重心が主に使用され得ることを諒解されたい。
【0152】
代表的ロケーション1638が確立されると、ロケーションマネージャ1636は、代表的ロケーション1638がリソース1140にアクセスするための許可されたロケーションに一致することを検証する。たとえば、サーバ120は、許可されたロケーションのホワイトリスト1634を含み得るか、またはさもなければ、このホワイトリスト1634へのアクセスを有し得る。代表的ロケーション1638が許可されるかどうかを決定するために、ロケーションマネージャ1636は、代表的ロケーション1638をホワイトリスト1634上のロケーションと比較する。代表的ロケーション1638がホワイトリスト1634上のエントリと整合する場合、たとえば、これらのロケーションが指定された距離しきい値内まで同じである場合、ロケーション整合が確認される。この場合、サーバ装置120は、第1のデバイス110にアクセス応答1660を返し、それにより、リソース1140へのアクセスを許諾し得る。たとえば、アクセス応答1660は、セッション鍵、トークン、または第1のデバイス110がリソース1140にアクセスすることを可能にするための他のデータを含み得る。代替的に、アクセス応答1660は、リソース1140自体を含み得る。
【0153】
代表的ロケーション1638がホワイトリスト1634上のエントリと整合することに失敗した場合、ロケーション整合はない。この場合、サーバ120は、ロケーション整合が見つけられなかったことを示すアクセス応答1660を発行し得る。ロケーション整合失敗の結果として、リソース1140へのアクセスが拒否され得、および/または、アクセス特権が制限され得る。
【0154】
代表的ロケーション1638を確立するための上記で説明された方法が、ロケーション情報1610の複数の要素がどのように一緒に使用され得るかの例にすぎないことを諒解されたい。そのような例は、限定するものではなく例示的なものである。
【0155】
図17は、第2のデバイス1110からのロケーション情報1610がセキュアなリソース1140のアクセス制御を容易にする例示的な構成1700を示す。示されているアクティビティは、第1のデバイス110と、第2のデバイス1110と、認証サーバ1630と、セキュアなリソース1140とに関与する。
【0156】
1710において、第1のデバイス110は、第2のデバイス1110に通信可能に結合されると、第2のネットワーク経路180-2を発見する。たとえば、ユーザ102は、第2のデバイス1110をパーソナルホットスポットとして構成し、たとえば、Wi-Fi、Bluetooth、またはUSBを介して、第1のデバイス110と第2のデバイス1110との間の接続1112を確立する。第1のデバイス110は、第2のネットワーク経路180-2を発見し、第2のネットワーク経路180-2を通してネットワーク170への接続を確立する。
【0157】
1712において、第1のデバイス110は、第2のデバイス1110のロケーション情報1610bについての要求1608aを第2のデバイス1110に発行する。
【0158】
1714において、第2のデバイスは、ロケーション情報1610の利用可能なソース(たとえば、GPS座標、IPアドレス、電話番号など)を集める。
【0159】
1716において、第2のデバイス1110は、ロケーション情報1610b(および場合によっては他のロケーション情報)を含む集められたロケーション情報を、第1のデバイス110に返す。
【0160】
1720において、第1のデバイス110は、1716において返された任意のロケーション情報1610、ならびに第1のデバイス110から取得された任意の第1のロケーション情報1610aに基づき得る、ロケーションインジケータ1622を形成する。ロケーションインジケータ1622は、ロケーション情報1610の個々の要素を直接含み得るか、または、ロケーションインジケータ1622は、これらの何らかの組合せを提供し得る。
【0161】
1730において、第1のデバイスは、アクセス要求1650を認証/許可(A/A)サーバ1630に送る。アクセス要求1650は、ロケーションインジケータ1622を含む。いくつかの例では、たとえば、アクセス要求1650が認証要求1150でもある場合、アクセス要求1650は追加情報を含む。
【0162】
1740において、A/Aサーバ1630は、アクセス要求1650を受信し、続いて、ロケーションインジケータ1622に基づいて代表的ロケーション1638を確立する。いくつかの例では、上記で説明されたように、代表的ロケーション1638を確立することは、受信されたGPS座標が利用可能で信頼できる場合、これらのGPS座標を使用することを伴い得る。いくつかの例では、代表的ロケーション1638を確立することは、たとえば、ロケーションサービス1632bおよび/または1632cのアクションを介して、ロケーション情報1610のいくつかの受信された要素を、対応する地理的ロケーションに変換することを伴い得る。いくつかの例では、A/Aサーバ1630は、地理的ロケーションの重心を計算することによって代表的ロケーション1638を確立し得、重心は、信頼性に基づいて重み付けされ得る。
【0163】
1750において、A/Aサーバ1630は、ロケーションインジケータ1622中の情報が、セキュアなリソース1140にアクセスするための許可されたロケーションに一致するかどうかを決定する。たとえば、A/Aサーバ1630は、代表的ロケーション1638がホワイトリスト1634上の任意のエントリのロケーションと整合するかどうか、たとえば、2つのロケーションの差がしきい値距離未満であるかどうかをチェックする。
【0164】
1760において、2つのロケーションが整合する場合、A/Aサーバ1630はアクセス応答1660を返す。アクセス応答1660はパスコード1762を含み得、パスコード1762は、セキュアなリソース1140へのアクセスを許諾する。代替的に、アクセス応答1660は、トークン、他のデータ、および/または(たとえば、セキュアリソース1140がファイルまたは他の転送可能な要素である場合)セキュアリソース1140自体を含み得る。次いで、第1のデバイス110は、パスコード1762または他の要素を使用してセキュアリソース1140にアクセスし得る。
【0165】
しかしながら、ロケーション整合が見つけられない場合、1770において、アクセス要求1650が拒否され得る。いくつかの例では、アクセスは許諾され得るが、完全な制御ではなく、読取り専用特権など、制限された特権を伴う。
【0166】
図18および図19は、システム1700に関して行われ得る例示的な方法1800および1900を示す。方法1800および1900は、それぞれ、クライアントの観点およびサーバの観点から提示される。
【0167】
図18では、動作は1810において始まり、第1のデバイス110が第2のデバイス1110からロケーション情報1610bを取得する。ロケーション情報1610bは、たとえば、GPS座標、IPアドレス、Wi-Fi識別子、電話番号などを含み得る。図18の構成では、第1のデバイス110は第2のデバイス1110に通信可能に結合され、第2のデバイスは、第2のデバイスのネットワーク接続を第1のデバイス110と共有する。たとえば、第2のデバイス1110はパーソナルホットスポットなどを確立し得、第1のデバイス110は第2のデバイス1110にテザリングされ得る。
【0168】
1820において、第1のデバイス110は、ロケーション情報1610に基づくロケーションインジケータ1622を形成する。いくつかの例では、そのようなロケーション情報1610は、第2のロケーション情報1610bのみを含み得る。他の例では、ロケーション情報1610は、第1のロケーション情報1610aと第2のロケーション情報1610bとを含む。さらなる例では、ロケーション情報1610は、ロケーション情報の3つまたはそれ以上の要素を含む。第1のデバイス110は、ロケーション情報1610の要素を別々に提供することによって、またはこれらを任意の好適な様式で組み合わせることによって、ロケーションインジケータ1622を形成し得る。
【0169】
1830において、第1のデバイス110は、アクセス要求1650をサーバ120に送る。アクセス要求1650は、第1のデバイス110によって形成されたロケーション識別子1622を含み、セキュアなリソース1140など、リソースへのアクセスを要求する。
【0170】
1840において、第1のデバイス110は、ロケーションインジケータ1622がホワイトリスト1634上にリストされたロケーションなど、許可されたロケーションに一致することに基づいて、リソース1140にアクセスすることを可能にされる。ロケーションの一致性は、たとえば、代表的ロケーション1638など、ロケーションインジケータ1622から導出されたロケーションが、ホワイトリスト1634中のエントリのしきい値距離内に入ることに基づいて、確立され得る。
【0171】
次に図19を参照すると、動作は1910において始まり、サーバ120は、セキュアなリソース1140にアクセスするためのアクセス要求1650を第1のデバイス110から受信する。受信されたアクセス要求1650は、第2のデバイス1110からのロケーション情報1610bに基づくロケーションインジケータ1622を含む。第2のデバイス1110は、第1のデバイス110に動作可能に接続され、第2のデバイス1110のネットワーク接続を第1のデバイス110と共有する。
【0172】
1920において、サーバ120は、随意に、ロケーションインジケータ1622によって提供されたロケーション情報1610のいくつかの要素を、対応する地理的ロケーションに変換する。この行為は、GPS座標など、地理座標などをすでに含むロケーション情報1610の任意の要素について省略され得る。
【0173】
1930において、サーバ120は、ロケーション情報1610から代表的ロケーション1638を作り出す。いくつかの例では、行為1930は、地理的ロケーションの重心を作り出すことを含み、重心は、(信頼性スコアに基づいて)重み付けされ得るか、または重み付けされないことがある。いくつかの例では、行為1930は、任意の受信されたGPS座標を代表的ロケーション1638として提供することを含む。
【0174】
1940において、サーバ120は、ロケーションインジケータ1622によって示されたロケーション(たとえば、代表的ロケーション1638)が、ホワイトリスト1634中のエントリなど、リソース1140がアクセスされ得る許可されたロケーションに一致することを検証する。
【0175】
1950において、1940においてロケーション整合が見つけられたと仮定すると、第1のデバイス110は、たとえば、リソースを直接提供することによって、あるいは、パスコード、トークン、または第1のデバイス1140がリソースにアクセスすることを可能にする他のデータを提供することによって、リソース1140へのアクセスを許諾される。ロケーション整合が見つけられない場合、アクセス要求1650が拒否され得るか、または、アクセスが許諾され得るが、特権の低減を伴う。
【0176】
コンピュータ化アクセスを管理するための改善された技法が説明された。この技法は、ネットワーク接続180-2を第1のデバイス110と共有する第2のデバイス1110からロケーション情報1610bを受信する第1のデバイス110を含む。第1のデバイス110は、ネットワーク170のリソース1140へのアクセスを要求するとき、第2のデバイス1110から受信されたロケーション情報1610bを適用する。したがって、第1のデバイス110は、認証強度を増加させるために、および/またはアクセス権の監督を容易にするために、第2のデバイス1110のプレゼンスと、第2のデバイス1110のロケーション情報1610とを効果的に活用する。
【0177】
いくつかの実施形態について説明したが、多数の代替実施形態または変形形態が行われ得る。たとえば、第1のデバイス110がセキュアなリソース1140にアクセスするために使用し得るパスコード1762をA/Aサーバ1630が提供する、実施形態が説明されたが、これは一例にすぎない。たとえば、SAML(セキュリティアサーションマークアップ言語)など、他の機構が、認証されたユーザにセキュアアクセスを提供するために使用され得る。
【0178】
さらにまた、第2のデバイス1110が、たとえば複数の冗長ネットワーク経路をサポートするために、コンピュータネットワークへの第2の接続を第1のデバイスに提供する、実施形態が説明されたが、これも一例にすぎない。代替的に、第2のデバイス1110は、ロケーション情報を提供するために使用されるが、ネットワークへの第2の接続を第1のデバイスに提供しない。
【0179】
さらに、実施形態はユーザ102に関して説明されたが、実施形態は、ユーザに関与するものに限定されないことを諒解されたい。
セクションIV:管理制御をIoTデバイスに拡張すること
【0180】
改善された技法は、団体による管理制御を、管理されているデバイスのローカル環境におけるIoT(モノのインターネット)デバイスに拡張するために、管理されているデバイスを採用する。管理されているデバイスは、ローカルIoTデバイスを発見し、これらのIoTデバイスのうちの1つまたは複数を管理制御下に置くためにサーバとの通信に参加する。このセクションにおいて説明される技法は、セクションIの環境において、たとえば、管理されているデバイスが複数の同時ネットワーク接続を維持し、これらの間でシームレスに切り替える構成において、提供され得る。さらに、このセクションにおいて説明される技法は、セクションIIおよびIIIにおいて説明された特定の特徴を伴って提供され得る。ただし、このセクションにおいて提示される技法は前のセクションにおいて提示された技法から独立して使用され得るので、セクションI構成~セクションIII構成のいずれも必要とされない。
【0181】
図20は、改善された技法の実施形態が実践され得る例示的なシステム2000を示す。ここで、管理されているデバイス110は、ユーザ102の自宅、または管理されているデバイス110の周りに配設された何らかの他の環境など、ローカルクライアント環境2010において、すなわち、Bluetoothおよび/またはWi-Fi範囲内など、管理されているデバイス110の近傍において、動作する。管理されているデバイス110は、ラップトップコンピュータ、デスクトップコンピュータ、タブレット、または、セクションIにおいてクライアントデバイス110に関して説明されたデバイスのタイプのいずれかなど、任意の他のスマートデバイスであり得る。管理されているデバイス110は、セクションIにおいて説明されたように、複数の同時ネットワーク接続180を使用し得、たとえば、テザリングまたは直接接続を介して、管理されているデバイス110による使用のためのセルラーネットワーク経路を供給するために、モバイルデバイス2002(たとえば、スマートフォンまたはセルラードングル)を使用し得る。ただし、これは、管理されているデバイス110が単一のネットワーク経路を有する必要があるにすぎないので、必要とされない。
【0182】
ローカルクライアント環境2010は、Wi-Fiルータなどの基地局2030を含み、基地局2030は、コンピュータネットワーク170(図1)上でサーバ120に接続する。サーバ120およびネットワーク170は、セクションIのサーバ120およびネットワーク170について説明されたやり方のいずれかにおいて提供され得る。図示の例では、サーバ120は、クラウドポイントオブプレゼンス(PoP)2020の一部である。たとえば、クラウドPoP2020は、たとえば異なる地理的ロケーションにおいて、多数のクラウドPoPを展開し得る、会社、学校、政府機関、または他のエンティティなどの団体によって動作される。「団体」は、本明細書では「エンティティ」と呼ばれることもある。図示されていないが、クラウドPoP2020は、セキュリティ、データ利用可能性、フェイルオーバ、負荷分散などを促進するための多数のサーバおよび他のインフラストラクチャを含み得る。サーバ120は単一のコンピュータとして示されているが、サーバ120が任意の数の物理コンピュータおよび/または仮想マシンを使用して実装され得ることを諒解されたい。
【0183】
ローカル環境2010は、防犯カメラ2040-1、スマートスピーカー2040-2、2040-3および2040-4、スマートTV2040-5、ならびにウェブカム2040-6など、様々なIoTデバイス2040をさらに含む。これらは、考えられるIoTデバイスの例にすぎず、限定するものではない。IoTデバイス2040のうちのいくつかは、たとえば、ローカルWi-Fiネットワーク上で、基地局2030にワイヤレスに接続し得る。いくつかのIoTデバイス2040は、イーサネットケーブルなどのケーブルを使用して基地局2030に接続し得る。他のIoTデバイス2040は、Bluetoothをサポートし得、したがって、基地局2030への接続を必要としないことがあり、たとえば、他のIoTデバイス2040は、代わりに、他のデバイスにポイントツーポイント接続し得る。
【0184】
セクションIの場合のように、サーバ120は、ソフトウェア構成要素132sとマイクロVPNサーバ構成要素134s(図1)とを含み得る。すべての実施形態によって必要とされるとは限らないが、これらの構成要素は、セクションIにおいて説明されたアクティビティと同様のアクティビティを実施し得る。たとえば、サーバ構成要素132sは、(図1に示されている)アプリケーション132のサーバ側構成要素であり、これは、指定された機能を提供するために、管理されているデバイス110上のブラウザまたは他のクライアント側構成要素と協調する。アプリケーション132は、SaaS(サービスとしてのソフトウェア)アプリケーションとしてまたはウェブアプリケーションとして配信され得る。さらに、アプリケーション132は、たとえば、仮想ワークスペース環境を提供することによって、複数の他のアプリケーションまたはアプリをローンチするためのアクセスポイントを提供し得る。マイクロVPNサーバ構成要素134sは、サーバ構成要素132sとクライアント構成要素132cとの間で暗号化されたデータをセキュアに交換するための、本明細書ではマイクロVPNまたは「トンネル」134(図1)とも呼ばれる、特定用途向けVPNを確立するために、管理されているデバイス110上のマイクロVPNクライアント構成要素134cと協調する。
【0185】
図20にさらに示されているように、サーバ120は、IoTマネージャ2050と、分析マネージャ2060と、ユーザプロファイル2070とを含み得る。IoTマネージャ2050は、選択されたIoTデバイスを団体の管理フレームワークにエンロールし、IoTデバイスがエンロールされると、これらのIoTデバイスを管理するように構成される。IoTマネージャ2050のアクティビティは、たとえば、マルウェアについてIoTデバイスを走査することと、IoTソフトウェアおよび/またはファームウェアを更新することと、IoTデバイスにスキルをダウンロードすることとを含み得る。本明細書で使用される「スキル」は、IoTデバイスのネイティブ機能を向上させるためにIoTデバイス上にインストールされ得るソフトウェア特徴を指す。いくつかのベンダーは、同様の特徴を表すために「アクション」または「アプリ」という用語を使用し得、「スキル」は、すべてのそのような変形態をカバーするものとする。本明細書で使用されるスキルは、製造業者から入手可能なネイティブスキルと、団体のために開発されたカスタムスキルとを含む。たとえば、スマートスピーカーのためのカスタムスキルは、団体のプログラム、特徴、または他のリソースを始動することによってボイス制御に応答するためのものであり得る。いくつかの製造業者は、サードパーティがカスタムスキルを設計および展開することを可能にするためのSDK(ソフトウェア開発キット)を提供する。
【0186】
分析マネージャ2060は、たとえば、セキュリティを促進し、および/または動作の他の側面を向上させるための、ユーザ、(IoTデバイスを含む)デバイス、使用パターン、および他のファクタに関する情報を収集するように構成される。一例では、分析マネージャ2060は、潜在的脅威、機会、および/または状況を組織プロセスに知らせ、団体が履歴の傾向または識別された脅威に従ってアクションをとることを可能にする、予測および/または推論を行うために、ベイズ論理および/または機械学習を適用する。
【0187】
ユーザプロファイル2070は、たとえば、ユーザ固有アクティビティを実装するための、ユーザ102などのユーザに関する情報を記憶する。情報は、ユーザのオフサイト環境(たとえば、環境2010)、ユーザによって動作される管理されているデバイス(110)、およびユーザの環境における任意のエンロールされたIoTデバイス(2040)を表すデータを含み得る。
【0188】
例示的な動作では、管理されているデバイス110は、ローカルクライアント環境2010において動作する。たとえば、ユーザ102は、自宅で仕事をし、管理されているデバイス110を使用して、サーバ120上のアプリケーション、ファイル、または団体の他のリソースにリモートでアクセスする。たとえば、管理されているデバイス110は、(たとえば、イーサネットケーブリングまたはWi-Fiを使用して)基地局2030に接続し、ネットワーク170上でクラウドPoP2020中のサーバ120と通信する。
【0189】
管理されているデバイス110は、団体による管理制御下で全体的にまたは部分的に動作するという点で、「管理されている」。管理されているデバイス110自体が、団体によって所有され、ユーザ102に発行され得るか、あるいは、管理されているデバイス110は、ユーザ102によってまたは何らかの他の個人もしくは団体によって所有され得る。管理されているデバイス110は、完全に管理され得、これは、団体が、デバイス110のプログラムおよびデータのすべてを含めて、デバイス110全体を制御することを意味し、あるいは、管理されているデバイス110は、部分的に管理され得、これは、団体が、指定されたアプリケーションおよび/または特徴のみを制御し、他のアプリケーションおよび/または特徴が団体の制御外にあることを意味する。
【0190】
ローカルクライアント環境2010において動作しながら、管理されているデバイス110は、ローカルクライアント環境2010におけるIoTデバイス2040を発見するための発見動作を実施し得る。管理されているデバイス110は、たとえば、ログインシーケンスまたはスケジュールされたアクティビティの一部として、自動的に発見動作を始動し得るか、あるいは、管理されているデバイス110は、たとえば、ユーザ102が管理されているデバイス110のユーザインターフェースを動作させることによって、ユーザ102による特定の要求において発見動作を始動し得る。管理されているデバイス110は、たとえば、基地局2030へのワイヤード接続、基地局2030によって作成されるWi-FiネットワークへのWi-Fi接続、および/または、直接ポイントツーポイント接続を含み得るBluetooth接続を走査することによって、IoTデバイス2040のプレゼンスについてチェックする。
【0191】
一例では、管理されているデバイス110は、発見されたIoTデバイスのリストをユーザ102に表示し、団体による管理制御のために、リストされたIoTデバイスのうちの1つまたは複数を選択するようにユーザ102に促す。いくつかの例では、IoTデバイスのリストはIoTマネージャ2050がサポートするIoTデバイスに限定され得るので、IoTデバイスのリストは、すべての発見されたIoTデバイスよりも少ないIoTデバイスを含む。次いで、ユーザ102はリストから(1つまたは複数の)所望のIoTデバイスを選択し、管理されているデバイス110は(1つまたは複数の)ユーザ選択を受け付ける。次いで、管理されているデバイス110は、団体による管理制御を選択されたIoTデバイスに拡張するために、サーバ120との通信に参加する。たとえば、管理されているデバイス110は、1つまたは複数の選択されたIoTデバイスを指定する、エンロールメント要求2012をサーバ120に送る。エンロールメント要求2012に応答して、IoTマネージャ2050は、指定されたIoTデバイスを団体の管理制御下に置くために様々な行為を実施する。これらの行為は、たとえば、たとえばIoTデバイスの管理を容易にするために、マルウェアについて選択されたIoTデバイスを走査し、選択されたIoTデバイスが最も最近のソフトウェアおよび/またはファームウェアを有するかどうかをチェックし、IoTデバイスのうちの1つまたは複数上にスキルをインストールし、IoTデバイス上にIoTエージェントをインストールするために、管理されているデバイス2010と協調することを含み得る。さらに、サーバ120は、新たに管理されるIoTデバイスに関するデータを記録するためにユーザ102のユーザプロファイルを更新し得る。たとえば、データは、新たに管理されるIoTデバイスの種類、モデル、およびMAC(メディアアクセス制御)アドレス(または他のアドレス)、新たに管理されるIoTデバイスの現在のソフトウェアおよび/またはファームウェアバージョン、ならびに、新たに管理されるIoTデバイス上にインストールされたスキルを含み得る。データは、いくつかの例では、部屋識別子(たとえば、ダイニングルーム、上階の浴室)またはロケーションの何らかの他のインジケータなど、環境2010内のロケーション情報をさらに含み得る。
【0192】
図21は、図20の構成の追加の例示的な態様を示す。ここで、図20の構成要素は、例示的な論理ネットワーク2100を示すように構成される。図示のように、論理ネットワーク2100は、管理されているデバイス110によって形成されるハブ2110と、ハブ2110をそれぞれのIoTデバイス2040に接続するスポーク2120とを有する。図示されたハブアンドスポーク構成は、データイングレス(入力)2122を管理されているデバイス110を通して任意のIoTデバイス2040にダイレクトし、同様に、任意のIoTデバイス2040からの任意のデータエグレス(出力)2124を管理されているデバイス110にダイレクトする。従来のシステムにおいて通常そうであるように、基地局2030がIoTデバイスのためのハブを提供する代わりに、ハブの役割は、管理されているデバイス110に移される。したがって、管理されているデバイス110は、IoTデバイス2040へのデータイングレスまたはIoTデバイス2040からのデータエグレスを監視し、団体の管理ポリシーを施行するポジションにある。たとえば、管理されているデバイス110は、許容された送信を通しながら、団体が禁止するいくつかの送信を阻止し得る。より一般的には、管理されているデバイス110を論理ネットワーク2100のハブ2110に配置することは、管理されているデバイス110が、ローカル環境2010におけるIoTデバイス2040の間で団体の管理ポリシーを実装するためのローカルPoP(ポイントオブプレゼンス)として働くことを可能にする。
【0193】
一例では、論理ネットワーク2100は、管理されているデバイス110が環境2010における第1のIoTデバイス2040をエンロールしたとき、確立および構成される。論理ネットワーク2100は、IoTデバイスが追加または削除されたとき、あるいは他のネットワーク変更が行われたときはいつでも、更新され得る。管理されているデバイス110は、管理されているデバイス110、基地局2030、および/またはIoTデバイス2040によって維持されるルーティングルールを有するオーバーレイネットワークとして、論理ネットワーク2100を形成し得る。通常、論理ネットワーク2100を構成するためにデバイスの任意の物理接続を変更することは必要でない。むしろ、論理ネットワーク2100は、管理されているデバイス110を通してIoTデバイス2040へのすべてのイングレスおよびIoTデバイス2040からのすべてのエグレスをルーティングするソフトウェア定義ネットワークと見なされ得る。
【0194】
図示のように、論理ネットワーク2100は、ネットワーク170上での通信を可能にするための、管理されているデバイス110を基地局2030に接続するスポークをさらに含む。随意に、別個のスポークが、たとえばテザリングされた接続を介して、管理されているデバイス110をモバイルデバイス2002に論理的に接続し得る。次いで、モバイルデバイス2002(またはワイヤレスドングル)は、ネットワーク170への別個のおよび冗長な接続を提供し得る。したがって、この例では、論理ネットワーク2100は、複数のネットワーク経路180(図1)の間でシームレスに切り替える能力を含めて、複数のネットワーク経路180(図1)から利益を得、したがって、セクションIにおいて説明された構成と同じ信頼性を達成する。
【0195】
管理されているデバイス110は、IoTイングレスおよびエグレスのためのゲートキーパーとして働くことによって管理ポリシーを施行するだけでなく、いくつかの例では、マイクロVPNを介してセキュリティを促進することもできる。右側の拡大図に示されているように、管理されているデバイス110は、上記で説明されたマイクロVPNクライアント構成要素134cを含み得、マイクロVPNクライアント構成要素134cは、マイクロVPNサーバ構成要素134sとの特定用途向けVPNまたはトンネル134を確立する。したがって、(図1に示されている)トンネル134内で、管理されているデバイス110とサーバ120との間で交換されるデータは、団体のセキュリティプロトコルに従って暗号化され、そのような暗号化は、IoTデバイス2040とサーバ120との間の通信にも適用され、その結果、通信は、管理されているデバイス110を通し、トンネル134を通して行われる。したがって、IoTトラフィックは、管理されているデバイス110とサーバ120との間の他のアプリケーショントラフィックと同じVPN技術を使用して保護される。
【0196】
右側の拡大図にさらに示されているように、管理されているデバイス110は、ポリシーマネージャ2130と、上記で説明されたクライアント側アプリケーション構成要素132cと、IoTオーケストレータ2140とを含む。ポリシーマネージャ2130は、ローカル環境2010における団体の管理ポリシーを監督するように構成される。一例では、ポリシーマネージャ2130は、(悪意のあるコードについてIoTデバイス2040を走査し、悪意のあるコードを隔離または除去するように構成された)IoTスキャナ2132と、(IoTデバイス2040上のソフトウェアおよび/またはファームウェアをアップグレードするように構成された)IoTアップグレーダ2134と、(IoTデバイス2040上にスキルをインストールするように構成された)IoTインストーラ2136とを含む。
【0197】
IoTオーケストレータ2140は、特定の使用事例に対処するための、ローカル環境2010におけるIoTデバイス2040のアクティビティを協調させる。単純な例を挙げると、ユーザ102は、「ヘイ、スマートスピーカー(Hey Smart Speaker)、会議を開始するようにACMEに伝えて」と言って、ボイスコマンド2150をスマートスピーカー2040-4に発行し得る。ボイスコマンド2150に応答して、IoTオーケストレータ2140は、たとえば、利用可能なIoTデバイス2040のプレゼンスを電子的に直接検出することによって、またはサーバ120上のユーザ102についてのユーザプロファイル2070を照会することによって、利用可能なIoTデバイス2040についてチェックする。利用可能なIoTデバイス2040を手に入れると、IoTオーケストレータ2140は、スピーカー2040-3および2040-4、スマートTV2040-5、ならびにウェブカム2040-6など、オンライン会議のコンテキストにおいて有用であり得るIoTデバイス2040のうちの特定のIoTデバイス2040を識別する。IoTオーケストレータ2140は、次いで、識別されたデバイスが使用され得ることを確認するようにユーザ102に促す。ユーザ102が確認した場合、IoTオーケストレータ2140は、スピーカー2040-3および2040-4、スマートTV2040-5、ならびにウェブカム2040-6を管理されているデバイス110に接続し、オンライン会議中のこれらの使用を可能にする。会議が開始したとき、ユーザ102は、IoTスピーカーおよびIoT TVのビデオおよびオーディオ品質から利益を得ることができ、会議の他の参加者は、IoTウェブカムの品質から利益を得ることができる。
【0198】
市販のスマートスピーカーは、概して、「ヘイ、スマートスピーカー、会議を開始するようにACMEに伝えて」のようなボイスコマンドを理解しないことを諒解されたい。この目的で、スマートスピーカー2040-4は、カスタムスキルを装備していることがある。スキルは、「ACME」という単語を認識し、ACMEサーバにコマンドをダイレクトし、ACMEサーバはコマンドを解釈し、適切なアクションをとる。ACMEが、管理されているデバイス110およびIoTデバイス2040を管理する団体である場合、サーバ120はACMEのサーバであり得、カスタムスキルは、サーバ120上でまたはサーバ120によって利用可能なリソースにアクセスするように構成され得る。たとえば、スキルは、ユーザ102の企業カレンダーにアクセスし、現在時間付近の会議についてチェックし、会議パラメータを取得し、会議アプリケーションにおいて指定されたパラメータで会議をローンチするように管理されているデバイス110に指示し得る。ユーザが承認した場合、会議は、スマートスピーカー、スマートTV、およびスマートウェブカムを使用して進行し得る。このようにして、IoTオーケストレータ2140は、利用可能なIoTデバイス2040を一緒にスティッチングし、ボイスコマンドに応答してこれらの使用を可能にすることができる。IoTオーケストレータ2140は、ボイスコマンドに限定されず、むしろ、任意のソースから到着したコマンドに応答し得、および/あるいは任意のイベントまたはスケジュールされたアクティビティに応答するものであり得る。
【0199】
スマートスピーカー2040-4は単独で音声を転写することが可能でないことがあり、むしろ、この目的でクラウドサービスを使用し得ることを諒解されたい。たとえば、Amazon Alexaは、Amazonサーバを使用して音声を転写し得る。この構成でも、スマートスピーカー2040-4とAmazonサーバとの間のネットワークトラフィックは、管理されているデバイス110を通過し、すなわち、論理ネットワーク2100によって定義された経路に沿って通過する。
【0200】
多くの調整された使用事例が企図され、いくつかは、サーバ120上の分析マネージャ2060に関与し得る。たとえば、セキュリティアプリケーションが、ローカル環境2010における防犯カメラ2040-1をアクティブ化し得る。防犯カメラ2040-1は、ユーザ102のビデオを取得し、このビデオをサーバ120に提供し得る。サーバ120は、ビデオ画像に対して顔認識を実施し、分析された顔がユーザ102の顔であると決定し得る。ビデオが獲得されたほぼ同じ時間に、離れたロケーションからユーザの証明を用いてログイン試みが行われた場合、分析マネージャ2060は、不一致をフラグで知らせ、サーバ120がログイン要求を拒否すること、または強い認証を必要とすることを引き起こし得る。
【0201】
いくつかの例では、管理されているデバイス110は、あるネットワークトラフィックのセキュアハンドオフを実施し得る。たとえば、管理されているデバイス110が、スマートTV2040-5が4Kビデオを受信するときにスマートTV2040-5の直接経路中にとどまること、または、ウェブカム2040-6が同様のビデオを送信するときにウェブカム2040-6の直接経路中にとどまることは、非効率的であり、不要であり得る。したがって、いくつかの改善によれば、管理されているデバイス110は、直接経路中にあることなしにIoTデバイス2040がネットワーク170上で直接通信することを可能にする。管理されているデバイス110は、ネットワーク170上のIoTデバイスとエンドポイントとの間のセキュア接続を最初に確立することによって、この目的を達成し得る。その場合、矢印2160によって示されているように、IoTデバイスは、管理されているデバイス110の直接関与なしに、セキュア接続上でエンドポイントと直接通信し得る。
【0202】
団体の管理ポリシーはネットワーク170上での管理されているIoTデバイスの通信を制約し得るが、団体は、概して、クライアント環境2010におけるIoTデバイスまたは他の機器の所有者でないことを諒解されたい。ユーザ102は時々、団体の管理外で、個人使用のためにIoTデバイス2040を動作させる必要があり得、IoTデバイス2040は、好ましくは適応するべきである。この目的で、いくつかの例は、ユーザが、IoTデバイス2040を団体の制御から解放することを可能にする。たとえば、ユーザは、IoTデバイスを解放し、このデバイスを管理されていない状態に戻すために、管理されているデバイス2010上の構成マネージャ(図示せず)を動作させ得る。IoTデバイス上にインストールされたカスタムスキルは、削除または非アクティブ化され得る。IoTデバイスは、もはや論理ネットワーク2100の一部でないことがあり、IoTデバイスのトラフィックは、もはや、管理されているデバイス110およびサーバ120を通してルーティングされない。ユーザ102がIoTデバイスを団体の管理下に再び置くことを後で望む場合、ユーザ102は、たとえば、利用可能なデバイスについて環境2010を走査し、管理のために前に解放されたIoTデバイスを選択することによって、上記で説明されたようにIoTデバイスを追加する必要があるにすぎない。
【0203】
いくつかの例では、クライアント環境2010は、バックアップデバイス110aを含み得、バックアップデバイス110aは、管理されているデバイス110が失われたかまたはオフにされたとき、管理されているデバイス110の役割を実施し得る。バックアップデバイス110aは、別のコンピュータ、SD-WAN器具、タブレット、スマートフォン、ネットワークデバイス、または、IoTデバイス2040に接続し、ソフトウェアを稼働することが可能な任意のデバイスであり得る。実際、管理されているデバイス110は、それ自体が、これらのやり方のいずれかで実装され得る。
【0204】
図22は、ローカルクライアント環境2010におけるIoTデバイスを含むように組織的管理を拡張するための例示的な構成2200を示す。示されている構成は、ユーザ102、管理されているデバイス110、1つまたは複数のIoTデバイス2040、およびサーバ120の間のアクティビティを伴い得る。
【0205】
動作は2210において始まり得、ユーザ102は、IoTデバイス2040についてローカル環境2010を走査するための要求を発行する。たとえば、ユーザ102は、この機能を始動するために、管理されているデバイス110のユーザインターフェースを動作させ得る。
【0206】
2212において、管理されているデバイス110は、要求を受信すると、利用可能なIoTデバイス2040についてローカル環境2010を探索するための発見動作を実施する。発見は、たとえば、利用可能なデバイスについてWi-Fi、Bluetooth、および/またはワイヤードネットワーク接続を走査することを含み得る。管理されているデバイス110は、任意の発見されたIoTデバイスのリストを準備し得る。
【0207】
2214において、管理されているデバイス110は、IoTデバイスデータをサーバ120に送る。IoTデバイスデータは、発見されたIoTデバイスの種類およびモデル、ソフトウェアバージョン、ファームウェアバージョン、MACアドレス、および/またはローカル環境2010における物理的ロケーションなど、発見されたデバイスに関する情報とともに、発見されたIoTデバイスのリストを含み得る。一例では、管理されているデバイス110は、たとえば、ワークスペースアプリケーションなどの特定のアプリケーションのコンテキスト内で、マイクロVPN134を通してIoTデバイスデータを送る。
【0208】
2216において、サーバ120は、IoTデバイスデータを受信し、リストされたIoTデバイスがサポートされるかどうかをチェックする。たとえば、サーバ120は、発見されたIoTデバイスのリスト上の個々のIoTデバイスについてIoTマネージャ2050に照会し、団体がこれらのIoTデバイスをサポートするかどうかを決定する。
【0209】
2220において、サーバ120は、サポートされるIoTデバイスのリストを管理されているデバイス110に返す。一例では、サポートされるIoTデバイスのリストは、団体がサポートする、発見されたIoTデバイスのリスト上のすべてのIoTデバイスを含む。
【0210】
2222において、管理されているデバイス110は、サポートされるデバイスのリスト上の個々のIoTデバイスの組織的制御を許容または拒絶するように、ユーザ102に促す。たとえば、管理されているデバイス110は、ユーザ102が、デバイスごとに管理制御を許容または拒絶することを可能にし得る。代替的に、管理されているデバイス110は、ユーザ102が、サポートされるデバイスのすべてを選択するかまたはいずれも選択しないこと、あるいはサポートされるデバイスの任意の組合せを選択することを必要とし得る。
【0211】
2224において、管理されているデバイス110は、制御されるべきサポートされるIoTデバイスのユーザ選択を受信する。管理されているデバイス110は、次いで、選択されたIoTデバイスをエンロールするためにサーバ120との通信2230を始動する。通信2230は、必要に応じて、選択されたIoTデバイスについて個々に繰り返され得る。代替的に、通信2230は、選択されたIoTデバイスのすべてについて一緒に、一度実施され得る。単一の選択されたIoTデバイスのエンロールメントが以下で説明されるが、説明されるアクティビティが、たとえば連続的にまたは並列に、複数の選択されたIoTデバイスについて実施され得ることを諒解されたい。
【0212】
2232において、管理されているデバイス110は、選択されたIoTデバイスをエンロールするためのエンロールメント要求2012をサーバ120に送る。
【0213】
2234において、サーバ120は、エンロールメント要求2012を受信し、たとえば、IoTマネージャ2050から、選択されたIoTデバイスのための管理コードを取得する。管理コードは、管理されているデバイス110のためのコードと、選択されたIoTデバイス上にインストールされるべきIoTエージェントなど、IoTデバイスのためのコードとを含み得る。2236において、サーバ120は、管理コードを、管理されているデバイス110に返す。
【0214】
2240において、管理されているデバイス110は、選択されたIoTデバイスを制御するための管理コードをインストールする。この行為は、ハンドラ、ドライバ、または他のソフトウェア構成体をインストールすることを伴い得る。いくつかの例では、行為2240は、選択されたIoTデバイスと通信するためのネットワーク設定を確立することを伴い得る。2242において、管理されているデバイス110は、IoTエージェントを選択されたIoTデバイスに送り、選択されたIoTデバイスは、2244においてIoTエージェントをインストールする。2246において、IoTデバイスは、IoTエージェントのインストールの成功を確認する。
【0215】
2248において、管理されているデバイス110は、ローカルネットワーク2100を確立する。論理ネットワーク2100がすでに配備されている場合、管理されているデバイス110は、選択されたIoTデバイスを含むように論理ネットワーク2100を更新し得る。
【0216】
2250において、管理されているデバイス110は、サーバ120に対してインストールの成功を確認する。2252において、サーバ120は、選択されたIoTデバイスが現在、団体による管理制御下の管理されているIoTデバイスであるということを記録するためにユーザ102のユーザプロファイル2070を更新する。
【0217】
次に進んで、2260aにおいて、現在管理されているIoTデバイスへのネットワークイングレスおよびそこからのネットワークエグレスが、管理されているデバイス110を通過し、管理されているデバイス110は、2260bにおいて、管理されているデバイス110とネットワーク170との間の媒介として働く。
【0218】
図23および図24は、環境2000に関して行われ得る例示的な方法2300および2400を示す。方法2300および2400は、それぞれ、クライアントの観点およびサーバの観点から提示される。方法2300および2400の様々な行為は、任意の好適なやり方で順序付けられ得る。したがって、図示された順序とは異なる順序で行為が実施される実施形態が構築され得、これは、いくつかの行為を同時に実施することを含み得る。
【0219】
図23では、アクティビティは2310において始まり、管理されているデバイス110は、ローカルクライアント環境2010において動作する。たとえば、ユーザ102は、たとえば、サーバ120によってホストされるアプリケーションを稼働するために、クラウドPoP2020に接続するために、管理されているデバイス110を採用し得る。ただし、これは、管理されているデバイス110が、単に電源投入され、アイドルであることによって動作し得るので、必要とされない。特定のアクティビティは必要とされない。
【0220】
2320において、管理されているデバイス110は、発見を実施し、ローカル環境2010における1つまたは複数のIoTデバイスの位置を特定する。前に説明されたように、発見は、IoTデバイス2040についてワイヤード、Wi-Fi、およびBluetoothネットワークを走査することを伴い得る。管理されているデバイス110は、発見されたIoTデバイスのリストをサーバ120に送り、サポートされるIoTデバイスのリストを受信し得、サポートされるIoTデバイスのリストから、ユーザ102は、団体による管理のためにIoTデバイスを選択し得る。
【0221】
2330において、管理されているデバイス110は、団体による管理制御を選択されたIoTデバイスに拡張するために、サーバ120との通信2230に参加する。いくつかの例では、通信2230は、管理デバイス110上にソフトウェアをインストールすること、および/またはIoTデバイスの各々上にエージェントをインストールすることを伴う。通信2230は、各選択されたIoTデバイスのプレゼンスを記録するためにサーバ120上のユーザ102のプロファイルを更新することをさらに伴い得る。
【0222】
いくつかの例では、2340において、管理されているデバイス110は、悪意のあるコードについて、選択されたIoTデバイスを走査し、悪意のあるコードを消去するかまたは悪意のあるコードを隔離することなどによって、検出された脅威を削除し得る。
【0223】
いくつかの例では、2350において、サーバ120と協調して動作する、管理されているデバイス110は、選択されたIoTデバイス上の古いファームウェアおよび/またはソフトウェアをアップグレードする。いくつかの例では、管理されているデバイス110はまた、選択されたIoTデバイス上への1つまたは複数の新しいスキルのインストールを指示し、この1つまたは複数の新しいスキルは、団体のために開発された1つまたは複数のカスタムスキルを含み得る。
【0224】
次に図24を参照すると、アクティビティは2410において始まり得、サーバ120は、管理されているデバイス110から、団体の管理フレームワークにIoTデバイス2040をエンロールするためのエンロールメント要求2012を受信する。説明されたように、管理フレームワークは、悪意のあるコードについての走査、ソフトウェアおよびファームウェアアップグレード、ならびに/またはカスタムスキルのインストールに従うことなど、管理されているIoTデバイスの必要とされるポリシーおよび/または制約を含み得る。フレームワークはまた、IoTデバイスへのおよびそこからのネットワークトラフィックが、管理されているデバイス110を通してローカルに、およびローカル環境2010外で、サーバ120を通して、送信されることを必要とし得る。
【0225】
2420において、サーバ120は、管理制御を選択されたIoTデバイスに拡張するために、管理されているデバイス110との通信2230に参加する。たとえば、通信2230は、図22に関して説明されたように進行し得る。
【0226】
2430において、サーバは、たとえば論理ネットワーク2100を介して、管理されているデバイス110を通してIoTデバイスと通信する。
【0227】
改善された技法は、団体による管理制御を、管理されているデバイス110のローカル環境2010におけるIoT(モノのインターネット)デバイス2040に拡張するために、管理されているデバイス110を使用することについて、説明された。管理されているデバイス110は、ローカルIoTデバイス2040を発見し、これらのデバイス2040のうちの1つまたは複数を管理制御下に置くためにサーバ120との通信2230に参加する。いくつかの例では、管理制御を拡張することは、各選択されたIoTデバイス2040を団体の管理フレームワークにエンロールすることと、管理されているデバイス110を通してサーバ120とそれぞれのIoTデバイス2040との間の通信をダイレクトすることとを伴い、これは、ローカル環境2010における選択されたIoTデバイスの管理を監督するためのポイントオブプレゼンスを提供する。
【0228】
いくつかの実施形態について説明したが、多数の代替実施形態または変形形態が行われ得る。たとえば、ローカルクライアント環境2010はユーザ102の自宅として図示および説明されたが、ローカルクライアント環境2010は、自宅に限定されず、ネットワーク接続性を有し、1つまたは複数のIoTデバイスを含む、任意の空間を含み得る。
【0229】
さらに、とはいえ、論理ネットワーク2100は、単一のハブアンドスポーク構成として図示された。代替的に、論理ネットワーク2100は、ハブアンドスポーク構成の階層から、または、管理されているデバイス110を通してIoTデバイスのデータイングレスおよびエグレスを渡す任意の他のタイプのネットワーク構成から、形成され得る。
【0230】
本出願の特定の実施形態に関して特徴が図示および説明されたが、そのような特徴は、開示される実施形態およびそれらの変形態のいずれにも含まれ得、本明細書によって含まれる。したがって、任意の実施形態に関して開示される特徴が任意の他の実施形態に含まれることを理解されたい。
【0231】
さらにまた、改善、または改善の一部は、磁気ディスク、磁気テープ、コンパクトディスク、DVD、光ディスク、フラッシュドライブ、ソリッドステートドライブ、SD(セキュアデジタル)チップまたはデバイス、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)など、1つまたは複数の非一時的コンピュータ可読記憶媒体を備えるコンピュータプログラム製品として具現され得る。任意の数のコンピュータ可読媒体が使用され得る。媒体は、1つまたは複数のコンピュータまたは他のプロセッサ上で実行されたとき、本明細書で説明される1つまたは複数のプロセスを実施する命令で符号化され得る。そのような媒体は、製造品またはマシンと見なされ得、あるマシンから別のマシンにトランスポート可能であり得る。
【0232】
本明細書全体にわたって使用される「備える、含む(comprising)」、「含む、備える(including)」、「含んでいる(containing)」、および「有する(having)」という単語は、オープンエンド様式で、何かのいくつかの項目、ステップ、要素、または態様を記載するものである。また、本明細書で使用される「セット」という単語は、そうでないことが具体的に述べられていない限り、何かのうちの1つまたは複数を意味する。これは、「~のセット(set of)」という句に単数形の目的語が続くのか複数形の目的語が続くのかにかかわらず、および「~のセット」という句が単数形の動詞と結合されるのか複数形の動詞と結合されるのかにかかわらず、当てはまる。 また、要素「のセット」は、存在するすべての要素よりも少ない要素を表すことができる。したがって、セットの一部でない同じ種類の追加の要素があり得る。 さらに、「第1の」、「第2の」、「第3の」などの序数表現は、識別の目的で、本明細書では形容詞として使用され得る。特に示されていない限り、これらの序数表現は、何らかの順序付けまたはシーケンスを暗示するものではない。したがって、たとえば、「第2の」イベントは、「第1のイベント」の前に行われることも後に行われることもあり、あるいは、第1のイベントがこれまでに生じていない場合でも行われることがある。さらに、特定の要素、特徴、または行為を「第1の」そのような要素、特徴、または行為であるとして本明細書で識別することは、「第2の」または他のそのような要素、特徴または行為もなければならないことを必要とすると解釈されるべきでない。むしろ、「第1の」項目は唯一の項目であり得る。また、そうでないことが特に明記されていない限り、「に基づいて」は、非排他的であるものとする。したがって、「に基づいて」は、別段に特に示されていない限り、「に排他的に基づいて」を意味するものとして解釈されるべきではなく、むしろ、「に少なくとも部分的に基づいて」を意味するものとして解釈されるべきである。いくつかの実施形態が本明細書で開示されるが、これらは、例として提供されるにすぎず、限定するものと解釈されるべきでないことを理解されたい。
【0233】
したがって、当業者は、形態および詳細の様々な変更が、以下の特許請求の範囲から逸脱することなく、本明細書で開示される実施形態に対して行われ得ることを理解されよう。
図1
図2
図3
図4a
図4b
図4c
図4d
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24
【手続補正書】
【提出日】2021-06-29
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
第1のコンピューティングデバイスによって、第2のコンピューティングデバイスからデータを受信することであって、前記データが前記第2のコンピューティングデバイスのロケーションを示し、前記第2のコンピューティングデバイスがコンピュータネットワークへの接続を有することと、
前記第1のコンピューティングデバイスによって、前記第2のコンピューティングデバイスからの前記受信されたデータに少なくとも部分的に基づいてロケーションインジケータを決定することと、
前記第1のコンピューティングデバイスによって、前記コンピュータネットワークのリソースにアクセスするための要求を送ることであって、前記要求が、前記決定されたロケーションインジケータを含むことと、
前記第1のコンピューティングデバイスによって、前記リソースにアクセスするための許可に応答して前記コンピュータネットワークの前記リソースにアクセスすることであって、前記許可が、前記要求に応答して、および前記決定されたロケーションインジケータに少なくとも部分的に基づいて許諾され、前記第2のコンピューティングデバイスから受信された前記ロケーションインジケータが、ロケーションに少なくとも部分的に基づいて前記リソースへの前記第1のコンピューティングデバイスによるアクセスを可能にするために、前記第1のコンピューティングデバイスのロケーションのインジケーションを提供することと、
を含む方法。
【請求項2】
前記第2のコンピューティングデバイスが、前記コンピュータネットワークへの前記接続を前記第1のコンピューティングデバイスと共有し、ロケーション情報を受信することが、前記第1のコンピューティングデバイスと前記第2のコンピューティングデバイスとの間のローカル接続上で、前記第2のコンピューティングデバイスから前記ロケーション情報を取得することを含む請求項に記載の方法。
【請求項3】
前記第2のコンピューティングデバイスが、(i)モバイルデバイスまたは(ii)セルラードングルのうちの1つであり、前記ローカル接続上で前記ロケーション情報を取得するとき、前記第1のコンピューティングデバイスが、(i)Bluetooth、(ii)Wi-Fi、または(iii)ケーブルのうちの1つを使用して前記ローカル接続上で前記第2のコンピューティングデバイスにテザリングされる請求項に記載の方法。
【請求項4】
前記要求を送ることが、前記第2のコンピューティングデバイスによって前記第1のコンピューティングデバイスと共有される共有接続上で前記要求を送信することを含む請求項に記載の方法。
【請求項5】
前記第1のコンピューティングデバイスが、前記共有接続とは別個の、前記コンピュータネットワークへの第2の接続を有し、前記アクセス要求を送ることが、前記第2の接続上で前記アクセス要求を送信することを含む請求項に記載の方法。
【請求項6】
前記第2のコンピューティングデバイスの前記ロケーションを示す前記ロケーション情報が第2のロケーション情報であり、
前記方法が、前記第1のコンピューティングデバイスによって、前記第1のコンピューティングデバイスの第1のロケーション情報を取得することを含み、
前記ロケーションインジケータを形成することが、前記第1のロケーション情報および前記第2のロケーション情報に少なくとも部分的に基づく請求項に記載の方法。
【請求項7】
前記第1のコンピューティングデバイスの前記第1のロケーション情報を取得することが、前記第1のコンピューティングデバイスが属するWi-Fiネットワークを識別することを含む請求項に記載の方法。
【請求項8】
前記第2のコンピューティングデバイスの前記第2のロケーション情報を取得することが、前記第2のコンピューティングデバイスのGPS(全地球測位システム)座標を受信することを含む請求項に記載の方法。
【請求項9】
前記第2のコンピューティングデバイスの前記第2のロケーション情報を取得することが、前記第2のコンピューティングデバイスのIP(インターネットプロトコル)アドレスを識別することを含む請求項に記載の方法。
【請求項10】
前記第2のコンピューティングデバイスの前記ロケーションを示す前記ロケーション情報が第2のロケーション情報であり、前記方法が、
前記ローカル接続上で前記第1のコンピューティングデバイスによって、前記第2のコンピューティングデバイスの前記ロケーションを示す第3のロケーション情報を取得することであって、前記第3のロケーション情報が前記第2のロケーション情報のソースとは別個のソースから導出されることを含み、
前記ロケーションインジケータを形成することが、前記第1のロケーション情報、前記第2のロケーション情報および前記第3のロケーション情報に少なくとも部分的に基づく請求項に記載の方法。
【請求項11】
サーバによって、コンピュータネットワーク上で第1のコンピューティングデバイスから要求を受信することであって、前記要求が、前記コンピュータネットワーク上のリソースにアクセスするためのものであり、ロケーションインジケータを含み、前記ロケーションインジケータが、第2のコンピューティングデバイスのロケーションを示すデータに少なくとも部分的に基づくことと、
前記サーバによって、前記受信された要求の前記ロケーションインジケータに少なくとも部分的に基づいて、前記ロケーションインジケータによって示されたロケーションが、前記コンピュータネットワークの前記リソースにアクセスするための許可されたロケーションに一致することを検証することと、
前記ロケーションの前記検証に応答して、前記サーバによって、前記コンピュータネットワーク上の前記リソースへのアクセスを前記第1のコンピューティングデバイスに許諾することと、
を含む方法。
【請求項12】
前記第2のコンピューティングデバイスの前記ロケーションを示す前記データが第2のロケーション情報であり、前記ロケーションインジケータが、前記第1のコンピューティングデバイスの第1のロケーション情報に少なくとも部分的に基づき、
前記方法が、前記第1のコンピューティングデバイスの前記第1のロケーション情報および前記第2のコンピューティングデバイスの前記第2のロケーション情報に少なくとも部分的に基づいて代表的ロケーションを確立することを含み、
前記ロケーションインジケータが前記許可されたロケーションに一致することを検証することが、前記代表的ロケーションが前記許可されたロケーションと整合することを確認することを含む請求項11に記載の方法。
【請求項13】
前記ロケーションインジケータが、前記第2のコンピューティングデバイスの第3のロケーション情報に少なくとも部分的に基づき、前記第3のロケーション情報が、前記第2のロケーション情報のソースとは別個のソースから導出され、
代表的ロケーション情報を生成することが、少なくとも前記第1のロケーション情報、前記第2のロケーション情報、および前記第3のロケーション情報に基づいて地理的ロケーションを組み合わせることを含み、
前記代表的ロケーション情報が許可されたロケーションと整合することを確認することが、前記第1のロケーション情報、前記第2のロケーション情報および前記第3のロケーション情報に少なくとも部分的に基づく請求項12に記載の方法。
【請求項14】
前記代表的ロケーションを生成することが、前記第1のロケーション情報および前記第2のロケーション情報に少なくとも部分的に基づいて重心を作り出すことを含み、前記重心が、前記第1のロケーション情報および前記第2のロケーション情報に少なくとも部分的に基づく地理的中心を示す請求項12に記載の方法。
【請求項15】
前記第1のロケーション情報および前記第2のロケーション情報に信頼性スコアを割り当てることと、前記重心を作り出すときに前記信頼性スコアを重みとして適用することと、を含む請求項14に記載の方法。
【請求項16】
前記第2のコンピューティングデバイスの前記ロケーションを示す前記データが第2のロケーション情報であり、前記ロケーションインジケータが、前記第1のコンピューティングデバイスの第1のロケーション情報に少なくとも部分的に基づき、前記第1のロケーション情報が、前記第1のコンピューティングデバイスが接続されたワイヤレスネットワークのWi-Fi識別子を含み、前記方法が、前記Wi-Fi識別子を前記第1のコンピューティングデバイスの地理的ロケーションに変換することを含む請求項11に記載の方法。
【請求項17】
前記第2のロケーション情報が前記第2のコンピューティングデバイスのIP(インターネットプロトコル)アドレスを含み、前記方法が、前記IPアドレスを前記第2のコンピューティングデバイスの地理的ロケーションに変換することを含む請求項16に記載の方法。
【請求項18】
前記第2のコンピューティングデバイスのロケーション情報が、前記第2のコンピューティングデバイスのGPS(全地球測位システム)座標を含み、前記ロケーションインジケータによって示された前記ロケーションが許可されたロケーションに一致することを検証することが、前記第2のコンピューティングデバイスの前記GPS座標が、所定の距離しきい値内まで、許可されたロケーションのGPS座標と整合することを確認することを含む請求項11に記載の方法。
【請求項19】
コンピュータネットワーク上で第1のコンピューティングデバイスから要求を受信することであって、前記要求が、前記コンピュータネットワーク上のリソースにアクセスするためのものであり、ロケーションインジケータを含み、前記ロケーションインジケータが、第2のコンピューティングデバイスのロケーションを示すデータに少なくとも部分的に基づくことと、
前記受信された要求の前記ロケーションインジケータに少なくとも部分的に基づいて、前記ロケーションインジケータによって示されたロケーションが、前記コンピュータネットワークの前記リソースにアクセスするための許可されたロケーションと整合することを検証することと、
前記ロケーションの前記検証に応答して、前記コンピュータネットワーク上の前記リソースにアクセスすることを前記第1のコンピューティングデバイスに許諾することと、
を行うように構成される制御回路を備えるサーバ。
【請求項20】
前記第2のコンピューティングデバイスの前記ロケーションを示す前記データが第2のロケーション情報であり、
前記ロケーションインジケータが、前記第1のコンピューティングデバイスの第1のロケーション情報に少なくとも部分的に基づき、
前記制御回路が、少なくともロケーション情報の第1のセットおよびロケーション情報の第2のセットに基づいて地理的ロケーションを組み合わせて、ロケーション情報の前記第1のセットおよびロケーション情報の前記第2のセットに少なくとも部分的に基づいて代表的ロケーションを生成するように構成され、前記ロケーションを検証するように構成された前記制御回路が、前記代表的ロケーションが許可されたロケーションと整合することを確認するように構成される請求項19に記載のサーバ。
【請求項21】
前記制御回路が、前記代表的ロケーションを重心として作り出すように構成され、前記重心が、少なくとも前記第1のロケーション情報および前記第2のロケーション情報によって形成される地理的中心を示す請求項20に記載のサーバ。
【国際調査報告】