# Patent

## Title
Secure graphical objects in web documents

## Abstract

The invention provides a method and system for presenting information in a web document using a program applet to restrict further copying or redistribution. The web document includes a first region in which a graphical element or other information is displayed, and a second region covering the first region in which a program applet is invoked by a server for the web document. The program applet is dynamically created upon access, and assigned a serial number. The program applet contacts the server for permission to display the graphical element or other information; thus, the server can control, by granting or denying permission, when and if the program applet displays the graphical or other information. The program applet can be subjected by the server to one or more of a variety of restrictions, such as: a limit on the number of times the information is displayed, a time limit, a requirement for a password or other security authentication, a requirement that the program applet is executing at a selected device or from a selected web document, or other requirements the server may deem fit to impose.

## Background
This application is a continuation of U.S. patent application Ser. No. 10/418,951, filed on Apr. 18, 2003, now U.S. Pat. No. 7,325,077 which is a continuation of U.S. patent application Ser. No. 08/918,096, filed on Aug. 21, 1997, now U.S. Pat. No. 6,564,250.


BACKGROUND
1. Field of the Invention
The invention relates to web documents.
2. Description of the Related Art
“Web documents” are hypertext documents, including information and capable of including hypertext pointers to other web documents. Other web documents can be located on the same computer or on another computer in a network of computers, the largest such network of which is commonly known as the “internet” (but such networks may be independent networks or may be part of a private network commonly known as an “intranet”). The information in web documents can include text, graphical elements, program applets, and other information formats.
One problem which has arisen in the art is that servers of web documents desire to be able to present information to web clients, without those web clients being able to copy that information and retain it permanently. This problem is particularly acute for graphical information, which must be transmitted to the web client display, but once transmitted can be retained and even edited by the web client using graphical editing tools.
Known web documents sometimes include reduced-size (“thumbnail”) graphical elements, which substitute for full size graphical elements and allow the user of the web client to have an idea of the nature of the full size graphical element. Payment can be required before the user of the web client is given access to the full size graphical element.
While this method has some value in preventing wholesale copying of graphical elements and other information from web documents, it suffers from several drawbacks. First, the web client can copy the information from the thumbnail graphical element, and the user of that web client can use graphical editing tools to enhance the quality of the thumbnail graphical element. Second, once the user has paid for the full size graphical element, there is nothing (other than possible legal restrictions) preventing the user from copying and redistributing that full size graphical element.
Accordingly, it would be desirable to provide a method and system for presenting graphical elements and other information in web documents, without allowing web clients unrestricted ability to copy and redistribute that information. This advantage is achieved in an embodiment of the invention in which each graphical element in a web document is protected by a program applet, which can display the graphical element or other information for a limited time.
SUMMARY
The invention provides a method and system for presenting information in a web document using a program applet to restrict further copying or redistribution. The web document includes a first region in which a graphical element or other information is displayed, and a second region covering the first region in which a program applet is invoked by a server for the web document. The program applet is dynamically created upon access, and assigned a serial number. The program applet contacts the server for permission to display the graphical element or other information; thus, the server can control, by granting or denying permission, when and if the program applet displays the graphical or other information.
In a preferred embodiment, the program applet can be subjected by the server to one or more of a variety of restrictions, such as: a limit on the number of times the information is displayed, a time limit, a requirement for a password or other security authentication, a requirement that the program applet is executing at a selected device or from a selected web document, or other requirements the server may deem fit to impose.



BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 shows a block diagram of a system including a web client and a web server, the web server having a web document including graphical information protected by a program applet.



DETAILED DESCRIPTION
In the following description, a preferred embodiment of the invention is described with regard to preferred process steps and data structures. Those skilled in the art would recognize after perusal of this application that embodiments of the invention can be implemented using general purpose processors or special purpose processors adapted to particular process steps and data structures described herein, and that implementation of the process steps and data structures described herein would not require undue experimentation or further invention.
Inventions described herein can be used in conjunction with inventions described in the following applications:
Application Ser. No. 08/918,096, Filed Aug. 21, 1997, in the name of the same inventor, titled “Micro-Client For Internet Appliance”, now U.S. Pat. No. 6,564,250; and
Application Ser. No. 08/918,698, Filed Aug. 21, 1997, in the name of the same inventor, titled “Active Electronic Mail”, now U.S. Pat. No. 6,542,923.
Each of these applications is hereby incorporated by reference as if fully set forth herein.
System Including Web Client and Server
FIG. 1 shows a block diagram of a system including a web client and a web server, the web server having a web document including graphical information protected by a program applet.
The system 100 includes a web client 110 and a web server 120 coupled by a communication link 130. The web client 110 can be responsive to an operator or user. The web client 110 issues web commands 111 and transmits those web commands 111 to the web server 120 using the communication link 130. The web server 120 response to those web commands 111 and serves a web document 121 to the web client 110 using the communication link 130.
In a preferred embodiment, the communication link 130 includes a network of computers, such as the network of networks known as the “internet”, but can in addition or instead include a private network sometimes known as an “intranet” or an “extranet”. In alternative embodiments, the communication link 130 may include other techniques for communication between the web client 110 and the web server 120, such as for example a frame relay network, or local area network, or a switched telephone network.
The web document 121 includes information which the web server 120 transmits to the web client 110 for presentation to the user. For example, this information can include text, graphical elements, program applets, and information in other formats.
The web document 121 can also include a set of regions 122 which the user may select and which the web client 110 may thus direct the web server 120 to take further action in response thereto. For example, the web client 110 can direct the web server 120 to transmit further information to the web client 110 for presentation to the user, the web client 110 can direct the web server 120 to follow a hyperlink and thus transmit a related web document 121 to the web client 110, or the web client 110 can direct the web server 120 to invoke a program at the web server 120 for generating further information for transmission to the web client 110 and presentation to the user.
Information Protected by Program Applet
A first region 122 of the web document 121 includes a graphical element 123 which is presented to the user as part of the web document 121. A second region 122 of the web document 121 includes a program applet 124 which is transmitted to and invoked at the web client 110 in response to the user selecting that second region 122. The second region 122 is positioned to completely cover the first region 122, so if the user attempts to select the first region 122 (and thus to select the graphical element 123), the second region 122 (and thus the program applet 124) is instead selected. Thus, it is not possible for the user to select the graphical element 123 directly, as all locations in the first region 122 instead operate to select the program applet 124.
The program applet 124 is dynamically created at or about the time of selection by the server 120, and is given a unique ID by the server 120. In a preferred embodiment, the unique ID includes a serial number and a checksum, encrypted by the server 120 so that the unique ID cannot be easily spoofed by the user.
The program applet 124 is disposed to execute at the web client 110 and to present the graphical element 123 in further detail (or other further information) to the user at the web client 110. Each time the program applet 124 executes to present the further information, it contacts the server 120 for permission to do so. The server 120 associates the specific program applet 124 having the unique ID with a set of conditions under which the program applet 124 can continue to display the further information to the user.
In a preferred embodiment, the set of conditions includes one or more of the following:
The program applet can be limited to a selected number of times it is permitted to present the further information (for example, no more than one time).
The program applet can be limited to a selected period of time it is permitted to present the further information (for example, for no more than one hour from creation, or only during selected times of day or days of the week).
The program applet can be limited to presenting the further information only if the user presents a selected authenticator (such as a password associated with the specific program applet).
The program applet can be limited to presenting the further information from a selected device, network domain, or web document (such as only from the original web document, or only from the specific device hosting the server).
The program applet can be limited to presenting the further information only upon satisfaction of a financial condition (such as upon a selected payment from the user, or upon confirmation by the server of a license for the user).
The program applet can be limited to selected types of presentation of the further information (such as being able to present, but refusing to print or save, the further information).
In a preferred embodiment, the server 120 can modify the conditions associated with the specific program applet 124, per unique ID, or can dynamically create a new specific program applet 124 with a new unique ID, upon satisfaction of selected conditions by the user. For example, the server 120 can require that the user pay for further use, or obtain administrative permission for further use, or impose other conditions on further use, of the program applet 124.
ALTERNATIVE EMBODIMENTS
Although preferred embodiments are disclosed herein, many variations are possible which remain within the concept, scope, and spirit of the invention, and these variations would become clear to those skilled in the art after perusal of this application.

## Claims

1. An apparatus comprising a computing device having instructions that in response to being executed by the computing device, enable the computing device to cause performance of operations comprising:
providing a document in response to a request from a client for the document, wherein the document includes a first region comprising protected content of the document and a second region comprising unprotected content of the document and the first region of the document, wherein at least a portion of the protected content is visibly presented as part of the document, and wherein the first region and the second region are parts of same document; and
associating a software component with the second region, the software component being sent by the computing device and being executable at the client to contact the computing device for permission to access the protected content, wherein the second region is located over the first region to protect the first region and to keep unauthorized access away from the first region, and wherein an attempt to access the first region causes the second region to be accessed and causes execution of the software component.

2. The apparatus as recited in claim 1 wherein the instructions are executable by the computing device to selectively permit access to the protected content dependent on one or more conditions.

3. The apparatus as recited in claim 2 wherein the one or more conditions comprise a limit on a number of permitted accesses to the protected content.

4. The apparatus as recited in claim 2 wherein the one or more conditions comprise an access time limit.

5. The apparatus as recited in claim 2 wherein the one or more conditions comprise a requirement for authentication.

6. The apparatus as recited in claim 2 wherein the one or more conditions comprise a limit on a location at which the software component executes during use.

7. The apparatus as recited in claim 6 wherein the location is a network domain.

8. The apparatus as recited in claim 6 wherein the location is a device.

9. The apparatus as recited in claim 6 wherein the limit is applied to the document.

10. The apparatus as recited in claim 2 wherein the one or more conditions comprise a limit on a type of access to the protected content.

11. The apparatus as recited in claim 10 wherein the type comprises read-only access.

12. The apparatus as recited in claim 2 wherein the one or more conditions comprise a limit that prevents print access to the protected content.

13. The apparatus as recited in claim 2 wherein the one or more conditions comprise a limit that prevents copying of the protected content.

14. The apparatus as recited in claim 2 wherein the one or more conditions comprise satisfaction of a financial condition.

15. The apparatus as recited in claim 1 wherein the instructions are configured to cause the computing device to associate the software component with the document in response to a request to access the protected content.

16. The apparatus as recited in claim 15 wherein the instructions are configured to cause the computing device to generate the software component in response to the request.

17. The apparatus as recited in claim 1 wherein the software component is configured to provide a unique identifier when requesting permission to access the protected content.

18. The apparatus as recited in claim 1 wherein the protected content comprises a graphical image.

19. The apparatus as recited in claim 1 wherein the protected content is text.

20. The apparatus as recited in claim 1 wherein the software component is an applet.

21. A method implemented by a computer, comprising:
providing a document in response to a request to the computer from a client for the document, the document including a first region comprising protected content of the document and a second region comprising unprotected content of the document and the first region of the document, wherein at least a portion of the protected content is visibly presented as part of the document, and wherein the first region and the second region are parts of same document;
associating a software component with the second region, wherein the associating is performed by the computer;
using the computer to transmit the document and the software component to the client over a network; and
receiving, at the computer, a request from the software component to access the protected content, the request formed in response to an attempt to access the protected content of the first region of the document through execution of the software component at the client, wherein the second region is located over the first region to protect the first region and to keep unauthorized access away from the first region, and wherein an attempt to access the first region causes the second region to be accessed and causes execution of the software component.

22. The method as recited in claim 21 further comprising selectively permitting access to the protected content dependent on one or more conditions.

23. The method as recited in claim 21 wherein the software component is an applet.

24. A method implemented by a computer, comprising:
issuing a request to a server for a document, the document having a first region comprising protected content of the document and a second region comprising unprotected content of the document and the first region of the document, wherein at least a portion of the protected content is visibly presented as part of the document, and wherein the first region and the second region are parts of same document; and
contacting the server for permission to access the protected content in response to an input indicating an attempt to access the protected content of the first region, the contacting performed responsive to execution, by the computer, of a software component that is associated with the second region and is received from the server, wherein the second region is located over the first region to protect the first region and to keep unauthorized access away from the first region, and wherein an attempt to access the first region causes the second region to be accessed and causes execution of the software component.

25. The method as recited in claim 24 further comprising: displaying the protected content in response to the server granting permission; and not displaying the protected content in response to the server denying permission.

26. A method implemented by a computer, comprising:
contacting a server that sourced a document in response to an input indicating an attempt to access protected content of the document, wherein the document includes a first region comprising the protected content of the document and a second region comprising unprotected content of the document and the first region of the document, wherein at least a portion of the protected content is visibly presented as part of the document, and wherein the first region and the second region are parts of same document, wherein the contacting is initiated in response to execution, by the computer, of a software component that is associated with the second region and that was provided to the computer responsive to a request for the document; and
displaying the protected content in response to receiving permission from the server, wherein the second region is located over the first region to protect the first region and to keep unauthorized access away from the first region, and wherein an attempt to access the first region causes the second region to be accessed and causes execution of the software component.

27. The method as recited in claim 26 further comprising preventing display of the protected content in response to receiving a denial of permission from the server.

28. The method as recited in claim 26 wherein the contacting of the server comprises transmitting a unique identifier to the server that was associated with the software component in response to the request for the document.