SSO 如何增强安全性?

信息安全 sso
2021-09-04 07:00:48

以下引用来自 CompTIA Security+ 指南:

单点登录通过要求用户只使用和记住一组用于身份验证的凭据来增强安全性。

那如何增强安全性?我认为它是一个单点故障。

为不同的帐户/服务设置多个不同的密码不是更安全吗?

4个回答

具有良好单点登录的想法是,您的凭据被泄露的地方更少。使用不同的密码有三个原因,首先,因为每个存储密码的唯一位置(希望是散列的)都是另一个可能被泄露的位置。其次,因为如果您的密码被泄露,任何其他使用它的帐户都需要更新,而这很难做到。第三,因为如果您的密码被泄露,他们可以访问多个共享帐户。

SSO 对于前两者来说是一个很大的优势。一个好的 SSO 系统应该只将您的帐户凭据存储在一个位置(希望这个位置更加坚固)。所有身份验证都是针对这一商店完成的。如果您的帐户被盗用,而不是有很多地方需要更新,只需更改一个密码并锁定一个帐户。

它并没有特别解决第三个问题,但它首先降低了妥协的可能性。此外,根据帐户的不同,不同的密码不一定会成为障碍。有很多攻击者使用一个被入侵的帐户从一个帐户链接到另一个帐户的例子,直到他们可以访问他们想要的实际帐户。(例如,如果他们可以访问您的电子邮件帐户,那么他们可以使用密码重置。)一个好的系统报告泄露并允许帐户被锁定可以为减轻风险提供体面的帮助,尽管在可疑活动时被检测到。

完全唯一的凭证可能比良好的 SSO 设置更安全的论点可能是有效的,但在现实世界中,大多数人会重复使用凭证。SSO 减轻了这种行为的大部分风险,同时仍然提供人们想要的便利。

用户拥有的密码越多,他们就越难管理。

他们会更频繁地忘记密码,这意味着他们需要联系帮助台或自动化系统来重置密码。这种密码重置程序通常容易受到各种不同的攻击。帮助台人员可以通过社会工程被欺骗,自动重置系统发送的电子邮件可以被拦截。

另一种选择是当用户对所有内容使用相同的密码时,这是一个非常糟糕的主意,因为一个系统中的密码泄露会危及所有系统。SSO 似乎在做同样的事情,但大多数 SSO 系统的工作方式是使用它的应用程序知道用户的实际密码。通常用户只对 SSO 系统进行身份验证,然后向用户和应用程序发送一次性使用令牌。

我提倡在我们的 Intranet 应用程序上使用 SSO 以提高安全性。理论上,它不会。许多不同的安全数据库,每个都有一个随机密码,与用户拥有的任何其他密码无关,理论上更安全。但在实践中,人们会重复使用他们的密码,并且并非所有密码都按照最佳实践进行存储。这意味着对最强系统的访问受到最弱系统的安全保护。通过使用 SSO,我们有一个单一的系统,我们可以更好地确保遵循最佳实践。

可能还有其他选项,例如强制密码不同,但我还没有看到一个效果很好的选项(如果它是 My$secret1、My$ecret2、My$ecret3、等,但是如果您在系统 1 到 4 中正确地散列和加盐密码,您将如何确定系统 5 中的密码有多相似)。

换个角度想,把所有的鸡蛋放在一个篮子里通常看起来很傻,但我们有一组量子叠加的鸡蛋,如果一个鸡蛋坏了,它们都会坏掉。在这种情况下,最好将所有鸡蛋放在最受保护的篮子中。

因此,在这篇文章中遗漏的一个方面是向 SSO 添加其他身份验证因素的方面。例如,假设您有 10 个站点登录,所有这些站点都只输入用户名密码,这是最容易理解和破解的。正如另一张海报提到的,一个好的 SSO 将为登录设置大的随机密码,我在想 32+ 个字符,随机使用特殊字符,然后可以每 30 天更改一次。这是一个人永远不会记住或不想输入的东西,您可以使用为每个站点重新生成的随机密码来执行此操作。所以你仍然有用户名密码的错误,但至少现在它是尽可能安全的。另一方面,用户登录的 IDVault 现在可以通过 2 或 3 因素身份验证进行保护,

最后,这是保护用户免受自身侵害的问题,如果您需要长而难以破解的密码,他们会在 99% 的情况下将其存储在电子表格或纸质便笺中。

当然,正如之前的海报所提到的,这确实会引发一个故障点,这本身可以得到缓解,但永远不能完全排除。最后,作为一名安全专业人员,您必须评估失败的风险(减轻或不减轻)以及用户定义的、易于记忆的密码的风险。对我来说,答案很明显,但这是我的观点,可能不是你的。