[发明专利]防止智能卡启动序列被修改的方法在审
| 申请号: | 201310684609.0 | 申请日: | 2013-12-13 |
| 公开(公告)号: | CN104714857A | 公开(公告)日: | 2015-06-17 |
| 发明(设计)人: | 赫松龄 | 申请(专利权)人: | 上海华虹集成电路有限责任公司 |
| 主分类号: | G06F11/10 | 分类号: | G06F11/10 |
| 代理公司: | 上海浦一知识产权代理有限公司 31211 | 代理人: | 戴广志 |
| 地址: | 201203 上海*** | 国省代码: | 上海;31 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 防止 智能卡 启动 序列 修改 方法 | ||
技术领域
本发明涉及一种防止智能卡启动序列被修改的方法。
背景技术
当前,智能卡在国民生活中的应用越来越多,与此同时,智能卡被攻击的情况也在变多。为了防止智能卡被攻击,智能卡芯片会实现大量的安全电路和安全相关的软件算法,通常在智能卡上电时,初始化安全电路的功能。在安全功能初始化完成后,智能卡能发现并阻止恶意攻击。为了在复杂的情形下,保证智能卡的安全性,需要大量的安全电路,这需要完成大量的安全初始化操作。每个安全电路的硬件是独立的,每个安全电路的初始化操作不会被攻击,但多个安全电路的初始化序列会遭到恶意攻击,如果攻击者在这个过程成功实施攻击,则智能卡的安全会受到威胁。
多个安全初始化序列,通常是通过软件连接的。如果在上电启动序列过程遭到恶意攻击,则部分安全电路会无法初始化,不能保证智能卡的安全性。
发明内容
本发明要解决的技术问题是提供一种防止智能卡启动序列被修改的方法,能够阻止在智能卡上电启动过程遭到的攻击。
为解决上述技术问题,本发明的防止智能卡启动序列被修改的方法,包括如下步骤:
步骤一、在智能卡芯片上设置一个安全序列寄存器,该安全序列寄存器的每两个位寄存一个安全序列标志;每个安全序列标志表示一个安全电路的状态;并且寄存校验码;
步骤二、所述智能卡芯片上电后,将所述安全序列寄存器寄存安全序列标志的位初始化为b01;
步骤三、依次完成所有安全电路的初始化,在每一安全电路初始化完成后,将相对应的所述安全序列寄存器的位修改为b10,同时修改校验码;
步骤四、检查所述安全序列寄存器的校验码是否正确,如果正确,则执行步骤五,否则初始化过程出错,进行错误处理;
步骤五、检查所述安全序列寄存器的值是否为b1010...10的序列,如果是表示初始化完成,否则初始化过程出错,进行错误处理。
本发明采用一个专用的安全序列寄存器处理启动序列的状态,每个有效状态信息由两个相反的位来保存,对所有的状态信息,增加了校验码,能够有效防止智能卡启动过程中,启动序列遭到攻击
本发明不需要增加复杂的硬件,通过嵌入式安全软件、安全电路驱动和安全电路三方面的配合,可以可靠的防止激光注入攻击;对其它类型的攻击,也能提高防范注入攻击能力。
在现有的方法中,启动序列的标志通常放在RAM中,这易受到激光注入攻击。本发明的方法,启动序列的标志放在专用的由硬件构成的安全序列寄存器中,由软件修改并检查安全序列寄存器的值,采用硬件和软件相结合的方式来防止启动序列过程的激光注入攻击。
附图说明
下面结合附图与具体实施方式对本发明作进一步详细的说明:
附图是所述防止智能卡启动序列被修改的方法初始化流程图;
具体实施方式
所述防止智能卡启动序列被修改的方法,是在智能卡安全电路中,设置一个安全序列寄存器,用于寄存启动序列标志,该安全序列寄存器的每两个位对应一个安全序列标志,一个安全序列标志表示一个安全电路的状态;也就是说安全序列寄存器中每两个位对应一个安全电路的状态。所述安全序列寄存器的位数为,大于或等于智能卡芯片中是安全电路数目的两倍,再加上校验码的位数。所述校验码,包括海明校验码或循环冗余校验码(CRC)。
结合附图所示,所述防止智能卡启动序列被修改的方法,初始化流程如下:
步骤一、上电时,所述安全序列寄存器初始化成b0101…01+校验码。
步骤二、设置计数器i=1。
步骤三、初始化安全电路i。在安全电路i初始化完成后,由软件将所述安全序列寄存器对应的位改为b10,电路同时自动修改安全寄存器的校验码。
步骤四、将所述计数器的值加1,i+1。
步骤五、判断是否还有安全电路需要初始化,若有则返回至步骤三,进行安全电路的初始化;否则执行步骤六。
步骤六、检查所述安全序列寄存器的校验码是否正确,如果正确,则执行步骤七,否则初始化过程出错,进行错误处理。
步骤七、检查所述安全序列寄存器的值是否为b1010...10的序列,如果是则执行步骤八,否则初始化过程出错,进行错误处理。
步骤八、初始化过程正确,完成初始化。
在智能卡的服务启动后,在进行所有的安全操作以前,需要做安全检查,方法如下:
步骤(1)、检查所述安全序列寄存器的校验码,如果安全序列寄存器的校验码错,表明智能卡的初始序列没有正确完成,做安全审计后,重新启动智能卡。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海华虹集成电路有限责任公司;,未经上海华虹集成电路有限责任公司;许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310684609.0/2.html,转载请声明来源钻瓜专利网。





