CN111414588B - 授权密钥生成方法和授权密钥生成装置以及授权服务器 - Google Patents

授权密钥生成方法和授权密钥生成装置以及授权服务器 Download PDF

Info

Publication number
CN111414588B
CN111414588B CN201910015883.6A CN201910015883A CN111414588B CN 111414588 B CN111414588 B CN 111414588B CN 201910015883 A CN201910015883 A CN 201910015883A CN 111414588 B CN111414588 B CN 111414588B
Authority
CN
China
Prior art keywords
license
application
ecode
authorization
authorization 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.)
Active
Application number
CN201910015883.6A
Other languages
English (en)
Other versions
CN111414588A (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.)
Hangzhou Hikvision Digital Technology Co Ltd
Original Assignee
Hangzhou Hikvision Digital 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 Hangzhou Hikvision Digital Technology Co Ltd filed Critical Hangzhou Hikvision Digital Technology Co Ltd
Priority to CN201910015883.6A priority Critical patent/CN111414588B/zh
Publication of CN111414588A publication Critical patent/CN111414588A/zh
Application granted granted Critical
Publication of CN111414588B publication Critical patent/CN111414588B/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/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/105Arrangements for software license management or administration, e.g. for managing licenses at corporate level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种用于导入应用在嵌入式设备授权的授权密钥生成方法、一种用于导入应用在嵌入式设备授权的授权密钥生成装置、一种授权服务器、一种非瞬时计算机可读存储介质、以及支持导入应用的一种嵌入式设备。基于本发明,可以由第一用户和第二用户分阶段先后发起LicenseCode以及LicenseKey的产生,其中,LicenseCode可以作为导入应用从第一用户交易至第二用户的业务流程中的附带产品、并以此实现两个阶段之间的衔接验证凭证,通过两个阶段衔接得到的LicenseKey可以导入至导入应用所在的嵌入式设备,以在嵌入式设备激活导入应用。从而,可以在兼顾导入应用交易的业务流程的前提下实现于导入应用在嵌入式设备的授权认证。

Description

授权密钥生成方法和授权密钥生成装置以及授权服务器
技术领域
本发明涉及软件授权认证领域,尤其涉及一种用于导入应用在嵌入式设备授权的授权密钥生成方法、一种用于导入应用在嵌入式设备授权的授权密钥生成装置、一种授权服务器、一种非瞬时计算机可读存储介质、以及支持导入应用的一种嵌入式设备。
背景技术
在安防领域中,通常会在监控场景中布设嵌入式设备,例如IPC(IP Camera,网络摄像机),用以提供例如视频流等基于信息采集的设备服务。若需要引入例如算法应用等其他服务对采集的信息做进一步处理,则需要借助后端的服务器来实现。
为了对嵌入式设备实施扩展以打破嵌入式设备采集、服务器后端处理的固有模式,现有技术尝试在嵌入式设备按需导入应用软件。
然而,导入应用的开发者与嵌入式设备的厂商之间需要通过业务链才能最终实现导入应用在嵌入式设备的集成,因此,如何在兼顾应用软件的交易业务流程的前提下实现导入应用软件在嵌入式设备的授权认证,成为现有技术中有待解决的技术问题。
发明内容
本发明的一个实施例提供了一种用于导入应用在嵌入式设备授权的授权密钥生成方法,所述授权密钥生成方法包括在服务器执行的如下步骤:
根据第一用户发起的应用注册请求,生成应用ID并返回给第一用户;
根据第一用户发起的授权码请求,基于授权码请求中携带的应用ID生成LicenseCode并返回给第一用户,以供第一用户将获得的LicenseCode及其对应的导入应用交易给第二用户;
根据第二用户对从第一用户交易得到的导入应用发起的授权密钥请求,校验授权密钥请求中携带的LicenseCode;
当对LicenseCode的校验成功时,基于LicenseCode生成LicenseKey并返回给第二用户。
可选地,所述基于授权码请求中携带的应用ID生成LicenseCode包括:对授权码请求中携带的应用ID加密得到LicenseCode。
可选地,所述授权密钥生成方法进一步包括:保存包含有应用ID的应用信息、以及利用该应用ID加密得到的LicenseCode。
可选地,所述校验授权密钥请求中携带的LicenseCode包括:在保存的LicenseCode中匹配授权密钥请求中携带的LicenseCode;从匹配成功的LicenseCode解密出应用ID;验证解密得到的应用ID与校验授权密钥请求中携带的应用ID的一致性。
可选地,所述基于LicenseCode生成LicenseKey包括:对包含有对应的应用ID的应用信息、授权密钥请求中携带的LicenseCode和嵌入式设备的设备标识加密得到LicenseKey的签名;以及将加密得到签名所使用的应用信息、LicenseCode、设备标识明文封装在LicenseKey中。
可选地,所述授权密钥生成方法进一步包括:根据保存的LicenseCode的有效期,删除失效的LicenseCode。
可选地,所述授权密钥生成方法进一步包括:为应用ID对应的LicenseCode设定使用次数;对基于LicenseCode生成LicenseKey的次数计数;当计数达到设定的使用次数时删除保存的该LicenseCode。
本发明的另一个实施例提供了一种用于导入应用在嵌入式设备授权的授权密钥生成装置,所述授权密钥生成装置包括:
应用注册模块,根据第一用户发起的应用注册请求,生成应用ID返回给第一用户;
授权码生成模块,根据第一用户发起的授权码请求,基于授权码请求中携带的应用ID生成LicenseCode返回给第一用户,以供第一用户将获得的LicenseCode及其对应的导入应用交易给第二用户;
授权码校验模块,根据第二用户对从第一用户交易得到的导入应用发起的授权密钥请求,校验该授权密钥请求中携带的LicenseCode;
密钥生成模块,当对LicenseCode的校验成功时,基于LicenseCode生成LicenseKey并返回给第二用户。
可选地,授权码生成模块通过对授权码请求中携带的应用ID加密得到LicenseCode。
可选地,所述授权密钥生成装置进一步包括:信息保存模块,用于保存包含有生成的应用ID的应用信息、以及利用该应用ID加密得到的LicenseCode。
可选地,授权码校验模块通过下述操作校验授权密钥请求中携带的LicenseCode:在保存的LicenseCode中匹配授权密钥请求中携带的LicenseCode;从匹配成功的LicenseCode解密出应用ID;验证解密得到的应用ID与校验授权密钥请求中携带的应用ID的一致性。
可选地,密钥生成模块对包含有对应的应用ID的应用信息、授权密钥请求中携带的LicenseCode和嵌入式设备的设备标识加密得到LicenseKey的签名;密钥生成模块还将加密得到签名所使用的应用信息、LicenseCode、设备标识明文封装在LicenseKey中。
可选地,所述授权密钥生成装置进一步包括:授权码维护模块,根据保存的LicenseCode的有效期,删除失效的LicenseCode。
可选地,所述授权密钥生成装置进一步包括:授权码维护模块,为应用ID对应的LicenseCode设定使用次数,对基于LicenseCode生成LicenseKey的次数计数,并且当计数达到设定的使用次数时清除保存的该LicenseCode。
本发明的另一个实施例提供了一种授权服务器,所述授权服务器包括处理器,所述处理器用于执行如前所述的授权密钥生成方法包括的步骤。
本发明的另一个实施例提供了一种非瞬时计算机可读存储介质,所述非瞬时计算机可读存储介质存储有指令,所述指令用于在被处理器执行时使所述处理器执行如前所述的授权密钥生成方法包括的步骤。
本发明的另一个实施例提供了一种嵌入式设备,所述嵌入式设备包括处理器,所述处理器用于运行植入应用和导入应用,其中:
所述植入应用用于提供所述导入应用接入的开放平台;
所述导入应用用于基于所述嵌入式设备的设备服务提供导入开发服务;
其中,所述导入应用中集成有软件开发工具包,所述导入应用通过调用所述软件开发工具包与所述植入应用通讯,以实现所述设备服务与所述导入开发服务的对接;
并且,被调用的所述软件开发工具包利用如前所述的授权服务器产生的授权密钥对所述导入应用在所述嵌入式设备的运行进行授权校验。
可选地,所述软件开发工具包中包含有多个OpenAPI和授权校验模块,其中:所述OpenAPI用于被所述导入应用调用以获取所述设备服务;所述授权校验模块用于对所述导入应用在所述嵌入式设备的运行进行授权校验。
如上可见,基于上述实施例,可以由第一用户和第二用户分阶段先后发起LicenseCode以及LicenseKey的产生,其中,LicenseCode可以作为导入应用从第一用户交易至第二用户的业务流程中的附带产品、并以此实现两个阶段之间的衔接验证凭证,通过两个阶段衔接得到的LicenseKey可以导入至导入应用所在的嵌入式设备,以在嵌入式设备激活导入应用。从而,可以在兼顾导入应用交易的业务流程的前提下实现于导入应用在嵌入式设备的授权认证。
附图说明
图1为一个实施例中用于导入应用在嵌入式设备授权的授权密钥生成机制的原理性示意图;
图2为基于如图1所示授权密钥生成机制的一种用于导入应用在嵌入式设备授权的授权密钥生成方法的示例行流程示意图;
图3为如图2所示授权密钥生成方法的一种具体实现流程的示意图;
图4为如图3所示具体实现流程中的LicenseCode校验流程的示意图;
图5为基于如图1所示授权密钥生成机制的一种授权服务器的硬件架构示意图;
图6为基于如图1所示授权密钥生成机制的一种用于导入应用在嵌入式设备授权的授权密钥生成装置的示例性结构示意图;
图7为如图6所示授权密钥生成装置的一种扩展结构示意图;
图8为适用于如图1所示授权密钥生成机制的LicenseKey的数据结构示意图;
图9为基于如图1所示授权密钥生成机制产生的LicenseKey在嵌入式设备对导入应用的激活认证的流程示意图;
图10为适用如图1所示授权密钥生成机制的一种基于开放平台的服务系统的框架结构示意图;
图11为基于如图10所示服务系统的服务开发机制的原理性示意图;
图12为如图10所示服务系统中的嵌入式设备基于软件开发工具包的内部服务框架的原理性示意图;
图13为图12中示出的软件开发工具包的内部架构的示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明进一步详细说明。
图1为一个实施例中用于导入应用在嵌入式设备授权的授权密钥生成机制的原理性示意图。请参见图1,在一个实施例中,用于导入应用在嵌入式设备授权的授权密钥(LicenseKey)生成机制可以包括在第一用户51与授权(License)服务器50之间交互的流程。其中,第一用户51可以是例如导入应用的应用开发者等位于业务流程上游的用户,第二用户52则可以是例如导入应用的集成商或者嵌入式设备的终端用户等位于业务流程下游的用户。如图1所示,LicenseKey生成机制的流程可以包括:
S110:第一用户51为导入应用向License服务器50发起应用注册请求。
S120:License服务器50根据第一用户51发起的应用注册请求,为请求应用注册的导入应用分配应用ID、并返回给第一用户51。其中,对于每个导入应用而言,其对应的应用ID在License服务器50是唯一的。
S130:第二用户52向第一用户51发起对导入应用的交易请求。其中,该交易请求可以采用任意的发起方式。
S140:第一用户51为请求交易的导入应用向License服务器50发起授权码请求,该授权码请求中可以携带导入应用对应的应用ID。
S150:License服务器50根据第一用户51发起的授权码请求,基于该授权码请求携带的应用ID生成授权码(LicenseCode)、并返回给第一用户51。
对于LicenseCode的产生,License服务器50可以调用加密算法对应用ID加密,并将对应用ID的加密结果作为LicenseCode。其中,对应用ID的加密可以采用非对称加密方式,例如,先利用ECC(Elliptic Curves Cryptography,椭圆曲线密码编码学)算法对应用ID加密、再利用Base32算法ECC加密结果进行二次加密。该加密过程可以用如下的表达式(1)来表示:
Base32(ECC(应用ID)) (1)
License服务器50还可以将基于应用ID产生的LicenseCode、以及包含该应用ID的应用信息保存至数据库中。其中,应用信息可以包括导入应用的应用名称、导入应用的应用ID、以及导入应用的有效版本。并且,License服务器50还可以记录并维护LicenseCode的有效期和/或使用次数。
LicenseCode的有效期和使用次数可以由第一用户51设定,例如,LicenseCode的使用次数可以设定为一次或者多次,对于使用次数为一次的LicenseCode,每当基于该LicenseCode生成LicenseKey后,即从数据库中删除已保存的该LicenseCode;而对于使用次数为多次的LicenseCode,License服务器50可以对基于该LicenseCode生成LicenseKey的次数计数,当计数达到设定的使用次数时清除保存的该LicenseCode。第一用户51对不同设定方式的选择,可以具体参考交易特点和交易成本。
S160:第一用户51将获得的LicenseCode及其对应的导入应用交易给第二用户52。其中,该交易方式可以采用任意途径实现。
S170:第二用户52对从第一用户51交易得到的导入应用发起授权密钥请求。其中,授权密钥请求中可以携带导入应用对应的LicenseCode。
S180:License服务器50根据第二用户52发起的授权密钥请求,校验授权密钥请求携带的LicenseCode。
对LicenseCode的校验,一方面是验证其是否为License服务器50产生、且当前处于有效期内的LicenseCode,另一方面则是验证其对应的应用ID是否被篡改。基于这两方面的校验,可以避免基于伪造、失效(超出有效期或无剩余使用次数)或被篡改的LicenseCode触发产生LicenseKey。
S190:当对LicenseCode的校验成功时,License服务器50基于该LicenseCode生成LicenseKey、并返回给第二用户52。
LicenseKey的产生包括LicenseKey的签名生成以及LicenseKey的封装。
对于LicenseKey的签名,License服务器50可以调用加密算法对包含有对应的应用ID的应用信息(保存在数据库中)、LicenseCode和嵌入式设备的设备标识(与LicenseCode一起携带在授权密钥请求中)以及LicenseKey的版本信息和有效期一起加密得到LicenseKey的签名。其中,嵌入式设备的设备标识可以包括该嵌入式设备的设备序列号或者MAC(Media Access Control,媒体接入控制)地址。
生成签名的加密算法的加密等级可以高于产生LicenseCode的加密算法。例如,可以先后采用基于公钥的RSA算法和Base64算法对应用信息以及LicenseCode和设备标识进行二级加密。该加密过程可以用如下的表达式(2)来表示:
Base64(RSA(应用名:应用ID:LicenseCode:设备标识:应用有效版本)) (2)
并且,用于生成签名的应用信息、LicenseCode、设备标识明文封装在LicenseKey。
从上述流程可见,LicenseKey的产生主要是在License服务器50的一侧完成的,相应地,可以认为是在License服务器50实现了一种用于导入应用在嵌入式设备授权的授权密钥生成方法。
图2为基于如图1所示授权密钥生成机制的一种用于导入应用在嵌入式设备授权的授权密钥生成方法的示例行流程示意图。请参见图2,该密钥生成方法包括在License服务器执行的如下步骤:
S210:根据第一用户发起的应用注册请求,生成应用ID并返回给第一用户。
S220:根据第一用户发起的授权码请求,基于授权码请求中携带的应用ID生成LicenseCode并返回给第一用户。
S230:根据第二用户发起的授权密钥请求,校验该授权密钥请求中携带的LicenseCode。
S240:判断校验是否成功,若校验成功,则执行S250,否则执行S260。
S250:当对LicenseCode的校验成功时,基于LicenseCode生成LicenseKey并返回给第二用户。
S260:当对LicenseCode的校验失败时,向第二用户发送报错信息。
至此,上述流程结束。
图3为如图2所示授权密钥生成方法的一种具体实现流程的示意图。请参见图3,该授权密钥生成方法的具体实现流程可以包括在License服务器执行的如下步骤:
S310:根据第一用户发起的应用注册请求,生成应用ID并返回给第一用户。
S320:根据第一用户发起的授权码请求,对授权码请求中携带的应用ID加密得到LicenseCode并返回给第一用户。例如,先后利用先利用ECC算法和Base32算法对应用ID进行两级加密。
S330:保存对应用ID加密得到的LicenseCode、以及包含该应用ID的应用信息。
由于LicenseCode都可以设定有效期和/或使用次数,因此,对于通过本步骤保存的LicenseCode而言,License服务器也可以根据保存的LicenseCode的有效期和/或使用此处,实时删除由于超出有效期或无剩余次数而失效的LicenseCode。
S340:根据第二用户发起的授权密钥请求,校验该授权密钥请求中携带的LicenseCode。
S350:判断校验是否成功,若校验成功,则执行S361和S362,否则执行S370。
S361:当对LicenseCode的校验成功时,对包含有对应的应用ID的应用信息、授权密钥请求中携带的LicenseCode和嵌入式设备的设备标识加密得到LicenseKey的签名;
S362:将加密得到签名所使用的应用信息、LicenseCode、设备标识明文封装在LicenseKey中。
S370:当对LicenseCode的校验失败时,向第二用户发送报错信息。
至此,上述流程结束。
如前文所述,对LicenseCode的校验是为了验证其是否为伪造、失效或被篡改的LicenseCode。为了实现这样的验证,
图4为如图3所示具体实现流程中的LicenseCode校验流程的示意图。请参见图4,图3中校验LicenseCode的过程可以通过如下步骤来实现:
S410:在保存的LicenseCode中匹配授权密钥请求中携带的LicenseCode。
S420:判断是否存在匹配的LicenseCode,若是,则执行S430,否则,有可能授权密钥请求中携带的LicenseCode不是由License服务器产生的、或者由于超过有效期而被License服务器删除,此时,执行S470。
S430:从匹配成功的LicenseCode解密出应用ID。
本步骤中对LicenseCode的解密,可以采用产生LicenseCode时对应用ID采用的加密算法的逆向解密算法。例如,先后利用先利用ECC算法和Base32算法对应用ID进行两级加密产生LicenseCode,则本步骤先后利用Base32算法和ECC算法对LicenseCode解密。
S440:验证解密得到的应用ID与校验授权密钥请求中携带的应用ID的一致性。
S450:判断一致性验证是否成功,若是,则执行S460,否则执行S470。
S460:产生表示校验通过的校验结果,然后即可通过如图3中S360的判断而依次执行S361和S362产生LicenseKey。
S470:产生表示校验失败的校验结果,然后即可通过如图3中S360的判断而跳转至S370报错。
另外,为了避免LicenseCode和嵌入式设备被重复用于请求LicenseKey的情况,如图3所示流程可以在S361之前检查对LicenseCode和嵌入式设备的使用情况,若发现已用于产生LicenseKey的LicenseCode和嵌入式设备被再次用于申请LicenseKey,则可以跳过S361和S362、并直接调取已产生过的LicenseKey返回给第二用户。
上述的授权密钥生成方法可以在License服务器50中以计算机程序的形式来实现。
图5为基于如图1所示授权密钥生成机制的一种授权服务器的硬件架构示意图。如同与5所示,在一个实施例中,License服务器50可以包括处理器501和非瞬时计算机可读存储介质502,其中,非瞬时计算机可读存储介质502中存储有可供处理器501执行上述授权密钥生成方法的各步骤的指令。另外,License服务器50还可以包括支持数据库的大容量存储介质503,用以存储对应用ID加密得到的LicenseCode、以及包含该应用ID的应用信息,存储LicenseCode的有效期、使用次数,存储LicenseCode和嵌入式设备的使用情况,存储产生过的LicenseKey,以及存储其他可能需要保存的信息。
图6为基于如图1所示授权密钥生成机制的一种用于导入应用在嵌入式设备授权的授权密钥生成装置的示例性结构示意图。如图6所示,对于以计算机程序的形式实现上述授权密钥生成方法的License服务器而言,可以认为其承载了一种授权密钥生成装置,并且,该授权密钥生成装置包括如下的功能模块:
应用注册模块610,根据第一用户发起的应用注册请求,生成应用ID返回给第一用户。
授权码生成模块620,根据第一用户发起的授权码请求,基于授权码请求中携带的应用ID生成LicenseCode返回给第一用户。例如,授权码生成模块620可以通过对授权码请求中携带的应用ID加密得到LicenseCode。
授权码校验模块630,根据第二用户发起的授权密钥请求,校验该授权密钥请求中携带的LicenseCode。
密钥生成模块640,当对LicenseCode的校验成功时,基于LicenseCode生成LicenseKey并返回给第二用户。
图7为如图6所示授权密钥生成装置的一种扩展结构示意图。相比于图6,授权密钥生成装置还可以进一步包括信息保存模块650,用于保存包含有生成的应用ID的应用信息、以及利用该应用ID加密得到的LicenseCode。对于授权密钥生成装置包括信息保存模块650的情况:
授权码校验模块630可以通过下述操作校验授权密钥请求中携带的LicenseCode:在保存的LicenseCode中匹配授权密钥请求中携带的LicenseCode;从匹配成功的LicenseCode解密出应用ID;验证解密得到的应用ID与校验授权密钥请求中携带的应用ID的一致性。
密钥生成模块640可以对包含有对应的应用ID的应用信息、授权密钥请求中携带的LicenseCode和嵌入式设备的设备标识加密得到LicenseKey的签名;并且,密钥生成模块640还可以将加密得到签名所使用的应用信息、LicenseCode、设备标识明文封装在LicenseKey中。
在图7中,授权密钥生成装置还包括授权码维护模块660,用于根据保存的LicenseCode的有效期,删除失效的LicenseCode。并且,授权码维护模块660还可以用于为应用ID对应的LicenseCode设定使用次数,并对基于LicenseCode生成LicenseKey的次数计数,当计数达到设定的使用次数时清除保存的该LicenseCode,使用次数达上限的LicenseCode也属于失效的LicenseCode。
基于前文所述的授权密钥生成方法、授权密钥生成装置以及License服务器,可以得到用于导入应用在嵌入式设备授权的LicenseKey,其可以具有包含签名的密文部分、以及加密生成签名所使用信息的明文部分,通过对密文部分解密后与明文部分的一致性校验、密文部分解密得到的应用信息和设备标识与导入应用和嵌入式设备的匹配,即可实现导入应用在嵌入式设备的激活认证。
图8为适用于如图1所示授权密钥生成机制的LicenseKey的数据结构示意图。请参见图2,基于上述流程,得到的LicenseKey 500包括封装部分500a、明文部分500b以及密文部分500c。
封装部分500a包括:LicenseKey的版本信息510(例如表示试用版或正式版的版本类型或标识版本演进的版本号和LicenseKey的有效期520。
明文部分500b包括:应用名称530,应用ID 540,应用的有效版本范围550(可以由起始版本和结束版本来限定范围、并可以支持主次版本的双序列版本号),设备标识560(例如嵌入式设备的设备序列号或MAC地址),以及,LicenseCode 570。
密文部分500c则包括签名580。
具有上述数据结构的LicenseKey返回给第二用户52后,只要与导入应用共同导入至嵌入式设备中,即可实现导入应用在该嵌入式设备的激活。
图9为基于如图1所示授权密钥生成机制产生的LicenseKey在嵌入式设备对导入应用的激活认证的流程示意图。请参见图9,LicenseKey在导入嵌入式设备后实现的激活认证流程包括:
S910:识别LicenseKey是否在有效期内,若是,则执行S920,否则,激活认证失败并结束本流程。
S920:从LicenseKey的密文部分解析得到签名。
S930:对签名解密。其中,在嵌入式设备中对签名的解密可以使用与License服务器加密形成签名的逆向算法。
S940:检验对签名解密后得到的应用信息、LicenseCode、设备标识与明文部分的一致性。
S950:判断一致性检验是否成功,若是,则执行S960,否则,激活认证失败并结束本流程。
S960:判断对签名解密后得到的应用信息是否与导入应用匹配,例如,判断导入应用的当前版本是否处在应用信息中的有效版本范围内,若是,则执行S970,否则,激活认证失败并结束本流程。
S970:判断对签名解密后得到的设备标识是否与嵌入式设备匹配,若是,在嵌入式设备成功激活导入应用,否则,激活认证失败并结束本流程。
为了更好地理解LicenseKey在嵌入式设备的应用,下面,结合一应用场景进行详细说明。
图10为适用如图1所示授权密钥生成机制的一种基于开放平台的服务系统的框架结构示意图,请参见图10,在一个实施例中,一种基于开放平台的服务系统包括嵌入式设备10、设备客户端20以及第三方客户端30。
在图10中,嵌入式设备10装载有设备主应用200和第三方应用300。设备主应用200则是嵌入式设备10出厂自带的应用,可选地,嵌入式设备10还可以装在出厂自带的设备子应用210。设备主应用200和设备子应用210可以认为是嵌入式设备的植入应用。
第三方应用300则是嵌入式设备10出厂后导入的应用,因此,第三方应用300即属于可以使用LicenseKey激活的导入应用。
设备主应用200、设备子应用210以及第三方应用300可以共享嵌入式设备10的硬件资源100。例如,共享的硬件资源100可以包括:
处理器110,用于运行设备主应用200、设备子应用210以及第三方应用300的处理器110;
AI(Artificial Intelligence,人工智能)芯片120,用于提供智能分析算法(Intelligent Analysis Algorithm)的硬件支持;
非易失性存储介质130,例如FLASH(闪存)等,用于存储设备主应用200、设备子应用210以及第三方应用300的应用包;
易失性存储介质140,例如DDR(Double Data Rate,双倍速率)内存等,用于设备主应用200、设备子应用210、第三方应用300运行缓存;
网卡150,用于嵌入式设备10的网络交互;以及,外设接口160,用于嵌入式设备10的报警输出。
嵌入式设备10通过运行设备主应用200或者同时运行设备主应用200和设备子应用210,可以支持各种设备服务的正常提供,设备服务具体可以包括视频流(例如YUV视频流)、报警、录像、图片、日志、网络、时间、元数据(metadata)结构化信息等。可以理解的是,此处仅仅是对设备服务的举例说明,设备服务的范围可以不限于此。
嵌入式设备10通过运行设备主应用200还可以与设备客户端20交互,以接受设备客户端20对嵌入式设备10的管理。
另外,嵌入式设备10通过运行设备主应用200,可以提供用于第三方应用300接入的开放平台(Open Platform)。在本实施例中,开放平台可以认为是开放给第三方集成商基于第三方应用300进行服务开发的平台,第三方集成商提供的每个第三方应用300可以通过集成的SDK(Software Development Kit,软件开发工具包)400接入开放平台,从而集成到嵌入式设备10中。由于第三方应用300中集成的SDK 400是对第三方开放的,因此,SDK 400也可以称为OpenSDK(Open Software Development Kit,开放式软件开发工具包)。
嵌入式设备10通过运行第三方应用300可以基于嵌入式设备10的设备服务而提供第三方开发服务310,即,可以允许第三方集成商利用第三方应用300而在嵌入式设备10开发处可提供给第三方客户端30的第三方开发服务310。
图11为基于如图10所示服务系统的服务开发机制的原理性示意图。请参见图11,嵌入式设备10的设备厂商71为了支持第三方应用300的接入,可以向第三方集成商73提供用于接入开放平台的OpenSDK 400;第三方集成商73可以根据开发需求从应用开发者72选择相应的第三方应用300、并将OpenSDK 400与第三方应用300编译封装在一个应用包中,然后即可导入至嵌入式设备10。例如,设备厂商71可以提供一个门户平台,用于第三方集成商73在线执行应用包的封装以及向嵌入式设备10的导入。
由此,通过在嵌入式设备10导入集成有OpenSDK 400的各种第三方应用300,即可由导入的第三方应用300通过OpenSDK 400在嵌入式设备10获取设备服务、并基于设备服务提供相应的第三方开发服务310。
第三方开发服务310可以包括智能AI、云服务(Cloud Service)、终端体验、智能家居(Smart Home)、第三方平台接入(Third Party Platform Access)等,其中,智能AI可以提供更精准的智能算法服务,例如分析算法(Intelligent Analysis Algorithm);云服务可以对接各种定制化协议用于云存储、健康监测服务等;终端体验可以提供报警推送、可视化数据分析等服务。从而,基于各种第三方开发服务310,可以构建形成基于开放平台的智能生态圈。
如前所述,每个第三方应用300中集成有OpenSDK 400,并且,每个第三方应用300通过调用其集成的OpenSDK 400与设备主应用200通讯,以实现设备服务与第三方开发服务310的对接。
对于图11所示的场景,第三方应用300(导入应用)的应用开发者72可以是如图1所示的授权密钥生成机制中的第一用户51、并向图1中的License服务器50请求获取LicenseCode。从应用开发者72直接交易获取第三方应用300(导入应用)的第三方集成商73、或者通过第三方集成商73间接交易获取第三方应用300(导入应用)的设备客户端20的终端用户(其也可以是嵌入式设备10的所有者或掌控者),都可以作为如图1所示的授权密钥生成机制中的第二用户52、并利用从应用开发者72交易获取到的LicenseCode向申请LicenseKey。
而利用LicenseKey进行激活认证的流程,即,如图9所示的流程,可以由第三方应用300通过调用其集成的OpenSDK 400来执行。
另外,被第三方应用300调用的OpenSDK 400可以对该第三方应用300获取设备服务的权限进行权限控制,而这样的权限控制是根据设备主应用200对第三方应用300的权限鉴权执行的,并且,设备主应用200对第三方应用300的权限鉴权依据的是来自设备客户端20的权限配置。
图12为如图10所示服务系统中的嵌入式设备基于软件开发工具包的内部服务框架的原理性示意图。如图12所示,每个第三方应用300集成的OpenSDK 400可以看作使该第三方应用300与设备主应用200之间的通讯桥梁。
图13为图12中示出的软件开发工具包的内部架构的示意图。如图13所示,作为第三方应用300与设备主应用200之间的通讯桥梁的OpenSDK 400,其中可以包含多个OpenAPI(Open Application Programming Interface,开放应用程序编程接口)420,这些OpenAPI420用于被第三方应用300调用以获取设备服务。
具体地,OpenSDK 400中的OpenAPI 420可以包括服务调用API 421和协议调用API422,其中,服务调用API 421用于为第三方应用300获取对应的设备服务提供调用接口,协议调用API 422用于为第三方应用300与设备主应用200通讯使用对应的通讯协议提供调用接口。
并且,OpenSDK 400中还可以包含权限管理及授权校验模块410,用于对第三方应用300在嵌入式设备10的运行进行授权校验、以及对第三方应用300调用多个OpenAPI420的权限进行权限控制。
也就是,利用LicenseKey进行激活认证的流程,即,如图9所示的流程,可以由权限管理及授权校验模块410来执行。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

Claims (18)

1.一种用于导入应用在嵌入式设备授权的授权密钥生成方法,其特征在于,所述授权密钥生成方法包括在服务器执行的如下步骤:
根据第一用户发起的应用注册请求,生成应用ID并返回给第一用户;
根据第一用户发起的授权码请求,基于授权码请求中携带的应用ID生成LicenseCode并返回给第一用户,以供第一用户将获得的LicenseCode及其对应的导入应用交易给第二用户;
根据第二用户对从第一用户交易得到的导入应用发起的授权密钥请求,校验授权密钥请求中携带的LicenseCode;
当对LicenseCode的校验成功时,基于LicenseCode生成LicenseKey并返回给第二用户。
2.根据权利要求l所述的授权密钥生成方法,其特征在于,所述基于授权码请求中携带的应用ID生成LicenseCode包括:
对授权码请求中携带的应用ID加密得到LicenseCode。
3.根据权利要求2所述的授权密钥生成方法,其特征在于,所述授权密钥生成方法进一步包括:
保存包含有应用ID的应用信息、以及利用该应用ID加密得到的LicenseCode。
4.根据权利要求3所述的授权密钥生成方法,其特征在于,所述校验授权密钥请求中携带的LicenseCode包括:
在保存的LicenseCode中匹配授权密钥请求中携带的LicenseCode;
从匹配成功的LicenseCode解密出应用ID;
验证解密得到的应用ID与校验授权密钥请求中携带的应用ID的一致性。
5.根据权利要求3所述的授权密钥生成方法,其特征在于,所述基于LicenseCode生成LicenseKey包括:
对包含有对应的应用ID的应用信息、授权密钥请求中携带的LicenseCode和嵌入式设备的设备标识加密得到LicenseKey的签名;以及
将加密得到签名所使用的应用信息、LicenseCode、设备标识明文封装在LicenseKey中。
6.根据权利要求3所述的授权密钥生成方法,其特征在于,所述授权密钥生成方法进一步包括:
根据保存的LicenseCode的有效期,删除失效的LicenseCode。
7.根据权利要求l所述的授权密钥生成方法,其特征在于,所述授权密钥生成方法进一步包括:
为应用ID对应的LicenseCode设定使用次数;
对基于LicenseCode生成LicenseKey的次数计数;
当计数达到设定的使用次数时删除保存的该LicenseCode。
8.一种用于导入应用在嵌入式设备授权的授权密钥生成装置,其特征在于,所述授权密钥生成装置包括:
应用注册模块,根据第一用户发起的应用注册请求,生成应用ID返回给第一用户;
授权码生成模块,根据第一用户发起的授权码请求,基于授权码请求中携带的应用ID生成LicenseCode返回给第一用户,以供第一用户将获得的LicenseCode及其对应的导入应用交易给第二用户;
授权码校验模块,根据第二用户对从第一用户交易得到的导入应用发起的授权密钥请求,校验该授权密钥请求中携带的LicenseCode;
密钥生成模块,当对LicenseCode的校验成功时,基于LicenseCode生成LicenseKey并返回给第二用户。
9.根据权利要求8所述的授权密钥生成装置,其特征在于,授权码生成模块通过对授权码请求中携带的应用ID加密得到LicenseCode。
10.根据权利要求9所述的授权密钥生成装置,其特征在于,所述授权密钥生成装置进一步包括:
信息保存模块,用于保存包含有生成的应用ID的应用信息、以及利用该应用ID加密得到的LicenseCode。
11.根据权利要求10所述的授权密钥生成装置,其特征在于,授权码校验模块通过下述操作校验授权密钥请求中携带的LicenseCode:
在保存的LicenseCode中匹配授权密钥请求中携带的LicenseCode;
从匹配成功的LicenseCode解密出应用ID;
验证解密得到的应用ID与校验授权密钥请求中携带的应用ID的一致性。
12.根据权利要求10所述的授权密钥生成装置,其特征在于,
密钥生成模块对包含有对应的应用ID的应用信息、授权密钥请求中携带的LicenseCode和嵌入式设备的设备标识加密得到LicenseKey的签名;
密钥生成模块还将加密得到签名所使用的应用信息、LicenseCode、设备标识明文封装在LicenseKey中。
13.根据权利要求10所述的授权密钥生成装置,其特征在于,所述授权密钥生成装置进一步包括:
授权码维护模块,根据保存的LicenseCode的有效期,删除失效的LicenseCode。
14.根据权利要求10所述的授权密钥生成装置,其特征在于,所述授权密钥生成装置进一步包括:
授权码维护模块,为应用ID对应的LicenseCode设定使用次数,对基于LicenseCode生成LicenseKey的次数计数,并且当计数达到设定的使用次数时清除保存的该LicenseCode。
15.一种授权服务器,其特征在于,所述授权服务器包括处理器,所述处理器用于执行如权利要求1至7中任一项所述的授权密钥生成方法包括的步骤。
16.一种非瞬时计算机可读存储介质,其特征在于,所述非瞬时计算机可读存储介质存储有指令,所述指令用于在被处理器执行时使所述处理器执行如权利要求l至7中任一项所述的授权密钥生成方法包括的步骤。
17.一种嵌入式设备,其特征在于,所述嵌入式设备包括处理器,所述处理器用于运行植入应用和导入应用,其中:
所述植入应用用于提供所述导入应用接入的开放平台;
所述导入应用用于基于所述嵌入式设备的设备服务提供导入开发服务;
其中,所述导入应用中集成有软件开发工具包,所述导入应用通过调用所述软件开发工具包与所述植入应用通讯,以实现所述设备服务与所述导入开发服务的对接;
并且,被调用的所述软件开发工具包利用如权利要求l5所述的授权服务器产生的授权密钥对所述导入应用在所述嵌入式设备的运行进行授权校验。
18.根据权利要求l7所述的嵌入式设备,其特征在于,所述软件开发工具包中包含有多个OpenAPI和授权校验模块,其中:
所述OpenAPI用于被所述导入应用调用以获取所述设备服务;
所述授权校验模块用于对所述导入应用在所述嵌入式设备的运行进行授权校验。
CN201910015883.6A 2019-01-08 2019-01-08 授权密钥生成方法和授权密钥生成装置以及授权服务器 Active CN111414588B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910015883.6A CN111414588B (zh) 2019-01-08 2019-01-08 授权密钥生成方法和授权密钥生成装置以及授权服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910015883.6A CN111414588B (zh) 2019-01-08 2019-01-08 授权密钥生成方法和授权密钥生成装置以及授权服务器

Publications (2)

Publication Number Publication Date
CN111414588A CN111414588A (zh) 2020-07-14
CN111414588B true CN111414588B (zh) 2023-03-31

Family

ID=71494189

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910015883.6A Active CN111414588B (zh) 2019-01-08 2019-01-08 授权密钥生成方法和授权密钥生成装置以及授权服务器

Country Status (1)

Country Link
CN (1) CN111414588B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112256352A (zh) * 2020-10-29 2021-01-22 成都菁蓉联创科技有限公司 嵌入式操作系统授权启动的方法、装置和一种计算机系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103577724A (zh) * 2012-08-10 2014-02-12 中兴通讯股份有限公司 一种基于iptv第三方应用的版权保护方法及装置
CN103795692A (zh) * 2012-10-31 2014-05-14 中国电信股份有限公司 开放授权方法、系统与认证授权服务器
CN106230598A (zh) * 2016-07-29 2016-12-14 深圳兆日科技股份有限公司 移动终端第三方应用安全认证方法和装置
CN107526947A (zh) * 2017-09-26 2017-12-29 重庆市珞宾信息技术有限公司 一种嵌入式软件激活控制方法
CN108599959A (zh) * 2018-04-28 2018-09-28 深圳Tcl数字技术有限公司 授权证书校验方法、装置及可读存储介质、应用设备

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SG10201509221YA (en) * 2015-11-06 2017-06-29 Huawei Int Pte Ltd System and method for managing installation of an application package requiring high-risk permission access

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103577724A (zh) * 2012-08-10 2014-02-12 中兴通讯股份有限公司 一种基于iptv第三方应用的版权保护方法及装置
CN103795692A (zh) * 2012-10-31 2014-05-14 中国电信股份有限公司 开放授权方法、系统与认证授权服务器
CN106230598A (zh) * 2016-07-29 2016-12-14 深圳兆日科技股份有限公司 移动终端第三方应用安全认证方法和装置
CN107526947A (zh) * 2017-09-26 2017-12-29 重庆市珞宾信息技术有限公司 一种嵌入式软件激活控制方法
CN108599959A (zh) * 2018-04-28 2018-09-28 深圳Tcl数字技术有限公司 授权证书校验方法、装置及可读存储介质、应用设备

Also Published As

Publication number Publication date
CN111414588A (zh) 2020-07-14

Similar Documents

Publication Publication Date Title
CN107483509B (zh) 一种身份验证方法、服务器及可读存储介质
CN108173662B (zh) 一种设备的认证方法和装置
US11196745B2 (en) Blockchain-based account management
CN107483419B (zh) 服务器认证接入终端的方法、装置、系统、服务器及计算机可读存储介质
CN110264354B (zh) 创建区块链账户及验证区块链交易的方法及装置
CN111131416B (zh) 业务服务的提供方法和装置、存储介质、电子装置
CN100512201C (zh) 用于处理分组业务的接入-请求消息的方法
TW201215070A (en) Key Management Systems and methods for shared secret ciphers
CN108243188B (zh) 一种接口访问、接口调用和接口验证处理方法及装置
CN111131336B (zh) 多方授权场景下的资源访问方法、装置、设备及存储介质
CN107846396A (zh) 存储器系统及其与主机之间的绑定方法
US11811739B2 (en) Web encryption for web messages and application programming interfaces
CN105447715A (zh) 用于与第三方合作的防盗刷电子优惠券的方法和装置
CN104753674A (zh) 一种应用身份的验证方法和设备
CN111199486B (zh) 一种基于区块链网络的数据处理方法、装置及存储介质
CN113395406B (zh) 一种基于电力设备指纹的加密认证方法及系统
CN111414640A (zh) 秘钥访问控制方法和装置
CN111241492A (zh) 一种产品多租户安全授信方法、系统及电子设备
CN111414588B (zh) 授权密钥生成方法和授权密钥生成装置以及授权服务器
CN113114610B (zh) 一种取流方法、装置及设备
CN112437068A (zh) 认证及密钥协商方法、装置和系统
US10194033B2 (en) Charging record authentication for anonymized network service utilization
CN108123917A (zh) 一种物联网终端的认证凭证更新的方法及设备
CN114338091B (zh) 数据传输方法、装置、电子设备及存储介质
CN115622812A (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