我怎么知道开发人员会合乎道德并且不会以明文形式记录我的密码

信息安全 密码
2021-08-21 13:01:04

我不是在问为什么要进行散列。相反,我想知道如何防止开发人员记录用户密码来破解他们用户的其他帐户,尤其是他们的电子邮件。

他们不能在用户不知道的情况下以明文形式存储用户的密码吗?

用户有什么方法可以检测/防止这种情况吗?

4个回答

他们当然可以,但他们也可以在您每次更改密码时通过电子邮件发送给自己。

现在,根据系统的类型,有大量的法规、审计、审查和流程可能与确保开发人员不这样做或许多其他类型的恶意活动相关。但是,作为消费者,您通常对此没有太多了解 - 除非出现问题,例如当您要求重置密码时,如果他们通过电子邮件将您的原始密码发送给您。

但是你在这里问错了问题。
是的,重要的是无论您使用什么系统都是安全地开发的,但这永远不会消除您在系统本身中始终拥有的隐含信任元素 - 在这种情况下,开发人员等同于系统本身。

你应该问的真正问题——实际上你似乎在暗示这一点——是如何保护你在其他系统上其他帐户免受恶意开发者或系统的侵害
答案很简单,真的——为每个系统使用不同的密码。

为了强调,请允许我重复一遍:

切勿在不同的系统上重复使用密码。

为每个站点创建一个唯一的(强密码、随机密码等)密码,并且永远不要将 SiteA 的密码输入到 SiteB。
因为正如您直观地指出的那样,如果 SiteB 以任何形式拥有 SiteA 的密码,那么该密码对 SiteB 不再安全。

只是为了好玩,这里有一个 xkcd

XKCD 密码重用


最后一点,如果您开始担心“我怎么会为每个不同的站点独立记住一个强密码??!!?” - 看看这个关于密码短语的问题,并查看密码管理器(例如 Password Safe、Keepass、LastPass、1Pass 等)。

您无法知道某人的行为会合乎道德或明智,因此:

  1. 切勿跨站点重复使用密码。
  2. 决定要分享多少信息。
  3. 保留不需要的信息,并怀疑任何网站要求提供比为您提供特定服务所需的更多信息。

恐怕有些开发者没有足够的前瞻性来理解信息泄露对他们用户的影响,所以保护自己而不是依赖他人。

正如其他人所说,一旦你交出数据,你就无法完全知道开发人员对你的数据做了什么。它可能会给您一些信心来检查站点的运行方式,以查看它们是否在您可见的系统部分上遵循安全最佳实践。

  • 他们是否在包含敏感信息(包括登录)的页面上使用 HTTPS?
  • 他们是否避免在任何地方传输密码短语,包括电子邮件(甚至不发送给您)?
  • 他们是否允许两因素身份验证?

选中这些框并不能保证他们不会在其他地方做一些不正当的事情,但它可以让您更好地了解开发人员是如何设置网站的。

如前所述,避免密码重复使用是您可以遵循的最重要的安全实践来保护自己。

您可以告诉他们能够获取您的密码的一种方法是,忘记密码系统是否能够通过电子邮件将您的旧密码发送给您。如果它强制您生成或设置一个新的,那么它们仍然有可能以纯文本/2 方式加密存储。

您可以判断的另一种方法是注册一个免费的 hotmail 帐户并使用相同的密码注册几个(受信任的)站点,看看是否有任何事情发生。

除此之外,你真的说不出来。