为了在数据库查询中隐藏私人信息而开发的加密系统

麻省理工学院计算机科学与人工智能实验室(CSAIL)和斯坦福大学的研究人员开发了一种加密系统,旨在掩盖用户的数据库查询,从而不会泄露任何私人信息。

通过拉里·哈德斯蒂,麻省理工学院新闻处 2017年4月7日

如今,大多数网站访问都需要进行数据库查询,例如查找航班,或者查找两个地址之间最快的行驶路线。

但是在线数据库查询可以揭示出大量关于用户的信息。据悉,一些旅游网站会对那些搜索量异常高的航班提高价格。

麻省理工学院计算机科学与人工智能实验室(CSAIL)和斯坦福大学的研究人员开发了一种加密系统,可以掩盖用户的数据库查询,从而不会泄露任何私人信息。

该系统被称为Splinter,因为它将查询拆分,并将其分发到多个服务器上的同一数据库副本上。服务器返回的结果只有在根据只有用户知道的过程进行重组时才有意义。只要其中至少有一个服务器是可信的,那么除了用户之外的任何人都不可能确定服务器执行了什么查询。

麻省理工学院电子工程和计算机科学研究生、会议论文的第一作者Frank Wang说:“这方面工作的典型例子是公共专利数据库。”“当人们在寻找某些类型的专利时,他们会放弃他们正在进行的研究。股票价格是另一个例子:很多时候,当你搜索股票报价时,它会给出你要买什么股票的信息。另一个例子是地图:当你搜索你在哪里和你要去哪里时,它会显示出大量关于你的信息。”

诚实的中间人

当然,如果托管数据库的站点本身在未经用户同意的情况下收集用户数据,那么至少有一个可信服务器的要求就很难实现。

然而,王指出DuckDuckGo等服务越来越受欢迎,DuckDuckGo是一个搜索引擎,它使用必应和雅虎等其他网站的搜索结果,但发誓不会对其客户进行分析。

“我们看到人们想要私人查询的转变,”王说。“我们可以想象一种模式,在这种模式下,其他服务抓取一个旅游网站,也许他们自愿为你提供信息,或者你订阅他们。或者在未来,旅游网站意识到这些服务正变得越来越受欢迎,他们自愿提供数据。但现在,我们相信第三方网站有足够的保护措施,我们希望Splinter能提供更多保障。”

劳动分工

Splinter使用了一种称为功能秘密共享的技术,这是三位以色列计算机科学家在2015年的一篇论文中首次描述的。其中一位是Elette Boyle,她在麻省理工学院获得博士学位,师从RSA计算机科学与工程教授Shafi Goldwasser, Shafi Goldwasser是2013年计算机科学最高奖项图灵奖的获得者。反过来,Goldwasser是这篇新论文的合著者之一,还有麻省理工学院电子工程与计算机科学副教授Vinod Vaikuntanathan;Catherine Yun, EECS研究生;以及斯坦福大学计算机科学助理教授Matei Zaharia。

过去曾有人提出过伪装数据库查询的系统,但函数秘密共享可以使它们的速度提高10倍。在实验中,麻省理工学院和斯坦福大学的研究人员发现,Splinter可以在大约一秒钟内从包含数百万条目的数据库中返回结果,其中包括选定城市的Yelp数据库的副本。

通过函数秘密共享,数据库查询被转换为一组互补的数学函数,每个函数被发送到不同的数据库服务器。在每台服务器上,该函数必须应用于数据库中的每条记录;否则,间谍就可以确定用户对哪些数据感兴趣。每次将该函数应用于一条新记录时,它都会更新存储在内存中的值。在将其应用于最后一条记录之后,将最终值返回给用户。但是,除非将该值与其他服务器报告的值结合起来,否则该值毫无意义。

Splinter代表了先前功能秘密共享工作的几个关键阐述。早期的研究侧重于隐藏简单的二进制比较和加法操作,而Splinter执行更复杂的典型数据库查询操作,例如查找某些变量的最高或最低值的指定数量的记录,例如特定航班行程的10个最低票价。麻省理工学院和斯坦福大学的研究人员必须设计出一种加密功能,可以在不泄露任何信息的情况下执行所有对结果进行排名所需的比较和排序。

实际考虑

Splinter也被设计成在真实的数据库系统上高效运行。例如,大多数现代计算机芯片都是硬连线来实现被称为AES的加密方案。硬连接使得AES比在软件中实现要快数百倍,但是AES有一些特性,使得它不太适合功能秘密共享。通过将软件过程和AES加密巧妙地结合起来,麻省理工学院和斯坦福大学的研究人员能够使Splinter的效率提高2.5倍,而不是单独使用AES电路。

“在纸上提出的建议和实际实施之间总是存在差距,”王说。“我们做了很多优化来让它工作,我们必须做很多技巧来让它支持实际的数据库查询。”

麻省理工学院(MIT)

www.mit.edu

- Chris Vavra编辑,制作编辑,控制工程、《媒体,cvavra@cfemedia.com。查看更多控制工程网络安全的故事