CN117835217A - 卡应用通信方法及系统 - Google Patents
卡应用通信方法及系统 Download PDFInfo
- Publication number
- CN117835217A CN117835217A CN202410102990.3A CN202410102990A CN117835217A CN 117835217 A CN117835217 A CN 117835217A CN 202410102990 A CN202410102990 A CN 202410102990A CN 117835217 A CN117835217 A CN 117835217A
- Authority
- CN
- China
- Prior art keywords
- application
- configuration information
- character string
- card
- card application
- 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.)
- Pending
Links
- 238000004891 communication Methods 0.000 title claims abstract description 147
- 238000000034 method Methods 0.000 title claims abstract description 104
- 230000004044 response Effects 0.000 claims abstract description 8
- 238000012545 processing Methods 0.000 claims description 36
- 238000013524 data verification Methods 0.000 claims description 20
- 230000002123 temporal effect Effects 0.000 claims description 8
- 238000007405 data analysis Methods 0.000 claims description 3
- 238000005516 engineering process Methods 0.000 abstract description 2
- 230000006870 function Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 10
- 230000005540 biological transmission Effects 0.000 description 9
- 230000008569 process Effects 0.000 description 8
- 238000004590 computer program Methods 0.000 description 6
- 238000012795 verification Methods 0.000 description 5
- 208000016709 aortopulmonary window Diseases 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- UFYQLXOGDWQBGQ-UHFFFAOYSA-N 10-phenylspiro[acridine-9,9'-fluorene]-2',7'-dicarbonitrile Chemical compound C12=CC(C#N)=CC=C2C2=CC=C(C#N)C=C2C1(C1=CC=CC=C11)C2=CC=CC=C2N1C1=CC=CC=C1 UFYQLXOGDWQBGQ-UHFFFAOYSA-N 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 2
- 238000013475 authorization Methods 0.000 description 2
- 238000005336 cracking Methods 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W8/00—Network data management
- H04W8/18—Processing of user or subscriber data, e.g. subscribed services, user preferences or user profiles; Transfer of user or subscriber data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/06—Authentication
- H04W12/068—Authentication using credential vaults, e.g. password manager applications or one time password [OTP] applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W8/00—Network data management
- H04W8/26—Network addressing or numbering for mobility support
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Computer Security & Cryptography (AREA)
- Telephonic Communication Services (AREA)
Abstract
本公开涉及通信技术领域,尤其涉及一种卡应用通信方法及系统。其中,该方法应用于软件开发工具包,包括:接收业务方应用程序发送的针对卡应用的通信连接请求;发送业务方应用程序的配置信息至服务器,以使服务器根据配置信息生成第一特征码;响应于接收到服务器发送的写入结果,发送身份认证请求至终端操作系统,以使终端操作系统在第一特征码和第二特征码之间的对比结果满足认证要求的情况下建立与卡应用之间的通信通道,其中,写入结果用于指示第一特征码已写入至卡应用对应的访问控制文件,身份认证请求包括配置信息,第二特征码由终端根据配置信息生成。采用上述方案的本公开可以将卡能力开放给全量APP。
Description
技术领域
本公开涉及通信技术领域,尤其涉及一种卡应用通信方法及系统。
背景技术
随着全球用户识别卡(Universal Subscriber Identity Module,USIM)在日常生活中发挥越来越多的作用,许多新的应用程序(Application,APP)希望可以使用USIM的功能,这就需要APP可以和USIM卡中的卡应用进行通信。
相关技术中,需要在制卡时就把APP的签名写入到卡应用对应的访问控制(AccessControl,AC)文件中APP才可以和卡应用进行正常通信,如果APP的签名未写入AC文件中则APP无法与卡应用进行通信。由于AC文件的容量有限,只能够写入部分APP的签名到AC文件中,导致只有部分APP可以和卡应用进行通信,卡能力无法向全量APP进行开放,无法支持更多的APP接入,扩展性差。
发明内容
本公开提出了一种卡应用通信方法及系统,以能够将卡能力开放给全量APP。
根据本公开实施例的第一方面,提出了一种卡应用通信方法,应用于软件开发工具包,包括:
接收业务方应用程序发送的针对卡应用的通信连接请求;
发送所述业务方应用程序的配置信息至服务器,以使所述服务器根据所述配置信息生成第一特征码;
响应于接收到所述服务器发送的写入结果,发送身份认证请求至终端操作系统,以使所述终端操作系统在所述第一特征码和第二特征码之间的对比结果满足认证要求的情况下建立与所述卡应用之间的通信通道,其中,所述写入结果用于指示所述第一特征码已写入至所述卡应用对应的访问控制文件,所述身份认证请求包括所述配置信息,所述第二特征码由所述终端根据所述配置信息生成。
根据本公开实施例的第二方面,提出了一种卡应用通信方法,应用于服务器,包括:
接收软件开发工具包发送的业务方应用程序的配置信息;
根据所述配置信息生成第一特征码;
将所述第一特征码发送给所述配置信息对应的卡应用。
根据本公开实施例的第三方面,提出了一种卡应用通信方法,应用于终端操作系统,包括:
接收软件开发工具包发送的针对业务方应用程序的身份认证请求,其中,所述身份认证请求包括所述业务方应用程序的配置信息;
确定所述身份认证请求对应的卡应用,从所述卡应用对应的访问控制文件中获取第一特征码,其中,所述第一特征码由服务器根据所述配置信息生成;
根据所述配置信息生成第二特征码,并在所述第一特征码和所述第二特征码之间的对比结果满足认证要求的情况下建立与所述卡应用之间的通信通道。
根据本公开实施例的第四方面,提出了一种软件开发工具包,其特征在于,包括:
收发模块,用于接收业务方应用程序发送的针对卡应用的通信连接请求;
所述收发模块,还用于发送所述业务方应用程序的配置信息至服务器,以使所述服务器根据所述配置信息生成第一特征码;
所述收发模块,还用于响应于接收到所述服务器发送的写入结果,发送身份认证请求至终端操作系统,以使所述终端操作系统在所述第一特征码和第二特征码之间的对比结果满足认证要求的情况下建立与所述卡应用之间的通信通道,其中,所述写入结果用于指示所述第一特征码已写入至所述卡应用对应的访问控制文件,所述身份认证请求包括所述配置信息,所述第二特征码由所述终端根据所述配置信息生成。
根据本公开实施例的第五方面,提出了一种服务器,包括:
收发模块,用于接收软件开发工具包发送的业务方应用程序的配置信息;
处理模块,用于根据所述配置信息生成第一特征码;
所述收发模块,还用于将所述第一特征码发送给所述配置信息对应的卡应用。
根据本公开实施例的第六方面,提出了一种终端操作系统,包括:
收发模块,用于接收软件开发工具包发送的针对业务方应用程序的身份认证请求,其中,所述身份认证请求包括所述业务方应用程序的配置信息;
所述收发模块,还用于确定所述身份认证请求对应的卡应用,从所述卡应用对应的访问控制文件中获取第一特征码,其中,所述第一特征码由服务器根据所述配置信息生成;
处理模块,用于根据所述配置信息生成第二特征码,并在所述第一特征码和所述第二特征码之间的对比结果满足认证要求的情况下建立与所述卡应用之间的通信通道。
根据本公开实施例的第七方面,提出了一种业务方应用程序,包括:
一个或多个处理器;
其中,所述业务方应用程序用于执行如第一方面中任一项所述的卡应用通信方法。
根据本公开实施例的第八方面,提出了一种服务器,包括:
一个或多个处理器;
其中,所述服务器用于执行如第二方面中任一项所述的卡应用通信方法。
根据本公开实施例的第九方面,提出了一种终端操作系统,包括:
一个或多个处理器;
其中,所述终端操作系统用于如第三方面中任一项所述的卡应用通信方法。
根据本公开实施例的第十方面,提出了一种卡应用通信系统,包括:业务方应用程序、软件开发工具包、卡应用、终端操作系统、服务器,其中,所述软件开发工具包被配置为实现如第一方面中任一项所述的卡应用通信方法,所述服务器被配置为实现如第二方面中任一项所述的卡应用通信方法,所述终端操作系统被配置为实现如第三方面中任一项所述的卡应用通信方法。
根据本公开实施例的第十一方面,提出了一种存储介质存储有指令,当所述指令在通信设备上运行时,使得所述通信设备执行如第一方面、第二方面或第三方面中任一项所述的卡应用通信方法。
附图说明
本公开上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本公开一个实施例所提供的一种卡应用通信方法的流程示意图;
图2为本公开又一个实施例所提供的一种卡应用通信方法的流程示意图;
图3为本公开另一个实施例所提供的一种卡应用通信方法的流程示意图;
图4为本公开一个实施例所提供的一种卡应用通信方法的交互示意图;
图5为本公开实施例所提供的一种软件开发工具包的结构示意图;
图6为本公开一个实施例所提供的一种服务器的结构示意图;
图7为本公开一个实施例所提供的一种终端操作系统的结构示意图;
图8为本公开一个实施例所提供的一种卡应用通信系统的结构示意图。
具体实施方式
本公开提出了一种卡应用通信方法及系统,以能够对卡应用通信业务进行优化。
根据本公开实施例的第一方面,提出了一种卡应用通信方法,如图1所示,应用于软件开发工具包,包括:
S1001,接收业务方应用程序发送的针对卡应用的通信连接请求;
S1002,发送业务方应用程序的配置信息至服务器,以使服务器根据配置信息生成第一特征码;
S1003,响应于接收到服务器发送的写入结果,发送身份认证请求至终端操作系统,以使终端操作系统在第一特征码和第二特征码之间的对比结果满足认证要求的情况下建立与卡应用之间的通信通道,其中,写入结果用于指示第一特征码已写入至卡应用对应的访问控制文件,身份认证请求包括配置信息,第二特征码由终端根据配置信息生成。
在上述实施例中,通过引入软件开发工具包和服务器,将第一特征码写入到AC文件中,根据第一特征码和第二特征码来进行APP的权限校验,继而实现了不需要在制卡时将APP的签名写入到卡应用的AC文件中,即可将卡能力开放给全量APP的技术效果,避免了因AC文件容量导致卡应用无法支持全量APP访问的问题,可有效地促进USIM卡业务的推广,促进USIM卡能力的对外开放。
结合第一方面的一些实施例,在一些实施例中,发送业务方应用程序的配置信息至服务器,包括:
读取业务方应用程序的配置信息,并对配置信息进行加密,得到加密配置信息;
发送加密配置信息至服务器。
在上述实施例中,通过对配置信息进行加密并发送加密配置信息至服务器,可以提高通信的安全性。
结合第一方面的一些实施例,在一些实施例中,配置信息包括应用标识、应用身份信息、应用密钥、应用私钥,应用身份信息包括应用签名,通信连接请求包括卡应用对应的卡应用标识,对配置信息进行加密,得到加密配置信息,包括:
获取卡应用对应的国际移动用户识别码、终端操作系统对应的终端参数、第一当前时间戳;
根据终端参数、第一当前时间戳以及应用签名生成随机因子,并使用随机因子对卡应用标识、应用密钥、应用标识、应用身份信息进行对称加密,得到第一对称加密信息;
将第一对称加密信息放入请求体中,并对第一对称加密信息进行哈希运算得到摘要内容,使用软件开发工具包私钥对摘要内容进行非对称加密,得到数字签名;
生成会话标识,并使用应用私钥对数字签名、终端参数、第一当前时间戳、应用签名、会话标识、国际移动用户识别码进行对称加密,得到第二对称加密信息;
使用服务器公钥对请求头和请求体进行非对称加密,得到加密配置信息,其中,请求头包括第二对称加密信息和应用标识。
在上述实施例中,通过利用软件开发工具包来获取到业务方应用程序的配置信息,并将配置信息与终端参数、时间戳结合起来,通过终端参数、第一当前时间戳和应用签名对应到本次通信连接请求的随机因子,并采用该随机因子对配置信息进行加密,由于随机因子是随机生成的,可保证每次加密密钥均不同,即使某次请求的加密密钥被破解,也不可获取其他请求的加密密钥,保证了软件开发工具包将APP信息发送给服务器时的数据安全问题,进一步完善了通过软件开发工具包和服务器来控制APP权限的技术实现。使用应用私钥进行加密,而应用私钥仅存在于业务方应用程序和服务端,不会暴露给外界。另外,采用非对称加密的方式来进一步保护,可以提高数据传输过程的安全性。
结合第一方面的一些实施例,在一些实施例中,方法还包括:
接收终端操作系统发送的对比结果;
发送对比结果至业务方应用程序,以使业务方应用程序通过软件开发工具包以及通信通道发送目标指令至卡应用。
根据本公开实施例的第二方面,提出了一种卡应用通信方法,如图2所示,应用于服务器,包括:
S2001,接收软件开发工具包发送的业务方应用程序的配置信息;
S2002,根据配置信息生成第一特征码;
S2003,将第一特征码发送给配置信息对应的卡应用。
在上述实施例中,通过引入软件开发工具包和服务器,根据第一特征码来进行APP的权限校验,可以实现不需要在制卡时将APP的签名写入到卡应用的AC文件中,即可将卡能力开放给全量APP的技术效果,避免了因AC文件容量导致卡应用无法支持全量APP访问的问题,可有效地促进USIM卡业务的推广,促进USIM卡能力的对外开放。
结合第二方面的一些实施例,在一些实施例中,接收软件开发工具包发送的业务方应用程序的配置信息,包括:
接收软件开发工具包发送的业务方应用程序的加密配置信息;
对加密配置信息进行数据解析,得到解析后的配置信息;
对解析后的配置信息进行数据校验,并在数据校验结果满足数据校验要求的情况下,确定解析后的配置信息为业务方应用程序的配置信息。
在上述实施例中,通过对信息进行解析和校验,可以提高配置信号获取的安全性和准确性。
结合第二方面的一些实施例,在一些实施例中,对加密配置信息进行数据解析,得到解析后的配置信息,包括:
使用服务器私钥从加密配置信息的请求头中解密出应用标识、第二对称加密信息,从加密配置信息的请求体中解密出第一对称加密信息;
在数据库中查找应用标识,得到应用标识对应的应用私钥,并使用应用私钥对第二对称加密信息进行解密,得到数字签名、终端操作系统对应的终端参数、第一当前时间戳、应用签名、会话标识、卡应用对应的国际移动用户识别码;
对第一对称加密信息进行哈希运算得到摘要内容,使用软件开发工具包公钥对数字签名进行解密得到解密内容;
在解密内容和摘要内容的内容一致的情况下,确定终端参数、第一当前时间戳以及应用签名对应的随机因子,并使用随机因子对第一对称加密信息进行解密,得到卡应用标识以及解析后的配置信息,其中,解析后的配置信息包括应用密钥、应用标识、应用身份信息。
结合第二方面的一些实施例,在一些实施例中,在在数据库中查找应用标识之前,方法还包括:
接收业务方应用程序发送的针对卡应用的权限申请请求,其中,权限申请请求包括应用身份信息;
确定权限申请请求对应的应用标识、应用密钥、应用私钥、卡应用对应的卡应用标识、业务方应用程序与卡应用之间的卡应用访问权限信息;
将应用身份信息、应用标识、应用密钥、应用私钥、卡应用标识以及卡应用访问权限信息存储至数据库,并将应用标识、应用密钥、应用私钥发送至业务方应用程序。
在上述实施例中,通过将应用身份信息、应用标识、应用密钥、应用私钥、卡应用标识以及卡应用访问权限信息存储至数据库中,可以动态地管理APP与卡应用的通信权限,可以实现对于APP通信权限更充分的管理。
结合第二方面的一些实施例,在一些实施例中,对解析后的配置信息进行数据校验,包括:
在数据库中查找应用标识对应的应用身份信息、应用密钥、业务方应用程序与卡应用之间的卡应用访问权限信息;
在数据库中查找得到的应用身份信息以及应用密钥与解析后的配置信息中的应用身份信息以及应用密钥之间的内容均一致,并且卡应用访问权限信息指示业务方应用程序与卡应用之间的存在通信权限的情况下,确定数据校验结果为满足数据校验要求。
在上述实施例中,通过根据应用身份信息以及应用密钥进行数据校验,可以提高数据校验结果获取的准确性。
结合第二方面的一些实施例,在一些实施例中,根据配置信息生成第一特征码,包括:
对国际移动用户识别码、应用标识、应用密钥、应用身份信息、卡应用标识、会话标识进行哈希运算,得到第一哈希运算值;
获取第二当前时间戳,并确定第二当前时间戳对应的第一时间特征值;
根据第一哈希运算值以及第一时间特征值生成第一特征码。
在上述实施例中,由于计算第一特征码时使用了第一时间戳和会话标识作为生成过程的一部分,因此,每次请求所生成的第一特征码都是不一样的,可以提高通信的安全性。
结合第二方面的一些实施例,在一些实施例中,根据第一哈希运算值以及第一时间特征值生成第一特征码,包括:
对第一哈希运算值以及第一时间特征值进行散列消息鉴别码运算,得到第一字符串;
从第一字符串的下标偏移量开始截取第一目标长度的字符,得到第二字符串,其中,下标偏移量由第一字符串中第一目标位数对应的字符确定;
将第二字符串转换为第三字符串,其中,第二字符串为第一进制的字符串,第三字符串为第二进制的字符串;
从第三字符串的第二目标位数开始截取第二目标长度的字符,得到第四字符串,并将第四字符串转换为第五字符串,其中,第五字符串为第一进制的字符串;
若第五字符串的位数小于位数阈值,则对第五字符串进行补零操作,直至第五字符串的位数等于位数阈值,得到第一特征码。
在上述实施例中,通过对第一哈希运算值以及第一时间特征值进行散列消息鉴别码运算,并对第一字符串进行多步处理生成第一特征码,可以提高第一特征码的破解难度,可以提高通信的安全性。
结合第二方面的一些实施例,在一些实施例中,将第一特征码发送给配置信息对应的卡应用,包括:
发送数据短信至卡应用对应的全球用户识别卡,以使全球用户识别卡将数据短信中的建链地址和端口号发送至终端操作系统;
通过通信链接发送卡应用处理请求至全球用户识别卡,其中,通信链接由终端操作系统根据建链地址以及端口号建立,卡应用处理请求包括卡应用标识、应用协议数据单元指令,应用协议数据单元指令包括第一特征码。
根据本公开实施例的第三方面,提出了一种卡应用通信方法,如图3所示,应用于终端操作系统,包括:
S3001,接收软件开发工具包发送的针对业务方应用程序的身份认证请求,其中,身份认证请求包括业务方应用程序的配置信息;
S3002,确定身份认证请求对应的卡应用,从卡应用对应的访问控制文件中获取第一特征码,其中,第一特征码由服务器根据配置信息生成;
S3003,根据配置信息生成第二特征码,并在第一特征码和第二特征码之间的对比结果满足认证要求的情况下建立与卡应用之间的通信通道。
在上述实施例中,通过引入软件开发工具包和服务器,根据第一特征码和第二特征码来进行APP的权限校验,可以实现不需要在制卡时将APP的签名写入到卡应用的AC文件中,即可将卡能力开放给全量APP的技术效果,避免了因AC文件容量导致卡应用无法支持全量APP访问的问题,可有效地促进USIM卡业务的推广,促进USIM卡能力的对外开放。
结合第三方面的一些实施例,在一些实施例中,身份认证请求还包括会话标识以及卡应用对应的卡应用标识,配置信息包括应用身份信息、应用标识、应用密钥、应用私钥,根据配置信息生成第二特征码,包括:
获取卡应用对应的国际移动用户识别码,对国际移动用户识别码、应用标识、应用密钥、应用身份信息、卡应用标识、会话标识进行哈希运算,得到第二哈希运算值;
获取第三当前时间戳,并确定第三当前时间戳对应的第二时间特征值;
根据第二哈希运算值以及第二时间特征值生成第二特征码。
在上述实施例中,由于计算第一特征码时使用了第一时间戳和会话标识作为生成过程的一部分,因此,每次请求所生成的第一特征码都是不一样的,可以提高通信的安全性。
结合第三方面的一些实施例,在一些实施例中,根据第二哈希运算值以及第二时间特征值生成第二特征码,包括:
对第二哈希运算值以及第二时间特征值进行散列消息鉴别码运算,得到第六字符串;
从第六字符串的下标偏移量开始截取第一目标长度的字符,得到第七字符串,其中,下标偏移量由第六字符串中第一目标位数对应的字符确定;
将第七字符串转换为第八字符串,其中,第七字符串为第一进制的字符串,第八字符串为第二进制的字符串;
从第八字符串的第二目标位数开始截取第二目标长度的字符,得到第九字符串,并将第九字符串转换为第十字符串,其中,第十字符串为第一进制的字符串;
若第十字符串的位数小于位数阈值,则对第十字符串进行补零操作,直至第十字符串的位数等于位数阈值,得到第二特征码。
在上述实施例中,通过对第一哈希运算值以及第一时间特征值进行散列消息鉴别码运算,并对第一字符串进行多步处理生成第一特征码,可以提高第一特征码的破解难度,可以提高通信的安全性。
结合第三方面的一些实施例,在一些实施例中,第二时间特征值包括当前时间特征值和至少一个边界时间特征值,第二特征码包括当前时间特征值对应的第一特征子码以及至少一个边界时间特征值对应的第二特征子码,方法还包括:
在第一特征码与第二特征码中任一特征子码相同的情况下,确定第一特征码和第二特征码之间的对比结果满足认证要求,其中,特征子码包括第一特征子码和第二特征子码。
在上述实施例中,通过将第一特征码分别与第二特征码中任一特征子码进行对比,可以提高第一特征码和第二特征码之间的对比结果获取的准确性。
根据本公开实施例的第四方面,提出了一种软件开发工具包,其特征在于,包括:
收发模块,用于接收业务方应用程序发送的针对卡应用的通信连接请求;
收发模块,还用于发送业务方应用程序的配置信息至服务器,以使服务器根据配置信息生成第一特征码;
收发模块,还用于响应于接收到服务器发送的写入结果,发送身份认证请求至终端操作系统,以使终端操作系统在第一特征码和第二特征码之间的对比结果满足认证要求的情况下建立与卡应用之间的通信通道,其中,写入结果用于指示第一特征码已写入至卡应用对应的访问控制文件,身份认证请求包括配置信息,第二特征码由终端根据配置信息生成。
根据本公开实施例的第五方面,提出了一种服务器,包括:
收发模块,用于接收软件开发工具包发送的业务方应用程序的配置信息;
处理模块,用于根据配置信息生成第一特征码;
收发模块,还用于将第一特征码发送给配置信息对应的卡应用。
根据本公开实施例的第六方面,提出了一种终端操作系统,包括:
收发模块,用于接收软件开发工具包发送的针对业务方应用程序的身份认证请求,其中,身份认证请求包括业务方应用程序的配置信息;
收发模块,还用于确定身份认证请求对应的卡应用,从卡应用对应的访问控制文件中获取第一特征码,其中,第一特征码由服务器根据配置信息生成;
处理模块,用于根据配置信息生成第二特征码,并在第一特征码和第二特征码之间的对比结果满足认证要求的情况下建立与卡应用之间的通信通道。
根据本公开实施例的第七方面,提出了一种业务方应用程序,包括:
一个或多个处理器;
其中,业务方应用程序用于执行如第一方面中任一项的卡应用通信方法。
根据本公开实施例的第八方面,提出了一种服务器,包括:
一个或多个处理器;
其中,服务器用于执行如第二方面中任一项的卡应用通信方法。
根据本公开实施例的第九方面,提出了一种终端操作系统,包括:
一个或多个处理器;
其中,终端操作系统用于如第三方面中任一项的卡应用通信方法。
根据本公开实施例的第十方面,提出了一种卡应用通信系统,包括:业务方应用程序、软件开发工具包、卡应用、终端操作系统、服务器,其中,软件开发工具包被配置为实现如第一方面中任一项的卡应用通信方法,服务器被配置为实现如第二方面中任一项的卡应用通信方法,终端操作系统被配置为实现如第三方面中任一项的卡应用通信方法。
根据本公开实施例的第十一方面,提出了一种存储介质存储有指令,当所述指令在通信设备上运行时,使得所述通信设备执行如第一方面、第二方面或第三方面中任一项所述的卡应用通信方法。
本公开实施例并非穷举,仅为部分实施例的示意,不作为对本公开保护范围的具体限制。在不矛盾的情况下,某一实施例中的每个步骤均可以作为独立实施例来实施,且各步骤之间可以任意组合,例如,在某一实施例中去除部分步骤后的方案也可以作为独立实施例来实施,且在某一实施例中各步骤的顺序可以任意交换,另外,某一实施例中的可选实现方式可以任意组合;此外,各实施例之间可以任意组合,例如,不同实施例的部分或全部步骤可以任意组合,某一实施例可以与其他实施例的可选实现方式任意组合。
在各本公开实施例中,如果没有特殊说明以及逻辑冲突,各实施例之间的术语和/或描述具有一致性,且可以互相引用,不同实施例中的技术特征根据其内在的逻辑关系可以组合形成新的实施例。
本公开实施例中所使用的术语只是为了描述特定实施例的目的,而并非作为对本公开的限制。
在本公开实施例中,除非另有说明,以单数形式表示的元素,如“一个”、“一种”、“该”、“上述”、“所述”、“前述”、“这一”等,可以表示“一个且只有一个”,也可以表示“一个或多个”、“至少一个”等。例如,在翻译中使用如英语中的“a”、“an”、“the”等冠词(article)的情况下,冠词之后的名词可以理解为单数表达形式,也可以理解为复数表达形式。
在本公开实施例中,“多个”是指两个或两个以上。
在一些实施例中,“至少一者(至少一项、至少一个)(at least one of)”、“一个或多个(one or more)”、“多个(a plurality of)”、“多个(multiple)等术语可以相互替换。
在一些实施例中,“A、B中的至少一者”、“A和/或B”、“在一情况下A,在另一情况下B”、“响应于一情况A,响应于另一情况B”等记载方式,根据情况可以包括以下技术方案:在一些实施例中A(与B无关地执行A);在一些实施例中B(与A无关地执行B);在一些实施例中从A和B中选择执行(A和B被选择性执行);在一些实施例中A和B(A和B都被执行)。当有A、B、C等更多分支时也类似上述。
在一些实施例中,“A或B”等记载方式,根据情况可以包括以下技术方案:在一些实施例中A(与B无关地执行A);在一些实施例中B(与A无关地执行B);在一些实施例中从A和B中选择执行(A和B被选择性执行)。当有A、B、C等更多分支时也类似上述。
本公开实施例中的“第一”、“第二”等前缀词,仅仅为了区分不同的描述对象,不对描述对象的位置、顺序、优先级、数量或内容等构成限制,对描述对象的陈述参见权利要求或实施例中上下文的描述,不应因为使用前缀词而构成多余的限制。例如,描述对象为“字段”,则“第一字段”和“第二字段”中“字段”之前的序数词并不限制“字段”之间的位置或顺序,“第一”和“第二”并不限制其修饰的“字段”是否在同一个消息中,也不限制“第一字段”和“第二字段”的先后顺序。再如,描述对象为“等级”,则“第一等级”和“第二等级”中“等级”之前的序数词并不限制“等级”之间的优先级。再如,描述对象的数量并不受序数词的限制,可以是一个或者多个,以“第一装置”为例,其中“装置”的数量可以是一个或者多个。此外,不同前缀词修饰的对象可以相同或不同,例如,描述对象为“装置”,则“第一装置”和“第二装置”可以是相同的装置或者不同的装置,其类型可以相同或不同;再如,描述对象为“信息”,则“第一信息”和“第二信息”可以是相同的信息或者不同的信息,其内容可以相同或不同。
在一些实施例中,“包括A”、“包含A”、“用于指示A”、“携带A”,可以解释为直接携带A,也可以解释为间接指示A。
在一些实施例中,“响应于……”、“响应于确定……”、“在……的情况下”、“在……时”、“当……时”、“若……”、“如果……”等术语可以相互替换。
在一些实施例中,“大于”、“大于或等于”、“不小于”、“多于”、“多于或等于”、“不少于”、“高于”、“高于或等于”、“不低于”、“以上”等术语可以相互替换,“小于”、“小于或等于”、“不大于”、“少于”、“少于或等于”、“不多于”、“低于”、“低于或等于”、“不高于”、“以下”等术语可以相互替换。
在一些实施例中,装置和设备可以解释为实体的、也可以解释为虚拟的,其名称不限定于实施例中所记载的名称,在一些情况下也可以被理解为“设备(equipment)”、“设备(device)”、“电路”、“网元”、“节点”、“功能”、“单元”、“部件(section)”、“系统”、“网络”、“芯片”、“芯片系统”、“实体”、“主体”等。
在一些实施例中,获取数据、信息等可以遵照所在地国家的法律法规。
在一些实施例中,可以在得到用户同意后获取数据、信息等。
此外,本公开实施例的表格中的每一元素、每一行、或每一列均可以作为独立实施例来实施,任意元素、任意行、任意列的组合也可以作为独立实施例来实施。
下面对本公开实施例所提供的一种卡应用通信方法及系统进行详细描述。该方法可依赖于计算机程序实现,可运行于进行卡应用通信方法的系统上。该计算机程序可集成在应用中,也可作为独立的工具类应用运行。
具体的,该方法可以包括以下步骤:
步骤S2101,业务方应用程序发送针对卡应用的权限申请请求至服务器;
根据一些实施例,业务方应用程序(Application,APP)指的是需要和卡应用进行通信的外部APP。
在一些实施例中,卡应用指的是USIM中的应用。卡应用可以用于执行应用协议数据单元(Application Protocol Data Unit,APDU)指令。
根据一些实施例,服务器包括卡应用管理方服务器,业务方应用程序可以发送针对卡应用的权限申请请求至卡应用管理方服务器,以申请对于卡应用的访问权限。
在一些实施例中,业务方应用程序可以以邮件的方式向卡应用管理方服务器发送权限申请请求。
根据一些实施例,权限申请请求可以用于申请业务方APP对应的应用标识(appid)、应用密钥(appkey)、应用私钥(appsecret)。
其中,应用标识是用于唯一标识APP的标识符。应用标识的作用是用于区分不同的APP,避免名称冲突。
其中,appkey指的是业务方APP对应的公钥,appsecret指的是业务方APP对应的私钥。在非对称加密技术中,公钥是公开的,可以由发送方用于加密信息,而私钥是保密的,由接收方持有以解密信息。公钥加密的数据只能使用私钥解密。
在一些实施例中,权限申请请求包括应用身份信息。其中,应用身份信息用于指示业务方APP的自身身份信息。该应用身份信息包括但不限于应用签名、应用包名等。
其中,应用签名指的是开发者对APP进行签名,以确保其身份验证和完整性时设置的签名信息。该应用签名例如可以为签名指纹,通过在签名处使用指纹可以增强签名信息的真实性、保密性和不可抵赖性。
其中,应用包名用于唯一标识APP的名称。
步骤S2102,服务器接收业务方应用程序发送的针对卡应用的权限申请请求,并确定权限申请请求对应的应用标识、应用密钥、应用私钥、卡应用对应的卡应用标识、业务方应用程序与卡应用之间的卡应用访问权限信息;
根据一些实施例,卡应用标识(AID)是用于唯一标识卡应用的标识符。
在一些实施例中,卡应用访问权限信息(isAllow)用于指示是否允许业务方APP与卡应用通信。isAllow可以用于控制业务方APP对于卡应用的访问权限。
步骤S2103,服务器将应用身份信息、应用标识、应用密钥、应用私钥、卡应用标识以及卡应用访问权限信息存储至数据库,并将应用标识、应用密钥、应用私钥发送至业务方应用程序。
步骤S2104,业务方应用程序接收服务器发送的应用标识、应用密钥、应用私钥,并发送针对卡应用的通信连接请求至软件开发工具包;
根据一些实施例,软件开发工具包(Software Development Kit,SDK)例如可以采用通信SDK。通信SDK指的是封装了和卡应用进行身份鉴权、通道建立的功能的SDK。该通信SDK可以供业务方APP进行集成。
在一些实施例中,通信连接请求用于请求和USIM中的卡应用建立通信连接。通信连接请求中包括卡应用对应的AID。
在一些实施例中,业务方APP可以使用appid、appkey、appsecret集成通信SDK,以SID作为参数调用通信SDK的接口请求与卡应用建立通信连接。
步骤S2105,软件开发工具包接收业务方应用程序发送的针对卡应用的通信连接请求,并发送业务方应用程序的配置信息至服务器;
根据一些实施例,配置信息包括但不限于业务方APP对应的appid、appkey、appsecret、应用签名、应用包名等参数。
在一些实施例中,由于配置信息涉及到业务方APP的私密数据,因此需对配置信息进行加密处理。因此,SDK发送业务方APP的配置信息至服务器时,SDK可以读取业务方应用程序的配置信息,并对配置信息进行加密,得到加密配置信息;发送加密配置信息至服务器。
根据一些实施例,SDK对配置信息进行加密,得到加密配置信息时,可以采用以下子步骤:
步骤S21051,SDK获取卡应用对应的国际移动用户识别码、终端操作系统对应的终端参数、第一当前时间戳,并根据终端参数、第一当前时间戳以及应用签名生成随机因子;
根据一些实施例,SDK可以通过AID获取到卡应用对应的USIM的国际移动用户识别码(International Mobile Subscriber Identity,IMSI)。
在一些实施例中,终端操作系统指的是终端自身的操作系统。该终端操作系统对应的终端参数包括但不限于终端序列号、终端系统版本号等参数。其中,终端序列号指的是终端的唯一标识符。终端系统版本号指的是终端自身的操作系统的版本号。该终端操作系统例如可以为手机操作系统。
根据一些实施例,第一当前时间戳指的是终端生成随机因子的时刻对应的时间戳。时间戳的单位例如可以为秒。
在一些实施例中,SDK可以取终端序列号的最后两位组成随机因子P的前两位,取终端系统版本号的最后两位组成随机因子P的第三和第四位,取第一当前时间戳的最后两位组成随机因子P的第五和第六位,取应用签名的最后两位组成随机因子P的最后两位,最终生成8位的随机因子P。
需要说明的是,随机因子是生成方式并不局限与上述方式。该随机因子例如可以为生成的随机数。
步骤S21052,SDK生成会话标识;
根据一些实施例,会话标识(sessionid)是一种用于标识和区分不同会话的机制。在网络通信中,会话标识符用于标识和区分不同的网络会话,以确保数据在网络中正确传输和处理。
在一些实施例中,SDK可以生成一个通用唯一识别码(Universally UniqueIdentifier,UUID)作为sessionid。
步骤S22053,SDK使用随机因子对卡应用标识、应用密钥、应用标识、应用身份信息进行对称加密,得到第一对称加密信息;
步骤S21054,SDK将第一对称加密信息放入请求体中,并对第一对称加密信息进行哈希(hash)运算得到摘要内容,使用软件开发工具包私钥对摘要内容进行非对称加密,得到数字签名;
根据一些实施例,软件开发工具包私钥指的是SDK的私钥。
步骤S21055,SDK使用应用私钥作为密钥对数字签名、终端参数、第一当前时间戳、应用签名、会话标识、国际移动用户识别码进行对称加密,得到第二对称加密信息,并将第二对称加密信息和应用标识一起放入到请求头中;
步骤S21056,SDK使用服务器公钥对请求头和请求体进行非对称加密,得到加密配置信息。
根据一些实施例,服务器包括鉴权服务端,鉴权服务端指的是用于验证业务方APP通信权限的服务器端。SDK使用服务器公钥对请求头和请求体进行非对称加密时,SDK可以使用鉴权服务端的公钥对请求头和请求体进行非对称加密。
在一些实施例中,SDK发送加密配置信息至服务器时,可以发送加密配置信息至鉴权服务端,以请求服务端进行身份验证。
在一些实施例中,SDK发送配置信息至服务器时,可以发送全部配置信息至服务器,也可以仅发送部分需要用到的配置信息至服务器。
步骤S2106,服务器接收软件开发工具包发送的业务方应用程序的配置信息;
根据一些实施例,服务器可以接收软件开发工具包发送的业务方应用程序的加密配置信息,并对加密配置信息进行数据解析,得到解析后的配置信息;对解析后的配置信息进行数据校验,并在数据校验结果满足数据校验要求的情况下,确定解析后的配置信息为业务方应用程序的配置信息。
在一些实施例中,服务器对加密配置信息进行数据解析时,可以采用以下子步骤:
步骤S21061,服务器使用服务器私钥从加密配置信息的请求头中解密出应用标识,在数据库中查找应用标识,得到应用标识对应的应用私匙;
根据一些实施例,服务器私钥指的是服务器的私钥。
在一些实施例中,如果数据库中不存在appid对应的记录,则返回“APP未完成权限申请”的提示给SDK,如果存在对应记录则获取appid对应的appsecret。
步骤S21062,服务器使用服务器私钥从请求头中解密出第二对称加密信息,并使用应用私匙对第二对称加密信息进行解密,得到数字签名、终端操作系统对应的终端参数、第一当前时间戳、应用签名、会话标识、卡应用对应的国际移动用户识别码,确定终端参数、第一当前时间戳以及应用签名对应的随机因子;
步骤S21063,服务器使用服务器私钥从加密配置信息的请求体中解密出第一对称加密信息,对第一对称加密信息进行哈希运算得到摘要内容;
步骤S21064,服务器使用软件开发工具包公钥对数字签名进行解密得到解密内容,比较解密内容和摘要内容的内容是否一致;
根据一些实施例,如果解密内容和摘要内容的内容一致,则说明SDK发送至服务器的加密配置信息没有被篡改过,说明验签成功。
步骤S21065,在解密内容和摘要内容的内容一致的情况下,使用随机因子作为密钥对第一对称加密信息进行解密,得到卡应用标识以及解析后的配置信息。
其中,解析后的配置信息包括应用密钥、应用标识、应用身份信息。
根据一些实施例,服务器对解析后的配置信息进行数据校验时,可以在数据库中查找应用标识对应的应用身份信息、应用密钥、业务方应用程序与卡应用之间的卡应用访问权限信息;在数据库中查找得到的应用身份信息以及应用密钥与解析后的配置信息中的应用身份信息以及应用密钥之间的内容均一致,并且卡应用访问权限信息指示业务方应用程序与卡应用之间的存在通信权限的情况下,服务器可以确定数据校验结果为满足数据校验要求。
在一些实施例中,如果解析后的配置信息中的appkey、应用签名、应用包名与数据库中的记录均一致,说明业务方APP的参数合法。
在一些实施例中,可以根据appid、AID查找对应的isAllow字段,如果isAllow字段为false,说明业务方APP不允许与卡应用通信,服务器可以返回“APP未获得通信权限”的提示给SDK。如果isAllow字段为true,说明业务方APP被允许与卡应用通信,可以进行后面的流程。
步骤S2107,服务器根据配置信息生成第一特征码;
根据一些实施例,服务器可以对国际移动用户识别码、应用标识、应用密钥、应用身份信息、卡应用标识、会话标识进行哈希运算,得到第一哈希运算值;获取第二当前时间戳,并确定第二当前时间戳对应的第一时间特征值;根据第一哈希运算值以及第一时间特征值生成第一特征码。
在一些实施例中,第二当前时间戳指的是生成第一特征码的时刻对应的时间戳。
在一些实施例中,第一时间特征值指的是第二当前时间戳对应的时间特征值。
其中,第二当前时间戳T1对应的第一时间特征值C1可以为C1=T1/60,因此,每分钟内的C1值都是相等的,否则则是不相等的。
在一些实施例中,可以通过鉴权服务端根据配置信息生成第一特征码。
根据一些实施例,服务器根据第一哈希运算值以及第一时间特征值生成第一特征码时,可以对第一哈希运算值以及第一时间特征值进行散列消息鉴别码运算,得到第一字符串;从第一字符串的下标偏移量开始截取第一目标长度的字符,得到第二字符串;将第二字符串转换为第三字符串;从第三字符串的第二目标位数开始截取第二目标长度的字符,得到第四字符串,并将第四字符串转换为第五字符串;若第五字符串的位数小于位数阈值,则对第五字符串进行补零操作,直至第五字符串的位数等于位数阈值,得到第一特征码。
在一些实施例中,散列消息鉴别码运算例如可以为hmacSHA256运算。通过对第一哈希运算值以及第一时间特征值进行hmacSHA256运算,可以得到长度为64的16进制的第一字符串。
在一些实施例中,第一字符串的下标偏移量可以由第一字符串中第一目标位数对应的字符确定。例如,第一字符串的下标偏移量可以为第一字符串中第一位字符的数值。
在一些实施例中,第一目标长度并不特指某一固定长度。该第一目标长度例如可以为8,相当于4个字节。
在一些实施例中,第二字符串为第一进制的字符串,第三字符串为第二进制的字符串。例如,当第一目标长度为8,第一进制为16进制时,第二进制可以为10进制。
在一些实施例中,第二目标位数和第二目标长度例如可以根据实际应用场景进行设置。例如,第四字符串可以为第三字符串的低8位。
在一些实施例中,服务器对第五字符串进行补零操作时,可以执行左位补零操作,也可以执行右位补零操作。
根据一些实施例,服务器还可以包括通信服务端。通信服务端指的是用于与卡应用进行数据通信的服务器端。鉴权服务端生成第一特征码后,可以将该第一特征码和IMSI发送至通信服务端。
步骤S2108,服务器将第一特征码发送给配置信息对应的卡应用;
根据一些实施例,服务器可以发送数据短信至卡应用对应的全球用户识别卡,以使全球用户识别卡将数据短信中的建链地址和端口号发送至终端操作系统;通过通信链接发送卡应用处理请求至全球用户识别卡。
在一些实施例中,通信链接可以由终端操作系统根据建链地址以及端口号建立。
根据一些实施例,服务器可以发送卡应用处理请求至USIM中的应用提供方安全域(Application Provider Security Domain,APSD)。卡应用处理请求中可以包括卡应用标识、应用协议数据单元(Application Protocol Data Unit,APDU)指令。
在一些实施例中,APDU指的是USIM与外部进行通信及数据交互时使用的标准指令结构。APDU指令中包括第一特征码。
在一些实施例中,APDU指令可以由依次设置的CLA、INS、P1、P2、Lc、Data组成,其内容约定可以如表(1)所示:
表(1)
需要说明的是,APDU指令的数据格式并不局限与表(1)展示的数据格式,该数据格式可以根据实际应用场景进行调整。
根据一些实施例,可以通过通信服务端将第一特征码发送给配置信息对应的卡应用。
以一个场景举例,通信服务端获取到鉴权服务端发送的IMSI后,可以获取IMSI对应的号码。接着,通信服务端可以通过独立承载协议(Bearer Independent Protocol,BIP)网关向该号码所对应的USIM发送一条数据短信,数据短信中携带建链地址、端口号等参数。USIM接收到数据短信后,可以向USIM的卡操作系统(Card Operatint System,COS)发送打开通道的指令和终端操作系统建立通信,将建链地址、端口号发送给终端操作系统。接着,终端操作系统可以通过传输控制协议(Transmission Control Protocol,TCP)\互联网协议(Internet Protocol,IP)协议和BIP网关建立起HTTPS链接,USIM后续可以使用该HTTPS链接进行数据的交互。
其中,BIP是USIM的一种通信规范协议,定义了网关与USIM的连接方式与过程。BIP网关指的是专用于管理BIP连接的服务器端。
步骤S2109,卡应用将第一特征码写入卡应用对应的访问控制文件;
根据一些实施例,该访问控制(Access Control,AC)文件例如可以为访问控制状态文件(Access Control Conditions File,ACCF)。
在一些实施例中,APSD接收到卡应用处理请求时,APSD可以根据卡应用处理请求中的AID找到对应的卡应用,并发送写卡指令至该卡应用。接着,卡应用可以调用COS的读文件接口,读取访问控制文件(Access Rule File,ARF)模块中的访问控制规则文件(AccessControl Rule File,ACRF)的内容,从中获取到卡应用对应的ACCF的地址。最后,卡应用可以解析出卡应用处理请求中第一特征码的数据,然后调用COS的写文件接口将该数据写入到ACCF中。
步骤S2110,卡应用返回写入结果至服务器;
根据一些实施例,写入结果用于指示第一特征码已写入至卡应用对应的访问控制文件。
步骤S2111,服务器将写入结果发送至软件开发工具包;
根据一些实施例,卡应用可以将写入结果返回给通信服务端,通信服务端将该写入结果返回给鉴权服务端,鉴权服务端将写入结果发送至SDK。
步骤S2112,响应于接收到服务器发送的写入结果,软件开发工具包发送身份认证请求至终端操作系统;
根据一些实施例,身份认证请求包括但不限于业务方APP的配置信息、会话标识、卡应用对应的卡应用标识等参数。
例如,该身份认证请求中可以包括appid、appkey、应用签名、应用包名、AID、sessionid。
步骤S2113,终端操作系统接收软件开发工具包发送的针对业务方应用程序的身份认证请求,并确定身份认证请求对应的卡应用,从卡应用对应的访问控制文件中获取第一特征码;
根据一些实施例,终端操作系统可以根据身份认证请求中的AID,通过访问控制器模块访问卡文件系统,读取USIM中ARF模块的ACRF的内容,根据AID从中获取到该卡应用对应的ACCF的地址,读取ACCF的内容获取到第一特征码的数据。
步骤S2114,终端操作系统根据配置信息生成第二特征码,并在第一特征码和第二特征码之间的对比结果满足认证要求的情况下建立与卡应用之间的通信通道;
根据一些实施例,终端操作系统可以根据配置信息生成第二特征码。
在一些实施例中,终端操作系统可以获取卡应用对应的国际移动用户识别码,对国际移动用户识别码、应用标识、应用密钥、应用身份信息、卡应用标识、会话标识进行哈希运算,得到第二哈希运算值;获取第三当前时间戳,并确定第三当前时间戳对应的第二时间特征值;根据第二哈希运算值以及第二时间特征值生成第二特征码。
其中,第三当前时间戳指的是生成第二特征码的时刻对应的时间戳。
根据一些实施例,终端操作系统根据第二哈希运算值以及第二时间特征值生成第二特征码时,可以对第二哈希运算值以及第二时间特征值进行散列消息鉴别码运算,得到第六字符串;从第六字符串的下标偏移量开始截取第一目标长度的字符,得到第七字符串;将第七字符串转换为第八字符串;从第八字符串的第二目标位数开始截取第二目标长度的字符,得到第九字符串,并将第九字符串转换为第十字符串;若第十字符串的位数小于位数阈值,则对第十字符串进行补零操作,直至第十字符串的位数等于位数阈值,得到第二特征码。
其中,第六字符串的下标偏移量可以由第六字符串中第一目标位数对应的字符确定。例如,第六字符串的下标偏移量可以为第六字符串中第一位字符的数值。
需要说明的是,由于需要对第一特征码和第二特征码进行对比认证,因此,步骤S2114中关于散列消息鉴别码运算、第一目标长度、第二目标长度、第一目标位数、第二目标位数、第一进制、第二进制、补零操作与步骤S2107中均采用相同设置。
需要说明的是,第一特征码以及第二特征码的生成方式并不局限与上述上式,只要可以标识业务方APP的身份信息即可。例如,第一特征码以及第二特征码可以分别为服务器以及终端操作系统生成的随机数。
根据一些实施例,为了支持边界时间,确定第三当前时间戳对应的第二时间特征值时,需要计算当前时间特征值以及边界时间特征值,也就是说,第二时间特征值包括当前时间特征值和至少一个边界时间特征值。
在一些实施例中,当前时间特征值的计算方式与第一时间特征值的计算方式相同。
在一些实施例中,至少一个边界时间特征值可以包括第一边界时间特征值C2和第二边界时间特征值C3。
其中,第三当前时间戳T2对应的第一边界时间特征值C2可以为C2=(T2/60)+1。
其中,第三当前时间戳T2对应的第二边界时间特征值C3可以为C3=(T2/60)-1。
根据一些实施例,在生成第二特征码时,可以根据第二哈希运算值以及当前时间特征值生成第一特征子码,根据第二哈希运算值以及边界时间特征值生成第二特征子码。也是就说,第二特征码包括第一特征子码以及至少一个第二特征子码。
在一些实施例中,终端操作系统对第一特征码和第二特征码进行对比认证时,可以将第一特征码分别与第一特征子码以及至少一个第二特征子码进行对比。如果第一特征码与第一特征子码以及至少一个第二特征子码中任一特征子码相同,则说明鉴权成功,终端操作系统可以确定第一特征码和第二特征码之间的对比结果满足认证要求,从而终端操作系统可以与卡应用建立起通信通道(通信链接)。
步骤S2115,终端操作系统发送对比结果至软件开发工具包;
步骤S2116,软件开发工具包接收终端操作系统发送的对比结果,并发送该对比结果至业务方应用程序;
步骤S2117,在对比结果满足认证要求的情况下,业务方应用程序通过软件开发工具包以及通信通道发送目标指令至卡应用;
根据一些实施例,业务方APP可以通过调用SDK的发送指令接口以及通信通道发送目标指令给卡应用。
步骤S2118,卡应用发送目标指令对应的执行结果至业务方应用程序;
步骤S2119,业务方应用程序接收卡应用发送的目标指令对应的执行结果。
以一个场景举例,图4为本公开一个实施例所提供的一种卡应用通信方法的交互示意图。该方法可依赖于计算机程序实现,可运行于进行卡应用通信方法的系统上。该计算机程序可集成在应用中,也可作为独立的工具类应用运行。
其中,卡应用通信系统包括卡应用、业务方APP、SDK、服务器、终端操作系统,SDK采用通信SDK,服务器包括鉴权服务端、通信服务端,终端操作系统采用手机操作系统。
具体的,该方法可以包括以下步骤:
步骤S3101,业务方APP向通信SDK请求和USIM中的卡应用建立通信连接;
步骤S3102,通信SDK将业务方APP的APP配置信息(既配置信息)发送给鉴权服务端,请求进行身份认证;
步骤S3103,鉴权服务端对APP配置信息进行解析和验证,并生成第一特征码传递给通信服务端;
步骤S3104,通信服务端将第一特征码发送给卡应用;
步骤S3105,卡应用将第一特征码写入到AC文件中;
步骤S3106,卡应用返回写入结果给通信服务端,通信服务端返回写入结果给鉴权服务端,鉴权服务端返回写入结果给通信SDK;
步骤S3107,通信SDK向手机操作系统请求身份认证(既发送身份认证请求);
步骤S3108,手机操作系统从卡应用的AC文件中获取第一特征码;
步骤S3109,卡应用返回第一特征码至手机操作系统;
步骤S3110,手机操作系统根据通信SDK发送的身份认证请求中的参数生成第二特征码,和读取到的第一特征码对比,如果符合则认证成功,建立通信通道;
步骤S3111,手机操作系统返回对比结果至通信SDK;
步骤S3112,通信SDK通知业务方APP对比结果。
需要说明的是,对于步骤S3101至步骤S3112的解释说明可以参考括步骤S2101至步骤S2119,此处不再重复赘述。
需要说明的是,本公开实施例所涉及的卡应用通信方法可以包括步骤S2101至步骤S2119以及步骤S3101至步骤S3112中的至少一者。例如,步骤S2105、步骤S2113、步骤S2114可以作为独立实施例来实施,步骤S3101、步骤S3102、步骤S3110可以作为独立实施例来实施,但不限于此。
在一些实施例中,步骤S2101至步骤S2104、步骤S2106至步骤S2112、步骤S2115至步骤S2119、步骤S3103至步骤S3109、步骤S3111、步骤S3112是可选的,在不同实施例中可以对这些步骤中的一个或多个步骤进行省略或替代。
在本公开实施例中,部分或全部步骤、其可选实现方式可以与其他实施例中的部分或全部步骤任意组合,也可以与其他实施例的可选实现方式任意组合。
本公开实施例还提出用于实现以上任一方法的装置,例如,提出一装置,上述装置包括用以实现以上任一方法中软件开发工具包所执行的各步骤的单元或模块。再如,还提出另一装置,包括用以实现以上任一方法中服务器所执行的各步骤的单元或模块。再如,还提出另一装置,包括用以实现以上任一方法中终端操作系统所执行的各步骤的单元或模块。
应理解以上装置中各单元或模块的划分仅是一种逻辑功能的划分,在实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。此外,装置中的单元或模块可以以处理器调用软件的形式实现:例如装置包括处理器,处理器与存储器连接,存储器中存储有指令,处理器调用存储器中存储的指令,以实现以上任一方法或实现上述装置各单元或模块的功能,其中处理器例如为通用处理器,例如中央处理单元(Central ProcessingUnit,CPU)或微处理器,存储器为装置内的存储器或装置外的存储器。或者,装置中的单元或模块可以以硬件电路的形式实现,可以通过对硬件电路的设计实现部分或全部单元或模块的功能,上述硬件电路可以理解为一个或多个处理器;例如,在一种实现中,上述硬件电路为专用集成电路(application-specific integrated circuit,ASIC),通过对电路内元件逻辑关系的设计,实现以上部分或全部单元或模块的功能;再如,在另一种实现中,上述硬件电路为可以通过可编程逻辑器件(programmable logic device,PLD)实现,以现场可编程门阵列(Field Programmable Gate Array,FPGA)为例,其可以包括大量逻辑门电路,通过配置文件来配置逻辑门电路之间的连接关系,从而实现以上部分或全部单元或模块的功能。以上装置的所有单元或模块可以全部通过处理器调用软件的形式实现,或全部通过硬件电路的形式实现,或部分通过处理器调用软件的形式实现,剩余部分通过硬件电路的形式实现。
在本公开实施例中,处理器是具有信号处理能力的电路,在一种实现中,处理器可以是具有指令读取与运行能力的电路,例如中央处理单元(Central Processing Unit,CPU)、微处理器、图形处理器(graphics processing unit,GPU)(可以理解为微处理器)、或数字信号处理器(digital signal processor,DSP)等;在另一种实现中,处理器可以通过硬件电路的逻辑关系实现一定功能,上述硬件电路的逻辑关系是固定的或可以重构的,例如处理器为专用集成电路(application-specific integrated circuit,ASIC)或可编程逻辑器件(programmable logic device,PLD)实现的硬件电路,例如FPGA。在可重构的硬件电路中,处理器加载配置文档,实现硬件电路配置的过程,可以理解为处理器加载指令,以实现以上部分或全部单元或模块的功能的过程。此外,还可以是针对人工智能设计的硬件电路,其可以理解为ASIC,例如神经网络处理单元(Neural Network Processing Unit,NPU)、张量处理单元(Tensor Processing Unit,TPU)、深度学习处理单元(Deep learningProcessing Unit,DPU)等。
图5为本公开实施例所提供的一种软件开发工具包的结构示意图。如图5所示,软件开发工具包5100可以包括:收发模块5101。
在一些实施例中,上述收发模块5101可以用于接收业务方应用程序发送的针对卡应用的通信连接请求;还可以用于发送业务方应用程序的配置信息至服务器,以使服务器根据配置信息生成第一特征码;还可以用于响应于接收到服务器发送的写入结果,发送身份认证请求至终端操作系统,以使终端操作系统在第一特征码和第二特征码之间的对比结果满足认证要求的情况下建立与卡应用之间的通信通道,其中,写入结果用于指示第一特征码已写入至卡应用对应的访问控制文件,身份认证请求包括配置信息,第二特征码由终端根据配置信息生成。
可选地,上述收发模块5101用于执行以上任一方法中软件开发工具包5100执行的发送和/或接收等通信步骤(例如步骤S2105、步骤S2112、步骤S2116、步骤S3102、步骤S3107、步骤S3112,但不限于此)中的至少一者,此处不再赘述。
图6为本公开一个实施例所提供的一种服务器的结构示意图。如图6所示,服务器6100可以包括:收发模块6101和处理模块6102。
在一些实施例中,上述收发模块6101可以用于接收软件开发工具包发送的业务方应用程序的配置信息;处理模块6102可以用于根据配置信息生成第一特征码;收发模块6101还可以用于将第一特征码发送给配置信息对应的卡应用。
可选地,上述收发模块6101用于执行以上任一方法中服务器6100执行的发送和/或接收等通信步骤(例如步骤S2102、步骤S2103、步骤S2106、步骤S2108、步骤S2111、步骤S3103、步骤S3104、步骤S3106,但不限于此)中的至少一者,此处不再赘述。
可选地,上述处理模块6102用于执行以上任一方法中服务器6100执行的数据处理等通信步骤(例如步骤S2107、步骤S3103,但不限于此)中的至少一者,此处不再赘述。
图7为本公开一个实施例所提供的一种终端操作系统的结构示意图。如图7所示,终端操作系统7100可以包括:收发模块7101和处理模块7102。在一些实施例中,上述收发模块7101可以用于接收软件开发工具包发送的针对业务方应用程序的身份认证请求,其中,身份认证请求包括业务方应用程序的配置信息;收发模块7101还可以用于确定身份认证请求对应的卡应用,从卡应用对应的访问控制文件中获取第一特征码,其中,第一特征码由服务器根据配置信息生成;处理模块7102可以用于根据配置信息生成第二特征码,并在第一特征码和第二特征码之间的对比结果满足认证要求的情况下建立与卡应用之间的通信通道。
可选地,上述收发模块7101用于执行以上任一方法中终端操作系统7100执行的发送和/或接收等通信步骤(例如步骤S2113、步骤S2115、步骤S3108、步骤S3111,但不限于此)中的至少一者,此处不再赘述。
可选地,上述处理模块7102用于执行以上任一方法中终端操作系统7100执行的数据处理等通信步骤(例如步骤S2114、步骤S3110,但不限于此)中的至少一者,此处不再赘述。
图8为本公开一个实施例所提供的一种卡应用通信系统的结构示意图。如图8所示,该卡应用通信系统8100,包括业务方应用程序8101、软件开发工具包8102、卡应用8103、终端操作系统8104、服务器8105;其中,
业务方应用程序8101,包括一个或多个处理器,被配置为实现如上述方法中的发送和/或接收等通信步骤(例如步骤S2101、步骤S2104、步骤S2117、步骤S2119、步骤S3101,但不限于此)中的至少一者,此处不再赘述。
软件开发工具包8102,包括一个或多个处理器,被配置为实现如上述方法中的发送和/或接收等通信步骤(例如步骤S2105、步骤S2112、步骤S2116、步骤S3102、步骤S3107、步骤S3112,但不限于此)中的至少一者,此处不再赘述。
卡应用8103,包括一个或多个处理器,被配置为实现如上述方法中的发送和/或接收等通信步骤(例如步骤S2109、步骤S2110、步骤S2118、步骤S3105、步骤S3106、步骤S3109,但不限于此)中的至少一者,此处不再赘述。
终端操作系统8104,包括一个或多个处理器,被配置为实现如上述方法中的发送和/或接收等通信步骤(例如步骤S2113、步骤S2114、步骤S2115、步骤S3108、步骤S3110、步骤S3111,但不限于此)中的至少一者,此处不再赘述。
服务器8105,包括一个或多个处理器,被配置为实现如上述方法中的发送和/或接收等通信步骤(例如步骤S2102、步骤S2103、步骤S2106、步骤S2107、步骤S2108、步骤S2111、步骤S3103、步骤S3104、步骤S3106,但不限于此)中的至少一者,此处不再赘述。
为了实现上述实施例,本公开还提出一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,计算机执行指令被处理器执行时用于实现前述实施例所提供的方法。
为了实现上述实施例,本公开还提出一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现前述实施例所提供的方法。
本公开中所涉及的用户个人信息的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。
需要说明的是,来自用户的个人信息应当被收集用于合法且合理的用途,并且不在这些合法使用之外共享或出售。此外,应在收到用户知情同意后进行此类采集/共享,包括但不限于在用户使用该功能前,通知用户阅读用户协议/用户通知,并签署包括授权相关用户信息的协议/授权。此外,还需采取任何必要步骤,保卫和保障对此类个人信息数据的访问,并确保有权访问个人信息数据的其他人遵守其隐私政策和流程。
本公开预期可提供用户选择性阻止使用或访问个人信息数据的实施方案。即本公开预期可提供硬件和/或软件,以防止或阻止对此类个人信息数据的访问。一旦不再需要个人信息数据,通过限制数据收集和删除数据可最小化风险。此外,在适用时,对此类个人信息去除个人标识,以保护用户的隐私。
在前述各实施例描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本公开的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本公开的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本公开的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本公开的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得程序,然后将其存储在计算机存储器中。
应当理解,本公开的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本公开各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本公开的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本公开的限制,本领域的普通技术人员在本公开的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (17)
1.一种卡应用通信方法,其特征在于,应用于软件开发工具包,包括:
接收业务方应用程序发送的针对卡应用的通信连接请求;
发送所述业务方应用程序的配置信息至服务器,以使所述服务器根据所述配置信息生成第一特征码;
响应于接收到所述服务器发送的写入结果,发送身份认证请求至终端操作系统,以使所述终端操作系统在所述第一特征码和第二特征码之间的对比结果满足认证要求的情况下建立与所述卡应用之间的通信通道,其中,所述写入结果用于指示所述第一特征码已写入至所述卡应用对应的访问控制文件,所述身份认证请求包括所述配置信息,所述第二特征码由所述终端根据所述配置信息生成。
2.根据权利要求1所述的方法,其特征在于,所述发送所述业务方应用程序的配置信息至服务器,包括:
读取业务方应用程序的配置信息,并对所述配置信息进行加密,得到加密配置信息;
发送所述加密配置信息至服务器。
3.根据权利要求2所述的方法,其特征在于,所述配置信息包括应用标识、应用身份信息、应用密钥、应用私钥,所述应用身份信息包括应用签名,所述通信连接请求包括所述卡应用对应的卡应用标识,所述对所述配置信息进行加密,得到加密配置信息,包括:
获取所述卡应用对应的国际移动用户识别码、所述终端操作系统对应的终端参数、第一当前时间戳;
根据所述终端参数、所述第一当前时间戳以及所述应用签名生成随机因子,并使用所述随机因子对所述卡应用标识、所述应用密钥、所述应用标识、所述应用身份信息进行对称加密,得到第一对称加密信息;
将所述第一对称加密信息放入请求体中,并对所述第一对称加密信息进行哈希运算得到摘要内容,使用软件开发工具包私钥对所述摘要内容进行非对称加密,得到数字签名;
生成会话标识,并使用所述应用私钥对所述数字签名、所述终端参数、所述第一当前时间戳、所述应用签名、所述会话标识、所述国际移动用户识别码进行对称加密,得到第二对称加密信息;
使用服务器公钥对请求头和所述请求体进行非对称加密,得到加密配置信息,其中,所述请求头包括所述第二对称加密信息和所述应用标识。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收所述终端操作系统发送的所述对比结果;
发送所述对比结果至所述业务方应用程序,以使所述业务方应用程序通过所述软件开发工具包以及所述通信通道发送目标指令至所述卡应用。
5.一种卡应用通信方法,其特征在于,应用于服务器,包括:
接收软件开发工具包发送的业务方应用程序的配置信息;
根据所述配置信息生成第一特征码;
将所述第一特征码发送给所述配置信息对应的卡应用。
6.根据权利要求5所述的方法,其特征在于,所述接收软件开发工具包发送的业务方应用程序的配置信息,包括:
接收软件开发工具包发送的业务方应用程序的加密配置信息;
对所述加密配置信息进行数据解析,得到解析后的配置信息;
对所述解析后的配置信息进行数据校验,并在数据校验结果满足数据校验要求的情况下,确定所述解析后的配置信息为所述业务方应用程序的配置信息。
7.根据权利要求6所述的方法,其特征在于,所述对所述加密配置信息进行数据解析,得到解析后的配置信息,包括:
使用服务器私钥从所述加密配置信息的请求头中解密出应用标识、第二对称加密信息,从所述加密配置信息的请求体中解密出第一对称加密信息;
在数据库中查找所述应用标识,得到所述应用标识对应的应用私钥,并使用所述应用私钥对所述第二对称加密信息进行解密,得到数字签名、终端操作系统对应的终端参数、第一当前时间戳、应用签名、会话标识、所述卡应用对应的国际移动用户识别码;
对所述第一对称加密信息进行哈希运算得到摘要内容,使用软件开发工具包公钥对所述数字签名进行解密得到解密内容;
在所述解密内容和所述摘要内容的内容一致的情况下,确定所述终端参数、所述第一当前时间戳以及所述应用签名对应的随机因子,并使用所述随机因子对所述第一对称加密信息进行解密,得到卡应用标识以及解析后的配置信息,其中,所述解析后的配置信息包括应用密钥、应用标识、应用身份信息。
8.根据权利要求7所述的方法,其特征在于,在所述在数据库中查找所述应用标识之前,所述方法还包括:
接收所述业务方应用程序发送的针对所述卡应用的权限申请请求,其中,所述权限申请请求包括应用身份信息;
确定所述权限申请请求对应的应用标识、应用密钥、应用私钥、所述卡应用对应的卡应用标识、所述业务方应用程序与所述卡应用之间的卡应用访问权限信息;
将所述应用身份信息、所述应用标识、所述应用密钥、所述应用私钥、所述卡应用标识以及所述卡应用访问权限信息存储至数据库,并将所述应用标识、所述应用密钥、所述应用私钥发送至所述业务方应用程序。
9.根据权利要求8所述的方法,其特征在于,所述对所述解析后的配置信息进行数据校验,包括:
在所述数据库中查找所述应用标识对应的应用身份信息、应用密钥、所述业务方应用程序与所述卡应用之间的卡应用访问权限信息;
在所述数据库中查找得到的应用身份信息以及应用密钥与所述解析后的配置信息中的应用身份信息以及应用密钥之间的内容均一致,并且所述卡应用访问权限信息指示所述业务方应用程序与所述卡应用之间的存在通信权限的情况下,确定数据校验结果为满足数据校验要求。
10.根据权利要求7所述的方法,其特征在于,所述根据所述配置信息生成第一特征码,包括:
对所述国际移动用户识别码、所述应用标识、所述应用密钥、所述应用身份信息、所述卡应用标识、所述会话标识进行哈希运算,得到第一哈希运算值;
获取第二当前时间戳,并确定所述第二当前时间戳对应的第一时间特征值;
根据所述第一哈希运算值以及所述第一时间特征值生成第一特征码。
11.根据权利要求10所述的方法,其特征在于,所述根据所述第一哈希运算值以及所述第一时间特征值生成第一特征码,包括:
对所述第一哈希运算值以及所述第一时间特征值进行散列消息鉴别码运算,得到第一字符串;
从所述第一字符串的下标偏移量开始截取第一目标长度的字符,得到第二字符串,其中,所述下标偏移量由所述第一字符串中第一目标位数对应的字符确定;
将所述第二字符串转换为第三字符串,其中,所述第二字符串为第一进制的字符串,所述第三字符串为第二进制的字符串;
从所述第三字符串的第二目标位数开始截取第二目标长度的字符,得到第四字符串,并将所述第四字符串转换为第五字符串,其中,所述第五字符串为第一进制的字符串;
若所述第五字符串的位数小于位数阈值,则对所述第五字符串进行补零操作,直至所述第五字符串的位数等于所述位数阈值,得到第一特征码。
12.根据权利要求5所述的方法,其特征在于,所述将所述第一特征码发送给所述配置信息对应的卡应用,包括:
发送数据短信至所述卡应用对应的全球用户识别卡,以使所述全球用户识别卡将所述数据短信中的建链地址和端口号发送至终端操作系统;
通过通信链接发送卡应用处理请求至所述全球用户识别卡,其中,所述通信链接由所述终端操作系统根据所述建链地址以及所述端口号建立,所述卡应用处理请求包括卡应用标识、应用协议数据单元指令,所述应用协议数据单元指令包括所述第一特征码。
13.一种卡应用通信方法,其特征在于,应用于终端操作系统,包括:
接收软件开发工具包发送的针对业务方应用程序的身份认证请求,其中,所述身份认证请求包括所述业务方应用程序的配置信息;
确定所述身份认证请求对应的卡应用,从所述卡应用对应的访问控制文件中获取第一特征码,其中,所述第一特征码由服务器根据所述配置信息生成;
根据所述配置信息生成第二特征码,并在所述第一特征码和所述第二特征码之间的对比结果满足认证要求的情况下建立与所述卡应用之间的通信通道。
14.根据权利要求13所述的方法,其特征在于,所述身份认证请求还包括会话标识以及所述卡应用对应的卡应用标识,所述配置信息包括应用身份信息、应用标识、应用密钥、应用私钥,所述根据所述配置信息生成第二特征码,包括:
获取所述卡应用对应的国际移动用户识别码,对所述国际移动用户识别码、所述应用标识、所述应用密钥、所述应用身份信息、所述卡应用标识、所述会话标识进行哈希运算,得到第二哈希运算值;
获取第三当前时间戳,并确定所述第三当前时间戳对应的第二时间特征值;
根据所述第二哈希运算值以及所述第二时间特征值生成第二特征码。
15.根据权利要求14所述的方法,其特征在于,所述根据所述第二哈希运算值以及所述第二时间特征值生成第二特征码,包括:
对所述第二哈希运算值以及所述第二时间特征值进行散列消息鉴别码运算,得到第六字符串;
从所述第六字符串的下标偏移量开始截取第一目标长度的字符,得到第七字符串,其中,所述下标偏移量由所述第六字符串中第一目标位数对应的字符确定;
将所述第七字符串转换为第八字符串,其中,所述第七字符串为第一进制的字符串,所述第八字符串为第二进制的字符串;
从所述第八字符串的第二目标位数开始截取第二目标长度的字符,得到第九字符串,并将所述第九字符串转换为第十字符串,其中,所述第十字符串为第一进制的字符串;
若所述第十字符串的位数小于位数阈值,则对所述第十字符串进行补零操作,直至所述第十字符串的位数等于所述位数阈值,得到第二特征码。
16.根据权利要求14所述的方法,其特征在于,所述第二时间特征值包括当前时间特征值和至少一个边界时间特征值,所述第二特征码包括所述当前时间特征值对应的第一特征子码以及至少一个所述边界时间特征值对应的第二特征子码,所述方法还包括:
在所述第一特征码与所述第二特征码中任一特征子码相同的情况下,确定所述第一特征码和所述第二特征码之间的对比结果满足认证要求,其中,所述特征子码包括第一特征子码和第二特征子码。
17.一种卡应用通信系统,其特征在于,包括:业务方应用程序、软件开发工具包、卡应用、终端操作系统、服务器,其中,所述软件开发工具包被配置为实现权利要求1至4中任一项所述的方法,所述服务器被配置为实现权利要求5至12中任一项所述的方法,所述终端操作系统被配置为实现权利要求13至16中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410102990.3A CN117835217A (zh) | 2024-01-24 | 2024-01-24 | 卡应用通信方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410102990.3A CN117835217A (zh) | 2024-01-24 | 2024-01-24 | 卡应用通信方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117835217A true CN117835217A (zh) | 2024-04-05 |
Family
ID=90524246
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410102990.3A Pending CN117835217A (zh) | 2024-01-24 | 2024-01-24 | 卡应用通信方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117835217A (zh) |
-
2024
- 2024-01-24 CN CN202410102990.3A patent/CN117835217A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112926982B (zh) | 一种交易数据处理方法、装置、设备及存储介质 | |
EP3905078A1 (en) | Identity verification method and system therefor | |
US8813243B2 (en) | Reducing a size of a security-related data object stored on a token | |
FI115257B (fi) | Menetelmä informaation käsittelemiseksi elektroniikkalaitteessa, järjestelmä, elektroniikkalaite ja suoritinlohko | |
EP1764721B1 (en) | Apparatus and method for controlling access to an external memory | |
TWI362873B (en) | Method and system for identity recognition | |
CN112800472B (zh) | 一种基于微服务架构工业互联网标识数据保护系统 | |
CN111262835B (zh) | 敏感数据的脱敏存储方法及装置 | |
CN107015996A (zh) | 一种资源访问方法、装置及系统 | |
CN102624699A (zh) | 一种保护数据的方法和系统 | |
US9229936B2 (en) | Local storage of information pedigrees | |
Calciati et al. | Automatically granted permissions in Android apps: An empirical study on their prevalence and on the potential threats for privacy | |
WO2010073443A1 (en) | Electronic file sending method | |
EP3376405A1 (en) | Content metadata identification and application method supporting sharing and governance | |
CN115795538B (zh) | 脱敏文档的反脱敏方法、装置、计算机设备和存储介质 | |
JP2022531538A (ja) | 暗号システム | |
KR102131976B1 (ko) | 사용자 단말 장치 및 이에 의한 개인 정보 제공 방법 | |
CN113343192B (zh) | 一种实现数据监管与使用方溯源的方法及系统 | |
CN103428176A (zh) | 移动用户访问移动互联网应用的方法、系统及应用服务器 | |
JP2004072151A (ja) | ファイル暗号化機能を有する端末装置 | |
KR102129030B1 (ko) | 전자문서의 보안정보 비식별화 방법 및 장치 | |
CN117835217A (zh) | 卡应用通信方法及系统 | |
US7738854B2 (en) | External memory management apparatus and external memory management method | |
CN114928756B (zh) | 视频数据保护、加密、校验方法及系统、设备 | |
CN114826729A (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 |