Hur funkar SMS

(Först – denna text avser Person to Person – alltså mobiltelefon till mobiltelefon. Utöver detta finns A2P – Application to Person)

SMS kan tyckas som en oerhört trivial tjänst. Ena dottern skickade knappa 3000 SMS under November (varav 1200+ till en och samma kille). Hon har så klart ingen aning hur det funkar bakom kulisserna och struntar så klart i vilket, men eftersom jag skrev ett kilometerlångt inlägg på en mailinglista för att förklara så kände jag att jobbet redan var gjort och att jag lika gärna kunde dela med mig till fler. Jag kan väl passa på att varna att det är svårt att förklara på lekmannanivå utan att det blir helt ohanterligt stort. Viss kunskap om nätnoder och GSM topologi bör man ha med sig innan man förstår nedan fullt ut.

Frågan är; när kommer SMS fram och vilka faktorer påverkar detta?

Jag  brukar säga att man förstår GSM det där ögonblicket när man är oändligt packad, precis innan man tuppar av. I samma ögonblick som man förstår var universum tar slut och de andra stora frågorna. Sedan somnar man och har glömt det på morgonen.

Det är helt oväsentligt vem man har som levererar abonnemanget till en utan det är tre frågor som är viktiga;
* I vilket nät står HLR:en (Kallas HPMN – Home Public Mobile Network. HLR är Home Location Register – alltså den operativa databas där ens abonnemang är registrerat. Det är alltså inte själva kundregistret – din faktureringsadress och när kundservice varit i kontakt med dig, utan din SIM identitet och därtill kopplade tjänster))
* I vilket nät och under vilken MSC/VLR är man uppdaterad (Kallas VPMN – Visited Public Mobile network. VLR betyder Visited Location Register, vilket kan sägas vara som en lokal arbetskopia av din HLR som innehåller alla egna och besökande kunder som är registrerade under denna VLRs upptagningsområde)
* I vilket nät står det avsändande SMSC:t? Detta nät har en roll vi kallar APMN. (Associated Public Mobile Network)

Det avsändande SMSC:t måste ha en relation till både HLR och VLR. Är du i ditt hemmanät är dessa ju samma och då är det ett mindre problem. Näten där HLR och VLR har med nödvändighet en relation – man kan inte ansluta sig till en MSC/VLR utan att det finns en roamingrelation – alltså finns det en relation. Haken är att APMN inte med samma självklarhet har dessa två relationer.

Den som designade SMS var ett “snille” som tyckte att den vanliga kedjan klient – server – server – klient gick att optimera. Mycket skulle vara enklare om han tänkt hela kedjan ut och dessutom slutat röka gräs under specningen!! Jag är säker på att teknikernas favorituttryck “trasigt” är något som används för att kommentera detta. 😉

*** Grundkurs i SMS ***

Telefoni bygger på att man har payload (själva taltrafiken – typiskt sett en 64kbit/s kretskopplad förbindelse) och signalering för att styra den kretskopplade förbindelsen. Förr signalerade man på talkanalen/payloaden vilket möjliggjorde att BlueBox tekniken kunde användas för att ringa gratis (Se filmen Sneakers för hur det kunde se ut). Man emulerade signaleringen och kunde ringa som man ville. Nu sker signalering i ett logiskt separerat paketförmedlat nät. Signalering är alltså kontrollsignaleringen mellan nätnoder.

Nu blir jag lite osäker på terminologin – om jag använder “stack” rätt, men jag är trots allt jurist och inte tekniker varför jag tillåter mig att slira på begreppen ibland 😉

# I USA använder man en ANSI definierad stack och i Europa en CCITT – numera ITU – definierad variant, så du måste via en gateway om du skall köra emellan systemen. Ibland avser SS7 bara ANSI varianten, så här förekommer en del slirande på begreppen. (SS7 nätets routrar – STPer – kan numer också ofta konvertera.
# Ovanpå detta så kör man

  • ISUP för ren länksignallering (uppkoppling, nedkoppling, nummerpresentationsinfo och så vidare),
  • MAP (Mobile Application Part – besöksnät har en roamare som knackar på och kollar med HLR om han får roama och allt annat som behövs för att upprätthålla mobilitet) samt
  • CAP (CAMEL Application Part – finns i flera faser som används för realtidsdebitering, nummerkonvertering styrd från hemmanätet och så vidare).

SMS är en tjänst som använder MAP.

SMS går som så här:

1) Mobilen skickar till sitt SMSC oavsett var man befinner sig. SMSC finns definierat i internationellt format i telefonen – hämtat från SIM. Det är sedan SMSC:t som skickar meddelandet vidare. Genom att avsändaren i fallet med svenska mobilkunder är det svenska SMSC:t så använder du den svenska nummerplanen och det är därför du kan skicka 71xxx och 72xxx nummer även från utlandet. (SMS ingår i IR.24 testet, vilket betyder att om roaming funkar så SKALL SMS också funka både in och ut för postpaid – annars är något fel. För prepaid kan det vara annorlunda – där kan det finnas begränsningar). Så långt klient – server; det är nu det ballar ur.

2) SMSC:t tar nu reda på var mottagaren är genom att skicka MAp meddelandet SRIforSM (Subscriber Routing Information) till mottagarens HLR – i retur får den en referens till den VLR där du är uppdaterad. Går något fel här så vet SMSC:t att det gick snett och du får ett korrekt felmeddelande.

3) SMSC:t levererar nu SMS.et (MAP meddelandet Forward_SM)till det nät (MSC/VLR) där du är uppdaterad.

Låter så klart enkelt, men eftersom det kan vara så att alla dessa delar går på tok, blir det inte så enkelt.

Vad kan gå fel?

a) På grund av nummerportabilitet så vet man inte vilken med självklarhet HLR man skall ställa frågan till. Om man skjuter ut en SRIforSM så får man i bästa fall svar på detta men här finns risk att det går fel. Operatörernas säkerhetsmedvetande har också minskat chansen att detta fungerar även i randfallen, SRIforSM han nämligen också använts som ett första steg i attacker för att hacka abonnemang.

b) För att ett SMSC skall kunna skicka en SRI så måste det finnas en etablerad signaleringsrelation mellan APMN och VPMN- man måste implementerat varandras Global Title “ranger” och det skall vara öppet via C7 carriern. Utgångspunkten är att den är stängd, så det krävs normalt en aktiv insats för att öppna. Den öppnas normalt för nät som man har roaming med (SMS följer med “på köpet”) eller så måste man öppnat speciellt (ovanligt). Ibland har man tur och signalleringsleverantörerna har öppnat lite mer än bara vissa GT ranger (ibland öppnar de hela länder på en gång), men i gengäld vet man ju då inte om det kommer att fortsätta fungera. Det är alltså alltid bra att försäkra sig om att det är grönt från leverantören.

Normalt så håller man i SMSC:t reda på vilka nät som är öppna (en whitelist) och använder en SMS broker för fall man inte når själv. Det är alltså en speciellt spelare på marknaden för SMS leveranser som säljer kapacitet att terminera SMS för ett attraktivt pris och till så många destinationer som möjligt. Det finns otroligt många spelare på denna marknad.

Här finns en hake; ACK för levererat SMS brukar skickas av brokern för att deras plattform tagit emot SMS:et. Du får då ett meddelande att det gått fram men det är inte sant – det enda som framgår är att brokern fått det, vilket ju inte är samma sak som att mottagaren fått det. Ett typexempel när du SMS:ar och det står att mottagaren tagit emot det och du får reda på att så inte är fallet – då är det typiskt sett så att en broker använts och den har inte lyckats leverera SM:et.

c) Du måste få en vettig VLR adress tillbaka på din SRIforSM förfrågan.

Vissa nät låter SMSC i andra nät bara skicka till deras kunder om det finns ett särskilt avtal för SMS tecknat (SMS Interworking). Detta manifesteras till exempel genom att skicka HUMBUG tillbaka, men i ett korrekt formaterat meddelande.

d) När man nu vet vilken VLR som mottagaren finns under, så är det SMSC:t som skickar meddelandet direkt dit. Om det är ett roamingnät (alltså HLR och VLR för mottagaren är inte samma nät) så kan det går riktigt på tok. Som förut så vet vi att HLR och VLR nätet har roaming (och därmed signalering) – annars hade ju mottagaren inte kunnat uppdatera sig i detta nät. Kruxet är att APMN (SMSC nätet) ju inte behöver ha en fungerande relation med besöksnätet (VPMN). Detta är det enskilt vanligaste fel fallet; du får vettigt svar på din SRI fråga, men när du sedan skall leverera, så är det till ett nät du inte når. Här ser man en kombinatorik av om APMN och VPMN har fungerande signalleringsrelation med varandra.

– Om det finns en dubbelriktad signaleringsrelation mellan APMN och VPMN nätet så går det väl. SM går fram – ACK kommer tillbaka.
– Om APMN inte har en relation som fungerar med VPMNså fallerar det (korrekt felmeddelande) – SM går inte fram (oavsett om VPMN kan skicka tilbaka en ACK eller inte)
– MEN den riktiga cirkusen dyker upp om APMN lyckas sända men VPMN inte får tillbaka en ACK. Då går SMSC:t in i sitt retry
schema. Beroende på hur detta schema är definierat så kan SMSC:t här börja bomba mottagaren med meddelanden.

När 3 var en ung operatör, och hade ett ytterligt aggressivt retryschema, så skulle min dåvarande chef messa sin bror (kund hos Telia) och kastade om två siffror i hans nummer. Mottagaren befann sig i Marocko och roamade med den operatör som Telia hade roaming med. Vi på 3 hade inte roaming med dom utan bara någon av dom andra. SMS gick fram, ACK kom aldrig tillbaka och retry schemat gick på högvarv. Mottagaren blev lätt hysterisk efter cirka 250 meddelanden på mindre än ett dygn.

Vad kan man göra?

En operatör kan skydda sina egna kunder genom att alltid returnera en egen (virtuell eller äkta) VLR address på alla SRI frågor. På så vis undviker man att det avsändande SMSC:t skickar direkt till mottagaren. Då skapar man en klassisk klient -> server -> server -> klient kedja som funkar. Detta kallas Home Routing.

Det finns mycket mer att gräva i avseende ämnet SMS

SRI frågor kan användas till en massa saker som är i juridiska och etiska gråzoner.

– Vissa nät scannar nummerserier med SRI för att få fram vilka nummer som innehåller abonnenter. Det kan göras i syfte att mäta en konkurrent eller som förberedelse för att samla in data inför en SMS spam kampanj. Ett alternativ till att dammsuga internet efter mailadresser inför att man skickar mail spam. Jag kan inte säg att jag vet att detta sker ofta, men jag har personligen insyn i ett fall där en indisk operatör gjorde detta mot en brittisk operatör (och britterna drabbades av en SMS spam attack bara en vecka senare).

– Man kan bygga en del tjänster kring SRI; Om man har en besökare i sitt när som roamare. Om man tappar denna besökare så kan man ställa en SRI fråga. Är roamaren i ett annat land så tackar man för besöket och önskar välkommen åter (“Au Revoir SMS”) men om han är i ett annat nät i samma land så kan man skicka “Win Back SMS” (marknadsföring till kunden att aktivt byta nät till ditt). Notera att WinBack SMS ju går direkt i normalfallet så hemmaoperatören ser inte ens att detta meddelande går. Samtliga förfaranden där besöksnäten skickar SMS är i princip förbjudna om inte din operatör gett sitt medgivande . Detta regleras av GSM Associations dokument BA.47 där undertecknad varit med och levererat ett antal av rader.  Mitt bidrag var att skapa opinion för att också andra typer av marknadsföring via andra medel – t.ex. Blåtands utsändningar som förekommer i Italien – skall omfattas. Poängen är att man är kund hos sin hemmaoperatör och inte i besöksnätet så all kommunikation skall gå från hemmanätet eller ske med hemmanätets medgivande. Få saker bryts det mot i större omfattning än detta!

Till detta kan läggas hela affärsområdet A2P, men det tar vi en annan dag …

Thanks for rating this! Now tell the world how you feel - .
How does this post make you feel?
  • Excited
  • Fascinated
  • Amused
  • Bored
  • Sad
  • Angry

Leave a Reply

Your email address will not be published. Required fields are marked *