Sikkerhet i GSM mobilteleforsystem Sikkerhet i GSM mobilteleforsystem... 1 En enkel krypteringsmetode... 1 Oversikt over GSM... 2 Autentisering av telefon og SIM-kort... 3 IMEI og sjekksum... 3 IMSI og autentisering... 4 Kryptering... 5 Matematikk... 5 Lineære skiftregistre... 5 A5/1 algoritmen... 5 Perioder til skiftregistre og verdens lengste primtall... 5 En enkel krypteringsmetode På bildet ved siden av ser dere baksisen av min gamle Minolta mobiltelefon fra 1999. Der ser dere at jeg har skrevet ned et firesifret tall, 4141. Det har jeg gjort fordi jeg var redd for å ikke huske PIN-koden til SIM-kortet. Det er jo så mange slike koder å huske. Det er en for hver nettbank du har, VISA-kort, det er PUK-koder, og altså en for hvert SIM-kort. Nå skal man selvfølgelig ikke skrive ned kodene. Vitsen med disse kodene er jo nettopp at de skal være hemmelige. Så det jeg har gjort er å skrive ned koden i kryptert form. Krypteringen er gjort slik: Jeg antar at jeg klarer å huske ett firesifret tall, la oss si 4567. Når jeg så får en ny PIN-kode, si 5769, så skriver jeg ned differansen av denne og den jeg husker, altså 1202. Når jeg trenger PIN-koden legger jeg bare til 4567 igjen. Når jeg sier at jeg tar differansen så er ikke det helt nøyaktig. I virkeligheten tar jeg siffervis differanse, der jeg, hvis nødvendig, låner fra lufta. Dette har flere fordeler, den viktigste er at jeg kan finne tilbake til min PIN-kode ved å addere siffervis forfra. Da kan jeg taste inn PIN-koden etter hvert og trenger ikke huske noe. Et eksempel. Anta min PIN-kode er 8608. Jeg trekker fra 4567 siffervis mens jeg låner fra lufta og får 4141. Dette skriver jeg ned. Jeg må komme med en advarsel til de som vil bruke dette systemet. Man må aldri oppgi noen av sine PIN-koder til noen. Gjør man det, så vet personen både PIN-koden og den krypterte og kan lett regne ut din hemmelige kode, og dermed vet personen alle dine PIN-koder.
Jeg forteller om denne metoden fordi den essensielt er den samme som brukes for å kryptere samtalen mellom mobiltelefoner. Vi kommer tilbake til dette senere. I resten av dette foredraget skal vi se på disse temaene. Oversikt over GSM systemet Autentisering av telefon og SIM-kort Kryptering Matematikk i systemet Oversikt over GSM En mobilstasjon (MS) er rett og slett en telefon. En basestasjon (BS) er bare en antenne som tar imot signalet fra mobiltelefonen og sender det på linje til BSC (Base Station Controller). Herfra sendes signalet videre til nærmeste mobiltelefonsentral. Det er her telefon og SIM-kort autentiseres og det er her samtalen fra deg dekrypteres og samtalen til krypteres. I det siste tilfellet dekrypteres samtalen i SIM-kortet før du får høre. HLR Home Location Register. Her ligger opplysninger om ditt SIM-kort. VLR Visitor Location Register. Hvis du er besøkende i området, hentes opplysninger om ditt SIM-kort fra ditt hjemmeområde og legges i dette registeret. EIR Equipment Identity Register. Her sjekkes om telefonen er gyldig og ikke svartelistet. AC Autentification Center. Dette er datamaskinen som står for jobben med å autentisere telfon og SIM-kort samt kryptere/dekryptere samtaler. Alle samtaler sendes i kryptert for mellom mobiltelefon og MSC. Mellom Ulike MSC sendes signalet i klartekst. Årsaken til det siste er at myndigheter skal ha mulighet til avlytting.
Autentisering av telefon og SIM-kort (IMEI,IMSI) BS (IMEI,IMSI) (RAND) MSC SRES IMSI SRES (RAND,K c ) IMEI HLR/AC EIR (RAND,K i ) A3 SRES (RAND,K i ) A8 K c IMEI og sjekksum IMEI (International Mobile Equipment Identity) er telefonens identifikasjonsnummer. Man får det frem på skjermen ved å taste *#06# eller man kan finne det nedskrevet bak batteriet. Mitt IMEI er 35-423500-665468-9-06. Egentlig er det bare de første 14 sifrene som er IMEI. Tallet 9 er et kontrollsiffer og 06 er bare programversjonsnummer. Mobilsentralen sjekker i EIR om dette er en gyldig telefon, eller om den er sperret
35 betyr at det er BABT (British Approval Board for Tele Communication) som har foretatt godkjenningen av denne telfontypen. 4235 er godkjenningsnummer. 00 betyr at denne telefonen var godkjent mellom 1/03 og 4/04. 665468 er serienummer. 9 er en sjekksum som er det bare for å sikre at IMEI nummeret er gyldig. Sjekksummen regnes ut etter Luhns formel. Hvert andre siffer av IMEI dobles og sifrene i resultatet legges sammen. Dernest legges alle sifrene sammen modulo 10. Det var kanskje vanskelig så vi regner ut sjekksummen for mitt IMEI. Vi starter altså med 35423500665468. Så gjør vi følgende regnestykke: 3+(1+0)+4+(4)+3+(1+0)+0+(0)+6+(1+2)+5+(8)+6+(1+6). Tallene i parentes er summen av sifrene etter dobling. For eksempel kommer siste parentes fra tallet 8. Vi dobler til 16 og tar 1+6. I den endelige summen legger vi sammen modulo 10, det vil si at vi bare tar vare på siste siffer. Vi starter forfra og får fortløpende summer 3, 4, 4, 4, 12, men her bikker det over 10, så vi beholder bare 2. Det videre resultatet blir 2, 5, 6, 6, 6, 6, 2, 3, 5, 0, 8, 4, 5, 1. Sjekksummen er det man må legge til 1 for å få 0, altså 9. Derfor er mitt sjekksum 9. IMSI og autentisering På SIM-kortet er det lagret 2 tall. Det ene er IMSI (International Mobile Subscriber Identity) og det andre er en 128 bit autentiseringsnøkkel (K i ) som er en delt hemmelighet mellom SIMkortet og Mobilsentralen og som skal brukes til å kryptere samtaler. Dette tallet ligger altså både på ditt SIM-kort og i mobilsentralen. Når du slår på mobiltelefonen merker du at det tar noe tid før den er klar. Det som tar tid er ikke bare å finne signal fra nærmeste basestasjon, men og en prosess som skal sikre leverandøren, Telenor for eksempel, at SIM-kortet er gyldig slik at regningen trygt kan sendes til deg. Det skjer ved at SIM-kortet får en slags utfordring. Sentralen sier som så. Hvis du virkelig er det SIM-kortet som har den IMSI en som du sendte, da må du kunne svare på et spørsmål fra meg. Vi ser litt nærmere på hvordan dette gjøres. MSC får altså tallet IMSI fra din mobiltelefon. Det sjekkes i HLR om dette er et gyldig IMSI, og nøkkelen K c hentes der. I AC ligger 2 algoritmer. Den ene heter A3, den tar som input taller K i og et tilfeldig tall RAND og produserer et tall SRES. Den andre algoritmen heter A8 og tar som input K i og RAND og produserer en ny nøkkel K c (64 bit) som skal brukes til kryptering av samtalen. Spørsmålet som MSC stiller til ditt SIM-kort er følgende. Hvis du er den du sier, så vet du K c og siden du har A3 algoritmen, så kan du beregne SRES hvis du får RAND av meg. Så vær så god. Her er RAND, send meg SRES. MSC sammenligner det som kommer fra SIM med det som kom fra AC. Hvis det er overensstemmelse godtas SIM-kortet. I virkeligheten sendes ikke IMSI, men et pseudotilfeldig tall (TIMSI) generert fra IMSI. På denne måten beskyttes IMSI.
Kryptering På dette tidspunkt har både SIM-kort og Mobilsentralen det 64 bits nøkkeltallet K c. Ved A5/1 algoritmen produseres en lang rekke av bits (0 og 1 ere) som skal brukes for å kryptere samtalene. Samtalen digitaliseres først, det vil si gjøres om til strenger av 0 og 1. Kryptering foregår slik: I SIM Klartekst: 010001101010010 Nøkkel: 110110101001110 Kryptert: 100111000011100 I MSC Mottatt: 100111000011100 Nøkkel: 110110101001110 Klartekst: 010001101010010 Matematikk Lineære skiftregistre A5/1 algoritmen Perioder til skiftregistre og verdens lengste primtall