Speranza新系统:确保开源软件安全与维护者匿名

2023年12月04日 由 daydream 发表 273 0

微信截图_20231204132131


开源软件——即免费分发的软件,连同其源代码,以便可以容易地进行复制、添加或修改——正如2023年开源安全和风险分析报告中的引述,“无处不在”。主要行业使用的计算机程序中有96%包含开源软件,其中76%的程序由开源软件构成。但报告警告说,“包含安全漏洞的软件包百分比仍然令人不安”。


一个担忧是,“你从一个被认为是可靠开发者那里得到的软件可能已经以某种方式被破坏了。”MIT电子工程和计算机科学系今年早些时候获得硕士学位的软件工程师Kelsey Merrill说。“假设在供应链的某个地方,软件被攻击者更改了,而攻击者具有恶意意图。”


这种类型的安全漏洞风险绝非抽象。以2020年的一个臭名昭著的例子来说,德克萨斯公司SolarWinds对其广泛使用的名为Orion的程序进行了软件更新。黑客入侵了系统,在SolarWinds向超过18,000名客户(包括Microsoft、Intel以及约100家其他公司)以及包括国务院、国防部、财政部、商务部和国土安全部在内的十几个美国政府机构发送Orion的最新版本之前,将恶意代码插入了软件。


在这种情况下,被损坏的产品来自一家大型商业公司,但Merrill表示,在开源领域中,发生失误的可能性可能更大,“在那里,来自不同背景的人——许多人是没有任何安全培训的业余爱好者——可以发布软件,这些软件在全球范围内被使用。”


她和三位合作者——她的前导师、MIT计算机科学和人工智能实验室的首席科学家Karen Sollins;普渡大学计算机科学助理教授Santiago Torres-Arias;以及前MIT研究生、现在Chainguard Labs的研究科学家Zachary Newman——已经开发了一个名为Speranza的新系统,目的是向软件消费者保证他们得到的产品没有被篡改,并且直接来自他们信任的源头。论文发表在arXiv预印本服务器上。


“我们所做的”Sollins解释道,“是开发、证明正确,并展示了一种允许[软件]维护者保持匿名的方法的可行性。”保持匿名显然很重要,鉴于几乎每个人——包括软件开发者——都重视他们的隐私。Sollins补充说,这种新方法“同时允许[软件]用户相信,维护者实际上是合法的维护者,而且,正在下载的代码实际上是该维护者的正确代码。”


那么,用户如何确认一个软件包的真实性,以保证如Merrill所说,“维护者是他们所说的那个人”呢?这样做的传统方式,40多年前就发明了,是通过数字签名,这类似于手写签名——尽管通过使用各种加密技术具有更大的内置安全性。


要进行数字签名,需要同时生成两个“密钥”——每个密钥都是一个数字,由零和一组成,长达256位。一个密钥被指定为“私有”,另一个被指定为“公开”,但它们构成了数学上相互关联的一对。


软件开发者可以使用他们的私钥,以及文档或计算机程序的内容,来生成与该文档或程序唯一关联的数字签名。然后,软件用户可以使用公钥——以及开发者的签名和他们下载的包的内容——来验证包的真实性。


验证的结果呈现为是或否,1或0。Merrill解释说:“得到1意味着已经确保了真实性。文档与签名时相同,因此未改变。得到0意味着有些事情不对劲,你可能不想依靠那个文档。”


尽管这种几十年老的方法在某种意义上是经过尝试和测试的,但它远非完美。Merrill指出的一个问题是,“人们不善于以安全的方式管理加密密钥,即由非常长的数字组成的密钥,并防止它们丢失。” Merrill说,人们经常丢失密码。“如果软件开发者丢失了私钥,然后联系用户说,'嘿,我有了一个新的密钥,'你怎么才能知道那真的是谁呢?”


为了解决这些担忧,Speranza在“Sigstore”——去年推出的一种加强软件供应链安全的系统——的基础上构建。Sigstore由开创了Speranza项目的Newman和Torres-Arias以及Chainguard Labs的John Speed Meyers共同开发。Sigstore自动化并简化了数字签名过程。用户不再需要管理长加密密钥,而是会被发放临时密钥(一种称为“无密钥签名”的方法),这些密钥很快就会过期——可能在几分钟内——因此无需存储。


Sigstore的一个缺点是它舍弃了持久的公钥,以至于软件维护者必须通过一个协议OpenID Connect(OIDC)以一种方式来识别自己,这种方式可以与他们的电子邮件地址关联。这一特性独自一项可能会阻碍Sigstore的广泛采用,并且激发了Speranza的动机以及存在的理由。Merill解释说:“我们接管了Sigstore的基础设施,并改变它以提供隐私保障。”


通过她和她的合作者们称为“身份共承诺”的原创想法实现了Speranza的隐私保护。以下是这个想法如何工作的简单说明:软件开发者的身份以电子邮件地址的形式被转换成一个所谓的“承诺”,由一个大的伪随机数组成。(伪随机数在技术定义上不满足“随机”,但从实际上讲,几乎和随机一样好。)同时,另一个大的伪随机数——伴随的承诺(或共承诺)——被生成,与开发者创建或获得修改权限的软件包相关联。


为了向一个特定软件包的潜在用户展示是谁创建了这个版本的包并进行了签名,授权开发者将发布一个证明,确立了代表其身份的承诺与该软件产品附带的承诺之间明确的联系。所进行的证明是一种特殊类型的,称为零知识证明,它是一种展示例如两样东西具有共同界限的方法,而无需透露那些东西(如开发者的电子邮件地址)的详细内容。


“Speranza确保软件来自正确的源头,而不要求开发者泄露个人信息,如他们的电子邮件地址。”纽约大学网络安全中心的博士候选人Marina Moore评论说。“它允许验证者看到同一个开发者多次签名了一个包,而不必泄露开发者是谁,甚至不用泄露他们负责的其他包。这提供了比长期签名密钥更好的可用性改进,以及比其他基于OIDC的解决方案如Sigstore更多的隐私利益。”


英特尔实验室安全与隐私研究小组的研究科学家Marcela Mellara同意。“这种方法的优势在于,它允许软件消费者自动验证他们从Speranza启用的存储库获得的包是否来源于预期的维护者,并获得使用的软件是真实的信任。”

文章来源:https://techxplore.com/news/2023-12-boosting-faith-authenticity-source-software.html
欢迎关注ATYUN官方公众号
商务合作及内容投稿请联系邮箱:bd@atyun.com
评论 登录
热门职位
Maluuba
20000~40000/月
Cisco
25000~30000/月 深圳市
PilotAILabs
30000~60000/年 深圳市
写评论取消
回复取消