本发明涉及一种电子技术领域,尤其涉及一种多功能智能密钥设备及其操作指令执行方法和装置。
背景技术:
智能卡读写器是连接智能卡和主机的中间设备,其核心技术是在mcu中实现复杂的智能卡接口协议和usb接口协议,以完成智能卡与主机间的透明数据交换。
智能密码钥匙是一种usb接口的硬件设备(一般称为usbkey),它内置智能卡芯片,可以存储用户的密钥和数字证书,利用内置的密码算法实现对用户身份的认证。同时又可实现加解密处理、数字签名与验证签名,以及存储重要安全信息。
智能ic卡是将经过专门安全设计的cpu封装在标准尺寸卡片内的安全产品。卡内部数据和密钥受到内置的智能卡操作系统的保护,外部不可能越过cos的控制直接对卡内的数据或密钥进行操作。
动态令牌(otptoken)是一种便携的手持式动态密码计算和产生的电子产品。脱机使用,或与计算机相连。免除静态密码被截取、猜测、攻击和破解的隐患。可根据时间(time),事件(event),挑战/应答(challenge/response)等因素产生动态密码。
目前,otp、智能ic卡以及智能密码钥匙等,均已被成功使用在商用密码的各个行业应用领域,他们各有优点和缺点,将这些功能集成在一个设备上(该设备可以称为多功能智能密钥设备),将节省下较多硬件成本,同时携带和使用起来以更加方便。在具体应用中,由于多功能智能密钥设备集成的功能对安全性要求比较高,如何保证多功能智能密钥设备上各个应用及应用数据的安全,是多功能智能密钥设备最需要解决的问题。
技术实现要素:
本发明旨在解决上述技术问题。
本发明的主要目的在于提供一种多功能智能密钥设备的操作指令执行方法。
本发明的另一目的在于提供一种多功能智能密钥设备的操作指令执行装置。
本发明的又一目的在于提供一种多功能智能密钥设备。
为达到上述目的,本发明的技术方案具体是这样实现的:
本发明一方面提供了一种多功能智能密钥设备的操作指令执行方法,包括:硬件驱动模块接收到用于选择应用的输入指令,将所述输入指令发送给操作控制模块;所述操作控制模块获取所述输入指令选择的应用的应用标识;所述操作控制模块根据所述应用标识判断所述选择的应用是否为所述多功能智能密钥设备已安装的多个应用中的一个;在确定所述选择的应用为所述多功能智能密钥设备已安装的多个应用中的一个的情况下,所述操作控制模块根据所述应用标识,通过所述硬件驱动模块获取所述选择的应用的环境信息,其中,所述环境信息包括:所述应用允许执行的指令列表以及权限信息;在获取所述选择的应用的环境信息之后,在所述硬件驱动模块每次接收到外部输入的操作指令时,执行以下步骤:步骤1,所述操作控制模块获取到所述外部输入的操作指令,判断所述操作指令是否在所述指令列表中,如果是,执行步骤2,否则,执行步骤5;步骤2,根据所述环境信息中的所述权限信息,判断执行所述操作指令是否需要获得授权,如果是,则执行步骤3,否则,执行步骤4;步骤3,提示用户输入认证信息,并对用户输入的认证信息进行认证,在认证通过的情况下,执行步骤4,在认证没有通过的情况下,执行步骤5;步骤4,将所述操作指令发送给所述选择的应用执行;步骤5,所述操作控制模块返回应用运行失败的指示信息。
可选地,所述环境信息还包括:用于记录预先分配给所述选择的应用的物理存储空间的空间信息;在步骤4之后,所述方法还包括:所述操作控制模块接收到所述选择的应用在执行所述操作指令时发送的调取应用数据请求,其中,所述调取应用数据请求中携带有所请求调用的应用数据的标识信息;所述操作控制模块根据所述标识信息,判断所述调用的应用数据是否属于所述选择的应用的文件系统下的应用数据;所述操作控制模块根据所述空间信息判断所述调用的应用数据的物理存储地址是否属于预先分配给所述选择的应用的物理存储空间;在确定所述调用的应用数据属于所述选择的应用的文件系统下的应用数据,且所述调用的应用数据的物理存储地址属于预先分配给所述选择的应用的物理存储空间的情况下,所述操作控制模块调取所述调用的应用数据,并将所述调用的应用数据返回给所述选择的应用。
可选地,所述操作控制模块调取所述调用的应用数据之前,所述方法还包括:所述操作控制模块查询所述权限信息,判断所述选择的应用是否具有调取所述调用的应用数据的权限,在确定所述选择的应用具有调取所述调用的应用数据的权限的情况下,执行调取所述调用的应用数据的操作。
可选地,所述操作控制模块根据所述标识信息,判断所述调用的应用数据是否属于所述选择的应用的文件系统下的应用数据,包括:所述操作控制模块将所述应用标识和所述标识信息发送给所述硬件驱动模块;所述硬件驱动模块判断在与所述应用标识对应的文件系统下是否查找到与所述标识信息对应的应用数据,并将查找结果通知所述操作控制模块;所述操作控制模块根据所述查找结果判断所述调用的所述应用数据是否属于所述选择的应用的文件系统下的应用数据。
可选地,所述操作控制模块获取选择的应用的应用标识之后,所述方法还包括:所述操作控制模块通过所述硬件驱动模块,获取与所述应用标识对应的文件系统下的所有应用数据,并将所述所有应用数据加载到内存中;所述操作控制模块根据所述标识信息,判断所述调用的应用数据是否属于所述选择的应用的文件系统下的应用数据,包括:所述操作控制模块判断所述内存中是否存在与所述标识信息对应的应用数据,如果有,则确定所述调用的应用数据属于所述选择的应用的文件系统下的应用数据,否则,确定所述调用的应用数据不属于所述选择的应用的文件系统下的应用数据。
可选地,将所述操作指令发送给所述选择的应用执行之前,所述方法还包括:所述操作控制模块判断所述操作指令中携带的应用标识是否与所述选择的应用的应用标识一致,在一致的情况下,执行将所述操作指令发送给所述选择的应用执行的步骤。
本发明另一方面提供了一种多功能智能密钥设备的操作指令执行装置,包括:硬件驱动模块,用于接收到用于选择应用的输入指令,将所述输入指令发送给操作控制模块;所述操作控制模块,用于获取所述输入指令选择的应用的应用标识,根据所述应用标识判断所述选择的应用是否为所述多功能智能密钥设备已安装的多个应用中的一个,并在确定所述选择的应用为所述多功能智能密钥设备已安装的多个应用中的一个的情况下,根据所述应用标识,通过所述硬件驱动模块获取所述选择的应用的环境信息,其中,所述环境信息包括:所述应用允许执行的指令列表以及权限信息;所述硬件驱动模块,还用于接收外部输入的操作指令,将所述操作指令发送给所述操作控制模块;所述操作控制模块,还用于:获取到所述外部输入的操作指令,判断所述操作指令是否在所述指令列表中,在所述操作指令在所述指令列表的情况下,根据所述环境信息中的所述权限信息,判断执行所述操作指令是否需要获得授权,在确定执行所述操作指令需要获得授权的情况下,提示用户输入认证信息,并对用户输入的认证信息进行认证,在认证通过的情况下,将所述操作指令发送给所述选择的应用执行,在确定执行所述操作指令不需要获得授权的情况下,将所述操作指令发送给所述选择的应用执行;以及在操作指令不在所述指令列表的情况下,或者,在对用户输入的认证信息进行认证没有通过的情况下,返回应用运行失败的指示信息。
可选地,所述环境信息还包括:用于记录预先分配给所述选择的应用的物理存储空间的空间信息;所述操作控制模块还用于:接收到所述选择的应用在执行所述操作指令时发送的调取应用数据请求,其中,所述调取应用数据请求中携带有所请求调用的应用数据的标识信息;根据所述标识信息,判断所述调用的应用数据是否属于所述选择的应用的文件系统下的应用数据;根据所述空间信息判断所述调用的应用数据的物理存储地址是否属于预先分配给所述选择的应用的物理存储空间;在确定所述调用的应用数据属于所述选择的应用的文件系统下的应用数据,且所述调用的应用数据的物理存储地址属于预先分配给所述选择的应用的物理存储空间的情况下,调取所述调用的应用数据,并将所述调用的应用数据返回给所述选择的应用。
可选地,所述操作控制模块还用于:在调取所述调用的应用数据之前,查询所述权限信息,判断所述选择的应用是否具有调取所述调用的应用数据的权限,在确定所述选择的应用具有调取所述调用的应用数据的权限的情况下,执行调取所述调用的应用数据的操作。
可选地,所述操作控制模块具体用于通过以下方式判断所述调用的应用数据是否属于所述选择的应用的文件系统下的应用数据:将所述应用标识和所述标识信息发送给所述硬件驱动模块;根据所述硬件驱动模块返回的查找结果判断所述调用的所述应用数据是否属于所述选择的应用的文件系统下的应用数据;所述硬件驱动模块还用于:判断在与所述应用标识对应的文件系统下是否查找到与所述标识信息对应的应用数据,并将查找结果通知所述操作控制模块。
可选地,所述操作控制模块还用于:获取选择的应用的应用标识之后,通过所述硬件驱动模块,获取与所述应用标识对应的文件系统下的所有应用数据,并将所述所有应用数据加载到内存中;所述操作控制模块具体用于通过以下方式判断所述调用的应用数据是否属于所述选择的应用的文件系统下的应用数据:判断所述内存中是否存在与所述标识信息对应的应用数据,如果有,则确定所述调用的应用数据属于所述选择的应用的文件系统下的应用数据,否则,确定所述调用的应用数据不属于所述选择的应用的文件系统下的应用数据
可选地,所述操作控制模块还用于:在将所述操作指令发送给所述选择的应用执行之前,判断所述操作指令中携带的应用标识是否与所述选择的应用的应用标识一致,在一致的情况下,执行将所述操作指令发送给所述选择的应用执行的操作。
本发明又一方面提供了一种多功能智能密钥设备,其特征在于,包括上述的多功能智能密钥设备的操作指令执行装置。
由上述本发明提供的技术方案可以看出,在本发明提供的技术方案中,智能密钥设备提供应用选择功能,用户可以根据实际需要输入指令选择当前需要使用的应用,智能密钥设备在确定已安装选择的应用的情况下,获取选择的应用的环境信息,在后续接收到操作指令之后,根据环境信息中记录的信息进行安全认证,在安全认证通过之后,才将操作指令发送给对应的应用执行,从而保证了应用程序的安全,避免由于多功能智能密钥设备上的应用程序被非法调用而造成的安全问题。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。
图1为本发明实施例1提供的一种多功能智能密钥设备的操作指令执行装置的结构示意图;
图2为本发明实施例1提供的另一种多功能智能密钥设备的操作指令执行装置的结构示意图;
图3为本发明实施例2提供的一种多功能智能密钥设备的结构示意图;
图4为本发明实施例3提供的一种多功能智能密钥设备的操作指令执行方法的流程图。
具体实施方式
下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护范围。
在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或数量或位置。
在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
下面将结合附图对本发明实施例作进一步地详细描述。
实施例1
本实施例提供了一种多功能智能密钥设备的操作指令执行装置。该装置可以位于多功能智能密钥设备中,执行多功能智能密钥设备接收到的操作指令。
图1为本实施例提供的一种多功能智能密钥设备的操作指令执行装置的结构示意图,如图1所示,本实施例提供的多功能智能密钥设备的操作指令执行装置主要包括:硬件驱动模块10和操作控制模块20。
下面对本实施例提供的多功能智能密钥设备的操作指令执行装置的各个功能模块的功能及相互交互进行说明。
在本实施例中,硬件驱动模块10,用于接收到用于选择应用的输入指令,将所述输入指令发送给操作控制模块20;操作控制模块20,用于获取所述输入指令选择的应用的应用标识,根据所述应用标识判断所述选择的应用是否为所述多功能智能密钥设备已安装的多个应用中的一个,并在确定所述选择的应用为所述多功能智能密钥设备已安装的多个应用中的一个的情况下,根据所述应用标识,通过所述硬件驱动模块10获取所述选择的应用的环境信息,其中,所述环境信息包括:所述应用允许执行的指令列表以及权限信息;所述硬件驱动模块10,还用于接收外部输入的操作指令,将所述操作指令发送给所述操作控制模块20;所述操作控制模块20,还用于:获取到所述外部输入的操作指令,判断所述操作指令是否在所述指令列表中,在所述操作指令在所述指令列表的情况下,根据所述环境信息中的所述权限信息,判断执行所述操作指令是否需要获得授权,在确定执行所述操作指令需要获得授权的情况下,提示用户输入认证信息,并对用户输入的认证信息进行认证,在认证通过的情况下,将所述操作指令发送给所述选择的应用执行,在确定执行所述操作指令不需要获得授权的情况下,将所述操作指令发送给所述选择的应用执行;以及在操作指令不在所述指令列表的情况下,或者,在对用户输入的认证信息进行认证没有通过的情况下,返回应用运行失败的指示信息。
在本实施例提供的上述设备中,可以预先安装多个应用,例如,实现otp功能的otp应用、实现智能ic卡功能的ic卡应用以及实现智能密码钥匙功能的智能密码钥匙应用,用户可以根据实际需要输入指令选择当前需要使用的应用,硬件驱动模块10在接收到输入指令后,将输入指令分配给操作控制模块20,操作控制模块20在确定本地已安装该选择的应用的情况下,通过硬件驱动模块10获取该选择的应用的环境信息,在后续接收到操作指令之后,根据环境信息中记录的信息进行安全认证,在安全认证通过之后,才将操作指令发送给对应的应用执行,从而保证了应用程序执行的安全,避免由于多功能智能密钥设备上的应用程序被非法调用而造成的安全问题。
在本实施例中,操作控制模块20可以将选择的应用的环境信息加载到内存中,在接收到退出当前选择的应用或选择新应用的输入指令时,清空内存,以提高程序的处理速度。
在具体实施过程中,可以在硬件驱动模块10设置对外接口,包括但不限于硬件输入口(例如,键盘)、有线对外通信接口(例如,usb接口等)或者无线对外通信接口(例如,蓝牙等),用户或外部设备可以通过对外接口输入选择应用的输入指令或者操作指令。
在本实施例中,在硬件层,针对本地已安装的各个应用,可以分别存储该应用的环境信息,操作控制模块20在确定本地已安装选择的应用的情况下,通过硬件驱动模块10可以读取到选择的应用对应的环境信息。
在本实施例的一个可选实施方式中,环境信息中的权限信息可以记录对应的应用在执行某些操作指令时需要获取的权限,例如,在执行读取密钥的操作指令之前,需要获得pin码认证;另外,权限信息也可以记录对应的应用是否有权限执行某些操作指令,例如,智能ic卡应用没有读取签名密钥的权限等等。
在本实施例的一个可选实施方案中,所述环境信息还可以包括:用于记录预先分配给所述选择的应用的物理存储空间的空间信息;所述操作控制模块20还可以用于:接收到所述选择的应用在执行所述操作指令时发送的调取应用数据请求,其中,所述调取应用数据请求中携带有所请求调用的应用数据的标识信息;根据所述标识信息,判断所述调用的应用数据是否属于所述选择的应用的文件系统下的应用数据;根据所述空间信息判断所述调用的应用数据的物理存储地址是否属于预先分配给所述选择的应用的物理存储空间;在确定所述调用的应用数据属于所述选择的应用的文件系统下的应用数据,且所述调用的应用数据的物理存储地址属于预先分配给所述选择的应用的物理存储空间的情况下,调取所述调用的应用数据,并将所述调用的应用数据返回给所述选择的应用。
即在上述可选实施方式中,选择的应用在执行操作指令时,需要调用底层存储的应用数据,则操作控制模块20在接收到选择的应用发送的调取应用数据请求时,为了保证应用数据的安全,操作控制模块20执行两个判断操作,一个判断操作是判断请求调取的应用数据是否为选择的应用的文件系统下的应用数据,另一个判断操作是判断请求调取的应用数据的物理存储地址是否为预先分配给选择的应用的物理存储空间,只有在两个判断操作的判断均为是的情况下,才调取选择的应用所请求的应用数据,并将该应用数据发送给选择的应用,从而保证应用数据的安全,避免跨应用调取应用数据,例如,在执行ic卡应用时,调用智能密码钥匙的签名私钥等。
在上述可选实施方式中,可选地,所述操作控制模块20具体可以用于通过以下方式判断所述调用的应用数据是否属于所述选择的应用的文件系统下的应用数据:将所述应用标识和请求调用的应用数据的标识信息发送给所述硬件驱动模块10;根据所述硬件驱动模块10返回的查找结果判断所述调用的所述应用数据是否属于所述选择的应用的文件系统下的应用数据;所述硬件驱动模块10还可以用于:判断在与所述应用标识对应的文件系统下是否查找到与所述标识信息对应的应用数据,并将查找结果通知所述操作控制模块20。即在该可选实施方式,操作控制模块20将应用标识和请求调用的应用数据的标识信息发送给硬件驱动模块10,硬件驱动模块10在与应用标识对应文件系统中查找该应用数据的标识信息,如果查找到,则说明请求调用的应用数据属于该应用的文件系统,否则,则说明请求调用的应用数据不属于该应用的文件系统。采用这种方式,可以直接通过硬件驱动模块10进行判断,无需预先将当前选择的应用的文件系统下的所有应用数据加载到内存,减少其它附加的处理。
在本发明实施例的一个可选实施方案中,所述操作控制模块20还可以用于:获取选择的应用的应用标识之后,通过所述硬件驱动模块10,获取与所述应用标识对应的文件系统下的所有应用数据,并将所述所有应用数据加载到内存中;在该可选实施方式中,所述操作控制模块20具体用于通过以下方式判断所述调用的应用数据是否属于所述选择的应用的文件系统下的应用数据:判断所述内存中是否存在与所述标识信息对应的应用数据,如果有,则确定所述调用的应用数据属于所述选择的应用的文件系统下的应用数据,否则,确定所述调用的应用数据不属于所述选择的应用的文件系统下的应用数据。即在该可选实施方式中,操作控制模块20在获取到选择的应用的应用标识之后,通过硬件驱动模块10,将应用标识对应的文件系统下的所有应用数据加载到内存中,在调取某个应用数据之前,根据所请求调取的应用数据的标识信息,查找内存中加载的该应用的文件系统下的所有应用数据中是否存在所请求调取的应用数据,如果存在,则说明所请求调取的应用数据属于选择的应用对应的文件系统下的应用数据,否则,说明所请求调取的应用数据不属于选择的应用对应的文件系统下的应用数据。通过该可选实施方式,操作控制模块20可以提前将选择的应用对应的文件系统下的所有应用数据加载到内存中,从而在每次收到对应该选择的应用的操作指令后都无需通过硬件驱动模块调用应用数据,可以提高判断所请求调取的应用数据是否属于选择的应用对应的文件系统下的判断速度,提高操作指令的执行效率。
在上述可选实施方式中,操作控制模块20在获取到选择的应用的应用标识之后,通过硬件驱动模块10,将应用标识对应的文件系统下的所有应用数据加载到内存中的情况下,操作控制模块20在调取所述调用的应用数据时,可以直接从内存中获取所述调用的应用数据,从而可以提高调用应用数据的速度。
在上述可选实施方式中,可选地,环境信息中的所述空间信息在记录预先为对应的应用分配物理存储空间时,可以记录一个物理地址范围,也可以只记录起始物理地址以及为该应用分配的物理存储空间的大小,具体本实施例不作限定。
在上述可选实施方式中,环境信息中的权限信息中还可以记录各个应用数据的调取权限,因此,可选地,所述操作控制模块20还可以用于在调取所述调用的应用数据之前,查询所述选择的应用的权限信息,判断所述选择的应用是否具有调取所述调用的应用数据的权限,在确定所述选择的应用具有调取所述调用的应用数据的权限的情况下,执行调取所述调用的应用数据的操作。通过该可选实施方式,可以避免应用数据被非法调用,保证应用数据的安全。
在本发明实施例的一个可选实施方案中,为了避免在执行选择的应用的过程中,误执行其它应用的操作指令,例如,在用户选择多功能智能密钥设备的otp应用之后,外部读卡器向多功能智能密钥设备发送读卡请求,在本实施例中,所述操作控制模块20还可以用于:在将所述操作指令发送给所述选择的应用执行之前,判断所述操作指令中携带的应用标识是否与所述选择的应用(例如,当前选择的应用otp)的应用标识一致,在一致的情况下,执行将所述操作指令发送给所述选择的应用执行的操作。通过该可选实施方式,可以保证多功能智能密钥设备在用户选定一个应用之后,不会再执行该应用之外的其它应用的操作指令,避免多功能智能密钥设备在多个应用程序之间跳转而导致应用执行的不安全。
在具体应用中,操作控制模块20可以通过多功能智能密钥设备中的操作控制层实现,而硬件驱动模块10可以通过多功能密钥设备中的硬件驱动层实现,硬件驱动层通过对外接口与外部进行通信,并且,硬件驱动层可以直接访问多功能智能密钥设备底层的存储设备。
在本发明实施例的一个可选实施方案中,硬件驱动层中可以集成调度层的功能,将多功能智能密钥设备中的多个应用关联协同管理及调用,从而规范流程。或者,在本实施例的另一个可选实施方案中,如图2所示,调度层也可以与硬件驱动层分开设置。在图2所示的结构中,对外接口接收到外部输入的应用选择指令(步骤1),硬件驱动层将该应用选择指令发送到调度层(步骤2),调度层将该应用选择指令调度到操作控制层(步骤3),操作控制层在确定该应用选择指令所选择的应用(在本实施例假设多功能智能密钥设备中已安装三个应用,即应用1、应用2和应用3,所选择的应用为应用2)为本地已安装的应用的情况下,通过硬件驱动层读取底层存储的所选择的应用的环境信息(步骤4),在这之后,在对外接口接收到操作指令时(步骤5),硬件驱动层将该操作指令发送给调度层(步骤6),调度层将该操作指令发送给操作控制层(步骤7),操作控制层根据读取的当前应用的环境信息判断该操作指令是否在环境信息的指令列表中,如果是,进一步判断执行该操作指令是否需要获得授权,如果不在指令列表中,则返回用运行失败的指示信息。如果判断执行该操作需要获得授权,则提示用户输入认证信息,并对用户输入的认证信息进行认证,在认证通过的情况下,将操作指令发送给选择的应用(步骤8),如果认证不通过,则返回应用运行失败的指示信息;如果判断执行该操作不需要获得授权,则直接将该操作指令发送给选择的应用(步骤8)。选择的应用接收到该操作指令之后,执行相应的操作,在执行相应的操作的过程中,如果需要调用应用数据,则应用向操作控制层发送应用数据的调用请求(步骤9),操作控制层接收到应用数据的调用请求之后,判断应用请求调用的应用数据的物理存储地址是否在分配给该应用的物理存储空间以及所请求调用的应用数据是否在该应用的文件系统下,在判断结果均为是的情况下,操作控制层向硬件驱动层发送应用数据调用请求(步骤10),硬件驱动层从该应用的文件系统中读取到请求调用的应用数据,将该应用数据返回给操作控制层(步骤11),操作控制层将该应用数据返回给应用(步骤12)。
通过本实施例提供的多功能智能密钥设备的操作指令执行装置,可以在同一智能密钥设备上实现多个应用,且可以将各应用隔离,使得各应用中的专有指令只能在该应用中有效,以及各应用的应用数据只能由该应用调用,避免多应用间的安全漏洞,提高多功能智能密钥设备的安全性。
实施例2
本实施例提供了一种多功能智能密钥设备。
图3为本实施例提供的一种多功能智能密钥设备的结构示意图,如图3所示,本实施例提供的多功能密钥设备主要包括实施例1所述的多功能智能密钥设备的操作指令执行装置,该装置的功能具体可以参见实施例1的描述,在此不再赘述。
如图3所示,在本实施例的一个可选实施方式中,该多功能智能密钥设备还可以包括:存储器30、显示单元40、电源50以及输入单元60等部件。本领域技术人员可以理解,图3中示出的多功能智能密钥设备结构并不构成对多功能智能密钥设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图3对多功能智能密钥设备的各个构成部件进行简单的介绍:
存储器30可用于存储软件程序以及数据,可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、多功能智能密钥设备的各个功能所需的应用程序(比如otp、智能ic卡、读卡器等)等;存储数据区可存储根据多功能智能密钥设备中的各个应用程序所创建的应用数据(比如音频数据、电话本等)等。
输入单元60可用于接收输入的数字或字符信息,以及产生与多功能智能密钥设备的用户设置以及功能控制有关的键信号输入。具体地,输入单元60可包括触控面板61以及其他输入设备62。触控面板61,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板61上或在触控面板61附近的操作),并根据预先设定的程式驱动相应的连接装置。除了触控面板61,输入单元60还可以包括其他输入设备62。具体地,其他输入设备62可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元40可用于显示由用户输入的信息或提供给用户的信息以及多功能智能密钥设备的各种菜单。显示单元40可包括显示面板41,可选的,可以采用液晶显示器(liquidcrystaldisplay,lcd)、有机发光二极管(organiclight-emittingdiode,oled)等形式来配置显示面板41。进一步的,触控面板61可覆盖显示面板41作为多功能智能密钥设备的对外接口。虽然在图3中,触控面板61与显示面板41是作为两个独立的部件来实现多功能智能密钥设备的输入和输出功能,但是在某些实施例中,可以将触控面板61与显示面板41集成而实现多功能智能密钥设备的输入和输出功能。
多功能智能密钥设备还可以包括给各个部件供电的电源50(比如电池)。
尽管未示出,多功能智能密钥设备还可以包括摄像头、蓝牙模块等,在此不再赘述。
实施例3
本实施例提供了一种多功能智能密钥设备的操作指令执行方法,该方法可以通过上述实施例1所述的多功能智能密钥设备的操作指令执行装置或实施例2所述的多功能智能密钥设备来实现。下面主要对本实施例提供多功能智能密钥设备的操作指令执行方法的流程进行说明,其它相关内容可以参见实施例1或2的描述。
图4为本实施例提供的一种多功能智能密钥设备的操作指令执行方法的流程图,如图4所示,该方法主要可以包括以下步骤:
步骤s401,硬件驱动模块接收到用于选择应用的输入指令,将所述输入指令发送给操作控制模块;
步骤s402,所述操作控制模块获取所述输入指令选择的应用的应用标识;
步骤s403,所述操作控制模块根据所述应用标识判断所述选择的应用是否为所述多功能智能密钥设备已安装的多个应用中的一个;
步骤s404,在确定所述选择的应用为所述多功能智能密钥设备已安装的多个应用中的一个的情况下,所述操作控制模块根据所述应用标识,通过所述硬件驱动模块获取所述选择的应用的环境信息,其中,所述环境信息包括:所述应用允许执行的指令列表以及权限信息;
在获取所述选择的应用的环境信息之后,在所述硬件驱动模块每次接收到外部输入的操作指令时,执行后续步骤s405至步骤s409,即在所述硬件驱动模块每次接收到外部输入的操作指令时,均循环执行步骤s405至步骤s409。
步骤s405,所述操作控制模块获取到所述外部输入的操作指令,判断所述操作指令是否在所述指令列表中,如果是,执行步骤s406,否则,执行步骤s409;
步骤s406,根据所述环境信息中的所述权限信息,判断执行所述操作指令是否需要获得授权,如果是,则执行步骤s407,否则,执行步骤s408;
步骤407,提示用户输入认证信息,并对用户输入的认证信息进行认证,在认证通过的情况下,执行步骤s408,在认证没有通过的情况下,执行步骤s409;
步骤s408,将所述操作指令发送给所述选择的应用执行;
步骤s409,所述操作控制模块返回应用运行失败的指示信息。
在本实施例提供的上述方法中,用户可以根据实际需要输入指令选择当前需要使用的应用,硬件驱动模块在接收到输入指令后,将输入指令分配给操作控制模块,操作控制模块在确定本地已安装选择的应用的情况下,通过硬件驱动模块获取选择的应用的环境信息,在后续接收到操作指令之后,根据环境信息中记录的信息进行安全认证,在安全认证通过之后,才将操作指令发送给对应的应用执行,从而保证了应用程序的安全,避免由于多功能智能密钥设备上的应用程序被非法调用而造成的安全问题。
在本实施例中,操作控制模块可以将选择的应用的环境信息加载到内存中,在接收到退出当前选择的应用或选择新应用的输入指令时,清空内存,以提高程序的处理速度。
在具体实施过程中,可以在硬件驱动模块设置对外接口,包括但不限于硬件输入口(例如,键盘)、有线对外通信接口(例如,usb接口等)或者无线对外通信接口(例如,蓝牙等),用户或外部设备可以通过对外接口输入选择应用的输入指令或者操作指令。
在本实施例中,在硬件层,针对本地已安装的各个应用,可以预先分别存储该应用的环境信息,操作控制模块在确定本地已安装选择的应用的情况下,通过硬件驱动模块可以读取到选择的应用对应的环境信息。
在本发明实施例的一个可选实施方案中,所述环境信息还包括:用于记录预先分配给所述选择的应用的物理存储空间的空间信息;在步骤s408之后,所述方法还包括:所述操作控制模块接收到所述选择的应用在执行所述操作指令时发送的调取应用数据请求,其中,所述调取应用数据请求中携带有所请求调用的应用数据的标识信息;所述操作控制模块根据所述标识信息,判断所述调用的应用数据是否属于所述选择的应用的文件系统下的应用数据;所述操作控制模块根据所述空间信息判断所述调用的应用数据的物理存储地址是否属于预先分配给所述选择的应用的物理存储空间;在确定所述调用的应用数据属于所述选择的应用的文件系统下的应用数据,且所述调用的应用数据的物理存储地址属于预先分配给所述选择的应用的物理存储空间的情况下,所述操作控制模块调取所述调用的应用数据,并将所述调用的应用数据返回给所述选择的应用。
即在上述可选实施方式中,选择的应用在执行操作指令时,需要调用底层存储的应用数据,则操作控制模块在接收到选择的应用发送的调取应用数据请求时,为了保证应用数据的安全,操作控制模块执行两个判断操作,一个判断操作是判断所请求调取的应用数据是否为选择的应用的文件系统下的应用数据,另一个判断操作是判断所请求调取的应用数据的物理存储地址是否为预先分配给选择的应用的物理存储空间,只有在两个判断操作的判断均为是的情况下,才调取选择的应用所请求的应用数据,并将该应用数据发送给选择的应用,从而保证应用数据的安全,避免跨应用调取应用数据。
在上述可选实施方式中,可选地,所述操作控制模块根据所述标识信息,判断所述调用的应用数据是否属于所述选择的应用的文件系统下的应用数据,可以包括:所述操作控制模块将所述应用标识和所述标识信息发送给所述硬件驱动模块;所述硬件驱动模块判断在与所述应用标识对应的文件系统下是否查找到与所述标识信息对应的应用数据,并将查找结果通知所述操作控制模块;所述操作控制模块根据所述查找结果判断所述调用的所述应用数据是否属于所述选择的应用的文件系统下的应用数据。即在该可选实施方式,操作控制模块将应用标识和应用数据的标识信息发送给硬件驱动模块,硬件驱动模块在与应用标识对应文件系统中查找该应用数据的标识信息,如果查找到,则说明所请求调用的应用数据属于该应用的文件系统,否则,则说明所请求调用的应用数据不属于该应用的文件系统。采用这种方式,可以直接通过硬件驱动模块进行判断,无需预先将当前选择的应用的文件系统下的所有应用数据加载到内存,减少其它附加的处理。
在本发明实施例的一个可选实施方案中,所述操作控制模块获取选择的应用的应用标识之后,所述方法还包括:所述操作控制模块通过所述硬件驱动模块,获取与所述应用标识对应的文件系统下的所有应用数据,并将所述所有应用数据加载到内存中;所述操作控制模块根据所述标识信息,判断所述调用的应用数据是否属于所述选择的应用的文件系统下的应用数据,包括:所述操作控制模块判断所述内存中是否存在与所述标识信息对应的应用数据,如果有,则确定所述调用的应用数据属于所述选择的应用的文件系统下的应用数据,否则,确定所述调用的应用数据不属于所述选择的应用的文件系统下的应用数据。即在该可选实施方式中,操作控制模块在获取到选择的应用的应用标识之后,通过硬件驱动模块,将应用标识对应的文件系统下的所有应用数据加载到内存中,在调取某个应用数据之前,根据所请求调取的应用数据的标识信息,查找内存中加载的该应用的文件系统下的所有应用数据中是否存在所请求调取的应用数据,如果存在,则说明所请求调取的应用数据属于选择的应用对应的文件系统下的应用数据,否则,说明所请求调取的应用数据不属于选择的应用对应的文件系统下的应用数据。通过该可选实施方式,操作控制模块可以提前将选择的应用对应的文件系统下的所有应用数据加载到内存中,从而在每次收到对应该选择的应用的操作指令后都无需通过硬件驱动模块调用应用数据,可以提高判断所请求调取的应用数据是否属于选择的应用对应的文件系统下的判断速度,提高操作指令的执行效率。
在上述可选实施方式中,操作控制模块在获取到选择的应用的应用标识之后,通过硬件驱动模块,将应用标识对应的文件系统下的所有应用数据加载到内存中的情况下,操作控制模块在调取所述调用的应用数据时,可以直接从内存中获取所述调用的应用数据,从而可以提高调用应用数据的速度。
在上述可选实施方式中,可选地,环境信息中的所述空间信息在记录预先为对应的应用分配物理存储空间时,可以记录一个物理地址范围,也可以只记录起始物理地址以及为该应用分配的物理存储空间的大小,具体本实施例不作限定。
在上述可选实施方式中,环境信息中的权限信息中还可以记录各个应用数据的调取权限,因此,可选地,在所述操作控制模块调取所述调用的应用数据之前,所述方法还可以包括:所述操作控制模块查询所述权限信息,判断所述选择的应用是否具有调取所述调用的应用数据的权限,在确定所述选择的应用具有调取所述调用的应用数据的权限的情况下,执行调取所述调用的应用数据的操作。通过该可选实施方式,可以避免应用数据被非法调用,保证应用数据的安全。
在本发明实施例的一个可选实施方案中,为了避免在执行选择的应用的过程中,误执行其它应用的操作指令,例如,在用户选择多功能智能密钥设备的otp应用之后,外部读卡器向多功能智能密钥设备发送读卡请求,在本实施例中,将所述操作指令发送给所述选择的应用执行之前,所述方法还可以包括:所述操作控制模块判断所述操作指令中携带的应用标识是否与所述选择的应用的应用标识一致,在一致的情况下,执行将所述操作指令发送给所述选择的应用执行的步骤。通过该可选实施方式,可以保证多功能智能密钥设备在用户选定一个应用之后,不会再执行该应用之外的其它应用的操作指令,避免多功能智能密钥设备在多个应用程序之间跳转而导致应用执行的不安全。
通过本实施例提供的多功能智能密钥设备的操作指令执行方法,可以在同一智能密钥设备上实现多个应用,且可以将各应用隔离,使得各应用中的专有指令只能在该应用中有效,以及各应用的应用数据只能由该应用调用,避免多应用间的安全漏洞,提高多功能智能密钥设备的安全性。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在不脱离本发明的原理和宗旨的情况下在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。本发明的范围由所附权利要求及其等同限定。