如何处置web系统中的密码
2015-03-13 00:00
211 查看
摘要: 关于web系统中密码的处理。
密码,是敏感又重要的信息。对密码的处理是非常重要的。那么在web系统该如何处理密码呢?在下略有心得,备忘如下。
从用户在客户端/浏览器输入密码到传输到应用服务器,再存储到数据库。有很多措施可以用来提高密码的安全性。
使用
虽然前段时间出现
加密传输。
对原始密码进行单项加密可以有效提高破解成本,甚至完全杜绝渗透者获得用户的原始密码。虽然对于抓包者来说,仍然可以获得登录令牌,但至少他无法获得用户原始密码,不会把用户密码扔到社工字典里。很大程度上减少了密码泄露的损失。
密码加密有几点需要注意:
密码的加密一定要单向加密,一方面这样加密不影响使用,另一方面也比可解密的算法破解成本更高,从而提高了安全性。
选择多个语言都可以实现的算法。毕竟web系统基本都是多端的(web,ios,android等),一定要确保所有客户端都可实现才行。
权衡加密成本。如果加密需要额外软件包,从而增加安装包体积和依赖管理复杂度的话,就要根据实际情况有所取舍。
对于JavaScript。推荐:https://github.com/evanvosberg/crypto-js
crypt()
这个函数比较奇妙,它会根据加的盐不同而使用不同的加密算法。这对破解者来说着实是个噩梦,不仅要破解算法,还要破解盐。
password_hash
这是PHP 5.5开始增加的密码加密专用函数。如果生产环境已经使用PHP 5.5了,还是推荐使用这个函数。
密码,是敏感又重要的信息。对密码的处理是非常重要的。那么在web系统该如何处理密码呢?在下略有心得,备忘如下。
密码的轨迹
用户 => 应用服务器 => 数据库从用户在客户端/浏览器输入密码到传输到应用服务器,再存储到数据库。有很多措施可以用来提高密码的安全性。
用户 => 应用服务器
用户的原始密码经过http协议传输到应用服务器。使用
https。
虽然前段时间出现
心血漏洞,但是并不能说
https就没用了。
加密传输。
对原始密码进行单项加密可以有效提高破解成本,甚至完全杜绝渗透者获得用户的原始密码。虽然对于抓包者来说,仍然可以获得登录令牌,但至少他无法获得用户原始密码,不会把用户密码扔到社工字典里。很大程度上减少了密码泄露的损失。
密码加密有几点需要注意:
密码的加密一定要单向加密,一方面这样加密不影响使用,另一方面也比可解密的算法破解成本更高,从而提高了安全性。
选择多个语言都可以实现的算法。毕竟web系统基本都是多端的(web,ios,android等),一定要确保所有客户端都可实现才行。
权衡加密成本。如果加密需要额外软件包,从而增加安装包体积和依赖管理复杂度的话,就要根据实际情况有所取舍。
对于JavaScript。推荐:https://github.com/evanvosberg/crypto-js
应用服务器 => 数据库
服务器到数据库这一关也同样需要加密。当然,仍然是单向加密。这样,即使数据库被爆也至少不会让用户密码公之于众。 这里就PHP语言推荐两个函数:crypt()
这个函数比较奇妙,它会根据加的盐不同而使用不同的加密算法。这对破解者来说着实是个噩梦,不仅要破解算法,还要破解盐。
password_hash
这是PHP 5.5开始增加的密码加密专用函数。如果生产环境已经使用PHP 5.5了,还是推荐使用这个函数。
相关文章推荐
- 如何提高Web应用系统的性能和伸缩性(ZT)
- 如何实现从WinForm中打开一个需要身份验证的Web系统?
- 如何修改SQL Server 2000系统管理员Sa的登录密码?
- 如何以windows身份验证登录web系统
- 如何利用API获取WINDOWS系统所有用户名和密码(做过的朋友进来看看)
- OA系统中日程安排显示在web下应该如何做?
- 如何修改SQL Server 2000身份验证模式和系统管理员Sa的登录密码
- 教你如何进入有密码的 XP 系统
- LINUX下 如何验证系统用户名和密码是否正确。
- 不用工具如何清除vista密码(双系统)
- 如何取消系统记住密码
- 如何取消BIOS密码、系统用户密码和启动密码?
- 教你如何进入有密码的 XP 系统(下)
- 忘记了root密码,如何进入系统?
- 如何进入有密码的WinXP系统
- 如何在Web端验证Serv-U密码
- 教你如何进入有密码的 XP 系统(上)
- 如何清除保存在 Windows Mobile 上的 Outlook Web Access 访问密码
- 如何修改SQL Server 2000身份验证模式和系统管理员Sa的登录密码
- 不用工具如何清除vista密码(双系统)