blob: 17e4476fa39c953180057734f2138dd01bd85876 [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
Oliver Smith206a0fa2020-04-07 14:30:07 +020056with Process Update_Location_HLR (3GPP TS 29.002). Afterwards, the VLR assigns
57a new TMSI with the Location Updating Accept, which is acknowledged by the TMSI
58Reallocation Complete. In following Location Updates with the same MSC, the ME
59sends the TMSI instead of the IMSI in the Location Updating Request.
Oliver Smith7afd7012020-04-06 11:59:59 +020060
61[[figure-imsi-regular]]
62.Location Updating in 2G CS with IMSI
63["mscgen"]
64----
65msc {
66 hscale="1.75";
67 ME [label="ME"], BTS [label="BTS"], BSC [label="BSC"], MSC [label="MSC/VLR"],
68 HLR [label="HLR"];
69
70 // BTS <=> BSC: RSL
71 // BSC <=> MSC: BSSAP, RNSAP
72 // MSC <=> HLR: MAP (process Update_Location_HLR, 3GPP TS 29.002)
73
74 ME => BTS [label="Location Updating Request"];
75 BTS => BSC [label="Location Updating Request"];
76 BSC => MSC [label="Location Updating Request"];
77
Oliver Smith7e33ef52020-04-07 15:05:11 +020078 --- [label="If necessary: VLR requests new authentication challenges for this IMSI"];
Oliver Smith7afd7012020-04-06 11:59:59 +020079 MSC => HLR [label="Send Auth Info Request"];
80 MSC <= HLR [label="Send Auth Info Result"];
81 ---;
82
83 BSC <= MSC [label="Authentication Request"];
84 BTS <= BSC [label="Authentication Request"];
85 ME <= BTS [label="Authentication Request"];
86 ME => BTS [label="Authentication Response"];
87 BTS => BSC [label="Authentication Response"];
88 BSC => MSC [label="Authentication Response"];
89 BSC <= MSC [label="Classmark Enquiry"];
90 BTS <= BSC [label="Classmark Enquiry"];
91 ME <= BTS [label="Classmark Enquiry"];
92 ME => BTS [label="Classmark Change"];
93 BTS => BSC [label="Classmark Change"];
94 BSC => MSC [label="Classmark Update"];
95 BSC <= MSC [label="Physical Channel Reconfiguration"];
96 BTS <= BSC [label="Ciphering Mode Command"];
97 ME <= BTS [label="Ciphering Mode Command"];
Oliver Smith8c81b552020-04-07 08:44:56 +020098 ME => BTS [label="Ciphering Mode Complete"];
Oliver Smith7afd7012020-04-06 11:59:59 +020099 BTS => BSC [label="Ciphering Mode Complete"];
100 BSC => MSC [label="Ciphering Mode Complete"];
101
Oliver Smith206a0fa2020-04-07 14:30:07 +0200102 --- [label="Process Update_Location_HLR (3GPP TS 29.002)"];
Oliver Smith7afd7012020-04-06 11:59:59 +0200103 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"];
Oliver Smith206a0fa2020-04-07 14:30:07 +0200107 ---;
Oliver Smith7afd7012020-04-06 11:59:59 +0200108
109 BSC <= MSC [label="Location Updating Accept"];
110 BTS <= BSC [label="Location Updating Accept"];
111 ME <= BTS [label="Location Updating Accept"];
112 ME => BTS [label="TMSI Reallocation Complete"];
113 BTS => BSC [label="TMSI Reallocation Complete"];
Oliver Smith2c8a19c2020-04-06 14:04:13 +0200114 BSC => MSC [label="TMSI Reallocation Complete"];
Oliver Smith7afd7012020-04-06 11:59:59 +0200115}
116----
117
Oliver Smithbf33c752020-04-06 15:46:29 +0200118<<<
Oliver Smith2c8a19c2020-04-06 14:04:13 +0200119== Required Changes
Oliver Smith6f9f2182020-04-06 14:29:34 +0200120
Oliver Smith64d154c2020-04-08 08:36:18 +0200121[[hlr-imsi-pseudo-storage]]
Oliver Smithbf33c752020-04-06 15:46:29 +0200122=== Pseudonymous IMSI Storage in the HLR
123
124The HLR must store up to two pseudonymous IMSIs (imsi_pseudo) and their related
125counters (imsi_pseudo_i) per subscriber. Each subscriber initially has one
126pseudonymous IMSI allocated. A subscriber has two valid pseudonymous IMSIs
127only during the transition phase from the old pseudonymous IMSI to the new one.
128The amount of available IMSIs must be higher than the amount of subscribers
129registered with the HLR. If the amount of available IMSIs is too short, the HLR
130can delay assigning new pseudonymous IMSIs until new IMSIs are available again.
131
132.Examples for additional subscriber data in HLR
Oliver Smith69e3fa62020-04-09 14:54:49 +0200133[options="header"]
Oliver Smithbf33c752020-04-06 15:46:29 +0200134|===
135| Subscriber ID | imsi_pseudo | imsi_pseudo_i
136// example IMSIs taken from Wikipedia
137| 123
138| 310150123456789
139| 1
140
141| 234
142| 502130123456789
143| 1
144
145| 234
146| 460001357924680
147| 2
148|===
149
150==== imsi_pseudo
151
152The value for imsi_pseudo is a random choice from the pool of available IMSIs
153that the HLR controls. The pseudonymous IMSI must not be used by any subscriber
154as pseudonymous IMSI yet, but may be the real IMSI of a subscriber.
155
Oliver Smith8b68e4e2020-04-07 09:38:49 +0200156[[hlr-imsi-pseudo-i]]
Oliver Smithbf33c752020-04-06 15:46:29 +0200157==== imsi_pseudo_i
158
159The counter imsi_pseudo_i indicates how often a subscriber's pseudonymous IMSI
Oliver Smith8c81b552020-04-07 08:44:56 +0200160was changed. The value is 1 for the first allocated pseudonymous IMSI of a
161subscriber. When allocating a new pseudonymous IMSI for the same subscriber,
162the new imsi_pseudo_i value is increased by 1. The counter is used by the SIM
Oliver Smithbf33c752020-04-06 15:46:29 +0200163applet to detect and ignore outdated requests related to changing the
164pseudonymous IMSI.
165
Oliver Smith2c8a19c2020-04-06 14:04:13 +0200166=== SIM Provisioning
Oliver Smith6f9f2182020-04-06 14:29:34 +0200167
Oliver Smith8b68e4e2020-04-07 09:38:49 +0200168The HLR is allocating a pseudonymous IMSI for the subscriber. This pseudonymous
169IMSI is stored as IMSI on the subscriber's SIM instead of the real IMSI.
170
Oliver Smith5de45c02020-04-08 14:37:58 +0200171[[sim-app]]
Oliver Smith8b68e4e2020-04-07 09:38:49 +0200172==== SIM applet
173
174The SIM is provisioned with a SIM applet, which is able to change the IMSI once
175the next pseudonymous IMSI arrives from the HLR. A reference implementation is
176provided in <<reference-src>>.
177
Oliver Smith69e3fa62020-04-09 14:54:49 +0200178===== Counter Storage
179
180The following counter variables are stored in the SIM applet.
181
182[options="header",cols="20%,12%,68%"]
183|===
184| Name | Initial value | Description
185
186| imsi_pseudo_i
187| 1
188| See <<hlr-imsi-pseudo-i>>.
189
190| imsi_pseudo_lu
191| 0
192| Amount of Location Updating procedures done with the same pseudonymous IMSI.
193
194| imsi_pseudo_lu_max
195| (decided by operator)
196| Maximum amount of Location Updating procedures done with the same
197 pseudonymous IMSI, before the SIM applet shows a warning to the subscriber.
198|===
199
200===== Switch to Next Pseudonymous IMSI
201
Oliver Smith8b68e4e2020-04-07 09:38:49 +0200202The SIM applet registers to a suitable SMS trigger (3GPP TS 03.19, Section
Oliver Smith7b0dbb92020-04-08 10:33:52 +02002036.2). When an SMS from the HLR in the structure of <<sms-structure>> arrives,
204the applet must verify that the SMS is not outdated by comparing imsi_pseudo_i
205from the SMS with the last imsi_pseudo_i that was used when changing the IMSI
Oliver Smith8b68e4e2020-04-07 09:38:49 +0200206(initially 1 as in <<hlr-imsi-pseudo-i>>). The new value must be higher,
207otherwise the SMS should not be processed further.
208
209The SIM applet registers a timer with min_sleep_time from the SMS. When the
210timer triggers, the IMSI of the SIM is overwritten with the new pseudonymous
211IMSI, the TMSI and GSM Ciphering key Kc (3GPP TS 31.102, Section 4.4.3.1) are
Oliver Smith69e3fa62020-04-09 14:54:49 +0200212invalidated. The current imsi_pseudo_i from the SMS is stored in the SIM applet
213to compare it with the next SMS. imsi_pseudo_lu is reset to 0. Afterwards,
214the EF~IMSI~ changing procedure in 3GPP TS 11.14, Section 6.4.7.1 is executed
215to apply the new IMSI.
Oliver Smith8b68e4e2020-04-07 09:38:49 +0200216
217// FIXME: do we need to enforce the LU now, with an arbitrary CM Service
218// Request, or would this only be necessary for Osmocom? (OS#4404)
Oliver Smith69e3fa62020-04-09 14:54:49 +0200219
220===== Warning the Subscriber If the Pseudonymous IMSI Does Not Change
221
222An attacker could potentially block the next pseudonymous IMSI SMS on purpose.
223Because the SIM applet cannot decide the next pseudonymous IMSI, it would have
224the same pseudonymous IMSI for a long time. Then it could become feasible for
225an attacker to track the subscriber by their pseudonymous IMSI. Therefore the
226SIM applet should warn the subscriber if the pseudonymous IMSI does not change.
227
228The SIM applet registers to EVENT_EVENT_DOWNLOAD_LOCATION_STATUS (3GPP TS
22903.19, Section 6.2) and increases imsi_pseudo_lu by 1 when the event is
230triggered. If imsi_pseudo_lu reaches imsi_pseudo_lu_max, the SIM applet
231displays a warning to the subscriber.
232
Oliver Smithbb8d9122020-04-08 14:58:50 +0200233[[process-update-location-hlr]]
Oliver Smith206a0fa2020-04-07 14:30:07 +0200234=== Process Update_Location_HLR
Oliver Smithbf33c752020-04-06 15:46:29 +0200235
Oliver Smith206a0fa2020-04-07 14:30:07 +0200236All IMSI Pseudonymization related changes to Process Update_Location_HLR
Oliver Smith64d154c2020-04-08 08:36:18 +0200237(3GPP TS 29.002) are optional. Deviations from the existing specification that
238are outlined in this section are expected to be enabled or disabled entirely
239where IMSI pseudonymization is implemented.
Oliver Smith206a0fa2020-04-07 14:30:07 +0200240
Oliver Smithef43ac32020-04-07 16:02:19 +0200241[[figure-imsi-pseudo]]
Oliver Smith206a0fa2020-04-07 14:30:07 +0200242.Process Update_Location_HLR with IMSI pseudonymization changes
243["mscgen"]
244----
245msc {
246 hscale="1.75";
247 MSC [label="MSC/VLR"], SMSC [label="SMS-SC"], HLR [label="HLR"];
248
249 MSC => HLR [label="Update Location Request"];
Oliver Smith7e33ef52020-04-07 15:05:11 +0200250
251 --- [label="If new pseudonymous IMSI was used: deallocate and cancel old pseudonymous IMSI"];
Oliver Smith64d154c2020-04-08 08:36:18 +0200252 HLR box HLR [label="Deallocate old pseudonymous IMSI"];
Oliver Smith7e33ef52020-04-07 15:05:11 +0200253 MSC <= HLR [label="Cancel Location Request"];
254 MSC => HLR [label="Cancel Location Result"];
255 ---;
256
Oliver Smith206a0fa2020-04-07 14:30:07 +0200257 MSC <= HLR [label="Insert Subscriber Data Request"];
258 MSC => HLR [label="Insert Subscriber Data Result"];
Oliver Smith64d154c2020-04-08 08:36:18 +0200259 HLR box HLR [label="Start Next_Pseudo_IMSI_Timer"];
Oliver Smith206a0fa2020-04-07 14:30:07 +0200260 MSC <= HLR [label="Update Location Result"];
Oliver Smith64d154c2020-04-08 08:36:18 +0200261 MSC box MSC [label="Finish Location Updating with ME"],
Oliver Smith206a0fa2020-04-07 14:30:07 +0200262
Oliver Smith64d154c2020-04-08 08:36:18 +0200263 HLR box HLR [label="Wait for Next_Pseudo_IMSI_Timer expiry"];
Oliver Smith206a0fa2020-04-07 14:30:07 +0200264 |||;
265 ...;
266 |||;
Oliver Smith64d154c2020-04-08 08:36:18 +0200267 HLR box HLR [label="Next_Pseudo_IMSI_Timer expired"];
Oliver Smith7e33ef52020-04-07 15:05:11 +0200268
Oliver Smith64d154c2020-04-08 08:36:18 +0200269 HLR box HLR [label="\nAllocate new pseudonymous IMSI\nif subscriber has only one allocated\n"];
Oliver Smith206a0fa2020-04-07 14:30:07 +0200270 SMSC <= HLR [label="Next Pseudonymous IMSI SMS"];
271 SMSC box SMSC [label="Deliver SMS to ME"];
272}
273----
Oliver Smith7afd7012020-04-06 11:59:59 +0200274
Oliver Smithef43ac32020-04-07 16:02:19 +0200275==== Update Location Request
Oliver Smith64d154c2020-04-08 08:36:18 +0200276
Oliver Smithef43ac32020-04-07 16:02:19 +0200277When Update Location Request arrives, the HLR does not look up the subscriber
278by the IMSI, but by the pseudonymous IMSI instead. Unless the subscriber has
Oliver Smith69e3fa62020-04-09 14:54:49 +0200279two pseudonymous IMSI allocated and used the new pseudonymous IMSI in the
280Update Location Request, this is followed by the existing logic to continue
281with Insert Subscriber Data Request.
Oliver Smithef43ac32020-04-07 16:02:19 +0200282
283===== Update Location Request With New Pseudonymous IMSI
284
285If the subscriber has two pseudonymous IMSIs allocated, and the newer entry was
286used (higher imsi_pseudo_i, see <<hlr-imsi-pseudo-i>>), this section applies.
287The older pseudonymous IMSI is deallocated in the HLR. This is done as early
288as possible, so the timeframe where two pseudonymous IMSI are allocated for one
289subscriber is short.
290
291A Cancel Location Request with the old pseudonymous IMSI is sent to the VLR, so
292the conflicting subscriber entry with the old pseudonymous IMSI is deleted from
293the VLR. Receiving a Cancel Location Result is followed by the existing logic
294to continue with Insert Subscriber Data Request.
295
296===== Update Location Request With Old Pseudonymous IMSI
297
298If the subscriber has two pseudonymous IMSIs allocated, and the older entry was
299used (lower imsi_pseudo_i, see <<hlr-imsi-pseudo-i>>), the newer entry is _not_
300deallocated. This could lock out the subscriber from the network if the SMS
301with the new pseudonymous IMSI arrives with a delay.
302
303==== Insert Subscriber Data Result
304
Oliver Smith64d154c2020-04-08 08:36:18 +0200305When Insert Subscriber Data Result arrives, a subscriber specific
306Next_Pseudo_IMSI_Timer starts.
Oliver Smithef43ac32020-04-07 16:02:19 +0200307
308==== Next_Pseudo_IMSI_Timer Expires
309
Oliver Smith64d154c2020-04-08 08:36:18 +0200310If the subscriber has only one pseudonymous IMSI allocated, and the amount of
311available IMSIs in the HLR is high enough, a second pseudonymous IMSI and
312related imsi_pseudo_i gets allocated for the subscriber (as described in
313<<hlr-imsi-pseudo-storage>>).
314
315If the subscriber still has only one pseudonymous IMSI, because not enough
316IMSIs were available in the HLR, the process is aborted here and no SMS with
317a next pseudonymous IMSI is sent to the subscriber. The subscriber will get a
318new pseudonymous IMSI during the next Location Updating Procedure, if the HLR
319has enough IMSIs available at that point.
320
321An SMS is sent to the SMS - Service Centre (SMS-SC) with the newer pseudonymous
322IMSI (higher imsi_pseudo_i, see <<hlr-imsi-pseudo-i>>) and related
323imsi_pseudo_i value.
Oliver Smithef43ac32020-04-07 16:02:19 +0200324
Oliver Smith7b0dbb92020-04-08 10:33:52 +0200325[[sms-structure]]
326==== Next Pseudonymous IMSI SMS Structure
Oliver Smithef43ac32020-04-07 16:02:19 +0200327
Oliver Smith7b0dbb92020-04-08 10:33:52 +0200328.Next pseudonymous IMSI SMS structure
329[packetdiag]
330----
331{
332 colwidth = 32
333
334 0-31: IMSI_PSEUDO_I
335 32-63: MIN_SLEEP_TIME
336 64-119: IMSI_PSEUDO
337 120-127: PAD
338}
339----
340
Oliver Smitha0354de2020-04-09 15:13:38 +0200341// FIXME
342IMPORTANT: This is a draft. The structure is likely to change after the
343reference implementation phase.
344
Oliver Smith7b0dbb92020-04-08 10:33:52 +0200345IMSI_PSEUDO_I: 32 bits::
346See <<hlr-imsi-pseudo-i>>.
347
348MIN_SLEEP_TIME: 32 bits::
349Amount of seconds, which the SIM applet should wait before changing to the new
350pseudonymous IMSI. Since it is unclear when the SMS will arrive (ME might be
351turned off), this is a minimum amount.
352
353IMSI_PSEUDO: 60 bits::
354Telephony Binary Coded Decimal (TBCD, 3GPP TS 29.002) version of the next
355pseudonymous IMSI.
356
357PAD: 8 bits::
358Padding at the end, should be filled with 1111 as in the TBCD specification.
Oliver Smithef43ac32020-04-07 16:02:19 +0200359
Oliver Smith2c8a19c2020-04-06 14:04:13 +0200360== Error Scenarios
Oliver Smith5de45c02020-04-08 14:37:58 +0200361
Oliver Smith2c8a19c2020-04-06 14:04:13 +0200362=== Next Pseudonymous IMSI SMS is Lost
Oliver Smith5de45c02020-04-08 14:37:58 +0200363
364If the SMS with the next pseudonymous IMSI does not arrive, the SIM will start
365the next Location Updating Procedure with the old pseudonymous IMSI. Because
366the HLR has both the old and the new pseudonymous IMSI allocated at this point,
367the subscriber is not locked out of the network.
368
Oliver Smith5de45c02020-04-08 14:37:58 +0200369=== Next Pseudonymous IMSI SMS arrives out of order
370
371The next pseudonymous IMSI SMS may arrive out of order. Either, because the
372network is not able to deliver them in order, or even because an attacker would
373perform a replay attack.
374
375If the SMS arrives out of order, the imsi_pseudo_i counter will not be higher
376than the value the SIM applet (<<sim-app>>) has stored. Therefore, the applet
377will discard the message and the subscriber is not locked out of the network.
Oliver Smith7afd7012020-04-06 11:59:59 +0200378
Oliver Smith8b68e4e2020-04-07 09:38:49 +0200379// === SMS Arrives Before Timer Expires
380// FIXME: OS#4486
381
Oliver Smith2c8a19c2020-04-06 14:04:13 +0200382== Recommendations for Real-World Implementations
Oliver Smithcbe90582020-04-08 15:38:29 +0200383
Oliver Smith18bf9bb2020-04-08 15:26:59 +0200384=== BCCH SI3: ATT = 0
Oliver Smithcbe90582020-04-08 15:38:29 +0200385
Oliver Smith18bf9bb2020-04-08 15:26:59 +0200386When changing from one pseudonymous IMSI to the next, it is important that the
387ME does not detach from the network. Otherwise it would be trivial for an
388attacker to correlate the detach with the attach of the same ME with the next
389pseudonymous IMSI.
390
391This is controlled with the ATT flag in the SYSTEM INFORMATION TYPE 3 (SI3)
392message on the Broadcast Control Channel (BCCH), see 3GPP TS 44.018 Section
39310.5.2.11. It must be set to 0.
394
395// FIXME: verify how it set with operators in germany (OS#4404)
396
Oliver Smith5c95bc92020-04-03 14:03:24 +0200397=== End to End Encryption of SMS
Oliver Smithcbe90582020-04-08 15:38:29 +0200398
399When deploying the IMSI pseudonymization, the operator should make sure that
400the next pseudonymous IMSI SMS (<<sms-structure>>) cannot be read or modified
401by third parties. Otherwise, the next pseudonymous IMSI is leaked, and if the
402pseudonymous IMSI in the SMS was changed, the SIM would be locked out of the
403network.
404
405The safest way to protect the next pseudonymous IMSI SMS is a layer of end to
406end encryption from the HLR to the SIM. It was considered for this
407specification, but found to be out of scope.
408
Oliver Smith5c95bc92020-04-03 14:03:24 +0200409=== User-configurable Minimum Duration Between IMSI Changes
Oliver Smith2c8a19c2020-04-06 14:04:13 +0200410
Oliver Smitha0354de2020-04-09 15:13:38 +0200411It may be desirable to let subscribers configure their minimum duration between
412IMSI changes. This allows subscribers with a high privacy requirement to switch
413their pseudonymous IMSI more often, and it allows the pseudonymous IMSI change
414to happen less frequently if it is distracting to the subscriber.
415
416How distracting the pseudonymous IMSI change is, depends on the ME. The
417following examples were observed:
418
419// FIXME: might need an update after SYS#4481
420
421* A Samsung GT-I9100 Galaxy SII smartphone with Android 4.0.3 displays a
422 message at the bottom of the screen for about 5 seconds, but the user
423 interface remains usable.
424* A Samsung GT-E1200 feature phone displays a waiting screen for 16 to 17
425 seconds and is unusable during that time.
426
Oliver Smith0feaa892020-04-09 15:15:29 +0200427[[reference-src]]
428== Reference Implementation with Source Code
429
430A reference implementation for the SIM applet (<<sim-app>>) is available in
431source code under the Apache-2.0 license at:
432
433https://osmocom.org/projects/imsi-pseudo
434
435The HLR modifications described in <<hlr-imsi-pseudo-storage>> and
436<<process-update-location-hlr>> were implemented for reference in OsmoHLR from
437the Osmocom project, licensed under AGPL-3.0. Information about the source code
438and related branches for IMSI pseudonymization can be found at the above URL as
439well.
440
Oliver Smith2c8a19c2020-04-06 14:04:13 +0200441<<<
442include::./common/chapters/gfdl.adoc[]