最新新闻,最快送达

密码哈希指南:如何确保数据库安全

  • 发布时间:2020-09-04
  • 来源:中培教育网

  散列算法是单向函数。他们采用任何字符串并将其变成固定长度的“指纹”,该指纹无法反转。这意味着,如果数据库中的数据受到破坏,则黑客无法很好地获得用户密码,因为用户密码从来没有以哈希表的形式存储在驱动器上。使用哈希的网站通常具有以下工作流程:

  1. 用户创建一个帐户

  2. 他们的密码被散列并存储在数据库中

  3. 当用户尝试登录时,将其输入密码的哈希值与数据库中存储的密码进行比较

  4. 如果哈希匹配,则用户可以访问该帐户。

  5. 如果不是,则会发回一般错误消息,例如“输入的无效凭据”,这样黑客就无法将错误具体跟踪到用户名或密码。

  hash("hello")=2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824

  hash("hellu")=3937f988aeb57b6fd75b9c71bf17b9658ec97823bab613df438389b0c896b724

  hash("danny")=668e2b73ac556a2f051304702da290160b29bad3392ddcc72074fefbee80c55a

  注意:仅安全或加密哈希函数可用于密码哈希。

  令人遗憾的是,仅对密码进行哈希加密并不能确保安全性。

  破解哈希:蛮力和字典攻击

  解密哈希的最简单方法是猜测密码。这样做的方法是猜测用户密码,对猜测值进行哈希处理,然后将其与您要解决的实际密码的哈希值进行比较。如果两个哈希值匹配,则未加密的猜测版本就是正确的密码。

  一个蛮力攻击经历给予一定的字符长度的每一个可能的组合。即使他们最终会100%破解任何给定的密码,但由于此方法的计算量很大,因此很难使用该方法。使用蛮力破解某些长度甚至很短的密码可能要花费数千年的时间。

  Tryingaaa:failed

  Tryingaab:failed

  Tryingaac:failed

  ...

  Tryingacb:failed

  Tryingacc:success

  字典攻击使用的文件包含可能是已使用密码的常用单词,短语或密码。还有,你可以找到数据库是按住顶部100000最常用的密码。攻击会对这些密码进行哈希处理,然后将哈希值与密码进行比较以破解。对于破解普通的JoeShmo来说,这有时是一个很好的使用方法,并且肯定比使用蛮力攻击要快。

  查找表可以通过预先计算哈希值来提高破解性能,因此,当需要猜测密码时,程序无需花费计算时间实际对猜测值进行哈希处理。

  在下一节中,我们将研究“盐化”,这使这些破解方法无法可靠地使用。

  查找表,字典攻击和暴力攻击之所以可以起作用的原因是,每次密码都以相同的方式散列。我们可以通过在哈希之前或之后在密码前添加一个称为salt的随机字符串来使哈希随机化。

  hash("hello")=2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824

  hash("hello"+"jHjdbJShdiodb")=6f7f167a978166ee23b32c9531ce5dc23ae8fc26e412045858d938d11470831f

  盐不必是秘密的,因为攻击者不知道盐将是什么,因此无法为其创建预先计算的表。

  注意事项

  ·对每个哈希密码重复使用相同的盐

  ·使用短盐

  ·使用奇怪的双哈希值(例如:hash(hash(hash(‘mypass’))))在盐里

  ·使用加密安全的伪随机数生成器生成随机盐

  ·为散列的每个密码生成一个新的随机唯一盐

  ·产生长盐

  盐化工作流程

  存储密码:

  ·用CSPRNG生成超长盐

  ·将盐添加到用户密码中并进行哈希处理

  ·将盐和哈希值保存在数据库中

  检查密码:

  ·从数据库中获取盐和哈希

  ·将盐添加到提交的密码之前并对其进行哈希处理

  ·比较散列。如果它们相等,则密码正确

  注意:务必总是总是哈希在服务器上。有时未启用JavaScript,并且哈希在客户端不起作用。另外,没有其他人可以访问服务器,因此请确保对服务器进行哈希处理。

  上述就是关于密码哈希指南:如何确保数据库安全的全部内容,想了解更多关于数据库安全的信息,请继续关注中培教育。

近期开班

phone
全国报名服务热线: 400-626-7377
合作伙伴
  • 国际APMG组织
  • 思科(Cisco)
  • 国际OPEN GROUP组织
  • 国家外专局培训中心
  • 上海银行
  • 中国石油管道局工程有限公司
  • 朗新科技
  • 中国国家博物馆
金牌客户
  • 中国石油天然气集团公司
  • 中国农业银行
  • 中国建设银行
  • 波司登集团
  • 浙江移动
合作机构
  • 美国项目管理协会
  • 人力资源和社会保障部
  • 中华人民共和国工业和信息化部
  • 中国计算机技术职业资格网
  • CITIF中国电子信息行业联合会
  • PEOPLECERT
微信公众号
公众号

微信号:zpitedu

  • 中培教育 Copyright © 2006-2020 北京中培伟业管理咨询有限公司 .All Rights Reserved
  • 京ICP备13024721号  gonganimg  京公网安备11010602007294号  增值电信业务经营许可证:京B2-20201348  全国统一报名专线:400-626-7377