Bluetooth sikkerhedsmekanismer
De grundlæggende sikkerhedsmekanismer, der benyttes i Bluetoothudstyr
er:
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.
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:
- Den ene part, kendt som udfordreren (eng:
claimant) sender sin adresse til den anden part,
kontrolløren (eng: verifier).
- Kontrolløren sender en tilfældig udfordring (egentlig
blot et tal, som genereres af en tilfældigttalsgenerator) til
udfordreren.
- 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.
- 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.
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.
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:
Hver nøgle i strømmen af nøgler genereres i to trin:
- Den hemmelige fælles link-nøgle kombineres med et tilfældigt tal,
hvorved der frembringes en krypteringsnøgle.
- 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.