为什么纯文本密码是坏的,我如何说服我的老板,他的宝贵的网站处于危险之中?

passwords plaintext 匿名 | 2020-02-27 02:20:53


我一直认为,将密码以纯文本形式存储在数据库中是一件非常糟糕的事情(这里有人这么说)。
历史上,我们的大部分服务器端编码需求都外包给了一组程序员。它们在MySQL数据库中以纯文本存储密码。
作为常驻代码猴(顺便说一句,第一个在这里工作的服务器端悟性猴,所以我继承了地球),我有一种胃痛的感觉,当这种纯文本的胡说八道被利用时,我的屁股会站在线上。
我试图向老板解释纯文本密码有多糟糕,但我突然意识到:我想我从来都不知道它们为什么这么糟糕。有没有比给你的黑客一份银盘上的密码清单更重要的呢?这听起来对我来说已经够糟糕的了,但是在拉腊岛,我们的网站是“安全的”并且不受任何黑客的攻击,这种争论似乎并没有减少它。我怎样才能说服(或吓唬)我的老板,让他在他珍爱的网站上大肆宣扬?
相关:加密/散列
数据库中的文本密码





9 答案



在军队里,这叫做“纵深防御”。理论上说,你可以硬化每一层,而不是仅仅硬化一层,希望它足够。
我听过像你这样的数据库,称之为“外表坚硬,内心柔软,有嚼劲”。专门的黑客有上百万种方法可以访问你的数据库。社会工程,一个不满的雇员,一个决定看看他的登录是否仍然有效的前雇员,或者他写的后门仍然存在,一个错过的操作系统补丁。。。如果一个坏角色通过这些方法中的任何一种获得访问权限,而不仅仅是获取数据,他可以访问系统中每个用户的每个用户名/密码组合,正如有人指出的那样,人们通常对每个网站使用相同的组合。所以你的黑客出去拥有数百人的贝宝、电子邮件和银行账户。
我画了一幅够可怕的图画了吗?

2020-02-27 02:21:04
匿名


告诉他要考虑到在许多公司里,安全问题来自内部而不是外部。
现在问他下一次因为某种原因解雇某人时,他将如何向他的客户解释黑客是如何窃取他们的密码的(毫无疑问,他们在其他地方使用了密码)。
还问他,他认为他的客户愿意要知道他们的密码对任何具有数据库读取权限的人都是可见的。

2020-02-27 02:21:15
匿名


以下是几个原因:
可能有人闯入您的网站。这可能不太可能,而且这可能不会动摇你的老板(我现在可以听到这样的对话:“你是说网站不安全吗?”)但是,这是真的,记住,没有人会认为他们的网站会真的被内部人士(比如你自己)随意浏览数据库:你可能不会试图查看任何人的密码,但在正常工作过程中,你可能需要查看包含密码的表。考虑到很多人对所有事情都使用相同的密码(可能包括你的老板!)你不会希望所有的密码都暴露出来。如果有人发现你的应用程序没有加密密码,他们可能会严重质疑你的应用程序的信任度,把密码(最好是用盐)散列到数据库中基本上不需要花费什么,为什么不呢?

2020-02-27 02:21:28
匿名


您可能希望指出,如果信息被泄露,未能妥善保护账户可能会使公司承担法律责任。如果用户的数据是由于您公司的行为(或不作为,视情况而定)而暴露的,忽略已知的漏洞可能会导致您付出法律费用。
在美国,某些类型的数据(如财务和医疗信息)在法律上必须保密。否则会造成严重后果。我不熟悉其他国家在这方面的法律,但如果贵公司正在处理此类数据,则值得调查。

2020-02-27 02:21:43
匿名


除了安全风险,我想知道如果你的客户发现你公司的每个员工都有密码,他们会怎么说。当涉及到可能的泄漏时,如果:
数据库由外部公司备份,则密码有风险
运行数据库软件的操作系统存在任何安全风险
任何其他硬件或软件防火墙中的安全漏洞
任何有权访问数据库的用户以某种方式获得可利用数据的病毒
数据库碰巧位于失窃的电脑或笔记本电脑
心怀不满的员工被解雇,并决定“回去”
每隔一段时间,你就会听到一些企业将敏感信息以纯文本存储,而且结局永远不好。我们都是人,容易出错,在安全问题上,你不能假设完美。你不会发现任何大的,盈利的公司为任何可以避免的风险留有余地,因为任何可能发生的坏事都会发生……

2020-02-27 02:22:01
匿名


如果“在银盘上给你的破解者一份密码列表”不是一个足够好的理由,那么什么才是足够好的理由呢?

2020-02-27 02:22:22
匿名


有太多使用纯文本密码的数据库被窃取的情况:如果reddit可能发生这种情况,那么它可能发生在您身上。

2020-02-27 02:22:43
匿名


如果您的组织保持PCI-DSS合规性(例如,接受信用卡的商户),则不允许使用明文密码。请参阅PCI DSS第8.4项。
如果您的组织是由FDIC投保的金融机构,则不允许使用明文密码(请参阅FDIC FIL 69 2001)。
如果您希望获得ISO/IEC 27001认证(例如,如果您与某些政府机构合作),则应在传输和静止时对密码进行加密。

2020-02-27 02:23:05
匿名


对于这个问题,我看到的两个很好的答案是:
您保护密码不被窥探员工发现,也就是说,拥有合法数据库访问权限的人如果有这种倾向,就不可能轻易窃取密码,
一个应用程序逻辑缺陷,例如网站前端的SQL注入,会降低导致妥协的可能性。
在我看来,加密数据库密码是一个好主意(虽然我还没有开始对大多数应用程序进行加密),但更重要的是确保您的数据库服务器在网络和授权访问方面尽可能防弹。如果攻击者能够访问您的数据库,那么无论您是如何存储密码的,他们都能够破解密码。

2020-02-27 02:23:18
匿名


World is powered by solitude
备案号:湘ICP备19012068号