blob: 7f86fe1b4fb06d03d2eae80c5647da5227fbd56c [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 Smith2c8a19c2020-04-06 14:04:13 +020027== Summary of Existing Location Updating Procedures in RAN and CN
Oliver Smith5c95bc92020-04-03 14:03:24 +020028
Oliver Smith6f9f2182020-04-06 14:29:34 +020029The subscriber's SIM is provisioned with the IMSI and cryptographic keys of a
30subscriber, after the subscriber was added with the same data to the HLR/HSS.
31In the Remote Access Network (RAN), the IMSI is sent over the air interface and
32then transmitted to the Core Network (CN), where it is validated by the
33HLR/HSS. The involved components vary by the generation of the network and
34whether the SIM is attempting a Circuit Switched (CS) or Packet Switched (PS)
35connection, but the principle is the same. This document uses 2G CS Location
36Updating for reference, as in <<figure-imsi-regular>>.
Oliver Smith7afd7012020-04-06 11:59:59 +020037
38The IMSI is transmitted in the Location Updating Request from ME. The VLR
39needs an authentication challenge specific to the secret keys on the SIM to
40authenticate the SIM, and looks the authentication challenges up by the IMSI.
41If the VLR does not have any more authentication challenges for the IMSI (as it
42happens when the VLR sees the IMSI for the first time), the VLR requests new
43authentication challenges from the HLR. Then the HLR verifies that the IMSI is
44known and, if it is unknown, sends back an error that will terminate the
45Location Updating procedure.
46
47After the VLR found the authentication challenge, it authenticates the SIM, and
48performs a Classmark Enquiry and Physical Channel Reconfiguration. Then the VLR
49has the required information to finish the Location Updating, and continues
50with an Update Location Request procedure with the HLR. Afterwards, the VLR
51assigns a new TMSI with the Location Updating Accept, which is acknowledged by
52the TMSI Reallocation Complete. In following Location Updates with the same
53MSC, the ME sends the TMSI instead of the IMSI in the Location Updating
54Request.
55
56[[figure-imsi-regular]]
57.Location Updating in 2G CS with IMSI
58["mscgen"]
59----
60msc {
61 hscale="1.75";
62 ME [label="ME"], BTS [label="BTS"], BSC [label="BSC"], MSC [label="MSC/VLR"],
63 HLR [label="HLR"];
64
65 // BTS <=> BSC: RSL
66 // BSC <=> MSC: BSSAP, RNSAP
67 // MSC <=> HLR: MAP (process Update_Location_HLR, 3GPP TS 29.002)
68
69 ME => BTS [label="Location Updating Request"];
70 BTS => BSC [label="Location Updating Request"];
71 BSC => MSC [label="Location Updating Request"];
72
73 --- [label="VLR requests new authentication challenges for this IMSI if necessary"];
74 MSC => HLR [label="Send Auth Info Request"];
75 MSC <= HLR [label="Send Auth Info Result"];
76 ---;
77
78 BSC <= MSC [label="Authentication Request"];
79 BTS <= BSC [label="Authentication Request"];
80 ME <= BTS [label="Authentication Request"];
81 ME => BTS [label="Authentication Response"];
82 BTS => BSC [label="Authentication Response"];
83 BSC => MSC [label="Authentication Response"];
84 BSC <= MSC [label="Classmark Enquiry"];
85 BTS <= BSC [label="Classmark Enquiry"];
86 ME <= BTS [label="Classmark Enquiry"];
87 ME => BTS [label="Classmark Change"];
88 BTS => BSC [label="Classmark Change"];
89 BSC => MSC [label="Classmark Update"];
90 BSC <= MSC [label="Physical Channel Reconfiguration"];
91 BTS <= BSC [label="Ciphering Mode Command"];
92 ME <= BTS [label="Ciphering Mode Command"];
93 ME => BTS [label="Ciphering Mode Complete"];
94 BTS => BSC [label="Ciphering Mode Complete"];
95 BSC => MSC [label="Ciphering Mode Complete"];
96
97 MSC => HLR [label="Update Location Request"];
98 MSC <= HLR [label="Insert Subscriber Data Request"];
99 MSC => HLR [label="Insert Subscriber Data Result"];
100 MSC <= HLR [label="Update Location Result"];
101
102 BSC <= MSC [label="Location Updating Accept"];
103 BTS <= BSC [label="Location Updating Accept"];
104 ME <= BTS [label="Location Updating Accept"];
105 ME => BTS [label="TMSI Reallocation Complete"];
106 BTS => BSC [label="TMSI Reallocation Complete"];
Oliver Smith2c8a19c2020-04-06 14:04:13 +0200107 BSC => MSC [label="TMSI Reallocation Complete"];
Oliver Smith7afd7012020-04-06 11:59:59 +0200108}
109----
110
Oliver Smith2c8a19c2020-04-06 14:04:13 +0200111== Required Changes
Oliver Smith6f9f2182020-04-06 14:29:34 +0200112
Oliver Smith2c8a19c2020-04-06 14:04:13 +0200113=== SIM Provisioning
Oliver Smith6f9f2182020-04-06 14:29:34 +0200114
115
116
117
Oliver Smith2c8a19c2020-04-06 14:04:13 +0200118=== Successful Location Update With Pseudonymous IMSI
119=== Next Pseudonymous IMSI Arrives Via SMS
Oliver Smith7afd7012020-04-06 11:59:59 +0200120
Oliver Smith2c8a19c2020-04-06 14:04:13 +0200121== Error Scenarios
122=== Next Pseudonymous IMSI SMS is Lost
123=== SMS Arrives Late
Oliver Smith7afd7012020-04-06 11:59:59 +0200124
Oliver Smith2c8a19c2020-04-06 14:04:13 +0200125== Reference Implementation with Source Code
Oliver Smith7afd7012020-04-06 11:59:59 +0200126
Oliver Smith2c8a19c2020-04-06 14:04:13 +0200127== Recommendations for Real-World Implementations
128=== ATT = 0
Oliver Smith5c95bc92020-04-03 14:03:24 +0200129=== End to End Encryption of SMS
Oliver Smith2c8a19c2020-04-06 14:04:13 +0200130=== Warning the User if the IMSI Does Not Change
Oliver Smith5c95bc92020-04-03 14:03:24 +0200131=== User-configurable Minimum Duration Between IMSI Changes
Oliver Smith2c8a19c2020-04-06 14:04:13 +0200132
133<<<
134include::./common/chapters/gfdl.adoc[]