gpt4 book ai didi

database - 密码安全 : database connection password vs storing user passwords

转载 作者:搜寻专家 更新时间:2023-10-30 19:51:01 24 4
gpt4 key购买 nike

在过去的几天里,我一直在阅读大量有关密码安全的书籍。这些帖子通常有很长的评论线程,因此很难确定明确的答案。

一般来说,这似乎是推荐的做法

  • 将数据库连接密码存储在文档根目录之上的单独配置文件中。此文件不受版本控制并受文件系统权限保护。

  • 使用经过验证的安全哈希算法对用户密码进行哈希处理,每个密码的加盐值都是唯一的。

我不想重复(双关语)之前已经提出和回答过的相同问题。所以我不想详细说明如何保护密码。

我想了解的是,如果以纯文本形式存储数据库连接密码是可以接受的,为什么会有这么多关于如何确保用户密码安全的讨论(和分歧)。

为什么存储在数据库中的密码比保存连接密码的配置文件更容易受到攻击?攻击者不需要访问我的系统才能从我的数据库中获取用户密码吗?

就我而言,我在 CentOS 上使用 PHP/MySQL,但这个问题也适用于其他环境。

最佳答案

What I am trying to understand is why there is so much talk (and disagreement) about how to make the user passwords secure if it's acceptable to store the database connection password in plain text.

存在如此多的分歧有以下三个原因。首先,讨论通常缺乏威胁模型。其次,对于什么是威胁,意见不一。第三,对于如何应对特定威胁,意见不一。由于威胁没有明确定义,人们会忽略一些威胁并将他们的意见扔给其他人。

OWASP 的 John Stevens 整理了一份关于服务器密码安全和存储的好文档。它遍历了攻击和威胁,然后添加了消除威胁的步骤。以下是对 OWASP Material 的引用:


So I don't want to get into the specifics of how to secure the passwords.

嗯,有了威胁模型之后,问题就出在细节上。


Why are the passwords stored in the database more vulnerable than the config file that holds the connection password?

这取决于很多事情。例如,如果管理员有权访问配置文件然后离开公司怎么办。或者,如果您将数据库备份发送到异地怎么办?这些威胁在您的威胁模型中吗?


Doesn't an attacker need to get access to my system in order to get the user passwords from my database?

您需要一个定义明确的威胁模型。

同样,离开公司的管理员呢?他可以访问所有密码。

或者异地备份怎么样? express 员和现场工作人员可以访问密码。

或者通过 FISA 信函交出所有用户名和密码怎么样。 Lavabit 关闭是因为政府要求一切,他们感兴趣的一个用户(爱德华·斯诺登)的密码和 key 。

这些威胁都不涉及远程攻击者试图侵入您的系统。


Doesn't an attacker need to get access to my system in order to get the user passwords from my database?

在所有条件都相同的情况下,不。坏人会尝试对您的用户进行网络钓鱼,因为这是最简单的。


有关密码的更多阅读(不仅仅是存储),请参阅 Peter Gutmann 的 Engineering Security .您知道使用密码复杂性策略是个坏主意吗?在 N 天后使密码过期是个坏主意吗? Guttman 的书告诉您原因并引用了相关的安全研究。

关于database - 密码安全 : database connection password vs storing user passwords,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22571908/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com