The invention relates generally to computers and digital processing systems, and more specifically to a system and method providing improved error detection related to transmission of data over a communications link.
The development and expanded use of the Internet in recent decades has provided both opportunities and risks for users. The same network that enables improved communication, access to information, and more affordable marketing presence is not without hazards. Generally speaking, those hazards include the theft of information, corruption or destruction of information, breach of confidential information, and intentional denial of service.
This invention addresses the risk of data corruption where a server sends parameters out to a user space and expects to receive the same values in a subsequent communication. As an example, consider a Web site that is hosted on a server and is accessible by any number of client users. For purposes here, a client, user, or client user refers to either a computer workstation configured with a Web browser or the user of such a browser, as appropriate. Where the client is doing more than just reading information posted on the Web site, there may be a two-way exchange of data between the Web server and the client. A common implementation of electronic commerce, for instance, is where a Web site contains products that a user can purchase on-line for a specified price. Such a presentation may reasonably be interpreted as an offer for the sale of goods in the contractual sense: it provides terms that can be accepted by a buyer without subsequent action by the seller. Suppose the Uniform Resource Locator (URL) contains not only the location of the Web page, but also a hidden pricing parameter for a product contained on the Web page. There is a risk that, even though hidden, a user might tamper with the value of the price parameter (most likely changing it to a lower value) prior to placing an on-line order. If the transaction is automatically processed using the changed parameter, then the user's alteration could result in economic harm to the seller.
Unfortunately, it is very difficult to detect or prevent this type of tampering. Security measures that restrict users, for example by employing a firewall, provide little utility since the nature of Web-based e-commerce is that new and previously unknown users must have easy access in order to transact business with the Web server. Moreover, encryption, hashing, and other techniques known in the art designed to detect tampering or to secure data as it passes between point A and point B (between a server and client, in this case) are not adapted to detect tampering of data while it resides at point B.
Thus, server applications that pass parameters through user space, and operate on the assumption that the value of one or more parameters will not be changed by a user, are exposed to a vulnerability not effectively managed by known security measures. This and other drawbacks and limitations exist in known approaches to error detection.
The invention overcoming these and other drawbacks in the art relates to a system and method that provides an improved technique for error detection related to the transmission of data over a network.
It is an object of the invention to mitigate the risk to server applications where parameter values are passed through a user space.
It is another object of the invention to provide the added security with minimal impact on the speed at which a server application can be executed.
It is another object of the invention to not unduly restrict access to server-based applications by remote users.
In one embodiment of the invention, a Web server communicates with a client over the Internet. The client may be configured with a Web browser allowing access to an application that resides on the Web server. The server application may require that a parameter value be passed to the client in a URL, then returned to the server in a subsequent communication. Before sending the parameter value to the client, the server may perform a pre-processing step, resulting in a formatted data string. The server may then transmit the formatted data string to the client. After the client returns the formatted data string and other data to the server, the server may perform a post-processing step to verify that the parameter value or values have not been tampered with. Thus, the pre-processing and post-processing steps operate together to detect whether parameters that pass through a user space have been tampered with. This is a departure from techniques that merely detect tampering of data as it passes between two nodes of a network.
The following drawings and descriptions further describe the invention, including several different embodiments of the major system components and processes. The construction of such a system, implementation of such a process, and advantages will be clear to a person skilled in the art of error detection in communication systems.
The invention relates to a data security risk that arises when an application on a server passes parameter values through user space.
Server 100 is configured to provide certain pre-processing and post-processing functions that enable detection of changes in parameter values that originate at server 100, are transmitted to client 110, and are subsequently returned to server 100. Server 100 may be or include, for instance, a workstation running the Microsoft Windows™ NT™, Windows™ 2000, Unix, Linux, Xenix, IBM AIX, Hewlett-Packard UX, Novell Netware™, Sun Microsystems Solaris™, OS/2™, BeOS™, Mach, Apache, OpenStep™ or other operating system or platform.
Client 110 may be a user workstation that may allow for remote access to applications that reside on server 100. Client 110 may also run its own applications, and may exchange data with server 100. Client 110 may be or include, for instance, a personal computer running the Microsoft Windows™ 95, 98, Millenium™, NT™, or 2000, Windows™CE™, PalmOS™, Unix, Linux, Solaris™, OS/2™, BeOS™, MacOS™ or other operating system or platform. Client 110 may include a microprocessor such as an Intel x86-based device, a Motorola 68K or PowerPC™ device, a MIPS, Hewlett-Packard Precision™, or Digital Equipment Corp. Alpha™ RISC processor, a microcontroller or other general or special purpose device operating under programmed control. Client 110 may furthermore include electronic memory such as RAM (random access memory) or EPROM (electronically programmable read only memory), storage such as a hard drive, CDROM or rewritable CDROM or other magnetic, optical or other media, and other associated components connected over an electronic bus, as will be appreciated by persons skilled in the art. Client 110 may also be or include a network-enabled appliance such as a WebTV™ unit, radio-enabled Palm™ Pilot or similar unit, a set-top box, a networkable game-playing console such as Sony Playstation™ or Sega Dreamcast™, a browser-equipped cellular telephone, or other TCP/IP client or other device. It should be appreciated that in other embodiments, there may be multiple clients that have access to any given server.
Communication link 120 connects server 100 to client 110. Communications link 120 may be, include or interface to any one or more of, for instance, the Internet, an intranet, a PAN (Personal Area Network), a LAN (Local Area Network), a WAN (Wide Area Network) or a MAN (Metropolitan Area Network), a frame relay connection, an Advanced Intelligent Network (AIN) connection, a synchronous optical network (SONET) connection, a digital T1, T3, E1 or E3 line, Digital Data Service (DDS) connection, DSL (Digital Subscriber Line) connection, an Ethernet connection, an ISDN (Integrated Services Digital Network) line, a dial-up port such as a V.90, V.34 or V.34bis analog modem connection, a cable modem, an ATM (Asynchronous Transfer Mode) connection, or FDDI (Fiber Distributed Data Interface) or CDDI (Copper Distributed Data Interface) connections. Communications link 120 may furthermore be, include or interface to any one or more of a WAP (Wireless Application Protocol) link, a GPRS (General Packet Radio Service) link, a GSM (Global System for Mobile Communication) link, a CDMA (Code Division Multiple Access) or TDMA (Time Division Multiple Access) link such as a cellular phone channel, a GPS (Global Positioning System) link, CDPD (cellular digital packet data), a RIM (Research in Motion, Limited) duplex paging type device, a Bluetooth radio link, or an IEEE 802.11-based radio frequency link. Communications link 120 may yet further be, include or interface to any one or more of an RS-232 serial connection, an IEEE-1394 (Firewire) connection, a Fibre Channel connection, an IrDA (infrared) port, a SCSI (Small Computer Serial Interface) connection, a USB (Universal Serial Bus) connection or other wired or wireless, digital or analog interface or connection.
Server 100 and client 110 may utilize networked enabled code related to communication link 120. Network enabled code may be, include or interface to, for example, Hyper Text Markup Language (HTML), Dynamic HTML, Extensible Markup Language (XML), Extensible Stylesheet Language (XSL), Document Style Semantics and Specification Language (DSSSL), Cascading Style Sheets (CSS), Synchronized Multimedia Integration Language (SMIL), Java™, Jini™, C, C++, Perl, UNIX Shell, Visual Basic or Visual Basic Script, Virtual Reality Markup Language (VRML) or other compilers, assemblers, interpreters or other computer languages or platforms.
Send step 220 and receive step 230 may function by passing data strings in a Uniform Resource Locator (URL), in a cookie, or by other techniques known in the art.
Notwithstanding the fact that parameter values in this instance are hidden, a client user may seek to tamper with the values contained in the URL, for example by decreasing the unit price parameter from a value of 100 to a value of 1. Such a change is depicted in
The specification and examples provided above should be considered exemplary only. It is contemplated that the appended claims will cover any other such embodiments or modifications as fall within the true scope of the invention.
Number | Name | Date | Kind |
---|---|---|---|
3896266 | Waterbury | Jul 1975 | A |
3938091 | Atalla et al. | Feb 1976 | A |
4321672 | Braun et al. | Mar 1982 | A |
4567359 | Lockwood | Jan 1986 | A |
4633397 | Macco | Dec 1986 | A |
4695880 | Johnson | Sep 1987 | A |
4696491 | Stenger | Sep 1987 | A |
4713761 | Sharpe | Dec 1987 | A |
4725719 | Oncken et al. | Feb 1988 | A |
4745468 | Von Kohorn | May 1988 | A |
4799156 | Shavit et al. | Jan 1989 | A |
4823264 | Deming | Apr 1989 | A |
4882675 | Nichtberger et al. | Nov 1989 | A |
4926255 | Von Kohorn | May 1990 | A |
4964043 | Galvin | Oct 1990 | A |
4992940 | Dworkin | Feb 1991 | A |
5016270 | Katz | May 1991 | A |
5034807 | Von Kohorn | Jul 1991 | A |
5050207 | Hitchcock | Sep 1991 | A |
5057915 | Von Kohorn | Oct 1991 | A |
5084816 | Boese et al. | Jan 1992 | A |
5157717 | Hitchcock | Oct 1992 | A |
5220501 | Lawlor et al. | Jun 1993 | A |
5233654 | Harvey et al. | Aug 1993 | A |
5265033 | Vajk et al. | Nov 1993 | A |
5317683 | Hager | May 1994 | A |
5321841 | East et al. | Jun 1994 | A |
5351186 | Bullock et al. | Sep 1994 | A |
5412708 | Katz | May 1995 | A |
5420405 | Chasek | May 1995 | A |
5424938 | Wagner et al. | Jun 1995 | A |
5446740 | Yien et al. | Aug 1995 | A |
5450134 | Legate | Sep 1995 | A |
5450537 | Hirai | Sep 1995 | A |
5467269 | Flaten | Nov 1995 | A |
5473143 | Vak et al. | Dec 1995 | A |
5473732 | Change | Dec 1995 | A |
5485370 | Moss et al. | Jan 1996 | A |
5506580 | Whiting et al. | Apr 1996 | A |
5511117 | Zazzera | Apr 1996 | A |
5532920 | Hartrick et al. | Jul 1996 | A |
5537314 | Kanter | Jul 1996 | A |
5537437 | Kaku | Jul 1996 | A |
5537473 | Saward | Jul 1996 | A |
5544086 | Davis et al. | Aug 1996 | A |
5557334 | Legate | Sep 1996 | A |
5557518 | Rosen | Sep 1996 | A |
5568489 | Yien et al. | Oct 1996 | A |
5570465 | Tsakanikas | Oct 1996 | A |
5590197 | Chen et al. | Dec 1996 | A |
5592560 | Deaton | Jan 1997 | A |
5594837 | Noyes | Jan 1997 | A |
5598557 | Doner et al. | Jan 1997 | A |
5606496 | D'Agostino | Feb 1997 | A |
5621789 | McCalmont et al. | Apr 1997 | A |
5621812 | Deaton | Apr 1997 | A |
5625767 | Bartell et al. | Apr 1997 | A |
5634101 | Blau | May 1997 | A |
5638457 | Deaton | Jun 1997 | A |
5644493 | Motai et al. | Jul 1997 | A |
5652786 | Rogers | Jul 1997 | A |
5653914 | Holmes et al. | Aug 1997 | A |
5657383 | Gerber et al. | Aug 1997 | A |
5659165 | Jennings et al. | Aug 1997 | A |
5664115 | Fraser | Sep 1997 | A |
5675662 | Deaton | Oct 1997 | A |
5684870 | Maloney et al. | Nov 1997 | A |
5699528 | Hogan | Dec 1997 | A |
5703344 | Bezy et al. | Dec 1997 | A |
5710886 | Christensen et al. | Jan 1998 | A |
5710887 | Chelliah et al. | Jan 1998 | A |
5710889 | Clark et al. | Jan 1998 | A |
5715298 | Rogers | Feb 1998 | A |
5727163 | Bezos | Mar 1998 | A |
5734838 | Robinson | Mar 1998 | A |
5740231 | Cohn | Apr 1998 | A |
5754840 | Rivette | May 1998 | A |
5758328 | Giovannoli | May 1998 | A |
5761647 | Boushy | Jun 1998 | A |
5761661 | Coussens et al. | Jun 1998 | A |
5765141 | Spector | Jun 1998 | A |
5774122 | Kojima et al. | Jun 1998 | A |
5778178 | Arunachalam | Jul 1998 | A |
5784562 | Diener | Jul 1998 | A |
5787403 | Randle | Jul 1998 | A |
5790650 | Dunn et al. | Aug 1998 | A |
5790785 | Klug | Aug 1998 | A |
5793861 | Haigh | Aug 1998 | A |
5794207 | Walker et al. | Aug 1998 | A |
5794221 | Egendorf | Aug 1998 | A |
5794259 | Kikinis | Aug 1998 | A |
5796395 | De Hond | Aug 1998 | A |
5802498 | Comesanas | Sep 1998 | A |
5802502 | Gell et al. | Sep 1998 | A |
5815657 | Williams | Sep 1998 | A |
5815683 | Vogler | Sep 1998 | A |
5819092 | Ferguson et al. | Oct 1998 | A |
5819285 | Damico et al. | Oct 1998 | A |
5825870 | Miloslavsky | Oct 1998 | A |
5826241 | Stein et al. | Oct 1998 | A |
5826245 | Sandberg-Diment | Oct 1998 | A |
5826250 | Trefler | Oct 1998 | A |
5832460 | Bednar et al. | Nov 1998 | A |
5832476 | Tada et al. | Nov 1998 | A |
5835580 | Fraser | Nov 1998 | A |
5838906 | Doyle et al. | Nov 1998 | A |
5842178 | Giovannoli | Nov 1998 | A |
5842211 | Horadan et al. | Nov 1998 | A |
5844553 | Hao et al. | Dec 1998 | A |
5845259 | West et al. | Dec 1998 | A |
5845260 | Nakano | Dec 1998 | A |
5847709 | Card et al. | Dec 1998 | A |
5848427 | Hyodo | Dec 1998 | A |
5862223 | Walker et al. | Jan 1999 | A |
5864830 | Armetta et al. | Jan 1999 | A |
5870456 | Rogers | Feb 1999 | A |
5870718 | Spector | Feb 1999 | A |
5870724 | Lawlor et al. | Feb 1999 | A |
5872848 | Romney et al. | Feb 1999 | A |
5873072 | Kight et al. | Feb 1999 | A |
5880769 | Nemirofsky et al. | Mar 1999 | A |
5884032 | Bateman et al. | Mar 1999 | A |
5884288 | Chang et al. | Mar 1999 | A |
5889863 | Weber | Mar 1999 | A |
5892900 | Ginter | Apr 1999 | A |
5892904 | Atkinson et al. | Apr 1999 | A |
5898780 | Liu | Apr 1999 | A |
5899982 | Randle | May 1999 | A |
5903881 | Schrader et al. | May 1999 | A |
5914472 | Foladare | Jun 1999 | A |
5915244 | Jack | Jun 1999 | A |
5918214 | Perkowski | Jun 1999 | A |
5918217 | Maggioncalda et al. | Jun 1999 | A |
5918239 | Allen | Jun 1999 | A |
5920847 | Kolling et al. | Jul 1999 | A |
5926812 | Hilsenrath et al. | Jul 1999 | A |
5933816 | Zeanah et al. | Aug 1999 | A |
5933817 | Hucal | Aug 1999 | A |
5933823 | Cullen et al. | Aug 1999 | A |
5933827 | Cole et al. | Aug 1999 | A |
5940812 | Tengel et al. | Aug 1999 | A |
5943656 | Crooks et al. | Aug 1999 | A |
5950173 | Perkowski | Sep 1999 | A |
5952641 | Korshun | Sep 1999 | A |
5953710 | Fleming | Sep 1999 | A |
5958007 | Lee | Sep 1999 | A |
5960411 | Hartman | Sep 1999 | A |
5963952 | Smith | Oct 1999 | A |
5963953 | Cram et al. | Oct 1999 | A |
5969318 | Mackenthun | Oct 1999 | A |
5970482 | Pham | Oct 1999 | A |
5970483 | Evans | Oct 1999 | A |
5982370 | Kamper | Nov 1999 | A |
5991751 | Rivette | Nov 1999 | A |
5991780 | Rivette et al. | Nov 1999 | A |
5995948 | Whitford et al. | Nov 1999 | A |
5999907 | Donner | Dec 1999 | A |
6005939 | Fortenberry | Dec 1999 | A |
6012088 | Li | Jan 2000 | A |
6014636 | Reeder | Jan 2000 | A |
6014638 | Burge | Jan 2000 | A |
6018714 | Risen | Jan 2000 | A |
6026429 | Jones | Feb 2000 | A |
6032147 | Williams | Feb 2000 | A |
6049835 | Gagnon | Apr 2000 | A |
6055637 | Hudson | Apr 2000 | A |
6061665 | Bahreman | May 2000 | A |
6064987 | Walker | May 2000 | A |
6081810 | Rosenzweig | Jun 2000 | A |
6088683 | Jalili | Jul 2000 | A |
6088700 | Larsen | Jul 2000 | A |
6098070 | Maxwell | Aug 2000 | A |
6105012 | Chang et al. | Aug 2000 | A |
6112181 | Shear | Aug 2000 | A |
6131810 | Weiss | Oct 2000 | A |
6134549 | Regnier | Oct 2000 | A |
6144948 | Walker | Nov 2000 | A |
6148293 | King | Nov 2000 | A |
6170011 | Macleod Beck | Jan 2001 | B1 |
6185242 | Arthur | Feb 2001 | B1 |
6189029 | Fuerst | Feb 2001 | B1 |
6195644 | Bowie | Feb 2001 | B1 |
6201948 | Cook | Mar 2001 | B1 |
6298330 | Gardenswartz et al. | Oct 2001 | B1 |
6389537 | Davis et al. | May 2002 | B1 |
6499105 | Yoshiura et al. | Dec 2002 | B1 |
6820202 | Wheeler et al. | Nov 2004 | B1 |
20010054003 | Chien | Dec 2001 | A1 |
20020010599 | Levison | Jan 2002 | A1 |