Bri*_*ndy 5 security authentication database-design authorization
在没有有权访问数据库的员工的情况下,在系统中处理用户帐户管理的最佳方法是什么才能访问帐户.
例子:
在数据库中存储用户名/密码.这是个坏主意,因为任何有权访问数据库的人都可以看到用户名和密码.因此使用它.
存储用户名/密码哈希.这是一种更好的方法,但可以通过使用您知道身份验证信息的另一个帐户的哈希值替换数据库中的密码哈希来访问该帐户.然后在授予访问权限后将其还原回数据库中.
windows/*nix如何处理这个?
这是一种更好的方法,但可以通过使用您知道身份验证信息的另一个帐户的哈希值替换数据库中的密码哈希来访问该帐户.
真的没办法解决这个问题.任何对密码文件具有写入权限的人都可以完全控制计算机.
这是多年前 UNIX 中的一个常见问题,通过将用户身份组件(用户名、UID、shell、全名等)与身份验证组件(密码哈希、密码哈希盐)分离来解决。身份组件可以是全局可读的(事实上,如果要将 UID 映射到用户名,则必须是全局可读的),但身份验证组件必须保持用户无法访问。要对用户进行身份验证,需要有一个受信任的系统,该系统将接受用户名和密码,并返回“已通过身份验证”或“未通过身份验证”的简单结果。该系统应该是唯一有权访问身份验证数据库的应用程序,并且应该在回复之前等待一段随机时间(可能在 0.1 到 3 秒之间),以帮助避免定时攻击。
归档时间: |
|
查看次数: |
2682 次 |
最近记录: |