CN107181729B - 在多租户云环境中的数据加密 - Google Patents
在多租户云环境中的数据加密 Download PDFInfo
- Publication number
- CN107181729B CN107181729B CN201611262205.2A CN201611262205A CN107181729B CN 107181729 B CN107181729 B CN 107181729B CN 201611262205 A CN201611262205 A CN 201611262205A CN 107181729 B CN107181729 B CN 107181729B
- Authority
- CN
- China
- Prior art keywords
- encryption
- data
- encrypting
- data records
- user
- 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
Links
- 238000000034 method Methods 0.000 claims abstract description 56
- 230000004622 sleep time Effects 0.000 claims description 32
- 238000012545 processing Methods 0.000 claims description 9
- 238000004590 computer program Methods 0.000 abstract description 4
- 230000008569 process Effects 0.000 description 28
- 238000010586 diagram Methods 0.000 description 6
- 238000004519 manufacturing process Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003116 impacting effect Effects 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000004549 pulsed laser deposition Methods 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2107—File encryption
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本文描述了用于在多租户云环境中加密数据的系统、计算机程序产品和方法的各种实施例。在一方面,可以取回用于在多租户云环境中加密与用户相关联的数据的加密时帧。可以基于该加密时帧来识别待加密的对象类型的列表。可以确定用于加密与该对象类型的列表对应的数据的批量加密时段。进一步地,可以基于该批量加密时段顺序地选择批次;对于选择的批次:可以基于该批量加密时段来取回一个或者多个数据记录,并且可以基于至少一个节流值来成组地加密该一个或者多个数据记录。
Description
技术领域
本领域总体上涉及对数据的加密。
背景技术
在多租户云计算(例如,基于互联网的计算)中,可根据需求共享和提供资源、数据和信息。由此,云计算和存储解决方案可为多个用户提供各种存储和处理数据的能力。随着云计算随宽范围的复杂应用和多个用户而迅速扩展,当私有数据储存在易受攻击的公共服务器上时,用户信息的安全性、完整性和私密性的保障(即,数据安全)会备受关注。虽然云存储服务可实现诸如加密实时数据等安全措施,但是加密存储的历史数据可能影响系统性能。加密历史数据可需要或者消耗中央处理器(CPU),其可导致系统停机时间。
发明内容
本文描述了用于在多租户云环境中加密数据的系统、计算机程序产品和方法的各种实施例。在一方面,可以取回用于在多租户云环境中加密与用户相关联的数据的加密时间帧。可以基于该加密时间帧来识别待加密的对象类型的列表。可以确定用于加密与该对象类型的列表对应的数据的批量加密时段。进一步地,可以基于该批量加密时段顺序地选择批次。对于选择的批次:可以基于该批量加密时段来取回一个或者多个数据记录,并且可以基于至少一个节流值来成组地加密该一个或者多个数据记录。
在一些实施方式中,以上方法、装置、以及计算机程序产品可进一步包括以下特征中的一个或者多个特征。
至少一个节流值可包括群组大小和休眠时间中的至少一者。可通过以下方式来确定群组大小和休眠时间:接收用于加密与批次对应的一个或者多个数据记录的多个预定义节流值,以及确定加密是否为第一次运行。
当加密是第一次运行时,可呈献群组大小和休眠时间的多个预定义节流值中的默认节流值,以在第一次运行中加密一个或者多个数据记录。
当加密为后续运行时,可基于预定义的多个节流值和当前系统负载因子来确定群组大小和休眠时间。
当前系统负载因子可包括以下各项中的至少一项:用于加密先前群组的一个或者多个数据记录所花费的时间、在加密先前群组的一个或者多个数据记录期间的中央处理单元(CPU)负载、和存储器负载。
在考虑结合以下附图呈现的本发明实施例的以下具体说明时,各种实施例的这些及其他益处和特征将显而易见。
附图说明
通过示例的方式,而不是通过限制的方式来展示实施例,在附图中,相同的参考标记表示相似的元件。通过结合附图的以下详细说明,可以最好地理解实施例。
图1为计算环境的框图,展示了根据实施例的示例性多租户云环境。
图2为流程图,展示了根据实施例的用于在多租户云环境中加密数据的示例性过程。
图3为流程图,展示了根据实施例的用于确定节流(throttling)值的示例性过程。
图4A示出了根据实施例的对象类型的示例性元结构。
图4B示出了根据实施例的对象类型“com.object.ObjectType1”的示例性类模型。
图4C示出了根据实施例的与图4B的类模型对应的示例性关系数据库结构。
图5为框图,展示了根据实施例的示例性计算系统。
具体实施方式
本文描述了用于在多租户云环境下提供数据加密的技术的实施例。在以下描述中,阐述了许多具体细节,以便提供对于实施例的深入理解。但是,本领域的技术人员将认识到,实施例可以在没有这些特定的细节中的一个或多个细节的情况下或者使用其他的方法、部件、材料等实施。在其他实例中,未示出或者详细描述公知的结构、材料或者操作。
本说明书通篇所提及的“一个实施例”或者“本实施例”以及类似短语意味着结合实施例而描述的特定特征、结构或特性被包括在一个或者多个实施例中的至少一个实施例中。因此,在整个说明书中,在不同地方出现的这些短语不必都指相同的实施例。此外,在一个或多个实施例中,可以采用任何适当的方式来组合特定的特征、结构或特性。
在本文献中,详细描述了各种方法、过程和步骤。虽然采用某个顺序来描述特定步骤,但是这样的顺序主要是为了方便和明了。特定的步骤可能会重复不只一次,可能发生在其他步骤之前或者之后(即使按另外的顺序描述这些步骤),还可能与其他步骤同时发生。此外,还可能在执行另一步骤时执行步骤。如果文中未描述清楚,可特别指出这样的情况。可能省略特定步骤。
在本文献中,描述了各种计算机实现的方法、过程和步骤。应理解的是,各种动作(确定、识别、接收、存储、取回等)可由硬件设备(例如,计算系统)执行,即使该动作由用户授权、发起或者触发,或者即使硬件设备由计算机程序、软件、固件等控制。还应进一步理解的是,因为硬件设备可操作数据,即使数据可能代表了概念或者现实世界中的对象,因此可省略这样的显式地标注为“数据”。
图1为计算环境的框图,展示了根据实施例的示例性多租户云环境。多租户云环境可通过支持在三层服务器架构上运行的不同云应用来提供共享的存储平台和服务。例如,这三层可为网络(web)层110、应用层120和存储层130。网络层110可包括一个或者多个网络服务器(例如,140)。网络服务器140可分组为若干网络服务器群(farm),其可服务于不同的云应用。用户或者客户端或者租户可为在网络浏览器上运行的网络客户端。例如,用户可使用超文本传输协议安全(HTTPS)在互联网上访问云应用。此外,云计算可支持多个用户共享资源的多租户环境。例如,多个用户可共享相同版本的云应用,相同的硬件资源,相同的应用服务器实例以及相同的存储设备。进一步地,术语“用户”、“顾客”、“客户端”和“租户”可在本文献通篇交换使用。同样,术语“数据”和“数据记录”可在本文献通篇交换使用。
应用层120可包括运行相同云应用构造的应用集群。此外,节点(例如,在社区A至社区D内的用户界面(UI)节点和任务节点)可具有不同的角色,根据角色,节点可具有不同的功能并可执行不同的云服务。此外,每个用户或者租户可居住在同一社区。UI节点可处理网络请求。任务节点可用于执行任务。
存储层130可包括数据库(例如,150),这些数据库可包括例如事务型数据库集群,分析数据库集群,和非结构化数据存储。事务型数据库服务器可存储被云应用持久化的事务型和其他操作数据。在事务型数据库中,可将不同用户的数据记录存储在表内。用户标识符列可用于将行分配给用户。例如,每个云应用可具有对应的数据库。在分析数据库集群中,已经订阅花费分析解决方案的用户可具有专用分析大纲(schema)。在非结构化数据存储中,非结构化数据(诸如,但不限于文件附件、日志文件、和搜索索引)可存储在文件存储系统上。
在一个示例中,使用面向对象的编程(OOP)语言表示的数据可以被考虑用于描述用于在多租户云环境中加密数据记录的方法。但是,可以对支持其他编程语言的数据实施所描述的加密过程。OOP语言可为基于“对象”概念的编程范式,对象为包括采用字段形式的可称为属性的数据的数据结构;和采用程序形式的可称为方法的代码。换言之,与每个用户相关联的数据可分离或者分组为不同的对象类型。此外,对象类型可包括存储实际数据记录的一个或者多个表。
在一个示例性实施例中,当用户选择参与加密时,与用户相关联的实时数据记录可在存储于存储层130前被加密。例如,关于存在于数据库中的数据记录(例如,历史数据),可批量地取回数据记录(例如,对应于历史数据),以便基于不同的节流值(throttlingvalue)来进行加密。节流值可为但不限于一次加密运行中待加密的数据记录的数目和描绘在每次加密运行后暂停的值(例如,休眠时间)。因此,通过成组地加密数据记录并且基于系统状态(例如,中央处理器(CPU)负载)确定两次加密运行之间的休眠时间,不会影响多租户云系统的实时性能。此外,所描述的过程可确保用户能够在后台中并行发生历史数据加密时实时使用数据。并且,因为该过程不会影响当前生产负载从而也不会影响系统的性能,所以该过程不需要为了数据加密或再加密而使数据库离线。
图2为流程图,展示了根据实施例的用于在多租户云环境中加密数据的示例性过程200。过程200可由网络服务器140执行。在210处,可以从数据库150取回用于在多租户云环境中加密与用户相关联的数据的加密时间帧。加密时间帧可定义可以加密与用户相关联的数据的时间段(例如,日期)。
例如,加密时间帧的信息可存储在表1所示的表“用户表”中。
用户标识符 | 选择参与加密的状态 | 选择参与的日期 | 数据加密开始日期 |
用户A | 假 | 空(Null) | 空 |
用户X | 真 | 2015年11月26日 | 2010年11月27日 |
表1
表1可包括细节,比如“用户标识符”,其可用例如名称来标识用户或者顾客,并可被称为主关键字。表1的下一列可指示“选择参与加密的状态”。例如,当用户未选择参与对用户数据的加密时,“选择参与加密的状态”列可指示“假”(例如,表1内的用户A)。同样地,当用户选择参与对用户数据的加密时,“选择参与加密的状态”列可包括“真”(例如,表1内的用户X)。此外“选择参与日期”可包括用户已选择加密的日期。在示例中,用户X的选择参与日期为2015年11月26日,可称为“控制日期”。表1内的另一列“数据加密开始日期”可指示用户的数据开始加密的日期(例如,与用户X对应的2010年11月27日),可称为“H日期”。因此,可通过从用户获取与用户要求对其数据(例如,历史数据)进行加密的时间范围相关的输入来发起数据加密过程。例如,从表1中可用的信息看出,从2010年11月27日开始与用户X相关的数据可被加密。
在220处,可基于加密时间帧识别待加密的与用户相关联的对象类型的列表(例如,对于面向对象的编程(OOP)语言)。在一个示例性实施例中,用户可与多个对象类型相关联。进行检查以便基于加密时间帧识别待加密的对象类型。例如,列出了不从2010年11月27日(例如,数据加密开始日期)开始加密的与用户相关联的对象类型的列表。此外,例如,对象类型的列表可以存储在如表2所示的表“对象类型状态表”中。
用户标识符 | 对象类型标识符 | 数据加密开始日期 |
用户X | com.object.objecttype1 | 2015年11月26日 |
表2
在230处,可确定用于加密与对象类型对应的数据的批量加密时段。在一个示例性实施例中,批量加密时段可限定批次(其中数据要被加密)的数目。批量加密时段可小于加密时间帧。可基于比如但不限于待加密数据的量和待加密数据的时间段的因素来确定批次的数目。例如,批量加密时段可为“七天”。此外,可取回对应于每个“七天”的数据,以便进行加密。由此,可以小批地进行对数据(例如,历史数据)的加密,以便保持系统的性能(例如,不使系统负载过载)。
在240处,可基于批量加密时段顺序地选择批次。例如,当批量加密时段为“七天”时,可执行数据加密的有效日期可为从“控制日期”至“控制日期-7”。在示例中,第一批次可为从2015年11月26日至2015年11月19日。
在250处,对于选择的批次,可基于批量加密时段来取回一个或者多个数据记录。例如,可基于表“对象类型状态表”(例如,表3)来加密与对象类型“com.object.objecttype1”相关联的数据。在一个示例性实施例中,与对象类型“com.object.objecttype1”相关联的数据记录可存储在一个表或者多个表中。在表3中,标识了与对象类型“com.object.objecttype1”相关联的表格的列表。
用户标识符 | 对象类型标识符 | 表标识符 | 数据加密开始日期 |
用户X | com.object.objecttype1 | com.object.objecttype1 | 2015年11月26日 |
用户X | com.object.objecttype1 | com.object.Address | 2015年11月26日 |
用户X | com.object.objecttype1 | com.object.Phone | 2015年11月26日 |
表3
在一个示例性实施例中,可识别“对象类型表状态表”中与对象类型“com.object.objecttype1”相关联的具有“数据加密开始日期”(例如,2015年11月26日)的状态表列表。此外,可取回“数据加密开始日期”中提及的日期(例如,2015年11月26日)与“控制日期-7”之间的数据记录,以进行加密(例如,从表中以逆时间顺序的形式从最近的日期到最早的日期)。在一个示例性实施例中,状态表“对象类型表”和“对象类型表状态表”确保对已加密的数据量和待加密的数据量的跟踪。
在260处,基于一个或者多个节流值来成组地加密一个或者多个数据记录。可根据如关于图3而描述的示例性过程300来确定这些节流值。例如,对于“对象类型表状态表”中的每个表,可从“加密至”到“控制日期-7”的日期范围内执行在260处提及的过程。在一个示例性实施例中,节流值可为但不限于群组大小(例如,在一次加密运行中待加密的数据记录的数量)和描绘不同加密运行之间的休眠时间的值(例如,每次加密运行后的暂停)。因此,系统可在高负载期间暂停较长时间来加密历史数据,而不会影响系统实时生产(例如,没有加密过程所需的任何停机时间)。
图3为流程图,展示了根据实施例的用于确定节流值的示例性过程300。过程300可由网络服务器140执行。在310处,可接收用于确定加密与批次对应的数据记录的休眠时间和群组大小的多个预定义节流值。例如,批次可包括与批量加密时段(例如,7天)相关联的数据记录。此外,为了加密7天的数据记录,将对应于7天的数据记录的数目分为不同的组,然后进行加密。在一个示例性实施例中,预定义节流值可定义群组大小和休眠时间或者两次数据加密运行之间(即,加密两组数据记录之间)的暂停。例如,表4描绘了用于群组大小的预定义节流值。例如,表5描绘了用于休眠时间的预定义节流值。
群组大小 | 节流值 |
最小群组大小 | 50 |
默认群组大小 | 250 |
最大群组大小 | 1000 |
表4
休眠时间 | 节流值 |
最小休眠时间 | 5秒 |
默认休眠时间 | 10秒 |
最大休眠时间 | 60秒 |
表5
在320处,进行检查,以便确定加密是否为第一次加密(例如,与第一组对应的数据记录的第一次运行或者加密)。在330处,如果加密第一次(例如,第一组)发生,呈献群组大小和休眠时间的默认节流值,以便进行加密。例如,群组大小可为250,休眠时间可为10秒。因此,在第一次运行中加密250个数据记录,在完成对250个数据记录的加密后,加密过程可暂停10秒。表6示出了一种用于识别第一次数据加密的节流值的示例性代码。
表6
在340处,当加密下一次发生或者后续运行时,可基于预定义的多个节流值和当前系统负载因子来确定群组大小和休眠时间。当前系统负载因子可为但不限于加密先前群组的数据记录所花费的时间,在加密先前群组的数据记录期间的中央处理单元(CPU)负载,和存储器负载。
表7示出了一种用于确定后续加密运行的节流值的示例性代码。
表7
在350处,基于在330或者340处确定的休眠时间和群组大小来加密数据记录。因此,对于每次加密运行,可确定批次大小和暂停时间。对于第一次运行,可考虑默认值,并且对于后续运行,可基于上述示例来确定节流值。例如,对于第一次运行,加密250(例如,默认群组大小)个数据记录,并且第一次运行和后续运行之间的暂停时间可为10秒(例如,默认暂停时间)。同样地,对于后续运行,根据表7中所描绘的系统负载(例如,“systemCpuLoad”)的状态,节流值可为最小值或者最大值。例如,当CPU负载为80%时,休眠时间可为60秒,并且当CPU负载为60%时,休眠时间可为5秒。
在360处,进行检查,以便确定是否加密了该批次内的数据记录。当该批次内有一个或者多个待加密数据记录时,处理可返回至340。
在370处,当加密了该批次内的数据记录时,加密与下一批次对应的数据记录。
在一个示例性实施例中,在成功加密对应于每组的数据后,可在状态表“对象类型状态表”(例如,表8)和“对象类型表状态表”(例如,表9)中更新“数据加密开始日期”。在以下示例中,表8和表9分别为表2和表3的更新版本。由此,状态表(例如,表8和表9)可访问关于数据加密的信息(例如,数据记录开始加密的日期和加密剩余数据记录的日期),状态表可协助追踪数据加密。表10描绘了用于更新状态表的示例性代码。
用户标识符 | 对象类型标识符 | 数据加密开始日期 |
用户X | com.object.objecttype1 | 2010年11月27日 |
表8
用户标识符 | 对象类型标识符 | 表标识符 | 数据加密开始日期 |
用户X | com.object.objecttype1 | com.object.objecttype1 | 2010年11月27日 |
用户X | com.object.objecttype1 | com.object.Address | 2010年11月27日 |
用户X | com.object.objecttype1 | com.object.Phone | 2010年11月27日 |
表9
表10
图2和图3中所描述的过程描绘了用户选择参与数据加密的时间。但是,可能存在其中不只一个用户可能同时选择参与在云环境中的数据加密的情景。在一个示例性实施例中,当不只一个用户选择参与在云环境中的数据加密时,可考虑对选择参与加密的并发用户的细节进行数据加密。并发用户的细节可包括,但不限于选择参与数据加密的用户的数量、表示每个用户待加密的数据的数量的权重和加密与每个用户相关联的数据的优先级。可以使用
表11中所描绘的示例来描述用于加密与多个用户相关联的数据的示例。
表11
例如,可通过加密与具有高优先级(例如,优先级1)的用户对应的数据来执行数据加密过程。优先级可由用户指定。用户B、用户C和用户X的优先级高,随后为用户A和用户Z。于是,用户Z的优先级低。在一个示例性实施例中,数据加密可基于阈值权重。阈值权重可称为依赖当前系统负载(例如,实时生产工作负载)系统可适应数据加密的最大权重(例如,100)。在示例中,“优先级1”用户总计净权重为“95”(例如,用户B“45”+用户C“15”+用户X“35”,总计达“95”,低于阈值权重)。由此,可通过执行图2中所描绘的过程来根据优先级加密与用户(例如,用户B、用户C和用户X)对应的数据。同样地,在加密与“优先级1”用户相关联的数据后,考虑加密与下一优先级用户(例如,“优先级2”用户)相关联的数据。
图4A示出了根据实施例的对象类型的示例性元结构。面向对象的编程(OOP)语言可为基于“对象”的概念的编程范式。在一个示例中,企业应用可使用面向对象的技术来建立云应用,并可在后台使用关系数据库来存储对象。关系数据库可为被组织成可向其访问数据的表集合的数据记录的汇集。在一个示例性实施例中,对象关系映射到数据库可确保将封装的对象存储在表内,并将对表的引用(例如,主关键字)存储在可用于重构对象的主表内。
图4B示出了根据实施例的对象类型“com.object.ObjectType1”的示例性类模型。在一个示例性实施例中,在编译对象类型“com.object.ObjectType1”时,结构可转换为图4B中所示出的类模型。类模型可示出系统中的静态类对象(例如,结构)及其之间的关系。在一个示例中,编译每个属性的类,诸如但不限于“对象”、“地址”和“电话”。
图4C示出了根据实施例的与图4B的类模型对应的示例性关系数据库结构。关系数据库结构可包括与对象类型“com.object.ObjectType1”对应的表,诸如但不限于,“表对象”、“表地址”和“表电话”。在一个示例性实施例中,如图2和图3所述的,加密与每个表(例如,“表对象”、“表地址”和“表电话”)对应的数据记录。在加密这些表中的每个表后,可将对象类型“com.object.ObjectType1”视为已加密,并且相应地更新状态表“对象类型状态表(object type status table)”和“对象类型表状态表(object type table statustab)”。此外,即使企业应用可以在对象级别上进行工作,但是对表而不是对象工作的方法通过一次对数据表中的批量行进行工作而导致加密过程的高效。
因为该过程不会影响数据库的性能,所以本文描述的实施例可防止使数据库离线来对大量的用户数据(例如,历史数据)进行加密或再加密。此外,当用户共享资源时,所描述的过程可调节自己,以便在系统中察觉其他实时以及大量加密活动。该过程可不需要附加硬件或者镜像服务器来仅用于复制目的(例如,不需要将系统加密负载卸载到其他系统)。系统自行调节并适应当前工作负载。因此,可以最优的方式使用系统资源,并且系统可不减慢加密活动以低速率工作或者在非高峰时间内工作。可不需要人工干预,并且系统不断地使自己适应变化的资源利用。此外,对于不同大小和特点的数据集,可不需要对所描述的过程进行分级和测试。该过程可缩放并使自己适应不同的环境和不同大小的系统,不论其大还是小。此外,加密过程可确保系统性能不会使未选择参与数据加密的其他用户的实时体验劣化,以及甚至不会使选择参与数据加密的用户的实时体验劣低。因此,实施例提供一种通过不将工作负载划分为生产工作负载和非生产工作负载来进行加密的可扩展和可升级的方法。
一些实施例可包括写作一个或者多个软件部件的上述方法。客户端、服务器、分布式计算机系统或者对等计算机系统可使用这些部件及与其相关联的功能。这些部件可写入与一个或者多个编程语言对应的计算机语言中,诸如函数语言、说明性语言、程序语言、面向对象的语言、低级语言等。这些部件可经由各种应用编程接口链接至其他部件,然后编译到服务器或者客户端的一个完整应用中。可替代地,可在服务器和客户端应用中实施部件。此外,这些部件可经由各种分布式编程协议链接在一起。一些示例性实施例可包括用于跨分布式编程环境实施这些部件中的一个或者多个部件的远程程序调用。例如,逻辑电平可驻留在第一计算机系统上,第一计算机系统被定位成远离包含接口电平(例如,图形用户界面)的第二计算机系统。可在伺服器-终端、对等或者其他某个配置中配置这些第一和第二计算机系统。客户端的复杂性可从移动设备和手持式设备到瘦客户端和胖客户端或者甚至其他服务器变化。
以上所展示的软件部件作为指令而有形地存储在计算机可读存储介质上。术语“计算机可读存储介质”包括存储一组或者多组指令的单个介质或者个介质。术语“计算机可读存储介质”包括物理物品,该物理物品能够承受一组物理改变,以便物理地存储、编码、或者以其他方式承载一组由计算机系统执行的使计算机系统执行本文中所描述、表示或展示的方法或过程步骤的指令。计算机可读存储介质可为非瞬态计算机可读存储介质。非瞬态计算机可读存储媒体的示例包括,但不限于:诸如硬盘、软盘,和磁带等磁性介质;诸如CD-ROM,DVD和全息指示设备等光学介质;磁光介质;和被专门配置成用于进行存储和执行的诸如专用集成电路(“ASIC”),可编程逻辑设备(“PLD”)和ROM和RAM设备等硬件设备。计算机可读指令的示例包括机器代码(如由编译器产生),和文件(包含由计算机使用解释器来执行的高级代码)。例如,可使用Java、C++或者其他面向对象的编程语言和开发工具来执行实施例。可代替或组合机器可读软件指令而在硬接线电路中实施另一个实施例。
图5为根据实施例的示例性计算机系统500的框图。计算机系统500包括处理器505,该处理器执行存储在计算机可读存储介质555上的软件指令或者代码,从而执行上述方法。处理器505可包括多个核。计算机系统500包括媒体阅读器540,该媒体阅读器从计算机可读存储介质555中读取指令并将指令存储在存储设备510中或者随机存存储器(RAM)515中。存储设备510提供用于保存静态数据的大空间,在该空间中,可存储至少一些指令以便以后执行。根据一些实施例,诸如一些存储器内计算系统实施例,RAM 515可具有足够的存储能力来将需要处理的数据中的大部分数据存储在RAM 515中而不是在存储设备510中。在一些实施例中,待处理的数据可存储在RAM 515中。可进一步编译存储的指令,以便生成指令的其他表示,并动态地存储在RAM 515中。处理器505从RAM 515中读取指令并按指示执行动作。根据实施例,计算机系统500进一步包括输出设备525(例如,显示器),该输出设备用于向用户提供执行结果中的至少一些执行结果作为输出,包括但不限于,视觉信息,以及输入设备530,该输入设备用于向用户或者其他另一个设备提供用于输入数据的装置和/或以其他方式与计算机系统500交互。可使用一个或者多个附加外围设备来将这些输出设备525和输入设备530中的一者或多者连接起来,以便进一步扩展计算机系统500的能力。可提供网络通讯器535来将计算机系统500连接至网络550并且转而连接至已连接至网络550的其他设备,例如,包括其他客户端、服务器、数据存储设备和接口。计算机系统500的模块经由总线545互连。计算机系统500包括用于访问数据源560的数据源接口520。可经由在硬件或者软件中实施的一个或者多个抽象层访问数据源560。例如,数据源560可由网络550访问。在一些实施例中,可经由诸如语义层等抽象层访问数据源560。
数据源为信息资源。数据源包括使得能够进行数据存储和取回的数据来源。数据源可包括数据库,诸如关系数据库、事务型数据库、分层数据库、多维数据库(例如,OLAP),面向对象的数据库等。进一步地,数据源包括列表数据(例如,电子表格、分隔符文本文件),标记为标记语言的数据(例如,XML数据),事务型数据,非结构化数据(例如,文本文件、截屏),分层数据(例如,文件系统内的数据,XML数据),文件,多个报告,以及可通过所确立的协议接入的任何其他数据源,诸如由底层软件系统(例如,企业资源规划(ERP)系统)产生的开放式数据库连接性(ODBC)。数据源还可包括诸如数据流、广播数据等其中数据是非有形地存储的或者是短暂的数据源。这些数据源可包括相关联的数据基础、语义层、管理系统,安全系统等。
在以上描述中阐述了许多具体细节,以便提供对实施例的深入理解。然而,本领域的技术任员将认识到,一个或者多个实施例可以在没有这些特定的细节中的一个或多个细节的情况下或者使用其他方法、部件、技术等实施。在其他实例中,未示出或者详细描述公知的操作或者结构。
虽然本文中展示和示出的过程包括一系列步骤,但是应当认识到的是,因为除了本文中所示出和描述的以外,一些步骤可按照不同顺序发生,一些步骤与其他步骤同时进行,所以不同的实施例不限于所展示的步骤顺序。此外,不需要所有所展示的步骤来执行根据一个或者多个实施例的方法。此外,还应理解的是,这些过程可以结合本文中所展示和描述的装置和系统来实施,同样还可结合其他未展示的其他系统实施。
对实施例的以上说明和展示(包括在摘要中所描述的)并不旨在是穷举性的或者旨在将一个或者多个实施例限定于所公开的确切形式。尽管出于说明性目的而在本文中描述了实施例的特定实施例和示例,但是如本领域的技术人员将该认识到的,在实施例的范围内的各种等效修改是可能的。可根据以上详细描述来对实施例做出这些修改。相反,一个或多个实施例的范围由以下权利要求书来确定,以下权利要求书应根据所确立的权利要求解释的原则来理解。
Claims (14)
1.一种存储指令的非瞬态计算机可读存储介质,所述指令当由计算机执行时使所述计算机执行以下操作,包括:
取回用于在多租户云环境中加密与用户相关联的数据的加密时间帧;
基于所述加密时间帧识别待加密的与所述用户相关联的对象类型的列表;
确定用于加密与所述对象类型的列表对应的数据的批量加密时段;
基于所述批量加密时段顺序地选择批次;以及
对于选择的批次:
基于所述批量加密时段来取回一个或者多个数据记录;以及
基于至少一个节流值来成组地加密所述一个或者多个数据记录,
其中,所述至少一个节流值包括群组大小和休眠时间中的至少一者,并且
其中,通过以下操作来确定所述群组大小和所述休眠时间:
接收用于加密与所述批次对应的所述一个或者多个数据记录的多个预定义节流值;
确定加密是否为第一次运行;以及
呈献所述群组大小和所述休眠时间的所述多个预定义节流值中的默认节流值,以在所述第一次运行中加密所述一个或者多个数据记录。
2.如权利要求1所述的非瞬态计算机可读介质,其中,当所述加密为后续运行时,基于所述预定义的多个节流值和当前系统负载因子来确定所述群组大小和所述休眠时间。
3.如权利要求2所述的非瞬态计算机可读介质,其中,所述当前系统负载因子包括以下各项中的至少一项:用于加密先前群组的所述一个或者多个数据记录所花费的时间、在加密所述先前群组的所述一个或者多个数据记录期间的中央处理单元(CPU)负载、和存储器负载。
4.如权利要求1所述的非瞬态计算机可读介质,所述操作进一步包括:使所述计算机在加密所述批次的所述一个或者多个数据记录后更新状态表。
5.如权利要求1所述的非瞬态计算机可读介质,所述操作进一步包括:基于选择参与数据加密的用户的数量、待加密的数据量和加密所述数据的优先级来使所述计算机加密与选择参与数据加密的多个用户对应的数据。
6.一种用于提供数据加密的计算机实现的方法,包括:
取回用于在多租户云环境中加密与用户相关联的数据的加密时间帧;
基于所述加密时间帧识别待加密的与所述用户相关联的对象类型的列表;
确定用于加密与所述对象类型的列表对应的数据的批量加密时段;
然后基于所述批量加密时段顺序地选择批次;以及
对于选择的批次:
基于所述批量加密时段取回一个或者多个数据记录;以及
基于至少一个节流值来成组地加密所述一个或者多个数据记录,
其中,所述至少一个节流值包括群组大小和休眠时间中的至少一者,并且
其中,通过以下操作来确定所述群组大小和所述休眠时间:
接收用于加密与所述批次对应的所述一个或者多个数据记录的多个预定义节流值;
确定加密是否为第一次运行;
呈献所述群组大小和所述休眠时间的所述多个预定义节流值中的默认节流值,以在所述第一次运行中加密所述一个或者多个数据记录。
7.如权利要求6所述的计算机实现的方法,其中,当所述加密为后续运行时,基于所述预定义的多个节流值和当前系统负载因子来确定所述群组大小和所述休眠时间。
8.如权利要求7所述的计算机实现的方法,其中,当前系统负载因子包括以下各项中的至少一项:用于加密先前群组的所述一个或者多个数据记录所花费的时间、在加密所述先前群组的所述一个或者多个数据记录期间的中央处理单元(CPU)负载、和存储器负载。
9.如权利要求6所述的计算机实现的方法,进一步包括在加密所述批次的所述一个或者多个数据记录后更新状态表。
10.如权利要求6所述的计算机实现的方法,其中,与所述用户相关联的所述一个或者多个数据记录被划分为不同的对象类型,所述对象类型包括用于存储所述一个或者多个数据记录的一个或者多个表。
11.一种用于提供数据加密的计算系统,包括:
至少一个处理器;和
与所述至少一个处理器通信的一个或者多个存储器设备,其中,所述一个或者多个存储器设备存储用于进行以下操作的指令:
取回用于在多租户云环境中加密与用户相关联的数据的加密时间帧;
基于所述加密时间帧识别待加密的与所述用户相关联的对象类型的列表;
确定用于加密与所述对象类型的列表对应的数据的批量加密时段;
基于所述批量加密时段顺序地选择批次;以及
对于选择的批次:
基于所述批量加密时段来取回一个或者多个数据记录;以及
基于至少一个节流值来成组地加密所述一个或多个数据记录,
其中,所述至少一个节流值包括群组大小和休眠时间的至少一者,并且
其中,通过以下操作来确定所述群组大小和所述休眠时间:
接收用于加密与所述批次对应的所述一个或者多个数据记录的多个预定义节流值;
确定加密是否为第一次运行;
呈献所述群组大小和所述休眠时间的所述多个预定义节流值中的默认节流值,以在所述第一次运行中加密所述一个或者多个数据记录。
12.如权利要求11所述的计算系统,其中,当所述加密为后续运行时,基于所述预定义的多个节流值和当前系统负载因子来确定所述群组大小和所述休眠时间。
13.如权利要求12所述的计算系统,其中,所述当前系统负载因子包括以下各项中的至少一项:用于加密先前群组的所述一个或者多个数据记录所花费的时间、在加密所述先前群组的所述一个或者多个数据记录期间的中央处理单元(CPU)负载、和存储器负载。
14.如权利要求11所述的计算系统,进一步包括在加密所述批次的所述一个或者多个数据记录后更新状态表。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/067,164 US9892275B2 (en) | 2016-03-10 | 2016-03-10 | Data encryption in a multi-tenant cloud environment |
US15/067,164 | 2016-03-10 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107181729A CN107181729A (zh) | 2017-09-19 |
CN107181729B true CN107181729B (zh) | 2021-07-06 |
Family
ID=59786844
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611262205.2A Active CN107181729B (zh) | 2016-03-10 | 2016-12-30 | 在多租户云环境中的数据加密 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9892275B2 (zh) |
CN (1) | CN107181729B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10558502B2 (en) | 2017-08-09 | 2020-02-11 | Sap Se | Software application runtime having dynamic evaluation functions and parameters |
US10496830B2 (en) * | 2017-10-12 | 2019-12-03 | Salesforce.Com, Inc. | Mass encryption management |
US11803650B1 (en) * | 2018-07-23 | 2023-10-31 | Amazon Technologies, Inc. | Column access control |
US11392714B1 (en) | 2018-09-25 | 2022-07-19 | Amazon Technologies, Inc. | Hierarchically encrypted data management system |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
SE506619C2 (sv) * | 1995-09-27 | 1998-01-19 | Ericsson Telefon Ab L M | Metod för kryptering av information |
US5742686A (en) * | 1996-06-14 | 1998-04-21 | Finley; Phillip Scott | Device and method for dynamic encryption |
US7324648B1 (en) * | 2003-07-08 | 2008-01-29 | Copyright Clearance Center, Inc. | Method and apparatus for secure key delivery for decrypting bulk digital content files at an unsecure site |
US8006307B1 (en) * | 2003-07-09 | 2011-08-23 | Imophaze Research Co., L.L.C. | Method and apparatus for distributing secure digital content that can be indexed by third party search engines |
JP4324053B2 (ja) * | 2004-08-16 | 2009-09-02 | キヤノン株式会社 | データ通信装置、その制御方法、及びプログラム |
US8565422B2 (en) * | 2010-12-03 | 2013-10-22 | Salesforce.Com, Inc. | Method and system for enryption key versioning and key rotation in a multi-tenant environment |
CN102710668A (zh) * | 2012-06-29 | 2012-10-03 | 上海海事大学 | 一种适于云存储的数据隐私性保障方法 |
CN103780580B (zh) * | 2012-10-23 | 2017-05-10 | 中国电信股份有限公司 | 提供能力访问策略的方法、服务器和系统 |
CN103532981B (zh) * | 2013-10-31 | 2016-08-17 | 中国科学院信息工程研究所 | 一种面向多租户的身份托管鉴权云资源访问控制系统及控制方法 |
US10073985B2 (en) * | 2015-02-27 | 2018-09-11 | Samsung Electronics Co., Ltd. | Apparatus and method for trusted execution environment file protection |
US9942203B2 (en) * | 2015-03-30 | 2018-04-10 | International Business Machines Corporation | Enhanced security when sending asynchronous messages |
US9774572B2 (en) * | 2015-05-11 | 2017-09-26 | Salesforce.Com, Inc. | Obfuscation of references to network resources |
US10699020B2 (en) * | 2015-07-02 | 2020-06-30 | Oracle International Corporation | Monitoring and alert services and data encryption management |
US20170201526A1 (en) * | 2015-11-15 | 2017-07-13 | Appdome Ltd. | System and method for protecting sections inside a file |
-
2016
- 2016-03-10 US US15/067,164 patent/US9892275B2/en active Active
- 2016-12-30 CN CN201611262205.2A patent/CN107181729B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
US9892275B2 (en) | 2018-02-13 |
US20170262645A1 (en) | 2017-09-14 |
CN107181729A (zh) | 2017-09-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109272155B (zh) | 一种基于大数据的企业行为分析系统 | |
US10409782B2 (en) | Platform, system, process for distributed graph databases and computing | |
US11921750B2 (en) | Database systems and applications for assigning records to chunks of a partition in a non-relational database system with auto-balancing | |
CN109033113B (zh) | 数据仓库和数据集市的管理方法及装置 | |
US8935218B2 (en) | Multi-client generic persistence for extension nodes | |
US11768854B2 (en) | Data permissioning through data replication | |
CN107181729B (zh) | 在多租户云环境中的数据加密 | |
US20160103914A1 (en) | Offloading search processing against analytic data stores | |
US9348874B2 (en) | Dynamic recreation of multidimensional analytical data | |
US10678797B2 (en) | Ranking of shared documents and users | |
US10394805B2 (en) | Database management for mobile devices | |
US10192330B2 (en) | Rendering data visualizations in different analytical applications | |
US20190244146A1 (en) | Elastic distribution queuing of mass data for the use in director driven company assessment | |
Xia et al. | Optimizing an index with spatiotemporal patterns to support GEOSS Clearinghouse | |
US8930426B2 (en) | Distributed requests on remote data | |
US20160321232A1 (en) | Computer Implemented Systems and Methods for Data Usage Monitoring | |
US8990836B2 (en) | Integrating software solution units | |
US20140143278A1 (en) | Application programming interface layers for analytical applications | |
US10445299B2 (en) | Optimizing memory by sharing datasets between workspaces | |
US20120174195A1 (en) | Function module dispatcher | |
US11968236B2 (en) | Event-level data privacy for streaming post analytics data | |
US11928125B2 (en) | Cleaning and organizing schemaless semi-structured data for extract, transform, and load processing | |
US20170169076A1 (en) | System to perform impact analysis of objects | |
US8745092B2 (en) | Dynamically weighted semantic trees | |
Khalaf et al. | Design and Implementation of Webhouse for Healthcare Information System |
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 |