CN116244671A - 认证方法、装置、电子设备及存储介质 - Google Patents

认证方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN116244671A
CN116244671A CN202211078082.2A CN202211078082A CN116244671A CN 116244671 A CN116244671 A CN 116244671A CN 202211078082 A CN202211078082 A CN 202211078082A CN 116244671 A CN116244671 A CN 116244671A
Authority
CN
China
Prior art keywords
authentication
data
file
client
key
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
Application number
CN202211078082.2A
Other languages
English (en)
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 Dajia Internet Information Technology Co Ltd
Original Assignee
Beijing Dajia Internet Information Technology 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 Dajia Internet Information Technology Co Ltd filed Critical Beijing Dajia Internet Information Technology Co Ltd
Priority to CN202211078082.2A priority Critical patent/CN116244671A/zh
Publication of CN116244671A publication Critical patent/CN116244671A/zh
Pending legal-status Critical Current

Links

Images

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/31User authentication
    • 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/45Structures or tools for the administration of authentication
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/045Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply hybrid encryption, i.e. combination of symmetric and asymmetric encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/108Network architectures or network communication protocols for network security for controlling access to devices or network resources when the policy decisions are valid for a limited amount of time
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • 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/2137Time limited access, e.g. to a computer or data

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Abstract

本公开关于一种认证方法、装置、电子设备及存储介质,涉及计算机技术领域,该方法通过响应于认证触发操作,向服务端发送待认证应用的认证数据获取请求;接收服务端响应于认证数据获取请求返回的密文认证数据以及数据签名;基于预设的认证文件,根据密文认证数据以及数据签名,对待认证应用进行认证;认证文件是根据目标语言包编译得到的符合客户端所适配***的可执行文件。这样,通过采用编译得到的可执行文件进行认证,由于可执行文件的破解难度较高,一定程度上可以降低被篡改的可能性,且客户端基于密文认证数据以及数据签名进行认证,可以进一步增加认证数据被篡改的难度,进而可以增强认证操作的安全性。

Description

认证方法、装置、电子设备及存储介质
技术领域
本公开涉及计算机技术领域,尤其涉及一种认证方法、装置、电子设备及存储介质。
背景技术
目前,随着网络技术的不断发展,客户端中的应用越来越多。为了确保应用的安全运行,在使用应用时,往往需要对应用进行认证。其中,认证可以指的是对应用进行鉴权。
由于认证结果会影响用户是否能够正常使用应用,因此,如何确保认证操作的安全性,成为亟需解决的技术问题。
发明内容
本公开提供一种认证方法、装置、电子设备及存储介质,以至少解决上述如何确保认证操作的安全性的问题。本公开的技术方案如下:
根据本公开实施例的第一方面,提供了一种认证方法,应用于客户端,包括:
响应于认证触发操作,向服务端发送待认证应用的认证数据获取请求;
接收所述服务端响应于所述认证数据获取请求返回的密文认证数据以及数据签名;
基于预设的认证文件,根据所述密文认证数据以及所述数据签名,对所述待认证应用进行认证;所述认证文件是根据目标语言包编译得到的符合所述客户端所适配***的可执行文件。
可选的,所述基于预设的认证文件,根据所述密文认证数据以及所述数据签名,对所述待认证应用进行认证,包括:
基于所述认证文件获取所述客户端持有的密钥;
基于所述密钥对所述密文认证数据进行解密,得到明文认证数据;
基于所述明文认证数据,生成参照数据签名;
在所述参照数据签名与所述数据签名相匹配的情况下,基于所述明文认证数据对所述待认证应用进行认证。
可选的,上述基于所述认证文件获取所述客户端持有的密钥,包括:
基于指定的库调用函数从所述认证文件中定义的指定库中调取明文的所述密钥;
或者,从所述认证文件中获取经过伪装处理的密钥;对所述经过伪装处理的密钥进行还原,得到明文的所述密钥。
可选的,所述经过伪装处理的密钥是对明文的所述密钥进行混淆处理后得到的,所述经过伪装处理的密钥存储在所述认证文件中。
可选的,所述目标语言包是基于支持被编译为中间语言的指定语言编写的,所述中间语言支持适配不同***的解释器;所述方法还包括:
将所述目标语言包编译为符合所述中间语言的文件;
根据所述客户端所适配***对应的解释器,对所述符合所述中间语言的文件进行编译,得到所述认证文件。
可选的,上述方法还包括:
所述认证文件被预先封装为目标接口;所述基于预设的认证文件,根据所述密文认证数据以及所述数据签名,对所述待认证应用进行认证,包括:
调用所述目标接口,以基于所述预设的认证文件,根据所述密文认证数据以及所述数据签名,对所述待认证应用进行认证。
根据本公开实施例的第二方面,提供了一种认证装置,应用于客户端,包括:
发送模块,被配置为执行响应于认证触发操作,向服务端发送待认证应用的认证数据获取请求;
接收模块,被配置为执行接收所述服务端响应于所述认证数据获取请求返回的密文认证数据以及数据签名;
认证模块,被配置为执行基于预设的认证文件,根据所述密文认证数据以及所述数据签名,对所述待认证应用进行认证;所述认证文件是根据目标语言包编译得到的符合所述客户端所适配***的可执行文件。
可选的,所述认证模块,包括:
获取子模块,被配置为执行基于所述认证文件执行获取所述客户端持有的密钥;
解密子模块,被配置为执行基于所述密钥对所述密文认证数据进行解密,得到明文认证数据;
生成子模块,被配置为执行基于所述明文认证数据,生成参照数据签名;
认证子模块,被配置为执行在所述参照数据签名与所述数据签名相匹配的情况下,基于所述明文认证数据对所述待认证应用进行认证。
可选的,上述获取子模块,具体被配置为执行:
基于指定的库调用函数从所述认证文件中定义的指定库中调取明文的所述密钥;
或者,从所述认证文件中获取经过伪装处理的密钥;对所述经过伪装处理的密钥进行还原,得到明文的所述密钥。
可选的,所述经过伪装处理的密钥是对明文的所述密钥进行混淆处理后得到的,所述经过伪装处理的密钥存储在所述认证文件中。
可选的,所述目标语言包是基于支持被编译为中间语言的指定语言编写的,所述中间语言支持适配不同***的解释器;所述装置还包括:
编译模块,被配置为执行将所述目标语言包编译为符合所述中间语言的文件;
解释模块,被配置为执行根据所述客户端所适配***对应的解释器,对所述符合所述中间语言的文件进行编译,得到所述认证文件。
可选的,所述认证文件被预先封装为目标接口;所述装置还包括:
调用模块,被配置为执行在所述认证模块基于预设的认证文件,根据所述密文认证数据以及所述数据签名,对所述待认证应用进行认证之前,调用所述目标接口,以触发执行所述基于所述预设的认证文件,根据所述密文认证数据以及所述数据签名,对所述待认证应用进行认证的操作。
根据本公开实施例的第三方面,提供了一种电子设备,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如第一方面中任一项所述的方法。
根据本公开实施例的第四方面,提供了一种存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得所述电子设备执行如第一方面中任一项所述的方法。
根据本公开实施例的第五方面,提供了一种计算机程序产品,所述计算机程序产品包括可读性程序指令,所述可读性程序指令由电子设备的处理器执行时,使得所述电子设备执行如第一方面中任一项所述的方法。
本公开的实施例提供的技术方案至少带来以下有益效果:在本发明实施例中,通过响应于认证触发操作,向服务端发送待认证应用的认证数据获取请求;接收所述服务端响应于所述认证数据获取请求返回的密文认证数据以及数据签名;基于预设的认证文件,根据所述密文认证数据以及所述数据签名,对所述待认证应用进行认证;所述认证文件是根据目标语言包编译得到的符合所述客户端所适配***的可执行文件。这样,通过采用编译得到的可执行文件进行认证,由于可执行文件的破解难度较高,一定程度上可以降低被篡改的可能性,且通过服务端提供密文认证数据以及数据签名,客户端基于密文认证数据以及数据签名进行认证,可以进一步增加认证数据被篡改的难度,进而一定程度上可以增强认证操作的安全性。
进一步地,通过使用客户端所适配***的认证文件,可以确保该认证文件支持该客户端,确保该认证文件能够被客户端正常运行,进而确保认证操作可以顺利执行。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1是根据一示例性实施例示出的一种认证方法的流程图。
图2是根据一示例性实施例示出的一种加解密流程图;
图3是根据一示例性实施例示出的一种对目标语言包进行编译的结构示意图;
图4是根据一示例性实施例示出的一种认证装置的框图;
图5是根据一示例性实施例示出的一种用于认证的装置的框图;
图6是根据一示例性实施例示出的另一种用于认证的装置的框图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
图1是根据一示例性实施例示出的一种认证方法的流程图,如图1所示,该认证方法应用于客户端,可以包括以下步骤:
步骤101、响应于认证触发操作,向服务端发送待认证应用的认证数据获取请求。
其中,认证触发操作指的是触发开启认证的操作,例如,当用户打开某个应用时,就会触发对该用户使用该应用的权限进行认证,又例如,当用户点击应用中的某项服务或功能时,就会触发对该应用中的该项服务或功能进行认证。其中,上述待认证应用指的就是上述示例中所使用的应用,可以包括客户端中安装的各个应用。其中,上述认证数据获取请求中可以包含需要进行认证的对象的名称或身份标识(Identity document,ID)等信息。
具体的,可以通过超文本传输安全协议(Hyper Text Transfer Protocol overSecureSocket Layer,HTTPS),即可信数据通道向服务端发送获取请求,该HTTPS可信数据通道可以通过调用开放的应用编程接口(OpenAPI,Open Application ProgrammingInterface)进行请求,从而可以保证网络传输链路在传输过程中的数据的安全性。
步骤102、接收所述服务端响应于所述认证数据获取请求返回的密文认证数据以及数据签名。
其中,密文认证数据指的是对认证数据进行加密后的数据,其中,上述认证数据可以称为license源数据,其中包括了进行认证所需要的信息,例如是否拥有权限或者拥有权限的时限等信息。上述数据签名指的是对认证数据进行签名后的数据,也可以称为签名信息。其中,服务端返回数据也可以通过上述HTTPS可信数据通道进行。
具体的,可以对上述license源数据采用AES-GCM加密算法进行加密,得到上述密文认证数据。采用SHA256withRSA签名算法对认证数据进行签名,得到上述数据签名。当然,也可以采用其他加解密算法对认证数据进行处理,本发明实施例对此不作限制。
可选地,在得到上述密文认证数据和数据签名后,可以采用Base64编码对上述数据进行编码,以便于传输,进而提高传输效率。
步骤103、基于预设的认证文件,根据所述密文认证数据以及所述数据签名,对所述待认证应用进行认证;所述认证文件是根据目标语言包编译得到的符合所述客户端所适配***的可执行文件。
其中,上述预设的认证文件指的是用以对认证数据进行验证的文件,认证文件可以为二进制文件。其中可以包括接收到上述密文认证数据以及数据签名后,所需进行的认证操作,例如,对密文认证数据和数据签名分别进行解密和解签,并进行验证的操作。具体的,客户端可以通过执行上述预设的认证文件执行上述认证操作。上述客户端所适配***指的就是客户端自身的操作***,其中,不同***表征不同平台,例如,当客户端为一台采用安卓***的手机时,上述所适配***指的就是安卓***。
其中,上述目标语言包也可以称为认证服务开发工具包(license softwaredevelopment toolkit,license SDK),指的是预先编写的适用于多个***的认证文件,上述***可以包括iOS***、Android***、macOS***、以及Windows***等。通过对上述目标语言包进行编译可以得到适用于上述多个不同***的认证文件,以使不同***的客户端均可以通过该文件执行认证操作。
综上所述,本公开实施例提供的一种认证方法,通过响应于认证触发操作,向服务端发送待认证应用的认证数据获取请求;接收所述服务端响应于所述认证数据获取请求返回的密文认证数据以及数据签名;基于预设的认证文件,根据所述密文认证数据以及所述数据签名,对所述待认证应用进行认证;所述认证文件是根据目标语言包编译得到的符合所述客户端所适配***的可执行文件。这样,通过采用编译得到的可执行文件进行认证,由于可执行文件的破解难度较高,一定程度上可以降低被篡改的可能性,且通过服务端提供密文认证数据以及数据签名,客户端基于密文认证数据以及数据签名进行认证,可以进一步增加认证数据被篡改的难度,进而一定程度上可以增强认证操作的安全性。
进一步地,通过使用客户端所适配***的认证文件,可以确保该认证文件支持该客户端,确保该认证文件能够被客户端正常运行,进而确保认证操作可以顺利执行。
可选地,上述基于预设的认证文件,根据所述密文认证数据以及所述数据签名,对所述待认证应用进行认证的操作,本发明实施例具体可以通过下述步骤实现:
步骤201、基于所述认证文件获取所述客户端持有的密钥。
其中,上述密钥可以是在上述认证文件中预先设置的,也可以是在触发认证操作后生成并存储在认证文件中的。
步骤202、基于所述密钥对所述密文认证数据进行解密,得到明文认证数据。
其中,服务端在接收到认证数据获取请求之后,可以采用上述密钥通过AES-GCM加密算法对明文认证数据进行加密,并通过BASE64编码后生成密文认证数据发送至客户端,当客户端接收到服务端返回的密文认证数据后,可以通过BASE64解码后,采用该密钥进行解密,从而得到license源数据,即明文认证数据。
步骤203、基于所述明文认证数据,生成参照数据签名。
其中,服务端在接收到认证数据获取请求之后,可以通过SHA256withRSA签名算法,即通过SHA256算法对明文认证数据进行处理,得到数据摘要信息,然后通过RSA算法使用私钥A对数据摘要信息进行加密,完成加签处理。之后,通过BASE64编码后生成数据签名发送至客户端,当客户端通过上述步骤302得到明文认证数据后,可以通过SHA256签名算法对明文认证数据进行相应的加签操作,得到数据摘要信息,以作为上述参照数据签名。
步骤204、在所述参照数据签名与所述数据签名相匹配的情况下,基于所述明文认证数据对所述待认证应用进行认证。
其中,当客户端接收到服务端返回的数据签名后,可以先通过BASE64解码,得到解码后的数据签名,之后使用公钥B进行解密,得到服务端通过SHA256算法对明文认证数据进行处理后得到的数据摘要信息。通过比对参照数据签名与数据摘要信息来确定参照数据签名是否与服务端返回的数据签名相匹配。具体的,如果参照数据签名与该数据摘要信息一致,则可以确定两者相匹配。反之,如果参照数据签名与该数据摘要信息不一致,则可以确定两者不相匹配。其中,上述私钥A与公钥B是成对的,可以在用户初次使用认证服务时,为该用户分配一对公私钥,并将其中的私钥上传至服务端保存,将公钥提供给客户端保存。其中,上述用户可以为使用客户端的用户,也可以为客户端中安装的各应用。
进一步地,两者一致时,表明数据在传输过程中没有被篡改,得到的数据是安全的,从而可以执行后续的认证操作。两者不一致时,表明数据在传输过程中可能被篡改或被植入不安全的数据,此时禁止执行后续的认证操作,以防得到不正确的认证结果或者对客户端的使用安全造成影响。
本发明实施例中,通过基于预设的认证文件获取所述客户端持有的密钥;基于所述密钥对所述密文认证数据进行解密,得到明文认证数据;基于所述明文认证数据,生成参照数据签名;在所述参照数据签名与所述数据签名相匹配的情况下,基于所述明文认证数据对所述待认证应用进行认证。这样,通过同时执行加解密操作和签名匹配操作,可以进一步保证认证操作中的数据安全,提高认证操作的准确性。
图2是根据一示例性实施例示出的一种加解密流程图,如图2所示,服务端可以在接收到客户端发送的获取请求后,使用上述密钥对该请求对应的认证数据进行加密,以及使用上述私钥对认证数据进行加签,并对加密和加签后的数据分别进行Base64编码后发送至客户端,也就是说,客户端所接收到的数据包括了密文license数据和Signature签名数据。如图3所示,客户端在接收到上述密文license数据和Signature签名数据后,通过对密文license数据进行解码和加密可以得到明文license数据,通过对Signature签名数据进行解码得到解码后的签名数据,之后使用与上述私钥对应的公钥进行解密,得到服务端通过SHA256算法对明文认证数据进行处理后得到的数据摘要信息。并对上述明文license数据采用SHA256withRSA签名算法中的SHA256算法对明文license数据进行相应的加签操作,生成上述参照数据签名,从而可以对该参照数据签名与上述数据摘要信息进行比对,得到比对结果为一致或不一致,在比对结果一致的情况下,根据明文认证数据对待认证应用进行认证。可以看出,通过同时执行加解密操作和签名匹配操作,可以进一步保证认证操作中的数据安全,提高认证操作的准确性。
可选地,上述基于所述认证文件获取所述客户端持有的密钥的操作,本发明实施例具体可以包括:
步骤301、基于指定的库调用函数从所述认证文件中定义的指定库中调取明文的所述密钥。
上述指定的库调用函数指的是用于调用指定库的函数,上述指定库指的是存储了上述密钥明文的库。客户端可以直接通过上述调用函数从上述指定库中获取上述密钥明文。
或者,步骤302、从所述认证文件中获取经过伪装处理的密钥;对所述经过伪装处理的密钥进行还原,得到明文的所述密钥。
或者,客户端还可以从上述认证文件中获取经过伪装处理的密钥,其中,上述伪装处理指的是对密钥进行再加密操作,以使其他用户无法通过反编译获取本客户端所持有的密钥明文。
具体的,客户端得到经过伪装处理的密钥后,可以通过相应地反伪装或解密操作得到还原后的密钥明文。
本发明实施例中,通过基于指定的库调用函数从所述认证文件中定义的指定库中调取明文的所述密钥;或者,从所述认证文件中获取经过伪装处理的密钥;对所述经过伪装处理的密钥进行还原,得到明文的所述密钥。这样,通过认证文件获取密钥明文,可以在保证密钥安全的同时,避免对后续的认证操作造成的影响。
可选地,上述经过伪装处理的密钥是对明文的所述密钥进行混淆处理后得到的,所述经过伪装处理的密钥存储在所述认证文件中。
其中,上述混淆处理指的是将密钥打乱重新排布的操作。当上述目标语言包通过RUST语言编写时,上述混淆处理可以通过obfstr指令进行,具体的,可以设置一个临时变量,obfstr指令通过该临时变量的地址和长度进行随机混淆,并将其拷贝到运行内存(buffer),直接存储到编译后的认证文件中,避免密钥明文作为字符串常量符号化在编译产物中,使其不离开上述lincense SDK的范围。
本发明实施例中,所述经过伪装处理的密钥是对明文的所述密钥进行混淆处理后得到的,所述经过伪装处理的密钥存储在所述认证文件中。这样,可以使认证文件中存储混淆后的密钥,以防密钥明文被其他用户所窃取,进一步保证了认证服务的数据安全。
在一种可选实施例方式中,所述目标语言包是基于支持被编译为中间语言的指定语言编写的;所述中间语言支持适配不同***的解释器;本发明实施例具体还可以包括:
步骤401、将所述目标语言包编译为符合所述中间语言的文件;
步骤402、根据所述客户端所适配***对应的解释器,对所述符合所述中间语言的文件进行编译,得到所述认证文件。
其中,指定语言可以根据实际需求选择,例如,上述指定语言可以为RUST语言,也可以为JAVA语言,只需确保上述指定语言可以被编译为中间语言即可。需要说明的是,不同的指定语言对应的中间语言不同,相应地,中间语言所支持的适配不同***的解释器也不同。其中,当指定语言为RUST语言时,上述中间语言指的是LLVM IR(IntermediateRepresentation),上述将目标语言包编译为符合中间语言的文件可以通过RUST对应的编译器rustc进行,rustc可以将原目标语言包编译为LLVM IR,然后通过不同***所对应的解释器将LLVM IR处理为适配不同***的可执行文件,示例地,ios***对应的解释器为LLVM后端,安卓***对应的解释器为NDK(Native Delopment kits)后端。相应地,当上述指定语言为JAVA语言时,上述中间语言指的是JAVA字节码,上述将目标语言包编译为符合中间语言的文件可以通过JAVA对应的编译器(例如javac)进行,JAVA语言被编译器编译之后会得到对应的字节码文件。这样,通过不同***所对应的解释器即可将字节码文件处理为适配不同***的可执行文件。需要说明的是,由JAVA语言得到的可执行文件必须在JAVA虚拟机(JVM)上运行,因此,当使用JAVA语言编写目标语言包时,所得到的可执行文件只能适用于安装有JVM的客户端。
需要说明的是,客户端如果选用原生语言编写目标语言包,android***的Java或Kotlin,iOS***的Objective-C都存在开发的接口被动态替换,或者容易破解的可能性。而当使用C/C++来编写时,因为语言特性以及内存管理的质量问题对于开发能力要求较高,开发难度较高。本发明实施例中,采用RUST语言作为指定语言,由于RUST语言设计中不允许存在空指针和悬空指针,指针只能通过固定的初始化形态来构建,而这些形态在初次输入时已经经过了安全分析,从而可以保证内存安全,这样,可以避免由于开发能力不足所造成的内存泄露风险。
进一步地,本发明实施例中,所述目标语言包是基于支持被编译为中间语言的指定语言编写的,且中间语言可以适配不同***的解释器,这样,通过使用客户端所适配***对应的解释器,对符合所述中间语言的文件进行编译,即可得到符合该客户端所适配***的可执行文件。且由于中间语言支持适配不同***的解释器,因此,可以基于一个目标语言包编译出适配不同***的认证文件,实现跨端开发,从而可以减少所需的人力成本,提高人效。同时,相较于不同开发人员开发多个语言包来适配不同***的方式,由于基于一个目标语言包即可编译出适配不同***的认证文件,因此,还可以避免开发人员不同的编译习惯所造成的逻辑不一致的问题。
且认证服务需要在客户端中完成,现有技术中往往需要针对不同***的客户端进行相应的编码。本发明实施例中,采用指定语言编写目标语言包,使得基于目标语言包可以编译出适配不同***的可执行文件,适配不同***的客户端,进而避免针对不同***的客户端需要分别进行相应的编码,导致开发效率较低的问题。
可选地,上述认证文件被预先封装为目标接口;上述基于预设的认证文件,根据所述密文认证数据以及所述数据签名,对所述待认证应用进行认证之前,本发明实施例具体还可以包括下述步骤:
步骤501、调用所述目标接口,以触发执行所述基于所述预设的认证文件,根据所述密文认证数据以及所述数据签名,对所述待认证应用进行认证的操作。
其中,上述目标接口指的是客户端所适配的***可以调用的接口。客户端可以具体调用与该客户端所适配***相匹配的接口,即,调用目标接口执行认证操作。具体的,可以在上述目标语言包中通过extern关键字,设置不同***对应的语言交互接口(foreignfunction interface,FFI),例如,可以设置一个C接口(C interface)以使iOS***以及Windows***可以通过该接口实现认证操作,相应地,可以设置一个JAVA接口(java nativeinterface)以使Android***可以通过该接口实现认证操作。具体的,在将上述目标语言包编译为适配不同***的认证文件时,可以通过调用上述不同***对应的FFI实现,并将所生成的认证文件可以直接封装到上述FFI中。
可选地,图3是根据一示例性实施例示出的一种对目标语言包进行编译的结构示意图,如图3所示,当上述目标语言包是采用RUST语言编写时,上述将目标语言包进行编译的操作可以采用rustc编译器进行,通过指定不同的***对象,调用对应FFI,可以编译出适应不同***的认证文件。其中,图3中示出的应用层可以表示上述待认证的应用,其中,初始化指的是可以在每次使用上述待认证的应用时,向服务端发送包含应用名称以及所包含的功能的请求,以将服务端所返回的该应用的密文认证数据存储至客户端,从而在对该应用中包含的其他功能进行验证时,可以直接从客户端的存储单元中获取认证数据,无需再向服务端发送获取请求。传入用户配置指的是接入用户的***配置,可以包括用户的***类型。调用验证接口指的是通过调用验证接口开启认证服务。其中,***层可以对应iOS***、Android***、macOS***、Linux、以及Windows***等,图3中只是示出了其中三种,***层主要负责与服务端的数据交互以及将服务端返回的内容持久化存储在本地的工作,其中,上述服务端返回的内容指的是上述密文认证数据。其中,FFI层指的是上述不同的接口,可以包括C接口和JAVA接口。RUST层也可以称为认证层,主要负责对所接收到的密文认证数据进行认证的操作,也就是说认证操作是在RUST层完成的,由于RUST层的二进制文件没有可读性,从而可以防止被篡改,提高了破解门槛,增强了认证操作的安全性。上述应用层、***层FFI层以及RUST层可以均位于客户端。
具体的,在客户端需要执行认证操作时,可以通过调用上述所封装的对应的目标接口去执行相应操作。
本发明实施例中,上述认证文件被预先封装为目标接口,通过调用所述目标接口,以触发执行基于所述预设的认证文件,根据所述密文认证数据以及所述数据签名,对所述待认证应用进行认证的操作。这样,只需要调用预先封装的目标接口,即可执行相应的认证操作,从而一定程度上减少进行认证所需的操作,提高认证效率。
且由于目标接口封装的认证文件与客户端所适配***相符合,因此,可以避免由于***不适配导致无法正常调用的问题,进而可以提高认证服务的效果。
图4是根据一示例性实施例示出的一种认证装置的框图,该装置40可以应用于客户端,如图4所示,该装置40可以包括:
发送模块401,被配置为执行响应于认证触发操作,向服务端发送待认证应用的认证数据获取请求;
接收模块402,被配置为执行接收所述服务端响应于所述认证数据获取请求返回的密文认证数据以及数据签名;
认证模块403,被配置为执行基于预设的认证文件,根据所述密文认证数据以及所述数据签名,对所述待认证应用进行认证;所述认证文件是根据目标语言包编译得到的符合所述客户端所适配***的可执行文件。
在一种可选实施例方式中,所述认证模块403,包括:
获取子模块,被配置为执行基于所述认证文件执行获取所述客户端持有的密钥;
解密子模块,被配置为执行基于所述密钥对所述密文认证数据进行解密,得到明文认证数据;
生成子模块,被配置为执行基于所述明文认证数据,生成参照数据签名;
认证子模块,被配置为执行在所述参照数据签名与所述数据签名相匹配的情况下,基于所述明文认证数据对所述待认证应用进行认证。
在一种可选实施例方式中,所述获取子模块,具体被配置为执行:
基于指定的库调用函数从所述认证文件中定义的指定库中调取明文的所述密钥;
或者,从所述认证文件中获取经过伪装处理的密钥;对所述经过伪装处理的密钥进行还原,得到明文的所述密钥。
在一种可选实施例方式中,所述经过伪装处理的密钥是对明文的所述密钥进行混淆处理后得到的,所述经过伪装处理的密钥存储在所述认证文件中。
在一种可选实施例方式中,所述目标语言包是基于支持被编译为中间语言的指定语言编写的,所述中间语言支持适配不同***的解释器;所述装置40还包括:
编译模块,被配置为执行将所述目标语言包编译为符合所述中间语言的文件;
解释模块,被配置为执行根据所述客户端所适配***对应的解释器,对所述符合所述中间语言的文件进行编译,得到所述认证文件。
在一种可选实施例方式中,所述认证文件被预先封装为目标接口;所述装置40还包括:
调用模块,被配置为执行在所述认证模块403基于预设的认证文件,根据所述密文认证数据以及所述数据签名,对所述待认证应用进行认证之前,调用所述目标接口,以触发执行所述基于所述预设的认证文件,根据所述密文认证数据以及所述数据签名,对所述待认证应用进行认证的操作。
综上所述,本公开实施例提供的一种认证方法,通过响应于认证触发操作,向服务端发送待认证应用的认证数据获取请求;接收所述服务端响应于所述认证数据获取请求返回的密文认证数据以及数据签名;基于预设的认证文件,根据所述密文认证数据以及所述数据签名,对所述待认证应用进行认证;所述认证文件是根据目标语言包编译得到的符合所述客户端所适配***的可执行文件。这样,通过采用编译得到的可执行文件进行认证,由于可执行文件的破解难度较高,一定程度上可以降低被篡改的可能性,且通过服务端提供密文认证数据以及数据签名,客户端基于密文认证数据以及数据签名进行认证,可以进一步增加认证数据被篡改的难度,进而一定程度上可以增强认证操作的安全性。
进一步地,通过使用客户端所适配***的认证文件,可以确保该认证文件支持该客户端,确保该认证文件能够被客户端正常运行,进而确保认证操作可以顺利执行。
根据本公开的一个实施例,提供了一种电子设备,包括:处理器、用于存储处理器可执行指令的存储器,其中,处理器被配置为执行时实现如上述任一个实施例中的认证方法中的步骤。
根据本公开的一个实施例,还提供了一种存储介质,当存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如上述任一个实施例中的认证方法中的步骤。
根据本公开的一个实施例,还提供了一种计算机程序产品,该计算机程序产品包括可读性程序指令,可读性程序指令由电子设备的处理器执行时,使得电子设备能够执行如上述任一个实施例中的认证方法中的步骤。
图5是根据一示例性实施例示出的一种用于认证的装置的框图。其中,装置500可以包括处理组件502、存储器504、电源组件506、多媒体组件508、音频组件510、输入/输出接口512、传感器组件514、通信组件516以及处理器520。处理组件502可以包括一个或多个处理器520来执行指令,以完成上述的认证方法的全部或部分步骤。在示例性实施例中,还提供了一种包括指令的存储介质,例如包括指令的存储器504,上述指令可由装置500的处理器520执行以完成上述方法。可选地,存储介质可以是非临时性计算机可读存储介质,例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
图6是根据一示例性实施例示出的另一种用于认证的装置的框图。其中,装置600可以包括处理组件622、存储器632、输入输出接口658、网络接口650以及电源组件626。装置600可以被提供为一服务器。存储器632中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件622被配置为执行指令,以执行上述认证方法。
本公开所涉及的用户信息(包括但不限于用户的设备信息、用户个人信息等)、相关数据等均为经用户授权或经各方授权后的信息。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

Claims (10)

1.一种认证方法,其特征在于,应用于客户端,所述方法包括:
响应于认证触发操作,向服务端发送待认证应用的认证数据获取请求;
接收所述服务端响应于所述认证数据获取请求返回的密文认证数据以及数据签名;
基于预设的认证文件,根据所述密文认证数据以及所述数据签名,对所述待认证应用进行认证;所述认证文件是根据目标语言包编译得到的符合所述客户端所适配***的可执行文件。
2.根据权利要求1所述的方法,其特征在于,所述基于预设的认证文件,根据所述密文认证数据以及所述数据签名,对所述待认证应用进行认证,包括:
基于所述认证文件获取所述客户端持有的密钥;
基于所述密钥对所述密文认证数据进行解密,得到明文认证数据;
基于所述明文认证数据,生成参照数据签名;
在所述参照数据签名与所述数据签名相匹配的情况下,基于所述明文认证数据对所述待认证应用进行认证。
3.根据权利要求2所述的方法,其特征在于,所述基于所述认证文件获取所述客户端持有的密钥,包括:
基于指定的库调用函数从所述认证文件中定义的指定库中调取明文的所述密钥;
或者,从所述认证文件中获取经过伪装处理的密钥;对所述经过伪装处理的密钥进行还原,得到明文的所述密钥。
4.根据权利要求3所述的方法,其特征在于,所述经过伪装处理的密钥是对明文的所述密钥进行混淆处理后得到的,所述经过伪装处理的密钥存储在所述认证文件中。
5.根据权利要求1-4任一所述的方法,其特征在于,所述目标语言包是基于支持被编译为中间语言的指定语言编写的,所述中间语言支持适配不同***的解释器;所述方法还包括:
将所述目标语言包编译为符合所述中间语言的文件;
根据所述客户端所适配***对应的解释器,对所述符合所述中间语言的文件进行编译,得到所述认证文件。
6.根据权利要求1-4任一所述的方法,其特征在于,所述认证文件被预先封装为目标接口;所述基于预设的认证文件,根据所述密文认证数据以及所述数据签名,对所述待认证应用进行认证之前,所述方法还包括:
调用所述目标接口,以触发执行所述基于所述预设的认证文件,根据所述密文认证数据以及所述数据签名,对所述待认证应用进行认证的操作。
7.一种认证装置,其特征在于,应用于客户端,所述装置包括:
发送模块,被配置为执行响应于认证触发操作,向服务端发送待认证应用的认证数据获取请求;
接收模块,被配置为执行接收所述服务端响应于所述认证数据获取请求返回的密文认证数据以及数据签名;
认证模块,被配置为执行基于预设的认证文件,根据所述密文认证数据以及所述数据签名,对所述待认证应用进行认证;所述认证文件是根据目标语言包编译得到的符合所述客户端所适配***的可执行文件。
8.一种电子设备,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1至6中任一项所述的方法。
9.一种存储介质,其特征在于,当所述存储介质中的指令由电子设备的处理器执行时,使得所述电子设备执行如权利要求1至6中任一项所述的方法。
10.一种计算设备程序产品,其特征在于,所述计算设备程序产品包括可读性程序指令,所述可读性程序指令由电子设备的处理器执行时,使得所述电子设备执行如权利要求1至6中任一项所述的方法。
CN202211078082.2A 2022-09-05 2022-09-05 认证方法、装置、电子设备及存储介质 Pending CN116244671A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211078082.2A CN116244671A (zh) 2022-09-05 2022-09-05 认证方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211078082.2A CN116244671A (zh) 2022-09-05 2022-09-05 认证方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN116244671A true CN116244671A (zh) 2023-06-09

Family

ID=86631849

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211078082.2A Pending CN116244671A (zh) 2022-09-05 2022-09-05 认证方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN116244671A (zh)

Similar Documents

Publication Publication Date Title
CN110519309B (zh) 数据传输方法、装置、终端、服务器及存储介质
CN111177749B (zh) 加密源代码文件处理方法、装置、计算机设备和存储介质
CN108111622B (zh) 一种下载白盒库文件的方法、装置及***
CN106372497B (zh) 一种应用编程接口api保护方法和保护装置
CN109145628B (zh) 一种基于可信执行环境的数据采集方法及***
CN109284585B (zh) 一种脚本加密方法、脚本解密运行方法和相关装置
CN109981665B (zh) 资源提供方法及装置、资源访问方法及装置和***
CN109992987B (zh) 基于Nginx的脚本文件保护方法、装置及终端设备
CN108134673B (zh) 一种生成白盒库文件的方法及装置
CN101957903A (zh) 一种保护类文件的方法和装置
WO2023029447A1 (zh) 模型保护方法、装置、设备、***以及存储介质
CN111538977A (zh) 云api密钥的管理、云平台的访问方法、装置及服务器
CN111814166B (zh) 一种数据加密方法、装置和电子设备
US11288381B2 (en) Calculation device, calculation method, calculation program and calculation system
CN113204772A (zh) 数据处理方法、装置、***、终端、服务器和存储介质
CN114547648A (zh) 一种数据匿踪查询方法及***
US8745375B2 (en) Handling of the usage of software in a disconnected computing environment
CN112115430A (zh) 一种apk的加固方法、电子设备及存储介质
CN112507302B (zh) 基于密码模块执行的调用方身份鉴别方法及装置
CN111625814B (zh) 风控计算的处理设备、处理方法、处理装置和存储介质
CN116244671A (zh) 认证方法、装置、电子设备及存储介质
US11157610B2 (en) Method for accessing a secure computer resource by a computer application
DONG et al. Sesoa: Security enhancement system with online authentication for android apk
CN113946801B (zh) 基于SGX的Python源码的保护方法和装置
KR102326100B1 (ko) 안전한 안드로이드 앱 생성 및 안드로이드 플랫폼에서의 앱 설치/실행을 위한 시스템 및 방법

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