关于复制卡问题的分析及解决方案

时间:2022-04-13 03:52:53

关于复制卡问题的分析及解决方案

摘要:目前市场上出现了可以对SIM卡进行复制的设备,该设备被不法分子利用,对运营商及正常用户造成了极其恶劣的影响。本文通过对复制卡情况的跟踪,详细阐述了复制卡出现的原理和机制,并根据分析结果对该现象提出了相应的解决方案。

关键词:复制卡;双活;位置更新

中图分类号:F626.5 文献标识码:A文章编号:1007-9599 (2011) 10-0000-01

Analysis and Solutions of the Copy Card Problems

Liu Bolun

(China Unicom Hebei Branch,Shijiazhuang050000,China)

Abstract:Currently on the market that can be copied to the SIM card device,the device by unscrupulous elements,the operator and the normal user create a very bad influence.Based on the copy of the tracking card,copy card in detail the principles and mechanisms,and results of the analysis of the phenomenon presents the corresponding solutions.

Keywords:Copy card;Double life;Location update

目前的GSM相关规范以及设备的实现主要考虑了正常情况下的通信流程,即网上只有一个用户一个IMSI的情况。基本上没有考虑网上可能存在2个或者多个相同的用户的情况,导致了多个用户在网时出现了数据不一致情况:即多个VLR存在用户数据,出现了“双活”进而导致停机后仍然能够使用业务。

在HLR及VLR的实现上,基于性能的考虑大多或部分地采用了多线程(进程)的处理机制,对每一个新来的请求(如位置更新)都会采用一个新的线程(进程)来进行处理,并且这个线程之间是相互独立的,如果多个线程处理的是同一个用户的数据,每个线程也是分别处理用户数据,基本上没有考虑数据同步及一致性的问题。这样,当网络上存在多个相同用户时,如多个复制卡,这多个卡可能会同时分别发起请求,基于目前的实现技术就可能导致数据不一致的情况发生。

目前HLR及VLR的实现主要考虑的是网络中只有一个用户的情况。基于目前的HLR及VLR实现机制,当网络上有多个相同用户时,即多SIM卡并存时,其位置更新的交互流程相对很复杂,下面仅以其中的一种比较简单的2个SIM卡复制卡的情况来讨论。

假设有2个复制卡用户在两个不同的端局(VLR2、VLR3)几乎同时发起位置更新请求,按照目前HLR的实现机制没有串行处理功能,可能出现多种复杂场景。

一、场景1:2个SIM卡同时UPDATE,HLR同时CANCEL LOCATION

两个SIM卡的LOCATION UPDATE触发的两次CANCEL LOCATION消息几乎同时到达VLR1,删除了VLR1中用户数据,HLR也删除了VLR1 ID。而VLR2和VLR3依次将自己的VLR ID写入到HLR中,后面的VLR3覆盖前面的VLR2,HLR保存该用户的位置为VLR3 ID,造成VLR2中用户脱离了HLR控制,出现“双活”现象。

在这种情况下,VLR与HLR中用户数据不一致,多个VLR中有同一个用户的用户数据,而HLR只保存其中一个VLR ID,即使对该复制卡用户进行停机或销户操作,只能作用于HLR保存的VLR中的用户数据,不能从另一个VLR中清理掉复制SIM卡的数据,成为“僵死用户”。卡被复制的越多,复制卡用户越频繁,在不同位置同时发起位置更新,出现僵死用户的几率也就越大。

二、场景2:2个SIM卡同时UPDATE,HLR先后CANCEL LOCATION

2个SIM卡几乎同时进行LOCATION UPDATE,VLR发起的更新请求导致HLR向VLR1发送CANCEL并成功执行。HLR中将VLR ID设成VLR 2后,而此时VLR3也已发起了LOCATION UPDATE。在HLR还未将用户数据插入到VLR2中,而HLR向VLR发送的CANCEL已经执行完毕,而后HLR继续与VLR3执行位置更新信令,最终VLR ID值为VLR3。而VLR2也完成了后续的用户数据插入过程。此时,VLR2和VLR3中皆有用户数据,HLR中只是保存了VLR3。

需要说明的是:基于目前的多线程的独立处理每个请求的机制,因为在每个进程处理的针对同一SIM卡的信令的同时,其他进程也可能处理针对该SIM卡的信令,因此在网络中并存多个SIM卡时会可能出现各种异常情况。目前发现的位置更新带来的问题可能仅是其中的一种情况。

根据上述分析,在上述2种场景下的复制卡情况双活现象产生的原因为HLR和VLR中的数据不一致。数据不一致的原因,大致可以分为两种情况:

(一)对HLR或者同一数据更新的过程中,没有锁定,导致该数据被其他操作读写。

(二)HLR和VLR数据更新的过程,被其他操作打断导致数据不一致。

上述两个原因,就会导致下面的结果:

1.两次位置更新的时间间隔太短,导致它们触发的CANCEL LOCATION发给错误的VLR,从而在VLR中保留了数据。

2.HLR在超短时间内同时接纳了同一SIM卡的两次位置更新请求操作,并且是分别作为两个事务处理,没有相关性检测,位置更新完成后,在VLR3的用户最后完成用户动态数据的更新,覆盖掉了在VLR1/VLR2的用户的动态信息,这样在VLR1/VLR2的那张卡脱离了HLR的控制,变成了“僵死用户”。按照协议,停机或销户后的“僵死用户”无法收短信和做被叫,但仍可以发起短信和主叫业务。

3.VLR对CANCEL LOCATION消息的处理需要完善。如果VLR对ISD消息返回成功响应也将导致复制卡双活。

因为一个正常的位置更新流程大约所需时间为2秒钟,在2秒钟时间内有其他位置更新操作就可能会打乱目前进行的位置更新,并导致数据不一致情况。例如在多个交换机下可以利用AT指令来控制终端同时打开射频,从而同时发起位置更新,即在2秒内同时发起多个位置更新的过程是可控的。所以上述两种异常情况的利用相对较容易。

综上所述,一旦有复制卡情况出现,即使运营商对用户做停机操作,仍然无法阻止用户的主动操作,如做主叫、发短信等,一旦被不法分子利用就可能产生高额欠费,对运营商造成巨额损失。目前最根本的解决方法应该为将位置更新的并行机制该为串行机制,即当HLR在未完成位置更新请求时,如收到另一个位置更新请求,应将该请求挂起或直接拒绝掉,当前一个请求完成后,再进行该请求的响应。在HLR没有完成上述改造之前,可以通过在短信中心设置黑名单的方式来限制复制卡用户发短信,并对用户进行销户处理,因为目前移动核心网基本上都有鉴权机制,当复制卡需要再次鉴权时,由于已经销户,将会导致鉴权失败,复制卡将不能再使用网络。

上一篇:公安视频监控系统设计与实现 下一篇:关于湖南省农产品物流运作模式的探讨