CN117216802B - 数据库安全认证方法、装置、电子设备和存储介质 - Google Patents

数据库安全认证方法、装置、电子设备和存储介质 Download PDF

Info

Publication number
CN117216802B
CN117216802B CN202311469774.4A CN202311469774A CN117216802B CN 117216802 B CN117216802 B CN 117216802B CN 202311469774 A CN202311469774 A CN 202311469774A CN 117216802 B CN117216802 B CN 117216802B
Authority
CN
China
Prior art keywords
data
data set
client
server
password
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202311469774.4A
Other languages
English (en)
Other versions
CN117216802A (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.)
China Unicom Guangdong Industrial Internet Co Ltd
Original Assignee
China Unicom Guangdong Industrial Internet 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 China Unicom Guangdong Industrial Internet Co Ltd filed Critical China Unicom Guangdong Industrial Internet Co Ltd
Priority to CN202311469774.4A priority Critical patent/CN117216802B/zh
Publication of CN117216802A publication Critical patent/CN117216802A/zh
Application granted granted Critical
Publication of CN117216802B publication Critical patent/CN117216802B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Storage Device Security (AREA)

Abstract

本申请实施例涉及一种数据库安全认证方法、装置、电子设备和存储介质,应用于服务端,上述方法包括:服务端根据客户端发送的访问请求,生成第一数据集与第二数据集,根据第一数据集与第二数据集的分类结果,动态生成服务端密码,再将第一数据集与第二数据集发送到客户端,接收的客户端密码,若客户端密码与服务端密码一致,则允许客户端访问数据库。上述数据库安全认证方法、装置、电子设备和存储介质,能够有效保护数据库的安全。

Description

数据库安全认证方法、装置、电子设备和存储介质
技术领域
本申请涉及信息安全技术领域,具体涉及一种数据库安全认证方法、装置、电子设备和存储介质。
背景技术
随着数字化时代的推进,人们在日常生活中会产生大量的数据,数据库作为存储数据主要载体之一,各种功能也随之完善;与此同时,人们对个人数据的隐私性也更加注重,在大多数情况下,简单的账号密码认证已经无法满足部分人对数据库的安全需求,因此,如何提高数据库的安全性成了必须解决的问题。
发明内容
第一方面,本申请实施例公开了一种数据库安全认证方法,应用于服务端,包括:
接收客户端针对目标访问端口发送的访问请求;
根据所述访问请求,生成第一数据集及第二数据集;所述第一数据集包括N个第一数据,所述第二数据集包括M个第二数据,所述N和所述M均为正整数;
对所述第一数据集中的所述N个第一数据进行分类,得到第一分类结果;所述第一分类结果包括多个类别;
分别计算所述第二数据集中的各个所述第二数据与所述N个第一数据之间的第一距离;
根据各个所述第二数据对应的N个第一距离及所述第一分类结果,确定所述第二数据集对应的第一归属向量;所述第一归属向量用于指示所述M个第二数据分别对应的类别;
根据所述第一归属向量生成服务端密码;
将所述第一数据集及所述第二数据集发送给所述客户端,以使所述客户端对所述第一数据集中的所述N个第一数据进行分类,得到第二分类结果,分别计算所述第二数据集中的各个所述第二数据与所述N个第一数据之间的第二距离,根据各个所述第二数据对应的N个第二距离及所述第二分类结果,确定所述第二数据集对应的第二归属向量,并根据所述第二归属向量生成客户端密码;
接收所述客户端发送的所述客户端密码;
若所述客户端密码与所述服务端密码一致,则允许所述客户端通过所述目标访问端口访问数据库。
作为一种可选的实施方式,在本申请实施例的第一方面中,所述第一分类结果包括各个所述第一数据与所述多个类别之间的映射关系;所述根据各个所述第二数据对应的N个第一距离及所述第一分类结果,确定所述第二数据集对应的第一归属向量,包括:
根据目标第二数据对应的N个第一距离,从所述N个第一数据中确定K个目标第一数据;所述目标第二数据为任一所述第二数据;
根据所述映射关系,确定所述K个目标第一数据分别对应的类别;
根据所述K个目标第一数据分别对应的类别,确定所述目标第二数据所属的类别;
根据各个所述第二数据所属的类别,生成第一归属向量。
作为一种可选的实施方式,在本申请实施例的第一方面中,所述根据目标第二数据对应的N个第一距离,从所述N个第一数据中确定K个目标第一数据,包括:
按照第一距离从小到大的顺序,对所述目标第二数据对应的N个第一距离进行排序,并选择排列在前K个的第一距离对应的第一数据作为目标第一数据;
所述根据所述K个目标第一数据分别对应的类别,确定所述目标第二数据所属的类别,包括:
确定所述K个目标第一数据分别对应的类别的出现概率,得到出现概率最大的类别;
将所述出现概率最大的类别作为所述目标第二数据所属的类别。
作为一种可选的实施方式,在本申请实施例的第一方面中,所述访问请求包括所述客户端对应的第一客户端标识;在所述生成第一数据集及第二数据集之前,所述方法还包括:
获取第一服务端标识;
将所述第一服务端标识与所述第一客户端标识进行比对;
若所述第一服务端标识与所述第一客户端标识一致,则执行所述生成第一数据集及第二数据集的步骤。
作为一种可选的实施方式,在本申请实施例的第一方面中,所述访问请求还包括时间戳;所述获取第一服务端标识,包括:
获取第二服务端标识;
将所述第二服务端标识与所述时间戳进行组合,得到第一组合数据;
对所述第一组合数据进行哈希计算,得到第一服务端标识。
作为一种可选的实施方式,在本申请实施例的第一方面中,在所述允许所述客户端通过所述目标访问端口访问数据库之后,所述方法还包括:
对所述目标访问端口的访问流量进行监控;
若检测到所述目标访问端口在目标时间段内的访问流量满足端口关闭规则,则关闭所述目标访问端口,并删除所述目标访问端口对应的服务端密码。
第二方面,本申请实施例公开了一种数据库安全认证方法,应用于客户端,所述方法包括:
向服务端发送针对目标访问端口的访问请求;所述访问请求用于指示所述服务端生成第一数据集及第二数据集,所述第一数据集包括N个第一数据,所述第二数据集包括M个第二数据,所述N和所述M均为正整数,以及指示所述服务端对所述第一数据集中的N个第一数据进行分类,得到第一分类结果,分别计算所述第二数据集中的各个所述第二数据与所述N个第一数据之间的第一距离,根据各个所述第二数据对应的N个第一距离及所述第一分类结果,确定所述第二数据集对应的第一归属向量,并根据所述第一归属向量生成服务端密码;
接收服务端发送的所述第一数据集及第二数据集;
对所述第一数据集中的所述N个第一数据进行分类,得到第二分类结果;所述第二分类结果包括多个类别;
分别计算所述第二数据集中的各个所述第二数据与所述N个第一数据之间的第二距离;
根据各个所述第二数据对应的N个第二距离及所述第二分类结果,确定所述第二数据集对应的第二归属向量;所述第二归属向量用于指示所述M个第二数据分别对应的类别;
根据所述第二归属向量生成客户端密码;
将所述客户端密码发送给所述服务端,以使所述服务端在确定所述客户端密码与所述服务端密码一致的情况下,允许所述客户端通过所述目标访问端口访问数据库。
第三方面,本申请实施例公开了一种数据库安全认证装置,应用于服务端,包括:
接收请求模块,用于接收客户端针对目标访问端口发送的访问请求;
数据集生成模块,用于根据所述访问请求,生成第一数据集及第二数据集;所述第一数据集包括N个第一数据,所述第二数据集包括M个第二数据,所述N和所述M均为正整数;
分类模块,用于对所述第一数据集中的所述N个第一数据进行分类,得到第一分类结果;所述第一分类结果包括多个类别;以及用于分别计算所述第二数据集中的各个所述第二数据与所述N个第一数据之间的第一距离;根据各个所述第二数据对应的N个第一距离及所述第一分类结果,确定所述第二数据集对应的第一归属向量;所述第一归属向量用于指示所述M个第二数据分别对应的类别;
密码生成模块,用于根据所述第一归属向量生成服务端密码;
数据集发送模块,用于将所述第一数据集及所述第二数据集发送给所述客户端,以使所述客户端对所述第一数据集中的所述N个第一数据进行分类,得到第二分类结果,分别计算所述第二数据集中的各个所述第二数据与所述N个第一数据之间第二距离,根据各个所述第二数据对应的N个第二距离及所述第二分类结果,确定所述第二数据集对应的第二归属向量,并根据所述第二归属向量生成客户端密码;
接收模块,用于接收所述客户端发送的所述客户端密码;
验证模块,用于若所述客户端密码与所述服务端密码一致,则允许所述客户端通过所述目标访问端口访问数据库。
第四方面,本申请实施例公开了一种数据库安全认证装置,应用于客户端,包括:
请求发送模块,用于向服务端发送针对目标访问端口的访问请求;所述访问请求用于指示所述服务端生成第一数据集及第二数据集,所述第一数据集包括N个第一数据,所述第二数据集包括M个第二数据,所述N和所述M均为正整数,以及指示所述服务端对所述第一数据集中的N个第一数据进行分类,得到第一分类结果,分别计算所述第二数据集中的各个所述第二数据与所述N个第一数据之间的第一距离,根据各个所述第二数据对应的N个第一距离及所述第一分类结果,确定所述第二数据集对应的第一归属向量,并根据所述第一归属向量生成服务端密码;
数据集接收模块,用于接收服务端发送的所述第一数据集及第二数据集;
分类模块,用于对所述第一数据集中的所述N个第一数据进行分类,得到第二分类结果;所述第二分类结果包括多个类别;以及用于分别计算所述第二数据集中的各个所述第二数据与所述N个第一数据之间的第二距离;根据各个所述第二数据对应的N个第二距离及所述第二分类结果,确定所述第二数据集对应的第二归属向量;所述第二归属向量用于指示所述M个第二数据分别对应的类别;
密码生成模块,用于根据所述第二归属向量生成客户端密码;
密码发送模块,用于将所述客户端密码发送给所述服务端,以使所述服务端在确定所述客户端密码与所述服务端密码一致的情况下,允许所述客户端通过所述目标访问端口访问数据库。
第五方面,本申请实施例公开了一种电子设备,包括存储器及处理器,所述存储器中存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器实现如上所述的应用于服务端的方法。
第六方面,本申请实施例公开了一种电子设备,包括存储器及处理器,所述存储器中存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器实现如上所述的应用于客户端的方法。
第七方面,本申请实施例公开了一种存储介质,所述计算机可读存储介质存储计算机程序,所述计算机程序被处理器执行时实现如上所述的应用于服务端的方法。
第八方面,本申请实施例公开了一种存储介质,所述计算机可读存储介质存储计算机程序,所述计算机程序被处理器执行时实现如上所述的应用于客户端的方法。
本申请实施例公开的数据库安全认证方法、装置、电子设备和存储介质,服务端接收客户端针对目标访问端口发送的访问请求;服务端根据访问请求,生成第一数据集及第二数据集;服务端对第一数据集中的N个第一数据进行分类,得到第一分类结果;服务端分别计算第二数据集中的各个第二数据与N个第一数据之间的第一距离;服务端根据各个第二数据对应的N个第一距离及第一分类结果,确定第二数据集对应的第一归属向量;服务端根据第一归属向量生成服务端密码;将第一数据集及第二数据集发送给客户端,以使客户端对第一数据集中的N个第一数据进行分类,得到第二分类结果,客户端分别计算第二数据集中的各个第二数据与N个第一数据之间的第二距离,根据各个第二数据对应的N个第二距离及第二分类结果,客户端确定第二数据集对应的第二归属向量,并根据第二归属向量生成客户端密码;服务端接收客户端发送的客户端密码;若客户端密码与服务端密码一致,则允许客户端通过目标访问端口访问数据库。在本申请实施例中,服务端在接收到客户端针对目标访问端口发送的访问请求,生成第一数据集及第二数据集,并根据第一数据集及第二数据集为客户端动态生成对应的服务端密码,能够避免固定密码被猜测导致数据库被入侵;而且,服务端使用第一数据集及第二数据集的分类结果生成服务端密码,并只将第一数据集及第二数据集发送给客户端,客户端按照相同的方式生成客户端密码,服务端再对客户端生成的客户端密码进行验证,能够有效防止密码的泄漏,以及提高密码被破解的难度,从而有效提高数据库的安全性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一个实施例中数据库安全认证方法的应用场景图;
图2为一个实施例中数据库安全认证方法的流程图;
图3为一个实施例中确定第一归属向量的流程图;
图4为另一个实施例中数据库安全认证方法的流程图;
图5为另一个实施例中数据库安全认证方法的流程图;
图6为一个实施例中数据库安全认证装置的框图;
图7为另一个实施例中数据库安全认证装置的框图;
图8为一个实施例中电子设备的结构框图;
图9为另一个实施例中电子设备的结构框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,本申请实施例及附图中的术语 “包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
可以理解,本申请所使用的术语“第一”、“第二”等可在本文中用于描述各种元件,但这些元件不受这些术语限制。这些术语仅用于将第一个元件与另一个元件区分。举例来说,在不脱离本申请的范围的情况下,可以将第一数据集称为第二数据集,且类似地,可将第二数据集称为第一数据集。第一数据集和第二数据集两者都是数据集,但其不一定是相同的数据集。
在相关技术中,目前数据库的访问机制基本是通过账密校验的形式完成,并且没有对端口进行隐藏。对于攻击者而言,可以通过扫描端口,继而针对数据库安全漏洞进行渗透入侵,窃取数据库数据。所以需要一种更加安全的数据库保护方法,以便能够抵御愈来愈严峻的网络安全问题。
本申请实施例公开了一种数据库安全认证方法、装置、电子设备和存储介质,能够有效保护数据库的安全。
图1为一个实施例中数据库安全认证方法的应用场景图。如图1所示,数据库安全认证方法可应用于部署服务端的电子设备110及部署客户端的电子设备120。其中,部署服务端的电子设备110可包括数据库130及提供数据库服务的一个或多个访问端口140。部署服务端的电子设备110及部署客户端的电子设备120可包括但不限于手机、智能穿戴设备、平板电脑、PC(Personal Computer,个人计算机)、计算机等,本申请实施例不做限定。数据库130可包括但不限于层次式数据库、网络式数据库和关系型数据库等,本申请实施例不做限定。
可选地,为了保护数据库的安全性,提供数据库服务的一个或多个访问端口140一般使用TCP(Transmission Control Protocol,传输控制协议)进行数据传输。
在一些实施例中,当部署客户端的电子设备120希望获取数据库130的服务,则针对数据库130对应的一个访问端口140向部署服务端的电子设备110发送访问请求;部署服务端的电子设备110接收到访问请求之后,可认证部署客户端的电子设备120的身份,并生成第一数据集和第二数据集,根据第一数据集和第二数据集生成服务端密码,并将第一数据集和第二数据集发送给部署客户端的电子设备120;部署客户端的电子设备120接收到第一数据集和第二数据集之后,使用与生成服务端密码相同的方法生成客户端密码,再将客户端密码发送给部署服务端的电子设备110;部署服务端的电子设备110收到客户端密码后,将客户端密码与服务端密码进行对比,若客户端密码与服务端密码一致,则允许部署客户端的电子设备120通过访问端口140访问数据库130和获数据库130的服务。
在本申请实施例中,通过部署服务端的电子设备110及部署客户端的电子设备120的数据交互,由部署服务端的电子设备110确定部署客户端的电子设备120是否能够通过访问端口140访问数据库130,以及动态密码的生成,增强入侵者通过访问端口140入侵数据库130的难度,提高了数据库130的安全。
如图2所示,在一个实施例中,提供一种数据库安全认证方法,可应用于服务端,服务端具备数据库服务,该服务端可部署在服务器或者服务器集群等电子设备中。该方法可包括以下步骤:
步骤202,接收客户端针对目标访问端口发送的访问请求。
服务端可具备数据库服务,数据库可包括一个或多个访问端口,该访问端口可指的是能够通过数据库服务的端口,数据库服务可包括但不限于读取数据库的数据、修改数据库的数据等。
在客户端需要通过目标访问端口访问服务端的数据库时,可向服务端发送针对目标访问端口的访问请求。该访问请求可用于服务端允许客户端通过目标访问端口访问数据库。
在一些实施例中,访问请求可包括客户端对应的第一客户端标识、时间戳等。第一客户端标识是客户端生成的、用于提供服务端对客户端身份认证的标识。客户端对应的时间戳指的是客户端生成访问请求时的时间,用于服务端检测对应的访问请求是否属于有效访问请求;例如,若时间戳比有效时间阈值早,则该时间戳对应的访问请求属于无效访问请求,服务端丢弃该无效访问请求;若时间戳比有效时间阈值晚或者时间戳与有效时间阈值相等,则该时间戳对应的访问请求属于有效访问请求,服务端可根据访问请求,生成服务端密码。
目标访问端口指的是,客户端服务数据库的访问端口,目标访问端口可以是服务端连接数据库的任一端口。
在一些实施例中,开启数据库服务的服务端,可先关闭所有访问端口,限制所有客户端的访问和扫描。服务端可通过iptables命令关闭所有访问端口,限制所有客户端的访问和扫描,将数据库对应的访问端口隐藏。iptables命令的主要功能是实现对网络数据包进出设备及转发的控制。具体地,假设要关闭端口号为22的访问端口,可使用iptables命令“iptables -A INPUT -p tcp --dport 22 -j DROP”关闭端口号为22的访问端口;其中“-A”表示添加一条INPUT(访问)的规则,“-p tcp”表示指定端口为TCP协议,“--dport 22”表示端口号为22的访问端口,“-j DROP”表示阻止访问。
在一些实施例中,服务端关闭所有访问端口后,可通过开启SPA(Single PacketAuthorization,单包授权)服务,对UDP(User Datagram Protocol,用户数据报协议)端口进行监听,接收客户端针对目标访问端口发送的访问请求。通过关闭所有访问端口,可以隐藏数据库,对于入侵者而言,数据库会处于隐身状态无法被发现,减小入侵者通过访问端口入侵数据库的可能性,从而提供更安全,更有效的数据库保护。
零信任SPA技术,即单包授权技术,是一种保护服务端口免受攻击的特殊认证方式,即通过一个单一UDP数据包携带认证鉴别信息发送给服务端,在完成认证后获得授权,从而允许访问业务。零信任SPA技术能够提供一种新的保护形式,即只有完成身份验证才会开启端口访问,而其他攻击者是无法扫描到端口是否开启。
步骤204,根据访问请求,生成第一数据集及第二数据集。
其中,第一数据集包括N个第一数据,第二数据集包括M个第二数据,N和M均为正整数。
在一些实施例中,服务端可根据访问请求,随机生成第一数据集及第二数据集。具体地,服务端可使用随机函数随机生成第一数据集及第二数据集。例如,可使用Python中的rand()函数,利用rand(500, 2)生成包括500个第一数据的第一数据集,rand()函数的第二个参数“2”表示生成的第一数据具备二维特征,即为点数据。
在一些具体地实施例中,服务端根据访问请求,随机生成包括N个第一数据的第一数据集,其中/>,随机生成包括M个第二数据的第二数据集/>,其中/>
步骤206,对第一数据集中的N个第一数据进行分类,得到第一分类结果。
其中,第一分类结果可包括多个类别以及各个第一数据与多个类别之间的映射关系等。
在一些实施例中,服务端可通过聚类分析,对第一数据集中的N个第一数据进行分类,得到第一分类结果。可选地,服务端可采用的聚类分析方法包括但不限于:划分式聚类方法(Partition-based Methods)、基于密度的聚类方法(Density-based Methods)、层次化聚类方法(Hierarchical Methods)等。
在一些具体的实施例中,服务端可使用K-means(K-均值)聚类方法对第一数据集中的N个第一数据进行聚类,得到第一数据集对应的K个类别,其中K为大于1的正整数。K-means聚类方法属于划分式聚类方法,需要事先指定类别的数目,通过反复迭代,直至最后达到“簇内的点足够近,簇间的点足够远”的目标。
在一些具体地实施例中,服务端可先根据一个与客户端约定好的可调参数K,表示对第一数据集进行聚类得到的簇类数量,即分类的类别数量;对N个第一数据进行K-means聚类分析,将N个第一数据划分到K个类别中,得到分类结果里,/>表示第一数据集对应的第i个类别,其中/>;并且根据各个第一数据分别对应的类别,生成第一数据集对应的映射关系,即/>,其中/>
具体地,服务端可先根据一个与客户端约定好的可调参数K,在第一数据集中随机设定K个第一数据作为原始质心,当任意一个第一数据的类别分配结果发生改变时,则进行迭代:对于每个第一数据,计算每个质心与第一数据之间的距离,将第一数据分别分配到距离最小的质心所对应的类别,并计算该类别中包含的第一数据的均值,并将均值作为下一次迭代的质心,直至所有的第一数据的类别分配结果不再发生改变,得到第一数据对应的K个类别,以及各个第一数据对应的映射关系。进一步地,K个类别可用K个类别最终的质心表示。
步骤208,分别计算第二数据集中的各个第二数据与N个第一数据之间的第一距离。
在一些实施例中,服务端可通过距离计算方法,分别计算第二数据集中的各个第二数据与N个第一数据之间的第一距离。服务端可采用的距离计算方法包括但不限于:欧氏距离(Euclidean Distance、曼哈顿距离(Manhattan Distance)、切比雪夫距离 (Chebyshev Distance )、汉明距离(Hamming distance)等。
在一些具体地实施例中,服务端可通过计算第二数据集中的各个第二数据与N个第一数据之间的欧式距离,得到距离矩阵;其中,距离矩阵的每i行代表第二数据集第i个第二数据分别到N个第一数据的距离。具体地,服务端可使用欧式距离公式(1)计算第i个第二数据到第j个第一数据的距离:
(1)
其中,表示第i个第二数据;/>表示第j个第一数据。
步骤210,根据各个第二数据对应的N个第一距离及第一分类结果,确定第二数据集对应的第一归属向量。
其中,第一归属向量用于指示M个第二数据分别对应的类别,用于生成服务端密码。
在一些实施例中,服务端可在各个第二数据对应的N个第一距离中,找到各个第二数据对应的第一距离最小的目标第一距离,将各个第二数据对应的目标第一距离对应的第一数据所属的类别,作为各个第二数据所属的类别,根据各个第二数据所属的类别,生成第二数据集对应的第一归属向量。
服务端根据各个第二数据到所有第一数据之间的第一距离,找到与各个第二数据对应的目标第一数据,再通过第一数据集对应的第一分类结果,找到目标第一数据对应的类别,来确定各个第二数据所属的类别,得到第二数据集对应的第一归属向量。服务端和客户端在使用相同的第一数据集和第二数据集时,第一数据到第二数据的距离是不变的,进一步保证生成归属向量相同,致使生成相同的密码,有助于客户端获取服务端中的数据库服务。
步骤212,根据第一归属向量生成服务端密码。
在一些实施例中,服务端可对第一归属向量进行哈希计算,得到服务端密码。可选地,可采用的哈希算法包括但不限于MD5(MD5 Message-Digest Algorithm,MD5消息摘要算法)和SHA(Secure Hash Algorithm,安全散列算法)等。
在一些实施例中,服务端可通过哈希函数对第一归属向量进行哈希计算,得到服务端密码。例如,服务端可使用HMAC(Keyed-Hashing for Message Authentication,散列消息认证码)对第一归属向量进行哈希计算,得到服务端密码/>
HMAC主要是利用哈希算法,以一个密钥和一个消息为输入,生成一个消息摘要作为输出。可选地,服务端可根据与客户端约定的密钥和第一归属向量进行HMAC计算,得到服务端密码。具体地,选择使用哈希函数SHA-256等对密钥进行处理;如果密钥长度超过哈希函数SHA-256的块长度512,则先对密钥进行哈希处理,生成第一哈希值;对第一归属向量进行填充,将第一归属向量填充至512的整数倍,一般采用0x5c和0x36分别进行填充;对填充后的第一归属向量使用第一哈希值进行哈希计算,得到第二哈希值,使用0x5c和0x36对第二哈希值进行填充,对填充后的第二哈希值再次使用第一哈希值进行哈希计算,得到服务端密码。
在一些实施例中,服务端根据第一归属向量生成服务端密码之后,打开目标访问端口,用于接收客户端发送的包含客户端密码的TCP数据报。
步骤214,将第一数据集及第二数据集发送给客户端,以使客户端对第一数据集中的N个第一数据进行分类,得到第二分类结果,分别计算第二数据集中的各个第二数据与N个第一数据之间的第二距离,根据各个第二数据对应的N个第二距离及第二分类结果,确定第二数据集对应的第二归属向量,并根据第二归属向量生成客户端密码。
在一些实施例中,服务端将生成的第一数据集及第二数据集发送给客户端。客户端可根据第一数据集及第二数据集,采用与服务端相同的生成密码的方法,生成客户端密码。客户端可先对第一数据集中的N个第一数据进行分类得到第二分类结果,计算各个第二数据与N个第一数据之间的第二距离,再根据各个第二数据对应的N个第二距离及第二分类结果,确定第二数据集对应的第二归属向量,根据第二归属向量生成客户端密码。需要说明的是,客户端根据第一数据集及第二数据集,生成客户端密码的方法与服务端生成服务端密钥的方式一致,可参考上述各实施例中服务端生成服务端密钥的相关描述,在此不再重复赘述。
步骤216,接收客户端发送的客户端密码。
客户端在生成客户端密码后,可向服务端发送客户端密码。服务端接收客户端发送的客户端密码后,可对客户端密码进行验证,判断客户端密码与服务端密码是否一致。
在一些实施例中,服务端可将接收的客户端密码与生成的服务端密码进行比较。服务端还可计算接收的客户端密码与生成的服务端密码的相似度;若服务端接收的客户端密码与生成的服务端密码的相似度大于或等于相似度阈值,则服务端认为接收的客户端密码在传输过程中发生了可接受性的错误,即认为传输之前的客户端密码与服务端密码一致,即客户端密码验证通过;可接受性的错误指的是客户端密码相对于服务端密码的误差对于服务端而言可忽略。若服务端接收的客户端密码与生成的服务端密码的相似度小于相似度阈值,则客户端密码验证失败,服务端认为传输之前的客户端密码与服务端密码不一致,则该客户端不一定在服务端允许访问数据库的白名单中。
步骤218,若客户端密码与服务端密码一致,则允许客户端通过目标访问端口访问数据库。
若服务端检测到接收的客户端密码与生成的服务端密码一致,则表示客户端成功接收到服务端发送的第一数据集及第二数据集,并使用与服务端生成服务端密钥的方式生成客户端密码,也就是说,该客户端满足数据库访问的安全认证条件,则服务端允许客户端通过目标访问端口访问数据库。数据库访问的安全认证条件用于判断客户端是否能够被允许访问数据库。例如:数据库访问的安全认证条件可以是客户端与服务端根据相同的第一数据集和第二数据集,并使用相同的生成密码方式,生成对应的密码。
在一些实施例中,若服务端检测到客户端密码与服务端密码不一致,表示客户端密码验证不通过,则服务端不允许客户端通过目标访问端口访问数据库,并将该客户端的客户端信息记录到灰名单中;若服务端检测到灰名单中相同客户端信息出现次数大于失败阈值,则对该客户端信息对应的客户端的身份进行怀疑,将该客户端的客户端信息记录到黑名单中,并在灰名单中删除该客户端信息,在第一时间段内不接收该客户端发送的访问请求,在第一时间段之后,再将该客户端的客户端信息从黑名单中删除。灰名单用于记录客户端密码验证不通过对应的客户端的客户端信息;黑名单用于记录多次客户端密码验证不通过的可疑的客户端的客户端信息;客户端信息可包括该客户端信息对应的客户端的第一客户端标识等用于标志客户端身份的信息。通过灰名单与黑名单的交替使用,能够有效的避免服务端被可疑客户端多次骚扰,使得服务端在第一时间段内屏蔽可疑客户端,以保护服务端数据库的安全。
在一些实施例中,若客户端密码与服务端密码不一致,则服务端关闭目标服务端口,不允许客户端继续通过目标访问端口与服务端进行TCP报文交换。若服务端检测到客户端密码与服务端密码一致,则服务端允许该客户端通过目标访问端口对数据库进行报文交换。
在本申请实施例中,服务端在接收到客户端针对目标访问端口发送的访问请求,才为该客户端动态生成对应的服务端密码,能够避免固定密码被猜测导致数据库被入侵;并使用生成的第一数据集及第二数据集的分类结果生成服务端密码,并只将第一数据集及第二数据集发送给客户端,再检测客户端生成的客户端密码与服务端密码是否一致,能够有效防止密码的泄漏,以及提高密码被破解的难度,从而有效提高数据库的安全性。
如图3所示,图3是在一个实施例中确定第二数据集对应的第一归属向量的流程图,可应用于上述的服务端,步骤根据各个第二数据对应的N个第一距离及第一分类结果,确定第二数据集对应的第一归属向量,可包括以下步骤:
步骤302,根据目标第二数据对应的N个第一距离,从N个第一数据中确定K个目标第一数据。
其中,目标第一数据用于确定目标第二数据对应的类别,目标第二数据为任一第二数据;K为服务端与客户端约定的一个大于1的正整数值。
在一些实施例中,服务端可在目标第二数据对应的N个第一距离中,找到满足预设条件的K个第一距离,这K个第一距离对应的K个第一数据为目标数据。预设条件用于客户端对目标第二数据对应的第一距离进行筛选,以确认目标第一数据;预设条件可包括但不限于:在第一距离的升序排列中的前K个对应距离;小于距离阈值的第一距离中的任意K个第一距离等。
在一些具体地实施例中,服务端可按照第一距离从小到大的顺序,对目标第二数据对应的N个第一距离进行排序,并选择排列在前K个的第一距离对应的第一数据作为目标第一数据。
步骤304,根据映射关系,确定K个目标第一数据分别对应的类别。
在一些实施例中,映射关系可以是第一数据集的N个第一数据到对应类别的映射函数。因此,服务端可通过映射函数,得到K个目标第一数据分别对应的类别,其中,/>,/>表示第j个第一数据,/>表示第j个第一数据所属的类别为第i个类别。
步骤306,根据K个目标第一数据分别对应的类别,确定目标第二数据所属的类别。
在一些实施例中,服务端可通过计算目标第一数据分别所属的类别的出现概率,确定目标第二数据所属的类别。具体地,服务端可确定K个目标第一数据分别对应的类别的出现概率,得到出现概率最大的类别;将出现概率最大的类别作为目标第二数据所属的类别。
在一些实施例中,服务端还可计算相同类别对应的目标第一数据的中心数据,再通过计算各个类别对应的中心数据到目标第二数据的类别距离,将最小类别距离对应的类别作为目标第二数据所属的类别。中心数据指的是相同类别对应的各个目标第一数据在各个维度的数据均值;类别距离指的是目标第二数据到目标第一数据对应的各个中心数据的距离,用于确定目标第二数据所属的类别。
步骤308,根据各个第二数据所属的类别,生成第一归属向量。
在一些具体的实施例中,服务端可与客户端约定类别排序规则或类别命名规则,根据类别排序规则或类别命名规则,对第一数据集对应的K个类别进行排序或命名,得到的各个第二数据所属的类别,生成第一归属向量。具体地,类别排序规则包括但不限于根据第一数据集对应的K个类别包含的第一数据个数从多到少或从少到多进行排序,并根据排序的顺序对各个类别进行标号等。类别命名规则包括但不限于在各个类别包含的第一数据中的任一第一数据作为所属类别的命名,还可以是将各个类别包含的第一数据的中心点作为所属类别的命名等。
在一些具体地实施例中,对于第二数据集Q上的各个第二数据对应的N个第一距离,选取K个目标第一数据,根据映射关系,得到K个目标第一数据对应的类别,根据K个类别,确定第二数据集M个第二数据的归属类别,得到第一归属向量,即
需要说明的是,客户端根据各个第二数据对应的N个第二距离及第二分类结果,确定第二数据集对应的第二归属向量的方法与服务端确定第一归属向量的方式一致,可参考上述各实施例中服务端确定第一归属向量的相关描述,在此不再重复赘述。
在本申请实施例中,服务端通过计算目标第二数据到各个第一数据的距离,得到目标第二数据对应的各个目标第一数据,再通过各个目标第一数据所属的类别,确定目标第二数据所属的类别,计算得到第二数据集的M个第二数据所属的类别,将各个第二数据所属的类别形成向量,得到第一归属向量。由于第一数据与第二数据可随机生成,且目标第二数据的个数K是与客户端约定的值,因此,能够使得生成的第一归属向量具备动态随机性以及包含与客户端的对应性,以保证由第一归属向量生成的服务端密码的动态随机性,保证服务端的数据库的安全。
如图4所示,在一个实施例中,提供一种数据库安全认证方法,可应用于服务端,该方法可包括以下步骤:
步骤402,接收客户端针对目标访问端口发送的访问请求。
步骤402的描述可参照上述实施例中的步骤202的相关描述,在此不再赘述。
步骤404,获取第一服务端标识。
第一服务端标识用于对访问请求中的第一客户端标识进行验证,可由第二服务端标识和时间戳生成。第二服务端标识指的是服务端与客户端设置的客户端身份认证码,用于服务端认证客户端的身份合法性。时间戳指的是服务端从客户端发送的针对目标访问端口的访问请求中获取的时间戳,用于服务端认证访问请求的有效性,时间戳一般被封装在客户端发送的访问请求的数据报报头。
在一些实施例中,服务端可通过第二服务端标识和时间戳,生成第一服务端标识。在一些具体地实施例中,服务端可获取第二服务端标识SID;将第二服务端标识SID与时间戳T进行组合,得到第一组合数据;对第一组合数据进行哈希计算,得到第一服务端标识SIDT。
步骤406,将第一服务端标识与第一客户端标识进行比对。
在客户端需要通过目标访问端口访问服务端的数据库时,可将第一客户端标识封装在访问请求中,发送给服务端。
在一些实施例中,服务端可通过使用比较函数对第一服务端标识与第一客户端标识进行比对。可采用的函数包括但不限于:c语音的strcmp()函数等。还可使用运算符比较第一服务端标识与第一客户端标识。可采用的运算符包括但不限于:“==”、“is”等。具体地,服务端可使用strcmp()函数对第一服务端标识与第一客户端标识进行对比的指令:strcmp(str1,str2),若返回结果为1,则表示两者一致;若返回结果为0,则表示两者不一致;其中,str1表示第一服务端标识,str2表示第一客户端标识。
步骤408,若第一服务端标识与第一客户端标识一致,则生成第一数据集及第二数据集。
若第一服务端标识与第一客户端标识一致,则说明服务端对客户端身份认证成功,该客户端属于服务端的合法客户端,服务端才为该客户端针对目标访问端口动态生成服务端密码,并接收该客户端的TCP报文。若第一服务端标识与第一客户端标识不一致,则说明该客户端不属于服务端的合法客户端,则不为该客户端针对目标访问端口动态生成服务端密码,并拒绝该客户端的报文交换。
步骤410,对第一数据集中的,N个第一数据进行分类,得到第一分类结果;第一分类结果包括多个类别。
步骤412,分别计算第二数据集中的各个第二数据与N个第一数据之间的第一距离。
步骤414,根据各个第二数据对应的N个第一距离及第一分类结果,确定第二数据集对应的第一归属向量。
步骤416,根据第一归属向量生成服务端密码。
步骤418,将第一数据集及第二数据集发送给客户端,以使客户端对第一数据集中的N个第一数据进行分类,得到第二分类结果,分别计算第二数据集中的各个第二数据与N个第一数据之间的第二距离,根据各个第二数据对应的N个第二距离及第二分类结果,确定第二数据集对应的第二归属向量,并根据第二归属向量生成客户端密码。
步骤420,接收客户端发送的客户端密码。
步骤422,若客户端密码与服务端密码一致,则客户端通过目标访问端口访问数据库。
步骤410到步骤422的描述可参照上述实施例中的步骤206到步骤218的相关描述,在此不再赘述。
步骤424,对目标访问端口的访问流量进行监控。
在一些实施例中,服务端允许客户端通过目标访问端口访问数据库之后,为了避免客户端结束访问数据库后,持续开放的目标访问端口被入侵者检测到,并通过目标访问端口入侵获取数据库数据。因此服务端在允许客户端通过目标访问端口访问数据库之后,可通过对目标访问端口的访问流量进行监控,检测客户端是否还在访问数据库。
在一些实施例中,服务端可使用网络监控工具对标访问端口的访问流量进行监控。可采用的网络监控工具包括但不限于:NetFlow分析仪、数据包分析器、网络性能仪表板等。
步骤426,若检测到目标访问端口在目标时间段内的访问流量满足端口关闭规则,则关闭目标访问端口,并删除目标访问端口对应的服务端密码。
端口关闭规则用于服务端判断是否关闭目标访问端口。目标时间段用于协助服务端判断是否存在满足宽阔关闭规则的目标访问端口。端口关闭规则可包括但不限于:目标访问端口在目标时间段内无访问流量;目标访问端口在目标时间段内的访问流量总值超出流量总阈值,其中,流量总阈值指的是服务端允许目标访问端口在目标时间段内的访问流量总值的最大值,用于限制目标时间段内的访问流量总值;目标访问端口在目标时间段内每分钟的访问流量的最大值超出单位流量阈值等,其中,单位流量阈值用于限制单位时间内目标访问端口的访问流量。
在一些实施例中,服务端打开目标访问端口允许客户端访问数据库后,持续对目标访问端口的访问流量进行监控,以检测客户端的访问情况,若服务端检测到目标访问端口在目标时间段内的访问流量满足端口关闭规则,即客户端结束访问数据库,则服务端可使用命令关闭目标访问端口,并删除目标访问端口对应的允许客户端访问的服务端密码,下次若该客户端需要再次访问数据库,则该客户端需要重新向服务端发送针对目标访问端口的访问请求,使得服务端重新生成新的服务端密码。
在本申请实施例中,服务端对客户端的第一客户端标识验证客户端身份的合法性,在客户端身份合法的情况下,才针对客户端发送的访问请求生成服务端密码,并且在允许客户端通过目标服务端口访问数据库之后,持续对目标访问端口的流量进行监控,减小目标服务端口被入侵的可能性,以提高服务端数据库的安全性。
如图5所示,在一个实施例中,提供一种数据库安全认证方法,可应用于客户端,该方法可包括以下步骤:
步骤502,向服务端发送针对目标访问端口的访问请求。
其中,访问请求是一种UDP数据报,访问请求用于指示服务端生成第一数据集及第二数据集,第一数据集包括N个第一数据,第二数据集包括M个第二数据,N和M均为正整数,以及指示服务端对第一数据集中的N个第一数据进行分类,得到第一分类结果,分别计算第二数据集中的各个第二数据与N个第一数据之间的第一距离,根据各个第二数据对应的N个第一距离及第一分类结果,确定第二数据集对应的第一归属向量,并根据第一归属向量生成服务端密码。
在一些实施例中,客户端可获取第二客户端标识CID;将第二客户端标识CID与时间戳T进行组合,得到第二组合数据;对第二组合数据进行哈希计算,得到第一客户端标识CIDT,再根据第一客户端标识CIDT和时间戳T,生成访问请求。在一些实施例中,客户端将第一客户端标识CIDT与时间戳T一起被封装在访问请求的数据报中,生成访问请求,并发送给服务端。
在一些实施例中,由于服务端关闭服务端口,并开启SPA服务,因此,客户端需要通过生成访问请求发送到服务端的指定敲门端口,使得服务端能够根据访问请求,验证客户端身份;一般情况下,与SPA服务对应的服务端指定敲门端口为UDP端口,因此客户端生成的访问请求为UDP数据报。
步骤504,接收服务端发送的第一数据集及第二数据集。
在服务端对第一数据集及第二数据集进行处理,生成服务端密码之后,服务端将第一数据集及第二数据集发送到客户端,该第一数据集及第二数据集用于是客户端生成客户端密码。
在一些实施例中,客户端接收服务端发送的第一数据集及第二数据集,用于生成客户端密码,以使得与服务端密码一致,使得能够通过目标访问端口,获取数据库服务。
步骤506,对第一数据集中的N个第一数据进行分类,得到第二分类结果;第二分类结果包括多个类别。
步骤508,分别计算第二数据集中的各个第二数据与N个第一数据之间的第二距离。
步骤510,根据各个第二数据对应的N个第二距离及第二分类结果,确定第二数据集对应的第二归属向量;第二归属向量用于指示M个第二数据分别对应的类别。
步骤512,根据第二归属向量生成客户端密码。
需要说明的是,步骤506中客户端对第一数据集中的N个第一数据进行分类,得到第二分类结果的方法与服务端得到第一分类结果的方式一致,可参考上述各实施例中服务端得到第一分类结果的相关描述;步骤508中客户端各个第二数据与N个第一数据之间的第二距离的计算方法与服务端计算各个第一距离的方式一致,可参考上述各实施例中服务端计算各个第一距离的相关描述;步骤510中客户端根据各个第二数据对应的N个第二距离及第二分类结果,确定第二数据集对应的第二归属向量的方法与服务端确定第二归属向量的方式一致,可参考上述各实施例中服务端确定第二归属向量的相关描述;步骤512中客户端根据第二归属向量生成客户端密码的方法与服务端根据第一归属向量生成服务端密码的方法一致,可参考上述各实施例中服务端生成服务端密码的相关描述;在此不再重复赘述步骤506到步骤512。
步骤514,将客户端密码发送给服务端,以使服务端在确定客户端密码与服务端密码一致的情况下,允许客户端通过目标访问端口访问数据库。
在一些实施例中,客户端将生成的客户端密码发送给服务端,使得服务端判断客户端密码与服务端密码是否一致,以判断是否为客户端提供数据库服务。
在一些实施例中,若服务端确定客户端密码与服务端密码一致,并允许客户端对目标访问端口进行数据传输,则客户端能够继续向服务端发送数据报,并能够接收到服务端的反馈,能够通过目标访问端口访问服务端对应的数据库。若客户端无法收到来自服务端的数据反馈,则说明服务端确定客户端密码与服务端密码不一致,则客户端需要重新开始执行步骤502。
在本申请实施例中,客户端针对目标访问端口向服务端发送访问请求,并根据服务端发送的第一数据集和第二数据集,使用与服务端生成服务端密码相同的方式生成客户端密码,并由服务端对客户端密码进行检测,以此使服务端能够允许客户端通过目标访问端口访问服务端对应的数据库。客户端使用访问请求向服务端请求开启目标服务端口,即在客户端请求之前目标服务端口处于关闭状态,服务端的数据库处于隐身状态,无法被客户端检测,只能通过目标访问端口获取数据库服务;客户端使用与服务端生成服务端密码相同的方式生成客户端密码,使得密码的破解更加艰难,且传输的是第一数据集和第二数据集,能够有效防止密码的泄漏,再次提高密码被破解的难度,从而有效提高数据库的安全性。
如图6所示,在一个实施例中,提供一种数据库安全认证装置600,可应用于上述的服务端,该服务端具备数据库服务。该数据库安全认证装置600,可包括接收请求模块610、数据集生成模块620、分类模块630、密码生成模块640、数据集发送模块650、接收模块660及验证模块670。
接收请求模块610,用于接收客户端针对目标访问端口发送的访问请求。
数据集生成模块620,用于根据访问请求,生成第一数据集及第二数据集;第一数据集包括N个第一数据,第二数据集包括M个第二数据,N和M均为正整数。
分类模块630,用于对第一数据集中的N个第一数据进行分类,得到第一分类结果;第一分类结果包括多个类别;以及用于分别计算第二数据集中的各个第二数据与N个第一数据之间的第一距离;根据各个第二数据对应的N个第一距离及第一分类结果,确定第二数据集对应的第一归属向量;第一归属向量用于指示M个第二数据分别对应的类别。
密码生成模块640,用于根据第一归属向量生成服务端密码。
数据集发送模块650,用于将第一数据集及第二数据集发送给客户端,以使客户端对第一数据集中的N个第一数据进行分类,得到第二分类结果,分别计算第二数据集中的各个第二数据与N个第一数据之间的第二距离,根据各个第二数据对应的N个第二距离及第二分类结果,确定第二数据集对应的第二归属向量,并根据第二归属向量生成客户端密码。
接收模块660,用于接收客户端发送的客户端密码。
验证模块670,用于若客户端密码与服务端密码一致,则允许客户端通过目标访问端口访问数据库。
在一些实施例中,第一分类结果包括各个第一数据与多个类别之间的映射关系。
分类模块630,还用于根据目标第二数据对应的N个第一距离,从N个第一数据中确定K个目标第一数据;目标第二数据为任一第二数据;根据映射关系,确定K个目标第一数据分别对应的类别;根据K个目标第一数据分别对应的类别,确定目标第二数据所属的类别;根据各个第二数据所属的类别,生成第一归属向量。
可选地,密码生成模块640,还用于按照第一距离从小到大的顺序,对目标第二数据对应的N个第一距离进行排序,并选择排列在前K个的第一距离对应的第一数据作为目标第一数据;以及用于确定K个目标第一数据分别对应的类别的出现概率,得到出现概率最大的类别;将出现概率最大的类别作为目标第二数据所属的类别。
作为一种可选地实施例,访问请求包括客户端对应的第一客户端标识。数据库安全认证装置600还包括标识验证模块。
标识验证模块,用于获取第一服务端标识;将第一服务端标识与第一客户端标识进行比对。
数据集生成模块620,还用于若第一服务端标识与第一客户端标识一致,生成第一数据集及第二数据集。
在一些实施例中,访问请求还包括时间戳;标识验证模块,还用于获取第二服务端标识;将第二服务端标识与时间戳进行组合,得到第一组合数据;对第一组合数据进行哈希计算,得到第一服务端标识。
在一些实施例中,数据库安全认证装置600还包括流量监控模块。
流量监控模块,用于对目标访问端口的访问流量进行监控;若检测到目标访问端口在目标时间段内的访问流量满足端口关闭规则,则关闭目标访问端口,并删除目标访问端口对应的服务端密码。
在本申请实施例中,服务端在接收到客户端针对目标访问端口发送的访问请求,才为该客户端动态生成对应的服务端密码,能够避免固定密码被猜测导致数据库被入侵;并使用生成的第一数据集及第二数据集的分类结果生成服务端密码,并只将第一数据集及第二数据集发送给客户端,再判断客户端生成的客户端密码与服务端密码是否一致,能够有效防止密码的泄漏,以及提高密码被破解的难度,从而有效提高数据库的安全性。
如图7所示,在一个实施例中,提供一种数据库安全认证装置700,可应用于上述的客户端。该数据库安全认证装置700,可包括请求发送模块710、数据集接收模块720、分类模块730、密码生成模块740及密码发送模块750。
请求发送模块710,用于向服务端发送针对目标访问端口的访问请求;访问请求用于指示服务端生成第一数据集及第二数据集,第一数据集包括N个第一数据,第二数据集包括M个第二数据,N和M均为正整数,以及指示服务端对第一数据集中的N个第一数据进行分类,得到第一分类结果,分别计算第二数据集中的各个第二数据与N个第一数据之间的第一距离,根据各个第二数据对应的N个第一距离及第一分类结果,确定第二数据集对应的第一归属向量,并根据第一归属向量生成服务端密码。
数据集接收模块720,用于接收服务端发送的第一数据集及第二数据集。
分类模块730,用于对第一数据集中的N个第一数据进行分类,得到第二分类结果;第二分类结果包括多个类别;以及用于分别计算第二数据集中的各个第二数据与N个第一数据之间的第二距离;根据各个第二数据对应的N个第二距离及第二分类结果,确定第二数据集对应的第二归属向量;第二归属向量用于指示M个第二数据分别对应的类别。
密码生成模块740,用于根据第二归属向量生成客户端密码。
密码发送模块750,用于将客户端密码发送给服务端,以使服务端在确定客户端密码与服务端密码一致的情况下,允许客户端通过目标访问端口访问数据库。
在一些实施例中,第一分类结果包括各个第一数据与多个类别之间的映射关系。
分类模块730,还用于根据目标第二数据对应的N个第二距离,从N个第一数据中确定K个目标第一数据;目标第二数据为任一第二数据;根据映射关系,确定K个目标第一数据分别对应的类别;根据K个目标第一数据分别对应的类别,确定目标第二数据所属的类别;根据各个第二数据所属的类别,生成第二归属向量。
可选地,密码生成模块740,还用于按照第二距离从小到大的顺序,对目标第二数据对应的N个第二距离进行排序,并选择排列在前K个的第二距离对应的第一数据作为目标第一数据;以及用于确定K个目标第一数据分别对应的类别的出现概率,得到出现概率最大的类别;将出现概率最大的类别作为目标第二数据所属的类别。
作为一种可选地实施例,访问请求包括客户端对应的第一客户端标识及时间戳。数据库安全认证装置700还包括生成请求模块。
生成请求模块,用于获取第二客户端标识;将第二客户端标识与时间戳进行组合,得到第二组合数据;对第二组合数据进行哈希计算,得到第一客户端标识,根据第一客户端标识和时间戳,生成访问请求。
在本申请实施例中,客户端针对目标访问端口向服务端发送访问请求,并根据服务端发送的第一数据集和第二数据集,使用与服务端生成服务端密码相同的方式生成客户端密码,并由服务端检测客户端密码与服务端密码是否一致,以此使服务端能够允许客户端通过目标访问端口访问服务端对应的数据库。客户端使用访问请求向服务端请求开启目标服务端口,即在客户端请求之前目标服务端口处于关闭状态,服务端的数据库处于隐身状态,无法被客户端检测,只能通过目标访问端口获取数据库服务;客户端使用与服务端生成服务端密码相同的方式生成客户端密码,使得密码的破解更加艰难,且传输的是第一数据集和第二数据集,能够有效防止密码的泄漏,再次提高密码被破解的难度,从而有效提高数据库的安全性。
图8为一个实施例中电子设备的结构框图。电子设备可以是手机、平板电脑、智能穿戴设备等设备。如图8所示,电子设备800可以包括一个或多个如下部件:处理器一810、与处理器一810耦合的存储器一820,其中存储器一820可存储有一个或多个计算机程序,一个或多个计算机程序可以被配置为由一个或多个处理器一810执行时实现如上所述的应用于服务端的方法。
处理器一810可以包括一个或者多个处理核。处理器一810利用各种接口和线路连接整个电子设备800内的各个部分,通过运行或执行存储在存储器一820内的指令、程序、代码集或指令集,以及调用存储在存储器一820内的数据,执行电子设备800的各种功能和处理数据。可选地,处理器一810可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable Logic Array,PLA)中的至少一种硬件形式来实现。处理器一810可集成中央处理器(Central Processing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器一810中,单独通过一块通信芯片进行实现。
存储器一820可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。存储器一820可用于存储指令、程序、代码、代码集或指令集。存储器一820可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现上述各个方法实施例的指令等。存储数据区还可以存储电子设备800在使用中所创建的数据等。
可以理解地,电子设备800可包括比上述结构框图中更多或更少的结构元件,例如,包括电源、输入按键、摄像头、扬声器、屏幕、RF(Radio Frequency,射频)电路、Wi-Fi(Wireless Fidelity,无线保真)模块、蓝牙模块、传感器等,还可在此不进行限定。
图9为一个实施例中电子设备的结构框图。电子设备可以是手机、平板电脑、智能穿戴设备等设备。如图9所示,电子设备900可以包括一个或多个如下部件:处理器二910、与处理器二910耦合的存储器二920,其中存储器二920可存储有一个或多个计算机程序,一个或多个计算机程序可以被配置为由一个或多个处理器二910执行时实现如上所述的应用于客户端的方法。
可选地,处理器二910可包括MCU(Microcontroller Unit,微控制单元)等。该电子设备900可包括比上述结构框图中更多或更少的结构元件,例如,还可包括电源模块、蓝牙模块等,在此不进行限定。
本申请实施例公开一种存储介质,其存储计算机程序,其中,该计算机程序被处理器执行时实现如上所述的应用于服务端的方法。
本申请实施例公开一种计算机程序产品,该计算机程序产品包括存储了计算机程序的非瞬时性存储介质,且该计算机程序可被处理器执行时实现如上所述的应用于服务端的方法。
本申请实施例公开一种存储介质,其存储计算机程序,其中,该计算机程序被处理器执行时实现如上所述的应用于客户端的方法。
本申请实施例公开一种计算机程序产品,该计算机程序产品包括存储了计算机程序的非瞬时性存储介质,且该计算机程序可被处理器执行时实现如上所述的应用于客户端的方法。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的计算机可读存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等。
如此处所使用的对存储器、存储、数据库或其它介质的任何引用可包括非易失性和/或易失性存储器。合适的非易失性存储器可包括ROM、可编程ROM(Programmable ROM,PROM)、可擦除PROM(Erasable PROM,EPROM)、电可擦除PROM( Electrically ErasablePROM,EEPROM)或闪存。易失性存储器可包括随机存取存储器(random access memory,RAM),它用作外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(Static RAM,SRAM)、动态RAM(Dynamic Random Access Memory,DRAM)、同步DRAM(synchronous DRAM,SDRAM)、双倍数据率SDRAM(Double Data Rate SDRAM,DDR SDRAM)、增强型SDRAM(Enhanced Synchronous DRAM,ESDRAM)、同步链路DRAM(Synchlink DRAM,SLDRAM)、存储器总线直接RAM(Rambus DRAM,RDRAM)及直接存储器总线动态RAM(DirectRambusDRAM,DRDRAM)。
应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定特征、结构或特性可以以任意适合的方式结合在一个或多个实施例中。本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在本申请的各种实施例中,应理解,上述各过程的序号的大小并不意味着执行顺序的必然先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
上述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物单元,即可位于一个地方,或者也可以分布到多个网络单元上。可根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本申请各实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
上述集成的单元若以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可获取的存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或者部分,可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干请求用以使得一台计算机设备(可以为个人计算机、服务器或者网络设备等,具体可以是计算机设备中的处理器)执行本申请的各个实施例上述方法的部分或全部步骤。
以上对本申请实施例公开的一种数据库安全认证方法、装置、电子设备及存储介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (11)

1.一种数据库安全认证方法,其特征在于,应用于服务端,所述方法包括:
接收客户端针对目标访问端口发送的访问请求;
根据所述访问请求,生成第一数据集及第二数据集;所述第一数据集包括N个第一数据,所述第二数据集包括M个第二数据,所述N和所述M均为正整数;
对所述第一数据集中的所述N个第一数据进行分类,得到第一分类结果;所述第一分类结果包括多个类别;
分别计算所述第二数据集中的各个所述第二数据与所述N个第一数据之间的第一距离;
根据各个所述第二数据对应的N个第一距离及所述第一分类结果,确定所述第二数据集对应的第一归属向量;所述第一归属向量用于指示所述M个第二数据分别对应的类别;
根据所述第一归属向量生成服务端密码;
将所述第一数据集及所述第二数据集发送给所述客户端,以使所述客户端对所述第一数据集中的所述N个第一数据进行分类,得到第二分类结果,分别计算所述第二数据集中的各个所述第二数据与所述N个第一数据之间的第二距离,根据各个所述第二数据对应的N个第二距离及所述第二分类结果,确定所述第二数据集对应的第二归属向量,并根据所述第二归属向量生成客户端密码;
接收所述客户端发送的所述客户端密码;
若所述客户端密码与所述服务端密码一致,则允许所述客户端通过所述目标访问端口访问数据库。
2.根据权利要求1所述的方法,其特征在于,所述第一分类结果包括各个所述第一数据与所述多个类别之间的映射关系;所述根据各个所述第二数据对应的N个第一距离及所述第一分类结果,确定所述第二数据集对应的第一归属向量,包括:
根据目标第二数据对应的N个第一距离,从所述N个第一数据中确定K个目标第一数据;所述目标第二数据为任一所述第二数据;
根据所述映射关系,确定所述K个目标第一数据分别对应的类别;
根据所述K个目标第一数据分别对应的类别,确定所述目标第二数据所属的类别;
根据各个所述第二数据所属的类别,生成第一归属向量。
3.根据权利要求2所述的方法,其特征在于,所述根据目标第二数据对应的N个第一距离,从所述N个第一数据中确定K个目标第一数据,包括:
按照第一距离从小到大的顺序,对所述目标第二数据对应的N个第一距离进行排序,并选择排列在前K个的第一距离对应的第一数据作为目标第一数据;
所述根据所述K个目标第一数据分别对应的类别,确定所述目标第二数据所属的类别,包括:
确定所述K个目标第一数据分别对应的类别的出现概率,得到出现概率最大的类别;
将所述出现概率最大的类别作为所述目标第二数据所属的类别。
4.根据权利要求1所述的方法,其特征在于,所述访问请求包括所述客户端对应的第一客户端标识;在所述生成第一数据集及第二数据集之前,所述方法还包括:
获取第一服务端标识;
将所述第一服务端标识与所述第一客户端标识进行比对;
若所述第一服务端标识与所述第一客户端标识一致,则执行所述生成第一数据集及第二数据集的步骤。
5.根据权利要求4所述的方法,其特征在于,所述访问请求还包括时间戳;所述获取第一服务端标识,包括:
获取第二服务端标识;
将所述第二服务端标识与所述时间戳进行组合,得到第一组合数据;
对所述第一组合数据进行哈希计算,得到第一服务端标识。
6.根据权利要求1所述的方法,其特征在于,在所述允许所述客户端通过所述目标访问端口访问数据库之后,所述方法还包括:
对所述目标访问端口的访问流量进行监控;
若检测到所述目标访问端口在目标时间段内的访问流量满足端口关闭规则,则关闭所述目标访问端口,并删除所述目标访问端口对应的服务端密码。
7.一种数据库安全认证方法,其特征在于,应用于客户端,所述方法包括:
向服务端发送针对目标访问端口的访问请求;所述访问请求用于指示所述服务端生成第一数据集及第二数据集,所述第一数据集包括N个第一数据,所述第二数据集包括M个第二数据,所述N和所述M均为正整数,以及指示所述服务端对所述第一数据集中的N个第一数据进行分类,得到第一分类结果,分别计算所述第二数据集中的各个所述第二数据与所述N个第一数据之间的第一距离,根据各个所述第二数据对应的N个第一距离及所述第一分类结果,确定所述第二数据集对应的第一归属向量,并根据所述第一归属向量生成服务端密码;
接收服务端发送的所述第一数据集及第二数据集;
对所述第一数据集中的所述N个第一数据进行分类,得到第二分类结果;所述第二分类结果包括多个类别;
分别计算所述第二数据集中的各个所述第二数据与所述N个第一数据之间的第二距离;
根据各个所述第二数据对应的N个第二距离及所述第二分类结果,确定所述第二数据集对应的第二归属向量;所述第二归属向量用于指示所述M个第二数据分别对应的类别;
根据所述第二归属向量生成客户端密码;
将所述客户端密码发送给所述服务端,以使所述服务端在确定所述客户端密码与所述服务端密码一致的情况下,允许所述客户端通过所述目标访问端口访问数据库。
8.一种数据库安全认证装置,其特征在于,应用于服务端,所述装置包括:
接收请求模块,用于接收客户端针对目标访问端口发送的访问请求;
数据集生成模块,用于根据所述访问请求,生成第一数据集及第二数据集;所述第一数据集包括N个第一数据,所述第二数据集包括M个第二数据,所述N和所述M均为正整数;
分类模块,用于对所述第一数据集中的所述N个第一数据进行分类,得到第一分类结果;所述第一分类结果包括多个类别;以及用于分别计算所述第二数据集中的各个所述第二数据与所述N个第一数据之间的第一距离;根据各个所述第二数据对应的N个第一距离及所述第一分类结果,确定所述第二数据集对应的第一归属向量;所述第一归属向量用于指示所述M个第二数据分别对应的类别;
密码生成模块,用于根据所述第一归属向量生成服务端密码;
数据集发送模块,用于将所述第一数据集及所述第二数据集发送给所述客户端,以使所述客户端对所述第一数据集中的所述N个第一数据进行分类,得到第二分类结果,分别计算所述第二数据集中的各个所述第二数据与所述N个第一数据之间的第二距离,根据各个所述第二数据对应的N个第二距离及所述第二分类结果,确定所述第二数据集对应的第二归属向量,并根据所述第二归属向量生成客户端密码;
接收模块,用于接收所述客户端发送的所述客户端密码;
验证模块,用于若所述客户端密码与所述服务端密码一致,则允许所述客户端通过所述目标访问端口访问数据库。
9.一种数据库安全认证装置,其特征在于,应用于客户端,所述装置包括:
请求发送模块,用于向服务端发送针对目标访问端口的访问请求;所述访问请求用于指示所述服务端生成第一数据集及第二数据集,所述第一数据集包括N个第一数据,所述第二数据集包括M个第二数据,所述N和所述M均为正整数,以及指示所述服务端对所述第一数据集中的N个第一数据进行分类,得到第一分类结果,分别计算所述第二数据集中的各个所述第二数据与所述N个第一数据之间的第一距离,根据各个所述第二数据对应的N个第一距离及所述第一分类结果,确定所述第二数据集对应的第一归属向量,并根据所述第一归属向量生成服务端密码;
数据集接收模块,用于接收服务端发送的所述第一数据集及第二数据集;
分类模块,用于对所述第一数据集中的所述N个第一数据进行分类,得到第二分类结果;所述第二分类结果包括多个类别;以及用于分别计算所述第二数据集中的各个所述第二数据与所述N个第一数据之间的第二距离;根据各个所述第二数据对应的N个第二距离及所述第二分类结果,确定所述第二数据集对应的第二归属向量;所述第二归属向量用于指示所述M个第二数据分别对应的类别;
密码生成模块,用于根据所述第二归属向量生成客户端密码;
密码发送模块,用于将所述客户端密码发送给所述服务端,以使所述服务端在确定所述客户端密码与所述服务端密码一致的情况下,允许所述客户端通过所述目标访问端口访问数据库。
10.一种电子设备,包括存储器及处理器,所述存储器中存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器实现如权利要求1至6任一项所述的方法,或者实现如权利要求7所述的方法。
11.一种存储介质,其特征在于,所述存储介质存储计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述的方法,或者实现如权利要求7所述的方法。
CN202311469774.4A 2023-11-07 2023-11-07 数据库安全认证方法、装置、电子设备和存储介质 Active CN117216802B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311469774.4A CN117216802B (zh) 2023-11-07 2023-11-07 数据库安全认证方法、装置、电子设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311469774.4A CN117216802B (zh) 2023-11-07 2023-11-07 数据库安全认证方法、装置、电子设备和存储介质

Publications (2)

Publication Number Publication Date
CN117216802A CN117216802A (zh) 2023-12-12
CN117216802B true CN117216802B (zh) 2024-02-27

Family

ID=89039266

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311469774.4A Active CN117216802B (zh) 2023-11-07 2023-11-07 数据库安全认证方法、装置、电子设备和存储介质

Country Status (1)

Country Link
CN (1) CN117216802B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111797159A (zh) * 2019-04-09 2020-10-20 国际商业机器公司 数据库中的信息管理和访问控制
CN111935094A (zh) * 2020-07-14 2020-11-13 北京金山云网络技术有限公司 数据库访问方法、装置、系统及计算机可读存储介质
CN114239015A (zh) * 2021-12-15 2022-03-25 成都飞机工业(集团)有限责任公司 数据的安全管理方法、装置、数据云平台以及存储介质
WO2023124958A1 (zh) * 2021-12-31 2023-07-06 中兴通讯股份有限公司 密钥更新方法、服务器、客户端及存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7134022B2 (en) * 2002-07-16 2006-11-07 Flyntz Terence T Multi-level and multi-category data labeling system
DE102008019103A1 (de) * 2008-04-16 2009-10-22 Siemens Aktiengesellschaft Verfahren und Vorrichtung zum Umschlüsseln bei einer verschlüsselungsbasierten Zugriffskontrolle auf eine Datenbank
US9558366B2 (en) * 2014-05-12 2017-01-31 Compugroup Medical Se Computer system for storing and retrieval of encrypted data items, client computer, computer program product and computer-implemented method

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111797159A (zh) * 2019-04-09 2020-10-20 国际商业机器公司 数据库中的信息管理和访问控制
CN111935094A (zh) * 2020-07-14 2020-11-13 北京金山云网络技术有限公司 数据库访问方法、装置、系统及计算机可读存储介质
CN114239015A (zh) * 2021-12-15 2022-03-25 成都飞机工业(集团)有限责任公司 数据的安全管理方法、装置、数据云平台以及存储介质
WO2023124958A1 (zh) * 2021-12-31 2023-07-06 中兴通讯股份有限公司 密钥更新方法、服务器、客户端及存储介质

Also Published As

Publication number Publication date
CN117216802A (zh) 2023-12-12

Similar Documents

Publication Publication Date Title
Kumar et al. TP2SF: A Trustworthy Privacy-Preserving Secured Framework for sustainable smart cities by leveraging blockchain and machine learning
Islabudeen et al. A smart approach for intrusion detection and prevention system in mobile ad hoc networks against security attacks
US10057269B1 (en) Systems and methods for device verification and authentication
Alipour et al. Wireless anomaly detection based on IEEE 802.11 behavior analysis
Guerber et al. Machine Learning and Software Defined Network to secure communications in a swarm of drones
CN112367338A (zh) 恶意请求检测方法及装置
Dong et al. MBTree: Detecting encryption RATs communication using malicious behavior tree
US7490237B1 (en) Systems and methods for caching in authentication systems
He et al. Detection of tor traffic hiding under obfs4 protocol based on two-level filtering
Ajayi et al. Detecting insider attacks in blockchain networks
Sharadqh et al. Hybrid chain: Blockchain enabled framework for bi-level intrusion detection and graph-based mitigation for security provisioning in edge assisted IoT environment
Ahmad et al. An efficient and secure key management with the extended convolutional neural network for intrusion detection in cloud storage
Shantha et al. Security analysis of hybrid one time password generation algorithm for IoT data
KR102665644B1 (ko) 인증을 위한 방법 및 그 장치
Ntizikira et al. Honey-block: Edge assisted ensemble learning model for intrusion detection and prevention using defense mechanism in IoT
CN112822176B (zh) 一种远程app身份认证方法
CN116018590A (zh) 动态私密性保护应用程序认证
CN117216802B (zh) 数据库安全认证方法、装置、电子设备和存储介质
Marwan et al. Leveraging artificial intelligence and mutual authentication to optimize content caching in edge data centers
Jain et al. A literature review on machine learning for cyber security issues
US20220343095A1 (en) Fingerprint-Based Device Authentication
CN115941292A (zh) 设备接入方法、装置、计算机设备和存储介质
US7761914B2 (en) Method and apparatus for facilitating adjustment of an audit state in a computing environment
RU2728506C2 (ru) Способ блокировки сетевых соединений
CN118174922B (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