blob: 33050cc1e5fb0b11ff0d67f5a126228af02861d8 [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
Oliver Smithbf33c752020-04-06 15:46:29 +02005=== Protecting the IMSI on the Radio Interface is Desirable
6
Oliver Smith5c95bc92020-04-03 14:03:24 +02007A long-standing issue in the 3GPP specifications is, that mobile phones and
8other mobile equipment (ME) have to send the International Mobile Subscriber
9Identity (IMSI) unencrypted over the air. Each IMSI is uniquely identifying the
10person who bought the associated Subscriber Identity Module (SIM) used in the
11ME. Therefore most people can be uniquely identified by recording the IMSI that
12their ME is sending. Efforts are made in the 2G and above specifications to
Oliver Smith7afd7012020-04-06 11:59:59 +020013send the IMSI less often, by using the Temporary Mobile Subscriber Identity
14(TMSI) where possible.
Oliver Smith5c95bc92020-04-03 14:03:24 +020015
16But this is not enough. So-called IMSI catchers were invented and are used to
17not only record IMSIs when they have to be sent. But also to force ME to send
18their IMSI by immitating a Base Transceiver Station (BTS). IMSI catchers have
19become small and affordable, even criminals actors without much budget can use
20them to track anybody with a mobile phone.
21
Oliver Smithbf33c752020-04-06 15:46:29 +020022=== Summary of Proposed Solution
23
Oliver Smith5c95bc92020-04-03 14:03:24 +020024The solution presented in this document is to periodically change the IMSI of
25the ME to a new pseudonymous IMSI allocated by the Home Location Register (HLR)
Oliver Smithbf33c752020-04-06 15:46:29 +020026or Home Subscriber Service (HSS). The next pseudonymous IMSI is sent to the SIM
27via Short Message Service (SMS), then a SIM applet overwrites the IMSI of the
28SIM with the new value. The only component that needs to be changed in the
29network besides the SIM is the HLR/HSS, therefore it should be possible even
30for a Mobile Virtual Network Operator (MVNO) to deploy this privacy
Oliver Smith5c95bc92020-04-03 14:03:24 +020031enhancement.
32
Oliver Smithbf33c752020-04-06 15:46:29 +020033=== Summary of Existing Location Updating Procedures in RAN and CN
Oliver Smith5c95bc92020-04-03 14:03:24 +020034
Oliver Smith6f9f2182020-04-06 14:29:34 +020035The subscriber's SIM is provisioned with the IMSI and cryptographic keys of a
36subscriber, after the subscriber was added with the same data to the HLR/HSS.
37In the Remote Access Network (RAN), the IMSI is sent over the air interface and
38then transmitted to the Core Network (CN), where it is validated by the
39HLR/HSS. The involved components vary by the generation of the network and
40whether the SIM is attempting a Circuit Switched (CS) or Packet Switched (PS)
41connection, but the principle is the same. This document uses 2G CS Location
42Updating for reference, as in <<figure-imsi-regular>>.
Oliver Smith7afd7012020-04-06 11:59:59 +020043
44The IMSI is transmitted in the Location Updating Request from ME. The VLR
45needs an authentication challenge specific to the secret keys on the SIM to
46authenticate the SIM, and looks the authentication challenges up by the IMSI.
47If the VLR does not have any more authentication challenges for the IMSI (as it
48happens when the VLR sees the IMSI for the first time), the VLR requests new
49authentication challenges from the HLR. Then the HLR verifies that the IMSI is
50known and, if it is unknown, sends back an error that will terminate the
51Location Updating procedure.
52
53After the VLR found the authentication challenge, it authenticates the SIM, and
54performs a Classmark Enquiry and Physical Channel Reconfiguration. Then the VLR
55has the required information to finish the Location Updating, and continues
56with an Update Location Request procedure with the HLR. Afterwards, the VLR
57assigns a new TMSI with the Location Updating Accept, which is acknowledged by
58the TMSI Reallocation Complete. In following Location Updates with the same
59MSC, the ME sends the TMSI instead of the IMSI in the Location Updating
60Request.
61
62[[figure-imsi-regular]]
63.Location Updating in 2G CS with IMSI
64["mscgen"]
65----
66msc {
67 hscale="1.75";
68 ME [label="ME"], BTS [label="BTS"], BSC [label="BSC"], MSC [label="MSC/VLR"],
69 HLR [label="HLR"];
70
71 // BTS <=> BSC: RSL
72 // BSC <=> MSC: BSSAP, RNSAP
73 // MSC <=> HLR: MAP (process Update_Location_HLR, 3GPP TS 29.002)
74
75 ME => BTS [label="Location Updating Request"];
76 BTS => BSC [label="Location Updating Request"];
77 BSC => MSC [label="Location Updating Request"];
78
79 --- [label="VLR requests new authentication challenges for this IMSI if necessary"];
80 MSC => HLR [label="Send Auth Info Request"];
81 MSC <= HLR [label="Send Auth Info Result"];
82 ---;
83
84 BSC <= MSC [label="Authentication Request"];
85 BTS <= BSC [label="Authentication Request"];
86 ME <= BTS [label="Authentication Request"];
87 ME => BTS [label="Authentication Response"];
88 BTS => BSC [label="Authentication Response"];
89 BSC => MSC [label="Authentication Response"];
90 BSC <= MSC [label="Classmark Enquiry"];
91 BTS <= BSC [label="Classmark Enquiry"];
92 ME <= BTS [label="Classmark Enquiry"];
93 ME => BTS [label="Classmark Change"];
94 BTS => BSC [label="Classmark Change"];
95 BSC => MSC [label="Classmark Update"];
96 BSC <= MSC [label="Physical Channel Reconfiguration"];
97 BTS <= BSC [label="Ciphering Mode Command"];
98 ME <= BTS [label="Ciphering Mode Command"];
99 ME => BTS [label="Ciphering Mode Complete"];
100 BTS => BSC [label="Ciphering Mode Complete"];
101 BSC => MSC [label="Ciphering Mode Complete"];
102
103 MSC => HLR [label="Update Location Request"];
104 MSC <= HLR [label="Insert Subscriber Data Request"];
105 MSC => HLR [label="Insert Subscriber Data Result"];
106 MSC <= HLR [label="Update Location Result"];
107
108 BSC <= MSC [label="Location Updating Accept"];
109 BTS <= BSC [label="Location Updating Accept"];
110 ME <= BTS [label="Location Updating Accept"];
111 ME => BTS [label="TMSI Reallocation Complete"];
112 BTS => BSC [label="TMSI Reallocation Complete"];
Oliver Smith2c8a19c2020-04-06 14:04:13 +0200113 BSC => MSC [label="TMSI Reallocation Complete"];
Oliver Smith7afd7012020-04-06 11:59:59 +0200114}
115----
116
Oliver Smithbf33c752020-04-06 15:46:29 +0200117<<<
Oliver Smith2c8a19c2020-04-06 14:04:13 +0200118== Required Changes
Oliver Smith6f9f2182020-04-06 14:29:34 +0200119
Oliver Smithbf33c752020-04-06 15:46:29 +0200120=== Pseudonymous IMSI Storage in the HLR
121
122The HLR must store up to two pseudonymous IMSIs (imsi_pseudo) and their related
123counters (imsi_pseudo_i) per subscriber. Each subscriber initially has one
124pseudonymous IMSI allocated. A subscriber has two valid pseudonymous IMSIs
125only during the transition phase from the old pseudonymous IMSI to the new one.
126The amount of available IMSIs must be higher than the amount of subscribers
127registered with the HLR. If the amount of available IMSIs is too short, the HLR
128can delay assigning new pseudonymous IMSIs until new IMSIs are available again.
129
130.Examples for additional subscriber data in HLR
131|===
132| Subscriber ID | imsi_pseudo | imsi_pseudo_i
133// example IMSIs taken from Wikipedia
134| 123
135| 310150123456789
136| 1
137
138| 234
139| 502130123456789
140| 1
141
142| 234
143| 460001357924680
144| 2
145|===
146
147==== imsi_pseudo
148
149The value for imsi_pseudo is a random choice from the pool of available IMSIs
150that the HLR controls. The pseudonymous IMSI must not be used by any subscriber
151as pseudonymous IMSI yet, but may be the real IMSI of a subscriber.
152
153==== imsi_pseudo_i
154
155The counter imsi_pseudo_i indicates how often a subscriber's pseudonymous IMSI
156was changed. The value is one for the first allocated pseudonymous IMSI of
157a subscriber. When allocating a new pseudonymous IMSI for the same subscriber,
158the new imsi_pseudo_i value is increased by one. The counter is used by the SIM
159applet to detect and ignore outdated requests related to changing the
160pseudonymous IMSI.
161
Oliver Smith2c8a19c2020-04-06 14:04:13 +0200162=== SIM Provisioning
Oliver Smith6f9f2182020-04-06 14:29:34 +0200163
Oliver Smith2c8a19c2020-04-06 14:04:13 +0200164=== Successful Location Update With Pseudonymous IMSI
Oliver Smithbf33c752020-04-06 15:46:29 +0200165
166// HLR may choose not to give out next IMSI if it is short on available IMSIS
167
Oliver Smith2c8a19c2020-04-06 14:04:13 +0200168=== Next Pseudonymous IMSI Arrives Via SMS
Oliver Smith7afd7012020-04-06 11:59:59 +0200169
Oliver Smith2c8a19c2020-04-06 14:04:13 +0200170== Error Scenarios
171=== Next Pseudonymous IMSI SMS is Lost
172=== SMS Arrives Late
Oliver Smith7afd7012020-04-06 11:59:59 +0200173
Oliver Smith2c8a19c2020-04-06 14:04:13 +0200174== Reference Implementation with Source Code
Oliver Smith7afd7012020-04-06 11:59:59 +0200175
Oliver Smith2c8a19c2020-04-06 14:04:13 +0200176== Recommendations for Real-World Implementations
177=== ATT = 0
Oliver Smith5c95bc92020-04-03 14:03:24 +0200178=== End to End Encryption of SMS
Oliver Smith2c8a19c2020-04-06 14:04:13 +0200179=== Warning the User if the IMSI Does Not Change
Oliver Smith5c95bc92020-04-03 14:03:24 +0200180=== User-configurable Minimum Duration Between IMSI Changes
Oliver Smith2c8a19c2020-04-06 14:04:13 +0200181
182<<<
183include::./common/chapters/gfdl.adoc[]