Bluetooth sikkerhedsmekanismer

De grundlæggende sikkerhedsmekanismer, der benyttes i Bluetoothudstyr er:

1. Parring (engelsk: bonding)

Når to Bluetoothenheder kommunikerer med hinanden, kan de igangsætte en procedure, der kaldes parring, hvorunder de i fællesskab danner nogle hemmeligheder, som kun de to kender. Ved parring benytter de ens PIN-koder, som de får fra brugeren, til at generere to såkaldte nøgler (egl. blot talværdier): En link-nøgle og en krypteringsnøgle, som de holder hemmeligt for alle andre end dem selv. Hvis parringsproceduren skal kunne lykkes, må brugeren angive den samme PIN-kode til begge enheder, så de begge genererer det samme nøglepar. Nøglerne benyttes i autentificerings- og krypteringsprocedurerne, som er beskrevet nedenunder.

2. Autentificering (eng: authentification)

Autentificering er den proces, hvorved en enhed verificerer en anden enheds identitet. Den mekanisme, som Bluetooth benytter til dette formål, er en såkaldt udfordring-og-svar (eng: challenge-response) fremgangsmåde. I korte træk går dette ud på, at den ene part sender en meddelelse til den anden, som så skal svare rigtigt for at blive godkendt. Således:
  1. Den ene part, kendt som udfordreren (eng: claimant) sender sin adresse til den anden part, kontrolløren (eng: verifier).
  2. Kontrolløren sender en tilfældig udfordring (egentlig blot et tal, som genereres af en tilfældigttalsgenerator) til udfordreren.
  3. Udfordreren svarer med et svar, som den udregner på basis af udfordringen, adressen og den fælles hemmelige link-nøgle, og sender svaret til kontrolløren.
  4. Kontrolløren udregner det svar, som den forventer at modtage på basis af udfordringen, adressen og den fælles hemmelige link-nøgle, og sammenligner det med det svar, som den rent faktisk har modtaget.

Bluetooth autentificering

Hvis det forventede og det faktiske svar er ens, har de to parter åbenbart benyttet de samme informationer til at udarbejde deres svar. Idet de nødvendige informationer omfatter den hemmelige link-nøgle, som det må antages, at kun de to parter, der deltog i parringsproceduren, kender, kan de hver for sig være rimelig sikre på, at de kommunikerer med den ægte "parringspartner". Hvis dette er tilfældet, kommer verificeringsprocessen til en vellykket afslutning, og ellers afbrydes forbindelsen mellem de to parter.

3. Kryptering (eng: encryption)

Kryptering af de data, som sendes mellem to Bluetooth enheder, benyttes til bl.a. at sikre, at indholdet af de meddelelser, der udveksles, ikke kan forstås af tredje parter. Dette er således den primære mekanisme til at sikre, at meddelelsernes indhold holdes fortroligt. Krypteringen i Bluetooth er baseret på en såkaldt stream cipher. I denne form for kryptering, bliver en kontinuerlig sekvens (en "strøm") af krypteringsnøgler (en såkaldt keystream) dannet af afsenderen, og kombineret med strømmen af ukrypterede data, hvorved der produceres en strøm af krypterede data, som transmitteres til modtageren. Hos modtageren produceres en identisk strøm af nøgler, som benyttes til at aflede de ukrypterede data fra de krypterede:

Bluetooth kryptering

Hver nøgle i strømmen af nøgler genereres i to trin:

  1. Den hemmelige fælles link-nøgle kombineres med et tilfældigt tal, hvorved der frembringes en krypteringsnøgle.
  2. Krypteringsnøglen kombineres med adressen og det tilfældige tal for at frembringe den næste nøgle i strømmen.
Det er vigtigt at gøre det så vanskeligt som muligt for en fjendtlig modstander at gætte sig til sekvensen af krypteringsnøgler — hvis han kunne gøre det, ville han da være i stand til at afkryptere strømmen af krypterede data. Ideelt ville en modstanderen ikke kunne gætte sig til den næste nøgle i sekvensen, selv om han allerede havde kendskab til en meget lang sekvens af nøgler. For at sikre, at dette er tilfældet, udregnes på hinanden følgende krypteringsnøgler fra på hinanden følgende tilfældige tal. Disse genereres af en tilfældigttalsgenerator, for hvilket det er ekstremt svært at gætte det næste tal, selv om man allerede har set en lang række af tallene.
Robin Sharp
Sidst ajourført 050512.