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

数据库服务器_网站建设英语_

小七 141 0

Red十月:CloudFlare对双人规则的开源实现

寻找红色十月

在CloudFlare,我们一直在寻找更好的方法来保护我们委托的数据。这意味着加强我们的系统抵御外部威胁,如黑客,但也意味着保护我们免受内部威胁。根据Verizon最近的一份报告,2013年,内幕威胁约占数据泄露的14%。在我们进行背景调查和仔细筛选团队成员的同时,我们还实施了技术壁垒,以保护委托给我们的数据。一个很好的信息安全实践被称为"双人规则",它来自军事历史,在军事历史上,除非两个人同意并同时转动发射钥匙,否则无法发射核导弹。这一要求的提出是为了防止一个人意外(或故意)发动第三次世界大战。为了防止流氓员工滥用敏感数据的风险,我们在Go中构建了一个服务来实施双人规则。我们将这项服务称为"红色十月"(the Hunt for Red十月)中著名的一幕。根据我们在安全软件方面的理念,我们将该技术开源,以便您可以在自己的组织中使用(这里有一个指向公共Github回购的链接)。如果你对细节感兴趣,请继续阅读。它是什么Red十月是两人规则的加密安全实现,以保护敏感数据。从技术角度来看,Red十月是一个基于软件的加密和解密服务器。服务器可以用来加密有效负载,这样就没有人可以解密它。有效负载的加密以加密方式与授权用户的凭证相关联。授权人员可以将其凭据委托给服务器一段时间。只要有适当数量的人将他们的凭证委托给服务器,服务器就可以解密任何先前加密的有效负载。这个架构允许Red十月充当一个方便的解密服务。其他系统,包括CloudFlare的构建系统,可以使用它进行解密,用户可以通过简单的web界面将其凭证委托给服务器。与Red十月的所有通信都是用TLS加密的,以确保密码不会在透明的情况下发送。如何使用它设置Red十月服务器很简单;它只需要一个本地可读路径和一个SSL密钥对。然后,通过一组基于JSON的api远程处理所有控制。Red十月由一个存储在磁盘上的便携式密码保险库中的帐户数据库作为后盾。服务器从不在那里存储帐户密码,只存储每个帐户的密码。对于每个用户,服务器创建一个RSA密钥对,并使用从密码派生的密钥和使用安全派生函数随机生成的salt加密私钥。任何管理员都可以使用encrypt API加密任何数据段。此请求获取用户列表和解密所需的最小用户数。服务器返回一个较大的数据块,其中包含该数据的加密版本。加密后的数据可以存储在其他地方。这些数据稍后可以用解密API解密,但前提是有足够多的人将其凭据委托给服务器。委派API允许用户向服务器授予在有限的时间和有限的使用次数内使用其凭据的权限。密码设计Red十月是根据密码第一原理设计的,它以已知的方式结合了可信和可理解的算法。CloudFlare还开放了服务器的源代码,以允许其他人分析其设计。红色十月是基于组合技术和可信密码原语。我们研究了使用复杂的秘密原语,比如Shamir的共享方案,但是我们发现基于Go标准库中的原语的更简单的组合方法比从头开始实现一个数学算法更好。Red十月使用128位AES、2048位RSA和scrypt作为其加密原语。创建帐户在Red十月服务器上创建帐户时,每个用户都会被分配一个唯一的随机生成的RSA密钥对。私钥使用从用户密码和salt中派生的密码密钥使用scrypt进行加密。公钥与加密的私钥一起未加密地存储在保险库中。加密数据当要求加密一段数据时,服务器生成一个随机的128位AES密钥。此密钥用于加密数据。对于每个被允许解密数据的用户,将选择一个特定于用户的密钥加密密钥。对于每一对唯一的用户,数据密钥被双重加密,一次使用每个用户的密钥加密密钥。然后,密钥加密密钥使用与其帐户关联的公钥RSA加密。加密数据、双加密数据密钥集和RSA加密密钥加密密钥都捆绑在一起并返回。加密数据从不存储在服务器上。

企业号应用-Red十月:CloudFlare对双人规则的开源实现

将凭据委派给服务器当用户将密钥委托给服务器时,他们将使用委托JSON API通过TLS提交用户名和密码。对于每个帐户,都会根据salt hash验证密码。如果密码正确,则从密码派生出密码密钥,并用于解密用户的RSA私钥。此密钥现在是"实时"的时间长度和用户选择的解密次数。

企业号应用-Red十月:CloudFlare对双人规则的开源实现

解密数据要解密文件,服务器将验证请求用户是否为管理员,以及密码是否正确。如果有效用户列表中的两个用户委派了他们的密钥,则可能会发生解密。首先使用RSA私钥对这两个用户的密钥加密密钥进行解密,然后使用密钥加密密钥对双重加密的数据密钥进行解密,然后再对数据进行解密。

企业号应用-Red十月:CloudFlare对双人规则的开源实现

其他要点:加密安全。Red十月服务器不能在没有密码的情况下解密用户密钥。这将阻止有权访问保险库的人解密数据。密码灵活性。密码可以在不更改给定文件的加密的情况下更改。密钥加密密钥确保密码更改与数据加密密钥分离。展望未来我们将发布到GitHub的Red十月版正在测试中。它是根据3条BSD许可证授权的。我们计划继续向开源社区发布我们的改进。以下是GitHub上的项目:Red十月。在Go中编写服务器允许我们以模块化的方式设计该服务器的不同组件。我们希望这种模块化将使任何人都能够轻松构建对不同身份验证方法的支持,这些方法不基于密码(例如,TLS客户端证书、基于时间的一次性密码)和新的核心加密原语(例如椭圆曲线密码)。CloudFlare一直在寻求改善互联网的安全状况。对我们来说,与世界分享我们的进步并为社会作出贡献是很重要的。请参阅CloudFlare GitHub页面,以获取我们的开源项目和计划的列表。