Project

General

Profile

Download (21.2 KB) Statistics
| Branch: | Revision:
1
= Specification for IMSI Pseudonymization on the Radio Interface for 2G/3G/4G
2

    
3
== Introduction
4

    
5
=== Protecting the IMSI on the Radio Interface is Desirable
6

    
7
A long-standing issue in the 3GPP specifications for cellular mobile
8
communications starting from 2G (GSM) is, that mobile phones and
9
other mobile equipment (ME) have to send the International Mobile Subscriber
10
Identity (IMSI) unencrypted over the air.  Each IMSI is a unique identifier for
11
the subscriber. Therefore, most people can be uniquely identified by recording
12
the IMSI that their ME is sending.
13

    
14
The 3GPP specifications provide means for implementations to send the
15
IMSI less often by using the Temporary Mobile Subscriber Identity (TMSI)
16
where possible.  However, the decision on when to use IMSI or TMSI is
17
entirely on the networks side, without any control by the ME or even the
18
subscriber.
19

    
20
This leads to a variety of attacks on subscriber location privacy, including
21
the use of passive air-interface sniffing as well as false base station
22
attacks, where an attacker impersonates a base station which
23
subsequently inquires every ME about its IMSI.
24

    
25
Some related devices have been termed _IMSI catchers_ or _Stingray_ in
26
both scientific literature as well as mainstream media. IMSI catchers have
27
become small and affordable during the last decade; criminals actors
28
and in some cases even tabloid journalists without much budget have
29
reportedly used them to track anybody with a mobile phone.
30

    
31
5G addresses this problem with the Subscriber Concealed Identifier (SUCI),
32
which uses public-key cryptography to ensure that the permanent subscriber
33
identity (IMSI) is not transmitted over the air interface anymore.
34
Rather, a concealed version of it is transmitted (3GPP TS 33.501,
35
Section 6.12.2).  The 5G SUCI mechanism can not be used 1:1 for previous
36
generations of cellular networks as it relies on extending the
37
subscriber identity from the small, 15-decimal-digit IMSI to a much
38
larger SUPI (Subscriber Permanent Identifier) only available in 5G.
39

    
40
No mechanism for increasing subscriber identity and location privacy on
41
the radio interface has been specified for the previous cellular
42
technologies 2G (GSM), 3G (UMTS) and 4G (LTE).  Meanwhile, pure 5G
43
networks are and will remain rare for many years to come, as operators
44
have to support billions of deployed legacy pre-5G ME.  Operating
45
combined 5G + previous technology networks enables the so-called
46
"downgrade attacks" where the attacker blocks access to 5G e.g. by means
47
of jamming/interference, and hence triggers the ME to use a previous
48
generation which is still susceptible to the attacks.
49

    
50
This specification proposes a different approach to conceal the
51
IMSI for legacy 2G, 3G and 4G networks.
52

    
53
=== Summary of Proposed Solution
54

    
55
The solution presented in this document is to periodically change the IMSI of
56
the ME to a new pseudonymous IMSI allocated by the Home Location Register (HLR)
57
or Home Subscriber Service (HSS). The next pseudonymous IMSI is sent to the SIM/USIM
58
via Short Message Service (SMS), then a SIM applet overwrites the IMSI of the
59
SIM/USIM with the new value. The only components in the network that need to be
60
changed in order to support this mechanism are the SIM/USIM and the
61
HLR/HSS.  All other elements (like BTS, NodeB, eNodeB, BSC, RNC, MME,
62
MSC/VLR, SGSN, GGSN, S-GW, P-GW, ...) remain as-is, without any changes
63
to their specification or implementation.
64

    
65
Constraining the required changes to only two elements in the network
66
enables quick adoption potential for the proposed mechanism.
67

    
68
Furthermore, as SIM/USIM and HLR/HSS are the only two elements under control
69
of a Mobile Virtual Network Operator (MVNO), this mechanism can be
70
deployed by a MVNO without any changes to the operators of the physical
71
infrastructure (MNO).
72

    
73
<<<
74
=== Summary of Existing Location Updating Procedures in RAN and CN
75

    
76
Every subscriber's SIM/USIM is provisioned with the IMSI and secret
77
cryptographic keys (Ki or K+OP[c]).  The same IMSI and key data is also provisioned
78
into the HLR/HSS, the central subscriber database of a cellular network.
79

    
80
In a number of different situations, the IMSI is sent over the air
81
interface and back-haul towards the Core Network (CN), where it is
82
validated by the HLR/HSS. The involved components vary by the generation
83
of the network and whether the SIM/USIM is attempting a Circuit Switched (CS)
84
or Packet Switched (PS) connection, but the principle is the same. This
85
document uses 2G CS Location Updating for reference, as in
86
<<figure-imsi-regular>>.
87

    
88
The IMSI is transmitted in the Location Updating Request from ME. The VLR
89
needs an authentication challenge specific to the secret keys on the SIM/USIM to
90
authenticate the SIM/USIM, and looks the authentication challenges up by the IMSI.
91
If the VLR does not have any more authentication challenges for the IMSI (as it
92
happens when the VLR sees the IMSI for the first time), the VLR requests new
93
authentication challenges from the HLR/HSS. Then the HLR/HSS verifies that the IMSI is
94
known and, if it is unknown, sends back an error that will terminate the
95
Location Updating procedure.
96

    
97
After the VLR found the authentication challenge, it authenticates the SIM/USIM, and
98
performs a Classmark Enquiry and Physical Channel Reconfiguration. Then the VLR
99
has the required information to finish the Location Updating, and continues
100
with Process Update_Location_HLR (3GPP TS 29.002). Afterwards, the VLR assigns
101
a new TMSI with the Location Updating Accept, which is acknowledged by the TMSI
102
Reallocation Complete. In following Location Updates with the same MSC, the ME
103
sends the TMSI instead of the IMSI in the Location Updating Request.
104

    
105
However, the allocation of the TMSI is optional (the network may choose
106
to not perform it), and particularly at mobility changes across the
107
MSC/VLR boundary, or even across the PLMN boundary, the TMSI allocated
108
by the previouis network element may not be known, and an IMSI based
109
Location Updating procedure is used.
110

    
111
Furthermore, at any given point in time, a legitimate network or a rogue
112
base station can inquire the IMSI from the ME using the "MM IDENTITY
113
REQUEST (IMSI)" command.
114

    
115
[[figure-imsi-regular]]
116
.Location Updating in 2G CS with IMSI
117
["mscgen"]
118
----
119
msc {
120
  hscale="1.75";
121
  ME [label="ME"], BTS [label="BTS"], BSC [label="BSC"], MSC [label="MSC/VLR"],
122
  HLR [label="HLR"];
123

    
124
  // BTS <=> BSC: RSL
125
  // BSC <=> MSC: BSSAP, RNSAP
126
  // MSC <=> HLR: MAP (process Update_Location_HLR, 3GPP TS 29.002)
127

    
128
  ME   => BTS [label="Location Updating Request"];
129
  BTS  => BSC [label="Location Updating Request"];
130
  BSC  => MSC [label="Location Updating Request"];
131

    
132
  --- [label="If necessary: VLR requests new authentication challenges for this IMSI"];
133
  MSC  => HLR [label="Send Auth Info Request"];
134
  MSC <=  HLR [label="Send Auth Info Result"];
135
  ---;
136

    
137
  BSC <=  MSC [label="Authentication Request"];
138
  BTS <=  BSC [label="Authentication Request"];
139
  ME  <=  BTS [label="Authentication Request"];
140
  ME   => BTS [label="Authentication Response"];
141
  BTS  => BSC [label="Authentication Response"];
142
  BSC  => MSC [label="Authentication Response"];
143
  BSC <=  MSC [label="Classmark Enquiry"];
144
  BTS <=  BSC [label="Classmark Enquiry"];
145
  ME  <=  BTS [label="Classmark Enquiry"];
146
  ME   => BTS [label="Classmark Change"];
147
  BTS  => BSC [label="Classmark Change"];
148
  BSC  => MSC [label="Classmark Update"];
149
  BSC <=  MSC [label="Physical Channel Reconfiguration"];
150
  BTS <=  BSC [label="Ciphering Mode Command"];
151
  ME  <=  BTS [label="Ciphering Mode Command"];
152
  ME   => BTS [label="Ciphering Mode Complete"];
153
  BTS  => BSC [label="Ciphering Mode Complete"];
154
  BSC  => MSC [label="Ciphering Mode Complete"];
155

    
156
  --- [label="Process Update_Location_HLR (3GPP TS 29.002)"];
157
  MSC  => HLR [label="Update Location Request"];
158
  MSC <=  HLR [label="Insert Subscriber Data Request"];
159
  MSC  => HLR [label="Insert Subscriber Data Result"];
160
  MSC <=  HLR [label="Update Location Result"];
161
  ---;
162

    
163
  BSC <=  MSC [label="Location Updating Accept"];
164
  BTS <=  BSC [label="Location Updating Accept"];
165
  ME  <=  BTS [label="Location Updating Accept"];
166
  ME   => BTS [label="TMSI Reallocation Complete"];
167
  BTS  => BSC [label="TMSI Reallocation Complete"];
168
  BSC  => MSC [label="TMSI Reallocation Complete"];
169
}
170
----
171

    
172
<<<
173
== Required Changes
174

    
175
This section covers the changes / enhancements required
176
compared to the existing 3GPP specifications.
177

    
178
[[hlr-imsi-pseudo-storage]]
179
=== Pseudonymous IMSI Storage in the HLR/HSS
180

    
181
The HLR/HSS must store up to two pseudonymous IMSIs (`imsi_pseudo`) and
182
their related counters (`imsi_pseudo_i`) per subscriber. Each subscriber
183
initially has one pseudonymous IMSI allocated. A subscriber has two
184
valid pseudonymous IMSIs only during the transition phase from the old
185
pseudonymous IMSI to the new one.
186

    
187
Subsequently, the amount of available IMSIs must be higher than the
188
amount of subscribers registered with the HLR/HSS. If the amount of
189
available IMSIs is too small, the HLR/HSS could delay assigning new
190
pseudonymous IMSIs until new IMSIs are available again.
191

    
192
.Examples for additional subscriber data in HLR
193
[options="header"]
194
|===
195
| Subscriber ID | imsi_pseudo | imsi_pseudo_i
196
// example IMSIs taken from Wikipedia
197
| 123
198
| 310150123456789
199
| 1
200

    
201
| 234
202
| 502130123456789
203
| 1
204

    
205
| 234
206
| 460001357924680
207
| 2
208
|===
209

    
210
==== imsi_pseudo
211

    
212
The value for `imsi_pseudo` is a random choice from the pool of available
213
IMSIs that the HLR/HSS controls. The pseudonymous IMSI must not be used
214
by any subscriber as pseudonymous IMSI yet, but may be the real IMSI of
215
a subscriber.
216

    
217
[[hlr-imsi-pseudo-i]]
218
==== imsi_pseudo_i
219

    
220
The counter `imsi_pseudo_i` indicates how often a subscribers pseudonymous IMSI
221
was changed. The value is 1 for the first allocated pseudonymous IMSI of a
222
subscriber. When allocating a new pseudonymous IMSI for the same subscriber,
223
the new `imsi_pseudo_i` value is increased by 1. The counter is used by the SIM/USIM
224
applet to detect and ignore outdated requests related to changing the
225
pseudonymous IMSI.
226

    
227
<<<
228
=== SIM/USIM Provisioning
229

    
230
IMSI pseudonymization as specified by this document works with
231
traditional SIM (used in 2G), as well as with USIM (used from 3G
232
onwards).
233

    
234
The initial IMSI provisioned in the SIM/USIM is provisioned as the initial
235
pseudonymous IMSI in the HLR/HSS.
236

    
237
[[sim-app]]
238
==== SIM applet
239

    
240
SIM/USIM have long supported the installation and operation of
241
additional applets on the card itself.  The programming language and
242
runtime environment for such applets is an implementation detail.
243
However, the industry has converged around JavaCards with related
244
additional APIs specific to SIM, UICC and USIM.  Depending on the card
245
profile / provisioning, it is possible for such applets to access the
246
card file system and modify files on the card, such as the file storing
247
the IMSI.
248

    
249
A SIM/USIM compatible with this specification is provisioned with a SIM
250
applet, which is able to change the IMSI once the next pseudonymous IMSI
251
arrives from the HLR/HSS. A reference implementation is provided in
252
<<reference-src>>.
253

    
254
===== Counter Storage
255

    
256
The following counter variables are stored in the SIM applet.
257

    
258
[options="header",cols="20%,12%,68%"]
259
|===
260
| Name | Initial value | Description
261

    
262
| imsi_pseudo_i
263
| 1
264
| See <<hlr-imsi-pseudo-i>>.
265

    
266
| imsi_pseudo_lu
267
| 0
268
| Amount of Location Updating procedures done with the same pseudonymous IMSI.
269

    
270
| imsi_pseudo_lu_max
271
| (decided by operator)
272
| Maximum amount of Location Updating procedures done with the same
273
  pseudonymous IMSI, before the SIM applet shows a warning to the subscriber.
274
|===
275

    
276
===== Switch to Next Pseudonymous IMSI
277

    
278
The SIM applet registers to a suitable SMS trigger (3GPP TS 43.019, Section
279
6.2). When an SMS from the HLR/HSS in the structure of <<sms-structure>> arrives,
280
the applet must verify that the SMS is not outdated by comparing `imsi_pseudo_i`
281
from the SMS with the last `imsi_pseudo_i` that was used when changing the IMSI
282
(initially 1 as in <<hlr-imsi-pseudo-i>>). The new value must be higher,
283
otherwise the SMS should not be processed further.
284

    
285
The SIM applet registers a timer with `min_sleep_time` from the SMS. When the
286
timer triggers, EF~IMSI~ of the SIM/USIM is overwritten with the new pseudonymous
287
IMSI. The TMSI and related data (EF~LOCI~, EF~PSLOCI~) and ciphering keys
288
(EF~Kc~, EF~KcGPRS~, EF~Keys~, EF~KeysPS~) are invalidated (see 3GPP TS
289
31.102). The current `imsi_pseudo_i` from the SMS is stored in the
290
SIM applet to compare it with the next SMS. `imsi_pseudo_lu` is reset to 0. Afterwards,
291
the EF~IMSI~ changing procedure in 3GPP TS 11.14, Section 6.4.7.1 is executed
292
to apply the new IMSI.
293

    
294
// FIXME: do we need to enforce the LU now, with an arbitrary CM Service
295
// Request, or would this only be necessary for Osmocom? (OS#4404)
296

    
297
===== Warning the Subscriber If the Pseudonymous IMSI Does Not Change
298

    
299
An attacker could potentially block the next pseudonymous IMSI SMS on purpose.
300
Because the SIM applet cannot decide the next pseudonymous IMSI, it would have
301
the same pseudonymous IMSI for a long time. Then it could become feasible for
302
an attacker to track the subscriber by their pseudonymous IMSI. Therefore the
303
SIM applet should warn the subscriber if the pseudonymous IMSI does not change.
304

    
305
The SIM applet registers to EVENT_EVENT_DOWNLOAD_LOCATION_STATUS (3GPP TS
306
03.19, Section 6.2) and increases `imsi_pseudo_lu` by 1 when the event is
307
triggered. If `imsi_pseudo_lu` reaches `imsi_pseudo_lu_max`, the SIM applet
308
displays a warning to the subscriber.
309

    
310
<<<
311
[[process-update-location-hlr]]
312
=== Process Update_Location_HLR
313

    
314
All IMSI Pseudonymization related changes to Process Update_Location_HLR
315
(3GPP TS 29.002) are optional. Deviations from the existing specification that
316
are outlined in this section are expected to be enabled or disabled entirely
317
where IMSI pseudonymization is implemented.
318

    
319
[[figure-imsi-pseudo]]
320
.Process Update_Location_HLR with IMSI pseudonymization changes
321
["mscgen"]
322
----
323
msc {
324
  hscale="1.75";
325
  MSC [label="MSC/VLR"], SMSC [label="SMS-SC"], HLR [label="HLR"];
326

    
327
  MSC   => HLR  [label="Update Location Request"];
328

    
329
  --- [label="If new pseudonymous IMSI was used: deallocate and cancel old pseudonymous IMSI"];
330
  HLR  box HLR  [label="Deallocate old pseudonymous IMSI"];
331
  MSC  <=  HLR  [label="Cancel Location Request"];
332
  MSC   => HLR  [label="Cancel Location Result"];
333
  ---;
334

    
335
  MSC  <=  HLR  [label="Insert Subscriber Data Request"];
336
  MSC   => HLR  [label="Insert Subscriber Data Result"];
337
  HLR  box HLR  [label="Start Next_Pseudo_IMSI_Timer"];
338
  MSC  <=  HLR  [label="Update Location Result"];
339
  MSC  box MSC  [label="Finish Location Updating with ME"],
340

    
341
  HLR  box HLR  [label="Wait for Next_Pseudo_IMSI_Timer expiry"];
342
  |||;
343
  ...;
344
  |||;
345
  HLR  box HLR  [label="Next_Pseudo_IMSI_Timer expired"];
346

    
347
  HLR  box HLR  [label="\nAllocate new pseudonymous IMSI\nif subscriber has only one allocated\n"];
348
  SMSC <=  HLR  [label="Next Pseudonymous IMSI SMS"];
349
  SMSC box SMSC [label="Deliver SMS to ME"];
350
}
351
----
352

    
353
==== Update Location Request
354

    
355
When Update Location Request arrives, the HLR/HSS does not look up the subscriber
356
by the IMSI, but by the pseudonymous IMSI instead. Unless the subscriber has
357
two pseudonymous IMSI allocated and used the new pseudonymous IMSI in the
358
Update Location Request, this is followed by the existing logic to continue
359
with Insert Subscriber Data Request.
360

    
361
===== Update Location Request With New Pseudonymous IMSI
362

    
363
If the subscriber has two pseudonymous IMSIs allocated, and the newer entry was
364
used (higher `imsi_pseudo_i`, see <<hlr-imsi-pseudo-i>>), this section applies.
365
The older pseudonymous IMSI is deallocated in the HLR/HSS. This is done as early
366
as possible, so the timeframe where two pseudonymous IMSI are allocated for one
367
subscriber is short.
368

    
369
A Cancel Location Request with the old pseudonymous IMSI is sent to the VLR, so
370
the conflicting subscriber entry with the old pseudonymous IMSI is deleted from
371
the VLR. Receiving a Cancel Location Result is followed by the existing logic
372
to continue with Insert Subscriber Data Request.
373

    
374
===== Update Location Request With Old Pseudonymous IMSI
375

    
376
If the subscriber has two pseudonymous IMSIs allocated, and the older entry was
377
used (lower `imsi_pseudo_i`, see <<hlr-imsi-pseudo-i>>), the newer entry is _not_
378
deallocated. This could lock out the subscriber from the network if the SMS
379
with the new pseudonymous IMSI arrives with a delay.
380

    
381
==== Insert Subscriber Data Result
382

    
383
When Insert Subscriber Data Result arrives, a subscriber specific
384
Next_Pseudo_IMSI_Timer starts.
385

    
386
==== Next_Pseudo_IMSI_Timer Expires
387

    
388
If the subscriber has only one pseudonymous IMSI allocated, and the amount of
389
available IMSIs in the HLR/HSS is high enough, a second pseudonymous IMSI and
390
related `imsi_pseudo_i` gets allocated for the subscriber (as described in
391
<<hlr-imsi-pseudo-storage>>).
392

    
393
If the subscriber still has only one pseudonymous IMSI, because not enough
394
IMSIs were available in the HLR/HSS, the process is aborted here and no SMS with
395
a next pseudonymous IMSI is sent to the subscriber. The subscriber will get a
396
new pseudonymous IMSI during the next Location Updating Procedure, if
397
the HLR/HSS has enough IMSIs available at that point.
398

    
399
An SMS is sent to the SMS - Service Centre (SMS-SC) with the newer pseudonymous
400
IMSI (higher `imsi_pseudo_i`, see <<hlr-imsi-pseudo-i>>) and related
401
`imsi_pseudo_i` value.
402

    
403
[[sms-structure]]
404
==== Next Pseudonymous IMSI SMS Structure
405

    
406
.Next pseudonymous IMSI SMS structure
407
[packetdiag]
408
----
409
{
410
	colwidth = 32
411

    
412
	0-31:	 IMSI_PSEUDO_I
413
	32-63:   MIN_SLEEP_TIME
414
	64-119:  IMSI_PSEUDO
415
	120-127: PAD
416
}
417
----
418

    
419
// FIXME
420
IMPORTANT: This is a draft. The structure is likely to change after the
421
reference implementation phase.
422

    
423
IMSI_PSEUDO_I: 32 bits::
424
See <<hlr-imsi-pseudo-i>>.
425

    
426
MIN_SLEEP_TIME: 32 bits::
427
Amount of seconds, which the SIM applet should wait before changing to the new
428
pseudonymous IMSI. Since it is unclear when the SMS will arrive (ME might be
429
turned off), this is a minimum amount.
430

    
431
IMSI_PSEUDO: 60 bits::
432
Telephony Binary Coded Decimal (TBCD, 3GPP TS 29.002) version of the next
433
pseudonymous IMSI.
434

    
435
PAD: 8 bits::
436
Padding at the end, should be filled with 1111 as in the TBCD specification.
437

    
438
<<<
439
== Error Scenarios
440

    
441
=== Next Pseudonymous IMSI SMS is Lost
442

    
443
If the SMS with the next pseudonymous IMSI does not arrive, the SIM/USIM will start
444
the next Location Updating Procedure with the old pseudonymous IMSI. Because
445
the HLR/HSS has both the old and the new pseudonymous IMSI allocated at this point,
446
the subscriber is not locked out of the network.
447

    
448
=== Next Pseudonymous IMSI SMS Arrives Out of Order
449

    
450
The next pseudonymous IMSI SMS may arrive out of order. Either, because the
451
network is not able to deliver them in order, or even because an attacker would
452
perform a replay attack.
453

    
454
If the SMS arrives out of order, the `imsi_pseudo_i` counter will not be higher
455
than the value the SIM applet (<<sim-app>>) has stored. Therefore, the applet
456
will discard the message and the subscriber is not locked out of the network.
457

    
458
// === SMS Arrives Before Timer Expires
459
// FIXME: OS#4486
460

    
461
<<<
462
== Recommendations for Real-World Implementations
463

    
464
=== BCCH SI3: ATT = 0
465

    
466
When changing from one pseudonymous IMSI to the next, it is important that the
467
ME does not detach from the network. Otherwise it would be trivial for an
468
attacker to correlate the detach with the attach of the same ME with the next
469
pseudonymous IMSI.
470

    
471
This is controlled with the ATT flag in the SYSTEM INFORMATION TYPE 3 (SI3)
472
message on the Broadcast Control Channel (BCCH), see 3GPP TS 44.018 Section
473
10.5.2.11. It must be set to 0.
474

    
475
// FIXME: verify how it set with operators in germany (OS#4404)
476

    
477
=== End to End Encryption of SMS
478

    
479
When deploying the IMSI pseudonymization, the operator should make sure that
480
the next pseudonymous IMSI SMS (<<sms-structure>>) cannot be read or modified
481
by third parties. Otherwise, the next pseudonymous IMSI is leaked, and if the
482
pseudonymous IMSI in the SMS was changed, the SIM/USIM would be locked out of the
483
network.
484

    
485
The safest way to protect the next pseudonymous IMSI SMS is a layer of end to
486
end encryption from the HLR/HSS to the SIM/USIM.  The existing means for OTA SMS
487
security (3GPP TS 23.048) provide mechanisms for integrity protection,
488
confidentiality as well as replay protection and must be implemented when using
489
IMSI pseudonymization.
490

    
491
=== User-configurable Minimum Duration Between IMSI Changes
492

    
493
It may be desirable to let subscribers configure their minimum duration between
494
IMSI changes. This allows subscribers with a high privacy requirement to switch
495
their pseudonymous IMSI more often, and it allows the pseudonymous IMSI change
496
to happen less frequently if it is distracting to the subscriber.
497

    
498
How distracting the pseudonymous IMSI change is, depends on the ME. The
499
following examples were observed:
500

    
501
// FIXME: might need an update after SYS#4481
502

    
503
* A Samsung GT-I9100 Galaxy SII smartphone with Android 4.0.3 displays a
504
  message at the bottom of the screen for about 5 seconds, but the user
505
  interface remains usable.
506
* A Samsung GT-E1200 feature phone displays a waiting screen for 16 to 17
507
  seconds and is unusable during that time.
508

    
509
<<<
510
[[reference-src]]
511
== Reference Implementation with Source Code
512

    
513
A reference implementation for the SIM applet (<<sim-app>>) is available in
514
source code under the Apache-2.0 license at:
515

    
516
https://osmocom.org/projects/imsi-pseudo
517

    
518
The HLR/HSS modifications described in <<hlr-imsi-pseudo-storage>> and
519
<<process-update-location-hlr>> were implemented for reference in OsmoHLR from
520
the Osmocom project, licensed under AGPL-3.0. Information about the source code
521
and related branches for IMSI pseudonymization can be found at the above URL as
522
well.
(3-3/4)
Add picture from clipboard (Maximum size: 48.8 MB)