Upgrade to Pro — share decks privately, control downloads, hide ads and more …

iBeacon for dummies - Betabeers Madrid 2014

iBeacon for dummies - Betabeers Madrid 2014

Julio Galarón

April 25, 2014
Tweet

More Decks by Julio Galarón

Other Decks in Technology

Transcript

  1. Beacon Un beacon (baliza), es cualquier dispositivo que emite una

    determinada señal periódica que permite a otro dispositivo recibirla y actuar en consecuencia. Una baliza no puede identificar quién ha escuchado su señal. Los clientes no se conectan a las balizas, sólo escuchan las notificaciones que estas envían.
  2. Bluetooth Smart También conocido como Bluetooth Low Energy (o Bluetooth

    LE) Desarrollado por Nokia en 2006 bajo la marca Wibree. Adoptado en 2010 bajo la nueva especificación bluetooth 4. Optimizado para bajo consumo (15mA en escritura y 2uA en reposo. Entre un 10 y 20 % menos con respecto a las versiones anteriores de BT, lo que permite el empleo de pequeñas pilas de tipo CR) y transmisiones de paquetes pequeños (236.7 kbps thoughtput) Altamente resistente al ruido y a la interferencia (hay que tener en cuenta que BT trabaja en la banda abierta de 2,4GHz) Chips con un coste relativamente bajo y que abarcan muy poca superficie en pcb. Interoperabilidad entre distintos fabricantes. Alcance: más de 50m dependiendo de las condiciones del medio. http://www.bluetooth.com/Pages/low-energy-tech-info.aspx
  3. Bluetooth Smart no es retrocompatible. Para asegurar el soporte con

    versiones anteriores de Bluetooth, se define un modo dual denominado Bluetooth Smart Ready.
  4. Bluetooth emplea la modulación FHSS (Frequency Hopping Spread Spectrum. Espectro

    ensanchado por salto de frecuencia), aportando las siguientes ventajas en las comunicaciones: 1. Altamente resistentes al ruido y a la interferencia. 2. Difíciles de interceptar. 3. Pueden compartir una banda de frecuencia con muchos tipos de transmisiones convencionales con mínima interferencia. 79 canales de 1MHz bluetooth classic 40 canales de 2MHz bluetooth BLE
  5. Roles generales en BLE Bluetooth Smart presenta una arquitectura cliente/servidor:

    Cliente: Realiza peticiones e interactúa con características (GATT Profile) Servidor: Responde a peticiones, maneja características, puede enviar notificaciones de cambios Dentro del paradigma Bluetooth LE, existen 4 roles generales que puede implementar un dispositivo: • Peripheral ◦ Dispositivo de tipo servidor que provee datos a los clientes en forma de tabla GATT. • Central ◦ Dispositivo de tipo cliente que se conecta a un dispositivo de tipo Peripheral para leer/escribir. • Broadcaster ◦ Dispositivo de tipo servidor que no acepta conexiones entrantes pero que emite información. • Observer ◦ Dispositivo de tipo Cliente que escanea y analiza datos pero no inicia conexiones. Generic Attribute Profile (GATT): El perfil GATT es una especificación general para enviar y recibir pequeños trozos de información llamados atributos sobre un enlace BLE.
  6. iBeacon iBeacon es el nombre (marca) elegido por Apple para

    denominar a una tecnología (abierta) que emplea Bluetooth LE como medio de transmisión y que permite a las aplicaciones móviles saber como de cercar están respecto a un dispositivo llamado beacon (baliza). Presentado (de pasada) en el WWDC 2013.
  7. Posibles aplicaciones iBeacon El iBeacon se pensó para aportar a

    los usuarios nuevas experiencias en el mundo de retail empleando micro- localización en interiores. (promociones, zonas de mayor demanda, hábitos de visita del cliente,...) TREND REPORT Beacons http://go.mutualmobile.com/rs/mutualmobile/images/Trend_Report_Beacons.pdf
  8. A parte del retail, también existen numerosas situaciones donde aplicando

    los 2 conceptos clave de esta tecnología (micro-localización e interacción/Compromiso/Contexto) pueden resultar bastante valiosas: Museos y exhibiciones: Información de objetos, tracking de las zonas más visitadas, conferencias en una determinada zona,... Transporte de masas: Conocer en que avión, linea de tren/metro/autobús se está viajando y conocer más información acerca de ella (tiempos de llegada, rutas,...) Salud: Conocer información medica del paciente que se encuentra en determinada habitación, evitando cometer posibles errores. Eventos deportivos: Indicar la ruta más corta desde el aparcamiento hasta localidad que va a ocupar el usuario. Parking: Localizar un vehículo o plaza libre. Localización de objetos perdidos. Automatización.
  9. Un iBeacon emplea para su identificación los siguientes 3 campos

    personalizables: Proximity UUID (128 bit). Major (16 bit). Minor (16 bit) Dando lugar a 3 niveles para identificar una micro-localización: Sólo Proximity UUID. Proximity UUID & Major. Proximity UUID & Major & Minor. En bluetooth 4, cada servicio tiene un identificador único de 16 o 128 bit denominado service UUID. Los identificadores de 16 bits son asignados por el “Bluetooth standards committee”, mientras que los identificadores únicos de 128 bits (gratuitos) son propios de cada fabricante . Generador de UUIDs de 128 bits: http://www.itu.int/ITU-T/asn1/uuid.html https://developer.bluetooth.org/gatt/profiles/Pages/ProfilesHome.aspx
  10. 4C00 02 15 585CDE931B0142CC9A1325009BEDC65E 0000 0000 C5 <company identifier (2

    bytes)> <type (1 byte)> <data length (1 byte)> <uuid (16 bytes)> <major (2 bytes)> <minor (2 bytes)> <RSSI @ 1m> • Apple Company Identifier (Little Endian), 0x004c • Data type, 0x02 => iBeacon • Data length, 0x15 = 21 • UUID: 585CDE931B0142CC9A1325009BEDC65E • Major: 0000 • Minor: 0000 • Measured power at 1 meter: 0xc5 = -59 Ejemplo de los datos que contiene el campo de datos del paquete que emite una iBeacon
  11. La distancia entre un iBeacon y el dispositivo receptor está

    categorizada dentro de 3 rangos distintos: • Inmediato: menos de 50cm. • Cerca: aproximadamente entre 50cm y 2,5m. • Lejos: más o menos entre 2,5m y 30/50m, dependiendo de parede y de la potencia de emisión y otros muchos factores. Estos rangos se definen para notificar cambios de zona a las aplicaciones cuando estas están en background. En foreground es posible obtener la distancia exacta a la baliza midiendo el nivel de señal que nos llega y comparándolo con el valor de señal a 1m que va encapsulado en el paquete que recibimos de la baliza.
  12. Soporte software iOS7+ OS X 10.9+ Soporte hardware iPhone 4S+,

    iPad 3+, iPad mini, iPod touch 5+, iOS Simulator (host con bt4), ordenadores a partir del 2012 Necesidad de licencia MFI Para desarrollar hardware BLE no es necesario adquirir una licencia MFI. Aunque sí se quiere hacer uso de la marca iBeacon si es necesario. APIs Core Bluetooth Core Location Observaciones No permite escuchar cualquier UUID siendo necesario especificar los UUIDs con los que se quiere trabajar. Integración con Passbook. Advertising sólo en foreground. Background task, monitorización de cambio de zona. Para el uso de los iBeacons es necesario tener activado el bluetooth y el servicio de localización.
  13. Soporte software Android 4.3 (API Level 18)+ Soporte hardware Nexus

    4, Nexus 7 2013, Moto G, Galaxy S3+, Galaxy Note II+, HTC One,... APIs android.bluetooth Observaciones No es necesario registrar los UUID. No permite hacer advertising. Background task. Cada fabricante implementaba sus propias APIs. Con la llegada de la API Level 18, se intenta unificar APIs para el uso de BLE. No existe una API propia para iBeacon, aunque mediante las clases existentes es posible implementar la funcionalidad propuesta por Apple.
  14. Soporte software Windows 8 / 8.1 , Windows Phone 8.1

    Soporte hardware Hardware con Windows 8/8.1 + módulo bluetooth 4 Todos los dispositivos NOKIA (MS Mobile) Lumia WP 8 APIs Windows.Devices.Bluetooth.GenericAttributeProfile Observaciones No permite escuchar cualquier UUID siendo necesario especificar los UUIDs con los que se quiere trabajar. Soporte para background task.
  15. Soporte software Blackberry 10 Soporte hardware Z10, Z30, Q10 APIs

    Bluetooth Library Observaciones Soporte Bluetooth 4 desde 2012 (Blackberry Dev Alpha)
  16. Soporte software Linux kernel 3.5 Soporte hardware Hardware con módulo

    bluetooth 4 APIs BLueZ Observaciones Los kernels <= 3.4 no permite más de una conexión LE L2CAP. BlueZ: official Linux Bluetooth protocol stack
  17. iBeacon Dev KITS * Existen numerosas plataformas en el mercado.

    Se han elegido las más representativas o peculiares.
  18. Fabricante Gimbal (Qualcomm) Precio $5 (Series 10) / $10 (Series

    20) (precio dependiendo de volumen) Duración batería 1-3 años (reemplazable) Documentación https://www.gimbal.com/ Usado por Apple en sus Apple Stores.
  19. Fabricante Estimote (Chip Nordic nRF51822 + Cortex M0) Precio $99

    pack de 3 Duración batería 2 años (CR2450 “no reemplazable”) Documentación http://estimote.com/ https://github.com/Estimote/ Una pila CR2450 proporciona una capacidad de alrededor de unos 620mAh.
  20. Fabricante Nordic nRF51822-Beacon Precio 23,96 € Duración batería <1 año

    (CR1632 reemplazable) Documentación Nordic website mouser.com Una pila CR1632 proporciona entre 120 y 140 mAh
  21. Fabricante Sensor Tag - Texas Instruments (CC2541 + 8051 MCU)

    Precio $25 Duración batería 2 años (CR2032, reemplazable) Documentación http://processors.wiki.ti.com/ index.php/Bluetooth_SensorTag Buena documentación, coste relativamente bajo, coste de la licencia del compilador entre $1300 - 3400$ http://www.iar.com/Products/IAR-Embedded-Workbench/8051/
  22. ReadBear http://redbearlab.com/ibeacon/ Radius Networks http://www.radiusnetworks.com/ibeacon/ Proximus IO http://www.proximus.io/ Texas Instruments

    CC2543 http://www.ti.com/tool/cc2543-broadcaster-rd JNHuaMao HM-10/ HM-11 http://www.jnhuamao.cn/bluetooth.asp?ID=1 BLE 112 / 113 https://www.bluegiga.com http://www.seeedstudio.com CSR4.0 USB Dongle http://www.ebay.com/sch/i.html? _sacat=0&_from=R40&_nkw=csr+4.0&_sop=15 * Existen numerosas plataformas en el mercado. Se han elegido las más representativas o peculiares. Otras plataformas: La opción más barata para testeo de apps consisten en la emulación de un iBeacon vía software.
  23. http://www.ti.com/lit/an/swra347a/swra347a.pdf http://beekn.net/2014/04/will-apple-pull-plug-ibeacon-devices/ Documentación relacionada: Influencia de la frecuencia de notificación

    y el consumo de batería en un baliza: https://community.estimote.com/hc/en-us/articles/201538147-How-Advertising- Interval-and-TxPower-affect-Battery-Life http://developer.radiusnetworks.com/2013/11/04/how-to-make-an-ibeacon-with-the-ti-cc2540.html http://blog.bluetooth-smart.com/2011/10/05/bluetooth-low-energy-development-kits-2/ Parámetros para seleccionar un chip o plataforma de desarrollo BLE:
  24. Seguridad y privacidad La “seguridad” (una baliza no posee lógica

    alguna, tan sólo hace broadcasting de cierto dato) de un iBeacon puede verse comprometida en alguno de los siguientes aspectos: Modificación de los datos de un iBeacon: El fabricante de la baliza permite personalización remota, pero no protege el sistema con una clave de acceso, permitiendo la modificación por cuenta ajena de los campos UUID, mayor y minor, inutilizando la baliza para su uso desde la app móvil o pudiendo alterar los datos para trabajar con la aplicación de un competidor. Spoofing: Un iBeacon se puede suplantar con facilidad (los campos UUID, mayor y minor, se pueden obtener mediante sniffer o descopilación de la App móvil). La aplicación móvil ha de implementar algún mecanismo que evite en la medida de lo posible un ataque mediante spoofing. Privacidad: Una posible medida para evitar que una aplicación pueda hacer tracking, consiste en deshabilitar los servicios de localización para dicha app (en el caso de iOS), pudiendo habilitarlos de nuevo cuando nos interese.
  25. Documentación extra Bluetooth Smart: Bluetooth Low Energy: The Developer’s Handbook

    http://chapters.comsoc.org/vancouver/BTLER3.pdf https://www.bluetooth.org/en-us/specification/adopted-specifications http://www.bluetooth.com/Pages/Bluetooth-Smart.aspx https://developer.bluetooth.org/DevelopmentResources/Pages/default.aspx