等保测评2.0:MySQL身份鉴别(上)

更新时间:2023-07-17 00:56:23 阅读: 评论:0

等保测评2.0:MySQL⾝份鉴别(上)
⼀、说明
本篇⽂章主要说⼀下MySQL数据中⾝份鉴别控制点中a测评项的相关知识点和理解。
⼆、 MySQL⽤户 2.1. ⽤户⾝份标识
MySQL数据库对于⽤户的标识和其它数据库有些不⼀样,不仅仅是⽤户名,⽽是urname + host。
MySQL数据中ur表的⼀部分字段如下:
这三个⽤户的⽤户名虽然都是root,但其实是三个不同的⽤户,其密码也是单独设置的。
查询当前登录账户,也可以看到⽤户的标识组成为urname+host:
2.2. 登录匹配机制
既然⽤户的标⽰是两个字段的组合,匹配的时候也要这两个字段都匹配上了才⾏,这⾥我简单的说⼀说(根据官⽅⽂档)。
当客户端对MySQL发起连接后,MySQL会先对ur表进⾏排序,然后从第⼀⾏开始,逐⾏与传⼊的host、urname进⾏匹配,当匹配到了某⼀⾏之后,就不往下继续匹配了。(如果任何⼀⾏都⽆法匹配,则登录失败)
此时,再来对⽐传⼊的⼝令和存储的⼝令是否⼀致,如果⼝令⼀致,那么该⾏即为这次登陆后所使⽤的⾏(⽤户⾝份)。
如果不⼀致,则登录失败。
举个例⼦,如果⽤户表如下所⽰:
那么当验证时,会⾸先对其进⾏排序,排序如下:
注意,Host字段可以使⽤匹配符%,%则代表匹配任何Ip地址。另外,空字符串也代表匹配任何Ip地址。
surpri什么意思⽽Ur字段不使⽤匹配符%,但是如果为空字符串,则代表匹配任何⽤户名。
MySQL排序时是先对Host进⾏排序,然后才是Ur。
Host的排序为明确的值排在前⾯,⽐如⽂字主机名和IP地址即为明确的地址值,所以%和空字符串排在它们之后,其中空字符串⼜排在%之后。
我的家乡英语作文
当Host字段向同时,则对Ur字段进⾏排序,对于Ur字段也是明确的值排在前⾯,所以在排序结果图
中,root@localhost排在了@localhost(空字符串⽤户名)的前⾯。
如果Host字段和Ur字段都⼀样,那么排序的顺序是不确定的(可能和创建该⽤户的先后有关)。
所以客户端连接MySQL数据库时,使⽤给定的⽤户名,不⼀定会以该⽤户名的⾝份登⼊数据库。
英语句型⽐如使⽤⽤户名jeffrey和它的⼝令,在本地的mysql中进⾏登录时,会按照排序结果图中,⼀⾏⾏的去匹配:
对于第⼀⾏,客户端的Host(localhost或者127.0.0.1)可以和Host字段的localhost匹配上,但是Ur不⼀样,⽆法完全匹配,所以往下⾛。
对于第⼆⾏,客户端的Host(localhost或者127.0.0.1)可以和Host字段的localhost匹配上,⽽第⼆⾏的⽤户名是空字符串,可以匹配任何⽤户名,所以也能匹配jeffrey,如果⼝令⼀致,则完成了匹配,到此匹配过程结束。
这样,虽然使⽤了⽤户名jeffrey,但最后却会以@localhost的⾝份登⼊数据库。
最后,Ur表的⼝令字段可以为空字符串,这代表⼝令为空字符串,⽽不是与任何⼝令都匹配。
2.3. 查询当前⽤户
MySQL中存在ur函数和current_ur函数。
ur函数会显⽰你当前的登录⽤户具体是使⽤了什么⽤户名和什么ip地址去进⾏登录的。(注,ip地址是指连接数据库的客户端的ip地址,不是⾃⼰设置的值)
例⼦如下:
这⾥代表在ip地址为192.168.203.132的客户端上,使⽤⽤户名test对MySQL数据库进⾏了连接。
current_ur函数会显⽰你最终使⽤的⽤户⾝份(也就是最后匹配到的那⼀⾏),例⼦如下:
也就是,最后在Ur表中匹配到了Host字段为192.168.%.%、Ur字段为test的那⼀⾏,以************..%.%的⽤户⾝份登录了MySQL数据库。
2.4. ⼝令字段
在MySQL5.7之前,Ur表中的⼝令字段为Password,从MySQL5.7开始,⼝令字段变成了authentication_string。
不过在MySQL5.7之前,⽐如MySQL5.5.53,也存在着authentication_string字段,不知道其⽤途是什么。
entry是什么意思
三、测评项a
a)应对登录的⽤户进⾏⾝份标识和鉴别,⾝份标识具有唯⼀性,⾝份鉴别信息具有复杂度要求并定期更换;
3.1. 测评项要求1
应对登录的⽤户进⾏⾝份标识和鉴别
martinha
对于MySQL来说,如上⽂所⾔,⽤户的⾝份标识为urname + host,鉴别就是通过urname + host + password来进⾏登录验证。
所以,对于这个要求,就是不能出现空⽤户名、空密码、任意host的⽤户,也就是鉴别的因素三者同时皆空。
其中任何⼀个不为空或%(对Host⽽⾔),则都算实现了鉴别(部分鉴别)。
3.2. 测评项要求2
⾝份标识具有唯⼀性
对于MySQL来说,如上⽂所⾔,⽤户的⾝份标识为urname + host,MySQL并没有禁⽌出现完全⼀样的urname + host⾏,所以这⾥是可能出现⾝份标识不唯⼀的情况的。
发誓英语
庸俗唯物主义在安装MySQL完成后,会存在3个默认账户,如下:
这三个⽤户的Ur都是root,虽然Host看上去不⼀样,实际上也都是本机地址。
127.0.0.1就是本地的ip地址,localhost则是在hosts⽂件⾥(linux系统中)和ip地址进⾏了映射,其实映射的还是127.0.0.1地址,⾄于::1应该是ipv6格式的本机地址。
::1这个我不知道要如何才能连上,当⽤户名为root的⾏只剩下host值为::1的⾏的时候,使⽤⽤户名root怎么连都不可能连上。
对于127.0.0.1和localhost,在windows系统上没啥区别,登录时其排序是不确定的(对于这种,应该是谁先创建谁在前)。
对于127.0.0.1和localhost,好像在linux上有⼀点区别:MySQL主机127.0.0.1与localhost区别总结
从正常的业务需求来说,明显这三个⽤户的⾝份标识是不唯⼀的,应该删掉::1和另外⼀个。
3.3. 测评项要求3
⾝份鉴别信息具有复杂度要求
这个要从两个⽅⾯看,我个⼈觉得两个⽅⾯都符合才能算达到要求。
第⼀个⽅⾯即实际的⼝令是否具有⼀定的复杂度,也即⼝令⾄少8位,且包含⼤写字母、⼩写字母、数字、特殊字符这四类字符种的三种,且⼝令不包含简单排列规律,如admin!@#123此类弱⼝令。
第⼆个⽅⾯即MySQL是否进⾏了⼝令复杂度策略的设置,强制要求⼝令具有⼀定的复杂度,也即在MySQL中使⽤了validate_password插件。
这时候,可以⽤以下命令查看该插件的相关参数:
为了达到要求,参数需要进⾏设置(初级教程):
各个参数的代表的意思:mysql之validate_password_policy
他这⾥说得挺详细的,我这⾥就不写了。
3.4. 测评项要求4
要求并定期更换
和⼝令复杂度⼀样,⼀个⽅⾯是看实际的⼝令更换周期,这⾥可以通过访谈相关⼈员来得知,也可以通过查看ur表中的password_last_changed字段(注意,只有⾼于某个版本的MySQL才有这个字段)。
⽽MySQL中的⼝令更换策略,则和版本有⼀些关系。
从MySQL5.6.6开始,Ur表中多了⼀个password_expired字段,默认值是N,当设置为Y后,则这个⽤户还是可以登陆到MySQL服务器,但是在⽤户未设置新密码之前不能运⾏任何查询语句,⽽且会得到如下错误消息提⽰:
mysql> SHOW DATABASES;
ERROR 1820(HY000): You must SET PASSWORD before executing thisstatement
Keep inmind that thisdoes notaffect any current connections the account has open.
所以对于这个版本,定期修改⼝令的策略需要通过定时器任务等⽅式来实现了。
记账凭证账务处理程序
⽽从5.7.4这个版本开始,MySQL多了⼀个全局变量default_password_lifetime:
gub并且在Ur字段表中增加了两个字段:password_lifetime、password_last_changed:
给⼤家解释⼀下,⾸先⽆论是全局变量default_password_lifetime还是Ur表中的字段password_lifetime,它们的单位都是天。
当password_lifetime为null的时候,则代表该⽤户当前⼝令的有效期使⽤的是全局变量default_password_lifetime的值。
当password_lifetime为⼀个具体的值的时候,则代表该⽤户当前⼝令的有效期不使⽤全局变量
default_password_lifetime的值,使⽤的是字段password_lifetime的值。
对于default_password_lifetime和password_lifetime⽽⾔,值为0则代表有效期为永远。
另外,mysql-5.7.4 ~ mysql-5.7.10 这些版本中default_password_lifetime的默认值是360,从mysql-5.7.11开
始,default_password_lifetime这个参数的默认值为0。
关于⼝令过期的具体内容,可以看:、,说得挺清楚的。
*本⽂原创作者:起于凡⽽⾮于凡,本⽂属于FreeBuf原创奖励计划,未经许可禁⽌转载
>写作文的顺序

本文发布于:2023-07-17 00:56:23,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/78/1100508.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:匹配   要求   字段   登录
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图