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

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: 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

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
6月前
|
存储 Java 关系型数据库
JSP考试质量分析系统myeclipse开发mysql数据库bs框架java编程web网页结构
JSP 考试质量分析系统是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0,使用java语言开发,系统主要采用B/S模式开发。
183 1
|
6月前
|
Java 关系型数据库 MySQL
JSP考试报名管理系统myeclipse开发mysql数据库bs框架java编程web网页结构
二、功能介绍 (1)权限管理:对权限信息进行添加、删除、修改和查看 (2)用户管理:对用户信息进行添加、删除、修改和查看 (3)公告管理:对公告信息进行添加、删除、修改和查看 (4)考试科目管理:对考试科目信息进行添加、删除、修改和查看 (5)考试安排管理:对考试安排信息进行添加、删除、修改和查看 (6)报名管理:对报名信息进行添加、删除、修改和查看,审核, (7)用户登录、身份验证 三、注意事项 1、管理员账号:admin密码:admin 数据库配置文件DBO.java 角色:普通用户,管理员 2、开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql
107 0
|
10月前
|
SQL 运维 Oracle
MySQL 8.0 OCP(1Z0-908)中文题库解析
使用 MySQL Enterprise Monitor的无代理安装监视 MySQL服务器。
364 0
|
10月前
|
关系型数据库 MySQL
第一个获得MySQL 8 OCP的?
2020年7月7日考了MySQL 8 OCP,从百度搜索结果来看,目前中国只有我一个人取得了MySQL 8 OCP,肯定别人也有人考过了MySQL 8 OCP,不过人家比较低调,没有写博客罢了。从 MySQL 3 开始使用 MySQL,MySQL 5.6和5.7 OCP,现在是第三个 OCP 了。
125 0
|
10月前
|
关系型数据库 MySQL 测试技术
django基于python智能在线考试阅卷系统(源码+系统+mysql数据库+Lw文档)
随着计算机多媒体技术的发展和网络的普及。采用当前流行的B/S模式以及3层架构的设计思想通过Python技术来开发此系统的目的是建立一个配合网络环境的基于python的学校对在线考试阅卷系统的平台,这样可以有效地解决基于python的在线考试阅卷系统混乱的局面。本文首先介绍了基于python的在线考试系统的发展背景与发展现状,然后遵循软件常规开发流程,首先针对系统选取适用的语言和开发平台,根据需求分析制定模块并设计数据库结构,再根据系统总体功能模块的设计绘制系统的功能模块图,流程图以及E-R图。然后,设计框架并根据设计的框架编写代码以实现系统的各个功能模块。最后,对初步完成的系统进行测试,主要是
335 0
|
10月前
|
存储 SQL Oracle
让ChatGPT做一下MySQL 8.0 OCP(1Z0-908)的真题,我松了一口气
MySQL OCP分成中文和英文两种,Oracle OCP只有英文考试,这里我们用MySQL 8.0 OCP(1Z0-908)的中文真题测试一下ChatGPT,看看ChatGPT能否获得MySQL OCP的认证,用这种方法判断ChatGPT会不会代替我们人类DBA的工作。
214 0
|
10月前
|
SQL 运维 Oracle
MySQL 8.0 OCP(1Z0-908)中文题库解析
作者介绍:姚远,Oracle ACE(Oracle和MySQL数据库方向),华为云MVP,《MySQL 8.0运维与优化》的作者。
635 0
|
10月前
|
运维 Oracle 安全
在家参加OCP考试(MySQL OCP和Oracle OCP)
考试前 考试前需要了解信息如下
381 0
|
10月前
|
SQL 运维 Oracle
MySQL 8.0 OCP 1Z0-908认证考试题库(7-20)
Examine the command, which execute successfully
628 0

推荐镜像

更多