CN101772045B - 一种检测防克隆电信智能卡的方法及装置 - Google Patents
一种检测防克隆电信智能卡的方法及装置 Download PDFInfo
- Publication number
- CN101772045B CN101772045B CN200810247324XA CN200810247324A CN101772045B CN 101772045 B CN101772045 B CN 101772045B CN 200810247324X A CN200810247324X A CN 200810247324XA CN 200810247324 A CN200810247324 A CN 200810247324A CN 101772045 B CN101772045 B CN 101772045B
- Authority
- CN
- China
- Prior art keywords
- random number
- intelligent card
- attack
- telecom intelligent
- prelock
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明公开了一种检测防克隆电信智能卡的方法及装置,主要包括:输入包含k个攻击随机数的h个随机数到电信智能卡,并在每次输入随机数后读取预锁定计数器PreLock值,若在输入攻击随机数后读取的PreLock值相对于上次读取的PreLock值减小,则确定电信智能卡的攻击识别及捕获功能有效,否则无效;其中,h为正整数,k为小于等于h的正整数;多次输入同一攻击随机数到电信智能卡,并在每次输入随机数后读取电信智能卡的鉴权结果,若鉴权结果满足随机性,则确定电信智能卡的反攻击功能有效,否则无效。根据该技术方案能够准确、高效地检测电信智能卡的防克隆功能。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种检测防克隆电信智能卡的方法及装置。
背景技术
目前,GSM(Global System for Mobile communication,全球移动通信系统)通信方式下,对电信智能卡即SIM(Subscriber Identity Module,用户识别及捕获模块)卡的检测技术主要有以下三种:
检测技术一、通过ISO7816检测体系对SIM卡的性能进行检测。具体地,按照ISO7816标准对SIM卡的物理特性(如支持电流、电压、硬度、厚度等)、接口特性(如电源接口、复位控制接口、时钟输入接口、数据输入输出接口)以及ISO7816标准中定义的基本功能(如SIM卡容量、数据传输速度等)进行检测。
检测技术二、通过业务使用对SIM卡的性能进行检测。具体地,基于运营商企业标准生成的SIM卡大多数都是增加业务功能,对于该类型的SIM卡,可以通过基于SIM卡的新业务的各项功能进行检测。通用的方法是将SIM卡放入用户终端,通过用户终端使用SIM卡的各项业务,验证SIM卡中新增功能的正确性和SIM卡性能。
检测技术三、返厂检测SIM卡的性能。具体地,通过SIM卡的标识(如SIM卡编号、空卡序列号)识别及捕获SIM卡制造厂家,通过厂家出示生产工艺流程和写入SIM卡的信息记录进行核查,检测SIM卡的各项功能及其正确性。
通过上述方法可以对SIM卡的性能进行检测,目前通用的SIM卡一般都使用Comp128-1(A3/A8)鉴权算法对接收的鉴权随机数进行鉴权操作,Comp128-1算法是一种FFT-Hash算法,由于其算法结构上存在的缺陷,使得两个不同的鉴权随机数经Comp128-1算法运算后可以得到相同的密文,这种现象称为“碰撞”,“碰撞”现象可被用于对SIM卡进行破解攻击。
防克隆SIM卡是一种新型SIM卡,其相对于普通的SIM卡在鉴权算法方面具有更高的安全性,抵制对SIM卡的攻击与克隆的能力更高。虽然防克隆SIM卡在内部模块配置、设计方面进行了更新,抗攻击性能方面也进行了提升,但外观以及基本物理特性(如硬度、厚度等)与普通SIM卡完全一致,而且防克隆SIM卡设计时为了保障用户体验不受影响,在正常使用时与普通SIM卡完全一致,基于防克隆SIM卡的各种业务性能也没有改变。因此,将对普通SIM卡的检测方法应用于对防克隆SIM卡的检测时,存在如下缺陷:
(1)利用上述检测技术一对防克隆SIM卡检测时存在的问题:
由于防克隆技术是一种新技术,暂未纳入ISO7816标准,因此现有的检测机构实施的ISO检测方法不能对防克隆SIM卡进行功能和正确性检测,无法判定一张SIM卡是否具备防克隆功能,并且也无法通过ISO检测方法检测生产厂家对防克隆SIM卡的性能参数是否正确配置,因而也无法确定是否能够达到设计要求的防克隆功能。
(2)利用上述检测技术二对防克隆SIM卡检测时存在的问题:
防克隆SIM卡中新增加的功能是抵抗各种现有攻击,在正常使用时用户体验没有改变。因此,通过防克隆SIM卡的基本业务功能(如电话、短信等)和性能(如电压、鉴权时间等)不能判断SIM卡是否为防克隆SIM卡,更谈不上对防克隆SIM卡的功能进行测试。
(3)利用上述检测技术三对防克隆SIM卡检测时存在的问题:
这种方法需要将防克隆SIM卡返厂进行检测,根据测试的需要,需要调出一些机密数据(如SIM卡密钥),并且需要检测原生产流程中使用的数据,需要花费大量的时间、人力以及物力,检测效率很低,并且不利于防克隆SIM卡中数据的保密。
综上所述,现有技术都无法高效、准确地对防克隆SIM卡的防克隆功能进行检测。
发明内容
本发明提供一种检测防克隆电信智能卡的方法及装置,能够高效、准确地对防克隆电信智能卡的防克隆功能进行检测。
本发明实施例通过如下技术方案实现:
本发明实施例提供了一种检测防克隆电信智能卡的方法,包括:
将随机数发生器产生的h个随机数中的k个随机数的一个或多个字节修改为与所述电信智能卡的随机数检测加密EF文件中的至少一个随机数的相应字节相同,以使所述k个随机数成为攻击随机数;
输入包含k个攻击随机数的h个随机数到电信智能卡,并在每次输入随机数后读取预锁定计数器PreLock值,若在输入所述攻击随机数后读取的PreLock值相对于上次读取的PreLock值减小,则确定所述电信智能卡的攻击识别及捕获功能有效,否则无效;其中,h为正整数,k为小于等于h的正整数;
多次输入同一攻击随机数到所述电信智能卡,并在每次输入随机数后读取所述电信智能卡的鉴权结果,若所述鉴权结果满足随机性,则确定所述电信智能卡的反攻击功能有效,否则无效。
本发明实施例还提供了一种检测防克隆电信智能卡的装置,包括:
攻击识别检测模块,用于将随机数发生器产生的h个随机数中的k个随机数的一个或多个字节修改为与所述电信智能卡的随机数检测加密EF文件中的至少一个随机数的相应字节相同,以使所述k个随机数为攻击随机数,输入包含k个攻击随机数的h个随机数到电信智能卡,并在每次输入随机数后读取预锁定计数器PreLock值,若在每次输入所述攻击随机数后读取的PreLock值相对于上次读取的PreLock值减小,则确定所述电信智能卡的攻击识别及捕获功能有效,否则无效;其中,h为正整数,k为小于等于h的正整数;
反攻击检测模块,用于多次输入同一攻击随机数到所述电信智能卡,并在每次输入随机数后读取所述电信智能卡的鉴权结果,若所述鉴权结果满足随机性,则确定所述电信智能卡的反攻击功能有效,否则无效。
通过上述技术方案,本发明实施例根据电信智能卡的防克隆功能的特性对电信智能卡进行检测,电信智能卡在防克隆功能正常的情况下,输入攻击随机数,电信智能卡中的PreLock值相对于上次读取的PreLock值减小,因此,本发明实施例通过检测电信智能卡根据输入的攻击随机数得到的PreLock值,判断电信智能卡的攻击识别及捕获功能是否有效,若PreLock值减小,则确定电信智能卡的攻击识别及捕获功能有效,否则无效;进一步地,电信智能卡在防克隆功能正常的情况下,输入同一攻击随机数,其输出的鉴权结果为任意的随机数,因此,本发明实施例通过检测电信智能卡根据输入的同一攻击随机数得到的鉴权结果是否满足随机性,判断电信智能卡的反攻击功能是否有效,若满足随机性,则确定所述电信智能卡的攻击识别及捕获功能有效,否则无效。根据该技术方案能够准确、高效地检测电信智能卡的防克隆功能。
附图说明
图1为本发明实施例中防克隆SIM卡的基本结构图;
图2为本发明实施例中检测防克隆SIM卡的装置示意图;
图3为本发明实施例中检测防克隆SIM卡的装置应用于PC的示意图;
图4为本发明实施例中对SIM卡的防克隆功能进行检测的流程图;
图5为本发明实施例中对SIM卡识别及捕获攻击能力检测的流程图;
图6为本发明实施例中对SIM卡抵抗攻击者加扰能力检测的流程图;
图7为本发明实施例中对SIM卡执行反攻击能力检测的流程图;
图8为本发明实施例中对SIM卡的锁定功能检测的流程图。
具体实施方式
为了能够高效、准确地对防克隆电信智能卡的防克隆功能进行检测,本发明实施例提出了一种检测防克隆电信智能卡的方法及装置,下面以GSM通信方式下的SIM卡为例,并结合说明书附图及具体实施例对本发明技术方案的主要实现原理、具体实施过程及其对应能够达到的有益效果进行详细的阐述。
为了实现防克隆SIM卡的防克隆功能,需要在SIM卡中定义如下关键参数:
PreLock(预锁定计数器)、k、r、s、n、Pnext、Rand、攻击随机数定义规则。
其中,
PreLock:表示防克隆SIM卡被攻击的次数,即每次检测到攻击随机数,都执行PreLock=PreLock-1(计数器值减1),实际应用中,PreLock的初始值由系统自行定义,例如,可以将PreLock的初始值定义为100。
n:表示EF(Encryption File,随机数检测加密)文件的存储空间大小,即EF文件中可以存储的鉴权随机数的数量,n的具体数值可由防克隆SIM卡制造厂商预设。
s:表示预设的随机采样周期。
Pnext:随机数抽取点,假设第一个随机数抽取点为n,则后一个随机数抽取点Pnext=n+s。
Rand:表示鉴权随机数,一般为16个字节。
攻击随机数定义规则:表示用于攻击的鉴权随机数(以下简称攻击随机数)的定义规则,例如,当一个鉴权随机数Rand’与EF文件中的随机数Rand存在4个以上对应相同的字节,确定Rand’是攻击随机数。
参见图1,为目前防克隆SIM卡的基本结构图,该防克隆SIM卡包括:
鉴权随机数检测模块101、反攻击模块102、锁定模块103、鉴权随机数选取与置换模块104、鉴权模块105、EF文件106以及安全随机因子产生器107。其中,
鉴权随机数检测模块101,用于接收用户发送的鉴权随机数,并根据EF文件106中保存的鉴权随机数以及预设的攻击随机数定义规则对接收的鉴权随机数进行检测。
反攻击模块102,用于当鉴权随机数检测模块101检测未通过(即检测到攻击随机数)时,产生随机数并输出以干扰攻击者。
锁定模块103,用于当鉴权随机数检测模块101检测未通过(即检测到攻击随机数)时,对检测到攻击随机数的次数进行计数,即执行PreLock=PreLock-1,当PreLock=0时,执行锁定SIM卡的功能,锁定后的SIM卡不执行正常鉴权(即不经过鉴权模块105处理),都输出任意随机数。
鉴权随机数选取与置换模块104,用于在到达每一个设定的时间点时,获取安全随机因子产生器107产生的安全随机因子r,并根据随机函数以及随机采样周期s计算随机数抽取点Pnext,当到达Pnext时,获取SIM卡接收的鉴权随机数并保存到EF文件106中,保存时需要替换EF文件中已保存的鉴权随机数。
鉴权模块105,用于当鉴权随机数检测模块101检测通过(即未检测到攻击随机数)时,对该鉴权随机数执行COMP128-1鉴权。
EF文件106,用于存储鉴权随机数RAND,根据参数设置,可以存储n个鉴权随机数。
安全随机因子产生器107,用于产生安全随机因子r,并提供给鉴权随机数选取与置换模块104,该模块产生的随机数符合ANSI X9.17或NIST X9.82等国际标准。
上述模块中,鉴权模块105为普通SIM卡中的已有模块,其它6个模块均为防克隆SIM卡独有模块。并且,上述模块中,SIM卡具备鉴权随机数检测模块101、反攻击模块102、鉴权模块105以及EF文件106就可以实现简单的防克隆功能。
进一步地,鉴权模块105为标准模块,其执行鉴权之后,SIM卡就产生输出,并且标识鉴权结束。因此,一个实施例中,上述鉴权模块105可以连接在鉴权随机数选取与置换模块104之后。
为了对市场上SIM卡的功能进行检测,防止因生产而造成的功能缺陷,本发明实施例基于防克隆SIM卡的功能和其中的关键参数要求,设计攻击序列(包括至少一个攻击随机数)发送给SIM卡,并通过分析SIM卡反馈的鉴权结果以及读取SIM卡内的PreLock值,确定SIM卡的防克隆功能是否正确。具体地,本发明实施例对SIM卡的防克隆功能的检测主要包括以下几个方面:
(1)检测SIM卡是否具备攻击识别及捕获功能;
(2)检测SIM卡是否具备抵抗攻击者加扰的功能;
(3)检测SIM卡是否具备反攻击的功能;
(4)检测SIM卡是否具备锁定功能。
为了实现上述检测目的,本发明实施例设计了用于对防克隆SIM卡的防克隆进行检测的装置,参见图2,该装置从逻辑功能上划分,包括如下功能模块:
攻击识别检测模块201、防攻击者加扰检测模块202、反攻击检测模块203以及锁定检测模块204。
其中:
攻击识别检测模块201,主要检测防克隆SIM卡是否具备攻击识别及捕获功能,即检测SIM卡中的鉴权随机数检测模块101是否能正确识别及捕获攻击随机数。具体地,该模块用于输入包含k个攻击随机数的h个随机数到SIM卡,并在每次输入随机数后读取PreLock值,若在每次输入攻击随机数后读取的PreLock值减小(即相对于上次读取到的PreLock值减小),则确定SIM卡中鉴权随机数检测模块101的攻击识别及捕获功能有效,否则无效;其中,h为正整数,k为小于等于h的正整数。
防攻击者加扰检测模块202,主要检测SIM卡是否具备防攻击者加扰的功能,即检测SIM卡中的鉴权随机数选取与置换模块104、EF文件106以及安全随机因子产生器107。所谓防攻击者加扰即攻击者在两个攻击随机数之间插入无攻击性的随机数,试图绕开防御进行攻击的行为。具体地,防攻击者加扰检测模块202主要用于输入n个攻击随机数到SIM卡,并在每次输入随机数后读取PreLock值;其中,n为SIM卡中EF文件106的容量;将m个随机数分别重复输入到SIM卡,并在每次输入随机数后读取PreLock值,当重复输入随机数RANDi使PreLock值减小时,记录重复输入所述RANDi的次数Ji;其中,i为小于等于m的正整数;若输入n个攻击随机数过程中,读取PreLock值连续减小,且重复输入随机数RANDi的次数Ji小于2倍的随机采样周期,且将m个随机数分别重复输入的次数序列满足随机性,则确定SIM卡的防攻击者加扰功能有效,否则无效。
反攻击检测模块203,主要在SIM卡中的鉴权随机数检测模块101检测到攻击后,检测SIM卡是否具备反攻击的功能,即检测SIM卡中的反攻击模块102。依据防克隆SIM卡的性质,若输入的随机数为攻击随机数,则输出任意随机数。具体地,反攻击检测模块203用于多次输入同一攻击随机数到SIM卡,并在每次输入随机数后读取SIM卡的鉴权结果,若读取到的鉴权结果满足随机性,则确定SIM卡的反攻击功能有效,否则无效。
锁定检测模块204,主要检测SIM卡是否具备攻击锁定功能,即检测SIM卡中的锁定模块103。锁定后的SIM卡无论输入是否为攻击随机数,输出均为任意随机数。具体地,锁定检测模块204主要用于多次输入攻击随机数到SIM卡,并在每次输入攻击随机数后读取PreLock值,直到读取到的PreLock值等于0;多次输入同一随机数到SIM卡,并在每次输入随机数后读取SIM卡的鉴权结果,若鉴权结果满足随机性,则确定SIM卡的攻击锁定功能有效,否则无效。
上述检测SIM卡防克隆功能的装置可以在PC(Personal Computer,个人电脑)机环境中运行,如图3所示,该装置301需要与同样运行在PC机环境中的随机数产生器302以及随机性判断模块303配合以完成对SIM卡防克隆功能的检测,PC机通过读卡器304与待检测SIM卡连接。其中,随机性判断模块303为ISO(International Standardization Organization,国际标准化组织)标准支持的模块,该模块的基本工作原理包括:根据设定的随机性判断函数,判断接收的鉴权结果序列(至少包括一个鉴权结果随机数)在分布区间是否均匀分布,举个最简单的例子,假设分布区间在1~9之间,当前接收的随机序列为:1,3,5,6,7,8,通过判断在区间1~3、4~6、7~9之间分别分布2个随机数,则认为接收的鉴权结果序列满足随机性。实际应用中,该模块的判断方法涉及到方差、线性规律、复变规律等。
进一步地,一个实施例中,随机数产生器302以及随机性判断模块303可以位于本发明实施例提供的用于对SIM卡的防克隆功能检测的装置内部。
基于上述装置,本发明一个实施例中,对SIM卡的防克隆功能进行检测的过程如图4所示,包括如下步骤:
步骤401、攻击识别检测模块201对待检测SIM卡的攻击识别及捕获功能进行检测。
步骤402、判断步骤401的检测是否通过,若未通过,则执行步骤403,否则执行步骤404。
步骤403、确定待检测SIM卡不具备攻击识别及捕获能力,即待检测SIM卡的鉴权随机数检测模块101错误。
步骤404、防攻击者加扰检测模块202对待检测SIM卡抵抗攻击者加扰的能力进行检测。
步骤405、判断步骤404的检测是否通过,若未通过,则执行步骤406,否则执行步骤407。
步骤406、确定待检测SIM卡不具备抵抗攻击者加扰的能力,即待检测SIM卡的鉴权随机数选取与置换模块104、EF文件106或安全随机因子产生器107中的一个或多个模块出错。
步骤407、反攻击检测模块203对待检测SIM卡执行反攻击的能力进行检测。
步骤408、判断步骤407的检测是否通过,若未通过,则执行步骤409,否则执行步骤410。
步骤409、确定待检测SIM卡不具备执行反攻击的能力,即确定待检测SIM卡的反攻击模块102错误。
步骤410、锁定检测模块204对待检测SIM卡的锁定功能进行检测。
步骤411、判断步骤410的检测是否通过,若未通过,则执行步骤412,否则执行步骤413。
步骤412、确定待检测SIM卡不具备锁定功能,即待检测SIM卡的锁定模块103错误。
步骤413、确定待检测SIM卡具备防克隆能力,检测通过。
通过上述过程即可以完成对SIM卡的防克隆功能的检测,从而确定出错误模块,进而确定出错误模块中的错误参数。需要指出的是,上述流程仅为一个实施例,具体地,上述流程中的步骤401及后续流程、步骤404及后续流程、步骤407及后续流程、步骤410及后续流程的执行顺序可以调换。
下面对上述流程中的步骤401、步骤404、步骤407以及步骤410的检测过程进行详细说明:
攻击识别检测模块201对待检测SIM卡的攻击识别及捕获功能进行检测的过程,包括:输入包含k个攻击随机数的h个随机数到SIM卡,并在每次输入随机数后读取PreLock值,若在每次输入攻击随机数后读取的PreLock值减小,则确定SIM卡的攻击识别及捕获功能有效,否则无效;其中,h为正整数,k为小于等于h的正整数。
参见图5,一个实施例中,上述过程具体实现时可以通过如下方式:
步骤501、检测员指示攻击识别检测模块201对待检测SIM卡的攻击识别及捕获功能进行检测。
步骤502、攻击识别检测模块201请求随机数产生器产生鉴权随机数RAND。
步骤503、随机数产生器产生鉴权随机数RAND,并返回给攻击识别检测模块201。
步骤504、攻击识别检测模块201通过读卡器将鉴权随机数RAND发送给待检测SIM卡。
步骤505、待检测SIM卡通过鉴权模块105对鉴权随机数RAND进行鉴权处理,并将该鉴权随机数RAND保存到EF文件106中。
上述步骤502~步骤505是在SIM卡为空卡或EF文件106未满的情况下执行的。若EF文件已满,则需要通过多次(不超过2s次)重复输入RAND,以保证RAND能够被存入EF文件106中,其中,s为SIM的随机采样周期。
步骤506、攻击识别检测模块201请求随机数产生器产生16个鉴权随机数RANDi,0≤i≤16。
步骤507、随机数产生器产生鉴权随机数RANDi,并返回给攻击识别检测模块201。
上述步骤502~步骤507并无严格的执行顺序,此处限定仅为逻辑描述方便,具体地,攻击识别检测模块201可以请求随机数产生器同时产生RAND以及RANDi,并由随机数产生器同时返回。
步骤508、攻击识别检测模块201修改RANDi,使之与RAND有i个对应字节相同,即RAND1、RAND2......RAND16与RAND分别有1、2......16个对应字节相同。
该步骤具体包括:对比RANDi与RAND对应字节相同的数量,修改RANDi使之与RAND有且仅有i个对应字节相同,当i=1时,一个修改示例如下表:
RAND | 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F |
RAND1 | 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F |
修改后的RAND1 | 10 11 12 13 14 05 16 17 18 19 1A 1B 1C 1D 1E 1F |
由上表可以看出,RAND1与RAND修改前有0个对应字节相同,修改RAND1的第5个字节使之与RAND的第5个字节相同。需要指出的是,本发明实施例中,修改随机数的方法不仅限于上述示例,任何产生符合要求的随机数的方法均可实施。
步骤509、攻击识别检测模块201将修改后的RANDi通过读卡器发送给待检测SIM卡。
具体地,该步骤中,发送RANDi时,可以从RAND1开始发送。
步骤510、待检测SIM卡对接收的RANDi进行鉴权处理。
具体地,在待检测SIM卡的防克隆功能正常时,其对RANDi进行鉴权时,将RANDi与EF文件106中存储的鉴权随机数RAND比较,根据预设的攻击随机数定义规则确定RANDi是否为攻击随机数,当确定是时,将PreLock减1。
步骤511、待检测SIM卡将鉴权结果CKi返回给攻击识别检测模块201。
步骤512、攻击识别检测模块201接收CKi后,从SIM卡中读取PreLock。
步骤513、判断读取的PreLock与预设的变化是否符合,若不符合,则执行步骤514,否则执行步骤515。
依据定义,当RANDi与EF文件中保存的RAND有至少4个对应字节相同时,则确定RANDi为攻击随机数。根据上述步骤508对RANDi的修改规律,RAND0~RAND3与RAND相同的字节数少于4个字节,因此RAND1~RAND3为非攻击随机数,正常情况下,从SIM卡中读取的PreLock值不减少;而RAND4~RAND16与RAND有至少4对应字节相同,为攻击随机数,正常情况下,从SIM卡中读取的PreLock值减少。
步骤514、确定该SIM卡不具备攻击识别及捕获能力,即该SIM卡的鉴权随机数检测模块101错误。
步骤515、判断是否检测完所有的RANDi,若是,则执行步骤516,否则执行i=i+1,返回步骤509。
步骤516、确定该SIM卡的攻击识别及捕获功能符合设计要求,即检测通过。
步骤517、返回检测结果给检测员。
防攻击者加扰检测模块202对待检测SIM卡抵抗攻击者加扰能力进行检测的过程,包括:
(1)输入n个攻击随机数到SIM卡,并在每次输入随机数后读取PreLock值;其中,n为SIM卡的EF文件的容量;
(2)将m个随机数分别重复输入到SIM卡,并在每次输入随机数后读取PreLock值,当根据重复输入的随机数RANDi读取的PreLock值减小时,记录重复输入RANDi的次数Ji;其中,i为小于等于m的正整数;
若执行(1)的过程中读取的PreLock值连续减小,且执行(2)的过程中重复输入随机数RANDi的次数Ji小于2倍的随机采样周期,且执行(2)的过程中将m个随机数分别重复输入的次数序列满足随机性,则确定SIM卡的防攻击者加扰功能有效,否则无效。
上述判断过程中,确定SIM卡的防攻击者加扰功能有效即确定该SIM卡能够执行防攻击者加扰的功能,并且EF文件106对应的存储空间大小(即可存储的鉴权随机数的条数)满足设计要求。根据检测需要,一般情况下,EF文件106的存储空间不宜设计的太大,以免占用SIM卡的过多存储空间,也不宜设计的太小,如果太小对于攻击者来说,破解SIM卡的EF文件中的数据则变得相对容易。
其中,上述过程中(1)和(2)的执行顺序可调换。
参见图6,一个实施例中,上述过程具体实现时可以通过如下方式:
步骤601、检测员指示防攻击者加扰检测模块202对待检测SIM卡抵抗攻击者加扰的能力进行检测。
步骤602、防攻击者加扰检测模块202请求随机数产生器产生n个鉴权随机数。
该步骤中,n表示EF文件106的存储空间。
步骤603、随机数产生器产生鉴权随机数RAND1~RANDn,并返回给防攻击者加扰检测模块202。
步骤604、防攻击者加扰检测模块202通过读卡器将鉴权随机数RAND 1~RANDn发送给待检测SIM卡。
步骤605、待检测SIM卡通过鉴权模块105对鉴权随机数RAND1~RANDn进行鉴权处理,并将鉴权随机数RAND1~RANDn保存到EF文件106中。
根据检测需要,在执行上述步骤之前,需将EF文件的存储空间置空。
步骤606、防攻击者加扰检测模块202通过读卡器再次将鉴权随机数RAND 1~RANDn发送给待检测SIM卡。
该步骤中,也可以新产生n个随机数RANDi”(1≤i≤n),其中,RANDi”为RANDi对应的攻击随机数。
步骤607、待检测SIM卡对鉴权随机数RAND1~RANDn进行鉴权处理。
步骤608、防攻击者加扰检测模块202读取SIM卡检测RAND1~RANDn时对应的PreLock。
步骤609、判断读取到的PreLock的值是否连续减小,若判断否,则执行步骤610,否则执行步骤611。
步骤610、确定SIM的EF文件106中设置的参数n错误。
步骤606~步骤610的设计思想为:根据步骤605,EF文件106中保存了RAND1~RANDn,若EF文件106中的参数n设置正确,则再次输入RAND1~RANDn时,由于与EF文件106中保存的鉴权随机数相同,再次输入的随机数都被确定为攻击随机数,也即对应的PreLock应该连续减小。若PreLock未连续减小,则说明EF文件106中的参数n设置错误。
步骤611、防攻击者加扰检测模块202请求随机数产生器产生m个随机数RANDi’,0≤i≤m,此处m≥s。
步骤612、随机数产生器产生m个鉴权随机数RANDi’,并返回给防攻击者加扰检测模块202。
步骤613、防攻击者加扰检测模块202通过读卡器重复发送RANDi’到待检测SIM卡。
步骤614、待检测SIM卡每次接收RANDi’后,进行鉴权处理。
步骤615、防攻击者加扰检测模块202在SIM每次返回鉴权结果后,获取对应的PreLocki’。
步骤616、当接收的PreLocki’值减小时,记录发送RANDi’的次数Ji,判断Ji是否超过2s,若超过,则确定SIM卡的鉴权随机数选取与置换模块104错误;若未超过,判断是否向SIM卡发送完所有的RANDi’,若未发送完,执行i=i+1,返回步骤613,若发送完,执行步骤617。
步骤611~步骤616的设计思想为:SIM卡防攻击者加扰功能正常的情况下,SIM卡中的鉴权随机数选取与置换模块104每经过随机采样周期s,会对SIM卡输入的鉴权随机数采样并替换EF文件中的鉴权随机数,因此,此处若在2s次内PreLock未减少,则说明鉴权随机数选取与置换模块104错误。例如,输入RAND1、RAND1......RAND1,在输入1~2s次的某一次,达到随机采样周期,会将RAND1记录到EF文件,此后输入RAND1,则认为RAND1为攻击随机数,而在RAND1存入EF文件前,不会被认为是攻击随机数。
步骤617、统计J1~Jm,并通过随机性判断模块判断J1~Jm是否满足随机性,若不满足随机性,则确定安全随机因子产生器107错误,若满足随机性,则确定该SIM卡的防攻击者加扰的功能符合设计要求,即检测通过。
步骤618、将检测结果返回给检测员。
上述流程中,步骤606~步骤610可在步骤611~步骤617之后执行。
反攻击检测模块203对待检测SIM卡执行反攻击的能力进行检测的过程,包括:多次输入同一攻击随机数到SIM卡,并在每次输入随机数后读取SIM卡的鉴权结果,若鉴权结果满足随机性,则确定SIM卡的反攻击功能有效,否则无效。
参见图7,一个实施例中,上述过程具体实现时可以通过如下方式:
步骤701、检测员指示反攻击检测模块203对待检测SIM卡执行反攻击的能力进行检测。
步骤702、反攻击检测模块203请求随机数产生器产生鉴权随机数RAND。
步骤703、随机数产生器产生鉴权随机数RAND,并返回给反攻击检测模块203。
步骤704、反攻击检测模块203通过读卡器将鉴权随机数RAND发送给待检测SIM卡。
步骤705、待检测SIM卡对鉴权随机数RAND进行鉴权处理,并该鉴权随机数RAND保存到EF文件106中。
上述步骤702~步骤705是在检测到SIM卡为空卡或EF文件未满的情况下执行的步骤。若EF文件已满,则需要通过多次(不超过2s次)重复输入RAND,以保证RAND能够存入EF文件106中,其中,s为SIM卡的随机采样周期。
步骤706、反攻击检测模块203通过读卡器重复发送鉴权随机数RAND到待检测SIM卡m次。
该步骤中,也可发送与RAND对应的攻击随机数RAND’代替RAND。
步骤707、待检测SIM卡对RAND进行鉴权处理。
步骤708、对每次输入的RAND鉴权后,将鉴权结果CK返回给反攻击检测模块203。
步骤709、通过随机性判断模块判断SIM卡根据发送的m次RAND分别鉴权得到的m个鉴权结果CK1~CKm是否满足随机性,若满足,则确定SIM卡中的反攻击模块102正确,否则确定SIM卡中的反攻击模块102错误。
步骤710、将检测结果反馈给检测员。
步骤706~步骤709的设计思想为:根据步骤705,EF文件106中保存了RAND,后续再输入m次RAND,该RAND会被确定为攻击随机数,若反攻击模块102正确,则会输出m个任意随机数(即CK1~CKm),这些随机数满足随机性,因此,若判断SIM卡输出的CK1~CKm不满足随机性,则说明反攻击模块102未执行反攻击功能,即错误。
锁定检测模块204对待检测SIM卡的锁定功能进行检测的过程,包括:
多次输入攻击随机数到SIM卡,并在每次输入攻击随机数后读取PreLock值,直到所述PreLock值等于0;多次输入同一随机数到SIM卡,并在每次输入随机数后读取SIM卡的鉴权结果,若鉴权结果满足随机性,则确定SIM卡的攻击锁定功能有效,否则无效。
上述过程中,为了更好地对SIM卡的攻击锁定功能进行检测,一般在读取到SIM卡返回的ProLock值为0后,可以输入多个不同的随机数到SIM卡,每个随机数输入至少两次以上。参见图8,一个实施例中,上述过程具体实现时可以通过如下方式:
步骤801、检验员指示锁定检测模块204对待检测SIM卡的锁定功能进行检测。
步骤802、锁定检测模块204请求随机数产生器产生鉴权随机数RAND,以及RAND1~RANDi。
该步骤中,i一般取大于n/2的数,数量越多,越精确。
步骤803、随机数产生器产生鉴权随机数RAND,以及RAND1~RANDi,并返回给锁定检测模块204。
步骤804、锁定检测模块204通过读卡器将鉴权随机数RAND发送给待检测SIM卡。
步骤805、待检测SIM卡对鉴权随机数RAND进行鉴权处理。
步骤806、锁定检测模块204读取SIM卡中的PreLock。
步骤807、判断PreLock是否大于0,若是,则返回步骤804,否则执行步骤808。
步骤808、锁定检测模块204通过读卡器将鉴权随机数RAND1~RANDi发送给SIM卡,各t次,t>2。
步骤809、SIM卡对接收的随机数进行鉴权处理。
步骤810、锁定检测模块204获取SIM卡的鉴权结果CK1~CKti。
步骤811、锁定检测模块204通过随机性判断模块判断CK1~CKti是否满足随机性,若满足,则确定SIM卡中的锁定模块103正确,否则确定SIM卡中的锁定模块103错误。
步骤808~步骤811的设计思想为:根据步骤804~步骤807的执行结果,得到PreLock=0时,SIM卡中的锁定模块103需要对SIM卡锁定,锁定后,无论输入什么,都输出一个任意的随机数,因此,如果SIM卡被锁定后,对其输入2次或以上相同的随机数,其输出的随机数应该不同并且随机分布(即满足随机性),若不满足,则说明锁定模块103未执行锁定功能,即错误。
步骤812、将检测结果反馈给检测员。
通过上述技术方案,本发明实施例根据电信智能卡的防克隆功能的特性对电信智能卡进行检测,电信智能卡在防克隆功能正常的情况下,输入攻击随机数,电信智能卡中的PreLock值减小,因此,本发明实施例通过检测电信智能卡根据输入的攻击随机数得到的PreLock值,判断电信智能卡的攻击识别及捕获功能是否有效,若PreLock值减小,则确定电信智能卡的攻击识别及捕获功能有效,否则无效;进一步地,电信智能卡在防克隆功能正常的情况下,输入攻击随机数,其输入的鉴权结果为任意的随机数,因此,本发明实施例通过检测电信智能卡根据输入的攻击随机数得到的鉴权结果是否满足随机性,判断电信智能卡的反攻击功能是否有效,若满足随机性,则确定所述电信智能卡的攻击识别及捕获功能有效,否则无效。根据该技术方案能够准确、高效地检测电信智能卡的防克隆功能。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (8)
1.一种检测防克隆电信智能卡的方法,其特征在于,包括:
将随机数发生器产生的h个随机数中的k个随机数的一个或多个字节修改为与所述电信智能卡的随机数检测加密EF文件中的至少一个随机数的相应字节相同,以使所述k个随机数成为攻击随机数;
输入包含k个攻击随机数的h个随机数到电信智能卡,并在每次输入随机数后读取预锁定计数器PreLock值,若在输入所述攻击随机数后读取的PreLock值相对于上次读取的PreLock值减小,则确定所述电信智能卡的攻击识别及捕获功能有效,否则无效;其中,h为正整数,k为小于等于h的正整数;
多次输入同一攻击随机数到所述电信智能卡,并在每次输入随机数后读取所述电信智能卡的鉴权结果,若所述鉴权结果满足随机性,则确定所述电信智能卡的反攻击功能有效,否则无效。
2.如权利要求1所述的方法,其特征在于,还包括:
多次输入攻击随机数到所述电信智能卡,并在每次输入攻击随机数后读取PreLock值,直到所述PreLock值等于0;
多次输入同一随机数到所述电信智能卡,并在每次输入随机数后读取所述电信智能卡的鉴权结果,若所述鉴权结果满足随机性,则确定所述电信智能卡的攻击锁定功能有效,否则无效。
3.如权利要求1或2所述的方法,其特征在于,还包括:
输入n个攻击随机数到所述电信智能卡,并在每次输入随机数后读取PreLock值;其中,n为所述电信智能卡的EF文件的容量;
将m个随机数分别重复输入到所述电信智能卡,并在每次输入随机数后读取PreLock值,当根据重复输入的随机数RANDi读取的PreLock值相对于上次读取的PreLock值减小时,记录重复输入所述RANDi的次数Ji;其中,i为小于等于m的正整数;
若输入n个攻击随机数过程中,读取的PreLock值连续减小,且重复输入随机数RANDi的次数Ji小于2倍的随机采样周期,且将m个随机数分别重复输入的次数序列J1~Jm满足随机性,则确定所述电信智能卡的防攻击者加扰功能有效,否则无效。
4.如权利要求3所述的方法,其特征在于,输入n个攻击随机数到所述电信智能卡之前,还包括:
将所述电信智能卡的EF文件置空,通过向所述电信智能卡输入n个随机数将所述n个随机数存储于所述EF文件;
输入n个攻击随机数到所述电信智能卡,具体为:
输入所述n个随机数到所述电信智能卡。
5.一种检测防克隆电信智能卡的装置,其特征在于,包括:
攻击识别检测模块,用于将随机数发生器产生的h个随机数中的k个随机数的一个或多个字节修改为与所述电信智能卡的随机数检测加密EF文件中的至少一个随机数的相应字节相同,以使所述k个随机数为攻击随机数,输入包含k个攻击随机数的h个随机数到电信智能卡,并在每次输入随机数后读取预锁定计数器PreLock值,若在输入所述攻击随机数后读取的PreLock值相对于上次读取的PreLock值减小,则确定所述电信智能卡的攻击识别及捕获功能有效,否则无效;其中,h为正整数,k为小于等于h的正整数;
反攻击检测模块,用于多次输入同一攻击随机数到所述电信智能卡,并在每次输入随机数后读取所述电信智能卡的鉴权结果,若所述鉴权结果满足随机性,则确定所述电信智能卡的反攻击功能有效,否则无效。
6.如权利要求5所述的装置,其特征在于,还包括:
锁定检测模块,用于多次输入攻击随机数到所述电信智能卡,并在每次输入攻击随机数后读取PreLock值,直到所述PreLock值等于0;多次输入同一随机数到所述电信智能卡,并在每次输入随机数后读取所述电信智能卡的鉴权结果,若所述鉴权结果满足随机性,则确定所述电信智能卡的攻击锁定功能有效,否则无效。
7.如权利要求5或6所述的装置,其特征在于,还包括:
防攻击者加扰检测模块,用于,
输入n个攻击随机数到所述电信智能卡,并在每次输入随机数后读取PreLock值;其中,n为所述电信智能卡的EF文件的容量;
将m个随机数分别重复输入到所述电信智能卡,并在每次输入随机数后读取PreLock值,当根据重复输入的随机数RANDi读取的PreLock值相对于上次读取的PreLock值减小时,记录重复输入所述RANDi的次数Ji;其中,i为小于等于m的正整数;
若输入n个攻击随机数过程中,读取的PreLock值连续减小,且重复输入随机数RANDi的次数Ji小于2倍的随机采样周期,且将m个随机数分别重复输入的次数序列J1~Jm满足随机性,则确定所述电信智能卡的防攻击者加扰功能有效,否则无效。
8.如权利要求7所述的装置,其特征在于,所述防攻击者加扰检测模块还用于:
将所述电信智能卡的EF文件置空,通过向所述电信智能卡输入n个随机数将所述n个随机数存储于所述EF文件,并再次输入所述n个随机数到所述电信智能卡。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810247324XA CN101772045B (zh) | 2008-12-30 | 2008-12-30 | 一种检测防克隆电信智能卡的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810247324XA CN101772045B (zh) | 2008-12-30 | 2008-12-30 | 一种检测防克隆电信智能卡的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101772045A CN101772045A (zh) | 2010-07-07 |
CN101772045B true CN101772045B (zh) | 2012-06-06 |
Family
ID=42504559
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200810247324XA Active CN101772045B (zh) | 2008-12-30 | 2008-12-30 | 一种检测防克隆电信智能卡的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101772045B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107272540A (zh) * | 2017-07-29 | 2017-10-20 | 深圳市益鑫智能科技有限公司 | 一种用于水产品养殖的水质智能监测系统 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1735192A (zh) * | 2004-08-02 | 2006-02-15 | 华为技术有限公司 | 用户授权方法及其授权系统 |
-
2008
- 2008-12-30 CN CN200810247324XA patent/CN101772045B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1735192A (zh) * | 2004-08-02 | 2006-02-15 | 华为技术有限公司 | 用户授权方法及其授权系统 |
Also Published As
Publication number | Publication date |
---|---|
CN101772045A (zh) | 2010-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3208788B1 (en) | Method of protecting a circuit against a side-channel analysis | |
Chothia et al. | A traceability attack against e-passports | |
CN104838385B (zh) | 使用基于物理不可克隆功能的密钥产生系统的设备认证 | |
Shin et al. | Multiple RFID tags identification with M-ary query tree scheme | |
CN106533660B (zh) | 智能卡密钥的获取方法及装置 | |
US8994514B1 (en) | Event indicator creation using first and second sets of values | |
CN109151820A (zh) | 一种基于“一人一机一卡一号”的安全认证方法和装置 | |
CN103530785A (zh) | 一种基于nfc功能的双重防伪系统与方法 | |
CN110427424A (zh) | 业务数据核对方法、装置、计算机设备和存储介质 | |
CN109978571A (zh) | 基于区块链的溯源方法以及溯源装置 | |
CN108460875A (zh) | 一种基于动态二维码的门禁认证方法及装置 | |
EP3865997B1 (en) | System and method for generating and authenticating a physically unclonable function | |
CN109190404A (zh) | 一种数据脱敏系统 | |
CN105897417A (zh) | 加密数据输入方法及装置 | |
CN108829782A (zh) | 数据表清理方法、服务器及计算机可读存储介质 | |
CN108965324A (zh) | 一种短信验证码防刷方法、终端、服务器、设备及介质 | |
US20100199090A1 (en) | Secure Communication Between An Electronic Label And A Reader | |
CN101572889B (zh) | 一种sim卡鉴权的方法及装置 | |
CN106572074A (zh) | 一种验证码的校验方法和装置 | |
US20130318638A1 (en) | Method for Programming a Mobile End Device Chip | |
CN101364529A (zh) | 一种自动下载集成电路序列号码的方法 | |
CN106576040B (zh) | 设备固有信息的错误率控制方法 | |
CN101772045B (zh) | 一种检测防克隆电信智能卡的方法及装置 | |
JP5831203B2 (ja) | 個体別情報生成装置、暗号化装置、認証システム、及び個体別情報生成方法 | |
CN206961165U (zh) | 一种nfc防伪系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |