How to connect iOS device to BLE peripheral?

Sådan Forbinder Du iOS til BLE: En Dybdegående Guide

07/02/2022

Rating: 3.93 (13854 votes)

I dagens digitale verden er trådløs forbindelse afgørende for mange af vores enheder, og Bluetooth spiller en central rolle heri. Specielt for iOS-brugere, der ønsker at integrere deres iPhones og iPads med et væld af smarte enheder – fra fitness-trackere til medicinsk udstyr – er forståelsen af Bluetooth Low Energy (BLE) og dets sikkerhed afgørende. Denne artikel vil give dig en omfattende guide til, hvordan du opretter forbindelse mellem din iOS-enhed og BLE-periferiudstyr, samt dykke ned i de forskellige typer Bluetooth og de avancerede sikkerhedsfunktioner, som Apple har implementeret for at beskytte dine data.

What are the different types of Bluetooth® in Apple devices?
There are two types of Bluetooth® in Apple devices, Bluetooth Classic and Bluetooth Low Energy (BLE). The Bluetooth security model for both versions includes the following distinct security features: Bluetooth version 4.1 added the Secure Connections feature to Bluetooth Classic (BR/EDR) physical transport.

Uanset om du er udvikler, der arbejder med Core Bluetooth-rammeværket, eller en almindelig bruger, der er nysgerrig efter den teknologi, der driver dine trådløse oplevelser, vil denne guide give dig den viden, du har brug for. Vi vil starte med de praktiske skridt til at etablere en forbindelse og derefter udforske de komplekse sikkerhedsprotokoller, der sikrer, at dine trådløse interaktioner er både effektive og sikre.

Indholdsfortegnelse

Forbindelse af iOS-enheder til BLE-periferiudstyr

At etablere en forbindelse mellem en iOS-enhed og et BLE-periferiudstyr involverer en række veldefinerede trin, primært håndteret via Apples Core Bluetooth rammeværk. Dette rammeværk giver udviklere de værktøjer, der er nødvendige for at interagere med Bluetooth-enheder på et lavt niveau, hvilket muliggør oprettelse af applikationer, der kan scanne, forbinde og kommunikere med BLE-periferiudstyr. Processen kan opdeles i syv nøgletrin:

1. Initialisering af Central Manager

Det første skridt er at initialisere en CBCentralManager-instans. Denne instans repræsenterer din iOS-enhed som en 'central' enhed i Bluetooth-netværket. Central Manageren er ansvarlig for at opdage og administrere forbindelser til 'periferiudstyr' (de BLE-enheder, du ønsker at oprette forbindelse til). Når du initialiserer Central Manageren, skal du angive en kø (dispatch queue), hvor Bluetooth-begivenheder skal leveres, og en valgfri CBCentralManagerDelegate, som din app vil bruge til at modtage opkald tilbage om statusændringer og opdagede enheder. Det er afgørende at vente, indtil Central Managerens tilstand er .poweredOn, før du udfører nogen Bluetooth-operationer.

2. Start scanning efter periferiudstyr

Når Central Manageren er klar, kan du starte scanning efter nærliggende BLE-periferiudstyr. Dette gøres ved at kalde metoden scanForPeripherals(withServices:options:) på din CBCentralManager-instans. Du kan specificere en liste over Service UUID'er, som du leder efter, for at filtrere resultaterne. For eksempel, hvis du specifikt leder efter periferiudstyr, der tilbyder 'Heart Rate Service', ville du inkludere den tilsvarende UUID i dit scanningskald. Dette er en effektiv måde at reducere støj på og fokusere på relevante enheder. Scanningen vil fortsætte, indtil du eksplicit stopper den, eller indtil en forbindelse er etableret.

3. Opdagelse af periferiudstyr

Når Central Manageren opdager et periferiudstyr, der matcher dine scanningskriterier, kalder den delegatmetoden centralManager(_:didDiscover:advertisementData:rssi:). Denne metode giver dig adgang til CBPeripheral-objektet, som repræsenterer det opdagede periferiudstyr, samt dets reklamedata og signalstyrke (RSSI). På dette tidspunkt kan du inspicere periferiudstyrets navn eller andre reklamedata for at afgøre, om det er den enhed, du ønsker at oprette forbindelse til.

4. Forbindelse til periferiudstyr

Når du har identificeret det ønskede periferiudstyr, kan du forsøge at oprette forbindelse til det ved at kalde connect(_:options:)-metoden på din Central Manager og overføre CBPeripheral-objektet. Central Manageren vil derefter forsøge at etablere en forbindelse til periferiudstyret. Hvis forbindelsen lykkes, kaldes delegatmetoden centralManager(_:didConnect:). På dette tidspunkt anbefales det at stoppe scanningen for at spare strøm og forhindre yderligere opdagelser af den samme enhed.

5. Opdagelse af services og karakteristika

Efter en vellykket forbindelse skal du opdage de services og karakteristika, som periferiudstyret tilbyder. BLE-periferiudstyr organiserer deres data i services, som igen indeholder karakteristika. For eksempel kan et pulsmåler-periferiudstyr have en 'Heart Rate Service', som indeholder en 'Heart Rate Measurement' karakteristika. Du starter med at kalde discoverServices(_:)CBPeripheral-objektet. Når services er opdaget (via peripheral(_:didDiscoverServices:)), kan du derefter kalde discoverCharacteristics(_:for:) for hver service for at finde de specifikke datafelter, du er interesseret i.

6. Læsning, skrivning og notifikationer

Når karakteristika er opdaget, kan du interagere med dem. Du kan læse deres værdier (readValue(for:)), skrive nye værdier til dem (writeValue(_:for:type:)), eller abonnere på notifikationer (setNotifyValue(true, for:)), hvis karakteristika understøtter det. For eksempel, for en pulsmåler, vil du sandsynligvis abonnere på notifikationer for 'Heart Rate Measurement' karakteristikaen for at modtage opdateringer, hver gang pulsen ændrer sig. Når en værdi modtages via notifikation, kaldes peripheral(_:didUpdateValueFor:error:).

7. Håndtering af afbrydelser

Det er vigtigt at håndtere scenarier, hvor forbindelsen afbrydes, enten utilsigtet eller forsætligt. Central Managerens delegatmetode centralManager(_:didDisconnectPeripheral:error:) kaldes, når en forbindelse mistes. Her kan du implementere logik for at genoprette forbindelse, informere brugeren eller rydde op i ressourcer. Ligeledes kan du eksplicit afbryde forbindelsen ved at kalde cancelPeripheralConnection(_:) på din Central Manager.

Bluetooth-typer og Sikkerhed i Apple-enheder

Apple-enheder understøtter to hovedtyper af Bluetooth: Klassisk Bluetooth (også kendt som Bluetooth Basic Rate/Enhanced Data Rate, BR/EDR) og Bluetooth Low Energy (BLE). Begge teknologier er designet til trådløs kommunikation, men de tjener forskellige formål og har forskellige karakteristika, især når det kommer til strømforbrug og dataoverførselshastigheder. Klassisk Bluetooth er ideel til kontinuerlig, høj dataoverførsel, som f.eks. streaming af lyd til hovedtelefoner, mens BLE er optimeret til periodisk, lav dataoverførsel med minimalt strømforbrug, perfekt til IoT-enheder som sensorer og fitness-trackere.

Sikkerhedsmodellen for begge Bluetooth-versioner i Apple-enheder er robust og omfatter flere særprægede sikkerhedsfunktioner. Disse funktioner er designet til at beskytte brugernes privatliv og integriteten af deres data. Nøglefunktionerne omfatter:

  • Binding (Bonding): Processen med at skabe en eller flere delte hemmelige nøgler. Dette er grundlaget for sikker kommunikation.
  • Parring (Pairing): Handlingen med at gemme de nøgler, der er oprettet under binding, til brug i efterfølgende forbindelser, hvilket danner et par af betroede enheder.
  • Autentificering (Authentication): Verificering af, at de to enheder har de samme nøgler, hvilket bekræfter deres identitet.
  • Kryptering (Encryption): Fortrolighed af meddelelser, hvilket forhindrer uautoriseret aflytning af data.
  • Meddelelsesintegritet (Message Integrity): Beskyttelse mod manipulation af meddelelser, hvilket sikrer, at modtagne data ikke er blevet ændret under transmissionen.
  • Sikker Enkel Parring (Secure Simple Pairing – SSP): Giver beskyttelse mod passiv aflytning og beskyttelse mod 'Man-in-the-Middle' (MITM) angreb. Bluetooth 4.1 forbedrede yderligere denne funktion ved at tilføje sikre forbindelser til den fysiske transport af Klassisk Bluetooth (BR/EDR).

Sikkerhedsfunktioner for hver Bluetooth-type

Selvom de grundlæggende sikkerhedsprincipper er de samme, er der specifikke implementeringer og understøttede algoritmer for hver Bluetooth-type:

Klassisk Bluetooth

  • Binding: Anvender elliptisk kurve P-256 kryptografi til nøgleudveksling.
  • Parring: Bindingsinformation gemmes sikkert på iOS, iPadOS, macOS, tvOS og watchOS enheder.
  • Autentificering: Anvender FIPS-understøttede algoritmer (HMAC-SHA256 og AES-CTR).
  • Kryptering: AES-CCM kryptografi udføres på controlleren for effektiv og sikker datatransmission.
  • Meddelelsesintegritet: AES-CCM bruges til meddelelsesintegritet.
  • Sikker Enkel Parring (SSP): Beskyttelse mod passiv aflytning gennem Elliptic Curve Diffie-Hellman Ephemeral Key Exchange (ECDHE). Beskyttelse mod MITM-angreb gennem to brugerassisterede numeriske metoder: numerisk sammenligning eller indtastning af adgangsnøgle.

Bluetooth Low Energy (BLE)

  • Binding: Anvender FIPS-understøttede algoritmer (AES-CMAC og elliptisk kurve P-256).
  • Parring: Bindingsinformation gemmes sikkert på iOS, iPadOS, macOS, tvOS og watchOS enheder.
  • Autentificering: Anvender FIPS-understøttede algoritmer, ligesom Klassisk Bluetooth.
  • Kryptering: AES-CCM kryptografi udføres også på controlleren, hvilket sikrer effektivitet.
  • Meddelelsesintegritet: AES-CCM bruges til meddelelsesintegritet.
  • Sikker Enkel Parring (SSP): Beskyttelse mod passiv aflytning gennem Elliptic Curve Diffie-Hellman Key Exchange (ECDHE). Beskyttelse mod MITM-angreb gennem to brugerassisterede numeriske metoder: numerisk sammenligning eller indtastning af adgangsnøgle.

Forbindelser kræver altid en brugers svar, herunder alle Just Works-bindingsmetoder, der ikke har MITM-beskyttelse. Dette sikrer, at brugeren altid er opmærksom på og giver samtykke til nye forbindelser.

How to connect iOS device to BLE peripheral?
Open the project in XCode and see the 7 steps to establish and use the connection in code. To establish the connection between the iOS device and the BLE peripheral we do the following: Initialize Central Manager, it represents the iOS device. Start scanning for Peripherals. We are specifically looking for peripherals with Heart Rate service.

Privatliv i Bluetooth Low Energy

For at yderligere beskytte brugerens privatliv inkluderer BLE to specifikke funktioner: adressetilfældighed (address randomization) og nøgleafledning på tværs af transportlag (cross-transport key derivation). Adressetilfældighed er en funktion, der reducerer muligheden for at spore en BLE-enhed over tid ved hyppigt at ændre Bluetooth-enhedens adresse. Dette gør det meget sværere for uautoriserede parter at følge en brugers bevægelser eller vaner baseret på deres enheds Bluetooth-signatur.

For at en enhed, der bruger denne privatlivsfunktion, kan genoprette forbindelse til kendte enheder, skal den anden enhed kunne løse enhedens adresse (kendt som den private adresse). Den private adresse genereres ved hjælp af enhedens identitetsopløsningsnøgle (Identity Resolving Key, IRK), som udveksles under bindingsprocessen. Dette sikrer, at kun betroede enheder kan genkende og oprette forbindelse, selvom den offentlige adresse ændres.

iOS 13 eller nyere og iPadOS 13.1 eller nyere har desuden kapacitet til at opnå bindingsnøgler på tværs af transportlag, en funktion kendt som nøgleafledning på tværs af transportlag. Dette betyder, at en bindingsnøgle, der er genereret med BLE, kan bruges til at aflede en Klassisk Bluetooth-bindingsnøgle. Dette forbedrer interoperabiliteten og sikkerheden, da en enkelt parringsproces kan sikre forbindelser over begge Bluetooth-typer. Derudover har Apple tilføjet Klassisk Bluetooth-understøttelse til BLE for enheder, der understøtter funktionen af sikre forbindelser, introduceret i Bluetooth Core Specification 4.1 (se Bluetooth Core Specification 5.1).

Kompatibilitetsoversigt

Bluetooth TypeMinimum Bluetooth VersionMinimum iOS/iPadOSMinimum macOSMinimum tvOSMinimum watchOSEksempel Enheder
Klassisk Bluetooth (med sikre forbindelser)Bluetooth 4.1 eller nyereiOS 9 eller nyeremacOS 10.12 eller nyeretvOS 9 eller nyerewatchOS 2.0 eller nyereiMac (slutningen af 2015 eller nyere), MacBook Pro (begyndelsen af 2015 eller nyere)
Bluetooth Low Energy (BLE)Bluetooth 4.2 eller nyereiOS 9 eller nyeremacOS 10.12 eller nyeretvOS 9 eller nyerewatchOS 2.0 eller nyereiPhone 6 eller nyere, iPadOS 13.1 eller nyere

Ofte Stillede Spørgsmål

Hvad er den primære forskel mellem Bluetooth Classic og BLE?

Den primære forskel ligger i strømforbruget og datahastigheden. Bluetooth Classic er designet til høj dataoverførsel og kontinuerlige forbindelser, ideel til lydstreaming og filoverførsler. BLE er derimod optimeret til lavt strømforbrug og periodiske, små dataoverførsler, hvilket gør det perfekt til IoT-enheder som sensorer, wearables og smart home-udstyr, hvor batterilevetid er kritisk.

Hvorfor er sikkerhed så vigtig for Bluetooth-forbindelser?

Sikkerhed er afgørende for Bluetooth-forbindelser for at beskytte brugernes privatliv og data. Uden robuste sikkerhedsforanstaltninger kunne uautoriserede parter potentielt aflytte følsomme data, spore enhedsbevægelser eller endda manipulere enheder. Apples sikkerhedsfunktioner som kryptering, autentificering og beskyttelse mod Man-in-the-Middle-angreb sikrer, at trådløse interaktioner forbliver fortrolige og integere.

Hvordan forbedrer adressetilfældighed privatlivets fred i BLE?

Adressetilfældighed forbedrer privatlivets fred ved regelmæssigt at ændre en BLE-enheds offentlige adresse. Dette gør det meget sværere for uautoriserede parter at spore en bestemt enhed over tid, da dens identifikation konstant ændres. Selvom adressen ændres, kan kendte og betroede enheder stadig genkende og oprette forbindelse takket være en delt identitetsopløsningsnøgle (IRK).

Hvad er en Central Manager i Core Bluetooth?

En Central Manager (CBCentralManager) er den primære klasse i Apples Core Bluetooth-rammeværk, der repræsenterer din iOS-enhed som den 'centrale' del af en Bluetooth-forbindelse. Dens rolle er at scanne efter BLE-periferiudstyr, oprette forbindelse til dem og administrere kommunikationen. Uden en initialiseret Central Manager kan din iOS-app ikke interagere med BLE-enheder.

Kan jeg forbinde flere BLE-enheder til min iOS-enhed samtidigt?

Ja, en iOS-enhed kan fungere som en central enhed og oprette forbindelse til flere BLE-periferiudstyr samtidigt. Antallet af samtidige forbindelser kan variere afhængigt af iOS-enhedens hardware og softwarebegrænsninger samt de specifikke BLE-periferiudstyrs krav. Core Bluetooth-rammeværket er designet til at håndtere flere forbindelser effektivt, så længe systemressourcerne tillader det.

Forståelsen af, hvordan man forbinder iOS-enheder til BLE-periferiudstyr, samt kendskabet til de underliggende Bluetooth-typer og sikkerhedsforanstaltninger, er afgørende i en verden, der i stigende grad er forbundet trådløst. Apples engagement i at levere robuste sikkerhedsfunktioner sikrer, at dine data forbliver beskyttede, uanset om du streamer musik eller overvåger dit helbred via en BLE-aktiveret enhed. Med denne viden er du bedre rustet til at udnytte det fulde potentiale af dine iOS-enheder og det bredere økosystem af trådløse teknologier.

Hvis du vil læse andre artikler, der ligner Sådan Forbinder Du iOS til BLE: En Dybdegående Guide, kan du besøge kategorien Mobil.

Go up