Database encryption
AssigneeServiceNow, Inc.
InventorsTimothy Yim, Herman Knief, James David Wigdahl
Life of this patent
Estimating the term…
Abstract
The present approaches generally relate to the encryption of data within a database in such a way that the encrypted data may still be easily accessed and utilized by an application. The present approach provides the ability to encrypt and decrypt data at an application layer though the data remains in an encrypted state at the database layer and when in transit.
Claims18
A database encryption framework implemented across a plurality of computing devices, comprising:
- a database server configured to store and manage a database layer comprising at least one database, the database comprising:
- one or more content tables that store application data in an encrypted state;
- a first configuration table that stores metadata describing attributes of the application data, wherein the metadata comprises searchable tags, field descriptors, or both;
- a second configuration table that stores a schema mapping of the application data in the database;
- and
- a plugin configured to:
- receive a function call from an application associated with an application layer to perform computational analysis to the one or more content tables;
- and
- convey the function call to a secure multi-party computation (SMPC) layer for performing the computational analysis;
- an application server configured to store and manage the application layer, comprising:
- the application configured to:
- maintain the metadata and schema mapping in the first and second configuration tables stored in the database;
- reference the metadata and schema mapping stored on the database to selectively access encrypted data stored in the database;
- and
- access the application data stored in the database, wherein the application can selectively access application data in the database based on the metadata and schema mapping in the first and second configuration tables stored in the database;
- and
- an application programing interface (API) connector comprising encryption and decryption functionality that encrypts and decrypts application data transmitted to and from the database, wherein application data transmitted between the API connecter and the database is in the encrypted state and application data transmitted between the API connecter and the application is in a decrypted state;
- and
- the SMPC layer configured to communicate with the database and receive the function call via the plugin to perform computational analysis on the one or more content tables to allow requested data to be selected and transmitted to the application in the encrypted state, based on the metadata and schema mapping in the first and second configuration tables stored in the database and without directly communicating with the application server.
A database encryption framework implemented across a plurality of computing devices, comprising:
- a database server configured to store and manage a database layer comprising at least one database, the database comprising:
- one or more content tables that store application data in an encrypted state;
- a first configuration table that stores metadata describing attributes of the application data, wherein the metadata comprises searchable tags, field descriptors, or both;
- a second configuration table that stores schema mapping of the application data in the database;
- and
- a plugin configured to:
- receive a function call from an application associated with an application layer to perform computational analysis to the one or more content tables;
- and
- convey the function call to a secure multi-party computation (SMPC) layer for performing the computational analysis;
- an application server configured to store and manage the application layer, comprising:
- an application programing interface (API) connector;
- and
- the application configured to:
- maintain the metadata and schema mapping in the first and second configuration tables stored in the database via the API connector;
- reference the metadata and schema mapping stored on the database to selectively access encrypted data stored in the database;
- and
- access the application data stored in the database via the API connector, wherein the application can selectively access application data in the database based on the metadata and schema mapping in the first and second configuration tables stored in the database;
- wherein the application comprises an encryption system configured to communicate with the API connector, wherein the encryption system is configured to encrypt and decrypt application data transmitted to and from the database, wherein application data transmitted between the application and the database is in the encrypted state;
- and
- the SMPC layer configured to communicate with the database and receive the function call via the plugin to perform computational analysis on the one or more content tables to allow requested data to be selected and transmitted to the application in the encrypted state, based on the metadata and schema mapping in the first and second configuration tables stored in the database and without directly communicating with the application server.
A method for managing encrypted communication, comprising:
- storing application data in an encrypted state in one or more content tables of a database, wherein the database comprises a plugin configured to receive one or more function calls from an application associated with an application server to perform computational analysis on the one or more content tables and convey the one or more function calls to a secure multi-party computation (SMPC) layer for performing the computational analysis;
- receiving inputs to the application corresponding to instructions for selectively accessing the encrypted application data stored in the database based on referencing metadata and schema mapping stored in the database by the application, wherein the metadata and the schema mapping are maintained by the application, wherein the metadata comprises searchable tags, field descriptors, or both;
- in response to the inputs, utilizing an application programing interface (API) connector comprising encryption and decryption functionality to encrypt and decrypt application data transmitted to and from the database such that application data transmitted between the API connecter and the database is in the encrypted state and application data transmitted between the API connecter and the application is in a decrypted state;
- and
- in response to the inputs, transmitting the one or more function calls received by the database from the application to the SMPC layer via the plugin to perform computational analysis associated with the function calls against one or more content tables of the database to allow requested data to be selected and transmitted to the application in the encrypted state, based on the metadata and schema mapping stored in the database and without directly communicating with the application server.
A method for managing encrypted communication, comprising:
- storing application data in an encrypted state in one or more content tables of a database, wherein the database comprises a plugin configured to receive one or more function calls from an application associated with an application server to perform computational analysis on the one or more content tables and convey the one or more function calls to a secure multi-party computation (SMPC) layer for performing the computational analysis;
- receiving inputs to the application corresponding to instructions for selectively accessing the encrypted application data stored in the database based on referencing metadata and schema mapping stored in the database by the application, wherein the metadata and the schema mapping are maintained by the application, wherein the metadata comprises searchable tags, field descriptors, or both;
- in response to the inputs, utilizing an encryption system provided as part of the application and configured to communicate with an API connector, wherein the encryption system is configured to encrypt and decrypt application data transmitted to and from the database and wherein application data transmitted between the application and the database is in the encrypted state, based on the metadata and schema mapping stored in the database;
- and
- in response to the inputs, transmitting the one or more function calls received by the plugin from the application to the SMPC layer via the plugin to perform computational analysis associated with the function calls against one or more content tables of the database to allow requested data to be selected and transmitted to the application in the encrypted state based on the metadata and schema mapping stored in the database and without directly communicating with the application server.
Dependencies are inferred from the claim text.