检测攻击的方法和具有攻击检测功能的装置的制作方法

文档序号:6340205阅读:324来源:国知局
专利名称:检测攻击的方法和具有攻击检测功能的装置的制作方法
技术领域
本发明涉及智能卡技术领域,尤其涉及一种检测攻击的方法和具有攻击检测功能 的装置。
背景技术
目前,对智能卡进行攻击的手段越来越多,如通过电压脉冲、时钟脉冲、复位信号 脉冲、改变环境温度、光照、光脉冲或电磁场脉冲等手段,来修改智能卡中某段存储空间的 数据、使智能卡硬件内存发生跳变或使智能卡算术逻辑器件异常输出。因此,为提高在智能 卡存储空间运行应用程序的安全性,需要检测智能卡中的数据是否被非法篡改,以避免应 用程序的运行结果与预期结果不一致的问题,但是目前还没有提出能够有效检测智能卡的 数据是否被篡改的方法。

发明内容
本发明提供一种检测攻击的方法和装置,以提供一种检测攻击的方法和具有攻击 检测功能的装置,以提高应用程序运行的安全性。一种检测攻击的方法,包括分配至少两段存储空间;分别在所述至少两段存储空间中运行相同的指令;比较所述至少两段存储空间中运行所述指令的运行结果;根据运行结果,确定是否受到攻击。一种具有攻击检测功能的装置,包括内存分配单元,用于分配至少两段存储空间;指令运行单元,用于分别在所述内存分配单元分配的所述至少两段存储空间中运 行相同的指令;攻击检测单元,用于比较所述指令运行单元在所述至少两段存储空间中运行所述 指令的运行结果,并根据所述比较单元比较的结果,确定是否受到攻击。本发明实施例中,分配至少两段存储空间,并分别在所述至少两段存储空间中运 行相同的指令,再比较所述至少两段存储空间中运行所述指令的运行结果;根据运行结果, 确定是否受到攻击。采用本发明技术方案,一方面,提供了一种较为简单的检测攻击的方 法,确保用于运行应用程序的存储空间的安全性,从而提高了应用程序运行的安全性和可 靠性;另一方面,检测攻击是在分配的至少两段存储空间中进行,从而不需要增加新的存储 空间和其他硬件设备,不需要对智能卡进行任何改进即可实现攻击的检测,实现简单。


图1为本发明实施例中检测攻击的方法流程图;图2为本发明实施例中分配存储空间的方法流程图3为本发明实施例中释放存储空间的方法流程图;图4为本发明实施例中运行数据导入指令的方法流程图;图5为本发明实施例中运行数据读取指令的方法流程图;图6为本发明实施例中运行内存操作指令的方法流程图;图7为本发明实施例中具有攻击检测功能装置的结构示意图。
具体实施例方式针对现有技术存在的上述技术问题,本发明实施例提供一种检测攻击的方法和具 有攻击检测功能的装置,该检测攻击的方法可包括分配至少两段存储空间;分别在所述 至少两段存储空间中运行相同的指令;比较所述至少两段存储空间中运行所述指令的运行 结果;根据运行结果,确定是否受到攻击。采用本发明技术方案,一方面,提供了一种较为简 单的检测攻击的方法,确保用于运行应用程序的存储空间的安全性,从而提高了应用程序 运行的安全性和可靠性;另一方面,检测攻击是在分配的至少两段存储空间中进行,从而不 需要增加新的存储空间和其他硬件设备,不需要对智能卡进行任何改进即可实现攻击的检 测。下面结合说明书附图对本发明技术方案进行详细的描述。参见图1,为本发明实施例中检测攻击的方法流程图,该方法包括步骤101、分配至少两段存储空间。步骤102、分别在所述至少两段存储空间中运行相同的指令。步骤103、比较所述至少两段存储空间中运行所述指令的运行结果,并根据运行结 果,确定是否受攻击。上述流程步骤101中,分配至少两段存储空间,可包括接收应用程序发送的存储 空间分配请求;根据所述存储空间分配请求,为所述应用程序分配至少两段存储空间。为所 述应用程序分配至少两段存储空间,可采用以下方式,从RAM (Random Access Memory,随机 存取存储器),和 / 或 NandFlash,和 / 或 Norf lash,和 / 或 EEI3ROM(Electrically Erasable Programmable Read-Only Memory,电可擦可编程只读存储器)中,动态或静态为所述应用 程序分配至少两段存储空间。动态为所述应用程序分配至少两段存储空间时,可根据应用程序发送的存储空 间分配请求,确定出该应用程序需要分配的存储空间的大小,并从同一存储器(如RAM、 NandFlash、Norflash或EEPR0M)中为该应用程序分配至少两段存储空间(分配的每段存 储空间大于或等于所述应用程序需要分配的存储空间大小);或者,为所述应用程序分配 的至少两段存储空间归属于不同的存储器中,如其中一段存储空间归属于RAM中,其他段 存储空间归属于NandFlash、Norflash或EEPROM中。静态为所述应用程序分配至少两段存储空间时,可采用以下方式预先针对每个变量分配固定的存储空间,针对变量已知的应用程序,确定出该应 用程序所包含的变量,并将该应用程序包含的各变量所对应的存储空间确定为与所述应用 程序对应的存储空间,并建立应用程序与其对应的存储空间的对应关系;当该应用程序发 送存储空间分配请求时,根据所述对应关系,确定出与所述应用程序对应的存储空间,并将 确定出的存储空间分配给该应用程序。如,预先建立应用程序与其对应的存储空间的对应
第二应用程序对应的存储空间
第一应用程序对应的存储空间较佳地,上述流程步骤102中,当所述指令为数据导入指令,且该数据导入指令中 携带有待导入数据和与所述至少两段存储空间中的每段存储空间对应的偏移量时;针对所 述至少两段存储空间中的每段存储空间,在该段存储空间中对应的偏移量处,写入所述待 导入数据;步骤103中,比较分别在所述至少两段存储空间中对应的所述偏移量处写入的 数据,若相同,则确定未受到攻击;若不相同,则确定受到攻击;和/或,上述步骤102中,当所述指令为数据读取指令,且该数据读取指令中携带 有与所述至少两段存储空间中的每段存储空间对应的偏移量时,针对所述至少两段存储空 间中的每段存储空间,从该段存储空间的所述偏移量处读取数据;步骤103中,比较分别从 所述至少两段存储空间中对应的偏移量处读取的数据,若相同,则确定未受到攻击;若不相 同,则确定受到攻击;和/或,上述步骤102中,当所述指令为内存操作指令,且所述内存操作指令中携 带有数据操作命令、与所述至少两段存储空间中的每段存储空间对应的至少一个偏移量, 分别在所述至少两段存储空间中运行相同的指令,包括针对所述至少两段存储空间中的 每段存储空间,根据所述数据操作命令将该段存储空间中对应的至少一个偏移量中的数 据,进行相应的数据操作;上述步骤103中,比较所述至少两段存储空间中进行所述数据操 作得到的结果,若相同,则确定所述未受到攻击;若不相同,则确定受到攻击
权利要求
1.一种检测攻击的方法,其特征在于,包括分配至少两段存储空间;分别在所述至少两段存储空间中运行相同的指令;比较所述至少两段存储空间中运行所述指令的运行结果;根据运行结果,确定是否受到攻击。
2.如权利要求1所述的方法,其特征在于,所述分配至少两段存储空间,包括接收应 用程序发送的存储空间分配请求;根据所述存储空间分配请求,为所述应用程序分配至少 两段存储空间。
3.如权利要求1所述的方法,其特征在于,所述指令为数据导入指令,所述数据导入指 令中携带有待导入数据和与所述至少两段存储空间中的每段存储空间对应的偏移量;分别在所述至少两段存储空间中运行相同的指令,包括针对所述至少两段存储空间中的每段存储空间,在该段存储空间中对应的偏移量处, 写入所述待导入数据;比较所述至少两段存储空间中运行所述指令的运行结果,根据运行结果,确定是否受 到攻击,包括比较分别在所述至少两段存储空间中对应的偏移量处写入的数据,若相同,则确定未 受到攻击;若不相同,则确定受到攻击。
4.如权利要求1所述的方法,其特征在于,所述指令为数据读取指令,所述数据读取指 令中携带有与所述至少两段存储空间中的每段存储空间对应的偏移量;分别在所述至少两段存储空间中运行相同的指令,包括针对所述至少两段存储空间中的每段存储空间,从该段存储空间中对应的偏移量处读 取数据;比较所述至少两段存储空间中运行所述指令的运行结果,根据运行结果,确定是否受 到攻击,包括比较分别从所述至少两段存储空间中对应的偏移量处读取的数据,若相同,则确定未 受到攻击;若不相同,则确定受到攻击。
5.如权利要求1所述的方法,其特征在于,所述指令为内存操作指令,所述内存操作指 令中携带有数据操作命令、与所述至少两段存储空间中的每段存储空间对应的至少一个偏移量;分别在所述至少两段存储空间中运行相同的指令,包括针对所述至少两段存储空间中的每段存储空间,根据所述数据操作命令将该段存储空 间中对应的至少一个偏移量中的数据,进行相应的数据操作;比较所述至少两段存储空间中运行所述指令的运行结果,根据运行结果,确定是否受 到攻击,包括比较所述至少两段存储空间中进行所述数据操作得到的结果,若相同,则确定所述未 受到攻击;若不相同,则确定受到攻击。
6.如权利要求1 5任一项所述的方法,其特征在于,在确定是否受到攻击之后,还包 括释放所述至少两段存储空间。
7.如权利要求1 5任一项所述的方法,其特征在于,在分配至少两段存储空间之后,还包括建立内存分配表,所述内存分配表中设置有多个表项,该多个表项分别与所述至少两 段存储空间一一对应;每个表项中存储有对应的存储空间的起始地址、长度和内存使用状态,所述内存使用 状态包括释放状态和占用状态。
8.一种具有攻击检测功能的装置,其特征在于,包括内存分配单元,用于分配至少两段存储空间;指令运行单元,用于分别在所述内存分配单元分配的所述至少两段存储空间中运行相 同的指令;攻击检测单元,用于比较所述指令运行单元在所述至少两段存储空间中运行所述指令 的运行结果,并根据所述比较单元比较的结果,确定是否受到攻击。
9.如权利要求8所述的装置,其特征在于,所述内存分配单元,具体用于接收应用程 序发送的存储空间分配请求;根据所述存储空间分配请求,为所述应用程序分配至少两段 存储空间。
10.如权利要求8所述的装置,其特征在于,当所述指令为数据导入指令时,所述数据 导入指令中携带有待导入数据和与所述至少两段存储空间中的每段存储空间对应的偏移 量,所述指令运行单元,具体用于针对所述至少两段存储空间中的每段存储空间,在该段 存储空间中对应的偏移量处,写入所述待导入数据;所述攻击检测单元,具体用于比较分别在所述至少两段存储空间中对应的偏移量处 写入的数据,若相同,则确定未受到攻击;若不相同,则确定受到攻击。
11.如权利要求8所述的装置,其特征在于,当所述指令为数据读取指令时,所述数据 读取指令中携带有与所述至少两段存储空间中的每段存储空间对应的偏移量;所述指令运 行单元,具体用于针对所述至少两段存储空间中的每段存储空间,从该段存储空间中对应 的偏移量处读取数据;所述攻击检测单元,具体用于比较分别从所述至少两段存储空间中对应的偏移量处 读取的数据,若相同,则确定未受到攻击;若不相同,则确定受到攻击。
12.如权利要求8所述的装置,其特征在于,当所述指令为内存操作指令时,所述内存 操作指令中携带有数据操作命令、与所述至少两段存储空间中的每段存储空间对应的至少 一个偏移量;所述指令运行单元,具体用于针对所述至少两段存储空间中的每段存储空间,根据 所述数据操作命令将该段存储空间中对应的至少一个偏移量中的数据,进行相应的数据操 作;所述攻击检测单元,具体用于比较所述至少两段存储空间中进行所述数据操作得到 的结果,若相同,则确定所述未受到攻击;若不相同,则确定受到攻击。
13.如权利要求8 12任一项所述的装置,其特征在于,还包括内存释放单元,用于在所述攻击检测单元确定是否受攻击之后,释放所述至少两段存 储空间。
14.如权利要求8 12任一项所述的装置,其特征在于,还包括内存分配表建立单元,用于在所述内存分配单元分配至少两段存储空间之后,建立内存分配表,所述内存分配表中设置有多个表项,该多个表项分别与所述至少两段存储空间 一一对应;每个表项中存储有对应的存储空间的起始地址、长度和内存使用状态,所述内存 使用状态包括释放状态和占用状态。
全文摘要
本发明公开了检测攻击的方法和具有攻击检测功能的装置,以提高应用程序运行的安全性。该方法包括分配至少两段存储空间;分别在所述至少两段存储空间中运行相同的指令;比较所述至少两段存储空间中运行所述指令的运行结果;根据运行结果,确定是否受到攻击。采用本发明技术方案,确保用于运行应用程序的存储空间的安全性,从而提高了应用程序运行的安全性和可靠性。
文档编号G06F12/14GK102063387SQ20101060927
公开日2011年5月18日 申请日期2010年12月27日 优先权日2010年12月27日
发明者于付真 申请人:北京握奇数据系统有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1