The claimed invention relates to the field of data security. In particular, the claimed invention relates to securing sensitive user data in a server system.
World Wide Web sites, or web sites, dealing with secure content use various mechanisms to protect this content. For example, electronic commerce, or e-commerce, web sites use a variety of mechanisms to protect user credit card numbers and user passwords. Most often, these sites use the Secure Socket Layer (SSL) protocol to protect all sensitive data while it is in transit on the Internet among customer computers and browsers and the web site.
The SSL is a typical security protocol used on the web. The SSL protects data while it is in the network by encrypting it using a session-key known only to the web server and the client computer. The data is decrypted as soon as it reaches the web server. The web server processes the data (e.g., validating the credit card number) and then often stores it in a server database.
Unfortunately, however, many web servers store sensitive data in the clear, or in an unencrypted state, in an associated server database. As a result, this database is a prime target for hackers. Hackers have broken into web server databases, thereby compromising many credit card numbers and private user/customer information. These compromises are expensive for both electronic retailers and their customers.
While SSL protects transitory data in the network, it does not protect data once it reaches a web site and while it resides on the associated web servers. A different architecture is needed to protect data at the server site. Indeed, web sites should ensure that sensitive data stored in their database is always encrypted. However, any such system must permit efficient communication and not create bottlenecks that will annoy or discourage users of the network. If a security system does create bottlenecks, it could discourage or divert customers from the web site.
The accompanying figures illustrate embodiments of the claimed invention. In the figures:
In the drawings, the same reference numbers identify identical or substantially similar elements or acts. To easily identify the discussion of any particular element or act, the most significant digit or digits in a reference number refer to the Figure number in which that element is first introduced (e.g., element 108 is first introduced and discussed with respect to
Any headings used herein are for convenience only and do not affect the scope or meaning of the claimed invention.
A method and apparatus are provided for transparently protecting sensitive data within a server system or environment. Data entering and leaving a server site are evaluated for sensitive data. The sensitive data includes, e.g., credit card numbers and information, account numbers and information, and any other personal information of a customer or user that is of a sensitive nature, including birth date, social security number, and information related to user passwords. Upon detection of sensitive data, cryptographic operations are applied to the data. Cryptographic operations include encrypting sensitive data transferred to the server system. Cryptographic operations also include decrypting encrypted sensitive data transferred from the server system en-route to a third party system. Further, cryptographic operations include hashing and keyed hashing of password data received at the server system. Moreover, cryptographic operations provide integrity for cookies.
The transparent protection is provided in an appliance of an embodiment that is separate from the server equipment. This appliance is coupled to the server systems and the data networks so that the server systems require no modification. In this manner, web site operators can install the appliances between their servers and the associated network connections without installing new hardware or software or modifying existing hardware or software on their servers.
In the description herein, numerous specific details are included to provide a thorough understanding of, and enabling description for, embodiments of the invention. One skilled in the relevant art, however, will recognize that the invention can be practiced without one or more of the specific details, or with other fields, expressions, methods, etc. In other instances, well-known structures or operations are not shown, or are not described in detail, to avoid obscuring aspects of the invention.
Unless described otherwise below, the construction and operation of the various blocks shown in
Each of the blocks depicted in the flowchart herein is of a type well known in the art, and can itself include a sequence of operations that need not be described herein. Indeed, unless described otherwise herein, the blocks depicted in the Figures are well known or described in detail in the above-noted and cross-referenced patent applications. Indeed, much of the detailed description provided herein is explicitly disclosed in the provisional patent applications; most or all of the additional material of aspects of the invention will be recognized by those skilled in the relevant art as being inherent in the detailed description provided in such provisional patent applications, or well known to those skilled in the relevant art. Those skilled in the relevant art can implement aspects of the invention based on the flowchart of
Those skilled in the relevant art will appreciate that the routines and other functions and methods described herein can be performed by or distributed among any of the components described herein. While many of the embodiments are shown and described as being implemented in hardware (e.g., one or more integrated circuits designed specifically for a task), such embodiments could equally be implemented in software and be performed by one or more processors. Such software can be stored on any suitable computer-readable medium, such as microcode stored in a semiconductor chip, on a computer-readable disk, or downloaded from a server and stored locally at a client.
The Secure Socket Layer (“SSL”) is a protocol that uses a significant amount of host server computing power. Many web sites use a security appliance or specially designed hardware device to manage the SSL traffic in order to offload some SSL work from the web servers. The security appliance is used coupled between the web server and the network connections, and handles the computations that support SSL connections.
A Transparent Encryption Appliance (“TE Appliance”) is provided that provides backend database security at a web site, thereby protecting sensitive customer data stored and managed by the host web site systems and servers. The TE Appliance provides enhanced functionality in the form of transparent encryption to a security appliance.
A second TE Appliance 204 is coupled to receive data transferred from the server system 104 to third party or other electronic systems (not shown) via the network 108. The data requested by the third party system is decrypted by the second TE Appliance 204.
The functionality provided by the TE Appliances of both embodiments can be hosted on dedicated network appliances as shown in
The TE Appliance of an embodiment can reside at the same physical location as the server systems that it supports or at different physical locations. Further, a TE Appliance may be configured to provide support to multiple server systems. It is also possible that the functions provided by the TE Appliance of an embodiment are distributed among numerous processing devices at numerous physical locations.
The server environment, and the corresponding TE Appliances, also receive electronic information requests for sensitive data from third-party systems, in block 310, via network couplings with the third-party systems. For example, in the case of a purchase transaction, sensitive information including credit card information would have to be cleared with a financial institution before approving the purchase transaction. Upon receiving the request, encrypted sensitive data is retrieved and decrypted, in block 312. Once decrypted, the sensitive information is provided to the requesting third party in block 314, generally over a secure connection.
In an embodiment of the transparent encryption architecture, regular expressions are used to identify fields containing sensitive user information. For example, the regular expression “^——.*” is used to match any string that begins with “——”, such as——password. Other forms of identifying sensitive fields, however, are also possible.
Transparent encryption can be applied to various messages in the HTTP protocol including, but not limited to, POST messages, GET messages, and HTML responses. The examples described herein illustrate the application of transparent encryption to HTML-encoded data. The same mechanism can be applied to other encodings, such as XML-encoded data, or data encoded in other formats, such as in other mark-up language formats.
An example application of transparent encryption includes POST ENCRYPT operations, wherein a POST body is received from a client of the form
An example application of transparent encryption further includes POST DECRYPT operations, wherein a POST body is received from a client of the form
An example application of transparent encryption also includes GET operations, wherein an original request is of the form
An example application of transparent encryption includes HTML responses, wherein a string similar to the POST request body is inserted inside an HTML comment. The original response from a web server is of the form “<b> credit card: </b> <!—&——creditcard=A1CDF986FBC15456&——creditcard_op=DECRYPT&——creditcard_key=bank_key—>”. It is noted that specification of an encryption key in this original response example is not required as the cyphertext of an embodiment may include encoded key identifiers. Following transparent encryption processing, the HTML response is of the form “<b>credit card:</b> 1234 4567 1234 4567”, but is not so limited.
The HTML files can be rather large files, so processing of these files may slow the TE Appliance. As such, the TE Appliance allows the administrator to restrict the URLs to which HTML response filtering is applied. Therefore, the administrator provides a list of regular expressions, and any URL matching any of these regular expressions that will be processed by the TE Appliance, such as the “——” expressions noted above.
Furthermore, the administrator can specify that transparent encryption processing should only be applied to a particular number, X, of bytes of the HTML file. The number X is generally on the order of 128 bytes indicating that all fields to which TE processing should be applied reside in the first 128 bytes of the HTML file, but the embodiment is not so limited. This value can be set at a large number indicating the entire HTML file is to be searched.
With reference to
The user interface also displays a fingerprint (hash) of all transparent encryption keys currently installed on the TE appliance. This enables a third party to apply the same hash function to the keys installed on the TE appliance, compare the hash result to previously computed and stored hash values for the stored key and verify that the correct keys are installed.
Moreover, the user interface enables a user or administrator to specify the list of fields to be processed by the TE Appliance. This is a list of regular expressions that identify Transparent Encryption fields. For example, setting “^——.*” as a delimiter implies that any field matching the regular expression “^——.*” is a Transparent Encryption field. For example, “——password” and “——creditcard” will be processed.
The user interface also allows an administrator to specify access controls to various keys installed on the module. For example, with reference to
Transparent encryption on a TE Appliance or web security appliance has many important applications. These applications include, but are not limited to, protecting credit card numbers/information, protecting sensitive user information, protecting passwords, providing integrity for cookies, and functioning as a key server.
Protecting sensitive user information, such as credit card numbers/information and bank account numbers/information, is a most natural application for transparent encryption.
The front-end TE Appliance 102 of an embodiment is configured to inspect all requests entering the site via the network 108 and the client browsers 106. When a user request contains sensitive user data, the TE Appliance 102 is configured to encrypt the data using one of the installed keys 402. The server system 104 receives only the encrypted data. This encrypted data is stored in at least one database associated with the host web site 104.
The backend systems 404 connected to the server system 104 often need access to the sensitive user data. For example, with credit card numbers, the server system 104, or web site, often has to send the numbers to a financial clearing house 404 during the course of a transaction. Therefore, the server system 104 uses another TE Appliance 204 at the back-end. The back-end TE Appliance 204 of an embodiment is configured to use the installed keys 402 to decrypt all sensitive data passing through it enroute to the network 406 and back-end systems 404. This way, the credit card number is decrypted immediately before it is sent to the clearing house 404. Again, none of the host web site internal systems 104 see the unencrypted credit card number. The network 406 can be a proprietary network, or can be the same type as network 108.
Referring to
As a result of using this scheme, hackers that successfully break into the database only recover hashed passwords. Hashed passwords do not assist the hacker in logging into the site. Furthermore, the hacker is not able to mount an offline dictionary attack on the hashed passwords because the hacker does not have the key or keys used by the TE Appliance to hash the passwords. Hence, the TE Appliance prevents dictionary attacks on user passwords.
The TE Appliance of an embodiment also provides integrity for HTTP cookies. Typically, the HTTP cookies are used to store state on a user's web browser. The web site can send a cookie to the user and then retrieve the cookie from the user at a later time. Unfortunately, there is no mechanism for ensuring that users do not maliciously modify cookies while they reside on the user's machine. The TE Appliance can be used to overcome this problem.
When a web site sends a cookie to the user the TE Appliance appends a checksum or MAC to the cookie. When the user sends the cookie back to the site the TE Appliance can verify the checksum/MAC. If the checksum/MAC is not verified, the TE Appliance rejects the user's request. Otherwise, it forwards the user's request into the web site.
Web site administrators frequently place all secret keys on a single server called a key server. When a processing component of the site needs to apply cryptographic operations to data (e.g., encrypt, decrypt, or MAC), the processing component contacts the key server and requests that the key server perform this task. Currently there are no standard protocols for communicating with a key server. Each site implements a site-specific mechanism.
The TE Appliance of an embodiment functions as a key server. This is accomplished by installing the site's secret keys on the TE Appliance. The site's processing components or processors then issue standard HTTP requests to the TE Appliance in order to encrypt, decrypt, or MAC specified data. The response from the TE Appliance also uses the standard HTTP protocol. Hence, the TE Appliance is a convenient way for implementing a key server using standard web protocols.
Aspects of the invention can also be practiced in distributed computing environments where certain tasks or modules are performed by remote processing devices and which are linked through a communications network, such as a Local Area Network (“LAN”), Metropolitan Area Network (“MAN”), Wide Area Network (“WAN”), or the Internet. In a distributed computing environment, program modules or sub-routines may be located in both local and remote memory storage devices. Aspects of the invention described herein may be stored or distributed on computer-readable media, including magnetic and optically readable and removable computer disks, hard-wired or preprogrammed in chips (e.g., EEPROM semiconductor chips), as well as distributed electronically over the Internet or over other networks (including wireless networks). Those skilled in the relevant art will recognize that portions of the invention reside on a server computer, while corresponding portions reside on a client computer. Data structures and transmission of data particular to aspects of the invention are also encompassed within the scope of the invention. In general, while hardware platforms, such as the personal computers and remote computers, are described herein, aspects of the invention are equally applicable to nodes on a network having corresponding resource locators to identify such nodes.
The elements and acts of the various embodiments described above can be combined to provide further embodiments. In general, alternatives and alternative embodiments described herein are substantially similar to previously described embodiments, and common elements and acts or functions are identified by the same reference numbers. Only significant differences in construction or operation are described in detail.
One skilled in the relevant art will appreciate that the concepts of the invention can be used in various environments other than the Internet. For example, the concepts can be used in any electronic transaction environment. In general, a display description may be in HTML format, email format or any other format suitable for displaying information (including character/code-based formats, algorithm-based formats (e.g., vector generated), and bitmapped formats). Also, various communication channels may be used, such as a local area network, metropolitan area network, wide area network, or a point-to-point dial-up connection instead of the Internet. The server system may comprise any combination of hardware or software that can support these concepts. In particular, a web server may actually include multiple computers. A client system may comprise any combination of hardware and software that interacts with the server system. The client systems may include television-based systems, Internet appliances and various other consumer products through which transactions may be conducted, such as wireless computers (palm-based, wearable, mobile phones, etc.).
Unless the context clearly requires otherwise, throughout the description and the claims, the words “comprise,” “comprising,” and the like are to be construed in an inclusive sense as opposed to an exclusive or exhaustive sense; that is to say, in a sense of “including, but not limited to.” Words using the singular or plural number also include the plural or singular number respectively. Additionally, the words “herein,” “above,” “below” and words of similar import, when used in this application, shall refer to this application as a whole and not to any particular portions of this application.
The description herein of illustrated embodiments of the invention is not intended to be exhaustive or to limit the invention to the precise form disclosed. While specific embodiments of, and examples for, the invention are described herein for illustrative purposes, various equivalent modifications are possible within the scope of the invention, as those skilled in the relevant art will recognize.
All of the references and U.S. patents and applications referenced herein are incorporated herein by reference. Aspects of the invention can be modified, if necessary, to employ the systems, functions and concepts of the various patents and applications described herein to provide yet further embodiments of the invention.
These and other changes can be made to the invention in light of the detailed description herein. In general, in the following claims, the terms used should not be construed to limit the invention to the specific embodiments disclosed in the specification and the claims, but should be construed to include all electronic systems that operate under the claims to provide secure electronic transactions. Accordingly, the invention is not limited by the disclosure, but instead the scope of the invention is to be determined entirely by the claims.
While certain aspects of the invention are presented below in certain claim forms, the inventors contemplate the various aspects of the invention in any number of claim forms. For example, while only one aspect of the invention is recited as embodied in a computer-readable medium, other aspects may likewise be embodied in a computer-readable medium. Accordingly, the inventors reserve the right to add additional claims after filing the application to pursue such additional claim forms for other aspects of the invention.
This application claims the benefit of U.S. Patent Application Nos. 60/259,754 and 60/259,786 filed Jan. 4, 2001, Ser. Nos. 09/877,302 and 09/877,655 filed Jun. 8, 2001, and Ser. No. 09/901,350 filed Jul. 9, 2001, all of which are currently pending.
Number | Name | Date | Kind |
---|---|---|---|
4386416 | Giltner | May 1983 | A |
4964164 | Fiat | Oct 1990 | A |
5142272 | Kondo | Aug 1992 | A |
5222133 | Chou et al. | Jun 1993 | A |
5463702 | Trueblood | Oct 1995 | A |
5557712 | Guay | Sep 1996 | A |
5734744 | Wittenstein | Mar 1998 | A |
5764235 | Hunt et al. | Jun 1998 | A |
5825917 | Suzuki | Oct 1998 | A |
5828832 | Holden et al. | Oct 1998 | A |
5848159 | Collins et al. | Dec 1998 | A |
5923756 | Shambroom | Jul 1999 | A |
5963642 | Goldstein | Oct 1999 | A |
5999629 | Heer et al. | Dec 1999 | A |
6021198 | Anigbogu | Feb 2000 | A |
6061448 | Smith et al. | May 2000 | A |
6073242 | Hardy et al. | Jun 2000 | A |
6081598 | Dai | Jun 2000 | A |
6081900 | Subramaniam et al. | Jun 2000 | A |
6094485 | Weinstein et al. | Jul 2000 | A |
6098093 | Bayeh et al. | Aug 2000 | A |
6098096 | Tsirigotis et al. | Aug 2000 | A |
6105012 | Chang et al. | Aug 2000 | A |
6154542 | Crandall | Nov 2000 | A |
6202157 | Brownlie et al. | Mar 2001 | B1 |
6216212 | Challenger et al. | Apr 2001 | B1 |
6233565 | Lewis et al. | May 2001 | B1 |
6233577 | Ramasubramani et al. | May 2001 | B1 |
6237033 | Doeberl et al. | May 2001 | B1 |
6321201 | Dahl | Nov 2001 | B1 |
6396926 | Takagi et al. | May 2002 | B1 |
6397330 | Elgamal et al. | May 2002 | B1 |
6442607 | Korn et al. | Aug 2002 | B1 |
6473802 | Masters | Oct 2002 | B2 |
6477646 | Krishna et al. | Nov 2002 | B1 |
6502135 | Munger et al. | Dec 2002 | B1 |
6519365 | Kondo et al. | Feb 2003 | B2 |
6553393 | Eilbott et al. | Apr 2003 | B1 |
6578061 | Aoki et al. | Jun 2003 | B1 |
6584567 | Bellwood et al. | Jun 2003 | B1 |
6587866 | Modi et al. | Jul 2003 | B1 |
6598167 | Devine et al. | Jul 2003 | B2 |
6615276 | Mastrianni et al. | Sep 2003 | B1 |
6621505 | Beauchamp et al. | Sep 2003 | B1 |
6640302 | Subramaniam et al. | Oct 2003 | B1 |
6678733 | Brown et al. | Jan 2004 | B1 |
6681327 | Jardin | Jan 2004 | B1 |
6694323 | Bumbulis | Feb 2004 | B2 |
6751677 | Ilkicki et al. | Jun 2004 | B1 |
6757823 | Rao et al. | Jun 2004 | B1 |
6763459 | Corella | Jul 2004 | B1 |
6785810 | Lirov et al. | Aug 2004 | B1 |
6874089 | Dick et al. | Mar 2005 | B2 |
6886095 | Hind et al. | Apr 2005 | B1 |
6898577 | Johnson | May 2005 | B1 |
6915427 | Maruyama et al. | Jul 2005 | B2 |
6941459 | Hind et al. | Sep 2005 | B1 |
6963980 | Mattsson | Nov 2005 | B1 |
6990636 | Beauchamp et al. | Jan 2006 | B2 |
6990660 | Moshir et al. | Jan 2006 | B2 |
7111005 | Wessman | Sep 2006 | B1 |
7137143 | Chawla et al. | Nov 2006 | B2 |
7152244 | Toomey | Dec 2006 | B2 |
7266699 | Newman et al. | Sep 2007 | B2 |
7272229 | Nakano et al. | Sep 2007 | B2 |
7325129 | Mattsson et al. | Jan 2008 | B1 |
7415429 | Rollins et al. | Aug 2008 | B2 |
20020012473 | Kondo et al. | Jan 2002 | A1 |
20020015497 | Maruyama et al. | Feb 2002 | A1 |
20020016911 | Chawla et al. | Feb 2002 | A1 |
20020039420 | Shacham et al. | Apr 2002 | A1 |
20020066038 | Mattsson | May 2002 | A1 |
20020073232 | Hong et al. | Jun 2002 | A1 |
20020087884 | Shacham et al. | Jul 2002 | A1 |
20020100036 | Moshir et al. | Jul 2002 | A1 |
20020112167 | Boneh et al. | Aug 2002 | A1 |
20030014650 | Freed et al. | Jan 2003 | A1 |
20030039362 | Califano et al. | Feb 2003 | A1 |
20030046572 | Newman et al. | Mar 2003 | A1 |
20030065919 | Albert et al. | Apr 2003 | A1 |
20030097428 | Afkhami | May 2003 | A1 |
20030101355 | Mattsson | May 2003 | A1 |
20030123671 | He et al. | Jul 2003 | A1 |
20030156719 | Cronce | Aug 2003 | A1 |
20030197733 | Beauchamp | Oct 2003 | A1 |
20030204513 | Bumbulis | Oct 2003 | A1 |
20040015725 | Boneh et al. | Jan 2004 | A1 |
20040255140 | Margolus et al. | Dec 2004 | A1 |
20050004924 | Baldwin | Jan 2005 | A1 |
20060041533 | Koyfman | Feb 2006 | A1 |
20060149962 | Fountain et al. | Jul 2006 | A1 |
20070074047 | Metzger et al. | Mar 2007 | A1 |
20070079140 | Metzger et al. | Apr 2007 | A1 |
20070079386 | Metzger et al. | Apr 2007 | A1 |
Number | Date | Country |
---|---|---|
0 946 018 | Sep 1999 | EP |
WO 0103398 | Jan 2001 | WO |
WO 02101605 | Dec 2002 | WO |
Number | Date | Country | |
---|---|---|---|
20020112167 A1 | Aug 2002 | US |
Number | Date | Country | |
---|---|---|---|
60259754 | Jan 2001 | US | |
60259786 | Jan 2001 | US |