一种分布式缓存认证方法、装置、电子设备和可读存储介质与流程

    专利2022-07-07  110


    本申请涉及计算机网络安全技术领域,尤其涉及一种分布式缓存认证方法、装置、电子设备和可读存储介质。



    背景技术:

    随着计算机装置业务访问量激增,传统关系型数据库已经越来越成为性能的瓶颈,为了缓解数据库压力,采用分布式缓存与传统数据库结合的方式可以有效地提升性能。同时分布式缓存也可以作为内存数据库单独存在,未来几年甚至可以完全取代传统数据库。但是也由于分布式结构比较复杂,随着应用的越来越复杂,各应用装置使用不同的授权和访问控制方式也愈加复杂,难以控制。因此在分布式装置中对用户在不同装置中的认证、授权就会非常凌乱,保证节点之间的安全访问是分布式缓存拓展应用市场的关键。



    技术实现要素:

    本申请的目的旨在至少能解决上述的技术缺陷之一。本申请所采用的技术方案如下:

    第一方面,本申请实施例提供一种分布式缓存认证方法,应用于分布式缓存系统,所述方法包括:

    第一节点接收第二节点的链接请求;其中所述链接请求包含所述第二节点的ip地址和认证信息;

    根据获取的所述第二节点的ip地址,确定所述第一节点的链接白名单包含所述第二节点;

    验证所述第二节点的认证信息,认证通过后,所述第一节点与所述第二节点建立链接。

    在可选实施例中,所述验证所述第二节点的认证信息包括:

    将所述第二节点的认证信息与所述第一节点存储的密码文件进行匹配验证;其中所述认证信息包括所述第二节点用于请求第一节点建立链接的用户名和密码。

    在可选实施例中,所述第一节点与所述第二节点建立链接后,所述方法还包括:

    根据预设的所述第二节点的访问权限,所述第二节点在预设权限内执行访问指令;其中所述访问指令用于访问访问存储于所述第一节点存储区的存储数据。

    在可选实施例中,所述第一节点与所述第二节点建立链接后,所述方法还包括:

    所述第一节点与所述第二节点链接中断;

    所述第二节点向所述第一节点发起链接请求;

    所述第一节点与所述第二节点建立链接成功。

    在可选实施例中,所述第一节点的链接白名单接收用户自定义修改。

    在可选实施例中,所述方法还包括:

    所述第一节点的密码文件和所述第二节点的认证信息可周期性进行更新并热加载。

    在可选实施例中,其特征在于,所述方法还包括:

    根据获取的所述第二节点的ip地址,确定所述第一节点的链接白名单不包含所述第二节点;

    则向所述第二节点反馈链接建立失败消息。

    第二方面,本申请实施例提供了一种分布式缓存认证装置,应用于分布式缓存系统,所述装置包括:接口模块、验证模块和传输模块;其中,

    所述接口模块,用于第一节点接收第二节点的链接请求;其中所述链接请求包含所述第二节点的ip地址和认证信息;

    所述验证模块,用于根据接口模块获取的所述第二节点的ip地址,确定所述第一节点的链接白名单包含所述第二节点;

    所述验证模块,还用于验证所述第二节点的认证信息;

    所述传输模块,在认证通过后,用于控制所述第一节点与所述第二节点建立链接。

    第三方面,本发明实施例提供了一种电子设备,包括处理器和存储器;

    所述存储器,用于存储操作指令;

    所述处理器,用于通过调用所述操作指令,执行上述分布式缓存认证方法。

    第四方面,一种计算机可读存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述分布式缓存认证的方法。

    本申请实施例公开的分布式缓存认证方案,具体为第一节点接收第二节点的链接请求;其中所述链接请求包含所述第二节点的ip地址和认证信息;根据获取的所述第二节点的ip地址,确定所述第一节点的链接白名单包含所述第二节点;验证所述第二节点的认证信息,认证通过后,所述第一节点与所述第二节点建立链接。本申请实施例提供的技术方案带来的有益效果至少包括以下之一:

    (1)本申请实施例的认证方案节点之间只建立一次认证链接后不再需要每次通讯前进行认证,解决了目前分布式缓存节点只能通过ssl,每次数据传输的时候建立握手传输的问题,提高了传输效率。

    (2)相比于ignite自带的单一加密规则。本申请实施例的认证方案可与具体加解密机制解耦,可以扩展任意加密算法,提高了分布式缓存节点认证的安全性。不同的系统可以使用不同的用户名密码连接同一台服务器,加大黑客暴力破解密码的难度。

    (3)本申请实施例的认证方案支持密码文件的热加载。更新密码不用重启缓存组件服务即可完成密码更新。对于密码更新前建立的请求,不会因为更新密码而受影响。更新密码后新建的连接采用新密码进行认证。

    附图说明

    为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。

    图1为本申请实施例提供的一种分布式缓存认证方法的流程示意图;

    图2为本申请实施例提供的一种分布式缓存认证装置的结构示意图;

    图3为本申请实施例提供的一种电子设备的结构示意图。

    具体实施方式

    下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本发明的限制。

    本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。

    为更清楚地介绍本申请实施例,下面介绍一些可能用于实施例的定义、概念或装置:

    分布式缓存是为了解决数据库服务器和web服务器之间的瓶颈,如果一个网站流量很大这个瓶颈将会非常明显,每次数据库查询耗费的时间将不容乐观。对于更新速度不是很快的站点,可以采用静态化来避免过多的数据查询,可使用freemaker或velocity来实现页面静态化。对于更新数据以秒级的站点,静态化也不会太理想,可通过分布式缓存装置来解决,如redis、memcache、ssdb等。

    apacheignite是一个分布式高性能缓存装置,内存数组组织框架是一个高性能、集成和分布式的内存计算和事务平台,用于大规模的数据集处理。ignite为应用和不同的数据源之间提供一个高性能、分布式内存中数据组织管理的框架。

    jvm是javavirtualmachine(java虚拟机)的缩写,jvm是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。

    如前所述分布式缓存节点通讯安全是拓展分布式缓存应用领域的的关键,目前现有分布式缓存技术对于保证分布式节点间安全访问,主要为两种方式:

    第一种方式是节点间开启ssl或tls加密通道进行数据传送,该方式需要节点间每次通讯时建立安全链路,开启后会增加多次握手请求,严重影响性能并不适用于高并发装置。

    第二种方式是分布式缓存装置提供自带的认证机制,即每次启动建立超级用户,但是这种方式不能对超级用户改名和授权,安全性较低,只支持单一加密规则,密码扩展性低,安全性不足以用于生产环境。

    基于此本申请公开了一种分布式缓存认证方案,以至少解决上述技术问题之一。

    下面将结合附图以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。

    为使本申请的目的、技术方案和优点更加清楚,图1公开了本申请实施例提供的一种分布式缓存认证方法的流程图,所述方法应用于分布式缓存系统,如图1所示,所述方法包括:

    s101、第一节点接收第二节点的链接请求;其中所述链接请求包含所述第二节点的ip地址和认证信息;

    s102、根据获取的所述第二节点的ip地址,确定所述第一节点的链接白名单包含所述第二节点;

    s103、验证所述第二节点的认证信息,认证通过后,所述第一节点与所述第二节点建立链接。

    在本申请实施例中,所述分布式缓存系统为apacheignite是一个分布式高性能缓存。在本申请可选实施中,所述分布式缓存具有多个缓存节点,每一个缓存节点对应各自的分片存储区域。

    在可选实施例中,所述验证所述第二节点的认证信息包括:

    将所述第二节点的认证信息与所述第一节点存储的密码文件进行匹配验证;其中所述认证信息包括所述第二节点用于请求第一节点建立链接的用户名和密码。

    在可选实施例中,所述第一节点与所述第二节点建立链接后,所述方法还包括:

    根据预设的所述第二节点的访问权限,所述第二节点在预设权限内执行访问指令;其中所述访问指令用于访问访问存储于所述第一节点存储区的存储数据。即第二节点根据预设的权限可以对指定的表进行操作,其中可授权内容的包括:表(缓存)、任务、系统权限、可访问的服务等,每个系统可通过节点来定义一个权限列表来控制所需的权限,权限列表中定义可访问的表、任务、系统权限以及服务。

    在具体实施例中,在第一节点和第二节点链接建立之后,所述方法还包括分布式缓存访问授权方案,本方案中包括a系统和b系统,他们的密码都存储在密码文件中;分布式缓存系统启动时,a系统和b系统的密码被加载到缓存的内存数据库中;a系统客户端建立连接时需要上送a系统的用户名密码;同理,b系统客户端建立连接时需要上送b系统的用户名密码。a、b系统使用不同的密码可以同时访问内存数据库,同时内存数据库通过授权机制,可以让a系统只能访问到a系统的资源,b系统只能访问b系统的资源。

    在可选实施例中,所述第一节点与所述第二节点建立链接后,所述方法还包括:

    所述第一节点与所述第二节点链接中断;

    所述第二节点向所述第一节点发起链接请求;

    所述第一节点与所述第二节点建立链接成功。

    基于本申请实施例认证只有建立链接时候进行一次,后续通信直接访问即可,本申请实施例方案相对于ssl机制每次都要进行加密信道的建立的方式,性能得到很大提升。

    在可选实施例中,所述第一节点的链接白名单接收用户自定义修改。

    在可选实施例中,所述方法还包括:

    所述第一节点的密码文件和所述第二节点的认证信息可周期性进行更新并热加载。具体实现过程包括:

    步骤1、缓存的内存数据库启动时加载旧密码文件的数据到内存中;

    步骤2、客户端上送旧密码服务端验密通过后,成功建立连接;客户端通过特定的一个或多个节点访问缓存数据库数据。

    步骤3、更换新密码文件,更改密码文件路径配置,内存数据库服务端将新密码加载到内存中。

    步骤4、客户端与服务端建立连接都需要通过新密码才可以,旧密码已经失效。但之前建立的连接不会断开,直到连接自动关闭。

    基于上述实施例,密码文件和白名单文件都支持热加载,一旦有内容发生变更,节点会自动更新当前节点内存中的用户名密码,下一个新链接到来的时候使用的就是更新后密码,已经建立链接的节点不受影响。密码到期需要更新时,不用重启缓存,只需更新密码文件以及配置即可。本申请实施例的认证方案支持密码文件的热加载。更新密码不用重启缓存组件服务即可完成密码更新。对于密码更新前建立的请求,不会因为更新密码而受影响。更新密码后新建的连接采用新密码进行认证。

    在本申请可选实施例中,节点间连接与客户端服务端连接是不同的过程,如果是节点间连接采用相同的配置即可,客户端与服务端连接,客户端不需要配置白名单,只需要提供解密后的用户名密码即可,即提供认证信息即可。

    在可选实施例中,其特征在于,所述方法还包括:

    根据获取的所述第二节点的ip地址,确定所述第一节点的链接白名单不包含所述第二节点;

    则向所述第二节点反馈链接建立失败消息。

    本申请实施例的认证方案可与具体加解密机制解耦,可以扩展任意加密算法,提高了分布式缓存节点认证的安全性。不同的系统可以使用不同的用户名密码连接同一台服务器,加大黑客暴力破解密码的难度。

    为了更清楚地介绍本申请实施例所述的分布式缓存认证方案,以下以具体实例展开说明。

    在本申请可选实施例中,所述第一节点接收所述第二节点的链接请求,基于所述第二节点发送的链接请求完成认证的过程可参考以下实例:以所述第一节点ip为22.5.6.1,第二节点ip为22.5.6.2为例,

    步骤1、在ignite_home/libs目录下增加基于本申请实施例开发的jar包;

    步骤2、在服务器指定目录下增加account.ini密码文件;

    步骤3、在配置文件中增加白名单ip列表;

    步骤4、启动服务端第一节点,当前节点会读取account.ini密码文件并进行解密,把用户名密码存储在缓存内存中。同时也会判断有无白名单ip列表,ip不存在则集群不添加白名单控制,ip存在则把ip列表读取到内存中。

    步骤5、按照上述1-3步骤启动第二节点与第一节点建立连接。

    步骤6、第一节点收到第二节点的链接然后判断第二节点是否在白名单ip列表中,如果存在进行验密,成功后返回用户权限列表,否则返回失败;

    步骤7、第二节点获取权限列表后启动成功,并加入第一节点所在的集群。

    基于图1所示的实施例提供的分布式缓存认证方法,图2示出了本申请实施例提供的一种分布式缓存认证装置,如图2所示,该装置主要可以包括:所述装置包括:201接口模块、202验证模块和203传输模块;其中,

    所述201接口模块,用于第一节点接收第二节点的链接请求;其中所述链接请求包含所述第二节点的ip地址和认证信息;

    所述202验证模块,用于根据接口模块获取的所述第二节点的ip地址,确定所述第一节点的链接白名单包含所述第二节点;

    所述202验证模块,还用于验证所述第二节点的认证信息;

    所述203传输模块,在认证通过后,用于控制所述第一节点与所述第二节点建立链接。

    可以理解的是,本实施例中的分布式缓存认证装置的上述各模块具有实现图1中所示的实施例中的方法相应步骤的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。上述模块可以是软件和/或硬件,上述各模块可以单独实现,也可以多个模块集成实现。对于上述各模块的功能描述具体可以参见图1中所示实施例中的方法的对应描述,在此不再赘述。

    本申请实施例提供了一种电子设备,包括处理器和存储器;

    存储器,用于存储操作指令;

    处理器,用于通过调用操作指令,执行本申请任一实施方式中所提供的分布式缓存认证方法。

    作为一个示例,图3示出了本申请实施例所适用的一种电子设备的结构示意图,如图3所示,该电子设备2000包括:处理器2001和存储器2003。其中,处理器2001和存储器2003相连,如通过总线2002相连。可选的,电子设备2000还可以包括收发器2004。需要说明的是,实际应用中收发器2004不限于一个,该电子设备2000的结构并不构成对本申请实施例的限定。

    其中,处理器2001应用于本申请实施例中,用于实现上述方法实施例所示的方法。收发器2004可以包括接收机和发射机,收发器2004应用于本申请实施例中,用于执行时实现本申请实施例的电子设备与其他设备通信的功能。

    处理器2001可以是cpu(centralprocessingunit,中央处理器),通用处理器,dsp(digitalsignalprocessor,数据信号处理器),asic(applicationspecificintegratedcircuit,专用集成电路),fpga(fieldprogrammablegatearray,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器2001也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,dsp和微处理器的组合等。

    总线2002可包括一通路,在上述组件之间传送信息。总线2002可以是pci(peripheralcomponentinterconnect,外设部件互连标准)总线或eisa(extendedindustrystandardarchitecture,扩展工业标准结构)总线等。总线2002可以分为地址总线、数据总线、控制总线等。为便于表示,图3中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

    存储器2003可以是rom(readonlymemory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,ram(randomaccessmemory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是eeprom(electricallyerasableprogrammablereadonlymemory,电可擦可编程只读存储器)、cd-rom(compactdiscreadonlymemory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。

    可选的,存储器2003用于存储执行本申请方案的应用程序代码,并由处理器2001来控制执行。处理器2001用于执行存储器2003中存储的应用程序代码,以实现本申请任一实施方式中所提供的分布式缓存认证方法。

    本申请实施例提供的电子设备,适用于上述方法任一实施例,在此不再赘述。

    本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现上述方法实施例所示的分布式缓存认证方法。

    本申请实施例提供的计算机可读存储介质,适用于上述方法任一实施例,在此不再赘述。

    本申请实施例公开的分布式缓存认证方案,包括第一节点接收第二节点的链接请求;其中所述链接请求包含所述第二节点的ip地址和认证信息;根据获取的所述第二节点的ip地址,确定所述第一节点的链接白名单包含所述第二节点;验证所述第二节点的认证信息,认证通过后,所述第一节点与所述第二节点建立链接。本申请的技术方案在保证分布式缓存系统缓存节点通讯安全性的同时提高了通讯效率。

    应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

    以上仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。


    技术特征:

    1.一种分布式缓存认证方法,应用于分布式缓存系统,其特征在于,所述方法包括:

    第一节点接收第二节点的链接请求;其中所述链接请求包含所述第二节点的ip地址和认证信息;

    根据获取的所述第二节点的ip地址,确定所述第一节点的链接白名单包含所述第二节点;

    验证所述第二节点的认证信息,认证通过后,所述第一节点与所述第二节点建立链接。

    2.根据权利要求1所述的分布式缓存认证方法,其特征在于,所述验证所述第二节点的认证信息包括:

    将所述第二节点的认证信息与所述第一节点存储的密码文件进行匹配验证;其中所述认证信息包括所述第二节点用于请求第一节点建立链接的用户名和密码。

    3.根据权利要求2所述的分布式缓存认证方法,其特征在于,所述第一节点与所述第二节点建立链接后,所述方法还包括:

    根据预设的所述第二节点的访问权限,所述第二节点在预设权限内执行访问指令;其中所述访问指令用于访问访问存储于所述第一节点存储区的存储数据。

    4.根据权利要求3所述的分布式缓存认证方法,其特征在于,所述第一节点与所述第二节点建立链接后,所述方法还包括:

    所述第一节点与所述第二节点链接中断;

    所述第二节点向所述第一节点发起链接请求;

    所述第一节点与所述第二节点建立链接成功。

    5.根据权利要求4所述的分布式缓存认证方法,其特征在于,所述第一节点的链接白名单接收用户自定义修改。

    6.根据权利要求5所述的分布式缓存认证方法,其特征在于,所述方法还包括:

    所述第一节点的密码文件和所述第二节点的认证信息可周期性进行更新并热加载。

    7.根据权利要求1-6任一项所述的分布式缓存认证方法,其特征在于,所述方法还包括:

    根据获取的所述第二节点的ip地址,确定所述第一节点的链接白名单不包含所述第二节点;

    则向所述第二节点反馈链接建立失败消息。

    8.一种分布式缓存认证装置,应用于分布式缓存系统,其特征在于,所述装置包括:接口模块、验证模块和传输模块;其中,

    所述接口模块,用于第一节点接收第二节点的链接请求;其中所述链接请求包含所述第二节点的ip地址和认证信息;

    所述验证模块,用于根据接口模块获取的所述第二节点的ip地址,确定所述第一节点的链接白名单包含所述第二节点;

    所述验证模块,还用于验证所述第二节点的认证信息;

    所述传输模块,在认证通过后,用于控制所述第一节点与所述第二节点建立链接。

    9.一种电子设备,其特征在于,包括处理器和存储器;

    所述存储器,用于存储操作指令;

    所述处理器,用于通过调用所述操作指令,执行权利要求1-7中任一项所述的方法。

    10.一种计算机可读存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-7中任一项所述的方法。

    技术总结
    本申请涉及计算机网络安全技术领域,尤其涉及一种分布式缓存认证方法、装置、电子设备和可读存储介质,所述方法包括第一节点接收第二节点的链接请求;其中所述链接请求包含所述第二节点的IP地址和认证信息;根据获取的所述第二节点的IP地址,确定所述第一节点的链接白名单包含所述第二节点;验证所述第二节点的认证信息,认证通过后,所述第一节点与所述第二节点建立链接。本申请的技术方案在保证分布式缓存系统缓存节点通讯安全性的同时提高了通讯效率。

    技术研发人员:李兴
    受保护的技术使用者:中信银行股份有限公司
    技术研发日:2020.11.13
    技术公布日:2021.03.12

    转载请注明原文地址:https://wp.8miu.com/read-7537.html

    最新回复(0)