分布式PKI并不是一个新概念。实践中出现了大量的文章和试图将这一概念付诸实践的尝试。分布式PKI的基础假设是,核证机关在签发和管理证书的过程中存在严重的脆弱性,因此需要下放证书颁发权力,使这一过程更加透明。
集中式PKI的缺陷偶尔会浮出水面,造成重大的财务和声誉损失。最近的一个例子是,在2018年年中,研究人员发现了一个全新的恶意软件项目,该项目使用从几家台湾科技公司窃取的数字证书,即D-Link,对恶意软件进行签名,使其看起来像合法的应用程序。令人困惑的是,D-Link只有在得到研究人员的通知后才会撤销证书。这意味着这种类型的恶意软件很难检测到,因为即使在公司撤销其证书的签名时,反病毒程序也无法检查证书的有效性。可悲的是,这不是一个黑客窃取有效证书来为他们的恶意软件签名的个案。
PKI是什么?
PKI通过一组公共和私有密钥对数据交换进行加密和解密,这些公钥和私钥是由随机产生的数字组成的长字符串。通过生成对的算法,这些长数字字符串在数学上是相关的。
PKI现在被广泛使用,因此保护私钥的问题非常重要。只要考虑一下这些用例:
1. 服务器标识:每当有人使用了HTTPS安全的web服务器连接时,他们都在SSL握手中使用一个PKI服务器标识证书。
2. Web应用程序的身份验证和授权: 这种身份验证通常使用用户名和密码完成,但是PKI提供了一个有吸引力的替代方案。SSL具有在建立安全加密连接之前要求客户端证书的可选能力。因此,web服务器在允许建立HTTPS连接之前需要有效的客户机证书。但是它很少被使用,因为现有的解决方案并不合适,这使得管理它成为一场噩梦。
3. 电子文档和表单签名: PKI支持的签名由计算文档内容的哈希值和附加包含哈希值的加密签名组成。
除了上述用例之外,PKI还可以应用于vpn、S/MIME电子邮件签名和加密、电子邮件列表服务器、无线网络安全和安全即时消息的身份验证,更不用说许多其他应用程序了。
在传统的PKI模型中,核证机关发出并签署所有证书,充当顶级信任代理,促进第三方信任模型。用户彼此信任,因为核证机关会保证信息的真实性和完整性。
但正如最近的事件所突显的那样,核证机关受到了损害。
密码学能帮上忙
REMME团队提出了开源PKI (d)协议的概念来保护通信,我们确信主要的用例是人类身份验证。最近,我们加入了致力于同一方向的全球联盟和社区。与FIDO、W3C和DIF一起,正在跟踪描述无密码原则和解决方案的新规范。
然而,经过一年的研发,我们已经明白,作为一家技术网络安全公司,我们面临的主要挑战将是具有更广泛影响的安全通信。目前,最流行的数据保护技术是公钥基础设施(Public Key Infrastructure, PKI)。它基于X.509客户端证书的颁发和管理,在许多场景中,这些证书被广泛用于对交易对手进行的身份验证。我们对此进行了研究,并将相同的功能集成到我们的想法中。毕竟,重新发明轮子是没有意义的。
例如,在web资源的情况下,服务器使用证书和关联的私钥对其客户机进行身份验证。这种情况在银行业、政府等行业非常典型。这是一种适用于任何需要高度安全性场景的技术,在这种场景中,密码是一种不可接受的用户身份验证方式(因为它们很容易被社会工程或恶意软件窃取)。
这些证书还广泛用于机器对机器的交互。这是一种非常直观的机器间身份验证方法。例如,传感器可以向远程服务器发送数据;要对传感器进行身份验证,服务器将向传感器请求客户机证书。
另一个用例是安全代币。这与第一点非常相似,只是私钥存储在特定的硬件上。
深入了解分布式PKI协议
该团队重新考虑了PKI的基础,添加了区块链,以消除单点故障和组织信任核证机关的需求。这是一个开源解决方案,正在为PKI开发定制的区块链。所有这些都是关于在区块链上存储证书的公钥,主要是存储它们的有效性时间和撤销状态。目前,我们正在构建用于分布式验证用户数据的系统。
在这张图中,我们看到几个节点连接到一个小型网络和一些客户机应用程序中。在这里,我们可以很容易地看到为什么分布式系统比集中式系统更可取。如果一个节点失败,我们切换到另一个节点,这没有关系。每个节点具有相同的数据、相同的逻辑和相同的API。这些节点还复制所有数据、所有事务历史记录和所有证书的状态。这种冗余使我们的系统非常健壮。
这就是我们如何用我们的解决方案解决集中化的挑战。
促进PKI的发展
数字化的未来正在迅速到来。我们还需要开发一种共同的方法,为该行业提供其成长和创新所需的安全空间。