CN109981562B - 一种软件开发工具包授权方法及装置 - Google Patents

一种软件开发工具包授权方法及装置 Download PDF

Info

Publication number
CN109981562B
CN109981562B CN201910042808.9A CN201910042808A CN109981562B CN 109981562 B CN109981562 B CN 109981562B CN 201910042808 A CN201910042808 A CN 201910042808A CN 109981562 B CN109981562 B CN 109981562B
Authority
CN
China
Prior art keywords
authorization
ciphertext
calling end
calling
identification information
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
Application number
CN201910042808.9A
Other languages
English (en)
Other versions
CN109981562A (zh
Inventor
周建伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ping An Technology Shenzhen Co Ltd
Original Assignee
Ping An Technology Shenzhen 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 Ping An Technology Shenzhen Co Ltd filed Critical Ping An Technology Shenzhen Co Ltd
Priority to CN201910042808.9A priority Critical patent/CN109981562B/zh
Publication of CN109981562A publication Critical patent/CN109981562A/zh
Application granted granted Critical
Publication of CN109981562B publication Critical patent/CN109981562B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems
    • 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/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials

Abstract

本发明实施例提供了一种软件开发工具包授权方法及装置,本发明涉及网络安全技术领域,方法包括:获取调用端发送的用于调用软件开发工具包的目标功能的授权请求,授权请求携带调用端的身份识别信息;检测调用端的本地是否存在用于调用目标功能的密文;当不存在密文时,基于授权请求生成用于授权调用软件开发工具包的目标功能的认证密钥,认证密钥包括身份识别信息及授权码,授权码与目标功能相关联;向调用端发送由认证密钥通过非对称加密算法加密处理形成的密文,并授权调用端调用目标功能。本发明实施例能够解决现有技术中软件开发工具包授权过程安全性低的问题。

Description

一种软件开发工具包授权方法及装置
【技术领域】
本发明涉及网络安全技术领域,尤其涉及一种软件开发工具包授权方法及装置。
【背景技术】
目前,目前软件开发过程中,为了缩短软件开发时间,往往会直接调用已有的软件开发工具包(Software DevelopmentKit,SDK),提高开发效率。调用端期望使用软件开发包的功能,需要首先将软件开发包的本体下载到调用端,随后向软件开发包的服务器端请求软件开发包的授权密码。然而,现在的授权方式安全性低。
【发明内容】
有鉴于此,本发明实施例提供了一种软件开发工具包授权方法及装置,用以解决现有技术中软件开发工具包的授权方式安全性低的问题。
为了实现上述目的,根据本发明的一个方面,提供了一种软件开发工具包授权方法,所述方法包括:
获取调用端发送的用于调用软件开发工具包的目标功能的授权请求,所述授权请求携带所述调用端的身份识别信息;检测所述调用端的本地是否存在用于调用所述目标功能的密文;当不存在所述密文时,基于所述授权请求生成用于授权调用所述软件开发工具包的所述目标功能的认证密钥,所述认证密钥包括所述身份识别信息及授权码,所述授权码与所述目标功能相关联;向所述调用端发送由所述认证密钥通过非对称加密算法加密处理形成的密文,并授权所述调用端调用所述目标功能。
进一步地,在所述向所述调用端发送由所述认证密钥通过非对称加密算法加密处理形成的密文,并授权所述调用端调用所述目标功能之后,所述方法还包括:
当接收到所述调用端发送的用于调用所述目标功能的授权请求时,检测所述调用端的本地是否存在所述密文;当存在所述密文时,获取所述调用端本地的密文;对所述密文进行解密,得到所述调用端的身份识别信息及授权码;将解密得到的身份识别信息与所述认证密钥的身份识别信息进行验证,并将解密得到的所述授权码与所述认证密钥的授权码进行验证;当验证通过,授权所述调用端调用所述软件开发工具包的目标功能。
进一步地,在所述向所述调用端发送由所述认证密钥通过非对称加密算法加密处理形成的密文,并授权所述调用端调用所述目标功能之后,所述方法还包括:将所述认证密钥中的身份识别信息及授权码添加至授权清单中,其中,与相同身份识别信息关联的多个所述授权码保存在所述授权清单中的同一所述身份识别信息下;当接收到所述调用端发送的用于调用多个目标功能的授权请求时,检测所述调用端的本地是否存在调用所述多个目标功能的密文;当存在多个所述密文,获取保存在所述调用端的本地的所述多个目标功能的所述密文;对多个所述密文一一进行解密,得到所述调用端的身份识别信息及多个授权码;将解密得到的身份识别信息与所述授权清单中的身份识别信息进行验证;当验证成功,将解密得到的多个所述授权码与所述授权清单中与验证成功的身份识别信息关联的多个授权码一一进行验证;授权所述调用端调用其中验证成功的授权码所关联的目标功能。
进一步地,所述将解密得到的身份识别信息与所述认证密钥的身份识别信息进行验证,并将解密得到的授权码与所述认证密钥的授权码进行验证之后,所述方法还包括:当验证不通过,向所述调用端发送反馈信息,所述反馈信息包括用于提示授权失败的错误码。
进一步地,所述非对称加密算法为迪菲-赫尔曼密钥算法或椭圆曲线加密算法中的至少一种。
为了实现上述目的,根据本发明的一个方面,提供了一种软件开发工具包授权装置,所述装置包括:
第一获取单元,用于获取调用端发送的用于调用软件开发工具包的目标功能的授权请求,所述授权请求携带所述调用端的身份识别信息;检测单元,用于检测所述调用端的本地是否存在用于调用所述目标功能的密文;生成单元,用于当不存在所述密文时,基于所述授权请求生成用于授权调用所述软件开发工具包的所述目标功能的认证密钥,所述认证密钥包括所述身份识别信息及授权码,所述授权码与所述目标功能相关联;发送单元,用于向所述调用端发送由所述认证密钥通过非对称加密算法加密处理形成的密文,并授权所述调用端调用所述目标功能。
进一步地,所述装置还包括:第二获取单元,用于当存在所述密文时,获取所述调用端本地的密文;解密单元,用于对所述密文进行解密,得到所述调用端的身份识别信息及授权码;第二验证单元,用于将解密得到的身份识别信息与所述认证密钥的身份识别信息进行验证,并将解密得到的所述授权码码与所述认证密钥的授权码进行验证;授权单元,用于当验证通过,授权所述调用端调用所述软件开发工具包的目标功能。
进一步地,所述非对称加密算法为迪菲-赫尔曼密钥算法或椭圆曲线加密算法中的至少一种。
为了实现上述目的,根据本发明的一个方面,提供了一种计算机非易失性存储介质,所述存储介质包括存储的程序,在所述程序运行时控制所述存储介质所在设备执行上述的软件开发工具包授权方法。
为了实现上述目的,根据本发明的一个方面,提供了一种计算机设备,包括存储器和处理器,所述存储器用于存储包括程序指令的信息,所述处理器用于控制程序指令的执行,所述程序指令被处理器加载并执行时实现上述的软件开发工具包授权方法的步骤。
在本方案中,通过检测调用端本地是否存储有用于调用目标功能的密文,当不存在密文时,基于授权请求生成用于授权调用软件开发工具包的目标功能的认证密钥,并将认证密钥通过非对称加密算法加密生成密文后发送给调用端,使得再次授权时,通过将密文解密即可实现密钥验证,过程简单,提高软件开发工具包的授权过程的安全性。
【附图说明】
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1是本发明实施例提供的一种可选的软件开发工具包授权方法的流程图;
图2是本发明实施例提供的一种可选的软件开发工具包授权装置的示意图;
图3是本发明实施例提供的一种可选的计算机设备的示意图。
【具体实施方式】
为了更好的理解本发明的技术方案,下面结合附图对本发明实施例进行详细描述。
应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
应当理解,尽管在本发明实施例中可能采用术语第一、第二、第三等来描述终端,但这些终端不应限于这些术语。这些术语仅用来将终端彼此区分开。例如,在不脱离本发明实施例范围的情况下,第一获取单元也可以被称为第二获取单元,类似地,第二获取单元也可以被称为第一获取单元。
取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
图1是根据本发明实施例的一种软件开发工具包授权方法的流程图,如图1所示,该方法包括:
步骤S101,获取调用端发送的用于调用软件开发工具包的目标功能的授权请求,授权请求携带调用端的身份识别信息;
步骤S102,检测调用端的本地是否存在用于调用目标功能的密文;
步骤S103,当不存在密文时,基于授权请求生成用于授权调用软件开发工具包的目标功能的认证密钥,认证密钥包括身份识别信息及授权码,认证密钥与目标功能相关联;
步骤S104,向调用端发送由认证密钥通过非对称加密算法加密处理形成的密文,并授权调用端调用目标功能。
其中,调用端可以是设备上的应用程序。具体地,身份识别信息为应用程序的ID,可以理解地,ID具有排他性,同一设备上的每个应用程序具有唯一的值,不同应用程序的ID具有不同的值。因此,根据应用程序所的ID对调用端授权,可以保障软件开发工具包中的目标功能只用在一个应用程序上。
可选地,授权码为授权截止日期,每次验证时,系统只需要先验证调用端的ID是否和认证密钥中的ID一致,再验证授权请求的发起时间是否在授权截止日期内即可。
在本方案中,通过检测调用端本地是否存储有用于调用目标功能的密文,当不存在密文时,基于授权请求生成用于授权调用软件开发工具包的目标功能的认证密钥,并将认证密钥通过非对称加密算法加密生成密文后发送给调用端,使得再次授权时,通过将密文解密即可实现密钥验证,过程简单,提高软件开发工具包的授权过程的安全性。
根据本发明实施例的软件开发工具包的授权方法,调用端先获取软件开发工具包的本体,随后再从服务器端请求获得软件开发工具包中的目标功能的授权,也就是说,由服务器端控制软件开发工具包在调用端上的授权。
可选地,向调用端发送由认证密钥通过非对称加密算法加密处理形成的密文,包括:
利用密钥对认证密钥进行加密生成密文,密钥为根据非对称加密算法生成的一对密钥。
可选地,非对称加密算法包括但不限于:RSA算法、迪菲-赫尔曼密钥算法、背包算法、Rabin算法、D-H算法、椭圆曲线加密算法等等,根据非对称加密算法生成非对称密钥。也就是说,用于加密认证密钥的公钥和用于解密认证密钥的私钥有所不同。可以理解地,将认证密钥用公钥进行加密形成密文后,再将密文发给调用端后,任何盗用该密文的调用端都无法解开密文得到授权码。只有拥有私钥的授权端(软件开发工具包的管理者)才能解开密文并对密文进行进一步地验证。
在一种实施方式中,非对称加密算法为椭圆曲线加密算法,选取一个基域Fp和定义在该域上的椭圆曲线Ep(a,b)及其上的一个拥有素数阶n的点G(xG,yG),其中有限域Fp,椭圆曲线参数a,b,阶n和基点G均是公开参数。在区间【1,n-1】中随机选取一个整数k作为私钥,计算公钥A=k*G。
在另一种实施方式中,非对称加密算法为迪菲-赫尔曼密钥算法,公钥A=gkmodp,k为私钥,g为公开目标数,p为素数。
可选地,在向调用端发送由认证密钥通过非对称加密算法加密处理形成的密文,并授权调用端调用目标功能之后,调用端将密文保存在本地。从而使得调用方再次调用软件开发包的功能时,只需将密文上传,系统解密验证通过即可授权该功能。
可选地,在向调用端发送由认证密钥通过非对称加密算法加密处理形成的密文,并授权调用端调用目标功能之后,方法还包括:
当接收到调用端发送的用于调用目标功能的授权请求时,检测调用端的本地是否存在密文;当存在密文时,获取调用端本地的密文;对密文进行解密,得到调用端的身份识别信息及授权码;将解密得到的身份识别信息与认证密钥的身份识别信息进行验证,并将解密得到的授权码与认证密钥的授权码进行验证;当验证通过,授权调用端调用软件开发工具包的目标功能。可以理解地,授权端能够利用私钥对密文进行解密,从而得到调用端的身份识别信息与授权码。若其他终端截取该密文,也无法解密得到授权码,从而防止授权码被盗用。
可选地,在向调用端发送由认证密钥通过非对称加密算法加密处理形成的密文,并授权调用端调用目标功能之后,方法还包括:
将认证密钥中的身份识别信息及授权码添加至授权清单中,其中,与相同身份识别信息关联的多个授权码保存在授权清单中的同一身份识别信息下;当接收到调用端发送的用于调用多个目标功能的授权请求时,检测调用端的本地是否存在调用多个目标功能的密文;当存在多个密文,获取保存在调用端的本地的多个目标功能的密文;对多个密文一一进行解密,得到调用端的身份识别信息及多个授权码;将解密得到的身份识别信息与授权清单中的身份识别信息进行验证;当身份识别信息验证成功,将解密得到的多个授权码与授权清单中与验证成功的身份识别信息关联的多个授权码一一进行验证;授权调用端调用其中验证成功的授权码所关联的目标功能。
在一种实施方式中,认证密钥中的身份识别信息添加至授权对象中,且每一个授权码与一个目标功能相关联,授权清单如表一所示。
表一、授权清单表
Figure BDA0001948142300000091
可以理解地,当同一个调用端调用软件开发包多个功能时,身份识别信息的验证一次通过后,再验证各个授权码与授权清单中该验证成功的身份识别信息关联的授权码进行验证即可。如果某个功能的授权截止有效日期已经过期,则授权失败,验证成功的授权码所关联的目标功能能够授权成功。
可选地,将解密得到的身份识别信息与认证密钥的身份识别信息进行验证,并将解密得到的授权码与认证密钥的授权码进行验证之后,方法还包括:当验证不通过,向调用端发送反馈信息,反馈信息包括用于提示授权失败的错误码。
可选地,当调用端本地存在密文时,且验证认证密钥中的身份识别信息与调用端的身份识别信息是否一致之后,方法还包括:
当验证不通过,基于授权请求生成的新的认证密钥;
向调用端发送由新的认证密钥通过非对称加密算法加密处理形成的新的密文,以使得调用端根据新的密文更新本地的密文。
可以理解地,当存在密文且密文验证不通过时,授权端可以基于授权请求考虑是否将目标功能再次授权给该调用端,如果是,生成用于授权调用软件开发工具包的目标功能的新的认证密钥,并将新的认证密钥通过非对称加密算法加密生成新的密文后发送给调用端,调用端接收新的密文并用新的密文更新本地的密文,提高软件开发工具包的授权过程的安全性。
本发明实施例提供了一种软件开发工具包授权装置,该装置用于执行上述软件开发工具包授权方法,如图2所示,该装置包括:第一获取单元10、检测单元20、生成单元30、发送单元40。
第一获取单元10,用于获取调用端发送的用于调用软件开发工具包的目标功能的授权请求,授权请求携带调用端的身份识别信息;
检测单元20,用于检测调用端的本地是否存在用于调用目标功能的密文;
生成单元30,用于当不存在密文时,基于授权请求生成用于授权调用软件开发工具包的目标功能的认证密钥,认证密钥包括身份识别信息及授权码,认证密钥与目标功能相关联;
发送单元40,用于向调用端发送由认证密钥通过非对称加密算法加密处理形成的密文,并授权调用端调用目标功能。
其中,调用端可以是设备上的应用程序。具体地,身份识别信息为应用程序的ID,可以理解地,ID具有排他性,同一设备上的每个应用程序具有唯一的值,不同应用程序的ID具有不同的值。因此,根据应用程序的ID对调用端授权,可以保障软件开发工具包中的目标功能只用在一个应用程序上。
可选地,授权码为授权截止日期。每次验证时,系统只需要先验证调用端的ID是否和认证密钥中的ID一致,再验证授权请求的发起时间是否在授权截止日期内即可。
在本方案中,通过检测调用端本地是否存储有有用于调用目标功能的密文,当不存在密文时,基于授权请求生成用于授权调用软件开发工具包的目标功能的认证密钥,并将认证密钥通过非对称加密算法加密生成密文后发送给调用端,使得再次授权时,通过将密文解密即可实现密钥验证,过程简单,提高软件开发工具包的授权过程的安全性。
根据本发明实施例的软件开发工具包的授权方法,调用端先获取软件开发工具包的本体,随后再从服务器端请求获得软件开发工具包中的目标功能的授权,也就是说,由服务器端控制软件开发工具包在调用端上的授权。
可选地,发送单元包括加密子单元,用于利用密钥对认证密钥进行加密生成密文,密钥为根据非对称加密算法生成的一对密钥。
可选地,非对称加密算法包括但不限于:RSA算法、迪菲-赫尔曼密钥算法、背包算法、Rabin算法、D-H算法、椭圆曲线加密算法等等,根据非对称加密算法生成非对称密钥。也就是说,用于加密认证密钥的公钥和用于解密认证密钥的私钥有所不同。可以理解地,将认证密钥用公钥进行加密形成密文后,再将密文发给调用端后,任何盗用该密文的调用端都无法解开密文得到授权码。只有拥有私钥的授权端(软件开发工具包的管理者)才能解开密文并对密文进行进一步地验证。
在一种实施方式中,非对称加密算法为椭圆曲线加密算法,选取一个基域Fp和定义在该域上的椭圆曲线Ep(a,b)及其上的一个拥有素数阶n的点G(xG,yG),其中有限域Fp,椭圆曲线参数a,b,阶n和基点G均是公开参数。在区间【1,n-1】中随机选取一个整数k作为私钥,计算公钥A=k*G。
在另一种实施方式中,非对称加密算法为迪菲-赫尔曼密钥算法,公钥A=gkmodp,k为私钥,g为公开目标数,p为素数。
可选地,向调用端发送由认证密钥通过非对称加密算法加密处理形成的密文,并授权调用端调用目标功能之后,调用端将密文保存在本地。从而使得调用方再次调用软件开发包的功能时,只需将密文上传,系统解密验证通过即可授权该功能。
可选地,装置还包括第二获取单元、解密单元、第一验证单元、授权单元。
第二获取单元,用于当存在密文时,获取调用端本地的密文;解密单元,用于对密文进行解密,得到调用端的身份识别信息及授权码;第一验证单元,用于将解密得到的身份识别信息与认证密钥的身份识别信息进行验证,并将解密得到的授权码与认证密钥的授权码进行验证;授权单元,用于当验证通过,授权调用端调用软件开发工具包的目标功能。可以理解地,授权端能够利用私钥对密文进行解密,从而得到调用端的身份识别信息与授权码。若其他终端截取该密文,也无法解密得到授权码,从而防止授权码被盗用。
可选地,装置还包括添加单元、第二检测单元、第三获取单元、第二解密单元、第二验证单元、第三验证单元、第二授权单元。
添加单元,用于将认证密钥中的身份识别信息及授权码添加至授权清单中,其中,与相同身份识别信息关联的多个授权码保存在授权清单中的同一身份识别信息下;第二检测单元,用于当接收到调用端发送的用于调用多个目标功能的授权请求时,检测调用端的本地是否存在调用多个目标功能的密文;第三获取单元,用于当存在多个密文,获取保存在调用端的本地的多个目标功能的密文;第二解密单元,用于利用私钥对多个密文一一进行解密,得到调用端的身份识别信息及多个授权码;第二验证单元,用于将解密得到的身份识别信息与认证密钥的身份识别信息进行验证;第三验证单元,用于当身份识别信息验证成功,将解密得到的多个授权码与授权清单中与验证成功的身份识别信息关联的多个授权码一一进行验证;第二授权单元,用于授权调用端调用其中验证成功的授权码所关联的目标功能。
在一种实施方式中,认证密钥中的身份识别信息添加至授权对象中,且每一个授权码与一个目标功能相关联,授权清单如表一所示。
可以理解地,当同一个调用端调用软件开发包多个功能时,身份识别信息的验证一次通过后,再验证各个授权码与授权清单中该验证成功的身份识别信息关联的授权码进行验证即可。如果某个功能的授权截止有效日期已经过期,则授权失败,验证成功的授权码所关联的目标功能能够授权成功。
可选地,装置还包括第二发送单元,用于当验证不通过,向调用端发送反馈信息,反馈信息包括用于提示授权失败的错误码。
可选地,当调用端本地存在密文时,且验证认证密钥中的身份识别信息与调用端的身份识别信息是否一致之后,生成单元还用于当验证不通过,基于授权请求生成的新的认证密钥;
发送单元还用于向调用端发送由新的认证密钥通过非对称加密算法加密处理形成的新的密文,以使得调用端根据新的密文更新本地的密文。
可以理解地,当存在密文且密文验证不通过时,授权端可以基于授权请求考虑是否将目标功能再次授权给该调用端,如果是,生成用于授权调用软件开发工具包的目标功能的新的认证密钥,并将新的认证密钥通过非对称加密算法加密生成新的密文后发送给调用端,调用端接收新的密文并用新的密文更新本地的密文,提高软件开发工具包的授权过程的安全性。
本发明实施例提供了一种计算机非易失性存储介质,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行以下步骤:
获取调用端发送的用于调用软件开发工具包的目标功能的授权请求,授权请求携带调用端的身份识别信息;检测调用端的本地是否存在用于调用目标功能的密文;当不存在密文时,基于授权请求生成用于授权调用软件开发工具包的目标功能的认证密钥,认证密钥包括身份识别信息及授权码,认证密钥与目标功能相关联;向调用端发送由认证密钥通过非对称加密算法加密处理形成的密文,并授权调用端调用目标功能。
可选地,在程序运行时控制存储介质所在设备执行以下步骤:当存在密文时,获取调用端本地的密文;对密文进行解密,得到调用端的身份识别信息及授权码;将解密得到的身份识别信息与认证密钥的身份识别信息进行验证,并将解密得到的授权码与认证密钥的授权码进行验证;当验证通过,授权调用端调用软件开发工具包的目标功能。
可选地,在程序运行时控制存储介质所在设备执行以下步骤:将认证密钥中的身份识别信息及授权码添加至授权清单中,其中,与相同身份识别信息关联的多个授权码保存在授权清单中的同一身份识别信息下;当接收到调用端发送的用于调用多个目标功能的授权请求时,检测调用端的本地是否存在调用多个目标功能的密文;当存在多个密文,获取保存在调用端的本地的多个目标功能的密文;对多个密文一一进行解密,得到调用端的身份识别信息及多个授权码;将解密得到的身份识别信息与授权清单中的身份识别信息进行验证;当身份识别信息验证成功,将解密得到的多个授权码与授权清单中与验证成功的身份识别信息关联的多个授权码一一进行验证;授权调用端调用其中验证成功的授权码所关联的目标功能。
可选地,在程序运行时控制存储介质所在设备执行以下步骤:当验证不通过,向调用端发送反馈信息,反馈信息包括用于提示授权失败的错误码。
图3是本发明实施例提供的一种计算机设备的示意图。如图3所示,该实施例的计算机设备100包括:处理器101、存储器102以及存储在存储器102中并可在处理器101上运行的计算机程序103,该计算机程序103被处理器101执行时实现实施例中的软件开发工具包授权方法,为避免重复,此处不一一赘述。或者,该计算机程序被处理器101执行时实现实施例中软件开发工具包的授权装置中各模型/单元的功能,为避免重复,此处不一一赘述。
计算机设备100可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。计算机设备可包括,但不仅限于,处理器101、存储器102。本领域技术人员可以理解,图3仅仅是计算机设备100的示例,并不构成对计算机设备100的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如计算机设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器101可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器102可以是计算机设备100的内部存储单元,例如计算机设备100的硬盘或内存。存储器102也可以是计算机设备100的外部存储设备,例如计算机设备100上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器102还可以既包括计算机设备100的内部存储单元也包括外部存储设备。存储器102用于存储计算机程序以及计算机设备所需的其他程序和数据。存储器102还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机装置(可以是个人计算机,服务器,或者网络装置等)或处理器(Processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

Claims (8)

1.一种软件开发工具包授权方法,其特征在于,所述方法包括:
获取调用端发送的用于调用软件开发工具包的目标功能的授权请求,所述授权请求携带所述调用端的身份识别信息;
检测所述调用端的本地是否存在用于调用所述目标功能的密文;
当不存在所述密文时,基于所述授权请求生成用于授权调用所述软件开发工具包的所述目标功能的认证密钥,所述认证密钥包括所述身份识别信息及授权码,所述授权码与所述目标功能相关联;
向所述调用端发送由所述认证密钥通过非对称加密算法加密处理形成的密文,并授权所述调用端调用所述目标功能;
其中,在所述向所述调用端发送由所述认证密钥通过非对称加密算法加密处理形成的密文,并授权所述调用端调用所述目标功能之后,所述方法还包括:
当接收到所述调用端发送的用于调用所述目标功能的授权请求时,检测所述调用端的本地是否存在所述密文;
当存在所述密文时,获取所述调用端本地的密文;
对所述密文进行解密,得到所述调用端的身份识别信息及授权码;
将解密得到的身份识别信息与所述认证密钥的身份识别信息进行验证,并将解密得到的授权码与所述认证密钥的授权码进行验证;
当所述身份识别信息与所述授权码均验证通过,授权所述调用端调用所述软件开发工具包的目标功能;
当所述身份识别信息与所述授权码均验证不通过,生成用于重新授权给所述调用端调用所述目标功能的所述认证密钥;
向所述调用端发送由所述认证密钥通过非对称加密算法加密处理形成的密文,供所述调用端将本地的所述密文更新为基于所述授权请求生成的新的所述密文,并根据新的所述密文授权所述调用端调用所述目标功能。
2.根据权利要求1所述的方法,其特征在于,在所述向所述调用端发送由所述认证密钥通过非对称加密算法加密处理形成的密文,并授权所述调用端调用所述目标功能之后,所述方法还包括:
将所述认证密钥中的身份识别信息及授权码添加至授权清单中,其中,与相同身份识别信息关联的多个所述授权码保存在所述授权清单中的同一所述身份识别信息下;
当接收到所述调用端发送的用于调用多个目标功能的授权请求时,
检测所述调用端的本地是否存在调用所述多个目标功能的密文;
当存在多个所述密文,获取保存在所述调用端的本地的所述多个目标功能的所述密文;
对多个所述密文一一进行解密,得到所述调用端的身份识别信息及多个授权码;
将解密得到的身份识别信息与所述授权清单中的身份识别信息进行验证;
当验证成功,将解密得到的多个所述授权码与所述授权清单中与验证成功的身份识别信息关联的多个授权码一一进行验证;
授权所述调用端调用其中验证成功的授权码所关联的目标功能。
3.根据权利要求1所述的方法,其特征在于,当所述身份识别信息与所述授权码均验证不通过,所述方法还包括:
向所述调用端发送反馈信息,所述反馈信息包括用于提示授权失败的错误码。
4.根据权利要求1~3中任意一项所述的方法,其特征在于,所述非对称加密算法为迪菲-赫尔曼密钥算法或椭圆曲线加密算法中的至少一种。
5.一种软件开发工具包授权装置,其特征在于,所述装置包括:
第一获取单元,用于获取调用端发送的用于调用软件开发工具包的目标功能的授权请求,所述授权请求携带所述调用端的身份识别信息;
检测单元,用于检测所述调用端的本地是否存在用于调用所述目标功能的密文;
生成单元,用于当不存在所述密文时,基于所述授权请求生成用于授权调用所述软件开发工具包的所述目标功能的认证密钥,所述认证密钥包括所述身份识别信息及授权码,所述授权码与所述目标功能相关联;
发送单元,用于向所述调用端发送由所述认证密钥通过非对称加密算法加密处理形成的密文,并授权所述调用端调用所述目标功能;
所述检测单元,还用于当接收到所述调用端发送的用于调用所述目标功能的授权请求时,检测所述调用端的本地是否存在所述密文;
第二获取单元,用于当存在所述密文时,获取所述调用端本地的密文;
解密单元,用于对所述密文进行解密,得到所述调用端的身份识别信息及授权码;
验证单元,用于将解密得到的身份识别信息与所述认证密钥的身份识别信息进行验证,并将解密得到的所述授权码与所述认证密钥的授权码进行验证;
授权单元,用于当所述身份识别信息与所述授权码均验证通过,授权所述调用端调用所述软件开发工具包的目标功能;
所述生成单元,还用于当所述身份识别信息与所述授权码均验证不通过,生成用于重新授权给所述调用端调用所述目标功能的所述认证密钥;
所述发送单元,还用于向所述调用端发送由所述认证密钥通过非对称加密算法加密处理形成的密文,供所述调用端将本地的所述密文更新为基于所述授权请求生成的新的所述密文,并根据新的所述密文授权所述调用端调用所述目标功能。
6.根据权利要求5所述的装置,其特征在于,所述非对称加密算法为迪菲-赫尔曼密钥算法或椭圆曲线加密算法中的至少一种。
7.一种计算机非易失性存储介质,所述存储介质包括存储的程序,其特征在于,在所述程序运行时控制所述存储介质所在设备执行权利要求1至4任意一项所述的软件开发工具包授权方法。
8.一种计算机设备,包括存储器和处理器,所述存储器用于存储包括程序指令的信息,所述处理器用于控制程序指令的执行,其特征在于:所述程序指令被处理器加载并执行时实现权利要求1至4任意一项所述的软件开发工具包授权方法的步骤。
CN201910042808.9A 2019-01-17 2019-01-17 一种软件开发工具包授权方法及装置 Active CN109981562B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910042808.9A CN109981562B (zh) 2019-01-17 2019-01-17 一种软件开发工具包授权方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910042808.9A CN109981562B (zh) 2019-01-17 2019-01-17 一种软件开发工具包授权方法及装置

Publications (2)

Publication Number Publication Date
CN109981562A CN109981562A (zh) 2019-07-05
CN109981562B true CN109981562B (zh) 2023-05-12

Family

ID=67076755

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910042808.9A Active CN109981562B (zh) 2019-01-17 2019-01-17 一种软件开发工具包授权方法及装置

Country Status (1)

Country Link
CN (1) CN109981562B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111104363B (zh) * 2019-12-27 2022-04-22 浪潮(北京)电子信息产业有限公司 一种fpga云平台使用方法、装置、设备、介质
CN111552928A (zh) * 2020-04-26 2020-08-18 北京学之途网络科技有限公司 一种认证方法及装置
CN114189862A (zh) * 2020-09-14 2022-03-15 中兴通讯股份有限公司 无线终端及无线终端在Uboot模式下的接口访问鉴权方法
CN112016082B (zh) * 2020-10-26 2021-01-22 成都掌控者网络科技有限公司 一种权限清单安全控制方法
CN112632481A (zh) * 2020-12-11 2021-04-09 深圳市英威腾电气股份有限公司 用于对软件进行授权的方法、终端设备及存储介质
CN112800393B (zh) * 2021-01-29 2022-08-26 深圳市商汤科技有限公司 授权认证、软件开发工具包生成方法、装置及电子设备
CN113242224B (zh) * 2021-04-30 2022-08-30 北京市商汤科技开发有限公司 授权方法及装置、电子设备和存储介质
CN115002451B (zh) * 2022-08-08 2022-11-22 合肥的卢深视科技有限公司 结构光相机的产测sdk授权方法、电子设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102930184A (zh) * 2012-10-19 2013-02-13 华为技术有限公司 一种功能组件加载方法及装置
CN103916395A (zh) * 2014-04-09 2014-07-09 北京京东尚科信息技术有限公司 一种服务调用方法、设备及系统
CN106470184A (zh) * 2015-08-14 2017-03-01 阿里巴巴集团控股有限公司 安全认证方法、装置及系统
CN106709280A (zh) * 2016-12-08 2017-05-24 北京旷视科技有限公司 信息处理方法和用于信息处理的客户端、服务器端

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102930184A (zh) * 2012-10-19 2013-02-13 华为技术有限公司 一种功能组件加载方法及装置
CN103916395A (zh) * 2014-04-09 2014-07-09 北京京东尚科信息技术有限公司 一种服务调用方法、设备及系统
CN106470184A (zh) * 2015-08-14 2017-03-01 阿里巴巴集团控股有限公司 安全认证方法、装置及系统
CN106709280A (zh) * 2016-12-08 2017-05-24 北京旷视科技有限公司 信息处理方法和用于信息处理的客户端、服务器端

Also Published As

Publication number Publication date
CN109981562A (zh) 2019-07-05

Similar Documents

Publication Publication Date Title
CN109981562B (zh) 一种软件开发工具包授权方法及装置
CN109714167B (zh) 适用于移动应用签名的身份认证与密钥协商方法及设备
US10708062B2 (en) In-vehicle information communication system and authentication method
US9185111B2 (en) Cryptographic authentication techniques for mobile devices
US9779224B2 (en) Methods and systems for client-enhanced challenge-response authentication
WO2018050081A1 (zh) 设备身份认证的方法、装置、电子设备及存储介质
US8074265B2 (en) Methods and systems for verifying a location factor associated with a token
US7596704B2 (en) Partition and recovery of a verifiable digital secret
CN110519046B (zh) 基于一次性非对称密钥对和qkd的量子通信服务站密钥协商方法和系统
CN110990827A (zh) 一种身份信息验证方法、服务器及存储介质
CN107920052B (zh) 一种加密方法及智能装置
CN110138548B (zh) 基于非对称密钥池对和dh协议的量子通信服务站密钥协商方法和系统
CN111294203B (zh) 信息传输方法
CN110505055B (zh) 基于非对称密钥池对和密钥卡的外网接入身份认证方法和系统
CN108769029B (zh) 一种对应用系统鉴权认证装置、方法及系统
CN110380859B (zh) 基于非对称密钥池对和dh协议的量子通信服务站身份认证方法和系统
CN104836784A (zh) 一种信息处理方法、客户端和服务器
CN112241527B (zh) 物联网终端设备的密钥生成方法、系统及电子设备
CN115859267A (zh) 一种应用程序安全启动的方法、存储控制芯片和电子设备
CN110493177B (zh) 基于非对称密钥池对和序列号的量子通信服务站aka密钥协商方法和系统
CN110838919B (zh) 通信方法、存储方法、运算方法及装置
CN110098925B (zh) 基于非对称密钥池对和随机数的量子通信服务站密钥协商方法和系统
CN110176989B (zh) 基于非对称密钥池的量子通信服务站身份认证方法和系统
CN109361681A (zh) 国密证书认证方法、装置及设备
EP1790116B1 (en) Method and system for managing authentication and payment for use of broadcast material

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