一种统一认证许可方法和系统与流程

文档序号:28566953发布日期:2022-01-19 17:32阅读:134来源:国知局
一种统一认证许可方法和系统与流程

1.本发明涉及平台的服务认证技术领域,特别涉及一种统一认证许可方法和系统。


背景技术:

2.目前市场上主流认证方案分为两种:离线认证码认证和在线服务器认证。其中离线认证主要通过购买合法许可证方式实现服务管理,该方案适合客户端服务在无联网或是私人局域网下进行服务提供,对客户端服务进行认证的场景;在线认证方案通常是通过服务方自己提供服务认证服务器实现,在有联网的场景下,客户端服务直接与认证服务器进行通信,达到服务认证的需求。
3.现有的认证服务模式通过人工的方式完成记录、审批等步骤仅能应对服务器数量较少的场景,现如今容器化、分布式部署等技术流行,越来越多的容器化服务会导致服务数量激增,造成许可证(license)认证相关工作激增。尤其是碰到特殊条件(如license同时过期失效等)工单激增时,人工审批很容易使客户处于长时间的等待给客户带来不好的体验。
4.对于客户来说,通过硬件信息去进行认证,每个虚拟化的服务都需要申请一个license进行服务激活,客户来说是无法接受的,并且某些虚拟化技术下的容器在新增删除容器后,容器虚拟化的硬件信息会更改,导致原有license不可使用,需重新申请导致客户操作量增加。对于应用平台服务的第三方服务,无法复用认证服务,所以第三方服务都需要重新开发其应用的认证方案,造成功能冗余,软件生命后期将会出现难以管理及冲突的可能性。


技术实现要素:

5.本发明其中一个目的在于提供一种统一认证许可方法和系统,所述方法和系统采用轮盘加密算法和心跳的滑动时间窗口算法执行高效安全的认证许可信息传输,提高了数据传输的安全性,其中轮盘加密算法采用长密钥寻找短密钥的方式可以优化服务器内存占用,并提高对称加密自身的安全性能。
6.本发明另一个目的在于提供一种统一认证许可方法和系统,所述方法和系统将心跳的滑动时间窗口算法融入到认证请求中,将时间长度作为滑动窗口的长度,动态计算出当前实例下次请求间隔,在保证多服务实例的情况下减少心跳频繁占用带宽,以提高服务器性能。
7.本发明另一个目的在于提供一种统一认证许可方法和系统,所述方法和系统采用统一认证许可服务器,通过一台实体服务器认证多台虚拟服务器的方式实现认证行为的统一管理,提高客户、审批人员的流程效率。
8.本发明另一个目的在于提供一种统一认证许可方法和系统,所述方法和系统将第三方认证信息嵌入到许可文件中,从而第三方可以对自身的认证信息进行定制化处理。
9.为了实现至少一个上述发明目的,本发明进一步提供一种云服务器部署的统一认证许可方法,所述方法包括如下步骤:
10.获取硬件认证服务器信息,根据硬件认证服务器信息生成硬件认证信息;
11.客户端向硬件认证服务器发送许可服务请求,所许可服务请求包括硬件认证信息和所述第三方认证许可服务平台版本,所述硬件认证服务器通过认证后,将请求发送给对应的第三方认证许可服务平台;
12.第三方认证许可服务平台获取所述硬件认证信息,第三方认证许可服务平台根据所述硬件认证信息和自身的业务数据生成license文件;
13.第三方认证许可服务平台根据客户端请求信息下发对应的license文件;
14.获取第三方认证许可服务平台的认证许可服务实例的心跳数据,根据滑动时间窗口算法计算下一个认证许可服务实例的心跳间隔,并执行认证许可服务的扩容。
15.根据本发明其中一个较佳实施例,所述第三方许可证服务平台的认证方法包括:
16.硬件认证服务器获取第三方认证许可服务平台加密的license文件;
17.硬件认证服务器解析加密license文件并获取硬件认证信息;
18.根据所述硬件认证信息认证当前license文件;
19.将认证通过的license文件保存在指定路径中。
20.根据本发明另一个较佳实施例,所述硬件认证信息的生成方法包括:
21.获取硬件认证服务器的cpu硬件信息、mac地址和主板信息,并对上述cpu硬件信息、mac地址和主板信息进行加密获取具有唯一性的硬件认证信息。
22.根据本发明另一个较佳实施例,所述license文件的生成方法包括:
23.获取第三方认证许可服务平台的业务数据;
24.获取来自硬件认证服务器转发的许可服务请求,解析所述许可服务请求中的硬件认证信息;
25.建立license的认证规则;
26.将所述业务数据、硬件认证信息和license的认证规则编入license文件。
27.根据本发明另一个较佳实施例,获取认证许可服务实例的心跳数据,采用所述滑动时间窗口算法对认证许可服务实例进行扩容,具体扩容方法包括:
28.获取自定义的认证许可服务实例时间间隔x,当前时间节点的滑动次数为y,则下一个认证许可服务实例的时间间隔f(x,y)为:
[0029][0030]
建立期望认证许可服务实例时间间隔,若下一个认证许可服务实例的时间间隔小于期望认证许可服务实例时间间隔,则执行已经建立成功的认证许可服务实例的间隔扩容。
[0031]
根据本发明另一个较佳实施例,所述已经建立成功的认证许可服务实例的间隔扩容方法包括如下步骤:
[0032]
记录每一认证许可服务实例的心跳间隔,若当前心跳间隔在所述期望认证许可服务实例时间间隔范围内,则将当前心跳间隔更改为前一次心跳间隔的x/y倍。
[0033]
根据本发明另一个较佳实施例,根据所述滑动时间窗口算法进一步执行如下操作:判断当前所有的认证许可服务实例的状态,删除死亡的认证许可服务实例;
[0034]
设置硬件设备的认证许可服务实例最大值,并记录当前存活的认证许可服务实例数量和存活的心跳数量。
[0035]
根据本发明另一个较佳实施例,所述认证许可方法还包括如下步骤:
[0036]
硬件认证服务器生成环形密钥,并将所述环形密钥、当前加密起点和random长度发送给第三方认证许可服务平台和客户端;
[0037]
根据客户端或第三方认证许可服务平台的加密请求采用轮盘加密算法对当前license文件、客户端需要发送的信息进行加密;
[0038]
客户端或第三方认证许可服务平台生成下一次加密起点和random长度发送给硬件认证服务器采用下一次环形密钥对当前环形密钥进行加密;
[0039]
将加密结果发送给所述硬件认证服务器,所述硬件认证服务器根据当前加密请求解析下一次的环形密钥,并根据下一次的环形密钥进行最终解密。
[0040]
为了实现至少一个上述发明目的,本发明进一步提供一种云服务器部署的统一认证许可系统,所述系统执行上述一种云服务器部署的统一认证许可方法
[0041]
本发明进一步提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序可被处理器执行上述一种云服务器部署的统一认证许可方法。
附图说明
[0042]
图1显示的是本发明一种云服务器部署的统一认证许可方法流程示意图。
[0043]
图2显示的是本发明中滑动时间窗口算法示意图。
[0044]
图3显示的是轮盘算法的示意图。
具体实施方式
[0045]
以下描述用于揭露本发明以使本领域技术人员能够实现本发明。以下描述中的优选实施例只作为举例,本领域技术人员可以想到其他显而易见的变型。在以下描述中界定的本发明的基本原理可以应用于其他实施方案、变形方案、改进方案、等同方案以及没有背离本发明的精神和范围的其他技术方案。
[0046]
可以理解的是,术语“一”应理解为“至少一”或“一个或多个”,即在一个实施例中,一个元件的数量可以为一个,而在另外的实施例中,该元件的数量可以为多个,术语“一”不能理解为对数量的限制。
[0047]
请参考图1-图3,本发明提供了一种统一认证许可方法和系统,所述系统主要包括客户端、部署在云服务器的第三方认证许可服务平台和执行统一许可认证服务的硬件认证服务器构成。其中所述第三方许认证许可服务平台可以一个或多个,且所述第三方认证许可服务平台提供多个认证许可服务实例,本发明通过所述硬件认证服务器执行心跳的滑动时间窗口算法,使得所述硬件认证服务器可以执行高效、便捷、统一的认证许可服务,可以对接不同认证许可实例。
[0048]
具体的,所述认证许可服务包括如下步骤:硬件认证服务器分别和客户端、第三方认证许可服务平台建立通讯连接,其中所述硬件认证服务器搭建于实体服务器中,所述第三方许可认证服务平台搭建于虚拟的云服务器,通过实体服务器硬件自身的包括cpu硬件信息、mac地址和主板信息等参数建立硬件认证信息,并将硬件认证信息作为license文件
的认证参数。其中所述硬件认证信息生成方法包括:获取硬件认证服务器的cpu硬件信息、mac地址和主板信息,并对所述cpu硬件信息、mac地址和主板信息按照预设规则进行加密,生成加密后的硬件认证信息,比如加密结果可以是:6903772679d594eda7284b25370b8396,其中加密算法可以根据需要选择包括但不仅限于椭圆加密算法、hash加密等,本发明对此不再详细限制。
[0049]
在本发明其中一个较佳实施例中,硬件认证服务器可以分别向所述客户端和第三方服务平台发送硬件认证信息,客户端则根据需要选择认证许可服务平台版本信息和硬件认证服务器,生成认证许可服务请求,所述认证许可服务请求包括业务请求参数,所述客户端认证许可服务请求发送给硬件认证服务器,其中硬件认证服务器在获取到所述认证许可服务请求后判断该请求是否合法,根据解析的所述认证许可服务请求中的硬件认证信息,若相同则将所述认证许可服务请求根据认证许可服务平台版本转发给对应认证许可服务平台,需要说明的是,由于平台的版本数据是唯一的,且硬件认证信息是唯一的,从而可以保证客户的请求是唯一的。
[0050]
所述认证许可服务平台在获取硬件认证服务器下发的认证许可服务请求信息后,根据所述硬件认证信息判断是否合法,若合法则将所述硬件认证信息和业务数据编码后形成license文件,其中所述业务数据根据所述认证许可服务请求中的业务参数执行业务数据的添加,所述业务数据包括认证许可服务平台的注册信息和自定义的认证许可逻辑代码。其中在所述license文件建立过程中,需要对所述硬件认证信息和业务数据进行加密,并将加密后的license文件发送给硬件认证服务器。
[0051]
所述硬件认证服务器获取加密后的license文件,并将所述加密后的license文件保存在指定目录中,进一步解析所述license文件,根据解析后的license文件中的硬件认证信息对所述硬件认证服务器进行激活,若是相同的硬件认证信息,则自动获取业务数据中的认证许可服务平台注册信息,并执行可自定义的认证许可逻辑。
[0052]
在本发明另一较佳实施例中,所述硬件认证服务器在生成硬件认证信息后并不向客户端和第三方认证许可服务平台下发硬件认证信息,因此所述认证许可请求信息中并未嵌入硬件认证信息,且所述硬件认证服务器可以被配置为多个或集群化设置,每个硬件认证服务器自身都要根据自身的相关数据生成唯一的硬件认证信息,所述客户端硬件认证服务器发送认证服务请求,并且所述硬件认证服务器将硬件认证信息加密后嵌入到所述认证许可服务请求中,其中所述硬件认证信息包括cpu硬件信息、mac地址和主板信息加密后的信息。其中所述硬件认证服务器将所述认证许可服务请求发送给对应版本的第三方认证许可服务平台,所述第三方认证许可服务平台获取所述认证许可请求后,解密获取所述认证许可请求中的硬件认证信息,进一步将解密后的硬件认证信息和所述第三方认证许可服务平台根据认证许可服务请求生成业务数据加密编码后生成license文件,所述第三方认证许可服务平台将所述license文件上传到硬件认证服务器,所述硬件认证服务器解析license文件中的硬件认证信息,并将所述license文件保存在指定路径中,根据所述license文件中的硬件认证信息启动业务数据对应的认证许可服务。在本实施例中,无需硬件认证信息进行下发,且一台硬件认证服务器可以认证基于云部署的多台虚拟的应用型服务器(第三方认证许可服务平台)。需要说明的是所述license文件中的认证规则可以根据第三方认证许可服务平台设置,具体规则本发明不再详细描述。
[0053]
值得一提的是,本发明还基于心跳的滑动时间窗口算法判断接入的服务实例是否合法,具体步骤包括:
[0054]
获取许可服务实例的心跳数据,预设用户自定义的服务实例时间间隔x,单位:/秒,定义y为第y次进行滑动,则当前实例节点间隔可以表示为:
[0055][0056]
通过上述基于动态心跳的滑动时间窗口算法可以计算下一次实例的心跳时间间隔,最大程度缓解硬件认证服务器访问量,并且在已认证成功的服务实例进行间隔扩容,减少心跳次数,保证心跳导致的带宽占用减少,增加带宽利用率。
[0057]
硬件认证服务器可以记录每个认证许可实例的心跳数据,并根据上述滑动时间窗口算法执行心跳扩容,所述心跳扩容的方法包括如下步骤:
[0058]
根据上述滑动时间窗口记录下一次认证许可服务器的心跳期望时间;
[0059]
若下一次认证许可服务实例的心跳在所述心跳期望时间内,则执行心跳间隔扩容操作,具体方法为将下一次心跳间隔变为上一次心跳间隔的x/y倍,下一次认证许可服务实例的心跳不再所述心跳期望时间内,则不再执行心跳扩容,且停止新许可认证服务实例的建立,所述硬件认证服务器可以对应用服务器数量的限制通过心跳机制进行控制,应用服务定时向统一许可认证服务器进行心跳注册,通过新型滑动时间窗口算法进行服务数量控制,保证服务个数在许可范围之内。
[0060]
本发明进一步执行所述硬件认证服务器分别和客户端、认证许可服务平台的加密通讯,其中本发明优选轮盘加密算法执行加密通讯,所述轮盘加密算法包括如下步骤:
[0061]
硬件认证服务器生成环形密钥,客户端或认证许可服务器平台通过http请求获取完整的所述环形密钥,并且通过所述http请求获取环形密钥的加密起点和random长度,举例来说:客户端通过硬件认证服务器获取的密钥相关信息将许可认证请求信息加密,并将下一次加密起点以及客户端随机生成的密钥长度通过上一次的加密密钥进行加密,硬件认证服务器通过上一次加密请求解密出这一次的解密密钥,并通过本次解密密钥解密其他通信内容。该方案优势在于对于不同的实例客户端来说,服务端仅需要生成一个大型的密钥环,并通过环分解的思想,将环分割为实际的加密密钥,并且保证密钥重复度低,并且由于环的特性,可以循环使用。
[0062]
具体举例而言,请参考图3显示的轮盘加密算法示意图,start作为加密起点为5,random长度为图中的len值为6,而实际密钥为:58kpyb,在数据传输过程中并未传输实际的密钥,只传输了5和6,通过所述5和6采用上一次的密钥进行加密,而上一次的密钥是通过客户端或许可服务认证平台的环形密钥随机切割生成的。
[0063]
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分从网络上被下载和安装,和/或从可拆卸介质被安装。在该计算机程序被中央处理单元(cpu)执行时,执行本技术的方法中限定的上述功能。需要说明的是,本技术上述的计算机可读介质可以是计算机可读信号介质或者计算机
可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是但不限于电、磁、光、电磁、红外线段、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线段的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本技术中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本技术中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线段、电线段、光缆、rf等等,或者上述的任意合适的组合。
[0064]
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0065]
本领域的技术人员应理解,上述描述及附图中所示的本发明的实施例只作为举例而并不限制本发明,本发明的目的已经完整并有效地实现,本发明的功能及结构原理已在实施例中展示和说明,在没有背离所述原理下,本发明的实施方式可以有任何变形或修改。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1