據我所知,沒有任何限制任何開發者編程他們的信標使用特定的UUID,主要,次要或標識符。如何防止欺騙iBeacons?
如果我創建一個UUID爲「foo」的iBeacon,那麼是什麼阻止另一個開發人員使用相同的ID和(無論是意外還是惡意)創建信標,導致我的應用顯示不正確的數據?
我誤解了iBeacons的工作原理嗎?如果我錯了,請糾正我。
據我所知,沒有任何限制任何開發者編程他們的信標使用特定的UUID,主要,次要或標識符。如何防止欺騙iBeacons?
如果我創建一個UUID爲「foo」的iBeacon,那麼是什麼阻止另一個開發人員使用相同的ID和(無論是意外還是惡意)創建信標,導致我的應用顯示不正確的數據?
我誤解了iBeacons的工作原理嗎?如果我錯了,請糾正我。
這是絕對正確的。我同時有spoofed the Apple Store's iBeacons(證明這一點),並且有消費電子展Scavenger Hunt的my beacons spoofed by Make magazine。
這不是一個缺陷。你只需要設計一個使用iBeacons的應用程序,這樣欺騙是相對無關緊要的。如果你設計你的應用程序,所以它並不重要,誰在乎?
適合於解決這個問題的特定安全機制取決於所討論的應用程序,但是有無數的可能性。例如,對於CES清道夫狩獵,我們只是保留帶時間戳的審計日誌,以便我們知道是否有人快速找到所有目標。最終沒有人做到這一點 - 我們的參與者都是很好的運動!
由於沒有發佈通用唯一標識符(UUID)的中央權威機構,因此無法防止欺騙廣告數據包。 UUID被任意分配給一個信標,實際上並不保證是唯一的。
但是,一旦將手持設備與信標配對,圖片就會有所不同。您可以編程一個信標(或更具體地說,類似信標的設備),以在配對時生成絕對唯一的信息,例如一次性密碼或應用程序與配對信標之間的某個私鑰加密握手。
的典型流程是:
手持機檢測iBeacon顯示廣播,讀取UUID +主要/次要。
手機將啓動您的應用程序(使用didEnterRegion事件)。
您的應用請求與信標配對,向其發送命令以生成加密響應。
您的應用程序解密響應。如果成功,展示一張幸福的臉!如果失敗,顯示一個悲傷的面孔。
未來,我懷疑大多數信標系統將以這種方式實施。除非和直到iBeacon標準更新以適應加密,否則它將不得不成爲ping + pair的混合方法。
來自[RFC 4122](http://www.ietf.org/rfc/rfc4122.txt)統一資源名稱命名空間用於 UUID(通用唯一標識符),也稱爲GUID(全局爲 唯一標識符)。一個UUID長度爲128位,並且可以保證在空間和時間上的唯一性。 – zaph
您可以將相同的UUID分配給所有信標。 – Blisterpeanuts
是的你可以,你可以在每個網站上使用相同的密碼。但是如果你不特意分配相同的UUID,它們將會不同。 – zaph
我認爲如果有足夠的人欺騙你的信標,那麼你的應用程序的質量可能會很差,因爲它可能有錯誤的信息。有效地,它成爲一個呼喊的問題 - 誰喊更大聲將是唯一聽到的:)(誰部署更多的信標,或更強大的發射機)。也許你已經想出了一個辦法來解決這個問題,但到目前爲止,我認爲我的解決方案並不「優雅」。我仍然需要測試我的解決方案以瞭解他們的工作情況。 –
該問題的一個解決方案是使用像我公司的http://proximitykit.com這樣的服務在應用程序中動態配置您的標識符。如果有人積極欺騙您的iBeacons,那麼您可以在不重新發布應用程序的情況下更改標識符。如果有人真的想破壞你,這可能會反覆出現。但是在服務器上執行DDOS攻擊要容易得多,所以我懷疑這種情況會非常罕見。對於一個破壞者來說,這只是太多的工作。 – davidgyoung