WO1999067917A1 - System and method for securely accessing a database from a remote location - Google Patents
System and method for securely accessing a database from a remote location Download PDFInfo
- Publication number
- WO1999067917A1 WO1999067917A1 PCT/US1999/014179 US9914179W WO9967917A1 WO 1999067917 A1 WO1999067917 A1 WO 1999067917A1 US 9914179 W US9914179 W US 9914179W WO 9967917 A1 WO9967917 A1 WO 9967917A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data
- server
- database
- password
- user
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 50
- 238000004891 communication Methods 0.000 claims description 22
- 230000004044 response Effects 0.000 claims description 16
- 230000008901 benefit Effects 0.000 description 12
- 230000000875 corresponding effect Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000001413 cellular effect Effects 0.000 description 2
- 230000002596 correlated effect Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
Classifications
-
- 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
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/007—Encryption, En-/decode, En-/decipher, En-/decypher, Scramble, (De-)compress
Definitions
- the present invention generally relates to data security systems and, in particular, to a system and method for preventing unauthorized access of a database that can be accessed remotely by authorized users.
- EmMS?mbifius presents certain security concerns. For example, it usually becomes easier for unauthorized users, sometimes referred to as "hackers," to access information within the database system when remote access of the database system is allowed for authorized users. In this regard, if access to the database system is only provided through devices at the premises of the database system (i.e., remote access is not allowed), then access to the premises and, hence, the database system can be effectively limited to authorized users of the database system. However, if access to the database system from remote locations is allowed, then it becomes easier for unauthorized users to gain access to the database system.
- a server at the premises of the database system is utilized to enable remote access to the database system.
- an authorized user establishes communication with the server, and the server verifies that the user is an authorized user.
- the server typically requires the user to enter a valid password before allowing the user to connect to the database system. If the user enters a valid password, then the server allows the user's computer (the client) to connect to the database system.
- the client queries the database system through, for example, Structured Query Language (SQL) queries or other types of queries in order to retrieve the desired data from databases within the database system.
- SQL Structured Query Language
- the database system typically includes security features that restrict the user's access to certain columns of information within the database system based on the user's password, which identifies the user. If the user submits an acceptable query (i.e., a query for information that is within the user's authorized data), then the database system retrieves the requested data and returns it to the client computer via the server. Remote access to at least a portion of the database system is thereby enabled.
- an acceptable query i.e., a query for information that is within the user's authorized data
- hackers typically are capable of establishing communication with the server associated with the database system Once communication with the server is established, hackers often are prevented from connecting with the database system primarily through the security measures in place at the server that verify a user as being an authorized user However, the security measures at the server are not always adequate
- a hacker might discover a valid password through a variety of hacking methods
- One such method could include the interception of data communications between the server and an authorized user to discover a valid password
- the hacker can attempt to defeat the security measures in place at the database system to gain access to other information in the database system as well
- providing remote access to database systems allows hackers, through a variety of methods, certain opportunities to access the data within the database system
- many database systems containing sensitive or important information are either restricted from remote access entirely or allow remote access with the risk that a potential hacker can break into the database system and retrieve or manipulate the data therein
- the present invention overcomes the inadequacies and deficiencies of the prior art as discussed herein
- the present invention provides a system and method for securely accessing a database from a remote location
- the present invention utilizes a client computer (client), a server computer (server), and a database system
- client establishes communication with the server from a remote location and submits a request for data to the server.
- the server translates the request for data into a query for the database system.
- the server queries the database system with the translated query, and in response, the database system retrieves the requested data and transmits the requested data to the server.
- the server encrypts the requested data and transmits the encrypted data to the client.
- the server creates a request for data and sends the request for data to a remote server.
- the remote server translates the request for data into another query and queries a database system associated with the remote server.
- the remote server then transmits the data retrieved from the database system associated with the remote server to the server.
- the server then assimilates all of the retrieved data and transmits the retrieved data in encrypted form to the client.
- the server may query a plurality of remote servers in order to retrieve all of the information requested by the client.
- the client initially transmits a password to the server in order to identify the user of the client as an authorized user.
- the server translates the password into a different password (an "alias" password) and utilizes the alias password to gain access to the database system.
- the server transmits a new encryption key to the client each time the client establishes a data session with the server. Thereafter, the client and server encrypt all information communicated therebetween in the data session with the new encryption key.
- the server accesses a column of information within the database system in order to retrieve the information requested by the client.
- the server determines which information within the column is inaccessible to the user based on predefined security information stored within the server.
- the server discards any information determined to be inaccessible for the user and transmits to the client only information determined to be accessible for the user.
- Another advantage of the present invention is that unauthorized access of a remotely accessible database system can be prevented.
- Another advantage of the present invention is that a database system can be remotely accessible without allowing unauthorized users to connect with the database system.
- Another advantage of the present invention is that information within a plurality of databases located remotely from each other can be accessed in a secured environment.
- Another advantage of the present invention is that data can be retrieved from a plurality of databases. This retrieval from a plurality of databases occurs transparently to the client.
- Another advantage of the present invention is that a client can retrieve data from a database without conforming to the protocol used by the database.
- Another advantage of the present invention is that an authorized user only gains access to certain information within the database system.
- FIG. 1 is a block diagram illustrating a client/server system in accordance with the present invention.
- Fig. 2 is a block diagram illustrating a client computer system in accordance with the principles of the present invention.
- Fig. 3 is a block diagram illustrating a server computer system in accordance with the present invention.
- Figs. 4A and 4B depict a flow chart illustrating the functionality and methodology of the client server system of Fig. 1.
- Fig. 1 depicts a client/server system 10 illustrating the principles of the present invention.
- a client 14 is configured to communicate with a server 17a via communications network 18.
- the client 14 is preferably a computer system located remotely from the server 17a, which is preferably a computer system as well.
- the terms "remotely located” or “remote location” shall refer to a location separated from the premises of a server 17a by an unsecure connection.
- An unsecure connection is any connection accessible by a hacker or unauthorized user. Examples of unsecure connections are, but are not limited to, Internet connections, Publicly Switched Telephone Network (PSTN) connections, cellular connections etc.
- PSTN Publicly Switched Telephone Network
- the communications network 18 can comprise any conventional communications network or combinations of networks such as, for example (but not limited to), the PSTN, a cellular network, etc. Furthermore, the communications network 18, along with the client 14 and server 17a, may employ any protocol or combinations of protocols suitable for communicating information between the client 14 and the server 17a.
- the server 17a is preferably associated with and connected to a database system 19a having at least one database 20a or 20b.
- the database system 19a is preferably any database system known in the art. Therefore, information stored within each database 20a and 20b can be accessed by the server 17a through known techniques.
- the database system 19a is preferably located on a premises of the server 17a.
- the client 17a preferably includes a control system 21 for controlling the operation of the client 14.
- the client control system 21 along with its associated methodology is preferably implemented in software and stored in main memory 22 of the client 14.
- the client control system 21 can be stored and transported on any computer-readable medium for use by or in connection with a computer-readable system or method.
- a computer-readable medium is an electronic, magnetic, optical, or other physical device or means that can contain or store a computer program for use by or in connection with a computer-related system or method.
- the client control system 21 may be magnetically stored and transported on a conventional portable computer diskette.
- the preferred embodiment of the client 14 of Fig. 2 comprises one or more conventional processing elements 25, such as a digital signal processor (DSP), that communicate to and drive the other elements within the client 14 via a local interface 26, which can include one or more buses.
- DSP digital signal processor
- an input device 28 for example, a keyboard or a mouse, can be used to input data from a user of the client 14, and a screen display 29 or a printer 31 can be used to output data to a user.
- a disk storage mechanism 32 can be connected to the local interface 26 to transfer data to and from a nonvolatile disk (e.g., magnetic, optical, etc.).
- the client 14 can be connected to a network interface 33 that allows the client 14 to exchange data with a network 34.
- the server 17a as does the nearly identical server
- a control system 41 associated with the server 17a preferably controls the operations of the server 17a.
- the server control system 41 along with its associated methodology is preferably implemented in software and stored in main memory 42 of the server 17a. Note that the server control system 41 can be stored and transported on any computer-readable medium for use by or in connection with a computer-readable system or method.
- the preferred embodiment of the server 17a comprises one or more conventional processing elements 45, such as a digital signal processor (DSP), that communicate to and drive the other elements within the server 17a via a local interface 46, which can include one or more buses.
- DSP digital signal processor
- an input device 48 for example, a keyboard or a mouse, can be used to input data from a user of the client 14, and a screen display 49 or a printer 51 can be used to output data to a user.
- a disk storage mechanism 52 can be connected to the local interface 46 to transfer data to and from a nonvolatile disk (e.g., magnetic, optical, etc.).
- the server 17a can be connected to a network interface 53 that allows the server 17a to exchange data with a network 54.
- the server 17a preferably maintains a password table 55 and a security data table 57 that can be accessed by the server control system 41 via local bus 46.
- the password table 55 and security data table 57 will be discussed in further detail hereinbelow.
- the client 14 is configured to establish communication with the server 17a through any suitable technique known in the art.
- the client 14 can be connected to a modem 61 which establishes communication with a modem 63 a connected to the server 17a.
- the client 14 can communicate with the server 17a via communications network 18 and modems 61 and 63 a.
- communications devices other than modems 61 and 63a including modem 63b when communication with modem 17b is established may be used to establish communication between client 14 and server 17a.
- the server 17a After establishing communication with the server 17a, the server 17a is designed to transmit a new encryption key to the client 14.
- the encryption key can be used to encrypt and decrypt data through known encryption techniques, such as DES encryption, for example.
- the new encryption key is preferably encrypted through known encryption techniques (such as RS A encryption, for example) by the server 17a before transmitting the key to the client 14.
- the client 14 is designed to have a public encryption key and a corresponding private encryption key pursuant to RSA encryption standards.
- the client 14 is configured to transmit the public encryption key to the server 17a when communication between the client 14 and server 17a are established.
- the server 17a is designed to generate the new encryption key and to encrypt the new encryption key with the public key supplied by the client 14.
- the server 17a is then designed to transmit the encrypted new encryption key to the client 14 which decrypts the new encryption key with the private key.
- both the client 14 and the server 17a are designed to encrypt and decrypt all data transmitted therebetween with the new encryption key pursuant to known encryption/decryption techniques, such as DES encryption/decryption techniques, for example.
- the server 17a identifies a user through the log name and password transmitted to the server 17a as described hereinabove. If this data is not encrypted with a different encryption key (i.e., a new encryption key unique to each data session), then the log name and password are transmitted in the same form for each data session. Therefore, hackers can more easily break the encryption scheme and/or "spoof the server 17a into allowing the hacker to gain access to the database system 19a. The hackers can "spoof the server 17a by intercepting the encrypted log name and password and transmitting a copy of the encrypted log name and password to the server 17a after establishing a data session with the server 17a.
- the new encryption key can be encrypted according to a standard algorithm by the server 17a before being communicated to the client 14.
- the client 14 is preferably aware of the standard algorithm and is configured to decrypt the data sent from the server 17a via the standard algorithm in order to determine the new encryption key.
- the server 17a can be configured to transmit a plurality of encryption keys along with an index indicating which of the keys is the new encryption key for the data session
- the client 14 can be configured to process the index via the standard algorithm in order to determine which is the new encryption key
- the index could be a code word indicating the placement of the new key within the plurality of keys (e.g., indicating that the new key will be the tenth key transmitted by the server 17a)
- the client 14 is configured to decode the coded index in order to determine the placement of the new encryption key
- the client 14 may include a predetermined table of code words in memory 22 (Fig 2) where each code word is correlated with a particular placement value Accordingly, the client 14 can be configured to access the data table and to translate the coded index into the placement value of the new encryption key
- Other algorithms may be employed for determining the new encryption key without departing from the principles of the present invention It should be noted that other types of encryption methodologies may be employed without departing from the principles of the present invention Regardless of
- the client 14 After determining the new encryption key, the client 14 is designed to use the new encryption key to encrypt and transmit a predefined password and log name to the server 17a
- the predefined password is preferably unique to the user of client 14, and the password and log name together can be used to identify the user
- the server 17a is configured to receive the log name and the password and to decrypt the log name and the password with the new encryption key Then, the server 17a is configured to translate the password into a new password (an "alias" password) that identifies the user of the client 14 to the server 17a
- the server 17a preferably maintains a password table 55 (Fig 3)
- the password table 55 preferably includes an entry for each authorized user of the system 10
- Each predefined password associated with a user is correlated with a particular alias password and with the log name of the user associated with the predefined password Therefore, through techniques known in the art, the server 17a can retrieve the alias password from the password table 55 based on the predefined password and log name supplied by
- the server 17a After receiving the password from the client 14, the server 17a is configured to identify the user of the client 14 via the password and log name received by the server 17a. If the password supplied by the client 14 is not in the password table 55 or if the log name supplied by the client 14 does not match the log name associated with the password in the password table 55, then server 17a is designed to identify the user as an unauthorized user.
- the server 17a preferably sends a message to the client indicating the nature of the problem and either terminates the data session or allows the user to reenter a new log name and/or password.
- the client 14 is configured to encrypt a request for data using the new encryption key and to transmit the encrypted request for data to the server 17a.
- the request for data can be of any form or can be in accordance with any protocol known to the server 17a.
- the request for data is a predetermined data word (i.e., a code word) known to the server 17a.
- encryption of the request for data is not necessary for implementation of the present invention. This is especially true when the request is a predetermined code word, since an unauthorized user should be unfamiliar with the code word and therefore unable to extract any useful information from the request.
- encryption of the request makes it more difficult for unauthorized users to retrieve information from the database system 19a in cases where the unauthorized user is able to spoof the server 17a or to discover a valid password. This is because the server 17a will not retrieve any information from the database system 19a unless a valid request is submitted to the server 17a, and encrypting the requests for data makes it more difficult for unauthorized users to discover valid requests for data. Therefore, encryption of the requests for data transmitted from the client 14 is not necessary but helps to ensure the overall security of the system 10.
- the server 17a is designed to receive the request for data and to decrypt the request for data using the new encryption key. Then the server 17a is designed to determine whether the information requested by the request for data is accessible to the user (i.e., authorized for viewing by the user).
- the server 17a preferably includes security information that indicates which data within the databases 20a and 20b are accessible to each user.
- the security information can be stored in a security data table 57 in which each entry of the security data table 57 corresponds to a user and indicates which information is accessible to the user. Therefore, through techniques known in the art, the server 17a is designed to retrieve the entry in the security data table 57 corresponding to the user of client 14. Then, the server 17a is configured to determine whether the information requested by the client 14 is accessible to the user of client 14.
- the server 17a determines that the information requested by the client 14 is inaccessible to the user of the client 14, then the server 17a is configured to discard the request and to send a message to the client 14 indicating that access to the requested information is denied. However, if the server 17a determines that the requested information is accessible to the user of client 14, then the server 17a is configured to query the appropriate database 20a or 20b for the requested information.
- the server 17a is preferably designed to translate the request for data into a structured query language (SQL) query or other known types of queries.
- SQL structured query language
- structured query language is a database language for querying, updating, and managing databases.
- the server 17a Since the server 17a is aware of the information requested by the client 14 via the request for data transmitted from the client 14, the server 17a is able to create an appropriate SQL query or other types of well known queries through query generating techniques known in the art. Therefore, the server 17a is designed to connect to the database system 19a and to submit an appropriate query to retrieve the information requested by the client 14. As will be discussed in further detail hereinafter, the server 17a is preferably configured to utilize the alias password associated with the user of the client 14 when accessing the databases 20a and 20b within database system 19a.
- the server 17a can be configured to determine whether the user is authorized to access the requested data after the requested data is retrieved from the database system 19a. For example, in embodiments where the request for data transmitted from the client 14 is an SQL query (or other type of query capable of retrieving data from the database system 19a), it is preferable that the server 17a intercept the data retrieved from database system 19a and analyze the retrieved data for accessibility issues. After consulting the security data table 57, the server 17a is configured to discard any data determined by the server 17a to be inaccessible to the user of client 14.
- portions of the data requested by the client 14 may be located in different databases 20a - 20d.
- each of databases 20a - 20d may have a different protocol for querying and retrieving data.
- a portion of the data requested by the client 14 may be located in database 20a, and a portion of the data requested by the client 14 may be located in database 20b, which receives queries and transmits data according to a different protocol than that of database 20a.
- database 20a may be an Oracle type database while database 20b may be a Microsoft Access type of database.
- the server 17a preferably is familiar with the protocols used by both databases 20a and 20b.
- the server 17a generates a first query (pursuant to the protocol utilized by database 20a) to database 20a in order to retrieve a portion of the data requested by the client 14, and the server 17a generates a second query (pursuant to the protocol utilized by database 20b) to database 20b in order to retrieve another portion of the data requested by the client 14. Accordingly, the server 17a is capable of retrieving the data requested by the client 14, even when the requested data is located in different types of databases.
- the server 17a is designed to create a request for data to be sent to the remote server 17b. Similar to the request for data transmitted from the client 14 to the server 17a, the request for data created by the server 17a can be of any protocol known to the remote server 17b. In the preferred embodiment, the request for data is a data word (i.e., a code word) recognizable to the remote server 17b. To ensure the security of the request, the server 17a may be designed to utilize the same security features utilized by the server 17a in dealing with client 14.
- the server 17a preferably retrieves data from the remote server 17b in the same way that client 14 retrieves data from the server 17a. Therefore, in response to the data session between the server 17a and the remote server 17b, the server 17a transmits a public encryption key to the remote server 17b.
- the remote server 17b generates a new encryption key for the data session between the server 17a and the remote server 17b and encrypts the new encryption key with the public key supplied by the server 17a.
- the remote server 17b transmits the new encryption key to the server 17a, which decrypts the new encryption key with the private key corresponding with the public key sent to the remote server 17b.
- the servers 17a and 17b encrypt and decrypt all data transmitted therebetween with the new encryption key generated by the remote server 17b.
- the server 17a then encrypts the user's password and log name with the new encryption key generated by the remote server 17b and transmits the log name and password to the remote server 17b.
- the remote server 17b decrypts the password and log name with the new encryption key generated by the remote server 17b to verify that the requests transmitted by the server 17a are associated with an authorized user.
- the remote server 17b then translates the password into an alias password.
- the server 17a is designed to encrypt the request for data created by the server 17a and to transmit the request to the remote server 17b.
- the remote server 17b is configured to decrypt the request with the new key generated by the remote server 17b and to translate the request into an appropriate query, preferably an SQL query.
- the remote server 17b is then designed to verify that the requested information is accessible to the user. If the user may retrieve the requested data, then the remote server 17b is designed to translate the request into an appropriate SQL query and to query the remote database system 19b for the data requested by the server 17a.
- the remote server 17b receives the queried information from database 20c or 20d in the remote database system 19b, the remote server 17b is configured to encrypt the information with the new encryption key sent to the server 17a and to transmit the encrypted information to the server 17a.
- the server 17a may have to request information from multiple remote servers 17b in order to access all of the information requested by the client 14. Once, the server 17a has received all of the requested information, the server 17b is designed to assimilate all of the retrieved data into a form compatible with the client 14. Then, the server 17a is designed to encrypt the assimilated data with the new encryption key previously sent to the client 14 and to transmit the assimilated data to the client 14.
- the client 14 is designed to receive the data transmitted from the server 17a and to decrypt the data using the new encryption key previously sent from the server 17a for the data session. The client 14 may then display the decrypted data to the user or process the data as may be desired.
- each message transmitted between the client 14 and server 17a is encrypted in the present invention, the encryption of each message is not necessary to implement the present invention.
- any of the messages communicated between the client 14 and the server 17a can be without encryption, although the security of each message not encrypted may be compromised.
- a user registers with the system 10 and receives a log name and a password.
- the password table 55 (Fig. 3) at each of the servers 17a and 17b is updated with the password and the log name.
- an entry is created in the password table 55 at each of the servers 17a and 17b, and the password and the log name are entered into the entry.
- an alias password is assigned to the user which is also input into the entry in the password table.
- the security data table 57 at each of the servers 17a and 17b is also updated by creating an entry for the user that indicates which data in the database systems 19a and 19b may be accessed by the user.
- the user may establish communication with one of the servers 17a or 17b, as shown by block 105 of Fig. 4A.
- the server 17a then generates and transmits a new encryption key for the current data session to the client 14.
- the client 14 receives this new encryption key and uses the new encryption key to encrypt the data communicated by the client 14 in the remainder of the data session.
- the new encryption key is encrypted by server 17a before transmitting the new encryption key to the client 14.
- the client 14 can be configured to transmit a public encryption key to the server 17a, through known encryption schemes, such as RSA encryption, for example.
- the server 17a encrypts the new encryption key with the public encryption key transmitted by the client 14.
- the client 14 decrypts the new encryption key with a private key that corresponds with the public key used by the server 17a to encrypt the new encryption key.
- both the client 14 and server 17a have knowledge of the new encryption key and can encrypt/decrypt data transmitted therebetween with the new encryption key through known encryption schemes, such as DES encryption, for example.
- the client 14 After receiving the new encryption key from the server 17a, the client 14 encrypts the user's password and log name with the new encryption key and transmits the password and log name to the server 17a, as shown by block 1 1 1 in Fig. 4A.
- the server 17a receives and decrypts the log name and the password using the new encryption known by the client 14 and the server 17a. Utilizing a new encryption key unique for each data session frustrates attempts by hackers to spoof the server 17a with passwords and/or requests for data previously used in other data sessions.
- the server 17a translates the password into an alias password by retrieving the alias password from the appropriate entry in the password data table 55, as depicted by block 114 of Fig. 4 A.
- the server 17a compares the log name transmitted by the client 14 with the log name in the password data table entry corresponding with the password. If the log names match, the user of the client 14 is determined to be an authorized user. However, if the log names do not match, then the server 17a denies the client 14 access to the database system 19a.
- the server also sends the client an error message and terminates the data session, as shown by blocks 117 and 121 of Fig. 4A.
- the server 17a can be configured to allow the client 14 to send another password and/or log name.
- the user via client 14 encrypts and sends the server 17a a request for data, as depicted by block 126 of Fig. 4A.
- the request for data is preferably a data word or words indicating which data the user of the client 14 wishes to retrieve.
- each data word is preferably a code word recognizable to the server 17a. Therefore, the client 14 preferably includes in memory 22 (Fig. 2) a list of code words that can be translated by the server 17a into a query to the database system 19a.
- the control system 21 Fig. 2) preferably displays a list of options to the user through a menu or other type of suitable interface.
- control system 21 correlates the user's selection with the appropriate code word or words, which are then encrypted and transmitted to the server 17a.
- other techniques known in the art may be employed to generate a request for data by the client 14.
- the server 17a decrypts the request for data with the new encryption key and determines whether the user of the client 14 may access the requested data by consulting the security data table 57 (Fig. 3). If the client 14 has requested data inaccessible to the user of client 14, then the server 17a sends an appropriate message to the client 14 and denies access to the inaccessible data, as shown by blocks 132 and 134 of Fig. 4A. However, if the client 14 has requested accessible information, the server 17a translates the request into an appropriate SQL query (or other type of query compatible with the database system 19a) for retrieving the requested data from the database system 19a, as shown by block 139 of Fig. 4B.
- an appropriate SQL query or other type of query compatible with the database system 19a
- the server 17a then connects to the database system 19a using the alias password retrieved from the password table 55 for the user of the client 14 (assuming that the database system 19a is a secure system requiring a password for access).
- the database system 19a through techniques known in the art, then allows the server 17a to query for data that is determined by the database system 19a to be accessible for the alias password.
- the database system 19a After receiving an SQL query (or other type of query if SQL protocol is not being used) from the server 17a and determining that the SQL query is a request for accessible data, the database system 19a retrieves the data requested by the SQL query and transmits this data to the server 17a.
- the database system 19a Since connectivity with the database system 19a is only established with the server 17a in the preferred embodiment, the database system 19a is isolated from outside sources (i.e., devices off of the premises of the server 17a). Accordingly, potential hackers are prevented from obtaining connectivity with the database system 19a, thereby frustrating attempts by the hackers to retrieve unauthorized data from the database system 19a.
- the translation of the user password into an alias password as described hereinabove provides an extra level of security.
- the unauthorized user may be possible for an unauthorized user to discover an authorized user's log name and password. Therefore, if the unauthorized user manages to obtain connectivity with the database system 19a through a server not associated with the system 10, the password used by the unauthorized user to access the database system 19a should not be valid. This is because the database system 19a only recognizes the alias passwords contained in the server 17a. Since the alias passwords are preferably not transmitted across connections off of the premises of the server 17a (i.e., across connections accessible to the public), it is difficult for an authorized user to obtain the alias passwords. Accordingly, connectivity to the database system 19a should be denied unless the server 17a supplies the database system 19a with an alias password after the server 17a determines that the user is authorized to access the database system 19a.
- database systems 19a have the capability to restrict a user's view of a table within a database 20a - 20d to a particular column or columns, if desired. Therefore, when the user is connected to the database system 19a, the user can only see and retrieve data in a column accessible to the user.
- these database systems 19a typically fail to restrict the user's access of the data table according to the row number in the data table. Therefore, if a column includes both accessible data and inaccessible data, either the entire view of the column is blocked (thereby blocking access to the accessible information) or the column is accessible (thereby allowing the user to access or see the inaccessible information in the column).
- the server 17a preferably acts as a liaison between the database system 19a and the client 14, and the server 17a only returns the requested data that is accessible to the user. Therefore, if some information in a column of a data table in the database system 19a is accessible and if some information in the column is inaccessible to the user, the server 17a retrieves only the accessible information from the database system 19a. As a result, the requested information can be returned to the client 14 by the server 17a without the user of the client 14 gaining access to the other information (e.g., the inaccessible information) in the column of the data table. Therefore, the server 17a of the present invention effectively limits the user's access to data in a data table down to the column and the row number of the data tables in the database system 19a.
- the server 17a may employ to determine which rows are accessible to the user.
- the security data table 57 may include predefined information indicating which rows within the database system 19a are accessible to a particular user. Therefore, before the server 17a issues a query to the database system 19a, the server 17a first consults the security data table 57 and determines whether the information requested by the client 14 is within rows accessible to the user of the client 14. If the server 17a determines that the information requested by the client 14 is within rows accessible to the user of the client 14, the server 17a submits a query to the database system 19a based on the request from the client 14.
- the server 17a discards any portion of the request from the client 14 that pertains to information determined to be inaccessible to the user of the client 14 before issuing a query. Therefore, only data that is accessible to the user of the client 14 is retrieved from the database system 19a in response to the request from the client 14.
- a data table in the database system 19a includes a plurality of rows and columns.
- each row in the data table can represent a store within a chain of stores owned by a particular corporation.
- all of the information within each row of the data table pertains to a particular store within a chain of stores.
- Each column in the data table could correspond to a field of information relating to the stores in the data table.
- the fields may respectively indicate the store's street address, zip code, total costs, total revenue, etc.
- the security data table 57 may include an entry for the manager. In this entry, a list of all of the zip codes within the manager's region may be included. In other words, the zip codes may be used as an identifier to indicate which rows are accessible to the manager. Therefore, when the server 17a receives a request from the client 14 for information within the database system 19a (when the manager is logged onto the client 14), the server 17a first consults the security data table 57 to determine which zip codes are accessible to the manager. Then, the server 17a restricts the query for only data that pertains to the accessible zip codes.
- the server 17a inserts a "where" statement or an "if statement to limit the data retrieved by the server 17a.
- the query can be structured to return information from a row in the data table only where or only if the zip code field for the row includes a zip code listed as accessible within the security data table 57 for the identified user. By restricting the data retrieved from the data table in this way, the user can be prevented from accessing the data within any of the rows within the data table.
- the server 17a can alternatively analyze the data retrieved from the database system 19a in order to restrict the user's access to certain rows of information.
- the server 17a can consult the security data table 57 after retrieving the data requested by the client 14 to determine whether the retrieved data is accessible to the user of client 14, and the server 17a can be designed to discard any row having a zip code not identified as accessible to the user via the security data table 57. Therefore, the client 14 only receives data associated with rows determined by the server 17a to be accessible to the user of client 14.
- Other similar methodologies for restricting the user's access to certain rows within the data tables of the database system 19a may be employed without departing from the principles of the present invention.
- the server 17a determines whether a remote server 17b has access to any of the requested data not included in the database system 19a, as depicted by block 142 of Fig. 4B. If so, the server 17a creates a request for data and submits the request for data to the appropriate remote server 17b just as the client 14 submitted its request for data to the server 17a, as shown by block 145.
- the remote server 17b may utilize some or all of the security features previously described for the server 17a. Therefore, after establishing a new encryption key for the data session between servers 17a and 17b, the server 17a transmits the user's log name and password to the remote server 17b.
- the remote server 17b verifies that the user is an authorized user and translates the password into an alias password. Then, the remote server 17b translates the request for data submitted by server 17a into an appropriate SQL query (or other type of query) for database system 19b. Using the alias password, the remote server 17b retrieves the requested data from database system 19b and transmits the requested data in encrypted form to the server 17a, as shown by blocks 147 and 149 of Fig. 4B. If the remote server 17b determines that any of the data is inaccessible to the user, the remote server 17b discards the inaccessible data before transmitting it to the server 17a.
- the server 17a After retrieving all of the requested data that is accessible to the user, the server 17a encrypts all of the retrieved data and transmits the encrypted data to the client 14, as seen in block 155 of Fig. 4B.
- the client 14 receives and decrypts the information transmitted by the server 17a. As shown by block 158 of Fig. 4B, the client 14 then displays the information to the user of client 14 or otherwise processes the information as desired.
- the database system 19a is effectively secured from access by unauthorized users. Therefore, remote access can be provided to remote clients 14 via the server 17a without jeopardizing the contents of the database systems 19a and 19b.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Storage Device Security (AREA)
Abstract
Description
Claims
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
AU49596/99A AU4959699A (en) | 1998-06-25 | 1999-06-21 | System and method for securely accessing a database from a remote location |
EP99933561A EP1112635A1 (en) | 1998-06-25 | 1999-06-21 | System and method for securely accessing a database from a remote location |
Applications Claiming Priority (8)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US9057698P | 1998-06-25 | 1998-06-25 | |
US60/090,576 | 1998-06-25 | ||
US09/146,411 US6385730B2 (en) | 1998-09-03 | 1998-09-03 | System and method for restricting unauthorized access to a database |
US09/146,411 | 1998-09-03 | ||
US09/146,404 US6336114B1 (en) | 1998-09-03 | 1998-09-03 | System and method for restricting access to a data table within a database |
US09/146,414 US6275939B1 (en) | 1998-06-25 | 1998-09-03 | System and method for securely accessing a database from a remote location |
US09/146,414 | 1998-09-03 | ||
US09/146,404 | 1998-09-03 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO1999067917A1 true WO1999067917A1 (en) | 1999-12-29 |
Family
ID=27492401
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US1999/014179 WO1999067917A1 (en) | 1998-06-25 | 1999-06-21 | System and method for securely accessing a database from a remote location |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP1112635A1 (en) |
AU (1) | AU4959699A (en) |
WO (1) | WO1999067917A1 (en) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001082036A2 (en) * | 2000-04-26 | 2001-11-01 | Netcertainty, Inc. | Method and system for signing and authenticating electronic documents |
EP1191741A1 (en) * | 2000-09-25 | 2002-03-27 | Pioneer Corporation | Data communication system |
DE10059230A1 (en) * | 2000-11-29 | 2002-06-13 | 4Friendsonly Com Internet Tech | Making multimedia data available involves decoding coded essence data while running data processing program on local computer, reproducing data via output device while running program |
GB2383438A (en) * | 2001-12-20 | 2003-06-25 | Inventec Corp | Authorisation method and system for storing and retrieving data |
US8799489B2 (en) * | 2002-06-27 | 2014-08-05 | Siebel Systems, Inc. | Multi-user system with dynamic data source selection |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5862323A (en) * | 1995-11-13 | 1999-01-19 | International Business Machines Corporation | Retrieving plain-text passwords from a main registry by a plurality of foreign registries |
US5864843A (en) * | 1995-10-20 | 1999-01-26 | Ncr Corporation | Method and apparatus for extending a database management system to operate with diverse object servers |
US5956400A (en) * | 1996-07-19 | 1999-09-21 | Digicash Incorporated | Partitioned information storage systems with controlled retrieval |
-
1999
- 1999-06-21 WO PCT/US1999/014179 patent/WO1999067917A1/en not_active Application Discontinuation
- 1999-06-21 AU AU49596/99A patent/AU4959699A/en not_active Abandoned
- 1999-06-21 EP EP99933561A patent/EP1112635A1/en not_active Withdrawn
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5864843A (en) * | 1995-10-20 | 1999-01-26 | Ncr Corporation | Method and apparatus for extending a database management system to operate with diverse object servers |
US5862323A (en) * | 1995-11-13 | 1999-01-19 | International Business Machines Corporation | Retrieving plain-text passwords from a main registry by a plurality of foreign registries |
US5956400A (en) * | 1996-07-19 | 1999-09-21 | Digicash Incorporated | Partitioned information storage systems with controlled retrieval |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001082036A2 (en) * | 2000-04-26 | 2001-11-01 | Netcertainty, Inc. | Method and system for signing and authenticating electronic documents |
WO2001082036A3 (en) * | 2000-04-26 | 2003-02-06 | Netcertainty Inc | Method and system for signing and authenticating electronic documents |
EP1191741A1 (en) * | 2000-09-25 | 2002-03-27 | Pioneer Corporation | Data communication system |
DE10059230A1 (en) * | 2000-11-29 | 2002-06-13 | 4Friendsonly Com Internet Tech | Making multimedia data available involves decoding coded essence data while running data processing program on local computer, reproducing data via output device while running program |
DE10059230C2 (en) * | 2000-11-29 | 2002-11-28 | 4Friendsonly Com Internet Tech | Process for making multimedia data available |
GB2383438A (en) * | 2001-12-20 | 2003-06-25 | Inventec Corp | Authorisation method and system for storing and retrieving data |
GB2383438B (en) * | 2001-12-20 | 2005-07-20 | Inventec Corp | Authorization method and system for storing and retrieving data |
US8799489B2 (en) * | 2002-06-27 | 2014-08-05 | Siebel Systems, Inc. | Multi-user system with dynamic data source selection |
Also Published As
Publication number | Publication date |
---|---|
EP1112635A1 (en) | 2001-07-04 |
AU4959699A (en) | 2000-01-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6385730B2 (en) | System and method for restricting unauthorized access to a database | |
US6336114B1 (en) | System and method for restricting access to a data table within a database | |
US6275939B1 (en) | System and method for securely accessing a database from a remote location | |
US20030204752A1 (en) | System and method for securely accessing a database from a remote location | |
US20010011349A1 (en) | System and method for encrypting a data session between a client and a server | |
US7426745B2 (en) | Methods and systems for transparent data encryption and decryption | |
US5734718A (en) | NIS+ password update protocol | |
US7178021B1 (en) | Method and apparatus for using non-secure file servers for secure information storage | |
US7231517B1 (en) | Apparatus and method for automatically authenticating a network client | |
US5818936A (en) | System and method for automically authenticating a user in a distributed network system | |
US6732277B1 (en) | Method and apparatus for dynamically accessing security credentials and related information | |
US6173402B1 (en) | Technique for localizing keyphrase-based data encryption and decryption | |
EP1522167B1 (en) | A method and an apparatus for retrieving a value secured in a key management system | |
EP1645971B1 (en) | Database access control method, database access controller, agent processing server, database access control program, and medium recording the program | |
US7774611B2 (en) | Enforcing file authorization access | |
US20030070069A1 (en) | Authentication module for an enterprise access management system | |
KR101467174B1 (en) | METHOD AND APPARATUS FOR PERFORMING COMMUNICATION, APPARATUS AND METHOD THEREOF | |
US20050076082A1 (en) | Method and system for managing the exchange of files attached to electronic mails | |
US20040143738A1 (en) | System for providing session-based network privacy, private, persistent storage, and discretionary access control for sharing private data | |
JPH0652110A (en) | Single-time log-on means for distributed computer system and method therefor | |
US20100095127A1 (en) | Tunable encryption system | |
MXPA04007547A (en) | System and method for providing key management protocol with client verification of authorization. | |
US7487535B1 (en) | Authentication on demand in a distributed network environment | |
US7650632B2 (en) | Password management | |
JP4607602B2 (en) | How to provide access |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AK | Designated states |
Kind code of ref document: A1 Designated state(s): AE AL AM AT AU AZ BA BB BG BR BY CA CH CN CU CZ DE DK EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT UA UG UZ VN YU ZA ZW |
|
AL | Designated countries for regional patents |
Kind code of ref document: A1 Designated state(s): GH GM KE LS MW SD SL SZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
DFPE | Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101) | ||
WWE | Wipo information: entry into national phase |
Ref document number: 1999933561 Country of ref document: EP |
|
REG | Reference to national code |
Ref country code: DE Ref legal event code: 8642 |
|
WWP | Wipo information: published in national office |
Ref document number: 1999933561 Country of ref document: EP |
|
WWW | Wipo information: withdrawn in national office |
Ref document number: 1999933561 Country of ref document: EP |