マルチフロアのショッピングモールで言うように、多くのビーコンを使用して1つのアプリを開発しようとしています. この状況で、どうすればこれらを制御できますか
誰かがビーコンのクローンを作成し、メジャーとマイナーの同じ UUID を使用して信号をアドバタイズし始めたとします。それを防ぐ方法と、実行できるその他のセキュリティ対策は何ですか?
複数の通知を回避する方法、2 つのビーコンが競合する場所が複数のビーコンに共通している場合、アプリでそれを制御するにはどうすればよいですか?
マルチフロアのショッピングモールで言うように、多くのビーコンを使用して1つのアプリを開発しようとしています. この状況で、どうすればこれらを制御できますか
誰かがビーコンのクローンを作成し、メジャーとマイナーの同じ UUID を使用して信号をアドバタイズし始めたとします。それを防ぐ方法と、実行できるその他のセキュリティ対策は何ですか?
複数の通知を回避する方法、2 つのビーコンが競合する場所が複数のビーコンに共通している場合、アプリでそれを制御するにはどうすればよいですか?
iBeacon 標準には、複製を防止する組み込みの方法はありません。Apple は、ProximityUUID が既知のものを除き、iOS デバイスが iBeacon を認識できないように制限しており、これは初歩的なセキュリティの試みであった可能性があることを示唆しています。しかし、他のオペレーティング システム (Android、OSX Mavericks、Linux) ではすべての iBeacon の識別子を読み取ることができるため、この制限はかなりばかげているように思えます。Android iBeacon Locateなどのツールを使用して識別子を読み取り 、同じ識別子を使用して独自の iBeacon を展開することができます。
これに対処するための 4 つの一般的なアプローチ:
何もしない。これは、複製されたビーコンが軽微な結果を引き起こすほとんどのユースケース、または誰かがこれを行うリスクが最小限である目立たない展開に適しています。
iBeacon 識別子をローテーションします。これは、ビーコンを置き換えるか、識別子を定期的に手動で変更することにより、手動で行うことができます。これで問題が解消されるわけではありませんが、リスクと時間への影響が制限されます。
自動化されたローテーション ID を自動システムと組み合わせて使用し、信頼できる ID に検証/変換します。
iBeacon 標準を放棄し、暗号化を使用した独自のビーコン テクノロジを使用します。これを選択すると、iBeacons を操作するための広く利用可能なオープン ソースおよび商用ツールを使用できなくなり、単一のベンダーに縛られるため、これは最後の手段と見なす必要があります。
最初のオプション以外のオプションを選択する前に、クローン作成のリスクと結果を慎重に評価し、講じる対策がマイナス面に見合うだけの価値があることを確認してください。
質問で説明されている複数の通知の問題は、通常、意図的な複製がなければ問題になりません。ビーコンの ProximityUUID/major/minor 番号を、ユーザーに提供するイベントごとに一意になるように設計し、アプリが適切に応答するようにします。
ビーコン クローンの場合:
ビーコン ファームウェアをカスタマイズし、メジャー/マイナーをランダム キーで暗号化します。ビーコンとアプリの両方がクラウドにアクセスできる場合は、クラウド経由でランダム キーを交換して、メジャー/マイナー ID を暗号化/復号化します。クラウドが含まれていない場合、ビーコンとアプリは、シードとして時間を使用するなど、ランダムなキー生成アルゴリズムを処理する必要があります。(ビーコン広告データのクローンまたはリプレイは依然としてアプリをだます可能性があるため、永続的に固定されたキーで暗号化することは役に立ちません)
定義済みのテーブルベースのリストを使用して UUID をローテーションします。これにより、定期的に変更される UUID のリスクが軽減されますが、セキュリティの問題が実際に修正されるわけではありません。また、UUID リストのサイズには制限があります。これは、リスト内のすべての UUID をアプリ (ex iOS) に事前登録して、iOS が認識された領域として認識し、アプリにデータを渡すことができるようにする必要があるためです。
マルチ通知の場合:
通常、これはアプリで処理する必要があります。領域またはビーコン トリガー コールバックに入るとき、アプリは uuid-major-minor 情報によって重複領域であるかどうかを確認する必要があります。アプリは、関連する通知/情報がユーザーに送信されているかどうか、またはユーザーが重複した通知に煩わされないようにする必要があるかどうかも確認する必要があります。