一种eSIM卡鉴权的方法
技术领域
本发明涉及认证安全领域,特别是涉及一种eSIM卡鉴权的方法。
背景技术
现有技术针对eSIM卡KI的暴力破解过程同样可以对eSIM进行破解,通过在卡中缓存鉴权随机数的方式,侦测是否存在暴力破解。具体地,通过“在存储单元中顺次查找每个子单元中存储的已鉴权随机数,将查找到的已鉴权随机数与接收到的鉴权随机数按字节进行比对,当一定数量字节的数据相同时,例如大于等于5个字节的数据相同,则认为是克隆攻击模式”判断是否存在克隆攻击。随后存储新的鉴权随机数以更新存储的已鉴权随机数,并对于非法数据发出错误响应。
然而上述侦测方式可以通过调整鉴权随机数的顺序而规避。具体的,攻击者可以将用于攻击破解的20000-60000个随机数打乱顺序进行攻击,但记录下各个随机数的攻击次序,从而可以恢复出使用顺序随机数攻击所得到的鉴权结果,进而进行破解分析。
而由于上述现有技术中是通过检测顺序随机数的特征来进行攻击检测,一旦随机数被打乱就不存在可以检测出的特征,进而会导致攻击检测失效。
发明内容
这个部分提供了本公开的一般概要,而不是其全部范围或其全部特征的全面披露。
本公开的目的在于提供一种eSIM卡鉴权的方法,所述eSIM卡中设置鉴权计数器,所述方法包括:
S1、在eSIM卡鉴权过程中,eSIM卡接收鉴权服务器发送的鉴权随机数;
S2、在eSIM卡接收到鉴权随机数后,针对每一个的鉴权随机数,将鉴权计数器加1;
S3、在读取每一个的鉴权随机数时,鉴权计数器加1的同时,eSIM卡判断计数值是否满足预设条件;如果不满足预设条件,则根据加密算法生成响应值,并返回该响应值序列;
S4、如果满足预设条件则生成一伪响应值,并返回该伪响应值;
S5、当eSIM卡返回响应值序列后,针对伪响应值的数量进行统计,并根据统计结果进行计数阈值的调整;
S6、eSIM卡接收鉴权服务器返回的鉴权通知,如果鉴权不成功,则进行二次鉴权;如果鉴权成功,则不进行鉴权。
其中,步骤S2包括:在eSIM卡接收到鉴权随机数后,不进行鉴权随机数的验证,而是直接读取鉴权随机数序列中的数字。
其中,步骤S3包括:在eSIM卡读取当前字节中的鉴权随机数时,鉴权计数器加1后,将鉴权计数器中的当前计数值与计数阈值进行比较,如果当前计数值不等于计数阈值,则根据加密算法生成响应值。
其中,步骤S4包括:在eSIM卡读取当前字节中的鉴权随机数时,鉴权计数器加1后,将鉴权计数器中的当前计数值与计数阈值进行比较,如果当前计数值等于计数阈值,则根据加密算法生成伪响应值。
其中,步骤S5包括:在eSIM卡返回响应值序列的同时,缓存该响应值序列以及所有随机生成的伪响应值;在返回响应值后,读取缓存的该序列,并获取该序列的字节数,同时读取伪响应值并得到伪响应值数量。
本发明还提供一种eSIM卡鉴权的装置,该装置设置于eSIM中,具体包括鉴权计数器、收发器、加密计算器、比较器和伪响应值生成器;其中,
所述鉴权计数器用于进行随机数序列读取次数的累加;
所述收发器用于接收鉴权服务器发送的随机数序列,并将响应值序列返回;
所述加密计算器用于根据随机数和KI码计算响应值;
所述比较器用于将鉴权计数器中的计数值与对应阈值比较;
所述比较器还用于将伪响应值比例与比例阈值比较;
所述比较器还用于将伪响应值与对应的响应值比较;
所述伪响应值生成器用于随机生成一个伪响应值。
其中,eSIM卡接收到鉴权随机数后,不进行鉴权随机数的验证,而是所述加密计算器直接读取鉴权随机数序列中的数字。
其中,eSIM卡读取当前字节中的鉴权随机数时,鉴权计数器加1后,所述比较器将鉴权计数器中的当前计数值与计数阈值进行比较,如果当前计数值不等于计数阈值,则根据加密算法生成响应值。
其中,eSIM卡读取当前字节中的鉴权随机数时,鉴权计数器加1后,所述比较器将鉴权计数器中的当前计数值与计数阈值进行比较,如果当前计数值等于计数阈值,则根据加密算法生成伪响应值。
其中,eSIM卡返回响应值序列的同时,缓存该响应值序列以及所有随机生成的伪响应值;在返回响应值后,收发器读取缓存的该序列,并获取该序列的字节数,同时读取伪响应值并得到伪响应值数量。
有益效果:利用本发明的方法,由于返回的响应值中存在一定数量的伪响应值,而暴力破解软件无法判断返回值是否是真响应值,从而以计算出KI。
从在此提供的描述中,进一步的适用性区域将会变得明显。这个概要中的描述和特定例子只是为了示意的目的,而不旨在限制本公开的范围。
附图说明
在此描述的附图只是为了所选实施例的示意的目的而非全部可能的实施,并且不旨在限制本公开的范围。在附图中:
图1是eSIM卡鉴权的方法流程图;
图2是eSIM卡鉴权的装置示意图。
虽然本公开容易经受各种修改和替换形式,但是其特定实施例已作为例子在附图中示出,并且在此详细描述。然而应当理解的是,在此对特定实施例的描述并不打算将本公开限制到公开的具体形式,而是相反地,本公开目的是要覆盖落在本公开的精神和范围之内的所有修改、等效和替换。要注意的是,贯穿几个附图,相应的标号指示相应的部件。
具体实施方式
现在参考附图来更加充分地描述本公开的例子。以下描述实质上只是示例性的,而不旨在限制本公开、应用或用途。
提供了示例实施例,以便本公开将会变得详尽,并且将会向本领域技术人员充分地传达其范围。阐述了众多的特定细节如特定部件、装置和方法的例子,以提供对本公开的实施例的详尽理解。对于本领域技术人员而言,不需要使用特定的细节,示例实施例可以用许多不同的形式来实施,它们都不应当被解释为限制本公开的范围。在某些示例实施例中,没有详细地描述众所周知的过程、众所周知的结构和众所周知的技术。
下面将对本公开内容所提出的技术问题进行详细说明。需要注意的,该技术问题仅是示例性的,目的不在于限制本发明的应用。
本发明提供一种eSIM卡鉴权的方法,所述eSIM卡中设置鉴权计数器,如图1所示,所述方法包括:
S1、在eSIM卡鉴权过程中,eSIM卡接收鉴权服务器发送的鉴权随机数。
该鉴权随机数是鉴权服务器生成的多个字节的随机数序列,并且该鉴权服务器可以是合法的鉴权服务器,也可能是冒充鉴权服务器的非法设备。
该鉴权服务器接收到eSIM卡的鉴权请求后,随机生成鉴权随机数序列,并发送到eSIM卡;如果是非法设备,则会按照设定的方式生成有规律的鉴权随机数序列,如按照一定规则打乱随机生成数字序列的顺序或者按照一定规则生成数字序列。
S2、在eSIM卡接收到鉴权随机数后,针对每一个的鉴权随机数,将鉴权计数器加1。
在eSIM卡接收到鉴权随机数后,不进行鉴权随机数的验证,即,不进行鉴权随机数与本地存储的鉴权随机数的比较匹配。而是直接读取鉴权随机数序列中的数字,每一字节对应个数字,并按照读取顺序,在读取一个字节的数字后,将鉴权计数器当前计数值加1,直到读取鉴权随机数序列所有字节的数字。
S3、在读取每一个的鉴权随机数时,鉴权计数器加1的同时,eSIM卡判断计数值是否满足预设条件;如果不满足预设条件,则根据加密算法生成响应值,并返回该响应值序列。
预先设定一个计数阈值,如5。在eSIM卡读取当前字节中的鉴权随机数时,鉴权计数器加1后,将鉴权计数器中的当前计数值与计数阈值进行比较,如果当前计数值不等于计数阈值,则根据加密算法生成响应值。
该响应值为放置在响应值序列中一字节中的数值,该数值是基于读取当前字节中的鉴权随机数与eSIM卡中对应位置的KI码计算得到的,即上述加密算法。
随后,将该响应值按顺序放置在序列中。
S4、如果满足预设条件则生成一伪响应值,并返回该伪响应值。
在eSIM卡读取当前字节中的鉴权随机数时,鉴权计数器加1后,将鉴权计数器中的当前计数值与计数阈值进行比较,如果当前计数值等于计数阈值,则根据加密算法生成伪响应值。
该伪响应值同样为放置在响应值序列中一字节中的数值,该数值是不基于读取当前字节中的鉴权随机数与eSIM卡中对应位置的KI码计算得到的,而是直接生成的随机数。
在生成伪响应值的同时,按照步骤S3中的加密算法生成响应值,并且当响应值不等于伪响应值时,将伪响应值按顺序放置在序列中。当响应值等于伪响应值时,重新生成伪响应值,并将新生成的伪响应值按顺序放置在序列中。
随后,将鉴权计数器的计数值归零。
当完成所有响应值和/或伪响应值的计算和放置后,将响应值序列返回到鉴权服务器。
S5、当eSIM卡返回响应值序列后,针对伪响应值的数量进行统计,并根据统计结果进行计数阈值的调整。
在eSIM卡返回响应值序列的同时,缓存该响应值序列以及所有随机生成的伪响应值。在返回响应值后,读取缓存的该序列,并获取该序列的字节数,同时读取伪响应值并得到伪响应值数量。
随后,eSIM卡计算伪响应值和序列字节数的比例,如果大于比例阈值,则增加计数阈值的值,如果小于比例阈值,则减小计数阈值的值。这样可以在伪随机数过多时进行消减,在保证有效防止攻击的同时,减少伪随机数生成次数,提高鉴权效率,而也可以在伪随机数过少时进行增加,也保证了防止攻击的可靠性。
S6、eSIM卡接收鉴权服务器返回的鉴权通知,如果鉴权不成功,则进行二次鉴权;如果鉴权成功,则不进行鉴权。
通常情况下,如果是合法的鉴权服务器,在接收到错误的响应值序列并提取对应的KI码之后,在进行KI码匹配时,都会发现不正确的KI码而返回鉴权错误通知。
但是如果是非法设备,无法在提取伪造的KI码后,通过匹配发现该KI码不正确。为了获取eSIM卡的KI码而不被发现,非法设备通常都会返回鉴权成功通知。
下面通过具体实例说明上述方法。
例如,当eSIM卡请求鉴权时,非法设备的终端A冒充鉴权服务器与eSIM卡进行交互。终端A截取鉴权服务器之前用于鉴权的随机数序列,该随机数序列为100字节,随后,按照预设的规则将随机数序列中多个字节中的数值进行调换,如每隔3-5个字节,将该字节中的数值与相邻字节中的数值进行调换,并记录具体调换位置参数。
终端A将按照上述规则调换的随机数序列发送到eSIM卡中。eSIM卡接收到上述位置调换后的随机数序列后,由于无法判断该随机数序列是否被更改或者克隆,所以跳过对该100字节的随机数序列进行对比检测的步骤,直接按顺序从第一字节开始读取其中的数值,并准备随后利用上述数值进行响应值的计算。
eSIM卡在读取每一字节数值时,同时启动其中的鉴权计数器,该计数器默认计数值为0。在读取该字节数值后,鉴权计数器的计数值为1,在读取下一个字节数值后,计数值为2,依次类推。
另外,eSIM卡在读取每一字节数值前,设定一个计数阈值,如5;并在读取每一字节数值后,判断计数值是否等于5,如果不等,5,则利用当前读取的数值和eSIM卡的KI码中对应位置的数值,按照预定公式计算得到一个响应值,并将该响应值按照随机数序列读取的顺序,放置在响应值序列对应的字节。
如果当前计数值等于5,则同样利用当前读取的数值和和eSIM卡的KI码中对应位置的数值,按照预定公式计算得到一个响应值,同时,随机生成一个伪响应值,该伪响应值与响应值的位数相同。随后,eSIM卡将上述伪响应值与同时生成的响应值相减,如果结果为0,则删除该伪响应值,并随机生成一个新的伪响应值,将新的伪响应值按照随机数序列读取的顺序,放置在响应值序列对应的字节,同时删除上述响应值。如果结果不为0,则将该伪响应值按照随机数序列读取的顺序,放置在响应值序列对应的字节,同时删除上述响应值。
由于eSIM卡每读取5次随机数序列就生成1个伪响应值,对于100字节的随机数序列来说,就会得到一个包含20个伪响应值的响应值序列,并将该响应值序列发送到终端A。
终端A根据截获的计算公式,还原得到有20个错误字节的KI码。由于终端A中没有预存eSIM卡实际鉴权所需的KI码,如果返回鉴权错误的通知,对于发送正确响应值的eSIM卡来说就会暴露身份,所以通常都会返回鉴权成功的通知。
而对于eSIM来说,在返回错误响应值的情况下,如果得到鉴权成功通知,判断为非法设备,则停止鉴权。如果得到鉴权错误通知,判断为合法鉴权服务器,则再次发出鉴权请求,并且在得到随机数序列后,返回正确响应值。
另外,预先设置比例阈值为10%,得到伪响应值数量为20,响应值序列字节数为100,计算得到伪响应值比例值=伪响应值数量/响应值序列字节数=20%。该比例值大于10%,则需要进行伪响应值的数量的消减,即将计数阈值调整为15,则对于上述响应值序列来说,伪响应值数量为6。
本发明还提供一种eSIM卡鉴权的装置,该装置设置于eSIM中,如图2所示,具体包括鉴权计数器、收发器、加密计算器、比较器和伪响应值生成器。
所述鉴权计数器用于进行随机数序列读取次数的累加。
所述收发器用于接收鉴权服务器发送的随机数序列,并将响应值序列返回。
所述加密计算器用于根据随机数和KI码计算响应值。
所述比较器用于将鉴权计数器中的计数值与对应阈值比较。
所述比较器还用于将伪响应值比例与比例阈值比较。
所述比较器还用于将伪响应值与对应的响应值比较。
所述伪响应值生成器用于随机生成一个伪响应值。
上述eSIM中的各个部件具体交互过程如下:
eSIM卡鉴权过程中,收发器接收鉴权服务器发送的鉴权随机数。
该鉴权随机数是鉴权服务器生成的多个字节的随机数序列,并且该鉴权服务器可以是合法的鉴权服务器,也可能是冒充鉴权服务器的非法设备。
该鉴权服务器接收到eSIM卡中的收发器发送的鉴权请求后,随机生成鉴权随机数序列,并发送到收发器;如果是非法设备,则会按照设定的方式生成有规律的鉴权随机数序列,如按照一定规则打乱随机生成数字序列的顺序或者按照一定规则生成数字序列。
收发器接收到鉴权随机数后,鉴权计数器针对每一个的鉴权随机数,将计数值加1。
收发器接收到鉴权随机数后,eSIM卡不进行鉴权随机数的验证,即,不进行鉴权随机数与本地存储的鉴权随机数的比较匹配。加密计算器直接读取鉴权随机数序列中的数字,每一字节对应个数字,并按照读取顺序,在读取一个字节的数字后,通知鉴权计数器将当前计数值加1,直到读取鉴权随机数序列所有字节的数字。
加密计算器读取每一个的鉴权随机数时,鉴权计数器加1的同时,比较器读取鉴权计数器中的计数值,并判断计数值是否满足预设条件;如果不满足预设条件,则加密计算器根据加密算法生成响应值,并通过收发器返回该响应值序列。
eSIM卡预先设定一个计数阈值,如5。在加密计算器读取当前字节中的鉴权随机数时,鉴权计数器加1后,比较器读取鉴权计数器中的计数值,并将鉴权计数器中的当前计数值与计数阈值进行比较,如果当前计数值不等于计数阈值,则通知加密计算器根据加密算法生成响应值。
该响应值为放置在响应值序列中一字节中的数值,该数值是基于读取当前字节中的鉴权随机数与eSIM卡中对应位置的KI码计算得到的,即上述加密算法。
随后,加密计算器将该响应值按顺序放置在序列中。
如果满足预设条件,比较器通知伪响应值生成器生成一伪响应值,并发送到加密计算器。
加密计算器读取当前字节中的鉴权随机数时,鉴权计数器加1后,比较器读取鉴权计数器中的计数值,并将鉴权计数器中的当前计数值与计数阈值进行比较,如果当前计数值等于计数阈值,则通知加密计算器根据加密算法生成伪响应值。
该伪响应值同样为放置在响应值序列中一字节中的数值,该数值是不基于读取当前字节中的鉴权随机数与eSIM卡中对应位置的KI码计算得到的,而是直接生成的随机数。
在伪响应值生成器生成伪响应值的同时,加密计算器按照加密算法生成响应值,并发送到比较器。比较器判断响应值不等于伪响应值时,通知加密计算器将伪响应值按顺序放置在序列中。当响应值等于伪响应值时,通知伪响应值生成器重新生成伪响应值,并发送到加密计算器,以便将新生成的伪响应值按顺序放置在序列中。
鉴权计数器将计数值归零。
当加密计算器完成所有响应值和/或伪响应值的计算和放置后,将收发器响应值序列返回到鉴权服务器。
收发器返回响应值序列后,比较器针对伪响应值的数量进行统计,并根据统计结果进行计数阈值的调整。
收发器返回响应值序列的同时,缓存该响应值序列以及所有随机生成的伪响应值。在返回响应值后,收发器读取缓存的该序列,并获取该序列的字节数,同时读取伪响应值并得到伪响应值数量。
随后,加密计算器计算伪响应值和序列字节数的比例,并发送到比较器。比较器判断如上述比例果大于比例阈值,则增加计数阈值的值,如果小于比例阈值,则减小计数阈值的值。这样可以在伪随机数过多时进行消减,在保证有效防止攻击的同时,减少伪随机数生成次数,提高鉴权效率,而也可以在伪随机数过少时进行增加,也保证了防止攻击的可靠性。
eSIM卡接收鉴权服务器返回的鉴权通知,如果鉴权不成功,则进行二次鉴权;如果鉴权成功,则不进行鉴权。
通常情况下,如果是合法的鉴权服务器,在接收到错误的响应值序列并提取对应的KI码之后,在进行KI码匹配时,都会发现不正确的KI码而返回鉴权错误通知。
但是如果是非法设备,无法在提取伪造的KI码后,通过匹配发现该KI码不正确。为了获取eSIM卡的KI码而不被发现,非法设备通常都会返回鉴权成功通知。
以上参照附图描述了本公开的优选实施例,但是本公开当然不限于以上示例。本领域技术人员可在所附权利要求的范围内得到各种变更和修改,并且应理解这些变更和修改自然将落入本公开的技术范围内。
例如,在以上实施例中包括在一个单元中的多个功能可以由分开的装置来实现。替选地,在以上实施例中由多个单元实现的多个功能可分别由分开的装置来实现。另外,以上功能之一可由多个单元来实现。无需说,这样的配置包括在本公开的技术范围内。
在该说明书中,流程图中所描述的步骤不仅包括以所述顺序按时间序列执行的处理,而且包括并行地或单独地而不是必须按时间序列执行的处理。此外,甚至在按时间序列处理的步骤中,无需说,也可以适当地改变该顺序。
以上虽然结合附图详细描述了本公开的实施例,但是应当明白,上面所描述的实施方式只是用于说明本公开,而并不构成对本公开的限制。对于本领域的技术人员来说,可以对上述实施方式作出各种修改和变更而没有背离本公开的实质和范围。因此,本公开的范围仅由所附的权利要求及其等效含义来限定。