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

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

▶ プリューム デザイン インコーポレイテッドの特許一覧

特開2023-70663MACアドレスをランダム化及びスプーフィングする試みへの対抗、及びユーザ行動に基づくWi-Fiデバイスの識別
<>
  • 特開-MACアドレスをランダム化及びスプーフィングする試みへの対抗、及びユーザ行動に基づくWi-Fiデバイスの識別 図1
  • 特開-MACアドレスをランダム化及びスプーフィングする試みへの対抗、及びユーザ行動に基づくWi-Fiデバイスの識別 図2
  • 特開-MACアドレスをランダム化及びスプーフィングする試みへの対抗、及びユーザ行動に基づくWi-Fiデバイスの識別 図3
  • 特開-MACアドレスをランダム化及びスプーフィングする試みへの対抗、及びユーザ行動に基づくWi-Fiデバイスの識別 図4
  • 特開-MACアドレスをランダム化及びスプーフィングする試みへの対抗、及びユーザ行動に基づくWi-Fiデバイスの識別 図5
  • 特開-MACアドレスをランダム化及びスプーフィングする試みへの対抗、及びユーザ行動に基づくWi-Fiデバイスの識別 図6
  • 特開-MACアドレスをランダム化及びスプーフィングする試みへの対抗、及びユーザ行動に基づくWi-Fiデバイスの識別 図7
  • 特開-MACアドレスをランダム化及びスプーフィングする試みへの対抗、及びユーザ行動に基づくWi-Fiデバイスの識別 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023070663
(43)【公開日】2023-05-19
(54)【発明の名称】MACアドレスをランダム化及びスプーフィングする試みへの対抗、及びユーザ行動に基づくWi-Fiデバイスの識別
(51)【国際特許分類】
   H04L 41/0866 20220101AFI20230512BHJP
   H04L 12/22 20060101ALI20230512BHJP
   H04L 61/50 20220101ALI20230512BHJP
   H04W 84/12 20090101ALI20230512BHJP
   H04W 24/08 20090101ALI20230512BHJP
【FI】
H04L41/0866
H04L12/22
H04L61/50
H04W84/12
H04W24/08
【審査請求】未請求
【請求項の数】15
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2022178290
(22)【出願日】2022-11-07
(31)【優先権主張番号】17/521,949
(32)【優先日】2021-11-09
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】17/731,397
(32)【優先日】2022-04-28
(33)【優先権主張国・地域又は機関】US
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.UNIX
2.watchOS
3.Apple Watch
(71)【出願人】
【識別番号】518329826
【氏名又は名称】プリューム デザイン インコーポレイテッド
【氏名又は名称原語表記】PLUME DESIGN, INC.
【住所又は居所原語表記】325 Lytton Ave, Palo Alto, CA 94301 USA
(74)【代理人】
【識別番号】100145713
【弁理士】
【氏名又は名称】加藤 竜太
(74)【代理人】
【識別番号】100165157
【弁理士】
【氏名又は名称】芝 哲央
(74)【代理人】
【識別番号】100120684
【弁理士】
【氏名又は名称】宮城 三次
(72)【発明者】
【氏名】ジェン エヴァン
(72)【発明者】
【氏名】ナゲンドラ ヴァスデヴァン
(72)【発明者】
【氏名】チュー ティンイー
(72)【発明者】
【氏名】カルナム ラグハヴ
(72)【発明者】
【氏名】ホワイト ポール
(72)【発明者】
【氏名】ロウンスブロー デレク
(72)【発明者】
【氏名】ナヤック ススミタ
(72)【発明者】
【氏名】アガルワル プリーティ
(72)【発明者】
【氏名】マクファーランド ウィリアム ジェイ.
【テーマコード(参考)】
5K030
5K067
【Fターム(参考)】
5K030GA15
5K067AA21
5K067EE02
5K067EE10
5K067EE16
5K067HH36
5K067LL01
(57)【要約】      (修正有)
【課題】ユーザデバイスを識別するための装置及び方法を提供する。
【解決手段】MACアドレスをスティッチングするためのプロセスであって、Wi-Fiネットワーク上で動作する1つ以上のユーザデバイスを監視するステップ(802)と、1つ以上のユーザデバイスのそれぞれに関して、使用パラメータを分析するステップ(804)と、使用パラメータに基づいて、1つ以上のユーザデバイスを識別するステップ(806)と、を含む。また、1つ以上のユーザデバイスのそれぞれに関する使用パラメータを経時的に分析するステップを含んでもよい。さらに、経時的に分析された使用パラメータに基づいて、1人以上のユーザに関連する1つ以上の行動モデルを作成するステップを含んでもよく、1つ以上の行動モデルそれぞれは、ユーザがユーザデバイスの少なくとも1つをどのように使用するかに応じてそれぞれのユーザの使用パターンを表すことができる。
【選択図】図8
【特許請求の範囲】
【請求項1】
Wi-Fiネットワーク(10、30、32、33)上で動作する1つ以上のユーザデバイス(16)を監視するステップ(802)と、
前記1つ以上のユーザデバイス(16)のそれぞれに関して、使用パラメータ及び動作パラメータのうちの1つ以上を分析するステップ(804)と、
前記1つ以上のユーザデバイス(16)のメディアアクセス制御(MAC)アドレスランダム化に応答して(806)、使用パラメータ及び動作パラメータの前記1つ以上に基づいて、前記1つ以上のユーザデバイス(16)を識別するステップと、
を含む、方法(800)。
【請求項2】
前記1つ以上のユーザデバイス(16)のそれぞれに関連付けられたデバイス識別子を取得するステップと、
前記1つ以上のユーザデバイス(16)のそれぞれの前記デバイス識別子を、使用パラメータ及び動作パラメータのうちの前記1つ以上に基づいて、動作アイデンティティと関連付けるステップと、
をさらに含む、請求項1に記載の方法(800)。
【請求項3】
前記Wi-Fiネットワーク(10、30、32、33)上で動作する未確認ユーザデバイス(16)に関して新しいMACアドレスが検索されたときに検出するステップと、
前記未確認ユーザデバイス(16)の現在の使用パラメータ及び動作パラメータのうちの1つ以上を分析するステップと、
前記未確認ユーザデバイス(16)の現在の使用パラメータ及び動作パラメータのうちの前記1つ以上を、以前に識別された前記1つ以上のユーザデバイス(16)の現在の使用パラメータ及び動作パラメータのうちの1つ以上と比較するステップと、
をさらに含む、請求項2に記載の方法(800)。
【請求項4】
前記1つ以上のユーザデバイス(16)のそれぞれに関する使用パラメータ及び動作パラメータのうちの前記1つ以上を経時的に分析するステップと、
経時的に分析された1つ以上の使用パラメータ及び動作パラメータに基づいて、1人以上のユーザに関連する1つ以上の行動モデルを作成するステップであって、各行動モデルは、それぞれのユーザが前記1つ以上のユーザデバイス(16)の少なくとも1つを使用する方法に従って、それぞれのユーザのパターンを表現する、ステップと、
をさらに含む、請求項1~3のいずれか一項に記載の方法(800)。
【請求項5】
使用パラメータ及び動作パラメータのうちの前記1つ以上を経時的に分析するステップは、前記1つ以上の行動モデルを作成するために機械学習技術を利用することを含む、請求項4に記載の方法(800)。
【請求項6】
前記使用パラメータは、
前記1つ以上のユーザデバイス(16)にインストールされた1つ以上のアプリのアイデンティティと、
前記1つ以上のユーザデバイス(16)にインストールされた1つ以上のアプリのカテゴリと、
アプリ使用情報であって、前記アプリ使用情報が、1つ以上のアプリの使用頻度、前記1つ以上のアプリのそれぞれに費やされた時間、アプリ使用に関連する通信の種類、及びアプリ使用の時間帯のうちの1つ以上を含む、アプリ使用情報と、
前記1つ以上のユーザデバイス(16)によってアクセスされた1つ以上のウェブサイト又はドメインのアイデンティティと、
前記1つ以上のユーザデバイス(16)によってアクセスされた前記ウェブサイト又はドメインのカテゴリと、
前記1つ以上のユーザデバイス(16)のオープンポート、ネットワークサービス、セキュリティレベル、セキュリティポリシー、潜在的なセキュリティ脆弱性のうちの1つ以上と、
のうちの1つ以上に関連する、請求項1~5のいずれか一項に記載の方法(800)。
【請求項7】
インストールされた1つ以上のアプリのアイデンティティ、アプリ使用情報、及びブラウジングパターンのうちの1つ以上を含む複数のメトリクスの加重値に基づいて、前記1つ以上のユーザデバイス(16)のそれぞれのアイデンティティを精緻化するステップであって、前記加重値が、前記メトリクスのそれぞれの一意性に関連する、ステップ
をさらに含む、請求項1~6のいずれか一項に記載の方法(800)。
【請求項8】
前記1つ以上のユーザデバイス(16)のそれぞれのアイデンティティを、前記デバイスの使用パラメータ、及び前記デバイスの決定されたデバイスタイプの両方に基づいて、精緻化するステップ
をさらに含む、請求項1~7のいずれか一項に記載の方法(800)。
【請求項9】
前記1つ以上のユーザデバイスは、1つ以上のスマートフォン、コンピュータ、ラップトップ、タブレット、スマートテレビ、モノのインターネット(IoT)デバイス、及び/又はメディアプレーヤを含む、請求項1~8のいずれか一項に記載の方法(800)。
【請求項10】
前記使用パラメータは、デバイスベースの行動に関連しており、前記デバイスベースの行動は、Wi-Fiアクセスポイント使用、Wi-Fiネットワーク接続パターン、Bluetooth(登録商標)関連送信、及びデバイスポート使用のうちの1つ以上を含む、請求項1~9のいずれか一項に記載の方法(800)。
【請求項11】
使用パラメータ及び動作パラメータの現在の1つ以上と、使用パラメータ及び動作パラメータの格納された1つ以上との間の関係に基づいて、信頼度スコアを計算するステップと、
前記信頼度スコアが所定の閾値を超えるかどうかを決定するステップと、
をさらに含む、請求項1~10のいずれか一項に記載の方法(800)。
【請求項12】
前記関係は、一致デバイス動作要因、一致デバイス特徴、一致デバイス特徴の一意性、デバイス特徴の加重和、一致デバイス特徴の数、及びデバイス一致技術の機械学習(ML)モデルのうちの1つ以上を含む、請求項11に記載の方法(800)。
【請求項13】
前記動作パラメータは、アドレス解決プロトコル(ARP)、論理リンク制御(LLC)、インターネット制御メッセージプロトコル(ICMP)、ICMPバージョン6(ICMPv6)、ブートストラッププロトコル(BOOTP)、ネットワーク時間プロトコル(NTP)、送信制御プロトコル(TCP)、トランスポート層セキュリティ(TLS)、動的ホスト構成プロトコル(DHCP).DHCPバージョン6(DHCPv6)、ドメインネームシステム(DNS)、マルチキャストDNS(mDNS)、ユーザエージェント、ユニバーサルプラグアンドプレイ(UPNP)、共有シリアルデータプロトコル(SSDP)、デバイス能力情報、ポート情報、プロトコル情報、5タプルのインターネットプロトコル(IP)データのうちの1つ以上を介して得られた情報を含むネットワーキングメタデータである、請求項1~12のいずれか一項に記載の方法(800)。
【請求項14】
前記識別することに基づいて、所与のデバイス(16)に対する設定及び制御を転送するステップ
をさらに含む、請求項1~13のいずれか一項に記載の方法(800)。
【請求項15】
1つ以上のプロセッサ(202)と、
実行されたときに、前記1つ以上のプロセッサに請求項1~14のいずれか一項に記載の方法(800)を実施させる命令を格納するメモリ(210)と、
を備える、装置(200)。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、一般に、ネットワーキングのシステム及び方法に関する。より具体的には、本開示は、ネットワーキング環境において、メディアアクセス制御(MAC)アドレス等のデバイス識別子をランダム化又はスプーフィングする試みに対抗することと、例えば、MACアドレスをスティッチングするように、ユーザ行動に基づいてWi-Fiネットワーク内のデバイスを識別することに関する。
【背景技術】
【0002】
Wi-Fiネットワークは、様々なデバイス(例えば、モバイルデバイス、スマートフォン、コンピュータ、ラップトップ、タブレット、テレビ、スマートテレビ、モノのインターネット(IoT)デバイス、メディアプレーヤ等)にネットワーク接続を提供するために配備されている。デバイスのメディアアクセス制御(MAC)アドレスは、デバイスを一意に識別するだけでなく、デバイスベンダ、デバイスタイプ等も識別する一意の識別子である。すなわち、Wi-Fiネットワークは、接続デバイスを一意に追跡するためにMACアドレスを利用する。
【0003】
MACアドレスは、ネットワークのローカルWi-Fiセクション等のネットワークセグメント内の通信において、ネットワークアドレスとして使用され得る。それは、イーサネット(登録商標)、Wi-Fi、及びBluetooth(登録商標)通信で使用され得る。開放型システム間相互接続(OSI)ネットワークモデル内では、MACアドレスは、データリンク層の媒体アクセス制御プロトコル副層で使用される。MACアドレスは、通常、2桁の16進数からなる6つのグループによって認識される。
【0004】
MACアドレスは、製造業者の組織一意識別子(OUI)のようなイーサネット(登録商標)ハードウェアアドレスとして、デバイス製造業者によって割り当てられることがある。デバイスのMACアドレスは、読み出し専用メモリ(ROM)のようなハードウェアに格納されることがある。アドレスは、ユニバーサル管理アドレス(UAA)又はローカル管理アドレス(LAA)のいずれかにすることができる。
【0005】
場合によっては、ネットワークインターフェースは、これらのMACアドレスを変更することを可能にすることがある。例えば、ほとんどのUnix系システムでは、コマンドユーティリティ「ifconfig」を使用してリンクアドレスエイリアスを削除及び追加することができ、どのアドレスをアクティブにするかを指定するために使用することができる。このように、一部の構成では、ブートプロセス中やネットワーク接続を確立する前等、特定の時点でMACアドレスのランダム化できる。
【0006】
MACアドレスのスプーフィングは、コンピュータシステムのセキュリティの脆弱性を悪用するために実行されることがある。Apple iOSやAndroid等のいくつかの最新のオペレーティングシステム、特にモバイルデバイスでは、追跡システムを回避するために無線アクセスポイントをスキャンする際に、ネットワークインターフェースへのMACアドレスの割り当てをランダム化するように設計されている。携帯電話の移動の追跡を回避するために、Appleや他のベンダは、iOS(及び他の)デバイスにおいて、ネットワークをスキャンする際にMACアドレスをランダム化することがよくある。また、MACアドレスの匿名化技術を使用して、ユーザが匿名のままでいられるようにすることもできる。
【0007】
Appleプラットフォーム及び他のベンダの類似のプラットフォームは、特定のWi-Fiネットワークに関連しないWi-Fiスキャンを実行するときに、ランダム化されたMACアドレスを使用することができる。これらのスキャンは、既存のWi-Fiネットワークを見つけ、接続するために実行することができる。Wi-Fi MACアドレスのランダム化は、iPhone(登録商標) 5及びそれ以降のモデルでサポートされている。Appleプラットフォームは、拡張プリファードネットワークオフロード(ePNO)スキャンを行う際にもランダム化されたMACアドレスを使用し、デバイスが特定の場所の近くにあるかどうかを判定するロケーションベースのリマインダー等、ジオフェンスを使用するアプリケーションのロケーションサービスを使用する際に実行されるこの場合、デバイスのMACアドレスは、Wi-Fiネットワークから切断された場合等に変更される可能性があるため、デバイスがセルラーネットワークに接続されている場合でも、MACアドレスを使用してデバイスを持続的に追跡することはできない。また、iOS 14、iPad(登録商標)OS 14、及びwatchOS 7では、新しいWi-Fiプライバシー機能が導入されており、iPhone(登録商標)、iPad(登録商標)、iPod(登録商標) touch、又はApple WatchがWi-Fiネットワークに接続すると、固有の(すなわちランダム化された)MACアドレスで自身を識別するようになっている。この機能及びその他のプライバシー機能は、ユーザが無効にすることも、又はWi-Fiペイロードの新しいオプションを使用して無効にすることもできる。特定の状況下では、デバイスは、実際のMACアドレスにフォールバックする。
【0008】
MACアドレスランダム化及び匿名化技術のいくつかの問題は、正当かつ有用な機能を抑制する結果となるMACアドレスの一方向機能を含む可能性があることである。例えば、Wi-Fiシステムで使用される親制御機能では、MACアドレスを使用してより容易に識別される特定のデバイスに特定の制御を提供することが有益である。また、アプリケーションの機能に一貫性を持たせるために、追跡システムを含めることもユーザにとって有益な場合がある。例えば、Google、Apple等の正規の企業がユーザの動きを追跡することで、ハードウェア自体だけでなく、追跡している人のアイデンティティを保持している。したがって、MACアドレス処理の分野では、デバイスの寿命を通じて継続性を生み出すために、デバイス識別子のスプーフィング、ランダム化、匿名化等を防止することが求められている。
【0009】
また、Apple、Android等のデバイスのオペレーティングシステム(OS)がMACアドレスのランダム化を実装している場合、結果として、ネットワークベースのソリューションが、ネットワークトラフィック分析からデバイスを一意に識別するためにMACを使用できない可能性がある。さらに、全てのOSベンダは、プライバシーへの取り組みをますます厳しくしており、デバイスの追跡に使用できる他の指標を不明瞭にしている。例えば、Wi-Fi(すなわち、IEEE 802.11)は、ランダムなシーケンス番号を使用すること、及び/又はプローブメッセージを匿名化することがある。この傾向は続く可能性があり、ネットワークベースのソリューションが、プロトコルフィールド、あるいはプロトコル仕様又はOSベンダによって制御される他のデータを使用してデバイスを追跡することがより困難になる可能性がある。したがって、ベンダが所有するソフトウェア及びコンポーネント(例えば、ネットワーキングディスカバリープロトコル)から独立したメカニズムが必要とされている。
【発明の概要】
【0010】
本開示は、異種のデバイス識別子が同じ物理デバイスを表すために使用される場合を決定するためのシステム、方法、及び非一時的なコンピュータ可読媒体に関する。この場合、本開示の実施形態は、そうでなければ互いに独立していると考えられるデータベース内に格納された情報のセット間にリンク(例えば、関連付け、スティッチング、関係付け等)を形成するように構成される。特定の動作パラメータ、ネットワークメタデータ等を分析することによって、本実施形態は、2つ以上の異なるデバイス識別子がいつリンクされ、スティッチングされ、関係付けられるべきかを決定するように構成される。
【0011】
一実装による方法は、ネットワークのセクションで動作するデバイスの第一のセットに関連する動作パラメータの第一のセットを取得するステップを含み、動作パラメータの第一のセットは、デバイスの第一のセットを表すデバイス識別子の少なくとも第一のセットを含んでもよい。方法は、また、ネットワークのそのセクションで動作するデバイスの第二のセットに関連する動作パラメータの第二のセットを取得するステップを含み、動作パラメータの第二のセットは、デバイスの第二のセットを表すデバイス識別子の少なくとも第二のセットを含んでもよい。また、方法は、デバイス識別子の第一のセットをデバイス識別子の第二のセットと比較して、非一致デバイス識別子を見つけるステップを含む。次いで、方法は、デバイス識別子の第一のセット及び第二のセットの中に非一致デバイス識別子があるかどうかを決定するステップを含む。非一致デバイス識別子に関して、方法は、動作パラメータの第一のセット及び動作パラメータの第二のセットを分析し、デバイス識別子の第一のセットのデバイス識別子及びデバイス識別子の第二のセットのデバイス識別子が同じデバイスを表す可能性が高いかどうかを決定するステップを含む。
【0012】
方法は、非一致(例えば、異なる番号)でありながら、同じデバイスを表すデバイス識別子を関連付けるステップを含んでもよい。関連付けは、デバイス識別子がある時点で変更されていたものの、2つ(又はそれ以上)のデバイス識別子が実際には同じ物理デバイスを表すことを記録するために、2つのデバイス識別子の情報を一緒にリンクすることを含んでもよい。関連付け又はリンクは、適切なデータベース内のデータの何らかの結合を含んでもよい。いくつかの実施形態によれば、方法は、追加のステップをさらに含んでもよい。例えば、方法は、デバイス識別子の第一のセットをデータベースに格納し、デバイス識別子の第二のセットをデータベースに格納し、その後、データベースにおいて、同じデバイスを表す可能性が高い非一致デバイス識別子を関連付けることができる。場合によっては、第一及び第二のデバイス識別子のセットは、メディアアクセス制御(MAC)アドレスが含んでもよい。また、動作パラメータの第一のセットのメトリクスは、以前の時間枠で測定されてもよく、動作パラメータの第二のセットのメトリクスは、後続の時間枠で測定されてもよい。
【0013】
また、デバイス識別子の第一のセットのデバイス識別子とデバイス識別子の第二のセットのデバイス識別子とが同じデバイスを表す可能性が高いかどうかを決定するステップは、動作パラメータの第一及び第二のセット間の関係に基づいて信頼度スコアを計算するステップと、次に信頼度スコアが所定の閾値を超えたかどうかを決定するステップを含んでもよい。関係は、例えば、a)一致デバイス動作要因、b)一致デバイス特徴、c)一致デバイス特徴の一意性、d)デバイス特徴の加重和、e)一致デバイス特徴の数、f)デバイス一致技術の機械学習(ML)モデル、及び/又は他のタイプの一致特徴を含んでもよい。動作パラメータの第一及び第二のセットには、a)デバイス識別子が最初に使用される時間、b)デバイス識別子がもはや使用されなくなる時間、c)ソフトウェア又はファームウェアが新たにロールアウト又はアップグレードされる時間、d)デバイスのタイプ、e)デバイスのオペレーティングシステム、f)デバイスの言語、g)使用される宛先ポート又はアドレス、h)送信パターン、i)パケット長、j)パケット送信に関する時間情報、k)デバイスが使用する1つ以上のアプリケーション、l)デバイス接続情報、m)デバイス切断情報、n)ネットワークのセクションにおけるデバイスの位置、o)補足デバイス識別情報、p)デバイスが使用するキャリアサービス、及び/又は他の適切なタイプの動作パラメータを含んでもよい。
【0014】
いくつかの実施形態では、動作パラメータの第一及び第二のセットは、ネットワーキングメタデータとして構成されてもよく、これは、a)アドレス解決プロトコル(ARP)、b)論理リンク制御(LLC)、c)インターネット制御メッセージプロトコル(ICMP)、d)ICMPバージョン6(ICMPv6)、e)ブートストラッププロトコル(BOOTP)、f)ネットワーク時間プロトコル(NTP)、g)送信制御プロトコル(TCP)、h)トランスポート層セキュリティ(TLS)、i)動的ホスト構成プロトコル(DHCP)、j)DHCPバージョン6(DHCPv6)、k)ドメインネームシステム(DNS)、l)マルチキャストDNS(mDNS)、m)ユーザエージェント、n)ユニバーサルプラグアンドプレイ(UPNP)、o)共有シリアルデータプロトコル(SSDP)、p)デバイス能力情報、q)ポート情報、r)プロトコル情報、s)5タプルのインターネットプロトコル(IP)データ、及び/又は他のネットワークプロトコルによるものを介して得られる情報を含む可能性がある。
【0015】
いくつかの実施形態によれば、上述したネットワークのセクションは、ローカルWi-Fiネットワークであってもよい。デバイス識別子の第一のセットのデバイス識別子とデバイス識別子の第二のセットのデバイス識別子とが同じデバイスを表す可能性が高いかどうかを決定するステップは、デバイス識別子の第一のセットの非一致デバイス識別子のそれぞれの最後の発生の周りに終了時間窓を設定することと、デバイス識別子の第二のセットの非一致デバイス識別子のそれぞれの最初の発生の周りに開始時間窓を設定することと、デバイス識別子の第一のセットの単一のデバイス識別子が残り、デバイス識別子の第二のセットの単一のデバイス識別子が残るまで、終了時間窓及び開始時間窓を狭めることと、を含んでもよい。
【0016】
デバイス識別子の第一のセットのデバイス識別子とデバイス識別子の第二のセットのデバイス識別子とが同じデバイスを表す可能性が高いかどうかを決定するステップは、また、デバイス識別子の第一のセットに関連付けられたパケット送信イベントを識別するために使用されるシーケンス番号の第一のセットを格納することと、デバイス識別子の第二のセットに関連付けられたパケット送信イベントを識別するために使用されるシーケンス番号の第二のセットを格納することと、第一のデバイス識別子に関連するシーケンス番号の第一のセットのシーケンス番号の終了時刻と第二のデバイス識別子に関連するシーケンス番号の第二のセットのシーケンス番号の開始時刻との間の差が所定の閾値以下である場合に、デバイス識別子の第一のセットの第一のデバイス識別子とデバイス識別子の第二のセットの第二のデバイス識別子とを関連付けることと、を含んでもよい。
【0017】
いくつかの実施形態では、方法は、また、第一及び第二のデバイスセットの1つ以上のデバイス上でアプリケーションを動作させて、1つ以上のデバイスを個別に識別するステップを含んでもよい。例えば、1つ以上のデバイスを個別に識別するステップは、a)Wi-Fi Protected Access(WPA)エンタープライズを使用すること、b)インストールされた証明書を使用すること、c)メディアアクセス制御(MAC)アドレスを読み取ること、d)以前にインストールされた固有の識別コードを取得すること、e)キャプティブポータルを通じてユーザによって供給された識別子を受け取ること、f)ユーザプロファイル情報にアクセスすること、g)相関させるデバイスに関してユーザフィードバックを受信すること、及び/又は他の識別手順を含んでもよい。さらに、方法は、いくつかの実装によれば、非一致デバイス識別子によって表されると決定された各デバイスに対して、新しい識別子を作成するステップを含んでもよい。xまた、方法は、実デバイス識別子、ランダム化されたデバイス識別子、及び新規の識別子を接続するマッピングテーブルを作成するステップを含んでもよい。
【0018】
いくつかの実施態様によれば、本開示は、行動情報、行動パターン、ユーザ習慣、使用情報、ユー傾向等に基づいてユーザデバイスを識別するためのシステム及び方法についてさらに説明する。一実装では、ユーザデバイスを識別するためのプロセスは、Wi-Fiネットワーク上で動作する1つ以上のユーザデバイスを監視するステップを含んでもよい。プロセスは、1つ以上のユーザデバイスのそれぞれに関する使用パラメータを分析するステップをさらに含んでもよい。また、プロセスは、使用パラメータに基づいて1つ以上のユーザデバイスを識別することを含んでもよい。
【0019】
いくつかの実施形態では、プロセスは、a)1つ以上のユーザデバイスのそれぞれに関連付けられたデバイス識別子を取得するステップと、b)1つ以上のユーザデバイスのそれぞれのデバイス識別子を、使用パラメータに基づく動作アイデンティティに関連付けるステップとをさらに含んでもよい。例えば、1つ以上のユーザデバイスのそれぞれに関連付けられたデバイス識別子は、メディアアクセス制御(MAC)アドレスであってもよい。プロセスは、また、a)Wi-Fiネットワーク上で動作する未確認ユーザデバイスに関して新しいMACアドレスが検索されたときに検出するステップと、b)未確認ユーザデバイスの現在の使用パラメータを分析するステップと、c)未確認ユーザデバイスの現在の使用パラメータを1つ以上の以前に識別されたユーザデバイスの使用パラメータと比較するステップとを含んでもよい。現在の使用パラメータが以前に識別されたユーザデバイスの1つの使用パラメータと一致すると決定することに応答して、プロセスは、新しいMACアドレスを対応する以前に識別されたユーザデバイスのMACアドレスとスティッチングするステップを実行してもよい。あるいは、現在の使用パラメータが以前に識別された1つ以上のユーザデバイスの使用パラメータと一致しないと決定することに応答して、プロセスは、未確認のユーザデバイスをWi-Fiネットワーク上で監視されるべき新たなデバイスとして、タグ付けするステップを実行してもよい。
【0020】
プロセスは、また、1つ以上のユーザデバイスのそれぞれに関する使用パラメータを経時的に分析するステップを含んでもよい。次に、経時的に分析された使用パラメータに基づいて、プロセスは、1人以上のユーザに関連する1つ以上の行動モデルを作成するステップを含んでもよく、それによって、各行動モデルは、ユーザがユーザデバイスの少なくとも1つをどのように使用するかに応じて、それぞれのユーザの使用パターンを表してもよい。いくつかの実施形態では、使用パラメータを経時的に分析するステップは、機械学習技術を利用して1つ以上の行動モデルを作成することを含んでもよい。プロセスは、a)1人以上のユーザを表すための1つ以上の固有ユーザ識別子を割り当てるステップと、b)1つ以上の固有ユーザ識別子を1つ以上の行動モデルに関連付けるステップとをさらに含んでもよい。また、プロセスは、対応する各ユーザの使用パラメータの変更に基づいて、1つ以上の行動モデルを再訓練するステップを含んでもよい。
【0021】
追加の実施形態によれば、本明細書に記載される使用パラメータは、1つ以上のユーザデバイスにインストールされた1つ以上のアプリのアイデンティティに関連してもよい。また、使用パラメータは、アプリ使用情報に関連していてもよく、アプリ使用情報は、a)1つ以上のアプリの使用頻度、b)1つ以上のアプリのそれぞれで費やされた時間、c)アプリ使用に関連する通信の種類、d)アプリ使用の時間帯、及び/又は他の情報を含んでもよい。さらに、使用パラメータは、1つ以上のユーザデバイスによってアクセスされた1つ以上のウェブサイト又はドメインのアイデンティティに関連してもよい。
【0022】
いくつかの実施形態では、プロセスは、複数のメトリクスの加重値に基づいて、1つ以上のユーザデバイスのそれぞれのアイデンティティを精緻化するステップを含んでもよい。メトリクスは、a)インストールされた1つ以上のアプリのアイデンティティ、b)アプリ使用情報、c)ブラウジングパターン、及び/又は他のメトリクスを含んでもよい。加重値は、例えば、メトリクスのそれぞれの一意性に関連してもよい。本明細書で言及されるユーザデバイスは、スマートフォン、コンピュータ、ラップトップ、タブレット、スマートテレビ、モノのインターネット(IoT)デバイス、メディアプレーヤ、又はWi-Fiネットワークと通信する他の適切なデバイスを含んでもよい。いくつかの実装では、使用パラメータは、a)Wi-Fiアクセスポイント使用、b)Wi-Fiネットワーク接続パターン、c)Bluetooth(登録商標)関連送信、d)デバイスポート使用、及び/又はデバイスに関連する他の行動等のデバイスベースの行動に関連してもよい。
【図面の簡単な説明】
【0023】
本開示は、様々な図面を参照して本明細書で図示され、説明される。その中で、同様の参照番号が、適宜、同様のシステムコンポーネント/方法ステップを示すために使用される。
【0024】
図1】クラウドベースの制御及び管理を有する分散型Wi-Fiシステムのネットワーク図である。
図2】従来の単一アクセスポイントシステム、Wi-Fiメッシュネットワーク、及びWi-Fiリピータネットワークに対する図1の分散型Wi-Fiシステムの動作の違いのネットワーク図である。
図3】クラウドで、他のシステムで、又はスタンドアロンで使用され得るサーバのブロック図である。
図4図1の分散型Wi-Fiシステム等で使用され得るモバイルデバイスのようなユーザデバイスのブロック図である。
図5】デバイス識別子が実際に同じデバイスを表すと判断される場合に異種のデバイス識別子を一緒に関連付けるためのプロセスを示すフロー図である。
図6】モバイルアプリのタイプに関するユーザデバイスのスクリーンショットの一例を示す図である。
図7】ユーザデバイスの異なるパラメータの重みの一例を示す表である。
図8】ユーザ行動に基づいてMACアドレスをスティッチングするためのプロセスを示すフロー図である。
【発明を実施するための形態】
【0025】
本開示は、ネットワーキング環境においてデバイス識別子を分析するためのシステム及び方法に関する。デバイス識別子(例えば、メディアアクセス制御(MAC)アドレス等)は、様々なネットワークデバイス(例えば、携帯電話)の寿命の間に変更されることがあるので、システム及び方法は、デバイスが2つ(以上)の異なるデバイス識別子によって表されたかどうかをネットワークで得られた様々なメタデータから決定するように構成されている。デバイスを正確に追跡するために、本実施形態は、実際に同じ物理デバイスを表す全ての異なるデバイス識別子の間で関連付け又はリンクを形成するように構成されてもよい。
【0026】
システム及び方法は、ネットワークのセクションで動作するデバイスの第一のセットに関連する動作パラメータの第一のセットを取得してもよい。動作パラメータのこの第一のセットは、デバイスの第一のセットを表すデバイス識別子の少なくとも第一のセットを含んでもよい。システム及び方法は、また、ネットワークのそのセクションで動作するデバイスの第二のセットに関連する動作パラメータの第二のセットを取得してもよい。動作パラメータのこの第二のセットは、デバイスの第二のセットを表すデバイス識別子の少なくとも第二のセットを含んでもよい。また、システム及び方法は、デバイス識別子の第一のセットをデバイス識別子の第二のセットと比較して、非一致デバイス識別子を見つけ、デバイス識別子の第一のセット及び第二のセットの中に非一致デバイス識別子があるかどうかを判断してもよい。非一致デバイス識別子に関して、システム及び方法は、動作パラメータの第一のセット及び動作パラメータの第二のセットを分析し、デバイス識別子の第一のセットのデバイス識別子及びデバイス識別子の第二のセットのデバイス識別子が同じデバイスを表す可能性が高いかどうかを判断してもよい。
【0027】
(分散型Wi-Fiシステム)
図1は、クラウド12サービスを介して制御が行われる分散型Wi-Fiシステム10のネットワーク図である。分散型Wi-Fiシステム10は、IEEE 802.11プロトコル及びそのバリエーションに従って動作し得る。分散型Wi-Fiシステム10は、複数のアクセスポイント14(アクセスポイント14A~14Hとしてラベル付けされる)を含み、これらは、住居、オフィス等の場所全体に分散され得る。すなわち、分散型Wi-Fiシステム10は、単一のアクセスポイント、リピータ、又はメッシュシステムを用いてサービスすることが非効率的又は非実用的である任意の物理的な場所での動作を企図している。本明細書で説明するように、分散型Wi-Fiシステム10は、ネットワーク、システム、Wi-Fiネットワーク、Wi-Fiシステム、クラウドベースシステム等と称されることもある。アクセスポイント14は、ノード、アクセスポイント、Wi-Fiノード、Wi-Fiアクセスポイント等と称することができる。アクセスポイント14の目的は、Wi-Fiクライアントデバイス16(Wi-Fiクライアントデバイス16A~16Eと表記)にネットワーク接続を提供することである。Wi-Fiクライアントデバイス16は、クライアントデバイス、ユーザデバイス、クライアント、Wi-Fiクライアント、Wi-Fiデバイス等と称されることもある。
【0028】
典型的な住宅配備では、分散型Wi-Fiシステム10は、家庭内に3つ~12、又はそれ以上のアクセスポイントを含み得る。多数のアクセスポイント14(分散型Wi-Fiシステム10ではノードと称されることもある)は、任意のアクセスポイント14間の距離が常に小さく、Wi-Fiサービスを必要とする任意のWi-Fiクライアントデバイス16までの距離も同様に小さいことを保証する。すなわち、分散型Wi-Fiシステム10の目的は、アクセスポイント14間の距離が、Wi-Fiクライアントデバイス16と関連するアクセスポイント14との間の距離と同様のサイズであることであり得る。このように距離が小さいため、消費者の家の隅々までWi-Fi信号によって十分にカバーされることが保証される。また、分散型Wi-Fiシステム10における任意の所与のホップが短く、ほとんど壁を通らないことも保証される。この結果、分散型Wi-Fiシステム10における各ホップについて非常に強い信号強度が得られ、高いデータレートの使用が可能になり、堅牢な動作が提供される。なお、当業者は、Wi-Fiクライアントデバイス16が、モバイルデバイス、タブレット、コンピュータ、家電機器、家庭用娯楽デバイス、テレビ、IoTデバイス、又は任意のネットワーク対応デバイスであり得ることを認識する。外部ネットワーク接続性のために、アクセスポイント14のうちの1つ以上は、モデム/ルータ18に接続でき、このモデム/ルータ18は、ケーブルモデム、デジタル加入者ループ(DSL)モデム、又は分散型Wi-Fiシステム10に関連する物理的場所に外部ネットワーク接続性をもたらす任意のデバイスであり得る。
【0029】
優れたカバレッジを提供する一方で、多数のアクセスポイント14(ノード)には、調整の問題がある。全てのアクセスポイント14を正しく構成し、効率的に通信させるためには、集中制御が必要である。このクラウド12サービスは、サーバ20を介して制御を提供することができ、このサーバ20は、インターネットを介して到達でき、ユーザデバイス22上で実行されるアプリケーション(「アプリ」)を介する等、リモートでアクセスできる。したがって、分散型Wi-Fiシステム10の実行は、一般に「クラウドサービス」として知られているものになる。サーバ20は、クラウド12を介して、測定データを受信し、測定データを解析し、それに基づいて分散型Wi-Fiシステム10内のアクセスポイント14を設定するように構成される。また、サーバ20は、Wi-Fiクライアントデバイス16のそれぞれがどのアクセスポイント14と接続(アソシエイト)するかを決定するように構成され得る。すなわち、例示的な態様において、分散型Wi-Fiシステム10は、アクセスポイント14及びWi-Fiクライアントデバイス16の動作を最適化、構成、及び監視するためのクラウドベースの制御(クラウドベースのコントローラ又はクラウド内のクラウドサービス)を含む。このクラウドベースの制御は、アクセスポイントにローカルにログインする等のローカルな設定に依存する従来の動作とは対照的である。分散型Wi-Fiシステム10では、制御及び最適化は、アクセスポイント14へのローカルなログインを必要とせず、ユーザデバイス22(又はローカルWi-Fiクライアントデバイス16)が、異種ネットワーク(分散型Wi-Fiシステム10とは異なるネットワーク)(例えば、LTE(登録商標)、別のWi-Fiネットワーク等)を介して、クラウド12内のサーバ20と通信を行う。
【0030】
アクセスポイント14は、接続性のための無線リンクと有線リンクとの両方を含むことができる。図1の例では、アクセスポイント14Aは、モデム/ルータ18への例示的なギガビットイーサネット(登録商標)(GbE)有線接続を有する。任意選択で、アクセスポイント14Bも、冗長性又は負荷分散のため等、モデム/ルータ18への有線接続を有する。また、アクセスポイント14A、14Bは、モデム/ルータ18への無線接続を有することもできる。アクセスポイント14は、クライアント接続のための無線リンク(クライアントリンクと称する)及びバックホールのための無線リンク(バックホールリンクと称する)を有することができる。分散型Wi-Fiシステム10は、クライアントリンク及びバックホールリンクが必ずしも同じWi-Fiチャネルを共有せず、それによって干渉を低減するという点で、従来のWi-Fiメッシュネットワークと異なる。すなわち、アクセスポイント14は、少なくとも2つのWi-Fi無線チャネルをサポートすることができ、このWi-Fi無線チャネルは、クライアントリンク又はバックホールリンクのいずれかを提供するために柔軟に使用することができ、モデム/ルータ18に接続するため、あるいは他のデバイスに接続するために少なくとも1つの有線ポートを有してもよい。分散型Wi-Fiシステム10では、アクセスポイント14の小さなサブセットのみがモデム/ルータ18との直接接続を必要とし、非接続アクセスポイント14は、バックホールリンクを介してモデム/ルータ18と通信して、接続アクセスポイント14に戻る。
【0031】
(従来のWi-Fiシステムと比較した分散型Wi-Fiシステム)
図2は、従来の単一アクセスポイントシステム30、Wi-Fiメッシュネットワーク32、及びWi-Fiリピータネットワーク33に対する分散型Wi-Fiシステム10の動作の差異を示すネットワーク図である。単一アクセスポイントシステム30は、単一の高出力アクセスポイント34に依存しており、このアクセスポイントは、場所(例えば、家)の全てのWi-Fiクライアントデバイス16にサービスを提供するために中央に配置されてもよい。再び、本明細書で説明するように、典型的な住宅では、単一アクセスポイントシステム30は、アクセスポイント34とWi-Fiクライアントデバイス16との間に、いくつかの壁、床等を有することがある。加えて、単一アクセスポイントシステム30は、単一チャネル上で動作し、近隣のシステムからの潜在的な干渉につながる。Wi-Fiメッシュネットワーク32は、Wi-Fiカバレッジを分散させる複数のメッシュノード36を有することによって、単一アクセスポイントシステム30の問題のいくつかを解決する。具体的には、Wi-Fiメッシュネットワーク32は、メッシュノード36が互いに完全に相互接続され、メッシュノード36のそれぞれとWi-Fiクライアントデバイス16との間でチャネルXのようなチャネルを共有することに基づいて動作する。すなわち、Wi-Fiメッシュネットワーク32は、完全に相互接続されたグリッドであり、同じチャネルを共有し、メッシュノード36とWi-Fiクライアントデバイス16との間で複数の異なる経路を可能にする。しかしながら、Wi-Fiメッシュネットワーク32は同じバックホールチャンネルを使用するので、ソースポイント間の各ホップは、データを配信するのに要するホップ数で、ネットワーク容量を分割する。例えば、Wi-Fiクライアントデバイス16にビデオをストリーミングするのに3ホップを要する場合、Wi-Fiメッシュネットワーク32には、1/3の容量しか残らない。Wi-Fiリピータネットワーク33は、Wi-Fiリピータ38に無線で結合されたアクセスポイント34を含む。Wi-Fiリピータネットワーク33は、スター型トポロジであり、そこでは、アクセスポイント14とWi-Fiクライアントデバイス16との間に最大で1つのWi-Fiリピータ38が存在する。チャネルの観点から、アクセスポイント34は、第一のチャネルCh.X上でWi-Fiリピータ38に通信することができ、Wi-Fiリピータ38は、第二のチャネルCh.Y上でWi-Fiクライアントデバイス16に通信することができる。
【0032】
分散型Wi-Fiシステム10は、Wi-Fi速度の低下を防ぐために、様々なホップに対して異なるチャネル又はバンドを使用することによって(注:いくつかのホップは同じチャネル/バンドを使用してもよいが、必須ではない)、全ての接続に対して同じチャネルを必要とするというWi-Fiメッシュネットワーク32の問題を解決している。例えば、分散型Wi-Fiシステム10は、アクセスポイント14間とWi-Fiクライアントデバイス16間(例えば、Ch.X、Y、Z、A)とで異なるチャネル/バンドを使用することができ、また、分散型Wi-Fiシステム10は、クラウド12による設定及び最適化に基づき、必ずしも全てのアクセスポイント14を使用する必要はない。分散型Wi-Fiシステム10は、複数のアクセスポイント14を提供することにより、単一アクセスポイントシステム30の問題を解決している。分散型Wi-Fiシステム10は、Wi-Fiクライアントデバイス16とゲートウェイとの間で最大でも2つの無線ホップを許容するWi-Fiリピータネットワーク33のように、スター型トポロジに制約されない。また、分散型Wi-Fiシステム10は、Wi-Fiクライアントデバイス16とゲートウェイとの間の経路が1つであるが、Wi-Fiリピータネットワーク33とは異なり、複数の無線ホップを許容するツリートポロジを形成している。
【0033】
Wi-Fiは、共有のシンプレックス・プロトコルであり、2つのデバイス間の1つの会話のみが任意の時間にネットワークで発生し得ることを意味し、一方のデバイスが話している場合、他方のデバイスは聞いている必要がある。異なるWi-Fiチャネルを使用することによって、複数の同時会話が分散型Wi-Fiシステム10において同時に起こり得る。アクセスポイント14の間で異なるWi-Fiチャネルを選択することにより、干渉及び輻輳を回避できる。クラウド12を介したサーバ20は、アクセスポイント14を最適化されたチャネルホップソリューションで自動的に構成する。分散型Wi-Fiシステム10は、消費者とそのWi-Fiクライアントデバイス16の刻々と変化するニーズをサポートするためにルートとチャネルを選択することができる。分散型Wi-Fiシステム10のアプローチは、(バックホール又はクライアント接続のいずれかにおいて)Wi-Fi信号が遠くまで移動する必要がないようにすることである。したがって、Wi-Fiメッシュネットワーク32又はWi-Fiリピータと同じチャネルで通信することによって、Wi-Fi信号は強いままであり、干渉を回避することができる。例示的な態様において、クラウド12内のサーバ20は、最良のユーザエクスペリエンスのために、チャネル選択を最適化するように構成される。
【0034】
注目すべきは、MACアドレスを識別するための本開示は、分散型Wi-Fiシステム10に限定されず、クラウド12を介する監視もローカル監視も含む、Wi-Fiネットワーク10、30、32、33のいずれかを企図することである。
【0035】
(クラウドベースのWi-Fi管理)
従来のWi-Fiシステムは、Wi-Fiネットワーク上のユーザが指定されたアドレス(例えば、192.168.1.1等)に接続するようなローカル管理を利用している。分散型Wi-Fiシステム10は、クラウド12内のサーバ20を介したクラウドベースの管理を行うように構成されている。また、単一アクセスポイントシステム30、Wi-Fiメッシュネットワーク32、及びWi-Fiリピータネットワーク33は、上述したように、クラウドベースの管理をサポートすることができる。例えば、AP34及び/又はメッシュノード36は、クラウド12内のサーバ20と通信するように構成することができる。この構成は、各デバイス等にインストールされたソフトウェアエージェント、例えば、OpenSyncを介することができる。本明細書で説明するように、クラウドベースの管理は、Wi-Fi関連のパフォーマンスメトリクスをクラウド12に報告することも、クラウド12からWi-Fi関連の構成パラメータを受信することも含む。ステム及び方法は、Wi-Fi関連のパフォーマンスメトリクスの報告のみをサポートする(が、クラウドベースの構成をサポートしない)システムを含む、任意のWi-Fiシステム(すなわち、分散型Wi-Fiシステム10、単一アクセスポイントシステム30、Wi-Fiメッシュネットワーク32、及びWi-Fiリピータネットワーク33等)との使用を企図する。
【0036】
クラウド12は、クラウドコンピューティングシステム及び方法を利用し、物理サーバ、ストレージ、ネットワーキング等を抽象化し、代わりに、これらをオンデマンドで弾力性のあるリソースとして提供する。米国国立標準技術研究所(NIST)は、簡潔で特定の定義を提供しており、その定義では、クラウドコンピューティングは、最小限の管理努力又はサービスプロバイダとの対話で、迅速にプロビジョニング及びリリースできる構成可能なコンピューティングリソース(例えば、ネットワーク、サーバ、ストレージ、アプリケーション、及びサービス)の共有プールへの便利でオンデマンドによるネットワークアクセスを可能にするためのモデルであると記述している。クラウドコンピューティングは、アプリケーションのクライアントバージョンをインストールする必要がなく、クライアントのウェブブラウザ等で実行され管理されるアプリケーションをサーバから提供するという点で、従来のクライアントサーバモデルとは異なる。一元化により、クラウドサービスプロバイダは、クライアントに提供されるブラウザベースのアプリケーションやその他のアプリケーションのバージョンを完全に制御できるようになり、個々のクライアントコンピューティングデバイスでのバージョンアップやライセンス管理が不要になる。SaaSという言葉が、クラウドコンピューティングを通じて提供されるアプリケーションプログラムを表現するために使用されることがある。提供されるクラウドコンピューティングサービス(あるいは既存の全てのクラウドサービスの集合体)の一般的な略語は、「クラウド」である。
【0037】
(例示的なサーバアーキテクチャ)
図3は、クラウド12で、他のシステムで、又はスタンドアロンで使用され得るサーバ200のブロック図である。サーバ200は、ハードウェアアーキテクチャの観点から、一般に、プロセッサ202、入力/出力(I/O)インターフェース204、ネットワークインターフェース206、データストア208、及びメモリ210を含むデジタルコンピュータであってもよい。図3は、サーバ200を過度に単純化した方法で描いており、実際の実施形態は、本明細書では詳細に説明しない既知又は従来の動作特徴をサポートするために、追加のコンポーネント及び適切に構成された処理ロジックを含み得ることを当業者は理解できるはずである。コンポーネント(202、204、206、208、及び210)は、ローカルインターフェース212を介して通信可能に結合される。ローカルインターフェース212は、例えば、当技術分野で知られているように、1つ以上のバス又は他の有線又は無線接続であってもよいが、これらに限定されない。ローカルインターフェース212は、通信を可能にするために、特に、コントローラ、バッファ(キャッシュ)、ドライバ、リピータ、及びレシーバ等の、簡略化のために省略されている追加の要素を有していてもよい。さらに、ローカルインターフェース212は、前述のコンポーネント間の適切な通信を可能にするために、アドレス、制御、及び/又はデータ接続を含んでもよい。
【0038】
プロセッサ202は、ソフトウェア命令を実行するためのハードウェアデバイスである。プロセッサ202は、任意のカスタムメイド又は市販のプロセッサ、中央処理装置(CPU)、サーバ200に関連する複数のプロセッサのうちの補助プロセッサ、半導体ベースのマイクロプロセッサ(マイクロチップ又はチップセットの形態)、又は一般にソフトウェア命令を実行するための任意のデバイスであってもよい。サーバ200が動作しているとき、プロセッサ202は、メモリ210内に格納されたソフトウェアを実行し、メモリ210との間でデータを通信し、ソフトウェア命令に従ってサーバ200の動作を一般に制御するように構成される。I/Oインターフェース204は、1つ以上のデバイス又はコンポーネントからユーザ入力を受信するために、及び/又は1つ以上のデバイス又はコンポーネントにシステム出力を提供するために使用されてもよい。ユーザ入力は、例えば、キーボード、タッチパッド、及び/又はマウスを介して提供されてもよい。システム出力は、ディスプレイデバイス及びプリンタ(図示せず)を介して提供されてもよい。I/Oインターフェース204は、例えば、シリアルポート、パラレルポート、小型コンピュータシステムインターフェース(SCSI)、シリアルATA(SATA)、ファイバチャネル、Infiniband、iSCSI、PCI Expressインターフェース(PCI-x)、赤外線(IR)インターフェース、無線周波数(RF)インターフェース、及び/又はユニバーサルシリアルバス(USB)インターフェースを含んでもよい。
【0039】
ネットワークインターフェース206は、サーバ200がインターネット等のネットワーク上で通信することを可能にするために使用されてもよい。ネットワークインターフェース206は、例えば、イーサネット(登録商標)カード又はアダプタ(例えば、10BaseT、ファーストイーサネット(登録商標)、ギガビットイーサネット(登録商標)、10GbE)又は無線ローカルエリアネットワーク(WLAN)カード又はアダプタ(例えば、802.11a/b/g/n/ac)を含んでもよい。ネットワークインターフェース206は、ネットワーク上での適切な通信を可能にするために、アドレス、制御、及び/又はデータ接続を含んでもよい。データストア208は、データを格納するために使用されてもよい。データストア208は、揮発性メモリ要素(例えば、DRAM、SRAM、SDRAM等のランダムアクセスメモリ(RAM))、不揮発性メモリ要素(例えば、ROM、ハードドライブ、テープ、CDROM等)、及びそれらの組み合わせのいずれかを含んでもよい。さらに、データストア208は、電子、磁気、光学、及び/又は他のタイプのストレージ媒体を組み込んでもよい。一例では、データストア208は、例えば、サーバ200内のローカルインターフェース212に接続された内部ハードドライブのように、サーバ200の内部に配置されてもよい。さらに、別の実施形態では、データストア208は、例えば、I/Oインターフェース204(例えば、SCSI又はUSB接続)に接続された外部ハードドライブのように、サーバ200の外部に配置されてもよい。さらなる実施形態では、データストア208は、例えば、ネットワーク接続ファイルサーバのように、ネットワークを介してサーバ200に接続されてもよい。
【0040】
メモリ210は、揮発性メモリ要素(例えば、DRAM、SRAM、SDRAM等のランダムアクセスメモリ(RAM))、不揮発性メモリ要素(例えば、ROM、ハードドライブ、テープ、CDROM等)、及びそれらの組み合わせのいずれかを含んでもよい。さらに、メモリ210は、電子、磁気、光学、及び/又は他のタイプのストレージ媒体を組み込んでもよい。メモリ210は、様々なコンポーネントが互いに遠隔に位置しているが、プロセッサ202によってアクセスすることができる、分散型アーキテクチャを有していてもよいことに留意されたい。メモリ210内のソフトウェアは、1つ以上のソフトウェアプログラムを含んでもよく、各ソフトウェアプログラムは、論理機能を実装するための実行可能命令の順序付きリストを含む。メモリ210内のソフトウェアは、適切なオペレーティングシステム(O/S)214と、1つ以上のプログラム216とを含む。オペレーティングシステム214は、1つ以上のプログラム216等の他のコンピュータプログラムの実行を本質的に制御し、スケジューリング、入出力制御、ファイル及びデータ管理、メモリ管理、及び通信制御と関連サービスを提供する。1つ以上のプログラム216は、本明細書に記載される様々なプロセス、アルゴリズム、方法、技術等を実装するように構成されてもよい。
【0041】
(例示的なユーザデバイスアーキテクチャ)
図4は、ユーザデバイス22等に使用され得るユーザデバイス300のブロック図である。ユーザデバイス300は、ハードウェアアーキテクチャの観点から、一般に、プロセッサ302、入力/出力(I/O)インターフェース304、無線機306、データストア308、及びメモリ310を含むデジタルデバイスとすることができる。図4は、ユーザデバイス300を過度に単純化した方法で描いており、実際の実施形態は、本明細書では詳細に説明されていない既知の又は従来の動作特徴をサポートするために、追加のコンポーネント及び適切に構成された処理ロジックを含むことができることを当業者は理解できるはずである。コンポーネント(302、304、306、308、及び302)は、ローカルインターフェース312を介して通信可能に結合される。ローカルインターフェース312は、例えば、当技術分野で知られているように、1つ以上のバス又は他の有線又は無線接続とすることができるが、これらに限定されない。ローカルインターフェース312は、通信を可能にするために、特に、コントローラ、バッファ(キャッシュ)、ドライバ、リピータ、及びレシーバ等の、簡略化のために省略されている追加の要素を有することができる。さらに、ローカルインターフェース312は、前述のコンポーネント間の適切な通信を可能にするために、アドレス、制御、及び/又はデータ接続を含んでもよい。
【0042】
プロセッサ302は、ソフトウェア命令を実行するためのハードウェアデバイスである。プロセッサ302は、任意のカスタムメイド又は市販のプロセッサ、中央処理装置(CPU)、ユーザデバイス300に関連する複数のプロセッサのうちの補助プロセッサ、半導体ベースのマイクロプロセッサ(マイクロチップ又はチップセットの形態)、又は一般にソフトウェア命令を実行するための任意のデバイスであってもよい。ユーザデバイス300が動作しているとき、プロセッサ302は、メモリ310内に格納されたソフトウェアを実行し、メモリ310との間でデータを通信し、ソフトウェア命令に従ってユーザデバイス300の動作を一般的に制御するように構成される。一実施形態において、プロセッサ302は、電力消費及びモバイルアプリケーション用に最適化されたようなモバイル最適化プロセッサを含んでもよい。I/Oインターフェース304は、ユーザ入力をから受け取るため、及び/又はシステム出力を提供するために使用することができる。ユーザ入力は、例えば、キーパッド、タッチスクリーン、スクロールボール、スクロールバー、ボタン、バーコードスキャナ等を介して提供することができる。システム出力は、液晶ディスプレイ(LCD)、タッチスクリーン等の表示デバイスを介して提供することができる。I/Oインターフェース304は、また、例えば、シリアルポート、パラレルポート、小型コンピュータシステムインターフェース(SCSI)、赤外線(IR)インターフェース、無線周波数(RF)インターフェース、ユニバーサルシリアルバス(USB)インターフェース等を含むことができる。I/Oインターフェース304は、ユーザがユーザデバイス300と対話することを可能にするグラフィカルユーザインターフェース(GUI)を含むことができる。さらに、I/Oインターフェース304は、撮像デバイス、すなわち、カメラ、ビデオカメラ等をさらに含むことができる。
【0043】
無線機306によって、外部アクセスデバイス又はネットワークへの無線通信が可能になる。任意の数の適切な無線データ通信プロトコル、技術、又は方法論を、無線機306によってサポートすることができる。無線機306には、RF;IrDA(赤外線);Bluetooth(登録商標);ZigBee(登録商標)(及びIEEE 802.15プロトコルの他の変形);IEEE 802.11(任意の変形);IEEE 802.16(WiMAX 又は他の変形);ダイレクトシークエンス拡散スペクトラム;周波数ホッピング拡散スペクトラム;Long Term Evolution(LTE(登録商標));セルラー/無線/コードレス電気通信プロトコル(例えば、3G/4G/5G等);無線ホームネットワーク通信プロトコル;無線USBの変形例等の独自の無線データ通信プロトコル;及び無線通信のための他の任意のプロトコルを含むが、これらに限定されない。データストア308は、データを格納するために使用されてもよい。データストア308は、揮発性メモリ要素(例えば、DRAM、SRAM、SDRAM等のランダムアクセスメモリ(RAM))、不揮発性メモリ要素(例えば、ROM、ハードディスク、テープ、CDROM等)、及びそれらの組み合わせのいずれかを含んでもよい。さらに、データストア308は、電子、磁気、光学、及び/又は他のタイプのストレージ媒体を組み込んでもよい。
【0044】
メモリ310は、揮発性メモリ要素(例えば、DRAM、SRAM、SDRAM等のランダムアクセスメモリ(RAM))、不揮発性メモリ要素(例えば、ROM、ハードドライブ等)、及びこれらの組み合わせのいずれかを含んでもよい。さらに、メモリ310は、電子、磁気、光学、及び/又は他のタイプのストレージ媒体を組み込んでもよい。メモリ310は、様々なコンポーネントが互いに遠隔に位置しているが、プロセッサ302によってアクセスすることができる、分散型アーキテクチャを有していてもよいことに留意されたい。メモリ310内のソフトウェアは、1つ以上のソフトウェアプログラムを含むことができ、各ソフトウェアプログラムは、論理機能を実装するための実行可能命令の順序付きリストを含む。図3の例では、メモリ310内のソフトウェアは、適切なオペレーティングシステム(O/S)314とプログラム316を含む。オペレーティングシステム314は、基本的に他のコンピュータプログラムの実行を制御し、スケジューリング、入出力制御、ファイル及びデータ管理、メモリ管理、及び通信制御と関連するサービスを提供する。プログラム316は、ユーザデバイス300でエンドユーザ機能を提供するように構成された様々なアプリケーション、アドオン等を含んでもよい。例えば、例示的なプログラム316は、ウェブブラウザ、ソーシャルネットワークアプリケーション、ストリーミングメディアアプリケーション、ゲーム、マッピング及び位置情報アプリケーション、電子メールアプリケーション、金融アプリケーション等を含んでもよいが、これらに限定されない。典型的な例では、エンドユーザは、典型的には、ネットワークと共に、1つ以上のプログラム316を使用する。
【0045】
(デバイス識別子の関連付け)
サーバ200のプログラム216及び/又はユーザデバイス300のプログラム316は、デバイスの寿命中にデバイス識別子(例えば、MACアドレス)が変更されたときに識別情報の連続性を提供するために、非一致デバイス識別子を関連付けるための「デバイス識別子関連付けプログラム」又は他の同様のプログラムを含んでもよい。したがって、デバイス識別子を関連付ける機能は、サーバ200で、ユーザデバイス300自体で、又はサーバ200、ユーザデバイス300、及び/又は通信デバイス(例えば、ユーザデバイス)が動作しているネットワーク内の他のシステム又はデバイスの組み合わせで実行されてもよい。場合によっては、サーバ200は、本開示で説明するステップの少なくとも一部を実行するために、1つ以上のアプリケーション又はプログラム(例えば、デバイス識別子関連付けプログラム)を1つ以上のユーザデバイス300にダウンロードするように構成されてもよい。
【0046】
本開示の様々な実施形態によるデバイス識別子関連付けプログラムは、非一時的なコンピュータ可読ストレージ媒体(例えば、メモリ210、310等)に格納されてもよい。デバイス識別子関連付けプログラムは、サーバ200、ユーザデバイス300等をプログラムして、プロセッサ202、302、又は他の適切な処理デバイスによって支援され得る特定の機能を実行するように構成されたコンピュータ可読コードを有してもよい。
【0047】
デバイス識別子関連付けプログラムは、デバイス識別子が実際に同じデバイス(例えば、ユーザデバイス300)を表すと少なくとも妥当なレベルの確実性で判断されるとき、2つの異種のデバイス識別子を関連付けるように構成される。したがって、ネットワークメタデータを測定して利用することにより、デバイス識別子関連付けプログラムは、異なる2つの時点で取得された2つの異なるデバイス識別子(例えば、MACアドレス)が、デバイス識別子が変更されていた状況を表していると思われる場合に、それを判定するように構成される。例えば、ネットワークメタデータ(例えば、デバイスタイプ、あるデバイス識別子が現れなくなり、別のデバイス識別子が初めて現れる時間等)を分析することによって、本開示のシステム及び方法は、この証拠を処理して、第一のデバイス識別子が第二のデバイス識別子に関連しているかどうかを判定するように構成される。2つの(又はそれ以上の)異なるデバイス識別子(それぞれ同じデバイスを表す)を「相関付ける」処理は、2つの(又はそれ以上の)デバイス識別子を接続するリンクをデータベース(例えば、データストア208、308等)に格納することを含んでもよい。例えば、「関連付ける」という用語は、本開示において、「スティッチングする」、「関係付ける」、「リンクする」、「関係する」、「接続する」、「一体化する」、「結合する」等とも呼ばれることもあり、それぞれの特定のデバイスのデバイス識別子が変化しても変化しなくても、それぞれのデバイスの記録に連続性を形成することを含む。デバイス識別子関連付けプログラムは、どのデバイス識別子をリンクさせるべきかに関する合理的な推論を行うために、ネットワークメタデータの証拠を調査するように構成されてもよい。
【0048】
本開示の様々な実施形態によれば、デバイス識別子関連付けプログラム216、316は、ネットワーク内のサーバ200、1つ以上のユーザデバイス300、ネットワーク管理システム、制御システム、ルータ、モデム等に様々な形態で配備され得る。デバイスアイデンティティを検出するためのソフトウェア/ファームウェアのそれぞれの各バージョン(及び本開示全体を通して説明される他の機能)は、本開示に記載され、本開示の知識を有する当業者によって理解されるような、ネットワークの各部での動作に適した任意の機能性を含んでもよい。例えば、いくつかの処理機能は、Wi-Fiネットワークの1つ以上のアクセスポイント(AP)、ルータ又はモデム、クラウド、インターネットデバイス(例えば、サーバ)、オフライン(例えば、リアルタイムではない動作のために)、リアルタイムでのオンライン等に組み込まれて(又は配置されて)もよい。また、いくつかの実装におけるシステム及び方法は、MACアドレスの変更に関して「ギャップを埋める」ために時間をさかのぼって情報を取得することができる履歴アプローチを含むことができる。
【0049】
図5は、データベース内の異種デバイス識別子が同じ物理デバイスに関係する場合に、関連付ける、スティッチングする、又はリンクするためのプロセス400の一実施形態を示すフロー図である。プロセス400は、ブロック402に示されるように、ネットワークのセクションで動作するデバイスの第一のセットに関連する動作パラメータの第一のセットを取得する第一のステップを含む。例えば、動作パラメータの第一のセットは、デバイスの第一のセットを表すデバイス識別子の少なくとも第一のセットを含んでもよい。プロセス400はまた、ブロック404に示されるように、ネットワークのセクションで動作するデバイスの第二のセットに関連する動作パラメータの第二のセットを取得するステップを含む。例えば、動作パラメータの第二のセットは、デバイスの第二のセットを表すデバイス識別子の少なくとも第二のセットを含んでもよい。また、プロセス400は、ブロック406に示されるように、デバイス識別子の第一のセットをデバイス識別子の第二のセットと比較して、非一致デバイス識別子を見出すステップを含む。
【0050】
次に、プロセス400は、条件菱形408に示されるように、第一及び第二のセットのデバイス識別子の非一致デバイス識別子が存在するかどうかを決定するステップを含む。非一致デバイス識別子が存在しない場合(又は、すでに処理されていない非一致デバイス識別子がこれ以上ない場合)、プロセス400は、終了する。そうでなければ、非一致デバイス識別子が条件菱形408で検出された場合、プロセス400は、ブロック410に進む。したがって、非一致デバイス識別子に関して、プロセス400は、動作パラメータの第一のセット及び動作パラメータの第二のセットを分析して、デバイス識別子の第一のセットのデバイス識別子及びデバイス識別子の第二のセットのデバイス識別子が同じデバイスを表す可能性が高いかどうかを決定するステップを含む。条件菱形412で、それらが同じデバイスであると決定された場合、プロセス400は、ブロック414に進む。そうでなければ、プロセス400は、条件菱形408にループバックして、より多くの非一致デバイス識別子が存在するかどうかを決定する。ブロック414に示されるように、プロセス400は、非一致(例えば、異なる番号)でありながら、同じデバイスを表すデバイス識別子を関連付けるステップを含む。関連付けは、デバイス識別子がある時点で変更されていたものの、2つ(又はそれ以上)のデバイス識別子が実際には同じ物理デバイスを表すことを記録するために、2つのデバイス識別子の情報を一緒にリンクすることを含んでもよい。関連付け又はリンクは、適切なデータベース(例えば、データストア208、308)内のデータの何らかの結合を含んでもよい。関連付けた後、プロセス400は、条件菱形408に戻り、より多くの非一致デバイス識別子を処理する。
【0051】
いくつかの実施形態によれば、プロセス400は、追加のステップをさらに含んでもよい。例えば、プロセス400は、デバイス識別子の第一のセットをデータベースに格納し、デバイス識別子の第二のセットをデータベースに格納し、その後、データベースにおいて、同じデバイスを表す可能性が高い非一致デバイス識別子を関連付けることができる。場合によっては、第一及び第二のデバイス識別子のセットは、メディアアクセス制御(MAC)アドレスが含むことがある。また、動作パラメータの第一のセットのメトリクスは、以前の時間枠で測定されてもよく、動作パラメータの第二のセットのメトリクスは、後続の時間枠で測定されてもよい。
【0052】
また、デバイス識別子の第一のセットのデバイス識別子とデバイス識別子の第二のセットのデバイス識別子とが同じデバイスを表す可能性が高いかどうかを決定するステップ(例えば、ブロック410)は、動作パラメータの第一及び第二のセット間の関係に基づいて信頼度スコアを計算するステップと、次に信頼度スコアが所定の閾値を超えたかどうかを決定するステップを含んでもよい。関係は、例えば、a)一致デバイス動作要因、b)一致デバイス特徴、c)一致デバイス特徴の一意性、d)デバイス特徴の加重和、e)一致デバイス特徴の数、f)デバイス一致技術の機械学習(ML)モデル、及び/又は他のタイプの一致特徴を含んでもよい。動作パラメータの第一及び第二のセットには、a)デバイス識別子が最初に使用される時間、b)デバイス識別子がもはや使用されなくなる時間、c)ソフトウェア又はファームウェアが新たにロールアウト又はアップグレードされる時間、d)デバイスのタイプ、e)デバイスのオペレーティングシステム、f)デバイスの言語、g)使用される宛先ポート又はアドレス、h)送信パターン、i)パケット長、j)パケット送信に関する時間情報、k)デバイスが使用する1つ以上のアプリケーション、l)デバイス接続情報、m)デバイス切断情報、n)ネットワークのセクションにおけるデバイスの位置、o)補足デバイス識別情報、p)デバイスが使用するキャリアサービス、及び/又は他の適切なタイプの動作パラメータを含んでもよい。
【0053】
いくつかの実施形態では、動作パラメータの第一及び第二のセットは、ネットワーキングメタデータとして構成されてもよく、これは、a)アドレス解決プロトコル(ARP)、b)論理リンク制御(LLC)、c)インターネット制御メッセージプロトコル(ICMP)、d)ICMPバージョン6(ICMPv6)、e)ブートストラッププロトコル(BOOTP)、f)ネットワーク時間プロトコル(NTP)、g)送信制御プロトコル(TCP)、h)トランスポート層セキュリティ(TLS)、i)動的ホスト構成プロトコル(DHCP)、j)DHCPバージョン6(DHCPv6)、k)ドメインネームシステム(DNS)、l)マルチキャストDNS(mDNS)、m)ユーザエージェント、n)ユニバーサルプラグアンドプレイ(UPNP)、o)共有シリアルデータプロトコル(SSDP)、p)デバイス能力情報、q)ポート情報、r)プロトコル情報、s)5タプルのインターネットプロトコル(IP)データ、及び/又は他のネットワークプロトコルによるものを介して得られる情報を含む可能性がある。
【0054】
いくつかの実施形態によれば、上述したネットワークのセクションは、ローカルWi-Fiネットワークであってもよい。デバイス識別子の第一のセットのデバイス識別子とデバイス識別子の第二のセットのデバイス識別子とが同じデバイスを表す可能性が高いかどうかを決定するステップ(例えば、ブロック410)は、デバイス識別子の第一のセットの非一致デバイス識別子のそれぞれの最後の発生の周りに終了時間窓を設定することと、デバイス識別子の第二のセットの非一致デバイス識別子のそれぞれの最初の発生の周りに開始時間窓を設定することと、デバイス識別子の第一のセットの単一のデバイス識別子が残り、デバイス識別子の第二のセットの単一のデバイス識別子が残るまで、終了時間窓及び開始時間窓を狭めることと、を含んでもよい。
【0055】
デバイス識別子の第一のセットのデバイス識別子とデバイス識別子の第二のセットのデバイス識別子とが同じデバイスを表す可能性が高いかどうかを決定するステップ(例えば、ブロック410)は、また、デバイス識別子の第一のセットに関連付けられたパケット送信イベントを識別するために使用されるシーケンス番号の第一のセットを格納することと、デバイス識別子の第二のセットに関連付けられたパケット送信イベントを識別するために使用されるシーケンス番号の第二のセットを格納することと、第一のデバイス識別子に関連するシーケンス番号の第一のセットのシーケンス番号の終了時刻と第二のデバイス識別子に関連するシーケンス番号の第二のセットのシーケンス番号の開始時刻との間の差が所定の閾値以下である場合に、デバイス識別子の第一のセットの第一のデバイス識別子とデバイス識別子の第二のセットの第二のデバイス識別子とを関連付けることと、を含んでもよい。
【0056】
いくつかの実施形態では、プロセス400は、第一及び第二のデバイスセットの1つ以上のデバイス上でアプリケーションを動作させて、1つ以上のデバイスを個別に識別するステップを含んでもよい。例えば、1つ以上のデバイスを個別に識別するステップは、a)Wi-Fi Protected Access(WPA)エンタープライズを使用すること、b)インストールされた証明書を使用すること、c)メディアアクセス制御(MAC)アドレスを読み取ること、d)以前にインストールされた固有の識別コードを取得すること、e)キャプティブポータルを通じてユーザによって供給された識別子を受け取ること、f)ユーザプロファイル情報にアクセスすること、g)関連付けるデバイスに関してユーザフィードバックを受信すること、及び/又は他の識別手順を含んでもよい。
【0057】
さらに、プロセス400は、いくつかの実装によれば、非一致デバイス識別子によって表されると決定された各デバイスに対して、新しい識別子を作成するステップを含んでもよい。また、プロセス400は、実デバイス識別子、ランダム化されたデバイス識別子、及び新規の識別子を接続するマッピングテーブルを作成するステップを含んでもよい。
【0058】
(スティッチングすべき/関連付けるべきMACアドレスの識別)
本開示のシステム及び方法は、時間的要因を利用して、より早い時点で使用されたデバイス識別子が、より遅い時点で使用された異なるデバイス識別子によって表される同じ物理デバイスを表すかどうかを決定してもよい。例えば、デバイス識別子関連付けプログラム216、316(又は本開示に記載の他のシステム及び方法)は、動作中のネットワークから取得することができるネットワークメタデータを分析するように構成されてもよい。このメタデータから、デバイス識別子関連付けプログラム216、316は、使用されるMACアドレス(又は他のデバイス識別子)の発生を追跡し続けることができる。デバイス識別子関連付けプログラム216、316は、1つ以上の新しいMACアドレスが最初に出現した時間を記録し、1つ以上の古いMACアドレスがもはや出現しない時間を記録することができる。例えば、ある時間tに、特定のMACアドレスがネットワークで使用されなくなり、その後すぐに新しいMACアドレスが最初に現れる(例えば、t+xで、xは比較的短い時間であってもよい)と決定される場合がある。この場合、時間的な情報を使用して、これら2つのMACアドレスが同じデバイスを表している可能性があると考えることができる。当然、さらなる分析を使用して、これらが実際に同じデバイスを表す(又は同じデバイスを表す可能性が高い)ことを(合理的な程度の確実性をもって)確認することができる。
【0059】
いくつかの実施形態では、時間分析手順は、デバイス識別子関連付けプログラム216、316の観察下で、中断又は開始する各MACアドレスの最後の出現及び最初の出現のそれぞれの前後に時間窓を設定することを含んでもよい。これらの時間窓は、幅のある時間スパン(例えば、数日)で初期設定されてもよく、それによって、いくつかのMACアドレスが中断及び/又は開始する大きな重複があり得るデバイス識別子関連付けプログラム216、316は、その後、終了MACアドレスと開始MACアドレスとの間に単一の一致が存在するまで、時間窓を狭めてもよい。この関連付けをデータストア208、308に格納するために、2つのMACアドレスのデータを接続するスティッチング処理(例えば、相関付け、結合等)が実行されてもよい。
【0060】
いくつかの実施形態では、追加の処理ステップは、ネットワーク内のデバイスに対して新しいソフトウェア/ファームウェアのアップグレードがロールアウトされたか否かを決定することを含んでもよい。もしそうであれば、この情報は、(時間的処理によって接続された)2つの異種MACアドレスが同じデバイスを表している可能性がさらに高いことを確認するために使用されてもよい。この確認は、一部の企業(例えば、Apple)は、新しいソフトウェア/ファームウェアがロールアウトされるときに、デバイスのMACアドレスをランダム化するか、さもなければ変更することがあるという認識に基づいて行われてもよい。このように、デバイス識別子関連付けプログラム216、316は、MACアドレス変更の検出で、ネットワークメタデータから得られる複数の特性、特徴、パラメータ、又は他の適切な情報を使用するように構成されてもよい。言い換えれば、デバイス識別子関連付けプログラム216、316は、1つの分析(例えば、時間的処理)又は複数の分析(例えば、時間的処理、ソフトウェア/ファームウェアロールアウト情報、及び他のタイプの分析及び情報処理)を使用して、異種MACアドレス間の接続を決定することができる。ネットワークメタデータの他のタイプの分析、処理ステップ等を、本開示を通じて説明されるように使用してもよい。
【0061】
例えば、デバイス識別子関連付けプログラム216、316によって実行され得る別のタイプの分析は、デバイスタイプに基づいて関連付けの候補となり得るデバイス識別子を検討する処理である。すなわち、2つの関連付け候補がともに同じ種類のデバイスを表すために使用されることを示す場合、この情報を、それらが同じデバイスを表すという別の確認として使用することができる。そうでなければ、2つの候補が2つの異なるタイプのデバイスを表すと決定された場合、これらのデバイス識別子は同じデバイスを表すものではないと決定し、あらゆるマッチング/リンクを消去することも、あるいはマッチング/リンクのための考慮を取り下げることも可能である。
【0062】
ここでも、デバイス識別子関連付けプログラム216、316は、受信したネットワークメタデータを使用して、デバイスタイプを決定することができる。例えば、ネットワークメタデータは、ARP、LLC、ICMP、ICMPv6、BOOTP、NTP、TCP、TLSクライアントハロー、DHCP、DHCPv6、mDNS、ユーザエージェント、UPNP、SSDP、DNS、ICMP、デバイス能力、ポート、プロトコル、5タプルIPデータ等のうちの任意の1つ以上を含んでもよい。
【0063】
2つ(又はそれ以上)の異種MACアドレスが同じデバイスを表す可能性を決定するために使用され得る別の要因は、デバイスの動作である。例えば、あるMACアドレスによって表されるデバイスの行動が、別のMACアドレスによって表されるデバイスの行動と類似しているか、又は同じである場合、デバイス識別子関連付けプログラム216、316は、MACアドレスが同じデバイスに関連していることを確認するために、この情報を(ある程度)使用するように構成されてもよい。デバイス行動のいくつかの例は、アプリケーション(「アプリ」)使用、接続及び切断パターン(例えば、ネットワーク内)、時間パターン(例えば、デバイスが使用されるとき)、場所パターン(例えば、デバイスが使用される場所)等を含んでもよい。例えば、場所パターンは、エリア内(例えば、都市、国等)での使用、又は家庭内やオフィス内等でのより小規模での使用であっても参照することができる。例えば、より小規模な位置の検出は、どのアクセスポイントがデバイスの使用に利用されるかに基づいてもよい。
【0064】
さらに、デバイス行動の考慮及び使用は、デバイスが使用するプログラミング言語の検出にも関連している場合がある。これは、パケット宛先ポート、パケット宛先アドレス、送信のパターン、パケットの長さ、移動したTx/Rxバイト、パケットの送信間の時間、プロトコル等に関して検出される場合がある。デバイスタイプ及びデバイス行動は、2つのデバイス識別子が同じデバイスに関連している可能性が高いかどうかを判断するために一緒に使用されてもよく、デバイス識別子が異なるデバイスを表している可能性が高いかどうかを決定するために代替的に使用されてもよい。
【0065】
さらに、2つ(又はそれ以上)のMACアドレスがスティッチング、関連付け、関係付け等されるべきかどうかを決定するプロセスにおいて、デバイス識別子関連付けプログラム216、316は、MACアドレス以外のデバイスの固有IDを形成する他のパラメータも取得及び利用してもよい。例えば、他のIDは、DHCP固有識別子(DUID)、DHCPv6 DUID、TCP識別子、mDNSオプションデータ、NetBios、ICMPv6 Neighbor Solicitation and Neighbor Advertisementパケット等と関係付けられてもよい。
【0066】
デバイス識別子関連付けプログラム216、316は、いくつかの通信プロトコルでよく使用されるシーケンス番号を利用してもよい。この場合、シーケンス番号は、特定のパケットを識別するために、連続的な方法でパケットに適用され得る。これらのシーケンス番号は、各パケットについてカウントアップされ、最終的にロールオーバーされるか、又はリセットされることができる。ネットワークから切断されたデバイスは、その後すぐに再接続される可能性があると想定される場合がある。この状況でMACアドレスがランダム化されると、シーケンス番号がほぼ同じ値になるかもしれないが、ネットワークで動作する他のデバイスは、シーケンス番号のカウント/ロールオーバープロセスにおいて非常に異なるポイントにあるシーケンス番号を有するパケットを通信し得ることが分かるかもしれない。したがって、デバイス識別子関連付けプログラム216、316は、これらのシーケンス番号を解析して、2つの識別子が同じデバイスを表しているかどうかを決定してもよい。
【0067】
スティッチング/リンクするMACアドレスを決定するために、デバイス識別子関連付けプログラム216、316は、デバイスにより使用されているオペレーティングシステム(O/S)、デバイスタイプ、及び/又はデバイスが有するファームウェアバージョンを考慮するように構成される場合がある。ここでも、2つの識別子が同じデバイスを表す可能性は、これらの要因が同じであるか、又は類似していることに基づいてもよく、一方、これらの要因が異なる場合、この観察は、識別子が異なるデバイスを表すことを示唆するために使用され得る。
【0068】
また、デバイス識別子(例えば、MACアドレス)が管理される場所を表すメタデータも、2つ(又はそれ以上)のデバイス識別子が同じデバイスを表しているかどうかを決定するために使用することができる。例えば、一部のデバイスは、ローカルに管理される(例えば、Wi-Fiネットワーク自体内で)MACアドレスを受信するように構成され、他のデバイスは、従来の方法で管理されるMACアドレスを受信するように構成され、これには、組織固有識別子(OUI)の管理を含む場合がある。さらに、キャリア情報(例えば、デバイスが使用しているセルラーサービス)に関するメタデータは、異なるMACアドレスが同じデバイス又は異なるデバイスを表す可能性を決定するために使用されてもよい。
【0069】
(スティッチング用の情報収集のための能動的観察対受動的観察)
ネットワークメタデータを、受動的及び/又は能動的なプロセスを使用して取得してもよい。受動的なシステムでは、監視デバイスは、デバイスからのメッセージを単に観察するように構成されてもよく、デバイス識別子関連付けプログラム216、316は、これらのメッセージを使用して、受動的に観察されたトラフィックパターンに基づいて、ルールを構築しても、及び/又は機械学習(ML)モデルを訓練してもよい。
【0070】
一方、能動的なシステムは、監視デバイスを使用して、デバイスを識別するのに役立つ情報を要求するメッセージをデバイスに送信するように構成されてもよい。この場合、監視デバイスは、デバイスを識別するためにデバイス識別子関連付けプログラム216、316に役立つ情報を有する応答を引き出してもよい。能動的なシステムに関しては、監視デバイスは、デバイスが自由に提供するが、プライバシー上の理由から保留される可能性のあるフィールドを取得してもよい。応答を引き出すことは、例えば、ICMPタイムスタンプ情報を要求し、ICMPメッセージタイプ13及び15の形で応答を受信することを含んでもよい。他の要求は、デバイスタイプ及びデバイス識別子を識別するために、DHCPv6クエリ、mDNSスキャン、SSDPスキャン、TCPスキャン、UDPベースのスキャン等を含んでもよい。
【0071】
(ユーザフィードバックを取得し、及び/又はデバイスに新しいデバイス識別子をインストールする)
いくつかの実装によれば、本開示のシステム及び方法は、異種のMACアドレスが同じデバイスを表すかどうかを決定するために使用できる情報を取得する他の積極的な方法をさらに含むことができる。例えば、ネットワークから容易に取得できるメタデータを単に観察する代わりに、いくつかの実装は、デバイス識別子関連付けプログラム216、316が、ユーザ自身から有用な情報を要求することを可能にし、この情報がMACアドレスをスティッチングするために生産的に使用されることを含んでもよい。また、上述したように、MACアドレスの変更をより容易に追跡するために、特定の機能を新しいデバイスにインストールすることもできる。
【0072】
いくつかの例によれば、本開示のシステム及び方法は、Wi-Fi Protected Access (WPA) Enterpriseを使用し、証明書をインストールし、固有のIDを提示するアプリをデバイス(例えば、ユーザに対して新たに発行された)にインストールし、実際のMACアドレス又はデバイス上に既にある他の識別子を読み取るアプリをデバイスにインストールする等、してもよい。この情報は、その後、スティッチング/リンクのために必要に応じて、デバイス識別子関連付けプログラム216、316に報告することができる。場合によっては、新しいデバイスのユーザがキャプティブポータルを通過する必要があり、ユーザがデバイスの識別子(例えば、ログイン名等)を提供するように、新しいデバイスにソフトウェアをインストールしてもよい。この情報は、デバイス識別の目的のために格納し、報告することができる。
【0073】
ユーザは、ユーザ自身に関する情報及びデバイス自体に関する情報を含むユーザプロファイルを入力するように要求される場合がある。これは、アプリ(例えば、ペアレンタルコントロールを提供するためのインターネットアクセスアプリ、1日の異なる時間帯の使用制限、特定のサイトへのアクセス制限等)に含まれてもよい。アプリがデバイスにインストールされると、新しいファームウェアが更新されたとき等、デバイスがMACアドレスのランダム化を受ける可能性がある場合、ユーザは特定の情報を再入力する必要がある。この場合、ユーザデータは、デバイス識別子関連付けプログラム216、316によって、異なるMACアドレスが実際には同じデバイスを参照していることを決定するために使用することができる。
【0074】
いくつかの実施形態によれば、アプリは、どのデバイス識別子をスティッチング/リンクさせるかについて提案を行い、ユーザに応答を求めるように構成されてもよい。そして、ユーザは、提案を承認するか、提案を不承認とするか、又は応答を拒否することができる。また、アプリは、適格なデバイス識別子の中から選択肢を提供し、どれが同じデバイスに対応するかを選択するようユーザに求めるように構成されてもよい。 いくつかの実施形態では、アプリは、2つ以上のデバイス識別子を自動的に関連付け、スティッチングし、関係付けたことをユーザに通知し、これに応答して、ユーザが希望すれば、このスティッチングを承認又は拒否でき、及び/又はスティッチングを逆転させることを要求できるように構成されてもよい。アプリは、また、ユーザが任意のスティッチング/関係付けプロセスを手動で修正する機会を提供するように構成されてもよい。
【0075】
様々な実装によれば、ユーザデバイスにインストールされるアプリケーション(「アプリ」)は、様々な設定を含むこと、及び/又は他の機能性と関係付けられることができる。例えば、本開示の実施形態は、他のサービスを実行するためのソフトウェア機能の任意の他の組み合わせと共に、デバイス識別プロセスを可能にするための他のソフトウェア/ファームウェア製品にアドオンされてもよい。
【0076】
例えば、アプリは、ユーザ又はシステムが当該デバイスに適用した構成を転送するように構成されてもよい。その構成には、ペアレンタルコントロールのための設定、サイバーセキュリティのための設定(例えば、ブラックリスト化サイト、ホワイトリスト化サイト等)、デバイスニックネーム、ユーザID、ユーザプロファイル、アクセス制御ゾーン、動作検知設定、センサ警告(例えば、健康関連又は生物関連の設定)、コンテンツフィルタ(例えば、10代及び子供向け)、ポリシー設定、インターネットフリーズ設定及びスケジュール、QoS(クオリティ・オブ・サービス)優先順位設定(例えば、デバイス、サービス、アプリケーション等によって設定される)、部屋割り当て情報、以前に取得したキャプティブポータルログイン情報、デバイスアクセス制限、所定のデバイスの検疫又はブロック状態、グループ割り当て、アクセスの共有、スクリーンタイム設定及び状態、アプリ使用状態、及び/又は他の適切な設定の制限、制約、パラメータ等を含んでもよい。複数のスティッチングオプションが存在し得る場合、アプリは、同じオプションを含む任意の設定、制限等を転送するように構成されてもよい。
【0077】
(デバイスに関するデータの連続性を作成する)
デバイス識別子関連付けプログラム216、316が、2つ(又はそれ以上)のデバイス識別子が同じ物理デバイスを表すと(合理的な確実性をもって)決定すると、次に、その2つ(又はそれ以上)のデバイス識別子に関するデータの連続性を作成するために特定の手順が実行されてもよい。言い換えれば、デバイス識別子関連付けプログラム216、316は、同じデバイスに関連する記録を一体化するために、データストア208、308に任意の適切なリンク又はスティッチングを作成してもよい。
【0078】
一実施形態では、デバイス識別子関連付けプログラム216、316は、新たに発見/決定されたローカルMACアドレスでデータベースを書き換えるように構成されてもよい。また、クエリ時に、デバイス識別子関連付けプログラム216、316は、エイリアスをリストする関係付けテーブルに基づいて、複数のMACアドレス記録を結合するように構成されてもよい。
【0079】
いくつかの実施形態によれば、本開示のシステム及び方法は、デバイスごとに一意であり、デバイスの寿命の間保持される新しい識別子(又は新しいデバイス識別子)を作成するように構成されてもよい。これは、スティッチング、リンク、関係付け、結合等の好ましい方法と考えることができる。この場合、デバイス識別子関連付けプログラム216、316は、1つ(又は複数)のデータベースとのエントリを、新しい固有識別子で書き換えるように構成されてもよい。また、システム及び方法は、実MACアドレス及び検出された任意のランダム化MACアドレスを新しい識別子に接続するマッピングテーブルを格納してもよい。マッピングテーブルは、ゆっくりと変化する次元テーブルとして構成されてもよい。マッピングの機能は、オンザフライで実行されてもよく、新しいデータを、それが取得され分析されるときに、固有識別子とともに格納するアクションを含んでもよい。また、現在使用中のMACアドレスでデータを格納し、マッピングテーブルに基づいてデータを読み出す際にこれを固有識別子に変換するようにしてもよい。
【0080】
(関連付け/スティッチングに関係する信頼度スコア)
本開示の様々なシステム及び方法の別の態様は、デバイス識別子関連付けプログラム216、316が、2つの(又はそれ以上の)異なるMACアドレスが実際には単一の物理デバイスを参照しているというメタデータから合理的に推論できる信頼度である。この検出された接続の信頼度(又は確実性のレベル)は、特定のスコア又は値によって特徴付けられてもよく、本明細書では「信頼度スコア」と呼ばれることがある。信頼度スコアは、いくつの要素が(少なくとも部分的に)一致するかに基づいてもよい。信頼度スコアは、一致する要因の一意性に(少なくとも部分的に)基づいてもよい。信頼度スコアは、一致する様々な要因の加重和と、それらの要因のそれぞれにどの程度一意性があるかに(少なくとも部分的に)基づいてもよい。また、信頼度スコアは、どれだけの潜在的な候補(例えば、一致しないデバイス識別子候補)が存在するか(例えば、潜在的なスティッチング/関連付けのために分析されるべきもの)によって影響される場合がある。
【0081】
信頼度スコアを計算することは、きめ細かい重み付けすることを含んでもよい。例えば、デバイスの種類、ファームウェアのバージョン、時間的要因、アプリケーションの使用、デバイスの言語、位置情報等に基づいて、各要因を重み付けすることを含んでもよい。例えば、任意のiOSデバイスは、様々な要因(例えば、DHCP、DHCPv6、ICMP、ICMPv6、QUIC、HTTP UA等)に基づいて一意に識別される可能性がある。しかしながら、例えばiOS14の場合、iOS15で高い重みが与えられた他のフィールド(例えば、mDNS、ICMPv6等)と比較して、DHCPv6に高い重みが与えられることがある。したがって、異なるタイプのデバイスやオペレーティングシステムに対応するために、必要に応じて、ルールを構築し、修正することができる。また、新しいデバイス及びオペレーティングシステムがネットワークに展開されると、本開示のシステム及び方法は、これらの新しいデバイスの様々な要因の重みを具体的に特徴付けるように更新されてもよい。したがって、いくつかの実装では、デバイス識別子関連付けプログラム216、316は、機械学習(ML)等の人工知能を利用して、様々なデバイスの各バージョン及びモデルに対して新しいMLモデルを定期的に訓練及び修正してもよい。MLベースのモデルは、デバイスの各バージョン及びモデルでの特定の動作のために使用されてもよい。
【0082】
いくつかの実施形態では、デバイス識別子関連付けプログラム216、316は、デバイス識別のために多層アプローチをとるように構成されてもよい。例えば、フラットな加重平均を適用するのではなく、デバイス識別子関連付けプログラム216、316は、2つの(又はそれ以上の)MACアドレスが一緒にスティッチングされるべきであることを決定するための手順において、階層的なMLクラスタリングアプローチを適用するよう構成されてもよい。これは、最初に、デバイスをそのタイプ、モデル、オペレーティングシステム等に基づいて分類するために行うことができる。そして、次のステップで、デバイス識別子関連付けプログラム216、316は、スティッチングステップで得られたクラスタ及びMLモデル内の各デバイスを一意に識別するように構成されてもよい。
【0083】
また、本開示は、ネットワークからデータを収集するための時間間隔を自動調整するプロセスを利用する実施形態も含んでもよい。例えば、識別エンジンからのフィードバックに基づいて調整されるデータ収集間隔を含んでもよい。デバイス識別の必要な信頼度が達成されるとすぐに、その特定のデバイスについてデータ収集を停止又は一時停止してもよい。場合によっては、信頼度スコアがある閾値以上(例えば、約90%以上)である場合にのみ、スティッチング/関連付けを実行してもよい。システム及び方法は、信頼度スコアを使用して、より多くの情報が収集され得るように、又は潜在的なスティッチング候補のいくつかの再出現がネットワークにおいて定期的に観察され得るように、スティッチング/関連付けを遅延させてもよい。また、信頼度スコアを使用して、MACアドレスがリンク/スティッチングされるべきかどうかをより正確に決定するために、ユーザにフィードバックを求めることが必要な場合を決定してもよい。
【0084】
(ホスト名マスキング)
いくつかの実施形態によれば、MACアドレスをスティッチングするためのアプリによって、ユーザはネットワーク上のデバイスのニックネームを入力することが可能になり得る。このニックネームは、ユーザインターフェース内の任意の固有ホスト名を効果的に置き換えることができる。デバイス識別子関連付けプログラム216、316は、実行されるMAC関連付け/スティッチングに基づいて、ホスト名をデバイスに(例えば、MACランダム化に続いて)入力又は関係付けるように構成されてもよい。いくつかの実施形態では、アプリは、異なるデバイスがアプリ内で区別可能であるように、所与のデバイス(例えば、iPhone(登録商標) Blue)に対してランダムなホスト名を作り上げてもよい。ユーザは、時間をかけて観察することによって、どれが自分のデバイスであるかを知ることができる。また、ホスト名がマスクされた端末がネットワークに接続された際に、アプリがユーザにニックネームの入力を促すようにしてもよい。その時のデバイスタイプ情報は、どのデバイスにニックネームの入力が求められているかの識別を補助するために使用することができる。また、システム及び方法は、ホスト名として利用可能な任意のデバイスタイプ情報(例えば、Apple iPhone(登録商標) 7 Max)を使用することができる。
【0085】
(ユーザ行動に基づくMACスティッチング)
サーバ200のプログラム216及び/又はユーザデバイス300のプログラム316は、使用パラメータに基づいてWi-Fiネットワークに接続されたユーザデバイスを識別するための「ユーザデバイス識別プログラム」又は他の同様のプログラムを含んでもよい。したがって、Wi-Fiネットワーク上のユーザデバイスを識別する機能は、サーバ200、ユーザデバイス300自体、又はサーバ200、ユーザデバイス300、及び/又は通信デバイス(例えば、ユーザデバイス)が動作しているネットワーク内の他のシステムもしくはデバイスの組み合わせで実行されてもよい。場合によっては、サーバ200は、1つ以上のアプリケーション又はプログラム(例えば、ユーザデバイス識別プログラム)を1つ以上のユーザデバイス300にダウンロードして、本開示に記載のステップの少なくともいくつかを実行するように構成されてもよい。
【0086】
本開示の様々な実施形態によるユーザデバイス識別プログラムは、非一時的なコンピュータ可読ストレージ媒体(例えば、メモリ210、310等)に格納されてもよい。ユーザデバイス識別プログラムは、サーバ200、ユーザデバイス300等が特定の機能を実行するようにプログラムするように構成されたコンピュータ可読コードを有してよく、これは、プロセッサ202、302、又は他の適切な処理デバイスによって支援されてもよい。
【0087】
いくつかの実施形態において、ユーザデバイス識別プログラムは、少なくとも合理的なレベルの確実性をもって、デバイス識別子が実際に同じデバイス(例えば、ユーザデバイス300)を表すと決定される場合に、2つの異種のデバイス識別子を関連付けるように構成されてもよい。したがって、Wi-Fiネットワーク上でのユーザデバイスの使用に関連する使用パラメータを分析することによって、ユーザデバイス識別プログラムは、2つの異なる時点で得られた2つの異なるデバイス識別子(例えば、MACアドレス)が、デバイス識別子が変更されていた状況を表していると思われるときを決定するように構成されてもよい。例えば、使用パラメータ(例えば、ユーザデバイスにインストールされたアプリのタイプ又はカテゴリ、アプリの使用、ユーザデバイス上で開いているポート、ユーザのブラウジングパターン、Bluetooth(登録商標)通信情報、使用されたWi-Fiアクセスポイント等)を分析することによって、本開示のシステム及び方法は、ユーザデバイスの識別子を決定し、第一のユーザデバイス識別子が第二のユーザデバイス識別子に関連し得るかどうかを決定するために、これらの使用パラメータを処理するように構成される。
【0088】
本開示の様々な実施形態によれば、ユーザデバイス識別プログラム(例えば、プログラム216、316)は、ネットワーク内のサーバ200、1つ以上のユーザデバイス300、ネットワーク管理システム、制御システム、ルータ、モデム等に様々な形態で配備されてもよい。ユーザデバイスアイデンティティを検出するためのソフトウェア/ファームウェアのそれぞれの各バージョン(及び本開示全体を通して説明される他の機能)は、本開示に記載され、本開示の知識を有する当業者によって理解されるような、ネットワークの各部での動作に適した任意の機能性を含んでもよい。例えば、いくつかの処理機能は、Wi-Fiネットワークの1つ以上のアクセスポイント(AP)、ルータ又はモデム、クラウド、インターネットデバイス(例えば、サーバ)、オフライン(例えば、リアルタイムではない動作のために)、リアルタイムでのオンライン等に組み込まれ(又は配備され)てもよい。
【0089】
いくつかの実施形態によれば、本開示のシステム及び方法は、1つ以上のユーザデバイスのユーザ行動に基づいて、MACアドレス(又は他のユーザデバイス識別子)をスティッチングするためのプロセスを実行するように構成されてもよい。一般化された一実施形態では、本開示のシステム及び方法は、Wi-Fiネットワーク上で動作する1つ以上のユーザデバイスを監視するステップを含んでもよい。また、システム及び方法は、1つ以上のユーザデバイスのそれぞれに関する使用パラメータを分析するステップを含んでもよい。また、システム及び方法は、次に、これらの使用パラメータに基づいて、1つ以上のユーザデバイスを識別してもよい。
【0090】
いくつかの実施形態では、システム及び方法は、1つ以上のユーザデバイスのそれぞれに関係付けられたデバイス識別子を取得し、次に、1つ以上のユーザデバイスのそれぞれのデバイス識別子を使用パラメータに基づく動作アイデンティティと関連付けることを含んでもよい。例えば、1つ以上のユーザデバイスのそれぞれに関係付けられたデバイス識別子は、メディアアクセス制御(MAC)アドレスであってもよい。システム及び方法は、また、a)Wi-Fiネットワーク上で動作する未確認ユーザデバイスに関して新しいMACアドレスが検索されたときに検出するステップと、b)未確認ユーザデバイスの現在の使用パラメータを分析するステップと、c)未確認ユーザデバイスの現在の使用パラメータを以前に識別された1つ以上のユーザデバイスの使用パラメータと比較するステップとを含んでもよい。現在の使用パラメータが以前に識別されたユーザデバイスの1つの使用パラメータと一致すると決定することに応答して、プロセスは、新しいMACアドレスを対応する以前に識別されたユーザデバイスのMACアドレスとスティッチングするステップを含んでもよい。現在の使用パラメータが以前に識別された1つ以上のユーザデバイスの使用パラメータと一致しないと決定することに応答して、プロセスは、未確認のユーザデバイスをWi-Fiネットワーク上で監視されるべき新たなデバイスとして、タグ付けするステップを含んでもよい。
【0091】
さらに、本開示のシステム及び方法は、a)1つ以上のユーザデバイスのそれぞれに関する使用パラメータを経時的に分析するステップと、b)経時的に分析された使用パラメータに基づいて、1つ以上のユーザに関連する1つ以上の行動モデルを作成するステップとを実行することも含んでもよい。各行動モデルは、ユーザがユーザデバイスをどのように使用するかに応じて、それぞれのユーザの使用パターンを表してもよい。あるいは、ユーザが複数のデバイスを使用する場合、行動モデルは、一人のユーザが各自のデバイスで共通の使用行動を使用することを表すために、複数のデバイスに関連付けされてもよい。使用パラメータを経時的に分析するステップは、1つ以上の行動モデルを作成するために機械学習技術を利用することを含んでもよい。いくつかの実施形態によるシステム及び方法は、a)1人以上のユーザを表すための1つ以上の固有ユーザ識別子を割り当てるステップと、b)1つ以上の固有ユーザ識別子を1つ以上の行動モデルに関連付けるステップとをさらに実行することを含んでもよい。システム及び方法は、対応する各ユーザの使用パラメータの変更に基づいて、1つ以上の行動モデルを再訓練するステップも実行してもよい。
【0092】
例えば、本開示で説明する「使用パラメータ」は、ユーザベースの行動パターン及び/又はデバイスベースの行動パターンの任意のタイプ又はカテゴリを含んでもよい。使用パラメータは、1つ以上のユーザデバイスにインストールされた1つ以上のアプリケーション(「アプリ」)のアイデンティティに関連していてもよい。また、使用パラメータは、アプリ使用情報に関連していてもよい。例えば、アプリ使用情報は、a)アプリのそれぞれの使用頻度、b)ユーザがアプリのそれぞれに費やされた時間、c)アプリ使用に関連する通信の種類、及びd)ユーザがアプリを使用する時間帯のうちの1つ以上を含んでもよい。また、使用パラメータは、1つ以上のユーザデバイスによってアクセスされる1つ以上のウェブサイト又はドメインのアイデンティティに関連してもよい。
【0093】
いくつかの実施形態によれば、本開示のシステム及び方法は、上述したメトリクス等の複数のメトリクスの加重値に基づいて、1つ以上のユーザデバイスのそれぞれのアイデンティティを精緻化するステップを実行してもよい。例えば、加重値を有するメトリクスは、a)インストールされた1つ以上のアプリのアイデンティティ、b)アプリ使用情報、及び/又はc)ブラウジングパターンと関連してもよい。加重値は、メトリクスのそれぞれの一意性要因に関連してもよい。本開示に記載されるように、ユーザデバイスは、スマートフォン、コンピュータ、ラップトップ、タブレット、スマートテレビ、モノのインターネット(IoT)デバイス、及び/又はメディアプレーヤを含んでもよい。使用パラメータは、デバイスベースの行動であってもよく、デバイスベースの行動は、a)Wi-Fiアクセスポイント使用、b)Wi-Fiネットワーク接続パターン、c)Bluetooth(登録商標)関連送信、d)デバイスポート使用、及び/又は他の行動を含んでもよい。
【0094】
ユーザデバイスを識別することは、そのMACアドレスと、ユーザ行動及び他の重要な固有の指標とに基づいてもよい。本開示のシステム及び方法は、デバイスのユーザ行動を活用し、これを利用してデバイスを一意に識別するように構成されてもよい。ユーザの行動は、デバイスベンダから独立しており、デバイスベンダによって制御又は変更することができない側面であることに留意されたい。このように、本開示は、行動パターンを利用してユーザデバイスを識別するように構成される。また、1人のユーザが複数のデバイスを使用し得ること、及び/又は、単一のデバイスが1人以上のユーザによって使用され得ることに留意されたい。本開示の実施形態は、このユーザ行動のモデルを作成し、識別のために行動を1つ以上のデバイスに関連付けるように構成されている。上述したように、各ユーザデバイスは、MACアドレスが変更又はランダム化され得ること、及び/又はユーザ行動が1つ以上のデバイスに関連付けられ得るという知識に基づいて、別のユーザデバイスのMACアドレスにスティッチングすることができるMACアドレスを有していてもよい。
【0095】
いくつかの実施形態によれば、ユーザの行動は、以下の行動バケット(又はカテゴリ)に分類される場合がある。これらのパラメータは、ユーザの関心分野(又は仕事)のそれぞれの重要な指標であってよく、各ユーザに固有のものであってもよい。また、ユーザの行動を経時的に分析することによって、各ユーザのユーザ行動をより細かく調整し、ユーザの習慣又はパターンに対するより良い理解を作成できることに留意されたい。これらは、異なる興味、パターン、行動、習慣等を有する他のユーザと区別することができるかもしれない。また、1人以上の訪問者がWi-Fiネットワークを使用する際に識別することが可能であってもよい。これらの訪問者は、通常は家族や職場グループのメンバーではない人であってもよい。本開示は、これらの訪問者の使用行動の記録も保存してもよい。
【0096】
ユーザ行動のバケット(又はカテゴリ)には、以下のものが含まれてもよい。
1)アプリケーション(アプリ)インストール情報:この情報には、ユーザデバイスにインストールされているアプリを含んでもよい。例えば、この情報には、アプリのカテゴリ(例えば、ショッピングアプリ、ゲームアプリ、ニュースアプリ、ポッドキャストアプリ、活動/趣味のアプリ、LinkedIn等のビジネス関連アプリ、健康又は医療アプリ等)を含んでもよい。また、この情報には、インストールされた特定のアプリのリストを含んでもよい。追加情報には、これらのアプリがユーザデバイスにプリインストールされているのか、あるいはマーケット後にダウンロードされインストールされたものなのかを含んでもよい。
2)アプリ使用/活動情報:この情報は、a)使用頻度、b)各アプリの使用時間、c)アプリが使用する通信の種類、d)アプリが使用された時間帯等に基づく分類を含む場合がある。これにより、ユーザのアプリ使用パターンに基づいてデバイスが分類される。
3)ブラウジングパターン:このカテゴリには、a)実際にアクセスしたウェブサイト及び/又はドメインのリスト、b)アクセスしたウェブサイト及び/又はドメインのタイプ又はカテゴリ等を含んでもよい。ウェブサイトのタイプ又はカテゴリの例としては、金融/株式関連、学校/学業関連、娯楽関連等を含んでもよい。これにより、ユーザの興味又は関心のある分野に基づいて、デバイスが分類される。
4)使用したWi-Fiアクセスポイント:この情報は、ユーザデバイスが接続するWi-Fiアクセスポイント、及び接続と切断に関するパターンを示す。例えば、本開示のシステム及び方法は、ほとんどの場合、ユーザデバイスが家庭内のあるアクセスポイントを使用していることを検出し、このアクセスポイントによってカバーされている家庭内のどこにユーザが通常いる可能性があるかを示すように構成されてもよい。これにより、家庭内の物理的な位置と移動に基づいてデバイスが分類される。
5)デバイス上で開いているポート:この情報は、各種サービス(例:ウェブサイト)にアクセスするための特定のルートに沿った通信に関して、開いており、それに応じて使用されるポートを示す。
6)Bluetooth(登録商標)ベース:この情報は、Bluetooth(登録商標)の分類に関連する通信及び送信パターンを示す。これには、クロックスキュー情報、Bluetooth(登録商標) Low Energy(BLE)ステータス、ピコネット、トラフィックパターン、汎用一意識別子(UUID)情報、ローカルネーム等を含んでもよい。
項目1~3は、特定の(及び/又は意図的な)「ユーザベースの」行動に関連するものであることに留意されたい。項目4~6は、デバイスに関係する関連プロトコル及び設定に関連する特定の「デバイスベース」の行動に関連するものである。
【0097】
「1)アプリインストール情報」に関して、本開示は、インストールされたアプリケーション(アプリ)の「カテゴリ」を識別することができる。この利点は、この手法が正確な詳細アプリリストを確認するよりも脆弱ではない可能性があることである。また、アプリのカテゴリを知ることだけでも、多くの実施形態において、デバイスを十分に識別するのに十分であり得る。一例では、学生は、ある特定の宿題アプリから別のアプリに切り替えるかもしれないが、本開示は、依然として、電話を学生のデバイスとして識別することができるかもしれない。本明細書で説明する実施形態は、アプリ自体の特定のリストではなく、デバイス上に存在する(インストールされた)アプリカテゴリの固有の収集によって、ユーザ及びデバイスを識別するように構成されてもよい例えば、異なるアプリカテゴリは、金融、学校、ショッピング、ゲーム、娯楽、フィットネス、セキュリティ、プライバシー、VPN、ソーシャルネットワーキング、医療、生産性、企業(confluence)、仕事関連、ライフスタイル、モバイルアプリ、ニュースアプリ等を含んでもよい。
【0098】
いくつかの実施形態において、本開示は、ロケーションカテゴリマップを作成するように構成されてもよい。例えば、これは、カテゴリベースのデバイスマップであってもよく、このデバイスマップは、家庭にとって有用なこともあり、機械学習を使用することもある。このカテゴリマップは、バックエンドクラウドサーバでの分析を使用するクラウドベースのグローバルインテリジェンスによってサポートされてもよい。インストールされたアプリは、その一意性に基づいて定義されてもよい。このアプローチの利点は、アプリが同じカテゴリの別のアプリに置き換えられた場合、本開示のシステム及び方法は、デバイスのフィンガープリントを継続するように構成されてもよいという点である。アプリベースのスティッチングは、多くの場合、壊れやすい可能性があることに留意されたい。例えば、家庭がカテゴリに1つのデバイスしか有さず、MACアドレスがランダム化される場合、新しいMACは、そのアプリカテゴリを有する唯一のデバイスである可能性が高い。
【0099】
いくつかの実施形態において、本開示は、分析を使用するカテゴリ構築システムを含んでもよい。例えば、クラウドベースのサーバは、カテゴリのリスト及びそれらのカテゴリに属するアプリを維持することができる。それらのカテゴリは、バックエンドクラウドサーバ上で実行されるバックエンド研究、分析、アルゴリズム等に基づいて、継続的に更新し、強化することができる。本開示のシステムは、インストールされたアプリに関連する現在の顧客世帯から収集されたテレメトリデータを使用してもよい。カテゴリ分類技術は、アプリストアによって指定されたアプリの目的及びアプリのカテゴリを探してもよい。本システムは、個々のモバイルアプリにカテゴリを割り当てるために、社内のインテリジェンスを構築してもよいし、外部ベンダと提携してもよい。
【0100】
場合によっては、処理アプリカテゴリ特性は、各アプリカテゴリをより具体的にし、ジオロケーション、世帯サイズ、デバイス数、デバイスのタイプ、製品ライセンスのタイプ、及びルータの可視性から推論できる他の人口統計でタグ付けするように構成されてもよい。データ分析及びアルゴリズムモジュールは、バックエンドクラウドシステムで実行されるように構成されてもよい。場合によっては、アプリカテゴリの特性を処理することは、アプリカテゴリ化がアプリセキュリティ評価も考慮に入れるように構成されてもよい。これは、社内インテリジェンスのサードパーティアプリセキュリティスコアリングデータベースと連携することを含む場合がある。
【0101】
各アプリは、それに関連付けられた重みを有してもよく、それがデバイスに対してどのように一意であるかに基づいてもよい。これらの重みは、場所/世帯に固有なもの、及び/又はバックエンド分析プロセスから学習されたグローバルな傾向であり得る。別の特性として、アプリが特定のデバイスに標準的にプリインストールされたアプリであるかどうかが考えられる。これは、スティッチングパラメータとしてデバイスタイプを使用することと同様であるが、プリインストールされたデフォルトアプリに基づいてもよい。
【0102】
図6は、モバイルアプリの種類に関するユーザデバイスのスクリーンショット600の一例を示す図である。この例では、スクリーンショット600の「カテゴリ」の部分に示すように、ユーザデバイス上のアプリは、「ヘルス&フィットネス」等の特定のカテゴリに分類されてもよい。
【0103】
「2)アプリ使用/活動情報」に監視て、ユーザデバイス上の各アプリの使用を監視してもよい。使用情報には、a)使用頻度、b)アプリに費やした時間、c)通信の種類、d)時間帯等を含んでもよい。この情報を用いて、ユーザのアプリ使用パターンに基づいて、ユーザデバイスを分類してもよい。また、これは、一般的なトラフィック分析情報とは異なる場合があり、それによって、トラフィック分析は、特定のアプリケーションのコンテキストにある場合がある。
【0104】
各アプリは、デバイス自体又はセット内の他のデバイス(例えば、Wi-Fiネットワーク上で動作するデバイス、地域、州、又は国全体のデバイス等)に対してどのように一意であるかに基づいて、そのアプリに関連付けられた重みを有する場合がある。本開示のシステム及び方法は、この重み付けのためにグローバルインテリジェンスを利用するように構成されてもよい。この情報は、アプリとデバイスタイプの関係付けについて、バックエンドで収集されたデータに基づいてもよい。例えば、ある特定のアプリは、家庭内の1つのデバイス上のみで、又はあるエリア内の複数の家庭にわたって見いだされてもよい。これらのアプリの一意性は、学校アプリ(例えば、google classroom、schoology等)に関連している可能性がある。
【0105】
「3)ブラウジングパターン」に関して、ブラウジングパターンに基づく分類を分析する。これは、アクセスされたドメイン/ウェブサイトの順序、アクセスされたコンテンツカテゴリの種類、ウェブサイトが再訪された回数、アクセスされたウェブサイトの評価(例えば、グレー、ブラックリスト等)等を含んでもよい。本明細書で説明する実施形態は、多数の既存のウェブサイト分類ツール(例えば、WebPulse、Brightcloud、Akamai等)のうちのいずれかを使用してもよい。以下は、いくつかのテーマ別カテゴリの例である。a)不動産、b)金融、c)ショッピング、d)旅行、e)アダルト、f)デート、g)宗教、h)法律、i)健康、j)自動車等である。なお、ブラウジングパターン情報の一部は、ユーザベースではなく、デバイスベースであってもよいことに留意されたい。例えば、ブラウジングパターンのデバイスベースの側面は、デバイスによって使用され得る1つ以上のプロトコルを含んでもよい。例えば、フィットネス追跡アプリは、BLE技術に大きく依存する場合がある。
【0106】
「4)使用されるWi-Fiアクセスポイント」に関して、本開示は、アクセスポイント走査のパターン、無線信号データ(例えば、無線送信パターン)、ファームウェアのクロックスキューに基づくフィンガープリント、Wi-Fiパケットに関連するシーケンス番号等を検出する分析を含んでもよい。場合によっては、アクティブプロービングのリクエスト/レスポンスのプロセスの周辺に標準が存在しないこともある。プローブ要求間のタイミングは、ドライバにとって一定である可能性がある。検出されたタイミングパターンは、デバイスのフィンガープリントに使用することができる。また、パケット送信の開始時の過渡信号から、本明細書に記載されたシステム及び方法によって固有の特性が検出されることがある。これらの特性は、特定のベンダ、デバイス、モデル等に固有のものであってもよい。さらに、システム及び方法は、機械学習技術を使用してTx及びRxクロックのドリフトを測定し、デバイスをフィンガープリントすることができる。また、システムは、TCPタイムスタンプを利用してもよい。いくつかの実施形態では、システム及び方法は、スタックに固有のクロックスキューを分析してもよい。
【0107】
シーケンス番号は、この実装では、時々ロールオーバーする可能性のある巨大なカウンタのように見えるかもしれない。時間の経過とともに、異なるデバイスは、全体のシーケンス番号空間の異なる領域に存在する可能性がある。デバイスが手の届かないところにあり(例えば、ユーザが家を出る)、Wi-Fiトラフィックを送信する場合でも、時間スパンにわたって、デバイスは、家庭内の他のデバイスと区別されるようなシーケンス番号空間の範囲に留まることがあり得る。シーケンス番号の概念は、Bluetooth(登録商標)、イーサネット(登録商標)、又はおそらくシーケンス番号を有するIPパケットも含む他の通信方法に適用され得るが、そのシーケンス番号は会話に固有であるが、おそらくシーケンス番号は単一のカウンタから来る、又は中断したところから再開する、等である。シーケンス番号は、リブート後にリセットされる可能性があり、それはMACアドレスの変更を引き起こす可能性のあるファームウェアのアップデートで起こるかもしれないことに注意する必要がある。しかしながら、毎日のMACランダム化のようなものについては、システムは、通常、これを引き起こすためにリブートを行わないであろう。
【0108】
「5)デバイス上で開いているポート」に関して、本開示のシステム及び方法は、デバイス上で開いているポート及び実行されているサービスを観察してもよい。システムは、デバイス上で見つかった脆弱性、そのデバイス上のセキュリティレベル及びセキュリティポリシー、デバイス上で検出された違反等を決定してもよい。例えば、いくつかのサービスは、FTP、SSH、HTTP等を含んでもよい。ポートは、例えば、8890、20、21等を含んでもよい。
【0109】
「6)Bluetooth(登録商標)ベース」に関して、システム及び方法は、Bluetooth(登録商標)パターンベースの分類を分析してもよい。これは、ファームウェアクロックスキューベースのフィンガープリンティング、BLEアドバタイズメント、デバイスピコネット、トラフィックパターン等を含んでもよい。デバイス(例えば、クライアント)の各セットは、一定のままである一意のクロックスキューを有してもよい。しかしながら、デバイスがWi-Fiシステムの構内から離れ、その後戻ってくると、デバイスは、異なるスロット又はスキューで終わる可能性がある。
【0110】
Bluetooth(登録商標)処理は、デバイスからの定期的なパケット、デバイスを一意に識別することができる完全なローカル名、UUID等のフィールドを含んでもよい。アドバタイズメント間隔は、デバイスに固有であり、識別に使用することができるが、これは、デバイスが構内を出て戻ってきたときに変更されるかもしれない。また、Bluetooth(登録商標)接続は、デバイスが起動時やMACアドレス変更時に作成する情報に基づいてもよい。また、このカテゴリは、接続/切断情報、会話パターン、時間ベースのパターン、サイズベースのパターン等を含んでもよい。
【0111】
いくつかの実施形態では、本開示の(例えば、ユーザデバイス識別プログラム216、316を使用する)システム及び方法は、上記のパラメータのそれぞれに関連する加重値に基づいて行動パターンを計算するように構成されてもよい。加重値は、他のデバイスに関する一意性のレベルに基づいてもよい。例えば、重み付けは、パラメータ値がデバイス(例えば、家庭内又はより大きな集団にわたるいずれか)に対して固有である場合に高くてもよく、2つ以上のデバイスが同じ値を有する場合に低くてもよい。一例では、人口のごく一部の人(例えば、家庭内の1人のみ)が、ユーザデバイスに特定のアプリをインストールし、特定のアプリを定期的に使用し、1日の特定の時間帯にアプリを使用し、家庭内の特定のアクセスポイントを介してWi-Fiネットワークにアクセスしながらアプリを使用し得ることが決定される可能性がある。複合パラメータは、固有の特性を学習するために使用されてもよい。
【0112】
図7は、ユーザデバイスの異なるパラメータの重みの一例を示す表700である。表700は、アプリの特定の側面の一意性と、他のアプリの側面の一意性の欠如とを示していることに留意されたい。したがって、重みが大きい側面ほど、より特異性をもってユーザデバイスを識別することができる。
【0113】
本開示のシステム及び方法は、上記の分類パラメータを機械学習技術と共に使用して、ネットワークのセクション(例えば、Wi-Fiネットワーク)上で動作する異なるユーザデバイスの特定の使用パターン又は特性を学習するように構成されてもよい。また、システム及び方法は、各ユーザの行動モデルを作成するように構成されてもよい。各モデルには、デバイスのユーザを示す一意のユーザIDが割り当てられてもよい。また、ユーザデバイスを識別するために、デバイスIDも割り当てられてもよい。デバイスIDは、ユーザデバイスに関連付けられたMACアドレスとは区別され、別々に格納されてもよい。しかしながら、同じデバイスに関連すると決定される場合、本開示は、これら2つの識別フィールドをスティッチングするように構成されてもよい。このように、本開示は、MACアドレス及びデバイスIDを作成して維持するように構成されてもよく、他のスティッチングされた接続とともに、2つを一緒にマッピングしてもよい。
【0114】
デバイスが新しいMACアドレスでWi-Fiシステム上で最初にオンラインになったとき、このデバイスの行動は、特定の使用パターンを決定するのに十分な期間(例えば、3~5分)記録されてもよい。この現在の行動は、ネットワーク上の他のユーザデバイスのそれぞれについて以前に学習されたモデル及びルールと比較することができる。行動が既存のモデルと一致する場合、MACアドレスとデバイスIDのマッピングが更新されることがある。また、単一のデバイス(又は同じユーザによって使用される複数のデバイス)の一貫したアイデンティティを維持するために、必要に応じて、新旧のMACアドレスがスティッチングされてもよい。行動が既存のどのモデルにも一致しない場合、そのデバイスは、新しいデバイスとしてタグ付けされることがある。学習アルゴリズムは、この新しいデバイスのために開始されてもよい。
【0115】
この方法論の利点の1つは、以下の例で見ることができる。ユーザデバイスのMACアドレスがランダム化されるときはいつでも、その行動指標は、本質的に同じままであってもよい。本開示の実施形態は、この事実を利用して、ユーザデバイスを迅速に識別し、ランダム化されたMACアドレスを(この他のデバイスに関連する情報とともに)以前に使用されたMACアドレスにマッピングするように構成される。
【0116】
ユーザが複数のデバイスを使用し得ることに留意されたい。この場合、これらのデバイスは、同じユーザ行動パターンを示すかもしれない。この重複する行動で、本開示は、デバイスを互いに区別し、正しいマッピングを可能にするために、デバイスタイプ(例えば、iPhone(登録商標)、iPad(登録商標)等)を使用するように構成され得る。
【0117】
本開示のシステム及び方法は、1つ以上の行動モデルを訓練するために、経時的な使用行動を分析するための機械学習技術を利用するように構成されてもよい。これらのモデルは、必要に応じてモデルを更新するために、連続学習を使用して再訓練することができる。次いで、機械学習モデルは、使用パターンに基づいて、特定のユーザデバイスを識別する分析に使用されてもよい。本明細書で説明するシステムは、(機械学習技術を使用して)学習を継続し、ユーザの行動のいかなる変化にも適応することができる。例えば、ユーザは、アプリを削除し、もはやそれをしないか、又は特定のドメインを訪問しなくなる可能性がある。別の例では、ユーザ(例えば、6年生)は、6年生のレベルの課題にアクセスすることに関して行動を示すかもしれない。しかしながら、次の年には、ユーザの行動が変化する(例えば、7年生レベルの課題にアクセスする)ことがあり、このことは、本開示のシステム及び方法によって検出することができる。
【0118】
例えば、本開示の1つの利点は、ベンダ(デバイス上の特定のソフトウェア及びプロトコルスタックの所有者であり得る者)が、ネットワークトラフィックの1つ以上の要素を暗号化することによって、プロトコル及びネットワークトラフィックの可視性を制御できることである。ユーザのプライバシーを保護しようとするベンダは、敵対者がMACアドレスを特定することを非常に複雑で困難にする可能性がある。しかしながら、その結果、ネットワークプロトコル特性に基づくことができる評判の良いネットワーク分析システムの性能が低下することがある。それにもかかわらず、本開示は、ユーザ行動、使用パターン、ユーザ習慣、ユーザ傾向、ユーザモデル等に基づいて識別することにより、この暗号化戦略を克服するように構成されている。このように、本開示は、典型的には所定のユーザに固有で特異的である、ユーザの行動的側面を利用する。ベンダは、ネットワーク(例えば、LAN、Wi-Fiネットワーク等)上でユーザの行動を不明瞭にしたり、隠したりすることができなくなる。本開示の技術又はアルゴリズムは、システムが新しい行動指標を学習し続け、ユーザの行動のいかなる変化にも対応できるように進化することを可能にするために、自己適応的であってもよい。
【0119】
したがって、本開示の1つの重要な概念は、上記に列挙された使用パラメータを使用し、これらの使用パラメータの周りに行動モデルを作成し、このモデルを活用してユーザを一意にタグ付けすることであり得る。本明細書に記載されるシステム及び方法は、ユーザプロファイルを使用して、そのユーザが所有又は使用するユーザデバイスを一意に識別し得る。その結果、本開示は、その所有者の行動プロファイルを使用してデバイスを識別するように構成されてもよい。
【0120】
図8は、使用行動情報に基づいて、ユーザデバイスを識別するためのプロセス800の一実施形態を示すフロー図である。デバイスを識別することに基づいて、システム及び方法は、さらに、この使用行動に基づいて、MACアドレスをスティッチングするように構成されてもよい。図示されるように、プロセス800は、ブロック802に示されるように、Wi-Fiネットワーク上で動作する1つ以上のユーザデバイスを監視するステップを含む。プロセス800は、ブロック804に示されるように、1つ以上のユーザデバイスのそれぞれに関して、使用パラメータ及び動作パラメータのうちの1つ以上を分析するステップをさらに含む。xまた、プロセス800は、ブロック806に示されるように、1つ以上のユーザデバイスのメディアアクセス制御(MAC)アドレスランダム化に応答して、1つ以上のユーザデバイスを、使用パラメータ及び動作パラメータのうちの1つ以上に基づいて識別するステップを含む。
【0121】
いくつかの実施形態では、プロセス800は、a)1つ以上のユーザデバイスのそれぞれに関連付けられたデバイス識別子を取得するステップと、b)1つ以上のユーザデバイスのそれぞれのデバイス識別子を、使用パラメータに基づく動作アイデンティティに関連付けるステップとをさらに含んでもよい。例えば、1つ以上のユーザデバイスのそれぞれに関連付けられたデバイス識別子は、メディアアクセス制御(MAC)アドレスであってもよい。プロセス800は、また、a)Wi-Fiネットワーク上で動作する未確認ユーザデバイスに関して新しいMACアドレスが検索されたときに検出するステップと、b)未確認ユーザデバイスの現在の使用パラメータを分析するステップと、c)未確認ユーザデバイスの現在の使用パラメータを以前に識別された1つ以上のユーザデバイスの使用パラメータと比較するステップとを含んでもよい。現在の使用パラメータが以前に識別されたユーザデバイスの1つの使用パラメータと一致すると決定することに応答して、プロセス800は、新しいMACアドレスを対応する以前に識別されたユーザデバイスのMACアドレスとスティッチングするステップを実行してもよい。あるいは、現在の使用パラメータが以前に識別された1つ以上のユーザデバイスの使用パラメータと一致しないと決定することに応答して、プロセス800は、未確認のユーザデバイスをWi-Fiネットワーク上で監視されるべき新たなデバイスとして、タグ付けするステップを実行してもよい。
【0122】
プロセス800は、1つ以上のユーザデバイスのそれぞれに関する使用パラメータを経時的に分析するステップを含んでもよい。次に、経時的に分析された使用パラメータに基づいて、プロセス80は、1人以上のユーザに関連する1つ以上の行動モデルを作成するステップを含んでもよく、それによって、各行動モデルは、ユーザがユーザデバイスの少なくとも1つをどのように使用するかに応じて、それぞれのユーザの使用パターンを表してもよい。いくつかの実施形態では、使用パラメータを経時的に分析するステップは、1つ以上の行動モデルを作成するために機械学習技術を利用することを含んでもよい。プロセス800は、a)1人以上のユーザを表すための1つ以上の固有ユーザ識別子を割り当てるステップと、b)1つ以上の固有ユーザ識別子を1つ以上の行動モデルに関連付けるステップとをさらに含んでもよい。いくつかの実施形態では、使用パラメータを経時的に分析するステップは、機械学習技術を利用して1つ以上の行動モデルを作成することを含んでもよい。
【0123】
追加の実施形態によれば、本明細書に記載される使用パラメータは、1つ以上のユーザデバイスにインストールされた1つ以上のアプリのアイデンティティに関連してもよい。また、使用パラメータは、アプリ使用情報に関連していてもよく、アプリ使用情報は、a)1つ以上のアプリの使用頻度、b)1つ以上のアプリのそれぞれに費やされた時間、c)アプリ使用に関連する通信の種類、d)アプリ使用の時間帯、及び/又は他の情報を含んでもよい。さらに、使用パラメータは、1つ以上のユーザデバイスによってアクセスされた1つ以上のウェブサイト又はドメインのアイデンティティに関連してもよい。
【0124】
いくつかの実施形態では、プロセス800は、複数のメトリクスの加重値に基づいて、1つ以上のユーザデバイスのそれぞれのアイデンティティを精緻化するステップを含んでもよい。メトリクスは、a)インストールされた1つ以上のアプリのアイデンティティ、b)アプリ使用情報、c)ブラウジングパターン、及び/又は他のメトリクスを含んでもよい。加重値は、例えば、メトリクスのそれぞれの一意性に関連してもよい。本明細書で言及されるユーザデバイスは、スマートフォン、コンピュータ、ラップトップ、タブレット、スマートテレビ、モノのインターネット(IoT)デバイス、メディアプレーヤ、又はWi-Fiネットワークと通信する他の適切なデバイスを含んでもよい。いくつかの実装では、使用パラメータは、a)Wi-Fiアクセスポイント使用、b)Wi-Fiネットワーク接続パターン、c)Bluetooth(登録商標)関連送信、d)デバイスポート使用、及び/又はデバイスに関連する他の行動等のデバイスベースの行動に関連してもよい。
【0125】
(結論)
本明細書で説明されるいくつかの実施形態は、特定の非プロセッサ回路と組み合わせて、本明細書に記載された方法及び/又はシステムの機能の一部、大部分、又は全部を実施するために、マイクロプロセッサ等の1つ以上の汎用プロセッサ又は特殊プロセッサ(「1つ以上のプロセッサ」);中央処理装置(CPU);デジタル信号プロセッサ(DSP)、ネットワークプロセッサ(NP)又はネットワーク処理ユニット(NPU)、グラフィックス処理ユニット(GPU)等のカスタマイズされたプロセッサ;フィールドプログラマブルゲートアレイ(FPGA)等を、その制御のための固有の格納されたプログラム命令(ソフトウェア及びファームウェアの両方を含む)と共に、含み得ることが理解されるであろう。代替として、一部又は全ての機能は、プログラム命令が格納されていないステートマシンによって、あるいは各機能又は機能の特定のいくつかの組み合わせがカスタムロジック又は回路として実装される1つ以上の特定用途向け集積回路(ASIC)において実装されてもよい。当然、前述のアプローチの組み合わせを使用してもよい。本明細書で説明される実施形態のいくつかについて、ハードウェア及び任意選択でソフトウェア、ファームウェア、及びそれらの組み合わせによる対応するデバイスは、様々な実施形態について本明細書で説明されるように、デジタル及び/又はアナログ信号に対して一連の動作、ステップ、方法、プロセス、アルゴリズム、機能、技術等を実行する「ように構成又は適応された回路」、「ように構成又は適応された論理」等と呼ぶこともできる。
【0126】
さらに、いくつかの実施形態は、本明細書で説明され特許請求されるような機能を実行するために、それぞれがプロセッサを含み得るコンピュータ、サーバ、アプライアンス、デバイス、プロセッサ、回路等をプログラミングするために、その上に格納されたコンピュータ可読コードを有する非一時的なコンピュータ可読ストレージ媒体を含んでもよい。このようなコンピュータ可読ストレージ媒体の例には、ハードディスク、光ストレージデバイス、磁気ストレージデバイス、ROM(読み出し専用メモリ)、PROM(プログラマブル読み出し専用メモリ)、EPROM(消去可能プログラマブル読み出し専用メモリ)、EEPROM(電気的消去可能プログラマブル読み出し専用メモリ)、フラッシュメモリ等が含まれるが、これらに限定されるわけではない。非一時的なコンピュータ可読媒体に格納される場合、ソフトウェアは、プロセッサ又はデバイス(例えば、任意のタイプのプログラム可能な回路又は論理)によって実行可能な命令を含むことができ、そのような実行に応答して、プロセッサ又はデバイスに、様々な実施形態について本書に記載された一連の操作、ステップ、方法、プロセス、アルゴリズム、機能、技術等を実行させることが可能である。
【0127】
本開示は、好ましい実施形態及びその具体例を参照して本明細書に図示し、説明してきたが、他の実施形態及び例が同様の機能を実行し及び/又は同様の結果を達成し得ることは、当業者にとって容易に明らかであろう。そのような同等の実施形態及び例は全て、本開示の精神及び範囲内にあり、それによって企図され、以下の特許請求の範囲によってカバーされることが意図されている。
図1
図2
図3
図4
図5
図6
図7
図8
【外国語明細書】