首页> 中国专利> 具有使用保密数据的可修改计数器的安全电子单元

具有使用保密数据的可修改计数器的安全电子单元

摘要

本发明的安全电子单元包括一个模块(16),用来存储电子单元授权的使用保密数据的最大次数,还包括一个用来在电子单元投入使用后根据接收预定的命令(CMD),修改所述的最大使用次数的模块,还有一个接收预定命令的模块(17),它能检验这个命令是来自授权第三人的。本发明特别用于微电子卡。

著录项

  • 公开/公告号CN1771519A

    专利类型发明专利

  • 公开/公告日2006-05-10

    原文格式PDF

  • 申请/专利权人 奥贝蒂尔卡系统股份有限公司;

    申请/专利号CN200480009534.5

  • 申请日2004-03-24

  • 分类号G07F7/10(20060101);H04Q7/32(20060101);

  • 代理机构中国国际贸易促进委员会专利商标事务所;

  • 代理人郭思宇

  • 地址 法国巴黎

  • 入库时间 2023-12-17 17:16:35

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2008-03-19

    授权

    授权

  • 2006-07-05

    实质审查的生效

    实质审查的生效

  • 2006-05-10

    公开

    公开

说明书

技术领域

本发明涉及的是使用保密数据的可修改计数器的一种安全电子单元。

本发明属于如微电路卡那样的电子单元使用安全领域,然而,适用于各类安全保护的电子单元。

上面所述的安全保护电子单元例如可以是安全微电路卡,例如,银行卡,进入监控卡、识别卡、SIM卡(用户识别模块,英语为Subscriber Identification Module)或者是安全保护的存储卡(例如SD卡,Panasonic的“Secured Digital”),也可以是安全保护的PCMCIA卡(个人计算机内存卡国际协会,英语为“Personal Computer Memoryeard International Architecture”,例如IBM4758卡)。所述的安全电子单元还可以是一种安全电子护照,就是说,是一种通常的纸介质形成的护照,但其中的某一页上加插有一个含有护照安全装置的无接触微电路。

本发明在于防止偷取安全电子单元中所含的保密数据,例如密钥或者证书,以对安全电子单元进行安全保护。

有多种形式的攻击能够偷取存储在安全电子单元的存储器中的保密数据,例如可以举出:各种DPA攻击(微分功率分析,英语为“Differential power Analysis”)和EMA(电磁分析,英语为“ElectroMagnetic Analysis”)。

为了实施这些攻击,偷密者通常是重复向其攻击的安全电子单元发送命令,使其使用其中的保密数据进行一种算法,典型的是一种验证算法。

大多数攻击在能够解读保密数据之前需要上万次验证,比如100000多次的验证。

在微电路卡方面,偷取保密数据的存取可以对一个微电路卡进行“克隆”,这种对微电路卡的克隆在于偷取记录于原始微电路卡的存储器中的保密信息,然后将这保密信息拷贝在一个(或多个)次级微电路卡上,最终偷盗使用,而使原卡的持有人一无所知。

这就对各种类型的安全电子单元指出了严重的安全问题,例如银行卡、特别是在这个方向要求高的用于移动无线通信的各种微电路卡,或者是各种安全电子护照(存取保密数据就可以制造假护照)。

为了阻止偷取一个电子单元中的保密数据,技术人员通常使用一个计数器来计数并限制这个保密数据使用的次数。例如文献DE-A-19818998和WO-A-9956253提出了这种限制。在微电路卡方面,如文献DE-A 198 18 998所批露的那样,其解决办法是对验证的次数确定一个限值,这个限值或是大于这个卡的全部寿命中所执行的预定的验证次数,或是小于为偷取这个卡的密钥所需的验证次数。

因此要将验证的次数限制在几万,以避免使一个攻击能够实现发现密钥所需的验证次数。对于一种遵守GSM规范的SIM型移动无线通信微电路卡,其每次呼叫的开始例如都需要一次验证,可将其验证的次数限定在54720,这大约为五年内每天呼叫大约三十次。

然而,已经出现新类型的攻击,特别是各种DFA攻击(微分错误分析,英语为Differential Fault Analysis),这种攻击获取安全保护数据所用的次数远远小于这个保密数据的使用次数,对于某些算法小于十几次,有时只需2或3次验证,对于其它的更为可靠的算法也低于百次。

同时,对于用于移动通信的微电路卡,特别是各种SIM卡,某些操作者使用一种GSM标准中的名为COMP128的算法,其中有两个版本:COMP128-1,COMP128-2,这种算法以其安全性特别低而知名。进行几千次验证,经常小于5000次或10000次验证,如能花费几个小时的攻击,就能偷取记录于卡中的保密密钥。

对于一个操作者的SIM移动通信微电路卡来说,这个问题是相当严重的。例如欧洲遵守GSM标准,这样的偷取攻击通常是能够在将卡卖给顾客之前实现的。偷取者可以向别的操作者,例如亚洲人提供他无偿使用的克隆卡,这个操作者就授权按照GSM标准中称为漫游(英语为“roaming”)的方式进行通信。按照这种漫游方法,亚洲的操作者允许检验欧洲操作者卡的人在其复盖的区域内打电话,通过和欧洲操作者的协作,检验欧洲操作者在卡中验证所用的密钥。这种漫游方法一般并不使亚洲操作者立即达到欧洲操作者的通信的金额,或者检验预付卡的情况下相应帐目中还有的余额,因而这个偷取者在一段时间内不会被发现。

这样,对于COM128算法,为偷取密钥只需5000或10000次的偷取验证,偷取密钥所需要的验证数目完全低于这个卡的寿命中预定要实现的验证数目。在这种情况下,不可能为验证的次数设定一个限值,即使其高于卡的全部寿命中执行验证的预定数目,但又低于偷取其中的密钥所需的验证的数目。这就一定是要么选择一个限值低于卡的整个寿命内预定要实现的验证数目,例如5000次的验证,这就担心一个卡不是因为遭遇攻击而不再能自我验证;要么选取一个限值高于偷取密钥所需的验证数目,例如6000次验证,而在此情况下,保密数据的安全就得不到保证。

当根据应用,希望抗击只需几十次验证的DFA攻击的情况下,其局面就更为严重。

有一种办法可以是对验证次数选取一个中间限值,超过这个数值,这个卡就会向操作者发送一个信号,使之改为一个新保密数据。将这个中间限值定得较现在的技术人员认为的值还要低,例如1000次验证。而这另一方面操作人员必须检验这个卡没有向他发送信号,以便异常频繁更换新的保密数据的信号,这将是微电路卡遭到攻击的标志。

然而,这种方法是既花钱又复杂,特别是这要涉及到密钥修改的管理,例如在一个无线通信网络中特别要在网络中不同组成元件间同步的问题,因为要将新的密钥同时向网络中的所有成员发布其在微电路卡中修改。

发明内容

本发明的目的在于使用一种简单的方法消除前面举出的弊端。

为此,本发明提出一种安全电子单元,其中有一个模块用于存储使用该电子单元存储的保密数据的最大授权次数,值得注意的是其中还包括一个模块,用于在这个电子组使用之后根据接收到预定的操作修改最大次数。这个电子单元还有一个命令接收模块,适于检验来自授权第三者的命令。

这样,在使用这个安全电子单元的时候,例如当这个安全的电子单元是一个微电路卡并在将这个卡个人化时,将一个计数器初始化在一个给定的验证次数上,例如1000,然后每次使用保密数据都减少这个数值。当这个计数器的值到达零时,则这个安全电子单元便可以禁止保密数据的新的使用。授权使用最大数目的修改或更新可以是对这个计数器重新初始化,例如重新赋予的值为1000或2000。

也可以使用一个计数器,在安全电子单元开始使用时将它的值初始化为零,然后保密数据的每次使用都使计数器的值增加,当计数器达到存储在这个安全电子单元里一个最大值时,例如1000,这个卡便能禁止对其中的保密数据的新的使用。授权使用最大数目的修改或更新可以是对这个计数器重新初始化,赋予值0或修改最大值,例如为2000。

修改最大值还可能是考虑修改前保留的授权验证最大数目。可以例如在上述最大值上,例如修改前等于500,加上修改命令中已知的一个增量,例如10000。

上面所述的接收命令模块可使用的机制对下述的情况是不可能的:

-非授权第三者截获的命令的拒绝;

-非授权第三者对一个命令的修改;以及

-非授权第三者所发射的一个命令的执行。

典型的讲,在这种安全电子单元中的这种安全命令接收模块是由一个为这作用而开发出来的一种应用,利用一个密钥、多种密码术算法(DES、AES、RSA非限制性例子),以及多种散列函数(MD5或SHA1,非限制性例子)。在微电路卡这种特殊的情况下,其接收模块和修改模块可以是用一种存储在这个卡中的应用来实施的,而且可以是用和ISO7816标准相适应的方式向这个卡发送APDV命令来执行的。在微电路卡带有一个Java虚拟机的情况下,接收模块和修改模块由一个java小应用程序构成,同样可以利用向这个卡发送一个APDU命令来执行。

于是,按照本发明,不需改变保密数据,可以简单地更新授权的验证的最大次数,只要在适当的时间进行更新,就可以阻止使用足够验证次数偷取保密数据的攻击。

在用于移动通信的微电路卡领域,操作者可以在卡售出之时起,就是说在他接收到销售人员发出的有关卡持有人的所有的踪迹(coordonnée)起,每隔一段时间修改一次授权验证的最大数目。可以将这个卡的验证次数初始化为某一个数目,以能在持有人正常的几天中使用,这就使操作者接收到它的踪迹。这样,可在对卡个人化的时候将授权验证最大次数初始化为200次验证,让持有人能在一个星期中进行通信,在操作者接收到持有人的踪迹时便每隔一定时间赋给授权验证的最大数目,所给的数值例如大于这个微电路卡的整个寿命中预定的验证的次数。这样就完全避免了这个卡在售给持有人之前就被克隆的危险。

作为变种,移动通信的操作者可以分阶段地逐步对保密数据使用的授权最大次数进行修改,随着SIM卡的持有人的信誉的逐步得到证实而给他的次数的数值逐渐加大,例如在几个月的使用中这个持有人在付费方法没有任何意外。

操作者还可以估计持卡人根据其耗费来实施的验证次数,当持卡人估计他的微电路卡的授权验证数目接近用完时便更新一次最大验证次数。

操作者还可以用定期的方式赋予授权的验证最大次数,例如每六个月一次,使用修改模块授权最大验证数为5000。

方便的是使保密数据的授权使用的最大数目小于这个电子单元的整个寿命中预计的使用数目。

这样就可以将保密数据使用的最大次数限制在一个足够低的数目,使得任何类型的攻击都不能实施,例如实施DFA型攻击,亦或根据COMP128算法。修改模块在选定的时间实施对最大次数的修改使这个卡在不遭到攻击时永远不能达到这个限定的最大次数。

根据方便的但非限制性的方法,保密数据的使用在于对安全电子单元的验证操作。实际上,现行的大多数安全通信系统都是建立在对安全电子单元中存储的密钥的验证上面,这可以是经典的验证模式,例如“询问-应答”模式(英语为“challenge-response”)。在这种模式中,服务器向安全电子单元发送一个随机数,后者运用密码算法和其中的密钥获得一个数并将这个数返回,所述的密码术算法例如可以是如AES、DES、RSA密码术算法中的某一种,也可以是无线通信操作者所用的算法,例如称为COMP128-1,COMP128-2,COMP128-3的用GSM标准所定义的算法,也可以是称为“milenage的用UMTS标准定义的算法,也可以是用CDMA标准定义的称为“cave”的算法。在无线通信领域,微电路卡就是这样在通信网络中被验证的。

在别的实施方式中,使用所述的数据在于加密、解密或签名等操作。

方便地说,授权使用的最大次数的值在1到15000之间,这个数值可以是在安全电子单元开始使用时赋予的,或如果这个安全电子单元是一个微电路卡时在个人化之后,或是在授权验证最大数目的初始化的过程中赋予的。这样可以保护防止对安全水平比较低的算法的各种攻击,例如根据GSM标准定义的COMP128算法,需要上万次验证,可以通过一次偷取攻击而获得密钥。

方便地说,授权使用的最大次数的值在1到500之间。这个数值同样可以是在安全电子单元开始服务时赋予,如果这个安全电子单元是一个微电路卡时也可以在将这个卡个人化时赋予,也可以是在个人化后对最大次数初始化期间赋予。这样就可以在遭遇只需相对很少的验证次数就能偷取安全电子单元保密数据的DFA攻击时得到保护。这样的攻击在事实上就不能在直到下一次修改授权的最大使用次数之前实现获取这个保密数据所需要的这个保密数据的使用次数。

例如,如果微电路卡为一银行卡,所用的验证模式是建立在AES密码术算法上的,可以在将这个卡个人化时把验证的最大次数确定为30,存储于这个银行卡的EEPROM存储器中。如果验证的模式是建立在DES算法上,则可以将验证的最大次数确定为5,因为这种算法抗DFA攻击的能力要低得多。如果所用密码术算法的抗攻击能力极端地弱,则可设想将授权的最大验证次数确定在同样低的数值1。在这种极端情况下,在每次验证后就都要重新赋予一次使用次数。

方便地说,所述的电子单元包括一些装置,当授权的最大使用数低于一个给定的阈值时便向例如服务器目的地发送一个修改授权的最大使用数目的请求。典型的这些装置是在电子单元中的ROM或EEPROM存储的应用。所述的请求例如是以一种SMS形式(短信服务,英语是“short message service”)发送,其中含有一个安全消息。

服务器在接收到这个请求,检验出这个要求在没有对卡进行攻击的情况下是可接受的之后,便向这个电子单元发送前面讲到的预定的命令,修改最大次数的值,以使电子单元能继续运行。这样就完全避免了安全电子单元在授权使用的最大次数到0的时候而可能出现的阻断。

在本发明的一种实施方式中,安全的电子单元是一个微电路卡,而修改模块是这个卡被个人化之后开始使用的。实际上这种类型的电子单元特别适于本发明。各种类型的微电路卡在各种安全应用方面(银行的、无线通信、识别,......)有非常广泛的应用,且具有便携性(将之放在钱包内,可能被偷和遭受攻击),应该特别对偷取存于其存储器中的保密数据的攻击进行防护。在微电路卡的情况下,亦有可能在个人化之后对最大的验证次数进行修改以改善其安全性能。

在第一种实施例中,所述的微电路卡是在移动通信网中的一种用户识别卡,启动修改最大验证次数的命令可以是在根据SMS协议接收的,所述的SMS协议可以是根据SMS标准或是MMS标准(多媒体消息传送服务,英语为“Multimedia messaging service”),例如通过与GSM标准相适应的一个命令包络。这样就能够由移动通信操作者通过它的网络非常简单地就对持有人的识别卡的授权的最大验证次数进行初始化。当然,对于其它实施方式,这种命令可以是由接收模块通过有线网络或是局域网接收到的。在移动通信网络中的一个用户识别卡可以是一种根据GSM标准的SIM卡,也可以是依据各种标准,如CDMA、TDMA、UMTS的卡。

为了攻击这样的系统,一个攻击者可以观察等待下一次对授权的使用最大次数的修改,或他需要的修改,以期保密数据使用的数目使他能够偷取这个保密数据。如果授权的使用的最大次数是以一个随机的和保密的值修改的,则使实现这样的攻击相当困难。例如在10、100、500、1000、2000和5000这些数字中抽取某一个数值,为获取这个保密数据所需的这个保密数据的使用次数为10000。

为了使得这种方法有效,在我们的10、100、500、1000、2000和5000这个例子中所选取的随机数应该是保密的,就是说这不能为攻击者知道。为此赋予授权使用最大次数的值可以是加密的。如果对保密数据使用的授权最大次数的修改的命令是加密的,自然赋予授权使用最大次数的值也是加密的。这个随机数值也可以是由微电路卡来选择。显然在向这个微电路卡赋予随机数值运行时便实现了对授权的使用最大次数的后面的修改。例如可以设想,在安全电子单元是一个SIM卡的情况下,假如选取的随机数为100,并且预计用户每天使用30次验证,下一次对使用最大值的修改是在3天以后。

方便地说,一个无线通信操作者的用户微电路卡,在授权的保密数据的使用数低于一个给定的阈值时,例如是将验证的次数的最低阈值定为50,则例如用SMS形式的信息向这个操作者发送修改授权使用最大次数的请求。

当所述的操作者接收到这个请求的时候,他可以检验这个请求并非是由一个攻击发动的。例如他检验这个请求并非是这个卡刚刚发送的,或者通过这个卡所实现的验证的演化来检验这个请求的相关性(例如以费率单位察看这个持有人的消费)。按照这种方法,仅当需要修改授权的最大使用次数时才进行这个修改,这样就减少了SMS发送的次数,从而可以减少修改的总的费用。

在这种实施方式中,上述的阈值可以方便地由微电路卡随机生成。在相反的情况下,一个攻击就可以检测一个这样的修改请求的发送,并且推导剩余的授权的验证次数。

当然,在无线通信领域,授权的使用最大次数不需要由操作者来实现,例如可以是由一个服务供应商来实现,在这种情况下,这个供应商应该拥有用来发送修改安全命令的密钥。

附图说明

在后面给出的示例性的但非限制性的特别的实施例的详细描述中,可以看出本发明的别的观念和利益。在后面的描述中参考的附图如下:

图1用示意性方式示出一个根据本发明的安全电子单元,在一个特别的实施方式中这个电子单元是关于微电路卡的;而

图2用示意性方式示出图1所示类型的电子单元根据本发明的接收的修改授权的验证最大次数的命令。

具体实施方式

在图1所示的这种实施方式中,根据本发明的安全电子单元是一个微电路卡10,其中有一个中央处理单元CPU(美语为“CentralProcessing Unit”)和一个密码单元13,按照传统的方式一个RAM存储器、一个EEPROM存储器、一个ROM存储器和一个输入/输出端口与它们相连接。

在这个非限制性的例子中,涉及到一个根据GSM标准的SIM卡。EEPROM存储器中有一个用专用于每个卡的密钥CLE1根据ISO7816标准加以安全保护的文件FICH1,文件FICH1中有一个记录器(enregistrement)16,存储着授权使用的最大次数,这里是卡的验证操作。

每进行一次验证,这个卡的操作系统(存储于ROM)就将上述的记录器16递减。自从这个记录器所存的数目为零,这个操作系统就禁止新的验证。在制造商将这个卡个人化时,便将这个记录器初始化为200。存储器EEPROM还存储一个修改授权的验证最大次数的接收命令的计数器CPT1。

根据本发明,所述的操作系统还在ROM存储器中包括一个应用17,用于接收并执行修改授权的验证最大次数的命令。应用17可以根据GSM标准为SMS协议的命令包络激活。

所述的应用17例如还可以在授权的最大验证数目低于一个确定的阈值时向服务器发送一个修改这个数目的请求。作为变种,所述的操作系统还可以包含一个不同于应用17的另一个应用,该另一个应用专门用于向服务器发送修改授权验证最大次数的请求。

接收的所述的命令包络可以包含有如图2所示的CMD数据,这些CMD数据为应用17所接收,其中有:

-授权验证最大次数的新值V,

-一个修改的数目CPTO,能够禁止拒绝非授权的第三者截取的命令,以及

-密钥CLE1。

所有的这些数据是用密钥CLE2加密的。这些密钥是每个卡所特有的,存储在这个微电路卡的EEPROM存储器中(见图1)。

移动通信的操作者接收到一个持有卡10的新的持有人的信息,通常的检验之后,就是说在协议生效之后,便向这个卡10发送一个SMS信息,其中含有CMD数据,将应用17激活,赋予V一个值,这个值等于这个卡在整个寿命中预计要验证的次数,例如60000。

在操作者那边(图中没有画出),操作者保持一个修改信息计数器,每发送一次授权的最大验证次数的修改信息,这个计数器都递增。用发送SMS在CPT0记录器中对操作者的计数器赋值,操作者还向他所制造的每一个卡存储密钥CLE1和CLE2。

所述的卡10在接收到这个SMS信息时,便启动应用17用密钥CLE2将CMD信息解密,并将记录器CPTO的值和存于EEPROM的CPTI的记录值比较。如果存储在CPTO的值大于存储在CPTI的值,则这个信息并非是一个拒绝,且操作系统将CPTO的值赋予记录器CPTI,然后使用密钥CLE1打开文件FICH1,并将V的值赋予记录器16,在我们的例子中,此值为60000。

对用来打开文件FICH1的密钥CLE1的检验能够检验所发信息的真实性,就是说能够检验出SMS是否为非授权的第三者所发送或修改。事实上,攻击者不使用密钥CLE1就发送一个任意的CMD信息,他希望非常幸运,解密V的值很大,例如为200000,这就能使他实现多次数的验证。作为变种,可以不使用密钥CLE1,而信息CMD中含有一个根据散列函数和加密函数而得到的签名,以对上述的消息进行证实。

这样操作者就完全避免了在将卡售给用户之前和移动通信操作者使协议生效之前就实现的克隆。

作为变种,所述的命令包可以为一个文件FICH1选择命令所取代,这个选择命令即为跟随在记录器16的修改命令后面的根据ISO7816标准的SELECT命令,亦即在ISO7816标准中的UPDATERECORD命令。SMS可以简单地根据GSM03.48加密。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号