Revision ef43ac3a
Added by osmith about 4 years ago
docs/imsi-pseudo-spec.adoc | ||
---|---|---|
188 | 188 |
|
189 | 189 |
// FIXME: do we need to enforce the LU now, with an arbitrary CM Service |
190 | 190 |
// Request, or would this only be necessary for Osmocom? (OS#4404) |
191 |
|
|
192 | 191 |
=== Process Update_Location_HLR |
193 | 192 |
|
194 | 193 |
All IMSI Pseudonymization related changes to Process Update_Location_HLR |
... | ... | |
196 | 195 |
that are outlined in this section are expected to be enabled or disabled |
197 | 196 |
entirely where IMSI pseudonymization is implemented. |
198 | 197 |
|
199 |
* HLR looks up subscriber by pseudonymous imsi in Update Location Request |
|
200 |
* if two pseudo imsi found, and connected with new one: dealloc old entry |
|
201 |
* if two pseudo imsi found and connected with old one: do not dealloc! |
|
202 |
|
|
203 |
* after update location result: set new timer for sending next IMSI to random delay |
|
204 |
|
|
205 |
==== Send Next Pseudonymous IMSI |
|
206 |
|
|
207 |
* if subscriber has two pseudo IMSI, send the new one |
|
208 |
* if subscriber has only one pseudo IMSI: |
|
209 |
* abort if not enough IMSIs available |
|
210 |
* generate new pseudo IMSI as described earlier |
|
211 |
* set imsi_pseudo_i like last one + 1 |
|
212 |
* send SMS to subscriber's SIM |
|
213 |
|
|
214 |
[[sms-format]] |
|
215 |
==== SMS Format |
|
216 |
|
|
217 |
* min_sleep_time |
|
218 |
* imsi_pseudo |
|
219 |
* imsi_pseudo_i |
|
220 |
|
|
221 |
[[figure-]] |
|
198 |
[[figure-imsi-pseudo]] |
|
222 | 199 |
.Process Update_Location_HLR with IMSI pseudonymization changes |
223 | 200 |
["mscgen"] |
224 | 201 |
---- |
... | ... | |
252 | 229 |
} |
253 | 230 |
---- |
254 | 231 |
|
232 |
==== Update Location Request |
|
233 |
When Update Location Request arrives, the HLR does not look up the subscriber |
|
234 |
by the IMSI, but by the pseudonymous IMSI instead. Unless the subscriber has |
|
235 |
two pseudonymous IMSI allocated and used the old pseudonymous IMSI in the |
|
236 |
Update Location Request, this is followed by the existing logic to continue with |
|
237 |
Insert Subscriber Data Request. |
|
238 |
|
|
239 |
===== Update Location Request With New Pseudonymous IMSI |
|
240 |
|
|
241 |
If the subscriber has two pseudonymous IMSIs allocated, and the newer entry was |
|
242 |
used (higher imsi_pseudo_i, see <<hlr-imsi-pseudo-i>>), this section applies. |
|
243 |
The older pseudonymous IMSI is deallocated in the HLR. This is done as early |
|
244 |
as possible, so the timeframe where two pseudonymous IMSI are allocated for one |
|
245 |
subscriber is short. |
|
246 |
|
|
247 |
A Cancel Location Request with the old pseudonymous IMSI is sent to the VLR, so |
|
248 |
the conflicting subscriber entry with the old pseudonymous IMSI is deleted from |
|
249 |
the VLR. Receiving a Cancel Location Result is followed by the existing logic |
|
250 |
to continue with Insert Subscriber Data Request. |
|
251 |
|
|
252 |
===== Update Location Request With Old Pseudonymous IMSI |
|
253 |
|
|
254 |
If the subscriber has two pseudonymous IMSIs allocated, and the older entry was |
|
255 |
used (lower imsi_pseudo_i, see <<hlr-imsi-pseudo-i>>), the newer entry is _not_ |
|
256 |
deallocated. This could lock out the subscriber from the network if the SMS |
|
257 |
with the new pseudonymous IMSI arrives with a delay. |
|
258 |
|
|
259 |
==== Insert Subscriber Data Result |
|
260 |
|
|
261 |
ISD works like before, then set Next_Pseudo_IMSI_Timer |
|
262 |
|
|
263 |
==== Next_Pseudo_IMSI_Timer Expires |
|
264 |
|
|
265 |
* if subscriber has only one pseudo IMSI: |
|
266 |
* abort if not enough IMSIs available |
|
267 |
* generate new pseudo IMSI as described earlier |
|
268 |
* set imsi_pseudo_i like last one + 1 |
|
269 |
* send SMS to subscriber's SIM with newer pseudo IMSI |
|
270 |
|
|
271 |
[[sms-format]] |
|
272 |
==== SMS Format |
|
273 |
|
|
274 |
* min_sleep_time |
|
275 |
* imsi_pseudo |
|
276 |
* imsi_pseudo_i |
|
277 |
|
|
255 | 278 |
== Error Scenarios |
256 | 279 |
=== Next Pseudonymous IMSI SMS is Lost |
257 | 280 |
=== SMS Arrives Late |
Also available in: Unified diff
spec: write out until Insert Subscriber Data Result