Zum Hauptinhalt springen

BLE Grundlagen

Bluetooth Low Energy (BLE) ist ein drahtloses Kommunikationsprotokoll für energieeffiziente IoT-Geräte. Dieses Kapitel erklärt die fundamentalen Konzepte.

BLE vs. Bluetooth Classic

EigenschaftBluetooth ClassicBLE
Einführung1999 (v1.0)2010 (v4.0)
Reichweite~100m~100m
Datenrate1-3 Mbps125 kbps - 2 Mbps
Latenz100+ ms6 ms
StromverbrauchHochUltra-niedrig
AnwendungAudio, DateienSensoren, IoT

BLE-Stack

Schichten im Detail

SchichtAbkürzungFunktion
Physical LayerPHY2.4 GHz ISM-Band, GFSK-Modulation, 40 Kanäle (37 Daten + 3 Advertising)
Link LayerLLAdvertising, Scanning, Connection Management, Encryption auf Paketebene
L2CAPL2CAPLogical Link Control and Adaptation Protocol - Multiplexing, Fragmentierung
ATTATTAttribute Protocol - Client-Server Modell für Datenattribute
GATTGATTGeneric Attribute Profile - Strukturierung von Services und Characteristics
GAPGAPGeneric Access Profile - Geräteerkennung, Verbindungsaufbau, Rollen
SMPSMPSecurity Manager Protocol - Pairing, Bonding, Key Distribution

Detaillierte Schicht-Beschreibungen

Physical Layer (PHY)

Der Physical Layer ist die unterste Schicht und definiert die Funkübertragung:

  • Frequenzband: 2.400 - 2.4835 GHz (ISM-Band, lizenzfrei)
  • Modulation: GFSK (Gaussian Frequency Shift Keying)
  • Kanäle: 40 Kanäle à 2 MHz Bandbreite
    • Kanal 37 (2402 MHz): Advertising
    • Kanal 38 (2426 MHz): Advertising
    • Kanal 39 (2480 MHz): Advertising
    • Kanäle 0-36: Datenkanäle
  • Datenraten (BLE 5.0+):
    • 1 Mbps (LE 1M PHY) - Standard
    • 2 Mbps (LE 2M PHY) - Schneller
    • 125/500 kbps (LE Coded PHY) - Längere Reichweite

Der Link Layer verwaltet die Funkverbindung:

  • Advertising: Periodisches Senden von Advertising-Paketen
  • Scanning: Empfangen und Filtern von Advertising-Paketen
  • Initiating: Verbindungsaufbau zu einem Advertiser
  • Connection: Bidirektionale Kommunikation
  • Frequency Hopping: Kanalwechsel nach jedem Connection Event
  • Whitening: Bitfolgen-Scrambling zur Reduktion von DC-Bias

L2CAP bietet:

  • Protokoll-Multiplexing: Mehrere Protokolle über eine Verbindung
  • Fragmentierung: Große SDUs in kleine PDUs aufteilen
  • Flow Control: Credit-basierte Flusskontrolle (LE Credit Based Flow Control)

Feste Kanäle in BLE:

  • CID 0x0004: ATT
  • CID 0x0005: LE Signaling
  • CID 0x0006: SMP

BLE-Zustandsmaschine

Zustandsbeschreibungen

ZustandBeschreibungTypische Rolle
StandbyKeine Funkaktivität, minimaler StromverbrauchAlle
AdvertisingSendet periodisch Advertising-Pakete auf Kanälen 37, 38, 39Peripheral
ScanningEmpfängt Advertising-Pakete, kann Scan Requests sendenCentral
InitiatingWartet auf Advertising eines bestimmten Geräts, sendet Connect RequestCentral
ConnectionAktive bidirektionale DatenverbindungBeide

Rollen in BLE

Rollenverteilung

RolleGAP-RolleFunktionRessourcenBeispiele
CentralInitiatorInitiiert Verbindung, steuert TimingMehr RAM/CPUSmartphone, Computer, Hub
PeripheralAdvertiserAdvertised, stellt Daten bereitWeniger RessourcenSensoren, Wearables, Beacons
Broadcaster-Nur Advertising, keine VerbindungMinimaliBeacon, Eddystone
Observer-Nur Scanning, keine VerbindungVariabelPresence Detection

Mehrfache Verbindungen

Ein Central kann mit mehreren Peripherals gleichzeitig verbunden sein:

Central (Smartphone)
├── Peripheral 1 (Smartwatch)
├── Peripheral 2 (Fitness Tracker)
├── Peripheral 3 (Heart Rate Monitor)
└── Peripheral 4 (Smart Lock)

Ab BLE 5.0 kann ein Gerät auch gleichzeitig Central und Peripheral sein.

Advertising

Peripherals senden Advertising-Pakete auf den drei Advertising-Kanälen:

Advertising-Typen

PDU TypeConnectableScannableDirectedUse Case
ADV_INDStandard, für alle sichtbar
ADV_DIRECT_INDSchnelle Reconnection zu bekanntem Gerät
ADV_NONCONN_INDBeacons, Broadcast-only
ADV_SCAN_INDBroadcast mit zusätzlichen Daten
ADV_EXT_IND✓/✗✓/✗✓/✗BLE 5.0 Extended Advertising

Advertising-Intervall

Das Advertising-Intervall bestimmt, wie oft ein Gerät advertised:

IntervallStromverbrauchEntdeckungszeitUse Case
20 msSehr hoch~60 msSchnelle Erkennung
100 msHoch~300 msBalance
1000 msNiedrig~3 sBatterie-kritisch
10240 msMinimal~30 sLangzeit-Beacons

Advertising-Daten

Ein Advertising-Paket enthält bis zu 31 Bytes Nutzlast (BLE 4.x) oder 255 Bytes (BLE 5.0 Extended):

Advertising Data Structure:
┌─────────┬─────────┬──────────────┐
│ Length │ Type │ Data │
│ (1 byte)│(1 byte) │ (Length-1) │
└─────────┴─────────┴──────────────┘

Häufige AD Types:

TypeNameBeschreibung
0x01FlagsAdvertising-Flags (LE General Discoverable, etc.)
0x02Incomplete 16-bit UUIDsTeilweise Service-UUIDs
0x03Complete 16-bit UUIDsAlle 16-bit Service-UUIDs
0x07Complete 128-bit UUIDsAlle 128-bit Service-UUIDs
0x08Shortened Local NameGekürzter Gerätename
0x09Complete Local NameVollständiger Gerätename
0x0ATX Power LevelSendeleistung in dBm
0xFFManufacturer DataHerstellerspezifische Daten

Connection-Parameter

Nach Verbindungsaufbau werden Parameter ausgehandelt:

ParameterBereichDefaultBeschreibung
Connection Interval7.5 ms - 4 s~50 msZeit zwischen Connection Events
Slave Latency0 - 4990Anzahl übersprungener Events
Supervision Timeout100 ms - 32 s2 sTimeout für Verbindungsverlust

Berechnung der effektiven Latenz

Effektive Timeout = Supervision Timeout
Effektive Latenz = Connection Interval × (1 + Slave Latency)

Beispiel:
- Connection Interval: 50 ms
- Slave Latency: 4
- Effektive Latenz: 50 ms × 5 = 250 ms

Connection Event

Frequenzen und Kanäle

BLE nutzt 40 Kanäle im 2.4 GHz ISM-Band:

Kanalübersicht

KanalFrequenzTypVerwendung
372402 MHzAdvertisingPrimär Advertising
02404 MHzDatenConnection
12406 MHzDatenConnection
......DatenConnection
102424 MHzDatenConnection
382426 MHzAdvertisingPrimär Advertising
112428 MHzDatenConnection
......DatenConnection
362478 MHzDatenConnection
392480 MHzAdvertisingPrimär Advertising

Frequency Hopping

BLE verwendet Adaptive Frequency Hopping (AFH):

  1. Datenkanäle wechseln nach jedem Connection Event
  2. Schlechte Kanäle werden aus der Channel Map entfernt
  3. Reduziert Interferenzen mit WLAN und anderen 2.4 GHz Geräten
Hop Sequence (vereinfacht):
Event 1: Kanal 5
Event 2: Kanal 23
Event 3: Kanal 11
Event 4: Kanal 31
...

Security-Relevante Eigenschaften

Was BLE NICHT automatisch macht

Wichtig

BLE ist nicht standardmäßig sicher!

EigenschaftStandard-ZustandKonsequenz
VerschlüsselungAusDaten im Klartext lesbar
AuthentifizierungAusJeder kann sich verbinden
IntegritätsschutzAus (ohne Verschlüsselung)Daten manipulierbar
PrivacyBegrenztMAC-Tracking möglich
AuthorizationKeineAlle Characteristics offen

Häufige Entwicklerfehler

FehlerBeschreibungKonsequenz
Just Works PairingKeine zusätzliche AuthentifizierungMITM-Angriffe möglich
Keine ZugriffskontrollenCharacteristics ohne Security LevelJeder kann lesen/schreiben
Sensible Daten im AdvertisingGewicht, ID, etc. öffentlichPrivacy-Verletzung
Hardcoded KeysSchlüssel in App/FirmwareEinfache Extraktion
Schwache VerschlüsselungXOR, Base64, ROT13Trivial zu brechen
Kein Replay-SchutzKeine Nonces/CounterReplay-Angriffe möglich

Security Mode 1 (Encryption-basiert)

LevelNameBeschreibung
1No SecurityKeine Sicherheit
2UnauthenticatedJust Works Pairing
3AuthenticatedPasskey/OOB Pairing
4LE Secure ConnectionsECDH + Authenticated

Weiterführend