59
BLE as Active RFID Tutorial presented by Jeffrey Dungen at IEEE RFID 2017

BLE as Active RFID2017.ieee-rfid.org/files/2017/01/IEEE-RFID-2017-BLE-as-Active-RFID.pdf · Eddystone uses member service data to squeeze in a URL: Data Type 0x16 Length 18 Member

  • Upload
    others

  • View
    8

  • Download
    0

Embed Size (px)

Citation preview

Page 1: BLE as Active RFID2017.ieee-rfid.org/files/2017/01/IEEE-RFID-2017-BLE-as-Active-RFID.pdf · Eddystone uses member service data to squeeze in a URL: Data Type 0x16 Length 18 Member

BLE as Active RFIDTutorial presented by Jeffrey Dungen

at IEEE RFID 2017

Page 2: BLE as Active RFID2017.ieee-rfid.org/files/2017/01/IEEE-RFID-2017-BLE-as-Active-RFID.pdf · Eddystone uses member service data to squeeze in a URL: Data Type 0x16 Length 18 Member

What’s BLE? (Bluetooth Low Energy)

Bluetooth 4.0Bluetooth LE

(Ericsson 199x)

(Nokia 200x)

(2007)

IEEE RFID 2017Jeffrey Dungen

Page 3: BLE as Active RFID2017.ieee-rfid.org/files/2017/01/IEEE-RFID-2017-BLE-as-Active-RFID.pdf · Eddystone uses member service data to squeeze in a URL: Data Type 0x16 Length 18 Member

What’s Active RFID?

Device which spontaneously transmits,via radio frequencies,its identifier,using its own source of power.

IEEE RFID 2017Jeffrey Dungen

Page 4: BLE as Active RFID2017.ieee-rfid.org/files/2017/01/IEEE-RFID-2017-BLE-as-Active-RFID.pdf · Eddystone uses member service data to squeeze in a URL: Data Type 0x16 Length 18 Member

Is BLE Active RFID?

❏ spontaneously transmits (“advertises”)

❏ radio frequencies (2400MHz)

❏ identifier❏ own source of power

✓✓✓✓

IEEE RFID 2017Jeffrey Dungen

Page 5: BLE as Active RFID2017.ieee-rfid.org/files/2017/01/IEEE-RFID-2017-BLE-as-Active-RFID.pdf · Eddystone uses member service data to squeeze in a URL: Data Type 0x16 Length 18 Member

Is BLE anything else?

Indeed!Many other things!

IEEE RFID 2017Jeffrey Dungen

But let’s talk about the Active RFID partbecause it’s often overshadowed by the rest...

Page 6: BLE as Active RFID2017.ieee-rfid.org/files/2017/01/IEEE-RFID-2017-BLE-as-Active-RFID.pdf · Eddystone uses member service data to squeeze in a URL: Data Type 0x16 Length 18 Member
Page 7: BLE as Active RFID2017.ieee-rfid.org/files/2017/01/IEEE-RFID-2017-BLE-as-Active-RFID.pdf · Eddystone uses member service data to squeeze in a URL: Data Type 0x16 Length 18 Member
Page 8: BLE as Active RFID2017.ieee-rfid.org/files/2017/01/IEEE-RFID-2017-BLE-as-Active-RFID.pdf · Eddystone uses member service data to squeeze in a URL: Data Type 0x16 Length 18 Member

Motivation #1

IEEE RFID 2017Jeffrey Dungen

BLE has become the de facto standard.No longer need to create yet-another-standard.

I’ve had the (dis)pleasure of developing Active RFID protocols from scratch at Purelink Technology (5.8GHz) and at reelyActive (sub-GHz).

Couldn’t be happier to adopt BLE as a global standard!

Page 9: BLE as Active RFID2017.ieee-rfid.org/files/2017/01/IEEE-RFID-2017-BLE-as-Active-RFID.pdf · Eddystone uses member service data to squeeze in a URL: Data Type 0x16 Length 18 Member

Motivation #2

IEEE RFID 2017Jeffrey Dungen

Billions of products, places and even people are carrying Active RFID devices right now!

If you had told me a decade ago that this would happen (voluntarily even!), I would not have believed you.

IncrediBLE! Now let’s put this to good use!

Page 10: BLE as Active RFID2017.ieee-rfid.org/files/2017/01/IEEE-RFID-2017-BLE-as-Active-RFID.pdf · Eddystone uses member service data to squeeze in a URL: Data Type 0x16 Length 18 Member
Page 11: BLE as Active RFID2017.ieee-rfid.org/files/2017/01/IEEE-RFID-2017-BLE-as-Active-RFID.pdf · Eddystone uses member service data to squeeze in a URL: Data Type 0x16 Length 18 Member

Questions we’ll answer

IEEE RFID 2017Jeffrey Dungen

➔ How are BLE devices identified?➔ What can you include in the payload?➔ What about privacy and security?➔ What best (and worst) practices are emerging?➔ Can you build a RTLS with BLE?➔ What tools are available?

Page 12: BLE as Active RFID2017.ieee-rfid.org/files/2017/01/IEEE-RFID-2017-BLE-as-Active-RFID.pdf · Eddystone uses member service data to squeeze in a URL: Data Type 0x16 Length 18 Member

IEEE RFID 2017Jeffrey Dungen

How areBLE devicesidentified?

Page 13: BLE as Active RFID2017.ieee-rfid.org/files/2017/01/IEEE-RFID-2017-BLE-as-Active-RFID.pdf · Eddystone uses member service data to squeeze in a URL: Data Type 0x16 Length 18 Member

BLE Device Identification

IEEE RFID 2017Jeffrey Dungen

MANDATORY➔ 48-bit advertiser address

OPTIONAL➔ Short name (ASCII)➔ 128-bit UUID➔ 16-bit company code➔ 16-bit member services➔ EUI-48 / EUI-64➔ User-defined IDs

48:b1:7a:dd:4e:55Example

Page 14: BLE as Active RFID2017.ieee-rfid.org/files/2017/01/IEEE-RFID-2017-BLE-as-Active-RFID.pdf · Eddystone uses member service data to squeeze in a URL: Data Type 0x16 Length 18 Member

48-bit Advertiser Address

IEEE RFID 2017Jeffrey Dungen

PUBLIC OPTION➔ IEEE-assigned MAC➔ Static

A single header bit, txAdd, affords two options:

RANDOM OPTION➔ Choose your own!➔ Change it whenever and

as often as you like!

MANDATORY

Page 15: BLE as Active RFID2017.ieee-rfid.org/files/2017/01/IEEE-RFID-2017-BLE-as-Active-RFID.pdf · Eddystone uses member service data to squeeze in a URL: Data Type 0x16 Length 18 Member

Local Name

IEEE RFID 2017Jeffrey Dungen

Choose a short ASCII string, ex:

✓ ✓

((( I <3 RFID )))

OPTIONAL

Page 16: BLE as Active RFID2017.ieee-rfid.org/files/2017/01/IEEE-RFID-2017-BLE-as-Active-RFID.pdf · Eddystone uses member service data to squeeze in a URL: Data Type 0x16 Length 18 Member

128-bit UUID

IEEE RFID 2017Jeffrey Dungen

Choose your own, ex:

✓ ✓

128B171D-1EEE-4F1D-2017-85004C090517

OPTIONAL

Page 17: BLE as Active RFID2017.ieee-rfid.org/files/2017/01/IEEE-RFID-2017-BLE-as-Active-RFID.pdf · Eddystone uses member service data to squeeze in a URL: Data Type 0x16 Length 18 Member

16-bit Company Code

IEEE RFID 2017Jeffrey Dungen

Request from the Bluetooth SIG, ex:

~ ✓

004C → Apple

OPTIONAL

Page 18: BLE as Active RFID2017.ieee-rfid.org/files/2017/01/IEEE-RFID-2017-BLE-as-Active-RFID.pdf · Eddystone uses member service data to squeeze in a URL: Data Type 0x16 Length 18 Member

16-bit Member Services

IEEE RFID 2017Jeffrey Dungen

Purchase from the Bluetooth SIG, ex:

x ✓

FEAA →

OPTIONAL

Page 19: BLE as Active RFID2017.ieee-rfid.org/files/2017/01/IEEE-RFID-2017-BLE-as-Active-RFID.pdf · Eddystone uses member service data to squeeze in a URL: Data Type 0x16 Length 18 Member

Identification Summary

IEEE RFID 2017Jeffrey Dungen

Every packet includes a 48-bit advertiser address.

Each packet may also contain one or more additional identifiers, limited by the max payload of the packet.

Page 20: BLE as Active RFID2017.ieee-rfid.org/files/2017/01/IEEE-RFID-2017-BLE-as-Active-RFID.pdf · Eddystone uses member service data to squeeze in a URL: Data Type 0x16 Length 18 Member

IEEE RFID 2017Jeffrey Dungen

What can I include in the payload?

Page 21: BLE as Active RFID2017.ieee-rfid.org/files/2017/01/IEEE-RFID-2017-BLE-as-Active-RFID.pdf · Eddystone uses member service data to squeeze in a URL: Data Type 0x16 Length 18 Member

BLE Packet Overview*

IEEE RFID 2017Jeffrey Dungen

Preamble &Access Address

5 BytesPacket Data Unit

8-39 Bytes

CRC

3 Bytes

Header

2 Bytes

Advertiser Address

6 BytesOptional Payload

Up to 31 Bytes

* Bluetooth 4.x advertising packets

Page 22: BLE as Active RFID2017.ieee-rfid.org/files/2017/01/IEEE-RFID-2017-BLE-as-Active-RFID.pdf · Eddystone uses member service data to squeeze in a URL: Data Type 0x16 Length 18 Member

31 Bytes of Payload Freedom?

IEEE RFID 2017Jeffrey Dungen

Sure, as long as you respect the Generic Access Profile (GAP):

Data Type

1 Byte

Length

1 ByteData

Up to 29 Bytes

DataUp to 29 Bytes

...

Pick and choose data types, as long as together they all fit!

Data Type

1 Byte

Length

1 Byte

Page 23: BLE as Active RFID2017.ieee-rfid.org/files/2017/01/IEEE-RFID-2017-BLE-as-Active-RFID.pdf · Eddystone uses member service data to squeeze in a URL: Data Type 0x16 Length 18 Member

What’s a GAP Data Type?

IEEE RFID 2017Jeffrey Dungen

Full list: www.bluetooth.com/specifications/assigned-numbers/generic-access-profile

0x01 Flags

0x07 Complete List of 128-bit Service Class UUIDs

0x09 Complete Local Name

0x16 Service Data - 16-bit UUID

0xff Manufacturer Specific Data

Page 24: BLE as Active RFID2017.ieee-rfid.org/files/2017/01/IEEE-RFID-2017-BLE-as-Active-RFID.pdf · Eddystone uses member service data to squeeze in a URL: Data Type 0x16 Length 18 Member

Examples

IEEE RFID 2017Jeffrey Dungen

How about some ASCII text and a 128-bit UUID:

Data Type

0x09

Length

18

Complete Local Name

((( I <3 RFID )))

Complete List of 128-bit Service Class UUIDs

128B171D-1EEE-4F1D-2017-85004C090517

Together they’re over 31 bytes so won’t fit in a single packet!

Data Type

0x07

Length

17

Page 25: BLE as Active RFID2017.ieee-rfid.org/files/2017/01/IEEE-RFID-2017-BLE-as-Active-RFID.pdf · Eddystone uses member service data to squeeze in a URL: Data Type 0x16 Length 18 Member

Service Data

IEEE RFID 2017Jeffrey Dungen

Eddystone uses member service data to squeeze in a URL:

Data Type

0x16

Length

18

Member Service

0xfeaa

URL & TX Power

reelyactive.com

Eddystone specification: github.com/google/eddystone

Purchased Defined

Page 26: BLE as Active RFID2017.ieee-rfid.org/files/2017/01/IEEE-RFID-2017-BLE-as-Active-RFID.pdf · Eddystone uses member service data to squeeze in a URL: Data Type 0x16 Length 18 Member

Manufacturer Specific Data

IEEE RFID 2017Jeffrey Dungen

Apple uses manufacturer specific data extensively:

Data Type

0xff

Length

--

Company Code

0x004ciBeacon, AirPlay, AirDrop,

Nearby, Handoff, etc.

iBeacon is an open standard. Others are not.

Requested Defined

Page 27: BLE as Active RFID2017.ieee-rfid.org/files/2017/01/IEEE-RFID-2017-BLE-as-Active-RFID.pdf · Eddystone uses member service data to squeeze in a URL: Data Type 0x16 Length 18 Member

Payload Data we’ve Observed

IEEE RFID 2017Jeffrey Dungen

X

Y

Z

AccelerometerGyroscopeMagnetometer

Battery LevelAppearanceURL

TemperaturePressureHumidity

Typically closed/proprietary standards, poorly documented or incorrectly implemented!

➔ Nonetheless, can often be deciphered through observation

Page 28: BLE as Active RFID2017.ieee-rfid.org/files/2017/01/IEEE-RFID-2017-BLE-as-Active-RFID.pdf · Eddystone uses member service data to squeeze in a URL: Data Type 0x16 Length 18 Member

Payload Summary

IEEE RFID 2017Jeffrey Dungen

Up to 27-bytes which you can stuff as you please.

Respect GAP and vendor-defined open standards.

Page 29: BLE as Active RFID2017.ieee-rfid.org/files/2017/01/IEEE-RFID-2017-BLE-as-Active-RFID.pdf · Eddystone uses member service data to squeeze in a URL: Data Type 0x16 Length 18 Member

IEEE RFID 2017Jeffrey Dungen

What about privacy and

security?

Page 30: BLE as Active RFID2017.ieee-rfid.org/files/2017/01/IEEE-RFID-2017-BLE-as-Active-RFID.pdf · Eddystone uses member service data to squeeze in a URL: Data Type 0x16 Length 18 Member

Overview of Concerns

IEEE RFID 2017Jeffrey Dungen

Can I now be identified & tracked by all the BLE devices I carry???

Can my identity or sensor payload be spoofed???

Normal ALERT!

Page 31: BLE as Active RFID2017.ieee-rfid.org/files/2017/01/IEEE-RFID-2017-BLE-as-Active-RFID.pdf · Eddystone uses member service data to squeeze in a URL: Data Type 0x16 Length 18 Member
Page 32: BLE as Active RFID2017.ieee-rfid.org/files/2017/01/IEEE-RFID-2017-BLE-as-Active-RFID.pdf · Eddystone uses member service data to squeeze in a URL: Data Type 0x16 Length 18 Member

Advertiser Beware

IEEE RFID 2017Jeffrey Dungen

Transmissions on the advertising channels can be observed on the advertising channels.

BLE affords plenty of flexibility for privacy/security.Apply best practices to reach the best compromise!

Page 33: BLE as Active RFID2017.ieee-rfid.org/files/2017/01/IEEE-RFID-2017-BLE-as-Active-RFID.pdf · Eddystone uses member service data to squeeze in a URL: Data Type 0x16 Length 18 Member

IEEE RFID 2017Jeffrey Dungen

Best and worst practices?

Page 34: BLE as Active RFID2017.ieee-rfid.org/files/2017/01/IEEE-RFID-2017-BLE-as-Active-RFID.pdf · Eddystone uses member service data to squeeze in a URL: Data Type 0x16 Length 18 Member

NotaBLE Practices

IEEE RFID 2017Jeffrey Dungen

➔ Privacy-sensitive identification

➔ Making standards work for you

➔ Security by obscurity

Page 35: BLE as Active RFID2017.ieee-rfid.org/files/2017/01/IEEE-RFID-2017-BLE-as-Active-RFID.pdf · Eddystone uses member service data to squeeze in a URL: Data Type 0x16 Length 18 Member

Privacy-Sensitive Identification

IEEE RFID 2017Jeffrey Dungen

Periodically cycle the 48-bit advertiser address to hamper repeat-visit tracking and spoofing:

Type: randomCycle: every TX

Type: randomCycle: ~15 mins

Type: randomCycle: never

BALANCEDEXCESSIVE INSUFFICIENT

Page 36: BLE as Active RFID2017.ieee-rfid.org/files/2017/01/IEEE-RFID-2017-BLE-as-Active-RFID.pdf · Eddystone uses member service data to squeeze in a URL: Data Type 0x16 Length 18 Member

GOOD: ~15 min cycle

IEEE RFID 2017Jeffrey Dungen

➔ easily track you for up to ~15 mins (ex: store visit)➔ possibly track you for longer, while in range➔ not associate you with a previous visit➔ identify device type, at best, by company code

or other identifiers, if present

An observer can:

Page 37: BLE as Active RFID2017.ieee-rfid.org/files/2017/01/IEEE-RFID-2017-BLE-as-Active-RFID.pdf · Eddystone uses member service data to squeeze in a URL: Data Type 0x16 Length 18 Member

(Potentially) BAD: no cycle

IEEE RFID 2017Jeffrey Dungen

Jeff’s Fitbit Charge HR has used the same identifier for over two years now...

d9:01:4f:6b:a8:b2

Not good for privacy.- but -

Convenient for demos!

Page 38: BLE as Active RFID2017.ieee-rfid.org/files/2017/01/IEEE-RFID-2017-BLE-as-Active-RFID.pdf · Eddystone uses member service data to squeeze in a URL: Data Type 0x16 Length 18 Member

BIZARRE: cycle + static ID

IEEE RFID 2017Jeffrey Dungen

Estimote sticker changes its address constantly, but includes static ID in payload...

Excessive address cycling can wreak havoc on observers with resource-constrained BLE stacks!

xx:xx:xx:xx:xx:xx2b-ad-2b-ad-2b-ad-2b-ad

Page 39: BLE as Active RFID2017.ieee-rfid.org/files/2017/01/IEEE-RFID-2017-BLE-as-Active-RFID.pdf · Eddystone uses member service data to squeeze in a URL: Data Type 0x16 Length 18 Member

Standards = Interoperability

IEEE RFID 2017Jeffrey Dungen

Beneficial that any observer understand your broadcasts?

21°C 21°C

Advertiser fromCompany X

Observer fromCompany Y

OBSERVE EXISTING STANDARDS

Page 40: BLE as Active RFID2017.ieee-rfid.org/files/2017/01/IEEE-RFID-2017-BLE-as-Active-RFID.pdf · Eddystone uses member service data to squeeze in a URL: Data Type 0x16 Length 18 Member

Standard Precedence

IEEE RFID 2017Jeffrey Dungen

1. Check Bluetooth GAP Types

2. Check Bluetooth GATT Services

3. Check open standards by vendors

No standard? Check again.Still no? Create your own open standard.

Page 41: BLE as Active RFID2017.ieee-rfid.org/files/2017/01/IEEE-RFID-2017-BLE-as-Active-RFID.pdf · Eddystone uses member service data to squeeze in a URL: Data Type 0x16 Length 18 Member

Temperature Example

IEEE RFID 2017Jeffrey Dungen

GAP: No.https://www.bluetooth.com/specifications/assigned-numbers/generic-access-profile

GATT: Yes, service & characteristic.https://www.bluetooth.com/specifications/gatt/services

Service 0x181a: Environmental Sensing | Characteristic 0x2a6e: Temperature

Open Standards: Yes. Eddystone-TLM, ...https://github.com/google/eddystone/tree/master/eddystone-tlm

Page 42: BLE as Active RFID2017.ieee-rfid.org/files/2017/01/IEEE-RFID-2017-BLE-as-Active-RFID.pdf · Eddystone uses member service data to squeeze in a URL: Data Type 0x16 Length 18 Member

Temperature-as-a-Service

IEEE RFID 2017Jeffrey Dungen

Data Type

0x16

Length

5

Service

0x2a6e

Temperature

2100 = 0x0834 = 21°C

* we’ve observed this practice from reputable vendors and assume it conforms to the core specification!

Page 43: BLE as Active RFID2017.ieee-rfid.org/files/2017/01/IEEE-RFID-2017-BLE-as-Active-RFID.pdf · Eddystone uses member service data to squeeze in a URL: Data Type 0x16 Length 18 Member

Temperature as Eddystone-TLM

IEEE RFID 2017Jeffrey Dungen

Data Type

0x16

Length

5

Service

0xfeaa

Eddystone-TLM

0x2000----1500...

Page 44: BLE as Active RFID2017.ieee-rfid.org/files/2017/01/IEEE-RFID-2017-BLE-as-Active-RFID.pdf · Eddystone uses member service data to squeeze in a URL: Data Type 0x16 Length 18 Member

Security by Obscurity

IEEE RFID 2017Jeffrey Dungen

Beneficial that no foreign observer understand your broadcasts?

21°C WTF

Advertiser fromCompany X

Observer fromCompany Y

DESIGN YOUR OWN CLOSED STANDARD

Page 45: BLE as Active RFID2017.ieee-rfid.org/files/2017/01/IEEE-RFID-2017-BLE-as-Active-RFID.pdf · Eddystone uses member service data to squeeze in a URL: Data Type 0x16 Length 18 Member

Obscure Thoughts

IEEE RFID 2017Jeffrey Dungen

➔ Encryption keys➔ Cyclic counts➔ Random noise bits➔ Secret, deterministic address cycling (id & period)

A clever security design will allow your packet to be transported via any channel and subsequently decoded and authenticated by a trusted recipient. Think M2M.

Page 46: BLE as Active RFID2017.ieee-rfid.org/files/2017/01/IEEE-RFID-2017-BLE-as-Active-RFID.pdf · Eddystone uses member service data to squeeze in a URL: Data Type 0x16 Length 18 Member

*Encrypted* Eddystone-TLM

IEEE RFID 2017Jeffrey Dungen

Data Type

0x16

Length

5

Service

0xfeaa

Eddystone-TLM

0x2001--------...

Alternatively, use or inspire yourself from existing open standards:

Page 47: BLE as Active RFID2017.ieee-rfid.org/files/2017/01/IEEE-RFID-2017-BLE-as-Active-RFID.pdf · Eddystone uses member service data to squeeze in a URL: Data Type 0x16 Length 18 Member

Best Practices Summary

IEEE RFID 2017Jeffrey Dungen

Be sensitive to privacy concerns. Understand it’s a compromise.

Stick to standards whenever possible.

Leverage BLE’s flexibility for elegant DIY security.

Page 48: BLE as Active RFID2017.ieee-rfid.org/files/2017/01/IEEE-RFID-2017-BLE-as-Active-RFID.pdf · Eddystone uses member service data to squeeze in a URL: Data Type 0x16 Length 18 Member

IEEE RFID 2017Jeffrey Dungen

How about BLE real-time location?

Page 49: BLE as Active RFID2017.ieee-rfid.org/files/2017/01/IEEE-RFID-2017-BLE-as-Active-RFID.pdf · Eddystone uses member service data to squeeze in a URL: Data Type 0x16 Length 18 Member

BLE RTLS Overview

IEEE RFID 2017Jeffrey Dungen

Observers can estimate the location of a device each time it transmits an advertising packet.

ID is within 10m of meID

The flexibility of BLE affords many options...

Page 50: BLE as Active RFID2017.ieee-rfid.org/files/2017/01/IEEE-RFID-2017-BLE-as-Active-RFID.pdf · Eddystone uses member service data to squeeze in a URL: Data Type 0x16 Length 18 Member

BLE RTLS Approaches

IEEE RFID 2017Jeffrey Dungen

Broadcaster Observer Vendors

Vendor Vendor 9Solutions, Kontakt.io, ...

Any* Vendor Quuppa

Any Vendor Bluvision, (reelyActive), ...

Any Any reelyActive

Consistency

Opportunity

* requires specific bit-pattern in payload

“Bring-your-own-device” & “use-our-device” strategies:

Page 51: BLE as Active RFID2017.ieee-rfid.org/files/2017/01/IEEE-RFID-2017-BLE-as-Active-RFID.pdf · Eddystone uses member service data to squeeze in a URL: Data Type 0x16 Length 18 Member

BLE SCAN is “Exciting” stuff

IEEE RFID 2017Jeffrey Dungen

ADV_DISCOVER_IND

SCAN_REQ

SCAN_RSP

“Readers” can incite devices to transmit a SCAN_REQ packet which they may in turn observe.

Page 52: BLE as Active RFID2017.ieee-rfid.org/files/2017/01/IEEE-RFID-2017-BLE-as-Active-RFID.pdf · Eddystone uses member service data to squeeze in a URL: Data Type 0x16 Length 18 Member

IEEE RFID 2017Jeffrey Dungen

What tools are available?

Page 53: BLE as Active RFID2017.ieee-rfid.org/files/2017/01/IEEE-RFID-2017-BLE-as-Active-RFID.pdf · Eddystone uses member service data to squeeze in a URL: Data Type 0x16 Length 18 Member

Overview of Tools

IEEE RFID 2017Jeffrey Dungen

As BLE matures, an increasing number of tools and documentation are becoming available - but - most focus on paired applications (central-peripheral) rather than Active RFID (broadcaster-observer).

Heed the distinction!

Page 54: BLE as Active RFID2017.ieee-rfid.org/files/2017/01/IEEE-RFID-2017-BLE-as-Active-RFID.pdf · Eddystone uses member service data to squeeze in a URL: Data Type 0x16 Length 18 Member

Breakdown of Tools

IEEE RFID 2017Jeffrey Dungen

Advertise Observe Interpret

➔ Mobile apps/SDKs➔ Commercial beacons➔ Dev kits

➔ Your PC / SBC➔ Commercial sniffers➔ Dev kits

➔ Open source software➔ Commercial software➔ Develop from scratch

Page 55: BLE as Active RFID2017.ieee-rfid.org/files/2017/01/IEEE-RFID-2017-BLE-as-Active-RFID.pdf · Eddystone uses member service data to squeeze in a URL: Data Type 0x16 Length 18 Member

Sniff and Learn on Mobile!

IEEE RFID 2017Jeffrey Dungen

RaMBLE for Android“RaMBLE collects BLE advertising packets, and tries to identify devices based on their MAC address and the content of these packets.”

www.contextis.com/services/research/ramble-android-bluetooth-le-scanner/

Page 56: BLE as Active RFID2017.ieee-rfid.org/files/2017/01/IEEE-RFID-2017-BLE-as-Active-RFID.pdf · Eddystone uses member service data to squeeze in a URL: Data Type 0x16 Length 18 Member

Sniff and Learn on a Pi!

IEEE RFID 2017Jeffrey Dungen

Raspberry Pi 3 BLE SnifferDetect, visualise and explore BLE advertising packets using the ubiquitous Raspberry Pi, open source software and an easy to follow tutorial.

reelyactive.github.io/make-a-pi-hub.html

Page 57: BLE as Active RFID2017.ieee-rfid.org/files/2017/01/IEEE-RFID-2017-BLE-as-Active-RFID.pdf · Eddystone uses member service data to squeeze in a URL: Data Type 0x16 Length 18 Member

Open Source Projects

IEEE RFID 2017Jeffrey Dungen

advlibJavascript library to decode BLE packets.reelyactive.github.io/advlibPresented at IEEE WF-IoT 2015

Sniffypedia“Phone book” of BLE identifiers and metadata.sniffypedia.orgOpen Database License

Page 58: BLE as Active RFID2017.ieee-rfid.org/files/2017/01/IEEE-RFID-2017-BLE-as-Active-RFID.pdf · Eddystone uses member service data to squeeze in a URL: Data Type 0x16 Length 18 Member

Live Demo!

IEEE RFID 2017Jeffrey Dungen

This dashboard is open source under MIT License:

reelyactive.github.io/dashboard-template-angular

advlib +Sniffypedia

getpareto.comCommercial version

Page 59: BLE as Active RFID2017.ieee-rfid.org/files/2017/01/IEEE-RFID-2017-BLE-as-Active-RFID.pdf · Eddystone uses member service data to squeeze in a URL: Data Type 0x16 Length 18 Member

BLE as Active RFID@reelyActive | [email protected]