2014年03月11日01:43
UUID決定對應哪款App
使用iBeacon的前提條件,是用戶開啟支持BLE的iOS終端的藍牙功能,並開啟位置信息服務(注1)、(注2)。而且,接收UUID的App如果不在后台運行,就接收不到UUID。iOS在接收到iBeacon后,會將UUID告知使用iBeacon的App。在UUID的觸發下,App會進入下一步處理(注3)。
(注1)支持BLE的iOS終端包括iPhone 4s之后的iPhone以及2012年3月上市的第三代iPad之后的iPad。
(注2)iBeacon雖然由蘋果制定,但數據格式和工作原理已經公開,支持BLE的Android終端隻要能夠解讀iBeacon,也可以實現相同的功能。現在已經有多家公司免費提供幫助Android接收iBeacon的幀數據、並進行解讀的軟件庫。
(注3)因為是UUID服務的識別碼,所以必須具備獨特性。但也存在服務提供者不使用隨機數產生程序和散列函數,隨意設置“000000……”的情況。在這樣的情況下,即使服務不同,UUID也有可能一致,無法對服務進行准確判斷。
Major與Minor是App內部使用的數值。舉例來說,連鎖店使用iBeacon時,可以在Major中輸入區域信息,在Minor中輸入門店的ID等。在家電產品中嵌入Beacon模塊時,如果把Major作為與產品型號挂鉤的序號,把Minor作為錯誤代碼,就可以向外部通知故障情況。
將距離分為三級
至於剩下的Measured Power,則是iOS用來向App傳送距離的。有意思的是,向iOS發送的距離並不是精密推算的,而是將其分為約10厘米(immediate)、1米以內(near)、1米以外(far)的三級(圖3)。這是因為,發送與接受設備之間的距離在1米之內時,RSSI值基本是按照理論值減少的,而在1米以外,受到反射波的影響,RSSI不會減少,而是會上下波動。也就是說,1米以外的距離無法推測,隻能用“far”來概括。
![]() |
圖3:距離模塊越遠,誤差越大 當距離約為1米時,根據實測值推測的模塊距離與理論值基本一致,距離增大后誤差變大,無法定位。因此,iOS把1米以內叫作near,1米以外叫作far,以此來區分距離,並且把10厘米以內定義為immediate。(圖:《日經電子》根據Aplix的數據制作) |
即使較為粗略,也大致可以判斷當immediate時代表商品就在眼前,near代表身處貨架附近,far代表在店門附近或是在外面等。
未考慮安全問題
從上述原理可知,iBeacon其實沒有考慮安全性。iBeacon的格式基本是公開的,得到實際發送的iBeacon中包含的數據也輕而易舉。也就是說,很簡單就能制作出與正規模塊發送相同信息的假冒Beacon模塊(圖4)。而且,接收到假冒Beacon模塊發送的iBeacon信息的iOS終端無法判斷真偽。
![]() |
圖4:iBeacon存在隱患 iBeacon幾乎沒有考慮安全性。比如,作為通告幀發送的iBeacon的內容可能直接被復制,從其他設備原封不動地發出。 |
因此,不法分子有可能鑽商店積分服務的空子,利用假冒模塊,發送與積分服務相同的信標,在不用到商店去的情況下,無限制地獲得來店積分。
因此,現在已經出現了填補iBeacon安全漏洞的服務,採用的方式包括,在iBeacon以外的通告幀中添加iBeacon的認証信息並發送、利用信息進行認証的方式,利用接收到的iBeacon的位置信息進行認証的方式,以及直接向發送iBeacon的設備傳輸驗証數據包進行認証的方式。
支付需要用其他手段
順便一提,雖說現在能看到“可以使用iBeacon支付”的字樣,但從前面介紹的原理可以看出,單靠iBeacon其實是不能支付的。iBeacon能夠做到的,只是根據UUID、Major、Minor等信息,判斷支付對象是哪家商店,並當場顯示出准確的支付畫面。實際支付還需使用NFC、貝寶等其他手段。(作者:中道 理,日經技術在線!供稿)
![]() |