CN111695152A - 一种基于安全代理的MySQL数据库防护方法 - Google Patents

一种基于安全代理的MySQL数据库防护方法 Download PDF

Info

Publication number
CN111695152A
CN111695152A CN202010459152.3A CN202010459152A CN111695152A CN 111695152 A CN111695152 A CN 111695152A CN 202010459152 A CN202010459152 A CN 202010459152A CN 111695152 A CN111695152 A CN 111695152A
Authority
CN
China
Prior art keywords
user
agent
authentication
sql
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.)
Granted
Application number
CN202010459152.3A
Other languages
English (en)
Other versions
CN111695152B (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.)
Southeast University
Original Assignee
Southeast University
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 Southeast University filed Critical Southeast University
Priority to CN202010459152.3A priority Critical patent/CN111695152B/zh
Publication of CN111695152A publication Critical patent/CN111695152A/zh
Application granted granted Critical
Publication of CN111695152B publication Critical patent/CN111695152B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • H04L63/0838Network architectures or network communication protocols for network security for authentication of entities using passwords using one-time-passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0884Network architectures or network communication protocols for network security for authentication of entities by delegation of authentication, e.g. a proxy authenticates an entity to be authenticated on behalf of this entity vis-à-vis an authentication entity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
    • H04L9/3228One-time or temporary data, i.e. information which is sent for every authentication or authorization, e.g. one-time-password, one-time-token or one-time-key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/082Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying multi-factor authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种基于安全代理的MySQL数据库防护方法,包括以下步骤:S1.用户发起注册请求,代理端初始化,用户根据代理端的证书的有效性决定是否继续注册,代理端根据注册结果决定是否允许用户注册;S2.注册成功的用户发起登录请求,代理端对用户进行双因子认证,若通过认证,允许用户执行SQL语句,否则,认证失败,客户端中止认证过程;S3.对于通过双因子认证的用户执行SQL命令,安全代理处理SQL语句,返回执行结果或拦截SQL语句。本发明采取安全代理技术,提供了MySQL数据库的安全防护机制,保障了MySQL数据库的安全。

Description

一种基于安全代理的MySQL数据库防护方法
技术领域
本发明涉及一种基于安全代理的MySQL数据库防护方法,属于信息安全技术领域。
背景技术
MySQL数据库面临的安全威胁主要来自于三个方面:第三方组件、数据库自身系统和人为因素。第三方组件和数据库自身系统的漏洞属于产品的缺陷,通常依赖于厂商和组件提供方发布补丁来修复。人为因素通常是数据库安全研究的重点。人为因素的安全性体现在身份认证和SQL语句执行上。
MySQL数据库使用身份认证技术来保证用户是数据库的合法使用者。用户通过输入口令来完成身份认证过程。在数据库的身份认证过程中,容易遭受以下三类安全攻击:①监听:非法用户通过网络监听来获取用户口令;②口令猜测:非法用户利用从系统中截获的用户信息,或是利用社会工程学获取的用户信息来猜测用户口令;③重放攻击:非法用户获得已通过认证的用户认证包,并将其再发送一次来达到欺骗系统的目的。
除了身份认证过程之外,MySQL数据库在SQL语句执行过程中也容易遭受威胁。这种威胁来自于SQL语句本身,包括SQL注入和SQL高危操作。SQL高危操作主要来自于数据库的合法使用者,比如恶意删除用户数据、非法操作导致数据库服务器宕机等。SQL注入是MySQL在SQL语句执行过程中容易遭受的另一安全威胁。即使目前已有许多针对SQL注入的防御方法,但是随着网络技术的不断发展,攻击手段也在不断进化。同时,程序员素质的参差不齐,安全意识和经验也各不一样,所以仍然会有许多系统存在着SQL注入漏洞。
因此,本领域的技术人员致力于开发一种基于安全代理的MySQL数据库防护方法,通过多重保护,为MySQL数据库提供全方位的安全。
发明内容
发明目的:本发明提供一种基于安全代理的MySQL数据库防护方法,该方法在以安全代理的方式提高MySQL数据库的安全性。
技术方案:本发明所述的一种基于安全代理的MySQL数据库防护方法,包括以下步骤:
S1.用户发起注册请求,代理端初始化,用户根据代理端的证书的有效性决定是否继续注册,代理端根据注册结果决定是否允许用户注册;
S2.注册成功的用户发起登录请求,代理端对用户进行双因子认证,若通过认证,允许用户执行SQL语句,否则,认证失败,客户端中止认证过程;
S3.对于通过双因子认证的用户执行SQL命令,安全代理处理SQL语句,返回执行结果或拦截SQL语句。
进一步地,步骤S1的具体方法如下:
S11.用户发起注册请求;
S12.代理端初始化,将代理端包含代理端公钥KPR的证书传输给客户端;
S13.客户端接收到代理端传输的证书后,验证证书的有效性,若证书无效,则终止认证过程;否则,客户端生成用于在注册和认证阶段和代理端通信的会话密钥KC,并使用代理端公钥KPR加密传输用户名username、密码哈希值SHA(password)、在注册和认证阶段和代理端通信的会话密钥KC和设备识别码deviceID;
S14.代理端使用代理端私钥KPS解密客户端消息得到用户名username、密码哈希值SHA(password)和在注册和认证阶段和代理端通信的会话密钥KC,将其存储至MySQL服务端,并将用户名username和二次哈希值SHA(SHA(password))存储至用户列表,使该用户为MySQL服务端合法用户;
S15.若服务端发现已存在该用户则向安全代理返回错误消息,否则返回成功消息表示存储成功;
S16.代理端根据服务端的返回信息,向客户端返回注册结果,若注册成功,则根据设备识别码deviceID生成一次性口令算法使用密钥KT,存储在代理端,然后使用在注册和认证阶段和代理端通信的会话密钥KC加密一次性口令算法使用密钥KT和起始时间戳T0并发送给客户端,客户端收到后使用在注册和认证阶段和代理端通信的会话密钥KC解密得到一次性口令算法使用密钥KT和起始时间戳T0并存储;
进一步地,步骤S2的具体方法如下:
S21.客户端发起登录请求,并发送代理端公钥KPR加密的随机数RNUM、用户名username、密码哈希值SHA(passwoed)和命令执行阶段的会话密钥KS
S22.代理端使用代理端私钥KPS解密客户端消息得到随机数、用户名和密码哈希值,并使用该用户的用户名向服务端发起查询请求,查询该用户的信息;
S23.服务端接收代理端的查询请求,返回该用户的用户名username、二次哈希值SHA(SHA(password))和在注册和认证阶段和代理端通信的会话密钥KC
S24.代理端接收服务端的查询结果,进行密码校验,若密码一致,则返回消息要求客户端输入一次性口令,否则返回认证失败,同时,向客户端返回使用命令执行阶段的会话密钥KS加密的随机数RNUM,返回的整个消息使用在注册和认证阶段和代理端通信的会话密钥KC加密;
S25.客户端使用在注册和认证阶段和代理端通信的会话密钥KC解密代理端的数据,获得消息和加密的RNUM,使用命令执行阶段的会话密钥KS解密得到随机数RNUM′与加密的随机数RNUM比较,若不一致则停止认证过程;若一致,则根据下列公式计算一次性口令TOTP:
TOTP=HOTP(KT,T)
其中HMAC、HOTP和T为计算使用的中间函数与参数:
HOTP(K,C)=Truncate(HMAC(K,C))mod 10d
HMAC(K,m)=H((K′XOR opad)||H((K′XOR ipad)||m))
Figure BDA0002509359440000031
式中K表示所使用的密钥,m表示要加密的消息,K′表示当使用SHA-1、MD5等散列函数而K长度不足时在K尾部补0后得到的值,XOR表示异或运算,ipad和opad分别表示内外层HASH填充值,C表示输入的参数值,Truncate表示将HMAC值转换为32位无符号整数的函数,d表示HOTP口令的位数,T表示时间计数器值,用于表示当前的时间戳,floor表示向下取整函数,unixtime为时间戳函数,now表示当前时间,T0表示约定的起始时间戳,TX表示哈希值的有效期,KT表示一次性口令算法所使用的密钥。
同时,客户端生成用于下一次认证过程客户端与服务端的会话密钥K′C用于下一次认证,然后发送使用代理端公钥KPR加密的一次性口令TOTP和用于下一次认证过程客户端与服务端的会话密钥K′C至代理端;
S26.代理端根据步骤S25.中的公式和下列公式计算当前时间前后各三个共计七个一次性口令:
Figure BDA0002509359440000032
式中T表示时间计数器值,用于表示当前的时间戳,floor表示向下取整函数,unixtime为时间戳函数,now表示当前时间,T0表示约定的起始时间戳,TX表示哈希值的有效期,offset表示当前时间漂移值。
并与客户端发送的一次性口令TOTP逐一比对,若存在一致的一次性口令,则更新时间漂移值offset、在注册和认证阶段和代理端通信的会话密钥KC,并返回认证成功;否则,返回认证失败,并记录错误次数,当达到错误次数的阈值时,禁止该用户登录。
进一步地,步骤S3的具体方法如下:
S31.将主机IP与IP地址黑名单中的IP地址进行匹配,如果匹配上,则丢弃该来源所有请求,若没有匹配上,则转步骤S32;
S32.预处理SQL语句;
S33.判断字符串的长度sLen是否合法,若sLen=0则拦截该查询,否则转步骤S34;
S34.计算SQL语句特征码:初始化sql_state变量,该变量包含tokenvec、fingerprint,tokenvec是一个对象数组,存储SQL语句中每一个字符对应的类型type、长度len和值val,fingerprint变量存储的值即为最终生成的特征码值;然后,执行sqli_fingerprint函数,对SQL语句进行词法分析和语法分析,根据SQL语句中每一个字符的类型给sql_state.tokenvec赋值;再根据词法与语法分析转换表,将SQL语句转换为特征码,并记录在变量sql_state.fingerprint中;最后,执行sqli_fold函数,对特征码进行折叠,最终生成5位SQL特征码,覆盖变量sql_state_fingerprint;
S35.将sql_state.fingerprint的值与特征库中存储的SQL注入特征语句进行比对,若存在该指纹,则拦截该语句,否则转步骤S36;
S36.将SQL语句与SQL黑名单中的语句一一比对,若匹配成功,则拦截该语句,否则,放行该语句并返回执行结果。
有益效果:
相对于现有技术,本发明具有以下优点:
1.结合安全代理和双因子认证技术,增强了MySQL数据库身份认证的安全性,能够有效抵御身份认证过程中的口令猜测攻击、重放攻击等安全攻击;
2.使用SQL特征库以及SQL黑名单过滤SQL语句,增强了MySQL数据库在SQL语句执行过程中的安全性,能够有效过滤SQL注入语句和SQL高危操作。
附图说明
图1为本发明具体实施方式的流程图。
图2为主机IP地址黑名单过滤流程。
图3为双因子认证过程。
图4为SQL语句过滤流程。
具体实施方式
下面将结合附图对本发明作进一步描述。
图1描述了本发明具体执行步骤。
本发明所述的一种基于安全代理的MySQL数据库防护方法,包括以下步骤:
S1.用户发起注册请求,代理端初始化,用户根据代理端的证书的有效性决定是否继续注册,代理端根据注册结果决定是否允许用户注册;
S2.注册成功的用户发起登录请求,代理端对用户进行双因子认证,若通过认证,允许用户执行SQL语句,否则,认证失败,客户端中止认证过程;
S3.对于通过双因子认证的用户执行SQL命令,安全代理处理SQL语句,返回执行结果或拦截SQL语句。
非法用户在对MySQL进行攻击时,该用户的IP对数据库端口的访问频率会很高。建立IP地址黑名单来过滤一些有着异常行为的主机,这能够对可能存在的攻击行为进行初步过滤。代理识别数据包中的主机IP地址,若该主机IP存在于管理员配置的主机IP地址黑名单中,则丢弃该来源的数据包。管理员通过修改配置文件来进行主机IP地址黑名单的管理。
具体执行过程如图2所示。
步骤S1的具体方法如下:
S11.用户发起注册请求;
S12.代理端初始化,将代理端包含代理端公钥KPR的证书传输给客户端;
S13.客户端接收到代理端传输的证书后,验证证书的有效性,若证书无效,则终止认证过程;否则,客户端生成用于在注册和认证阶段和代理端通信的会话密钥KC,并使用代理端公钥KPR加密传输用户名username、密码哈希值SHA(password)、在注册和认证阶段和代理端通信的会话密钥KC和设备识别码deviceID;
S14.代理端使用代理端私钥KPS解密客户端消息得到用户名username、密码哈希值SHA(password)和在注册和认证阶段和代理端通信的会话密钥KC,将其存储至MySQL服务端,并将用户名username和二次哈希值SHA(SHA(password))存储至用户列表,使该用户为MySQL服务端合法用户;
S15.若服务端发现已存在该用户则向安全代理返回错误消息,否则返回成功消息表示存储成功;
S16.代理端根据服务端的返回信息,向客户端返回注册结果,若注册成功,则根据设备识别码deviceID生成一次性口令算法使用密钥KT,存储在代理端,然后使用在注册和认证阶段和代理端通信的会话密钥KC加密一次性口令算法使用密钥KT和起始时间戳T0并发送给客户端,客户端收到后使用在注册和认证阶段和代理端通信的会话密钥KC解密得到一次性口令算法使用密钥KT和起始时间戳T0并存储;
双因子认证的流程如图3所示,具体认证步骤如下:
S21.客户端发起登录请求,并发送代理端公钥KPR加密的随机数RNUM、用户名username、密码哈希值SHA(password)和命令执行阶段的会话密钥KS
S22.代理端使用代理端私钥KPS解密客户端消息得到随机数、用户名和密码哈希值,并使用该用户的用户名向服务端发起查询请求,查询该用户的信息;
S23.服务端接收代理端的查询请求,返回该用户的用户名username、二次哈希值SHA(SHA(password))和在注册和认证阶段和代理端通信的会话密钥KC
S24.代理端接收服务端的查询结果,进行密码校验,若密码一致,则返回消息要求客户端输入一次性口令,否则返回认证失败,同时,向客户端返回使用命令执行阶段的会话密钥KS加密的随机数RNUM,返回的整个消息使用在注册和认证阶段和代理端通信的会话密钥KC加密;
S25.客户端使用在注册和认证阶段和代理端通信的会话密钥KC解密代理端的数据,获得消息和加密的RNUM,使用命令执行阶段的会话密钥KS解密得到随机数RNUM′与加密的随机数RNUM比较,若不一致则停止认证过程;若一致,则根据下列公式计算一次性口令TOTP:
TOTP=HOTP(KT,T)
其中HMAC、HOTP和T为计算使用的中间函数与参数:
HOTP(K,C)=Truncate(HMAC(K,C))mod 10d
HMAC(K,m)=H((K′XOR opad)||H((K′XOR ipad)||m))
Figure BDA0002509359440000061
式中K表示所使用的密钥,m表示要加密的消息,K′表示当使用SHA-1、MD5等散列函数而K长度不足时在K尾部补0后得到的值,XOR表示异或运算,ipad和opad分别表示内外层HASH填充值,C表示输入的参数值,Truncate表示将HMAC值转换为32位无符号整数的函数,d表示HOTP口令的位数,T表示时间计数器值,用于表示当前的时间戳,floor表示向下取整函数,unixtime为时间戳函数,now表示当前时间,T0表示约定的起始时间戳,TX表示哈希值的有效期,KT表示一次性口令算法所使用的密钥。
同时,客户端生成用于下一次认证过程客户端与服务端的会话密钥K′C用于下一次认证,然后发送使用代理端公钥KPR加密的一次性口令TOTP和用于下一次认证过程客户端与服务端的会话密钥K′C至代理端;
S26.代理端根据步骤S25.中的公式和下列公式计算当前时间前后各三个共计七个一次性口令:
Figure BDA0002509359440000062
式中T表示时间计数器值,用于表示当前的时间戳,floor表示向下取整函数,unixtime为时间戳函数,now表示当前时间,T0表示约定的起始时间戳,TX表示哈希值的有效期,offset表示当前时间漂移值。
并与客户端发送的一次性口令TOTP逐一比对,若存在一致的一次性口令,则更新时间漂移值offset、在注册和认证阶段和代理端通信的会话密钥KC,并返回认证成功;否则,返回认证失败,并记录错误次数,当达到错误次数的阈值时,禁止该用户登录。
SQL语句过滤流程如图4所示:
S31.将主机IP与IP地址黑名单中的IP地址进行匹配,如果匹配上,则丢弃该来源所有请求,若没有匹配上,则转步骤S32;
S32.预处理SQL语句;
S33.判断字符串的长度sLen是否合法,若sLen=0则拦截该查询,否则转步骤S34;
S34.计算SQL语句特征码:初始化sql_state变量,该变量包含tokenvec、fingerprint,tokenvec是一个对象数组,存储SQL语句中每一个字符对应的类型type、长度len和值val,fingerprint变量存储的值即为最终生成的特征码值;然后,执行sqli_fingerprint函数,对SQL语句进行词法分析和语法分析,根据SQL语句中每一个字符的类型给sql_state.tokenvec赋值;再根据词法与语法分析转换表,将SQL语句转换为特征码,并记录在变量sql_state.fingerprint中;最后,执行sqli_fold函数,对特征码进行折叠,最终生成5位SQL特征码,覆盖变量sql_state_fingerprint;
S35.将sql_state.fingerprint的值与特征库中存储的SQL注入特征语句进行比对,若存在该指纹,则拦截该语句,否则转步骤S36;
S36.将SQL语句与SQL黑名单中的语句一一比对,若匹配成功,则拦截该语句,否则,放行该语句并返回执行结果。
SQL黑名单基于SQL注入过滤中使用的特征提取算法,维护一张SQL语句黑名单,该黑名单可以是数据库系统的管理员手动添加具体的SQL语句模板。同时,考虑到数据库运行效率以及敏感数据泄漏的问题,对于执行时间过长以及查询频率过高的SQL语句也需要加入黑名单。

Claims (4)

1.一种基于安全代理的MySQL数据库防护方法,其特征在于,该方法包括以下步骤:
S1.用户发起注册请求,代理端初始化,用户根据代理端的证书的有效性决定是否继续注册,代理端根据注册结果决定是否允许用户注册;
S2.注册成功的用户发起登录请求,代理端对用户进行双因子认证,若通过认证,允许用户执行SQL语句,否则,认证失败,客户端中止认证过程;
S3.对于通过双因子认证的用户执行SQL命令,安全代理处理SQL语句,返回执行结果或拦截SQL语句。
2.根据权利要求1所述的基于安全代理的MySQL数据库防护方法,其特征在于,步骤S1的具体方法如下:
S11.用户发起注册请求;
S12.代理端初始化,将代理端包含代理端公钥KPR的证书传输给客户端;
S13.客户端接收到代理端传输的证书后,验证证书的有效性,若证书无效,则终止认证过程;否则,客户端生成用于在注册和认证阶段和代理端通信的会话密钥KC,并使用代理端公钥KPR加密传输用户名username、密码哈希值SHA(password)、在注册和认证阶段和代理端通信的会话密钥KC和设备识别码deviceID;
S14.代理端使用代理端私钥KPS解密客户端消息得到用户名username、密码哈希值SHA(password)和在注册和认证阶段和代理端通信的会话密钥KC,将其存储至MySQL服务端,并将用户名username和二次哈希值SHA(SHA(password))存储至用户列表,使该用户为MySQL服务端合法用户;
S15.若服务端发现已存在该用户则向安全代理返回错误消息,否则返回成功消息表示存储成功;
S16.代理端根据服务端的返回信息,向客户端返回注册结果,若注册成功,则根据设备识别码deviceID生成一次性口令算法使用密钥KT,存储在代理端,然后使用在注册和认证阶段和代理端通信的会话密钥KC加密一次性口令算法使用密钥KT和起始时间戳T0并发送给客户端,客户端收到后使用在注册和认证阶段和代理端通信的会话密钥KC解密得到一次性口令算法使用密钥KT和起始时间戳T0并存储。
3.根据权利要求1所述的基于安全代理的MySQL数据库防护方法,其特征在于,步骤S2的具体方法如下:
S21.客户端发起登录请求,并发送代理端公钥KPR加密的随机数RNUM、用户名username、密码哈希值SHA(password)和命令执行阶段的会话密钥KS
S22.代理端使用代理端私钥KPS解密客户端消息得到随机数、用户名和密码哈希值,并使用该用户的用户名向服务端发起查询请求,查询该用户的信息;
S23.服务端接收代理端的查询请求,返回该用户的用户名username、二次哈希值SHA(SHA(password))和在注册和认证阶段和代理端通信的会话密钥KC
S24.代理端接收服务端的查询结果,进行密码校验,若密码一致,则返回消息要求客户端输入一次性口令,否则返回认证失败,同时,向客户端返回使用命令执行阶段的会话密钥KS加密的随机数RNUM,返回的整个消息使用在注册和认证阶段和代理端通信的会话密钥KC加密;
S25.客户端使用在注册和认证阶段和代理端通信的会话密钥KC解密代理端的数据,获得消息和加密的RNUM,使用命令执行阶段的会话密钥KS解密得到随机数RNUM′与加密的随机数RNUM比较,若不一致则停止认证过程;若一致,则根据下列公式计算一次性口令TOTP:
TOTP=HOTP(KT,T)
其中HMAC、HOTP和T为计算使用的中间函数与参数:
HOTP(K,C)=Truncate(HMAC(K,C))mod 10d
HMAC(K,m)=H((K′XOR opad)||H((K′XOR ipad)||m))
Figure FDA0002509359430000021
式中K表示所使用的密钥,m表示要加密的消息,K′表示当使用SHA-1、MD5等散列函数而K长度不足时在K尾部补0后得到的值,XOR表示异或运算,ipad和opad分别表示内外层HASH填充值,C表示输入的参数值,Truncate表示将HMAC值转换为32位无符号整数的函数,d表示HOTP口令的位数,T表示时间计数器值,用于表示当前的时间戳,表示向下取整函数,unixtime为时间戳函数,now表示当前时间,T0表示约定的起始时间戳,TX表示哈希值的有效期,KT表示一次性口令算法所使用的密钥。
同时,客户端生成用于下一次认证过程客户端与服务端的会话密钥K′C用于下一次认证,然后发送使用代理端公钥KPR加密的一次性口令TOTP和用于下一次认证过程客户端与服务端的会话密钥K′C至代理端;
S26.代理端根据步骤S25.中的公式和下列公式计算当前时间前后各三个共计七个一次性口令:
Figure FDA0002509359430000022
式中T表示时间计数器值,用于表示当前的时间戳,floor表示向下取整函数,unixtime为时间戳函数,now表示当前时间,T0表示约定的起始时间戳,TX表示哈希值的有效期,offset表示当前时间漂移值。
并与客户端发送的一次性口令TOTP逐一比对,若存在一致的一次性口令,则更新时间漂移值offset、在注册和认证阶段和代理端通信的会话密钥KC,并返回认证成功;否则,返回认证失败,并记录错误次数,当达到错误次数的阈值时,禁止该用户登录。
4.根据权利要求1所述的基于安全代理的MySQL数据库防护方法,其特征在于,步骤S3的具体方法如下:
S31.将主机IP与IP地址黑名单中的IP地址进行匹配,如果匹配上,则丢弃该来源所有请求,若没有匹配上,则转步骤S32;
S32.预处理SQL语句;
S33.判断字符串的长度sLen是否合法,若sLen=0则拦截该查询,否则转步骤S34;
S34.计算SQL语句特征码:初始化sql_state变量,该变量包含tokenvec、fingerprint,tokenvec是一个对象数组,存储SQL语句中每一个字符对应的类型type、长度len和值val,fingerprint变量存储的值即为最终生成的特征码值;然后,执行sqli_fingerprint函数,对SQL语句进行词法分析和语法分析,根据SQL语句中每一个字符的类型给sql_state.tokenvec赋值;再根据词法与语法分析转换表,将SQL语句转换为特征码,并记录在变量sql_state.fingerprint中;最后,执行sqli_fold函数,对特征码进行折叠,最终生成5位SQL特征码,覆盖变量sql_state_fingerprint;
S35.将sql_state.fingerprint的值与特征库中存储的SQL注入特征语句进行比对,若存在该指纹,则拦截该语句,否则转步骤S36;
S36.将SQL语句与SQL黑名单中的语句一一比对,若匹配成功,则拦截该语句,否则,放行该语句并返回执行结果。
CN202010459152.3A 2020-05-26 2020-05-26 一种基于安全代理的MySQL数据库防护方法 Active CN111695152B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010459152.3A CN111695152B (zh) 2020-05-26 2020-05-26 一种基于安全代理的MySQL数据库防护方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010459152.3A CN111695152B (zh) 2020-05-26 2020-05-26 一种基于安全代理的MySQL数据库防护方法

Publications (2)

Publication Number Publication Date
CN111695152A true CN111695152A (zh) 2020-09-22
CN111695152B CN111695152B (zh) 2023-05-12

Family

ID=72478406

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010459152.3A Active CN111695152B (zh) 2020-05-26 2020-05-26 一种基于安全代理的MySQL数据库防护方法

Country Status (1)

Country Link
CN (1) CN111695152B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112398861A (zh) * 2020-11-18 2021-02-23 国网电力科学研究院武汉能效测评有限公司 web组态化系统中敏感数据的加密系统及方法
CN113127520A (zh) * 2021-05-11 2021-07-16 中国电信股份有限公司江西分公司 一种基于代理模式的分布式数据库sql审核拦截方法及装置
CN113630387A (zh) * 2021-07-21 2021-11-09 北京景安云信科技有限公司 基于代理实现对MySQL协议认证过程中用户名和密码替换的方法
CN113660239A (zh) * 2021-08-10 2021-11-16 中电积至(海南)信息技术有限公司 一种基于加盐与前端waf防护耦合的防sql注入系统
CN113765893A (zh) * 2021-08-13 2021-12-07 成都安恒信息技术有限公司 一种应用于MySQL系统的协议代理密码穿透认证方法
US20230148036A1 (en) * 2021-01-19 2023-05-11 Visa International Service Association System, Method, and Apparatus for Authenticating a User Device

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107046467A (zh) * 2017-05-22 2017-08-15 广东工业大学 一种基于读写器、标签和数据库的三方验证方法及系统
CN109286627A (zh) * 2018-10-10 2019-01-29 四川长虹电器股份有限公司 基于双因子认证的身份认证方法
CN110069918A (zh) * 2019-04-11 2019-07-30 苏州同济区块链研究院有限公司 一种基于区块链技术的高效双因子跨域认证方法
CN110149212A (zh) * 2019-05-31 2019-08-20 杭州安恒信息技术股份有限公司 一种数据库安全加固方法、装置及电子设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107046467A (zh) * 2017-05-22 2017-08-15 广东工业大学 一种基于读写器、标签和数据库的三方验证方法及系统
CN109286627A (zh) * 2018-10-10 2019-01-29 四川长虹电器股份有限公司 基于双因子认证的身份认证方法
CN110069918A (zh) * 2019-04-11 2019-07-30 苏州同济区块链研究院有限公司 一种基于区块链技术的高效双因子跨域认证方法
CN110149212A (zh) * 2019-05-31 2019-08-20 杭州安恒信息技术股份有限公司 一种数据库安全加固方法、装置及电子设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
齐浩政: ""基于安全代理的MySQL数据库防护技术研究"", 《CNKI》 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112398861A (zh) * 2020-11-18 2021-02-23 国网电力科学研究院武汉能效测评有限公司 web组态化系统中敏感数据的加密系统及方法
US20230148036A1 (en) * 2021-01-19 2023-05-11 Visa International Service Association System, Method, and Apparatus for Authenticating a User Device
US11811519B2 (en) * 2021-01-19 2023-11-07 Visa International Service Association System, method, and apparatus for authenticating a user device
CN113127520A (zh) * 2021-05-11 2021-07-16 中国电信股份有限公司江西分公司 一种基于代理模式的分布式数据库sql审核拦截方法及装置
CN113127520B (zh) * 2021-05-11 2023-07-21 中国电信股份有限公司江西分公司 一种基于代理模式的分布式数据库sql审核拦截方法及装置
CN113630387A (zh) * 2021-07-21 2021-11-09 北京景安云信科技有限公司 基于代理实现对MySQL协议认证过程中用户名和密码替换的方法
CN113660239A (zh) * 2021-08-10 2021-11-16 中电积至(海南)信息技术有限公司 一种基于加盐与前端waf防护耦合的防sql注入系统
CN113765893A (zh) * 2021-08-13 2021-12-07 成都安恒信息技术有限公司 一种应用于MySQL系统的协议代理密码穿透认证方法

Also Published As

Publication number Publication date
CN111695152B (zh) 2023-05-12

Similar Documents

Publication Publication Date Title
CN111695152B (zh) 一种基于安全代理的MySQL数据库防护方法
CN108418691B (zh) 基于sgx的动态网络身份认证方法
Chuang et al. An anonymous multi-server authenticated key agreement scheme based on trust computing using smart cards and biometrics
US7752320B2 (en) Method and apparatus for content based authentication for network access
CN109155784B (zh) 区分纵向暴力攻击与良性错误
CA2913444C (en) System and method for user authentication
CN113553558A (zh) 经由内部网络监视来检测使用泄漏证书的攻击
WO2019085531A1 (zh) 一种终端联网认证的方法和装置
Karuppiah et al. A secure lightweight authentication scheme with user anonymity for roaming service in ubiquitous networks
WO2019095856A1 (zh) 一种网络身份认证方法、系统及其使用的用户代理设备
RU2713604C1 (ru) Регистрация и аутентификация пользователей без паролей
Limbasiya et al. An analytical study of biometric based remote user authentication schemes using smart cards
KR101739203B1 (ko) 일회용 개인키 기반 전자 서명과 동형 암호를 이용한 패스워드 기반 사용자 인증 방법
Alqubaisi et al. Should we rush to implement password-less single factor FIDO2 based authentication?
WO2014049027A1 (en) Network security
CN112016073A (zh) 一种服务器零信任连接架构的构建方法
WO2022143498A1 (zh) 接入控制方法、装置、网络侧设备、终端及区块链节点
US11177958B2 (en) Protection of authentication tokens
Cai et al. Appcracker: Widespread vulnerabilities in user and session authentication in mobile apps
JP6266170B2 (ja) 3層セキュリティおよび算出アーキテクチャ
KR102539418B1 (ko) Puf 기반 상호 인증 장치 및 방법
Kim et al. A secure channel establishment method on a hardware security module
Guo et al. Extending registration and authentication processes of FIDO2 external authenticator with qr codes
JP6831544B2 (ja) ブロックチェーン及びsdn等に適用する情報処理システム、情報処理方法及びプログラム
Li et al. Robust dynamic ID–based remote user authentication scheme using smart cards

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