一种基于假名的移动用户标识码imsi保护方法

文档序号:7760529阅读:223来源:国知局
专利名称:一种基于假名的移动用户标识码imsi保护方法
技术领域
本发明属于移动通信安全领域,涉及一种基于假名的IMSI信息保护方法;本发明 不改变现有移动通信的通信流程和数据格式,并对未使用本发明的现有用户具有完美的兼 容性。
背景技术
a)现有技术的说明国际移动用户标识码(IMSI,International Mobile Subscriber Identity),或 简称用户标识码,是每一个移动用户在全球范围内的唯一身份标识。该标识使得移动用户 无论漫游到世界的任何一个地方,网络端都能找到该用户注册的网络归属域,只要用户申 请了漫游业务并有充足的资费,就能使用移动通信和数据业务。在第二代GSM移动通信系 统中,用户标识码IMSI被嵌入到SIM卡(Subscriber Identity Module,即用户身份模块) 中,而在第三代移动通信系统中,这一标识被置入到USIM卡中。无论哪种情况,IMSI的数 据格式和所代表的意义基本保持不变。为了介绍IMSI的数据格式,首先介绍一下移动用户如何使用IMSI入网。逻辑 上,我们可以把移动网络部件分为三部分,移动终端(mobile equipment,ME),访问域 (visitor locationregister, VLR),禾口归属域(home locaion register,HLR)。尽管在3G移 动通信中对这些单元使用了不同的名称,如访问域VLR在3G系统中以移动管理实体(MME) 代替,而归属域HLR在3G系统中以用户归属服务器(HSS)取代,但从用户认证的过程看,它 们的功能类似,因此在不引起混淆的情况下,本发明使用上述名称对技术原理进行描述,但 不构成对本发明适用领域的限制。当一个新用户申请入网时,他跟一个离他最近的VLR通 过无线接口进行通信,将自己的IMSI信息传给该VLR申请入网。该VLR将IMSI信息传给 用户注册的归属域HLR对用户进行认证,HLR通过IMSI信息查到用户对应的密钥,产生多 个认证向量,即三元组(RAND,XRES, Kc)(在第三代移动通信中使用五元组,但不影响对本 发明的使用,也不构成对本发明的限制),并传给VLR,其中RAND是网络用于认证用户的挑 战信息,XRES是网络用于检查用户对挑战信息所给应答是否正确的比对信息,Kc是网络与 用户之间的通信数据加密密钥。VLR选取一个三元组,将其中的挑战信息RAND传给用户,用 户利用SIM卡内的密钥信息产生针对接收到的挑战信息RAND的应答RES并传给VLR,VLR 对比从用户那里收到的RES和从HLR传来的对应三元组内的XRES是否一致。若一致,则对 用户的认证通过,否则认证失败。在实际网络中,一个VLR可能要服务于多个HLR,因此在认 证过程中,VLR需要根据IMSI信息确定IMSI信息往哪个HLR传送。因此任何一个IMSI要 有固定格式,用于寻找其所归属的HLR,然后由该HLR负责对用户提供用于认证的数据(即 认证向量,数据格式为三元组或五元组)。目前移动通信中对IMSI的使用原则是,当用户第一次插卡开机时,需要向网络端 (具体为VLR)提供用户身份信息IMSI。VLR在HLR的协助下对用户成功认证后,会给用户分 配一个随机产生的临时身份识别代码(TMSI,Temporary Mobile Subscriber Identity),用户在之后需要进行认证时,首选使用该TMSI代码,仅当使用TMSI代码认证失败后,才再 次使用IMSI进行认证。给用户分配的临时身份代码TMSI会经常更新,甚至每次成功认证 后都会用一个新的TMSI代替之前的TMSI。除了用户第一次插卡开机时没有TMSI外,之后用户便有一个TMSI,因此每次需要 联网认证时都首先使用这个TMSI进行认证。但有些情况下使用该TMSI的认证是失败的, 包括下列一些情况(1)网路端(VLR)在更新TMSI时,用户端没有接收到更新信息(如突 然供电不足,突然失去信号等),造成用户端与网络端的TMSI不一致;(2)用户在关机状态 下进入另一个VLR(如航空旅行),新的VLR找不到用户的TMSI记录;(3)用户长时间未开 机,导致网络端(VLR)记录的TMSI信息因超时而被删除。在使用TMSI认证失败的情况下, 用户将不得不发送IMSI进行认证。由于IMSI唯一标识用户,而且在空口通信中常以明文方式传送,因此如果被非法 截获,可以检测用户的大致位置信息,而这一信息会涉及到用户的隐私性。尽管在标准移动 通信协议中,IMSI的使用已经做到尽可能的少,但在敌手主动攻击下却很容易获得。敌手主 动攻击的一种模式是使用一个非法基站,当用户靠近该假基站时,用户信号被假基站接收, 该假基站冒充网络VLR告知用户使用TMSI的认证失败,此时用户端不得不发送IMSI进行 认证,于是该IMSI便可以被敌手获得。特别在GSM系统中,由于用户端对网络端缺少认证 功能,因此假基站获得用户IMSI信息是很容易的。b)相关解决方案的不足考虑到GSM系统的用户还是一个相当大的群体,而且在今后相当长的时间段内, 使用GSM系统的人群还会很大,而且对隐私信息保护的需求日益提高,因此对IMSI保护的 呼吁声音也一直未间断。目前对IMSI的保护有两类重要方法,一类是使用公钥密码技术来 实现,另一类是使用假名技术。使用公钥密码技术的实现方法具有一定的学术价值,但在实 现上除增加很多计算和通信代价外,原来的通信协议也需要完全修改,而且很难具有对现 有网络用户的兼容性,如文献[曾勇,“一种基于非对称密钥密码体制的IMSI保护方案”, 《通信技术》,2008,Vol 41(9)]所描述的方法就具有这类性质;而另一类使用假名的方法在 实现中有多种不同手段,如文献[朱红儒,齐旻鹏,魏凌波,“国际移动用户标识符IMSI机密 性保护的方法、设备及系统”,国家发明专利,申请号CN200910076453]就是一种,但其假名 的产生是在网络访问域(注意文献[朱红儒,齐旻鹏,魏凌波,“国际移动用户标识符IMSI 机密性保护的方法、设备及系统”,国家发明专利,申请号CN200910076453.]中使用了 3G系 统的术语),这就需要增加访问域的计算代价和修改标准3GPP的通信协议,而且对现有用 户的兼容性就比较差。其他一些解决方案的实用性和对IMSI的保护程度都不很明朗。总之,目前的一些解决方案都要求对系统架构进行较大程度地升级,特别是对VLR 这种大量分布的系统进行升级是很耗资的事,而且对现有用户的兼容性不够强,在VLR端 需要额外计算来判断区分新老用户,以确定使用新老协议。由于这些更新的大代价,使得目 前的一些解决方案很难在实际系统中使用。

发明内容
本发明的目的在于提供一种基于假名的IMSI信息保护方法。本方法可以保护作 为移动用户身份标识的IMSI的隐私性。本发明不改变现有移动通信的通信流程和数据格式,并对未使用本发明的现有用户具有完美的兼容性。a)本发明的基本思想和目标1.使用假名技术,从根本上防止假冒基站欺骗用户的IMSI。假基站即使能非法获 得用户的假名,但由于假名不断在改变,假基站很难将一个假名同某一特定用户联系起来, 从而达到保护用户隐私性的目的;2.避免VLR对现有的协议流程和计算模式进行修改,即保持现有VLR的工作模式 不变;3.更新HLR端的部分计算单元,更新用户端的计算单元;4.保持通信协议和数据格式不变,从而对现有用户能无缝兼容。b)本发明的技术原理国际移动用户标识码IMSI数据是由15位的十进位数字组成的,其中最左边的3 位数字称为国家码(MCC,Mobile Country Code),用于唯一识别移动用户所属的国家,例如 中国为460,它由国际电信联盟(ITU)统一分配和管理;接下来的2位数字是移动网络代码 (MNC, MobileNetwork Code),用于唯一识别用户所属移动通信网络,当一个国家中有多个 运营商时,MNC号码指示用户属于哪个运营商;接下来的10位数字表示移动用户的身份代 码(MSIN, MobileSubscriber Identification Number)。MSIN 完全由各运营商内部管理, 在中国,其结构为(^+M0M1M2MJABCD,其中MtlM1M2M3是4位十进制数字,标识用户IMSI所归属 的HLR,AB⑶随机分配,用于标识用户。但是,运营商某些归属域HLR所服务的用户数可能 多于10000个,因此需要更多位数来标识用户,也可以看作是几个小的传统HLR的合并,在 这种情况下,标识用户IMSI归属域HLR的字段可以缩短,而将节省下来的字段用于标识用 户。比如将10个传统HLR合并后,只需要IMSI中的3位数MtlM1M2就可以标识该归属域的 身份,这样用于标识用户的字段可以增加至5位,即M3AB⑶;如果将100个传统意义的HLR 合并为一个大的HLR,则只需要IMSI中的2位数MtlM1就可以标识该归属域的身份,这样用 于标识用户的字段可以增加至6位,即M2M3AB⑶;如果将1000个传统意义的HLR合并为一 个大的HLR,则只需要IMSI中的1位数M0就可以标识该归属域的身份,这样用于标识用户 的字段可以增加至7位,即M1M2M3ABCDd不管是哪种情况,我们把在一个HLR内用于标识用 户的IMSI中的几位数称为用户标识字段,如上述AB⑶,或M2M3AB⑶等。本发明的技术方案为一种基于假名的移动用户标识码IMSI保护方法,其步骤包括A)在用户初次入网阶段Al)用户发送用户标识码IMSI给网络归属域HLR进行认证,所述HLR在完成认证 后为所述用户生成假名IMSA0,并将其记录到所述HLR的数据库中;A2)所述HLR根据用户假名IMSAO产生认证向量并通过所述VLR对所述用户进行 认证;A3)所述HLR将所述用户假名IMSAO中的用户假名字段通过网络访问域VLR发送 给所述用户;A4)所述用户接收到所述用户假名字段后,重构并记录该用户假名IMSAO ;B)在用户再次入网阶段Bi)用户将自己所存储的最新用户假名IMSAO信息发送给所述网络归属域HLR
6进行认证,所述网络归属域检查数据库中是否存在该用户假名IMSA0,如果不存在,则所述 HLR报告用户认证失败;否则,所述HLR产生一个新的用户假名,并更新数据库中该用户的 原假名;B2)所述HLR根据新产生的用户假名IMSAO产生认证向量并通过网络访问域VLR 对所述用户进行认证;B3)所述HLR将新生成的用户假名IMSAO中的用户假名字段通过所述VLR发送给 所述用户;B4)所述用户在接收到所述用户假名字段后,重构该用户假名IMSAO后,替换原存 储的用户假名。进一步的,所述HLR利用用户假名字段替换该用户标识码IMSI中的用户标识字 段,生成该用户的假名IMSAO ;所述用户假名字段是不合法的用户标识字段。进一步的,采用随机数生成方法生成所述用户假名字段。进一步的,所述用户假名字段为一 m位16进制数X1X2. . . Xm,其中X1, X2, ...,Xm中 至少有一位不是0-9之间的数字。进一步的,所述HLR将所述用户假名IMSAO发送给所述用户的方法为所述HLR将 所述IMSAO中的用户假名字段嵌入到一个认证向量的随机挑战RAND中,并将所述认证向 量通过网络访问域VLR发送给所述用户;所述用户收到所述VLR传送的RAND后,检查所述 RAND是否含有所述用户假名字段信息;如果有,则所述用户根据自己的IMSI信息和所述 RAND提供的所述用户假名字段重构用户假名IMSA0。进一步的,所述网络归属域HLR将所述用户假名字段η次重复地嵌入到一个认证 向量的随机挑战RAND中,其中η是不小于1的自然数。进一步的,所述网络归属域HLR将所述用户假名字段η次重复地嵌入到多个认证 向量的随机挑战RAND中,其中η是不小于1的自然数。进一步的,所述数据库包括用户标识码IMSI栏目、用户假名IMSAO栏目,还包括 一用户确认假名IMSAl栏目,所述IMSAl栏目用于存储最近一次用户确认过的用户假名。进一步的,在用户再次入网阶段,所述网络归属域HLR检查数据库中是否存在该 用户假名IMSA0,并更新所述数据库的方法为所述HLR在数据库的IMSAO栏目中搜寻从所 述用户传来的IMSAO数据,如果找到匹配的用户假名,则所述HLR执行下列步骤a)将匹配的IMSAO数据移到所述数据库的对应同一 IMSI的IMSAl栏目,替换所述 IMSAl栏目中相应位置已存在的数据;b)为所述用户产生新的IMSAO数据,并将该IMSAO数据写入数据库的所述用户所 对应的IMSAO栏目内;c)根据所述新产生的IMSAO产生用户认证向量,并通过所述VLR对所述用户进行 认证;如果未找到匹配的用户假名,则所述HLR在数据库的IMSAl栏目中搜寻从所述用 户传来的IMSAO数据,如果未找到匹配的用户假名,则所述HLR报告用户认证失败;如果找 到匹配的用户假名,则所述HLR执行下列步骤a)为所述用户产生新的用户假名IMSA0,并将该IMSAO数据写入数据库的所述用户所对应的IMSAO栏目内;b)根据所述新产生的IMSAO产生用户认证向量,并通过所述VLR对所述用户进行 认证。进一步的,所述用户假名IMSAO栏目、用户确认假名IMSAl栏目只存储所述用户假 名字段部分。本发明的方法流程如图1所示,下面我们分别就用户初次入网和用户再次入网的 过程进行说明。用户初次入网(见图2(a))当用户初装SIM卡(或USIM卡)开机后,必须使用IMSI进行认证,这与标准的移 动网络认证是一样的。按照标准的移动通信协议,该IMSI信息首先由用户传给当地的VLR, 该VLR检查自己的记录是否有此信息,显然没有,于是根据IMSI的数据格式找到其归属的 HLR,并将该IMSI传给HLR。当HLR收到IMSI数据后,可以对用户进行认证,首先检查用户 是否有权利享受某些业务(语音、短信、数据等)。如果检查通过,则需要产生一系列认证向 量,即三元组(GSM系统)或五元组(3G系统)并传给发送IMSI数据的VLR。本发明要求HLR在产生三元组或五元组之前,建立一个关于用户身份的数据库 (每个用户占数据库中的一条记录),数据库包括三个栏目移动用户标识码IMSI栏目,移 动用户假名IMSAO (International Mobile Subscriber Alias)栏目,和移动用户确认假名 IMSAl栏目。因为每个HLR对其所管辖的用户标识码IMSI都有记录,因此上述数据库可以 通过在记录用户标识码的数据库中增加栏目(用户记录用户的假名IMSAO和IMSAl信息) 来实现,也可以建立一个新的数据库。用户标识码IMSI记录的是合法用户的IMSI信息,用 户假名IMSAO的产生方法如下保持IMSI前η位数字(通常情况下η = 11,但对某些HLR, 可以用更少的位数唯一确定该HLR,在此情况下η可以小于11)不变,随机产生m位16进 制数X1X2. . .Xm(称为用户假名字段)来替换原IMSI中的用户标识字段的数据,要求满足条 件(i)m+n = 15 ; (2)X1X2. · · Xffl与所有合法的用户标识字段不同;(3)X1X2. · · Xffl与数据库的 IMSAO栏和IMSAl栏的所有记录中相应部分的数据不重复。IMSAl栏目在用户数据库记录 建立之初暂时空缺(或置零)。注意在具体实施时,数据库的IMSAO栏目和IMSAl栏目不需 要记录用户假名的全部信息,只需要记录用户假名字段信息。当HLR产生IMSAO后,将该数据添加到数据库IMSAO栏中对应用户IMSI的条目, 并在随后产生的多个认证向量三元组(或五元组)中,将IMSAO的用户假名字段嵌入到第 一组认证向量的RAND中,比如将该RAND的前4m比特设置为用户假名字段,即IMSAO的最 后m位16进制数,但具体实施过程中可以是任何一种容易实施的潜入方法,而不构成对本 发明的限制。当VLR收到这些三元组(或五元组)时,将第一组中的RAND传给用户;用户 收到RAND后(在3G系统中也包括Auth,但不影响本发明的实施),根据用户假名字段嵌入 规则,从RAND中提取用户假名字段,并结合IMSI信息可以构建IMSA0,如截取IMSI的前η 位,然后连接RAND的前4m比特作为新建的IMSA0,并将该IMSAO存储起来用于之后的认证。 同时,用户按照标准移动通信协议回复RES应答认证请求,访问域VLR在检查RES的正确性 后,按照标准移动通信协议产生一个用户临时身份TMSI并传给用户。在此过程中,VLR不 需要区分用户假名和用户标识码。用户在重构IMSAO信息后进行存储以备下次认证使用。该信息可存储在移动终端的任何方便存储和使用的单元。但在实际执行中可能会出现下述意外情况VLR没有把含 有IMSAO中用户假名字段的RAND传给用户,而是把另外一个不包含用户假名字段的RAND 传给了用户,其结果是让用户重构了一个错误的假名IMSA0,因此会在下次需要假名认证时 发生永久性错误(除非重新开启IMSI认证过程)。造成这种意外的原因可能是因为VLR 在收到认证向量时,含有IMSAO中用户假名字段的RAND没有排在第一个,或者VLR在选择 RAND时没按照次序选取。这就需要用户对RAND是否含有IMSAO的用户假名字段进行判 断。但仅仅从用户假名字段的数据格式进行判断的话,会有很大概率发生错误,因此本发明 的技术方法是,在将用户假名字段嵌入到一个RAND之前,先将这部分数据重复多次,然后 将其嵌入到一个RAND中。在后面的实施例中描述了如何将用户假名字段重复多次后嵌入 到一个RAND中的过程。在这种处理下,用户在收到一个RAND时首先检查有无可能包含用 户假名字段信息,比如检查前4m比特与接下来的4m比特是否完全相同(IMSA0后m位重复 2次的情况),或进一步检查是否与再接下来的4m比特还是完全相同(IMSA0后m位重复3 次的情况),这样可以几乎正确地重构IMSAO信息。为了避免用户在收到含有IMSAO中用 户假名字段信息的RAND之前已经多次收到其它随机产生的RAND的情况,甚至用户需要使 用IMSAO进行下一次认证时仍未收到嵌入用户假名字段的RAND的情况发生,可以将用户假 名字段(或其多次重复)嵌入到多个认证向量的RAND或所有RAND中,而在用户端,一旦成 功重构并记录IMSAO信息,在下次被要求使用IMSAO认证之前不再对IMSAO进行更新,即使 收到的RAND中含有用户假名字段信息(此时应该与用户已经记录的IMSAO的部分信息相 同)。用户再次入网(见图2(b))当移动用户因为服务区VLR对其TMSI的认证失败而要求提供IMSI进行认证时, 用户向VLR提供自己记录的IMSAO信息。因为IMSAO在数据结构上与标准IMSI没本质区别 (都是15位数),VLR在无系统更新的情况下,把IMSAO当作某个IMSI进行处理首先检查 自己的记录中是否有此IMSAO信息,如果有,则按照正常IMSI对待;如果没有,则将IMSAO 传给相应的HLR。注意IMSAO的前η位数字提供归属HLR的路径信息,因此无论VLR服务几 个HLR,都能将IMSAO传送到正确的HLR。当HLR收到IMSAO后,检测其数据库中的IMSAO栏 目是否有该IMSAO信息(或其对应的用户假名字段)。如果有,则将该IMSAO信息移动到数 据库的IMSAl栏目(表示该假名已经得到用户确认)。如果用户数据记录中的IMSAl栏目 有数据,则更新该数据。HLR然后以同样方式产生一个新的IMSAOJfK IMSAO信息添加到 用户数据库的IMSAO栏目,并产生类似于初次入网时的认证向量,将该IMSAO中的用户假名 字段嵌入到认证向量的某些RAND中。接下来的认证过程与用户初次入网时相同;如果HLR 在其IMSAO栏目中没找到用户IMSAO信息,而在IMSAl栏目中有用户IMSAO信息(说明上 次用户需要更新IMSAO时操作失败),则按照同样规则产生一个新的IMSAOJfM IMSAO信 息添加到用户数据库记录中的IMSAO栏目,并产生类似于初次入网时的认证向量,接下来 的认证过程与用户初次入网时相同;如果HLR在其数据库的IMSAO栏目和IMSAl栏目都未 找到用户提供的IMSAO信息,则报告用户认证失败。在使用IMSI进行认证时也偶尔出现认 证失败的情况,原因可以是多种多样的,遇到这种情况时,用户只需要等一段时间后再次申 请认证即可。当用户接收到VLR通过RAND传来的新的IMSAO的用户假名字段后,根据自己的
9IMSI信息可以重构完整的IMSA0,更新自己的IMSAO记录,接下来的认证过程与现有的认证 过程相同。可靠性分析网络通信中可能因为多种原因使期望的通信中断,从而导致认证协议非正常中 断。假如在初次认证过程中用户传给HLR的原始IMSI传输失败,则用户会继续被要求提供 IMSI信息,而此时用户也只有IMSI信息可以提供,直至认证成功。在这种情况下,在同一时 段同一地点多次传送IMSI并不比传送一次IMSI泄露更多用户隐私信息。当用户使用IMSI认证成功后,如果HLR通过VLR传给用户的用户假名字段(即嵌 入到RAND中的部分数据)丢失,则用户不能重构IMSA0,因此当使用该VLR分发的TMSI进 行之后的认证失败后,只能使用IMSI重新进行认证。在这种情况下,用户IMSI被使用两次。 但是,只要网络可靠,在认证过程中VLR传给用户的RAND丢失的可能性很小,因此多数情况 下用户能收到嵌入用户假名字段的RAND。另一种实现途径是,让用户在发送认证应答RES 之前首先根据数据格式检查RAND中是否嵌入用户假名,如果判断是,则重构并记录IMSAO 信息并进行正常认证应答,否则下次还需要重复IMSI认证过程。这样,使用IMSI认证一旦 成功,之后的认证就无须再使用IMSI信息。在用户得到IMSAO信息后,当用户被要求提供IMSI进行认证时(即使用TMSI的 认证失败),用户提供自己记录的IMSAO信息。如果该IMSAO信息在给HLR的传输过程中 失败,则认证失败,用户会继续被要求提供IMSI进行认证,用户同样只需继续提供该IMSAO 信息,直至认证成功。在网络可靠的情况下,因为IMSAO是HLR产生的,因此HLR能够找到 IMSAO对应的用户从而可以进行正常的认证过程。当用户使用IMSAO进行认证成功后,HLR为用该户产生一个新的IMSA0。但这个新 的IMSAO可能因不可预测的原因未能成功传给用户(可能性很小),因此用户未能更新自己 记录的IMSAO信息,因此在下次到HLR认证时,用户仍然提供未经更新的IMSAO信息。注意 此时用户未经更新的IMSAO信息已经被放在HLR数据库的IMSAl栏目中,因此仍然可以成 功完成认证。如果用户在获得IMSAO后意外将该数据丢失(如手机硬件故障),或因错误判断而 使自己的IMSAO信息与网络端失去同步(以很小概率发生),则用户只需要提供IMSI信息 进行认证,该过程完全等同于用户初次入网时的认证,但需要用户确认后才能执行这一过 程,因为这一过程将降低用户IMSI的隐私性保护力度。因此,无论在认证过程中发生什么意外,总能使合法用户的认证成功,而且一旦用 户获得并记录IMSAO信息,在之后的认证中,几乎再也不需要使用IMSI进行认证。安全性分析正常情况下用户IMSI只在初次入网时用到,之后只需要使用用户假名IMSAO进行 认证,再也不需要提供IMSI信息,而且每次认证成功后,用户IMSAO信息都将被更新。考虑在一般情况下IMSAO只有m = 4位动态变化的情况(其余η = 11位为固定的 HLR路由信息),表示为二进制数时共有16比特,因此共有65536种情况。注意使用4位用 户标识字段的HLR只能有不超过10000个用户,因此最多有10000个IMSI。除去表示IMSI 的数据,表示4位数字的16比特还可以表示55536种情况,这些情况当看作4位数时,至少 一位为非十进制数,即至少有一位(4比特数字)大于9,适合作IMSAO用。在HLR的数据库
10中,每个用户至多有2个IMSA数据,因此数据库中总共有不超过20000个数据。当为一个 用户更新一个IMSAO数据时,要求与数据库中的数据无重复,因此只能从剩余的35536种可 能数组中选取。使用随机算法产生时,随机产生的一个16比特随机数可以为一个用户的新 IMSAO (即与其他数据无冲突)的概率为35536/65536 = 0. 54,因此在最多用户规模的情况 下,平均小于两次尝试即可得到一个合法IMSAO更新数据。如果用户假名字段可以为m = 6位(对一些大的HLR这是可能的),表示为二进制 数有24比特,因此共有16777216种情况,而用于表示标准IMSI的数共有1000000个。假 定每个标准IMSI对应两个假名存储在数据库中,则需要对某一假名进行更新时,随机产生 一个24比特的数,与数据库中的IMSI和所有假名都不重复的概率为1-2000000/16777216 =0. 88.当攻击者截获到一个IMSAO后,根据IMSAO随机产生的原则,该IMSAO对应到任何 一个IMSI的概率相同,因此攻击者根据截获的IMSAO信息,除了得到该用户归属域HLR的 信息外,得不到关于用户IMSI的其他任何信息。系统更新需求一个新功能的添加一定需要对系统进行更新,但从成本因素考虑,更新成本越小 越好。在移动通信系统中,VLR的数量远远多于HLR的数量,因此最好保持VLR的配置不变 或变化不明显(如少量设置更新)。本发明需要的基本更新如下对HLR,需要建立一个用户数据库,记录用户IMSI以 及对应的IMSAO和IMSAl数据。当前的系统已经有一个记录IMSI及相关信息(如账户资 金,服务设置等)的数据库,因此新增数据库只需要在已有数据库中增加两个栏目,用于记 录IMSAO和IMSAl数据。而在产生用户认证向量时,需要对第一个RAND (或多个RAND,或全 部RAND)的产生过程进行更新,比如让RAND的前4km比特(或后4km比特)为所产生IMSAO 中的用户假名字段(即IMSAO的最后m位用户假名字段)重复k次,其中m为用户假名字 段的位数,k为一正整数,该RAND的剩余位为随机产生的字符串。在用户端,需要增加的功能包括根据RAND数据结构判断其是否包含用户假名字 段的重复;根据RAND和IMSI重构IMSAO信息;记录(或更新)IMSAO信息。除此之外,不需 要任何更新。用户端在收到一个网络端发送的用于认证的挑战信息RAND时,特别是用户提供 IMSI或IMSAO进行认证之后,需要判断收到的RAND是否包含用户假名字段,避免错误地更 新自己的IMSAO信息。为达到这一目的,在HLR产生RAND时,可以让新产生的IMSAO的用 户假名字段在该RAND中重复多次。用户可以检查这种重复现象是否发生,从而决定是否更 新自己的IMSA0。如果一个RAND是随机产生的,则在固定位置有重复的概率很小,比如有 16比特重复的概率是1/2" {16} = 0. 000015,即平均7万次认证有一次错误判断发生,而当 用户假名字段为4位并在RAND中重复3次时,一个随机产生的RAND与之在相应位置上有 32比特重复的概率是1/2" {32} = 0. 000000000233,即平均40多亿次认证有一次错误判断 发生。当用户端发生对IMSAO的错误更新时,其造成的影响是用户使用IMSAO的认证失败, 但可以在IMSAO几次失败后强行使用IMSI进行认证。适当的策略可以有效避免包括敌手 假冒网络在内的IMSI诱导捕获攻击。对当前用户的完美兼容性
对一个系统而言,功能更新的最大障碍是兼容性问题,因为现有用户不可能同时 更新到新的功能,而现存用户的服务仍需要正常提供。本发明的特点是具有极好的兼容性。对使用新功能的用户,上述描述给出了如何 最大程度地避免使用IMSI。而对于现有用户,完全可以继续使用IMSI进行认证,不管在网 络端发送的挑战信息RAND中是否包含可能的用户假名字段,旧用户可以完全忽略,仅当作 一个普通的RAND进行处理,而不影响认证过程和认证的有效性。注意IMSI在传输中使用 15位16进制数(即15*4 = 60比特),尽管IMSI要求每位数字为0至9之间。因此,IMSAO 的数据格式从网路传输方面与IMSI没有区别,只是到HLR后才可以根据是否全为合法用户 标识码而进行识别区分,如检查IMSAO的后m位是否全为十进制数格式。本发明对其他数据格式和协议步骤没有任何改变,这是保证兼容性的根本。与现有技术相比,本发明的积极效果如下1)现有技术对当前协议的修改较大,而本发明对现有技术的修改很小,特别对认 证协议(即AKA)全过程,无论从数据格式上还是协议流程上都没有任何修改,因此对访问 域VLR无需做任何改动,这是其它现有技术所不具有的特点;2)本发明分析了因各种故障可能造成的通信异常情况下,本发明的方法保证认证 的正常进行和对IMSI的保护不降低,而许多其他现有技术都缺少这方面的分析,因此其他 现有技术是否能抵抗这些故障的影响还是个未知数;3)本发明对现有用户具有完美的兼容性,该特点来源于对通信数据和认证协议流 程的无修改。而其他现有技术虽然也具有一定兼容性,但因为对数据或通信协议的修改,通 常这种兼容性是通过新旧两个模块进行处理的,首先需要区分现有用户还是升级用户,然 后根据用户类别分别进行不同的通信流程,在效率和代价方便都远劣于本发明;4)本发明对可靠性(即异常情况的影响)、安全性(即产生合法IMSAO的代价和 误判IMSAO数据的概率)等进行了详细技术分析,并对系统更新需求作了明确说明,较许多 现有技术相比,都突出了本发明的实用性。本发明的实施例更详细地描述了如何实施本发 明的方法。


图1本发明的方法流程图;图2为使用假名保护IMSI的认证协议流程图,其中图2(a)为用户初次入网认证过程,图2(b)为用户再次入网认证过程;图3为假名IMSAO的数据格式与IMSI数据格式之间的关系;其中MCC占3个字节,MNC占2个字节,MtlM1M2M3占4个字节,ABCD和X1X2X3X4分别占4 个字节。
具体实施例方式为了更好地说明本发明的工作原理,下面给出一个具体实施例。假设一个移动用 户的IMSI号码为460010911221001,则根据该IMSI号码的前3位,可以确定是哪个国家的 用户,跟据约定,460表示中国,因此漫游到世界任何地方,见到该IMSI号码后,寻找HLR的 路由首先根据前三位数字460转到中国的一个接口。然后根据接下来的2位数字01确定运营商,接下来的两位数字09是固定的,接下来的4为数字1122表示在01所表示的运营 商内的HLR标识,最后的4位数1001表示在该HLR内部的标识字段为1001的用户。该实 施例考虑的是用户假名字段只有4位(即16比特)的情况。当需要根据该IMSI产生IMSAO时,IMSI的前11位数字保持不变,只产生新的最 后4位数字作为用户假名字段。为了使用户假名字段与合法的用户标识字段有区别,一种 容易实现且不受合法用户个数限制的方法是,让用户假名字段中至少有一位数字大于9。为 方便描述,我们用16进制表示新产生的数字。根据前面的描述,2010显然不是满足条件的 IMSAO用户假名字段,因为所有位的数字都在0-9之间,而201A就满足条件,BAlD也满足条 件。当然在具体产生假名IMSAO时,需要检查HLR数据库中是否已经使用了对应的假名字 段。假设201A是某个IMSI的对应假名字段,因此当需要为另一个IMSI产生假名字段时, 就不能使用201A,尽管在格式上满足用户假名字段的形式。当BAlD作为对应IMSI的一个 新的用户假名字段被产生后,该假名字段被HLR嵌入到认证向量组的第一组(或某些组,或 所有组)的挑战信息 RAND 中,例如 RAND = BA1DBA1DBA1D********************,其中 * 表 示任意4比特长随机字符串。当用户收到该RAND后,检查前4位是否满足IMSAO的数据格 式,上述的RAND前4位显然满足,但仅此检查仍不能保证该4位提供的是一个IMSAO的部分 信息,可能刚好是一个随机产生的数,因此需要检查接下来的4位数是否与前4为数相同, 甚至再接下来的4位数字是否与前4位仍然相同,如果相同,则认为该RAND的前4位所传 递的是一个用户假名字段信息,用户从自己的IMSI中截取前11位数字,结合该4位数,构 成完整的用户假名信息IMSAO = 46001091122BA1D,并记录该假名。但即使RAND的前4位 与接下来的4位相同,甚至再接下来的4位也仍然相同,也可能该RAND是随机产生的,只是 刚好满足此性质,这样用户更新IMSAO就是一种错误。但正如前面分析的,在IMSAO的后4 位重复2次的情况下,发生这种错误的概率为0. 000015,而在IMSAO的后4位重复3次的情 况下,发送这种错误的概率为0. 000000000233,因此在实际中不构成对IMSI泄露的威胁。 事实上,该错误发送的概率还可以降低,比如令RAND = BA1DBA1DBA1DBA1D************** **,即假名IMSAO的后4位部分在RAND中重复4次,则随机产生一个RAND刚好满足该格式 的概率为1//2" {48} = 0. 00000000000000355,即约为280亿亿分之一,因此完全可以忽略, 而剩余16位(64比特)随机数足可以保证该RAND的随机性。当用户需要提供IMSI进行认证时,用户提供IMSAO信息,其对网络来说在格式上 与IMSI没有区别,网络可以顺利找到其对应的国家、运营商及其HLR。当该IMSAO信息被传 送到归属HLR时,该HLR从最后4位上可以判断它是一个IMSI信息还是一个IMSAO信息, 从而可以在其数据库中查找,并按照本发明所描述的步骤进行认证和对假名的更新。
权利要求
一种基于假名的移动用户标识码IMSI保护方法,其步骤包括A)在用户初次入网阶段A1)用户发送用户标识码IMSI给网络归属域HLR进行认证,所述HLR在完成认证后为所述用户生成假名IMSA0,并将其记录到所述HLR的数据库中;A2)所述HLR根据用户假名IMSA0产生认证向量并通过所述VLR对所述用户进行认证;A3)所述HLR将所述用户假名IMSA0中的用户假名字段通过网络访问域VLR发送给所述用户;A4)所述用户接收到所述用户假名字段后,重构并记录该用户假名IMSA0;B)在用户再次入网阶段B1)用户将自己所存储的最新用户假名IMSA0信息发送给所述网络归属域HLR进行认证,所述网络归属域检查数据库中是否存在该用户假名IMSA0,如果不存在,则所述HLR报告用户认证失败;否则,所述HLR产生一个新的用户假名,并更新数据库中该用户的原假名;B2)所述HLR根据新产生的用户假名IMSA0产生认证向量并通过网络访问域VLR对所述用户进行认证;B3)所述HLR将新生成的用户假名IMSA0中的用户假名字段通过所述VLR发送给所述用户;B4)所述用户在接收到所述用户假名字段后,重构该用户假名IMSA0后,替换原存储的用户假名。
2.如权利要求1所述的方法,其特征在于所述HLR利用用户假名字段替换该用户标识 码IMSI中的用户标识字段,生成该用户的假名IMSAO ;所述用户假名字段是不合法的用户 标识字段。
3.如权利要求2所述的方法,其特征在于采用随机数生成方法生成所述用户假名字段。
4.如权利要求3所述的方法,其特征在于所述用户假名字段为一m位16进制数 X1X2. · · Xm,其中X1, X2, ...,Xm中至少有一位不是0-9之间的数字。
5.如权利要求4所述的方法,其特征在于所述HLR将所述用户假名IMSAO发送给所述 用户的方法为所述HLR将所述IMSAO中的用户假名字段嵌入到一个认证向量的随机挑战 RAND中,并将所述认证向量通过网络访问域VLR发送给所述用户;所述用户收到所述VLR 传送的RAND后,检查所述RAND是否含有所述用户假名字段信息;如果有,则所述用户根据 自己的IMSI信息和所述RAND提供的所述用户假名字段重构用户假名IMSA0。
6.如权利要求5所述的方法,其特征在于所述网络归属域HLR将所述用户假名字段η 次重复地嵌入到一个认证向量的随机挑战RAND中,其中η是不小于1的自然数。
7.如权利要求5所述的方法,其特征在于所述网络归属域HLR将所述用户假名字段η 次重复地嵌入到多个认证向量的随机挑战RAND中,其中η是不小于1的自然数。
8.如权利要求1或2或3或4或5或6或7所述的方法,其特征在于所述数据库包 括用户标识码IMSI栏目、用户假名IMSAO栏目,还包括一用户确认假名IMSAl栏目,所述 IMSAl栏目用于存储最近一次用户确认过的用户假名。
9.如权利要求8所述的方法,其特征在于,在用户再次入网阶段,所述网络归属域HLR检查数据库中是否存在该用户假名IMSA0,并更新所述数据库的方法为所述HLR在数据库 的IMSAO栏目中搜寻从所述用户传来的IMSAO数据,如果找到匹配的用户假名,则所述HLR执行下列步骤a)将匹配的IMSAO数据移到所述数据库的对应同一IMSI的IMSAl栏目,替换所述 IMSAl栏目中相应位置已存在的数据;b)为所述用户产生新的IMSAO数据,并将该IMSAO数据写入数据库的所述用户所对应 的IMSAO栏目内;c)根据所述新产生的IMSAO产生用户认证向量,并通过所述VLR对所述用户进行认证;如果未找到匹配的用户假名,则所述HLR在数据库的IMSAl栏目中搜寻从所述用户传 来的IMSAO数据,如果未找到匹配的用户假名,则所述HLR报告用户认证失败;如果找到匹 配的用户假名,则所述HLR执行下列步骤a)为所述用户产生新的用户假名IMSA0,并将该IMSAO数据写入数据库的所述用户所 对应的IMSAO栏目内;b)根据所述新产生的IMSAO产生用户认证向量,并通过所述VLR对所述用户进行认证。
10.如权利要求8所述的方法,其特征在于所述用户假名IMSAO栏目、用户确认假名IMSAl栏目只存储所述用户假名字段部分。
全文摘要
本发明公开了一种基于假名的IMSI保护方法,属于通信安全领域。本方法为用户初次入网阶段,用户发送IMSI给HLR进行认证,认证后为用户生成假名并记录到数据库中;然后HLR根据用户假名产生认证向量并通过VLR对用户进行认证;最后HLR将用户假名中的用户假名字段发送给用户,用户重构并记录该用户假名;用户再次入网阶段,用户将用户假名发送给HLR进行认证,如果库中没有该用户假名则报告认证失败,否则HLR产生一个新用户假名并更新数据库;然后类似于初次入网时,对用户进行认证;最后HLR将新生成用户假名中的用户假名字段发送给用户,用户重构并记录该用户假名。本方法大大提高IMSI的安全性,且系统更新简便。
文档编号H04W8/26GK101959183SQ20101028935
公开日2011年1月26日 申请日期2010年9月21日 优先权日2010年9月21日
发明者武传坤 申请人:中国科学院软件研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1