CN107885993A - 一种数据的处理方法、终端以及java卡 - Google Patents

一种数据的处理方法、终端以及java卡 Download PDF

Info

Publication number
CN107885993A
CN107885993A CN201711111788.3A CN201711111788A CN107885993A CN 107885993 A CN107885993 A CN 107885993A CN 201711111788 A CN201711111788 A CN 201711111788A CN 107885993 A CN107885993 A CN 107885993A
Authority
CN
China
Prior art keywords
java card
terminal
application
authorization data
random number
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
CN201711111788.3A
Other languages
English (en)
Other versions
CN107885993B (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.)
Beijing Huada Zhibao Electronic System Co Ltd
Original Assignee
Beijing Huada Zhibao Electronic System 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 Beijing Huada Zhibao Electronic System Co Ltd filed Critical Beijing Huada Zhibao Electronic System Co Ltd
Priority to CN201711111788.3A priority Critical patent/CN107885993B/zh
Publication of CN107885993A publication Critical patent/CN107885993A/zh
Application granted granted Critical
Publication of CN107885993B publication Critical patent/CN107885993B/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/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • G06F21/445Program or device authentication by mutual authentication, e.g. between devices or programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Telephone Function (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本申请公开了一种数据的处理方法、终端以及JAVA卡,用于实现终端上的第一应用只被允许访问JAVA卡上与该第一应用对应的应用程序。本申请实施例方法包括:JAVA卡获取终端通过第一应用发送的访问请求,该访问请求用于指示访问该JAVA卡上安装的第二应用,该第一应用安装于该终端;该JAVA卡获取该终端发送的第一鉴权数据;该JAVA卡根据该访问请求计算得到第二鉴权数据;当该JAVA卡确定该第一鉴权数据与该第二鉴权数据相同时,则该JAVA卡允许该第一应用访问该第二应用。

Description

一种数据的处理方法、终端以及JAVA卡
技术领域
本申请涉及信息安全领域,尤其涉及一种数据的处理方法、终端以及JAVA卡。
背景技术
JAVA卡是Sun微系统为智能卡开发平台而制定的一个开放的标准。使用JAVA卡平台创建的智能卡上存有应用程序(也可以称为applet)。在JAVA卡发行后也可以把applet加到卡上或修改卡上已有的applet。JAVA卡把数据存储在一个集成的微处理器芯片里。然后applet被下载到微处理器的内存里,由JAVA虚拟机来运行。在该JAVA卡中还存储有加密的密钥(即本申请中的第一密钥)以及用户的个人信息等内容。
JAVA卡可使多个应用程序被安装并且各自独立地共存,实现一卡多用,使JAVA卡可以实现其他更多功能。
然而,在现有的JAVA卡的访问机制中,若与JAVA卡建立连接的终端安装有某应用开发商开发的某一应用A,若该应用A有权访问该JAVA卡,那么该应用A不仅可以访问安装在JAVA卡上的与应用A对应的应用程序A1,还可以访问该JAVA卡上其他存在的任意应用程序,例如:应用程序B1、应用程序C1等,给其他应用开发商在该JAVA卡上安装的应用程序带来安全隐患。
发明内容
本申请实施例提供了一种数据的处理方法,应用于JAVA卡,用于实现终端上的第一应用只能允许访问JAVA卡上与该第一应用对应的应用程序。
具体技术方案包括:
本申请实施例第一方面提供了一种数据的处理方法,应用于JAVA卡,该方法包括:所述JAVA卡获取终端通过第一应用发送的访问请求,所述访问请求用于指示访问所述JAVA卡上安装的第二应用,所述第一应用安装于所述终端;
所述JAVA卡获取所述终端发送的第一鉴权数据;
所述JAVA卡根据所述访问请求计算得到第二鉴权数据;
当所述JAVA卡确定所述第一鉴权数据与所述第二鉴权数据相同时,则所述JAVA卡允许所述第一应用访问所述第二应用。
优选地,在所述JAVA卡获取终端通过第一应用发送的访问请求之后,所述方法还包括:
所述JAVA卡向所述终端发送随机数,以使得所述终端根据所述随机数得到所述第一鉴权数据。
优选地,所述访问请求包括所述第二应用对应的第一标识码。
优选地,所述JAVA卡根据所述访问请求计算得到第二鉴权数据包括:
所述JAVA卡根据所述第一标识码以及所述JAVA卡上携带的第一密钥计算得到第二密钥;
所述JAVA卡根据所述第二密钥以及所述随机数计算得到所述第二鉴权数据。
优选地,在所述JAVA卡允许所述第一应用访问所述第二应用之后,所述方法还包括:
所述JAVA卡向所述终端发送鉴权成功通知,所述鉴权成功通知用于指示允许所述第一应用访问所述第二应用。
本申请实施例第二方面还提供了一种数据的处理方法,应用于JAVA卡,该方法包括:
终端通过第一应用向所述JAVA卡发送访问请求,以使得所述JAVA卡根据所述访问请求计算得到第二鉴权数据,所述访问请求用于指示访问所述JAVA卡上安装的第二应用,所述第一应用安装于所述终端;
所述终端根据预设方法得到第一鉴权数据;
所述终端向所述JAVA卡发送所述第一鉴权数据,以使得所述JAVA卡判断所述第一鉴权数据与所述第二鉴权数据是否相同;
所述终端获取所述JAVA卡发送的鉴权成功通知,所述鉴权成功通知用于指示允许所述第一应用访问所述第二应用。
优选地,所述终端根据预设方法得到第一鉴权数据包括:
所述终端获取所述JAVA卡发送的随机数;
所述终端向服务器发送鉴权请求,所述鉴权请求包括与第二应用对应的第一标识码以及与所述JAVA卡对应的第二标识码;
所述终端获取所述服务器发送的所述第三密钥,所述第三密钥由所述服务器根据所述第一标识码以及所述第二标识码计算得到;
所述终端根据所述第三密钥以及所述随机数计算得到所述第一鉴权数据。
优选地,所述终端根据预设方法得到第一鉴权数据包括:
所述终端获取所述JAVA卡发送的随机数;
所述终端向服务器发送鉴权请求,所述鉴权请求包括与第二应用对应的第一标识码、与所述JAVA卡对应的第二标识码以及所述随机数;
所述终端获取所述服务器发送的所述第一鉴权数据,所述第一鉴权数据由所述服务器根据所述第一标识码、所述第二标识码以及所述随机数计算得到。
本申请实施例第三方面提供一种JAVA卡,该JAVA卡包括:
第一获取单元,用于获取终端通过第一应用发送的访问请求,所述访问请求用于指示访问所述JAVA卡上安装的第二应用,所述第一应用安装于所述终端;
第二获取单元,用于获取所述终端发送的第一鉴权数据;
计算单元,用于根据所述访问请求计算得到第二鉴权数据;
允许访问单元,用于当所述JAVA卡确定所述第一鉴权数据与所述第二鉴权数据相同时,允许所述第一应用访问所述第二应用。
优选地,所述JAVA卡还包括:
第一发送单元,用于向所述终端发送随机数,以使得所述终端根据所述随机数得到所述第一鉴权数据。
优选地,所述计算单元具体还用于:
根据所述访问请求中包含的第二应用对应的第一标识码以及所述JAVA卡上携带的第一密钥计算得到第二密钥;
根据所述第二密钥以及所述随机数计算得到所述第二鉴权数据。
优选地,所述JAVA卡还包括:
第二发送单元,用于向所述终端发送鉴权成功通知,所述鉴权成功通知用于指示允许所述第一应用访问所述第二应用。
本申请实施例第四方面提供一种终端,该终端包括:
第一发送单元,用终端通过第一应用向JAVA卡发送访问请求,以使得所述JAVA卡根据所述访问请求计算得到第二鉴权数据,所述访问请求用于指示访问所述JAVA卡上安装的第二应用,所述第一应用安装于所述终端;
第一获取单元,用于根据预设方法得到第一鉴权数据;
第二发送单元,用于向所述JAVA卡发送所述第一鉴权数据,以使得所述JAVA卡判断所述第一鉴权数据与所述第二鉴权数据是否相同;
第二获取单元,用于获取所述JAVA卡发送的鉴权成功通知,所述鉴权成功通知用于指示允许所述第一应用访问所述第二应用。
优选地,所述第一获取单元具体还用于:
获取所述JAVA卡发送的随机数;
向服务器发送鉴权请求,所述鉴权请求包括与第二应用对应的第一标识码以及与所述JAVA卡对应的第二标识码;
获取所述服务器发送的所述第三密钥,所述第三密钥由所述服务器根据所述第一标识码以及所述第二标识码计算得到;
根据所述第三密钥以及所述随机数计算得到所述第一鉴权数据。
优选地,所述第一获取单元具体还用于:
获取所述JAVA卡发送的随机数;
向服务器发送鉴权请求,所述鉴权请求包括与第二应用对应的第一标识码、与所述JAVA卡对应的第二标识码以及所述随机数;
获取所述服务器发送的所述第一鉴权数据,所述第一鉴权数据由所述服务器根据所述第一标识码、所述第二标识码以及所述随机数计算得到。
本申请实施例第五方面还提供一种终端,该终端包括:
处理器,存储器,总线和输入输出接口,该处理器、存储器和输入输出接口通过该总线连接;该存储器中存储有程序代码,该程序代码用于存储操作指令;该处理器用于调用该存储器中的程序代码时执行本申请实施例中任一项数据的处理方法中该终端需要执行的步骤。
本申请实施例第六方面提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得该计算机执行本申请实施例中任一项数据的处理方法的步骤。
本申请实施例还提供一种计算机可读存储介质,需要说明的是,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,用于储存为上述相关设备所用的计算机软件指令,当该指令在计算机上运行时,使得计算机执行本申请实施例中任一项数据的处理方法的步骤。
该存储介质可以是U盘、移动硬盘、只读存储器(英文缩写:ROM,英文全称:Read-Only Memory)、随机存取存储器(英文缩写:RAM,英文全称:Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质,具体此处不做限定。
从以上技术方案可以看出,本申请实施例具有以下优点:
JAVA卡获取终端通过第一应用发送的访问请求,该访问请求用于指示访问该JAVA卡上安装的第二应用,该第一应用安装于该终端;该JAVA卡获取该终端发送的第一鉴权数据;该JAVA卡根据该访问请求计算得到第二鉴权数据;当该JAVA卡确定该第一鉴权数据与该第二鉴权数据相同时,则该JAVA卡允许该第一应用访问该第二应用。在本申请实施例中,终端上安装的应用只有权限访问JAVA卡上与该应用对应的应用程序,对JAVA卡上存在的其他应用程序,终端上的该应用则没有访问权限,对JAVA卡中的其他应用程序不构成安全隐患。
附图说明
图1为本申请实施例数据的处理方法一个实施例示意图;
图2为本申请实施例数据的处理方法另一实施例示意图;
图3为本申请实施例数据的处理方法另一实施例示意图;
图4为本申请实施例JAVA卡的一个实施例示意图;
图5为本申请实施例JAVA卡的另一实施例示意图;
图6为本申请实施例终端的一个实施例示意图;
图7为本申请实施例终端的另一实施例示意图;
图8为本申请实施例JAVA卡的另一实施例示意图。
具体实施方式
本申请实施例提供了一种数据的处理方法、终端以及JAVA卡,用于实现终端上的第一应用只被允许访问JAVA卡上与该第一应用对应的应用程序。
为便于理解,下面对本申请实施例中的具体流程进行描述,具体请参阅图1:
101、JAVA卡获取终端通过第一应用发送的访问请求;
终端与JAVA卡建立连接之后,JAVA卡可以获取终端通过第一应用发送的访问请求,该访问请求用于指示访问JAVA卡上安装的第二应用(即applet),该第一应用(在本申请中也可称为APP)安装于终端。
第一应用与第二应用相关联,进一讲,第一应用中的部分功能必须通过安装在JAVA卡端的第二应用实现,如签名、加密、解密等运算。但是JAVA卡端还存放除第二应用外的其他应用,为防止安全隐患,因此第一应用需要获取JAVA卡端第二应用的访问权限。
需要说明的是,该JAVA卡与终端建立的连接可以是蓝牙连接(即符合蓝牙协议栈),该JAVA卡也就可以是蓝牙JAVA卡;除了蓝牙连接之外,该JAVA卡与终端建立的连接也可以是通过ISO7816(即符合智能卡通信协议)建立的连接,也可以是通过近场通信(英文全称:Near Field Communication,英文简称:NFC)建立的连接,还可以是建立的其他连接方式,只要能实现JAVA卡与终端进行数据交互的功能即可,具体此处对JAVA卡与终端建立连接的方式不做限定。
还需要说明的是,该终端可以是手机、平板电脑、个人电脑等智能终端,也可以是智能手表、智能手环等智能可穿戴设备,只要是可以下载安装APP,且与JAVA卡可实现数据交互的设备都属于本申请中的所述的终端的定义范围,具体此处不做限定。
102、JAVA卡获取终端发送的第一鉴权数据;
JAVA卡获取终端通过第一应用发送的访问请求之后,将获取终端发送的第一鉴权数据。该第一鉴权数据的获取过程可以是:JAVA卡先向终端发送一个随机数,终端获取该随机数之后根据该随机数得到的第一鉴权数据。
103、JAVA卡根据访问请求计算得到第二鉴权数据;
JAVA卡根据访问请求计算得到第二鉴权数据。JAVA卡根据访问请求计算得到第二鉴权数据的过程具体可以是:终端通过安装的APP向JAVA卡发送的访问请求,该访问请求中包含与该APP对应的applet第一标识码(在本申请中也可称为AID),该第一标识码是确定applet的唯一标识,在终端与JAVA卡建立连接后,安装在终端的APP是可以获取到对应该APP的applet的AID的。因此,当该APP想要访问该applet时,可以向该JAVA卡发送一个包括该applet对应的AID的访问请求。需要说明的是,该访问请求具体可以是终端向JAVA卡发送的请求鉴权指令和对应的AID,该请求鉴权指令是JAVA卡提供的专有指令;该访问请求也可以是直接采用卡规范中的Select指令,该Select指令中就包含有对应的AID。具体此处对访问请求的具体形式不做限定。
需要说明的是,JAVA卡根据访问请求计算得到第二鉴权数据可以是JAVA卡根据访问请求中携带的applet对应的AID以及JAVA卡上自身携带的第一密钥计算得到第二密钥,之后JAVA卡再根据第二密钥以及产生的随机数计算得到第二鉴权数据。还需要说明的是,在本申请实施例中,步骤102以及步骤103之间没有先后顺序,可以先执行步骤102,也可以先执行步骤103,还可以同时执行步骤102和步骤103,具体此处不做限定。
104、当JAVA卡确定第一鉴权数据与第二鉴权数据相同时,JAVA卡允许第一应用访问第二应用。
JAVA卡获取到第一鉴权数据以及第二鉴权数据之后,将判断第一鉴权数据与第二鉴权数据是否相同,若JAVA卡确定第一鉴权数据与第二鉴权数据相同时,则JAVA卡允许第一应用访问第二应用,即JAVA卡允许终端上的该APP访问JAVA卡上对应的applet。
需要说明的是,JAVA卡允许第一应用访问第二应用,还可以向终端发送一个鉴权成功通知,该鉴权成功通知用于指示允许终端的第一应用访问该JAVA卡上的第二应用。
还需要说明的是,在本申请的一些实施方式中,JAVA卡可以包括用户身份识别(英文全称:Subscriber Identity Module,英文简称:SIM)卡,SIM卡也称为智能卡,也是一种装有微处理器的芯片卡,在该SIM卡上存储有数字移动电话客户的信息、加密的密钥以及用户的电话簿等内容,符合全球移动通信系统(英文全称:Global System for MobileCommunications,英文简称:GSM)规范,GSM数字移动电话机必须安装该SIM卡才可供GSM网络的用户进行身份鉴别,并对用户通话时的信息进行加密。除此之外,JAVA卡还可以是其他包括微处理器的芯片卡,具体此处不做限定。
在本申请实施例中,JAVA卡获取终端通过第一应用发送的访问请求,该访问请求用于指示访问该JAVA卡上安装的第二应用,该第一应用安装于该终端;该JAVA卡获取该终端发送的第一鉴权数据;该JAVA卡根据该访问请求计算得到第二鉴权数据;当该JAVA卡确定该第一鉴权数据与该第二鉴权数据相同时,则该JAVA卡允许该第一应用访问该第二应用。在本申请实施例中,终端上安装的应用只有权限访问JAVA卡上与该应用对应的应用程序,对JAVA卡上存在的其他应用程序,终端上的该应用则没有访问权限,对JAVA卡中的其他应用程序不构成安全隐患。
图1对应的实施例是从JAVA卡侧对数据的处理方法进行了论述,下面从终端侧对数据的处理方法进行说明,具体请参阅图2,本申请实施例数据的处理方法另一实施例包括:
201、终端通过第一应用向JAVA卡发送访问请求;
当终端接受用户的操作指令,需要访问JAVA卡中与终端的第一应用(即APP)对应的JAVA卡上的第二应用(即applet)时,终端可以通过该APP向JAVA卡发送访问请求,该访问请求可以是包括该applet对应的AID以及请求鉴权指令,也可以是包括卡规范中的Select指令,具体此处不做限定。
202、终端根据预设方法得到第一鉴权数据;
终端通过该APP向JAVA卡发送访问请求之后,将根据预设方法得到第一鉴权数据,该预设方法可以是:终端先获取JAVA卡发送的随机数,之后终端将该随机数、applet对应的AID以及与该JAVA卡对应的第二标识码(即本申请中的DevID)携带在鉴权请求信息中发送给服务器,该服务器根据获取到的随机数、AID以及DevID计算得到第一鉴权数据,之后终端获取服务器发送的该第一鉴权数据;此外,该预设方法还可以是:终端先获取JAVA卡发送的随机数,之后终端将该applet对应的AID以及与该JAVA卡对应的DevID携带在鉴权请求信息中发送给服务器,该服务器根据获取到的AID以及DevID计算得到第三密钥,之后服务器将该第三密钥发送至终端,终端再根据该第三密钥以及从JAVA卡处获取到的随机数进行计算,得到第一鉴权数据。在本申请实施例中,对该预设方法不做限定。
需要说明的是,JAVA卡对应的第二标识码是唯一识别该JAVA卡的标识码,可以是JAVA卡的硬件ID,也可以是生产厂商已在JAVA卡上确定的序列号,还可以是图形标识码,具体此处不做限定。
203、终端向JAVA卡发送第一鉴权数据;
终端获取到第一鉴权数据之后,将向JAVA卡发送该第一鉴权数据,以使得JAVA卡判断第一鉴权数据与JAVA卡本身计算得到的第二鉴权数据是否相同。
204、终端获取JAVA卡发送的鉴权成功通知。
若JAVA卡确定第一鉴权数据与JAVA卡本身计算得到的第二鉴权数据相同,则终端获取JAVA卡发送的鉴权成功通知,该鉴权成功通知用于指示允许第一应用访问第二应用,即JAVA卡允许终端上的该APP访问JAVA卡上对应的applet。
图1以及图2对应的实施例分别是从JAVA卡侧以及终端侧以流程图的方式对数据的处理方法进行了阐述,下面从以JAVA卡为SIM卡为例,从终端以及服务器组成的整个系统之间数据交互的角度进行详细阐述,具体请参阅图3,本申请实施例数据的处理方法另一实施例包括:301、终端向SIM卡发送访问请求;
终端上安装的第一应用(即APP)接受了用户的操作指令,需要访问与该终端建立连接的SIM卡上的第二应用(即applet),那么终端将向该SIM卡发送访问请求,该访问请求具体可以是终端向SIM卡发送的请求鉴权指令和对应的AID,也可以是终端向SIM卡发送的直接采用卡规范中的Select指令,该Select指令中就包含有对应的AID,具体此处不做限定。
需要说明的是,SIM卡获取到该访问请求之后,将判断该访问请求中携带的AID是否为已鉴权成功的状态。判断AID是否为已鉴权成功的状态具体可以是:当SIM卡获取到该AID,确定该AID是否为SIM卡上可信应用列表中的AID,若是,则确定该AID为已鉴权成功的状态,并允许终端上的该APP有权访问该SIM卡对应的applet;若否,则确定该AID为鉴权失败的状态,则继续执行步骤302。
还需要注意的是,SIM卡上的可信应用列表可以是每次只允许存在一个AID,也可以是一次可以存在多个不同applet对应的AID,具体此处不做限定。若可信应用列表每次只允许存在一个AID,例如:在可信应用列表里仅存一个AID1,在终端始终保持与SIM卡建立连接的情况下,若AID1之前鉴权成功,那么下次对于终端上安装的对应的APP1发送的访问请求中携带的AID1,就确定该AID1为已鉴权成功的状态,不需要再进行鉴权,SIM卡就可以允许终端上的该APP1有权访问该SIM卡对应的applet1。但在AID1第一次鉴权成功之后,之后又有终端上的APP2对SIM卡进行访问applet2,则可信应用列表里会删除之前存放的AID1,而存放另一个当前鉴权成功的AID2,这样若APP1想要再次访问SIM卡中的applet1时,则SIM卡需要再次判断该访问请求中携带的AID1是否为已鉴权成功的状态。
302、SIM卡向终端发送一个随机数R1;
若SIM卡确定获取到的AID没有通过鉴权,则SIM卡获取到终端发送的访问请求之后,将自动生成一个随机数R1,并将该随机数R1发送至终端。
303、终端向服务器发送鉴权请求;
终端获取到SIM卡发送的随机数R1之后,将向服务器发送鉴权请求,该鉴权请求包括与SIM卡上applet对应的AID、与SIM卡对应的DevID。
304、服务器向终端发送第三密钥K3;
当服务器获取到终端发送的鉴权请求并验证了访问者身份之后,将根据鉴权请求中的DevID以及服务器中已存在的根密钥K1进行计算,得到从根密钥K1中分散而来的分散密钥K1’,之后服务器再根据该分散密钥K1’与鉴权请求中的AID计算得到第三密钥K3。最后,服务器将计算得到的第三密钥K3发送至终端。
这里需要说明的是,服务器上存储的根密钥K1是在SIM卡生产过程中由加密机产生的,并上传至服务器,每张SIM卡对应一个根密钥K1,根密钥K1只存在服务器中。具体过程可以是:在工厂的生产环节,生产出的SIM卡插入一个读卡器,读卡器与加密机建立连接,加密机再与服务器建立连接。连接建立成功之后,加密机将按照预设规则或随机生成一个根密钥K1,并将该根密钥通过建立的连接上传至服务器,之后SIM卡将向加密机发送设置鉴权密钥指令请求,加密机获取到该设置鉴权密钥指令请求之后,向SIM卡写入第一密钥K2,即SIM卡中不存在根密钥K1,只存在第一密钥K2,这样可以更好的保证SIM卡根密钥K1的安全性。需要说明的是,该具体过程只是服务器上存储根密钥K1、SIM卡存储第一密钥K2的一种可实现的方式,还可以有其他实现方式,具体此处不做限定。
305、终端根据第三密钥K3、随机数R1得到第一鉴权数据D;
终端根据从服务器获取到的第三密钥K3、SIM卡获取到的随机数R1进行计算,得到第一鉴权数据D。
需要说明的是,在本申请的一些实施方式中,终端向服务器发送的鉴权请求中还可以包括随机数R1,使得服务器在根据上述方式计算得到第三密钥K3之后,还可以进一步根据随机数R1、第三密钥K3计算得到第一鉴权数据D,之后服务器将第一鉴权数据D直接发送至终端。
306、终端向SIM卡发送第一鉴权数据D;
终端获取到第一鉴权数据D之后,将向SIM卡发送该第一鉴权数据D。
307、SIM卡计算得到第二鉴权数据D’;
SIM卡获取到终端发送的访问请求之后,根据访问请求中携带的AID进行计算,得到第二鉴权数据D’。具体过程可以是:SIM卡根据AID、SIM卡上存储的第一密钥K2计算得到第二密钥K3’,并根据第二密钥K3’以及自身产生的随机数R1计算得到第二鉴权数据D’。
需要说明的是,步骤307可以在步骤302至步骤306之间的任意一个步骤的之前进行,也可以与步骤302至步骤306之间的任意一个步骤同时进行,具体此处不做限定。
308、当D=D’时,SIM卡向终端发送鉴权成功通知。
当SIM卡确定D=D’时,则SIM卡允许该APP访问该applet,并向终端发送鉴权成功通知,该鉴权成功通知用于指示终端上的该APP有权访问SIM卡上对应的applet。
在本申请实施例中,终端首先通过安装的第一应用向SIM卡发送访问请求,该访问请求用于指示访问该SIM卡上安装的第二应用;之后SIM卡向终端发送随机数R1,并根据该随机数R1以及访问请求计算得到第二鉴权数据D’;终端获取到SIM卡发送的随机数R1之后,向服务器发送鉴权请求,并从服务器获取到第三密钥K3,并进一步根据第三密钥K3、随机数R1计算得到第一鉴权数据D,之后将该第一鉴权数据D发送至SIM卡;当SIM卡确定D=D’时,则SIM卡允许第一应用访问第二应用,并向终端发送鉴权成功通知。在本申请实施例中,终端上安装的应用只有权限访问SIM卡上与该应用对应的应用程序,对SIM卡上存在的其他应用程序,终端上的该应用则没有访问权限,对SIM卡中的其他应用程序不构成安全隐患。
图1至图3对本申请实施例中数据的处理方法进行了说明,下面分别对本申请实施例中的相关设备进行说明,相关设备包括JAVA卡以及终端,具体请参阅图4,本申请实施例JAVA卡的一个实施例包括:
第一获取单元401,用于获取终端通过第一应用发送的访问请求,所述访问请求用于指示访问所述JAVA卡上安装的第二应用,所述第一应用安装于所述终端;
第二获取单元402,用于获取所述终端发送的第一鉴权数据;
计算单元403,用于根据所述访问请求计算得到第二鉴权数据;
允许访问单元404,用于当所述JAVA卡确定所述第一鉴权数据与所述第二鉴权数据相同时,允许所述第一应用访问所述第二应用。
在本申请的一些实施方式中,JAVA卡除了具有图4对应的实施例中所描述的单元之外,还可以具有更多单元以实现额外的功能,具体请参阅图5,本申请实施例JAVA卡的另一实施例包括:
第一获取单元501、第一发送单元502、第二获取单元503、计算单元504、允许访问单元505;其中,第一获取单元501、第二获取单元503、计算单元504、允许访问单元505与图4对应的实施例中的第一获取单元401、第二获取单元402、计算单元403、允许访问单元404功能类似,具体此处不予赘述;
第一发送单元502,用于向所述终端发送随机数,以使得所述终端根据所述随机数得到所述第一鉴权数据。
在本申请的一些实施方式中,计算单元504具体还用于:
根据所述访问请求中包含的第二应用对应的第一标识码以及所述JAVA卡上携带的第一密钥计算得到第二密钥;
根据所述第二密钥以及所述随机数计算得到所述第二鉴权数据。
在本申请实施例的一些实施方式中,该JAVA卡还可以包括:
第二发送单元506,用于向所述终端发送鉴权成功通知,所述鉴权成功通知用于指示允许所述第一应用访问所述第二应用。
本申请实施例中的相关设备除了包括JAVA卡之外,还包括与JAVA卡建立连接终端,具体请参阅图6,本申请实施例终端的一个实施例包括:
第一发送单元601,用终端通过第一应用向JAVA卡发送访问请求,以使得所述JAVA卡根据所述访问请求计算得到第二鉴权数据,所述访问请求用于指示访问所述JAVA卡上安装的第二应用,所述第一应用安装于所述终端;
第一获取单元602,用于根据预设方法得到第一鉴权数据;
第二发送单元603,用于向所述JAVA卡发送所述第一鉴权数据,以使得所述JAVA卡判断所述第一鉴权数据与所述第二鉴权数据是否相同;
第二获取单元604,用于获取所述JAVA卡发送的鉴权成功通知,所述鉴权成功通知用于指示允许所述第一应用访问所述第二应用。
在本申请的一些实施方式中,该第一获取单元602具体可用于:
获取所述JAVA卡发送的随机数;
向服务器发送鉴权请求,所述鉴权请求包括与第二应用对应的第一标识码以及与所述JAVA卡对应的第二标识码;
获取所述服务器发送的所述第三密钥,所述第三密钥由所述服务器根据所述第一标识码以及所述第二标识码计算得到;
根据所述第三密钥以及所述随机数计算得到所述第一鉴权数据。
在本申请的一些实施方式中,第一获取单元602具体还可用于:
获取所述JAVA卡发送的随机数;
向服务器发送鉴权请求,所述鉴权请求包括与第二应用对应的第一标识码、与所述JAVA卡对应的第二标识码以及所述随机数;
获取所述服务器发送的所述第一鉴权数据,所述第一鉴权数据由所述服务器根据所述第一标识码、所述第二标识码以及所述随机数计算得到。
上面图4至图6从模块化功能实体的角度分别对本发明实施例中的JAVA卡、终端进行了描述,下面从硬件处理的角度对本发明实施例中的终端进行详细描述,请参阅图7,本发明实施例终端700一个实施例包括:
输入装置701、输出装置702、处理器703和存储器704(其中处理器703的数量可以一个或多个,图7中以一个处理器703为例)。在本发明的一些实施例中,输入装置701、输出装置702、处理器703和存储器704可通过总线或其它方式连接,其中,图7中以通过总线连接为例。
其中,通过调用存储器704存储的操作指令,处理器703,用于执行图1至图3对应的实施例中需终端执行的步骤。
请参阅图8,本发明实施例JAVA卡的一个实施例包括:
输入装置801、输出装置802、微处理器803和存储器804(其中存储器804可以包括程序存储器ROM、工作存储器RAM、数据存储器EEPROM)。在本发明的一些实施例中,输入装置801、输出装置802、微处理器803和存储器804可通过总线或其它方式连接,其中,图8中以通过总线连接为例。
其中,通过调用存储器804存储的操作指令,处微理器803,用于执行图1至图3对应的实施例中需JAVA卡执行的步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请图1至图3实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文缩写:ROM,英文全称:Read-Only Memory)、随机存取存储器(英文缩写:RAM,英文全称:Random AccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (15)

1.一种数据的处理方法,应用于JAVA卡,其特征在于,包括:
所述JAVA卡获取终端通过第一应用发送的访问请求,所述访问请求用于指示访问所述JAVA卡上安装的第二应用,所述第一应用安装于所述终端;
所述JAVA卡获取所述终端发送的第一鉴权数据;
所述JAVA卡根据所述访问请求计算得到第二鉴权数据;
当所述JAVA卡确定所述第一鉴权数据与所述第二鉴权数据相同时,则所述JAVA卡允许所述第一应用访问所述第二应用。
2.根据权利要求1所述的方法,其特征在于,在所述JAVA卡获取终端通过第一应用发送的访问请求之后,所述方法还包括:
所述JAVA卡向所述终端发送随机数,以使得所述终端根据所述随机数得到所述第一鉴权数据。
3.根据权利要求2所述的方法,其特征在于,
所述访问请求包括所述第二应用对应的第一标识码;
所述JAVA卡根据所述访问请求计算得到第二鉴权数据包括:
所述JAVA卡根据所述第一标识码以及所述JAVA卡上携带的第一密钥计算得到第二密钥;
所述JAVA卡根据所述第二密钥以及所述随机数计算得到所述第二鉴权数据。
4.根据权利要求1至3中任一项所述的方法,其特征在于,在所述JAVA卡允许所述第一应用访问所述第二应用之后,所述方法还包括:
所述JAVA卡向所述终端发送鉴权成功通知,所述鉴权成功通知用于指示允许所述第一应用访问所述第二应用。
5.根据权利要求1至3中任一项所述的方法,其特征在于,所述JAVA卡包括:SIM卡。
6.一种数据的处理方法,应用于JAVA卡,其特征在于,包括:
终端通过第一应用向所述JAVA卡发送访问请求,以使得所述JAVA卡根据所述访问请求计算得到第二鉴权数据,所述访问请求用于指示访问所述JAVA卡上安装的第二应用,所述第一应用安装于所述终端;
所述终端根据预设方法得到第一鉴权数据;
所述终端向所述JAVA卡发送所述第一鉴权数据,以使得所述JAVA卡判断所述第一鉴权数据与所述第二鉴权数据是否相同;
所述终端获取所述JAVA卡发送的鉴权成功通知,所述鉴权成功通知用于指示允许所述第一应用访问所述第二应用。
7.根据权利要求6所述的方法,其特征在于,所述终端根据预设方法得到第一鉴权数据包括:
所述终端获取所述JAVA卡发送的随机数;
所述终端向服务器发送鉴权请求,所述鉴权请求包括与第二应用对应的第一标识码以及与所述JAVA卡对应的第二标识码;
所述终端获取所述服务器发送的所述第三密钥,所述第三密钥由所述服务器根据所述第一标识码以及所述第二标识码计算得到;
所述终端根据所述第三密钥以及所述随机数计算得到所述第一鉴权数据。
8.根据权利要求6所述的方法,其特征在于,所述终端根据预设方法得到第一鉴权数据包括:
所述终端获取所述JAVA卡发送的随机数;
所述终端向服务器发送鉴权请求,所述鉴权请求包括与第二应用对应的第一标识码、与所述JAVA卡对应的第二标识码以及所述随机数;
所述终端获取所述服务器发送的所述第一鉴权数据,所述第一鉴权数据由所述服务器根据所述第一标识码、所述第二标识码以及所述随机数计算得到。
9.一种JAVA卡,其特征在于,包括:
第一获取单元,用于获取终端通过第一应用发送的访问请求,所述访问请求用于指示访问所述JAVA卡上安装的第二应用,所述第一应用安装于所述终端;
第二获取单元,用于获取所述终端发送的第一鉴权数据;
计算单元,用于根据所述访问请求计算得到第二鉴权数据;
允许访问单元,用于当所述JAVA卡确定所述第一鉴权数据与所述第二鉴权数据相同时,允许所述第一应用访问所述第二应用。
10.根据权利要求9所述的JAVA卡,其特征在于,所述JAVA卡还包括:
第一发送单元,用于向所述终端发送随机数,以使得所述终端根据所述随机数得到所述第一鉴权数据。
11.根据权利要求10所述的JAVA卡,其特征在于,所述计算单元具体还用于:
根据所述访问请求中包含的第二应用对应的第一标识码以及所述JAVA卡上携带的第一密钥计算得到第二密钥;
根据所述第二密钥以及所述随机数计算得到所述第二鉴权数据。
12.根据权利要求9至11中任一项所述的JAVA卡,其特征在于,所述JAVA卡还包括:
第二发送单元,用于向所述终端发送鉴权成功通知,所述鉴权成功通知用于指示允许所述第一应用访问所述第二应用。
13.一种终端,其特征在于,包括:
第一发送单元,用终端通过第一应用向JAVA卡发送访问请求,以使得所述JAVA卡根据所述访问请求计算得到第二鉴权数据,所述访问请求用于指示访问所述JAVA卡上安装的第二应用,所述第一应用安装于所述终端;
第一获取单元,用于根据预设方法得到第一鉴权数据;
第二发送单元,用于向所述JAVA卡发送所述第一鉴权数据,以使得所述JAVA卡判断所述第一鉴权数据与所述第二鉴权数据是否相同;
第二获取单元,用于获取所述JAVA卡发送的鉴权成功通知,所述鉴权成功通知用于指示允许所述第一应用访问所述第二应用。
14.根据权利要求13所述的终端,其特征在于,所述第一获取单元具体还用于:
获取所述JAVA卡发送的随机数;
向服务器发送鉴权请求,所述鉴权请求包括与第二应用对应的第一标识码以及与所述JAVA卡对应的第二标识码;
获取所述服务器发送的所述第三密钥,所述第三密钥由所述服务器根据所述第一标识码以及所述第二标识码计算得到;
根据所述第三密钥以及所述随机数计算得到所述第一鉴权数据。
15.根据权利要求13所述的终端,其特征在于,所述第一获取单元具体还用于:
获取所述JAVA卡发送的随机数;
向服务器发送鉴权请求,所述鉴权请求包括与第二应用对应的第一标识码、与所述JAVA卡对应的第二标识码以及所述随机数;
获取所述服务器发送的所述第一鉴权数据,所述第一鉴权数据由所述服务器根据所述第一标识码、所述第二标识码以及所述随机数计算得到。
CN201711111788.3A 2017-11-10 2017-11-10 一种数据的处理方法、终端以及java卡 Active CN107885993B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711111788.3A CN107885993B (zh) 2017-11-10 2017-11-10 一种数据的处理方法、终端以及java卡

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711111788.3A CN107885993B (zh) 2017-11-10 2017-11-10 一种数据的处理方法、终端以及java卡

Publications (2)

Publication Number Publication Date
CN107885993A true CN107885993A (zh) 2018-04-06
CN107885993B CN107885993B (zh) 2019-04-19

Family

ID=61780091

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711111788.3A Active CN107885993B (zh) 2017-11-10 2017-11-10 一种数据的处理方法、终端以及java卡

Country Status (1)

Country Link
CN (1) CN107885993B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101227682A (zh) * 2008-02-19 2008-07-23 中兴通讯股份有限公司 一种保护终端中数据安全的方法及装置
US20130073840A1 (en) * 2011-09-21 2013-03-21 Pantech Co., Ltd. Apparatus and method for generating and managing an encryption key
CN105491067A (zh) * 2016-01-08 2016-04-13 腾讯科技(深圳)有限公司 基于密钥的业务安全性验证方法及装置
CN105678192A (zh) * 2015-12-29 2016-06-15 北京数码视讯科技股份有限公司 一种基于智能卡的密钥应用方法及应用装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101227682A (zh) * 2008-02-19 2008-07-23 中兴通讯股份有限公司 一种保护终端中数据安全的方法及装置
US20130073840A1 (en) * 2011-09-21 2013-03-21 Pantech Co., Ltd. Apparatus and method for generating and managing an encryption key
CN105678192A (zh) * 2015-12-29 2016-06-15 北京数码视讯科技股份有限公司 一种基于智能卡的密钥应用方法及应用装置
CN105491067A (zh) * 2016-01-08 2016-04-13 腾讯科技(深圳)有限公司 基于密钥的业务安全性验证方法及装置

Also Published As

Publication number Publication date
CN107885993B (zh) 2019-04-19

Similar Documents

Publication Publication Date Title
CN100362786C (zh) 在无线网络中执行保密数据传输的方法和设备
CN103873231B (zh) 认证服务器、移动终端和利用其来发放射频卡密钥的方法
CA2972895C (en) Security for mobile payment applications
CN106233689B (zh) 用于保护移动应用的方法和设备
CN102026187B (zh) 用户识别模块及基于该用户识别模块的传输方法、系统
FI125071B (fi) Maksujärjestelmä
CN102521744B (zh) 网络支付方法及装置
JP5001491B2 (ja) クレジットカード認証システム、クレジットカード認証端末および認証サーバ
CN103404099B (zh) 耦合到nfc电路的电信设备中的通信管道的管理
CN112003858B (zh) 基于区块链的平台对接的方法、电子装置和存储介质
CN100459786C (zh) 经移动终端控制资源的方法和系统、相关网络及其计算机程序产品
CN101438530A (zh) 用于无线交易的认证方法
CN104660567B (zh) D2d终端接入认证方法、d2d终端及服务器
CN101916476A (zh) 一种基于sd加密卡与近距离无线通信技术相结合的移动数据传输方法
CN104067304B (zh) 便携终端、终端功能管理系统以及终端功能管理方法
CN101437224A (zh) 移动终端软件的更新方法和移动终端
CN103733202A (zh) 应用内许可的装置和方法
CN102272769A (zh) 服务访问控制
CN101727704A (zh) 移动银行终端专用掌上设备
CN102547681B (zh) 一种智能密钥装置和身份认证方法
CN101359413B (zh) 一种处理重个人化智能卡的无线终端及方法
CN107392034A (zh) 一种敏感信息保护方法、终端及计算机可读存储介质
CN109413034B (zh) 应用程序数据显示方法、装置、计算机设备和存储介质
CN104021351B (zh) 一种数据资源的访问方法及装置
CN104850811B (zh) 一种基于stk菜单对软件进行授权的方法及系统

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