CN107070848B - 为分析性web应用加密数据 - Google Patents

为分析性web应用加密数据 Download PDF

Info

Publication number
CN107070848B
CN107070848B CN201610880651.3A CN201610880651A CN107070848B CN 107070848 B CN107070848 B CN 107070848B CN 201610880651 A CN201610880651 A CN 201610880651A CN 107070848 B CN107070848 B CN 107070848B
Authority
CN
China
Prior art keywords
query
encryption
encrypted data
database
proxy
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201610880651.3A
Other languages
English (en)
Other versions
CN107070848A (zh
Inventor
F.克施鲍姆
B.富里
徐为
J.克布勒
W.泰泽特
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SAP SE
Original Assignee
SAP SE
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SAP SE filed Critical SAP SE
Publication of CN107070848A publication Critical patent/CN107070848A/zh
Application granted granted Critical
Publication of CN107070848B publication Critical patent/CN107070848B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6227Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0281Proxies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0478Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload applying multiple layers of encryption, e.g. nested tunnels or encrypting the content with a first key and then with at least a second key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/76Proxy, i.e. using intermediary entity to perform cryptographic operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

用于基于加密数据处理分析性web应用中的查询的方法、系统和计算机可读存储介质。实现方式包括以下动作:由在服务器侧计算设备上执行的数据库驱动器从客户端侧代理接收查询和一个或多个加密密钥,该一个或多个加密密钥是由客户端侧代理基于执行该查询所要求的操作选择的,执行该查询的至少一个操作以提供包括加密数据的查询结果,并且由数据库驱动器将加密数据发送到客户端侧代理,客户端侧代理处理加密数据以向最终用户提供明文数据。

Description

为分析性web应用加密数据
技术领域
本申请涉及为分析性web应用加密数据。
背景技术
软件即服务(software-as-a-service,SaaS)市场正在增长。SaaS可被描述为一种软件许可和交付模型,其中软件基于订购被许可并且被第三方服务提供者集中托管(例如,在云中)。在一些示例中,SaaS被客户利用web浏览器上的瘦客户端访问。在一些示例中,客户向SaaS服务提供者提供客户数据,web应用在该数据上执行操作。然而,客户担心其数据在云中的保密性。例如,有动机的黑客和/或恶意的内部人员可尝试窃取客户数据。
加密是一种潜在的解决方案,但在现有web应用中支持必要的功能是困难的。例如,分析性web应用在数据库中执行大量的数据处理操作,这些数据库存储加密的数据(客户数据)。对被web应用处理的数据加密的现有解决方案对web应用要求的功能的支持是不充分的。
发明内容
本公开的实现方式包括用于为分析性web应用加密数据的由计算机实现的方法。在一些实现方式中,动作包括由在服务器侧计算设备上执行的数据库驱动器从客户端侧代理接收查询和一个或多个加密密钥,该一个或多个加密密钥是由客户端侧代理基于执行该查询所要求的操作选择的,执行该查询的至少一个操作以提供包括加密数据的查询结果,并且由数据库驱动器将加密数据发送到客户端侧代理,客户端侧代理处理加密数据以向最终用户提供明文数据。此方面的其他实现方式包括相应系统、装置和编码在计算机存储设备上的被配置为执行这些方法的动作的计算机程序。
这些和其他实现方式可各自可选地包括以下特征中的一个或多个:执行查询的至少一个操作还包括由数据库驱动器确定需要特定的重加密密钥,由数据库驱动器向代理发送对该特定重加密密钥的请求,由数据库驱动器从代理接收该特定重加密密钥;执行查询的至少一个操作包括利用一个或多个加密密钥之中的加密密钥对存储在数据库中的加密数据的集合的至少一部分解密以提供多层加密方案中的较低级别加密数据,查询结果的加密数据包括该较低级别加密数据;较低级别加密数据基于确定性加密和保序加密的至少一者被加密;动作还包括由数据库驱动器基于该查询提供第一查询部分和第二查询部分,第一查询部分包括该至少一个操作,由数据库驱动器带着较低级别加密数据将第二查询部分发送给客户端侧代理,其中处理较低级别加密数据以提供明文数据由代理基于第二查询部分执行;代理是无状态的;并且该查询包括至少一个加密的参数。
本公开还提供了一种计算机可读存储介质,其耦合到一个或多个处理器并且其上存储有指令,这些指令当被该一个或多个处理器执行时使得该一个或多个处理器根据本文提供的方法的实现方式执行操作。
本公开还提供了一种用于实现本文提供的方法的系统。该系统包括一个或多个处理器,和耦合到该一个或多个处理器的计算机可读存储介质,其上存储有指令,这些指令当被该一个或多个处理器执行时使得该一个或多个处理器根据本文提供的方法的实现方式执行操作。
要明白,根据本公开的方法可包括本文描述的方面和特征的任何组合。也就是说,根据本公开的方法不限于本文具体描述的方面和特征的组合,而是也包括提供的方面和特征的任何组合。
本公开的一个或多个实现方式的细节在附图和下面的描述中记载。本公开的其他特征和优点将从描述和附图以及从权利要求中清楚显现。
附图说明
图1描绘了根据本公开的实现方式的示例高级别体系结构。
图2描绘了根据本公开的实现方式的示例组件体系结构。
图3描绘了根据本公开的实现方式可执行的示例过程。
图4描绘了示例分析性web应用的示例仪表板的屏幕截图。
图5是可用于执行本公开的实现方式的示例计算机系统的示意图示。
各幅图中的相似附图标记指示相似的元素。
具体实施方式
本公开的实现方式概括而言针对的是基于加密数据处理分析性web应用中的查询。更具体而言,如本文详细描述的,本公开的实现方式采用了一种代理,其将数据库中存储的加密数据的加密调整到客户的使用所必要的级别并且还支持加性同态加密(additively homomorphic encryption)。在一些实现方式中,代理是无状态的,并且只有应用的数据库驱动器被修改。对本文更详细描述的本公开的示例实例化的评估平均起来略微增大了页面加载时间,但加密数据的很大部分保持被概率加密,这比其他加密级别更安全。因此,本公开的实现方式以适度的性能成本增大了云提供者处的数据的安全性。
图1描绘了根据本公开的实现方式的示例高级别体系结构100。高级别体系结构100包括计算设备102(例如,客户端侧)、服务器系统104和网络106。在一些示例中,计算设备102和服务器系统104通过网络106通信。在一些示例中,计算设备102可通过一个或多个网络(例如,包括网络106)与服务器系统104通信。在一些示例中,计算设备102可包括任何适当类型的计算设备,例如桌面型计算机、膝上型计算机、手持式计算机、平板计算机、个人数字助理(personal digital assistant,PDA)、蜂窝电话、网络家电、相机、智能电话、增强型通用封包无线服务(enhanced general packet radio service,EGPRS)移动电话、媒体播放器、导航设备、电子邮件设备、游戏机或者这些设备或其他数据处理设备中的任何两者或更多者的适当组合。
在一些实现方式中,服务器系统104包括至少一个服务器设备108和至少一个数据存储库110。在图1的示例中,服务器系统104意图表示各种形式的服务器,包括但不限于web服务器、应用服务器、代理服务器、网络服务器和/或服务器池。一般地,服务器系统接受对应用服务的请求并且通过网络106向任何数目的客户端设备(例如,计算设备102)提供这种服务。
在一些实现方式中,网络106可包括连接任何数目的通信设备、移动计算设备、固定计算设备和服务器系统的大型计算机网络,例如局域网(local area network,LAN)、广域网(wide area network,WAN)、因特网、蜂窝网络、电话网络(例如,PSTN)或者其适当组合。
根据本公开的实现方式,服务器系统104维护存储加密数据的数据库(例如,加密数据库)。在一些示例中,数据(明文)在计算设备102(客户端侧)被加密,并且加密的数据(密文)通过网络106被发送到服务器系统104以便存储。在一些实现方式中,如本文所述,服务器系统104可由第三方服务提供者提供,该第三方服务提供者存储加密数据并提供对加密数据的访问。
在一些实现方式中,数据库是也包括查询执行引擎的数据库系统的一部分。在一些示例中,查询执行引擎接收查询(例如,来自客户端的搜索令牌),基于该查询提供查询计划,执行该查询计划以提供响应(例如,响应该查询的来自数据库的加密数据),并且将该响应发送到客户端(例如,从其接收查询的那个客户端)。
在一些实现方式中,服务器系统104托管着客户可访问(例如,利用由计算设备102执行的web浏览器上的瘦客户端)的分析性web应用。在一些示例中,分析性web应用响应于客户输入的命令处理数据库中存储的加密数据。
当将软件外包到云时(例如,在SaaS范例中),客户担心其数据的保密性。服务提供者代表客户存储并处理客户数据。然而,有动机的黑客和/或恶意的内部人员可尝试窃取客户数据。另外,政府现在可选择抓取客户数据(例如,在云提供者处(服务器侧)、在客户处(客户端侧)),这可对客户造成问题(例如,在跨边界调查的情况中)。
加密是通常提出的对这些问题的对策。然而,在数据被加密的同时处理数据是困难的。完全同态加密是灵丹妙药:非常安全,但对于实际采用来说太慢并且难以集成到现有的云应用中。在一些情况下,商业厂商提供(保留格式的)确定性加密(deterministicencryption,DET),和/或保序加密(order-preserving encryption,OPE)作为替换方案。此解决方案具有不需要修改应用并且性能惩罚较小的优点。然而,此解决方案的安全性是有问题的,因为加密不得干扰应用的任何可能功能,或者应用的功能必须被限制。例如,如果应用显示可根据任何列排序的结果的表格,则默认必须利用OPE对所有列加密,无论是否实际使用排序。这些解决方案完全不支持用于处理数字的加密。
在另一种方法中,利用(多密钥)可搜索加密来对数据加密。这使能了(比DET)更强的加密,但要求在应用中使用不同的数据库和搜索接口。例如,可搜索加密要求其自己的搜索算法,并且只提供有限的搜索能力。因此,应用受到限制并且要求大幅修改。另外,在此方法中仍不支持用于处理数字的加密。
鉴于此情境,本公开的实现方式提供了用于对要被分析性web应用处理的数据加密的另一种方法。如本文更详细描述的,本公开的实现方式调整加密以适应于应用所需要的特定功能。多层(洋葱)加密的概念由CryptDB首先普及,在那里其是一次对单个查询(SQL查询)实现的。本公开的实现方式将多层加密扩展到web应用的分布式设置。根据本公开的实现方式,分布式设置包括客户端(web浏览器)、代理、应用服务器和数据库。在CryptDB情境中,代理是在应用和数据库之间提供的。根据本公开,代理是在浏览器(例如,web浏览器)和应用(例如,web应用)之间提供的。
如本文更详细论述的,本公开的实现方式实现了示例优点。例如,代理是无状态的。虽然,代理对来自客户端的请求加密,并且基于应用的控制流程和功能对来自应用服务器的响应解密,但代理除了加密密钥以外不维护任何状态。因此,代理可容易被复制和管理。另外,只有数据库驱动器被修改来集成本公开的实现方式。在一些示例中,只需要替换数据库驱动器,它是应用服务器的一个标准组件。web应用可继续利用其完全功能查询数据库。数据库——包括其搜索算法——不被修改。另外,加密被调整以适应于应用的控制流程并且加性同态加密(additive homomorphic encryption,HOM)被支持。根据本公开的实现方式,可以利用DET或OPE只对被用于搜索的那些数据库字段加密,并且支持用于处理数字的使用HOM的加密,这是许多分析性应用中普遍的。在一些实现方式中,可使用随机化加密(randomized encryption,RND)。
为了为本公开提供额外的情境,将论述应用服务器与数据库之间的加密、使用代理的加密和web浏览器中的加密。
对于数据库的端到端加密存在各种技术。在一个示例中,可基于DET加密的数据直接处理查询。在此示例中,搜索是高效的,因为数据库不需要被修改并且搜索如同在明文上操作。然而,范围查询是成问题的。OPE是另一个示例,其也利用明文搜索解决了范围查询。静态OPE仍然不能实现最优的安全性。
多层(洋葱)加密——也称为可调整加密——对于加密和解密修改了数据库驱动器。本公开的实现方式通过在将密钥完全保持在客户端处的同时将加密延伸到应用服务器,提升了这个方法。本公开的这个方法比单独的数据库加密更适合于常见的软件即服务(SaaS)模型。
另一个数据库加密方法是可搜索加密。可搜索加密可被描述为一种语义安全加密方案,其只泄露查询的搜索和访问模式。在一些示例中,可搜索加密为了搜索仍要求对所有数据的线性扫描。其他加密方案包括次线性(sublinear)搜索时间。这种加密方案可例如通过在加密数据上构建索引来操作。一些加密方案甚至支持高效的删除。
然而,基于可搜索加密的方法遭受着有限的搜索能力。例如,许多功能(例如,分组、联接、聚合,每种都是任何SQL数据库中常用的)不被支持。因此,使用可搜索加密要求对应用的大幅改变,并不适合于分析性应用。
保护云中的数据库的安全的另一种方法是在两个云提供者之间分离数据库。一些方法将此延伸到多个数据库和云提供者。虽然此方法就性能而言是良好的,因为只要求很少加密或不要求加密,但从安全性角度来看它是多少有问题的。例如,此方法基于如下假设,即云提供者提供共同的服务,在其中它们合作,但不交换数据(即,它们不串通)。这看起来有些矛盾,考虑到所有这些方法的工作假设是云提供者是不被信任的。如本文更详细论述的,本公开的实现方式以单个云提供者工作。
对于web应用,示例方法利用部分同态加密对整个web应用栈加密,但同态加密的私钥存在于云提供者处的虚拟机监视器中。虽然这针对应用提供了某种级别的保护,但管理员或熟练的黑客可能能够访问虚拟机监视器层。与之不同,如本文更详细描述的,本公开的实现方式在客户端处存储密钥,客户端可监视访问并且至少检测缺口(breach)。
现在参考由代理进行的加密,将论述示例方法来为本公开的实现方式的优点提供更多情境。一个示例方法提供了一种在数据不被使用时对该数据加密的代理。在此示例方法中,代理在使用前下载并解密数据。当不能在(确定性)加密(例如,聚合)上操作的云提供者执行复杂的操作时,该数据被解密成明文。代理随后运行调度算法以确定在使用数据后何时重加密数据最好。另一示例方法不支持自适应解密和重加密,并且因此是一种更简单更易于部署的设计。然而,此示例方法不支持相同的功能或安全性,并且取决于云提供者的功能。另外,在此方法中,代理需要使其配置适应于应用变化。在这些示例代理加密方法的每一者中,代理支持的功能是有限的。在这些方法中,例如,代理需要适应于个体应用(例如,当应用变化时,代理需要变化)。
与这些示例方法不同,本公开的实现方式提供了一种服务描述语言以使得此适应尽可能地高效。另外,本公开的代理被内建到了独立于应用的体系结构中。
有若干个遵循代理加密模型的商业系统。这些系统的每一者都遭受着与上述的示例代理加密方法相同的问题。与之不同,如本文更详细论述的,本公开的实现方式包括安全性特征:利用加性同态加密对数字加密以便处理。
对于由web浏览器进行的加密,示例方法包括利用可搜索加密来构建web应用。如上所述,任何基于可搜索加密的系统都要求修改的搜索功能。在示例方法中,修改的搜索功能是通过应用程序接口(application program interface,API)提供的。此方法也支持利用代理可重加密可搜索加密的数据共享。代理重加密支持改变加密密钥而没有中间解密。因此,每个用户可以具有其自己的密钥,而云提供者仍不获知明文,但是可执行(简单)搜索。此示例方法也采用诸如代码签名之类的特征以保护浏览器中的数据对抗恶意应用代码。然而,此示例方法要求在客户端处安装浏览器扩展。另一示例方法也被安装为浏览器扩展,并且使用浏览器的文档对象模型(document object model,DOM)来执行加密和解密。这具有恶意应用代码不能访问数据的优点。然而,此示例方法只支持云提供者的几个操作。
相比之下,如本文更详细描述的,本公开的实现方式很大程度上独立于浏览器工作,并且不要求对浏览器的任何修改(例如,没有浏览器扩展)。本公开的实现方式也要求对应用的更少改变并且只修改数据库驱动器(应用的标准组件)。另外,本公开的实现方式支持比简单搜索更多的操作,例如分组、联接和聚合,这些对于分析性应用来说是典型的。
鉴于上述情境,将详细描述本公开的实现方式。
图2描绘了根据本公开的实现方式的示例组件体系结构200。组件体系结构200包括受信任侧202,和不受信任侧204,它们由信任边界206划分。示例体系结构200的组件包括最终用户210、代理212、应用服务器214和数据库服务器216。在一些示例中,应用服务器214和数据库服务器216可被包括在单个服务器中(例如,它们不一定是不同的服务器)。在描绘的示例中,最终用户210执行浏览器220。例如,最终用户210包括客户端侧计算设备(和/或使用客户端侧计算设备的用户)。在描绘的示例中,代理212包括密码模块222,该密码模块222例如对要发送到不受信任侧204的查询消息加密并且对从不受信任侧204接收的查询结果解密。在一些示例中,代理212是无状态的,并且访问加密密钥。在一些实现方式中,代理212是在客户端侧执行的应用服务器上提供的。在一些实现方式中,代理212是在客户端侧跨多个应用服务器提供的。在一些示例中,代理212还包括本地数据库(未示出),用于存储从应用服务器214返回的结果,并且支持本文更详细描述的后期处理。
在一些实现方式中,应用服务器214托管最终用户210通过浏览器220与之交互的应用(例如,分析性web应用)。更具体而言,根据本公开,最终用户210通过代理212与应用服务器214(以及应用)交互。在一些实现方式中,应用服务器214查询由数据库服务器216管理的数据库。例如,由应用服务器214托管的应用可包括要求对数据库服务器处维护的数据库的数据的查询的功能。根据本公开的实现方式,存储在数据库中的数据被加密(例如,利用如本文所述的多层可调整加密)。在描绘的示例中,应用服务器包括资源230、服务组件232(例如,OData服务)和数据库驱动器234(例如,SQL数据库驱动器)。数据库服务器包括数据接口组件236。
在一些实现方式中,最终用户210通过代理202向应用服务器214请求(例如,通过HTTP请求)资源230中的一个或多个。例如,最终用户210可请求在应用的(网)页中显示的文本和/或图像。在一些示例中,这种资源请求是未加密的。
在一些实现方式中,最终用户210通过应用查询数据库。例如,最终用户210向代理212发送数据库查询,代理212对查询的至少一部分(例如,参数)加密,并且将加密的查询发送到应用服务器214。在一些示例中,服务232接收加密的查询并且将加密的查询提供给数据库驱动器234。在一些示例中,数据库驱动器234处理加密的查询,这将在本文中详细描述。例如,数据库驱动器234可将查询分割成多个查询部分和/或向代理212发送对加密密钥的请求(例如,如果多层加密的层要被解密来执行查询的至少一部分)。在一些示例中,如果列必须被重加密以支持表格联接,则请求加密密钥。
数据库驱动器234基于加密的查询来查询数据库服务器。在一些示例中,应用服务器214将加密查询结果提供回给代理,代理对加密查询结果解密以将明文结果提供给最终用户210。在一些示例中,在本文更详细描述的查询分割的情况下,应用服务器214将加密部分查询结果和查询部分提供给代理212,代理212对加密部分查询结果解密以提供明文部分结果,并且在明文部分结果上执行该查询部分以提供明文查询结果。在一些示例中,解密的值被插入到本地数据库中,该本地数据库被用于执行查询部分。
本公开的实现方式引入了代理和数据库驱动器,该数据库驱动器被集成到web应用的体系结构中。因为数据库驱动器被修改,所以本公开的实现方式的目标是将数据库查询与其他应用代码和用户界面清楚分离的web应用体系结构。一个这种体系结构包括由德国瓦尔多夫的SAP SE提供的用于web应用的UI5框架。在UI5框架中,web应用在web浏览器中主要被作为JavaScript执行。用户界面组件(例如,图像)和设计(以及其他资源)是以与JavaScript代码集成的HTML和CSS的形式下载的。为了在云服务器上持久地存储和处理数据,客户端发出请求(例如,OData请求),这些请求被数据库引擎(例如,由德国瓦尔多夫的SAP SE提供HANA XS引擎)处理。在一些实现方式中,这些请求被转化成对于数据库后端的查询(例如,SQL查询)。客户端处理查询响应并且利用动态创建的HTML显示查询响应。
根据本公开的实现方式,代理对查询中的诸如常数之类的数据加密并且对查询结果解密。如本文更详细描述的,本公开的实现方式支持在代理中对在加密数据上不支持的查询进行后期处理。在一些示例中,数据库驱动器将查询分割成两个查询部分:能够在加密数据上执行的第一查询部分(例如,其可包括一个或多个查询)和不能在加密数据上执行的第二查询部分。在一些示例中,第一查询部分和第二查询部分一起递送的结果与原始查询将会递送的结果相同。在一些实现方式中,第二查询部分、和第一查询部分的结果被发送到代理。代理对该结果解密以提供明文,并且在该明文上处理第二查询部分。第二查询部分的结果被发送到客户端。
本公开的实现方式被设计为增大在云提供者的站点处访问数据的负担。基于图2的信任边界206提供了示例威胁模型。该示例威胁模型势必包括尝试访问客户端的数据的黑客和/或恶意内部人员。在一些实现方式中,为了阻碍恶意程序员,对于在客户端处执行的代码可提供代码签名以引入一定程度的间接性,因为应用提供者(程序员)需要对代码签名并且是固有受信任的。在一些实现方式中,代理验证该签名并且因此诸如浏览器扩展之类的对于客户端的修改是不必要的。
除了客户端数据的加密以外,本公开的实现方式还提供了用于密钥发布的策略机制。在一些示例中,代理已经提供了用于解密的必要密钥,并且数据库驱动器只请求重加密将会需要的密钥。在一些示例中,为了调整加密,数据库驱动器请求洋葱加密的(一个或多个)外层的(一个或多个)密钥。在一些示例中,实现策略机制,以使得云提供者不能向客户端请求任意密钥。相反,客户端将每个请求与策略匹配以作出允许或拒绝决策。在拒绝的情况下,应用的性能可受到不利影响,但客户端的安全性得到了保护。这防止了云提供者进行的密钥外泄攻击。
本公开的加密方案被设计为在给定执行应用所需的功能和性能的情况下提供最大安全性。在一些示例中,只有客户端实际用于搜索的那些列被确定性加密。因此,若干列可保持在比确定性加密更强的加密下。在一些实现方式中,对于受限数字处理集成了加性同态加密。在一些示例中,然后可由代理在明文上执行更复杂的操作。利用代理后期处理,本公开的实现方式支持了SQL的完全功能,并且应用程序员可求助于此标准接口。
本公开的实现方式采用了支持SQL中的不同操作的若干个不同的加密方案。示例加密方案包括标准AES加密(在GCM模式中)(例如,RND方案)、确定性加密(DET)、保序加密(OPE)和加性同态加密(HOM)。在此总结DET、OPE和HOM的特征。因为AES是众所周知的,所以在此不总结AES的特征。
DET始终将给定的明文映射到相同的密文。因此,在密文之间以及在明文之间可执行相等比较。这使得云中的数据库能够利用与用于明文的算法相同的算法执行相等比较(不需要对数据库的改变)。默认地,本公开的实现方式利用不同的密钥对每个数据库列加密。这使能了列值和查询中提供的常数之间的比较。然而,列之间的比较是不可能的,除非要比较的列之间的密钥被调整到相同密钥。
本公开的实现方式使用代理重加密来改变密钥,这可由云提供者执行,无需下载数据库密文。另外,改变是持久的,这为将来的查询节省了成本。在一些示例中,选择列来调整。在一些示例中,像DET方案那样在椭圆曲线上使用Pohlig-Hellman加密,因为其支持所要求的代理重加密。
在OPE中,在密文中保留明文的顺序。因此,像在明文之间一样在密文之间可执行大于比较。这使得云中的数据库能够利用与用于明文的算法相同的算法执行大于比较。不幸的是,没有用于(安全)OPE的代理重加密方案可用。因此,与用于DET的密钥调整算法相同的密钥调整算法不能用于OPE。鉴于此,本公开的实现方式对每个数据库类型利用其自己的密钥加密(例如,字符串、整数)。在一些示例中,假设不同类型之间的比较是罕见的例外。
另外,本公开实现的OPE方案是确定性的。这是由于加密方案的洋葱分层。在一些示例中,低层中的随机化将传播到高层。较低的保序层继续支持较高的确定性层的相等比较。
鉴于这些要求,使用了一种示例OPE方案(“Boldyreva OPE方案”),其虽然对于有序选择明文攻击(ordered-chosen plaintext attack,OCPA)是不安全的,但与洋葱加密是兼容的,因为其不要求突变。另外,Boldyreva OPE方案是无状态的,这适合于本公开的无状态代理体系结构。
在HOM中,密文上的一个操作映射到明文的加法。因此,可利用密文执行加法。然而,加法的结果仍是以同态加密方案加密的。因此,HOM可用于在数据库中实现聚合。在一些示例中,明文加法被同态操作(例如,模乘)所替换。在一些数据库中,这可利用用户定义函数(user-defined function,UDF)来完成,虽然原生实现可能更高效。
根据本公开的实现方式,每一列被用其自己的密钥来加密,并且云数据库上的列之间的加法不被支持。另外,列之间的乘法也不被HOM方案支持。本公开的实现方式使用Paillier加密作为加性HOM方案。
根据本公开,为了将数据库操作匹配到加密被分层的适当的加密方案。在一些示例中,列中的每个数据项x首先被利用保序加密:EOPE(x)来加密。此密文被利用确定性加密:EDET(EOPE(x))来加密。该密文再被利用概率性加密:ERND(EDET(EOPE(x)))来加密。最初,这个三层密文被存储在数据库中。与分层密文一起,对于每个数值数据项x,也存储加性同态加密:EHOM(x)。如本文更详细论述的,两个密文都形成在加密数据上搜索的基础。
在一些实现方式中,用于这些加密方案的所有密钥都被维护在代理处。在一些示例中,
Figure BDA0001126937470000111
是用于各个加密方案RND、DET或OPE的列X的秘密密钥。为了简化密钥管理,所有密钥是利用一种安全密钥派生方案从主密钥派生的。
表1示出了不同加密方案支持的数据库操作:
Figure BDA0001126937470000112
Figure BDA0001126937470000121
表1:加密方案支持的DB操作
除了求和以外,多层加密(即,ERND(EDET(EOPE(x))))的内层比外层支持更多操作。此外,可假设RND(概率性加密)比DET更安全,而DET比OPE更安全。
如上所述,本公开的实现方式根据需要调整加密。在一些实现方式中,数据库驱动器维护每一列的加密的状态。在一些示例中,每当用户发出查询时,数据库驱动器确定响应于该查询要执行的操作,并且将这些操作映射到相应加密方案(例如,如表1中所示)。所识别出的加密方案被与各列的加密的状态相比较。
如果该列被利用比所要求的更外的层来加密,则执行调整解密。在一些示例中,客户端将(一个或多个)密钥与请求一起发送到数据库驱动器,然后数据库驱动器通过解密去除(一个或多个)外层。解密只被执行到各个操作所要求的最外层。如果该列已经被加密到适当的层,则不要求动作。
在一些实现方式中,除了由管理员干预以外,调整永不被逆转。例如,可假设一旦云提供者已获知了密文,密文就可将其用于密码分析。因为可能难以确定何时发生了成功的攻击,所以使用云提供者始终被对手颠覆这个最坏情况假设。
一个挑战在于数据库驱动器维护数据库的状态,而密钥由代理持有并且查询的加密由代理执行。因此,也执行查询分析以便确定必要的加密方案的代理在没有数据库的状态的情况下操作。本公开的实现方式以如下方式解决此挑战:代理在可能的情况下基于查询(OData查询)确定必要的加密方案。可在代理中配置复杂服务(OData服务)。代理假设分层加密在最外层(即,最初状态)。代理把用于将解密从最外层调整到必要层的所有必要解密密钥与查询一起发送。数据库驱动器再次分析查询,确定必要加密方案,并且将它们与数据库状态相比较。如果调整是必要的,则数据库驱动器将提供的密钥用于解密并且缓存这些密钥。如果不必要调整,则数据库驱动器丢弃这些密钥。
根据本公开的实现方式,代理也对查询的常数参数加密。在一些示例中,这些参数的加密与数据库的加密匹配。在一些示例中,代理再次假设分层加密在操作所必要的最外层,并且相应地对参数加密。数据库驱动器将假设的层与实际层相比较(基于数据库状态)。如果实际层是更内的层,则数据库驱动器使用缓存的密钥来通过对外层解密来调整参数的加密,并且查询在数据库中存储的加密数据上被执行。
通过示例来说明上述过程流程。在此示例中,假设数据库在其初始状态(例如,新近上传的数据库),并且所有的列被利用多层加密来加密,其中RND是最外层(如本文所述)。在此示例中,也假设客户端从发出以下示例查询(OData查询)开始。
http://host/service/people?$select=name&$filter=age ge 21*
在此示例中,相应的SQL查询包括:SELECT name FROM ppl WHEREage>=21。该示例查询返回数据库中所有21岁以上的人的姓名。在此示例中,两列出现在查询中(name和age)。只有投影操作被用于姓名,因此可利用概率性加密对其加密,而在年龄上执行范围选择操作。因此,必须利用OPE对年龄加密。
鉴于此,代理随后将包括密钥的以下示例查询消息转发到云(转发到应用服务器):
http://host/service/people?$select=name&$filter=age ge EOPE(21)
密钥:
Figure BDA0001126937470000131
在此示例中,相应的SQL查询包括:SELECT name FROM ppl WHERE age>=EOPE(21)。
数据库驱动器从代理接收该查询消息,并且将数据库列age的加密调整到OPE。更具体而言,数据库驱动器使用该密钥来解密到OPE层。随后利用标准数据库操作(例如,投影、范围)在OPE加密的年龄数据和RND加密的姓名数据上执行查询。
继续此示例,现在假设客户端接下来发出以下查询(例如,作为OData的SQL查询):
http://host/service/people?$select=name&$filter=age eq 65
在此示例中,相应的SQL查询包括:SELECT name FROM ppl WHEREage=65。此查询返回所有年龄为65岁的人的姓名。同样的两列(age、name)出现在查询中,但此查询要求年龄上的等值选择操作。因此,年龄必须被加密到DET。
鉴于此,代理将以下示例查询消息转发到云(转发到应用服务器):
http://host/service/people?$select=name&$filter=age eq EDET(EOPE(65))
密钥:
Figure BDA0001126937470000141
在此示例中,相应的SQL查询包括:SELECT name FROM ppl WHERE age=EDET(EOPE(65))。因为代理不知晓数据库状态,所以其发送密钥
Figure BDA0001126937470000142
虽然年龄列如上所述由于第一查询已经被OPE加密(最低加密级别)。因此,数据库驱动器不需要执行对数据库的任何调整,因为该列已经被利用OPE加密。查询的参数仍被利用DET来加密。数据库驱动器使用缓存的密钥
Figure BDA0001126937470000143
来将查询参数EDET(EOPE(65))解密到EOPE(65)。数据库驱动器利用标准数据库算子在加密的数据库上执行查询。
在一些示例中,在联接的情况下,代理可能不能够精确地确定重加密(或调整)的必要密钥,因为列的当前密钥可能取决于先前查询的顺序而不同。因此,本公开的实现方式在代理中包括回调接口以供数据库驱动器请求这种密钥。代理对来自数据库驱动器的这种请求的响应(例如,允许、拒绝)是基于策略检查来控制的,这在本文中将更详细描述。
从表1可以看出,不是所有加密方案都支持所有数据库操作。因此,当在单个查询中链接操作时,可能出现这样的情况,即算子一个接着一个,这要求不兼容的加密方案。这个的示例包括排序或选择聚合值。以下示例查询说明了这一点:
http://host/service/people?$select=zipcode,totalIncome&$orderby=
totalIncome&$top=3
在此示例中,相应的SQL查询包括:SELECT TOP 3zipcode,SUM(income)FROM pplGROUP BY zipcode ORDER BY SUM(income)。此示例查询返回所有人之中具有前三合计收入的邮政编码。为了执行此查询,数据库首先需要计算所有邮政编码的合计收入。它可通过将数据解密到加性HOM来做到这一点。接下来,数据库需要基于聚合值对行排序。然而,不能利用经加性HOM加密的数据执行排序,因为其是随机化的。因此,此查询不能完全在数据库服务器上执行。
本公开的实现方式通过将查询分割成多个查询部分来解决此问题。在一些实现方式中,代理将包括适当加密密钥的整个查询发送到应用,并且因此发送到数据库驱动器。继续以上示例,代理发送以下示例查询消息:
http://host/service/people?$select=zipcode,totalIncome&$orderby=
totalIncome&$top=3
密钥:
Figure BDA0001126937470000151
响应于该查询消息,数据库驱动器在关系代数中构建算子树。数据库驱动器从叶到根处理算子树。对于每个节点,数据库驱动器维护支持的加密方案的列表。如果数据库驱动器遇到不支持任何当前加密方案的父节点,则分割该查询。数据库服务器执行较低查询部分(例如,第一查询部分)并且客户端执行较高查询部分(例如,第二查询部分)。可注意,从叶子起处理算子树确保了由数据库服务器执行的部分被最大化。在一些示例中,数据库驱动器将查询消息的较高查询部分合成到SQL,并且将较高查询部分与较低查询部分的结果一起返回给代理。
在以上的当前示例中,在服务器上执行的较低查询部分以如下形式提供:
SELECT zipcode,SUM(income)FROM ppl GROUP BY zipcode INTO temp
可注意到,代理只需要在查询语法上操作,而不需要构建查询的关系代数,因为数据库驱动器已经执行了分割。这避免了重复查询分析工作并且加速了应用请求。
在一些示例中,数据库服务器可能需要为此查询将邮政编码解密到DET。在一些示例中,一临时数据库表格包含所有邮政编码及其合计收入。此表格与查询的较高部分一起在以下示例结果消息中被返回给代理:
RESULT:temp[zip,sum(income)]
SELECT TOP 3*FROM temp ORDER BY sum(income)
代理将(一个或多个)临时表格加载到本地缓存数据库中。代理对所有值解密,并且执行由数据库驱动器提供的较高查询部分。两个查询部分的组合返回与原始查询将会返回的相同的结果。代理可执行中间结果的较高查询部分,因为其可对值解密。因为所有查询都可在代理处在明文数据上执行,所以分割算法使得能够根据本公开执行所有SQL查询。
可注意到,即使在以上提供的当前示例中,(一个或多个)临时表格也可大于结果表格。在当前示例中,临时数据库对于每个邮政编码包含一行,而结果表格只包含三行。考虑到SQL的表现力,这是不可避免的。在以下论述的示例评估中,测量由加密和后期处理引起的消息大小的扩张。在使用了现实世界应用的示例评估期间,所有查询都要求此分割。例如,对于分析性应用,对聚合值排序是典型的。如果没有本公开的分割算法,对数值加密在分析性应用中将是不可能的。
如上文介绍的,本公开的实现方式提供了对从数据库驱动器接收的请求的策略检查。可调整加密的一个优点是如下灵活性:不需要预先知道执行的查询,而是调整加密以适应于实际执行的查询。这还有如下优点,即加密不需要预见通过应用的所有可能路径。只有实际采取的执行路径影响加密的级别。然而,因为应用不是静态的并且可能变化,所以应用可试图执行查询,这些查询要求对客户端来说不可接受的加密级别。为了防止此问题,本公开的实现方式除了客户端中的密钥管理以外还提供了一种策略检查机制。
在一些实现方式中,策略可规定对于特定的数据库列允许哪些加密方案(例如,某一列是否可在DET或OPE中被暴露)。在一些示例中,可对任何任意规范提供策略。
为了说明策略检查,可考虑以下示例。在一个示例中,医疗图像可被存储在云数据库中,例如存储在名为xray的列中。在许多应用中,在数据库中搜索这些的需求可能是很少的。因此,可利用概率性加密(RND)对数据加密。在一些示例中,这可对应于数据保护法规期望的加密级别。客户端可设置列xray的唯一允许加密层是RND的策略,这意味着密钥
Figure BDA0001126937470000161
Figure BDA0001126937470000162
永不被透露给云服务器。另外,如果客户端确信永不要求较低加密层(即使在策略变化之后),则其可只利用概率性加密(即,作为RND提供的单加密层)对数据加密,从而节省解密成本。
在另一示例中,医疗数据库还包含患者的姓名,例如在列name中。在一些示例中,因为数据库被正规化,所以姓名只出现一次并且以后由唯一识别符来引用。尽管如此,姓名仍是个人可识别数据并且需要由强加密来保护。OPE可能是不可接受的,因此可通过设置适当的策略来防止。例如,策略可规定RND和DET是列name可用的唯一加密层。在一些示例中,密钥
Figure BDA0001126937470000171
将不被发送到云服务器。另外,完全不利用OPE加密的相同优化在此情况下是可能的。
在一些示例中,为了将策略规范压缩到最重要的安全性设置,可假设暴露除了明文以外的所有加密层的默认策略。这意味着密钥KOPE和KHOM被保留在客户端处。客户端随后只需要规定从可调整洋葱加密的常规行为派生的那些列。
图3描绘了根据本公开的实现方式可执行的示例过程300。在一些示例中,示例过程300可作为利用一个或多个计算设备执行的一个或多个计算机可执行程序来提供。在一些实现方式中,示例过程300被执行来根据本公开的实现方式为访问加密数据的分析性web应用管理数据加密。
接收查询和一个或多个加密密钥(302)。例如,在服务器侧计算设备上执行的数据库驱动器(例如,图2的数据库驱动器234)从客户端侧代理(例如,图2的代理212)接收查询和一个或多个加密密钥。在一些示例中,一个或多个加密密钥是由客户端侧代理基于执行查询所要求的操作而选择的。
确定执行该查询是否要求查询分割(304)。例如,数据库驱动器可确定查询的所有操作不是都能在加密数据上执行(例如,查询的至少一个操作必须在明文数据上执行)。如果要求查询分割,则提供多个查询部分(306)。例如,数据库驱动器可将查询分割成第一查询部分(例如,包括一个或多个查询)和第二查询部分(例如,包括一个或多个查询),如本文所述。确定执行该查询(或查询部分)是否要求一个或多个其他加密密钥(308)。例如,数据库驱动器可确定要求特定的重加密密钥(例如,来对列重加密)。在一些示例中,数据库驱动器不能请求(或者不会被提供)用于OPE、DET、RND和/或HOM解密的密钥。如果确定要求一个或多个其他重加密密钥,则请求并且(可能)接收一个或多个其他重加密密钥(310)。例如,数据库驱动器可向代理请求特定的加密密钥,并且代理可基于一个或多个策略提供允许/拒绝决策,如本文所述。
在一些示例中,利用至少一个加密密钥执行查询的至少一个操作(312)。例如,数据库驱动器可查询数据库来执行至少一个操作(例如,查询的至少一个操作,查询部分的至少一个操作)。在一些示例中,数据库中存储的加密数据的至少一部分被利用至少一个加密密钥来解密以提供多层加密方案中的较低级别加密数据。然而,要明白在一些情况中可不利用加密密钥来执行查询(例如,在(312)中对至少一个加密密钥的使用可能是可选的))。例如,包括对整个RND加密表格的请求的查询不会要求为解密使用密钥。
发送查询结果(314)。例如,数据库驱动器将查询结果发送到代理。在一些示例中,查询结果包括加密数据。在一些示例中,查询结果包括加密数据和多个查询部分中的一查询部分。代理处理查询结果以向最终用户提供明文数据。
如上文介绍的,进行了对本公开的实现方式的示例评估。在该示例评估中,代理组件是利用mitmproxy、Python代理和Java实现的,用于查询处理(包括后期处理)和加密/解密。对数据库驱动器的修改是直接在HANA XS应用服务器内执行的。表2提供了对示例评估的示例测试环境的总结。
Figure BDA0001126937470000181
表2:示例测试环境
示例应用被选择为SHINE销售仪表板(SHINE Sales Dashboard),SHINE是德国瓦尔多夫的SAP SE提供的标准SAP HANA部署的一部分。在一些示例中,SHINE销售仪表板可被描述为为销售经理开发的综合性分析应用。在一些示例中,SHINE销售仪表板提供包含公司的销售的若干个图表和表格。
图4描绘了SHINE销售仪表板400的示例屏幕截图。在一些示例中,SHINE销售仪表板400的第一选项卡402提供销售信息的表示。在描绘的示例中,图表404、406、408、410被显示在选项卡402处,这些图表分别表示以下内容:左上(404)→每个区域的销售分布(AFR、APJ、AMER、EMEA);右上(406)→每个国家的销售分布(例如,DE、US、FR);左下(408)→对于所选区域具有大于零的折扣的公司(销售经理可选择该区域);右下(410)→按总销售排序的前十客户。在一些示例中,销售经理能够与这些图表交互,并且例如可通过将鼠标悬停在图表上来动态看到更多信息。另外的选项卡412、414使得能够深度探讨特定图表。
在一些示例中,图表404、406、408、410是利用各个OData查询实现的,每个查询要求后期处理。因此,如果没有本公开的代理体系结构,则不可能集成了数字加密。每个查询在下文更详细描述。
左上图表(404):作为图表404基础的查询是相对复杂的。该查询的主要任务是利用销售订单信息联接若干个表格。在示例评估中,涉及八个不同的表格并且在联接期间选择大约10000个唯一数据行。SQL查询在联接结果中将每个区域的净额合计起来并且对总结果排序。本公开的实现方式能够直接在加密的表格上执行每个区域的销售的复杂联接和求和。因此,查询的计算密集部分(例如,较低查询部分)是在服务器侧执行的。然而,对聚合值排序导致了加密方案的冲突,并且要求后期处理(例如,较高查询部分)。后期处理如本文所述那样执行,并且代理在解密后对总结果排序。
右上图表(406):作为图表406基础的查询与作为图表404基础的类似,除了求和是在每个国家而不是每个区域上计算的以外。
左下图表(408):作为图表408基础的查询是示例应用中的查询之中最复杂的。该联接操作等于图表404、406中要求的联接操作。然而,对于此图表不只是结果。相反,执行四个额外的计算:选择一段时间内来自特定区域(由销售经理选择)的所有销售并且对每个公司计算总数;选择具有最高总销售的十个公司;基于区域、订单数、订单排名、总销售和销售排名来评估这些公司的折扣,其中订单和销售排名是基于在所选区域和时间段中与其他公司的比较的分类;并且选择具有大于零的折扣的所有公司。
本公开的实现方式能够直接在云提供者处在加密数据上执行复杂的联接。第一个额外的步骤要求等值匹配和范围查询,并且也可直接在数据库上执行。然而,第二步骤要求解密,因为其使用总值的顺序。由于该原因,第三和第四步骤不能在服务器侧执行,而是由后期处理执行,如本文所述。第一步骤的聚合销售数字在第二步骤中被过滤。由第一步骤产生的临时表格可能比查询的结果更大,因为通过过滤只选择了前十个值。在示例评估中,在该临时表格中有45行。这仍比数千的个体销售条目要小得多。
右下图表(410):作为图表410基础的查询与作为图表408基础的类似,除了只返回销售以外(没有对折扣的计算)。
在评估本公开的实现方式的性能时,测量的性能度量包括页面加载时间。在一些示例中,页面加载时间影响用户对应用的感知。在一些示例中,页面加载时间是从第一HTTP请求(例如,由用户在客户端侧触发)开始直到接收并显示最末HTTP响应为止测量的。为了评估,将明文版本的页面加载时间与利用本公开的实现方式提供的加密版本相比较。示例评估揭示了本公开的实现方式将页面加载时间增大平均1.5倍,包括后期处理在内。这是1.58秒的绝对值。
示例评估接下来确定这个额外的时间(1.5秒)花费在何处。为此,测量客户端作出的每个个体HTTP请求的时间。HTTP请求可以是对应用资源的(例如,网页、图像),对数据内容的(OData请求)或者是联接密钥请求以便根据本公开调整加密层。以明文运行和利用本公开的实现方式加密运行的应用的所有HTTP请求的时间被加起来。示例评估揭示了请求时间的总和从1.9秒(明文)增大到6.1秒(本公开的代理方案)。这比页面加载时间的增大要大得多。这是因为测量了一种分布式的、部分并行的系统,并且浏览器并行发送多个请求并且可在处理进一步请求的同时渲染显示。因此,延长的HTTP请求的影响没有立即影响用户。另外,示例评估揭示了应用资源请求的时间从1.84秒(明文)增大到5.74秒(本公开的代理方案)。这占了增大的大部分,但不与代理或数据库的处理直接联系。相反,这可归因于在体系结构中引入代理,与mitmproxy的不算太高效的处理相一致。可断定,一种专用的快速代理可大幅减小明文和加密版本之间的差别。整体上,请求中的内容数据(与加密相关)增加只占小于0.5秒。
示例评估还识别出加密引入的时间(请求开销的内容数据部分)花费在何处。对于每个请求,测量在代理的Java组件中花费的时间(对查询进行(后期)处理、对参数加密和对结果解密的时间)。这是对作为示例应用的图表404、406、408、410的基础的每个查询测量的。示例评估揭示出作为图表408基础的查询具有最高处理时间,这并不意外,因为它是考虑的查询之中的最复杂查询。示例评估还揭示出数据库处理加密值花费最多的时间。这也不是意外的,因为数据库需要为加性同态加密执行模乘。查询之间的差别主要是由代理的密码部分中的处理时间导致的,这可由以下观察来说明:对于作为图表408、410基础的查询的第二查询部分,代理需要对更多条目解密;并且代理需要执行更复杂的后期处理。
总之,示例评估揭示了根据本公开的实现方式的示例分析性应用的加密处理大体来说添加了很少的开销,尤其是最终用户可注意到的很少开销。代理中的加密数据的处理添加了与数据库中的加密数据的处理可比拟的开销。因此,本公开的实现方式在提供增强的安全性的同时不引入很大的性能瓶颈。
可考虑的另一个性能度量是消息大小。尤其,可考虑本公开的加密和后期处理相对于明文处理的消息大小的扩张。示例评估揭示了对于作为图表404、406基础的查询的响应大小的增大(大约4倍),其中没有作为临时结果的一部分传送额外的数据(在后期处理之前)。作为图表408、410基础的查询在响应大小上表现出更大的增大(大约13倍),因为它们也要求额外的数据条目被传送到代理以便后期处理。然而,鉴于本公开的实现方式提供的增强的安全性,这个增大的开销是可管理的。
可考虑的另一个性能度量是在执行示例应用的同时数据库的加密级别。如上所述,OPE使能了比DET更好的密码分析,而DET使能了比RND更好的密码分析(即,RND比DET更安全,而DET比OPE更安全)。不管怎样,所有列至少在OPE层保持被加密,并且用于聚合的数字可利用加性HOM来加密。示例评估揭示了执行示例应用的所有特征之后的加密状态,这在表3中总结:
Figure BDA0001126937470000211
表3:加密状态
由于示例应用的分析性质,以及示例应用中的大量联接,预期了相对大量的确定性和保序加密。然而,所有列的大约40%被用于数值计算或检索,从而仍然是用RND加密的。因此,本公开的实现方式相对于限制聚合值的加密的解决方案提供了明确的安全性益处。
示例评估还揭示了加密层随着示例应用的多次执行的演变。该演变可被分离成阶段1、2和3,每个阶段对应于在示例应用的测试运行期间遇到的特征的相继执行。只有在示例应用的所有特征都已被执行之后,才实现表3中总结的加密状态。示例应用的典型特征包括按用户指定列的排序。只有在此排序被明确触发之后,列才解密到OPE层。这表明本公开的实现方式与要求预定加密的解决方案相比增大了安全级别。另外,本公开的实现方式只调整加密以适应于实际使用和执行的应用的特征。
现在参考图5,提供了示例计算系统500的示意图。系统500可用于联系本文描述的实现方式描述的操作。例如,系统500可被包括在本文论述的任何或所有服务器组件中。系统500包括处理器510、存储器520、存储设备530和输入/输出设备540。组件510、520、530、540利用系统总线550互连。处理器510能够处理指令以用于在系统500内执行。在一个实现方式中,处理器510是单线程处理器。在另一实现方式中,处理器510是多线程处理器。处理器510能够处理存储器520或存储设备530中存储的指令以在输入/输出设备540上显示用于用户界面的图形信息。
存储器520存储系统500内的信息。在一个实现方式中,存储器520是计算机可读介质。在一个实现方式中,存储器520是易失性存储器单元。在另一实现方式中,存储器520是非易失性存储器单元。存储设备530能够为系统500提供大容量存储。在一个实现方式中,存储设备530是计算机可读介质。在各种不同的实现方式中,存储设备530可以是软盘设备、硬盘设备、光盘设备或磁带设备。输入/输出设备540为系统500提供输入/输出操作。在一个实现方式中,输入/输出设备540包括键盘和/或指点设备。在另一实现方式中,输入/输出设备540包括用于显示图形用户界面的显示单元。
描述的特征可在数字电子电路中实现,或者在计算机硬件、固件、软件或者它们的组合中实现。装置可在计算机程序产品中实现,该计算机程序产品被有形地体现在信息载体中,例如机器可读存储设备中,以供可编程处理器执行;并且方法步骤可由可编程处理器执行,该可编程处理器执行指令的程序以通过在输入数据上操作并生成输出来执行描述的实现方式的功能。描述的特征可有利地在一个或多个计算机程序中实现,该一个或多个计算机程序可在可编程系统上执行,该可编程系统包括至少一个可编程处理器,该可编程处理器被耦合来从数据存储系统、至少一个输入设备和至少一个输出设备接收数据和指令并且向其发送数据和指令。计算机程序是可在计算机中直接或间接用于执行一定活动或带来一定结果的指令的集合。计算机程序可以用任何形式的编程语言来编写,所述语言包括经编译或解释的语言,并且计算机程序可按任何形式来部署,包括被部署为独立程序或被部署为模块、组件、子例程或者适合用在计算环境中的其他单元。
用于指令的程序的执行的适当处理器例如包括通用和专用微处理器两者,以及任何种类的计算机的唯一处理器或多个处理器之一。一般地,处理器将从只读存储器或随机访问存储器或者这两者接收指令和数据。计算机的元素可包括用于执行指令的处理器和用于存储指令和数据的一个或多个存储器。一般地,计算机也可包括用于存储数据文件的一个或多个大容量存储设备或者被操作性地耦合以与这种存储设备通信;这种设备包括磁盘,例如内部硬盘和可移除盘;磁光盘;以及光盘。适用于有形地体现计算机程序指令和数据的存储设备包括所有形式的非易失性存储器,例如包括半导体存储器设备,比如EPROM、EEPROM和快闪存储器设备;磁盘,比如内部硬盘和可移除盘;磁光盘;以及CD-ROM和DVD-ROM盘。处理器和存储器可被ASIC(专用集成电路)所补充,或者被包含在ASIC中。
为了支持与用户的交互,特征可实现在计算机上,该计算机具有用于向用户显示信息的显示设备,例如CRT(cathode ray tube,阴极射线管)或LCD(liquid crystaldisplay,液晶显示器)监视器,以及用户可用来向计算机提供输入的键盘和指点设备,例如鼠标或跟踪球。
特征可在计算机系统中实现,该计算机系统包括后端组件,例如数据服务器,或者包括中间件组件,例如应用服务器或因特网服务器,或者包括前端组件,例如具有图形用户界面或因特网浏览器的客户端计算机,或者它们的任何组合。系统的组件可由任何形式或介质的数字数据通信(例如通信网络)连接。通信网络的示例包括(例如,LAN、WAN),以及形成因特网的计算机和网络。
计算机系统可包括客户端和服务器。客户端和服务器一般彼此远离且通常通过例如所描述的那种之类的网络来交互。客户端和服务器的关系是由于计算机程序在各计算机上运行且相互之间具有客户端-服务器关系而发生的。
此外,附图中描绘的逻辑流程要实现期望的结果并不要求所示出的特定顺序或者先后次序。此外,可以向描述的流程提供其他步骤,或者可以从描述的流程中消除步骤,并且可以向描述的系统添加其他组件,或者可以从描述的系统中去除组件。因此,其他实现方式在所附权利要求的范围内。
已描述了本公开的若干个实现方式。然而,将会理解,在不脱离本公开的精神和范围的情况下可做出各种修改。因此,其他实现方式在所附权利要求的范围内。

Claims (17)

1.一种用于基于加密数据处理分析性web应用中的查询的由计算机实现的方法,该方法是利用一个或多个处理器执行的并且包括:
由在服务器侧计算设备上执行的数据库驱动器从客户端侧代理接收查询和一个或多个加密密钥,所述一个或多个加密密钥是由所述客户端侧代理基于执行所述查询所要求的操作选择的;
执行所述查询的至少一个操作以提供包括加密数据的查询结果;
由所述数据库驱动器基于所述查询提供第一查询部分和第二查询部分,所述第一查询部分包括所述至少一个操作;以及
由所述数据库驱动器将所述第二查询部分连同较低级别加密数据发送给所述客户端侧代理,其中处理所述较低级别加密数据以提供明文数据是由所述代理基于所述第二查询部分执行的。
2.如权利要求1所述的方法,其中,执行所述查询的至少一个操作进一步包括:
由所述数据库驱动器确定需要特定的重加密密钥;
由所述数据库驱动器向所述代理发送对所述特定的重加密密钥的请求;以及
由所述数据库驱动器从所述代理接收所述特定的重加密密钥。
3.如权利要求1所述的方法,其中,执行所述查询的至少一个操作包括利用所述一个或多个加密密钥中的加密密钥对存储在所述数据库中的一组加密数据的至少一部分解密以提供多层加密方案中的较低级别加密数据,所述查询结果的加密数据包括所述较低级别加密数据。
4.如权利要求3所述的方法,其中,所述较低级别加密数据是基于确定性加密和保序加密的至少一者来加密的。
5.如权利要求1所述的方法,其中,所述代理是无状态的。
6.如权利要求1所述的方法,其中,所述查询包括至少一个加密的参数。
7.一种非暂态计算机可读存储介质,其耦合到一个或多个处理器并且其上存储有指令,所述指令当被所述一个或多个处理器执行时使得所述一个或多个处理器执行用于基于加密数据处理分析性web应用中的查询的操作,所述操作包括:
由在服务器侧计算设备上执行的数据库驱动器从客户端侧代理接收查询和一个或多个加密密钥,所述一个或多个加密密钥是由所述客户端侧代理基于执行所述查询所要求的操作选择的;
执行所述查询的至少一个操作以提供包括加密数据的查询结果;
由所述数据库驱动器基于所述查询提供第一查询部分和第二查询部分,所述第一查询部分包括所述至少一个操作;以及
由所述数据库驱动器将所述第二查询部分连同较低级别加密数据发送给所述客户端侧代理,其中处理所述较低级别加密数据以提供明文数据是由所述代理基于所述第二查询部分执行的。
8.如权利要求7所述的计算机可读存储介质,其中,执行所述查询的至少一个操作进一步包括:
由所述数据库驱动器确定需要特定的重加密密钥;
由所述数据库驱动器向所述代理发送对所述特定的重加密密钥的请求;以及
由所述数据库驱动器从所述代理接收所述特定的重加密密钥。
9.如权利要求7所述的计算机可读存储介质,其中,执行所述查询的至少一个操作包括利用所述一个或多个加密密钥中的加密密钥对存储在所述数据库中的一组加密数据的至少一部分解密以提供多层加密方案中的较低级别加密数据,所述查询结果的加密数据包括所述较低级别加密数据。
10.如权利要求9所述的计算机可读存储介质,其中,所述较低级别加密数据是基于确定性加密和保序加密的至少一者来加密的。
11.如权利要求7所述的计算机可读存储介质,其中,所述代理是无状态的。
12.如权利要求7所述的计算机可读存储介质,其中,所述查询包括至少一个加密的参数。
13.一种用于基于加密数据处理分析性web应用中的查询的系统,包括:
服务器侧计算设备;以及
计算机可读存储设备,其耦合到所述计算设备并且其上存储有指令,所述指令当被所述计算设备执行时使得所述计算设备执行用于基于加密数据处理分析性web应用中的查询的操作,所述操作包括:
由在所述服务器侧计算设备上执行的数据库驱动器从客户端侧代理接收查询和一个或多个加密密钥,所述一个或多个加密密钥是由所述客户端侧代理基于执行所述查询所要求的操作选择的;
执行所述查询的至少一个操作以提供包括加密数据的查询结果;
由所述数据库驱动器基于所述查询提供第一查询部分和第二查询部分,所述第一查询部分包括所述至少一个操作;以及
由所述数据库驱动器将所述第二查询部分连同较低级别加密数据发送给所述客户端侧代理,其中处理所述较低级别加密数据以提供明文数据是由所述代理基于所述第二查询部分执行的。
14.如权利要求13所述的系统,其中,执行所述查询的至少一个操作进一步包括:
由所述数据库驱动器确定需要特定的重加密密钥;
由所述数据库驱动器向所述代理发送对所述特定的重加密密钥的请求;以及
由所述数据库驱动器从所述代理接收所述特定的重加密密钥。
15.如权利要求13所述的系统,其中,执行所述查询的至少一个操作包括利用所述一个或多个加密密钥中的加密密钥对存储在所述数据库中的一组加密数据的至少一部分解密以提供多层加密方案中的较低级别加密数据,所述查询结果的加密数据包括所述较低级别加密数据。
16.如权利要求15所述的系统,其中,所述较低级别加密数据是基于确定性加密和保序加密的至少一者来加密的。
17.如权利要求13所述的系统,其中,所述代理是无状态的。
CN201610880651.3A 2015-10-09 2016-10-09 为分析性web应用加密数据 Active CN107070848B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/880,095 2015-10-09
US14/880,095 US9830470B2 (en) 2015-10-09 2015-10-09 Encrypting data for analytical web applications

Publications (2)

Publication Number Publication Date
CN107070848A CN107070848A (zh) 2017-08-18
CN107070848B true CN107070848B (zh) 2021-03-16

Family

ID=57123758

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610880651.3A Active CN107070848B (zh) 2015-10-09 2016-10-09 为分析性web应用加密数据

Country Status (3)

Country Link
US (1) US9830470B2 (zh)
EP (1) EP3154235B1 (zh)
CN (1) CN107070848B (zh)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10560440B2 (en) 2015-03-12 2020-02-11 Fornetix Llc Server-client PKI for applied key management system and process
US10630686B2 (en) 2015-03-12 2020-04-21 Fornetix Llc Systems and methods for organizing devices in a policy hierarchy
US10965459B2 (en) 2015-03-13 2021-03-30 Fornetix Llc Server-client key escrow for applied key management system and process
FR3040842B1 (fr) * 2015-09-03 2018-12-07 Commissariat A L'energie Atomique Et Aux Energies Alternatives Methode d'interrogation confidentielle d'un service geodependant par cryptographie homomorphe
US10917239B2 (en) 2016-02-26 2021-02-09 Fornetix Llc Policy-enabled encryption keys having ephemeral policies
US10931653B2 (en) 2016-02-26 2021-02-23 Fornetix Llc System and method for hierarchy manipulation in an encryption key management system
US10348485B2 (en) * 2016-02-26 2019-07-09 Fornetix Llc Linking encryption key management with granular policy
US10860086B2 (en) 2016-02-26 2020-12-08 Fornetix Llc Policy-enabled encryption keys having complex logical operations
US10880281B2 (en) 2016-02-26 2020-12-29 Fornetix Llc Structure of policies for evaluating key attributes of encryption keys
US11063980B2 (en) 2016-02-26 2021-07-13 Fornetix Llc System and method for associating encryption key management policy with device activity
US10095880B2 (en) * 2016-09-01 2018-10-09 International Business Machines Corporation Performing secure queries from a higher security domain of information in a lower security domain
US10116660B2 (en) * 2016-11-30 2018-10-30 Salesforce.Com, Inc. Security modes for a component-based web security model
US10129258B2 (en) 2016-11-30 2018-11-13 Salesforce.Com, Inc. Secure component-based web applications
US11393046B1 (en) 2017-01-17 2022-07-19 Intuit Inc. System and method for perpetual rekeying of various data columns with a frequency and encryption strength based on the sensitivity of the data columns
US10303895B1 (en) * 2017-01-19 2019-05-28 Intuit Inc. System and method for perpetual rekeying of various data columns with respective encryption keys and on alternating bases
US10645065B2 (en) * 2017-02-28 2020-05-05 At&T Intellectual Property I, L.P. Proxy-based database encryption
EP3704617B1 (en) * 2017-10-30 2022-06-29 Hitachi Energy Switzerland AG Privacy-preserving log analysis
US10733318B2 (en) 2017-11-21 2020-08-04 International Business Machines Corporation Processing analytical queries over encrypted data using dynamical decryption
US10546032B2 (en) * 2017-11-21 2020-01-28 International Business Machines Corporation System and method for association rule mining from encrypted databases
KR102408348B1 (ko) 2017-12-21 2022-06-14 삼성전자주식회사 단말 장치 및 단말 장치의 제어 방법
US20190318118A1 (en) * 2018-04-16 2019-10-17 International Business Machines Corporation Secure encrypted document retrieval
US10819508B2 (en) * 2018-04-25 2020-10-27 Micro Focus Llc Encrypted communication channels for distributed database systems
US11601402B1 (en) * 2018-05-03 2023-03-07 Cyber Ip Holdings, Llc Secure communications to multiple devices and multiple parties using physical and virtual key storage
US11477197B2 (en) 2018-09-18 2022-10-18 Cyral Inc. Sidecar architecture for stateless proxying to databases
US11477217B2 (en) 2018-09-18 2022-10-18 Cyral Inc. Intruder detection for a network
US11606358B2 (en) 2018-09-18 2023-03-14 Cyral Inc. Tokenization and encryption of sensitive data
CN109522320B (zh) * 2018-11-12 2022-08-02 杭州弗兰科信息安全科技有限公司 一种服务于数据库同态加密的优化方法
US10746567B1 (en) 2019-03-22 2020-08-18 Sap Se Privacy preserving smart metering
US10997301B1 (en) 2020-04-20 2021-05-04 Cyberark Software Ltd. Variable encryption techniques for secure and efficient searchable encryption
US10885217B1 (en) 2020-04-20 2021-01-05 Cyberark Software Ltd. Client microservice for secure and efficient searchable encryption
US11238168B2 (en) * 2020-04-20 2022-02-01 Cyberark Software Ltd. Secure, efficient, and flexible searchable-encryption techniques
US11226884B2 (en) * 2020-05-27 2022-01-18 Sap Se Database monitoring using shared infrastructure
KR102475273B1 (ko) * 2020-06-15 2022-12-08 주식회사 크립토랩 동형 암호 시스템에 대한 시뮬레이션 장치 및 방법
CN112243000B (zh) * 2020-10-09 2023-04-25 北京达佳互联信息技术有限公司 应用数据的处理方法,装置、计算机设备及存储介质
CN111931243B (zh) * 2020-10-09 2021-01-19 北京微智信业科技有限公司 一种基于全同态加密的排序方法
CN113064912B (zh) * 2021-03-24 2023-07-21 西安热工研究院有限公司 一种dcs后台快速查询历史告警信息的方法
CN113206838B (zh) * 2021-04-13 2022-07-05 武汉理工大学 一种面向Web系统的数据加密解密方法及系统
CN116150785B (zh) * 2023-01-06 2024-03-19 国网山东省电力公司 一种远程数据安全存储方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1978468A1 (en) * 2007-04-04 2008-10-08 Sap Ag A method and a system for secure execution of workflow tasks in a distributed workflow management system within a decentralized network system
CN103856481A (zh) * 2012-11-30 2014-06-11 辉达公司 使用在线认证和经加密代码执行的代码保护
CN104657413A (zh) * 2013-11-22 2015-05-27 Sap欧洲公司 加密的内存列存储

Family Cites Families (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7395437B2 (en) 2004-01-05 2008-07-01 International Business Machines Corporation System and method for fast querying of encrypted databases
US7426752B2 (en) 2004-01-05 2008-09-16 International Business Machines Corporation System and method for order-preserving encryption for numeric data
WO2005119960A2 (en) 2004-06-01 2005-12-15 Ben-Gurion University Of The Negev Research And Development Authority Structure preserving database encryption method and system
US20070174271A1 (en) * 2005-02-18 2007-07-26 Ulf Mattsson Database system with second preprocessor and method for accessing a database
EP1804416B1 (en) 2006-01-02 2010-04-07 Sap Ag System and method for comparison of private values
US7818200B2 (en) 2006-02-24 2010-10-19 Sap Ag Method and system for providing a trust-based reputation service for virtual organization formation
US7685131B2 (en) 2006-02-28 2010-03-23 International Business Machines Corporation Web services database cluster architecture
EP1835657B1 (en) 2006-03-16 2014-11-12 Sap Se Methods and systems for multi-party sorting of private values
US7836483B2 (en) 2006-04-28 2010-11-16 Sap Ag Automatic derivation of access control policies from a choreography
US8538799B2 (en) 2006-06-30 2013-09-17 Sap Ag System for business monitoring in virtual organizations
US7986780B2 (en) 2006-07-06 2011-07-26 Sap Ag Privacy-preserving substring creation
US7995750B2 (en) 2006-07-06 2011-08-09 Sap Ag Privacy-preserving concatenation of strings
US8321666B2 (en) 2006-08-15 2012-11-27 Sap Ag Implementations of secure computation protocols
US8365298B2 (en) 2006-09-29 2013-01-29 Sap Ag Comprehensive security architecture for dynamic, web service based virtual organizations
US7860244B2 (en) 2006-12-18 2010-12-28 Sap Ag Secure computation of private values
ATE444534T1 (de) 2007-02-15 2009-10-15 Sap Ag Distanzerhaltende datenanonymisierung
US8584232B2 (en) 2007-04-23 2013-11-12 Sap Ag Enhanced cross-site attack prevention
EP2043015B1 (en) 2007-09-27 2014-04-23 Sap Ag Secure logical vector clocks
US8010782B2 (en) 2008-01-18 2011-08-30 Sap Ag Method and system for mediated secure computation
US8060758B2 (en) 2008-06-30 2011-11-15 Sap Ag Item tracing with supply chain secrecy using RFID tags and an identity-based encryption scheme
US8130947B2 (en) 2008-07-16 2012-03-06 Sap Ag Privacy preserving social network analysis
US8291509B2 (en) 2008-10-17 2012-10-16 Sap Ag Searchable encryption for outsourcing data analytics
EP2228942B1 (en) 2009-03-13 2012-06-06 Sap Ag Securing communications sent by a first user to a second user
US9159046B2 (en) 2009-06-29 2015-10-13 Sap Se Systems and methods for implementing supply chain visibility policies
US8015080B2 (en) 2009-12-08 2011-09-06 Sap Ag Privacy preserving artificial immune system
US8473741B2 (en) 2010-05-03 2013-06-25 Sap Ag System and method for comparing private data
CN103168307A (zh) * 2010-05-04 2013-06-19 C.K.D.密码匙数据库有限公司 控制和限制电子文档的可读性的方法
US8402044B2 (en) 2010-07-12 2013-03-19 Sap Ag Systems and methods for secure access of data
US20120121080A1 (en) 2010-11-11 2012-05-17 Sap Ag Commutative order-preserving encryption
KR101727312B1 (ko) 2010-12-22 2017-04-14 한국전자통신연구원 순서 보존 암호화 및 복호화 장치와 그 방법
US8811620B2 (en) 2011-02-14 2014-08-19 Sap Ag Secure sharing of item level data in the cloud
US8539338B2 (en) * 2011-04-11 2013-09-17 Microsoft Corporation Cooperative rendering cache for mobile browser
US8806223B2 (en) 2011-05-03 2014-08-12 Douglas Norman Crowe System and method for management of encrypted data
US9460315B2 (en) 2011-05-18 2016-10-04 Nec Corporation Order-preserving encryption system, device, method, and program
US8526603B2 (en) 2011-07-08 2013-09-03 Sap Ag Public-key encrypted bloom filters with applications to private set intersection
US8548172B2 (en) 2011-07-08 2013-10-01 Sap Ag Secure dissemination of events in a publish/subscribe network
US9015469B2 (en) 2011-07-28 2015-04-21 Cloudflare, Inc. Supporting secure sessions in a cloud-based proxy service
US8958550B2 (en) 2011-09-13 2015-02-17 Combined Conditional Access Development & Support. LLC (CCAD) Encryption operation with real data rounds, dummy data rounds, and delay periods
US9087212B2 (en) * 2012-01-25 2015-07-21 Massachusetts Institute Of Technology Methods and apparatus for securing a database
US8572405B2 (en) 2012-03-15 2013-10-29 Sap Ag Collusion-resistant outsourcing of private set intersection
US8880867B2 (en) 2012-04-12 2014-11-04 Sap Ag Fault-tolerant privacy-preserving statistics
US9064229B2 (en) 2012-05-07 2015-06-23 Sap Se Real-time asset tracking using discovery services
US8731199B2 (en) 2012-09-28 2014-05-20 Sap Ag Zero knowledge proofs for arbitrary predicates over data
US20140095860A1 (en) 2012-09-28 2014-04-03 Alcatel-Lucent Usa Inc. Architecture for cloud computing using order preserving encryption
US9137222B2 (en) 2012-10-31 2015-09-15 Vmware, Inc. Crypto proxy for cloud storage services
US9111071B2 (en) 2012-11-05 2015-08-18 Sap Se Expression rewriting for secure computation optimization
US8839410B2 (en) 2012-11-20 2014-09-16 Sap Ag Type-system for mixed protocol secure computation
US9213867B2 (en) 2012-12-07 2015-12-15 Microsoft Technology Licensing, Llc Secure cloud database platform with encrypted database queries
US9275249B1 (en) * 2013-03-07 2016-03-01 Amazon Technologies, Inc. Accelerated encrypted database operations
US9025834B2 (en) 2013-05-29 2015-05-05 Sap Se Input validation, user and data authentication on potentially compromised mobile devices
US9003204B2 (en) 2013-07-10 2015-04-07 Sap Se Optimal re-encryption strategy for joins in encrypted databases
US10162858B2 (en) 2013-07-31 2018-12-25 Sap Se Local versus remote optimization in encrypted query processing
US9037860B1 (en) 2013-11-22 2015-05-19 Sap Se Average-complexity ideal-security order-preserving encryption
US9342707B1 (en) 2014-11-06 2016-05-17 Sap Se Searchable encryption for infrequent queries in adjustable encrypted databases

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1978468A1 (en) * 2007-04-04 2008-10-08 Sap Ag A method and a system for secure execution of workflow tasks in a distributed workflow management system within a decentralized network system
CN103856481A (zh) * 2012-11-30 2014-06-11 辉达公司 使用在线认证和经加密代码执行的代码保护
CN104657413A (zh) * 2013-11-22 2015-05-27 Sap欧洲公司 加密的内存列存储

Also Published As

Publication number Publication date
CN107070848A (zh) 2017-08-18
US20170103227A1 (en) 2017-04-13
US9830470B2 (en) 2017-11-28
EP3154235B1 (en) 2019-11-13
EP3154235A1 (en) 2017-04-12

Similar Documents

Publication Publication Date Title
CN107070848B (zh) 为分析性web应用加密数据
US20220166764A1 (en) Authenticating computing system requests with an unknown destination across tenants of a multi-tenant system
US11997204B2 (en) Authenticating computing system requests across tenants of a multi-tenant database system
US11184149B2 (en) Computing range queries over encrypted data
US11347886B1 (en) Secure multi-party encrypted identifier data sharing
US11928115B2 (en) Query processing with restrictions in a database clean room
US11816239B2 (en) Privilege based access checks for query results
US11431481B2 (en) System for securing memory dumps
US20230055992A1 (en) Protection of data of database clients from persistent adversaries
Liu Securing outsourced databases in the cloud
US20220374540A1 (en) Field level encryption searchable database system
US20230401334A1 (en) Data clean rooms using defined access with homomorphic encryption
WO2022015359A1 (en) Securing data using key agreement
US11934553B2 (en) Secure encryption enabled data clean room
US20210320791A1 (en) Systems and methods for adaptive recursive descent data redundancy
Fuhry et al. Encrypting analytical web applications
Malhotra et al. Cloud Database Management System security challenges and solutions: an analysis
JP6965885B2 (ja) 情報処理装置、情報処理方法、及び、プログラム
US12001581B2 (en) Query processing in a secure data clean room
Papatheocharous et al. PaaSword: A Data Privacy and Context-aware Security Framework for Developing Secure Cloud Applications
Squicciarini et al. Policy driven node selection in MapReduce
Tera et al. Computational Analysis of Encrypted Database to Provide Confidentiality

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant