历史上的今天
返回首页

历史上的今天

今天是:2025年06月03日(星期二)

正在发生

2019年06月03日 | 密码管理:你的密码安全吗?

2019-06-03 来源:EEWORLD

互联网时代,密码与我们的生活息息相关。如何提高密码安全系数成为用户个人以及公司的关注重点。

 

image.png?imageView2/2/w/550


虽然现在身份验证技术已经更加成熟,但是密码仍然是保护我们最敏感信息的主要途径。密码是防御潜在入侵者试图模仿另一个用户的第一道防线,但这样的防护往往比较弱。用户通常想创建易于记忆的密码,使用出生日期或纪念日,甚至写下来。开发人员则想尽可能少地投入密码管理策略中。毕竟,研发新功能比密码管理和存储更令人兴奋、更有趣。

 

许多密码本身安全性非常弱,很容易猜得到,攻击者就会有机可乘。最糟糕的是,我们信任的密码存储系统和其它关键信息的系统也面临着许多安全挑战。黑客会反复尝试密码数据库进行盗窃,攻击者同伙经常会破坏那些保护数据的模式。

 

image.png?imageView2/2/w/550


我们探讨一下公司在密码管理策略方面做出的一些常见错误。让在下面的讨论中,我们将提到“在线攻击”和“离线攻击”。在线攻击是对应用程序登录页面的攻击,攻击者试图猜测用户的密码;离线攻击是攻击者获取密码数据库副本,并尝试计算存储在其中的用户密码的攻击。

 

image.png?imageView2/2/w/550


您已限制用户可以使用的字符数量或种类

 

推理:


安全人员反复告诉开发人员验证所有输入以防止各种攻击(例如,注入攻击)。因此,根据某些规则来制定验证密码的规则必然是一个好主意,对吧?

 

攻击:


限制密码中字符数量或种类的问题是减少了可能的密码总数。这使得在线和离线攻击更容易。如果我知道只允许在密码中使用特殊字符!和@,那也就是我知道用户密码都没有包含#,$,%,<和>等字符。此外,如果我知道只允许长度为8到12个字符的密码,我也就知道所有用户都没有使用13个字符或更长的密码。如果我想猜测用户的密码,这些规则可以让我的工作变得更轻松。

 

 

但是SQL注入、跨站点脚本,命令注入和其它形式的注入攻击呢?如果遵循密码存储最佳做法,您将在收到密码后立即计算密码的哈希值。然后,您将只处理哈希密码,不必担心注入攻击。

 

防御:


允许用户选择包含任意字符的密码。指定最小密码长度为8个字符,但在可行的情况下允许任意长度的密码(例如,将它们限制为256个字符)。

 

您在使用密码组合规则

 

推理:


大多数用户选择容易猜到的密码。我们可以通过让用户选择包含几种不同类型字符的密码,以强制用户选择难以猜测的密码。

 

攻击:


安全专业人员曾经认为,让用户选择包含各种字符类型的密码会增强密码的安全性。不幸的是,研究表明这通常没有帮助。 “Password1!”和“P @ ssw0rd”可能遵循了许多密码组合规则,但这些密码并不比“password”更强。密码组合规则只会让用户难以记住密码;它们不会让攻击者的工作变得更加困难。

 

防御:


摆脱密码组成规则。在应用程序中添加密码复杂性检查功能,告诉用户他们的密码选择是否明显强度偏弱。但是,不要强制用户在其密码中添加数字、特殊字符等。稍后,我们将讨论如何使应用程序更安全,以防止安全性弱的用户密码。

 

您没有安全地存储密码

 

推理:


加密哈希函数是单向函数。因此,存储哈希密码应该可以防止攻击者计算出它们。

 

攻击:


与前面讨论过的两个问题不同,这个问题通常只与离线攻击有关。许多企业和组织的密码数据库都被盗了。当掌握了被盗密码库和强大的计算能力,攻击者通常可以计算出许多用户的密码。


存储密码的常用方法是使用加密哈希函数,对密码进行哈希处理。如果最终用户选择完全随机的20+字符密码,这种方法将是完美的。例如密码设成:/K`x}x4%(_.C5S^7gMw)。不幸的是,人们很难记住这些密码。如果简单地对密码进行哈希处理,则使用彩虹表攻击就很容易猜到用户选择的典型密码。

 

阻止彩虹表攻击通常需要在对每个密码进行散列之前添加随机“盐”。“盐”可以与密码一起存储在清除中。不幸的是,加盐的哈希并没有多大帮助。 GPU非常擅长快速计算加盐哈希值。能够访问大量加盐哈希和GPU的攻击者将能够使用暴力破解和字典攻击等攻击合理且快速地猜测到密码。

 

有太多不安全的密码存储机制,值得专门写篇文章去探讨。不过,我们先来看看您应该如何存储密码。

 

防御:


有两种主要机制可以防止攻击者:一种是使哈希计算更加昂贵,另一种是向哈希添加一些不可估测的东西。

 

为了使哈希计算更加昂贵,请使用自适应哈希函数或单向密钥派生函数,而不是密码哈希函数来进行密码存储。加密哈希函数的一个特性是它们可以被计算出来;这个属性导致它们不适合用于密码存储。攻击者可以简单地猜测密码并快速散列以查看生成的哈希值是否与密码数据库中的任何内容匹配。

 

另一方面,自适应哈希函数和单向密钥导出函数具有可配置的参数,这些参数可用于使哈希计算更加资源密集。如果使用得当,它们可以有助于充分减缓离线攻击,以确保您有时间对正在受到攻击的密码数据库做出反应。

 

这种方法的问题在于,每次要对用户进行身份验证时,都必须自己计算这些哈希值。这会给服务器带来额外负担,并可能使应用程序更容易受到DoS(拒绝服务)攻击。

 

或者,您可以添加一些不可猜测的密码哈希值。例如,如果要生成一个长随机密钥,将其添加到密码哈希值以及唯一的随机盐,并且稳妥地保护密钥,那么被盗密码数据库对攻击者来说将毫无用处。攻击者需要窃取密码数据库以及能够使用离线攻击计算出用户密码的密钥。当然,这也产生了一个需要解决的非常重要的密钥管理问题。

 

您完全依赖密码

 

推理:


密码必须是验证用户身份的好方法。其他人都在使用它们!

 

攻击:


即使用户执行上述所有操作,以使在线和离线攻击更加困难,也无法阻止其它应用程序/网站执行不恰当的操作。用户经常在许多站点上重复使用相同的密码。攻击者经常会在某平台尝试从其它平台盗取密码。

 

此外,用户成为网络钓鱼攻击的受害者,因为一些用户无论密码要求如何都会选择安全性弱的密码,等等。

 

防御:


要求用户使用多因素身份验证登录。请记住多因素身份验证的含义:使用至少两种不同因素进行身份验证(典型因素是您知道的事情、拥有的物品、以及生物识别等等)。使用两种不同的密码(例如,密码+安全问题的答案)不是多因素身份验证。同时使用密码和动态口令属于多因素验证的一种。此外,请记住,某些多因素身份验证机制比其它多因素身份验证机制更安全(例如,加密设备比基于SMS的一次性密码更安全)。无论如何,使用某种形式的多因素身份验证总是比仅依靠密码更安全。

 

如果必须仅使用密码进行身份验证,用户则还必须采取某种类型的设备身份验证。这可能涉及设备/浏览器指纹识别,检测用户是否从不寻常的IP地址登录,或类似的方式。

 

结论


如您所见,处理用户密码时需要考虑很多事项。我们还没有谈到密码轮换策略、帐户锁定、帐户恢复、速率限制,防止反向暴力攻击等等。

 

有一个很重要的问题需要考虑:您是否可以将用户身份验证转给其他人?如果你是一家金融机构,答案可能是否定的;如果您要把最新的猫咪宠物视频给别人看,在此之前需要验证,那这种情况下答案应该是可以的;如果您正在开发面向企业员工内部使用的应用程序,请考虑基于SAML的身份验证或LDAP集成;如果您正在开发面向公众的应用程序,请考虑使用社交登录(即使用Google,Facebook等登录)。许多社交网站已经投入大量精力来保护其身份验证机制,并为用户提供各种身份验证选项。您不需要全盘重来。

 

在不必要的情况下实施用户身份验证会给企业和用户都带来麻烦,甚至有潜在危险。创建安全的用户验证机制困难且耗时。可您是真的想要处理被盗用的密码数据库,还是攻击者在身份验证机制中发现漏洞?而且用户有更重要的事情要做,而不是记住另一个密码!


推荐阅读

史海拾趣

CTC [Compact Technology Corp.]公司的发展小趣事

CTC公司深知人才是企业发展的核心。因此,公司一直注重人才培养和引进。通过与高校和研究机构的合作,CTC公司吸引了大批优秀的科研人才加入。同时,公司还建立了完善的培训体系,为员工提供持续的技能提升和职业发展机会。这些人才成为了CTC公司发展的中坚力量,为公司构筑了核心竞争力。

ALTERA(阿尔特拉)公司的发展小趣事

CTC公司在创立初期便致力于半导体技术的研发。一次偶然的实验中,公司团队成功研发出了一种新型的晶体管结构,这一创新使得晶体管的工作效率大大提升,同时降低了能耗。这一技术突破迅速引起了行业的关注,CTC公司的名字开始在电子行业中崭露头角。随着该技术的普及和应用,CTC公司的业务逐渐扩大,奠定了在电子行业的重要地位。

长江连接器(CJT)公司的发展小趣事

为了进一步拓展市场和提升竞争力,长江连接器开始实施全球化战略。公司积极在海外设立生产基地和研发中心,加强与国际知名企业的合作和交流。通过引进国际先进的生产技术和管理经验,长江连接器不断提升自身的生产能力和管理水平。同时,公司还积极参与国际竞争和合作,与全球各地的客户建立了长期稳定的合作关系。

EREM公司的发展小趣事

随着全球市场的不断融合,EREM公司开始寻求国际合作机会。通过与国外知名企业的合作,EREM不仅将产品销售到了全球各地,还学到了许多先进的管理经验和技术。同时,EREM也积极参与国际展览和交流活动,提升了品牌知名度和影响力。这些努力使得EREM在国际市场上逐渐崭露头角。

DB Unlimited公司的发展小趣事

在音频市场日益竞争激烈的环境下,DB Unlimited意识到定制化服务的重要性。因此,公司开始提供定制设计服务,以满足客户对特定音频需求的个性化要求。通过与客户的紧密合作和深入沟通,DB Unlimited成功为客户解决了许多复杂的声学设计问题,赢得了客户的信任和赞誉。

FILTRONIC公司的发展小趣事

FILTRONIC深知技术创新是企业持续发展的动力源泉。因此,公司不断加大研发投入,建立了先进的研发中心和实验室,吸引了一批高素质的研发人才。通过持续的技术研发,FILTRONIC在滤波器技术、射频技术、天线技术等领域取得了多项重要突破,推出了多款具有自主知识产权的新产品。这些新产品的推出不仅进一步巩固了FILTRONIC在市场中的领先地位,也为公司的未来发展注入了新的活力。

问答坊 | AI 解惑

关于s3c2440nGCS的问题

我用S3C2440的wince5.0 BSP,在使用总线控制时(用nGCS1-nGCS5作设备地址片选信号),我用nGCS1时是可以的,但用nGCS2,nGCS4,nGCS5都没有成功(输出的数据不正确)。是不是这些地址系统内部保留用作其它用途了,还是?如想使用这些片选该如何修改BS ...…

查看全部问答>

关于vxworks源码

刚安装了windriver的tonardo 2.2 / vxworks 5.5 问题一: 看到里面vxworks的内核源代码都有,感到非常奇怪,vxworks不是不开源的吗,这里怎么连代码都有呢? 问题二:vxworks 操作系统的系统管理命令有没有?我用help查到的命令都是管理任务和查 ...…

查看全部问答>

oledb.h 在Pocket PC 2003里能找到,但在 Moblie6里找不到。

新建一个Pocket PC 2003工程,可以包含oledb.h 但新建一个Moblie6只能设备的工程,就不能包含oledb.h 了, 提示找不到文件,怎么解决? VS2005下。 …

查看全部问答>

嵌入式对英语要求高吗

嵌入式开发对英语要求高吗   我感觉应用软件开发对英语还是有较高的要求的  像MSDN里的函数解释都是英文的  很多API函数也是英文的 那嵌入式呢  对英语要求高吗    会用到很多API函数的调用 ...…

查看全部问答>

继续OV2640摄像头问题

嘿嘿,虽然发帖有时候得不出直接的答案,但是我感觉多一种思路对自己帮助还是蛮大的,上周图像的是出现了,但是,效果很雷人。 今天更加不得了了。 现在出大问题了,这个OV2640 怎么那么容易坏啊, 一个调试了一周,初始化设置读不出了,但是ID ...…

查看全部问答>

2440 camera + TVP5150的问题

TVP5150通过2440的camera连接 DVD信号通过TVP5150处理后由2440显示出来 当图象宽度大于360时(高度任意),图象右部变花(变花部分大概有一个大拇指指甲盖那么宽,约为60),但左边正常。如果图象宽度继续增大,变花部分随着右移,但变花的宽度基 ...…

查看全部问答>

EEPROM

9S12如何往EEPROM中写数据…

查看全部问答>

TMS570LS31USB上CAN通讯测试!

TMS570LS31USB上CAN通讯测试! …

查看全部问答>

MSP430软件工程师(招聘)

招聘MSP430软件工程师职位描述: 1.      编写程序模块代码(如液晶屏和按键驱动程序,传感器采集模块等);2.      熟悉MSP430系列单片机及开始环境;3.      负责公司部分产品的软件 ...…

查看全部问答>