跳转到主要内容

加密安全:密码与身份验证

Andreas Antonopoulos 介绍了基本的加密安全实践,重点关注密码管理、身份验证方法以及保护数字资产和私钥的最佳实践。

Date published: 2019年5月19日

本次直播涵盖了加密货币持有者必备的安全实践,从密码管理基础知识到多因素身份验证。Andreas Antonopoulos 详细讲解了平衡安全性与可用性的原则,解释了为什么密码管理器必不可少,介绍了 XKCD 密码短语概念,并详细说明了双因素身份验证方法的层级结构。

本文字稿是 aantonop 发布的原视频文字稿 (opens in a new tab)的无障碍版本。为提高可读性,已进行轻微编辑。

安全基础与平衡风险 (3:05)

(哔哔声)——大家好,欢迎来到本周六的直播。这场额外的直播主题是密码、密码管理器、身份验证、多重身份验证,以及与你账户安全相关的所有内容。现在我们的队列中已经有很多问题了,但我在这场直播中不一定会主要以回答问题为主,因为我想解释一些有难度的主题。对我来说,花比平时更长或更短的时间来谈论某个主题,并按照我自己的思路来梳理这些主题,可能更有意义。它们有点棘手。安全是一个棘手的话题。因此,我可能不会去刻意寻找最完美的问题。另一方面,我确实有一些很好的问题可以作为开场。所以首先,感谢大家的加入。很高兴

能一如既往地在周六早上与大家一起探讨与比特币和开放式区块链相关的全新有趣话题。那么,密码和多重身份验证与比特币和开放式区块链有什么关系呢?嗯,你要知道,为了维护你的加密货币的安全,你必须维护你所有账户的安全。关于加密货币,非常有趣的一点是,对许多人来说,这是他们第一次必须仔细思考其在线身份和在线设备的安全问题。因为现在那里存放着资金,这使其成为了一个更具吸引力的目标。过去,人们并没有太大的动力去保护自己的安全,因为当你失去隐私、当你的信息被黑客窃取时,你并不会立刻感觉到。这会带来很多不良后果,但这些后果并不是直接

可见的,也不会立刻被感觉到。如果有人入侵并从你的数字设备中偷走几百美元、几千美元,甚至更糟的几万美元,你就会感觉到,而且是立刻感觉到。你可以切实地将其联系起来,确切地说是无形地。你可以无形但非常、非常明显地将其与你的安全联系起来。所以不幸的是,这往往是只有通过痛苦的经历才能真正学到的教训之一。因此,我可以花很多时间告诉新手如何以及为什么要保护他们的账户。直到他们在自己的某台设备上安装了加密货币热钱包,然后弄丢了那个热钱包里的钱。否则他们很难理解我所说的话,也很难被其触动。现在,在整个讨论中另一个需要理解的非常重要的一点是,安全

是一种平衡。一切都关乎平衡。这就是风险管理。没有 100% 的安全。没有绝对完美的安全。你无法防范所有的威胁。你必须弄清楚你面临哪些威胁。你必须弄清楚你实际上能防范其中多少威胁,以及你打算投入多少精力来防范这些威胁,这取决于你实际要保护的是什么。你还需要发现,你正在构建的解决方案、你正在使用的系统何时会变得过于复杂,以至于其本身就成了一个安全风险。我们经常看到新手,尤其是在加密货币领域,制定出过于复杂的解决方案。然后我们最终在安全与弹性的平衡中走向了错误的一端。保护你加密货币的机制变得如此复杂,以至于实际上,你最终

会失去它,因为你使用了非标准的东西,因为你忘记了密码,因为没有人确切知道你做了什么,而你又无法帮助他们。所以安全是不可能百分之百实现的,一切都关乎平衡。而简单性往往是安全的一个关键要素。简单的安全解决方案,你可以利用自己的技术能力去应用,并且可以始终如一地应用。而且在遇到问题时能够恢复,这比那些迫使你超出自身技能水平、将你置于未知领域并使你更有可能犯错的复杂安全解决方案要好得多。这通常是你经常听到的,有很多关于这方面的糟糕建议。人们会建议你实施一个看似非常非常复杂的安全方案。正因为它如此复杂,所以感觉很安全。感觉就像有一个

保持安全性的简单化 (8:40)

事情很多,所以它一定非常复杂和严肃。在很多情况下,你最终会超出自己的技术能力并实际损失金钱,不是因为被盗,而是因为你在技能水平之外操作而犯了错误。所以,让我们保持简单。让我们基于标准。让我们使用最佳实践、常用工具,并始终如一地使用它们。这样我们就能非常安全。我们直接进入,直接进入第一个问题。到目前为止,直播间有 220 人。感谢大家给我关于视频和音频的反馈。能知道这些总是好的。顺便说一下,今天早些时候我们这里停了一会儿电,如果我们断电了,你们会知道的,因为直播会停止。而互联网路由器和 Wi-Fi 至少需要五分钟

才能重启。我也许能回来,但即使只断电一秒钟,我也必须等五分钟才能重新连上。如果我回不来,我们会在聊天室里通知大家。所以请耐心等待,希望我们不会断线。但你知道,这是我们今天必须应对的风险之一。让我们来看今天的第一个问题。第一个问题来自“匿名者”,选择“匿名”来提问是第一个也是很好的安全机制。如果我有阅读障碍,而且不擅长记住长密码,那么管理许多独特、强密码的最佳方法是什么?这是一个很好的问题。这是一个很好的问题,因为它涉及到一个更广泛的问题,即记忆事物的困难。我们都认为自己的记忆力比

实际的要好。我们中的一些人在记忆、阅读、写作或任何其他有助于我们记忆密码的技能方面存在困难。也许他们知道自己记不太清。所以这位匿名者是从阅读障碍患者的角度提出这个问题的,但这同样适用于所有人。每一个拥有容易出错的人类记忆的人。人类非常不擅长长时间记忆,尤其是那些不令人难忘的事物,因为它们没有与图像、经历或情感联系在一起。记住与我们生活毫无关联的事物几乎是不可能的,因为我们的大脑非常擅长优化掉不相关的信息。如果你没有将情感、经历或图像与你试图记住的事物联系起来,大脑就会说,这与我的缓存算法不再相关,并将其丢弃。而很多

人忘记密码正是因为这个原因。所以我实际上打算在这里使用一些资源来更广泛地回答这个问题,并帮助人们了解密码的基本原理。为此,我将使用一些视觉辅助工具。我通常不使用视觉辅助工具,但我认为在这个特定情况下它们会很有用。让我们看看效果如何。好了,我们要讨论的第一件事是密码管理系统。几十年来,我们一直在训练用户创建包含各种字符的、长且随机的字母数字密码。这些是人类无法记住的密码。这些密码实际上助长了不良行为。它们鼓励这样一种行为:你最终会使用相同的取巧模式,比如 Satoshi Nakamoto,把字母 O 替换为数字 0,第二个单词的首字母大写,把字母 T 替换

为数字 7,并在末尾加上井号(#)。现在你有了数字、小写字母、大写字母和字母。但如果你必须在多个网站上使用它,你会做一个小小的改动。然后你可能必须在末尾添加一个数字。然后你最终会遇到这个非常棘手的记忆问题,即网站迫使你创建变体,但变体让你根本无法记住,尤其是这种复杂程度的密码。因此,你最终会在许多网站上重复使用你的密码。几乎每个人都是这么做的。这对安全性来说非常非常糟糕。现在,了解如何解决这个问题的最佳资源之一实际上是一幅漫画。所以我要做的是给你两条建议。第一条是不要试图自己创建密码,

密码管理器 (13:50)

使用密码管理器。密码管理器是一种为你生成随机密码并替你记住它们的软件。这些系统解决了两个问题:人类的记忆是不可靠的,而人类制造随机性的能力甚至更糟。我们非常不擅长制造随机。我们非常不擅长记忆,而在记忆随机内容方面更是加倍糟糕。因此,你无法通过变得更自律、更聪明、更小心来解决这个问题。你也无法通过在屏幕上贴便利贴,或者做你在这里看到的那些事情来解决它,对吧?这些在办公室里随处可见。把密码写下来并不是个坏主意。前提是你写下密码的地方确实安全。所以,最基本形式的密码管理器就是个小本子,一个密码本。而且,你知道,尽管我会说这不太现代,它

在技术上也不太先进,并且它没有解决生成随机密码的问题。老实说,这就是我父母使用的解决方案。因为如果他们把密码写下来,他们的密码就可以有更多的变化。如果他们把那个小本子放在一个安全的地方,比如家里、上锁的抽屉或类似的地方,这其实是一个相当持久的机制。现在,你们中的大多数人在技术上可能比我父母更成熟。所以让我们来谈谈一个对你来说更好的解决方案。更好的解决方案是下载软件来为你做这件事。市面上有一大批密码管理器。好消息是,对于基本功能来说,这些都是免费的。你可以使用诸如 Last Password 或 LastPass、One Password、Bitwarden 以及其他各种产品,如 Key Pass 等等。现在,这些软件将

具有许多不同的功能,你需要弄清楚你实际需要哪些功能。我的建议是,首先弄清楚你需要在哪些设备上使用它,因为使用密码管理器的一大优势实际上是你可以让所有的密码在你的所有设备上同步。所以,如果你使用 Windows、Android 和 iOS,嗯,这可能很简单。所有的密码管理器都会支持所有这些平台,你不会有问题的。你还希望它能支持你使用的各种浏览器。比如 Chrome、Firefox、Edge、Opera、Brave,或者你作为扩展程序使用的任何其他浏览器,这样你就可以自动填写并向网页表单提交密码。我想你们都看到我的摄像机刚刚显示存储卡已满了。就在直播的时候,这

可真“有帮助”。是的,我的 SD 卡刚刚满了,所以我不再用摄像机录制了。哎呀。哦,好吧,没关系。我们继续。所以,挑选密码管理器的方法之一,就是弄清楚你需要支持哪些设备。如果你有一些奇怪的设备,那就会变得有点棘手。比如,我在台式机上使用 Linux。我在台式机上使用 Linux 已经很长时间了。而且,你知道,我认为今年实际上是 Linux 桌面之年。伙计们,这将会发生的。不,并不会。但无论如何,我使用它,它对我来说很好用,但它并没有得到广泛支持。所以并非所有的密码管理器都能在 Linux 桌面上运行,或者运行得很好。幸运的是,大多数密码管理器都可以作为浏览器扩展在浏览器中运行,这使得它们基本上是跨平台的。所以对我来说,一个

跨设备选择密码管理器 (18:22)

密码管理器需要在 Android、Windows、Linux、Chrome、Firefox 和 iOS 等等平台上运行。这样我就可以在所有设备上安装它,从而能够在所有设备上访问我的所有密码。好的。那么,为了回答匿名用户提出的问题:如果我有阅读障碍,而且不擅长记住长密码,管理许多独特、强密码的最佳方法是什么?最好的方法是使用密码管理器,它会为你随机生成独特、强大的密码。而且,一旦你选择了密码管理器,你只需设置一个密码,这个密码就是你的密码管理器密码。我还建议你使用双因素认证机制,这样别人就不能仅仅使用那一个密码登录并下载你的密码文件。你需要第二重身份验证。我们将在

今天视频的第二部分讨论这个问题。我们还有一个来自观众的后续问题,那就是我如何信任这个软件?嗯,简单的答案是,你要寻找的软件要么被广泛使用、经过安全专业人员的审查和审计,要么是开源的,或者兼具以上所有特点。我认为我之前提到的所有软件都符合这些要求。现在让我们回到我之前提到的事情,还记得我说过安全不是百分之百的,安全是一个平衡和降低风险的问题吗。所以现在让我们把这两个风险摆在桌面上。风险一,我能信任密码管理器吗?如果我下载的密码管理器被攻破或容易被攻破,或者存在一个没有被数百万其他用户和安全专业人员

审查发现的漏洞,会发生什么?风险二,我能信任我的大脑吗?好吧,如果你这样想,问题就很清楚了:任何密码管理器都比没有密码管理器好。这与我们在加密货币中讨论硬件钱包与软件钱包时所做的风险管理是一样的。我能信任硬件钱包制造商吗?嗯,在某种程度上可以,但不是百分之百。那里存在一些风险。这些风险与没有硬件钱包相比如何?答案同样是,任何硬件钱包都比没有硬件钱包好。那么,你可以实际管理哪些风险呢?在获取这个密码管理器时,确保你得到的是正确的软件非常重要。你不能只是从某个随机的网站上下载它,用一张 Groupon 优惠券去买一个本来就免费的东西,然后

让你的系统感染木马。但回到正题,任何密码管理器都比没有密码管理器好。因此,你不应该试图自己去生成独特的密码。如果一个网站要求你输入一个八个或更多字符的字母数字密码,你就照我做的做。点击那个写着“生成安全密码”的小按钮。你把长度设置为 31 个字符、75 个字符、213 个字符。我喜欢在网站上做实验,看看我能把密码设得多长,直到它们开始尖叫“太长了”。这么多年来,密码管理器和系统一直对我尖叫“不够长”、“不够复杂”。我想看看网站开始尖叫“太长了”、“太复杂了。拜托,老兄,你在干什么?我的数据库装不下”。所以,生成一个强大的随机密码。那么,我能记住这个密码吗?

当然不能。我的密码管理器里有 800 个密码,所有的密码都超过 20 个字符,是完全随机的字母数字组合,包含符号、大写字母、小写字母和数字。我不可能记住其中任何一个,更不用说全部 800 个了,但我确实记得我的主密码。好了,让我们看看还有什么其他问题。进入我们的下一个问题,这将给我一个机会来谈论我想讨论的下一个话题。匿名用户问,当我使用强密码生成器时,对于许多情况都不起作用,密码或密码短语是否有最低可行的安全标准?是的。网站对密码有荒谬的期望,而且通常是糟糕的期望。例如,它们鼓励相互冲突的信息。让我给你举个例子。它必须超过八个字符,是包含符号和数字的字母数字组合,但我们禁用了粘贴到表单的功能。这

糟糕的密码策略 (24:02)

你在干什么?你在干什么?为什么你要求我设置一个复杂的密码,我显然会使用密码生成器,然后你又不让我粘贴它。或者不让我把它粘贴到表单的确认部分?你疯了吗?你在干什么?别再这样做了。还有那些要求 8 到 12 个字符的密码。真的吗?你想让我把它弄得复杂,但又不能太复杂。所以我连 13 个字符都不行,这毫无道理。或者是奇怪的符号组合。哦,是的,我们可以使用符号,但只能使用井号、感叹号和星号。单引号和 @ 符号我们不接受,因为那会扰乱我们的正则表达式。所有这些都是非常非常糟糕的密码策略。或者每个月都要更改密码,但不能重复使用上个月用过的任何密码,并且要保持它们

像那样奇怪地复杂。这些都是奇怪的密码策略,你会遇到很多这样的情况。归根结底,你不能指望由不同公司运营、拥有不同安全团队和安全策略、以及不同安全意识水平的各个网站,都能制定出适合大多数用户的良好策略。请记住,他们要面对的用户群体跨度极大,既有像我这样试图输入密码管理器生成的 37 个字符随机密码的人,也有使用 12345678 的人。12345678 显然是互联网上最常见的密码,或者是 password1234,我认为这是互联网上第二常见的密码。因此,找到一个对所有这些人都有效的策略,对于网站来说是非常非常困难的。所以我所做的

就是不断尝试。我会输入一个我喜欢的那种随机生成的密码,你知道的,37 个字符加上各种符号。然后网站就会抱怨说,我不太喜欢星号,你为什么要这样对我?所以我会去掉一些符号,或者它会说密码太长了,那我就把它弄短一点。或者它会说,实际上我还需要至少两个大写字母,但不能以数字开头。我就会觉得,呃,拜托。我会一直调整,直到弄出一个能用的密码。但无论我最终得到什么密码,它都会有两个保证。它会很长且复杂,而且它是完全随机生成的,不依赖人脑来为我生成或记住它。而且我正在尽可能使用最高的复杂度。好了,那么匿名用户

为我们提出了下一个问题,这让我可以继续这个话题。也许是个愚蠢的问题,但密码管理器不是位于云端吗?因此它难道不会轻易成为黑客的目标吗?好问题,匿名用户。这些设备的工作原理是这样的。你的密码数据库备份存储在云端。然而,该备份是加密的,并且是端到端加密的。这意味着它在你的本地机器上被加密。它以加密形式发送到云端,并且只有在你的本地机器上才会再次被解密。它加密和解密的方式是使用你的主密码。而这个主密码本身会通过所谓的“拉伸器(stretcher)”进行处理。拉伸器的作用是采用一种密码拉伸算法(如果你愿意这么叫的话),实际上它是一种哈希算法。它的作用是获取你输入的单词或字符作为你的主

密码,然后让它经过数千轮的哈希处理。这需要时间,而其结果是一个无法被暴力破解的密码。因为假设我输入了一个密码,对其进行了一次加密或哈希处理,然后将其发送到服务器。很好,但这很容易受到一种相当简单的攻击,称为彩虹表(rainbow table)攻击。接下来会发生的是,攻击者会获取你能想象到的所有最常见的密码,对它们进行哈希处理,并生成一个哈希密码数据库,用于发起该攻击。现在,如果在另一方面,或者我可以直接一次又一次地尝试不同的密码,直到找到正确的那个。这就是典型的暴力破解攻击。但是,如果每个密码都被哈希处理 25,000 次、50,000 次或 100,000 次,每次我

密码数据库是如何加密的 (29:19)

在我的电脑上输入它需要两到三秒钟。这对我来说没什么大不了的。我第一次登录浏览器或电脑以启动密码管理器时,需要两到三秒钟,就两到三秒钟。但是,如果你每次输入密码都要增加两到三秒钟,那么,这就完全破坏了暴力破解的方法。这也使得生成这种预先计算的密码哈希数据库变得不可能,因为即使只尝试几千种组合也会花费太长时间。而且,如果你的主密码足够复杂,生成它所需的密码组合远不止几千种。因此,密码数据库通常使用相当直接的、基于标准的加密算法进行加密。AES256 可能是最常用于此目的的算法,但它就像

那样。它是一种对称加密算法,使用单一密钥(即私钥)来加密和解密数据。加密和解密使用相同的密钥,这就是为什么它被称为对称加密算法。而该密钥是通过对你的主密码短语进行反复哈希处理生成的。因此,只要你只在本地受信任的设备上输入主密码短语,你就能获得高度的安全性。是的,密码数据库在云端,但它是加密的,除非拥有你的主密码短语,否则任何人都无法打开它,而你绝不会在除了自己设备之外的任何地方输入它。当然,这里也存在一些问题。因为如果你的本地设备上安装了密码键盘记录器,它就能捕捉到你输入主密码短语的过程。但有趣的是,这还不足以

让攻击者得逞,如果你启用了双重身份验证的话。这不足以让攻击者得逞的原因是,他们可能会捕获你的主密码短语,但如果没有第二重身份验证,他们就无法从云端下载加密的数据库,而这第二重身份验证最好是绑定在你的机器或其他东西上的。而他们没有这第二重验证因素。稍后我们会详细讨论双重身份验证。我们正在构建防御层。我不知道你是否明白我们在这里做什么,但没错,我们正在审视可能出现的每一个问题,并增加一层层的安全保障。安全并不是说,这里有一个能阻止一切的万能方案。安全是在攻击者的道路上设置障碍。是的,你可能会突破这道障碍,但紧随其后的又是另一道障碍。然后,如果你突破了那道障碍,紧随其后的

是另一道障碍。如果我把这些障碍设置得足够坚固,并且有足够多层层叠叠的安全保障,同时我还确保你突破一层所需的技能与突破另一层所需的技能不同。并且我确保你突破一层所需的工具和预算与另一层不同。那么,你在不被我发现、不被我阻止的情况下成功突破所有这些防御层,甚至针对许多许多受害者大规模地做到这一点的几率,就会大大降低。这就是关键所在。好了,我要在这里快速喝口咖啡,在聊天室里和你们聊一会儿,同时我去搜寻一下其他问题,是的,你们可能想问的其他问题。让我放上一个

小页面,我想感谢所有的赞助人,是你们让我能够制作这种教育材料,同时我用印有“没有统治者的规则 (rules without rulers)”的新马克杯喝咖啡。这是我最近比较受欢迎的演讲之一。它上面还带有一个橙色的小比特币。天哪,别再给我们打广告了,我们会买你的周边商品的。继续讲干货吧。马上就来。我们回来了。好的,我可以把这个放在一边。我把它转一下,这样看起来好看些。好了。好的。所以我刚才在浏览问题,试图找到一个能让我以尽可能简洁的方式继续这个小故事的问题。那么现在我们来谈谈密码短语,为此,我将借助 Bruce 的提问,他问:关于使用强密码作为钱包密码短语有什么看法?

钱包密码短语与 BIP-39 (35:02)

Bruce 在这里谈论的是为使用 BIP-39 助记词的用户提供的可选密码短语(passphrase)。它也被称为第 25 个词,因为助记词通常是 24 个词。理论上,如果你添加了第 25 个词——但我不会把它叫做第 25 个词,我们要用它真正的名字来称呼它,即“可选密码短语”,而且它可以不止一个词。这就是钱包密码短语。它是你添加到助记词中的一个额外的可选密码短语,目的是让助记词具备双重验证。这样一来,如果有人偷走了你写在办公室纸上的 24 个词,他们也无法立刻拿走你的钱,因为还有钱包密码短语的保护。现在,回想一下我们之前讨论过的那个

密码管理器中使用的主密码。我们说过,那个密码会被反复进行哈希处理,从而防止暴力破解。在 BIP-39 标准中,可选密码短语和助记词的处理方式完全相同。一种名为 PBKDF2 的密码拉伸算法被用来对其进行拉伸,具体是通过应用 2000 轮的 SHA-512 哈希算法来实现的。这其实是一种妥协,是 BIP-39 标准中的一种妥协,因为 BIP-39 标准(即钱包的助记词标准)必须能够在硬件钱包设备上运行,而这些设备是只有这么大的小型 USB 设备,并没有很强的处理能力。因此,实际运行 2000 轮 SHA-512 需要几秒钟的时间。大概两三秒。这意味着,不幸的是,这种保护并不是非常强大;它虽然足够用,但它还是可以被暴力

破解的,如果你拥有一台性能强劲得多的计算机。例如,如果你使用 GPU,或者更好的是,使用专为 SHA-512 设计的 ASIC 或 FPGA 设备,那么你实际上可以在几分之一秒内完成 2000 轮计算。因此,你可以在同一个种子上每秒尝试数百甚至数千个密码或密码短语。只要有足够预算购买合适的硬件,这就足以让你对带有可选密码短语的 BIP-39 助记词发起攻击。但同样,这绝非易事。所以我们讨论的是多层防御。那么,让我们来谈谈密码短语。我们使用“密码短语(passphrase)”而不是“密码(password)”这个词,是为了表明它不是一个单一的词。它实际上是一个短语。就像助记词是一个短语一样。它是一系列由空格分隔的单词。这使得它更容易记忆,以及

写下和阅读,即使字迹稍微有些模糊,也能读得出来。事实证明,人类在模式识别方面非常非常在行。因此,如果你用自己的笔迹写下一系列小写单词,即使三分之二的单词被弄脏了,你也能读出来,或者能做出相当准确的猜测。如果这些词对你有一些意义,或者你能用这些词在脑海中构建出一幅画面,那么你记住一个短语的效果,实际上要比记住一个由大小写字母和数字组成的随机生成密码好得多。但为了更好地解释这一点,我需要 Randall Monroe 的一些帮助。你过去可能听我谈起过 Randall Monroe。Randall Monroe 是一位图形艺术家,他创作了名为

XKCD 的漫画。XKCD 是一部图形漫画,它展示了不同的技术概念,同时也包含了令人捧腹的社会批判和各种奇思妙想。里面有非常非常聪明的想法,并且呈现得非常非常出色。你知道,情况往往是这样的:几乎任何你想解释清楚的概念,都能找到一幅对应的 XKCD 漫画。所以我打算用一幅你们中许多人可能听说过的漫画,它被称为“correct horse battery staple(正确的 马 电池 订书钉)”。如果这听起来像是在胡言乱语,请稍等片刻。好了,让我们在屏幕上看看这幅漫画。这幅漫画叫做,这幅叫做“密码”。经过 20 年的努力,我们成功地训练每个人使用人类难以记住、但计算机却很容易猜出的密码。如果你看看这里的

XKCD 密码短语概念 (40:47)

左上角,这是网站通常要求你设置的典型密码。也就是大写字母、小写字母、数字和符号以某种顺序排列。你在这里看到的是用户为了生成并记住这些密码而通常采取的做法:他们试图把一个单词打乱。比如这个单词是 Troubadour(游吟诗人)。一个四处游历、歌颂英雄事迹的音乐家。我想这就是 Troubadour 的意思。一个 Troubadour 加上数字 3。所以在这种情况下,你看到的东西看起来有点随机,但实际上并非真正的随机。现在,我们可以从计算机的角度来分析这个特定的东西。从数学角度、从信息论角度,来看看这个东西到底有多随机。或者说这种东西包含多少随机性。所以在这个特定的例子中,我们大约有 28 比特的熵。这意味着这种

复杂程度可以用一个 28 位的二进制数来表示,即 2 的 28 次方。如果你能以每秒一千次的速度进行猜测,你需要三天时间才能暴力破解。这基本上是指在网络服务或类似场景中,你每秒尝试多次猜测。如果你有一个从网站窃取的数据库,当然,在普通计算机上你每秒可以进行远超一千次的猜测。但无论如何,这对于计算机来说其实很容易猜到。计算机很容易猜到,因为 28 比特的熵是不够的。尽管计算机很容易通过简单地尝试这个序列中大小写字母的所有可能组合来猜测和暴力破解,但对于人类来说,它实际上非常难记。而就在

下方,Randall Munroe 向我们展示了一种不同的方法,即使用由空格分隔的纯英文单词。这是一个助记密码短语,而不是普通的密码。在这种情况下,只需随机挑选四个单词,仅仅四个。随机挑选的四个单词实际上会产生——如果你假设它来自一个大词典,比如一个包含十万个单词的英语词典。那么你大约会得到 44 比特的熵。44 比特的熵在每秒一千次猜测的速度下,需要 550 年才能破解。在每秒一万次猜测的速度下,需要 55 年。在每秒十万次猜测的速度下,需要 5 年。这实际上很难暴力破解,而且它只有四个单词。但最重要的是,它很容易让人类记住。这就是为什么我们在 bit 39 中使用助记词。所以,如果你想想“correct horse battery staple”(正确 马 电池 订书钉),你可以创造出这种——即使这些是随机的

单词,你也可以创造出这种奇怪的心理图像,为你提供联想的基础。而联想正是人类记忆的工作方式。所以你在这里看到了这幅小插图。那是一个电池订书钉,正确 (correct)。所以那是一匹马 (horse) 在说那是一个电池 (battery) 订书钉 (staple),然后有人说正确 (correct),那是一个电池订书钉,一个“正确的马电池订书钉” (correct horse battery staple)。如果你对一个极客说出这四个单词,他们会立刻知道你在说什么,因为这个短语太好记了,以至于互联网上数以百万计的人已经通过这幅漫画和例子成功地记住了它。所以,非常感谢 Xkcd.org,你可以去那里看看这个系列的漫画。非常棒的作品。XKCD。但我认为这有助于你理解这个观点。所以这就是密码短语,这是一种更好的生成一个

将密码短语用于钱包和加密 (45:27)

密码管理器的主密码,以及钱包的可选密码短语。因此,你实际上可以用它为你的钱包创建一个可选的密码短语。这真的很难被暴力破解,即使使用 GPU 或 FPG 也是如此。即使你能进行 2000 轮 SHA-512 运算,要想暴力破解仅由四五个单词组成的密码短语,仍然需要几个月甚至几年的时间。如果你用到六个单词,你就真的拥有了一个非常强大的机制。当然,你不会仅仅使用这个。假设你有一个 BIP-39 助记词,并且你想添加一个可选的密码短语,然后你说,好的,我要从字典中随机挑选四个单词。然后这将成为我的可选密码短语,我可以记住这四个单词。并且我也会将它们备份

到第二个地点,因为虽然我能记住它们,但如果我发生了什么意外怎么办。我希望我的遗产因为没人能找到我使用的可选密码短语而化为乌有吗?不,显然我不希望这样。所以我必须备份密码短语,我要备份助记词,即种子。我还要备份可选的密码短语,并将它们保存在两个不同的地方。我还要确保,如果有人偷看了我的种子,我能知道他们动过我的种子,这样我就知道在他们使用强大的计算机遍历密码短语的所有可能组合之前转移我的资金。我采用的方法非常非常低科技。那就是一个塑料袋,一个防篡改的塑料袋。你可以在

各大在线零售商那里买到一百个一包的这种袋子。它们通常用于宾果游戏、教堂等场合的现金捐赠。它们被用来防止员工偷窃。它们是不透明的,一旦你密封了它们,唯一能在不明显的情况下拆开它们的方法就是撕开或剪开它们,这会留下痕迹。你无法通过冷冻、加热或拆开再重新密封而不留下痕迹。因此,如果你把你的助记词和可选密码短语放在这样一个防篡改的袋子里,如果有人偷看,你就会知道他们偷看过了。所以,如果你每隔几个月检查一次你的存储地点,你就有了很好的安全基础。好了,我要做个总结了。我们大约还要继续 45 分钟,因为我还有很多关于双因素

身份验证的内容要讲。但我希望你们理解我们是如何处理这个密码短语概念的。所以,在下一节中,我将讨论如何安全地生成密码短语。让我们来一场表情包风暴吧,我呼吁 YouTube 的所有社区成员,通过发起一场表情包风暴,向大家展示我频道自定义表情包令人难以置信的创造力和表现力,开始吧。好了,我回来了。那么你想创建一个密码短语。你知道这个密码短语最好是我们所知的 XKCD 密码短语的形式,比如 correct horse battery staple(正确 马 电池 订书钉)。一系列随机挑选的英语单词,你可以为它们建立心理联想,以及与之相配的图像。你将使用这个密码短语,也许作为你的密码管理器的主密码,你将不得不输入它

安全地生成密码短语 (50:25)

每天在不同设备上多次使用。我将类似的密码短语用于其他目的,并且我不会重复使用同一个密码短语。但我发现,在变得复杂之前,我只能记住三四个这样的密码短语。因此,我需要一个这样的密码短语作为我的 BIP-39 钱包的可选密码短语。我的笔记本电脑硬盘加密也需要一个这样的密码短语。我倾向于使用加密硬盘。实际上,在启动我的笔记本电脑或任何设备之前,你需要输入一个密码短语。而那个密码短语也是这种形式的。它是一个助记词密码短语。它使用一系列由空格分隔的英文单词。为了保持一致性,我总是将我的助记词密码短语全部小写,中间用简单的空格隔开。也就是:小写单词,空格,小写单词,空格,小写单词,回车。它们可以

是四到八个单词的长度。你必须决定你需要什么级别的安全性,这取决于你在哪里使用它。从该密码短语派生加密密钥的生成过程中使用了多少轮哈希处理,以及你面临的威胁级别是什么。但四个单词可能是你使用的最低数量,而八个单词可能是你开始遗忘和混淆之前的最大数量。特别是对于你不经常使用的密码短语。你使用密码短语的频率越高,输入的频率越高,你就可以把它设置得越长。因为这样你就会被迫通过练习来记住它。因此,我可以在我的密码管理器上使用稍长一点的密码短语,因为我每天都会输入。我会使用稍短一点的密码短语,

例如,作为钱包上的可选密码短语,以及在我的设备上使用更短的密码短语作为可选密码短语,用于我的硬盘的加密启动,因为那个我可能一个月才输入一次,而且我可能更容易忘记。那么我们如何挑选这些单词呢?有很多方法可以做到这一点,但你希望它们是随机的。你不希望它们是一首歌。比如,我不知道什么歌的歌词。我本来想说一首歌,但我觉得那会引起太多争议。所以我干脆跳过这个。你不希望它是你足球队的战斗口号。你不希望它是你所在州的标语。你不希望它是《星际迷航》里的一句话。为什么?因为所有这些短语都存在于

黑客收集的字典中。任何你作为短语输入 Google 可能会得到匹配结果的内容,当然,你不会把它输入 Google,因为那会破坏安全性,你绝对不应该使用。你绝对不应该使用曾经被说过,或者可能被某人说过的短语。因此,相反,你应该挑选随机的单词,然后尝试在脑海中创建一个对你有意义的图像或联想。它可以非常奇怪和离奇,只要它对你有意义,并且你可以在脑海中重复那个图像并进行一些练习。这是一个好方法。那么你如何挑选随机的单词呢?嗯,有很多方法可以做到。你可以翻开字典的不同页面,闭着眼睛把手指放上去,但这并不是非常

好。你可能会把大部分时间花在挑选字典中间三分之一的页面,以及用手指指向页面中间三分之一的位置。但这实际上已经足够好了,因为字典里有很多单词。一本又好又大又厚的字典。所以你会获得足够的随机性。所以这是一个你可以在家里轻松完成的方法,不需要任何额外的努力。如果你想更进一步,你可以使用一种叫做 diceware 的技术。D-I-C-E-W-A-R-E。diceware 是一种机制,你可以下载一个单词列表。你可以下载 diceware 索引列表,你会找到的网站是……你可以很容易地在 Google 上找到它。出现的第一个,也就是 diceware.D-M-U-T-H dmuth.org 是正确的那个。如果你使用那个网站,你可以下载这个列表。那么什么是

掷骰子(Diceware)方法 (55:27)

这个列表有趣的地方在于,它是用包含 1 到 6 之间数字的编号来索引的,这让你能够使用骰子,普通的、常规的骰子。你掷五次骰子,生成一个五位数,其中所有数字都在 1 到 6 之间,然后你在 Diceware 列表中查找与该索引对应的单词,把它写下来,你就获得了随机性。你获得了专为普通骰子设计的随机性,这非常方便。如果你手边有骰子,你可以轻松做到这一点。它是非数字化的,你把列表下载到自己的电脑上,然后简单地从列表中随机选择单词。再说一次,这是生成这种随机密码短语的绝佳方法。当然,你也可以在电脑上使用程序。但问题在于,

如果你的电脑上已经存在木马恶意软件或键盘记录器,那就会带来一些困难。我使用一个名为 XKCD pass 的程序,它实际上能生成兼容 XKCD 的密码短语。我生成了一大堆密码短语。然后我从那个非常非常长的列表中随机挑选一个。而且我不会在电脑上留下任何关于我挑选了哪一个的痕迹。我只是在一个很长的列表中不断滚动、滚动、再滚动。这样就很难被截获。同样,这关乎安全层级。它并不完美。整个过程中存在许多困难和漏洞。好了。现在我们已经讨论了密码安全,并且将许多主题结合在了一起。我们讨论了密码的复杂性。我们讨论了分层安全。我们讨论了人类记忆和人类随机性的弱点。我们讨论了为什么

使用软件比不使用软件更好,即使你不能百分之百地信任该软件。我们讨论了如何生成你的主密码短语,以及你应该使用哪种类型的主密码短语,然后你可以使用它从密码管理器中生成你的会话密码,或者复杂、包含字母数字且随机的网站密码,这些密码是不可能记住的,让你的密码管理器来记住它们。所以下一个主题是双重身份验证。那么,什么是双重身份验证呢?双重身份验证是指你使用两种不同的方式来验证自己的身份。身份验证基本上意味着证明你就是你所声称的那个人。而双重身份验证意味着使用两种不同的机制来证明你就是你所声称的那个人。在计算机安全中,我们将多重身份验证和身份验证因素描述为三种事物之一。你可能拥有的三种因素是

你所知道的东西,例如密码就是你所知道的东西。你记住了它,因此你知道它。基于知识的身份验证也是这种“你所知道的东西”因素的一种形式,比如你出生在哪里?你的第一台蛋糕搅拌机是什么牌子的?你在学校里亲吻的第一个人是谁?不管是什么。现在,显然你所知道的东西是一个因素,而且是一个很好的因素。前提是,第一,你能记住它,并且没有其他人能轻易猜到它。这就是我们讨论过的所有关于密码复杂性的用武之地。第二种身份验证形式。一种身份验证因素是你所具备的特征。你所具备的特征通常指的是生物识别技术,这是一种关于你身体特征的不可变的测量数据,是无法伪造的。比如指纹、虹膜扫描、当你

重复你应该重复的短语时的声音。你的步态、你的身高、用于面部识别的脸部,所有这些都是生物识别因素。也就是你所具备的特征。生物识别因素有优点也有缺点。它们可以作为另一个因素的补充来使用。当然,生物识别技术的一大缺点是,如果它被复制或丢失,它是无法被替换的。例如,如果我的指纹泄露了,每个人都能获取我的指纹,并能像你在那些间谍电影中看到的那样用乳胶重新制作它们,那么我无法改变我的指纹。因此,这种生物识别技术对我来说就不再有用了。我们已经看到生物识别技术很难应用,但作为第二因素非常有用,绝不能作为主要因素。我绝不会使用生物识别技术作为验证自己身份的唯一方式,比如对我的

生物识别身份验证 (1:00:44)

手机。因为正如你所见,每个八岁的孩子都知道,如果趁妈妈在沙发上睡觉时,把她的 iPhone 拿到她的手指上,你就可以去亚马逊上买东西了。你可以成为你自己的专属圣诞老人。只要你能拿到妈妈的拇指,或者把面部识别设备举到爸爸面前扫他的脸。当爸爸在烧烤派对上忙碌了一天后正打着呼噜时。单靠生物识别是不够的,但它是一个非常好的第二重验证因素。最后一个因素是你拥有的东西,你持有的东西。而这种生物识别因素通常包含在一个额外的设备中。它是一个作为你持有的安全因素的设备。密钥是一种“你拥有的东西”的身份验证因素。数字密钥、私钥,甚至是物理的

用来开门的钥匙。如今,我们越来越多地使用基于“你拥有的东西”的第二重验证因素,它们被制成了 USB 设备。事实上,我就有一个一直插在我的笔记本电脑上。你们中的很多人可能以前听我谈论过这些。这是一个 YubiKey,这个 YubiKey 设备非常小巧,当我把它插进笔记本电脑的 USB 端口时,唯一露出来的是一个小金属片,它是触控感应的。当我尝试使用它时,它要求我触摸它。当我触摸时,我就激活了它,它会从我的电脑发送一个代码。现在,如果不轻触我电脑侧面的这个设备进行身份验证,你就无法登录我的电脑以及我使用的许多其他服务。现在,如果你窃取了我的数据库或我的主密码短语,或者

你猜到了我的密码,你仍然无法解密或打开这些设备,也无法访问我的各种账户,因为你没有这个东西。我有这个东西。当然,这是一个额外的安全因素。单靠它自己是不够的,因为如果有人偷了我的笔记本电脑,现在他们有了这个东西,但幸运的是他们没有我的密码,这是另一个因素。所以总的来说,当我们谈论多因素身份验证时,我们认识到没有任何单一的身份验证因素本身是足够的。所有的身份验证因素都有失效模式。但是,如果你使用多因素身份验证,并且你的身份验证因素是多样化的,那么一个身份验证因素的失效模式会让另一个因素成为你的保护。所以你有了多层保护。你知道在每部间谍电影中,当他们基本上砍下

坏人的手指,然后把它拿到指纹读取器上用来开门时,其实没有门是那样工作的。所有的门也都要求输入 PIN 码,正是为了防止如果你窃取了 PIN 码,你却没有手指。而如果你偷了手指并把它砍下来,你又不知道 PIN 码。两者缺一不可。没有这种设备的制造商会把它设计成只能用其中一种方式打开。事实上,当人们把手机设置为仅通过生物识别解锁时,那是极其危险的,你需要确保你有一个额外的机制。聊天室里有一个很好的后续问题:如果我弄丢了我的 YubiKey,我的安全密钥怎么办?嗯,实际上我有好几个。我有三个。我把其中一个存放在异地,作为我最终极的备份。

我有一个不一直插在笔记本电脑上的第二个密钥,我会随身携带。你经常会看到安全人员把它挂在脖子上的挂绳上,或者作为钥匙扣连接起来。这些设备非常坚固,它们通常被设计成可以挂在钥匙扣上。所以你可以把它们和你的钥匙放在一起,这很合理。类似的安全模型,它们几乎坚不可摧。你可以用卡车碾过它们,它们仍然能工作。所以我注册了所有这三个安全密钥,这样任何一个都能起作用,我必须把这三个都弄丢才会失去访问权限。但这三个都放在很难拿到的地方。而我在这里试图应对的主要风险、主要威胁是远程入侵。是的,如果你闯入我的房子、办公室

安全密钥与 YubiKey (1:05:51)

或者在五号秘密地点,而你是一个闯入我酒店房间之类的邪恶女佣,你可以找到这些设备,但你可能没有我的密码。如果你黑进我的系统并获取了我的密码,你却没有这个设备。如果你试图用密码登录我的某台设备,我不会敲击电脑侧面来给你访问权限。老实说,当我的电脑无人看管时,我会拔下 YubiKey 随身携带。所以,这又回到了分层防御的问题上。因此,双重身份验证意味着使用至少两个因素向任何服务或设备验证你的身份。这些因素包括你所知道的、你所拥有的以及你本身的生物特征。这三者中的任何一个都可以用作第二因素。当然,你也可以

使用三重身份验证,如果你想的话,尽管这有点不寻常,因为到那时它会变得繁琐且复杂。难以恢复,且很容易被锁在外面。所以“二”通常是最佳数字,这就是为什么我们称之为 2FA(双重身份验证)。其他人称之为 MFA,即多重身份验证。它们完全是同一回事。还有另一个标准,它是业内使用的安全密钥(就像我向你展示的那个小 YubiKey)的通用格式标准。它是由于一个名为 FIDO 联盟的标准机构创建的,被称为 U2F(通用双重身份验证)。如果你注意到我代码的幻灯片上写着学习 U2F(通用双重身份验证)。字母 U,数字 2,字母 F,即 U2F。这只是一个基于硬件的多重身份验证设备的标准,该设备可以插入连接或

通过蓝牙或 NFC 传输到你试图进行身份验证的设备。好了,让我们来看一个问题。不是那个。在哪里?也许现在有了?好的,等一下。看来问题没有被高亮显示。不知道为什么。请给我一点时间。我会修好它的。我需要刷新一下浏览器。希望它不会向我索要复杂的密码。好的,似乎有某种……哦,等等,稍等一下。我的 Slido 出了点问题,所以我实际上看不到高亮显示的问题。我不知道为什么会这样。以前从未见过这种情况。哦,有一个投票。显然有一个正在进行的投票阻碍了我查看问题。我不知道为什么。不好意思。哦,出来了。它自己恢复了。抱歉,各位,遇到了一点技术故障。为什么文本

消息是一种薄弱的双重身份验证,它比没有好吗?正如其他人指出的那样,许多银行使用 SMS,他们使用 SMS 文本消息作为双重身份验证。那么,为什么文本消息是一种薄弱的双重身份验证呢?好的。那么文本消息属于哪种类型的因素呢?让我们看看能否弄清楚。它是你所知道的吗?不,你当时并不知道。似乎正在进行某种投票打断了我们。抱歉。不知为何,Slido 以一个投票开始了。这很奇怪。好吧。文本消息是一个好的双重因素吗?它属于哪种类型的因素?它是你所知道的吗?不,因为你不知道它,当它作为文本消息发送给你时,你并不知道它,你是后来才发现它的。所以它不是你所知道的。它是

为什么短信是薄弱的双重身份验证 (1:11:00)

是你本身的特征吗?不,不是。是你拥有的东西吗?算是吧。你可能会想,好吧,这是我拥有的东西,我拥有接收短信的手机。但短信并不是发送到手机上,而是发送到一个电话号码上。你拥有这个电话号码吗?答案其实是,电话号码就是 SIM 卡,或者更确切地说,是你手机中 SIM 卡所连接的账户,那么谁拥有这个账户呢?答案是沃达丰 (Vodafone)、Verizon、AT&T、T-Mobile 或其他任何电信运营商。因此,短信双重身份验证的问题在于,你并不拥有这个电话号码。电话公司才拥有它。而电话公司的安全性极差。就是这样,就这么简单。所以你所要做的就是打电话给电话公司的客服,

在背景中播放婴儿哭闹的声音,假装你在婴儿尖叫时正与一位沮丧的保姆说话。而你的丈夫或妻子在背景中对你大喊大叫。你情绪崩溃,度过了非常糟糕的一天。而客服部门那些非常乐于助人且极具同理心的人会绕过所有的安全检查,因为你不知道你的配偶在账户上设置了什么密码,而且这真的是紧急情况,你真的需要取得联系。他们会很乐意将号码携号转网到你现在需要激活的新手机上,因为这是紧急情况。现在,如果这听起来像是一种理论上的攻击,实际上在 Def Con、Black Hat 以及其他黑客大会上有一个精彩的演示,他们进行了这些所谓的社会工程学攻击。而且

其中最棒的一个视频是,一位技术非常高超的社会工程学黑客向记者演示了他们接管电话号码的速度有多快:他们打电话给电话公司,在背景中播放婴儿尖叫的录音,恳求他们在这种紧急情况下提供帮助。毫不夸张地说,不到 10 分钟后,他们就接管了电话号码,然后用它重置了他们的电子邮件账户,接着又用它重置了他们所有其他的账户,基本上在不到 15 分钟的时间内就攻破了他们整个数字身份。这就是为什么短信是一种薄弱的双重身份验证形式。如果可以避免,请务必不要使用它,这非常重要。但回答那个匿名问题:它比没有好吗?确实比没有好。它比没有好,前提是

你能避免在可以选择更好方案的账户上使用它。因此,在任何可以使用短信以外其他方式的账户上,请使用其他方式。另一件事是仔细考虑你的电话服务提供商是谁。因此,许多安全专业人员使用的电话服务提供商没有可以被社会工程学攻击的人工客服,并且这些账户本身受到强大的双重身份验证的保护。例如,谷歌的 Project Fi(F-I),这是一家虚拟网络运营商,没有可以交谈的人工客服。你可以通过谷歌账户连接、访问和配置该电话账户,你可以使用强大的双重身份验证(例如通用双重身份验证令牌)来保护该谷歌账户。这意味着你的号码无法被携号转网,这也意味着你可以更安全地使用该号码来保护基于短信的

双重身份验证,比如那些安全性极差的银行。因此,就安全性最差的公司而言,依次是银行、电话公司,然后才是拥有像样安全团队的实际服务提供商。所以这完全取决于安全层级。如果你别无选择,只能使用短信作为你的双重身份验证,那么我会告诉你,我使用的一些服务也别无选择,只能使用短信。那么请确保该短信发送到一个受到良好保护的账户。即使是你的电话运营商,你也可以在你的账户上设置 PIN 码。你可以关闭携号转网的功能。你可以采取各种措施来加强该账户的安全性。但如果可以的话,最好将你的号码转移到虚拟网络运营商或服务提供商,那里没有可以

保护你的电话号码 (1:16:25)

被社会工程学攻击而转移你的号码。并且对控制你电话号码的因素有强身份验证。如果可以的话,请尽量避免。特别是当它是连接到你存储价值数百万美元加密货币的交易所的第二因素时,更要避免。当然,我在这里暗示的是一位相当臭名昭著的加密货币专家,他实际上将数百万美元的加密货币存储在一个交易所钱包(一个托管的热钱包,不是你自己的代币)中,使用由 AT&T 托管的短信双因素身份验证,并且目前正在起诉 AT&T,要求赔偿大约 5000 万、1 亿美元,或者类似这种荒谬数字的损失。老实说,对于这种法律案件,作为专家证人,我会站在证人席上,笑上 30 分钟,当着

原告的面。当他们说把数百万美元放在一个由 AT&T 短信双因素身份验证支持的交易所是别人的错时。我不会对此有太多同情。好了。那么让我们来谈谈真正有效的双因素身份验证。我已经谈过安全密钥,它是一个硬件,但还有另一种非常常见的机制,你们以前都用过,那就是六位数字。Neeraj 很有帮助地问了我一个专门关于这个话题的问题。嗨,Andreas,Google 或 Microsoft 身份验证器是如何工作的?有没有可以取代它们的去中心化的系统?Neeraj,这些就是去中心化的系统。虽然该应用程序是由中心化实体创建的,但该应用程序实际上相当简单。因此,它实际上是去中心化的。存储在这些身份验证器上的秘密

仅存储在你的本地设备上。当然,也有一些变体。其中一些应用程序,例如 Offi,确实允许你备份并将作为双因素身份验证基础的秘密移植到另一台设备。这使它们很方便,但也很危险。如果你在 Offi 或其他支持备份的系统中开启了多设备支持,你必须将其保持关闭状态,只有当你移植到另一部手机或设备时才将其开启,例如,当你升级智能手机并需要将所有这些账户转移到新设备时。Google 身份验证器实际上在他们的最新版本中引入了备份和移植功能。我不知道它是如何工作的,但如果它确实以这种方式工作,请确保你默认将其关闭。这样只有该本地设备

才能使用这些安全代码。否则它就不是真正的双因素,对吧?它不是你拥有的东西。它是一个备份密码。它是你知道的东西,而且很容易被盗,或者它与你的电话号码绑定。在这种情况下,我们又回到了之前讨论的短信安全问题。有人转移了你的 SIM 卡,他们接管了你的号码。他们在智能手机上安装身份验证器软件。然后他们下载备份并将其移植到该设备。他们就拥有了你所有的双因素身份验证,而这些实际上并不是双因素身份验证。所以这就是失败模式,但首先让我们谈谈这个东西是如何工作的。那么 Google 或 Microsoft 身份验证器是如何工作的?首先,让我们给这个东西命名。这是一种称为一次性密码或 OTP 的机制。一次性密码已有几十年的历史,它们已经被使用了,好吧,让我纠正一下自己。数字化的

便携式设备上的一次性密码已有几十年的历史。一次性密码本身实际上有数千年的历史。这里的一般概念是,如果你生成一个随机数序列,并且通信的双方各有一份该序列的副本,或者可以生成该序列,而其他人都不能。那么就没有什么可以窃取或猜测的了。只要你能生成这些秘密并且不被窃取,一次性密码本就是一种不可破解的加密方法。而数字形式的、六位代码的一次性密码非常非常难以窃取。只要你能对生成它们的根秘密保密。现在,Google 和 Microsoft 身份验证器是一次性密码的一个特定子类,称为基于时间的一次性密码。如果你想找到一个支持基于时间的一次性密码标准的应用程序,你可以使用首字母缩写

基于时间的一次性密码 (1:21:56)

T-O-T-P。OTP 代表一次性密码(one-time password),而 T-OTP 代表基于时间的一次性密码(time-based one-time password)。“基于时间”仅仅意味着该代码与当前时间绑定,并且每 30 秒更改一次。因此,这些机制使用一个秘密(secret)和一个时钟(必须或多或少与当前时间正确同步),来为你想要使用它的特定时间生成特定的代码。而且因为这是一个 30 秒的时间窗口,你可以有一点偏差,你有时间在屏幕上看到它并将其输入到网站中。现在,因为你连接的网站或设备拥有相同的秘密,并且时钟也基本同步,所以它可以计算出你应该输入的代码。它通常会查看前一个和后一个代码,这样它就能知道你是否有一点偏差,

比如刚刚超过 30 秒。它会接受这些代码。然后你在屏幕上看到当前的代码,还会看到一个小倒计时。30 秒后,它会改变,你会得到一个新的六位数字。所以它的工作原理是使用一个私钥。并从该私钥出发,使用一个派生函数,这可以是各种不同的形式。我不知道 T-OTP 的标准用法是什么。我猜它是某种结合时间的哈希机制。通过这个派生函数,它每 30 秒生成新的数字代码。你可以从序列——抱歉,是从秘密和当前时间中,计算出当前时间的正确代码。秘密本身包含在你尝试使用的服务首次显示的二维码中。所以当你去使用其中一个

这些设备时,它们都是兼容的,因此无论你使用 Google authenticator、Microsoft authenticator、Offi 还是 duo 或任何其他应用,而且大多数密码管理器也内置了这种 T-OTP 服务。你所要做的就是扫描你试图添加双重身份验证的网站或服务提供的二维码。那个二维码包含一个秘密。该秘密是一个随机生成的字母数字字符串,与你的账户绑定。由网站为你随机生成。它以二维码的形式呈现。你用你的 Google authenticator 设备扫描它,你的 Google authenticator 设备将其记录为秘密,然后开始生成当前时间的代码。然后你将其中一个代码输入到网站中。它可以通过跟踪并确认:“是的,这就是我期望的代码”,来验证你输入是否正确,

在这个 30 秒的窗口内。现在你就建立了双重身份验证。当然,这些机制的难点在于备份。有很多种备份方法。一种备份方法,老实说这实际上可能是最安全的备份方法,就是物理打印。所以当你的屏幕上出现那个二维码时,点击打印。我说物理打印,是因为你可能倾向于做另一件事,那就是拍张照片。当然,为了拍照,你会使用你的智能手机。问题是那张照片会被存储在云端。到那时,它就不再仅仅存在于 Google authenticator 或 T-OTP 身份验证器设备上了。在那种情况下,它就不再是一个安全的第二重验证因素了。将你的双重身份验证秘密备份到

云端是个糟糕的主意。实际上,最好使用双重身份验证软件可能提供的备份功能,它至少使用了你选择的密码进行加密。你把那个密码放在密码管理器里的什么地方?如你所见,我们在这里绕圈子,有时这会让人感到困惑。所以,如果你想备份,就打印出二维码;或者干脆不备份,对于大多数服务,如果你丢失了双重身份验证令牌或应用,你可以要求他们重置。他们会让你经历重重考验,比如举着身份证自拍,并通过电子邮件、电话等多种其他机制进行确认。许多此类服务还会为你提供一系列备份代码,这些是预先计算好的数字代码,你可以输入它们来代替动态

双重身份验证的层级 (1:26:44)

生成的静态代码。这些是为了防止你丢失身份验证设备而准备的。你把它们存放在哪里呢?存放在你的密码管理器中。因此,使用基于时间的一次性密码应用程序进行双重身份验证,是一种强大、有效且易于使用的机制,你今天就可以将其添加到你的所有账户中。现在让我们来看看安全层级。通用双重身份验证安全密钥,基于非常非常强大的加密。如果你注册了几个并把它们保存在安全的地方,就很难被攻破。它很容易备份,因为它是物理实体。你可以通过保留另一个物理实体来进行备份。它不可能被复制,也不可能在你不注意的情况下被偷走。第二层级是基于时间的一次性密码,你可以通过扫描二维码和使用像 Neeraj 讨论过的那种应用程序来使用。它们每 30 秒给你一个六位数的

代码。同样,这让你的手机成为了你所拥有的第二重验证因素,而这些有点难以备份。如果你的手机被偷了,它们可能很容易被攻破。我喜欢在双重身份验证应用程序本身设置指纹解锁,这样如果不使用指纹,你就看不到数字代码。现在,这本质上是第二重因素之上的第三重因素,它保护了我,以防有人偷了我的手机,而且当时手机是解锁状态,他们本可以进入我的双重身份验证应用程序,但现在他们进不去了。最后,最低层级是短信双重身份验证,这当然不安全,除非你没有其他选择,在这种情况下,有总比没有好。这就是双重身份验证的各个层级。让我们看看还有什么其他问题,同时

我在这里稍微休息一下。我将播放一段来自我的赞助者的视频,它会告诉你为什么要支持我的在线工作。所以我们今天在做的,以及我一直努力去做的,就是为你提供关于比特币和开放区块链的高质量教育材料,并且是以一种中立的方式,没有赞助商,没有代言,不向广告商妥协,也不受制于企业利益。除了你们,没有人为此买单。因此,如果你喜欢这种教育,如果你从中受益,或者即使你只是想回馈社会并帮助他人获得这种教育,并帮助我和我的团队继续做下去,做得更好、更广泛,那么请考虑通过 YouTube 会员,或者更好的方式——每月的 Patreon 订阅来支持我。用我的赞助者的话来说,原因如下。

  • 我是 Andreas 的赞助者,因为我在网上偶然看到了他的视频,这就是我了解比特币的方式。我就是这样接触到比特币的。 - 今晚我出来参加 Andreas 组织的一个社交活动,这是他为付费赞助者提供的支持的一部分。刚在伦敦市中心喝了几杯,所以这是一个非常有趣的夜晚。认识了很多志同道合的人。 - 我们应该支持 Andreas 正在做的工作。他在吸引新人了解比特币和参与比特币教育方面做了很多工作。 - 他是一位伟大的老师。他能用通俗易懂的方式解释非常复杂的话题。他非常诚实,也非常严谨。他们可以做好准备,并且保持理智上的诚实。我认为这是他最大的特点。 - 他把比特币及其周边产业这个非常复杂的主题解释得非常清晰。 - 它已经

成为我非常非常好的灵感来源,我给他的每一枚比特币,都会被很好地用于帮助我们理解比特币。我认为这在某种程度上会改善世界。 - 作为一名赞助者,我有机会见到 Andreas,这就是我喜欢成为赞助者的原因,我也会继续做一名赞助者。 - 我觉得这是一件好事。如果你有兴趣学习新事物,同时也想支持比特币社区,那么你就应该成为一名赞助者。 - 成为赞助者会让你感到特别。你可以参加他的现场问答环节。你可以在欢乐时光见到他。这真的很棒,完全值得。我对成为一名赞助者非常非常热情。 - 我希望他能够在未来没有广告的环境下,继续制作他那些伟大而有价值的内容,并且只是

问答:携号转网与应用安全 (1:31:37)

在他的赞助者的帮助下。这就是为什么我作为赞助者支持他。(轻柔的音乐)- 好了,在我们进入下一个问题之前,聊天室里有几个很棒的跟进问题。我的制作人已经帮忙为我贴出来了。首先,我们有来自 Lucia 的跟进问题:任何电话号码都可以携号转网到没有人工客服的运营商吗?这取决于你注册所在的国家。不同国家对于电信供应商之间的携号转网有不同的法律。但老实说,大多数欧洲国家,当然还有北美,我知道美国和加拿大就是这种情况,都强制要求运营商履行携号转网请求。这意味着,只要流程正确,你就可以转移你的号码而不会丢失它,并转到一家新的运营商。然后你就可以转到一家没有人工

客服、没有人工服务的运营商。Google Fi 是我在这方面听说得最多的。可能还有很多其他的运营商,在防范号码劫持攻击方面同样安全。我比较倾向于这种方式,尽管出于显而易见的原因,它确实存在一些隐私风险。第二个问题来自 Ben,Ben 问如何知道你的应用没有泄露私密密钥。Ben,你无法确切知道你的应用是否在泄露私密密钥。你只能选择那些被大量人群使用、在安全环境中运行、经过审计和审查(也许是开源的,代码经过审计)、由可靠公司开发的应用。这些公司认真对待安全问题,并且有着长期不破坏系统安全性的良好记录。这需要对第三方的信任。然而,我谈到的几乎所有事情都需要对第三方的信任。所以接下来的问题是,你投入了多少信任

在这个第三方身上,以及这个第三方是谁?还有什么替代方案?如果替代方案是不使用应用而试图依靠记忆,那么实际上这个替代方案更糟。这就是你在安全方面必须达成的谨慎平衡。我们越来越多地看到,越来越多的公司试图实施各种更安全的去中心化身份验证、去中心化身份、去中心化验证机制。例如,比特币或以太坊上的多重签名通常是此类服务的基础。但目前这些服务相对不成熟,尚未广泛部署,还不适合这些类型的解决方案。因此,我对该领域的未来充满希望。与此同时,你应该问的问题是,使用有着良好记录的中心化服务,还是根本不使用服务并试图依靠

记忆?我可以明确地回答,使用来自受信任的或有着良好记录的公司的密码管理器,比不使用密码管理器并试图依靠不可靠的记忆、不可靠的随机性以及可能超出你技术能力的 DIY 解决方案要好得多。让我们看下一个问题。它来自 Trixie:Andreas,喜欢你的眼镜。我也是。谢谢你,Trixie。戴上这些,我终于能看清笔记本电脑上的内容了。我做的直播有两种类型。有些比较即兴,更多是基于提问。我不需要看太多笔记本电脑上发生的事情。我那边有一个很好的演播室显示器,距离足够远,我那衰退的视力也能看清。而有些像今天这样的直播则稍微复杂一些。我需要做很多

问答:将银行短信转换为更强的身份验证 (1:36:01)

阅读。我把笔记本电脑放在桌子上。所以我需要这些东西。不过谢谢你,我们扯远了。回到这个问题的核心。为了我们的编辑,我重新开始。Trixie 问,有没有办法把那些愚蠢的银行短信转换成 Offi 或类似的东西?一个基于时间的一次性密码系统。Offi 就是那种基于时间的 T-OTP,即基于时间的一次性密码。Trixie,不,没有办法。除非你的银行有一种机制支持短信以外的其他方式,否则你无法使用基于时间的一次性密码。在这种情况下,正确的答案是使用短信,但将你的手机服务提供商更换为要求强身份验证机制的提供商,例如基于时间的一次性密码,或者更好的是使用带有安全密钥的通用双因素身份验证,或者你可以配置这些选项的提供商。这样你的号码就不会被携号转网,因为这需要强身份验证。而且

如果你的号码可以被携号转网,那么你的银行短信就会安全得多得多。所以这是 Trixie 提出的一个很好的问题。让我们看看这里还有什么其他问题。我没有看到太多其他问题,所以,哦,有了。哦,版主们现在正疯狂地、疯狂地调出问题并为我排好队,这样我们就能找到更多问题了。希望你喜欢今天的会议。那么让我快速回顾一下我们到目前为止所学到的内容。安全从来都不是百分之百的,安全是指在你的技术能力范围内,用你能找到的最简单、最能一致执行的解决方案来管理现实的风险,该解决方案与其他解决方案分层,以提供一系列屏障来抵御坚定的攻击者。如果你正确地做好了安全工作,那么你就会对这些措施感到得心应手。你可以一致地应用它们,并且你

有足够的防御层,这些防御层仔细匹配你的技能和你的威胁环境,使得攻击者既没有时间、资源、预算,也没有兴趣或真正的奖励来攻击你。相反,他们会去攻击更容易得手的目标,这基本上就是安全的本质。你不可能做到完美。事实上,你是人类。因此,根据定义,你将是不完美的。你必须能够一致地并在你的技能水平内执行它,这意味着它必须足够简单。它不能用单一的工具、技术、实践或行动来解决,所以你必须使用多种工具、多种技术、多种行动,将它们分层在一起,最好是多样化的安全机制,这些机制要求攻击者具备不同的技能,以防范不同的威胁,这样你就可以将它们分层并创建一个综合系统。而这仍然不能让你

达到百分之百的安全,但是,你知道,如果你一致地去做,如果你刻意地去做,如果你能很好地根据你的威胁需求和技能水平来量身定制它,你就可以加入那些可以诚实地说“我已经很多年没有被黑客攻击过”的精英人群。这是你能做到的最好的程度,但这通常已经很不错了。这让你远远超越了许多其他人。匿名者问,对于那些还没有抽出时间仔细比较、学习或尝试任何密码管理器的人,你能分享一些关于密码管理器的担忧或建议吗?这些年来我用过许多不同的密码管理器,有一些非常非常常用,但并不是我的最爱。根据我使用的设备,我有时或一直都在勉强使用它们。有一些已经得宠

或失宠。还有一些新的密码管理器正在崭露头角。我无法确切地告诉你哪一个适合你。我可以告诉你,可能最受欢迎的两个是一个叫做 LastPass 的系统和一个叫做 1Password 的系统,数字 1,后面跟着单词 password,连成一个词。1Password 和 LastPass 可能是最著名的。除此之外,还有许多其他系统,具有不同的功能和差异化特点。我比较感兴趣的一个稍微新一点的是 Bitwarden,因为这是一个开源系统,跨平台且架构相当不错。但归根结底,就像我给硬件钱包制造商提供过相同的建议一样,例如,我也会对我们的密码管理器给出同样的建议。排名前三、四的密码管理器之间的差异,

问答:比较密码管理器 (1:41:43)

这个领域有五家公司,它们的产品之间的差异非常小。它们都相当不错,都非常安全,也都很稳定。使用排名前四五位的密码管理器之一,与完全不使用密码管理器、试图依靠记忆或尝试构建自己的解决方案之间,存在着巨大的差异。因此,问题不在于我应该使用哪一个?而在于我是否应该使用密码管理器,答案是肯定的,而且不要浪费太多时间去纠结。一种考虑方式是,你家里的其他人都在用什么?这样你就可以轻松地与他们共享密码。这些产品大多是封闭的生态系统。因此,如果你家里的每个人都在用 Bitwarden,那么你最好也用 Bitwarden。如果你的公司或雇主正在使用某一款,那么你可能

最好在个人事务上也使用同一款,只要你能保持两个独立的账户即可,这样你就不必运行太多应用程序,避免过于复杂。再说一次,保持简单。你唯一应该问的问题是,我能多快地启动并运行其中一个,然后妥善地保护它,接着去更改所有网站上的所有密码,从最重要的网站开始。有匿名用户问,Google Authenticator 的初始设置和实现是否使用了对称密钥,这与使用非对称加密的比特币不同?是的,确实如此。我不知道 T-OTP 标准是什么,因为我从未研究过它。它甚至可能不是对称加密。它可能是一种密码拉伸算法。事实上,它很可能是某种基于

哈希派生的序列。但我不知道,我还没有深入研究过。我可以告诉你,它不是非对称的。所以它不是一个私钥和公钥系统。什么是对称加密?什么是非对称加密?这是聊天中出现的另一个问题。非对称加密是指一对密钥中有两个密钥,我们称之为私钥和公钥,由其中一个加密的任何内容只能由另一个解密,反之亦然。因此,如果你用私钥加密某些内容,它只能用你的私钥……不对,是用你的公钥解密。如果你用公钥加密某些内容,只有拥有私钥的人才能解密它。这些技术的结合被用于数字签名。它还用于两个接收者之间数据的加密和解密。然而,这意味着

如果你想加密发送给我的内容,你需要我的公钥。如果你用我的公钥对其进行加密,而公钥是公开且易于共享的,那么只有我能解密它。如果你想将其加密发送给许多人,你需要他们所有人的公钥,并且你需要分别用他们所有人的公钥对其进行加密。对称加密是指你只有一个密钥,它同时用于加密和解密。事实上,直到 20 世纪 70 年代,对称加密一直是唯一的加密机制。如果我没记错的话,非对称加密直到 20 世纪 70 年代才被发明出来。这就是对称和非对称之间的区别。让我看看,我想这里还有一个问题。Carlos 的另一个后续问题。我们什么时候会使用比特币签名进行身份验证?你今天就可以使用比特币签名进行身份验证。问题在于你必须

小心如何构建它,并了解你到底在证明什么。比特币签名,以及通常使用数字签名进行身份验证,只能证明非常具体且非常狭窄的一系列事情。假设你让我用我的比特币私钥对一条消息进行签名,生成一个签名,然后与全世界分享。那么,这里有几件事是我所证明的。我证明了在创建签名时,我拥有该私钥。当然,这并不意味着我不是在几年前生成那个签名的。你不知道签名是何时生成的。另一件事是,为了在一个可行的方案中使用它,要求提供签名的人需要执行所谓的质询-响应。我不能只是说签名某个东西,因为如果我得到

问答:用于身份验证的比特币签名 (1:47:01)

选择消息时,我基本上可以选择别人在很久以前签名过的消息,出示他们应用的签名,然后告诉你这是我刚刚签的。而你无从知晓这是否属实。因此,在这种情况下,你需要质询响应机制。所以我可能会说,CarlosM,请对这样一条消息进行签名:“我,CarlosM,在12月……今天是5号吗?我都不知道……在2020年12月5日(不管具体是哪天),我拥有我的私钥。并且我是应 Andreas 的要求对这条消息进行签名的。”你明白我的意思吗?这样做的目的是将其锚定在时间上。在我要求你对特定消息进行签名之前,你不会知道消息是什么。你将其与特定活动联系起来。我要求

你在其中放入有关你签名的时间以及签名者身份的信息。这让作弊变得困难得多,但我仍然不知道这是否是 Carlos 签名的。当我们谈论使用钱包签名以证明你拥有某个地址,从而符合美国正在提议且欧盟已经实施的新旅行规则时,我们也有过类似的对话。当然,如果 Carlos 想要证明他拥有某个地址,而我给了他那样一条消息,他所要做的就是把那条消息给 Jimmy,让 Jimmy 签名说“我是 Carlos”,然后还给 Carlos,Carlos 再交给我。我就会认为这证明了 Carlos 拥有私钥,而实际上是 Jimmy 拥有,他们俩在串通。所以这很复杂。这

并不像乍看起来那么简单。好了,让我看看。我大概再回答一个问题。哦,这个不错。我非常喜欢这个问题。这是 Jeff 提的问题。Jeff Tezos 问,对于那些需要用遥控器在电视或类似 Amazon、Netflix 的设备上手动输入的密码,该怎么办?密码应该多长、多复杂?Jeff,我也曾为此苦恼过。我对此有自己的答案,马上就告诉你。现在,想象一下 Jeff 说的场景,你使用密码管理器为你的 Netflix 账户生成了一个包含字母、数字和符号的 32 位唯一密钥。现在你必须在 Roku 智能电视的键盘上输入它,每个字母都需要通过移动小光标到键盘上正确的字母,按下回车键,

然后移回去,向下移动到大写锁定键,开启大写锁定,再向上移动到大写字母,接着关闭大写锁定,然后移动到符号,再切换到数字键盘。我的天哪,这得花上好几个小时。所以,是的,在这些情况下,就像在安全性不是那么关键的情况下一样,你需要采取一些措施,因为你经常需要与其他人共享这个密钥。一个很好的例子就是你的 Wi-Fi 密码,对吧?因此,在这些情况下,我的做法是使用简单的数字或字母密码。全部使用同一类字符,并将其设置得稍微长一点。所以我不在乎是否有人黑进我的 Netflix 并发现我在看《后翼弃兵》。我当然在看《后翼弃兵》。每个人都在

看《后翼弃兵》。这是《后翼弃兵》周。这对我来说真的无所谓,尽管也有一些安全方面的考虑,比如别人能弄清楚我在看那个节目时身在何处。所以我仍然需要一个密码。但它不需要那么长,因为不太可能有人会去尝试破解它。真正的问题是,我离开 Airbnb 时有没有记得重置 Roku 电视。啊哈。这是个好问题。那我该怎么做呢?我通常会选择一个数字密码,或者字母、小写字母密码,并将其分组。所以我常用的一个经典做法是 12 个数字,用减号或连字符隔开。这意味着我会分成三组(每组四个数字)或四组(每组三个数字)。所以我的密码会是类似 937-312-3 这样的形式。

问答:电视遥控器和低安全性设备的密码 (1:52:10)

三一杠四一五。我现在只是在随机挑选数字。顺便说一句,这随机性不太好。我会在我的密码管理器中使用随机数生成器。我会让它只给我数字,并且长度设为 12。然后我会把它写下来,中间加上破折号,分成四个一组,因为这样我更容易从屏幕上读取并输入到键盘中。通常数字和破折号都在同一个键盘上,而且距离很近,所以我可以快速输入。甚至更好的是,许多遥控器允许你使用键盘的数字部分,那是用来……在过去,我们的电视上有频道,这些频道是通过数字频道号来选择的。我知道这是令人惊叹的技术。

所以很多遥控器上都有数字键盘。所以这再次使得输入密码短语变得容易得多。谢谢你,Jeff。这是一个很好的问题。也是一个关于平衡安全性的非常实际的问题。你真的、真的想费那么大劲去保护一个没那么安全的账户吗?而且更大的风险是,当你离开 Airbnb 时,你忘记擦除或重置该密码,把它留给其他人发现,到那时,情况可能会变得有些棘手。Jeff 提出了一个类似的问题。哎呀。哦不,不是 Jeff。抱歉,稍等一下。好了。行了吗?今天我的应用程序有点卡顿。Mike 问,只使用四位数的 PIN 码(例如所有银行卡上使用的那种)有多安全?Mike,这取决于,它

取决于你可以在哪里输入该 PIN 码。所以,四位数 PIN 码在银行卡上之所以安全,是因为你只能在安全设备(如密码键盘或 ATM 机)上输入它。这些设备的设计旨在防止你尝试超过一定次数。如果它们是受监督的设备,意思是你在加油站,你在超市的收银台,无论哪里,只要旁边站着人,而你输入了不止几次。他们能看到你这样做,如果你尝试输入 4,000 种不同的组合,他们就会叫保安。而当它是一个无人监督的设备,你可以坐在那里花上几个小时尝试所有可能的组合时,它实际上会锁定并吞掉你的卡,就像你所知道的 ATM 机那样。所以

如果我输错四次、六次或三次(取决于银行政策),它就会“咕咚”一声吞掉我的卡,不给我再次尝试的机会。所以,这不仅仅是 PIN 码的问题,还涉及该 PIN 码使用的环境。在哪里输入,你可以尝试多少次,以及如果你未能通过这些分层安全机制会发生什么。所以,是的,在 ATM 机和密码键盘等受控访问设备的环境中,四位数 PIN 码是足够安全的,因为那里有额外的安全层,比如如果你输错了就会吞卡,或者不让你尝试太多次。我想这很好。我们已经涵盖了很多话题。非常感谢大家提出这些好问题。感谢你们留下非常好的评论。告诉我你喜欢

这次特别的会议的哪些方面。它与我们做过的其他会议有些不同。告诉我你还想了解什么,以帮助你在比特币和开放区块链的旅程中不断前行。别忘了,我们接下来还有很多这样的会议。让我给你们看看我们即将举行的下一个活动是:尴尬的节日对话,尴尬的节日对话。这就是即将到来的下一个活动。我将为你提供正确的答案,以及其他人目前在 Patreon 和其他平台的评论中分享的关于他们家庭尴尬节日对话的搞笑故事。主要是关于比特币和开放区块链的,有时也会涉及一些让气氛变得更加尴尬的话题,不过我们不会在直播中讨论这些。然后我们有 12 月的开放主题问答,你可以问任何问题,我可能会选择回答。而且

结语 (1:57:25)

最后,我们还有 2021 年的盛大活动。因此,为了了解这些活动何时举行并获取相关信息,请订阅我的频道。点击小铃铛图标开启通知,这样你就能第一时间了解这些新活动。感谢大家今天的参与,今天有超过 300 人在频道上观看了直播,和我们一起度过了这近两个小时的演讲,因为我们有很多内容要讲。现在,在我讲这些的时候,你可能注意到了我有一叠颜色各异、色彩奇妙的书。嗯,你需要这些书的印刷版才能欣赏到这些颜色,但你实际上可以作为电子书来阅读其中的内容。你可以在我的商店 antonov.com/shop 购买那本电子书。你也可以买到像这样的马克杯。而且

顺便说一句,这些马克杯真的很棒。它们又大又重。保温效果好。很难摔坏。我知道,因为我试过。我摔过几次,它们能装很多咖啡,而我们都需要大量咖啡来熬过那些尴尬的节日谈话。所以,直到周一,在接下来的两天里,我们有节日促销活动,全场享受 20% 的折扣。你还可以购买的一项内容是“选择你的加密货币”研讨会。20% 的折扣同样适用。2020 年节日促销活动已在商店上线,请前往商店首页 antonov.com/shop 查找优惠券。别忘了在视频下方留言。非常感谢大家的观看。祝大家周末愉快。大家再见。

这个页面对您有帮助吗?