基于MySQL数据库的数据隐私与安全策略研究

2017-02-14 09:26石坤泉杨震伦
网络安全技术与应用 2017年1期
关键词:安全策略安全漏洞密码

◆石坤泉 杨震伦

(广州番禺职业技术学院信息工程学院 广东 511483)

基于MySQL数据库的数据隐私与安全策略研究

◆石坤泉 杨震伦

(广州番禺职业技术学院信息工程学院 广东 511483)

为提高数据库安全提升数据库的性能,力求达到安全与性能的平衡。从数据传输安全性、数据存储安全性以及服务器配置等方面分析了MySQL可能存在的安全漏洞; 从密码学、安全协议以及文件权限等维度提出本地和远程访问MySQL数据库的安全体系结构; 分析比较了HASH认证与DSA/RSA公钥认证方式、本地MySQL/SSL与外部SSH通道的安全应用。

MySQL数据库; 安全漏洞; 安全保护; 策略研究

0 前言

MySQL是广为使用的开源数据库。MySQL支持Sql server 的迁移,支持对Java、c#、PHP等的API,以及通过Memcached的API以NoSQL访问InnoDB所带来的更好的开发速度。MySQL广泛应用于网站、web数据库、嵌入式应用、大数据、云计算等领域。

大数据在存储、处理、传输等过程中面临诸多安全风险,具有数据安全与隐私保护需求[1]。数据库的安全威胁来自于许多不同的途径。如果我们跟踪数据库应用的数据流过程,两种主要的安全问题可以被归纳出:安全数据传输和安全数据存储及访问[2]。如果安全威胁按照其所受攻击的来源来分类,可以分为外部侵入、内部管理漏洞和系统管理员[3]。在数据库安全体系中,身份认证是最重要的一个环节[4]。在传输安全方面,主要用到虚拟专用网络(VPN、SSH)和基于安全套接层协议 VPN(SSL VPN)技术[5]。

本文基于Windows实验环境。从身份认证、数据传输以及服务器配置等多个维度分析了MySQL可能存在的安全漏洞; 紧紧围绕身份认证、密码存储安全性和数据传输安全性,从基础的SHA-1加密方式引入SSL和SSH协议框架,构建本地和远程访问MySQL数据库的安全体系结构; 并基于该安全体系结构提出了相应的安全策略; 最后,对基础SHA-1、SHA-256/SSL和SSH通道的安全机制和性能进行比较分析,提出在注重安全性的同时也要注重提升性能。

1 MySQL 数据库的安全漏洞分析

从内部机制来看,MySQL 数据库的安全漏洞可能来自于密码存储、数据传输以及服务器配置等安全问题。

1.1 密码存储安全性

(1)数据库文件安全问题。MySQL数据库文件保存在数据库目录data中,共有“frm”、“myd”“和myi”三种文件。记录user表的是user.frm、user.myd、user.myi等三个文件,user.myd保存了MySQL数据库用户密码,包括root用户和其他用户的密码。

(2)日志文件的安全问题。比如,使用GRANT授权或使用SET PASSWORD设置密码时,这样的有关密码、用户权限等方面的敏感查询文本的都会被记录到日志中。如果攻击者具有对这些日志的读访问权,那么只要在日志文件中查找GRANT或PASSWORD这样的敏感单词,就很容易找到密码的明文。

1.2 密码传输安全性

比如,使用MySQL -h host –uusername -ppassword命令行连接服务器时,若直接在-p后面输入明文密码,则在任务管理器上将清楚地看到密码。同样,运行MySQLdump、MySQLimport命令进行数据库备份或恢复时,也存在明文密码传输的安全性隐患。此外,还可能存在诸如匿名帐户、服务器配置等方面的安全漏洞。

2 MySQL安全策略研究

2.1 使用MySQL/SSL增强本地连接安全性

MySQL默认使用SHA-1即native MySQL authentication(本地MySQL身份验证),这种加密方法简单但安全性颇受质疑。采用SHA-256/SSL在一定程度上提高安全性:一是SHA-256可以得到 64个随机散列字符串,二是使用SHA-256加密需OpenSSL连接mysql服务器。

在具体操作上,MySQL服务端编译使用SSL,并指定客户端连接服务器的SSL级别。同时,在使用命令来创建SHA-256加密方式创建用户时,要先指定使用SHA256_password插件创建用户。另外,若希望用户每次必须通过SSL方式,还需在创建用户时REQUIRE SSL。

2.2 使用外部SSH通道增强远程数据传输安全性

远程数据传输时,可以引入SSH(Secure SHell)通道机制,通过外部SSH通道创建客户机与MySQL服务器的连接,将传输数据进行加密和压缩,并采用密钥认证使密码口令等重要信息不被泄漏。SSHclient与SSHserver之间连接时,会在SSH服务器上生成DSA.KEY和RSA.KEY,利用DSA/RSA良好的加密机制保证数据的安全与数据库稳定。

在具体操作过程中,要在服务器主机安装SSH协议软件(如freeSSHD),搭建好SSH服务器,在客户机上安装SSH客户端(如puTTY、Navicat for MySQL),如图1所示。

图1 通过SSH隧道连接MySQL服务器示意图

2.3 数据库密码文件安全策略

为保证数据库文件和日志文件的安全,可以使用安全的文件系统权限[6]。比如,利用Windows的NTFS权限,对存储用户信息的三个数据库文件特别是用户授权表设置合法的访问控制权限。同理,做好FreeSSHd用户的公钥文件夹的保护(默认C:Program FilesfreeSSHd),里面有保存用户信息的FreeSSHdService.ini和公钥DSAkey.cfg、RSAkey.cfg。

2.4 其它安全策略

为防止配置文件引起的安全隐患,可打开MySQL配置文件my.ini,注释掉[MySQLd]选项中的skip-grant-tables这一行,防止用户越过系统身份认证直接登录MySQL服务器。另外,删除user为空的匿名帐户和密码为空的root帐户,使用符合密码复杂性原则的安全级别更高的密码等。

3 性能比较分析

SSH协议把客户端与服务器之间传输的数据进行加密和压缩; SSL协议使用通讯双方的客户证书以及CA根证书,客户机在与服务器连接时要与SSL握手; 而常规SHA-1是MySQL的默认加密机制,简单快速安全性略低。三种安全机制对比如表格1所示。

SSH、SSL均采用了RSA非对称加密算法,这种算法由密钥产生(公钥和密钥)、加密以及解密三个过程组成,客户端发出密匙安全验证的请求→公用密匙比较→密匙加密“质询”(challeng e)→私人密匙解密→发送给服务器。与常规SHA-1相比,虽然不需要在网络上传送口令密码,安全级别更高,但客户端与服务器之间连接时间会比较长。

猜你喜欢
安全策略安全漏洞密码
密码里的爱
基于模糊测试技术的软件安全漏洞挖掘方法研究
基于飞行疲劳角度探究民航飞行员飞行安全策略
密码抗倭立奇功
智能设备安全漏洞知多少
安全漏洞太大亚马逊、沃尔玛和Target紧急下架这种玩具
一种防火墙安全策略冲突检测方法*
浅析涉密信息系统安全策略
安全漏洞检测技术在计算机软件中的应用
密码藏在何处