iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >MySQL新密码机制介绍caching_sha2_password
  • 278
分享到

MySQL新密码机制介绍caching_sha2_password

MySQL新密码机制介绍caching_sha2_password 2015-07-23 11:07:27 278人浏览 绘本
摘要

  Mysql添加了对身份验证插件的支持,该插件现在称为mysql_native_passWord。该mysql_native_password插件使用SHA1哈希   将密码(SHA1(SHA1(password)))存储在my

MySQL新密码机制介绍caching_sha2_password

 

Mysql添加了对身份验证插件的支持,该插件现在称为mysql_native_passWord。该mysql_native_password插件使用SHA1哈希

 

将密码(SHA1(SHA1(password)))存储在mysql.user表中
验证用户,该插件的一个优点是,它允许使用质询-响应机制进行身份验证,从而可以在未加密的通道上验证客户端的身份,而无需发送实际密码。

 

随着时间的流逝,我们从身份验证方案的角度确定了需要改进的几个方面。

 

  • 在将值存储在数据库中时,密码的转换必须使用盐(增加的因素)。没有它,两个具有相同密码的帐户将具有相同的哈希值。尽管这并不能显示实际的密码,但确实提供了有关用户使用密码的线索,并限制了暴力攻击和获取密码所需的工作。
  • 使用蛮力攻击更难破解存储的密码。最好在存储密码时使用许多(数千)轮哈希。
  • 使用更强大的哈希机制。随着技术的发展,SHA1和其他哈希算法的前身(例如MD5)已被证明非常容易破解。注意:NIST 在2011年已弃用。因此,如果您可以从mysql.user表中获取散列,或者通过嗅探未加密的通道,则可以对这些密码进行快速反向工程和破解,尤其是当密码较短(少于8个字符)时。另请参阅FIPS 180-4。
  • 对身份验证阶段和密码使用不同的哈希方案。在这两种情况下,mysql_native_password插件都使用类似的转换(SHA1(SHA1(password)))。

为了克服这些限制,从MySQL-8.0.3开始, 引入了一个新的身份验证插件 caching_sha2_password。从 MySQL-8.0.4开始,此插件成为MySQL服务器的新默认身份验证插件。通过caching_sha2_password身份验证,我们可以解决上述问题,同时确保不影响性能。许多使用MySQL的应用程序以很高的频率连接和断开连接。

 

MySQL caching_sha2_password的设计重点是:

 

  • 使用SHA-2哈希机制来转换密码。具体来说,它使用SHA256。
  • 生成哈希时,每个密码使用20字节长的盐。由于盐是一个随机数,即使两个用户使用相同的密码,转换过程的最终结果也将完全不同。
  • 为了使使用蛮力机制更难以尝试和猜测密码,在将最终转换存储在mysql.user表中之前,对密码和盐进行了5000轮SHA2散列。

两种操作方式:

  • COMPLETE:要求客户端安全地发送实际密码(通过TLS连接或使用RSA密钥对)。服务器生成5000轮哈希,并与mysql.user中存储的值进行比较。
  • FAST:允许使用SHA2哈希的基于质询-响应的身份验证。高性能和安全性在同一时间。

DBA可以强制数据库客户端定期使用COMPLETE模式来确定实际密码的认知。通过使用不同轮回数的哈希将密码存储和身份验证脱钩。即使有人可以访问这两个密码,也无法在实际可行的时间内使用此信息来推断密码或获取密码的sha2哈希。蛮力破解8字符长的密码以及5000轮咸化哈希值将花费很长时间。比任何密码到期策略(甚至最宽松的策略)更长的时间。较长的密码只会使事情变得更加困难。

 

下表比较了mysql_native_password和caching_sha2_password。

 

 

 

 

 

除了新插件外,还添加了一些功能来防止尝试识别用户信息并减轻与弱密码相关的风险:

 

  • 支持TLS连接,无需任何额外的努力(服务器端支持和客户端端支持)以确保默认情况下连接是安全的
  • CREATE USER / ALTER USER提供了几个 选项来指定密码管理策略
  • 控制可以和不能用作密码的内容–长度,字符复杂度等。
  • 减慢蛮力尝试猜测密码会增加延迟以及设置最大尝试限制
  • 用随机一次密码重置密码。
  • 防止用户枚举的其他措施

这些功能与caching_sha2_password结合使用,可增强用户帐户抵御密码攻击的能力。

 

另外,mysql模式的数据可以在静态时进行加密(InnoDB加密, 二进制日志加密)。这样可以保护敏感数据,例如密码哈希,以防止未经授权的文件访问。这在OS /文件系统中隐藏了许多细节。FYI – DBA(具有所需特权集的用户,例如mysql.user表上的SELECT)可以看到此哈希数据,而与使用静态数据加密方案无关。话虽如此,反向工程师密码的费用仍然很高。

 

如果仅凭安全性不足以促使您升级到caching_sha2_password,那么另一项商业动机就是遵守法规。大多数法规禁止将sha1,md5和其他弱密码用于密码或其他用途。(HIPAA,GDPR等)

 

在这里总结一下:

 

  • 如果您使用的是mysql_native_password,请尽快计划迁移到caching_sha2_password或支持与外部身份验证服务器集成的 企业身份验证插件之一。SHA1不够安全,切换也不困难。
  • 对mysql.user表的访问应尽可能严格。即使它不存储实际的密码,该表中的信息也非常敏感-尤其是密码哈希。实际上,无论您在何处存储此类哈希-无论是在MySQL数据库中还是在外部身份验证服务器(例如LDAP服务器)上,都必须始终对其进行保护。 OpenLDAP文档 很好地阐明了这一点:

 

 

  • 使用MySQL提供的密码策略功能来控制密码生命周期。
  • 使用MySQL提供的控件来防止对密码的暴力攻击。
  • 在mysql模式上,最好在所有表上使用InnoDB加密,以及二进制日志加密,以保护静态数据免受未经授权的访问。
  • 始终使用加密的连接:在HA拓扑中是服务器-客户端通信还是服务器-服务器通信。仅加密静态数据是不够的。数据在传输过程中必须受到保护。
  • 始终通过加密备份来保护备份,以避免数据泄漏

 

您可能感兴趣的文档:

--结束END--

本文标题: MySQL新密码机制介绍caching_sha2_password

本文链接: https://www.lsjlt.com/news/6891.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MySQL新密码机制介绍caching_sha2_password
      MySQL添加了对身份验证插件的支持,该插件现在称为mysql_native_password。该mysql_native_password插件使用SHA1哈希   将密码(SHA1(SHA1(password)))存储在my...
    99+
    2015-07-23
    MySQL新密码机制介绍caching_sha2_password
  • Mysql密码重置方法介绍
    本文主要给大家介绍Mysql密码重置方法,文章内容都是笔者用心摘选和编辑的,具有一定的针对性,对大家的参考意义还是比较大的,下面跟笔者一起了解下Mysql密码重置方法吧。 Step # 1: St...
    99+
    2022-10-18
  • MySQL的InnoDB锁机制介绍
    这篇文章主要介绍“MySQL的InnoDB锁机制介绍”,在日常操作中,相信很多人在MySQL的InnoDB锁机制介绍问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”MySQL的...
    99+
    2022-10-18
  • MySQL的锁机制原理介绍
    这篇文章主要讲解了“MySQL的锁机制原理介绍”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MySQL的锁机制原理介绍”吧! M...
    99+
    2022-10-18
  • MySQL Innodb索引机制详细介绍
    1、什么是索引 索引是存储引擎用于快速找到记录的一种数据结构。 2、索引有哪些数据结构 顺序查找结构:这种查找效率很低,复杂度为O(n)。大数据量的时候查询效率很低。 ...
    99+
    2022-11-12
  • 修改mysql登录密码与sql语句介绍
    修改mysql登录密码:在使用数据库服务器过程中可能会因为种种原因忘记了登录密码,或者需要使用别人的数据库服务器,别人却忘记了登录密码等等。忘记密码有两种方式可以解决,一是通过sql语句修改登录密码:二是通...
    99+
    2022-10-18
  • windows下重置mysql的root密码方法介绍
    今天发现 WordPress 连接不上数据库,登录 window server 服务器查看,所有服务均运行正常。 使用 root 账号登录 mysql 数据库,结果提示密码不匹配。我突然意识到,服务器可能遭...
    99+
    2022-10-18
  • 破解MySQL数据库root密码的方法介绍
    这篇文章主要讲解了“破解MySQL数据库root密码的方法介绍”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“破解MySQL数据库root密码的方法介绍”吧!...
    99+
    2022-10-18
  • 一键重置mysql的root密码的脚本介绍
    这篇文章主要讲解了“一键重置mysql的root密码的脚本介绍”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“一键重置mysql的root密码的脚本介绍”吧!重置mysql的root密码方法有...
    99+
    2023-06-08
  • windows10如何取消开机密码windows10取消开机密码方式详细介绍
    windows10如何取消开机密码是许多用户碰到的问题,有的情况下用户们应用win10的过程中会要想取消自身的账户密码,一般这个时候用户只了解怎样修改密码,可是都不清楚如何去取消,下边就给各位产生windows10取消开机密码方式详细介绍,...
    99+
    2023-07-10
  • Win8取消开机密码 图文介绍Win8如何取消登陆密码
    如今安装最新Win8系统的电脑尝鲜爱好者越来越多,并且很多新购买的电脑也均是预装Win8系统,对于Win8好与坏,本文暂且不讨论,使用后大家自有定论。本文主要是为解决一些新安装Win8系统会遇到的一些烦恼而...
    99+
    2022-06-04
    登陆密码 密码 图文
  • windows10设置开机密码怎么设置windows10设置开机密码方式详细介绍
    开机密码是个可以协助用户维护系统优化和个人隐私的作用,此功用可以将系统软件锁住,用户们假如开机得话便会规定键入密码才可以加入系统软件,那麼windows10设置开机密码怎么设置呢,当用户必须设置开机密码的过程中可以试着接下来的windows...
    99+
    2023-07-10
  • MySQL数据库锁机制的相关原理介绍
    这篇文章主要讲解了“MySQL数据库锁机制的相关原理介绍”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MySQL数据库锁机制的相关原理介绍”吧!  不同于行...
    99+
    2022-10-18
  • Android AsyncTask实现机制详细介绍及实例代码
    Android AsyncTask实现机制 示例代码: public final AsyncTask<Params, Progress, Result> exec...
    99+
    2022-06-06
    asynctask Android
  • linux下快速修改mysql数据库密码的方法介绍
    下文主要给大家带来linux下快速修改mysql数据库密码的方法,希望这些内容能够带给大家实际用处,这也是我编辑linux下快速修改mysql数据库密码的方法这篇文章的主要目的。好了,废话不多说,大家直接看...
    99+
    2022-10-18
  • 详细介绍mysql忘记密码的解决方案及修改密码的三种方式
    小编给大家分享一下详细介绍mysql忘记密码的解决方案及修改密码的三种方式,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1、修改...
    99+
    2022-10-18
  • mysql中三种复制机制异步复制,半同步复制和并行复制详细介绍
    下面一起来了解下mysql中三种复制机制异步复制,半同步复制和并行复制,相信大家看完肯定会受益匪浅,文字在精不在多,希望mysql中三种复制机制异步复制,半同步复制和并行复制这篇短内容是你想要的。**# 异...
    99+
    2022-10-18
  • 【MySQL】连接 MySQL使用二进制方式连接和脚本连接,修改密码,增加新用户,显示命令
    作者简介: 辭七七,目前大一,正在学习C/C++,Java,Python等 作者主页: 七七的个人主页 文章收录专栏: 七七的闲谈 欢迎大家点赞 👍 收藏 ⭐ 加关注哦!💖💖 ...
    99+
    2023-08-16
    mysql adb 数据库 开发语言 数据结构
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作