1password对密码安全的重要性

1Password 安全的一个独特功能是密钥,但它的价值经常被用户和安全专家等人误解。 与其考虑它是否像第二个因素或它是否像一个密钥文件,最好根据它的实际作用来解释它:如果我们遭到破坏,它会保护您。 1Password 密钥是使 1Password 的安全性独一无二的核心

1Password 安全的一个独特功能是密钥,但它的价值经常被用户和安全专家等人误解。与其考虑“它是否像第二个因素”或“它是否像一个密钥文件”,最好根据它的实际作用来解释它:如果我们遭到破坏,它会保护您。

1Password 密钥是使 1Password 的安全性独一无二的核心。如果我们的服务器遭到破坏,它会为我们的用户提供非常强大的保护。然而,它的独特性使其难以理解。它不仅难以理解,还给用户带来了额外的负担。让用户承担难以理解的额外任务真的不是我们的风格。我们这样做的事实应该让我们了解密钥对安全性的重要性。

一个破解审查

让我们回顾一下当某些服务遭到破坏时会发生什么。如果您已经对密码破解和散列有所了解,请跳过本节。

服务遭到破坏时会发生很多事情,但让我们回顾一下某人可能用于该服务的密码的含义。假设 Molly(我的一只狗)使用密码 注册 Barkbook 服务Squirrel!一些普通读者可能还记得,莫莉痴迷于松鼠,并且非常不擅长选择密码。当 Molly 首次注册时,Barkbook 将收到密码并存储它的哈希值。为了使示例简短,我将假装 Barkbook 使用非常过时的密码散列方案。Barkbook 会存储类似…

$1$NP8pjY13$Fb/z9cqyMwjysyTodjbec/

...其中包括散列方案、盐和散列的指示符。哈希是Fb/z9cqyMwjysyTodjbec/一部分。每次有人尝试以 Molly 身份登录时,Barkbook 都会使用相同的散列方案和存储的盐来散列收到的密码。如果哈希与存储的内容匹配,Barkbook 将让用户以 Molly 身份进入。

现在假设 Talk 先生(邻居的猫,就 Molly 而言,他总是做坏事)违反了 Barkbook,获取密码哈希数据库。不可能Squirrel!7Fb/z9cqyMwjysyTodjbec/和盐计算所以这似乎无助于先生谈论他的邪恶计划。但是Mr. Talk 可以使用哈希。他可以用它来测试对莫莉密码的猜测。Talk 先生很可能会怀疑 Molly 的密码是基于“rabbit”或“squirrel”这两个词。Talk 先生可能还知道 Barkbook 要求在他们的密码中使用大写字母和符号。使用这些知识,他可以将可能的密码列表缩小到几千个或几万个。Talk 先生根本不需要任何时间来计算所有这些可能密码的哈希值,直到他获得匹配项。

哈希不是不可逆的吗?(技术抛开)

一个安全的散列函数应该是不可逆的。那就是散列本身没有提供有关散列原像的有用信息。(在这些情况下,散列的原像是经过散列处理的密码。)然而,我们说拥有密码的散列对于学习密码非常有用。没有矛盾,因为原像电阻的定义明确受到原像熵的限制。也就是说,只有在原始图像首先难以猜测的情况下,才很难从散列中猜测出原始图像。

因为 Talk 先生拥有哈希,他不需要通过尝试通过 Barkbook 登录页面登录来测试这些。因此,Barkbook 对失败的登录尝试设置的任何限制都不会妨碍。Talk 先生可以做出任意数量的猜测,就像他自己的机器可以计算猜测的散列一样快。这被称为“离线攻击”,有专门设计的软件可以自动进行猜测和测试,Talk 先生知道如何使用它。与尝试数千万次猜测相比,Talk 先生需要花费更多时间来配置软件。

1密码不同

典型的密码检查方案存在很多问题尤其重要的是,每次她登录时,密码(在我们之前的示例中)都会从 Molly 的计算机传输到 Barkbook。我们 1Password 从不希望您的帐户密码传输给我们,因此我们使用密码验证密钥交换 (PAKE) 以确保在登录时不会传输任何机密。但那完全是另一回事

今天讨论的相关部分是 PAKE 仍然有服务器存储一些类似于破解密码哈希的东西。它实际上不是一个散列,但对于离线破解目的,它的行为就像一个散列。这种类似散列的东西称为 SRP 验证器。

让破解变得不可能,而不仅仅是昂贵!

Barkbook 可以做一些事情来让 Talk 先生的工作变得更难。一件事是让突破变得更加困难。因为有很多方法可以破坏服务(包括内部攻击),所以需要研究和加强组织安全性的许多不同方面。Barkbook 可以做的另一件事是使用昂贵的密码散列方案来让 Talk 先生的事情变得更难。我们使用 PBKDF2来强化您的帐户密码。但是这种方法可以为您带来什么是有限的这些都是好事,因为它们减少了违规的机会,并且在发生违规时为用户争取了一些时间来更改密码。但是它们仍然让我们的攻击者 Talk 先生能够造成很大的破坏。

输入密钥

1Password Secret Key 改变了这一切。它使我们存储在服务器上的验证器完全无法用于破解目的。Molly 的 128 位密钥与她自己机器上相当弱的密码结合在一起。这是我们和我们的服务器的秘密。回想一下,当 Molly 登录她的帐户时,没有任何机密从 Molly 的 1Password 客户端传输到我们的服务器。不仅仅是我们从不存储她的秘密密钥——我们甚至从来没有机会获得它。

我已经使用并将继续使用破解验证器的示例,因为这与在 Barkbook 等传统服务上破解密码哈希非常相似。但这里的关键在于,在可以访问我们服务器上存储的内容的情况下,Talk 先生是否有能力解密 Molly 的数据。Molly 的 1Password Secret Key 意味着答案是否定的。即使他让地球上的每一台计算机都致力于破解并运行它们无数次宇宙年龄,他也无法破解它我很高兴为此使用“从不”和“不可能”这样的词。

秘密密钥意味着没有人 - 谈话先生或其他人 - 掌握我们服务器上的数据,可以破解它来解密任何人的数据。这不仅可以保护 Molly 免受Mr. Talk 的侵害,还可以保护从我们系统获取数据的任何人,无论是内部人员还是外部人员。

负责任的规划

当然,我们不打算被破坏,但我们必须计划它。如上所述,即使攻击者拥有数十亿台超级计算机和数以亿计的宇宙年龄试图破解它,您的 1Password 密钥也能在发生泄露时保护您的秘密。但这更有用。我相信它首先减少了违规的机会。

如果我们没有在 1Password 中内置密钥,如果攻击者投入足够的资源来破解验证器,我们服务器上的一些用户数据将是可解密的。但是由于密钥使这种破解变得徒劳,我们持有的加密数据对攻击者来说价值要小得多。为什么要尝试窃取您无法破解或解密的东西?

当我在 2015 年第一次在 PasswordsCon 上提出密钥的想法时,我用一个懦弱的原则来描述它:我们不希望我们持有的数据成为一个有吸引力的目标。作为一个没有吸引力的目标有一定程度的安全性。

带有“司机携带不到 50 美元且全身赤裸”的卡车

与我们的一些竞争对手不同,我们的服务从未遭到破坏。有很多事情可以归因于这一点,包括运气。但我相信 1Password Secret Key 发挥了作用。当然,攻击者会尝试,我们确实会防御此类尝试。这是运行任何服务的本质。但是因为 Molly(以及其他所有 1Password 用户)受到他们的 1Password 密钥的保护,Talk 先生不会像其他情况那样努力尝试破坏我们的服务器。

附录:这是第二个因素吗?

密钥不是第二个因素,这样想可能会导致混淆。消费者报告在对 1Password 的出色评论中说

1Password 需要一个主密码和一个只能通过您已经用来访问其服务的设备才能使用的代码。如果您手边没有设备,则必须使用1Password 提供给您的另一个长而复杂的密码这可能是件苦差事,但它通过要求另一个身份验证因素来增强包含所有凭据的盒子的安全性

我不能责怪任何人不了解密钥是什么(和不是)。您刚刚阅读了大约 1,400 字,试图解释它为您和我们提供的独特安全属性。它确实不同于大多数人曾经使用过的任何东西。但是,提请注意他们并没有完全理解的两件事是很有用的。

第一个错误可能是“由 1Password 提供给您”所暗示的。这表明我们创建了您的密钥并将其发送给您。事实并非如此。我们从来没有你的秘密钥匙,即使是片刻。当您创建 1Password 帐户时,您的密钥是在您的浏览器或您机器上的 1Password 客户端中创建的。所有这一切都完全发生在您的机器上。看起来可能不是正在发生的事情,但这就是正在发生的事情。

第二个误解是将其称为“另一个身份验证因素”。从莫莉的角度来看,它当然可以看起来像一个。这是她需要能够在新设备上解锁 1Password 的第二个秘密。乍一看,这确实是第二个因素。但如上所述,它是关于解密存储在我们服务器上的数据。

这篇已经很长的文章的附录的其余部分将变得更加抽象。所以你可能希望停止阅读。如果我在下面所说的话使事情变得混乱而不是澄清事情,那就忘记它。

保持距离

莫莉可能会把她玩具盒的钥匙放在盒子里,但帕蒂(家里的另一只更聪明的狗)知道最好不要这样做。帕蒂把她玩具盒的钥匙藏在盒子外面。Molly 的系统比 Patty 的系统弱,因为攻击者 Talk 先生可以进入 Molly 的盒子,只需花费很少的额外努力即可获得该盒子的钥匙。但是,进入 Patty 玩具箱的攻击者必须发起单独的攻击才能获得 Patty 玩具箱的钥匙。

在每种情况下,Talk 先生都需要拿到盒子和钥匙。但是在追逐莫莉的玩具时,他只需要进行一次攻击。获得一个的攻击很容易获得另一个。但是当他追逐帕蒂的玩具时,他需要进行两次攻击。赋予双因素身份验证名称的特定安全属性就是这样。攻击者必须发起不同的攻击才能获得每个因素。

2FA 真的与因素无关(技术除外)

 

尽管 2FA 以其第二因素命名,并且通常用这些术语描述其安全性,但它很少是其最重要的安全属性之一。在典型的使用中,我们称之为 2FA 的东西提高了安全性,因为长期秘密永远不会被传输,并且传输的是一次性代码。可以说,第二因素很少是系统安全性的主要因素。我曾多次提交论文 (PDF)对此进行介绍尽管如此,第二因素很好地说明了我的意思是攻击者需要获得的事物之间的距离才能成功进行攻击。

对于密码管理,距离是存储在我们系统上的数据与您的密钥副本之间的距离。从我们的服务器获取您的加密数据的攻击者解密它的机会为零,除非他们也可以从您的系统中获取您的密钥。使用密钥加密的内容与密钥本身之间的距离使您和莫莉在我们的系统遭到破坏时保持安全。同样的距离大大减少了攻击者破坏我们系统的动机。

推荐内容

了解更多

发布时间: