US20020069355A1 - 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 PDF

Info

Publication number
US20020069355A1
US20020069355A1 US09/928,469 US92846901A US2002069355A1 US 20020069355 A1 US20020069355 A1 US 20020069355A1 US 92846901 A US92846901 A US 92846901A US 2002069355 A1 US2002069355 A1 US 2002069355A1
Authority
US
United States
Prior art keywords
data
server
client
query
database
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US09/928,469
Inventor
Greg Garrison
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
FiWare Inc
Liberty Peak Ventures LLC
Original Assignee
FiWare Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority to US9057698P priority Critical
Priority to US09/146,414 priority patent/US6275939B1/en
Application filed by FiWare Inc filed Critical FiWare Inc
Priority to US09/928,469 priority patent/US20020069355A1/en
Assigned to FIWARE, INC. reassignment FIWARE, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: GARRISON, GREG B.
Publication of US20020069355A1 publication Critical patent/US20020069355A1/en
Priority claimed from US10/413,911 external-priority patent/US20030204752A1/en
Assigned to NASTALOR VENTERI TRE L.L.C. reassignment NASTALOR VENTERI TRE L.L.C. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: AMERICAN EXPRESS TRAVEL RELATED SERVICES COMPANY, INC.
Assigned to LIBERTY PEAK VENTURES, LLC reassignment LIBERTY PEAK VENTURES, LLC ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: INTELLECTUAL VENTURES ASSETS 66 LLC
Application status is Abandoned legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6227Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/007Encryption, En-/decode, En-/decipher, En-/decypher, Scramble, (De-)compress
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99932Access augmentation or optimizing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99934Query formulation, input preparation, or translation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99936Pattern matching access
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99939Privileged access

Abstract

A secure client/server system allows remote access to a database system without allowing unauthorized users to access data stored within the database system. A server receives a request for data from a client located at a remote location. The server translates the request for data into an appropriate query or queries. The queries are used by the server to retrieve data from databases associated with the server. If the requested data resides in a plurality of databases that utilize different protocols, the server submits a plurality of queries which are respectively compatible with the databases. Furthermore, if some of the information requested by the request for data is located in a remote database, the server creates a second request for data and transmits the second request for data to a remote server associated with the appropriate database. The remote server translates the second request for data into a second query and retrieves the requested data from the remote server with the second query. The remote server then transmits the data retrieved from the remote database to the server that originally received the request for data from the client. The original server assimilates all of the retrieved data and submits the data in encrypted form to the client.

Description

  • This document is a continuation of and claims priority to U.S. patent application Ser. No. 09/146,414, now U.S. Pat. No. 6,275,938 issued on Aug. 14, 2001, which is incorporated herein by reference. U.S. Pat. No. 6,275,938 claims priority to and the benefit of the filing date of U.S. Provisional Patent Application No. 60/090,576, entitled “Client/Server System and Method for Securing Queries to a Server Database.”[0001]
  • BACKGROUND OF THE INVENTION
  • 1. Field of the Invention [0002]
  • 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. [0003]
  • 2. Related Art [0004]
  • Current database systems store a variety of information, and it is often desirable to keep the information stored within many database systems private. Therefore, in many applications, it is important to allow only authorized users to access the information stored within a database system. Furthermore, it is often desirable for authorized users to access the information within the database system from remote locations. However, allowing access to database systems from remote locations 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. [0005]
  • 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. [0006]
  • For example, in many prior art systems, a server at the premises of the database system is utilized to enable remote access to the database system. To retrieve data from the database system remotely, an authorized user establishes communication with the server, and the server verifies that the user is an authorized user. For example, 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 then 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. [0007]
  • Many times, the user is only authorized to access certain data within the database system. Therefore, 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. [0008]
  • Since remote access to the server is necessary to allow the database system to be accessed at remote locations by authorized users, 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. [0009]
  • For example, 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. Even if the communications between the server and the authorized user are encrypted, current encryption techniques can sometimes be broken and deciphered by hackers. Therefore, a hacker can use the password to log on with the server and gain connectivity with the database system. Once connected to the database system, the hacker can then access any information within the database accessible to the password. Furthermore, 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. [0010]
  • Accordingly, providing remote access to database systems allows hackers, through a variety of methods, certain opportunities to access the data within the database system. As a result, 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. [0011]
  • Thus, a heretofore unaddressed need exists in the industry for providing a more secure system and method of allowing remote access to a database system. [0012]
  • SUMMARY OF THE INVENTION
  • The present invention overcomes the inadequacies and deficiencies of the prior art as discussed herein. In general, the present invention provides a system and method for securely accessing a database from a remote location. [0013]
  • The present invention utilizes a client computer (client), a server computer (server), and a database system. The 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. [0014]
  • If part of the data requested by the client is not stored in the database system associated with the server, 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. [0015]
  • In accordance with another feature of the present invention, 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. [0016]
  • In accordance with another feature of the present invention, 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. [0017]
  • In accordance with another feature of the present invention, 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. [0018]
  • The present invention has many advantages, a few of which are delineated hereafter, as mere examples. [0019]
  • An advantage of the present invention is that a database system can be remotely accessed. [0020]
  • Another advantage of the present invention is that unauthorized access of a remotely accessible database system can be prevented. [0021]
  • 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. [0022]
  • 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. [0023]
  • 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. [0024]
  • 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. [0025]
  • Another advantage of the present invention is that an authorized user only gains access to certain information within the database system. [0026]
  • Other features and advantages of the present invention will become apparent to one skilled in the art upon examination of the following detailed description, when read in conjunction with the accompanying drawings. It is intended that all such features and advantages be included herein within the scope of the present invention, as is defined by the claims.[0027]
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • The invention can be better understood with reference to the following drawings. The elements of the drawings are not necessarily to scale relative to each other, emphasis instead being placed upon clearly illustrating the principles of the invention. Furthermore, like reference numerals designate corresponding parts throughout the several views. [0028]
  • FIG. 1 is a block diagram illustrating a client/server system in accordance with the present invention. [0029]
  • FIG. 2 is a block diagram illustrating a client computer system in accordance with the principles of the present invention. [0030]
  • FIG. 3 is a block diagram illustrating a server computer system in accordance with the present invention. [0031]
  • FIGS. 4A and 4B depict a flow chart illustrating the functionality and methodology of the client server system of FIG. 1.[0032]
  • DETAILED DESCRIPTION OF THE INVENTION
  • FIG. 1 depicts a client/server system [0033] 10 illustrating the principles of the present invention. Referring to FIG. 1, a client 14 is configured to communicate with a server 17 a via communications network 18. The client 14 is preferably a computer system located remotely from the server 17 a, which is preferably a computer system as well. As used herein, the terms “remotely located” or “remote location” shall refer to a location separated from the premises of a server 17 a 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. 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 17 a, may employ any protocol or combinations of protocols suitable for communicating information between the client 14 and the server 17 a.
  • The server [0034] 17 a is preferably associated with and connected to a database system 19 a having at least one database 20 a or 20 b. The database system 19 a is preferably any database system known in the art. Therefore, information stored within each database 20 a and 20 b can be accessed by the server 17 a through known techniques. The database system 19 a is preferably located on a premises of the server 17 a.
  • Referring now to FIG. 2, the client [0035] 17 a 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. Note that 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. In the context of this document, 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. As an example, the client control system 21 may be magnetically stored and transported on a conventional portable computer diskette.
  • The preferred embodiment of the client [0036] 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. Furthermore, 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.
  • Furthermore, as shown by FIG. 3, the server [0037] 17 a, as does the nearly identical server 17 b, preferably comprises a computer system similar to the client 14. Similar to the client 14, a control system 41 associated with the server 17 a preferably controls the operations of the server 17 a. The server control system 41 along with its associated methodology is preferably implemented in software and stored in main memory 42 of the server 17 a. 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.
  • Similar to the client [0038] 14, the preferred embodiment of the server 17 a 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 17 a via a local interface 46, which can include one or more buses. Furthermore, 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 17 a can be connected to a network interface 53 that allows the server 17 a to exchange data with a network 54. Furthermore, the server 17 a 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.
  • Referring again to FIG. 1, the client [0039] 14 is configured to establish communication with the server 17 a through any suitable technique known in the art. For example, the client 14 can be connected to a modem 61 which establishes communication with a modem 63 a connected to the server 17 a. Once communication between the modems 61 and 63 a is established, the client 14 can communicate with the server 17 a via communications network 18 and modems 61 and 63 a. However, it is sufficient for the purposes of the present invention that the client 14 be capable of communicating with the server 17 a, and one skilled in the art should realize that communications devices other than modems 61 and 63 a (including modem 63 b when communication with modem 17 b is established) may be used to establish communication between client 14 and server 17 a. Therefore, modems 61, 63 a, and 63 b are not necessary to implement the principles of the present invention.
  • After establishing communication with the server [0040] 17 a, the server 17 a is designed to transmit a new encryption key to the client 14. As known in the art, the encryption key can be used to encrypt and decrypt data through known encryption techniques, such as DES encryption, for example. In order to securely transmit the new encryption key to client 14, the new encryption key is preferably encrypted through known encryption techniques (such as RSA encryption, for example) by the server 17 a before transmitting the key to the client 14.
  • In this regard, the client [0041] 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 17 a when communication between the client 14 and server 17 a are established. In response, the server 17 a 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 17 a is then designed to transmit the encrypted new encryption key to the client 14 which decrypts the new encryption key with the private key. Thereafter, both the client 14 and the server 17 a 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.
  • Since a new encryption key is utilized for each new data session, attempts by unauthorized users to gain access to the database system [0042] 19 a are frustrated. In this regard, the server 17 a identifies a user through the log name and password transmitted to the server 17 a 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 17 a into allowing the hacker to gain access to the database system 19 a. The hackers can “spoof” the server 17 a by intercepting the encrypted log name and password and transmitting a copy of the encrypted log name and password to the server 17 a after establishing a data session with the server 17 a.
  • However, using a new encryption key for each data session causes the same data (e.g., the log name and the password) to appear in a different form for each data session. Therefore, it is more difficult to break the encryption scheme (i.e., discover the encryption key used to decrypt the data), and it becomes more difficult to spoof the server [0043] 17 a, since the server 17 a is expecting a different form of the log name and password for each data session. Consequently, attempts by hackers to gain access to the database system 19 a are frustrated by encrypting data with a new encryption key for each data session between the client 14 and the server 17 a.
  • As an alternative to encrypting the new encryption key with a public encryption key supplied by the client [0044] 14, the new encryption key can be encrypted according to a standard algorithm by the server 17 a 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 17 a via the standard algorithm in order to determine the new encryption key. For example, the server 17 a 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.
  • As an example, 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 [0045] 17 a). In this case, the client 14 is configured to decode the coded index in order to determine the placement of the new encryption key. In this regard, 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 encryption methodology utilized, it should be desirable to encrypt data with a new or different key for each data session, as described hereinabove. [0046]
  • After determining the new encryption key, the client [0047] 14 is designed to use the new encryption key to encrypt and transmit a predefined password and log name to the server 17 a. 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 17 a 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 17 a is configured to translate the password into a new password (an “alias” password) that identifies the user of the client 14 to the server 17 a. In order to implement the translation, the server 17 a 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 17 a can retrieve the alias password from the password table 55 based on the predefined password and log name supplied by the user of the client 14.
  • After receiving the password from the client [0048] 14, the server 17 a is configured to identify the user of the client 14 via the password and log name received by the server 17 a. 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 17 a is designed to identify the user as an unauthorized user. The server 17 a 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.
  • Once the server [0049] 17 a has identified the user of client 14 as an authorized user, 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 17 a. The request for data can be of any form or can be in accordance with any protocol known to the server 17 a. In the preferred embodiment, the request for data is a predetermined data word (i.e., a code word) known to the server 17 a.
  • It should be noted that 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. However, encryption of the request makes it more difficult for unauthorized users to retrieve information from the database system [0050] 19 a in cases where the unauthorized user is able to spoof the server 17 a or to discover a valid password. This is because the server 17 a will not retrieve any information from the database system 19 a unless a valid request is submitted to the server 17 a, 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 [0051] 17 a is designed to receive the request for data and to decrypt the request for data using the new encryption key. Then the server 17 a 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). In this regard, the server 17 a preferably includes security information that indicates which data within the databases 20 a and 20 b are accessible to each user. For example, although other embodiments are possible, 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 17 a is designed to retrieve the entry in the security data table 57 corresponding to the user of client 14. Then, the server 17 a is configured to determine whether the information requested by the client 14 is accessible to the user of client 14.
  • If the server [0052] 17 a determines that the information requested by the client 14 is inaccessible to the user of the client 14, then the server 17 a 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 17 a determines that the requested information is accessible to the user of client 14, then the server 17 a is configured to query the appropriate database 20 a or 20 b for the requested information. In this regard, the server 17 a is preferably designed to translate the request for data into a structured query language (SQL) query or other known types of queries. As known in the art, structured query language is a database language for querying, updating, and managing databases. Since the server 17 a is aware of the information requested by the client 14 via the request for data transmitted from the client 14, the server 17 a 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 17 a is designed to connect to the database system 19 a 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 17 a is preferably configured to utilize the alias password associated with the user of the client 14 when accessing the databases 20 a and 20 b within database system 19 a.
  • Alternatively, the server [0053] 17 a 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 19 a. 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 19 a), it is preferable that the server 17 a intercept the data retrieved from database system 19 a and analyze the retrieved data for accessibility issues. After consulting the security data table 57, the server 17 a is configured to discard any data determined by the server 17 a to be inaccessible to the user of client 14.
  • It should be noted that portions of the data requested by the client [0054] 14 may be located in different databases 20 a-20 d. Furthermore, each of databases 20 a-20 d may have a different protocol for querying and retrieving data. For example, a portion of the data requested by the client 14 may be located in database 20 a, and a portion of the data requested by the client 14 may be located in database 20 b, which receives queries and transmits data according to a different protocol than that of database 20 a. As an example, database 20 a may be an Oracle type database while database 20 b may be a Microsoft Access type of database. The server 17 a preferably is familiar with the protocols used by both databases 20 a and 20 b. Therefore, the server 17 a generates a first query (pursuant to the protocol utilized by database 20 a) to database 20 a in order to retrieve a portion of the data requested by the client 14, and the server 17 a generates a second query pursuant to the protocol utilized by database 20 b) to database 20 b in order to retrieve another portion of the data requested by the client 14. Accordingly, the server 17 a is capable of retrieving the data requested by the client 14, even when the requested data is located in different types of databases.
  • If part of the information requested by the client [0055] 14 is located in a remote database system 19 b associated with a remote server 17 b, the server 17 a is designed to create a request for data to be sent to the remote server 17 b. Similar to the request for data transmitted from the client 14 to the server 17 a, the request for data created by the server 17 a can be of any protocol known to the remote server 17 b. In the preferred embodiment, the request for data is a data word (i.e., a code word) recognizable to the remote server 17 b. To ensure the security of the request, the server 17 a may be designed to utilize the same security features utilized by the server 17 a in dealing with client 14.
  • In this regard, the server [0056] 17 a preferably retrieves data from the remote server 17 b in the same way that client 14 retrieves data from the server 17 a. Therefore, in response to the data session between the server 17 a and the remote server 17 b, the server 17 a transmits a public encryption key to the remote server 17 b. The remote server 17 b generates a new encryption key for the data session between the server 17 a and the remote server 17 b and encrypts the new encryption key with the public key supplied by the server 17 a. The remote server 17 b transmits the new encryption key to the server 17 a, which decrypts the new encryption key with the private key corresponding with the public key sent to the remote server 17 b. Thereafter, the servers 17 a and 17 b encrypt and decrypt all data transmitted therebetween with the new encryption key generated by the remote server 17 b.
  • The server [0057] 17 a then encrypts the user's password and log name with the new encryption key generated by the remote server 17 b and transmits the log name and password to the remote server 17 b. The remote server 17 b decrypts the password and log name with the new encryption key generated by the remote server 17 b to verify that the requests transmitted by the server 17 a are associated with an authorized user. The remote server 17 b then translates the password into an alias password. The server 17 a is designed to encrypt the request for data created by the server 17 a and to transmit the request to the remote server 17 b. The remote server 17 b is configured to decrypt the request with the new key generated by the remote server 17 b and to translate the request into an appropriate query, preferably an SQL query.
  • Like the server [0058] 17 a, the remote server 17 b 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 17 b is designed to translate the request into an appropriate SQL query and to query the remote database system 19 b for the data requested by the server 17 a. When the remote server 17 b receives the queried information from database 20 c or 20 d in the remote database system 19 b, the remote server 17 b is configured to encrypt the information with the new encryption key sent to the server 17 a and to transmit the encrypted information to the server 17 a.
  • The server [0059] 17 a may have to request information from multiple remote servers 17 b in order to access all of the information requested by the client 14. Once, the server 17 a has received all of the requested information, the server 17 b is designed to assimilate all of the retrieved data into a form compatible with the client 14. Then, the server 17 a 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 [0060] 14 is designed to receive the data transmitted from the server 17 a and to decrypt the data using the new encryption key previously sent from the server 17 a for the data session. The client 14 may then display the decrypted data to the user or process the data as may be desired.
  • It should be noted that although each message transmitted between the client [0061] 14 and server 17 a is encrypted in the present invention, the encryption of each message is not necessary to implement the present invention. In this regard, any of the messages communicated between the client 14 and the server 17 a can be without encryption, although the security of each message not encrypted may be compromised.
  • Operation
  • The preferred use and operation of the client/server system [0062] 10 and associated methodology are described hereafter with reference to FIGS. 1 and 4.
  • Initially, a user registers with the system [0063] 10 and receives a log name and a password. In addition, the password table 55 (FIG. 3) at each of the servers 17 a and 17 b is updated with the password and the log name. In this regard, an entry is created in the password table 55 at each of the servers 17 a and 17 b, and the password and the log name are entered into the entry. Furthermore, an alias password is assigned to the user which is also input into the entry in the password table. Next, the security data table 57 at each of the servers 17 a and 17 b is also updated by creating an entry for the user that indicates which data in the database systems 19 a and 19 b may be accessed by the user.
  • Once the user is registered with the system [0064] 10, the user may establish communication with one of the servers 17 a or 17 b, as shown by block 105 of FIG. 4A. Assume for illustrative purposes that the user via client 14 establishes communication with the server 17 a. As shown by block 108 of FIG. 4A, the server 17 a 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.
  • Preferably, the new encryption key is encrypted by server [0065] 17 a before transmitting the new encryption key to the client 14. In this regard, the client 14 can be configured to transmit a public encryption key to the server 17 a, through known encryption schemes, such as RSA encryption, for example. Before transmitting the new encryption key to the client 14, the server 17 a encrypts the new encryption key with the public encryption key transmitted by the client 14. After receiving the new encryption key, the client 14 decrypts the new encryption key with a private key that corresponds with the public key used by the server 17 a to encrypt the new encryption key. Thereafter, both the client 14 and server 17 a 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.
  • After receiving the new encryption key from the server [0066] 17 a, 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 17 a, as shown by block 111 in FIG. 4A. The server 17 a receives and decrypts the log name and the password using the new encryption known by the client 14 and the server 17 a. Utilizing a new encryption key unique for each data session frustrates attempts by hackers to spoof the server 17 a with passwords and/or requests for data previously used in other data sessions.
  • The server [0067] 17 a 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. 4A. The server 17 a 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 17 a denies the client 14 access to the database system 19 a. The server also sends the client an error message and terminates the data session, as shown by blocks 117 and 121 of FIG. 4A. Alternatively, the server 17 a can be configured to allow the client 14 to send another password and/or log name.
  • Once the user is determined to be an authorized user, the user via client [0068] 14 encrypts and sends the server 17 a a request for data, as depicted by block 126 of FIG. 4A. As mentioned hereinbefore, the request for data is preferably a data word or words indicating which data the user of the client 14 wishes to retrieve. In this regard, each data word is preferably a code word recognizable to the server 17 a. Therefore, the client 14 preferably includes in memory 22 (FIG. 2) a list of code words that can be translated by the server 17 a into a query to the database system 19 a. The control system 21 (FIG. 2) preferably displays a list of options to the user through a menu or other type of suitable interface. The user selects a desirable option, and the control system 21 correlates the user's selection with the appropriate code word or words, which are then encrypted and transmitted to the server 17 a. Alternatively, other techniques known in the art may be employed to generate a request for data by the client 14.
  • As shown by block [0069] 129 of FIG. 4A, the server 17 a 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 17 a 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 17 a translates the request into an appropriate SQL query (or other type of query compatible with the database system 19 a) for retrieving the requested data from the database system 19 a, as shown by block 139 of FIG. 4B.
  • The server [0070] 17 a then connects to the database system 19 a using the alias password retrieved from the password table 55 for the user of the client 14 (assuming that the database system 19 a is a secure system requiring a password for access). The database system 19 a, through techniques known in the art, then allows the server 17 a to query for data that is determined by the database system 19 a to be accessible for the alias password. After receiving an SQL query (or other type of query if SQL protocol is not being used) from the server 17 a and determining that the SQL query is a request for accessible data, the database system 19 a retrieves the data requested by the SQL query and transmits this data to the server 17 a.
  • Since connectivity with the database system [0071] 19 a is only established with the server 17 a in the preferred embodiment, the database system 19 a is isolated from outside sources (i.e., devices off of the premises of the server 17 a). Accordingly, potential hackers are prevented from obtaining connectivity with the database system 19 a, thereby frustrating attempts by the hackers to retrieve unauthorized data from the database system 19 a.
  • It should be noted that the translation of the user password into an alias password as described hereinabove provides an extra level of security. As previously mentioned, it 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 [0072] 19 a through a server not associated with the system 10, the password used by the unauthorized user to access the database system 19 a should not be valid. This is because the database system 19 a only recognizes the alias passwords contained in the server 17 a. Since the alias passwords are preferably not transmitted across connections off of the premises of the server 17 a (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 19 a should be denied unless the server 17 a supplies the database system 19 a with an alias password after the server 17 a determines that the user is authorized to access the database system 19 a.
  • It should be further noted that many database systems [0073] 19 a have the capability to restrict a user's view of a table within a database 20 a-20 d to a particular column or columns, if desired. Therefore, when the user is connected to the database system 19 a, the user can only see and retrieve data in a column accessible to the user. However, these database systems 19 a 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).
  • However, in the present invention, the server [0074] 17 a preferably acts as a liaison between the database system 19 a and the client 14, and the server 17 a 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 19 a is accessible and if some information in the column is inaccessible to the user, the server 17 a retrieves only the accessible information from the database system 19 a. As a result, the requested information can be returned to the client 14 by the server 17 a 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 17 a 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 19 a.
  • There are numerous methodologies that the server [0075] 17 a may employ to determine which rows are accessible to the user. For example, and in no way limited thereto, the security data table 57 may include predefined information indicating which rows within the database system 19 a are accessible to a particular user. Therefore, before the server 17 a issues a query to the database system 19 a, the server 17 a 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 17 a determines that the information requested by the client 14 is within rows accessible to the user of the client is 14, the server 17 a submits a query to the database system 19 a based on the request from the client 14. However, the server 17 a 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 19 a in response to the request from the client 14.
  • To further illustrate the foregoing concept, assume that a data table in the database system [0076] 19 a includes a plurality of rows and columns. For example, and in no way limited thereto, each row in the data table can represent a store within a chain of stores owned by a particular corporation. In other words, 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. As an example, the fields may respectively indicate the store's street address, zip code, total costs, total revenue, etc.
  • Also, assume that it is desirable for a regional manager to only access the information in the data table pertaining to the stores within his region. In order to limit the manager's access to stores outside of his region, the security data table [0077] 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 [0078] 17 a receives a request from the client 14 for information within the database system 19 a (when the manager is logged onto the client 14), the server 17 a first consults the security data table 57 to determine which zip codes are accessible to the manager. Then, the server 17 a restricts the query for only data that pertains to the accessible zip codes. In this regard, the server 17 a inserts a “where” statement or an “if” statement to limit the data retrieved by the server 17 a. For example, 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.
  • It should be noted that the server [0079] 17 a can alternatively analyze the data retrieved from the database system 19 a in order to restrict the user's access to certain rows of information. In this regard, the server 17 a 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 17 a 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 17 a 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 19 a may be employed without departing from the principles of the present invention.
  • Once the server [0080] 17 a receives the data from the database system 19 a, the server 17 a determines whether a remote server 17 b has access to any of the requested data not included in the database system 19 a, as depicted by block 142 of FIG. 4B. If so, the server 17 a creates a request for data and submits the request for data to the appropriate remote server 17 b just as the client 14 submitted its request for data to the server 17 a, as shown by block 145. The remote server 17 b may utilize some or all of the security features previously described for the server 17 a. Therefore, after establishing a new encryption key for the data session between servers 17 a and 17 b, the server 17 a transmits the user's log name and password to the remote server 17 b. The remote server 17 b verifies that the user is an authorized user and translates the password into an alias password. Then, the remote server 17 b translates the request for data submitted by server 17 a into an appropriate SQL query (or other type of query) for database system 19 b. Using the alias password, the remote server 17 b retrieves the requested data from database system 19 b and transmits the requested data in encrypted form to the server 17 a, as shown by blocks 147 and 149 of FIG. 4B. If the remote server 17 b determines that any of the data is inaccessible to the user, the remote server 17 b discards the inaccessible data before transmitting it to the server 17 a.
  • After retrieving all of the requested data that is accessible to the user, the server [0081] 17 a 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 17 a. 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.
  • Due to the security features described hereinabove, the database system [0082] 19 a is effectively secured from access by unauthorized users. Therefore, remote access can be provided to remote clients 14 via the server 17 a without jeopardizing the contents of the database systems 19 a and 19 b.
  • In concluding the detailed description, it should be noted that it will be obvious to those skilled in the art that many variations and modifications may be made to the preferred embodiment without substantially departing from the principles of the present invention. All such variations and modifications are intended to be included herein within the scope of the present invention, as set forth in the following claims. [0083]

Claims (12)

Now, therefore, the following is claimed:
1. A system for preventing unauthorized access of database systems, comprising:
a database configured to receive a query, to retrieve data based on said query, and to transmit said retrieved data; and
a first server configured to receive a request for data from a remote client, said request for data including at least one code word, said first server configured to translate said at least one code word into said query, to receive said data transmitted from said database, to encrypt said data transmitted from said database, and to transmit said encrypted data to said client.
2. The system of claim 1, wherein said query is a structured query language (SQL query.
3. The system of claim 1, wherein said remote client is configured to select said at least one code word from a list of code words based on a user input.
4. The system of claim 1, wherein said first server is further configured to transmit a second request for data based on said at least one code word, said second request for data including at least one code word, wherein said system further comprises:
a remote database configured to receive a second query, to retrieve data associated with said second request for data based on said second query, and
to transmit said data associated with said second request for data; and
a remote server configured to receive said second request for data, to translate, into said second query, said at least one code word included in said second request for data, said remote server further configured to receive said data transmitted from said remote database, to encrypt said data received from said remote database, and to transmit said data received from said remote database to said first server.
5. The system of claim 1, further comprising:
a second database configured to receive a second query, to retrieve data associated with said request for data based on said second query, and to transmit said data retrieved by said second database,
wherein said first server is further configured to translate said at least one code word into said second query, to receive said data transmitted from said second database, to encrypt said data retrieved from said second database, and to transmit said data retrieved from said second database to said client.
6. The system of claim 5, wherein said first server is configured to transmit said first query via a first protocol and to transmit said second query via a second protocol that is different than said first protocol.
7. A method for preventing unauthorized access of a database systems, comprising the steps of:
establishing communication between a client and a first server;
receiving, at said first server, a first request for data transmitted from said client, said first request for data including at least one code word;
subsequent to said receiving step, translating said at least one code word into a first query;
querying a database with said first query;
retrieving data from said database based on said first query;
encrypting, at said first server, said data retrieved from said database at said first server; and
transmitting said retrieved data from said first server to said client.
8. The method of claim 7, wherein said query is a structured query language (SQL) query.
9. The method of claim 7, further comprising the steps of:
receiving a user input at said client;
selecting, based on said user input, said at least one code word from a list of code words stored at said client; and
transmitting said at least one code word from said client to said first server in response to said selecting step.
10. The method of claim 7, further comprising the step of encrypting said first request for data.
11. The method of claim 7, further comprising the steps of:
creating, at said first server, a second request for data based on said at least one code word, said second request including at least one code word;
transmitting said second request for data to a remote server;
translating, into a second query at said remote server, said at least one code word included in said second request for data;
querying a remote database with said second query;
retrieving remote data from said remote database based on said second query;
encrypting said remote data retrieved from said remote database;
transmitting said remote data from said remote server to said first server; and
transmitting said remote data to from said first server to said client.
12. The method of claim 11, wherein said second query is a structured query language (SQL) query.
US09/928,469 1998-06-25 2001-08-13 System and method for securely accessing a database from a remote location Abandoned US20020069355A1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US9057698P true 1998-06-25 1998-06-25
US09/146,414 US6275939B1 (en) 1998-06-25 1998-09-03 System and method for securely accessing a database from a remote location
US09/928,469 US20020069355A1 (en) 1998-06-25 2001-08-13 System and method for securely accessing a database from a remote location

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/928,469 US20020069355A1 (en) 1998-06-25 2001-08-13 System and method for securely accessing a database from a remote location
US10/413,911 US20030204752A1 (en) 2001-08-13 2003-04-15 System and method for securely accessing a database from a remote location

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US09/146,414 Continuation US6275939B1 (en) 1998-06-25 1998-09-03 System and method for securely accessing a database from a remote location

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US10/413,911 Continuation US20030204752A1 (en) 1998-06-25 2003-04-15 System and method for securely accessing a database from a remote location

Publications (1)

Publication Number Publication Date
US20020069355A1 true US20020069355A1 (en) 2002-06-06

Family

ID=26782426

Family Applications (2)

Application Number Title Priority Date Filing Date
US09/146,414 Expired - Lifetime US6275939B1 (en) 1998-06-25 1998-09-03 System and method for securely accessing a database from a remote location
US09/928,469 Abandoned US20020069355A1 (en) 1998-06-25 2001-08-13 System and method for securely accessing a database from a remote location

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US09/146,414 Expired - Lifetime US6275939B1 (en) 1998-06-25 1998-09-03 System and method for securely accessing a database from a remote location

Country Status (1)

Country Link
US (2) US6275939B1 (en)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030177239A1 (en) * 2002-03-15 2003-09-18 Daisuke Shinohara Method of managing a resource storage data, program for managing the resource storage data, storage media having the resource managing program, and resource manager for managing the resource storage data
GB2394807A (en) * 2002-11-01 2004-05-05 Seiko Epson Corp A system and method for accessing and updating information stored in a central location by a remote worker
US20040193879A1 (en) * 2003-03-27 2004-09-30 Hitachi, Ltd. Computer system
US6868404B1 (en) * 1999-06-15 2005-03-15 Matsushita Electric Industrial Co., Ltd. Digital data recording device, digital data memory device, and digital data utilizing device for converting management information which contains restrictive information using a different key in each management information send/receive session
US20050079859A1 (en) * 2003-10-14 2005-04-14 Eakin William Joseph System and method for remotely accessing a private database
US20050102402A1 (en) * 2000-10-07 2005-05-12 Whitehead Stephen C. Remote communications with a vending machine using call back
EP1679618A1 (en) * 2004-12-29 2006-07-12 Sap Ag Global search for items using a request broker
US7440560B1 (en) 2003-11-17 2008-10-21 At&T Corp. Schema for empirical-based remote-access internet connection
US20120180100A1 (en) * 2000-01-12 2012-07-12 Joachim Kim Method and Apparatus for Archiving Media Content
US8271642B1 (en) * 2007-08-29 2012-09-18 Mcafee, Inc. System, method, and computer program product for isolating a device associated with at least potential data leakage activity, based on user input
US8788723B1 (en) * 2007-06-01 2014-07-22 Robert F. Hogan System and apparatus for controlling use of mass storage devices
US10255303B1 (en) * 2001-05-15 2019-04-09 Object Store, Inc. Methods and apparatus for enterprise application integration

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6668246B1 (en) * 1999-03-24 2003-12-23 Intel Corporation Multimedia data delivery and playback system with multi-level content and privacy protection
US7263523B1 (en) * 1999-11-24 2007-08-28 Unisys Corporation Method and apparatus for a web application server to provide for web user validation
US6757709B1 (en) * 2000-04-05 2004-06-29 Hewlett-Packard Development Company, L.P. Method and apparatus for providing a client system with information via a network
US6697806B1 (en) * 2000-04-24 2004-02-24 Sprint Communications Company, L.P. Access network authorization
US7555528B2 (en) 2000-09-06 2009-06-30 Xanboo Inc. Systems and methods for virtually representing devices at remote sites
AU8889401A (en) * 2000-09-06 2002-03-22 Xanboo Inc Systems and methods for virtually representing devices at remote sites
US6686838B1 (en) * 2000-09-06 2004-02-03 Xanboo Inc. Systems and methods for the automatic registration of devices
US7346928B1 (en) 2000-12-01 2008-03-18 Network Appliance, Inc. Decentralized appliance virus scanning
US7778981B2 (en) * 2000-12-01 2010-08-17 Netapp, Inc. Policy engine to control the servicing of requests received by a storage server
JP2002237815A (en) * 2001-02-08 2002-08-23 Pioneer Electronic Corp Network system, method of operating network, intermediate module, terminal equipment, information recording medium, and program
US6631453B1 (en) 2001-02-14 2003-10-07 Zecurity Secure data storage device
US7069433B1 (en) 2001-02-20 2006-06-27 At&T Corp. Mobile host using a virtual single account client and server system for network access and management
US6971005B1 (en) * 2001-02-20 2005-11-29 At&T Corp. Mobile host using a virtual single account client and server system for network access and management
JP4700204B2 (en) * 2001-03-07 2011-06-15 株式会社日立製作所 Storage management data control system
US7353387B2 (en) * 2001-03-08 2008-04-01 International Business Machines Corporation Method and system for integrating encryption functionality into a database system
US8051168B1 (en) * 2001-06-19 2011-11-01 Microstrategy, Incorporated Method and system for security and user account integration by reporting systems with remote repositories
US20030163691A1 (en) * 2002-02-28 2003-08-28 Johnson Ted Christian System and method for authenticating sessions and other transactions
US20030187848A1 (en) * 2002-04-02 2003-10-02 Hovhannes Ghukasyan Method and apparatus for restricting access to a database according to user permissions
US8799489B2 (en) * 2002-06-27 2014-08-05 Siebel Systems, Inc. Multi-user system with dynamic data source selection
US20040019805A1 (en) * 2002-07-25 2004-01-29 Perkins Gregory M. Apparatus and method for securing a distributed network
US7139758B1 (en) * 2002-12-02 2006-11-21 Microsoft Corporation Method and system for improved security to control and facilitate access to data stored in a database
FI115284B (en) * 2002-12-20 2005-03-31 Nokia Corp The method and arrangement of the terminal authenticating
US20040193919A1 (en) * 2003-03-31 2004-09-30 Dabbish Ezzat A. Method and apparatus for identifying trusted devices
US7500111B2 (en) * 2003-05-30 2009-03-03 International Business Machines Corporation Querying encrypted data in a relational database system
US7685437B2 (en) * 2003-05-30 2010-03-23 International Business Machines Corporation Query optimization in encrypted database systems
US7266847B2 (en) * 2003-09-25 2007-09-04 Voltage Security, Inc. Secure message system with remote decryption service
US7743420B2 (en) 2003-12-02 2010-06-22 Imperva, Inc. Dynamic learning method and adaptive normal behavior profile (NBP) architecture for providing fast protection of enterprise applications
US7984304B1 (en) * 2004-03-02 2011-07-19 Vmware, Inc. Dynamic verification of validity of executable code
US8533777B2 (en) * 2004-12-29 2013-09-10 Intel Corporation Mechanism to determine trust of out-of-band management agents
US7941668B2 (en) * 2005-07-08 2011-05-10 Stapleton Jeff J Method and system for securely managing application transactions using cryptographic techniques
US8996586B2 (en) * 2006-02-16 2015-03-31 Callplex, Inc. Virtual storage of portable media files
US10303783B2 (en) * 2006-02-16 2019-05-28 Callplex, Inc. Distributed virtual storage of portable media files
US8719128B2 (en) * 2006-12-15 2014-05-06 Tcf Financial Corporation Computer-facilitated secure account-transaction
US7783666B1 (en) 2007-09-26 2010-08-24 Netapp, Inc. Controlling access to storage resources by using access pattern based quotas
US20090106823A1 (en) * 2007-10-22 2009-04-23 Kdh Systems Inc. System and method for remote access data security and integrity
US7522723B1 (en) * 2008-05-29 2009-04-21 Cheman Shaik Password self encryption method and system and encryption by keys generated from personal secret information

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4694491A (en) 1985-03-11 1987-09-15 General Instrument Corp. Cryptographic system using interchangeable key blocks and selectable key fragments
US4649233A (en) 1985-04-11 1987-03-10 International Business Machines Corporation Method for establishing user authenication with composite session keys among cryptographically communicating nodes
US4731840A (en) 1985-05-06 1988-03-15 The United States Of America As Represented By The United States Department Of Energy Method for encryption and transmission of digital keying data
US4817050A (en) 1985-11-22 1989-03-28 Kabushiki Kaisha Toshiba Database system
US4891785A (en) 1988-07-08 1990-01-02 Donohoo Theodore J Method for transferring data files between computers in a network response to generalized application program instructions
TW226047B (en) 1990-03-27 1994-07-01 Ibm
US5349675A (en) 1990-09-04 1994-09-20 International Business Machines Corporation System for directly displaying remote screen information and providing simulated keyboard input by exchanging high level commands
US5196840A (en) 1990-11-05 1993-03-23 International Business Machines Corporation Secure communications system for remotely located computers
JP3114991B2 (en) 1990-11-30 2000-12-04 株式会社東芝 Data communication system
US5253341A (en) 1991-03-04 1993-10-12 Rozmanith Anthony I Remote query communication system
GB9105367D0 (en) 1991-03-13 1991-04-24 Univ Strathclyde Computerised information-retrieval database systems
JPH0778776B2 (en) 1991-09-24 1995-08-23 インターナショナル・ビジネス・マシーンズ・コーポレイション Access method and network of distributed resource portion
US5315658B1 (en) 1992-04-20 1995-09-12 Silvio Micali Fair cryptosystems and methods of use
US5550976A (en) 1992-12-08 1996-08-27 Sun Hydraulics Corporation Decentralized distributed asynchronous object oriented system and method for electronic data management, storage, and communication
US5581749A (en) 1992-12-21 1996-12-03 Thedow Chemical Company System and method for maintaining codes among distributed databases using a global database
US5628011A (en) 1993-01-04 1997-05-06 At&T Network-based intelligent information-sourcing arrangement
DE4496863T1 (en) 1993-09-14 1996-12-05 Chantilley Corp Ltd An apparatus for key distribution in a scrambling system
US5455862A (en) 1993-12-02 1995-10-03 Crest Industries, Inc. Apparatus and method for encrypting communications without exchanging an encryption key
US5446740A (en) 1993-12-17 1995-08-29 Empire Blue Cross/Blue Shield Method of and apparatus for processing data at a remote workstation
US5701461A (en) 1995-01-27 1997-12-23 Microsoft Corporation Method and system for accessing a remote database using pass-through queries
US5710918A (en) 1995-06-07 1998-01-20 International Business Machines Corporation Method for distributed task fulfillment of web browser requests
US5737592A (en) 1995-06-19 1998-04-07 International Business Machines Corporation Accessing a relational database over the Internet using macro language files
US5706434A (en) 1995-07-06 1998-01-06 Electric Classifieds, Inc. Integrated request-response system and method generating responses to request objects formatted according to various communication protocols
US5649103A (en) 1995-07-13 1997-07-15 Cabletron Systems, Inc. Method and apparatus for managing multiple server requests and collating reponses
US5713018A (en) 1995-09-27 1998-01-27 Sun Microsystems, Inc. System and method for providing safe SQL-level access to a database
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
US5664173A (en) 1995-11-27 1997-09-02 Microsoft Corporation Method and apparatus for generating database queries from a meta-query pattern
US5752242A (en) 1996-04-18 1998-05-12 Electronic Data Systems Corporation System and method for automated retrieval of information
US5956400A (en) * 1996-07-19 1999-09-21 Digicash Incorporated Partitioned information storage systems with controlled retrieval
US6047072A (en) 1997-10-23 2000-04-04 Signals, Inc. Method for secure key distribution over a nonsecure communications network
US6088699A (en) * 1998-04-22 2000-07-11 International Business Machines Corporation System for exchanging compressed data according to predetermined dictionary codes
US6088700A (en) * 1999-08-06 2000-07-11 Larsen; Kenneth N. Automated forms completion for global information network applications

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6868404B1 (en) * 1999-06-15 2005-03-15 Matsushita Electric Industrial Co., Ltd. Digital data recording device, digital data memory device, and digital data utilizing device for converting management information which contains restrictive information using a different key in each management information send/receive session
US20120180100A1 (en) * 2000-01-12 2012-07-12 Joachim Kim Method and Apparatus for Archiving Media Content
US20050102402A1 (en) * 2000-10-07 2005-05-12 Whitehead Stephen C. Remote communications with a vending machine using call back
US7889852B2 (en) * 2000-10-07 2011-02-15 Comtech Holdings Limited Remote communications with a vending machine using call back
US10255303B1 (en) * 2001-05-15 2019-04-09 Object Store, Inc. Methods and apparatus for enterprise application integration
US7103665B2 (en) * 2002-03-15 2006-09-05 Hitachi, Ltd. Method of managing a resource storage data, program for managing the resource storage data, storage media having the resource managing program, and resource manager for managing the resource storage data
US20030177239A1 (en) * 2002-03-15 2003-09-18 Daisuke Shinohara Method of managing a resource storage data, program for managing the resource storage data, storage media having the resource managing program, and resource manager for managing the resource storage data
US20050091055A1 (en) * 2002-11-01 2005-04-28 Shields Paul W. System and a method for accessing and updating information stored in a central location by a remote worker
GB2394807A (en) * 2002-11-01 2004-05-05 Seiko Epson Corp A system and method for accessing and updating information stored in a central location by a remote worker
US7036149B2 (en) * 2003-03-27 2006-04-25 Hitachi, Ltd. Computer system
US20040193879A1 (en) * 2003-03-27 2004-09-30 Hitachi, Ltd. Computer system
US20050079859A1 (en) * 2003-10-14 2005-04-14 Eakin William Joseph System and method for remotely accessing a private database
US7440560B1 (en) 2003-11-17 2008-10-21 At&T Corp. Schema for empirical-based remote-access internet connection
EP1679618A1 (en) * 2004-12-29 2006-07-12 Sap Ag Global search for items using a request broker
US8788723B1 (en) * 2007-06-01 2014-07-22 Robert F. Hogan System and apparatus for controlling use of mass storage devices
US8271642B1 (en) * 2007-08-29 2012-09-18 Mcafee, Inc. System, method, and computer program product for isolating a device associated with at least potential data leakage activity, based on user input
US9262630B2 (en) 2007-08-29 2016-02-16 Mcafee, Inc. System, method, and computer program product for isolating a device associated with at least potential data leakage activity, based on user support

Also Published As

Publication number Publication date
US6275939B1 (en) 2001-08-14

Similar Documents

Publication Publication Date Title
Gasser et al. An architecture for practical delegation in a distributed system
US8667108B2 (en) Domain managing method, domain extending method and reference point controller electing method
EP1014249B1 (en) Method and apparatus for automatic user authentication to a plurality of servers through single logon
US5828832A (en) Mixed enclave operation in a computer network with multi-level network security
US6981141B1 (en) Transparent encryption and decryption with algorithm independent cryptographic engine that allows for containerization of encrypted files
JP5795604B2 (en) Method and apparatus for providing a single sign-on access trusted to applications and internet-based services
CN1820481B (en) System and method for authenticating clients in a client-server environment
US7362868B2 (en) Hidden link dynamic key manager for use in computer systems with database structure for storage of encrypted data and method for storage and retrieval of encrypted data
US6836845B1 (en) Method and apparatus for generating queries for secure authentication and authorization of transactions
US6785728B1 (en) Distributed administration of access to information
US5237614A (en) Integrated network security system
US5737523A (en) Methods and apparatus for providing dynamic network file system client authentication
AU676107B2 (en) Method for providing mutual authentication of a user and a server on a network
AU2007200114B2 (en) Methods and systems for controlling the scope of delegation of authentication credentials
US7434048B1 (en) Controlling access to electronic documents
EP1376980B1 (en) Secure server plug-in architecture for digital rights management systems
US7171557B2 (en) System for optimized key management with file groups
EP0960500B1 (en) Method for providing secure remote command execution
EP0573248B1 (en) One-time logon means and methods for distributed computing systems
JP4744785B2 (en) Session key security protocol
EP0580350B1 (en) Access control subsystem and method for distributed computer system using locally cached authentication credentials
CN1175358C (en) Secure database management system for confidential records
US6883100B1 (en) Method and system for dynamic issuance of group certificates
US6931549B1 (en) Method and apparatus for secure data storage and retrieval
US5892828A (en) User presence verification with single password across applications

Legal Events

Date Code Title Description
AS Assignment

Owner name: FIWARE, INC., GEORGIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:GARRISON, GREG B.;REEL/FRAME:012487/0739

Effective date: 19981030

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION

AS Assignment

Owner name: NASTALOR VENTERI TRE L.L.C., DELAWARE

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:AMERICAN EXPRESS TRAVEL RELATED SERVICES COMPANY, INC.;REEL/FRAME:023698/0438

Effective date: 20091028

AS Assignment

Owner name: LIBERTY PEAK VENTURES, LLC, TEXAS

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:INTELLECTUAL VENTURES ASSETS 66 LLC;REEL/FRAME:045533/0882

Effective date: 20180302