如何让我的老板相信以明文形式存储第三方密码是个坏主意?

信息安全 密码 密码管理
2021-08-18 10:48:33

保持模糊 - 我在一家为客户处理合规问题的公司工作。很多时候,这意味着我们需要为各种实体登录他们的各种帐户。我们存储他们的用户名和密码,以便他们更容易记住和访问,并让我们能够登录他们的帐户。

忽略一分钟共享登录的完整和全面的安全噩梦,用户名和密码似乎以明文形式存储。欢呼。

我怎样才能说服我的老板和上级,A)这是一个糟糕的主意,B)存储这些的更好的方法/方式

4个回答

为什么这是一个可怕的想法?

通过记录其他人的登录凭据,该公司承担了自己的责任由于公司现在应对使用这些凭据可能发生的恶意行为负责,因此公司应采取措施将风险降至最低。此外,与您互动的公司必须承担信任您的责任,如果事件公开,这可能会损害业务(如 symcbean 所述)

以明文形式存储密码(如您所知)无法防范这种风险。

什么是更好的解决方案?

正如您在评论中提到的,您需要的是类似密码管理器的东西。事实上,你想要的是一个密码管理器。

由于在密码学方面存在很大的错误空间,我建议使用已建立的密码管理器。您可以在网上找到无数的比较,但最终您的选择包括基于 GUI 的比较(如 1password、LastPass、keepass 等)或基于 cli 的自动访问(如 pass 或通过 LastPass cli)

是的,你做错了可怕的事情。你的雇主似乎专门从事合规工作,这让情况变得更加糟糕。公司的业务建立在您积极蔑视的卓越合规声誉之上。

不幸的是,在一个组织的各个层面,说服你的上级他们目前正在做的事情是一个坏主意是很困难的。如果我是你,我建议他们考虑他们的客户在以下情况下的反应:

  • 他们被告知您以明文形式存储他们的凭据(大概没有任何发布/审计控制使用)
  • 他们在论文中读到,另一位客户因这种做法而受到损害

至于更好的方法是什么……你真的想要正确的方法,平衡机密性、完整性、可用性和预算。有商业和开源产品可以帮助解决这个问题,但它需要更多的调查和分析,而不是适合这个论坛。

您根本不想存储用户的密码,甚至在 KeePass 或类似的东西中也不行。

  • 信息默认隐藏,但仍可轻松查看
  • 密码很容易共享,失去责任,即你怎么知道是用户而不是其他人在使用他们的帐户?
  • 如果密码被更新(例如,发现了一个错误的代理并且您想阻止进一步的访问),则必须在其他任何使用它的地方进行更新

这些是一些选项,按场景细分:

  1. 如果您使用的系统是您自己的并且得到积极维护,您可以要求提供用户欺骗功能。每个具有管理员访问权限的人都使用自己的管理员帐户登录,该帐户可以切换到任何基本用户的帐户,而无需知道他们的密码。这样,您可以进行更好的审核。您可以看到不是真正的用户做出了这些操作,而是特定的管理员用户欺骗了用户。这可以保护您和用户,因为任何人都不能指责对方恶意,除非可以证明用户拥有管理员密码或管理员拥有用户密码并且直接使用他们的帐户。

    • 您只知道自己的密码,即使受到威胁,也无法发现任何其他用户的密码(一个好的散列方案平均需要数百年才能破解每个密码)
    • 你只对自己的行为负责,而不是其他人
    • 如果用户的密码被更新,它不会影响您,因为它不会改变您访问他们帐户的方式
  2. 如果系统是外部的,即第三方,您可以尝试协商相同类型的用户欺骗功能,请记住,这可能是一个非常低的优先级,甚至对于某些公司来说甚至不是优先级,即可能永远不会发生,或者可能发生得非常缓慢(想想几年)。

  3. 如果系统不再维护,那么您就不走运了。您的选择是因为存在风险而停止使用它们,或者继续在本地存储密码并接受风险。

请记住,这不是是否会发生违规行为的问题,而是何时会发生违规行为的问题。

是的,很多事情。以明文形式存储密码显然是个坏主意。加密它们更好,但通常根本不存储密码。取而代之的是存储不可逆的散列。

但这里更大的问题是,使用用户密码填写表格意味着无法知道谁使用这些密码做了什么。假设您的客户群中的一位用户做错了事,甚至是非法的。他们声称一定是您组织中的某个人。你能证明不是吗?用户知道您可以访问密码,对吗?

正如其他答案中提到的那样,第三方更有可能获得这些凭据并使用它们。如果发生这种情况,您的组织可能再次成为指责的目标。

如果我是你,我会向任何你可以倾听的人解释风险。如果我理解正确,这些凭据适用于第三方系统。理想情况下,您应该在这些系统上为您的内部用户拥有帐户。如果您无法做到这一点,您应该尝试采用某种实现方式来防止您组织中的人员在访问每个系统时看到密码和日志。