*附加*公司范围的密码是否提供任何真正的安全性?

信息安全 密码 密码策略
2021-08-23 13:53:08

因此,假设一家公司拥有所谓的“访问密钥”。每个用户都有自己的用户名和密码,并有一个额外的公司范围内的访问密钥的人必须要输入他们的访问后端资源的用户名和密码。当员工离开时,旧密码将被删除,并创建一个新密码并将其传达给所有用户。

我不相信这样的方案会降低超出典型用户名/密码组合的安全性。可以防止用户的凭据在某些 3rd 方网站上被盗用但在没有访问密钥的情况下不再足以获得访问权限的情况。它可能对有针对性的攻击提供零保护,鉴于访问密钥的广泛传播,它可能很容易获得访问密钥的知识。

我想我的问题是,除了上面列出的第 3 方妥协之外,你能想到任何真正的安全性提升吗?你觉得管理这样一个方案的开销是否值得?

4个回答

使用证书或双因素身份验证设备比使用公司范围的密码要好得多。

公司密码方法存在密钥分发问题(您如何将其仅提供给员工,并且足够及时),人们忘记或丢失它,并且广泛分发大大增加了泄露的可能性。我向您保证,将公司密码提供给几乎任何人或将其写在办公室各处的便签纸上,这将成为一种文化根深蒂固的做法,因为轮换的痛苦由他们没有选择的新密码承担。

对抗机器人

辅助凭据对非目标脚本攻击很有用。

这完全取决于受到保护的对象和对象。根据我作为 Linux Web 系统管理员的个人经验,这种二级凭证方案可以很好地保护已知的 Web 应用程序(如 WordPress 和其他流行的基于 Web 的系统)免受利用这些系统中已知缺陷的暴力自动脚本攻击。

例如,如果您在服务器上安装了大量 Web 应用程序(例如 WordPress),并且在发布更新时没有时间或资源来修补每个安装,那么一组辅助凭据可提供一些基本级别的保护超出正常的修补和升级建议。我通常在这些设置的控制面板和管理屏幕的 URL 上设置 Apache 基本身份验证密码,然后通过电子邮件将凭据传递给相关方,而无需担心。

这些凭据的接收者可以在内部任何地方发布这些凭据,我只关心。把它扔到你桌子上的便利贴上;我很好。这种辅助 Apache 基本身份验证设置的主要目的不是防止来自流氓实习生或秘书等人的有针对性的攻击,而是阻止世界上无脑的脚本僵尸网络将您的系统用于他们设计的任何垃圾注入未修补系统上的已知弱点。

对生者无用

二级凭证对于有针对性的攻击完全没有用。

也就是说,由于上述许多原因,与个人凭据相结合的通用辅助凭据集的概念对于保护系统免受有针对性的攻击完全没有用。如果您公司的某个人想要访问受一组辅助凭据保护的系统,他们可以通过微不足道的社会工程水平(例如在同事办公桌周围走动和窥探)轻松获得该密码。

除此之外,假设系统是远程攻击者的目标。电子邮件渗透和某人转储并阅读员工邮箱最终将提供访问系统所需的所有信息。

公司范围的密码不会提供太多保护。它可能会经常改变它的中/大型公司。用户最终会将它们写在便利贴上。正如您所说,一个坚定的攻击者绝对不会遇到该密码的问题。

此外,您需要一个系统来在您的公司内安全地分发所述密码,这将是一个不可忽略的开销。

作为替代方案,您是否考虑过 2 因素身份验证?要么分发物理密钥,要么使用智能手机上的应用程序生成令牌。当员工离开时,拿走他的密钥/撤销他的访问权限,所有其他用户都不会受到影响。

这比为每个人都使用一个密码要安全得多,而且无疑更容易实施。

一般来说,它是无用的,但可能有一些奇怪的额外好处需要考虑。

在诸如此类的任何安全场景中,第一步始终是开发您的威胁模型他们试图防御什么?脚本小子?三信机构?外国人会不择手段地入侵您的服务器?员工不满?你需要多长时间来抵御他们?您是否担心“你惹恼了我,所以我要破解你”或“我被你的公司激怒了,我将花费数月时间计划和执行完美的攻击”?

我通常不建议这样做,但在这种特殊情况下,我们或许可以想到一个反向威胁模型。我们可以查看现有的安全性(用户/通行证+访问)与您想要的安全性(用户/通行证),并确定哪些威胁模型可以区分两者。

在这两种情况下,攻击者都必须破坏其他人的帐户,因为他们自己的帐户已被禁用或删除。获取用户名总是很容易,所以区别在于获取某人的密码和公司范围的访问代码与仅获取密码有多难?

这个问题的答案,因为所有好的安全问题都是“视情况而定”。您的员工在挑选密码方面的能力如何?如果您经常发现人们使用他们自己的用户名或“password1”或他们的狗的名字作为密码,那么公司范围的访问代码可能是您和心怀不满的员工之间唯一的事情!(当然,这也意味着您还有许多其他安全漏洞)。另一方面,如果获取某人的密码相当困难,那么访问代码不会给您带来任何好处。访问代码比密码更自由,所以如果他们能得到密码,他们就能得到密码。

因此,唯一可以区分您的解决方案和他们的解决方案的威胁模型是威胁模型,它们担心前雇员可以获取另一个员工的密码(我们被训练在这个时代不会放弃)但是对于一些理性无法获得每个人之间明确共享的访问代码。这是一个相当堕落的案例。

Bruce Schneier 喜欢说“安全性始终与可用性保持平衡”。在这种情况下,共享密码的可用性非常糟糕。如果有的话,获得的安全性非常小。访问代码应该被认为是一种不良的安全交易并被拆除。

我能想到的有两个例外。一是可以开发公司访问代码作为保持个人诚实的令牌。考虑一下警察徽章。它本身只是一块盾形的金属。然而,它是一个象征,提醒人们(平民和警察)他们正在接受更高的责任。

另一个例子是我看到实验室,出于安全原因,每个人都必须使用自己的 PIN 进行标记,但标记阅读器本身并不可信。除了这个徽章阅读器和别针之外,他们还有一个值得信赖的密码锁。每个在实验室工作的人都知道密码锁的密码,这样他们早上第一个就可以打开实验室。一旦打开组合,并且其中至少有 1 个授权人,每个人都可以使用他们的徽章/PIN 以方便起见。晚上,密码锁被锁上。如果有人从列表中撤消,他们必须更改组合,因为它是系统的“受信任”部分。