DATABASE ACCESS CONTROL SERVICE IN NETWORKS
20220004655 · 2022-01-06
Assignee
Inventors
Cpc classification
H04L63/0471
ELECTRICITY
H04L9/0861
ELECTRICITY
H04L63/0435
ELECTRICITY
G06F21/6218
PHYSICS
H04L63/062
ELECTRICITY
H04L63/0892
ELECTRICITY
H04L9/0894
ELECTRICITY
G06F21/6254
PHYSICS
International classification
G06F21/62
PHYSICS
G06F16/28
PHYSICS
Abstract
A system supporting a networked database service includes a controller configured to receive one or more data request and authenticate the one or more data request. A gateway (GW) in communication with the controller, is configured to receive at least one of the one or more data request from the controller, perform data classification on data received in the request, and generate a cryptographic key based on the data classification, a hardware-protected key of the GW, and a second (encryption) key. The cryptographic key is for accessing a database. The controller and the GW are operated by different parties.
Claims
1. A system for providing a networked database service, the system comprising: a controller configured to: receive one or more data request; and authenticate the one or more data request; and a gateway (GW) in communication with the controller, the GW configured to: receive a response corresponding to at least one of the one or more data request from the controller; receive data from a data provider; and perform data classification on the data according to the response to obtain a classification result; and generate a cryptographic key for accessing a database, the cryptographic key based on the classification result, a hardware-protected key in the GW, and a key from the data provider; wherein the controller and the database are operated by different parties.
2. The system of claim 1, wherein the GW is an ingress GW, the one or more data request includes a data upload request, and the ingress GW is further configured to send the data upload request to the controller, encrypt the data based on the cryptographic key, and send the encrypted data to the database for storage.
3. The system of claim 2, wherein the one or more request includes a data access request from a data requester, and the controller is further configured to perform authentication and authorization on the data access request, and send a data indication to an egress GW, wherein the system further comprises the egress GW configured to: perform data classification on the received data indication to obtain a second classification result; receive data from the database; and generate a decryption key based on the second classification result, a hardware-protected key of the egress GW, and the key from the data provider; and decrypt the data based on the decryption key, and provide the decrypted data to the data requester.
4. The system of claim 2 wherein the data received by the ingress GW is encrypted data from the data provider.
5. The system of claim 4 wherein the ingress GW is further configured to decrypt the encrypted data from the data provider based on the key from the data provider to obtain decrypted data, wherein the data encrypted by the ingress GW is the decrypted data.
6. The system of claim 3 wherein the egress GW is configured to decrypt the data by perform a decryption of the data based on the decryption key and the key from the data provider.
7. The system of claim 2 wherein the system further comprises a data distribution center configured to: receive the encrypted data from the ingress GW, and select the database to store the encrypted data, and store an address of the database into a log server, and the ingress GW is configured to send the encrypted data to the database for storage by sending the encrypted data via the data distribution center to the database for storage.
8. The system of claim 1 wherein the controller is further configured to authenticate the data provider via an authentication center.
9. The system of claim 3 wherein the controller is configured to perform the authorization on the data access request by confirming with the data provider that the data access request is authorized.
10. An ingress gateway (GW) apparatus comprising: a processor; at least one network interface; non-transitory machine readable memory storing machine readable instructions which when executed by the processor, configures the ingress GW to: receive data upload request from a data provider, the data upload request including data; send the data upload request to a controller; receive a response corresponding to a data request from a controller; perform data classification on the data according to the response to obtain a classification result; generate a cryptographic key, the cryptographic key based on the classification result, a hardware-protected key in the GW, and a key from the data provider; encrypt the data using the cryptographic key; and send the encrypted data to the database for storage; wherein the database and the GW are operated by different parties.
11. The ingress GW apparatus of claim 10 wherein the data received by the ingress GW is encrypted data from the data provider.
12. The ingress GW apparatus of claim 11 wherein the ingress GW is further configured to decrypt the encrypted data from the data provider based on the key from the data provider to obtain decrypted data, wherein the data encrypted by the ingress GW is the decrypted data.
13. The ingress GW apparatus of claim 10 wherein the ingress GW is configured to send the encrypted data to the database for storage by sending the encrypted data via a data distribution center to the database for storage.
14. The ingress GW apparatus of claim 10 wherein the response is an authentication of the data provider.
16. The ingress GW apparatus of claim 10 wherein the ingress GW and the controller are operated by the same party, which differs from the party operating the database.
17. An egress gateway (GW) apparatus comprising: a processor; at least one network interface; non-transitory machine readable memory storing machine readable instructions which when executed by the processor, configures the egress GW to: receive a data access request from a data requester; send the data access request to a controller for authentication and authorization; receive a data indication from the controller; perform data classification on the received data indication to obtain a second classification result; receive data from the database associated with the data access request; and generate a decryption key based on the second classification result, a hardware-protected key of the egress GW, and the key from a data provider; and decrypt the data based on the decryption key, and provide the decrypted data to the data requester; wherein the database and the GW are operated by different parties.
18. The egress GW apparatus of claim 17 wherein the egress GW is configured to decrypt the data by perform a decryption of the data based on the decryption key and the key from the data provider.
19. The egress GW apparatus of claim 17 wherein the egress GW and the controller are operated by the same party, which differs from the party operating the database.
20. The system of claim 3 wherein the ingress GW, the egress GW and the controller are operated by the same party, which differs from the party operating the database.
Description
BRIEF DESCRIPTION OF THE FIGURES
[0025] Further features and advantages of the present invention will become apparent from the following detailed description, taken in combination with the appended drawings, in which:
[0026]
[0027]
[0028]
[0029]
[0030]
[0031]
[0032]
[0033]
[0034]
[0035]
[0036]
[0037]
[0038]
[0039]
[0040]
[0041]
[0042]
[0043]
[0044] It will be noted that throughout the appended drawings, like features are identified by like reference numerals.
DETAILED DESCRIPTION
[0045] Embodiments of the invention provide methods, apparatus, and systems to provide a DBaaS that protects and enhances the privacy of data providers and includes authentication and access controls for accessing data stored in one or more database or other storage. Embodiments provide “privacy database access control” (PDAC) and enable the offering of PDAC as a service (PDACaaS) to data providers, data requestors, database providers, and the DBaaS service providers. Embodiments may support a number of levels of data privacy or security, with selectable or customizable protection levels. Multiple PDAC service architectures, multiple cryptographic (encryption and decryption) schemes and multiple options of data privacy processes are also supported. Embodiments decouple the responsibilities of data storage by database providers from data access controls to avoid having a single provider of both data storage and access controls. This decoupling provides a more secure system that is transparent to data providers and data requestors to enable a more secure and trusted data storage environment.
[0046]
[0047] The data provider 102, or provider for short, is a client of the PDAC service. The data provider 102 may be a person who owns data which is proprietary to themselves or which the data provider 102 has the right to provide and share. A data provider 102 may be the owner of one or more computing devices that create or store private data. In embodiments, the computing device may be a mobile device such as a cellular phone. A data provider 102 may also be an organization that owns data with is private to themselves. A data provider 102 uses the PDACaaS to upload and securely store the proprietary data and utilizes the PDAC service to control and manage access and use of their data by others. Examples of a data provider 102 are a government department storing citizenship information or a medical laboratory storing patients' test results or medical history. An individual may use a PDAC service to keep their financial data, or other personal information. In these examples, there may be a need for the data provider 102 to grant access to some or all of their data to a third party. In other cases, there may exist a legal need for an authorized party to access the data. There may also exist a need for a third party to access a portion of anonymized data, for example to compile health statistics. Embodiments provide mechanisms to inform the data provider 102 should access to their data be requested or demanded.
[0048] Data is stored in a number of independent or affiliated privacy databases 112. A database service provider 106 is used in the PDAC system to provide databases 112 to store proprietary data of data providers 102. These data providers 102 should be different from a PDAC service provider 108 to ensure that the data stored within the database 112 cannot be accessed by the database service provider 106. In embodiments, the database provider 106 does not have access to data in unencrypted or decrypted form and is not aware of the contents of the data stored within. The database 112 may use a number of underlying technologies. It may be relatively simple network attached storage, a remote server, or cloud computing storage. It may also be a sophisticated relational database offering a large amount of storage, robust backup facilities, and fast access. Each database 112 may provide database information including parameters to the database service provider 106 or to the PDAC service provider 108 concerning the location, capabilities, and operational parameters of each database 112. This database information may include, but is not limited to, storage capacity of database, supported programming language, the location or address of the database, etc.
[0049] Data is obtained from database service provider 106 by one of more data requestors 104. A data requester 104 is a person or an organization that desires to access the proprietary data of the data provider 102. In embodiments, access to the data will be authorized by the data provider 102 or through legal means. Examples of data requestors 104 are authorized government entities, health care providers (such as a doctor or dentist) of the data provider 102, or parties designated by the data provider 102. The data requester 102 can access data either on-line or off-line. On-line access is where a data requester 104 can only remotely access and process data that is stored in PDAC system 100. Off-line access is when a data requester 104 may download data and process the data locally. Other methods of access may also be used as well as a mix between on-line and off-line access.
[0050] In embodiments, the data provider 102 may be represented by an agent 110. An agent of data provider 102 can perform required data processing on-behalf of data providers 102 if a mutual level of trust has been established between them or a contract exists for the agent 110 to represent the data provider 102. In general, a data provider can include either the data owner or an agent. In some embodiments only the data owner can provide authorization. In other embodiments, the data provider can provide the authorization, with the data provider being either the data owner or the agent.
[0051] As illustrated in
[0052] PDAC service architectures may utilize a number of variations including one-layer architectures, two-layer hierarchical architectures, and PDAC service confederation architectures as described below.
[0053]
[0054] The ingress GW 306 connects to data providers 102 (or their agents 110) for receiving upload data provided by the data provider 102. The ingress GW 306 may also serve to hide the identity of the data provider 102 or their agent 110 from the database provider 106, providing anonymity to the data provider 102 and enabling the uploading of data anonymously. The ingress GW 306 may also provide increased network performance between the data provider 102 and the database 112 by using techniques such as proxies and buffering as is known in the art. An ingress GW 306 may be dedicated to a single data provider 102 or group of data providers, or may serve a specific geographic area. An ingress GW 306 also connects to optional data distribution center 308 which in turn connects to one or more databases 112 provided by database service provider 106 for data storage. An ingress GW 306 includes both control function and data process functions.
[0055] The egress GW 310 connects databases 112 to data requester 104 for the forwarding of data to requester 104. The egress GW 310 may also serve to hide the identity of the data requester 106 from the database provider 106. The egress GW 310 may also provide increased network performance between the data provider 102 and the database 112 by using techniques such as proxies and buffering as is known in the art. An egress GW 310 may be dedicated to a single data provider 102 or group of data providers or may serve a specific geographic area. The egress GW 310 also connects to the log server 304 to provide more efficient data access. An egress GW 310 includes both control function and data process functions. Egress GW 310 can be extended to include sufficient computing resource to enable on-line data processing by a data requester 104 where data is not transferred to the data requester 104.
[0056] Control interfaces between elements of the PDAC system are indicated by the dashed line in
[0057] The PDAC service elements may be implemented in a number of ways including as discrete computing systems or as elements of a network slice, which includes the elements as illustrated in
[0058] In embodiments, portions of the PDACaaS architecture may be implemented as virtual network functions. In some cases where network access is provided through cellular wireless networks, entities such as ingress GW 306 and egress GW 310, that communicate with data provider 102 and data requester 106, may be implemented in a radio access network (RAN) portion of the network. This may be beneficial where the data provider 102 or data requester 106 is a cellular mobile device or user equipment (UE).
[0059]
[0060]
[0061] The different PDACaaS architectures may be used to enable different levels of security. Multi-layer architecture 400 provides a higher level of reliability and performance over the single layer architecture 300 due to redundancy of database service providers 404a and 404b, and ingress and egress GWs. Confederation architecture 500 enables more secure operations since different PDAC service providers 108a and 108b may provide customer security and service to different types of data providers 102a and 102b, and to different types of service requesters 104a and 104b.
[0062] PDAC service providers 108 provide a number of services and perform a number of actions to provide PDACaaS. The PDAC service provider 108 is responsible for deploying PDAC controller 302. Deploying PDAC controller 302 may include instantiating a network slice, a virtual machine, activating or enabling the controller, as well as deploying a required number of PDAC controllers as is appropriate for the selected PDACaaS architecture.
[0063] In turn, the PDAC controller 302 is responsible for registering and authenticating data providers 102 and controlling data uploading by the data provider 102 or their agent 110. The PDAC controller 302 is also responsible for registering and authenticating data requestors 104 and controlling access to the data by a data requester 104.
[0064] The PDAC controller 302 is responsible for deploying or instantiating any ingress GW 306 or egress GW 310 as required by the PDACaaS architecture. Ingress GW 306 are deployed to provide sufficient interfaces to data providers 102 or their agents 110, and to data distribution centers 308. Ingress GW 306 controls data uploads, including data classification and control of keys for encryption of the data.
[0065] As used herein, cryptographic keys may be referred to simply as keys, and include both encryption keys and decryption keys. Encryption keys refer to cryptographic keys used to encrypt data. Decryption keys refer to cryptographic keys used to decrypt data. An encryption key and decryption key may be part of a pair of cryptographic keys such as a public/private key pair or a symmetric keys as is known in the art.
[0066] The PDAC controller 302 is responsible for deploying or instantiating any data distribution centers 308 to control the data distribution among databases 112.
[0067] The PDAC controller 302 is responsible for deploying or instantiating any egress GW 310 to control access to data stored in databases 112 including data classification, controlling of encryption and decryption, online and offline access to the data, and interfacing with data requesters 104, and log server 304. The egress GW 310 may also be extended to interface with cloud computing resources used when data requester 104 is only enabled for online access to the data.
[0068] Each of the database service providers 106 may determine or specify whether to deploy, instantiate, and manage any log servers 304 required by their databases 112. Database service providers 106 also provide and manage databases 112 to store data and deploy database controllers to interface with the ingress GW 306, egress GW 310, or any controller of the ingress GW 306 or egress GW 310.
[0069]
[0070] In embodiments, a data provider 102 or a data requester 104 must be registered with the PDAC service provider 108 in order to utilize the PDACaaS.
[0071]
[0072]
[0073]
[0074]
[0075]
[0076]
[0077]
[0078]
[0079] In the case where the requested data is to be processed online, without transferring the data to the data requestor 104, in step 1016, the egress GW 310 may process the data online according to the data requester's 104 data process preferences. Once the egress GW 310 processes the data online, a report or summary may be sent to the data requestor 104. In the case where the requested data is to be processed offline by transferring the data to the data requestor 104, in step 1017, the egress GW 310 may send the requested data, encrypted using SK.sub.tk_re, to the data requestor 104. In some embodiments a combination of online and offline processing may be used, in which case both steps 1016 and 1017 may be used. Finally, in step 1018, the data requestor 104 may destroy data in accordance with SK.sub.tk_re with token. Data may be destroyed when the token of SK.sub.tk_re expires and SK.sub.tk_re becomes invalid at which point the data may no longer be decrypted.
[0080] Embodiments allow for the PDACaaS to be customized to support a number of different applications and clients. Embodiments include multiple PDAC service architectures, multiple methods of data encryption and decryption, and multiple options for requested data to be processed by data requesters 104.
[0081] Customization of PDAC services allows for embodiments of PDACaaS to meet the needs of a large number of clients such as data providers 102 and data requestors 104. Clients may select or define service parameters to customize the PDACaaS for their particular service requirements and the types or characteristics of the data utilized. Some example of data types or characteristics are identification (ID) documents or ID related data, personal health related data or documents, investment data of individuals or businesses, social relation documents such as contact information data, financial or accounting information of individuals or businesses.
[0082] Each provisioned PDAC service can serve multiple data providers 102 or data requesters 104. Each data provider 102 can customize a preferred data protection level to be received from the PDAC service. A set of data protection levels may be specified for particular types of data. A set of data protection levels may include parameters such as architecture, encryption scheme, or privacy. Architectures may include a hierarchical PDACaaS architecture 400, a PDACaaS confederation architecture 500, or a hybrid of different architectures. Encryption (or cryptographic) key parameters may define the keys used for encryption and decryption of data, or whether to use a one-layer or two-layer encryption scheme. Privacy parameters may select between online of offline access for some or all of the data accessed.
[0083] As an example, for highly sensitive data such as identification documents managed by a government entity, a set of data protection levels could include a two-level, hierarchical PDACaaS architecture, a two-layer encryption scheme, and be limited to online access. For less sensitive data such as personal investment records, a set of data protection levels could include a single layer architecture 300 and allow for offline access by a data requestor 104.
[0084] A data provider 102 can select its preferred PDAC service based on the capabilities of available PDAC services. Data providers 102 can request specific features and parameters as part of the data upload method 900, and, in particular as part of the upload request received in step 901. The PDAC controller 302 can also determine the parameters for a data provider 102 based on protection level requirements, types of data, etc. sent be a client in the upload request in step 901.
[0085] In the field of data management, data classification as a part of an information lifecycle management process can be used as a tool to enable or help a PDAC service provider or database provider to determine what baseline security controls are appropriate for safeguarding that data. Each data provider 102 or data requestor 104 may have their own classification and there may also be defined classifications based on the type of industry or organization, such as commercial or government. Data classifications may include security level and data characteristics or type.
[0086]
[0087]
[0088] Embodiments provide for life cycle management for encryption keys that are used in the PDAC system. In particular, public/private key pairs, database encryption keys, and temporary session keys with tokens to limit their use may be supported and managed by the PDAC system.
[0089] After registering with the PDAC system a data provider 102 or a data requester 104 requester may have their own public/private key pair or the PDAC system's public key. The ingress GW 306 or egress GW 310 may also have their own public/private key pairs or the PDAC system's public key. Similarly, the PDAC system may store the public keys of system entities (e.g. data provider 102, data requestor 104, ingress GW 306, or egress GW 310). These public/private keys are used to sign or encrypt messages or negotiate session keys. In some embodiments, a system entity may store private keys protected by secure hardware. Public/private key pairs may also be set to expire after a pre-determined amount of time or based on a criteria or event such as a hacking attempt being detected.
[0090]
[0091] Embodiments include database encryption keys to prevent database provider 106 from accessing unencrypted data stored in the PDAC system. For increased security, especially when the database service provider 106 may be a cloud computing provider, database encryption keys may be time limited to a time based on the amount of time the data is expected to be stored in the database 112 and the amount of time that the data may be accessed by a data requestor 104. For example, a cryptographic key time limit may be set to 2 years when the database may be accessed for 2 years by authorized data requestors 104 or other entities. The longer the time encryption keys are valid for, or if they do not expire, the more secure the keys should be.
[0092] In embodiments, data encryption keys may be generated by the ingress GW 306 as illustrated in
[0093]
[0094]
[0095]
[0096]
[0097] Temporary session keys may be negotiated between the egress GW 306 and the data requester 104, or between a data provider 102 and the ingress GW 306, to encrypt data. This session key may be encrypted using public keys.
[0098]
[0099] The CPU 1405 may comprise any type of electronic data processor. The memory 1415 may comprise any type of non-transitory system memory such as static random access memory (SRAM), dynamic random access memory (DRAM), synchronous DRAM (SDRAM), read-only memory (ROM), or a combination thereof. In an embodiment, the memory 1415 may include ROM for use at boot-up, and DRAM for program and data storage for use while executing programs. The bus 1410 may be one or more of any type of several bus architectures including a memory bus or memory controller, a peripheral bus, or a video bus.
[0100] The mass storage 1420 may comprise any type of non-transitory storage device configured to store data, programs, and other information and to make the data, programs, and other information accessible via the bus 1410. The mass storage 1420 may comprise, for example, one or more of a solid state drive, hard disk drive, a magnetic disk drive, or an optical disk drive.
[0101] The video adapter 1425 and the I/O interface 1440 provide optional interfaces to couple external input and output devices to the processing unit 1402. Examples of input and output devices include a display 1435 coupled to the video adapter 1425 and an I/O device 1440 such as a touch-screen coupled to the I/O interface 1430. Other devices may be coupled to the processing unit 1402, and additional or fewer interfaces may be utilized. For example, a serial interface such as Universal Serial Bus (USB) (not shown) may be used to provide an interface for an external device.
[0102] The processing unit 1402 may also include one or more network interfaces 1450, which may comprise wired links, such as an Ethernet cable, and/or wireless links to access one or more networks 1445. The network interfaces 1450 allow the processing unit 1402 to communicate with remote entities via the networks 1445. For example, the network interfaces 1450 may provide wireless communication via one or more transmitters/transmit antennas and one or more receivers/receive antennas. In an embodiment, the processing unit 1402 is coupled to a local-area network or a wide-area network for data processing and communications with remote devices, such as other processing units, the Internet, or remote storage facilities.
[0103] Through the descriptions of the preceding embodiments, the present invention may be implemented by using hardware only or by using software and a necessary universal hardware platform. Based on such understandings, the technical solution of the present invention may be embodied in the form of a software product. The software product may be stored in a non-volatile or non-transitory storage medium, which can be a compact disk read-only memory (CD-ROM), USB flash disk, or a removable hard disk. The software product includes a number of instructions that enable a computer device (personal computer, server, or network device) to execute the methods provided in the embodiments of the present invention. For example, such an execution may correspond to a simulation of the logical operations as described herein. The software product may additionally or alternatively include number of instructions that enable a computer device to execute operations for configuring or programming a digital logic apparatus in accordance with embodiments of the present invention.
[0104] Although the present invention has been described with reference to specific features and embodiments thereof, it is evident that various modifications and combinations can be made thereto without departing from the invention. The specification and drawings are, accordingly, to be regarded simply as an illustration of the invention as defined by the appended claims, and are contemplated to cover any and all modifications, variations, combinations or equivalents that fall within the scope of the present invention.