CN110276213A - 一种智能卡及其敏感结果的存储和校验方法 - Google Patents

一种智能卡及其敏感结果的存储和校验方法 Download PDF

Info

Publication number
CN110276213A
CN110276213A CN201910549400.0A CN201910549400A CN110276213A CN 110276213 A CN110276213 A CN 110276213A CN 201910549400 A CN201910549400 A CN 201910549400A CN 110276213 A CN110276213 A CN 110276213A
Authority
CN
China
Prior art keywords
result
sensitive
buffer area
secure storage
storage buffer
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.)
Granted
Application number
CN201910549400.0A
Other languages
English (en)
Other versions
CN110276213B (zh
Inventor
袁桃鸿
何碧波
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hengbao Co Ltd
Original Assignee
Hengbao Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hengbao Co Ltd filed Critical Hengbao Co Ltd
Priority to CN201910549400.0A priority Critical patent/CN110276213B/zh
Publication of CN110276213A publication Critical patent/CN110276213A/zh
Application granted granted Critical
Publication of CN110276213B publication Critical patent/CN110276213B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6227Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Medical Informatics (AREA)
  • Storage Device Security (AREA)

Abstract

本申请公开一种智能卡及其敏感结果的存储和校验方法,涉及智能卡领域。所述智能卡包括控制元件和存储元件;控制元件包括数据存储模块、数据读取校验模块;数据存储模块执行敏感结果的存储方法;数据读取校验模块执行上述敏感结果的读取校验方法;存储元件用于为敏感结果分配安全存储缓存区。本申请采用将与安全算法相关的敏感结果存储在安全存储缓存区中,在校验时通过验证安全存储缓存区中的敏感结果的合法性确定校验是否成功的方法,能够增加攻击者的攻击难度,保证安全算法运行和校验的安全性。

Description

一种智能卡及其敏感结果的存储和校验方法
技术领域
本申请涉及智能卡领域,尤其涉及一种智能卡及其敏感结果的存储和校验方法。
背景技术
智能卡是内嵌有微芯片的卡片统称,包括一个微电子芯片,通过读卡器进行数据交互。如Java智能卡,作为一种嵌入式安全设备中的操作系统,提供了丰富的算法编程接口(API)供应用开发方Applet进行调用。
随着智能卡行业的广泛应用以及相对应的攻击技术的发展,攻击者在未知用户密钥、密码等敏感信息的情况下,通过修改算法的敏感结果实现对智能卡的攻击。现有的智能卡也对该安全问题提供了很多方案,但都不尽如人意。
例如,有些智能卡应用在运行过程中,敏感结果返回保存至智能卡方法栈帧中的参数区或局部变量区,供智能卡应用的后续字节码指令校验得到的运行结果,如果此时保存在方法栈中的敏感结果被篡改,则直接导致签名结果校验失败。比如在实际使用银行卡在金融终端进行脱机消费时,虽然用户设置通过校验脱机密码才能完成交易,但攻击者在未获知用户密码却能够通过将方法栈中的非法结果篡改为合法结果的攻击方法完成密码校验,达到攻击的目的。还有的智能卡在安全编程方面对代码执行逻辑加扰,通过让正确的逻辑和错误的逻辑处理时间相等来防止攻击者通过观察二者不同而实现攻击的目的,该方案只能在一定程度上防止攻击者获得正确的代码指令路径,对于攻击者通过改变运行结果而实现攻击的方法却仍然无法避免。因此如何解决此类安全问题成为智能卡亟待解决的难题。
发明内容
本申请提供了一种敏感结果的存储方法,包括如下步骤:
调用编程接口执行安全算法相关操作,生成敏感结果;
确定敏感结果的索引值,根据所述敏感结果的索引值,确定敏感结果在安全存储缓存区中的存储位置;
将敏感结果及其与敏感结果相关的附加信息存储至安全存储缓存区中。
如上所述的敏感结果的存储方法,其中,执行安全算法相关操作包括执行签名操作、验签操作、PIN校验操作;敏感结果包括执行签名操作得到的签名结果长度、验签后的结果、个人PIN校验结果。
如上所述的敏感结果的存储方法,其中,在RAM中预先设置预设字节数的缓存区作为存储敏感结果的安全存储缓存区;和/或根据不同的安全算法为不同的敏感结果分配相应字节的缓存区作为存储敏感结果的安全存储缓存区。
如上所述的敏感结果的存储方法,其中,安全存储缓存区包括敏感结果和与敏感结果相关的附加信息,所述附加信息包括敏感结果的数据类型、随机数和校验值,以敏感结果的数据类型作为安全存储缓存区的索引值。
如上所述的敏感结果的存储方法,其中,所述将敏感结果及其与敏感结果相关的附加信息存储至安全存储缓存区中,具体包括如下子步骤:
调用安全随机数生成器,生成随机数;
根据敏感结果的数据类型、敏感结果以及随机数,计算生成校验值;
将敏感结果的数据类型、敏感结果、随机数和校验值存储在已确定的安全存储缓存区对应的位置中。
本申请还提供一种敏感结果的读取校验方法,采用上述敏感结果的存储方法,所述读取校验方法具体包括如下步骤:
调用安全算法相关校验方法,确定待校验敏感结果的数据类型;
根据待校验敏感结果的数据类型,从安全存储缓存区中查找对应的表项数据;
若验证安全存储缓存区中的表项数据正确,则返回合法的校验结果。
如上所述的敏感结果的存储方法,其中,调用安全算法相关校验方法后,还包括检查待校验敏感结果的数据类型与所述安全算法相关校验方法的期望是否匹配,若匹配,则继续,否则抛出异常。
如上所述的敏感结果的存储方法,其中,验证安全存储缓存区中的数据,具体包括如下子步骤:
从安全存储缓存区中获取包括敏感结果的数据类型、敏感结果、随机数和校验值;
根据数据类型、敏感结果和随机数计算校验值;
判断计算得到的校验值和安全存储缓存区中的校验值是否相同,如果是,则安全存储缓存区中的数据合法,将安全存储缓存区中的敏感结果作为合法的校验结果,否则抛出异常。
如上所述的敏感结果的存储方法,其中,在验证安全存储缓存区中的数据合法之后,还包括从安全存储缓存区中获取敏感结果,根据安全存储缓存区中的敏感结果判断待校验敏感结果是否合法,如果是,则安全存储缓存区中的敏感结果与待校验结果均为合法的校验结果,返回合法的校验结果,否则抛出异常。
本申请还提供一种智能卡,包括控制元件和存储元件;
所述控制元件包括数据存储模块、数据读取校验模块;
所述数据存储模块执行上述敏感结果的存储方法;
所述数据读取校验模块执行上述敏感结果的读取校验方法;
所述存储元件用于为敏感结果分配安全存储缓存区。
本申请实现的有益效果如下:本申请采用将与安全算法相关的敏感结果存储在安全存储缓存区中,在校验时通过验证安全存储缓存区中的敏感结果的合法性确定校验是否成功的方法,能够增加攻击者的攻击难度,保证安全算法运行和校验的安全性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1是本申请实施例一提供的敏感结果的存储方法流程图;
图2是实施例一中将敏感结果及其附加结果存储至安全存储缓存区中的具体操作流程图;
图3是本申请实施例二提供的敏感结果的读取校验方法流程图;
图4本申请实施例三提供的智能卡示意图。
具体实施方式
下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
本申请实施例一提供一种敏感结果保护方法中敏感结果的存储方法,如图1所示,具体包括如下步骤:
步骤110、智能卡调用编程接口执行安全算法相关操作,生成敏感结果;
其中,执行安全算法相关操作包括但不限于执行签名操作、验签操作、PIN校验操作等与安全算法相关的操作;敏感结果包括但不限于执行签名操作得到的签名结果长度、验签后的结果、个人PIN校验结果等与安全性相关的操作结果;
例如,对于java智能卡,java卡应用调用java编程接口API进行安全算法相关操作,当编程接口API调用java卡虚拟机完成相关安全算法操作后,生成敏感结果S。
步骤120:确定敏感结果的索引值,根据所述敏感结果的索引值,确定敏感结果在安全存储缓存区中的存储位置;
具体地,在敏感结果写入函数中,由当前算法环境确定当前需要保存的敏感结果的索引值,本申请可选地,将敏感结果的数据类型T作为索引值,由此确定该敏感结果在表1的安全存储缓存区的存储位置,如敏感结果的数据类型为布尔类型,则确定该敏感结果存储在表1的布尔类型对应行;
安全存储缓存区是专门用来存储敏感结果的存储区域,其中安全存储缓存区的设置可以在智能卡cos代码实现阶段或在安全算法的开始阶段;在智能卡cos代码实现阶段先在RAM中预先设置预设字节数的缓存区作为存储敏感结果的安全存储缓存区,或者在安全算法的开始阶段,根据不同的安全算法为不同的敏感结果分配相应字节的缓存区作为存储敏感结果的安全存储缓存区;
上述两种缓存区分配方式均有各种的有益之处:采用在智能卡cos代码实现阶段预先设置的安全存储缓存区的方式,预先分配缓存区能够减少在运算过程中的时间;采用在安全算法的开始阶段为运算得到的敏感结果分配安全存储缓存区的方式,能够减少对存储空间的使用;在实际运用过程中根据实际需要可混合使用两种方式或随机/择优选择其中一种方式,在此不做限定。
例如,在智能卡cos代码实现阶段预先设置的安全存储缓存区如下表所示:
如表1所示,可选地,安全存储缓存区是一种表结构,表格的每一行表示一种存储结果,每个存储结果均包括操作类型、敏感结果、随机数和校验值,表项的值初始状态为全0或全F;
其中,操作类型表示存储敏感结果的数据类型,包括布尔类型、数值类型和对象类型;例如,若要存储的是验证结果是否正确,则该敏感结果属于布尔类型;若要存储的是验证结果的长度,则该敏感结果属于数值类型;若要存储的是应用APP的对象引用,则该敏感结果属于对象类型;
敏感结果,存储不同操作类型对应的敏感结果,如布尔类型对应的敏感结果为0表示false、1表示true;数值类型和对象类型按照相应的数值进行存储,例如敏感结果要存储的是数据长度,则将其长度数值存储在数值类型对应的敏感结果中,若敏感结果要存储的是应用APP的对象引用,则将该应用APP的对象存储在对象类型对应的敏感结果中;
为了防止存储在安全存储缓存区中的数据被篡改,保证数据的安全性,在安全存储缓存区中对不同的数据类型随机分配不同的随机数,参与校验值的计算,将随机分配的随机数和对应的校验值均与相应的数据类型对应存储;其中,可选地,随机数为2字节,采用逐字节异或的方法或其他校验方法计算得到1字节的校验值;
若采用在智能卡cos代码实现阶段预先设置的安全存储缓存区的方式,可选地每种数据类型对应分配6字节(1字节数据类型、2字节敏感结果、2字节随机数、1字节校验值)的缓存区,因此三种数据类型对应需分配18字节的缓存区作为安全存储缓存区;
若采用在安全算法的开始阶段为运算得到的敏感结果分配安全存储缓存区的方式,则可选地分配6字节缓存区(1字节数据类型、2字节敏感结果、2字节随机数、1字节校验值)作为安全存储缓存区;
本申请实施例中,为了节省安全存储缓存区的空间和维护成本,作为可选实施例,为安全存储缓存区设置生命周期,例如,当校验完成后释放安全存储缓存区;作为另一可选实施例,可以通过手动方式通过API将敏感结果删除;作为再一可选实施例,可以通过自动方式在指令执行结束后自动删除敏感数据。
作为另一可选实施例,本申请可以为安全存储缓存区设定安全机制,如只允许当前执行安全算法的API访问,不允许其他安全级别较低的接口访问,再如在安全算法开始前设定安全机制为全部可见,在某一安全算法API访问时设定只对当前API可见。
需要说明的是,上述表1仅为安全存储缓存区的一种举例形式,对于表格中的表项内容可以根据实际情况进行增加或删除;作为一个可选实施例,为了保证智能卡多通道对安全存储缓存区的存储和访问,可以在安全存储缓存区中增加表项内容,如逻辑通道标识,也可以将逻辑通道标识作为索引值。
返回参阅图1,步骤130、将敏感结果及其与敏感结果相关的附加信息存储至安全存储缓存区中;
将敏感结果及其附加结果存储至安全存储缓存区中,具体包括如下子步骤,如图2所示:
步骤210、调用安全随机数生成器,生成随机数R;
随机数R的长度由预先设定的安全存储缓存区中为随机数分配的空间大小来决定,例如,生成的随机数R为2字节随机数。
步骤220、根据敏感结果的数据类型T、敏感结果S以及随机数R,计算生成校验值C;
根据敏感结果的数据类型T、敏感结果S以及随机数R,计算生成校验值C的方式有很多,可选地,将数据类型T、敏感结果S以及随机数R顺序拼接,然后运用CRC8校验算法生成校验值C;除此之外,还可以是将数据拼接后取预设长度的数据然后再用CRC16校验算法生成校验值C等方式,其中,校验值C的长度由预先设定的安全存储缓存区中为校验值分配的空间大小来决定,如1字节校验值。
步骤230、将敏感结果的数据类型T、敏感结果S、随机数R和校验值C存储在已确定的安全存储缓存区对应的表项位置中;
在步骤120中根据敏感结果的数据类型确定敏感结果在安全存储缓存区中对应表项的存储位置,例如,敏感结果表示校验成功的结果,则该敏感结果的数据类型为布尔类型、敏感结果为0000000000000001、随机数为0001101100000000、校验值为01010101。
实施例二
在实施例一智能卡编程接口执行安全算法相关操作,生成待校验敏感结果,且将待校验敏感结果存储在安全存储缓存区的基础上,本申请实施例二提供一种敏感结果保护方法中敏感结果的读取和校验方法,如图3所示,包括:
步骤310、智能卡调用安全算法相关校验方法,检查待校验敏感结果的数据类型与所述安全算法相关校验方法的期望是否匹配,若匹配,则执行步骤320,否则抛出异常,退出;
本申请在校验敏感结果是否正确时,先确定敏感结果是否为接口期望的数据类型;例如,智能卡中java应用调用校验方法,如assertTrue(),该接口期望检查生成的待校验敏感结果是否为真值,若该接口返回不为真则抛出安全异常,表示验证结果失败,如果为真则继续执行步骤320。
步骤320、根据安全算法相关校验方法,确定待校验敏感结果的数据类型;
具体地,根据调用的不同的API,确定待校验敏感结果的数据类型,如调用校验方法assertTrue(),该方法期望校验的数据类型为布尔类型。
步骤330、根据待校验敏感结果的数据类型,从安全存储缓存区中查找对应的表项数据;
根据待校验敏感结果的数据类型,从安全存储缓存区中查找对应的存储表项,包括敏感结果、随机数和校验值。
步骤340、验证安全存储缓存区中的表项数据是否正确,如果是,则返回合法的校验结果,否则抛出异常,退出;
具体地,从安全存储缓存区中获取的表项数据包括敏感结果的数据类型、敏感结果和随机数和校验值,根据数据类型、敏感结果和随机数计算校验值,然后判断计算得到的校验值和安全存储缓存区中的校验值是否相同,如果是,则安全存储缓存区中的表项数据正确,表示安全存储缓存区中的数据没有被篡改过,其中的敏感结果即为合法数据;
作为一个可选实施例,本申请在步骤340验证安全存储缓存区中的表项数据正确后,安全存储缓存区中的敏感结果为合法数据,直接使用安全存储缓存区中的敏感结果作为合法的校验结果;
作为另一可选实施例,在步骤340之后还包括从安全存储缓存区中获取敏感结果,根据安全存储缓存区中的敏感结果判断待校验敏感结果是否正确,如果是,则校验成功,安全存储缓存区中的敏感结果与待校验结果均为合法的校验结果,返回合法的校验结果,否则抛出异常;在步骤340中校验出的安全存储缓存区中的敏感结果是合法的,根据该合法敏感数据和由安全算法运算生成的待校验敏感结果是否相同判定待校验敏感结果是否合法,若待校验敏感结果与安全存储缓存区中的敏感结果不相同,则表示结果不符合预期,抛出java卡安全异常。
可选地,在安全存储缓存区中存储的敏感结果可以是由实际生成的敏感结果根据某种预设算法运算所得,在校验出安全存储缓存区中的敏感结果合法后,运用该预设算法对待校验敏感结果进行运算,判断运算得到的数据与安全存储缓存区中存储的敏感结果是否相同。
本实施例以保护调用与密码算法相关的验证签名接口得到敏感结果的示例为例来说明,以下为验证签名的伪代码,为例:
Line 1:public static boolean verifyData()
Line 2:{
Line 3://创建算法对象
Line 4:Signature sig=Signature.getInstance(Signature.ALG_DES_MAC4_ISO9797_M1,false);
Line 5://初始化算法对象对象
Line 6:sig.init(theKey,Signature.MODE_VERIFY);
Line 7://验证签名
Line 8:boolean result=sig.verify(inBuff,inOffset,inLength,sigBuff,sigOffset,sigLength);
Line 9://检查安全存储缓存区中结果是否为真值
Line 10:try{
Line 11:assertTrue();
Line 12:}catch(SecurityException e){
Line 13:return false;
Line 14:}
Line 15://检查API返回结果
Line 16:if(!result){
Line 17:return false;
Line 18:}
//如果以上两个结果都检查通过返回签名验证通过
Line 19:return true;
Line 20:}
在上述伪代码中,Line 8调用签名编程接口sig.verify(),该接口类型为布尔类型boolean,返回true表示验证通过,返回false表示验证失败;在验证签名运算得到敏感结果之后,且结果返回到API接口之前,将敏感结果保存至安全存储缓存区中;Line9到Line14之间调用assertTrue接口,检查安全存储缓存区中结果是否为真值,如果不为真则抛出安全异常,表示验证结果失败,如果为真则继续执行Line15到Line18,检查API的返回结果是否为真,如果不为真则直接返回失败,如果为真则说明API的返回结果与安全存储缓存区中的结果都合法,验证成功;
上述方法经过安全存储缓存区和API返回结果两种检查,保证了签名结果的真实性;除此之外,还可以选择只调用assertTrue接口验证安全存储缓存区中签名结果的正确性,此种方法API的返回结果无需保存在方法栈中,可防止敏感结果的泄露;由此在应用中不再依赖方法的返回结果,而是通过特定API层获取校验结果,将代码的执行逻辑用户校验逻辑独立,达到提升应用执行安全环境的安全性。
实施例三
本申请实施例三提供一种智能卡,采用实施例一的敏感结果存储方法和实施例二的敏感结果读取校验方法,如图4所示,所述智能卡包括:控制元件41和存储元件42;
其中,控制元件41包括数据存储模块411和数据读取校验模块412;存储元件42用于为敏感结果分配安全存储缓存区。
进一步地,数据存储模块411具体包括第一接口调用子模块4111和存储子模块4112;
接口调用子模块4111用于调用编程接口执行安全算法相关操作,生成敏感结果;
存储子模块4112用于确定敏感结果的索引值,根据所述敏感结果的索引值,确定敏感结果在安全存储缓存区中的存储位置,将敏感结果及其与敏感结果相关的附加信息存储至安全存储缓存区中。
再进一步地,数据读取校验模块412具体包括第二接口调用子模块4121、数据读取模块4122和校验模块4123;
第二接口调用子模块4121用于调用安全算法相关校验方法,确定待校验敏感结果的数据类型;
数据读取模块4122用于根据待校验敏感结果的数据类型,从安全存储缓存区中查找对应的表项数据;
校验模块4123用于验证安全存储缓存区中的表项数据是否正确。
采用本申请的技术方案达到如下技术效果:
(1)将与安全算法相关的敏感结果存储在安全存储缓存区中,并在校验时通过验证安全存储缓存区中的敏感结果的合法性确定校验是否成功,能够增加攻击者的攻击难度,保证安全算法运行和校验的安全性;
(2)安全存储缓存区中的索引值可以依据实际需求进行设定,如设定敏感结果的数据类型、逻辑通道标识等;
(3)在安全存储缓存区中还存储有随机数和校验值,能够有效保证敏感数据存储在安全存储缓存区中的安全性;
(4)安全存储缓存区可以设置在代码实现阶段,也可以设置在安全算法开始阶段;前者可以减少在运算过程中的时间,通过智能卡java虚拟机和应用开发相结合的方式,提升整个java卡应用在虚拟机中运行环境的安全性;后者够减少对存储空间的使用;
(5)为安全存储缓存区设置生命周期,节省安全存储缓存区的空间和维护成本。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (10)

1.一种敏感结果的存储方法,其特征在于,包括如下步骤:
调用编程接口执行安全算法相关操作,生成敏感结果;
确定敏感结果的索引值,根据所述敏感结果的索引值,确定敏感结果在安全存储缓存区中的存储位置;
将敏感结果及其与敏感结果相关的附加信息存储至安全存储缓存区中。
2.如权利要求1所述的敏感结果的存储方法,其特征在于,执行安全算法相关操作包括执行签名操作、验签操作、PIN校验操作;敏感结果包括执行签名操作得到的签名结果长度、验签后的结果、个人PIN校验结果。
3.如权利要求1所述的敏感结果的存储方法,其特征在于,在RAM中预先设置预设字节数的缓存区作为存储敏感结果的安全存储缓存区;和/或根据不同的安全算法为不同的敏感结果分配相应字节的缓存区作为存储敏感结果的安全存储缓存区。
4.如权利要求1所述的敏感结果的存储方法,其特征在于,安全存储缓存区包括敏感结果和与敏感结果相关的附加信息,所述附加信息包括敏感结果的数据类型、随机数和校验值,以敏感结果的数据类型作为安全存储缓存区的索引值。
5.如权利要求1所述的敏感结果的存储方法,其特征在于,所述将敏感结果及其与敏感结果相关的附加信息存储至安全存储缓存区中,具体包括如下子步骤:
调用安全随机数生成器,生成随机数;
根据敏感结果的数据类型、敏感结果以及随机数,计算生成校验值;
将敏感结果的数据类型、敏感结果、随机数和校验值存储在已确定的安全存储缓存区对应的位置中。
6.一种敏感结果的读取校验方法,其特征在于,具体包括如下步骤:
调用安全算法相关校验方法,确定待校验敏感结果的数据类型;
根据待校验敏感结果的数据类型,从安全存储缓存区中查找对应的数据;
若验证安全存储缓存区中的数据合法,则返回合法的校验结果。
7.如权利要求6所述的敏感结果的读取校验方法,其特征在于,调用安全算法相关校验方法后,还包括检查待校验敏感结果的数据类型与所述安全算法相关校验方法的期望是否匹配,若匹配,则继续,否则抛出异常。
8.如权利要求6所述的敏感结果的读取校验方法,其特征在于,验证安全存储缓存区中的数据,具体包括如下子步骤:
从安全存储缓存区中获取包括敏感结果的数据类型、敏感结果、随机数和校验值;
根据数据类型、敏感结果和随机数计算校验值;
判断计算得到的校验值和安全存储缓存区中的校验值是否相同,如果是,则安全存储缓存区中的数据合法,将安全存储缓存区中的敏感结果作为合法的校验结果,否则抛出异常。
9.如权利要求6所述的敏感结果的读取校验方法,其特征在于,在验证安全存储缓存区中的数据合法之后,还包括从安全存储缓存区中获取敏感结果,根据安全存储缓存区中的敏感结果判断待校验敏感结果是否合法,如果是,则安全存储缓存区中的敏感结果与待校验结果均为合法的校验结果,返回合法的校验结果,否则抛出异常。
10.一种智能卡,其特征在于,包括控制元件和存储元件;
所述控制元件包括数据存储模块、数据读取校验模块;
所述数据存储模块执行如权利要求1-5中任意一项所述的敏感结果的存储方法;
所述数据读取校验模块执行如权利要求6-9中任意一项所述的敏感结果的读取校验方法;
所述存储元件用于为敏感结果分配安全存储缓存区。
CN201910549400.0A 2019-06-24 2019-06-24 一种智能卡及其敏感结果的存储和校验方法 Active CN110276213B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910549400.0A CN110276213B (zh) 2019-06-24 2019-06-24 一种智能卡及其敏感结果的存储和校验方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910549400.0A CN110276213B (zh) 2019-06-24 2019-06-24 一种智能卡及其敏感结果的存储和校验方法

Publications (2)

Publication Number Publication Date
CN110276213A true CN110276213A (zh) 2019-09-24
CN110276213B CN110276213B (zh) 2021-03-16

Family

ID=67961543

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910549400.0A Active CN110276213B (zh) 2019-06-24 2019-06-24 一种智能卡及其敏感结果的存储和校验方法

Country Status (1)

Country Link
CN (1) CN110276213B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110718052A (zh) * 2019-10-21 2020-01-21 上海米尺网络技术有限公司 一种无线采集装置及数据采集方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102055797A (zh) * 2010-11-29 2011-05-11 北京卓微天成科技咨询有限公司 一种云存储的数据存取的方法、装置及系统
CN102156828A (zh) * 2011-01-25 2011-08-17 北京握奇数据系统有限公司 一种智能卡数据存、取过程中的校验方法及智能卡
WO2017097042A1 (zh) * 2015-12-07 2017-06-15 国民技术股份有限公司 一种安全芯片及其非易失性存储控制装置、方法
WO2019062147A1 (zh) * 2017-09-30 2019-04-04 北京智芯微电子科技有限公司 一种计数器的读写方法及装置、设备、存储介质
CN109754251A (zh) * 2018-12-27 2019-05-14 石更箭数据科技(上海)有限公司 一种数据处理方法及其装置、介质、终端

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102055797A (zh) * 2010-11-29 2011-05-11 北京卓微天成科技咨询有限公司 一种云存储的数据存取的方法、装置及系统
CN102156828A (zh) * 2011-01-25 2011-08-17 北京握奇数据系统有限公司 一种智能卡数据存、取过程中的校验方法及智能卡
WO2017097042A1 (zh) * 2015-12-07 2017-06-15 国民技术股份有限公司 一种安全芯片及其非易失性存储控制装置、方法
WO2019062147A1 (zh) * 2017-09-30 2019-04-04 北京智芯微电子科技有限公司 一种计数器的读写方法及装置、设备、存储介质
CN109754251A (zh) * 2018-12-27 2019-05-14 石更箭数据科技(上海)有限公司 一种数据处理方法及其装置、介质、终端

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110718052A (zh) * 2019-10-21 2020-01-21 上海米尺网络技术有限公司 一种无线采集装置及数据采集方法
CN110718052B (zh) * 2019-10-21 2020-12-29 上海米尺网络技术有限公司 一种无线采集装置及数据采集方法

Also Published As

Publication number Publication date
CN110276213B (zh) 2021-03-16

Similar Documents

Publication Publication Date Title
US5048085A (en) Transaction system security method and apparatus
US5148481A (en) Transaction system security method and apparatus
US20090193211A1 (en) Software authentication for computer systems
US5982899A (en) Method for verifying the configuration the computer system
US8332930B2 (en) Secure use of user secrets on a computing platform
EP2115655B1 (en) Virtual secure on-chip one time programming
US20020112156A1 (en) System and method for secure smartcard issuance
KR100760275B1 (ko) 가상 메모리를 운영하기 위한 수단을 포함하는 칩 카드,그와 관련된 통신 방법 및 프로토콜
KR101502032B1 (ko) 보안 기능을 갖는 프로세서 장치
CN109960903A (zh) 一种应用加固的方法、装置、电子设备及存储介质
CN111723383A (zh) 数据存储、验证方法及装置
EP1725923A1 (en) Secure mode controlled memory
WO2006024903A1 (en) Application code integrity check during virtual machine runtime
CN111292091A (zh) 一种校验方法、装置以及设备
CN101025770A (zh) 一种启动受保护分区的方法
CN108197500A (zh) 一种基于TrustZone数据安全性和完整性的存储系统及方法
RU2468428C2 (ru) Способ защиты исполнения программы
CN110276213A (zh) 一种智能卡及其敏感结果的存储和校验方法
JP2003228521A (ja) 集積回路の動作のブロック
JP2004503860A (ja) データ処理方法及び保護された命令の実行のための装置
WO2024036832A1 (zh) 基于tpm的智能密码钥匙密码应用接口的实现方法
CN108345804B (zh) 一种可信计算环境中的存储方法和装置
US9652232B2 (en) Data processing arrangement and method for data processing
CN112470153A (zh) 安全数据处理
CN115618365A (zh) 实现安全可信启动的方法、安全架构系统及相关设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant