这是布赖恩斯佩克特;我是CertiVox的首席执行官。
感谢您在我们的安全信息交换服务PrivateSky上开始讨论。我会尽我所能回答关于这个线程的聪明的评论和批评。
其次,我将尽力让读者逐步了解我们的集成密钥管理和双因素身份验证的工作原理。
我邀请此线程上尚未阅读白皮书的人请这样做。我所写的所有内容都已经详细写过,并且可以在我们网站上的该文档中公开获得。但是由于没有人阅读白皮书……
首先,驳斥我们“撒谎”的说法。我们不是,事实上,我们正在努力让我们如何做我们所做的事情尽可能透明。很难与这种笼统的说法争论,所以与其去那里(“琼斯先生,你什么时候停止殴打你的妻子?”),让我们来看看这个线程上的智能点,因为有很多很少。
为此,这也是我们开源MIRACL SDK的原因,可从我们的网站免费获得。MIRACL 为 PrivateSky 提供支持,PrivateSky 中使用的相同加密过程可作为 MIRACL SDK 中的库使用,因此您可以查看代码。MIRACL 已被全球数百家公司使用,并因其针对受限环境优化的非常快速的椭圆曲线加密而享有相当不错的声誉。它受到许多组织的信任。我们非常重视这种信任;这是我们的面包和黄油。
在这里更正卢卡斯的陈述:
可能简单的答案是:不是。
如果我没看错,他们似乎只是使用了一种对称加密形式来向系统验证自己的身份,之后您可以访问您的私钥来加密数据(私钥是用您的 pin 加密的)。
这是不正确的。让我们先清理一下。您看到的使用您的电子邮件地址和 4 位密码将您登录到 PrivateSky 的 SkyPin 是一个椭圆曲线认证的密钥协议协议,它使用两个认证因素,基于IEEE P1636.3 草案标准,Wang 的协议,并添加了我们的首席密码学家,Michael Scott 博士 使用椭圆曲线双线性配对使用简单令牌和 4 位密码进行远程登录的协议。
请注意,Mike 的协议自 2002 年首次发布以来已经过广泛的同行评审,经受了十多年的密码分析,我们已经发布了更新版本,这次适用于 Wang 的协议。
在这两个因素中,第一个因素是存储在您的浏览器中的数学令牌,锁定在我们的身份验证服务的域中,第二个因素是您的密码。它的工作原理是这样的:您使用的 SkyPin Pad 实际上是对在您的电子邮件地址 ID 中发布的基于身份的加密密钥进行重构,我们会在您注册时向您发布。在注册过程中,SkyPin Pad 使用您选择的 4 位数字对您颁发的 IBE 密钥执行一个方程式。此过程在本地执行。我们不知道那 4 位数字是什么。到那时,它就变成了我们所说的“令牌”。令牌存储在浏览器的 HTML5 本地存储中,而不是会话存储中(即,不是 cookie)。这已锁定到我们的身份验证服务的域。
下次登录时,SkyPin Pad 由我们的网络服务器(通过 TLS,由 DNSSEC 保护的域)提供服务,并在您的浏览器中本地运行。SkyPin Pad 将您的 4 位数字作为输入,反转等式,重新构建您在注册时发布的基于身份的加密密钥,再次在本地执行。这是斯科特的协议。下一步是基于 Wang 协议的经过身份验证的密钥协商协议,其中加密的 nonce 与服务器的 ID 和尝试相互验证的个人的 ID 进行交换。在协议结束时,服务器和个人都已相互识别,并且每一方都有一个 AES 128 位密钥,即会话密钥,可供他们使用。因此这个词;认证的密钥协商协议。
所以不,这个系统不使用对称密钥来验证用户。它是一个基于椭圆曲线密码学的双因素身份验证系统,在 JavaScript 中运行,专为兼容 HTML5 的浏览器量身定制,可执行经过身份验证的密钥协商。
卢卡斯的这个陈述也是不正确的(注意卢卡斯,通常你不会用公钥解密,你用公钥验证签名,你用公钥加密):
它仍然可以用其他人的公钥浏览器解密。但是话又说回来,每个人都有一个可用的公钥,他们只需要从服务器获取它并通过浏览器应用它。– 卢卡斯考夫曼 5 小时前
并且通过关联 Rasmus 对这个声明是正确的(感谢您阅读白皮书,顺便说一句):
根据白皮书,他们使用 SK-KEM,这是一种基于身份的加密方案。这解释了为什么您不需要 B 的公钥来向他发送加密消息(电子邮件地址是公钥)。
在像我们使用的 SK-KEM 的变体这样的指数反转系统中,它实际上是一个密钥封装系统,其中内容加密密钥使用带有系统全局公钥输入的协议进行封装(即加密),并且收件人的电子邮件地址。该消息使用ECCSI协议使用我们的私钥生成器发出的用户私钥进行签名。用户使用从我们的私钥生成器发出的不同私钥来解密消息,使用SAKKE协议(SK-KEM 的一种变体)。SAKKE 最酷的地方在于它还具有联合私钥生成器的能力。假设用户可以访问另一个人的私钥生成器的公共参数,拥有 PKG A 的私钥的用户 A 可以与拥有从 PKG B 发布的私钥的用户 B 进行通信。
ECCSI 和 SAKKE 都是名为MIKEY-SAKKE的 IETF 信息草案的一部分,该草案正在标准化以通过 3G 网络提供语音数据和加密。MIKEY-SAKKE 对 PKG 的操作有严格的指导方针,以涵盖诸如主密钥轮换(每 30 天)和数据包组装等细微差别。
直到最近,还假设您无法在指数反转系统中分发私钥生成器。值得庆幸的是,Smart 和其他人设计了一种多方计算协议,实现了这种可能性。在这项工作的进一步发展中,Smart 和 Geisler 发表了一篇名为“ Distributing the Key Distribution Center in Sakai–Kasahara Based Systems”的论文。”
实际上,您可以将 PKG 拆分为分布式私钥生成器或 D-PKG。这样做的好处是,在初始设置之后,万能钥匙完全不在任何地方。它被分成三份。三个节点中只有两个节点需要可用于将私钥共享给目标方。主节点在设置后下线并丢弃。假设您已经构建了执行此操作的流程,则可以根据请求动态创建此类系统中的私钥共享。
拉斯穆斯发表了这样的声明:
通常基于身份的加密依赖于受信任的第三方。因此,他们声称自己无法解密消息是基于他们将主私钥和相关的私钥生成器放置在基本上相当于硬件安全模块的内部。
卢卡斯发表了这样的声明:
是的,他们似乎只是把信任放在了其他地方。他们自己无法解密,但他们声称没有其他人可以解密的说法似乎是错误的
拉斯穆斯是部分正确的,卢卡斯是不正确的。它实际上是几个硬件安全模块,它们都没有真正拥有完整的万能钥匙。我们采取了额外的步骤:将 D-PKG 节点放入具有防篡改、防篡改、在启动 VM 时进行完整性验证的 HSM,并且不携带任何状态(除了它们共享的主密钥和分配共享的代码)认证请求)。如果不破坏一些昂贵的工具包,我们就无法访问 D-PKG 的份额。但是让我们假设我们可以重组 PKG 的份额。
因为我们遵循 MIKEY-SAKKE 操作指南,这些 D-PKG 只运行一个月,也就是说,主密钥和后续发布的私钥只有一个月有效,并且整个人口每个月轮换一次。
在 PrivateSky 中,将要求用户创建一个唯一的密码。这用于创建一个 32 字节的长寿命ECDH私钥(以及后续的公钥),它也可以在ECIES设置中使用。用户的 ECDH 公钥存储在我们的目录中。D-PKG 的 ECDH 密钥对不是长期存在的,只有每月一次。发行新密钥时,会在 D-PKG 月私钥和用户 ECDH 公钥之间创建一个 DH 密钥,为用户新发行的 ECCSI 和 SAKKE 私钥加密。这发生在每个用户身上。这些存储在我们的用户目录中,因此他们可以在 30 天主密钥轮换窗口之外解密旧消息。
关键是,在使用主密钥份额的 30 天窗口之后,VM 被销毁,HSM 内的密钥材料被擦除,我们重新开始。
所以让我们概述一下一般的攻击场景:
在 30 天窗口内,为了让我们解密数据(或在我们收到信息请求传票时交出密钥):
- 我们需要小心地破解 FIPS 140-2 3 级的 HSM,以免破坏单元两次。在两个不同的数据中心。
在 30 天窗口之外:
- 我们需要破解 AES 256 才能解密存档的私钥或
- 必须有人为每条消息破解 AES 128 位
您可能想知道,为什么这些家伙会不遗余力地构建这样一个系统?尤其是鉴于这种承认:
用户 1202236 发表以下声明:
感谢您的澄清。因此,现在您不再信任软件公司,而是信任硬件公司,并且该软件公司实际上使用了提供的硬件。在我看来,与 PGP 相比,您需要信任很多人。
这是正确的。让我问这是一种更直接的方法:在信任范围内,如果您想 100% 确定没有人可以看到您的数据,使用 PGP 或 PrivateSky 更好吗?答:毫无疑问,通过 PGP 等系统创建自己的私钥作为信任模型更好。完全没有问题。
只有一个问题。 PGP 和当前最先进的技术对于普通大众来说太难使用了。这个董事会的人不会介意你。但我的意思是我的女儿,或者她的朋友,或者我的父母。
在 PrivateSky 中,使用 PIN 码、密码和您的电子邮件地址,我们可以让您靠近,并提供双重身份验证作为奖励。而且你不需要学习任何东西。使用 PrivateSky 与周围的任何其他网络资产相比,您不必做任何不同的事情。这就是我们建造它的原因。
CertiVox 的人真诚地认为,仅仅因为我们想通过互联网交流某些东西,并不会给政府、NSA、Dropbox、谷歌或任何媒体公司使用我家人信息或我的信息的权利,以参与有史以来最大的数据挖掘骗局对人类犯下的罪行。
从业务角度来看,我们的架构还完成了以下任务: 我们将收到来自当局的信息请求。当您经营一家 Saas 业务时,这是不争的事实。值得庆幸的是,在英国和欧盟,对此有正当的程序和法律。我们如何合规以及我们证明合规程度的能力取决于我们开发的架构。如果我们可以清楚地访问您的数据,那么我们必须将其交出。如果不是,那我们还得把它翻过来。但是,如果我们上交的东西是加密的,而我们不拥有密钥,那么数据(它是加密的)有什么用,为我们提供 FISMA 搜查令或欧盟等价物有什么用?对于一家年轻的公司来说,满足信息要求真的非常昂贵。不成为此类请求的目标是一种竞争优势。
这让我想到了下一点。CertiVox 的团队打赌,安全信息交换服务存在市场,我们的业务模式依赖于不查看您的数据。我们相信(也许天真地)有足够多的人和组织担心隐私受到侵蚀,但没有技术专长来做任何事情。Dropbox 需要查看您的数据以进行重复数据删除。Google 需要查看您的数据才能为您投放广告。我们也不做,也永远不会做。
为此,我们将很快推出让任何人都可以运行您的 OWN 分布式私钥生成器的功能,并在我们的系统上注册这些生成器(通过 SAKKE 联合功能),完全让我们脱离循环。您可以控制自己的用户群,可以随意轮换主密钥,撤销用户等。这将为您提供与 PGP 等效的信任模型。
最后,让我们来看看我们的集成密钥管理系统是如何工作的。我们称之为隐身键。您可以下载信息图形 PDF,它是以下说明的可视化图表:
要加密和签署消息:
- Alice 使用她的 SkyPin 和电子邮件地址登录 PrivateSky。双因素认证密钥协商协议生成一个 AES 128 位密钥,供浏览器端和认证服务器端使用。
- 身份验证服务器将 AES 密钥传递给我们的“黑匣子”,即 D-PKG 节点。
- D-PKG 节点组装 Alice 的 ECCSI 密钥的份额,并使用 AES 密钥对其进行加密。
- Alice 收到加密的 ECCSI 密钥(共享),用她的 AES 密钥解密共享,从共享中组装 ECCSI 密钥,然后准备开始。
- Alice 给 Bob 写了一条消息,并用一个 AES 密钥加密消息,称为内容加密密钥。
- Alice 使用全局公钥和 Bob 的电子邮件地址的输入来封装内容加密密钥,并将加密/封装的密钥附加到消息中。
- Alice 使用她的 ECCSI 密钥对消息进行签名。
要解密和验证消息:
- Bob 使用他的 SkyPin 和电子邮件地址登录 PrivateSky。双因素认证密钥协商协议生成一个 AES 128 位密钥,供浏览器端和认证服务器端使用。
- 身份验证服务器将 AES 密钥传递给我们的“黑匣子”,即 D-PKG 节点。
- D-PKG 节点组装 Bob 的 SAKKE 私钥的份额,并使用 AES 密钥对其进行加密。
- Bob 收到加密的 SAKKE 私钥(共享),用他的 AES 会话密钥解密共享,组装 SAKKE 私钥,然后准备开始。
- Bob 在他的门户中收到消息,其中包含封装的内容加密密钥。
- Bob 验证 Alice 的签名,并用他的 SAKKE 私钥对内容加密密钥进行解封装。
- Bob 使用内容加密密钥来解密消息。
所以你有它。你可以与数学、实现或我们的意图争论,但希望我们已经把这三个都说清楚了。
感谢您一直阅读,请注册 PrivateSky!您可以亲眼看到所有这些都在发挥作用。
布赖恩