密码管理:您的密码安全吗?

发布者:上海IT外包来源:http://www.lanmon.net点击数:1409

在互联网时代,密码与我们的生活密切相关。如何提高密码安全系数已成为用户和公司关注的焦点。
虽然身份验证技术现在更加成熟,但密码仍然是保护我们最敏感信息的主要方式。密码是防御潜在入侵者试图模仿另一个用户的第一道防线,但这种保护通常很弱。用户通常希望创建易于记忆的密码,使用出生日期或纪念日,甚至将其写下来。开发人员希望尽可能少地投入密码管理策略。毕竟,开发新功能比密码管理和存储更令人兴奋和有趣。
许多密码本质上非常安全且易于猜测,攻击者可以利用它们。最糟糕的是,我们可靠的密码存储系统和其他关键信息系统面临着许多安全挑战。黑客将反复尝试密码数据库进行盗窃,而攻击者往往会打破保护数据的模式。
让我们探讨一下公司在密码管理策略中常犯的一些错误。我们在下面的讨论中讨论“在线攻击”和“离线攻击”。在线攻击是对应用程序登录页面的攻击。攻击者试图猜测用户的密码。离线攻击是一种攻击,攻击者获取密码数据库的副本并尝试计算存储在其中的用户密码。
密码管理:您的密码安全吗?
您已限制用户可以使用的字符数或类型
推理:
安全人员反复告诉开发人员验证所有输入以防止各种攻击(例如,注入攻击)。因此,根据某些规则制定验证密码的规则是个好主意,对吧?
攻击:
限制密码中字符数量或类型的问题是减少可能的密码总数。这使得在线和离线攻击更容易。如果我知道密码中只允许使用特殊字符!和@,然后我知道用户密码不包含#,$,%等。另外,如果我知道只允许长度为8到12个字符的密码,我知道所有用户都没有使用13个字符或更长的密码。如果我想猜测用户的密码,这些规则可以使我的工作更轻松。
但SQL注入,跨站点脚本,命令注入和其他形式的注入攻击?如果您遵循密码存储最佳做法,您将在收到密码后立即计算密码的哈希值。然后,您将只处理散列密码而不必担心注入攻击。防御:
允许用户选择包含任何字符的密码。指定最小密码长度为8个字符,但允许任何长度的密码(如果适用)(例如,将其限制为256个字符)。
您正在使用密码组合规则
推理:
大多数用户选择容易猜到的密码。我们可以通过让用户选择包含多种不同类型字符的密码来强制用户选择难以猜测的密码。
攻击:
安全专业人员曾经认为让用户选择包含各种字符类型的密码可以增强密码的安全性。不幸的是,研究表明这通常没有帮助。 “密码1”!并且“P @ ssw0rd”可能遵循许多密码组合规则,但这些密码并不比“密码”强。密码组合规则只会使用户难以记住密码;他们不会让攻击者的工作变得更加困难。
防御:
摆脱密码组成规则。向应用添加密码复杂性检查,以告知用户他们的密码选择是否明显较弱。但是,请勿强制用户在其密码中添加数字,特殊字符等。稍后,我们将讨论如何使应用程序更安全,以防止弱用户密码。
密码管理:您的密码安全吗?
您没有安全密码
推理:
加密散列函数是单向函数。因此,存储散列密码应该可以防止攻击者计算它们。
攻击:
与前面讨论的两个问题不同,此问题通常仅与离线攻击有关。许多公司和组织都窃取了他们的密码数据库。当掌握了被盗的密码系统和强大的计算能力时,攻击者通常可以计算出许多用户的密码。
存储密码的常用方法是使用加密哈希函数对密码进行哈希处理。如果最终用户选择完全随机的20+字符密码,则此方法将是完美的。例如,密码设置为:/K`x} x4%(_。C5S ^ 7gMw)。不幸的是,人们很难记住这些密码。如果您只是对密码进行哈希处理,则很容易猜到用户使用彩虹表攻击选择的典型密码。
阻止彩虹表攻击通常需要在散列每个密码之前添加随机“盐”。 “Salt”可以与密码一起存储在清除中。不幸的是,盐的哈希并没有多大帮助。 GPU非常擅长快速计算盐渍哈希值。能够访问大量盐渍哈希和GPU的攻击者将能够使用诸如强力攻击和字典攻击等攻击合理快速地猜测密码。
有太多不安全的密码存储机制,值得写一篇特别的文章来探讨。但是,我们先来看看你应该如何存储你的密码。
防御:
防止攻击者有两种主要机制:一种是使哈希计算更加昂贵,另一种是向哈希添加不可预测的内容。要使哈希计算更加昂贵,请使用自适应哈希函数或单向密钥派生函数,而不是密码哈希函数来进行密码存储。加密散列函数的一个特征是可以计算它们;此属性使它们不适合密码存储。攻击者可以简单地猜测密码并快速散列它以查看生成的散列是否与密码数据库中的任何内容匹配。
另一方面,自适应散列函数和单向密钥导出函数具有可配置参数,可用于使散列计算更加耗费资源。如果使用得当,它们可以帮助缓解脱机攻击,以确保您有时间对受到攻击的密码数据库做出反应。
这种方法的问题在于,每次要对用户进行身份验证时,都必须自己计算这些哈希值。这给服务器带来了额外的负担,并可能使应用程序更容易受到DoS(拒绝服务)攻击。
或者,您可以添加一些无法使用的密码哈希值。例如,如果要生成长随机密钥,将其添加到密码哈希和唯一的随机盐中,并安全地保护密钥,则被盗密码数据库对攻击者来说将毫无用处。攻击者需要窃取密码数据库和可以使用脱机攻击来计算用户密码的密钥。当然,这也产生了一个非常重要的关键管理问题,需要解决。
你完全依赖密码
推理:
密码必须是验证用户身份的好方法。其他人都在使用它们!
攻击:
即使用户执行上述所有操作以使在线和离线攻击更加困难,他们也无法阻止其他应用程序/站点执行不适当的操作。用户经常在许多站点上重复使用相同的密码。攻击者经常试图从平台上的其他平台窃取密码。
此外,用户成为网络钓鱼攻击的受害者,因为有些用户选择弱密码而不管密码要求,等等。
防御:
要求用户使用多重身份验证登录。请记住多因素身份验证的含义:使用至少两个不同的身份验证因素(典型因素是您知道的事项,您拥有的项目和生物识别等)。使用两个不同的密码(例如,密码+安全问题的答案)不是多因素身份验证。同时使用密码和动态密码是一种多因素身份验证。此外,请记住,某些多因素身份验证机制比其他多因素身份验证机制更安全(例如,加密设备比基于SMS的一次性密码更安全)。在任何情况下,使用某种形式的多因素身份验证始终比仅依靠密码更安全。
如果您只能使用密码进行身份验证,则用户还必须进行某种类型的设备身份验证。这可能涉及设备/浏览器指纹识别,检测用户是否从不寻常的IP地址登录等。
IT外包
>
400-635-8089
立即
咨询
电话咨询
服务热线
400-635-8089
微信咨询
微信咨询
微信咨询
公众号
公众号
公众号
返回顶部