Nik*_*hev 2 security encryption passwords salt
前段时间我加入了新项目.它正在开发很长一段时间.让我感到惊讶的是,所有用户的密码都以非加密形式存储.
我向管理层解释了这方面的巨大安全漏洞 - 看起来他们同意这一点,并希望使项目更安全.团队成员也同意.
我们在系统中有大约20K用户.
实际上,使这项工作非常紧张 - 将非加密密码迁移到加密形式.如果出现问题,可能导致项目灾难.
我该如何降低这种压力?备份?单元测试(整合测试)?
好吧,小心备份,因为它将包含未加密的用户密码:-)
假设密码存储在数据库中,一个简单的解决方案将是这样的:
1)对整个表数据进行安全备份
2)创建新列(PasswordEncrypted或类似名称)
3)使用UPDATE查询使用未加密密码的MD5更新每一行的新列,同时使用32字节或更大的盐.几乎每个数据库系统都具有MD5功能,因此您甚至不必离开SQL提示符
4)保留明文列,并相应地更新您的应用程序/脚本以使用加密密码.
5)重命名明文旧密码列以暂时将其取消播放并测试您的应用程序 - 如果有任何问题,请返回步骤4并修复您的错误.
6)当一切正常工作时,请删除明文密码列
7)鼓励用户选择新密码,因为您具有一定程度的安全性,以减轻以前可能成功的任何攻击的影响.
| 归档时间: |
|
| 查看次数: |
578 次 |
| 最近记录: |