CN112287305A - 一种数据处理方法、用户锁及服务端 - Google Patents

一种数据处理方法、用户锁及服务端 Download PDF

Info

Publication number
CN112287305A
CN112287305A CN202011192680.3A CN202011192680A CN112287305A CN 112287305 A CN112287305 A CN 112287305A CN 202011192680 A CN202011192680 A CN 202011192680A CN 112287305 A CN112287305 A CN 112287305A
Authority
CN
China
Prior art keywords
lock
user
development
control lock
storage area
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.)
Granted
Application number
CN202011192680.3A
Other languages
English (en)
Other versions
CN112287305B (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.)
Beijing Senseshield Technology Co Ltd
Original Assignee
Beijing Senseshield Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Senseshield Technology Co Ltd filed Critical Beijing Senseshield Technology Co Ltd
Priority to CN202011192680.3A priority Critical patent/CN112287305B/zh
Publication of CN112287305A publication Critical patent/CN112287305A/zh
Application granted granted Critical
Publication of CN112287305B publication Critical patent/CN112287305B/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
    • 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/602Providing cryptographic facilities or services

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (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)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Abstract

本申请公开了一种数据处理方法、用户锁及服务端,该方法应用于用户锁时,包括:获取服务端发送的第一数据包,其中,第一数据包为服务端响应第一请求而生成的数据包,第一请求为利用第一控制锁生成的请求,第一控制锁用于对第一开发端的开发数据进行加密,以及签发相应的许可文件;基于第一数据包,确定用户锁中与第一控制锁相对应的第一存储区,其中,用户锁包括至少两个存储区域;将第一许可文件存储到第一存储区;其中,第一许可文件为利用第一控制锁为第二开发端签发的许可文件,以使第二开发端能够通过用户锁使用开发数据。该方法能够在对开发数据进行多层次的开发过程中,减少用户锁的数量,使整个使用过程简单,逻辑清晰,易于管理。

Description

一种数据处理方法、用户锁及服务端
技术领域
本申请涉及软件加密和版权管理领域,特别涉及一种数据处理方法、用户锁及服务端。
背景技术
在对软件等开发数据进行开发和管理的行业中,往往具有相应的产业链条,上游链的开发者提供开发包或开发设备,下游产业链进行二次开发或者二次组装,甚至是更多次开发和组装。例如,第一开发者开发出了目标软件,第二开发者需要在原始的目标软件的基础上进行再次开发,以形成最终的产品并售卖到消费者手中。可见对于一个完整的产品,要经历许多的开发者进行多次各自的开发步骤才能最终成型。
对于每层开发者而言,其所提供的无论是软件还是硬件,都需要做数据的保护和版权管理,保护自己的开发数据不被侵犯,而通常在产业链上,开发者可以使用加密锁(包括控制锁和用户锁)来完成对软件或基于软件的自我开发数据的加密和授权。
但是目前多层的开发者使用加密锁的方法较为混乱,每一层的开发者都使用单独的用户锁为下一层的开发者授权,下一层的开发者或最终用户需要同时使用多把用户锁才能基于该软件进行自己的开发操作和开发数据保护,或正常使用该软件,可见该加密锁的使用过程繁杂不易管理。
发明内容
本申请实施例的目的在于提供一种数据处理方法、用户锁及服务端,该方法在多层开发者对同一个软件或与之相关联的开发数据进行开发的过程中,减少所使用的用户锁的数量,为每层的开发者提供便利的同时也有利于对自我开发数据进行保护。
为了解决上述技术问题,本申请的实施例采用了如下技术方案:一种一种数据处理方法,应用于用户锁,所述方法包括:
获取服务端发送的第一数据包,其中,所述第一数据包为所述服务端响应第一请求而生成的数据包,所述第一请求为利用第一控制锁生成的请求,所述第一控制锁用于对第一开发端的开发数据进行加密,以及签发相应的许可文件;
基于所述第一数据包,确定所述用户锁中与所述第一控制锁相对应的第一存储区,其中,所述用户锁包括至少两个存储区域,所述至少两个存储区域包括所述第一存储区;
将第一许可文件存储到所述第一存储区中;其中,所述第一许可文件为利用所述第一控制锁为第二开发端签发的许可文件,以使所述第二开发端能够通过所述用户锁使用所述第一开发端的开发数据。
作为可选,所述至少两个存储区域还包括与第二控制锁对应的第二存储区;其中,所述第二控制锁用于对第二开发端的开发数据进行加密,以及签发相应的许可文件;所述第二存储区用于存储第二许可文件,所述第二许可文件为利用所述第二控制锁为第三开发端/最终用户端签发的许可文件,以使所述第三开发端/最终用户端能够通过所述用户锁使用所述第一开发端的开发数据和所述第二开发端的开发数据。
作为可选,基于所述第一数据包,确定所述用户锁中与所述第一控制锁相对应的第一存储区,包括:
从所述第一数据包中获取第一标识,所述第一标识用于唯一标识所述第一控制锁;
基于所述第一标识,确定所述用户锁中与所述第一控制锁相对应的第一存储区。
作为可选,所述的基于所述第一标识,确定所述用户锁中与所述第一控制锁相对应的第一存储区,包括:
基于所述第一标识和所述用户锁中的预设关系表,确定所述第一开发端对应的第一存储区。
作为可选,所述第一数据包包括开发端证书;基于所述第一数据包,确定所述用户锁中与所述第一控制锁相对应的第一存储区的步骤,包括:
基于所述开发端证书确定相应的第一开发端的身份信息;
在所述身份信息符合要求的情况下,在所述用户锁中为所述第一开发端划定相对应的第一存储区。
作为可选,在获取服务端发送的第一数据包之后,所述方法还包括:
利用服务端公钥对第一数据包进行验签,其中所述第一数据包被与所述服务端公钥相对应的服务端私钥签名;
如果所述验签通过,则确定所述服务端的身份合法。
作为可选,其中,
所述第一控制锁针对所述用户锁进行操作的权限大于所述第二控制锁;或者,
所述第一控制锁针对所述用户锁进行操作的权限与所述第二控制锁相同。
本申请实施例还提供了一种数据处理方法,应用于服务端,所述方法包括:
获取第一请求,其中,所述第一请求为利用第一控制锁生成的请求,所述第一控制锁用于对第一开发端的开发数据进行加密,以及签发相应的许可文件;
响应于所述第一请求,生成与所述第一请求对应的第一数据包;
将所述第一数据包发送给与所述第一控制锁相关联的用户锁,以使所述用户锁基于所述第一数据包确定所述用户锁中与所述第一控制锁相对应的第一存储区,从而将所述第一许可文件存储到所述第一存储区中;其中,所述用户锁包括至少两个存储区域,所述至少两个存储区域包括所述第一存储区,所述第一许可文件为利用所述第一控制锁为第二开发端签发的许可文件,以使所述第二开发端能够通过所述用户锁使用所述第一开发端的开发数据。
作为可选,所述至少两个存储区域还包括与第二控制锁对应的第二存储区;其中,所述第二控制锁用于对第二开发端的开发数据进行加密,以及签发相应的许可文件;所述第二存储区用于存储第二许可文件,所述第二许可文件为利用所述第二控制锁为第三开发端/最终用户端签发的许可文件,以使所述第三开发端/最终用户端能够通过所述用户锁使用所述第一开发端的开发数据和所述第二开发端的开发数据。
作为可选,所述的将所述第一数据包发送给与所述第一控制锁相关联的用户锁,以使所述用户锁基于所述第一数据包确定所述用户锁中与所述第一控制锁相对应的第一存储区,具体包括:
将包含有第一标识的所述第一数据包发送给与所述第一控制锁相关联的用户锁,以使所述用户锁基于所述第一标识,确定所述用户锁中与所述第一控制锁相对应的第一存储区;其中,所述第一标识用于唯一标识所述第一控制锁。
作为可选,所述第一数据包还包括开发端证书,所述的将所述第一数据包发送给与所述第一控制锁相关联的用户锁,以使所述用户锁基于所述第一数据包确定所述用户锁中与所述第一控制锁相对应的第一存储区,包括:
将所述开发端证书发送至所述用户锁,以使所述用户锁基于所述开发端证书确定相应的第一开发端的身份信息,并在所述身份信息符合要求的情况下,在所述用户锁中为所述第一开发端划定相对应的第一存储区。
作为可选,所述的基于所述第一请求生成相应的第一数据包,包括:
利用服务端私钥对生成的第一数据包进行签名,其中所述服务端私钥对应有服务端公钥;
相应的,将所述第一数据包发送给与所述第一控制锁相关联的用户锁,具体包括:将签名后第一数据包发送给用户锁,以使所述用户锁利用所述服务端公钥对第一数据包进行验签,以验证所述服务端的身份。
作为可选,其中,所述第一控制锁针对所述用户锁进行操作的权限大于所述第二控制锁;或者,
所述第一控制锁针对所述用户锁进行操作的权限与所述第二控制锁相同。
本申请实施例还提供了一种用户锁,包括存储器和处理器,所述存储器中存储有可执行程序,所述处理器执行所述可执行程序以进行如下步骤:
获取服务端发送的第一数据包,其中,所述第一数据包为所述服务端响应第一请求而生成的数据包,所述第一请求为利用第一控制锁生成的请求,所述第一控制锁用于对第一开发端的开发数据进行加密,以及签发相应的许可文件;
基于所述第一数据包,确定所述用户锁中与所述第一控制锁相对应的第一存储区,其中,所述用户锁包括至少两个存储区域,所述至少两个存储区域包括所述第一存储区;
将第一许可文件存储到所述第一存储区中;其中,所述第一许可文件为利用所述第一控制锁为第二开发端签发的许可文件,以使所述第二开发端能够通过所述用户锁使用所述第一开发端的开发数据。
作为可选,所述至少两个存储区域还包括与第二控制锁对应的第二存储区;其中,所述第二控制锁用于对第二开发端的开发数据进行加密,以及签发相应的许可文件;所述第二存储区用于存储第二许可文件,所述第二许可文件为利用所述第二控制锁为第三开发端/最终用户端签发的许可文件,以使所述第三开发端/最终用户端能够通过所述用户锁使用所述第一开发端的开发数据和所述第二开发端的开发数据。
作为可选,所述处理器执行所述可执行程序进一步进行如下步骤:
从所述第一数据包中获取第一标识,所述第一标识用于唯一标识所述第一控制锁;
基于所述第一标识,确定所述用户锁中与所述第一控制锁相对应的第一存储区。
作为可选,所述处理器执行所述可执行程序进一步进行如下步骤:
基于所述第一标识和所述用户锁中的预设关系表,确定所述第一开发端对应的第一存储区。
作为可选,所述第一数据包包括开发端证书;所述处理器执行所述可执行程序进一步进行如下步骤:
基于所述开发端证书确定相应的第一开发端的身份信息;
在所述身份信息符合要求的情况下,在所述用户锁中为所述第一开发端划定相对应的第一存储区。
作为可选,所述处理器执行所述可执行程序进一步进行如下步骤:
利用服务端公钥对第一数据包进行验签,其中所述第一数据包被与所述服务端公钥相对应的服务端私钥签名;
如果所述验签通过,则确定所述服务端的身份合法。
作为可选,其中,
所述第一控制锁针对所述用户锁进行操作的权限大于所述第二控制锁;或者,
所述第一控制锁针对所述用户锁进行操作的权限与所述第二控制锁相同。
本申请实施例还提供了一种服务端,包括存储器和处理器,所述存储器中存储有可执行程序,所述处理器执行所述可执行程序以进行如下步骤:
获取第一请求,其中,所述第一请求为利用第一控制锁生成的请求,所述第一控制锁用于对第一开发端的开发数据进行加密,以及签发相应的许可文件;
响应于所述第一请求,生成与所述第一请求对应的第一数据包;
将所述第一数据包发送给与所述第一控制锁相关联的用户锁,以使所述用户锁基于所述第一数据包确定所述用户锁中与所述第一控制锁相对应的第一存储区,从而将第一许可文件存储到所述第一存储区中;其中,所述用户锁包括至少两个存储区域,所述至少两个存储区域包括所述第一存储区,所述第一许可文件为利用所述第一控制锁为第二开发端签发的许可文件,以使所述第二开发端能够通过所述用户锁使用所述第一开发端的开发数据。
作为可选,所述至少两个存储区域还包括与第二控制锁对应的第二存储区;其中,所述第二控制锁用于对第二开发端的开发数据进行加密,以及签发相应的许可文件;所述第二存储区用于存储第二许可文件,所述第二许可文件为利用所述第二控制锁为第三开发端/最终用户端签发的许可文件,以使所述第三开发端/最终用户端能够通过所述用户锁使用所述第一开发端的开发数据和所述第二开发端的开发数据。
作为可选,所述处理器执行所述可执行程序进一步进行如下步骤:
将包含有第一标识的所述第一数据包发送给与所述第一控制锁相关联的用户锁,以使所述用户锁基于所述第一标识,确定所述用户锁中与所述第一控制锁相对应的第一存储区;其中,所述第一标识用于唯一标识所述第一控制锁。
作为可选,所述第一数据包还包括开发端证书,所述处理器执行所述可执行程序进一步进行如下步骤:
将所述开发端证书发送至所述用户锁,以使所述用户锁基于所述开发端证书确定相应的第一开发端的身份信息,并在所述身份信息符合要求的情况下,在所述用户锁中为所述第一开发端划定相对应的第一存储区。
作为可选,所述处理器执行所述可执行程序进一步进行如下步骤:
利用服务端私钥对生成的第一数据包进行签名,其中,所述服务端私钥对应有服务端公钥,所述用户锁能够利用所述服务端公钥对第一数据包进行验签,以验证所述服务端的身份。
作为可选,其中,所述第一控制锁针对所述用户锁进行操作的权限大于所述第二控制锁;或者,
所述第一控制锁针对所述用户锁进行操作的权限与所述第二控制锁相同。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,实现如上所述的数据处理方法。
本实施例的数据处理方法能够在进行多层次的开发过程中,减少用户锁的使用数量,即每层的用户均可以使用相同的用户锁,而确拥有自身所独有的控制锁,以对软件或基于软件的自我开发数据进行加密和授权,整个使用过程简单,逻辑清晰,易于管理。
附图说明
图1为本申请实施例的应用于用户锁的数据处理方法的流程图;
图2为本申请实施例的用户锁中的存储区域与开发者的对应关系示意图;
图3为本申请实施例的图1中步骤S2的一个实施例的流程图;
图4为本申请实施例的数据处理方法的一个实施例的流程图;
图5为本申请实施例的服务端与第一开发端、第一控制锁以及用户锁之间的交互过程的流程图;
图6为本申请实施例的利用第三终端与服务端进行的交互为用户锁划分第一存储区过程的流程图;
图7为本申请实施例的服务端与第二开发端、第二控制锁以及用户锁之间的交互过程的流程图;
图8为本申请实施例的应用于服务端的数据处理方法的流程图;
图9为本申请实施例的用户锁的结构框图;
图10为本申请实施例的服务端的结构框图。
具体实施方式
此处参考附图描述本申请的各种方案以及特征。
应理解的是,可以对此处申请的实施例做出各种修改。因此,上述说明书不应该视为限制,而仅是作为实施例的范例。本领域的技术人员将想到在本申请的范围和精神内的其他修改。
包含在说明书中并构成说明书的一部分的附图示出了本申请的实施例,并且与上面给出的对本申请的大致描述以及下面给出的对实施例的详细描述一起用于解释本申请的原理。
通过下面参照附图对给定为非限制性实例的实施例的优选形式的描述,本申请的这些和其它特性将会变得显而易见。
还应当理解,尽管已经参照一些具体实例对本申请进行了描述,但本领域技术人员能够确定地实现本申请的很多其它等效形式,它们具有如权利要求所述的特征并因此都位于借此所限定的保护范围内。
当结合附图时,鉴于以下详细说明,本申请的上述和其他方面、特征和优势将变得更为显而易见。
此后参照附图描述本申请的具体实施例;然而,应当理解,所申请的实施例仅仅是本申请的实例,其可采用多种方式实施。熟知和/或重复的功能和结构并未详细描述以避免不必要或多余的细节使得本申请模糊不清。因此,本文所申请的具体的结构性和功能性细节并非意在限定,而是仅仅作为权利要求的基础和代表性基础用于教导本领域技术人员以实质上任意合适的详细结构多样地使用本申请。
本说明书可使用词组“在一种实施例中”、“在另一个实施例中”、“在又一实施例中”或“在其他实施例中”,其均可指代根据本申请的相同或不同实施例中的一个或多个。
本申请实施例的一种数据处理方法涉及到了控制锁和用户锁,控制锁和与之相关联的用户锁均为加密锁的一种,控制锁与用户锁需配套使用。举例说明,控制锁可以是不同软件开发商的身份标识,控制锁主要用于加密、签发许可(授权)和签发用户锁升级文件等功能。用户锁是最终发放到软件最终用户手中的加密锁,软件加密和授权依赖的硬件产品,拥有了用户锁就拥有了软件的使用权。对于控制锁和用户锁两者之间的关联关系而言,一把用户锁是不能直接使用的,因为用户锁是一把空锁,内部不含任何软件(或其他开发数据)许可数据。用户锁内的许可,是通过控制锁签发生成的,控制锁可以针对一把用户锁颁发软件许可证,然后升级到用户锁内,许可才算正式生成。每一把用户锁,是要经过控制锁设置许可才能正常使用,例如用户锁存放软件开发商签发的许可信息,软件用户在使用软件开发商加密后的软件时,需***用户锁进行解密使用。
本申请实施例的一种数据处理方法,应用于用户锁,下面从整体层面对该方法进行说明,所述方法包括以下步骤:
获取服务端发送的第一数据包,其中,所述第一数据包为所述服务端响应第一请求而生成的数据包,所述第一请求为利用第一控制锁生成的请求,所述第一控制锁用于对第一开发端的开发数据进行加密,以及签发相应的许可文件;
基于所述第一数据包,确定所述用户锁中与所述第一控制锁相对应的第一存储区,其中,所述用户锁包括至少两个存储区域,所述至少两个存储区域包括所述第一存储区;
将第一许可文件存储到所述第一存储区中;其中,所述第一许可文件为利用所述第一控制锁为第二开发端签发的许可文件,以使所述第二开发端能够通过所述用户锁使用所述第一开发端的开发数据。
具体来说,第一请求为利用第一控制锁生成的请求,如第一用户对应有第一开发端,第一用户为了保护自己的开发数据(如自身开发的软件)不被侵犯,利用第一控制锁对第一开发端的开发数据进行加密,以及签发相应的第一许可文件。并通过第一控制锁向服务端发送第一请求,服务端接收到第一请求后进行响应,会发送相应的第一数据包,以使用户锁获取到该第一数据包。本实施例中用户锁中包括至少两个存储区域,与用户锁相对应的控制锁可以对应有自身的存储区。第一数据包中可以包括了用户锁中的存储区与第一控制锁之间的对应关系信息,基于第一数据包可以确定所述用户锁中与所述第一控制锁相对应的第一存储区。第一数据包中也可以包括第一控制锁的信息,由用户锁在接收到第一数据包之后,从自身的尚未被分配的存储空间中为该第一控制锁确定一个对应的第一存储区域。确定第一存储区后用户锁就可以将第一许可文件存储到第一存储区中。如果第二用户使用第二开发端对第一用户的开发数据进行二次开发,如基于第一用户开发的软件之上再进行开发,则可以取得用户锁,在第一许可文件的许可下对软件进行二次开发。第二用户也可以具有自己的第二控制锁,来对其自身开发的数据进行加密和授权,并将由第二控制锁签发的第二许可文件存储到用户锁中与第二控制锁对应的存储区中,无需再取得第一控制锁来为同一把用户所签发许可文件,也无需再重新购买新的用户锁。当第二用户交付产品给下游的开发者或者最终用户时,第二用户也仅需要交付一把用户锁即可,不需要交付多把用户锁。
采用本申请实施例的实现方式,可以在一把用户锁中为不同的控制锁分配对应的存储区域,这些存储区域之间各自独立,每一个存储区域可以存储对应的控制锁签发的许可文件,而不能存储其他控制锁签发的许可文件,使得多把控制锁可以对应一把用户锁,从而实现了各个用户使用自己的控制锁对自己开发的数据进行保护,且有效减少了用户锁的使用数量,为每层的开发者提供便利的同时也有利于对自我开发数据进行保护。
下面对本申请的数据处理方法中的各个步骤进行详细的说明,图1为本申请实施例的应用于用户锁的数据处理方法的流程图,如图1所示并结合图5,本申请的数据处理方法,应用于用户锁,包括以下步骤:
S1,获取服务端发送的第一数据包,其中,所述第一数据包为所述服务端响应第一请求而生成的数据包,所述第一请求为利用第一控制锁生成的请求,所述第一控制锁用于对第一开发端的开发数据进行加密,以及签发相应的许可文件。
本申请实施例中的开发数据,可以是开发者在开发产品时形成的数据,例如软件代码、软件运行所需要的数据等。对于一个开发者而言,其可以加密自己开发的所有数据,也可以加密部分关键的数据,本申请对此不作限定。
第一控制锁可以是第一用户所拥有的控制锁,可以对第一用户使用的第一开发端中的开发数据进行加密,以及签发相应的许可文件,第一控制锁与第一开发端相对应。第一开发端可以是第一用户使用的计算机、加密机等设备。第一许可文件可以表示对第一用户开发的开发数据,如对软件或其他数据的使用许可(授权),即许可其他用户使用第一用户的开发数据,如在第一用户开发的软件上进行再开发。在进行开发数据授权之前或者授权的过程中,第一开发端可以利用第一控制锁来生成第一请求,向服务端发送第一请求。服务端对第一请求进行响应,并发送第一数据包给用户锁,用户锁获取第一数据包。
S2,基于所述第一数据包,确定所述用户锁中与所述第一控制锁相对应的第一存储区,其中,所述用户锁包括至少两个存储区域,所述至少两个存储区域包括所述第一存储区。
用户锁中包括至少两个存储区域,如图2所示,其中至少包括上述的第一存储区,如还可以包括第二存储区、第三存储区等。在进行开发数据的保护和授权的过程中,每一层的用户所拥有的控制锁均可以对应有一个存储区,存储区之间相互独立,其中存储的许可文件则具有条理性,在调用的过程中也不会影响到其他存储区中的其他许可文件。示例性地,第一数据包中可以具有存储区与控制锁之间的关联信息,因此用户锁基于接收到的第一数据包则可以确定与所述第一控制锁相对应的第一存储区。
S3,将第一许可文件存储到所述第一存储区中;其中,所述第一许可文件为利用所述第一控制锁为第二开发端签发的许可文件,以使所述第二开发端能够通过所述用户锁使用所述第一开发端的开发数据。
具体来说,用户锁将第一许可文件存储到第一存储区中,当第二用户从第一用户处取得该用户锁之后,第二用户可以从该用户锁的第一存储区中获取到该第一许可文件,便能够获取到对第一开发端的开发数据的使用许可,从而通过用户锁使用该开发数据进行自己的开发工作,生成自己的开发数据。当然也能够使用自己所独有的第二控制锁对自身的开发数据进行加密和授权。
本实施例的数据处理方法能够在进行多层次的开发过程中,减少用户锁的使用数量,即每层的用户均可以使用相同的用户锁,而却拥有自身所独有的控制锁,以对软件或基于软件的自我开发数据进行加密和授权,整个使用过程简单,逻辑清晰,易于管理。
本申请中的多把独立的控制锁共享一把用户锁的方式,尤其适合应用在物联网领域。现有技术中的一把用户所只能对应一把独立的控制锁的方式,会导致下游开发者或者最终用户需要使用多把用户锁才能继续开发或者正常使用产品。物联网设备常常以小巧简单为本,采用上述方式就需要占用物联网设备的大量设备接口,导致物联网设备异常笨重,硬件冗余度高。并且,这也会增加物联网设备产品的硬件成本。而采用本申请实施例中的方式至需要占用物联网设备的一个设备接口,可以避免物联网设备的硬件冗余,也降低了物联网设备产品的硬件成本。
在本申请的一个实施例中,所述至少两个存储区域还包括与第二控制锁对应的第二存储区;其中,所述第二控制锁用于对第二开发端的开发数据进行加密,以及签发相应的许可文件;所述第二存储区用于存储第二许可文件,所述第二许可文件为利用所述第二控制锁为第三开发端/最终用户端签发的许可文件,以使所述第三开发端/最终用户端能够通过所述用户锁使用所述第一开发端的开发数据和所述第二开发端的开发数据。
结合图7,具体的,第二用户在完成自己的开发工作后,可以使用自身所拥有的第二控制锁对第二开发端的开发数据进行加密,以及签发相应的许可文件。第二许可文件为利用所述第二控制锁为第三开发端/最终用户端签发的许可文件。第二开发端可以利用第一控制锁生成第二请求,向服务端发送,服务端对第二请求进行响应,向第二开发端发送第二数据包,第二数据包中的内容可以与第一数据包中的内容相同,也可以有所差别。示例性地,第二数据包中可以具有存储区与控制锁之间的关联信息,特别是第二控制锁与存储区的关联信息。用户锁基于第二数据包可以确定用户锁中与第二控制锁相对应的第二存储区,然后将第二许可文件存储到该第二存储区。
延伸来看,如果第三开发端/最终用户端再基于第二开发端的开发数据进行自己的开发时,则可以获得上述的用户锁,得到第一许可文件和第二许可文件,启动本层的开发流程,能够通过用户锁使用第一开发端的开发数据和第二开发端的开发数据。该开发流程与上述步骤相似。当然,本申请的该数据处理方法在经历了第三开发端的开发后还能够进行更多次的开发过程,如经过第四开发端、第五开发端的开发等,但数据处理过程与上述内容类似,在此不再赘述。
在本申请的一个实施例中,如图3所示,基于所述第一数据包,确定所述用户锁中与所述第一控制锁相对应的第一存储区,包括以下步骤:
S21,从所述第一数据包中获取第一标识,所述第一标识用于唯一标识所述第一控制锁;
具体来说,第一标识可以是第一控制锁的ID号,该ID号可以对第一控制锁唯一标识。由于第一控制锁分别与第一用户和第一开发端对应,因此在某些场景中,也可以利用该ID号对第一用户和第一开发端进行标识。当然该第一标识还可以是签名或其他标识信息,用来唯一标识该第一控制锁。
S22,基于所述第一标识,确定所述用户锁中与所述第一控制锁相对应的第一存储区。
第一控制锁与存储区具有关联关系,用户锁可以基于第一控制锁的第一标识可以确定该第一控制锁对应的第一存储区。由于第一标识唯一标识第一控制锁,因此确定第一存储区时非常精准。扩展来说,在其他层次的开发流程里,可以基于当前的控制锁对应的标识来确定当前的控制锁对应的存储区。由于标识的唯一作用从而并不会造成存储区的混乱,明确了各个控制锁与相应的存储区的关联关系,方便各层的用户对用户锁的使用。
可选地,所述的基于所述第一标识,确定所述用户锁中与所述第一控制锁相对应的第一存储区,包括:
基于所述第一标识和所述用户锁中的预设关系表,确定所述第一开发端对应的第一存储区。
具体的,预设关系表可以设置在用户锁的操作***中,在确定存储区时可以将其调出,即用户锁从第一数据包中获取第一标识后,再将预设关系表调出,从该预设关系表中查找该第一标识所对应的第一存储区,以确定第一用户锁对应的存储区,即第一开发端对应的第一存储区。当然该预设关系表中还存储有其他用户锁或开发端对应的存储区,如存储了第二开发端与第二存储区相关联信息,第三开发端与第三存储区相关联信息等。
可选地,用户锁可以建立一个第一关系表,在确定了控制锁的标识与用户锁的存储区域之间的对应关系后,将该对应关系存储到上述第一关系表中,以便后续存放第一许可文件的时候使用。也就是说,后续每当用户锁接收到任一个数据包,其都需要先判断该数据包是由哪个控制锁签发的。然后,用户锁再根据第一关系表,对该控制锁对应的存储区域进行操作,例如将数据包中的第一许可文件存储到第一控制锁对应的第一存储区域中。
示例性地,将任一个接收到的许可文件(以下称为待处理许可文件)存储到对应的存储区中的步骤,具体可以包括:
接收待处理许可文件;
确定所述待处理许可文件对应的控制锁;
在第一关系表中查找与所述控制锁对应的存储区域中。
需要说明的是,上述待处理许可文件,可以包含在服务器响应控制锁的请求而生成的数据包中,一并发送给用户锁,也可以在用户锁为控制锁分配好相应的存储区域后,单独发送给用户锁,本申请对此不作限定。例如,前述的第一许可文件,可以包含在第一数据包中,也可以不包含在第一数据包中,在不同的应用场景中可以采用不同的实现方式。
在本申请的一个实施例中,如图4所示,所述第一数据包包括开发端证书;所述步骤S2可以包括以下步骤:
S4,基于所述开发端证书确定相应的第一开发端的身份信息;
S5,在所述身份信息符合要求的情况下,在所述用户锁中为所述第一开发端划定相对应的第一存储区。
具体来说,第一控制锁与第一开发端相关联,服务端根据第一控制锁发送的第一请求而发出第一数据包,该第一数据包中包括开发端证书,即与第一控制锁相关联的第一开发端的开发端证书,开发端证书能够证明第一开服端的身份,因此,本申请实施例基于开发端证书确定第一开发端的身份信息。如果身份信息符合要求,如确定使用的开发端即为第一开发端,才能够在用户锁中为第一开发端划定相对应的第一存储区。否则可以停止划定操作,或者反馈身份信息有误的情况。
在一种可能的实现方式中,用户锁可以从开发端证书中获取开发端的身份信息和开发端公钥。然后,用户锁可以利用开发端公钥,对接收到的经过开发端私钥加密的数据进行解密。或者,用户锁可以利用开发端公钥,对接收到的经过开发端私钥签名的数据进行验签。如果解密成功或者验签通过,说明该开发端的身份信息符合要求。
对于在用户锁中划分存储区的过程中,如图5所示,可以由拥有第一控制锁的用户(如开发者A)自己来触发,由第一开发端利用第一控制锁向服务端发送第一请求,进而接收到服务端发送的第一数据包,用户锁利用第一数据包对用户锁中的存储区域进行划分,确定与第一控制锁对应的第一存储区。当然,用户锁中划分存储区也可以是加密锁的生产商或代理商在确定开发者A购买了第一控制锁和用户锁之后,由加密锁的生产商或代理商来触发。如图6所示,加密锁的生产商或代理商利用第三终端与服务端进行的交互为该用户锁划分与第一控制锁对应的第一存储区,再将第一控制锁和用户锁交付给开发者A,利用第一控制锁为该用户锁生成第一许可文件,用户锁将第一许可文件存储到用户锁中的第一存储区中。
此外,为用户锁划分与控制锁对应的存储区的过程,可以单独进行,也可以与初始化用户锁的步骤同步进行。初始化用户锁的步骤可以由加密锁生产商或代理商来实施。在一个实施例中,当与初始化用户锁的步骤同步进行时,第一数据包还携带了初始化数据,其不仅仅用于初始化用户锁,还用于确定控制锁对应的存储区域,从而可以既完成初始化用户锁的任务又完成划分存储区的任务,实现了在一个交互过程中完成了多个任务的目的。
延伸来看,结合图7,为用户锁划分与第二控制锁对应的存储区域的过程中,以第二控制锁的用户(开发者B)自己来执行为例,开发者B可以在得到用户锁后预先为第二控制锁划分第二存储区,也可以在获取到第二数据包后为第二控制锁划分第二存储区,即第二开发端在接收到服务端发送的第二数据包后,开发者B基于第二数据包在用户锁中确定与第二控制锁对应的第二存储区,然后第二开发端可以利用用户锁中的第一许可文件,访问第一开发端的开发数据,在访问第一开发端的开发数据的基础上,形成第二开发端的开发数据,然后第二开发端利用第二控制锁生成第二许可文件,并将第二许可文件发送给用户锁,用户锁获取到第二许可文件后将第二许可文件存储到第二存储区域中。
在本申请的一个实施例中,在获取服务端发送的第一数据包之后,所述方法还包括以下步骤:
利用服务端公钥对第一数据包进行验签,其中所述第一数据包被与所述服务端公钥相对应的服务端私钥签名;
如果所述验签通过,则确定所述服务端的身份合法。
具体来说,第一开发端与上述的服务端连接,还可以与多种用途的其他服务端通信连接,在判断与开发端进行通信的服务端的身份时,可以利用服务端公钥和服务端私钥来进行。服务端公钥和服务端私钥成对出现,服务端私钥由服务端保存,可以用来对第一数据包进行签名,将签名后的第一数据包发送给第一开发端。用户锁获取到该第一数据包后,可以利用预先获得的服务端公钥对第一数据包进行验签,如果验签通过,则确定该服务端的身份合法,第一数据包中的数据在传输过程中没有被篡改过,进而可以使用该第一数据包进行随后的工作。利用服务端公钥和服务端私钥来对服务端的身份进行判断,增加了第一数据包的安全性,防止使用错误的数据包现象发生。
在本申请的一个实施例中,所述第一控制锁针对所述用户锁进行操作的权限大于所述第二控制锁;或者,
所述第一控制锁针对所述用户锁进行操作的权限与所述第二控制锁相同。
具体来说,第一控制锁针对所述用户锁进行操作的权限大于所述第二控制锁时,能够使得拥有第一控制锁的上层的用户可以浏览、修改或删除拥有第二控制锁的下层的用户的开发数据,这将给予上层用户更大权限。而如果第一控制锁针对用户锁进行操作的权限与第二控制锁相同,则使得拥有第一控制锁的上层的用户并不能或无授权不能浏览、修改或删除拥有第二控制锁的下层的用户的开发数据,双方的开发数据均受到较高保护。当然上述两种情况可以根据不同的使用场景来设置,能够增加用户操作的灵活度。
本申请实施例还提供了一种数据处理方法,应用于服务端,如图8所示并结合图5,所述方法包括以下步骤:
S6,获取第一请求,其中,所述第一请求为利用第一控制锁生成的请求,所述第一控制锁用于对第一开发端的开发数据进行加密,以及签发相应的许可文件。
第一控制锁可以是第一用户所拥有的控制锁,可以对第一用户使用的第一开发端中的开发数据进行加密,以及签发相应的许可文件,第一控制锁与第一开发端相对应。第一开发端可以是第一用户使用的计算机、加密机等设备。第一许可文件可以表示对第一用户开发的开发数据,如对软件或其他数据的使用许可(授权),即许可其他用户使用第一用户的开发数据,如在第一用户开发的软件上进行再开发。在进行开发数据授权之前或者授权的过程中,第一开发端可以利用第一控制锁来生成第一请求,向服务端发送第一请求。服务端对第一请求进行响应,并发送第一数据包给用户锁,用户锁获取第一数据包。
S7,响应于所述第一请求,生成与所述第一请求对应的第一数据包。
用户锁中包括至少两个存储区域,其中至少包括上述的第一存储区,如还可以包括第二存储区、第三存储区等。在进行开发数据的保护和授权的过程中,每一层的用户所拥有的控制锁均可以对应有一个存储区,存储区之间相互独立,其中存储的许可文件则具有条理性,在调用的过程中也不会影响到其他存储区中的其他许可文件。服务端基于第一请求生成相应的第一数据包,其中具有存储区与控制锁之间的关联信息,因此用户锁基于接收到的第一数据包则可以确定与所述第一控制锁相对应的第一存储区。
S8,将所述第一数据包发送给与所述第一控制锁相关联的用户锁,以使所述用户锁基于所述第一数据包确定所述用户锁中与所述第一控制锁相对应的第一存储区,从而将所述第一许可文件存储到所述第一存储区中;其中,所述用户锁包括至少两个存储区域,所述至少两个存储区域包括所述第一存储区,所述第一许可文件为利用所述第一控制锁为第二开发端签发的许可文件,以使所述第二开发端能够通过所述用户锁使用所述第一开发端的开发数据。
具体来说,服务端将第一数据包发送给与所述第一控制锁相关联的用户锁后,用户锁确定与第一控制锁相对应的第一存储区,然后将第一许可文件存储到第一存储区中,第二用户可以利用第二开发端基于上述的第一开发端的开发数据进行自己的开发工作。从而第二用户可以从第一存储区中获取到该第一许可文件,便能够获取到对第一开发端的开发数据的使用许可,从而通过用户锁使用该开发数据进行自己的开发工作,生成自己的开发数据。当然第二用户也能够使用自己所独有的第二控制锁对自身的开发数据进行加密和授权。
在本申请的一个实施例中,所述至少两个存储区域还包括与第二控制锁对应的第二存储区;其中,所述第二控制锁用于对第二开发端的开发数据进行加密,以及签发相应的许可文件;所述第二存储区用于存储第二许可文件,所述第二许可文件为利用所述第二控制锁为第三开发端/最终用户端签发的许可文件,以使所述第三开发端/最终用户端能够通过所述用户锁使用所述第一开发端的开发数据和所述第二开发端的开发数据。
结合图7,具体的,第二用户在完成自己的开发工作后,可以使用自身所拥有的第二控制锁对第二开发端的开发数据进行加密,以及签发相应的许可文件。第二许可文件为利用所述第二控制锁为第三开发端/最终用户端签发的许可文件。第二开发端可以利用第一控制锁生成第二请求,向服务端发送,服务端对第二请求进行响应,向第二开发端发送第二数据包,第二数据包中的内容可以与第一数据包中的内容相同,也可以有所差别。示例性地,第二数据包中也具有存储区与控制锁之间的关联信息,特别是第二控制锁与存储区的关联信息。用户锁基于第二数据包可以确定用户锁中与第二控制锁相对应的第二存储区,然后将第二许可文件存储到该第二存储区。
延伸来看,如果第三开发端/最终用户端再基于第二开发端的开发数据进行自己的开发时,则可以获得上述的用户锁,得到第一许可文件和第二许可文件,启动本层的开发流程,能够通过用户锁使用第一开发端的开发数据和第二开发端的开发数据。该开发流程与上述步骤相似。当然本申请的该数据处理方法在经历了第三开发端的开发后还能够进行更多次的开发过程,如经过第四开发端、第五开发端的开发等,但数据处理过程与上述内容类似,在此不再赘述。
在本申请的一个实施例中,所述的将所述第一数据包发送给与所述第一控制锁相关联的用户锁,以使所述用户锁基于所述第一数据包,确定所述用户锁中与所述第一控制锁相对应的第一存储区,具体包括:
将包含有第一标识的所述第一数据包发送给与所述第一控制锁相关联的用户锁,以使所述用户锁基于所述第一标识,确定所述用户锁中与所述第一控制锁相对应的第一存储区;其中,所述第一标识用于唯一标识所述第一控制锁。
具体来说,第一标识可以是第一控制锁的ID号,该ID号可以对第一控制锁唯一标识。由于第一控制锁分别与第一用户和第一开发端对应,因此在某些场景中,也可以利用该ID号对第一用户和第一开发端进行标识。当然该第一标识还可以是签名或其他标识信息,用来唯一标识该第一控制锁。
第一控制锁与存储区具有关联关系,服务端将包含有第一标识的第一数据包发送给与第一控制锁相关联的用户锁后,用户锁可以基于第一控制锁的第一标识可以确定该第一控制锁对应的第一存储区。由于第一标识唯一标识第一控制锁,因此确定第一存储区时非常精准。扩展来说,在其他层次的开发流程里,用户锁也可以基于当前的控制锁对应的标识来确定当前的控制锁对应的存储区。由于标识的唯一作用从而并不会造成存储区的混乱,明确了各个控制锁与相应的存储区的关联关系,方便各层的用户对用户锁的使用。
在本申请的一个实施例中,所述第一数据包还包括开发端证书,所述的将所述第一数据包发送给与所述第一控制锁相关联的用户锁,以使所述用户锁基于所述第一数据包确定所述用户锁中与所述第一控制锁相对应的第一存储区,还包括:
将所述开发端证书发送至所述用户锁,以使所述用户锁基于所述开发端证书确定相应的第一开发端的身份信息,并在所述身份信息符合要求的情况下,在所述用户锁中为所述第一开发端划定相对应的第一存储区。
具体来说,第一控制锁与第一开发端相关联,服务端根据第一控制锁发送的第一请求而发出第一数据包,该第一数据包中包括开发端证书,即与第一控制锁相关联的第一开发端的开发端证书,开发端证书能够证明第一开服端的身份,因此,本申请实施例基于开发端证书确定第一开发端的身份信息。如果身份信息符合要求,如确定使用的开发端即为第一开发端,才能够在用户锁中为第一开发端划定相对应的第一存储区。否则可以停止划定操作,或者反馈身份信息有误的情况。
在一种可能的实现方式中,用户锁可以从开发端证书中获取开发端的身份信息和开发端公钥。然后,用户锁可以利用开发端公钥,对接收到的经过开发端私钥加密的数据进行解密。或者,用户锁可以利用开发端公钥,对接收到的经过开发端私钥签名的数据进行验签。如果解密成功或者验签通过,说明该开发端的身份信息符合要求。
对于在用户锁中划分存储区的过程中,如图5所示,可以由拥有第一控制锁的用户(如开发者A)自己来触发,由第一开发端利用第一控制锁向服务端发送第一请求,进而接收到服务端发送的第一数据包,用户锁利用第一数据包对用户锁中的存储区域进行划分,确定与第一控制锁对应的第一存储区。当然,用户锁中划分存储区也可以是加密锁的生产商或代理商在确定开发者A购买了第一控制锁和用户锁之后,由加密锁的生产商或代理商来触发。如图6所示,加密锁的生产商或代理商利用第三终端与服务端进行的交互为该用户锁划分与第一控制锁对应的第一存储区,再将第一控制锁和用户锁交付给开发者A,利用第一控制锁为该用户锁生成第一许可文件,用户锁将第一许可文件存储到用户锁中的第一存储区中
此外,为用户锁划分与控制锁对应的存储区的过程,可以单独进行,也可以与初始化用户锁的步骤同步进行。初始化用户锁的步骤可以由加密锁生产商或代理商来实施。在一个实施例中,当与初始化用户锁的步骤同步进行时,第一数据包还携带了初始化数据,其不仅仅用于初始化用户锁,还用于确定控制锁对应的存储区域,从而可以即完成初始化用户锁的任务又完成划分存储区的任务,实现了在一个交互过程中完成了多个任务的目的。
延伸来看,结合图7,为用户锁划分与第二控制锁对应的存储区域的过程中,以第二控制锁的用户(开发者B)自己来执行为例,开发者B可以在得到用户锁后预先为第二控制锁划分第二存储区,也可以在获取到第二数据包后为第二控制锁划分第二存储区,即第二开发端在接收到服务端发送的第二数据包后,开发者B基于第二数据包在用户锁中确定与第二控制锁对应的第二存储区,然后第二开发端可以利用用户锁中的第一许可文件,访问第一开发端的开发数据,在访问第一开发端的开发数据的基础上,形成第二开发端的开发数据,然后第二开发端利用第二控制锁生成第二许可文件,并将第二许可文件发送给用户锁,用户锁获取到第二许可文件后将第二许可文件存储到第二存储区域中。
在本申请的一个实施例中,所述的基于所述第一请求生成相应的第一数据包,包括:
利用服务端私钥对生成的第一数据包进行签名,其中所述服务端私钥对应有服务端公钥;
相应的,将所述第一数据包发送给与所述第一控制锁相关联的用户锁,具体包括:将签名后第一数据包发送给用户锁,以使所述用户锁利用所述服务端公钥对第一数据包进行验签,以验证所述服务端的身份。
具体来说,第一开发端与服务端连接,还可以与多种用途的其他服务端通信连接,在判断与开发端进行通信的服务端的身份时,可以利用服务端公钥和服务端私钥来进行。服务端公钥和服务端私钥成对出现,服务端私钥由服务端保存,可以用来对第一数据包进行签名,将签名后的第一数据包发送给第一开发端,用户锁获取到该第一数据包后,可以利用预先获得的服务端公钥对第一数据包进行验签,如果验签通过,则确定该服务端的身份合法,第一数据包中的数据在传输过程中没有被篡改过,进而可以使用该第一数据包进行随后的工作。利用服务端公钥和服务端私钥来对服务端的身份进行判断,增加了第一数据包的安全性,防止使用错误的数据包现象发生。
在本申请的一个实施例中,所述第一控制锁针对所述用户锁进行操作的权限大于所述第二控制锁;或者,
所述第一控制锁针对所述用户锁进行操作的权限与所述第二控制锁相同。
具体来说,第一控制锁针对所述用户锁进行操作的权限大于所述第二控制锁时,能够使得拥有第一控制锁的上层的用户可以浏览、修改或删除拥有第二控制锁的下层的用户的开发数据,这将给予上层用户更大权限。而如果第一控制锁针对用户锁进行操作的权限与第二控制锁相同,则使得拥有第一控制锁的上层的用户并不能或无授权不能浏览、修改或删除拥有第二控制锁的下层的用户的开发数据,双方的开发数据均受到较高保护。当然上述两种情况可以根据不同的使用场景来设置,能够增加用户操作的灵活度。
本实施例还提供了一种用户锁,如图9所示,包括存储器和处理器,所述存储器中存储有可执行程序,所述处理器执行所述可执行程序以进行如下步骤:
获取服务端发送的第一数据包,其中,所述第一数据包为所述服务端响应第一请求而生成的数据包,所述第一请求为利用第一控制锁生成的请求,所述第一控制锁用于对第一开发端的开发数据进行加密,以及签发相应的许可文件;
基于所述第一数据包,确定所述用户锁中与所述第一控制锁相对应的第一存储区,其中,所述用户锁包括至少两个存储区域,所述至少两个存储区域包括所述第一存储区;
将第一许可文件存储到所述第一存储区中;其中,所述第一许可文件为利用所述第一控制锁为第二开发端签发的许可文件,以使所述第二开发端能够通过所述用户锁使用所述第一开发端的开发数据。
具体来说,本申请实施例中的开发数据,可以是开发者在开发产品时形成的数据,例如软件代码、软件运行所需要的数据等。对于一个开发者而言,其可以加密自己开发的所有数据,也可以加密部分关键的数据,本申请对此不作限定。
第一控制锁可以是第一用户所拥有的控制锁,可以对第一用户使用的第一开发端中的开发数据进行加密,以及签发相应的许可文件,第一控制锁与第一开发端相对应。第一开发端可以是第一用户使用的计算机、加密机等设备,第一许可文件可以表示对第一用户开发的开发数据,如对软件或其他数据的使用许可(授权),即许可其他用户使用第一用户的开发数据,如在第一用户开发的软件上进行再开发。在进行开发数据授权之前或者授权的过程中,第一开发端可以利用第一控制锁来生成第一请求,向服务端发送第一请求。服务端对第一请求进行响应,并发送第一数据包给用户锁,用户锁获取第一数据包。
用户锁中包括至少两个存储区域,其中至少包括上述的第一存储区,如还可以包括第二存储区、第三存储区等。在进行开发数据的保护和授权的过程中,每一层的用户所拥有的控制锁均可以对应有一个存储区,存储区之间相互独立,其中存储的许可文件则具有条理性,在调用的过程中也不会影响到其他存储区中的其他许可文件。示例性地,第一数据包中可以具有存储区与控制锁之间的关联信息,因此用户锁基于接收到的第一数据包则可以确定与所述第一控制锁相对应的第一存储区。
用户锁将第一许可文件存储到第一存储区中后,当第二用户从第一用户处取得该用户锁之后,第二用户可以从该用户锁的第一存储区中获取到该第一许可文件,便能够获取到对第一开发端的开发数据的使用许可,从而通过用户锁使用该开发数据进行自己的开发工作,生成自己的开发数据。当然也能够使用自己所独有的第二控制锁对自身的开发数据进行加密和授权。
在本申请的一个实施例中,所述至少两个存储区域还包括与第二控制锁对应的第二存储区;其中,所述第二控制锁用于对第二开发端的开发数据进行加密,以及签发相应的许可文件;所述第二存储区用于存储第二许可文件,所述第二许可文件为利用所述第二控制锁为第三开发端/最终用户端签发的许可文件,以使所述第三开发端/最终用户端能够通过所述用户锁使用所述第一开发端的开发数据和所述第二开发端的开发数据。
在本申请的一个实施例中,所述处理器执行所述可执行程序进一步进行如下步骤:
从所述第一数据包中获取第一标识,所述第一标识用于唯一标识所述第一控制锁;
基于所述第一标识,确定所述用户锁中与所述第一控制锁相对应的第一存储区。
在本申请的一个实施例中,所述处理器执行所述可执行程序进一步进行如下步骤:
基于所述第一标识和所述用户锁中的预设关系表,确定所述第一开发端对应的第一存储区。
在本申请的一个实施例中,所述第一数据包包括开发端证书;所述处理器执行所述可执行程序进一步进行如下步骤:
基于所述开发端证书确定相应的第一开发端的身份信息;
在所述身份信息符合要求的情况下,在所述用户锁中为所述第一开发端划定相对应的第一存储区。
在本申请的一个实施例中,所述处理器执行所述可执行程序进一步进行如下步骤:
利用服务端公钥对第一数据包进行验签,其中所述第一数据包被与所述服务端公钥相对应的服务端私钥签名;
如果所述验签通过,则确定所述服务端的身份合法。
在本申请的一个实施例中,所述第一控制锁针对所述用户锁进行操作的权限大于所述第二控制锁;或者,
所述第一控制锁针对所述用户锁进行操作的权限与所述第二控制锁相同。
本申请实施例还提供了一种服务端,如图10所示,包括存储器和处理器,所述存储器中存储有可执行程序,所述处理器执行所述可执行程序以进行如下步骤:
获取第一请求,其中,所述第一请求为利用第一控制锁生成的请求,所述第一控制锁用于对第一开发端的开发数据进行加密,以及签发相应的许可文件;
响应于所述第一请求,生成与所述第一请求对应的第一数据包;
将所述第一数据包发送给与所述第一控制锁相关联的用户锁,以使所述用户锁基于所述第一数据包确定所述用户锁中与所述第一控制锁相对应的第一存储区,从而将第一许可文件存储到所述第一存储区中;其中,所述用户锁包括至少两个存储区域,所述至少两个存储区域包括所述第一存储区,所述第一许可文件为利用所述第一控制锁为第二开发端签发的许可文件,以使所述第二开发端能够通过所述用户锁使用所述第一开发端的开发数据。
具体来说,第一控制锁可以是第一用户所拥有的控制锁,可以对第一用户使用的第一开发端中的开发数据进行加密,以及签发相应的第一许可文件,第一控制锁与第一开发端相对应。第一开发端可以是第一用户使用的计算机、加密机等设备,第一许可文件可以表示对第一用户开发的开发数据,如对软件或其他数据使用许可(授权),进而许可其他用户使用第一用户的开发数据,如在第一用户开发的软件上进行再开发。在进行开发数据授权的过程中,第一控制锁还可以向服务端发送第一请求,服务端对第一请求进行响应,并发送第一数据包给用户锁,用户锁获取第一数据包。
用户锁中包括至少两个存储区域,其中至少包括上述的第一存储区,如还可以包括第二存储区、第三存储区等。在进行开发数据的保护和授权的过程中,每一层的用户所拥有的控制锁均可以对应有一个存储区,存储区之间相互独立,其中存储的许可文件则具有条理性,在调用的过程中也不会影响到其他存储区中的其他许可文件。服务端基于第一请求生成相应的第一数据包,其中具有存储区与控制锁之间的关联信息,因此用户锁基于接收到的第一数据包则可以确定与所述第一控制锁相对应的第一存储区。
服务端将第一数据包发送给与所述第一控制锁相关联的用户锁后,用户锁确定与第一控制锁相对应的第一存储区,然后将第一许可文件存储到第一存储区中,第二用户可以利用第二开发端基于上述的第一开发端的开发数据进行自己的开发工作。从而第二用户可以从第一存储区中获取到该第一许可文件,便能够获取到对第一开发端的开发数据的使用许可,从而通过用户锁使用该开发数据进行自己的开发工作,生成自己的开发数据。当然第二用户也能够使用自己所独有的第二控制锁对自身的开发数据进行加密和授权。
在本申请的一个实施例中,所述至少两个存储区域还包括与第二控制锁对应的第二存储区;其中,所述第二控制锁用于对第二开发端的开发数据进行加密,以及签发相应的许可文件;所述第二存储区用于存储第二许可文件,所述第二许可文件为利用所述第二控制锁为第三开发端/最终用户端签发的许可文件,以使所述第三开发端/最终用户端能够通过所述用户锁使用所述第一开发端的开发数据和所述第二开发端的开发数据。
在本申请的一个实施例中,所述处理器执行所述可执行程序进一步进行如下步骤:
将包含有第一标识的所述第一数据包发送给与所述第一控制锁相关联的用户锁,以使所述用户锁基于所述第一标识,确定所述用户锁中与所述第一控制锁相对应的第一存储区;其中,所述第一标识用于唯一标识所述第一控制锁。
在本申请的一个实施例中,所述第一数据包还包括开发端证书,所述处理器执行所述可执行程序进一步进行如下步骤:
将所述开发端证书发送至所述用户锁,以使所述用户锁基于所述开发端证书确定相应的第一开发端的身份信息,并在所述身份信息符合要求的情况下,在所述用户锁中为所述第一开发端划定相对应的第一存储区。
在本申请的一个实施例中,所述处理器执行所述可执行程序进一步进行如下步骤:
利用服务端私钥对生成的第一数据包进行签名,其中,所述服务端私钥对应有服务端公钥,所述用户锁能够利用所述服务端公钥对第一数据包进行验签,以验证所述服务端的身份。
在本申请的一个实施例中,所述第一控制锁针对所述用户锁进行操作的权限大于所述第二控制锁;或者,
所述第一控制锁针对所述用户锁进行操作的权限与所述第二控制锁相同。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,实现如上所述的数据处理方法。其中包括实现如上所述的应用于用户锁的数据处理方法,以及应用于服务端的数据处理方法。
本文描述的方法示例至少部分地可以是机器或计算机实现的。一些示例可以包括编码有指令的计算机可读存储介质或机器可读介质,该指令可经操作以配置电子装置来执行如上述示例中所描述的方法。这些方法的实现可以包括例如微代码、汇编语言代码、更高级语言代码等的软件代码。可以使用各种软件编程技术来创建各种程序或程序模块。例如,可以用或通过Java、Python、C、C++、汇编语言、或任何已知的编程语言来设计程序段或程序模块。一个或更多这样的软件段或模块可以被集成到计算机***和/或计算机可读介质中。这样的软件代码可以包括用于执行各种方法的计算机可读指令。这种软件代码可以形成计算机程序产品或计算机程序模块的部分。此外,在一个示例中,例如在运行期间或在其它时间,代码可以有形地存储在一个或更多易失性、非暂时性或非易失性有形计算机可读介质上。这些有形的计算机可读介质的示例可以包括但不限于硬盘、可移动磁盘、可移动光盘(例如,压缩光盘和数字视频盘)、磁带、存储卡或存储棒、随机存取存储器(RAM)、只读存储器(ROM)等。
以上实施例仅为本申请的示例性实施例,不用于限制本申请,本申请的保护范围由权利要求书限定。本领域技术人员可以在本申请的实质和保护范围内,对本申请做出各种修改或等同替换,这种修改或等同替换也应视为落在本申请的保护范围内。

Claims (16)

1.一种数据处理方法,其特征在于,应用于用户锁,所述方法包括:
获取服务端发送的第一数据包,其中,所述第一数据包为所述服务端响应第一请求而生成的数据包,所述第一请求为利用第一控制锁生成的请求,所述第一控制锁用于对第一开发端的开发数据进行加密,以及签发相应的许可文件;
基于所述第一数据包,确定所述用户锁中与所述第一控制锁相对应的第一存储区,其中,所述用户锁包括至少两个存储区域,所述至少两个存储区域包括所述第一存储区;
将第一许可文件存储到所述第一存储区中;其中,所述第一许可文件为利用所述第一控制锁为第二开发端签发的许可文件,以使所述第二开发端能够通过所述用户锁使用所述第一开发端的开发数据。
2.根据权利要求1所述的方法,其特征在于,所述至少两个存储区域还包括与第二控制锁对应的第二存储区;其中,所述第二控制锁用于对第二开发端的开发数据进行加密,以及签发相应的许可文件;所述第二存储区用于存储第二许可文件,所述第二许可文件为利用所述第二控制锁为第三开发端/最终用户端签发的许可文件,以使所述第三开发端/最终用户端能够通过所述用户锁使用所述第一开发端的开发数据和所述第二开发端的开发数据。
3.根据权利要求1所述的方法,其特征在于,基于所述第一数据包,确定所述用户锁中与所述第一控制锁相对应的第一存储区,包括:
从所述第一数据包中获取第一标识,所述第一标识用于唯一标识所述第一控制锁;
基于所述第一标识,确定所述用户锁中与所述第一控制锁相对应的第一存储区。
4.根据权利要求3所述的方法,其特征在于,所述的基于所述第一标识,确定所述用户锁中与所述第一控制锁相对应的第一存储区,包括:
基于所述第一标识和所述用户锁中的预设关系表,确定所述第一开发端对应的第一存储区。
5.根据权利要求1所述的方法,其特征在于,所述第一数据包包括开发端证书;
基于所述第一数据包,确定所述用户锁中与所述第一控制锁相对应的第一存储区的步骤,包括:
基于所述开发端证书确定相应的第一开发端的身份信息;
在所述身份信息符合要求的情况下,在所述用户锁中为所述第一开发端划定相对应的第一存储区。
6.根据权利要求1所述的方法,其特征在于,在获取服务端发送的第一数据包之后,所述方法还包括:
利用服务端公钥对第一数据包进行验签,其中所述第一数据包被与所述服务端公钥相对应的服务端私钥签名;
如果所述验签通过,则确定所述服务端的身份合法。
7.根据权利要求2所述的方法,其特征在于,其中,
所述第一控制锁针对所述用户锁进行操作的权限大于所述第二控制锁;或者,
所述第一控制锁针对所述用户锁进行操作的权限与所述第二控制锁相同。
8.一种数据处理方法,其特征在于,应用于服务端,所述方法包括:
获取第一请求,其中,所述第一请求为利用第一控制锁生成的请求,所述第一控制锁用于对第一开发端的开发数据进行加密,以及签发相应的许可文件;
响应于所述第一请求,生成与所述第一请求对应的第一数据包;
将所述第一数据包发送给与所述第一控制锁相关联的用户锁,以使所述用户锁基于所述第一数据包确定所述用户锁中与所述第一控制锁相对应的第一存储区,从而将第一许可文件存储到所述第一存储区中;其中,所述用户锁包括至少两个存储区域,所述至少两个存储区域包括所述第一存储区,所述第一许可文件为利用所述第一控制锁为第二开发端签发的许可文件,以使所述第二开发端能够通过所述用户锁使用所述第一开发端的开发数据。
9.根据权利要求8所述的方法,其特征在于,所述至少两个存储区域还包括与第二控制锁对应的第二存储区;其中,所述第二控制锁用于对第二开发端的开发数据进行加密,以及签发相应的许可文件;所述第二存储区用于存储第二许可文件,所述第二许可文件为利用所述第二控制锁为第三开发端/最终用户端签发的许可文件,以使所述第三开发端/最终用户端能够通过所述用户锁使用所述第一开发端的开发数据和所述第二开发端的开发数据。
10.根据权利要求8所述的方法,其特征在于,所述的将所述第一数据包发送给与所述第一控制锁相关联的用户锁,以使所述用户锁基于所述第一数据包确定所述用户锁中与所述第一控制锁相对应的第一存储区,具体包括:
将包含有第一标识的所述第一数据包发送给与所述第一控制锁相关联的用户锁,以使所述用户锁基于所述第一标识,确定所述用户锁中与所述第一控制锁相对应的第一存储区;其中,所述第一标识用于唯一标识所述第一控制锁。
11.根据权利要求8所述的方法,其特征在于,所述第一数据包还包括开发端证书,所述的将所述第一数据包发送给与所述第一控制锁相关联的用户锁,以使所述用户锁基于所述第一数据包确定所述用户锁中与所述第一控制锁相对应的第一存储区,还包括:
将所述开发端证书发送至所述用户锁,以使所述用户锁基于所述开发端证书确定相应的第一开发端的身份信息,并在所述身份信息符合要求的情况下,在所述用户锁中为所述第一开发端划定相对应的第一存储区。
12.根据权利要求8所述的方法,其特征在于,所述的基于所述第一请求生成相应的第一数据包,包括:
利用服务端私钥对生成的第一数据包进行签名,其中所述服务端私钥对应有服务端公钥;
相应的,将所述第一数据包发送给与所述第一控制锁相关联的用户锁,具体包括:将签名后第一数据包发送给用户锁,以使所述用户锁利用所述服务端公钥对第一数据包进行验签,以验证所述服务端的身份。
13.根据权利要求8所述的方法,其特征在于,其中,所述第一控制锁针对所述用户锁进行操作的权限大于所述第二控制锁;或者,
所述第一控制锁针对所述用户锁进行操作的权限与所述第二控制锁相同。
14.一种用户锁,其特征在于,包括存储器和处理器,所述存储器中存储有可执行程序,所述处理器执行所述可执行程序以进行如下步骤:
获取服务端发送的第一数据包,其中,所述第一数据包为所述服务端响应第一请求而生成的数据包,所述第一请求为利用第一控制锁生成的请求,所述第一控制锁用于对第一开发端的开发数据进行加密,以及签发相应的许可文件;
基于所述第一数据包,确定所述用户锁中与所述第一控制锁相对应的第一存储区,其中,所述用户锁包括至少两个存储区域,所述至少两个存储区域包括所述第一存储区;
将第一许可文件存储到所述第一存储区中;其中,所述第一许可文件为利用所述第一控制锁为第二开发端签发的许可文件,以使所述第二开发端能够通过所述用户锁使用所述第一开发端的开发数据。
15.一种服务端,其特征在于,包括存储器和处理器,所述存储器中存储有可执行程序,所述处理器执行所述可执行程序以进行如下步骤:
获取第一请求,其中,所述第一请求为利用第一控制锁生成的请求,所述第一控制锁用于对第一开发端的开发数据进行加密,以及签发相应的许可文件;
响应于所述第一请求,生成与所述第一请求对应的第一数据包;
将所述第一数据包发送给与所述第一控制锁相关联的用户锁,以使所述用户锁基于所述第一数据包确定所述用户锁中与所述第一控制锁相对应的第一存储区,从而将第一许可文件存储到所述第一存储区中;其中,所述用户锁包括至少两个存储区域,所述至少两个存储区域包括所述第一存储区,所述第一许可文件为利用所述第一控制锁为第二开发端签发的许可文件,以使所述第二开发端能够通过所述用户锁使用所述第一开发端的开发数据。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,实现如权利要求1-13任一项所述的方法。
CN202011192680.3A 2020-10-30 2020-10-30 一种数据处理方法、用户锁及服务端 Active CN112287305B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011192680.3A CN112287305B (zh) 2020-10-30 2020-10-30 一种数据处理方法、用户锁及服务端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011192680.3A CN112287305B (zh) 2020-10-30 2020-10-30 一种数据处理方法、用户锁及服务端

Publications (2)

Publication Number Publication Date
CN112287305A true CN112287305A (zh) 2021-01-29
CN112287305B CN112287305B (zh) 2023-09-08

Family

ID=74353027

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011192680.3A Active CN112287305B (zh) 2020-10-30 2020-10-30 一种数据处理方法、用户锁及服务端

Country Status (1)

Country Link
CN (1) CN112287305B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112286553A (zh) * 2020-10-27 2021-01-29 北京深思数盾科技股份有限公司 用户锁的升级方法、装置、***、电子设备和存储介质

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130067533A1 (en) * 2011-09-11 2013-03-14 Microsoft Corporation Generating a test license for a developer application
CN103714272A (zh) * 2013-11-27 2014-04-09 中国矿业大学 一种加密锁盒子
CN104767728A (zh) * 2015-02-04 2015-07-08 东莞中山大学研究院 一种基于居家养老的身份认证的方法及***
CN106936588A (zh) * 2017-04-13 2017-07-07 北京深思数盾科技股份有限公司 一种硬件控制锁的托管方法、装置及***
CN107204848A (zh) * 2017-07-25 2017-09-26 北京深思数盾科技股份有限公司 一种管理秘钥数据的方法及管理密钥数据的装置
CN107391966A (zh) * 2017-07-21 2017-11-24 北京深思数盾科技股份有限公司 一种软件保护方法、装置及软件保护锁
CN108573161A (zh) * 2017-03-13 2018-09-25 北京贝塔科技股份有限公司 加密方法、应用锁以及电子设备
CN110175036A (zh) * 2019-04-08 2019-08-27 北京深思数盾科技股份有限公司 软锁许可的升级方法及装置
CN110263524A (zh) * 2019-08-05 2019-09-20 厦门亿力吉奥科技信息有限公司 一种移动设备加密u盾
CN111079091A (zh) * 2019-11-21 2020-04-28 中国民航信息网络股份有限公司 一种软件的安全管理方法、装置、终端及服务器

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130067533A1 (en) * 2011-09-11 2013-03-14 Microsoft Corporation Generating a test license for a developer application
CN103714272A (zh) * 2013-11-27 2014-04-09 中国矿业大学 一种加密锁盒子
CN104767728A (zh) * 2015-02-04 2015-07-08 东莞中山大学研究院 一种基于居家养老的身份认证的方法及***
CN108573161A (zh) * 2017-03-13 2018-09-25 北京贝塔科技股份有限公司 加密方法、应用锁以及电子设备
CN106936588A (zh) * 2017-04-13 2017-07-07 北京深思数盾科技股份有限公司 一种硬件控制锁的托管方法、装置及***
CN107391966A (zh) * 2017-07-21 2017-11-24 北京深思数盾科技股份有限公司 一种软件保护方法、装置及软件保护锁
CN107204848A (zh) * 2017-07-25 2017-09-26 北京深思数盾科技股份有限公司 一种管理秘钥数据的方法及管理密钥数据的装置
CN110175036A (zh) * 2019-04-08 2019-08-27 北京深思数盾科技股份有限公司 软锁许可的升级方法及装置
CN110263524A (zh) * 2019-08-05 2019-09-20 厦门亿力吉奥科技信息有限公司 一种移动设备加密u盾
CN111079091A (zh) * 2019-11-21 2020-04-28 中国民航信息网络股份有限公司 一种软件的安全管理方法、装置、终端及服务器

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112286553A (zh) * 2020-10-27 2021-01-29 北京深思数盾科技股份有限公司 用户锁的升级方法、装置、***、电子设备和存储介质

Also Published As

Publication number Publication date
CN112287305B (zh) 2023-09-08

Similar Documents

Publication Publication Date Title
CN109684790B (zh) 软件启动方法、软件授权验证方法、设备和存储介质
CN108810894B (zh) 终端授权方法、装置、计算机设备和存储介质
US8844049B2 (en) Method for generating a cryptographic key for a protected digital data object on the basis of current components of a computer
KR100236697B1 (ko) 소프트웨어 복사 처리 장치
CN111723383B (zh) 数据存储、验证方法及装置
US7647640B2 (en) System for binding secrets to a computer system having tolerance for hardware changes
US8572372B2 (en) Method for selectively enabling access to file systems of mobile terminals
US6526456B1 (en) Distribution and controlled use of software products
CN111625829A (zh) 基于可信执行环境的应用激活方法及装置
EP0302710A2 (en) A method of controlling the use of computer programs
CN107145769B (zh) 一种数字版权管理drm方法、设备及***
KR20110113179A (ko) 소프트웨어 애플리케이션 검증
US20080126705A1 (en) Methods Used In A Portable Mass Storage Device With Virtual Machine Activation
CN114186199B (zh) 许可授权方法及装置
CN104217175A (zh) 一种数据读写方法和装置
CN105308610A (zh) 用于设备上的平台和用户应用安全性的方法和***
CA2473122A1 (en) Method and device for protecting information against unauthorised use
CN112287305A (zh) 一种数据处理方法、用户锁及服务端
US8756433B2 (en) Associating policy with unencrypted digital content
KR101711024B1 (ko) 부정조작방지 장치 접근 방법 및 그 방법을 채용한 단말 장치
KR101405915B1 (ko) 데이터의 암호화 저장 방법 및 암호화된 데이터의 판독방법
CN111611551B (zh) 一种基于国密算法的动态链接库保护方法及其***
US20130014286A1 (en) Method and system for making edrm-protected data objects available
CN105868603A (zh) 基于配置数据的用于访问资源的指纹
JP2009245135A (ja) 情報処理端末装置及びアプリケーションプログラムの起動認証方法

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
CB02 Change of applicant information

Address after: 100193 5th floor 510, No. 5 Building, East Yard, No. 10 Wangdong Road, Northwest Haidian District, Beijing

Applicant after: Beijing Shendun Technology Co.,Ltd.

Address before: 100193 5th floor 510, No. 5 Building, East Yard, No. 10 Wangdong Road, Northwest Haidian District, Beijing

Applicant before: BEIJING SENSESHIELD TECHNOLOGY Co.,Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant