密码管理的最佳实践:如何避免常见的安全漏洞

最近有网友给锤锤投稿,说他们项目组的产品经理,在新软件项目中,对密码需求分析草草了事。上线后,用户反馈密码设置规则不清晰,找回密码流程繁琐,还出现安全漏洞,导致用户体验极差,项目陷入困境。那今天就给大家讲讲,关于密码的基础知识

什么是密码

密码是一种用于保护信息安全的技术手段,通常由一组字符、数字或符号组成。它可以用于验证用户的身份、保护敏感信息、控制访问权限等。 

因此,做好密码风险防范至关重要。密码的安全性直接关系到用户的个人信息安全、企业的商业机密安全以及整个信息系统的稳定运行。

密码不能明文储存

如果密码以明文形式存储,将带来极大的安全风险:

  1. 社会工程学:

    社会工程学是一种利用人的心理弱点、本能反应、好奇心、信任、贪婪等心理特征,通过欺骗、诱导等手段,获取信息、访问权限或进行其他恶意活动的方法。

    最常见的一个行为就是:人们会倾向于多系统采用一个密码,更容易记忆。

  2. 内部人员恶意窃取:

    如果内部人员存在恶意行为,他们可以轻松获取明文密码,从而导致用户信息泄露。内部人员可能会将密码出售给第三方,或者利用密码进行非法活动。

  3. 系统漏洞:

    由于系统漏洞等原因,数据库中的明文密码可能会被意外泄露。

    例如:软件漏洞、配置错误、拖库或安全策略不当都可能导致密码泄露。

MD5 + 盐

MD5 + 盐是一种增强密码安全性的存储方式,其原理如下:

  1. 生成盐值:

    当用户注册时,系统首先生成一个随机的盐值。盐值应该具有足够的随机性和长度,以确保安全性。

  2. 拼接密码和盐值:

    将用户输入的密码与生成的盐值拼接在一起。

  3. 进行 MD5 哈希计算:

    使用 MD5 哈希算法对拼接后的字符串进行计算,得到一个哈希值。

  4. 存储盐值和哈希值:

    将盐值和哈希值一起存储在数据库中。

这种存储方式的优势在于:

  1. 增加破解难度:

    即使多个用户使用相同的密码,由于盐值不同,最终得到的哈希值也会不同。这大大增加了攻击者通过哈希值反推原始密码的难度。

  2. 防止彩虹表攻击(也被称为词典攻击):

    彩虹表是一种预先计算好的哈希值与原始密码对应关系的表。使用盐值后,每个用户的盐值不同,即使攻击者有彩虹表,也很难直接破解出原始密码。

忘记密码的处理

忘记密码一般有以下五种处理方式

1.不显示密码的取回方式:

为了确保密码的安全性,当用户忘记密码时,系统不能直接显示用户的密码。而是通过另外的渠道帮助用户取回密码。

2.邮箱激活链接:

系统可以向用户注册时提供的邮箱发送激活链接。用户点击链接后,可以进入密码重置页面,设置新的密码。但这个方法并不是万全之法。这种方式需要确保邮箱的安全性,防止邮箱被黑客攻击或恶意窃取。

图片

3.二次身份验证(2FA):

2FA 是什么

2FA 即双因素身份验证,是一种在用户输入密码后,还需要提供另一种身份验证因素的安全机制。常见的 2FA 方式包括短信验证码、手机应用生成的动态验证码、硬件令牌、生物信息验证等。生物信息验证的方式有:面部识别、指纹识别、虹膜识别。

著名的“7pay”事故:

2019 年 7 月 1 日,日本 7-11 公司推出 “7pay” 无现金智能手机支付应用程序,但很快就遭遇了第三方非法入侵。黑客利用该应用程序密码重置功能的严重安全漏洞,盗用了用户账户。

由于密码重置链接可以被发到任意第三方电子邮箱,且没有二次验证,黑客只需要找到原账户持有人的电子邮件地址、出生日期和电话号码等信息,就可以重置密码并盗用账户。据报道,约 900 名用户合计损失约 5500 万日元(约合人民币 350 万元)。

图片

4.系统内修改密码

用户在登录系统后,可以在系统设置中修改密码。为了确保安全性,系统通常会要求用户输入旧密码进行验证,然后再设置新密码。因为登录后系统可能会被其他人触碰到。

所以2FA提供了更加安全的操作,例如,用户在登录时,除了输入密码外,还需要输入手机短信收到的验证码或手机应用生成的动态验证码,验证是本人后才能成功登录。

5.重置密码

用户可以通过系统提供的密码重置功能,设置新的密码。在重置密码过程中,系统通常会要求用户提供一些额外的信息,以确认用户的身份。例如,回答安全问题、提供注册时使用的手机号码等。

系统请求的返回值中不应该包含密码字段,避免密码被截取系统传输应该采用 HTTPS,以增加保护。

写在最后

对于从事业务分析(BA)工作的人员来说,掌握密码安全的基础知识非常重要。

BA 人员需要了解密码在系统中的作用、密码存储的风险以及安全的存储方式。他们还需要与开发团队合作,确保系统的密码安全策略得到有效实施。

业务流程设计不合理,无数次返工是否让你怀疑人生?

缺乏清晰的业务逻辑设计,拿到需求无从下手?

未能有效管理非功能性需求,导致系统性能不达标?

设计时未考虑系统间的数据互操作性差,导致差评无数?

10年+老产品的锦囊秘籍——可视化需求分析工具箱!

从需求编辑、阅读、查错、纠错、响应变更等多个角度出发进行设计。

历经数年研发,根据产品经理实际工作难点、并针对不同类型的需求和场景,设计的一套可直接应用的工具方法论。

开箱即用!按照场景类别分类总结而成,为产品经理量身定制,可以根据场景选用,方便快捷。

从编写、阅读、查错、纠错、变更等多个角度设计,充分经过大量案例验证

覆盖到各种常见的需求场景,例如UI类、流程类、定时任务类、逻辑类等。

帮助产品经理事半功倍的编写需求文档,帮助你快速上手需求分析!

产品经理需求工具——事半功倍的需求利器icon-default.png?t=O83Ahttps://edu.csdn.net/course/detail/39960

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值