blob: d7b748390aa5cbfdfdf7a4ff8480457888d5dbf3 [file] [log] [blame]
Oliver Smith5c95bc92020-04-03 14:03:24 +02001= Specification for IMSI Pseudonymization on the Radio Interface for 2G and Above
2
3== Introduction
4
5A long-standing issue in the 3GPP specifications is, that mobile phones and
6other mobile equipment (ME) have to send the International Mobile Subscriber
7Identity (IMSI) unencrypted over the air. Each IMSI is uniquely identifying the
8person who bought the associated Subscriber Identity Module (SIM) used in the
9ME. Therefore most people can be uniquely identified by recording the IMSI that
10their ME is sending. Efforts are made in the 2G and above specifications to
Oliver Smith7afd7012020-04-06 11:59:59 +020011send the IMSI less often, by using the Temporary Mobile Subscriber Identity
12(TMSI) where possible.
Oliver Smith5c95bc92020-04-03 14:03:24 +020013
14But this is not enough. So-called IMSI catchers were invented and are used to
15not only record IMSIs when they have to be sent. But also to force ME to send
16their IMSI by immitating a Base Transceiver Station (BTS). IMSI catchers have
17become small and affordable, even criminals actors without much budget can use
18them to track anybody with a mobile phone.
19
20The solution presented in this document is to periodically change the IMSI of
21the ME to a new pseudonymous IMSI allocated by the Home Location Register (HLR)
22or Home Subscriber Service (HSS). The only component that needs to be changed
23in the network besides the SIM is the HLR/HSS, therefore it should be possible
Oliver Smith7afd7012020-04-06 11:59:59 +020024even for a Mobile Virtual Network Operator (MVNO) to deploy this privacy
Oliver Smith5c95bc92020-04-03 14:03:24 +020025enhancement.
26
Oliver Smith7afd7012020-04-06 11:59:59 +020027== Location Updating
Oliver Smith5c95bc92020-04-03 14:03:24 +020028
29=== Regular
30
Oliver Smith7afd7012020-04-06 11:59:59 +020031The SIM is provisioned with the IMSI (3GPP TS 23.008 section 2.1.9) and
32cryptographic keys, that it uses to authenticate with the network. In the
33Remote Access Network (RAN), the IMSI is sent over the air interface and then
34transmitted to the Core Network (CN), where it is validated by the HLR/HSS.
35The involved components vary by the generation of the network and whether the
36SIM is attempting a Circuit Switched (CS) or Packet Switched (PS) connection.
37But the principle is the same and looks like <<figure-imsi-regular>> for 2G CS
38Location Updating with IMSI.
39
40The IMSI is transmitted in the Location Updating Request from ME. The VLR
41needs an authentication challenge specific to the secret keys on the SIM to
42authenticate the SIM, and looks the authentication challenges up by the IMSI.
43If the VLR does not have any more authentication challenges for the IMSI (as it
44happens when the VLR sees the IMSI for the first time), the VLR requests new
45authentication challenges from the HLR. Then the HLR verifies that the IMSI is
46known and, if it is unknown, sends back an error that will terminate the
47Location Updating procedure.
48
49After the VLR found the authentication challenge, it authenticates the SIM, and
50performs a Classmark Enquiry and Physical Channel Reconfiguration. Then the VLR
51has the required information to finish the Location Updating, and continues
52with an Update Location Request procedure with the HLR. Afterwards, the VLR
53assigns a new TMSI with the Location Updating Accept, which is acknowledged by
54the TMSI Reallocation Complete. In following Location Updates with the same
55MSC, the ME sends the TMSI instead of the IMSI in the Location Updating
56Request.
57
58[[figure-imsi-regular]]
59.Location Updating in 2G CS with IMSI
60["mscgen"]
61----
62msc {
63 hscale="1.75";
64 ME [label="ME"], BTS [label="BTS"], BSC [label="BSC"], MSC [label="MSC/VLR"],
65 HLR [label="HLR"];
66
67 // BTS <=> BSC: RSL
68 // BSC <=> MSC: BSSAP, RNSAP
69 // MSC <=> HLR: MAP (process Update_Location_HLR, 3GPP TS 29.002)
70
71 ME => BTS [label="Location Updating Request"];
72 BTS => BSC [label="Location Updating Request"];
73 BSC => MSC [label="Location Updating Request"];
74
75 --- [label="VLR requests new authentication challenges for this IMSI if necessary"];
76 MSC => HLR [label="Send Auth Info Request"];
77 MSC <= HLR [label="Send Auth Info Result"];
78 ---;
79
80 BSC <= MSC [label="Authentication Request"];
81 BTS <= BSC [label="Authentication Request"];
82 ME <= BTS [label="Authentication Request"];
83 ME => BTS [label="Authentication Response"];
84 BTS => BSC [label="Authentication Response"];
85 BSC => MSC [label="Authentication Response"];
86 BSC <= MSC [label="Classmark Enquiry"];
87 BTS <= BSC [label="Classmark Enquiry"];
88 ME <= BTS [label="Classmark Enquiry"];
89 ME => BTS [label="Classmark Change"];
90 BTS => BSC [label="Classmark Change"];
91 BSC => MSC [label="Classmark Update"];
92 BSC <= MSC [label="Physical Channel Reconfiguration"];
93 BTS <= BSC [label="Ciphering Mode Command"];
94 ME <= BTS [label="Ciphering Mode Command"];
95 ME => BTS [label="Ciphering Mode Complete"];
96 BTS => BSC [label="Ciphering Mode Complete"];
97 BSC => MSC [label="Ciphering Mode Complete"];
98
99 MSC => HLR [label="Update Location Request"];
100 MSC <= HLR [label="Insert Subscriber Data Request"];
101 MSC => HLR [label="Insert Subscriber Data Result"];
102 MSC <= HLR [label="Update Location Result"];
103
104 BSC <= MSC [label="Location Updating Accept"];
105 BTS <= BSC [label="Location Updating Accept"];
106 ME <= BTS [label="Location Updating Accept"];
107 ME => BTS [label="TMSI Reallocation Complete"];
108 BTS => BSC [label="TMSI Reallocation Complete"];
109}
110----
111
112=== With IMSI Pseudonymization
113
114==== SIM Provisioning
115
116==== Successful Location Update With Pseudonymous IMSI
117
118==== Next Pseudonymous IMSI Arrives Via SMS
119
120==== Error Handling
121
122===== SMS is Lost
123
124===== SMS Arrives Late
Oliver Smith5c95bc92020-04-03 14:03:24 +0200125
126== Implementation Notes
127
128=== Source Code for Reference Implementation
129
Oliver Smith7afd7012020-04-06 11:59:59 +0200130=== ATT = 0 required
131
Oliver Smith5c95bc92020-04-03 14:03:24 +0200132=== Warning the User if the IMSI Does Not Change
133
134=== End to End Encryption of SMS
135
136=== User-configurable Minimum Duration Between IMSI Changes