blob: 487b18c394b9fedb4275e2a88c1e0c4d584f795a [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 Smith7afd7012020-04-06 11:59:59 +020029The SIM is provisioned with the IMSI (3GPP TS 23.008 section 2.1.9) and
30cryptographic keys, that it uses to authenticate with the network. In the
31Remote Access Network (RAN), the IMSI is sent over the air interface and then
32transmitted to the Core Network (CN), where it is validated by the HLR/HSS.
33The involved components vary by the generation of the network and whether the
34SIM is attempting a Circuit Switched (CS) or Packet Switched (PS) connection.
35But the principle is the same and looks like <<figure-imsi-regular>> for 2G CS
36Location Updating with IMSI.
37
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 Smith7afd7012020-04-06 11:59:59 +0200111
Oliver Smith2c8a19c2020-04-06 14:04:13 +0200112== Required Changes
113=== SIM Provisioning
114=== Successful Location Update With Pseudonymous IMSI
115=== Next Pseudonymous IMSI Arrives Via SMS
Oliver Smith7afd7012020-04-06 11:59:59 +0200116
Oliver Smith2c8a19c2020-04-06 14:04:13 +0200117== Error Scenarios
118=== Next Pseudonymous IMSI SMS is Lost
119=== SMS Arrives Late
Oliver Smith7afd7012020-04-06 11:59:59 +0200120
Oliver Smith2c8a19c2020-04-06 14:04:13 +0200121== Reference Implementation with Source Code
Oliver Smith7afd7012020-04-06 11:59:59 +0200122
Oliver Smith2c8a19c2020-04-06 14:04:13 +0200123== Recommendations for Real-World Implementations
124=== ATT = 0
Oliver Smith5c95bc92020-04-03 14:03:24 +0200125=== End to End Encryption of SMS
Oliver Smith2c8a19c2020-04-06 14:04:13 +0200126=== Warning the User if the IMSI Does Not Change
Oliver Smith5c95bc92020-04-03 14:03:24 +0200127=== User-configurable Minimum Duration Between IMSI Changes
Oliver Smith2c8a19c2020-04-06 14:04:13 +0200128
129<<<
130include::./common/chapters/gfdl.adoc[]