(57)【要約】【解決手段】Ｂｌｕｅｔｏｏｔｈおよびハイブリッドモードトランスミッタを用いた存在検出が開示される。いくつかの実施形態では、１または複数のトランスミッタは、ｉＢｅａｃｏｎブロードキャストおよび専有のＢｌｕｅｔｏｏｔｈ  Ｌｏｗ  Ｅｎｅｒｇｙ（ＢＴＬＥ）ブロードキャストを送信するよう構成されており、送信されたブロードキャストの内の少なくとも１つは、場所を特定する識別子を含む。ブロードキャストは、ハンドセットによって捕捉され、場所におけるハンドセットの存在を推測するために復号される。【選択図】図１Ｂ
2016510566.tif 000002
【特許請求の範囲】
【請求項１】
方法であって、
場所を特定する識別子を生成し、
ｉＢｅａｃｏｎブロードキャストおよび専有のＢｌｕｅｔｏｏｔｈ  Ｌｏｗ  Ｅｎｅｒｇｙ（ＢＴＬＥ）ブロードキャストを送信するように１または複数のトランスミッタを構成すること、
を備え、
前記送信されたブロードキャストの内の少なくとも１つは、前記識別子を含み、
前記送信されたブロードキャストは、ハンドセットによって捕捉され、前記場所における前記ハンドセットの存在を推測するために復号される、方法。
【請求項２】
請求項１に記載の方法であって、前記識別子は、店舗を特定する店舗識別子を含む、方法。
【請求項３】
請求項１に記載の方法であって、前記識別子は、売り場を特定する売り場識別子を含む、方法。
【請求項４】
請求項１に記載の方法であって、前記ｉＢｅａｃｏｎブロードキャストは、関連付けられているサービス識別子を検出するよう構成されたハンドセットアプリケーションをウェイクアップするために用いられる、方法。
【請求項５】
請求項１に記載の方法であって、さらに、前記ｉＢｅａｃｏｎブロードキャストおよび前記専有のＢＴＬＥブロードキャストをインターリーブすることを備える、方法。
【請求項６】
請求項５に記載の方法であって、ｉＢｅａｃｏｎが、専有のＢＴＬＥ信号と３：１の比でインターリーブされる、方法。
【請求項７】
請求項１に記載の方法であって、前記専有のＢＴＬＥブロードキャストは、暗号化される、方法。
【請求項８】
請求項１に記載の方法であって、前記専有のＢＴＬＥブロードキャストは、デジタル署名される、方法。
【請求項９】
請求項１に記載の方法であって、さらに、頻繁なアプリケーションウェイクアップをプロンプトするために、ｍａｊｏｒおよびｍｉｎｏｒのｉＢｅａｃｏｎ識別子の内の一方または両方をローテーションすることを備える、方法。
【請求項１０】
請求項１に記載の方法であって、さらに、サードパーティのウェイクアップを防止するために、前記ｉＢｅａｃｏｎ識別子を変更することを備える、方法。
【請求項１１】
請求項１０に記載の方法であって、前記ｉＢｅａｃｏｎ識別子は、前記ハンドセットを介して更新される、方法。
【請求項１２】
請求項１に記載の方法であって、前記識別子は、安全な識別子を含む、方法。
【請求項１３】
請求項１に記載の方法であって、前記識別子は、ノンスを含む、方法。
【請求項１４】
請求項１に記載の方法であって、前記識別子を生成することは、ハッシュを計算することを含み、前記ハッシュは、ノンス値および秘密鍵の少なくとも一方を含む、方法。
【請求項１５】
請求項１に記載の方法であって、さらに、超音波チャンネルを介して前記識別子を送信するように、超音波トランスミッタを構成することを備える、方法。
【請求項１６】
請求項１に記載の方法であって、さらに、前記ハンドセットを介して受信した指示に基づいて、前記トランスミッタの少なくとも１つを更新することを備える、方法。
【請求項１７】
請求項１に記載の方法であって、前記ハンドセットで捕捉された前記ブロードキャストは、前記ハンドセットのアプリケーションに関して処理される、方法。
【請求項１８】
請求項１に記載の方法であって、さらに、所定の期間にわたって前記ｉＢｅａｃｏｎブロードキャストを無効化することを備える、方法。
【請求項１９】
システムであって、
場所を特定する識別子を生成するよう構成されているプロセッサと、
ｉＢｅａｃｏｎブロードキャストおよび専有のＢｌｕｅｔｏｏｔｈ  Ｌｏｗ  Ｅｎｅｒｇｙ（ＢＴＬＥ）ブロードキャストを送信するように構成されている１または複数のトランスミッタと、
を備え、
前記送信されたブロードキャストの内の少なくとも１つは、前記識別子を含み、
前記送信されたブロードキャストは、ハンドセットによって捕捉され、前記場所における前記ハンドセットの存在を推測するために復号される、システム。
【請求項２０】
コンピュータプログラム製品であって、持続性のコンピュータ読み取り可能な記憶媒体内に具現化され、
場所を特定する識別子を生成するためのコンピュータ命令と、
ｉＢｅａｃｏｎブロードキャストおよび専有のＢｌｕｅｔｏｏｔｈ  Ｌｏｗ  Ｅｎｅｒｇｙ（ＢＴＬＥ）ブロードキャストを送信するように１または複数のトランスミッタを構成するコンピュータ命令と、
を備え、
前記送信されたブロードキャストの内の少なくとも１つは、前記識別子を含み、
前記送信されたブロードキャストは、ハンドセットによって捕捉され、前記場所における前記ハンドセットの存在を推測するために復号される、コンピュータプログラム製品。
【請求項２１】
方法であって、
場所識別子を含む安全な識別子を生成すること、
Ｂｌｕｅｔｏｏｔｈ  Ｌｏｗ  Ｅｎｅｒｇｙ  （ＢＴＬＥ）を用いて前記安全な識別子をブロードキャストするようにトランスミッタを構成すること、
を備え、
前記トランスミッタによってブロードキャストされた前記安全な識別子は、ハンドセットによって捕捉され、前記場所識別子によって特定される場所における前記ハンドセットの存在を推測するために復号される、方法。
【請求項２２】
請求項２１に記載の方法であって、前記場所識別子は、店舗識別子および売り場識別子の一方または両方を含む、方法。
【請求項２３】
請求項２１に記載の方法であって、前記安全な識別子は、ノンスを含む、方法。
【請求項２４】
請求項２１に記載の方法であって、前記安全な識別子を生成することは、ハッシュを計算することを含み、前記ハッシュは、ノンス値および秘密鍵の少なくとも一方を含む、方法。
【請求項２５】
請求項２１に記載の方法であって、さらに、超音波周波数を含む音声チャンネルを介して前記安全な識別子をブロードキャストするように、前記トランスミッタを構成することを備える、方法。
【請求項２６】
請求項２１に記載の方法であって、さらに、前記ハンドセットを介して受信した指示に基づいて、前記安全な識別子および前記トランスミッタのファームウェアの一方または両方を更新するように、前記トランスミッタを構成することを備える、方法。
【請求項２７】
方法であって、
所定のサービス識別子および対応するサービスパラメータを検出するためにＢｌｕｅｔｏｏｔｈ  Ｌｏｗ  Ｅｎｅｒｇｙ（ＢＴＬＥ）を介してスキャンを行うようにハンドセットを構成し、
場所識別子を抽出することを含み、前記サービスパラメータを復号し、
前記場所識別子に対応する場所における存在を推測すること、
を備える、方法。
【請求項２８】
請求項２７に記載の方法であって、前記サービス識別子は、一定の汎用一意識別子（ＵＵＩＤ）を含む、方法。
【請求項２９】
請求項２７に記載の方法であって、前記サービスパラメータは、ノンス値および秘密鍵の少なくとも一方を含むハッシュを計算することによって生成された安全な識別子を含む、方法。
【請求項３０】
請求項２７に記載の方法であって、前記場所識別子は、店舗識別子および売り場識別子の一方または両方を含む、方法。
【請求項３１】
請求項２７に記載の方法であって、前記ハンドセットは、Ｂｌｕｅｔｏｏｔｈアドバタイズメントをアクティブスキャンするよう構成されている、方法。
【請求項３２】
請求項２７に記載の方法であって、前記ハンドセットは、ＢＴＬＥでパッシブスキャンするよう構成されている、方法。
【請求項３３】
請求項２７に記載の方法であって、さらに、超音波音声チャンネルを介して、前記場所識別子を含む安全な識別子を受信するように、前記ハンドセットを構成することを備える、方法。
【請求項３４】
請求項２７に記載の方法であって、さらに、前記サービスパラメータを認証する工程を備える、方法。
【請求項３５】
請求項２７に記載の方法であって、さらに、前記場所に存在することに応じて、報酬を受ける工程を備える、方法。
【請求項３６】
請求項２７に記載の方法であって、さらに、前記所定のサービス識別子および対応するサービスパラメータをブロードキャストするトランスミッタを更新するように、前記ハンドセットを構成することを備える、方法。
【請求項３７】
請求項２７に記載の方法であって、さらに、ＢＴＬＥ検出を用いて音声ベースの検出をトリガするように、前記ハンドセットを構成することを備える、方法。
【請求項３８】
請求項２７に記載の方法であって、さらに、ＢＴＬＥを介して前記サービス識別子およびサービスパラメータを送信するための中継器として前記ハンドセットを構成することを備える、方法。
【請求項３９】
システムであって、
所定のサービス識別子および対応するサービスパラメータを検出するためにＢｌｕｅｔｏｏｔｈ  Ｌｏｗ  Ｅｎｅｒｇｙ（ＢＴＬＥ）を介してスキャンを行うように構成されているトランシーバと、
場所識別子を抽出することによって前記サービスパラメータを復号し、前記場所識別子に対応する場所における存在を推測するよう構成されているプロセッサと、
を備える、システム。
【請求項４０】
持続性のコンピュータ読み取り可能な記憶媒体内に具現化されたコンピュータプログラム製品であって、
所定のサービス識別子および対応するサービスパラメータを検出するためにＢｌｕｅｔｏｏｔｈ  Ｌｏｗ  Ｅｎｅｒｇｙ（ＢＴＬＥ）を介してスキャンを行うように、ハンドセットを構成するためのコンピュータ命令と、
前記サービスパラメータを復号するためのコンピュータ命令であって、場所識別子を抽出することを含む、コンピュータ命令と、
前記場所識別子に対応する場所における存在を推測するためのコンピュータ命令と、
を備える、コンピュータプログラム製品。
【発明の詳細な説明】
【背景技術】
【０００１】
他の出願の相互参照
本願は、すべての目的のために参照により本明細書に組み込まれる、２０１３年２月４日に出願された発明の名称を「ＰＲＥＳＥＮＣＥ  ＤＥＴＥＣＴＩＯＮ  ＵＳＩＮＧ  ＢＬＵＥＴＯＯＴＨ  ＡＮＤ  ＨＹＢＲＩＤ−ＭＯＤＥ  ＴＲＡＮＳＭＩＴＴＥＲＳ」とする米国仮特許出願第６１／７６０，３２０号に基づく優先権を主張する。本願は、さらに、すべての目的のために参照により本明細書に組み込まれる、２０１３年１２月９日に出願された発明の名称を「ＰＲＥＳＥＮＣＥ  ＤＥＴＥＣＴＩＯＮ  ＵＳＩＮＧ  ＢＬＵＥＴＯＯＴＨ  ＡＮＤ  ＨＹＢＲＩＤ−ＭＯＤＥ  ＴＲＡＮＳＭＩＴＴＥＲＳ」とする米国仮特許出願第６１／９１３，８５９号に基づく優先権を主張する。
【０００２】
現在の存在検出技術には、（例えば、Ｗｉ−Ｆｉ三角測量のための）ハードウェアおよび／または導入のコストが高いこと、ならびに、様々でありうるハンドセット音声チャンネルへの（例えば、超音波オーディオを用いた技術のための）依存など、多くの制限がある。
【図面の簡単な説明】
【０００３】
以下の詳細な説明と添付の図面において、本発明の様々な実施形態を開示する。
【０００４】
【図１Ａ】存在検出に利用されうる構成要素の一実施形態を示すハイレベルブロック図。
【０００５】
【図１Ｂ】トランスミッタの一実施形態を示すハイレベルブロック図。
【０００６】
【図２】安全な識別子をブロードキャストするための処理の一実施形態を示すフローチャート。
【０００７】
【図３Ａ】受信された安全な識別子を認証するための処理の実施形態を示すフローチャート。
【図３Ｂ】受信された安全な識別子を認証するための処理の実施形態を示すフローチャート。
【０００８】
【図４】トランスミッタ上のファームウェアの更新に関連する処理の実施形態を示すフローチャート。
【０００９】
【図５】トランスミッタのトランスミッタ識別子の更新に関連する処理の実施形態を示すフローチャート。
【発明を実施するための形態】
【００１０】
本発明は、処理、装置、システム、物質の組成、および／または、コンピュータ読み取り可能な記憶媒体またはプログラム命令が光学または電子通信リンクを介して送信されるコンピュータネットワークなどのコンピュータ読み取り媒体など、様々な形態で実施されうる。本明細書では、これらの実装または本発明が取りうる任意の他の形態を、技術と呼ぶ。一般に、開示された処理の工程の順序は、本発明の範囲内で変更されてもよい。
【００１１】
本発明の１または複数の実施形態の詳細な説明を以下に提供する。本発明は、かかる実施形態に関連して説明されているが、どの実施形態にも限定されない。本発明の範囲は、これらの実施形態によって限定されず、本発明は、多くの代替物、変形物、および、等価物を含む。以下の説明では、本発明の完全な理解を提供するために、多くの具体的な詳細事項が記載されている。これらの詳細事項は、例示を目的としたものであり、本発明は、これらの具体的な詳細事項の一部または全てがなくとも実施可能である。簡単のために、本発明に関連する技術分野で周知の技術要素については、本発明が必要以上にわかりにくくならないように、詳細には説明していない。
【００１２】
存在検出、例えば、店舗などの場所は、存在が検出される場所に関連付けられているコンテンツ（例えば、ユーザがお気に入りコンテンツとして示すコンテンツ、もしくは、以前のユーザの行動および／またはＦａｃｅｂｏｏｋ  Ｏｐｅｎ  Ｇｒａｐｈデータなど外部利用可能なデータを入力として用いて推薦システムによって推薦されたコンテンツ）を提示する、または、その場所に存在することと引き替えに報酬を与えるなど、様々な目的のために利用できる。存在検出のいくつかの利点が、２０１１年８月３日に出願された発明の名称を「ＭＥＴＨＯＤ  ＡＮＤ  ＳＹＳＴＥＭ  ＦＯＲ  ＰＲＥＳＥＮＣＥ  ＤＥＴＥＣＴＩＯＮ」とする米国特許出願第１３／１９７，７６３号に記載されており、その出願は、本明細書でその全てが説明されているとして、すべての目的のためにその全体が参照により本明細書に組み込まれる。そこで列挙されたすべての応用例は、本明細書に記載の存在検出技術に対して用いられてよく、超音波を利用したトランスミッタの記載は、本明細書に記載の音声を利用したトランスミッタ構成要素の可能な動作の記載と見なすことができる。
【００１３】
図１Ａは、存在検出に利用されうる構成要素の一実施形態を示すハイレベルブロック図である。この例では、ハンドセット１００が、場所１０４の敷地内でトランスミッタ１０２の存在を検出し、それに応じて、例えば、無線ネットワークを介してサーバ１０６と通信することによって反応する。トランスミッタ１０２は、以下の機能の内の１または複数のために構成されてよい。音声技術およびＢｌｕｅｔｏｏｔｈ（ブルートゥース）技術の両方を用いてモバイルユーザによって検出可能な店舗識別子および売り場識別子をブロードキャストする機能、リプレイアタックおよび不正トランスミッタの不正行為を防ぐ機能、ユーザが店舗に入った時にパッシブに検出し、任意の関連情報をユーザに通知する（アプリケーションを開いて既存の報酬（例えば、ポイント）を使うようにユーザに通知することを含むが、これに限定されない）機能、ならびに、携帯電話ハンドセットからリモートで安全に、トランスミッタによってブロードキャストされた店舗識別子および売り場識別子を更新する機能。
【００１４】
本明細書で用いる「ハンドセット」という用語は、スマートフォン、タブレットなど、任意の携帯コンピュータデバイスを指しうる。典型的なハンドセット（図１Ａのハンドセット１００など）は、マイクロプロセッサと、マイクロプロセッサに接続されて、マイクロプロセッサが実行するコードおよびマイクロプロセッサが管理するデータの両方を提供するメモリと、ユーザがユーザインターフェースを見てそれらと相互作用することを可能にするディスプレイ（例えば、タッチセンシティブディスプレイ）と、Ｂｌｕｅｔｏｏｔｈトランシーバと、マイクと、セルラーおよび／またはＷｉ−Ｆｉトランシーバと、様々な他の構成要素と、を備える。本開示においては、ハンドセットが技術を実行すると記載された場合、これは、マイクロプロセッサが、技術を実行するために、それに関連するメモリに格納されたコードに従って動作を実行し、必要であれば、ハンドセット内部の他の構成要素と相互作用することを意味すると解釈することが好ましい。
【００１５】
いくつかの実施形態において、トランスミッタ（図１Ａのトランスミッタ１０２など）は、次に２つの技術を組み込んでいる。トランスミッタが２つの媒体で識別子をブロードキャストすることを可能にするＢｌｕｅｔｏｏｔｈ  Ｌｏｗ  Ｅｎｅｒｇｙ（ＢＴＬＥ）モジュールおよびオンボード音声モジュール（例えば、ＤＡＣおよびツイータを含む）。本明細書で用いるＢｌｕｅｔｏｏｔｈおよびＢＴＬＥ、ならびに、当業者に周知の多くのＢｌｕｅｔｏｏｔｈ特有の用語は、２０１０年６月３０日付けのＢｌｕｅｔｏｏｔｈシステムバージョン４．０の仕様書に記載されている通りであり、これは、Ｂｌｕｅｔｏｏｔｈ特別利益団体（ＢｌｕｅｔｏｏｔｈＳＩＧ）からｈｔｔｐｓ：／／ｗｗｗ．ｂｌｕｅｔｏｏｔｈ．ｏｒｇ／Ｔｅｃｈｎｉｃａｌ／Ｓｐｅｃｉｆｉｃａｔｉｏｎｓ／ａｄｏｐｔｅｄ．ｈｔｍおよび／またはｈｔｔｐｓ：／／ｗｗｗ．ｂｌｕｅｔｏｏｔｈ．ｏｒｇ／ｄｏｃｍａｎ／ｈａｎｄｌｅｒｓ／ｄｏｗｎｌｏａｄｄｏｃ．ａｓｈｘ？ｄｏｃ＿ｉｄ＝２２９７３７で入手可能であり、これらは、本明細書において全てが説明されたかのように、すべての目的のために全体が参照により本明細書に組み込まれる。
【００１６】
図１Ｂは、トランスミッタの一実施形態を示すハイレベルブロック図である。例えば、図１Ｂのトランスミッタ１２０は、図１Ａのトランスミッタ１０２を含む。図に示すように、トランスミッタ１２０は、マイクロプロセッサボード１２２を備える。「ボード」という用語の使用は、別個の物理ボードが必要であることを意味するものではないことに注意されたい。つまり、すべての構成要素（または、ツイータを除くすべての構成要素）が、単一の物理ボードに含まれてもよい。マイクロプロセッサボード１２２は、オンボードデジタル−アナログコンバータ（ＤＡＣ）を備えており、ブロック１２４として図示したツイータに接続された増幅器を通して、店舗識別子および／または売り場識別子をブロードキャストする。本明細書で用いられているように、「ツイータ」という用語は、適切なスペクトル（例えば、超音波トランスミッタに関連する超音波周波数）で、音声を再生することができる変換器のことである。図に示すように、マイクロプロセッサボード１２２は、さらに、中央処理装置（ＣＰＵ）１２６およびダイレクトメモリアクセス（ＤＭＡ）１２８を備える。いくつかの実施形態において、ＤＡＣは、ＣＰＵに一体化されてもよい。トランスミッタ１２０は、さらに、Ｂｌｕｅｔｏｏｔｈ  Ｌｏｗ  Ｅｎｅｒｇｙ（ＢＴＬＥ）モジュール１３０を備える。いくつかの実施形態において、ＢＴＬＥモジュール１３０は、必要最低限のスタックを実行すると共に汎用同期／非同期レシーバ／トランスミッタ（ＵＳＡＲＴ）リンク１３２でマイクロプロセッサボード１２２と通信するスタンドアローン型のＢＴＬＥモジュールを含む。
【００１７】
いくつかの実施形態において、トランスミッタ（例えば、図１Ａのトランスミッタ１０２または図１Ｂのトランスミッタ１２０）は、音声チャンネルおよびＢｌｕｅｔｏｏｔｈチャンネルの両方を用いて、店舗および／または売り場の識別子をブロードキャストする。いくつかの実施形態において、音声については、識別子が、超音波周波数を用いて暗号化され、ツイータを用いてブロードキャストされる。いくつかの実施形態において、Ｂｌｕｅｔｏｏｔｈ（登録商標、以下同様）については、識別子が、Ｂｌｕｅｔｏｏｔｈビーコンおよびブロードキャストのアドバタイズメントパラメータ内に、Ｂｌｕｅｔｏｏｔｈチャンネルのパッシブスキャンを用いて携帯電話ハンドセットによって検出できるサービスとして埋め込まれる。
【００１８】
図２は、安全な識別子またはコードをブロードキャストするための処理の一実施形態を示すフローチャートである。いくつかの実施形態では、コードローテーション（ｃｏｄｅ  ｒｏｔａｔｉｏｎ）が、不正を防ぐために用いられる。処理２００は、具体的には、リプレイアタックを防ぐためにノンスおよびハッシュメカニズムを用いる。工程２０２では、ノンスが生成される。ノンスは、決して繰り返されず、任意の適切な技術を用いてトランスミッタ（例えば、図１Ａのトランスミッタ１０２または図１Ｂのトランスミッタ１２０）によって定期的に生成されてよい。例えば、いくつかの実施形態では、マイクロプロセッサまたはＢｌｕｅｔｏｏｔｈのクロックからの現在のタイムスタンプのハッシュが、ノンスの生成に用いられる。別の例では、定期的に更新される単純な単調増大列が、ノンスの生成に用いられる。かかる場合、インクリメントの周期は、適切に選択されてよい、および／または、動的に変更されてよい。インクリメントの一例は、１０分である。
【００１９】
工程２０４では、工程２０２で生成されたノンスが、ブロードキャストされる必要のある店舗識別子および／または売り場識別子と組み合わされ、不可逆ハッシュが、組み合わされた結果について計算される。「ハッシュ」という用語は、この説明のために非形式的に用いられており、任意の明示的に言及されたコンテンツがハッシュされるのに加えて、秘密鍵による鍵付きハッシュを含む。ハッシュは、ＳＨＡ−１、ＭＤ５など、当業者に周知の任意の暗号学的ハッシュ関数を含みうる。「ハッシュ」を意味しうるものの一例は、ＳＨＡ−１を用いるＨＭＡＣである。ＨＭＡＣは、ｈｔｔｐ：／／ｔｏｏｌｓ．ｉｅｔｆ．ｏｒｇ／ｈｔｍｌ／ｒｆｃ２１０４でＩＥＴＦからオンラインで入手可能なインターネット技術タスクフォース（ＩＥＴＦ）ＲＦＣ２１０４に記載されており、これは、本明細書で全てが説明されたかのように、すべての目的のために参照により本明細書に組み込まれる。
【００２０】
工程２０６では、秘密ハッシュ鍵が格納される。例えば、秘密ハッシュ鍵は、メモリ内（トランスミッタのマイクロプロセッサのコード内など）に焼き付けられ、どの外部関係者にも暴露されない。
【００２１】
工程２０８では、以下の式に従ってブロードキャストするための安全な識別子を生成するために、ハッシュ結果が、組み合わせの最後に加えられる。
【００２２】
安全な識別子＝（ノンス＋店舗識別子＋ハッシュ（ノンス＋店舗識別子））
【００２３】
本明細書で用いられているように、店舗識別子は、店舗識別子の別個の構成要素として、もしくは、例えば、データベース内で、別個の店舗識別子および売り場識別子に関連付けられた単一の識別子として、売り場識別子を含んでよい。生成された安全な識別子の一例では、４バイトがノンスに用いられ、８バイトが店舗識別子に用いられ、４バイトがハッシュに用いられる。
【００２４】
工程２１０では、工程２０８において生成された安全な識別子がブロードキャストされる。いくつかの実施形態では、ブロードキャストの前に、ＢＴＬＥモジュール１３０を適切に構成して、例えば、ＵＳＡＲＴ１３２を介して、サービスパラメータを更新する。いくつかの実施形態では、Ｂｌｕｅｔｏｏｔｈサービス識別子が、所定の（例えば、ショップキックの）サービス識別子に設定される。サービス識別子は、一定の（例えば、１２８ビットの）汎用一意識別子（ＵＵＩＤ）であり、ｉＯＳまたはＡｎｄｒｏｉｄなどのハンドセットオペレーティングシステムの下でのパッシブスキャンを可能にする。かかる場合、安全な識別子は、一定の（ショップキックの）サービスのためのサービスパラメータとしてブロードキャストされてよい。したがって、工程２１０は、一定のサービスＵＵＩＤおよび安全な識別子をサービスパラメータとしてＢｌｕｅｔｏｏｔｈビーコンを介してブロードキャストすること、ならびに、任意選択的に、超音波周波数を用いてサービスパラメータ（または修正バージョン（サービス識別子の代わりに店舗識別子など）または売り場コードを含まないバージョン）を変調することを含んでよい。
【００２５】
トランスミッタ（例えば、図１Ａのトランスミッタ１０２または図１Ｂのトランスミッタ１２０）によってブロードキャストされた安全な識別子は、マイクで音声を捕捉することによって音声チャンネルを通して、Ｂｌｕｅｔｏｏｔｈアドバタイズメントをアクティブスキャンすることによって、および／または、ハンドセットオペレーティングシステムの機能を用いてパッシブスキャンすることによって、ユーザの携帯電話ハンドセットによって捕捉されてよい。例えば、受信すべきサービスＵＵＩＤのリストが提供されてよく、リストから任意の識別子が検出された時に、通知が受信されてよい。
【００２６】
図３Ａ〜図３Ｂは、受信された安全な識別子を認証するための処理の実施形態を示すフローチャートである。
【００２７】
図３Ａの処理３００は、例えば、携帯電話ハンドセットによって用いられてよい。工程３０２で、安全な識別子が検出される。工程３０４では、安全な識別子は認証される。例えば、安全な識別子は、認証のために関連サーバ（例えば、ショップキックのサーバ）に送信されてよい。別の実施形態において、かかる処理は、ハンドセット上で実行されてもよい。サーバが何らかの理由で利用できない場合、安全な識別子は、キャッシュされ、サーバが到達可能になった時にサーバに伝送されてよい。かかるオフラインでの入店に対応するために、各ノンスは、所定の期間（例えば、１時間）にわたって有効であってよい。工程３０６では、安全な識別子が認証されるか否かが判定される。安全な識別子が認証された場合、有効な応答が、工程３０４の認証処理に応じて工程３０８において受信される。安全な識別子が認証されなかった場合、安全な識別子は有効でないと工程３１０で結論づけられる。すなわち、有効な応答が工程３０４の認証処理に応答して工程３１０において受信されることはなく、その代わり、例えば、応答がないか、または、安全な識別子が不正である旨の示唆が工程３１０において受信されてもよい。
【００２８】
図３Ｂの処理３１２は、例えば、サーバ側で、例えば、ハンドセットで安全な識別子を検出するモバイルアプリケーションに関連するサーバで、実行されてよい。工程３１４では、安全な識別子を認証する要求が、モバイルアプリケーションから受信される。工程３１６では、ハッシュが計算され、その結果が、安全な識別子と共に含まれるハッシュバイトと比較される。例えば、工程３１６では、不可逆ハッシュが、例えば、ＨＭＡＣを用いて、秘密鍵と共に（ノンス＋店舗識別子）の組み合わせで計算され、その結果が、安全な識別子上のハッシュバイトと比較されてよい。工程３１８では、安全な識別子が有効であるか否かが判定される。安全な識別子が有効である（例えば、ハッシュが一致し、安全な識別子内のノンスがまだ有効であるため）と判定された場合、有効な応答が、工程３２０においてクライアントに送信される。安全な識別子が有効でないと判定された場合、要求は、工程３２２において、破棄され、および／または、不正行為として記録され、有効な応答はクライアントに送信されない。
【００２９】
トランスミッタ内にＢｌｕｅｔｏｏｔｈモジュールを統合する利点は、スマートフォンからトランスミッタコードのいくつかのコンポーネントおよびその他のパラメータを更新できることなど、携帯電話ハンドセットからトランスミッタと相互作用できることである。
【００３０】
図４〜図５は、トランスミッタに割り当てられた店舗識別子および／または売り場識別子を更新するための処理の実施形態を示すフローチャートである。
【００３１】
図４は、トランスミッタ上のファームウェアの更新に関連する処理の実施形態を示すフローチャートを含んでおり、その処理では、トランスミッタ上のコード全体を変更し、新しいコードでトランスミッタを再起動する。店舗識別子および／または売り場識別子は、トランスミッタファームウェアの一部であるため、それらも、この処理で更新される。図４の処理４００は、例えば、サーバ側の処理を含んでよい。工程４０２では、新しいファームウェアが計算される。一部の例では、新しいファームウェアは、トランスミッタコードをエンコードする新しいウェイブファイルで計算される。Ｂｌｕｅｔｏｏｔｈ（特にＢＴＬＥ）は、少量のデータ転送に適しているので、いくつかの実施形態では、分割更新が実行される。したがって、新しいファームウェア全体が、工程４０４において小部分に分割される。工程４０６では、それらの部分は、例えば、クライアントが入店してトランスミッタを検出した時に、および／または、それらの入店履歴に応じて、クライアントに割り当てられる。図４の処理４０８は、クライアント側の処理を含む。工程４１０では、新しいファームウェアのチャンクすなわち部分が受信される。工程４１２では、新しいファームウェアの受信済み部分が、例えば、新しいファームウェアの受信済み部分に対応する小さい値をトランスミッタ上で更新できるように、トランスミッタに送信される。図４の処理４１４は、トランスミッタ側の処理を含む。工程４１６では、新しいファームウェアを含む部分が、例えば、１または複数のクライアントから受信される。工程４１８では、新しいファームウェアのデジタル署名（例えば、ＨＭＡＣ、もしくは、ＲＳＡなどの非対称暗号化を用いるものなど当業者に周知の別のデジタル署名技術）がチェックされる。工程４２０では、デジタル署名のチェックが成功したか否かが判定される。デジタル署名のチェックが成功した場合、工程４２２では、ファームウェアが更新され、トランスミッタは再起動される。デジタル署名のチェックが失敗した場合、受信されたファームウェアは、工程４２４において破棄され、トランスミッタの既存のファームウェアは更新されない。
【００３２】
図５は、トランスミッタのトランスミッタ識別子の更新に関連する処理の実施形態を示すフローチャートである。いくつかの実施形態において、トランスミッタ識別子は、携帯電話ハンドセットによって更新できる（例えば、ＢｌｕｅｔｏｏｔｈＧＡＴＴプロトコルで）書き込み可能なプロパティを含む。図５の処理５００は、サーバ側の処理を含む。工程５０２では、トランスミッタのための新しい識別子が、鍵で署名される（例えば、ＨＭＡＣ、もしくは、ＲＳＡなどの非対称暗号化を用いるものなど当業者に周知の別のデジタル署名技術を用いて）。工程５０４では、署名済みのコピーは、例えば、（オンデマンドで）更新が必要であるとサーバによって判断された特定のトランスミッタが検出されたことをモバイルクライアントが報告した時、もしくは、クライアントの入店履歴または地理的位置に応じて（例えば、クライアントがトランスミッタを含む場所に入った履歴を有する場合または地理的に近い場合（プリフェッチ）などに）、モバイルクライアントに送信される。図５の処理５０６は、クライアント側の処理を含む。工程５０８では、署名された識別子が、例えば、関連サーバからモバイルクライアントで受信される。工程５１０では、署名された識別子は、識別子値の更新のためにトランスミッタに送信される。図５の処理５１２は、トランスミッタ側の処理を含む。工程５１４では、署名された識別子は、例えば、モバイルクライアントからトランスミッタで受信される。工程５１６では、署名された識別子は、上述したのと同様の方法で、その鍵を用いて認証される。工程５１８では、識別子が有効か否か判定される。署名された識別子が有効でないと判定された場合、トランスミッタ識別子は、工程５２０において更新されない。しかしながら、署名された識別子が有効であると判定された場合、トランスミッタ識別子は更新され（例えば、ＵＳＡＲＴを介してＢＴＬＥモジュールと通信することによる）、新しい識別子は、工程５２２にてブロードキャストされる。トランスミッタ識別子が更新されると、新しい音声ウェイブファイルが、新しい識別子を用いてトランスミッタ上で生成される。いくつかの実施形態において、処理５０６は、任意選択的に、識別子が更新されたことをハンドセットが確認してサーバに通知する工程５２４を含む。いくつかの実施形態において、処理５００は、任意選択的に、識別子が更新された旨の示唆がクライアントからサーバで受信され、識別子と場所／売り場とのデータベースマッピングがそれに従ってサーバで更新される工程５２６を含む。
【００３３】
いくつかの実施形態では、Ｗａｋｅ−ｏｎ−Ｂｌｕｅｔｏｏｔｈが、音声ベースの検出を有効化するために用いられる。すなわち、Ｂｌｕｅｔｏｏｔｈは、携帯電話ハンドセット上で音声ベースの検出をトリガするために用いられてよい。この技術では、上述のＢｌｕｅｔｏｏｔｈスキャニングが、近くのトランスミッタを検出するために用いられ、そうして、トランスミッタは、ユーザがいる正確な場所を把握するために、関連アプリケーション内の音声検出をトリガすることができる。あるいは、店舗は、Ｂｌｕｅｔｏｏｔｈ識別子から知られうるが、対応するまたは互換性のある音声信号が検出されるまでは、存在は推測されえない。
【００３４】
いくつかの実施形態において、携帯電話は、Ｂｌｕｅｔｏｏｔｈ中継器として用いられる。Ｂｌｕｅｔｏｏｔｈモジュールを持たない（すなわち、音声ベースの信号伝達のみをサポートする）既存のトランスミッタをアップグレードするための別の重要なメカニズムは、音声トランスミッタの設けられた店舗内にＢＴＬＥ対応のハンドセットがある時に、それらのハンドセットを小型アドホックトランスミッタにすることである。この方法では、ハンドセットは、音声信号伝達を介してコードを検出すると、そのＢＴＬＥトランスミッタで同じコードをブロードキャストして、近くの他のユーザが、上述したように、Ｂｌｕｅｔｏｏｔｈによる検出またはウェイクアップ（起動）を利用することを可能にすることができる。このメカニズムより、追加のコストもハードウェアもなしに、ＢＴＬＥで既存のインフラをアップグレードすることができる。それは、ＢＴＬＥトランスミッタの範囲を拡張するために、最初のＢＴＬＥ検出と共に用いられてもよい。いずれの場合でも、アドホックトランスミッタは、最初のトランスミッタが検出されてからの閾値期間、または、最初のトランスミッタが検出されてからの移動距離の検出（例えば、加速度計またはＧＰＳまたはハンドセット上のその他の手段による）など、基準に達した時に動作を停止するよう構成されてよい。
【００３５】
いくつかの実施形態において、Ｂｌｕｅｔｏｏｔｈ対応のトランスミッタが、きめ細かい室内マッピングのために用いられてもよい。すなわち、Ｂｌｕｅｔｏｏｔｈの信号伝搬特性が、例えば、店舗に入った時のユーザの正確な識別、および、ユーザが店舗内の異なる区域を訪問した時のユーザの追跡など、きめ細かい位置マッピングを実行するために活用されてよい。かかる機能は、例えば、店舗のすべての売り場に１または複数のＢｌｕｅｔｏｏｔｈ対応トランスミッタを配置して、すべての近くのトランスミッタからの音声信号およびＢｌｕｅｔｏｏｔｈ信号の両方の信号強度を携帯電話ハンドセット上に記録することによって達成されてよい。いくつかのかかる場合に、クラスタリング技術（例えば、三角測量、ソーティングなど）が、携帯電話ハンドセットの正確な位置を狭めるために用いられてもよい。異なるトランスミッタからの複数の信号が、単発的なトランスミッタ盗難を防ぐための認証メカニズムとして用いられてもよい。
【００３６】
本明細書に記載の複合型のＢＴＬＥおよび音声ベースのトランスミッタのための多くの応用例が存在する。上述のように、ＢＴＬＥモジュールをトランスミッタに追加することにより、いくつかのタスクを効率的に実行できるようになる。例えば、トランスミッタの店舗識別子および／または売り場識別子の更新が、リモートで達成されてよい。さらに、トランスミッタは、ｉＯＳおよびＡｎｄｒｏｉｄでサポートされているＢｌｕｅｔｏｏｔｈサービスのパッシブスキャンを用いて、関連アプリケーションがバックグラウンドにある間に検出されてよい。かかるパッシブなＢｌｕｅｔｏｏｔｈ検出は、例えば、アプリケーションを開いて報酬を得ることをユーザに気付かせる動作、店舗および／または売り場に固有のオファーに関するアラートをポップアップする動作、ならびに、関連アプリケーションからの店舗固有の情報とユーザのプロフィールとを用いて、ターゲットを絞った広告およびリマインダを示す動作など、状況によって複数の動作をトリガしてよい。さらに、ユーザは、モールに入った時に、チェックすべき店舗を提案されてもよい。Ｂｌｕｅｔｏｏｔｈ信号は、店舗から外に流れるので、ユーザが或る程度離れていても検出されることができ、最新の販売促進および特定のユーザの興味に基づいて、異なる店舗を提案するために利用可能である。
【００３７】
ｉＯＳ７と同時に、Ａｐｐｌｅ社はｉＢｅａｃｏｎを導入した。ｉＢｅａｃｏｎは、ブロードキャストを行うエンティティのための識別子と、「ｍａｊｏｒ」識別子および「ｍｉｎｏｒ」識別子（例えば、店舗識別子および／または売り場識別子として用いることができる）とを含むメッセージをブロードキャストするための固有のフォーマットを含む。ｉＢｅａｃｏｎブロードキャストの正確なフォーマットは、既知の「ｍａｊｏｒ」識別子および「ｍｉｎｏｒ」識別子を有するｉＢｅａｃｏｎのＢＴＬＥブロードキャストを捕捉することにより、当業者によって容易に観察できる。ｉＢｅａｃｏｎの利点は、アプリケーションが特定の識別子を有するｉＢｅａｃｏｎの検出持にウェイクアップされるように登録できるように、ｉＯＳ７がｉＢｅａｃｏｎのためのＯＳレベルのサポートを含むことである。しかしながら、ｉＢｅａｃｏｎの欠点は、標準的なｉＢｅａｃｏｎの実装では、例えば、特定のエンティティのビーコンへの注意を喚起されるように登録した後に、位置識別子に「ｍａｊｏｒ」識別子および「ｍｉｎｏｒ」識別子を用いることによって、インフラへのただ乗りが非常に容易になっていることである。ｉＢｅａｃｏｎプロトコルがその基本形態で用いられる場合、これらのビーコンは、アプリケーションのウェイクアップに利用可能である。さらに、コードローテーションの機能がなく、どの送信も偽造は容易なことなので、ｉＢｅａｃｏｎブロードキャストは不正を受けやすい。
【００３８】
いくつかの実施形態では、ｉＢｅａｃｏｎおよび専有（ｐｒｏｐｒｉｅｔａｒｙ）ＢＴＬＥのブロードキャストがインターリーブされる。すなわち、ｉＢｅａｃｏｎのウェイクアップ機能を利用するが、競争者によるただのりを回避するために、ｉＢｅａｃｏｎアドバタイズメントパケットがカスタムの専有ブロードキャストとインターリーブされる。ｉＢｅａｃｏｎ信号は、意味のないｍａｊｏｒおよびｍｉｎｏｒ識別子と共に、１２８ビットＵＵＩＤだけを含む。これは、競争者が存在検出のために専有のインフラを利用することを防ぐために意図的に行われる。上記に詳述したように、専有ブロードキャスト内の店舗および／または売り場の情報が、暗号化および／またはデジタル署名される。一例において、ｉＢｅａｃｏｎ信号は、３：１の比で専有の信号とインターリーブされる（この値は、ウェイクアップの待ち時間を最小化するように調整されるが、同時に専有のブロードキャストからの正確な店舗および／または売り場の情報を復号するのに掛かる時間も最小化する）が、その他の比も実施可能である。
【００３９】
いくつかの実施形態において、ｍａｊｏｒおよび／またはｍｉｎｏｒのｉＢｅａｃｏｎ識別子は、頻繁なアプリケーションウェイクアップをプロンプトするためにローテーションされる。ウェイクアップを登録するために、アプリケーションは、ｉＢｅａｃｏｎ識別子もしくはｉＢｅａｃｏｎ識別子とｍａｊｏｒおよび／またはｍｉｎｏｒ識別子との組み合わせのいずれかを指定する必要がある。前者の場合、ｉＯＳは、所望のｉＢｅａｃｏｎ識別子をブロードキャストしているｉＢｅａｃｏｎソースの範囲に入った時に一回だけアプリケーションをウェイクアップする。したがって、ｉＢｅａｃｏｎ識別子をブロードキャストする複数のビーコンが存在する場合、デバイスが最初に遭遇したビーコンのみが、アプリケーションをウェイクアップする。残りのビーコンは、アプリケーションのウェイクアップにつながらない。これは、アプリケーションが、同じｉＢｅａｃｏｎＵＵＩＤをブロードキャストする異なるビーコンでウェイクアップすることが望ましい比較的広い配備において、問題になりうる。この問題を解決する複数の方法がある。１つの解決策は、すべての物理的ビーコンに異なるｍａｊｏｒ識別子および／またはｍｉｎｏｒ識別子を割り当て、次いで、ｉＢｅａｃｏｎ識別子とｍａｊｏｒ識別子および／またはｍｉｎｏｒ識別子との全組み合わせでウェイクアップされるようにアプリケーションに登録させることを含む。しかしながら、この場合、任意のサードパーティアプリケーションが、全ビーコンの具体的な位置を特定でき、ビーコン配備にただ乗りできる。したがって、この解決策すなわちスキームは、望ましくない場合がある。より実行可能な解決策は、すべての物理的ビーコンにｉＢｅａｃｏｎ識別子をブロードキャストさせて、１セットのｍａｊｏｒ識別子および／またはｍｉｎｏｒ識別子をローテーションする（切り替える）ことを含む。アプリケーションは、そのセットのｍａｊｏｒ識別子および／またはｍｉｎｏｒ識別子すべてによってウェイクアップされるように登録しているが、競争者が特定のビーコンソースをｍａｊｏｒ識別子および／またはｍｉｎｏｒ識別子に対応付ける方法はない。ローテーションスキームは、確率的に近くにあるビーコンが異なるｍａｊｏｒ識別子および／またはｍｉｎｏｒ識別子をブロードキャストして、異なる物理的ビーコンに近づいた時にアプリケーションがウェイクアップされることを可能にするように選択されてよい。
【００４０】
いくつかの実施形態において、ｉＢｅａｃｏｎ識別子は、サードパーティのウェイクアップを防ぐために変更される。サードパーティアプリケーションが所定の専有ｉＢｅａｃｏｎ識別子からのウェイクアップを登録することを完全に防ぐために、ｉＢｅａｃｏｎ識別子は、クライアントから更新される。かかる更新は、段階的に行われうる。全ビーコンが新しいｉＢｅａｃｏｎ識別子に更新されるまで、関連アプリケーションは、新旧両方のｉＢｅａｃｏｎ識別子によってウェイクアップされるように登録するが、更新が完了すると、アプリケーションは、新しいｉＢｅａｃｏｎ識別子だけに切り替えることができる。この更新の頻度により、新しいｉＢｅａｃｏｎ識別子に気づいていない任意のサードパーティアプリケーションを、ウェイクアップについて信頼できないものとすることができる。したがって、所定のｉＢｅａｃｏｎ識別子が一定であることに依存する任意の商用アプリケーションは、悪いウェイクアップを体験し、最新のｉＢｅａｃｏｎ識別子に遅れないようにその場のＢｌｕｅｔｏｏｔｈ信号を常に監視および／または傍受する必要がある。
【００４１】
いくつかの実施形態において、ｉＢｅａｃｏｎブロードキャストは、任意の特定の期間にわたって完全に無効化されてもよい。すなわち、サードパーティアプリケーションがウェイクアップのために全く専有ビーコンを利用できないように、ｉＢｅａｃｏｎサポートが、完全に停止されてよい。これは、任意のランダムな期間にわたって実施されてもよいし、永続的であってもよい。それは、あらゆる形態のただ乗りから専有のインフラ配備を守る最終的な防御を提供する。
【００４２】
上述の実施形態は、理解しやすいようにいくぶん詳しく説明されているが、本発明は、提供された詳細事項に限定されるものではない。本発明を実施する多くの代替方法が存在する。開示された実施形態は、例示であり、限定を意図するものではない。
【図１Ａ】
2016510566.tif 000003
【図１Ｂ】
2016510566.tif 000004
【図２】
2016510566.tif 000005
【図３Ａ】
2016510566.tif 000006
【図３Ｂ】
2016510566.tif 000007
【図４】
2016510566.tif 000008
【図５】
2016510566.tif 000009
【国際調査報告】
2016510566.tif 000010
2016510566.tif 000011