云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

分布式数据库_云免费云服务器_评分榜

小七 141 0

我们如何建立起源CA:网络加密

在CloudFlare,我们努力将简单、安全且有坚实技术支持的功能结合起来。起源CA就是一个很好的例子。您不再需要转到第三方证书颁发机构来保护CloudFlare和源服务器之间的连接。现在,只需单击一下,就可以从CloudFlare直接获得一个证书来加密CloudFlare和源服务器之间的连接。在基于证书的安全中,最重要的是保护私钥。我们设计了一键式证书仪表板以最大限度地提高私钥安全性。您的私钥是使用W3C的Web Crypto API在浏览器的客户端创建的,只有公钥被发送到CloudFlare的服务器。这个安全特性最终证明是可用性的一大胜利,同时也是一个有趣的技术挑战。证书颁发机构不需要您的私钥大多数证书颁发机构(CA)专门处理一种类型的事务:它们接受证书签名请求(CSR)(有时还需要付费),作为回报,它们提供一个已签名的证书。CSR是一种告诉证书颁发机构您的公钥是什么并证明您可以控制相应的私钥的一种方法。证书颁发机构不需要看到您的私钥来验证CSR。这是件好事。与任何人分享你的私钥,包括你的CA,会使它更容易被盗。与大多数CA一样,CloudFlare源CA要求您发送由私钥签名的CSR以获取证书。如果您看一下源CA的API,您将看到CSR用于交换证书,而不涉及私钥。此API是从CloudFlare的原始CA获取证书的唯一方法:CloudFlare仪表板和原始CA CLI都在幕后使用它。如果您想完全控制您的私钥,您可以使用OpenSSL或CFSSL自己创建它,然后在仪表板中选择"我有自己的私钥和CSR"。我们建议有经验的系统管理员这样做。但是,我们希望提供一种更简单、更方便的方法来获得证书,最好是不需要一系列命令行咒语的证书。这带来了一个有趣的问题:我们如何让客户创建csr和私钥而不要求他们安装或运行加密软件?网络加密和公共基础设施.js我们问题的解决方案是创建一个客户端web应用程序来生成密钥和csr。通过在客户浏览器中生成私钥和CSR,CSR可以发送到API,同时将私钥安全地保存在客户的机器上。在浏览器中做任何复杂的事情通常意味着使用JavaScript,并且有令人信服的论据认为用JavaScript进行加密是个坏主意。这些观点是在5年前提出的,而且网络变化很快,所以我们调查了一下形势,看看这些论点在2016年是否仍然令人信服。事情变了。在过去的几年里,一个新的Web标准被引入,它改变了一切:在浏览器中支持本地加密。w3cwebcrypto组在标准化一组api以执行标准化加密操作(包括加密、数字签名和密钥生成)方面取得了很大进展。到今天为止,几乎所有现代浏览器都支持Web加密功能。使用原生web加密,我们不再需要使用有问题的JavaScript加密来创建私钥和签署csr。对于浏览器处理的纯加密操作,我们仍然需要一些代码来构造和格式化csr和证书。我们用了公共基础设施.js,这是我们GlobalSign的朋友在webcryptoapi上构建的开源JavaScript库。公共基础设施.js一个功能齐全的PKI工具包,可以创建CSR和证书,以及处理各种证书格式,包括DER、PEM、PKCS 7和PKCS 12。在originca仪表板中,我们使用WebCrypto生成密钥和公共基础设施.js创建CSR。当您在一键式证书对话框中单击"下一步"时,您的CSR将被发送到CloudFlare API。当证书从API返回时,我们使用公共基础设施.js将其转换为正确的格式并与私钥一起显示。CloudFlare的服务器看不到您的私钥,您可以省去学习晦涩的OpenSSL命令的麻烦。当然,不是所有的东西都有玫瑰的味道。因为Web加密是一个不断发展的标准,我们必须处理对所需api的不均衡支持。在这个项目中,我们意识到Firefox无法以我们需要的格式导出ECDSA密钥,如果我们保持原样,我们的大部分用户将无法使用现代加密技术。我们希望我们的特性能够被尽可能多的人使用,所以我们在webcryptoapi上构建了一个支持我们所需格式的填充程序。我们打算继续为这个浏览器和其他浏览器添加支持。结论originca给团队带来了一些有趣的挑战,希望这篇博客文章能说明其中的一个。CloudFlare的工程师andrewkennedy和Brendan McMillion大声疾呼,因为他们让这个项目的这一部分得以实现。在这里加密互联网的后端!如果您对这类开发项目感兴趣,那么CloudFlare正在招聘。