MySQL OCP考试复习系列(3)-- MySQL Security(1)-阿里云开发者社区

开发者社区> 水墨胭脂> 正文

MySQL OCP考试复习系列(3)-- MySQL Security(1)

简介: 6.1.1 安全准则
+关注继续查看

MySQLOCP_
MySQL安全性,官方文档永远是最好的复习资料啊,英文慢慢看~

6.1常见安全性话题

6.1.1 安全性指引

  当运行MySQL时,遵循如下的指导方针:

  • 永远不要给任何人mysql数据库中user表的权限。这是极重要的。(MySQL root 账户除外)
  • 了解MySQL访问特权系统工作的机制(6.2:MySQL访问特权系统)。使用GRANT和REVOKE语句来控制对MySQL的访问。不要给出超出需求的权限。绝不把权限给到所有主机。
    Checklist:

    • 运行mysql -u root。如果你不被要求输入密码就可以连接成功,那么任何人都可以使用拥有最高权限的MySQL root 用户连接到你的MySQL服务器。回顾下MySQL安装指导,特别注意看一下设置root密码的内容。参考2.10.4--“加密初始MySQL账户”。
    • 使用SHOW GRANTS 语句来检查账户都分别拥有什么访问权。然后使用REVOKE语句来移除非必要的特权。
  • 不要在你的数据库中存储明文密码。这会使你的电脑变得极不安全,因为侵入者可以拿到所有的密码列表然后使用它们。因此,取代明文密码,使用SHA2()或其他的单项哈希方法加密密码,然后存储哈希值。
    为了防止使用彩虹表进行密码恢复, 请不要在普通密码上使用这些函数;相反, 选择一些要用作 salt 的字符串, 然后使用哈希 (hash(password) + salt) 值。
  • 不要使用字典中的单词或词组作为密码。存在破解密码的特殊程序。即使是类似于"xfish98"这样的密码都是不安全的。但是如果是“duag98”就好多了,这个密码也包含fish这也词语,但是输入的是对应的字母在标准键盘上左侧的键。另一种密码的创立方式是取用一句话的每个单词的第一个字母(例如,“Four score and seven years ago”可以得到一个密码"fsasya")。这种密码易于记忆和输入,但是很难被其他不知道这句话的人猜到。这种情况下,你还可以使用数字来代替数字单词得到短语4score and 7years ago,然后得到密码4sa7ya这个更难被猜中的密码。
  • 建立防火墙(invest in a firewall).这在任何软件中都可以帮助你至少拦截50%的攻击。将MySQL服务器放在防火墙后面或者放置在非军事区域(DMZ)。
    Checklist:
  • 尝试在网络上使用类似于nmap的工具扫描你的端口。MySQL默认使用3306端口。这个端口不应该被不受信任的主机访问。有一种简单的当时检查你的MySQL端口是否是公开的,在一些远程机器上运行下面的语句:telnet server_host 3306,其中server_host是你的MySQL服务器所在的主机的主机名或IP地址。如果telnet 挂住或者连接被拒绝,说明端口是阻塞的,这应该是理想的状态。如果你取得连接,并获得一些垃圾字符,则说明该端口是开放的,你应该在你的防火墙或陆游上关闭这个端口,除非你有非常合理的理由保持该端口开放。
  • 访问MySQL的应用不应该信任任何由用户输入的数据,而应该通过使用合适的守卫程序技术来写MySQL。参见6.1.7——"客户端程序安全指引"
  • 不要通过网络传输普通(未加密的)密码,因为网络传输信息会暴露给所有有时间和能力拦截网络信息的人,然后这些经过网络传输的信息就会被他们用于他们自己的目的。因此,使用SSL、SSH这样的加密协议。MySQL支持内部SSl连接。另一种技巧就是使用SSH 端口转发来创建一个加密的(且是压缩的)信息传输通道。
  • 学习使用tcpdumpstrings工具。大多数情况下,你可以通过执行下面这样的命令来检查MySQL数据流是否是加密的:
    shell>tcpdump -1 -i eth0 -w - src or dst port 3306|strings

这个命令在Linux下有效。在其他的系统平台下应该使用最小的修改。

警告:

即使你没有看到明文数据,也并不意味着信息实际上是加密的。如果你需要比较高的安全性,请咨询安全专家。

##本节疑问:

使用彩虹表进行密码恢复?

密码破译

  密码破译是指在不知道密钥的情况下,恢复出密文中隐藏的明文信息的过程。密码破译也是对密码体制的攻击。成功的密码破译能恢复出明文或密钥,也能够发现密码体制的弱点。
  密码破译技术是指实施密码破译过程中常用的各种技术、手段、措施、方法和工具。
  在计算机网络传输过程中,除了合法的接收者外,还有非授权者,非授权者通过各种办法在信息传输过程中截取信息(如搭线窃听、电磁窃听、声音窃听等来取机密信息),因此机密信息在网络中传输通常要进行加密,但有时还是能够被非授权用户截获,通过密码破译获得明文甚至是密钥,使机密泄露。
  密码破译的方法:

  • 穷尽搜索:破译密文最简单的方法,就是尝试所有可能的钥匙组合。假设破译者有识别正确解密结果的能力,经过多次密钥尝试,最终会有一个钥匙让破译者得到原文,这个过程就称为密钥的穷尽搜索。
  • 密码分析:在不知其钥匙的情况下,利用数学方法破译密文或找到钥匙的方法,称为密码分析(Cryptanalysis)。密码分析有两个基本的目标:利用密文发现明文;利用密文发现钥匙。根据密码分析者破译(或攻击)时已具备的前提条件,通常将密码分析攻击法分为4种类型。

字典破解

  对于采用穷举密码进行尝试工作或暴力破解注册码时,我们都需要使用字典作为破解的基础数据。破解的成功与否和字典数据的匹配程度息息相关。

彩虹表

  直接建立出一个数据文件,里面事先记录了采用和目标采用同样算法计算后生成的Hash散列数值,在需要破解的时候直接调用这样的文件进行比对,破解效率就可以大幅度地,甚至成百近千近万倍地提高,这样事先构造的Hash散列数据文件在安全界被称之为Table。其实简单理解就是使用一个大型数据字典来进行快速匹配暴力破解的方法,以空间来换取时间的方法。
   对于HASH的传统做法是把H(X)的所有输出穷举,查找H(X[y])==H(P),得出P==X[y]。而彩虹表则是使用散列链的方式进行。"散列链"是为了降低传统做法空间要求的技术,想法是定义一个衰减函数 R 把散列值变换成另一字符串。通过交替运算H函数和R函数,形成交替的密码和散列值链条。
[[基础技能] 安全技术——哈希算法密码破解之彩虹表(Rainbow Table)学习](https://www.cnblogs.com/yushuo1990/p/6007068.html)

2.10.4--“加密初始MySQL账户”

SHOW GRANTS语句

SHA2()

SSL和SSH协议

tcpdump 和strings

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
8872 0
阿里云服务器ECS远程登录用户名密码查询方法
阿里云服务器ECS远程连接登录输入用户名和密码,阿里云没有默认密码,如果购买时没设置需要先重置实例密码,Windows用户名是administrator,Linux账号是root,阿小云来详细说下阿里云服务器远程登录连接用户名和密码查询方法
11076 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
10664 0
使用SSH远程登录阿里云ECS服务器
远程连接服务器以及配置环境
2436 0
使用OpenApi弹性释放和设置云服务器ECS释放
云服务器ECS的一个重要特性就是按需创建资源。您可以在业务高峰期按需弹性的自定义规则进行资源创建,在完成业务计算的时候释放资源。本篇将提供几个Tips帮助您更加容易和自动化的完成云服务器的释放和弹性设置。
11965 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
12524 0
腾讯云服务器 设置ngxin + fastdfs +tomcat 开机自启动
在tomcat中新建一个可以启动的 .sh 脚本文件 /usr/local/tomcat7/bin/ export JAVA_HOME=/usr/local/java/jdk7 export PATH=$JAVA_HOME/bin/:$PATH export CLASSPATH=.
4576 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
6795 0
+关注
18
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载