CN111625781B - Sdk授权认证方法、装置、设备及存储介质 - Google Patents
Sdk授权认证方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN111625781B CN111625781B CN202010766469.1A CN202010766469A CN111625781B CN 111625781 B CN111625781 B CN 111625781B CN 202010766469 A CN202010766469 A CN 202010766469A CN 111625781 B CN111625781 B CN 111625781B
- Authority
- CN
- China
- Prior art keywords
- certificate
- information
- sdk
- service
- verified
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 103
- 238000013475 authorization Methods 0.000 title claims abstract description 71
- 238000003860 storage Methods 0.000 title claims description 18
- 238000012795 verification Methods 0.000 claims abstract description 231
- 238000012545 processing Methods 0.000 claims description 38
- 230000006870 function Effects 0.000 claims description 30
- 238000004458 analytical method Methods 0.000 claims description 11
- 230000000977 initiatory effect Effects 0.000 claims 2
- 238000010586 diagram Methods 0.000 description 23
- 238000009434 installation Methods 0.000 description 18
- 230000008569 process Effects 0.000 description 17
- 238000005516 engineering process Methods 0.000 description 14
- 238000013461 design Methods 0.000 description 10
- 238000004422 calculation algorithm Methods 0.000 description 8
- 238000004590 computer program Methods 0.000 description 7
- 230000006855 networking Effects 0.000 description 6
- 238000010200 validation analysis Methods 0.000 description 6
- 238000001514 detection method Methods 0.000 description 5
- 238000011161 development Methods 0.000 description 5
- 238000007726 management method Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000013478 data encryption standard Methods 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 244000035744 Hura crepitans Species 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000007123 defense Effects 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
- 238000011022 operating instruction Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000001681 protective effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/105—Arrangements for software license management or administration, e.g. for managing licenses at corporate level
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请公开了可应用于安全领域的SDK授权认证方法,该方法包括当获取到针对于目标应用的业务SDK启动请求时,根据业务SDK启动请求获取证书文件;对证书文件进行解析处理,得到证书信息;获取当前时间以及待验证业务身份信息;根据当前时间与证书有效期之间的匹配关系,及待验证业务身份信息与业务身份信息之间的匹配关系,确定证书文件所对应的验证结果;若验证结果用于指示证书文件已验证成功,则针对于目标应用启动业务SDK的调用功能。本申请还提供了一种SDK授权认证装置,能够在SDK使用方侧对业务SDK进行授权验证,从而在SDK使用方处于非联网的情况下,仍然可以达到对业务SDK进行验证和授权的目的。
Description
技术领域
本申请涉及安全技术领域,尤其涉及SDK授权认证方法、装置、设备及存储介质。
背景技术
销售软件使用许可是商业软件的贯用商业模式,用户向商家购买软件安装盘搭载软件使用许可,才可以使用该软件。作为软件开发者,为了保护自身的权益,在软件开发过程中也不可避免地设计软件使用许可管控机制。
目前,针对企业级的证书(license)授权方案,通常要求使用者在联网的情况下,将认证请求通过发送到license认证中心进行授权认证。而针对个人用户的license授权方案,通常要求使用者先在线购买软件序列号,再填入后进行在线激活即可。现有的license授权方案都是直接面向终端消费用户,使用者直接付费即可获取license的授权许可。
然而,当移动端业务的软件开发工具包(Software Development Kit,SDK)在面向企业(to business,TOB)时,通常需要进行二次开发才可面向用户。而作为移动端业务SDK能力的提供方,面向开发者的业务SDK需要进行私有化部署,或者仅在客户端使用业务功能。但由于SDK使用方的移动端可能无法联网,这种情况下,会导致业务SDK无法获得授权许可。
发明内容
本申请实施例提供了SDK授权认证方法、相关装置、设备及存储介质,能够在SDK使用方侧对业务SDK进行授权验证,从而在SDK使用方处于非联网的情况下,仍然可以达到对业务SDK进行验证和授权的目的。
有鉴于此,本申请一方面提供一种SDK授权认证方法,包括:
当获取到针对于目标应用的业务软件开发工具包SDK启动请求时,根据业务SDK启动请求获取证书文件;
对证书文件进行解析处理,得到证书信息,其中,证书信息包括业务身份信息以及证书有效期,业务身份信息用于确定业务SDK的调用者身份,证书有效期用于确定证书文件的起始时间以及终止时间;
获取当前时间以及待验证业务身份信息,其中,当前时间为获取业务SDK启动请求所对应的时间,待验证业务身份信息为根据目标应用确定的;
根据当前时间与证书有效期之间的匹配关系,以及待验证业务身份信息与业务身份信息之间的匹配关系,确定证书文件所对应的验证结果;
若验证结果用于指示证书文件已验证成功,则针对于目标应用启动业务SDK的调用功能。
本申请另一方面提供一种证书生成的方法,包括:
获取已配置的证书信息;
若证书信息满足合法配置条件,则对证书信息进行编码处理,得到待解码证书信息;
采用目标密钥信息对待解码证书信息进行加密处理,得到已加密证书信息;
采用目标公钥信息对已加密证书信息进行签名处理,得到签名信息;
根据已加密证书信息以及签名信息生成证书文件,其中,证书文件为上述各方面涉及到的证书文件。
本申请另一方面提供一种SDK授权认证装置,包括:
获取模块,用于当获取到针对于目标应用的业务软件开发工具包SDK启动请求时,根据业务SDK启动请求获取证书文件;
解析模块,用于对证书文件进行解析处理,得到证书信息,其中,证书信息包括业务身份信息以及证书有效期,业务身份信息用于确定业务SDK的调用者身份,证书有效期用于确定证书文件的起始时间以及终止时间;
获取模块,还用于获取当前时间以及待验证业务身份信息,其中,当前时间为获取业务SDK启动请求所对应的时间,待验证业务身份信息为根据目标应用确定的;
确定模块,用于根据当前时间与证书有效期之间的匹配关系,以及待验证业务身份信息与业务身份信息之间的匹配关系,确定证书文件所对应的验证结果;
启动模块,用于若验证结果用于指示证书文件已验证成功,则针对于目标应用启动业务SDK的调用功能。
在一种可能的设计中,在本申请实施例的另一方面的一种实现方式中,
确定模块,具体用于若当前时间未超过证书有效期,且待验证业务身份信息与业务身份信息匹配一致,则确定证书文件所对应的验证结果为第一验证结果,其中,第一验证结果表示证书文件已验证成功;
若当前时间超过证书有效期,或,待验证业务身份信息与业务身份信息不匹配,则确定证书文件所对应的验证结果为第二验证结果,其中,第二验证结果表示证书文件已验证失败。
在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,证书信息还包括业务SDK标识;
获取模块,具体用于获取当前时间、待验证业务身份信息以及待验证业务SDK标识,其中,待验证业务SDK标识与业务SDK具有对应关系;
根据当前时间与证书有效期之间的匹配关系,以及待验证业务身份信息与业务身份信息之间的匹配关系,确定证书文件所对应的验证结果,包括:
根据当前时间与证书有效期之间的匹配关系,待验证业务身份信息与业务身份信息之间的匹配关系,以及待验证业务SDK标识与业务SDK标识,确定证书文件所对应的验证结果。
在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,
确定模块,具体用于若当前时间未超过证书有效期,待验证业务身份信息与业务身份信息匹配一致,且待验证业务SDK标识与业务SDK标识匹配一致,则确定证书文件所对应的验证结果为第一验证结果,其中,第一验证结果表示证书文件已验证成功;
若当前时间超过证书有效期,或,待验证业务身份信息与业务身份信息不匹配,或,待验证业务SDK标识与业务SDK标识不匹配,则确定证书文件所对应的验证结果为第二验证结果,其中,第二验证结果表示证书文件已验证失败。
在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,
获取模块,还用于解析模块对证书文件进行解析处理,得到证书信息之前,获取目标密钥信息;
获取目标公钥信息;
解析模块,具体用于对证书文件进行解析处理,得到已加密证书信息以及签名信息;
采用目标公钥信息对已加密证书信息进行签名处理,得到待验证签名信息;
若待验证签名信息与签名信息匹配一致,则采用目标密钥信息对已加密证书信息进行解密处理,得到待解码证书信息;
对待解码证书信息进行解码处理,得到证书信息。
在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,
确定模块,还用于若待验证签名信息与签名信息不匹配,则确定证书文件所对应的验证结果为第二验证结果,其中,第二验证结果表示证书文件已验证失败;
解析模块,具体用于采用目标密钥信息对已加密证书信息进行解密处理;
若解密成功,则得到待解码证书信息;
若解密失败,则确定证书文件所对应的验证结果为第二验证结果。
在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,
获取模块,具体用于获取第一密钥信息以及已加密的密钥信息;
采用第一密钥信息对已加密的密钥信息进行解密处理,得到目标密钥信息;
获取模块,具体用于获取第二密钥信息以及已加密的公钥信息;
采用第二密钥信息对已加密的公钥信息进行解密处理,得到目标公钥信息。
在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,证书信息还包括证书文件类型,其中,证书文件类型为试用版类型或正式版类型;
获取模块,还用于若证书文件类型为试用版类型,则获取证书文件的首次使用时间;
确定模块,还用于根据当前时间以及首次使用时间,确定已使用时间;
确定模块,还用于若已使用时间小于试用版类型所对应的时间阈值,则执行根据当前时间与证书有效期之间的匹配关系,以及待验证业务身份信息与业务身份信息之间的匹配关系,确定证书文件所对应的验证结果的步骤;
确定模块,还用于若证书文件类型为正式版类型,则执行根据当前时间与证书有效期之间的匹配关系,以及待验证业务身份信息与业务身份信息之间的匹配关系,确定证书文件所对应的验证结果的步骤。
在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,SDK授权认证装置还包括初始化模块以及发送模块;
初始化模块,用于当获取到针对于目标应用的业务软件开发工具包SDK启动请求时,根据业务SDK启动请求获取证书文件之前,若获取到来自于目标应用的初始化请求,则根据初始化请求对证书SDK进行初始化处理,其中,证书SDK用于确定证书文件所对应的验证结果;
初始化模块,还用于当证书SDK已完成初始化时,对业务SDK进行初始化处理;
发送模块,用于当业务SDK已完成初始化时,向目标应用发送初始化结果,其中,初始化结果用于指示目标应用通过调用业务SDK的接口发送业务SDK启动请求。
在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,SDK授权认证装置还包括拒用模块;
获取模块,具体用于当接收到终端设备发送的针对于目标应用的业务SDK启动请求时,根据业务SDK启动请求获取证书文件;
启动模块,具体用于若验证结果用于指示证书文件已验证成功,则针对于目标应用启动业务SDK的调用功能,或,向终端设备发送验证结果,以使终端设备针对于目标应用启动业务SDK的调用功能;
拒用模块,还用于若验证结果用于指示证书文件已验证失败,则针对于目标应用拒绝调用业务SDK,或,向终端设备发送验证结果,以使终端设备针对于目标应用拒绝调用业务SDK。
在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,证书文件为根据已加密证书信息以及签名信息生成的,签名信息为采用目标公钥信息对已加密证书信息进行签名处理后得到的,已加密证书信息为采用目标密钥信息对待解码证书信息进行加密处理后得到的,待解码证书信息为对证书信息进行编码处理后得到的。
本申请另一方面提供一种证书生成装置,包括:
获取模块,用于获取已配置的证书信息;
编码模块,用于若证书信息满足合法配置条件,则对证书信息进行编码处理,得到待解码证书信息;
加密模块,用于采用目标密钥信息对待解码证书信息进行加密处理,得到已加密证书信息;
签名模块,用于采用目标公钥信息对已加密证书信息进行签名处理,得到签名信息;
生成模块,用于根据已加密证书信息以及签名信息生成证书文件,其中,证书文件为上述各方面涉及到的证书文件。
本申请另一方面提供一种计算机设备,包括:存储器、收发器、处理器以及总线***;
其中,存储器用于存储程序;
处理器用于执行存储器中的程序,处理器用于根据程序代码中的指令执行上述各方面中各种可选实现方式所提供的方法;
总线***用于连接存储器以及处理器,以使存储器以及处理器进行通信。
本申请的另一方面提供了一种计算机可读存储介质,计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面的方法。
本申请的另一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各方面中各种可选实现方式所提供的方法。
从以上技术方案可以看出,本申请实施例具有以下优点:
本申请实施例中,提供了一种SDK授权认证方法,当获取到针对于目标应用的业务软件开发工具包SDK启动请求时,根据业务SDK启动请求获取证书文件,然后对证书文件进行解析处理,得到证书信息,再获取当前时间以及待验证业务身份信息,基于当前时间与证书有效期之间的匹配关系,以及待验证业务身份信息与业务身份信息之间的匹配关系,确定证书文件所对应的验证结果,若验证结果用于指示证书文件已验证成功,则针对于目标应用启动业务SDK的调用功能。通过上述方式,能够在SDK使用方侧对业务SDK进行授权验证,即SDK使用方将解析得到的证书信息与从本地获取到的信息进行匹配,从而在SDK使用方处于非联网的情况下,仍然可以达到对业务SDK进行验证和授权的目的。
附图说明
图1为本申请实施例中授权认证***的一个架构示意图;
图2为本申请实施例中目标应用与SDK之间的一个关系示意图;
图3为本申请实施例中移动安全工作空间应用与SDK之间的一个关系示意图;
图4为本申请实施例中SDK授权认证方法的一个实施例示意图;
图5为本申请实施例中获取验证结果的一个流程示意图;
图6为本申请实施例中获取验证结果的另一个流程示意图;
图7为本申请实施例中对证书文件进行解析处理的一个流程示意图;
图8为本申请实施例中获取目标密钥信息的一个流程示意图;
图9为本申请实施例中获取目标公钥信息的一个流程示意图;
图10为本申请实施例中获取验证结果的一个整体流程示意图;
图11为本申请实施例中目标应用、业务SDK以及证书SDK之间的一个交互示意图;
图12为本申请实施例中证书生成方法的一个实施例示意图;
图13为本申请实施例中配置证书信息的一个界面示意图;
图14为本申请实施例中生成证书文件的整体流程示意图;
图15为本申请实施例中基于证书文件实现SDK调用的一个完整流程示意图;
图16为本申请实施例中SDK授权认证装置的一个实施例示意图;
图17为本申请实施例中证书生成装置的一个实施例示意图;
图18为本申请实施例中计算机设备的一个结构示意图。
具体实施方式
本申请实施例提供了SDK授权认证方法、相关装置、设备及存储介质,能够在SDK使用方侧对业务SDK进行授权验证,从而在SDK使用方处于非联网的情况下,仍然可以达到对业务SDK进行验证和授权的目的。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“对应于”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
在面向企业(to business,TOB)领域中,很多情况下,应用开发方需要对移动端应用进行二次开发后才能提供给用户使用。但是考虑到应用开发方提供的应用可能在非联网的状态下需要调用业务SDK,因此,有必要解决如何在非联网状态下完成对业务软件开发工具包(Software Development Kit,SDK)的使用许可。基于此,本申请提供了一种业务SDK的方法以及证书生成的方法,可实现在非联网状态下完成许可校验,例如,SDK授权给特定的目标应用,并在特定时间期限内使用,从而防止业务SDK能力外泄,导致业务SDK被未授权的应用使用。例如,例如,目标应用为短视频应用,在使用短视频应用的业务SDK时,需要先开通证书(license)。应用开发方需要将一些基础信息提供给SDK提供方,SDK提供方采用本申请提供的证书生成方法,将基础信息以及证书有效期等内容集成在证书文件中,然后售卖给应用开发方(即SDK使用方)。应用开发方采用本申请提供的SDK授权认证方法,能够在不联网的状态下,通过设备本地时间进行校验,同时内部通过一些防护措施防止回调设备时间等操作。
本申请提供的SDK授权认证方法以及证书生成方法可应用于如图1所示的授权认证***,请参阅图1,图1为本申请实施例中授权认证***的一个架构示意图,如果所示,SDK提供方可以根据SDK使用方的需求生成证书文件,然后SDK提供方向SDK使用方出售该证书文件,SDK使用方可以在非联网(离线)的状态下在终端设备本地验证证书文件,如果证书文件验证成功,则SDK使用方可以调用业务SDK功能。可选地,在验证证书文件时,也可以在联网的情况下进行,例如,终端设备通过网络将证书文件发送至服务器,由服务器验证证书文件,如果证书文件验证成功,则SDK使用方可以调用业务SDK功能。
本申请涉及的终端设备可以是智能手机、平板电脑、笔记本电脑、掌上电脑、个人电脑、智能电视以及智能手表等,但并不局限于此。本申请涉及的服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式***,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(content delivery network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。终端设备以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。服务器和终端设备的数量也不做限制。
业务SDK主要提供给第三方应用集成和使用,因此,业务SDK对外提供的接口是一致的,为了便于说明,请参阅图2,图2为本申请实施例中目标应用与SDK之间的一个关系示意图,如图所示,目标应用包括业务SDK对外的统一接口以及业务SDK,通过业务SDK的接口可以调用业务SDK,本申请在业务SDK中部署了license SDK,license SDK中内置一个证书文件的验证程序,可用于实现对证书文件的验证。
具体地,请参阅图3,图3为本申请实施例中移动安全工作空间应用与SDK之间的一个关系示意图,如图所示,以目标应用为移动安全工作空间为例,移动安全工作空间是一个基于安卓(Android)或苹果操作***(iPhone operating system,iOS)的应用,在移动安全工作空间中部署有移动威胁防御(mobile threat defend,MTD)SDK,在进行MTD业务SDK开发时,应用开发方仅需关注MTD SDK自身逻辑处理,SDK能力提供给MTD SDK 的调用者(即MTD SDK用户界面(User Interface,UI))使用时,或者在MTD SDK初始化时,通过licenseSDK判断是否允许目标应用使用。可以理解的是,移动安全工作空间还可以包括其他模块,例如,应用管理模块以及登录模块等,此外,MTD SDK还可以替换为其他任务业务的SDK,例如,Android沙箱SDK或者用户登录SDK等,此处不做限定。
结合上述介绍,下面将对本申请中的SDK授权认证方法进行介绍,请参阅图4,本申请实施例中SDK授权认证方法的一个实施例包括:
101、当获取到针对于目标应用的业务软件开发工具包SDK启动请求时,根据业务SDK启动请求获取证书文件;
本实施例中,SDK使用方可触发针对于目标应用的业务SDK启动请求,SDK授权认证装置可以基于该业务SDK启动请求获取证书文件,该证书文件可以是SDK使用方预先从SDK提供方处购买的。SDK是指为某个平台或软件建立应用时的开发工具的集合,本申请中的SDK主要包括两类,一类是具有业务功能的业务SDK,比如,微信登录SDK。另一类是licenseSDK,用于实现对证书文件的解析,以及为业务SDK提供统一接口。
需要说明的是,本申请提供的SDK授权认证装置可部署于终端设备,也可以部署于本地服务器或者云服务器等,在非联网的情况下,以部署于终端设备为例进行理解,然而这不应理解为本申请的限定。
102、对证书文件进行解析处理,得到证书信息,其中,证书信息包括业务身份信息以及证书有效期,业务身份信息用于确定业务SDK的调用者身份,证书有效期用于确定证书文件的起始时间以及终止时间;
本实施例中,SDK授权认证装置可通过license SDK对证书文件进行解析处理,从而得到证书信息,证书信息中至少包括了业务身份信息以及证书有效期。其中,业务身份信息包括为目标应用预先配置的安装包名称,例如,“com.tencent.qqpimsecure”,业务身份信息还包括为目标应用预先配置的签名信息,例如,“875ADC16547657D132BA718C”,利用该签名信息可以验证预配置信息的可信性,由此可见,基于业务身份信息可确定调用该业务SDK的应用身份。证书有效期包括证书文件的生效起始时间以及生效终止时间,例如,生效起始时间为“2020年1月1日”,生效终止时间为“2021年1月1日”。
可以理解的是,业务身份信息还可以包括为目标应用预先配置的应用版本号(例如,“V1.0.0”)以及为目标应用预先配置的客户名称(例如“腾讯科技有限公司”)等,此处不做穷举。
103、获取当前时间以及待验证业务身份信息,其中,当前时间为获取业务SDK启动请求所对应的时间,待验证业务身份信息为根据目标应用确定的;
本实施例中,SDK授权认证装置还需要获取当前时间以及待验证业务身份信息,具体地,当前时间即为设备的本地时间,例如,SDK授权认证装置在设备时间为“2020年6月10日”获取到SDK启动请求,则时间为“2020年6月10日”。在实际应用中,当前时间还可以表示为更具体的时间,例如“2020年6月10日15点30分08秒”。待验证业务身份信息包括目标应用的安装包名称。
可以理解的是,待验证业务身份信息还可以包括为目标应用的应用版本号以及为目标应用的客户名称等,此处不做穷举。
104、根据当前时间与证书有效期之间的匹配关系,以及待验证业务身份信息与业务身份信息之间的匹配关系,确定证书文件所对应的验证结果;
本实施例中,SDK授权认证装置在获取到当前时间之后,判断当前时间是否在证书有效期内,如果在证书有效期内,则匹配成功,还需要判断待验证业务身份信息与业务身份信息是否一致,如果一致,则匹配成功,两者都匹配成功的情况下,表示证书文件所包含的证书信息与目标应用所对应的信息一致,即验证成功。
105、若验证结果用于指示证书文件已验证成功,则针对于目标应用启动业务SDK的调用功能。
本实施例中,在目标应用的信息与证书文件内的证书信息匹配成功的情况下,即表示证书文件已验证成功,于是SDK授权认证装置可以针对该目标应用启动对应的业务SDK调用功能,至此完成对业务SDK的授权许可。
本申请实施例中,提供了一种SDK授权认证方法,当获取到针对于目标应用的业务软件开发工具包SDK启动请求时,根据业务SDK启动请求获取证书文件,然后对证书文件进行解析处理,得到证书信息,再获取当前时间以及待验证业务身份信息,基于当前时间与证书有效期之间的匹配关系,以及待验证业务身份信息与业务身份信息之间的匹配关系,确定证书文件所对应的验证结果,若验证结果用于指示证书文件已验证成功,则针对于目标应用启动业务SDK的调用功能。通过上述方式,能够在SDK使用方侧对业务SDK进行授权验证,即SDK使用方将解析得到的证书信息与从本地获取到的信息进行匹配,从而在SDK使用方处于非联网的情况下,仍然可以达到对业务SDK进行验证和授权的目的。
可选地,在上述图4对应的实施例的基础上,本申请实施例提供的另一个可选实施例中,根据当前时间与证书有效期之间的匹配关系,以及待验证业务身份信息与业务身份信息之间的匹配关系,确定证书文件所对应的验证结果,具体可以包括如下步骤:
若当前时间未超过证书有效期,且待验证业务身份信息与业务身份信息匹配一致,则确定证书文件所对应的验证结果为第一验证结果,其中,第一验证结果表示证书文件已验证成功;
若当前时间超过证书有效期,或,待验证业务身份信息与业务身份信息不匹配,则确定证书文件所对应的验证结果为第二验证结果,其中,第二验证结果表示证书文件已验证失败。
本实施例中,介绍了一种基于业务身份信息以及证书有效期进行验证的方式,即分别基于业务身份信息和证书有效期进行验证。为了便于理解,假设证书有效期为“2020年1月1日至2021年1月1日”,且假设业务身份信息包括为目标应用预先配置的安装包名称“com.tencent.qqpimsecure”,基于此,具体可以包括四种情况,下面将依次进行说明:
情况一,当前时间在证书有效期内,待验证业务身份信息与业务身份信息匹配;
如果当前时间为“2020年6月10日”,即可确定当前时间在证书有效期内,并未超过该证书有效期。如果目标应用实际的安装包名称为“com.tencent.qqpimsecure”,即表示待验证业务身份信息与业务身份信息匹配一致。此时,证书文件所对应的验证结果为第一验证结果,即表示证书文件已验证成功。
情况二,当前时间在证书有效期内,待验证业务身份信息与业务身份信息不匹配;
如果当前时间为“2020年6月10日”,即可确定当前时间在证书有效期内,并未超过该证书有效期。如果目标应用实际的安装包名称为“com.tencent.wechatpimsecure”,即表示待验证业务身份信息与业务身份信息不匹配。此时,证书文件所对应的验证结果为第二验证结果,即表示证书文件已验证失败。
情况三,当前时间不在证书有效期内,待验证业务身份信息与业务身份信息匹配;
如果当前时间为“2021年6月10日”,即可确定当前时间不在证书有效期内,已经超过该证书有效期。如果目标应用实际的安装包名称为“com.tencent.qqpimsecure”,即表示待验证业务身份信息与业务身份信息匹配一致。此时,证书文件所对应的验证结果为第二验证结果,即表示证书文件已验证失败。
情况四,当前时间不在证书有效期内,待验证业务身份信息与业务身份信息不匹配;
如果当前时间为“2021年6月10日”,即可确定当前时间不在证书有效期内,已经超过该证书有效期。如果目标应用实际的安装包名称为“com.tencent.wechatpimsecure”,即表示待验证业务身份信息与业务身份信息不匹配。此时,证书文件所对应的验证结果为第二验证结果,即表示证书文件已验证失败。
示例性地,业务身份信息还可以包括为目标应用预先配置的应用版本号,且待验证业务身份信息包括目标应用实际的应用版本号,如果目标应用预先配置的应用版本号与目标应用实际的应用版本号相同,即表示匹配成功,如果不相同,则表示匹配失败。示例性地,业务身份信息还可以包括为目标应用预先配置的客户名称,且待验证业务身份信息包括目标应用实际的客户名称,如果目标应用预先配置的客户名称与目标应用实际的客户名称相同,即表示匹配成功,如果不相同,则表示匹配失败。
可以理解的是,上述例子仅用于理解本申请,在实际应用中,业务身份信息还可以包含其他信息,此处不做限定。
为了便于理解,请参阅图5,图5为本申请实施例中获取验证结果的一个流程示意图,如图所示,具体地:
在步骤A1中,基于解析得到的证书信息获取业务身份信息以及证书有效期。
在步骤A2中,获取当前时间以及待验证业务身份信息。
在步骤A3中,判断待验证业务身份信息与业务身份信息是否匹配,如果待验证业务身份信息与业务身份信息匹配成功,则执行步骤A4,如果待验证业务身份信息与业务身份信息匹配失败,则执行步骤A6。
在步骤A4中,判断当前时间是否符合证书有效期,如果当前时间超过证书有效期,即表示不符合证书有效期,则执行步骤A6,如果当前时间未超过证书有效期,即表示符合证书有效期,则执行步骤A5。
可以理解的是,本申请对步骤A3和步骤A4之间的执行顺序不做限定。
在步骤A5中,确定证书文件所对应的验证结果为第一验证结果,即已验证成功。
在步骤A6中,确定证书文件所对应的验证结果为第二验证结果,即已验证失败,即不允许业务SDK继续使用,并返回对应错误代码。
其次,本申请实施例中,提供了一种基于业务身份信息以及证书有效期进行验证的方式,通过上述方式,同时利用业务身份信息以及证书有效期对业务SDK的授权进行验证,能够提升验证的可靠性,一方面,基于业务身份信息的验证可以明确目标应用的身份,防止出现其他应用调用该业务SDK的情况,另一方面,基于证书有效期的验证能够合理控制业务SDK的有效使用时间。
可选地,在上述图4对应的实施例的基础上,本申请实施例提供的另一个可选实施例中,证书信息还包括业务SDK标识;
获取当前时间以及待验证业务身份信息,具体可以包括如下步骤:
获取当前时间、待验证业务身份信息以及待验证业务SDK标识,其中,待验证业务SDK标识与业务SDK具有对应关系;
根据当前时间与证书有效期之间的匹配关系,以及待验证业务身份信息与业务身份信息之间的匹配关系,确定证书文件所对应的验证结果,具体可以包括如下步骤:
根据当前时间与证书有效期之间的匹配关系,待验证业务身份信息与业务身份信息之间的匹配关系,以及待验证业务SDK标识与业务SDK标识,确定证书文件所对应的验证结果。
本实施例中,介绍了一种引入业务SDK标识作为验证依据的方式,对证书文件解析之后得到的证书信息中还可以包括业务SDK标识,业务SDK标识是为目标应用的业务SDK预先配置的标识,例如,目标应用的业务SDK为MTD SDK,MTD SDK的业务SDK标识为“1”,又例如,目标应用的业务SDK为短视频SDK,短视频SDK的业务SDK标识为“2”。可以理解的是,证书信息中的业务SDK标识是预先配置的。
具体地,SDK授权认证装置还需要获取待验证业务SDK标识,其中,待验证业务SDK标识为待调用业务的业务SDK标识,例如,业务SDK为MTD SDK,获取到MTD SDK的待验证业务SDK标识为“1”,如果证书信息中的业务SDK标识为“2”,则表示待验证业务SDK标识与业务SDK标识不匹配,因此,证书文件的验证结果为验证失败。又例如,例如,业务SDK为短视频SDK,获取到短视频SDK的待验证业务SDK标识为“2”,如果证书信息中的业务SDK标识为“2”,则表示待验证业务SDK标识与业务SDK标识匹配。
其次,本申请实施例中,提供了一种引入业务SDK标识作为验证依据的方式,通过上述方式,将业务SDK标识作为验证指标之一,能够确保每个证书文件被指定的业务SDK访问,防止出现多个业务SDK之间乱用证书文件,从而提升证书文件使用的可行性。
可选地,在上述图4对应的实施例的基础上,本申请实施例提供的另一个可选实施例中,根据当前时间与证书有效期之间的匹配关系,待验证业务身份信息与业务身份信息之间的匹配关系,以及待验证业务SDK标识与业务SDK标识,确定证书文件所对应的验证结果,具体可以包括如下步骤:
若当前时间未超过证书有效期,待验证业务身份信息与业务身份信息匹配一致,且待验证业务SDK标识与业务SDK标识匹配一致,则确定证书文件所对应的验证结果为第一验证结果,其中,第一验证结果表示证书文件已验证成功;
若当前时间超过证书有效期,或,待验证业务身份信息与业务身份信息不匹配,或,待验证业务SDK标识与业务SDK标识不匹配,则确定证书文件所对应的验证结果为第二验证结果,其中,第二验证结果表示证书文件已验证失败。
本实施例中,介绍了一种基于业务身份信息、证书有效期以及业务SDK标识进行验证的方式,即分别基于业务身份信息、证书有效期以及业务SDK标识进行验证。为了便于理解,假设证书有效期为“2020年1月1日至2021年1月1日”,假设业务身份信息包括为目标应用预先配置的安装包名称“com.tencent.qqpimsecure”,假设业务SDK标识为“1”,基于此,具体可以包括八种情况,下面将依次进行说明:
情况一,当前时间在证书有效期内,待验证业务身份信息与业务身份信息匹配,待验证业务SDK标识与业务SDK标识匹配一致;
如果当前时间为“2020年6月10日”,即可确定当前时间在证书有效期内,并未超过该证书有效期。如果目标应用实际的安装包名称为“com.tencent.qqpimsecure”,即表示待验证业务身份信息与业务身份信息匹配一致。如果待验证业务SDK标识为“1”,即表示待验证业务SDK标识与业务SDK标识匹配一致。此时,证书文件所对应的验证结果为第一验证结果,即表示证书文件已验证成功。
情况二,当前时间在证书有效期内,待验证业务身份信息与业务身份信息匹配,待验证业务SDK标识与业务SDK标识不匹配;
如果当前时间为“2020年6月10日”,即可确定当前时间在证书有效期内,并未超过该证书有效期。如果目标应用实际的安装包名称为“com.tencent.qqpimsecure”,即表示待验证业务身份信息与业务身份信息匹配一致。如果待验证业务SDK标识为“0”,即表示待验证业务SDK标识与业务SDK标识不匹配。此时,证书文件所对应的验证结果为第二验证结果,即表示证书文件已验证失败。
情况三,当前时间在证书有效期内,待验证业务身份信息与业务身份信息不匹配,待验证业务SDK标识与业务SDK标识匹配;
如果当前时间为“2020年6月10日”,即可确定当前时间在证书有效期内,并未超过该证书有效期。如果目标应用实际的安装包名称为“com.tencent.wechatpimsecure”,即表示待验证业务身份信息与业务身份信息不匹配。如果待验证业务SDK标识为“1”,即表示待验证业务SDK标识与业务SDK标识匹配一致。此时,证书文件所对应的验证结果为第二验证结果,即表示证书文件已验证失败。
情况四,当前时间在证书有效期内,待验证业务身份信息与业务身份信息不匹配,待验证业务SDK标识与业务SDK标识不匹配;
如果当前时间为“2020年6月10日”,即可确定当前时间在证书有效期内,并未超过该证书有效期。如果目标应用实际的安装包名称为“com.tencent.wechatpimsecure”,即表示待验证业务身份信息与业务身份信息不匹配。如果待验证业务SDK标识为“0”,即表示待验证业务SDK标识与业务SDK标识不匹配。此时,证书文件所对应的验证结果为第二验证结果,即表示证书文件已验证失败。
情况五,当前时间不在证书有效期内,待验证业务身份信息与业务身份信息匹配,待验证业务SDK标识与业务SDK标识匹配一致;
如果当前时间为“2021年6月10日”,即可确定当前时间不在证书有效期内,已经超过该证书有效期。如果目标应用实际的安装包名称为“com.tencent.qqpimsecure”,即表示待验证业务身份信息与业务身份信息匹配一致。如果待验证业务SDK标识为“1”,即表示待验证业务SDK标识与业务SDK标识匹配一致。此时,证书文件所对应的验证结果为第二验证结果,即表示证书文件已验证失败。
情况六,当前时间不在证书有效期内,待验证业务身份信息与业务身份信息匹配,待验证业务SDK标识与业务SDK标识不匹配;
如果当前时间为“2021年6月10日”,即可确定当前时间不在证书有效期内,已经超过该证书有效期。如果目标应用实际的安装包名称为“com.tencent.qqpimsecure”,即表示待验证业务身份信息与业务身份信息匹配一致。如果待验证业务SDK标识为“0”,即表示待验证业务SDK标识与业务SDK标识不匹配。此时,证书文件所对应的验证结果为第二验证结果,即表示证书文件已验证失败。
情况七,当前时间不在证书有效期内,待验证业务身份信息与业务身份信息不匹配,待验证业务SDK标识与业务SDK标识匹配;
如果当前时间为“2021年6月10日”,即可确定当前时间不在证书有效期内,已经超过该证书有效期。如果目标应用实际的安装包名称为“com.tencent.wechatpimsecure”,即表示待验证业务身份信息与业务身份信息不匹配。如果待验证业务SDK标识为“1”,即表示待验证业务SDK标识与业务SDK标识匹配一致。此时,证书文件所对应的验证结果为第二验证结果,即表示证书文件已验证失败。
情况八,当前时间不在证书有效期内,待验证业务身份信息与业务身份信息不匹配,待验证业务SDK标识与业务SDK标识不匹配;
如果当前时间为“2021年6月10日”,即可确定当前时间不在证书有效期内,已经超过该证书有效期。如果目标应用实际的安装包名称为“com.tencent.wechatpimsecure”,即表示待验证业务身份信息与业务身份信息不匹配。如果待验证业务SDK标识为“0”,即表示待验证业务SDK标识与业务SDK标识不匹配。此时,证书文件所对应的验证结果为第二验证结果,即表示证书文件已验证失败。
示例性地,业务身份信息还可以包括为目标应用预先配置的应用版本号以及客户名称,且待验证业务身份信息包括目标应用实际的应用版本号以及目标应用实际的客户名称,具体比对方式如前述实施例,此处不做赘述。可以理解的是,上述例子仅用于理解本申请,在实际应用中,业务身份信息还可以包含其他信息,此处不做限定。
为了便于理解,请参阅图6,图6为本申请实施例中获取验证结果的另一个流程示意图,如图所示,具体地:
在步骤B1中,基于解析得到的证书信息获取业务身份信息、证书有效期以及业务SDK标识。
在步骤B2中,获取当前时间、待验证业务身份信息待验证业务SDK标识。
在步骤B3中,判断待验证业务身份信息与业务身份信息是否匹配,如果待验证业务身份信息与业务身份信息匹配成功,则执行步骤B4,如果待验证业务身份信息与业务身份信息匹配失败,则执行步骤B7。
在步骤B4中,判断当前时间是否符合证书有效期,如果当前时间超过证书有效期,即表示不符合证书有效期,则执行步骤B7,如果当前时间未超过证书有效期,即表示符合证书有效期,则执行步骤B5。
在步骤B5中,判断待验证业务SDK标识与业务SDK标识是否匹配,如果待验证业务SDK标识与业务SDK标识匹配一致,则执行步骤B6,如果待验证业务SDK标识与业务SDK标识不匹配,则执行步骤B7。
可以理解的是,本申请对步骤B3、步骤B4和步骤B5之间的执行顺序不做限定。
在步骤B6中,确定证书文件所对应的验证结果为第一验证结果,即已验证成功。
在步骤B7中,确定证书文件所对应的验证结果为第二验证结果,即已验证失败,即不允许业务SDK继续使用,并返回对应错误代码。
再次,本申请实施例中,提供了一种基于业务身份信息、证书有效期以及业务SDK标识进行验证的方式,通过上述方式,同时利用业务身份信息、证书有效期以及业务SDK标识对业务SDK的授权进行验证,能够更好地提升验证的可靠性,一方面,基于业务身份信息的验证可以明确目标应用的身份,防止出现其他应用调用该业务SDK的情况,另一方面,基于证书有效期的验证能够合理控制业务SDK的有效使用时间。还有一方面,基于业务SDK标识的验证能够防止多个业务SDK之间出现调用混乱的情况,确保每个证书文件仅被指定的SDK访问。
可选地,在上述图4对应的实施例的基础上,本申请实施例提供的另一个可选实施例中,对证书文件进行解析处理,得到证书信息之前,还可以包括如下步骤:
获取目标密钥信息;
获取目标公钥信息;
对证书文件进行解析处理,得到证书信息,具体可以包括如下步骤:
对证书文件进行解析处理,得到已加密证书信息以及签名信息;
采用目标公钥信息对已加密证书信息进行签名处理,得到待验证签名信息;
若待验证签名信息与签名信息匹配一致,则采用目标密钥信息对已加密证书信息进行解密处理,得到待解码证书信息;
对待解码证书信息进行解码处理,得到证书信息。
本实施例中,介绍了一种利用公钥信息和密钥信息对证书文件进行解析的方式,解析主要包括两个处理部分,第一部分为签名处理,第二部分为解密部分,下面将进行介绍。
具体地,首先获取目标密钥信息以及目标公钥信息,然后对证书文件进行解析处理,得到已加密证书信息以及签名信息,其中,已加密证书信息可称为“ABJData”,签名信息可称为“sign”。采用目标公钥信息对“ABJData”进行签名处理,得到待验证签名信息,示例性地,目标公钥信息可表示为 “RKeyPublic”,“RKeyPublic”为RSA的公钥,目标公钥信息用于校验待验证签名信息,防止信息篡改。由于对证书文件进行解析之后已得到签名信息,因此,将待验证签名信息与签名信息进行比对,如果比对一致,即表示待验证签名信息与签名信息匹配一致,于是采用目标密钥信息对已加密证书信息进行解密处理,得到待解码证书信息。其中,目标密钥信息可表示为“AKey”,“AKey”为高级加密标准(Advanced EncryptionStandard,AES)的密钥,不对业务SDK暴露。
可以理解的是,加密算法包含但不仅限于128位AES(AES-128)对称加密算法、数据加密标准(Data Encryption Standard,DES)对称加密算法、安全散列算法(Secure HashAlgorithm,SHA)、RSA非对称加密算法和国际数据加密算法(International DataEncryption Algorithm,IDEA)等。
其次,本申请实施例中,提供了一种利用公钥信息和密钥信息对证书文件进行解析的方式,通过上述方式,采用目标公钥信息对已加密证书信息进行签名处理,并将签名得到的待验证签名信息与签名信息进行匹配,基于匹配结果能够确定证书信息是否被篡改。在确定证书信息没有被篡改的情况下,再采用目标密钥信息对已加密证书信息进行解密处理,最终得到明文的证书信息,从而保证了证书信息的安全性。
可选地,在上述图4对应的实施例的基础上,本申请实施例提供的另一个可选实施例中,还可以包括如下步骤:
若待验证签名信息与签名信息不匹配,则确定证书文件所对应的验证结果为第二验证结果,其中,第二验证结果表示证书文件已验证失败;
采用目标密钥信息对已加密证书信息进行解密处理,得到待解码证书信息,具体可以包括如下步骤:
采用目标密钥信息对已加密证书信息进行解密处理;
若解密成功,则得到待解码证书信息;
若解密失败,则确定证书文件所对应的验证结果为第二验证结果。
本实施例中,介绍了一种对证书文件进行解析的方式,为了便于介绍,本申请以目标公钥信息为“RKeyPublic”,且目标密钥信息为“AKey”为例进行说明,其中,将预先配置的安装包名称采用基于64个可打印字符来表示二进制数据(base64)生成字符串,取出该字符串中的前24位可作为“AKey”。基于此,在对证书文件进行解析处理时,主要包括采用SHAWithRSA对签名信息进行校验,采用AES解密以及采用base64进行解码。
为了便于理解,请参阅图7,图7为本申请实施例中对证书文件进行解析处理的一个流程示意图,如图所示,具体地:
在步骤C1中,对证书文件进行解析处理,得到已加密证书信息以及签名信息。
在步骤C2中,采用目标公钥信息对已加密证书信息进行签名处理,得到待验证签名信息,然后判断待验证签名信息是否验证通过,如果待验证签名信息与签名信息匹配一致,即验证通过,于是执行步骤C3,反之,如果待验证签名信息与签名信息不匹配,即验证不通过,则执行步骤C6,
在步骤C3中,采用目标密钥信息对已加密证书信息进行解密处理,如果能够解密成功,即得到待解码证书信息,则执行步骤C4,反之,如果能够解密失败,则执行步骤C6,
在步骤C4中,采用base64对待解码证书信息进行解码,如果解码成功,即可得到键值对(key-value)形式的证书信息,则执行步骤C5,反之,如果解码失败,即表示未能得到证书信息,于是执行步骤C6;
在步骤C5中,继续对证书信息进行验证。
在步骤C6中,确定证书文件所对应的验证结果为第二验证结果,即已验证失败,即不允许业务SDK继续使用,并返回对应错误代码。
再次,本申请实施例中,提供了一种对证书文件进行解析的方式,通过上述方式,能够针对不同的解析情况确定证书文件所对应的验证结果,一方面能够检测证书信息是否被篡改,另一方面能够提升证书信息的安全性。
可选地,在上述图4对应的实施例的基础上,本申请实施例提供的另一个可选实施例中,获取目标密钥信息,具体可以包括如下步骤:
获取第一密钥信息以及已加密的密钥信息;
采用第一密钥信息对已加密的密钥信息进行解密处理,得到目标密钥信息;
获取目标公钥信息,具体可以包括如下步骤:
获取第二密钥信息以及已加密的公钥信息;
采用第二密钥信息对已加密的公钥信息进行解密处理,得到目标公钥信息。
本实施例中,介绍了一种获取目标密钥信息和目标公钥信息的方式,为了便于介绍,本申请以目标公钥信息为“RKeyPublic”,且目标密钥信息为“AKey”为例进行说明。为了能够提升目标密钥信息和目标公钥信息的安全性,还可以采用密钥对这两者进行进一步的加密。下面将结合图8和图9进行介绍。
为了便于理解,请参阅图8,图8为本申请实施例中获取目标密钥信息的一个流程示意图,如图所示,具体地:
在步骤D1中,获取第一密钥信息以及支持已加密的密钥信息。
在步骤D2中,采用第一密钥信息对已加密的密钥信息进行解密处理,然后判断是否能够解析已加密的密钥信息,如果解析成功,则执行步骤D3,反之如果解析失败,则执行步骤D4。
在步骤D3中,解析得到目标密钥信息。
在步骤D4中,确定证书文件所对应的验证结果为第二验证结果,即已验证失败,即不允许业务SDK继续使用,并返回对应错误代码。
为了便于理解,请参阅图9,图9为本申请实施例中获取目标公钥信息的一个流程示意图,如图所示,具体地:
在步骤E1中,获取第二密钥信息以及已加密的公钥信息。
在步骤E2中,采用第二密钥信息对已加密的公钥信息进行解密处理,然后判断是否能够解析已加密的公钥信息,如果解析成功,则执行步骤E3,反之如果解析失败,则执行步骤E4。
在步骤E3中,解析得到目标公钥信息。
在步骤E4中,确定证书文件所对应的验证结果为第二验证结果,即已验证失败,即不允许业务SDK继续使用,并返回对应错误代码。
需要说明的是,目标公钥信息(如,“RKeyPublic”)以及目标密钥信息(如,“AKey”)需要在license SDK中使用,其中,目标公钥信息所对应的目标私钥信息(如,“RKeyPrivate”)由SDK提供方保护,以防泄露。目标密钥信息被加密后即得到已加密的密钥信息,该已加密的密钥信息保存在license SDK中。目标公钥信息被加密后即得到已加密的公钥信息,该已加密的公钥信息给业务SDK在初始化license SDK时作为参数传入。在license SDK中解析证书文件,以获取证书信息,并提供给业务SDK访问的接口,下面将列举license SDK初始化及验证接口,可以理解的是,下面列举的内容仅为一个示意,不应理解为对本申请的限定。
LicenseManager
+getInstance()
+init(Context context,String rKey)
+canContinue(Context context)
+check(Runnerable runnerable)
其中,LicenseManager是license SDK对外提供访问的唯一入口,下面对各个方法简要说明:
getInstance():获取LicenseManager对象的单例,静态方法。
init():完成license SDK的初始化。
canContinue():业务SDK同步调用进行证书信息以及调用者的检测处理逻辑,并将检测结果返回给业务逻辑调用处理点,决定是否可以继续后续业务流程,返回类型为boolean类型。
check():业务SDK同步调用进行证书信息以及调用者的检测处理逻辑,通过Runnable回调license SDK处理结果。在证书文件的检测结果为已验证成功的情况下,才会执行runnable,如果证书文件的检测结果为验证失败,则终止调用。业务调用者直接在runnable的run方法中执行校验通过后的流程与逻辑,该方法即为同步调用方法。
在license SDK 中的证书应用程序接口(Application Programming Interface,API)为public boolean canContinue(Context context),业务SDK通过调用该接口判断是否满足条件,是否允许业务SDK运行。
再次,本申请实施例中,提供了一种获取目标密钥信息和目标公钥信息的方式,通过上述方式,需要对目标密钥信息和目标公钥信息进行加密处理,即一开始获取的是已加密的密钥信息和已加密的公钥信息,不对业务SDK直接暴露目标密钥信息和目标公钥信息,从而进一步提升信息的安全性。
结合上述实施例,下面将结合图10,对本申请提供的SDK调用流程进行介绍,请参阅图10,图10为本申请实施例中获取验证结果的一个整体流程示意图,如图所示,具体地:
在步骤F1中,获取第一密钥信息及已加密的密钥信息。
在步骤F2中,获取第二密钥信息及已加密的公钥信息。
在步骤F3中,判断是否能够解析已加密的密钥信息,如果能够解析得到目标密钥信息,则执行步骤F4,如果未解析到目标密钥信息,则执行步骤F14。
在步骤F4中,判断是否能够解析已加密的公钥信息,如果能够解析得到目标公钥信息,则执行步骤F5,如果未解析到目标公钥信息,则执行步骤F14。
在步骤F5中,判断证书文件是否读取成功,如果读取成功,则执行步骤F6,如果读取失败,则执行步骤F14。
在步骤F6中,对证书文件进行解析处理,得到已加密证书信息以及签名信息。
在步骤F7中,判断待验证签名信息是否验证通过,如果待验证签名信息验证通过,则执行步骤F8,如果待验证签名信息验证失败,则执行步骤F14。
在步骤F8中,判断是否解密得到待解码证书信息,如果解密得到待解码证书信息,则执行步骤F9,如果未解密得到待解码证书信息,则执行步骤F14。
在步骤F9中,判断是否解码得到证书信息,如果解码得到证书信息,则执行步骤F10,如果未解码得到证书信息,则执行步骤F14。
在步骤F10中,判断待验证业务身份信息与业务身份信息是否匹配,如果待验证业务身份信息与业务身份信息匹配成功,则执行步骤F11,如果待验证业务身份信息与业务身份信息匹配失败,则执行步骤F14。
在步骤F11中,判断当前时间是否符合证书有效期,如果当前时间符合证书有效期,则执行步骤F12,如果当前时间不符合证书有效期,则执行步骤F14。
在步骤F12中,判断待验证业务SDK标识与业务SDK标识是否匹配,如果待验证业务SDK标识与业务SDK标识匹配成功,则执行步骤F13,如果待验证业务SDK标识与业务SDK标识匹配失败,则执行步骤F14。
在步骤F13中,确定证书文件所对应的验证结果为第一验证结果,即已验证成功。
在步骤F14中,确定证书文件所对应的验证结果为第二验证结果,即已验证失败,即不允许业务SDK继续使用,并返回对应错误代码。
需要说明的是,上述流程中的步骤执行顺序可根据实际情况进行灵活调整,图10仅为一个示意,不应理解为对本申请的限定。
可选地,在上述图4对应的实施例的基础上,本申请实施例提供的另一个可选实施例中,证书信息还包括证书文件类型,其中,证书文件类型为试用版类型或正式版类型;
还可以包括如下步骤:
若证书文件类型为试用版类型,则获取证书文件的首次使用时间;
根据当前时间以及首次使用时间,确定已使用时间;
若已使用时间小于试用版类型所对应的时间阈值,则执行根据当前时间与证书有效期之间的匹配关系,以及待验证业务身份信息与业务身份信息之间的匹配关系,确定证书文件所对应的验证结果的步骤;
还可以包括如下步骤:
若证书文件类型为正式版类型,则执行根据当前时间与证书有效期之间的匹配关系,以及待验证业务身份信息与业务身份信息之间的匹配关系,确定证书文件所对应的验证结果的步骤。
本实施例中,介绍了一种引入证书文件类型作为验证依据的方式,对证书文件解析之后得到的证书信息中还可以包括证书文件类型,证书文件类型为试用版类型或正式版类型。其中,试用版类型为概念证明(Proof of Concept)类型,例如,试用版类型仅提供给SDK使用方固定的有效期限,例如,强制设定在30天内使用。正式版类型为释放(Release)类型。
具体地,如果证书文件类型为正式版类型,则以证书有效期所设定的时间为准,以此来判定证书是否失效。如果证书文件类型为试用版类型,则需要先获取证书文件的首次使用时间。假设试用版类型所对应的时间阈值为30天,首次使用时间为2020年1月1日,而当前时间为2020年1月15日,即已使用时间为15天,因此,已使用时间小于试用版类型所对应的时间阈值,即确定还在试用期限内。又假设试用版类型所对应的时间阈值为30天,首次使用时间为2020年1月1日,而当前时间为2020年2月15日,即已使用时间为46天,因此,已使用时间大于试用版类型所对应的时间阈值,即确定不在试用期限内,因此,可确定证书文件所对应的验证结果为第二验证结果,即已验证失败。
可以理解的是,基于业务需要,证书信息加密后以文件方式存储,文件名后缀以证书命名,例如,文件名为“l.license”,该文件放置在license SDK内,生成文件时一起打包,以Android平台为例,该文件具体可以是一个Android库项目的二进制归档文件(Androidarchive,aar),解析后得到的证书信息包括但不限于如表1所示的内容。
表1
字段名 | 含义 | 示例 |
licenseId | 自动生成的证书文件唯一标识 | 如,1001 |
customName | 客户名称 | 如,腾讯科技有限公司 |
customProductName | 客户接入目标应用的产品名称 | 如,腾讯手机管家 |
apkPackageName | 接入业务SDK的安装包名称 | 如,com.tencent.qqpimsecure |
apkSign | 接入业务SDK的签名信息 | 如,875E63D03C5BE7B7 |
sdkId | 使用license SDK的业务SDK标识 | 如,1 |
version | 证书文件及SDK版本,与SDK版本配套 | 如1.0.0 |
type | 证书文件类型 | 如,POC或Release |
startTime | 证书文件开始启用的生效起始时间 | 如,2020年1月1日 |
expirationTime | 证书文件截止启用的生效终止时间 | 如,2021年1月1日 |
基于表1所示的证书信息可知,可基于customName及customProductName追溯一个证书文件给哪个客户的什么产品使用,即明确证书文件的生成对象。apkPackageName和apkSign主要是为了明确业务SDK的调用者身份,例如,在Android平台,使用apkPackageName和apkSign进行调用者的校验。sdkId用于明确证书文件是给那个业务SDK使用,防止多个业务SDK之间乱用证书文件,确保每个证书文件仅能被指定的SDK访问。startTime和expirationTim是证书文件生效的起始和终止时间。
其次,本申请实施例中,提供了一种引入证书文件类型作为验证依据的方式,通过上述方式,还能够有效地控制业务SDK的使用权限,在实际情况下,SDK提供方可以设定试用版以及正式版,以供SDK使用方根据需求进行付费和选择,从而增加业务SDK的多样性和使用灵活性。
可选地,在上述图4对应的实施例的基础上,本申请实施例提供的另一个可选实施例中,当获取到针对于目标应用的业务软件开发工具包SDK启动请求时,根据业务SDK启动请求获取证书文件之前,还可以包括如下步骤:
若获取到来自于目标应用的初始化请求,则根据初始化请求对证书SDK进行初始化处理,其中,证书SDK用于确定证书文件所对应的验证结果;
当证书SDK已完成初始化时,对业务SDK进行初始化处理;
当业务SDK已完成初始化时,向目标应用发送初始化结果,其中,初始化结果用于指示目标应用通过调用业务SDK的接口发送业务SDK启动请求。
本实施例中,介绍了一种基于业务SDK接口以及license SDK接口实现功能调用的方式。其中,业务SDK使用的license SDK需要进行初始化,以Android平台为例,则licenseSDK是一个独立aar,将aar拷贝到业务SDK的静态库(library,lib)目录,配置引用即可。业务SDK调用license SDK通过license SDK提供的管理类按照要求初始化license SDK,在需要进行逻辑校验的位置,通过管理类调用License 接口判断是否满足条件即可。
其中,目标应用、业务SDK以及license SDK之间的调用时序关系如图11所示,请参阅图11,图11为本申请实施例中目标应用、业务SDK以及证书SDK之间的一个交互示意图,如图所示,具体地:
在步骤G1中,目标应用向业务SDK发送初始化请求。
在步骤G2中,业务SDK收到来自于目标应用的初始化请求之后,向license SDK发送初始化请求。
在步骤G3中,业务SDK调用license SDK的接口,可以获取license SDK反馈的初始化反馈,即由license SDK判断是否允许业务SDK初始化。
在步骤G4中,如果license SDK返回的结果为允许业务SDK初始化,那么在licenseSDK已完成初始化的情况下,业务SDK进行初始化处理。
在步骤G5中,在业务SDK初始化完成后,业务SDK向目标应用反馈初始化结果。
在步骤G6中,如果该初始化结果表示业务SDK也初始化完成,那么目标应用即可调用业务SDK的接口,通过调用业务SDK的接口发送业务SDK启动请求。
在步骤G7中,业务SDK调用license SDK的接口,由license SDK判断证书文件中的证书信息是否符合要求。
在步骤G8中,license SDK向业务SDK返回证书文件所对应的验证结果。
在步骤G9中,业务SDK再向目标应用返回证书文件所对应的验证结果。
其次,本申请实施例中,提供了一种基于业务SDK接口以及license SDK接口实现功能调用的方式,通过上述方式,调用license SDK接口来实现对证书信息的验证,从而为方案的实现提供了具体可行的实施方式,由此提升方案的可行性和可操作性。
可选地,在上述图4对应的实施例的基础上,本申请实施例提供的另一个可选实施例中,当获取到针对于目标应用的业务软件开发工具包SDK启动请求时,根据业务SDK启动请求获取证书文件,具体可以包括如下步骤:
当接收到终端设备发送的针对于目标应用的业务SDK启动请求时,根据业务SDK启动请求获取证书文件;
若验证结果用于指示证书文件已验证成功,则针对于目标应用启动业务SDK的调用功能,具体可以包括如下步骤:
若验证结果用于指示证书文件已验证成功,则针对于目标应用启动业务SDK的调用功能,或,向终端设备发送验证结果,以使终端设备针对于目标应用启动业务SDK的调用功能;
还可以包括如下步骤:
若验证结果用于指示证书文件已验证失败,则针对于目标应用拒绝调用业务SDK,或,向终端设备发送验证结果,以使终端设备针对于目标应用拒绝调用业务SDK。
本实施例中,介绍了一种基于云端实现对业务SDK调用的方式,即当终端设备获取到针对于目标应用的业务SDK启动请求时,终端设备可向云服务器转发该业务SDK启动请求,以使云服务器根据业务SDK启动请求获取证书文件,并对证书文件进行解析,再对解析后得到的证书信息进行验证。
具体地,当业务SDK部署于终端设备侧时,如果验证结果为验证成功,那么云服务器将验证结果反馈给终端设备,由终端设备为目标应用提供业务SDK。当业务SDK部署于云服务器侧时,如果验证结果为验证成功,那么云服务器为目标应用提供业务SDK。
可以理解的是,上述方式需要使用云技术(cloud technology)来实现,云技术是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。云技术基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络***的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台***进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的***后盾支撑,只能通过云计算来实现。
更具体地,云服务器可以部署于私有云(private cloud)、公有云(public cloud)或者混合云(hybrid cloud)。其中,private cloud是将云基础设施与软硬件资源创建在防火墙内,以供机构或企业内各部门共享数据中心内的资源。 创建private cloud,除了硬件资源外,一般还有云设备基础设施即服务(Infrastructure as a Service,IaaS)软件。private cloud计算同样包含云硬件、云平台、云服务三个层次。不同的是,云硬件是用户自己的个人电脑或服务器,而非云计算厂商的数据中心。云计算厂商构建数据中心的目的是为千百万用户提供公共云服务,因此需要拥有几十上百万台服务器。private cloud计算,对个人来说只服务于亲朋好友,对企业来说只服务于本企业员工以及本企业的客户和供应商,因此个人或企业自己的个人电脑或服务器已经足够用来提供云服务。
public cloud通常指第三方提供商为用户提供的能够使用的云,public cloud一般可通过 因特网(Internet)使用,可能是免费或成本低廉的,public cloud的核心属性是共享资源服务。这种云有许多实例,可在当今整个开放的公有网络中提供服务。
hybrid cloud融合了public cloud和private cloud,是近年来云计算的主要模式和发展方向。private cloud主要是面向企业用户,出于安全考虑,企业更愿意将数据存放在private cloud中,但是同时又希望可以获得public cloud的计算资源,在这种情况下hybrid cloud被越来越多的采用,它将public cloud和private cloud进行混合和匹配,以获得最佳的效果,这种个性化的解决方案,达到了既省钱又安全的目的。
进一步地,本申请实施例中,提供了一种基于云端实现对业务SDK调用的方式,通过上述方式,能够将业务SDK的初始化、调用者身份验证以及有效期验证等功能的实现由本地迁移云端,业务SDK通过网络请求云端实现与license SDK相同的功能,即由本地的license SDK能力调整为网络请求云端服务决策,从而提升方案的灵活性和多样性。
结合上述介绍,下面将对本申请中的证书生成方法进行介绍,请参阅图12,本申请实施例中证书生成方法的一个实施例包括:
201、获取已配置的证书信息;
本实施例中,证书生成装置可根据SDK使用方提供的基础信息配置证书信息,即得到已配置的证书信息。为了便于说明,请参阅图13,图13为本申请实施例中配置证书信息的一个界面示意图,如图所示,SDK使用方可与SDK提供方沟通与业务SDK相关的基础信息,SDK提供方可以将这些基础信息输入至证书文件生成***,例如,输入客户名称为“腾讯科技有限公司”,输入产品名称为“腾讯手机管家”,此处不一一列举,填写完基本信息之后可点击“一键生成”的按键,由***自动生成证书文件。
可以理解的是,生成证书文件的方式还可以是SDK使用方在线下提供基础信息,由SDK提供方根据基础信息改写相关代码,以生成证书信息。
需要说明的是,本申请提供的证书生成装置可部署于服务器,也可以部署于终端设备,本申请以部署于服务器为例进行理解,然而这不应理解为本申请的限定。
202、若证书信息满足合法配置条件,则对证书信息进行编码处理,得到待解码证书信息;
本实施例中,在生成证书信息之后,需要判断该证书信息是否满足合法配置条件,如果证书信息中的字段为空或者为非法字符,则该证书信息不满足合法配置条件。如果证书信息中的证书有效期存在逻辑漏洞,比如已过期,则该证书信息不满足合法配置条件。如果证书信息中的字段不为空且没有非法字符,并且证书有效期准确,则可以认为该证书信息满足合法配置条件。
在确定证书信息满足合法配置条件的情况下,对证书信息进行编码处理,得到待解码证书信息。
203、采用目标密钥信息对待解码证书信息进行加密处理,得到已加密证书信息;
本实施例中,证书生成装置采用目标密钥信息对待解码证书信息进行加密处理,得到已加密证书信息。假设采用AES算法加密,则目标密钥信息可以表示为“AKey”,得到的已加密证书信息表示“ABJData”。
204、采用目标公钥信息对已加密证书信息进行签名处理,得到签名信息;
本实施例中,证书生成装置采用目标公钥信息对已加密证书信息进行签名处理,得到签名信息。假设采用非对称加密RSA生成签名信息,则目标公钥信息可以表示为“RKeyPublic”,得到的签名信息可以表示为“sign”。
205、根据已加密证书信息以及签名信息生成证书文件,其中,证书文件为上述实施例涉及的证书文件。
本实施例中,证书生成装置根据已加密证书信息以及签名信息生成证书文件。
以Android平台为例,将业务SDK和license SDK一起合并打包后生成aar,同时,在业务SDK对外提供前保护内部逻辑。license SDK在每次申请的情况下都会生成独立的密钥信息,不同SDK使用方(例如,“腾讯管家”与“腾讯企业微信”为不同SDK使用方)之间密钥信息各不相同。目前采用一次一密的方式,即每个SDK使用方每次申请都使用不同的密钥。从而保护业务SDK及license SDK的内容。
业务SDK通过证书文件控制SDK使用者的合理使用,因此,证书信息需要进行加密存储,否则很容易被篡改。结合上述实施例,下面将结合图14,对本申请提供的证书文件生成流程进行介绍,请参阅图14,图14为本申请实施例中生成证书文件的整体流程示意图,如图所示,具体地:
在步骤H1中,获取已配置的证书信息。
在步骤H2中,检测证书信息满足合法配置条件,如果满足合法配置条件,则执行步骤H4,反之,如果不满足合法配置条件,则执行步骤H3。
在步骤H3中,在不满足合法配置条件的情况下,即生成空的证书文件。
在步骤H4中,证书信息以(key-value)形式生成 JS 对象简谱(JavaScriptObject Notation,JSON)串(Jdata)。
在步骤H5中,对字符串Jdata进行base64编码,得到编码后的待解码证书信息(BJData),即BJData= base64.Encode(Jdata)。
在步骤H6中,随机生成目标密钥信息,例如,随机生成一个192位的AES密钥信息(Akey)。
在步骤H7中,基于目标密钥信息(Akey),将编码后的待解码证书信息使用AES 192加密,得到已加密证书信息(ABJData),即ABJData=AES. Encode(BJData)。
在步骤H8中,随机生成目标公钥信息和目标私钥信息,例如,随机生成RSA的2048位密钥,即得到目标公钥信息(RKeyPublic)以及目标私钥信息(RKeyPrivate)。
在步骤H9中,基于目标公钥信息(RKeyPublic),将已加密证书信息(ABJData)使用SHAWithRSA生成签名信息(sign)其中,SHA使用的是SHA256算法,即sign=SHAWithRSA.sign(ABJData)。
需要说明的是,在实际应用中,目标公钥信息(RKeyPublic)以和目标密钥信息(Akey)使用对称加密后分开存储,从而防止证书信息被明文暴露,防止被他人篡改。因为证书文件已明确使用的目标应用以及有效期等内容。目标私钥信息(RKeyPrivate)。仅存储在SDK提供方的服务器中,通过流程规范和权限配置限制文件被访问。
在步骤H10中,根据已加密证书信息(ABJData)以及签名信息(sign)生成证书文件。
本申请实施例中,提供了一种证书生成方法,通过上述方式,SDK提供方能够依据SDK使用方的需求配置相应的证书信息,以此生成证书文件,再向SDK使用方提供该证书文件。由SDK使用方对业务SDK进行授权验证,即SDK使用方将解析得到的证书信息与从本地获取到的信息进行匹配,从而在SDK使用方处于非联网的情况下,仍然可以达到对业务SDK进行验证和授权的目的。
为了便于介绍,请参阅图15,图15为本申请实施例中基于证书文件实现SDK调用的一个完整流程示意图,整个流程分为两个部分,一个部分是由SDK提供方预先根据SDK十使用方的需求构建证书文件的过程,另一部分是在SDK使用方拿到证书文件之后,无需与SDK提供方交互即可对证书信息进行验证的过程,如图所示,具体地:
在步骤S1中,SDK提供方获取已配置的证书信息。
在步骤S2中,若证书信息满足合法配置条件,则SDK提供方对证书信息进行编码处理,得到待解码证书信息。
在步骤S3中,SDK提供方采用目标密钥信息对待解码证书信息进行加密处理,得到已加密证书信息。
在步骤S4中,SDK提供方采用目标公钥信息对已加密证书信息进行签名处理,得到签名信息。
在步骤S5中,SDK提供方根据已加密证书信息以及签名信息生成证书文件。
在步骤S6中,当获取到针对于目标应用的业务SDK启动请求时,SDK使用方根据业务SDK启动请求获取证书文件。
在步骤S7中,SDK使用方获取第一密钥信息以及已加密的密钥信息,并采用第一密钥信息对已加密的密钥信息进行解密处理,得到目标密钥信息。
在步骤S8中,SDK使用方获取第二密钥信息以及已加密的公钥信息,并采用第二密钥信息对已加密的公钥信息进行解密处理,得到目标公钥信息。
在步骤S9中,SDK使用方对证书文件进行解析处理,得到已加密证书信息以及签名信息。
在步骤S10中,SDK使用方采用目标公钥信息对已加密证书信息进行签名处理,得到待验证签名信息。
在步骤S11中,SDK使用方若待验证签名信息与签名信息匹配一致,则采用目标密钥信息对已加密证书信息进行解密处理,得到待解码证书信息。
在步骤S12中,SDK使用方对待解码证书信息进行解码处理,得到证书信息,其中,证书信息包括业务身份信息、证书有效期、业务SDK标识和证书文件类型,业务身份信息用于确定业务SDK的调用者身份,证书有效期用于确定证书文件的起始时间以及终止时间。
在步骤S13中,SDK使用方获取当前时间、待验证业务身份信息以及待验证业务SDK标识,其中,当前时间为获取业务SDK启动请求所对应的时间,待验证业务身份信息为根据目标应用确定的,待验证业务SDK标识与业务SDK具有对应关系。
在步骤S14中,SDK使用方若证书文件类型为试用版类型,则获取证书文件的首次使用时间,根据当前时间以及首次使用时间,确定已使用时间。
在步骤S15中,若已使用时间小于试用版类型所对应的时间阈值,则SDK使用方根据当前时间与证书有效期之间的匹配关系,待验证业务身份信息与业务身份信息之间的匹配关系,以及待验证业务SDK标识与业务SDK标识,确定证书文件所对应的验证结果。
在步骤S16中,若验证结果用于指示证书文件已验证成功,则SDK使用方针对于目标应用启动业务SDK的调用功能。
下面对本申请中的SDK授权认证装置进行详细描述,请参阅图16,图16为本申请实施例中SDK授权认证装置的一个实施例示意图,SDK授权认证装置30包括:
获取模块301,用于当获取到针对于目标应用的业务软件开发工具包SDK启动请求时,根据业务SDK启动请求获取证书文件;
解析模块302,用于对证书文件进行解析处理,得到证书信息,其中,证书信息包括业务身份信息以及证书有效期,业务身份信息用于确定业务SDK的调用者身份,证书有效期用于确定证书文件的起始时间以及终止时间;
获取模块301,还用于获取当前时间以及待验证业务身份信息,其中,当前时间为获取业务SDK启动请求所对应的时间,待验证业务身份信息为根据目标应用确定的;
确定模块303,用于根据当前时间与证书有效期之间的匹配关系,以及待验证业务身份信息与业务身份信息之间的匹配关系,确定证书文件所对应的验证结果;
启动模块304,用于若验证结果用于指示证书文件已验证成功,则针对于目标应用启动业务SDK的调用功能。
可选地,在上述图16所对应的实施例的基础上,本申请实施例提供的SDK授权认证装置30的另一实施例中,
确定模块303,具体用于若当前时间未超过证书有效期,且待验证业务身份信息与业务身份信息匹配一致,则确定证书文件所对应的验证结果为第一验证结果,其中,第一验证结果表示证书文件已验证成功;
若当前时间超过证书有效期,或,待验证业务身份信息与业务身份信息不匹配,则确定证书文件所对应的验证结果为第二验证结果,其中,第二验证结果表示证书文件已验证失败。
可选地,在上述图16所对应的实施例的基础上,本申请实施例提供的SDK授权认证装置30的另一实施例中,证书信息还包括业务SDK标识;
获取模块301,具体用于获取当前时间、待验证业务身份信息以及待验证业务SDK标识,其中,待验证业务SDK标识与业务SDK具有对应关系;
根据当前时间与证书有效期之间的匹配关系,以及待验证业务身份信息与业务身份信息之间的匹配关系,确定证书文件所对应的验证结果,包括:
根据当前时间与证书有效期之间的匹配关系,待验证业务身份信息与业务身份信息之间的匹配关系,以及待验证业务SDK标识与业务SDK标识,确定证书文件所对应的验证结果。
可选地,在上述图16所对应的实施例的基础上,本申请实施例提供的SDK授权认证装置30的另一实施例中,
确定模块303,具体用于若当前时间未超过证书有效期,待验证业务身份信息与业务身份信息匹配一致,且待验证业务SDK标识与业务SDK标识匹配一致,则确定证书文件所对应的验证结果为第一验证结果,其中,第一验证结果表示证书文件已验证成功;
若当前时间超过证书有效期,或,待验证业务身份信息与业务身份信息不匹配,或,待验证业务SDK标识与业务SDK标识不匹配,则确定证书文件所对应的验证结果为第二验证结果,其中,第二验证结果表示证书文件已验证失败。
可选地,在上述图16所对应的实施例的基础上,本申请实施例提供的SDK授权认证装置30的另一实施例中,
获取模块301,还用于解析模块对证书文件进行解析处理,得到证书信息之前,获取目标密钥信息;
获取目标公钥信息;
解析模块302,具体用于对证书文件进行解析处理,得到已加密证书信息以及签名信息;
采用目标公钥信息对已加密证书信息进行签名处理,得到待验证签名信息;
若待验证签名信息与签名信息匹配一致,则采用目标密钥信息对已加密证书信息进行解密处理,得到待解码证书信息;
对待解码证书信息进行解码处理,得到证书信息。
可选地,在上述图16所对应的实施例的基础上,本申请实施例提供的SDK授权认证装置30的另一实施例中,
确定模块303,还用于若待验证签名信息与签名信息不匹配,则确定证书文件所对应的验证结果为第二验证结果,其中,第二验证结果表示证书文件已验证失败;
解析模块302,具体用于采用目标密钥信息对已加密证书信息进行解密处理;
若解密成功,则得到待解码证书信息;
若解密失败,则确定证书文件所对应的验证结果为第二验证结果。
可选地,在上述图16所对应的实施例的基础上,本申请实施例提供的SDK授权认证装置30的另一实施例中,
获取模块301,具体用于获取第一密钥信息以及已加密的密钥信息;
采用第一密钥信息对已加密的密钥信息进行解密处理,得到目标密钥信息;
获取模块,具体用于获取第二密钥信息以及已加密的公钥信息;
采用第二密钥信息对已加密的公钥信息进行解密处理,得到目标公钥信息。
可选地,在上述图16所对应的实施例的基础上,本申请实施例提供的SDK授权认证装置30的另一实施例中,证书信息还包括证书文件类型,其中,证书文件类型为试用版类型或正式版类型;
获取模块301,还用于若证书文件类型为试用版类型,则获取证书文件的首次使用时间;
确定模块303,还用于根据当前时间以及首次使用时间,确定已使用时间;
确定模块303,还用于若已使用时间小于试用版类型所对应的时间阈值,则执行根据当前时间与证书有效期之间的匹配关系,以及待验证业务身份信息与业务身份信息之间的匹配关系,确定证书文件所对应的验证结果的步骤;
确定模块303,还用于若证书文件类型为正式版类型,则执行根据当前时间与证书有效期之间的匹配关系,以及待验证业务身份信息与业务身份信息之间的匹配关系,确定证书文件所对应的验证结果的步骤。
可选地,在上述图16所对应的实施例的基础上,本申请实施例提供的SDK授权认证装置30的另一实施例中,SDK授权认证装置30还包括初始化模块305以及发送模块306;
初始化模块305,用于当获取到针对于目标应用的业务软件开发工具包SDK启动请求时,根据业务SDK启动请求获取证书文件之前,若获取到来自于目标应用的初始化请求,则根据初始化请求对证书SDK进行初始化处理,其中,证书SDK用于确定证书文件所对应的验证结果;
初始化模块305,还用于当证书SDK已完成初始化时,对业务SDK进行初始化处理;
发送模块306,用于当业务SDK已完成初始化时,向目标应用发送初始化结果,其中,初始化结果用于指示目标应用通过调用业务SDK的接口发送业务SDK启动请求。
可选地,在上述图16所对应的实施例的基础上,本申请实施例提供的SDK授权认证装置30的另一实施例中,SDK授权认证装置30还包括拒用模块307;
获取模块301,具体用于当接收到终端设备发送的针对于目标应用的业务SDK启动请求时,根据业务SDK启动请求获取证书文件;
启动模块304,具体用于若验证结果用于指示证书文件已验证成功,则针对于目标应用启动业务SDK的调用功能,或,向终端设备发送验证结果,以使终端设备针对于目标应用启动业务SDK的调用功能;
拒用模块307,还用于若验证结果用于指示证书文件已验证失败,则针对于目标应用拒绝调用业务SDK,或,向终端设备发送验证结果,以使终端设备针对于目标应用拒绝调用业务SDK。
下面对本申请中的证书生成装置进行详细描述,请参阅图17,图17为本申请实施例中证书生成装置的一个实施例示意图,证书生成装置40包括:
获取模块401,用于获取已配置的证书信息;
编码模块402,用于若证书信息满足合法配置条件,则对证书信息进行编码处理,得到待解码证书信息;
加密模块403,用于采用目标密钥信息对待解码证书信息进行加密处理,得到已加密证书信息;
签名模块404,用于采用目标公钥信息对已加密证书信息进行签名处理,得到签名信息;
生成模块405,用于根据已加密证书信息以及签名信息生成证书文件,其中,证书文件为上述实施例所涉及的证书文件。
图18是本申请实施例计算机设备50的结构示意图。计算机设备50可包括输入设备510、输出设备520、处理器530和存储器540。本申请实施例中的输出设备可以是显示设备。
存储器540可以包括只读存储器和随机存取存储器,并向处理器530提供指令和数据。存储器540的一部分还可以包括非易失性随机存取存储器(Non-Volatile RandomAccess Memory,NVRAM)。
存储器540存储了如下的元素,可执行模块或者数据结构,或者它们的子集,或者它们的扩展集:
操作指令:包括各种操作指令,用于实现各种操作。
操作***:包括各种***程序,用于实现各种基础业务以及处理基于硬件的任务。
本申请实施例中处理器530用于:
当获取到针对于目标应用的业务软件开发工具包SDK启动请求时,根据业务SDK启动请求获取证书文件;
对证书文件进行解析处理,得到证书信息,其中,证书信息包括业务身份信息以及证书有效期,业务身份信息用于确定业务SDK的调用者身份,证书有效期用于确定证书文件的起始时间以及终止时间;
获取当前时间以及待验证业务身份信息,其中,当前时间为获取业务SDK启动请求所对应的时间,待验证业务身份信息为根据目标应用确定的;
根据当前时间与证书有效期之间的匹配关系,以及待验证业务身份信息与业务身份信息之间的匹配关系,确定证书文件所对应的验证结果;
若验证结果用于指示证书文件已验证成功,则针对于目标应用启动业务SDK的调用功能。
本申请实施例中处理器530用于:
获取已配置的证书信息;
若证书信息满足合法配置条件,则对证书信息进行编码处理,得到待解码证书信息;
采用目标密钥信息对待解码证书信息进行加密处理,得到已加密证书信息;
采用目标公钥信息对已加密证书信息进行签名处理,得到签名信息;
根据已加密证书信息以及签名信息生成证书文件,其中,证书文件为上述各实施例涉及到的证书文件。
处理器530控制计算机设备50的操作,处理器530还可以称为中央处理单元(Central Processing Unit,CPU)。存储器540可以包括只读存储器和随机存取存储器,并向处理器530提供指令和数据。存储器540的一部分还可以包括NVRAM。具体的应用中,计算机设备50的各个组件通过总线***550耦合在一起,其中总线***550除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线***550。
上述本申请实施例揭示的方法可以应用于处理器530中,或者由处理器530实现。处理器530可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器530中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器530可以是通用处理器、数字信号处理器(英文全称:Digital Signal Processing,英文缩写:DSP)、专用集成电路(英文全称:Application Specific Integrated Circuit,英文缩写:ASIC)、现成可编程门阵列(英文全称:Field-Programmable Gate Array,英文缩写:FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器540,处理器530读取存储器540中的信息,结合其硬件完成上述方法的步骤。
图18的相关描述可以参阅上述实施例中各个方法部分的相关描述和效果进行理解,本处不做过多赘述。
本申请实施例中还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机执行如前述各个实施例描述的方法。
本申请实施例中还提供一种包括程序的计算机程序产品,当其在计算机上运行时,使得计算机执行前述各个实施例描述的方法。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的***,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (13)
1.一种SDK授权认证方法,其特征在于,包括:
当获取到针对于目标应用的业务软件开发工具包SDK启动请求时,根据业务SDK启动请求获取证书文件,其中,所述证书文件为根据已加密证书信息以及签名信息生成的,所述签名信息为采用目标公钥信息对已加密证书信息进行签名处理后得到的,所述已加密证书信息为采用目标密钥信息对待解码证书信息进行加密处理后得到的,所述待解码证书信息为对已配置的证书信息进行编码处理后得到的,且所述已配置的证书信息满足合法配置条件;
获取所述目标密钥信息;
获取所述目标公钥信息;
对所述证书文件进行解析处理,得到证书信息,其中,所述证书信息包括业务身份信息以及证书有效期,所述业务身份信息用于确定业务SDK的调用者身份,所述证书有效期用于确定所述证书文件的起始时间以及终止时间;
获取当前时间以及待验证业务身份信息,其中,所述当前时间为获取所述业务SDK启动请求所对应的时间,所述待验证业务身份信息为根据所述目标应用确定的;
根据所述当前时间与所述证书有效期之间的匹配关系,以及所述待验证业务身份信息与所述业务身份信息之间的匹配关系,确定所述证书文件所对应的验证结果;
若所述验证结果用于指示所述证书文件已验证成功,则针对于所述目标应用启动所述业务SDK的调用功能;
所述对所述证书文件进行解析处理,得到证书信息,包括:
对所述证书文件进行解析处理,得到所述已加密证书信息以及所述签名信息;
采用所述目标公钥信息对所述已加密证书信息进行签名处理,得到待验证签名信息;
若所述待验证签名信息与所述签名信息匹配一致,则采用所述目标密钥信息对所述已加密证书信息进行解密处理,得到所述待解码证书信息;
对所述待解码证书信息进行解码处理,得到所述证书信息。
2.根据权利要求1所述的SDK授权认证方法,其特征在于,所述根据所述当前时间与所述证书有效期之间的匹配关系,以及所述待验证业务身份信息与所述业务身份信息之间的匹配关系,确定所述证书文件所对应的验证结果,包括:
若所述当前时间未超过所述证书有效期,且所述待验证业务身份信息与所述业务身份信息匹配一致,则确定所述证书文件所对应的验证结果为第一验证结果,其中,所述第一验证结果表示所述证书文件已验证成功;
若所述当前时间超过所述证书有效期,或,所述待验证业务身份信息与所述业务身份信息不匹配,则确定所述证书文件所对应的验证结果为第二验证结果,其中,所述第二验证结果表示所述证书文件已验证失败。
3.根据权利要求1所述的SDK授权认证方法,其特征在于,所述证书信息还包括业务SDK标识;
所述获取当前时间以及待验证业务身份信息,包括:
获取所述当前时间、所述待验证业务身份信息以及待验证业务SDK标识,其中,所述待验证业务SDK标识与所述业务SDK具有对应关系;
所述根据所述当前时间与所述证书有效期之间的匹配关系,以及所述待验证业务身份信息与所述业务身份信息之间的匹配关系,确定所述证书文件所对应的验证结果,包括:
根据所述当前时间与所述证书有效期之间的匹配关系,所述待验证业务身份信息与所述业务身份信息之间的匹配关系,以及所述待验证业务SDK标识与所述业务SDK标识,确定所述证书文件所对应的验证结果。
4.根据权利要求3所述的SDK授权认证方法,其特征在于,所述根据所述当前时间与所述证书有效期之间的匹配关系,所述待验证业务身份信息与所述业务身份信息之间的匹配关系,以及所述待验证业务SDK标识与所述业务SDK标识,确定所述证书文件所对应的验证结果,包括:
若所述当前时间未超过所述证书有效期,所述待验证业务身份信息与所述业务身份信息匹配一致,且所述待验证业务SDK标识与所述业务SDK标识匹配一致,则确定所述证书文件所对应的验证结果为第一验证结果,其中,所述第一验证结果表示所述证书文件已验证成功;
若所述当前时间超过所述证书有效期,或,所述待验证业务身份信息与所述业务身份信息不匹配,或,所述待验证业务SDK标识与所述业务SDK标识不匹配,则确定所述证书文件所对应的验证结果为第二验证结果,其中,所述第二验证结果表示所述证书文件已验证失败。
5.根据权利要求1所述的SDK授权认证方法,其特征在于,所述方法还包括:
若所述待验证签名信息与所述签名信息不匹配,则确定所述证书文件所对应的验证结果为第二验证结果,其中,所述第二验证结果表示所述证书文件已验证失败;
所述采用所述目标密钥信息对所述已加密证书信息进行解密处理,得到待解码证书信息,包括:
采用所述目标密钥信息对所述已加密证书信息进行解密处理;
若解密成功,则得到所述待解码证书信息;
若解密失败,则确定所述证书文件所对应的验证结果为所述第二验证结果。
6.根据权利要求1所述的SDK授权认证方法,其特征在于,所述获取目标密钥信息,包括:
获取第一密钥信息以及已加密的密钥信息;
采用所述第一密钥信息对所述已加密的密钥信息进行解密处理,得到所述目标密钥信息;
所述获取目标公钥信息,包括:
获取第二密钥信息以及已加密的公钥信息;
采用所述第二密钥信息对所述已加密的公钥信息进行解密处理,得到所述目标公钥信息。
7.根据权利要求1所述的SDK授权认证方法,其特征在于,所述证书信息还包括证书文件类型,其中,所述证书文件类型为试用版类型或正式版类型;
所述方法还包括:
若所述证书文件类型为所述试用版类型,则获取所述证书文件的首次使用时间;
根据所述当前时间以及所述首次使用时间,确定已使用时间;
若所述已使用时间小于所述试用版类型所对应的时间阈值,则执行所述根据所述当前时间与所述证书有效期之间的匹配关系,以及所述待验证业务身份信息与所述业务身份信息之间的匹配关系,确定所述证书文件所对应的验证结果的步骤;
所述方法还包括:
若所述证书文件类型为所述正式版类型,则执行所述根据所述当前时间与所述证书有效期之间的匹配关系,以及所述待验证业务身份信息与所述业务身份信息之间的匹配关系,确定所述证书文件所对应的验证结果的步骤。
8.根据权利要求1所述的SDK授权认证方法,其特征在于,所述当获取到针对于目标应用的业务软件开发工具包SDK启动请求时,根据所述业务SDK启动请求获取证书文件之前,所述方法还包括:
若获取到来自于所述目标应用的初始化请求,则根据所述初始化请求对证书SDK进行初始化处理,其中,所述证书SDK用于确定所述证书文件所对应的验证结果;
当所述证书SDK已完成初始化时,对所述业务SDK进行初始化处理;
当所述业务SDK已完成初始化时,向所述目标应用发送初始化结果,其中,所述初始化结果用于指示所述目标应用通过调用所述业务SDK的接口发送所述业务SDK启动请求。
9.根据权利要求1至8中任一项所述的SDK授权认证方法,其特征在于,所述当获取到针对于目标应用的业务软件开发工具包SDK启动请求时,根据所述业务SDK启动请求获取证书文件,包括:
当接收到终端设备发送的针对于所述目标应用的所述业务SDK启动请求时,根据所述业务SDK启动请求获取所述证书文件;
所述若所述验证结果用于指示所述证书文件已验证成功,则针对于所述目标应用启动所述业务SDK的调用功能,包括:
若所述验证结果用于指示所述证书文件已验证成功,则针对于所述目标应用启动所述业务SDK的调用功能,或,向所述终端设备发送所述验证结果,以使所述终端设备针对于所述目标应用启动所述业务SDK的调用功能;
所述方法还包括:
若所述验证结果用于指示所述证书文件已验证失败,则针对于所述目标应用拒绝调用所述业务SDK,或,向所述终端设备发送所述验证结果,以使所述终端设备针对于所述目标应用拒绝调用所述业务SDK。
10.根据权利要求1至8中任一项所述的SDK授权认证方法,其特征在于,所述证书文件为根据已加密证书信息以及签名信息生成的,所述签名信息为采用目标公钥信息对所述已加密证书信息进行签名处理后得到的,所述已加密证书信息为采用目标密钥信息对待解码证书信息进行加密处理后得到的,所述待解码证书信息为对所述证书信息进行编码处理后得到的。
11.一种SDK授权认证装置,其特征在于,包括:
获取模块,用于当获取到针对于目标应用的业务软件开发工具包SDK启动请求时,根据业务SDK启动请求获取证书文件,其中,所述证书文件为根据已加密证书信息以及签名信息生成的,所述签名信息为采用目标公钥信息对已加密证书信息进行签名处理后得到的,所述已加密证书信息为采用目标密钥信息对待解码证书信息进行加密处理后得到的,所述待解码证书信息为对已配置的证书信息进行编码处理后得到的,且所述已配置的证书信息满足合法配置条件;
所述获取模块,还用于获取目标密钥信息;
所述获取模块,还用于获取目标公钥信息;
解析模块,用于对所述证书文件进行解析处理,得到证书信息,其中,所述证书信息包括业务身份信息以及证书有效期,所述业务身份信息用于确定业务SDK的调用者身份,所述证书有效期用于确定所述证书文件的起始时间以及终止时间;
所述获取模块,还用于获取当前时间以及待验证业务身份信息,其中,所述当前时间为获取所述业务SDK启动请求所对应的时间,所述待验证业务身份信息为根据所述目标应用确定的;
确定模块,用于根据所述当前时间与所述证书有效期之间的匹配关系,以及所述待验证业务身份信息与所述业务身份信息之间的匹配关系,确定所述证书文件所对应的验证结果;
启动模块,用于若所述验证结果用于指示所述证书文件已验证成功,则针对于所述目标应用启动所述业务SDK的调用功能;
所述解析模块,具体用于对所述证书文件进行解析处理,得到所述已加密证书信息以及所述签名信息;
采用所述目标公钥信息对所述已加密证书信息进行签名处理,得到待验证签名信息;
若所述待验证签名信息与所述签名信息匹配一致,则采用所述目标密钥信息对所述已加密证书信息进行解密处理,得到所述待解码证书信息;
对所述待解码证书信息进行解码处理,得到所述证书信息。
12.一种计算机设备,其特征在于,包括:存储器、收发器、处理器以及总线***;
其中,所述存储器用于存储程序;
所述处理器用于执行所述存储器中的程序,所述处理器用于根据程序代码中的指令执行权利要求1至10中任一项所述的SDK授权认证方法;
所述总线***用于连接所述存储器以及所述处理器,以使所述存储器以及所述处理器进行通信。
13.一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行如权利要求1至10中任一项所述的SDK授权认证方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010766469.1A CN111625781B (zh) | 2020-08-03 | 2020-08-03 | Sdk授权认证方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010766469.1A CN111625781B (zh) | 2020-08-03 | 2020-08-03 | Sdk授权认证方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111625781A CN111625781A (zh) | 2020-09-04 |
CN111625781B true CN111625781B (zh) | 2020-11-10 |
Family
ID=72259601
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010766469.1A Active CN111625781B (zh) | 2020-08-03 | 2020-08-03 | Sdk授权认证方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111625781B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112187783B (zh) * | 2020-09-25 | 2023-06-30 | 京东方科技集团股份有限公司 | 鉴权方法及装置、电子设备以及存储介质 |
CN112689285B (zh) * | 2020-12-10 | 2023-08-15 | 航天信息股份有限公司 | 一种移动端sdk的授权认证方法及*** |
CN112769544B (zh) * | 2020-12-17 | 2022-12-30 | 云知声智能科技股份有限公司 | 一种智能设备激活授权方法及*** |
CN112560009A (zh) * | 2020-12-22 | 2021-03-26 | Oppo广东移动通信有限公司 | 一种鉴权方法、终端、客户端及计算机存储介质 |
CN112637231B (zh) * | 2020-12-29 | 2023-12-12 | 航天信息股份有限公司 | 授权方法、装置、存储介质及服务器 |
CN112597452A (zh) * | 2021-01-05 | 2021-04-02 | Oppo广东移动通信有限公司 | 应用程序接口调用方法、装置、存储介质及电子设备 |
CN112733166A (zh) * | 2021-01-08 | 2021-04-30 | 湖南同有飞骥科技有限公司 | license认证授权功能的实现方法及*** |
CN112749378A (zh) * | 2021-01-20 | 2021-05-04 | 京东数科海益信息科技有限公司 | 开发工具包的验证方法和装置、存储介质、电子装置 |
CN112800393B (zh) * | 2021-01-29 | 2022-08-26 | 深圳市商汤科技有限公司 | 授权认证、软件开发工具包生成方法、装置及电子设备 |
CN112926047A (zh) * | 2021-03-30 | 2021-06-08 | 中国建设银行股份有限公司 | 本地化部署产品的授权控制方法、装置、电子设备和介质 |
CN113515726B (zh) * | 2021-06-23 | 2022-03-25 | 北京顶象技术有限公司 | 一种防止企业产品授权文件外泄的方法及装置 |
CN115037480A (zh) * | 2022-06-07 | 2022-09-09 | 抖音视界(北京)有限公司 | 设备认证和校验的方法、装置、设备和存储介质 |
CN115277082B (zh) * | 2022-06-23 | 2024-01-12 | 支付宝(杭州)信息技术有限公司 | 第三方应用的校验方法和装置 |
CN115934158B (zh) * | 2023-02-23 | 2023-06-23 | 云筑信息科技(成都)有限公司 | 一种基于业务身份的个性化配置方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101107610A (zh) * | 2005-01-24 | 2008-01-16 | 皇家飞利浦电子股份有限公司 | 在用于商业性和个人内容的drm***内阻止内容的非法分发的方法 |
CN103167498A (zh) * | 2011-12-19 | 2013-06-19 | 卓望数码技术(深圳)有限公司 | 一种能力管控方法和*** |
CN106529218A (zh) * | 2016-10-28 | 2017-03-22 | 杭州华三通信技术有限公司 | 一种应用校验方法和装置 |
CN109117605A (zh) * | 2018-07-25 | 2019-01-01 | 北京市商汤科技开发有限公司 | 一种鉴权方法及其装置、设备和存储介质 |
CN111400673A (zh) * | 2020-04-29 | 2020-07-10 | 广州紫为云科技有限公司 | 一种sdk部署的离线授权方法、装置及电子设备 |
-
2020
- 2020-08-03 CN CN202010766469.1A patent/CN111625781B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101107610A (zh) * | 2005-01-24 | 2008-01-16 | 皇家飞利浦电子股份有限公司 | 在用于商业性和个人内容的drm***内阻止内容的非法分发的方法 |
CN103167498A (zh) * | 2011-12-19 | 2013-06-19 | 卓望数码技术(深圳)有限公司 | 一种能力管控方法和*** |
CN106529218A (zh) * | 2016-10-28 | 2017-03-22 | 杭州华三通信技术有限公司 | 一种应用校验方法和装置 |
CN109117605A (zh) * | 2018-07-25 | 2019-01-01 | 北京市商汤科技开发有限公司 | 一种鉴权方法及其装置、设备和存储介质 |
CN111400673A (zh) * | 2020-04-29 | 2020-07-10 | 广州紫为云科技有限公司 | 一种sdk部署的离线授权方法、装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111625781A (zh) | 2020-09-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111625781B (zh) | Sdk授权认证方法、装置、设备及存储介质 | |
AU2015334634B2 (en) | Transaction messaging | |
US10560476B2 (en) | Secure data storage system | |
CN102546171B (zh) | 用于安全元件认证的方法 | |
US11316839B2 (en) | Proof-of-work key wrapping for temporally restricting data access | |
US11411938B2 (en) | Proof-of-work key wrapping with integrated key fragments | |
CN109074449A (zh) | 在安全飞地中灵活地供应证明密钥 | |
US8495383B2 (en) | Method for the secure storing of program state data in an electronic device | |
US11303437B2 (en) | Proof-of-work key wrapping with key thresholding | |
US11424920B2 (en) | Proof-of-work key wrapping for cryptographically controlling data access | |
US11271734B2 (en) | Proof-of-work key wrapping for verifying device capabilities | |
WO2016015141A1 (en) | System and method for cryptographic suite management | |
CN106936588B (zh) | 一种硬件控制锁的托管方法、装置及*** | |
US11436352B2 (en) | Proof-of-work key wrapping for restricting data execution based on device capabilities | |
CN110611657A (zh) | 一种基于区块链的文件流处理的方法、装置及*** | |
CN115374405A (zh) | 软件授权方法、许可授权方法、装置、设备和存储介质 | |
WO2011141579A2 (en) | System and method for providing security for cloud computing resources using portable security devices | |
Dalheimer et al. | Genlm: license management for grid and cloud computing environments | |
CN109995534B (zh) | 一种对应用程序进行安全认证的方法和装置 | |
US20180218357A1 (en) | Export high value material based on ring 1 evidence of ownership | |
CN117121435A (zh) | 连接弹性多因素认证 | |
CN114584347A (zh) | 验证短信收发方法、服务器、终端及存储介质 | |
Akram et al. | Rethinking the smart card technology | |
Dhanasekaran et al. | Payment security mechanism of intelligent mobile terminal | |
CN115242486B (zh) | 数据处理方法、装置及计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |