CN114546506B - 嵌入式操作系统的授权方法及装置、设备和介质 - Google Patents
嵌入式操作系统的授权方法及装置、设备和介质 Download PDFInfo
- Publication number
- CN114546506B CN114546506B CN202210172675.9A CN202210172675A CN114546506B CN 114546506 B CN114546506 B CN 114546506B CN 202210172675 A CN202210172675 A CN 202210172675A CN 114546506 B CN114546506 B CN 114546506B
- Authority
- CN
- China
- Prior art keywords
- authorization
- information
- operating system
- public key
- embedded operating
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4406—Loading of operating system
-
- 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
-
- 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/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
Abstract
本申请实施例涉及计算机技术领域,且涉及一种嵌入式操作系统的授权方法及装置、设备和介质。其中,授权方法具体为:嵌入式操作系统中设有内置于内核中的授权组件,在启动嵌入式操作系统时授权组件访问指定存储位置以获取嵌入式操作系统的授权码;在授权码获取失败的情况下根据硬件信息生成授权申请码;根据授权申请码生成授权请求信息并发送给授权服务器;接收授权服务器根据授权请求信息生成的返回信息;在接收到授权服务器根据嵌入式操作系统的授权码生成的授权成功的返回信息的情况下控制嵌入式操作系统进入工作状态;在接收到授权失败的返回信息的情况下控制嵌入式操作系统进入非工作状态。本申请实施例可对嵌入式操作系统版权进行有效管理。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及嵌入式操作系统的授权方法及装置、设备和介质。
背景技术
嵌入式操作系统是一种用途广泛的系统软件,通常包括与硬件相关的底层驱动软件、系统内核、设备驱动接口、通信协议、图形界面、标准化浏览器等。嵌入式操作系统是用于嵌入式系统的操作系统。嵌入式操作系统可负责嵌入式系统的全部软、硬件资源的分配、任务调度,控制、协调并发活动,可体现其所在系统的特征,能够通过装卸某些模块来达到系统所要求的功能。在用户购买嵌入式操作系统时需要对嵌入式操作系统进行授权控制。现有技术中,嵌入式操作系统的授权方式通常是通过合同方式进行购买操作系统版权。此种方式存在的明显缺点是,无法对操作系统版权进行行之有效的管理,用户可以随意安装、分发操作系统,增加了软件授权许可的控制难度。
发明内容
鉴于现有技术的以上问题,本申请实施例提供一种嵌入式操作系统的授权方法及装置、设备和介质,通过将硬件信息与授权码进行匹配,可以对嵌入式操作系统版权进行行之有效的管理,避免用户随意安装、分发操作系统,使得嵌入式操作系统的授权的操作更加便捷,提升了用户体验。
为达到上述目的,本申请第一方面提供了一种嵌入式操作系统的授权方法,所述嵌入式操作系统中设有内置于内核中的授权组件,所述方法包括:
在启动嵌入式操作系统时,所述授权组件访问指定存储位置以获取所述嵌入式操作系统的授权码;
在所述授权码获取失败的情况下,根据所述嵌入式操作系统所在硬件设备的硬件信息生成授权申请码;
根据所述授权申请码生成授权请求信息,将所述授权请求信息发送给授权服务器;
接收所述授权服务器根据所述授权请求信息生成的返回信息;
在接收到授权成功的返回信息的情况下,控制所述嵌入式操作系统进入工作状态;在接收到授权失败的返回信息的情况下,控制所述嵌入式操作系统进入非工作状态;其中,所述授权成功的返回信息是所述授权服务器根据所述嵌入式操作系统的授权码生成的。
作为第一方面的一种可能的实现方式,上述方法还包括:
所述授权组件在接收到授权服务器反馈的所述授权成功的返回信息后,将所述信息写入到所述指定存储位置的加密文件中。
作为第一方面的一种可能的实现方式,上述方法还包括:
在所述授权码获取成功的情况下,
将所述硬件信息与所述授权码进行匹配;
根据所述匹配的结果,控制所述嵌入式操作系统的工作状态。
作为第一方面的一种可能的实现方式,根据所述匹配的结果,控制所述嵌入式操作系统的工作状态,包括:
在所述匹配成功的情况下,控制所述嵌入式操作系统进入工作状态;
在所述匹配失败的情况下,返回执行所述根据所述嵌入式操作系统所在硬件设备的硬件信息生成授权申请码的步骤。
作为第一方面的一种可能的实现方式,在将所述授权请求信息发送给授权服务器之前,所述方法还包括:
利用第一对称加密算法和密钥将第一字符串加密;
根据加密后的第一字符串、所述第一对称加密算法的索引以及所述密钥的索引生成身份验证请求;
将所述身份验证请求发送给所述授权服务器;
接收所述授权服务器根据所述身份验证请求生成的验证结果信息,所述验证结果信息中包括第二对称加密算法的索引、第三字符串和加密后的非对称加密算法的公钥;
利用所述第二对称加密算法的索引对所述第三字符串进行解密,得到第四字符串;
将所述第四字符串与所述第一字符串进行比对,根据所述比对的结果对所述授权服务器进行身份验证。
作为第一方面的一种可能的实现方式,根据所述授权申请码生成授权请求信息,还包括:利用所述非对称加密算法的公钥将所述授权申请码进行加密,生成所述授权请求信息;
接收所述授权服务器根据所述授权请求信息生成的返回信息之后,还包括:利用所述非对称加密算法的公钥将所述返回信息进行解密,在接收到授权成功的返回信息的情况下将解密后的所述返回信息存储到所述指定存储位置。
本申请第二方面提供了一种嵌入式操作系统的授权方法,应用于授权服务器,该方法包括:
所述授权服务器中的授权服务程序接收来自嵌入式操作系统侧的授权请求信息;
将所述授权请求信息与预先导入的授权文件进行匹配,所述授权文件中包括所述嵌入式操作系统所在硬件设备的硬件信息以及对应的授权许可信息;
在匹配成功的情况下生成授权码,并根据所述授权码生成授权成功的返回信息;在匹配失败的情况下生成授权失败的返回信息;
将所述返回信息发送给所述嵌入式操作系统侧。
作为第二方面的一种可能的实现方式,上述方法还包括:
接收来自所述嵌入式操作系统侧的身份验证请求;
根据所述身份验证请求中的第一对称加密算法的索引以及密钥的索引,对所述身份验证请求中的加密后的第一字符串进行解密,得到第二字符串;
利用第二对称加密算法对所述第二字符串进行加密,得到第三字符串;利用第二对称加密算法对及非对称加密算法的公钥进行加密;根据所述第三字符串、加密后的非对称加密算法的公钥、所述第二对称加密算法的索引生成验证结果信息;
将所述验证结果信息返回给所述嵌入式操作系统侧。
作为第二方面的一种可能的实现方式,将所述授权请求信息与预先导入的授权文件进行匹配,还包括:利用非对称加密算法的私钥对所述授权请求信息进行解密,将解密后的授权请求信息与预先导入的授权文件进行匹配;
在匹配成功的情况下生成授权码,并根据所述授权码生成授权成功的返回信息,还包括:利用非对称加密算法的私钥对所述授权码进行加密,生成所述授权成功的返回信息。
作为第二方面的一种可能的实现方式,上述方法还包括:
所述授权服务器中的保护程序生成用于加密和解密的第一私钥和第一公钥,以及,生成用于对所述第一公钥进行加密和解密的第二私钥和第二公钥;
对组成授权服务程序的第一文件包进行解压处理,得到目标文件;
利用所述第一私钥对所述目标文件进行加密处理,并将加密后的目标文件压缩为第二文件包,并利用所述第二文件包替换所述第一文件包,得到加密后的所述授权服务程序;
利用所述第二私钥对所述第一公钥进行加密,生成公钥文件,并将所述公钥文件存于指定位置。
作为第二方面的一种可能的实现方式,利用所述第二私钥对所述第一公钥进行加密,生成公钥文件,包括:
利用摘要算法生成所述第一公钥的第一信息摘要,并采用预设编码方式对所述第一信息摘要进行编码,得到第一编码信息;
利用第二私钥对所述第一公钥和所述第一编码信息进行加密,得到加密信息,并采用预设编码方式对所述加密信息进行编码,得到第二编码信息;
将所述第二编码信息混淆在随机生成的第一字符串中,得到第二字符串;
利用摘要算法生成所述第二字符串的第二信息摘要,并采用预设编码方式对所述第二信息摘要进行编码,得到第三字符串;
根据所述第二字符串和所述第三字符串生成所述公钥文件。
作为第二方面的一种可能的实现方式,所述摘要算法包括MD5信息摘要算法;所述预设编码方式包括base64编码方式。
作为第二方面的一种可能的实现方式,上述方法还包括:
在运行加密后的所述授权服务程序的过程中,所述授权服务器中的保护程序从动态链接库中获取第二公钥;
读取加密后的所述授权服务程序对应的公钥文件;
利用所述第二公钥对所述公钥文件进行解密,得到第一公钥;
利用所述第一公钥对加密后的所述授权服务程序中的第二文件包进行解密。
作为第二方面的一种可能的实现方式,利用所述第二公钥对所述公钥文件进行解密,得到第一公钥,包括:
根据所述公钥文件中的第二字符串生成第三信息摘要,将所述第三信息摘要与所述公钥文件中的第三字符串进行比对,根据比对结果对所述公钥文件进行验证;
将所述公钥文件中的第二字符串解除混淆,得到第三编码信息;
根据预设编码方式将所述第三编码信息进行解码;
利用所述第二公钥,对所述解码后的编码信息进行解密,得到所述第一公钥和所述第一公钥的第一信息摘要;
将所述第一公钥和所述第一信息摘要进行比对,根据比对结果对所述公钥文件进行验证。
作为第二方面的一种可能的实现方式,从动态链接库中获取第二公钥,包括:
利用本地接口程序加载所述动态链接库,所述动态链接库包括加壳处理后的动态链接库;
从所述加壳处理后的动态链接库中获取所述第二公钥。
本申请第三方面提供了一种嵌入式操作系统的授权装置,所述嵌入式操作系统中设有内置于内核中的授权组件,该装置包括:
访问单元,用于在启动嵌入式操作系统时,利用所述授权组件访问指定存储位置以获取所述嵌入式操作系统的授权码;
第一生成单元,用于在所述授权码获取失败的情况下,根据所述嵌入式操作系统所在硬件设备的硬件信息生成授权申请码;
第一发送单元,用于根据所述授权申请码生成授权请求信息,将所述授权请求信息发送给授权服务器;
第一接收单元,用于接收所述授权服务器根据所述授权请求信息生成的返回信息;
控制单元,用于在接收到授权成功的返回信息的情况下,控制所述嵌入式操作系统进入工作状态;在接收到授权失败的返回信息的情况下,控制所述嵌入式操作系统进入非工作状态;其中,所述授权成功的返回信息是所述授权服务器根据所述嵌入式操作系统的授权码生成的。
作为第三方面的一种可能的实现方式,所述控制单元还用于:
利用所述授权组件在接收到授权服务器反馈的所述授权成功的返回信息后,将所述信息写入到所述指定存储位置的加密文件中。
作为第三方面的一种可能的实现方式,上述装置还包括:
第一匹配单元,用于在所述授权码获取成功的情况下,将所述硬件信息与所述授权码进行匹配;
所述控制单元,还用于根据所述匹配的结果,控制所述嵌入式操作系统的工作状态。
作为第三方面的一种可能的实现方式,所述控制单元用于:
在所述匹配成功的情况下,控制所述嵌入式操作系统进入工作状态;
在所述匹配失败的情况下,返回执行所述根据所述嵌入式操作系统所在硬件设备的硬件信息生成授权申请码的步骤。
作为第三方面的一种可能的实现方式,上述装置还包括第一验证单元,所述第一验证单元用于:
利用第一对称加密算法和密钥将第一字符串加密;
根据加密后的第一字符串、所述第一对称加密算法的索引以及所述密钥的索引生成身份验证请求;
将所述身份验证请求发送给所述授权服务器;
接收所述授权服务器根据所述身份验证请求生成的验证结果信息,所述验证结果信息中包括第二对称加密算法的索引、第三字符串和加密后的非对称加密算法的公钥;
利用所述第二对称加密算法的索引对所述第三字符串进行解密,得到第四字符串;
将所述第四字符串与所述第一字符串进行比对,根据所述比对的结果对所述授权服务器进行身份验证。
作为第三方面的一种可能的实现方式,所述控制单元还用于:
利用所述非对称加密算法的公钥将所述授权申请码进行加密,生成所述授权请求信息;
接收所述授权服务器根据所述授权请求信息生成的返回信息之后,利用所述非对称加密算法的公钥将所述返回信息进行解密,在接收到授权成功的返回信息的情况下,将解密后的所述返回信息存储到所述指定存储位置。
本申请第四方面提供了一种嵌入式操作系统的授权装置,应用于授权服务器,该装置包括:
第二接收单元,用于利用所述授权服务器中的授权服务程序接收来自嵌入式操作系统侧的授权请求信息;
第二匹配单元,用于将所述授权请求信息与预先导入的授权文件进行匹配,所述授权文件中包括所述嵌入式操作系统所在硬件设备的硬件信息以及对应的授权许可信息;
第二生成单元,用于在匹配成功的情况下生成授权码,并根据所述授权码生成授权成功的返回信息;在匹配失败的情况下生成授权失败的返回信息;
第二发送单元,用于将所述返回信息发送给所述嵌入式操作系统侧。
作为第四方面的一种可能的实现方式,上述装置还包括第二验证单元,所述第二验证单元用于:
接收来自所述嵌入式操作系统侧的身份验证请求;
根据所述身份验证请求中的第一对称加密算法的索引以及密钥的索引,对所述身份验证请求中的加密后的第一字符串进行解密,得到第二字符串;
利用第二对称加密算法对所述第二字符串进行加密,得到第三字符串;利用第二对称加密算法对及非对称加密算法的公钥进行加密;根据所述第三字符串、加密后的非对称加密算法的公钥、所述第二对称加密算法的索引生成验证结果信息;
将所述验证结果信息返回给所述嵌入式操作系统侧。
作为第四方面的一种可能的实现方式,所述第二匹配单元还用于:利用非对称加密算法的私钥对所述授权请求信息进行解密,将解密后的授权请求信息与预先导入的授权文件进行匹配;
所述第二生成单元用于:利用非对称加密算法的私钥对所述授权码进行加密,生成所述授权成功的返回信息。
作为第四方面的一种可能的实现方式,上述装置还包括加密单元,所述加密单元包括:
生成子单元,用于:利用所述授权服务器中的保护程序生成用于加密和解密的第一私钥和第一公钥,以及,生成用于对所述第一公钥进行加密和解密的第二私钥和第二公钥;
处理子单元,用于:对组成授权服务程序的第一文件包进行解压处理,得到目标文件;
第一加密子单元,用于:利用所述第一私钥对所述目标文件进行加密处理,并将加密后的目标文件压缩为第二文件包,并利用所述第二文件包替换所述第一文件包,得到加密后的所述授权服务程序;
第二加密子单元,用于:利用所述第二私钥对所述第一公钥进行加密,生成公钥文件,并将所述公钥文件存于指定位置。
作为第四方面的一种可能的实现方式,所述第二加密子单元用于:
利用摘要算法生成所述第一公钥的第一信息摘要,并采用预设编码方式对所述第一信息摘要进行编码,得到第一编码信息;
利用第二私钥对所述第一公钥和所述第一编码信息进行加密,得到加密信息,并采用预设编码方式对所述加密信息进行编码,得到第二编码信息;
将所述第二编码信息混淆在随机生成的第一字符串中,得到第二字符串;
利用摘要算法生成所述第二字符串的第二信息摘要,并采用预设编码方式对所述第二信息摘要进行编码,得到第三字符串;
根据所述第二字符串和所述第三字符串生成所述公钥文件。
作为第四方面的一种可能的实现方式,所述摘要算法包括MD5信息摘要算法;所述预设编码方式包括base64编码方式。
作为第四方面的一种可能的实现方式,上述装置还包括解密单元,所述解密单元包括:
获取子单元,用于:在运行加密后的所述授权服务程序的过程中,利用所述授权服务器中的保护程序从动态链接库中获取第二公钥;
读取子单元,用于:读取加密后的所述授权服务程序对应的公钥文件;
第一解密子单元,用于:利用所述第二公钥对所述公钥文件进行解密,得到第一公钥;
第二解密子单元,用于:利用所述第一公钥对加密后的所述授权服务程序中的第二文件包进行解密。
作为第四方面的一种可能的实现方式,所述第一解密子单元用于:
根据所述公钥文件中的第二字符串生成第三信息摘要,将所述第三信息摘要与所述公钥文件中的第三字符串进行比对,根据比对结果对所述公钥文件进行验证;
将所述公钥文件中的第二字符串解除混淆,得到第三编码信息;
根据预设编码方式将所述第三编码信息进行解码;
利用所述第二公钥,对所述解码后的编码信息进行解密,得到所述第一公钥和所述第一公钥的第一信息摘要;
将所述第一公钥和所述第一信息摘要进行比对,根据比对结果对所述公钥文件进行验证。
作为第四方面的一种可能的实现方式,所述获取子单元用于:
利用本地接口程序加载所述动态链接库,所述动态链接库包括加壳处理后的动态链接库;
从所述加壳处理后的动态链接库中获取所述第二公钥。
本申请第五方面提供了一种计算设备,包括:
通信接口;
至少一个处理器,其与所述通信接口连接;以及
至少一个存储器,其与所述处理器连接并存储有程序指令,所述程序指令当被所述至少一个处理器执行时使得所述至少一个处理器执行上述第一方面任一所述的方法。
本申请第六方面提供了一种计算机可读存储介质,其上存储有程序指令,所述程序指令当被计算机执行时使得所述计算机执行上述第一方面任一所述的方法。
本发明的这些和其它方面在以下(多个)实施例的描述中会更加简明易懂。
附图说明
以下参照附图来进一步说明本发明的各个特征和各个特征之间的联系。附图均为示例性的,一些特征并不以实际比例示出,并且一些附图中可能省略了本申请所涉及领域的惯常的且对于本申请非必要的特征,或是额外示出了对于本申请非必要的特征,附图所示的各个特征的组合并不用以限制本申请。另外,在本说明书全文中,相同的附图标记所指代的内容也是相同的。具体的附图说明如下:
图1为本申请实施例提供的嵌入式操作系统的授权方法的一实施例的示意图;
图2为本申请实施例提供的嵌入式操作系统的授权方法的一实施例的示意图;
图3为本申请实施例提供的嵌入式操作系统的授权方法的一实施例的示意图;
图4为本申请实施例提供的嵌入式操作系统的授权方法的一实施例的示意图;
图5为本申请实施例提供的嵌入式操作系统的授权方法的一实施例的示意图;
图6为本申请实施例提供的嵌入式操作系统的授权方法的一实施例的授权服务器组成示意图;
图7为本申请实施例提供的嵌入式操作系统的授权方法的一实施例的加密过程的示意图;
图8为本申请实施例提供的嵌入式操作系统的授权方法的一实施例的加密过程的示意图;
图9为本申请实施例提供的嵌入式操作系统的授权方法的一实施例的加密过程的示意图;
图10为本申请实施例提供的嵌入式操作系统的授权方法的一实施例的解密过程的示意图;
图11为本申请实施例提供的嵌入式操作系统的授权方法的一实施例的解密过程的示意图;
图12为本申请实施例提供的嵌入式操作系统的授权方法的一实施例的解密过程的示意图;
图13为本申请实施例提供的嵌入式操作系统的授权方法的一实施例的总体架构示意图;
图14为本申请实施例提供的嵌入式操作系统的授权装置的一实施例的示意图;
图15为本申请实施例提供的嵌入式操作系统的授权装置的一实施例的示意图;
图16为本申请实施例提供的嵌入式操作系统的授权装置的一实施例的示意图;
图17为本申请实施例提供的嵌入式操作系统的授权装置的一实施例的示意图;
图18为本申请实施例提供的计算设备的示意图。
具体实施方式
说明书和权利要求书中的词语“第一、第二、第三等”或模块A、模块B、模块C等类似用语,仅用于区别类似的对象,不代表针对对象的特定排序,可以理解地,在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
在以下的描述中,所涉及的表示步骤的标号,如S110、S120……等,并不表示一定会按此步骤执行,在允许的情况下可以互换前后步骤的顺序,或同时执行。
说明书和权利要求书中使用的术语“包括”不应解释为限制于其后列出的内容;它不排除其它的元件或步骤。因此,其应当诠释为指定所提到的所述特征、整体、步骤或部件的存在,但并不排除存在或添加一个或更多其它特征、整体、步骤或部件及其组群。因此,表述“包括装置A和B的设备”不应局限为仅由部件A和B组成的设备。
本说明书中提到的“一个实施例”或“实施例”意味着与该实施例结合描述的特定特征、结构或特性包括在本发明的至少一个实施例中。因此,在本说明书各处出现的用语“在一个实施例中”或“在实施例中”并不一定都指同一实施例,但可以指同一实施例。此外,在一个或多个实施例中,能够以任何适当的方式组合各特定特征、结构或特性,如从本公开对本领域的普通技术人员显而易见的那样。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。如有不一致,以本说明书中所说明的含义或者根据本说明书中记载的内容得出的含义为准。另外,本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。为了准确地对本申请中的技术内容进行叙述,以及为了准确地理解本发明,在对具体实施方式进行说明之前先对本说明书中所使用的术语给出如下的解释说明或定义:
1)安全外壳协议(Secure Shell,SSH),SSH为建立在应用层基础上的安全协议。SSH是较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用SSH协议可以有效防止远程管理过程中的信息泄露问题。SSH主要由三部分组成:传输层协议、用户认证协议和连接协议。传输层协议提供了服务器认证,保密性及完整性。此外它有时还提供压缩功能。用户认证协议用于向服务器提供客户端用户鉴别功能。连接协议将多个加密隧道分成逻辑通道。
2)通用串行总线(Universal Serial Bus,USB):是一个外部总线标准,用于规范电脑与外部设备的连接和通讯。要开发一个完整的USB接口,其过程较为复杂,除其硬件电路设计以外,还包括软件设计过程,主要包括接口芯片固件编程、设备驱动开发和应用软件设计等3个方面。USB接口芯片固件是其各种底层功能函数,用于实现芯片读写等操作。设备驱动主要用于驱动USB设备,使连接上位机之后能被识别。其中,设备驱动还需要完成固件下载的工作,这样用户才能应用设计的固件。完成接口芯片固件和设备驱动的编写之后,编写用户控制软件,按照用户需求控制USB接口通信过程。
3)媒体存取控制位址(Media Access Control Address,MAC地址):是一个用来确认网络设备位置的位址。在OSI模型中,第二层数据链路层则负责MAC位址。MAC地址用于在网络中唯一标示一个网卡,一台设备若有一或多个网卡,则每个网卡都需要并会有一个唯一的MAC地址。
4)Base64:是网络上最常见的用于传输8Bit字节码的编码方式之一。Base64是一种基于64个可打印字符来表示二进制数据的方法。Base64编码是从二进制到字符的过程,可用于在超文本传输协议(Hyper Text Transfer Protocol,HTTP)环境下传递较长的标识信息。采用Base64编码具有不可读性,需要解码后才能阅读。
5)加壳:是利用特殊的算法,对可执行文件里的资源进行压缩。这个压缩之后的文件,可以独立运行。解压过程完全隐蔽,都在内存中完成。加壳后的可执行文件附加在原程序上通过加载器载入内存后,先于原始程序执行,得到控制权,执行过程中对原始程序进行解密、还原,还原完成后再把控制权交还给原始程序,执行原来的代码部分。加上外壳后,原始程序代码在磁盘文件中一般是以加密后的形式存在的,只在执行时在内存中还原,这样就可以比较有效地防止破解者对程序文件的非法修改,同时也可以防止程序被静态反编译。
6)Eclipse:是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它是一个框架和一组服务,用于通过插件组件构建开发环境。Eclipse附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。
下面先对现有的方法进行介绍,然后再对本申请的技术方案进行详细介绍。
现有技术的操作系统授权一般采用如下方式:
1)需要用户购买操作系统产品的注册码,然后手动输入操作系统产品注册码以激活操作系统;
2)批量授权给电脑设备生产厂商,用户购买了电脑设备后无需再购买操作系统产品的注册码;
3)通过合同方式进行购买操作系统版权,用户可以随意安装;
4)通过加密硬件(如:USB加密狗)进行授权。
以上方式通常是针对通用操作系统(如:windows),而针对嵌入式操作系统,则一般采用第三种方式,即通过合同方式进行购买操作系统版权的方式进行授权控制。
现有技术中针对嵌入式操作系统的授权方式具有以下缺陷:无法对操作系统版权进行行之有效的管理,用户可以随意安装、分发操作系统,增加了软件授权许可的控制难度。
基于上述现有技术所存在的技术问题,本申请提供了一种嵌入式操作系统的授权方法和嵌入式操作系统的授权的方法。本申请实施例通过将硬件信息与授权码进行匹配,可以对嵌入式操作系统版权进行行之有效的管理,避免用户随意安装、分发操作系统。采用本申请实施例的授权方法,可以对嵌入式操作系统的使用权进行灵活控制,使得嵌入式操作系统的授权的操作更加便捷,提升了用户体验,解决了嵌入式操作系统授权许可控制难度大的问题。
图1为本申请实施例提供的嵌入式操作系统的授权方法的一实施例的示意图。如图1所示,该嵌入式操作系统的授权方法可应用于授权客户端,嵌入式操作系统中设有内置于内核中的授权组件,该方法具体可以包括:
步骤S110,在启动嵌入式操作系统时,所述授权组件访问指定存储位置以获取所述嵌入式操作系统的授权码;
步骤S120,在所述授权码获取失败的情况下,根据所述嵌入式操作系统所在硬件设备的硬件信息生成授权申请码;
步骤S130,根据所述授权申请码生成授权请求信息,将所述授权请求信息发送给授权服务器;
步骤S140,接收所述授权服务器根据所述授权请求信息生成的返回信息;
步骤S150,在接收到授权成功的返回信息的情况下,控制所述嵌入式操作系统进入工作状态;其中,所述授权成功的返回信息是所述授权服务器根据所述嵌入式操作系统的授权码生成的;
步骤S160,在接收到授权失败的返回信息的情况下,控制所述嵌入式操作系统进入非工作状态。
用户在购买嵌入式操作系统使用权时,授权机构可将使用权限对应的授权文件发放给用户。授权文件中可包括嵌入式操作系统所在硬件设备的硬件信息以及对应的授权许可信息。用户在使用嵌入式操作系统之前,将授权文件导入到授权服务器中。
在嵌入式操作系统每次启动时,内置于内核中的授权组件是第一个被加载运行的组件。在步骤S110中,在嵌入式操作系统每次启动时,授权组件都会首先访问指定存储位置,从指定存储位置获取嵌入式操作系统的授权码。在授权客户端没有获取到授权码的情况下,可以向授权服务器发送嵌入式操作系统所在硬件设备的授权请求信息,以请求授权服务器给予嵌入式操作系统的使用权限,请求获取授权码。
在嵌入式操作系统首次启动时,没有从授权服务器获取到授权码,这种情况下会出现授权码获取失败的情况。在步骤S120中,授权组件读取嵌入式操作系统所在硬件设备的硬件信息,并根据硬件信息生成授权申请码。在步骤S130中,授权组件向授权服务器发送授权请求信息,在授权请求信息中携带授权申请码,以请求授权服务器给予嵌入式操作系统的使用权限,请求获取授权码。
授权服务器接收到授权请求信息之后,将授权请求信息中的硬件信息与授权文件中的硬件信息相比对,在确定该硬件设备具有使用权限的情况下,向嵌入式操作系统的授权组件发送授权成功的返回信息。在授权成功的返回信息中携带授权码。在确定该硬件设备不具有使用权限的情况下,向授权组件发送授权失败的返回信息。在步骤S140中,授权组件接收授权服务器根据授权请求信息生成的返回信息。在步骤S150和步骤S160中,根据返回信息,控制嵌入式操作系统是否进入工作状态。
在本方案中,可将嵌入式操作系统授权组件作为授权客户端,通过授权客户端与授权服务器之间的交互实现嵌入式操作系统的授权管理。本申请实施例通过授权码可以对嵌入式操作系统版权进行行之有效的管理,避免用户随意安装、分发操作系统,使得嵌入式操作系统的授权的操作更加便捷,提升了用户体验。
在一种实施方式中,上述方法还包括:
所述授权组件在接收到授权服务器反馈的所述授权成功的返回信息后,将所述信息写入到所述指定存储位置的加密文件中。
授权服务器在接收到授权请求信息后,将授权请求信息与预先导入的授权文件进行匹配。在匹配成功的情况下生成授权码,根据授权码生成授权成功的返回信息,再将授权成功的返回信息发送给授权组件。
授权组件接收授权成功的返回信息之后,从返回信息中得到授权码,将授权码存储到所述指定存储位置的加密文件中。在嵌入式操作系统再次启动时,授权组件就可以从指定存储位置获取到授权码,然后根据授权码控制所述嵌入式操作系统的工作状态。图2为本申请实施例提供的嵌入式操作系统的授权方法的一实施例的示意图。如图2所示,在一种实施方式中,上述方法还包括:
步骤S210,在所述授权码获取成功的情况下,
将所述硬件信息与所述授权码进行匹配;
步骤S230,根据所述匹配的结果,控制所述嵌入式操作系统的工作状态。
如前述,可在嵌入式操作系统首次启动的时候,由授权组件向授权服务器发送嵌入式操作系统所在硬件设备的授权请求信息。授权请求信息中可以携带嵌入式操作系统所在硬件设备的硬件信息。授权服务器在接收到授权请求信息之后,将授权请求信息中的硬件信息与授权文件中的硬件信息相比对,在确定该硬件设备具有使用权限的情况下,向授权组件发送授权成功的返回信息。在授权成功的返回信息中携带授权码。授权码中可包括硬件设备的硬件信息以及对应的授权许可信息。授权组件接收到授权码之后,可将授权码存储到指定存储位置。
在步骤S110中,在嵌入式操作系统每次启动的过程中,授权组件都会首先访问指定存储位置,从指定存储位置获取嵌入式操作系统的授权码。在授权成功的情况下,授权组件可以获取到授权码。在授权失败的情况下,授权组件没有获取到授权码,可以向授权服务器发送嵌入式操作系统所在硬件设备的授权请求信息,以请求授权服务器给予嵌入式操作系统的使用权限,请求获取授权码。
在步骤S210中,授权组件读取嵌入式操作系统所在硬件设备的硬件信息。如:中央处理器(Central Processing Unit,CPU)序列号、硬盘序列号、网卡MAC地址等。授权组件将读取的硬件信息与授权码中的硬件信息进行匹配。
在步骤S230中,在匹配成功的情况下,可确定该硬件设备具有嵌入式操作系统的使用权限;在匹配失败的情况下,可确定该硬件设备不具有嵌入式操作系统的使用权限。可根据所述匹配的结果,控制嵌入式操作系统是否进入工作状态。
本申请实施例通过将硬件信息与授权码进行匹配,可以对嵌入式操作系统版权进行行之有效的管理,避免用户随意安装、分发操作系统,使得嵌入式操作系统的授权的操作更加便捷,提升了用户体验。
在一种实施方式中,根据所述匹配的结果,控制所述嵌入式操作系统的工作状态,包括:
在所述匹配成功的情况下,控制所述嵌入式操作系统进入工作状态;
在所述匹配失败的情况下,返回执行所述根据所述嵌入式操作系统所在硬件设备的硬件信息生成授权申请码的步骤。
在嵌入式操作系统的使用过程中,更换硬件设备、授权码已过期、更换了授权文件,这种情况下可能会出现硬件信息与授权码匹配失败的情况。出现授权码匹配失败的情况时,与授权码获取失败的情况一样,返回执行步骤S120中根据所述嵌入式操作系统所在硬件设备的硬件信息生成授权申请码的步骤。在该步骤中,授权组件根据硬件信息生成授权申请码,然后再执行步骤S130至步骤S160,根据从授权服务器获取的授权码控制嵌入式操作系统的工作状态。
图3为本申请实施例提供的嵌入式操作系统的授权方法的一实施例的示意图。如图3所示,在一种实施方式中,在将所述授权请求信息发送给授权服务器之前,所述方法还包括:
步骤S310,利用第一对称加密算法和密钥将第一字符串加密;
步骤S320,根据加密后的第一字符串、所述第一对称加密算法的索引以及所述密钥的索引生成身份验证请求;
步骤S330,将所述身份验证请求发送给所述授权服务器;
步骤S340,接收所述授权服务器根据所述身份验证请求生成的验证结果信息,所述验证结果信息中包括第二对称加密算法的索引、第三字符串和加密后的非对称加密算法的公钥;
步骤S350,利用所述第二对称加密算法的索引对所述第三字符串进行解密,得到第四字符串;
步骤S360,将所述第四字符串与所述第一字符串进行比对,根据所述比对的结果对所述授权服务器进行身份验证。
本申请实施例中,为确保信息安全,可在将授权请求信息发送给授权服务器之前,授权客户端和授权服务器之间可通过以上步骤进行身份验证。其中第一字符串可以是预设字符串。在一个示例中,第一字符串可以是一个数学算数表达式,例如:123+456-321。在授权客户端和授权服务器中都内置了多套对称加密算法以及密钥。其中每套对称加密算法可以通过索引进行唯一标识。第一对称加密算法的索引也就是第一对称加密算法的标识。根据索引可得到相应的对称加密算法。
在上述身份验证的步骤S310至步骤S330中,授权客户端利用第一对称加密算法将第一字符串加密,再将加密后的第一字符串作为身份验证请求发送给授权服务器。身份验证请求中同时还携带第一对称加密算法的索引以及所述密钥的索引。
授权服务器接收到身份验证请求之后,利用身份验证请求中的第一对称加密算法以及密钥对加密后的第一字符串进行解密,得到第二字符串。再利用第二对称加密算法对第二字符串进行加密,得到第三字符串。将第三字符串作为验证结果信息发送给授权客户端。验证结果信息中同时还携带第二对称加密算法的索引以及非对称加密算法的公钥。
在上述身份验证的步骤S340至步骤S360中,授权客户端接收到验证结果信息后,利用第二对称加密算法对第三字符串进行解密,得到第四字符串。再将第四字符串与第一字符串进行比对。如果两者一致,则授权客户端对授权服务器的身份验证通过。
本申请实施例中,通过授权客户端对授权服务器的身份验证进一步保证了信息安全,可防止不法分子伪造虚假信息、冒充用户身份骗取授权码,可以对嵌入式操作系统版权进行安全有效的管理,提升了用户体验。
在一种实施方式中,根据所述授权申请码生成授权请求信息,还包括:利用所述非对称加密算法的公钥将所述授权申请码进行加密,生成所述授权请求信息;
接收所述授权服务器根据所述授权请求信息生成的返回信息之后,还包括:利用所述非对称加密算法的公钥将所述返回信息进行解密,在接收到授权成功的返回信息的情况下将解密后的所述返回信息存储到所述指定存储位置。
在上述身份验证的步骤S340授权客户端接收的验证结果信息中包括非对称加密算法的公钥。授权客户端可利用非对称加密算法的公钥将授权申请码进行加密。在发送给授权服务器的授权请求信息中携带加密的授权申请码。
授权服务器在接收到授权请求信息后,利用非对称加密算法的私钥对授权请求信息进行解密,将解密后的授权请求信息与预先导入的授权文件进行匹配。在匹配成功的情况下生成授权码,利用非对称加密算法的私钥对所述授权码进行加密,生成所述授权成功的返回信息,再将授权成功的返回信息发送给授权客户端。
授权客户端接收授权成功的返回信息之后,利用非对称加密算法的公钥将返回信息进行解密,得到授权码,将授权码存储到所述指定存储位置。在嵌入式操作系统再次启动时,授权客户端就可以从指定存储位置获取到授权码,然后根据授权码控制所述嵌入式操作系统的工作状态。
本申请实施例中,在授权请求信息和返回信息中携带的是加密后的信息。通过这种加密方式可进一步保证了信息安全,可防止不法分子伪造虚假信息、冒充用户身份骗取授权码,可以对嵌入式操作系统版权进行安全有效的管理,提升用户体验。
图4为本申请实施例提供的嵌入式操作系统的授权方法的一实施例的示意图。如图4所示,该嵌入式操作系统的授权方法可应用于授权服务器,具体可以包括:
步骤S410,所述授权服务器中的授权服务程序接收来自嵌入式操作系统侧的授权请求信息;
步骤S420,将所述授权请求信息与预先导入的授权文件进行匹配,所述授权文件中包括所述嵌入式操作系统所在硬件设备的硬件信息以及对应的授权许可信息;
步骤S430,在匹配成功的情况下生成授权码,并根据所述授权码生成授权成功的返回信息;在匹配失败的情况下生成授权失败的返回信息;
步骤S440,将所述返回信息发送给所述嵌入式操作系统侧。
参见上述关于应用于授权客户端的授权方法的相关描述,用户在购买嵌入式操作系统使用权时,授权机构可将使用权限对应的授权文件发放给用户。在本方案中,可将嵌入式操作系统授权组件作为授权客户端。授权文件中可包括嵌入式操作系统所在硬件设备的硬件信息以及对应的授权许可信息。用户在使用嵌入式操作系统之前,将授权文件导入到授权服务器中。在嵌入式操作系统启动的过程中,嵌入式操作系统侧的授权组件在授权码获取失败的情况下,或者在将授权码与硬件设备的硬件信息匹配失败的情况下,向授权服务器发送授权请求信息。在步骤S410中,授权服务器接收来自授权组件的授权请求信息。在步骤S420中,授权服务器将授权请求信息中的硬件信息与授权文件中的硬件信息进行匹配。在步骤S430和步骤S440,中,在匹配成功的情况下,确定该硬件设备具有使用权限的情况下,授权服务器向授权组件发送授权成功的返回信息。在授权成功的返回信息中携带授权码。在匹配失败的情况下,确定该硬件设备不具有使用权限的情况下,授权服务器向嵌入式操作系统侧的授权组件发送授权失败的返回信息。
本申请实施例通过将授权请求信息中的硬件信息与授权文件中的硬件信息进行匹配,可以对嵌入式操作系统版权进行行之有效的管理,避免用户随意安装、分发操作系统,使得嵌入式操作系统的授权的操作更加便捷,提升了用户体验。
图5为本申请实施例提供的嵌入式操作系统的授权方法的一实施例的示意图。如图5所示,在一种实施方式中,上述方法还包括:
步骤S510,接收来自所述嵌入式操作系统侧的身份验证请求;
步骤S520,根据所述身份验证请求中的第一对称加密算法的索引以及密钥的索引,对所述身份验证请求中的加密后的第一字符串进行解密,得到第二字符串;
步骤S530,利用第二对称加密算法对所述第二字符串进行加密,得到第三字符串;利用第二对称加密算法对及非对称加密算法的公钥进行加密;根据所述第三字符串、加密后的非对称加密算法的公钥、所述第二对称加密算法的索引生成验证结果信息;
步骤S540,将所述验证结果信息返回给所述嵌入式操作系统侧。
在本方案中,可将嵌入式操作系统授权组件作为授权客户端。参见上述关于应用于授权客户端的授权方法的相关描述,为确保信息安全,可在将授权请求信息发送给授权服务器之前,授权客户端和授权服务器之间可通过以上步骤进行身份验证。授权客户端利用第一对称加密算法将第一字符串加密,再将加密后的第一字符串作为身份验证请求发送给授权服务器。身份验证请求中同时还携带第一对称加密算法的索引以及所述密钥的索引。
在上述步骤S510至步骤S520中,授权服务器接收到来自所述嵌入式操作系统侧的授权客户端的身份验证请求,利用身份验证请求中的第一对称加密算法的索引以及密钥的索引,得到第一对称加密算法以及密钥。再利用第一对称加密算法以及密钥对加密后的第一字符串进行解密,得到第二字符串。在上述步骤S530至步骤S540中,授权服务器再利用第二对称加密算法对第二字符串进行加密,得到第三字符串。再将第三字符串作为验证结果信息发送给嵌入式操作系统侧的授权客户端。验证结果信息中同时还携带第二对称加密算法的索引,以及利用第二对称加密算法加密过的非对称加密算法的公钥。
授权客户端接收到验证结果信息后,利用第二对称加密算法对第三字符串进行解密,得到第四字符串。再将第四字符串与第一字符串进行比对。如果两者一致,则授权客户端对授权服务器的身份验证通过。
本申请实施例中,通过授权客户端和授权服务器之间的身份验证进一步保证了信息安全,可防止不法分子伪造虚假信息、冒充用户身份骗取授权码,可以对嵌入式操作系统版权进行安全有效的管理,提升了用户体验。
在一种实施方式中,将所述授权请求信息与预先导入的授权文件进行匹配,还包括:利用非对称加密算法的私钥对所述授权请求信息进行解密,将解密后的授权请求信息与预先导入的授权文件进行匹配;
在匹配成功的情况下生成授权码,并根据所述授权码生成授权成功的返回信息,还包括:利用非对称加密算法的私钥对所述授权码进行加密,生成所述授权成功的返回信息。
在上述步骤S540中,授权服务器将验证结果信息发送给授权客户端。验证结果信息中同时还携带非对称加密算法的公钥。授权客户端可利用非对称加密算法的公钥将授权申请码进行加密。在发送给授权服务器的授权请求信息中携带加密的授权申请码。
授权服务器在接收到授权请求信息后,利用非对称加密算法的私钥对授权请求信息进行解密,将解密后的授权请求信息与预先导入的授权文件进行匹配。在匹配成功的情况下生成授权码,利用非对称加密算法的私钥对所述授权码进行加密,生成所述授权成功的返回信息,再将授权成功的返回信息发送给授权客户端。
本申请实施例中,在授权请求信息和返回信息中携带的是加密后的信息。通过这种加密方式可进一步保证了信息安全,可防止不法分子伪造虚假信息、冒充用户身份骗取授权码,可以对嵌入式操作系统版权进行安全有效的管理,提升用户体验。
关于应用于授权服务器的授权方法的有益效果或解决的技术问题,可以参见上述关于应用于授权客户端的授权方法中对应的相关描述,或者参见发明内容中的描述,此处不再一一赘述。
以下列举在不同应用场景下实现本申请实施例提供的嵌入式操作系统的授权方法的技术方案。
方案一:通过以太网对嵌入式操作系统进行授权的方案
其中,嵌入式操作系统可包括intewell操作系统。实现本申请实施例提供的嵌入式操作系统的授权方法的装置可由以下几部分组成:
1)嵌入式操作系统授权组件
1.授权组件内置于嵌入式操作系统的内核中,对用户和用户程序不可见;
2.每次嵌入式操作系统启动时,它是第一个被加载运行的组件;
3.授权组件会读取所在硬件设备的硬件信息。其中,硬件信息可包括:CPU序列号、硬盘序列号、网卡MAC地址等。然后将硬件信息通过一定的组合算法生成授权申请码。组合算法中可包括哈希运算等组合方式。
4.授权组件检查嵌入式操作系统是否有授权码以及授权码是否与本机的硬件信息匹配。如果有授权码,则嵌入式操作系统进入工作模式。如果没有授权码,或者授权码与硬件信息不匹配,则嵌入式操作系统会进入非工作模式。在这种情况下,授权组件会连接授权服务器程序进行授权申请操作。
5.在接收到来自授权服务器的授权成功的返回信息的情况下,授权组件从返回信息中获取授权码,将包括授权码的授权信息写入到一个对用户程序不可见的加密文件中,然后通知嵌入式操作系统进入工作模式;如果接收到授权失败的返回信息,则嵌入式操作系统依旧停留在非工作模式中。
在本方案中,可将嵌入式操作系统授权组件作为授权客户端,通过授权客户端与授权服务器之间的交互实现嵌入式操作系统的授权管理。
2)授权服务器程序,负责根据客户导入的授权文件中包含的授权信息对嵌入式操作系统进行在线授权。授权服务器可由如下几部分组成:
1.授权文件导入模块:通过此模块提供的浏览器操作界面,用户可以导入授权文件;
2.授权系统配置模块:通过此模块提供的浏览器操作界面,用户可以配置授权服务器的互联网协议地址(Internet Protocol Address,IP地址);
3.授权文件解析模块:验证授权文件的合法性、负责解析授权文件;
4.授权模块:负责根据授权文件解析模块得到的授权文件中的授权信息,对嵌入式操作系统进行网络授权;
5.授权记录管理模块:负责管理所有的授权记录,用户可以通过浏览器进行查看;
3)授权服务器程序保护模块
图6为本申请实施例提供的嵌入式操作系统的授权方法的一实施例的授权服务器组成示意图。如图6所示,授权服务器程序保护模块和Java虚拟机可运行在linux操作系统上。为了防止授权服务器程序被破解,可预先通过非对称加密算法对组成授权服务程序的每个java class(类)文件内容进行加密。在运行授权服务程序时,授权服务器程序保护模块根据Java虚拟机加载class文件的机制,在Java虚拟机加载class文件时,在内存中对class文件进行解密操作。可在授权服务器程序保护模块中设置保护程序,利用保护程序对组成授权服务程序的每个java class文件内容进行加密和解密。
图7为本申请实施例提供的嵌入式操作系统的授权方法的一实施例的加密过程的示意图。如图7所示,在一种实施方式中,上述方法还包括对组成授权服务程序的第一文件包进行加密处理,具体可包括:
步骤S610,所述授权服务器中的保护程序生成用于加密和解密的第一私钥和第一公钥,以及,生成用于对所述第一公钥进行加密和解密的第二私钥和第二公钥;
步骤S620,对组成授权服务程序的第一文件包进行解压处理,得到目标文件;
步骤S630,利用所述第一私钥对所述目标文件进行加密处理,并将加密后的目标文件压缩为第二文件包,并利用所述第二文件包替换所述第一文件包,得到加密后的所述授权服务程序;
步骤S640,利用所述第二私钥对所述第一公钥进行加密,生成公钥文件,并将所述公钥文件存于指定位置。
本申请实施例中,可采用非对称加密算法对组成授权服务程序的第一文件包进行加密。其中,文件包可包括授权服务器中组成授权服务程序的软件包。软件包(SoftWarePackage)是指具有特定的功能,用来完成特定任务的一个程序或一组程序。例如,可以将Java程序打包成JAR文件。eclipse开发环境中的软件包通常以JAR包的形式存在。
非对称加密算法需要两个密钥来进行加密和解密,这两个密钥是公开密钥(public key,简称公钥)和私有密钥(private key,简称私钥)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。
图8为本申请实施例提供的嵌入式操作系统的授权方法的一实施例的加密过程的示意图。参见图7和图8,在步骤S610中,可使用开放式安全套接层协议(Open SecureSockets Layer,OpenSSL)生成公私钥对。OpenSSL软件包的功能部分包括密码算法库。利用OpenSSL可实现非对称加密算法和信息摘要算法。
本申请实施例中,利用OpenSSL生成的第一公私钥对可包括用于对文件包进行加密和解密的第一私钥和第一公钥。其中,第一公私钥对是一对临时生成的公私钥。利用OpenSSL生成的第二公私钥对可包括用于对所述第一公钥进行加密和解密的第二私钥和第二公钥。其中,第二公私钥对也称为“根公私钥”,是一对保持不变的公私钥。第二公钥也称为“根公钥”;第二私钥也称为“根私钥”。
本申请实施例中,可首先在步骤S620中,对组成授权服务程序的第一文件包进行解压处理,得到目标文件。然后在步骤S630中,利用第一私钥对步骤S620中得到的目标文件进行加密处理。再将加密后的目标文件压缩为第二文件包,并在授权服务器的授权服务程序中将第一文件包替换为第二文件包。
参见图7和图8,在步骤S630中,通过第一私钥加密JAR包的class文件。在这一步骤中,还可以在文件的起始几个字节设置魔数,表明该文件是加密后的文件。
大多数情况下,都是通过扩展名来识别一个文件的类型的。比如一个.txt类型的文件是一个纯文本文件。但是,扩展名是可以修改的,当一个文件的扩展名被修改过,识别一个文件的类型就用到了“魔数”。很多类型的文件中,其起始的几个字节的内容是固定的。有些情况下这个内容是有意填充,还有些情况下这个内容是本就如此的。因为根据这几个字节的内容就可以确定文件类型,这几个字节的内容也被称为魔数。有了这些魔术数字,就可以很方便地区别不同的文件。
在步骤S640中,通过根第二私钥加密第一公钥,生成公钥文件。本申请实施例中,可以生成组成授权服务程序的指定的第一文件包的公钥文件,在运行授权服务程序时对加密后的第一文件包进行解密,也就是对第二文件包进行解密,利用第二公钥和步骤S640中生成的公钥文件对第二文件包进行解密。
本申请实施例采用非对称算法对软件包进行加密,与混淆代码的方式不同。因此在对软件包加密的过程中,只需要加密指定的软件包,不需要同时加密有依赖关系的软件包,并且使得解密后的程序文件与未进行加密之前的程序文件保持一致。另外,采用非对称加密的方式对软件包进行加密,不易被破解、反编译,提升了数据安全性。
图9为本申请实施例提供的嵌入式操作系统的授权方法的一实施例的加密过程的示意图。如图9所示,在一种实施方式中,利用所述第二私钥对所述第一公钥进行加密,生成公钥文件,包括:
步骤S710,利用摘要算法生成所述第一公钥的第一信息摘要,并采用预设编码方式对所述第一信息摘要进行编码,得到第一编码信息;
步骤S720,利用第二私钥对所述第一公钥和所述第一编码信息进行加密,得到加密信息,并采用预设编码方式对所述加密信息进行编码,得到第二编码信息;
步骤S730,将所述第二编码信息混淆在随机生成的第一字符串中,得到第二字符串;
步骤S740,利用摘要算法生成所述第二字符串的第二信息摘要,并采用预设编码方式对所述第二信息摘要进行编码,得到第三字符串;
步骤S750,根据所述第二字符串和所述第三字符串生成所述公钥文件。
在一种实施方式中,所述摘要算法包括MD5信息摘要算法;所述预设编码方式包括base64编码方式。
一个示例性的公钥文件生成过程可包括以下步骤:
1)获取第一公钥的16位MD5摘要,将上述第一公钥的MD5摘要称为第一信息摘要。采用base64编码方式对上述第一公钥的MD5摘要进行编码,得到第一编码信息。
2)使用根私钥将第一公钥、第一编码信息加密,得到加密信息。采用base64编码方式对上述加密信息进行编码,得到的字符串称为第二编码信息。
3)生成100行、每行1024个字节的随机字符串,该随机字符串称为第一字符串。把步骤2)中生成的字符串通过自定义算法混淆在上述100行随机字符串中,得到第二字符串。例如,将步骤2)中生成的字符串拆分成100份子串,将该100份子串随机替换到100行随机字符串中。在第1行随机字符串中的固定位置替换第1份子串,在固定位置的后面替换为下一份字符串的偏移、长度。依次类推,一直替换到第100行字符串。替换后的结果是100行、每行1024个字节的字符串,即第二字符串。
4)生成第二字符串的md5摘要,将上述第二字符串的MD5摘要称为第二信息摘要。采用base64编码方式对上述第二信息摘要进行编码,得到第三字符串。
5)将第二字符串作为公钥文件的前100行,将第三字符串作为公钥文件的第101行。将上述组合后的101行字符串存储到公钥文件中。
本申请实施例中,利用摘要算法、预设编码方式和自定义算法对第一公钥进行加密,得到公钥文件。使得在后续软件包运行的过程中,只有对公钥文件进行解密才能获得第一公钥,通过该方式进一步保障了软件包的数据安全性。
图10为本申请实施例提供的嵌入式操作系统的授权方法的一实施例的解密过程的示意图。如图10所示,在一种实施方式中,上述方法还包括对加密后的授权服务程序中的第二文件包进行解密,具体可包括:
步骤S810,在运行加密后的所述授权服务程序的过程中,所述授权服务器中的保护程序从动态链接库中获取第二公钥;
步骤S820,读取加密后的所述授权服务程序对应的公钥文件;
步骤S830,利用所述第二公钥对所述公钥文件进行解密,得到第一公钥;
步骤S840,利用所述第一公钥对加密后的所述授权服务程序中的第二文件包进行解密。
本申请实施例中,在运行加密后的授权服务程序的过程中,可通过Java本地接口(Java Native Interface,JNI)技术对软件包中的class文件进行解密。其中,JNI是用Java代码调用本地动态链接库(Dynamic Link Library,DLL)库(C/C++库)的技术。JNI通过使用Java本地接口书写程序,可以确保代码在不同的平台上方便移植。JNI是为了本地已编译语言,例如C和C++而设计的。JNI标准成为Java平台的一部分,它允许Java代码和其他语言写的代码进行交互。
图11为本申请实施例提供的嵌入式操作系统的授权方法的一实施例的解密过程的示意图。参见图10和图11,在步骤S810中,在授权服务程序启动时,可通过JNI技术,加载DLL库。从DLL库中获取第二公钥,用于在软件包中的class文件加载到内存时,对class文件进行解密。
在步骤S820中,读取在加密过程中步骤S130生成的公钥文件。
在步骤S830中,通过第二公钥(也称根公钥)解密公钥文件,得到第一公钥。
在步骤S840中,在class文件加载到内存时,通过第一公钥解密第二文件包中的class文件。
在一种实施方式中,在class文件加载到内存时,可以通过魔数判断出该文件是加密文件,然后通过第一公钥解密该class文件。
图12为本申请实施例提供的嵌入式操作系统的授权方法的一实施例的解密过程的示意图。如图12所示,在一种实施方式中,利用所述第二公钥对所述公钥文件进行解密,得到第一公钥,包括:
步骤S1010,根据所述公钥文件中的第二字符串生成第三信息摘要,将所述第三信息摘要与所述公钥文件中的第三字符串进行比对,根据比对结果对所述公钥文件进行验证;
步骤S1020,将所述公钥文件中的第二字符串解除混淆,得到第三编码信息;
步骤S1030,根据预设编码方式将所述第三编码信息进行解码;
步骤S1040,利用所述第二公钥,对所述解码后的编码信息进行解密,得到所述第一公钥和所述第一公钥的第一信息摘要;
步骤S1050,将所述第一公钥和所述第一信息摘要进行比对,根据比对结果对所述公钥文件进行验证。
一个示例性的公钥文件解密过程可包括以下步骤:
1)获取公钥文件中的第二字符串,即获取公钥文件中的前100行字符串。根据公钥文件中的前100行字符串生成MD5摘要,该MD5摘要称为第三信息摘要。将第三信息摘要与公钥文件中的第三字符串进行比对,即将第三信息摘要与公钥文件中的第101行进行比对,根据比对结果对公钥文件进行验证。如果比对结果是两者信息一致,则说明该公钥文件没有被篡改过。通过这种方式可保证所使用的公钥文件没被篡改过,保证软件包的数据安全性。
2)将公钥文件中的第二字符串按照自定义算法解除混淆,即将公钥文件中的前100行字符串按照自定义算法解除混淆,得到第三编码信息。
3)根据预设编码方式将步骤2)中得到的第三编码信息进行解码。
4)使用第二公钥,即使用根公钥对步骤3)中解码后的编码信息进行解密,得到第一公钥和第一公钥的第一信息摘要。
5)将步骤4)中得到的第一公钥和第一信息摘要进行比对,根据比对结果对公钥文件进行验证。如果比对结果是两者信息一致,则说明该公钥文件没有被篡改过。通过这种方式可以进一步保证所使用的公钥文件没被篡改过,保证软件包的数据安全性。
本发明实施例中,第一私钥和第二私钥是在加密文件包的过程中使用,是可以设法保证不会被泄密的。在授权服务程序进行打包时,可使用一个专门用于打包的JAR文件,里面存储有第一私钥和第二私钥。这个JAR文件是可以单独运行的程序。通过运行这个JAR文件执行JAR包的加密过程。在解密过程中可以不需要这个JAR包。
在一种实施方式中,从动态链接库中获取第二公钥,包括:
利用本地接口程序加载所述动态链接库,所述动态链接库包括加壳处理后的动态链接库;
从所述加壳处理后的动态链接库中获取所述第二公钥。
本发明实施例中,第一公钥是通过第二私钥加密,第二公钥解密。第二公钥是可以硬编码在DLL库中,然后对DLL库进行了加密。第二公钥是一段字符串,该字符串是在C++源码中的。C++源码编译生成DLL库后,这段字符串可以在DLL库搜索出来。对DLL库加密加壳后,就无法搜索出第二公钥了。通过这种方式,使用DLL库的加密技术对第二公钥进行保护。
在对加密后的软件包进行解密的过程中,可通过JNI加载加壳处理后的DLL库。可先从加壳处理后的DLL库中获取第二公钥,用于对class文件进行解密。
在另一种实施方式中,解密流程中,解除混淆的自定义算法,也是存放在DLL库中。
由于本申请实施例调用动态链接库对class文件进行解密,不需要使用JavaAgent技术和修改类加载器。解密过程不是通过Java代码编写的,可以进行加密。通过对解密过程进行加密,进一步提升了数据安全性。
图13为本申请实施例提供的嵌入式操作系统的授权方法的一实施例的总体架构示意图。如图13所示,嵌入式操作系统通过授权组件与授权服务器之间进行交互。通过以上方式,嵌入式操作系统可从授权服务器获取授权码,从而实现嵌入式操作系统的授权管理。
以下列举在不同应用场景下实现本申请实施例提供的嵌入式操作系统的授权方法的另一个技术方案。
方案二:在客户现场对嵌入式操作系统进行授权的方案
其中,嵌入式操作系统可包括intewell操作系统。
以intewell操作系统为例,实现本申请实施例提供的嵌入式操作系统的授权方法可按以下步骤实施:
1)开发一套用于授权的服务程序,此程序包括如下主要内容:
1.授权文件导入模块:用于客户将包含有授权信息的授权文件导入到授权服务器上;
2.授权文件解析模块:授权文件内容在生成时进行了加密,需要对授权文件进行解密以验证授权文件是否合法;
3.授权模块:授权模块基于客户导入的授权信息,进行授权工作;
4.授权记录模块:详细记录了每一次授权的信息;
5.授权客户端身份验证模块:此模块内置了多套对称加密算法以及密钥;
2)开发一套用于申请授权的客户端程序,将其作为Intewell操作系统的一个内核组件。授权客户端程序内置了多套对称加密算法以及密钥;
3)将授权服务程序部署到一台安装了Linux操作系统的设备上,采取如下安全措施:
1.除了80端口、授权端口和SSH端口外,关闭其它的端口,防止非法人员通过其它端口进入Linux操作系统;其中,80端口是通过浏览器访问服务器的端口;SSH端口是允许Linux系统通过远程方式登录的接口;
2.关闭USB端口,防止非法人员通过USB设备进入Linux操作系统;
3.将授权服务程序二进制进行混淆和加密,防止非法人员获取授权服务程序后对授权服务程序进行反编译和破解。
授权流程如下:
1)身份验证
1.授权客户端验证授权服务器的身份,授权客户端通过内置的第一对称加密算法,将一个数学算数表达式(如:123+456-321)作为第一字符串加密后,加上第一对称加密算法索引以及密钥索引,作为身份验证请求发送给授权服务器进行解算;授权客户端通过内置的第二对称加密算法对授权服务器返回的结果进行解密,然后比对计算结果;
2.授权服务器验证授权客户端的身份,授权服务器在接收到授权客户端发送的身份验证请求后,根据客户端所使用的第一对称加密算法索引和密钥索引,使用相应的对称加密算法对身份验证请求进行解密,然后将计算结果和非对称加密算法的公钥使用第二对称加密算法进行加密,加上第二对称加密算法的索引,发送给授权客户端;
2)申请授权
1.授权客户端读取所在硬件设备的硬件信息,然后使用授权服务器返回的非对称加密算法的公钥对申请授权的请求内容(包括授权申请码)和硬件信息进行加密,然后将加密的内容作为授权请求信息发送给授权服务器;
2.授权服务器使用非对称加密算法的私钥对请求内容进行解密,根据请求内容生成授权码,再使用私钥对包括授权码的授权内容进行加密,再将加密的授权内容作为返回信息发送给授权客户端;
3.授权客户端在接收到加密的授权内容后,使用公钥对授权内容进行解密,然后将包括授权码的授权内容加密后保存指定存储位置。
本申请实施例通过将授权程序分别内置到一个授权服务器设备上和Intewell操作系统中,将授权服务器部署到客户的内部网络中,实现了对灌装了Intewell操作系统的硬件设备进行网络批量授权,解决了嵌入式操作系统进行在线自动授权的问题和嵌入式操作系统知识产权保护的问题。
本申请实施例中采用了对称加密技术、非对称加密技术、身份认证技术、通过许可文件控制授权技术,通过以上方案可以实现如下技术效果:
1)可以通过网络对多台灌装了Intewell操作系统的硬件设备进行批量授权;降低用户对嵌入式操作系统进行授权的难度,方便用户对嵌入式操作系统进行批量授权操作;
2)可以通过授权文件对授权类型、授权周期、授权次数进行控制;
2.1)对嵌入式操作系统进行周期内授权,在授权周期内,用户可以随意安装;
2.2)对嵌入式操作系统进行激活次数授权,用户在安装了嵌入式操作系统后可以激活指定次数;
3)对嵌入式操作系统进行版权保护,未经授权的操作系统则不允许进入工作模式运行;能够有效防止Intewell操作系统的知识产权被非法使用。
在又一个示例中,在对外销售Intewell操作系统中,授权管理的流程可包括如下步骤:
1)将授权服务程序部署到一台装有Linux操作系统的设备中,并发送给客户;
2)客户在配置Intewell操作系统时,将授权服务器的IP地址写入配置文件中;
3)客户将Intewell操作系统编译后的二进制批量灌装到硬件设备中;
4)客户在灌装完毕Intewell操作系统后,在局域网中运行Intewell操作系统,当Intewell操作系统启动后,授权客户端检查Intewell操作系统是否已经授权;如果检查到没有授权,则授权客户端向授权服务器发起授权请求;
5)如果授权成功,则Intewell操作系统进入工作状态;如果授权失败,则在屏幕上打印授权失败信息,并进入非工作状态。
如图14所示,本申请还提供了相应的一种嵌入式操作系统的授权装置的实施例,该嵌入式操作系统的授权方法可应用于授权客户端,关于该装置的有益效果或解决的技术问题,可以参见与各装置分别对应的方法中的描述,或者参见发明内容中的描述,此处不再一一赘述。
在该嵌入式操作系统的授权装置的实施例中,所述嵌入式操作系统中设有内置于内核中的授权组件,该装置包括:
访问单元610,用于在启动嵌入式操作系统时,利用所述授权组件访问指定存储位置以获取所述嵌入式操作系统的授权码;
第一生成单元620,用于在所述授权码获取失败的情况下,根据所述嵌入式操作系统所在硬件设备的硬件信息生成授权申请码;
第一发送单元630,用于根据所述授权申请码生成授权请求信息,将所述授权请求信息发送给授权服务器;
第一接收单元640,用于接收所述授权服务器根据所述授权请求信息生成的返回信息;
控制单元650,用于在接收到授权成功的返回信息的情况下,控制所述嵌入式操作系统进入工作状态;在接收到授权失败的返回信息的情况下,控制所述嵌入式操作系统进入非工作状态;其中,所述授权成功的返回信息是所述授权服务器根据所述嵌入式操作系统的授权码生成的。
在一种实施方式中,所述控制单元650还用于:
利用所述授权组件在接收到授权服务器反馈的所述授权成功的返回信息后,将所述信息写入到所述指定存储位置的加密文件中。
如图15所示,在一种实施方式中,上述装置还包括:
第一匹配单元670,用于在所述授权码获取成功的情况下,将所述硬件信息与所述授权码进行匹配;
所述控制单元650,还用于根据所述匹配的结果,控制所述嵌入式操作系统的工作状态。
在一种实施方式中,所述控制单元650用于:
在所述匹配成功的情况下,控制所述嵌入式操作系统进入工作状态;
在所述匹配失败的情况下,返回执行所述根据所述嵌入式操作系统所在硬件设备的硬件信息生成授权申请码的步骤。
如图15所示,在一种实施方式中,上述装置还包括第一验证单元680,所述第一验证单元680用于:
利用第一对称加密算法和密钥将第一字符串加密;
根据加密后的第一字符串、所述第一对称加密算法的索引以及所述密钥的索引生成身份验证请求;
将所述身份验证请求发送给所述授权服务器;
接收所述授权服务器根据所述身份验证请求生成的验证结果信息,所述验证结果信息中包括第二对称加密算法的索引、第三字符串和加密后的非对称加密算法的公钥;
利用所述第二对称加密算法的索引对所述第三字符串进行解密,得到第四字符串;
将所述第四字符串与所述第一字符串进行比对,根据所述比对的结果对所述授权服务器进行身份验证。
在一种实施方式中,所述控制单元650还用于:
利用所述非对称加密算法的公钥将所述授权申请码进行加密,生成所述授权请求信息;
接收所述授权服务器根据所述授权请求信息生成的返回信息之后,利用所述非对称加密算法的公钥将所述返回信息进行解密,在接收到授权成功的返回信息的情况下,将解密后的所述返回信息存储到所述指定存储位置。
如图16所示,本申请还提供了相应的一种嵌入式操作系统的授权装置的实施例,该嵌入式操作系统的授权方法可应用于授权服务器,关于该装置的有益效果或解决的技术问题,可以参见与各装置分别对应的方法中的描述,或者参见发明内容中的描述,此处不再一一赘述。
在该嵌入式操作系统的授权装置的实施例中,应用于授权服务器,该装置包括:
第二接收单元710,用于利用所述授权服务器中的授权服务程序接收来自嵌入式操作系统侧的授权请求信息;
第二匹配单元720,用于将所述授权请求信息与预先导入的授权文件进行匹配,所述授权文件中包括所述嵌入式操作系统所在硬件设备的硬件信息以及对应的授权许可信息;
第二生成单元730,用于在匹配成功的情况下生成授权码,并根据所述授权码生成授权成功的返回信息;在匹配失败的情况下生成授权失败的返回信息;
第二发送单元740,用于将所述返回信息发送给所述嵌入式操作系统侧。
如图17所示,在一种实施方式中,上述装置还包括第二验证单元750,所述第二验证单元750用于:
接收来自所述嵌入式操作系统侧的身份验证请求;
根据所述身份验证请求中的第一对称加密算法的索引以及密钥的索引,对所述身份验证请求中的加密后的第一字符串进行解密,得到第二字符串;
利用第二对称加密算法对所述第二字符串进行加密,得到第三字符串;利用第二对称加密算法对及非对称加密算法的公钥进行加密;根据所述第三字符串、加密后的非对称加密算法的公钥、所述第二对称加密算法的索引生成验证结果信息;
将所述验证结果信息返回给所述嵌入式操作系统侧。
在一种实施方式中,所述第二匹配单元720还用于:利用非对称加密算法的私钥对所述授权请求信息进行解密,将解密后的授权请求信息与预先导入的授权文件进行匹配;
所述第二生成单元730用于:利用非对称加密算法的私钥对所述授权码进行加密,生成所述授权成功的返回信息。
在一种实施方式中,上述装置还包括加密单元,所述加密单元包括:
生成子单元,用于:利用所述授权服务器中的保护程序生成用于加密和解密的第一私钥和第一公钥,以及,生成用于对所述第一公钥进行加密和解密的第二私钥和第二公钥;
处理子单元,用于:对组成授权服务程序的第一文件包进行解压处理,得到目标文件;
第一加密子单元,用于:利用所述第一私钥对所述目标文件进行加密处理,并将加密后的目标文件压缩为第二文件包,并利用所述第二文件包替换所述第一文件包,得到加密后的所述授权服务程序;
第二加密子单元,用于:利用所述第二私钥对所述第一公钥进行加密,生成公钥文件,并将所述公钥文件存于指定位置。
在一种实施方式中,所述第二加密子单元用于:
利用摘要算法生成所述第一公钥的第一信息摘要,并采用预设编码方式对所述第一信息摘要进行编码,得到第一编码信息;
利用第二私钥对所述第一公钥和所述第一编码信息进行加密,得到加密信息,并采用预设编码方式对所述加密信息进行编码,得到第二编码信息;
将所述第二编码信息混淆在随机生成的第一字符串中,得到第二字符串;
利用摘要算法生成所述第二字符串的第二信息摘要,并采用预设编码方式对所述第二信息摘要进行编码,得到第三字符串;
根据所述第二字符串和所述第三字符串生成所述公钥文件。
在一种实施方式中,所述摘要算法包括MD5信息摘要算法;所述预设编码方式包括base64编码方式。
在一种实施方式中,上述装置还包括解密单元,所述解密单元包括:
获取子单元,用于:在运行加密后的所述授权服务程序的过程中,利用所述授权服务器中的保护程序从动态链接库中获取第二公钥;
读取子单元,用于:读取加密后的所述授权服务程序对应的公钥文件;
第一解密子单元,用于:利用所述第二公钥对所述公钥文件进行解密,得到第一公钥;
第二解密子单元,用于:利用所述第一公钥对加密后的所述授权服务程序中的第二文件包进行解密。
在一种实施方式中,所述第一解密子单元用于:
根据所述公钥文件中的第二字符串生成第三信息摘要,将所述第三信息摘要与所述公钥文件中的第三字符串进行比对,根据比对结果对所述公钥文件进行验证;
将所述公钥文件中的第二字符串解除混淆,得到第三编码信息;
根据预设编码方式将所述第三编码信息进行解码;
利用所述第二公钥,对所述解码后的编码信息进行解密,得到所述第一公钥和所述第一公钥的第一信息摘要;
将所述第一公钥和所述第一信息摘要进行比对,根据比对结果对所述公钥文件进行验证。
在一种实施方式中,所述获取子单元用于:
利用本地接口程序加载所述动态链接库,所述动态链接库包括加壳处理后的动态链接库;
从所述加壳处理后的动态链接库中获取所述第二公钥。
图18是本申请实施例提供的一种计算设备900的结构性示意性图。该计算设备900包括:处理器910、存储器920、通信接口930。
应理解,图18中所示的计算设备900中的通信接口930可以用于与其他设备之间进行通信。
其中,该处理器910可以与存储器920连接。该存储器920可以用于存储该程序代码和数据。因此,该存储器920可以是处理器910内部的存储单元,也可以是与处理器910独立的外部存储单元,还可以是包括处理器910内部的存储单元和与处理器910独立的外部存储单元的部件。
可选的,计算设备900还可以包括总线。其中,存储器920、通信接口930可以通过总线与处理器910连接。总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。所述总线可以分为地址总线、数据总线、控制总线等。
应理解,在本申请实施例中,该处理器910可以采用中央处理单元(centralprocessing unit,CPU)。该处理器还可以是其它通用处理器、数字信号处理器(digitalsignal processor,DSP)、专用集成电路(Application specific integrated circuit,ASIC)、现成可编程门矩阵(field programmable gate Array,FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。或者该处理器910采用一个或多个集成电路,用于执行相关程序,以实现本申请实施例所提供的技术方案。
该存储器920可以包括只读存储器和随机存取存储器,并向处理器910提供指令和数据。处理器910的一部分还可以包括非易失性随机存取存储器。例如,处理器910还可以存储设备类型的信息。
在计算设备900运行时,所述处理器910执行所述存储器920中的计算机执行指令执行上述方法的操作步骤。
应理解,根据本申请实施例的计算设备900可以对应于执行根据本申请各实施例的方法中的相应主体,并且计算设备900中的各个模块的上述和其它操作和/或功能分别为了实现本实施例各方法的相应流程,为了简洁,在此不再赘述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时用于执行一种多样化问题生成方法,该方法包括上述各个实施例所描述的方案中的至少之一。
本申请实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是,但不限于,电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括、但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本申请操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本申请的较佳实施例及所运用的技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本申请进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明的构思的情况下,还可以包括更多其他等效实施例,均属于本发明的保护范畴。
Claims (12)
1.一种嵌入式操作系统的授权方法,其特征在于,所述嵌入式操作系统中设有内置于内核中的授权组件,所述方法包括:
在启动嵌入式操作系统时,所述授权组件访问指定存储位置以获取所述嵌入式操作系统的授权码;
在所述授权码获取失败的情况下,根据所述嵌入式操作系统所在硬件设备的硬件信息生成授权申请码;
根据所述授权申请码生成授权请求信息,将所述授权请求信息发送给授权服务器;
接收所述授权服务器根据所述授权请求信息生成的返回信息;
在接收到授权成功的返回信息的情况下,控制所述嵌入式操作系统进入工作状态;在接收到授权失败的返回信息的情况下,控制所述嵌入式操作系统进入非工作状态;其中,所述授权成功的返回信息是所述授权服务器根据所述嵌入式操作系统的授权码生成的;
在将所述授权请求信息发送给授权服务器之前,所述方法还包括:
利用第一对称加密算法和密钥将第一字符串加密;
根据加密后的第一字符串、所述第一对称加密算法的索引以及所述密钥的索引生成身份验证请求;
将所述身份验证请求发送给所述授权服务器;
接收所述授权服务器根据所述身份验证请求生成的验证结果信息,所述验证结果信息中包括第二对称加密算法的索引、第三字符串和加密后的非对称加密算法的公钥;
利用所述第二对称加密算法的索引对所述第三字符串进行解密,得到第四字符串;
将所述第四字符串与所述第一字符串进行比对,根据所述比对的结果对所述授权服务器进行身份验证。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述授权组件在接收到授权服务器反馈的所述授权成功的返回信息后,将所述信息写入到所述指定存储位置的加密文件中。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述授权码获取成功的情况下,
将所述硬件信息与所述授权码进行匹配;
在所述匹配成功的情况下,控制所述嵌入式操作系统进入工作状态;
在所述匹配失败的情况下,返回执行所述根据所述嵌入式操作系统所在硬件设备的硬件信息生成授权申请码的步骤。
4.一种嵌入式操作系统的授权方法,其特征在于,应用于授权服务器,所述方法包括:
所述授权服务器中的授权服务程序接收来自嵌入式操作系统侧的授权请求信息;
将所述授权请求信息与预先导入的授权文件进行匹配,所述授权文件中包括所述嵌入式操作系统所在硬件设备的硬件信息以及对应的授权许可信息;
在匹配成功的情况下生成授权码,并根据所述授权码生成授权成功的返回信息;在匹配失败的情况下生成授权失败的返回信息;
将所述返回信息发送给所述嵌入式操作系统侧;
所述方法还包括:
接收来自所述嵌入式操作系统侧的身份验证请求;
根据所述身份验证请求中的第一对称加密算法的索引以及密钥的索引,对所述身份验证请求中的加密后的第一字符串进行解密,得到第二字符串;
利用第二对称加密算法对所述第二字符串进行加密,得到第三字符串;利用第二对称加密算法对及非对称加密算法的公钥进行加密;根据所述第三字符串、加密后的非对称加密算法的公钥、所述第二对称加密算法的索引生成验证结果信息;
将所述验证结果信息返回给所述嵌入式操作系统侧。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
所述授权服务器中的保护程序生成用于加密和解密的第一私钥和第一公钥,以及,生成用于对所述第一公钥进行加密和解密的第二私钥和第二公钥;
对组成授权服务程序的第一文件包进行解压处理,得到目标文件;
利用所述第一私钥对所述目标文件进行加密处理,并将加密后的目标文件压缩为第二文件包,并利用所述第二文件包替换所述第一文件包,得到加密后的所述授权服务程序;
利用所述第二私钥对所述第一公钥进行加密,生成公钥文件,并将所述公钥文件存于指定位置。
6.根据权利要求5所述的方法,其特征在于,利用所述第二私钥对所述第一公钥进行加密,生成公钥文件,包括:
利用摘要算法生成所述第一公钥的第一信息摘要,并采用预设编码方式对所述第一信息摘要进行编码,得到第一编码信息;
利用第二私钥对所述第一公钥和所述第一编码信息进行加密,得到加密信息,并采用预设编码方式对所述加密信息进行编码,得到第二编码信息;
将所述第二编码信息混淆在随机生成的第一字符串中,得到第二字符串;
利用摘要算法生成所述第二字符串的第二信息摘要,并采用预设编码方式对所述第二信息摘要进行编码,得到第三字符串;
根据所述第二字符串和所述第三字符串生成所述公钥文件。
7.根据权利要求5所述的方法,其特征在于,所述方法还包括:
在运行加密后的所述授权服务程序的过程中,所述授权服务器中的保护程序从动态链接库中获取第二公钥;
读取加密后的所述授权服务程序对应的公钥文件;
利用所述第二公钥对所述公钥文件进行解密,得到第一公钥;
利用所述第一公钥对加密后的所述授权服务程序中的第二文件包进行解密。
8.根据权利要求7所述的方法,其特征在于,利用所述第二公钥对所述公钥文件进行解密,得到第一公钥,包括:
根据所述公钥文件中的第二字符串生成第三信息摘要,将所述第三信息摘要与所述公钥文件中的第三字符串进行比对,根据比对结果对所述公钥文件进行验证;
将所述公钥文件中的第二字符串解除混淆,得到第三编码信息;
根据预设编码方式将所述第三编码信息进行解码;
利用所述第二公钥,对所述解码后的编码信息进行解密,得到所述第一公钥和所述第一公钥的第一信息摘要;
将所述第一公钥和所述第一信息摘要进行比对,根据比对结果对所述公钥文件进行验证。
9.一种嵌入式操作系统的授权装置,其特征在于,所述嵌入式操作系统中设有内置于内核中的授权组件,所述装置包括:
访问单元,用于在启动嵌入式操作系统时,利用所述授权组件访问指定存储位置以获取所述嵌入式操作系统的授权码;
生成单元,用于在所述授权码获取失败的情况下,根据所述嵌入式操作系统所在硬件设备的硬件信息生成授权申请码;
发送单元,用于根据所述授权申请码生成授权请求信息,将所述授权请求信息发送给授权服务器;
接收单元,用于接收所述授权服务器根据所述授权请求信息生成的返回信息;
控制单元,用于在接收到授权成功的返回信息的情况下,控制所述嵌入式操作系统进入工作状态;在接收到授权失败的返回信息的情况下,控制所述嵌入式操作系统进入非工作状态;其中,所述授权成功的返回信息是所述授权服务器根据所述嵌入式操作系统的授权码生成的;
所述装置还包括第一验证单元,所述第一验证单元用于:
利用第一对称加密算法和密钥将第一字符串加密;
根据加密后的第一字符串、所述第一对称加密算法的索引以及所述密钥的索引生成身份验证请求;
将所述身份验证请求发送给所述授权服务器;
接收所述授权服务器根据所述身份验证请求生成的验证结果信息,所述验证结果信息中包括第二对称加密算法的索引、第三字符串和加密后的非对称加密算法的公钥;
利用所述第二对称加密算法的索引对所述第三字符串进行解密,得到第四字符串;
将所述第四字符串与所述第一字符串进行比对,根据所述比对的结果对所述授权服务器进行身份验证。
10.一种嵌入式操作系统的授权装置,其特征在于,应用于授权服务器,所述装置包括:
接收单元,用于利用所述授权服务器中的授权服务程序接收来自嵌入式操作系统侧的授权请求信息;
第二匹配单元,用于将所述授权请求信息与预先导入的授权文件进行匹配,所述授权文件中包括所述嵌入式操作系统所在硬件设备的硬件信息以及对应的授权许可信息;
生成单元,用于在匹配成功的情况下生成授权码,并根据所述授权码生成授权成功的返回信息;在匹配失败的情况下生成授权失败的返回信息;
发送单元,用于将所述返回信息发送给所述嵌入式操作系统侧;
所述装置还包括第二验证单元,所述第二验证单元用于:
接收来自所述嵌入式操作系统侧的身份验证请求;
根据所述身份验证请求中的第一对称加密算法的索引以及密钥的索引,对所述身份验证请求中的加密后的第一字符串进行解密,得到第二字符串;
利用第二对称加密算法对所述第二字符串进行加密,得到第三字符串;利用第二对称加密算法对及非对称加密算法的公钥进行加密;根据所述第三字符串、加密后的非对称加密算法的公钥、所述第二对称加密算法的索引生成验证结果信息;
将所述验证结果信息返回给所述嵌入式操作系统侧。
11.一种计算设备,其特征在于,包括:
通信接口;
至少一个处理器,其与所述通信接口连接;以及
至少一个存储器,其与所述处理器连接并存储有程序指令,所述程序指令当被所述至少一个处理器执行时使得所述至少一个处理器执行权利要求1-8任一所述的方法。
12.一种计算机可读存储介质,其上存储有程序指令,其特征在于,所述程序指令当被计算机执行时使得所述计算机执行权利要求1-8任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210172675.9A CN114546506B (zh) | 2022-02-24 | 2022-02-24 | 嵌入式操作系统的授权方法及装置、设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210172675.9A CN114546506B (zh) | 2022-02-24 | 2022-02-24 | 嵌入式操作系统的授权方法及装置、设备和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114546506A CN114546506A (zh) | 2022-05-27 |
CN114546506B true CN114546506B (zh) | 2022-12-02 |
Family
ID=81676839
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210172675.9A Active CN114546506B (zh) | 2022-02-24 | 2022-02-24 | 嵌入式操作系统的授权方法及装置、设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114546506B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115859337B (zh) * | 2023-02-14 | 2023-05-16 | 杭州大晚成信息科技有限公司 | 基于内核的防止设备破解方法、设备、服务器及介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108848064A (zh) * | 2018-05-24 | 2018-11-20 | 武汉久乐科技有限公司 | 授权管理方法及系统 |
CN112256352A (zh) * | 2020-10-29 | 2021-01-22 | 成都菁蓉联创科技有限公司 | 嵌入式操作系统授权启动的方法、装置和一种计算机系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113268715A (zh) * | 2020-02-14 | 2021-08-17 | 中移(苏州)软件技术有限公司 | 软件加密方法、装置、设备及存储介质 |
-
2022
- 2022-02-24 CN CN202210172675.9A patent/CN114546506B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108848064A (zh) * | 2018-05-24 | 2018-11-20 | 武汉久乐科技有限公司 | 授权管理方法及系统 |
CN112256352A (zh) * | 2020-10-29 | 2021-01-22 | 成都菁蓉联创科技有限公司 | 嵌入式操作系统授权启动的方法、装置和一种计算机系统 |
Also Published As
Publication number | Publication date |
---|---|
CN114546506A (zh) | 2022-05-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111625781B (zh) | Sdk授权认证方法、装置、设备及存储介质 | |
US7526785B1 (en) | Trusted computing platform for restricting use of data | |
EP2267628B1 (en) | Token passing technique for media playback devices | |
WO2021219086A1 (zh) | 基于区块链的数据传输方法和系统 | |
CN113014539B (zh) | 一种物联网设备安全保护系统及方法 | |
CN109194625B (zh) | 一种基于云端服务器的客户端应用保护方法、装置及存储介质 | |
CN109992987B (zh) | 基于Nginx的脚本文件保护方法、装置及终端设备 | |
CN106372497B (zh) | 一种应用编程接口api保护方法和保护装置 | |
EP2728908B1 (en) | Telecommunications chip card | |
US20120117661A1 (en) | Software authorization system and method | |
CN110688660A (zh) | 一种终端安全启动的方法及装置、存储介质 | |
CN114547558B (zh) | 授权方法、授权控制方法及装置、设备和介质 | |
US20060150246A1 (en) | Program execution control device, OS, client terminal, server, program execution control system, program execution control method and computer program execution control program | |
KR20160020294A (ko) | 클라우드 기반의 애플리케이션 보안 서비스 제공 방법 및 시스템 | |
CN114546506B (zh) | 嵌入式操作系统的授权方法及装置、设备和介质 | |
CN116070217A (zh) | 一种用于芯片模块的安全启动系统及其启动方法 | |
CN108923910B (zh) | 一种移动应用apk防篡改的方法 | |
KR101711024B1 (ko) | 부정조작방지 장치 접근 방법 및 그 방법을 채용한 단말 장치 | |
CN113032826B (zh) | 一种基于多级授权的加密电子文档共享方法 | |
CN114238870A (zh) | 一种网络请求处理方法、装置、设备及存储介质 | |
CN114070548A (zh) | 一种基于软加密狗装置的软件版权加密保护方法 | |
CN112597453A (zh) | 程序代码加密解密方法和装置 | |
CN111611551A (zh) | 一种基于国密算法的动态链接库保护方法及其系统 | |
JP6779702B2 (ja) | プログラムを保護する方法 | |
CN115659292B (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 |