US20010000359A1 - Copyright protection of digital images transmitted over networks - Google Patents

Copyright protection of digital images transmitted over networks Download PDF

Info

Publication number
US20010000359A1
US20010000359A1 US09/731,544 US73154400A US2001000359A1 US 20010000359 A1 US20010000359 A1 US 20010000359A1 US 73154400 A US73154400 A US 73154400A US 2001000359 A1 US2001000359 A1 US 2001000359A1
Authority
US
United States
Prior art keywords
images
image
protected
user
web
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.)
Granted
Application number
US09/731,544
Other versions
US6353892B2 (en
Inventor
Daniel Schreiber
Andrew Goldman
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.)
Kioba Processing LLC
Original Assignee
Individual
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 claimed from IL12489598A external-priority patent/IL124895A0/en
Priority claimed from IL12709398A external-priority patent/IL127093A/en
Priority claimed from IL12786998A external-priority patent/IL127869A0/en
Application filed by Individual filed Critical Individual
Priority to US09/731,544 priority Critical patent/US6353892B2/en
Publication of US20010000359A1 publication Critical patent/US20010000359A1/en
Assigned to ALCHEMEDIA LTD. reassignment ALCHEMEDIA LTD. CHANGE OF NAME (SEE DOCUMENT FOR DETAILS). Assignors: CSAFE LTD.
Application granted granted Critical
Publication of US6353892B2 publication Critical patent/US6353892B2/en
Assigned to FINJAN SOFTWARE, LTD. reassignment FINJAN SOFTWARE, LTD. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: ALCHEMEDIA LTD.
Assigned to FINJAN, INC. reassignment FINJAN, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: FINJAN SOFTWARE, LTD.
Assigned to CSAFE LTD. reassignment CSAFE LTD. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: GOODMAN, ANDREW, SCHREIBER, DANIEL
Assigned to ALEARO PROPERTIES LIMITED LIABILITY COMPANY reassignment ALEARO PROPERTIES LIMITED LIABILITY COMPANY ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: FI DELAWARE INC.
Assigned to FI DELAWARE INC. reassignment FI DELAWARE INC. CHANGE OF NAME (SEE DOCUMENT FOR DETAILS). Assignors: FINJAN, INC.
Assigned to CSAFE LTD. reassignment CSAFE LTD. CORRECTIVE ASSIGNMENT TO CORRECT THE SPELLING OF NAME OF ASSIGNOR--ANDREW GOLDMAN PREVIOUSLY RECORDED ON REEL 027011 FRAME 0904. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Assignors: GOLDMAN, ANDREW, SCHREIBER, DANIEL
Assigned to GULA CONSULTING LIMITED LIABILITY COMPANY reassignment GULA CONSULTING LIMITED LIABILITY COMPANY MERGER (SEE DOCUMENT FOR DETAILS). Assignors: ALEARO PROPERTIES LIMITED LIABILITY COMPANY
Anticipated expiration legal-status Critical
Assigned to INTELLECTUAL VENTURES ASSETS 150 LLC reassignment INTELLECTUAL VENTURES ASSETS 150 LLC ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: GULA CONSULTING LIMITED LIABILITY COMPANY
Assigned to KIOBA PROCESSING, LLC reassignment KIOBA PROCESSING, LLC ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: INTELLECTUAL VENTURES ASSETS 150 LLC
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/82Protecting input, output or interconnection devices
    • G06F21/84Protecting input, output or interconnection devices output devices, e.g. displays or monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents
    • G06F40/109Font handling; Temporal or kinetic typography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/126Character encoding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/08Payment architectures
    • G06Q20/10Payment architectures specially adapted for electronic funds transfer [EFT] systems; specially adapted for home banking systems
    • G06Q20/102Bill distribution or payments
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00127Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture
    • H04N1/00204Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture with a digital computer or a digital computer system, e.g. an internet server
    • H04N1/00244Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture with a digital computer or a digital computer system, e.g. an internet server with a server, e.g. an internet server
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/32Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device
    • H04N1/327Initiating, continuing or ending a single-mode communication; Handshaking therefor
    • H04N1/32765Initiating a communication
    • H04N1/32771Initiating a communication in response to a request, e.g. for a particular document
    • H04N1/32776Initiating a communication in response to a request, e.g. for a particular document using an interactive, user-operated device, e.g. a computer terminal, mobile telephone
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/44Secrecy systems
    • H04N1/4406Restricting access, e.g. according to user identity
    • H04N1/4426Restricting access, e.g. according to user identity involving separate means, e.g. a server, a magnetic card
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/44Secrecy systems
    • H04N1/4406Restricting access, e.g. according to user identity
    • H04N1/444Restricting access, e.g. according to user identity to a particular document or image or part thereof
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/44Secrecy systems
    • H04N1/448Rendering the image unintelligible, e.g. scrambling
    • H04N1/4486Rendering the image unintelligible, e.g. scrambling using digital data encryption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2119Authenticating web pages, e.g. with suspicious links
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/0008Connection or combination of a still picture apparatus with another apparatus
    • H04N2201/0034Details of the connection, e.g. connector, interface
    • H04N2201/0037Topological details of the connection
    • H04N2201/0039Connection via a network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/32Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device
    • H04N2201/3201Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title
    • H04N2201/3225Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title of data relating to an image, a page or a document
    • H04N2201/3249Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title of data relating to an image, a page or a document data relating to a linked page or object, e.g. hyperlink
    • 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/99937Sorting
    • 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
    • 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/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • Y10S707/99945Object-oriented database structure processing

Definitions

  • the present invention relates to copyright protection of digital data.
  • CyberSales Solution provides locking and unlocking functionality so that content can be securely previewed by consumers, electronically purchased and redistributed, and it protects the content in an initial transaction and in subsequent information pass-along. Content providers can control how much information is available without paying, and disable, or additionally charge for, the ability to print or cut and paste.
  • CyberSales Solution handles secure transactions, remittance processing, reports, audits and customer service. Information about CyberSales Solution is available on the web at http://www.softlock.com.
  • Digimarc Corporation of Lake Oswego, OR embeds hidden messages within pixel data for identifying protected images, and tracks their distribution over the Internet to monitor potential copyright infringement.
  • Digimarc images carry unique IDs that link to pre-determined locations on the web.
  • Digimarc images are compatible with standard image formats, such as JPEG, and can be opened and displayed by standard image readers. However, when opened with a Digimarc reader, the images are displayed together with a “Web look up” button that enables a user to identify the sources of the images. Digimarc technology is described in U.S. Pat. Nos.
  • SafeMediaTM is a software product of Internet Expression, Inc. of Exton, Pa. that converts images from a standard format such as JPEG into a SIF (Safe Image Format). SIF images can only be viewed with a SafeMedia Java viewer. SafeMedia embeds a host or domain name into an image, and checks that the image is located on the web site it was intended for. SafeMedia also includes enhanced system control for preventing screen capture by disabling a clipboard. Information about SafeMedia is available on the web at http://www.safemedia.com.
  • Copysight® is a software application of Intellectual Protocols, LLC of Nanuet, N.Y. that uses digital watermarking and fingerprinting to protect images, and includes a Java applet that disables the ability to save displayed images within a web browser and the ability to print them.
  • Copysight operates by converting unprotected files to protected files that are encrypted and that contain digital fingerprints. Copysight also tracks distribution of protected images across the Internet, and issues reports of potential copyright infringement. It allows a web administrator to select which files are to be protected. Information about Copysight is available on the web at http://www.ip2.com.
  • the present invention provides a method and system for enabling a user to view protected image data using his web browser without being able to copy it.
  • the slogan “Look but Don't TouchTM” has been adopted to describe the feature of the present invention that enables a user to view content without being able to copy it into his computer.
  • the present invention is distinct from prior art methods in several respects.
  • a first distinction is that the present invention displays an image to a user without downloading unmodified image data to the user's computer.
  • the present invention does not provide an original copy in the first place.
  • the present invention prevents a user from copying a protected image both from within and from without his web browser. Specifically, the present invention blocks copying of an image from within his web browser, when a user selects the “Save Image As . . . ” command and when a user prints the contents of a web browser window. It also blocks copying of an image from without when a user presses the “Print Screen” button of his keyboard or attempts to copy from his web browser window and paste onto a window of another application, or when a third party software application attempts to use the “Print Screen” command.
  • the present invention uses a software web server plug-in that filters HTTP requests and sends substitute data, such as encrypted image data, for requested image data that is protected. It also uses a software web browser plug-in for displaying the substitute data and for blocking the ability to copy protected image data being displayed from the video buffer of the user's computer. It also uses a management tool for setting protection status of images and web pages residing on one or more server computers.
  • a method for protecting digital images distributed over a network including the steps of receiving a request from a client computer running a network browser, for an original layout page containing references to digital images therein, parsing the original layout page for the references to digital images, generating a modified layout page from the original layout page by replacing at least one of the references to digital images in the original layout page with references to substitute data, and sending the modified layout page to the client computer.
  • a method for protecting files distributed over a network including the steps of displaying a list of files, generating protection status information in response to selection by a user of at least one of the files in the list of files, and sending the protection status information to a server computer.
  • a system for protecting digital images distributed over a network including a receiver receiving a request from a client computer running a network browser, for an original layout page containing references to digital images therein, a layout page parser parsing the original layout page for the references to digital images, a layout page generator generating a modified layout page from the original layout page by replacing at least one of the references to digital images in the original layout page with references to substitute data, and a transmitter sending the modified layout page to the client computer.
  • a system for protecting files distributed over a network including a user interface displaying a list of files, a protection status manager generating protection status information in response to selection by a user of at least one of the files in the list of files, and a transmitter sending the protection status information to a server computer.
  • a method for protecting digital images distributed over a network including the steps of receiving a request from a client computer, submitting the request to a server computer, receiving an original layout page containing references to digital images therein from the server computer, parsing the original layout page for the references to digital images, generating a modified layout page from the original layout page by replacing at least one of the references to digital images in the original layout page with references to substitute data, and sending the modified layout page to the client computer.
  • a system for protecting digital images distributed over a network including a receiver receiving a request from a client computer and receiving an original layout page containing references to digital images therein from a server computer, a transmitter submitting the request to the server computer and sending a modified layout page to the client computer, a layout page parser parsing the original layout page for the references to digital images, and a layout page generator generating the modified layout page from the original layout page by replacing at least one of the references to digital images in the original layout page with references to substitute data.
  • a method for protecting digital images displayed in a web browser including the steps of displaying a digital image by a web browser, the digital image including pixel data, requesting access to pixel data of the digital image, and in response to the requesting, blocking access to pixel data of the digital image.
  • a method for protecting digital images displayed in a web browser including the steps of displaying a digital image by a web browser, the digital image including pixel data, requesting access to pixel data of the digital image, in response to the requesting, intercepting a request to access pixel data of the digital image, and providing substitute data to pixel data of the digital image in a response to the request to access pixel data of the digital image.
  • a system for protecting digital images displayed in a web browser including a web browser displaying a digital image, the digital image including pixel data, a command processor requesting access to pixel data of the digital image, and a request blocker, blocking access to pixel data of the digital image requested by the command processor.
  • a system for protecting digital images displayed in a web browser including a web browser displaying a digital image, the digital image including pixel data, a command processor requesting access to pixel data of the digital image, a request interceptor intercepting a request to access pixel data of the digital image received from the command processor, and a data processor providing substitute data to pixel data of the digital image in a response to the request to access pixel data of the digital image.
  • FIG. 1 is a simplified illustration of a system for copyright protection of digital images for use within a distributed server-client computing environment, in accordance with a preferred embodiment of the present invention
  • FIG. 2 is a simplified flowchart of a method for protecting digital images that are distributed within a server-client computing environment, in accordance with a preferred embodiment of the present invention
  • FIG. 3 is a simplified illustration of a management system, for managing protection of digital images, in accordance with a preferred embodiment of the present invention
  • FIG. 4 is a simplified flowchart of a method for managing digital image protection, in accordance with a preferred embodiment of the present invention.
  • FIG. 5 is a simplified illustration of a system for copyright protection of digital images that are referenced in dynamically generated web pages, in accordance with a preferred embodiment of the present invention
  • FIG. 6 is a simplified flowchart of a method for protecting digital images that are referenced in dynamically generated web pages, in accordance with a preferred embodiment of the present invention
  • FIG. 7 is a simplified illustration of a system for preventing unauthorized copying of digital images within a client computer, in accordance with a preferred embodiment of the present invention.
  • FIG. 8 is a simplified flowchart of a method for preventing unauthorized copying of digital images within a client computer, in accordance with a preferred embodiment of the present invention.
  • FIG. 9 is a simplified illustration of a system for copyright protection of digital images residing on a computer that are referenced in a web page residing on a different computer;
  • FIG. 10 is a simplified flowchart of a method for copyright protection of digital images residing on a computer that are referenced in a web page residing on a different computer;
  • FIG. 11 is an illustration of a user interface dialogue box for adding a new site, within a protection management tool operative in accordance with a preferred embodiment of the present invention
  • FIG. 12 is an illustration of a user interface dialogue box for accessing a site, within a protection management tool operative in accordance with a preferred embodiment of the present invention
  • FIG. 13 is an illustration of a user interface screen for setting protection status, within a protection management tool operative in accordance with a preferred embodiment of the present invention
  • FIG. 14 is an illustration of a tool bar within a protection management tool operative in accordance with a preferred embodiment of the present invention.
  • FIG. 15 is an illustration of a user interface dialogue box for setting server parameters within a protection management tool operative in accordance with a preferred embodiment of the present invention
  • FIG. 16 is an illustration of a user interface dialogue box for modifying a password for accessing a web server, within a protection management tool operative in accordance with a preferred embodiment of the present invention
  • FIG. 17 is an illustration of a user interface dialogue box for a site list, within a protection management tool operative in accordance with a preferred embodiment of the present invention
  • FIG. 18 is an illustration of a user interface dialogue box for defining mirror sites, within a protection management tool operative in accordance with a preferred embodiment of the present invention.
  • FIG. 19 is an illustration of a virtual directory properties file residing on a web server computer in accordance with a preferred embodiment of the present invention.
  • the present invention concerns protection of digital images transmitted over a network from unauthorized copying and use. Unlike prior art methods used to prevent software piracy, the present invention enables a user to view an image in his web browser without ever receiving original unmodified digital image data, and without being able to save the displayed image on his computer.
  • HTML hyper-text markup language
  • XML extended markup language
  • Such web pages are electronic data files, stored on server computers, containing layout information for displaying text and graphics, and for running software applications such as Java applets.
  • the data for the graphic objects, such as images, displayed within a web page is not contained within the web page file itself. Instead, the graphic objects reside elsewhere on the same server computer or other server computers, and the web page file contains references, to the graphic objects.
  • a reference to a graphic object specifies the network address of the computer containing the graphic object, such as an IP address, together with the directory path (relative to a prescribed root directory) and filename for the graphic object.
  • a web browser in a client computer downloads a web page file, it parses the web page in order to display it on a video monitor. While parsing the web page, the web browser encounters the references to graphic objects, and in turn downloads the graphic objects. Downloading a web page file and the graphic objects it references is typically done through the HTTP protocol. Client requests for data on server computers are issued through HTTP requests, and data transmission from server to client is issued through HTTP responses.
  • the web browser can render the web page with the graphic objects embedded therein, and display it to the user on his video monitor.
  • the user can interact with the displayed web page by clicking on hyper-links to other web pages, or by interacting with an application such as a Java applet.
  • Most web browsers enable a user to view the source for the web page being displayed. For example, they may contain a menu item “View Page Source” under a “View” heading. In addition, they also enable a user to save images being displayed, by right-clicking on such an image with a mouse cursor positioned thereover, and selecting a “Save Image As . . . ” menu item. Upon selection of the “Save Image As . . . ” item, the web browser opens an Explorer type directory window that enables the user to select a folder and filename for the image being saved.
  • the image data that is transmitted from a server computer to a client computer is encrypted image data that is generated from the original image data by encoding it using an encryption algorithm.
  • additional software may be required by the web browser in order to decode the encrypted data, since a standard web browser typically supports only a limited number of image file formats, such as GIF and JPEG, and may not contain the decoder necessary to decrypt the encrypted image data.
  • a standard web browser typically supports only a limited number of image file formats, such as GIF and JPEG
  • additional software may be a plug-in or a Java applet.
  • the Internet Explorer web browser of Microsoft Corporation of Redmond, Wash. such additional software may be an Active-X control or a Java applet.
  • the additional software is used to decode the encrypted image data, and render it for display on a video monitor.
  • the present invention prevents him from doing so.
  • the user may also attempt to save an image being displayed by copying the image from his web browser's cache.
  • images being displayed by web browsers are stored temporarily in a local cache on the client computer.
  • the user may also attempt to copy the entire screen by pressing a “Print Screen” command key on the keyboard. Typically, this causes the contents of the video display buffer to be pasted onto the user's clipboard.
  • the user may also attempt to save an image being displayed by running a software application outside of is web browser.
  • an image editing application such as Paint Shop Pro of Jasc Software, may have the capability of copying images from within web browsers to their own windows.
  • the present invention replaces the image being saved with substitute data, so that the user in fact saves a substitute image.
  • the substitute image may be an encrypted image, which the user is unable to view.
  • the substitute image may be a watermarked version of the original image, derived therefrom by composing watermarks over the image.
  • the substitute image may be a prescribed image, possibly unrelated to the image being displayed by the web browser.
  • the present invention disables the user's ability to save an image being displayed, and does not enable the user to save image data at all.
  • the “Save Image As . . . ” menu option may be disabled, so that the user cannot select it, and the “Print Screen” key on the keyboard may be disabled so that when the user presses on it, nothing happens, and copying of the image by other software applications may be blocked.
  • controlling or disabling the “Save Image As . . . ” menu option is preferably accomplished by additional software used by the web browser through intervention with mouse control functions.
  • Controlling or disabling the “Print Screen” key on the keyboard is preferably accomplished by additional software used by the web browser through intervention with keyboard control functions.
  • Controlling or disabling copying of displayed image data by other software applications is preferably accomplished within the Windows operating system by intervention (“patching”) with the Windows application programming interface (API) functions which copy pixel data from the video buffer of a computer, such as BitBlt, StretchBlt, PlgBlt, GetPixel and GDI32.
  • API Windows application programming interface
  • controlling or disabling copying of displayed image data by other software applications is preferably accomplished within the Macintosh operating system by using a system extension to intervene with ToolBox functions.
  • Tool Box calls are managed by an array of pointers in a Trap Dispatch Table, each pointer pointing to appropriate program code.
  • the system extension can change these pointers so that they point to different program code.
  • the different program code corresponds to patched ToolBox functions.
  • a web server administrator (“webmaster”) is responsible for configuring web server software and for managing web pages and images stored on a server computer. Typically, the administrator may wish to protect some of the images from unauthorized copying or use, and may wish to have other images unprotected, in accordance with instructions from the owners of the images.
  • the present invention includes a management tool for managing protection of digital images residing on a server computer. The management tool preferably enables an administrator to select specific images to be protected from unauthorized copying or use as described hereinabove.
  • Image protection may be specified in several modes, including (i) on an individual image-by-image basis, (ii) on a web page basis, (iii) on a folder basis, and (iv) on a tagged basis, as described hereinbelow. Protection specification on an individual image-by-image basis is carried out by selecting one or more image files within the management tool, preferably by a user interface that presents an Explorer-type window for navigating through file systems.
  • Protection specification on a web page basis is carried out by selecting one or more web page files within the management tool. Selection of a web page for protection entails protection of all images referenced within the selected web page. In one embodiment of the present invention, such referenced images are maintained protected when the same images are referenced within other web pages. In an alternate embodiment of the present invention, such referenced images are protected only when referenced within web pages that are protected.
  • Protection specification on a folder basis is carried out by selecting one or more folders within the management tool. Selection of a folder for protection entails protection of all web pages and all images referenced within the selected folder and, recursively, within all sub-folders thereof.
  • Protection specification on a tagged basis is carried out by delineating segments within a web page that are to be protected by protection tags.
  • protect and unprotect tags such as ⁇ !protect> and ⁇ !/protect>, are used to bound segments of layout instructions within a web page, and every image referenced within such a segment between the tags is protected.
  • images referenced between the protection tags are protected only when referenced between protection tags within web pages, and are otherwise unprotected, unless additional protection has been specified by one of the above modes (individual image-by-image basis, web page basis, and/or folder basis).
  • the management tool can be used to change the protection status (protected / unprotected) of images on a server computer from time-to-time.
  • the management tool need not be operated from the server computer that contains the images whose protections are being specified. Instead, it can be executed from any computer connected to such server computer via a network. Thus a web administrator can remotely set the protections of images on multiple server computers from his own local computer, as long as there is a network connection between his computer and the multiple server computers.
  • FIG. 1 is a simplified illustration of a system for copyright protection of digital images for use within a distributed server-client computing environment, in accordance with a preferred embodiment of the present invention.
  • a server computer 100 typically includes web server software 102 that serves web pages 104 to a plurality of client computers 106 over the Internet.
  • Web pages 104 typically contain references to images that are to be embedded within the pages when the pages are rendered on client computers 106 .
  • the images referenced in web pages 104 typically reside on server computer 100 , although they may reside on other computers as well. Operation of the present invention when the images reside on other computers is described below with reference to FIG. 9 and FIG. 10.
  • Some of the images referenced in web pages 104 are preferably designated as protected images 108 , which the owners desire to protect from unauthorized copying or use. Others of the images referenced in web pages 104 are designated as unprotected images 110 , which the owners are not concerned about protecting from unauthorized copying or use. Designation of images as protected or unprotected is typically made by the owners of the images. For example, images may be designated as protected images when they contain significant creative content, and images may be designated as unprotected images when they contain little or no creative content, it being understood that other criteria can be used alone or in combination as a basis for distinguishing between protected and unprotected images.
  • Client computers 106 typically use web browser software 112 to access web pages stored on server computers 100 , over the Internet.
  • a web browser 112 requests a web page 104 from a server computer 100 by issuing an HTTP request.
  • An HTTP request arriving at server computer 100 is processed by web server software 102 .
  • an incoming HTTP request to server computer 100 is routed to an HTTP request filter 114 .
  • HTTP filter 114 accesses the requested web page 104 and parses it using a web page parser 116 , to identify the images that are referenced therewithin.
  • Server computer 100 maintains a protection status database 118 that stores a protection status (protected/unprotected) for each image residing on server computer 100 .
  • HTTP filter 114 determines the protection status of each image referenced within web page 104 , using protection status database 118 . It will be appreciated by those skilled in the art that protection status database 118 may reside on a different computer than server computer 100 , but when it resides on server computer 100 the system of the present invention can conveniently determine protection status of images without having to retrieve such information from another computer.
  • An unprotected image 110 referenced within web page 104 is handled by web server software 102 in the normal fashion. Specifically, neither the reference to unprotected image 110 nor image 110 itself are modified. However, a protected image 108 referenced within web page 104 is handled differently.
  • a modified web page 120 is generated by a web page modifier 122 . Specifically, the reference to protected image 108 in web page 104 is modified by web page modifier 122 so as to reference substitute data 124 .
  • Substitute data 124 preferably corresponds to an image that is visually identical or substantially similar to protected image 108 .
  • substitute data 124 corresponds to an image that is visually identical to protected image 108 , it is preferably an encrypted version of the protected image data.
  • the choice of what type of substitute data 124 to use depends on the owner's preference (e.g. whether or not to display an identical version of the protected image) and on the type of web browser 112 issuing the HTTP web page request from client computer 106 .
  • web browsers 112 may include software that functions as a substitute data processor 126 , in the form of a browser plug-in, Java applet or Active-X control.
  • a substitute data processor is capable of rendering an encrypted image, and is also capable of preventing a user of client computer 106 from copying an image that is displayed by web browser 112 .
  • the substitute data processor is not a Java applet, since Java applets are not readily capable of protecting against Windows API calls that access pixel data from the video buffer of a computer, as mentioned hereinabove. However, it is apparent to those skilled in the art that as Java capabilities are extended, Java applets may become appropriate for such protection.
  • substitute data 124 can be encrypted image data, or other image data in a format that would not be supported by a standard web browser 112 that does not include substitute data processor 126 . Furthermore, when web browser 112 includes a substitute data processor 126 , substitute data 124 can appear visually identical to protected image 108 when rendered by substitute data processor 126 , and yet a user of client computer 106 is not able to copy or use it without authorization.
  • substitute data 124 should be compatible with a standard web browser.
  • substitute data 124 can be a standard JPEG image.
  • substitute data 124 can be encrypted image data if modified web page 120 is generated so as to prompt client computer to download substitute data processor 126 in order to display substitute data 124 . This is typically the way in which web pages prompt a client computer to download Java applets, Active-X controls within Internet Explorer, and plug-ins utilizing the Smart Update feature within Netscape Communicator.
  • the determination of which images on server computer 100 are protected images 108 and which images are unprotected images 110 is managed by a protection manager 128 residing on a remote computer 130 , connected to server computer 100 by a network. It will be appreciated by those skilled in the art that protection manager 128 may reside on server computer 100 , but the possibility of it residing on a remote computer 130 affords greater convenience to an administrator who can then administer server computer 100 , and other server computers as well, remotely off-site.
  • FIG. 2 is a simplified flowchart of a method for protecting digital images that are distributed within a server-client computing environment, in accordance with a preferred embodiment of the present invention.
  • the flowchart is divided into three columns.
  • the leftmost column includes steps performed by a user
  • the second column from the left includes steps performed by a client computer
  • the rightmost column includes steps performed by a server computer connected to the client computer over the Internet or such other network of computers.
  • the client computer requests a connection to the server computer.
  • the server computer opens a communication socket between the client computer and the server computer.
  • the user requests to open a web page using his web browser and, in response, at step 208 the client computer issues an HTTP request for the web page to a web server on the server computer, using the web browser.
  • the web server receives the HTTP request for the web page from the client computer.
  • the server computer searches a database to determine whether or not the web page being requested references any protected images, or has protection tags. If so, it routes the incoming HTTP request to an HTTP request filter, as described hereinabove with respect to FIG. 1.
  • the HTTP filter applies a web page parser to the requested web page and identifies the images referenced therewithin.
  • the server computer generates a modified web page wherein references to the protected images are replaced with references to substitute data.
  • the substitute data is preferably derived from the protected images.
  • the substitute data may be encrypted image data, obtained by applying an encryption algorithm to the protected image data.
  • the modified web page is preferably a separate web page generated by a web page modifier, so that the original web page is preserved, as indicated in FIG. 1. Alternatively, the substitute references may be incorporated directly into the original web page, without generation of a separate modified web page.
  • the modified web page is sent back to the client computer within an HTTP response.
  • the client computer receives the modified web page containing references to substitute data, and the web browser begins to render the modified web page.
  • the web browser encounters the references to the substitute data, and at step 220 the substitute data processor within the client computer issues to the web server an HTTP request for the substitute data.
  • the server computer receives the HTTP request for the substitute data, and at step 224 the server sends an HTTP response containing the substitute data to the client computer.
  • the client computer receives the HTTP response containing the requested substitute data, and at step 228 the client computer processes the substitute data using a substitute data processor, as described hereinabove with respect to FIG. 1, and renders the web page.
  • the user views the web page he requested. It is thus appreciated that the present invention enables the user to view protected images without being able to download them to his computer in unmodified form. Instead, substitute data is downloaded, such as encrypted image data.
  • the server computer determines at step 212 that the requested web page does not reference protected images and does not have protection tags, then the HTTP request is passed to the server without any parsing. In this case, the processing is much simpler, and proceeds in the normal manner. Specifically, a modified web page is not generated and substitute data is not used. Rather, at step 232 the unmodified web page is sent to the client computer within an HTTP response.
  • the client computer receives the HTTP response containing the unmodified web page, and the web browser begins to render the web page. In rendering the web page, the web browser encounters the references to unprotected images, and at step 236 the client computer issues an HTTP request for the unprotected images to the web server.
  • the server computer receives the HTTP request for the unprotected images, and, in response, at step 240 the server computer sends an HTTP response containing the unprotected images.
  • the client computer receives the HTTP response with the unprotected image data, and at step 244 the web browser processes the unprotected images and renders them with the web page.
  • the user views the web page he requested. It is thus appreciated that the unprotected image data is downloaded to the client computer as unmodified data, and is therefore susceptible to unauthorized copying or use.
  • FIG. 3 is a simplified illustration of a management system, for managing protection of digital images, in accordance with a preferred embodiment of the present invention.
  • Remote computer 130 administers protection of images on server computer 100 by entering and editing protection status information (protected/unprotected) within protection status database 118 .
  • Remote computer 130 retrieves file information 302 from file system 304 of server computer 100 , and retrieves protection settings 306 from protection status database 118 .
  • file information 302 Using file information 302 , a user interface 308 displays a list of folder names, web page file names and image file names for the files in file system 304 .
  • Protection settings 306 are used by user interface 308 to display an indicator of protection status alongside each folder, web page and image. For example, in a preferred embodiment of the present invention, protection settings 306 are indicated to a user as follows:
  • a dark blue folder icon is displayed alongside folders all of whose referenced images are designated as protected, a light blue folder icon is displayed alongside folders some, but not all of whose referenced images are designated as protected, and a white folder icon is displayed alongside folders none of whose referenced images are designated as protected.
  • Protection settings 306 can be edited by means of user interface 308 .
  • a user can select one or more images from among the list of image filenames displayed by user interface 308 , and set their protection status to protected or unprotected.
  • the user can also select one or more web pages from among the list of web page file names displayed by user interface 308 , and set their protection status to protected or unprotected.
  • Setting the protection status of a web page to protected or unprotected is equivalent to setting the status of all the images referenced therewithin to protected or unprotected, respectively.
  • such images referenced within a protected web page are treated as protected within any other web page, and in an alternate embodiment of the present invention, such images are treated as protected only within protected web pages.
  • the user can select one or more folders from among the list of folder names displayed by user interface 308 , and set their protection status to protected or unprotected.
  • Setting the protection status of a folder to protected or unprotected is equivalent to setting the status of all the images and web pages within the folder and, recursively, within all sub-folders thereof, to protected or unprotected, respectively.
  • the user can click on a “submit” button in order to apply the modified protection settings on server computer 100 ; i.e., in order to have the modified protection settings take effect. Clicking on the submit button causes protection settings 306 to be transmitted from remote computer 130 to server computer 100 .
  • server computer 100 receives the modified protection settings, it incorporates them into protection status database 118 . Once so incorporated, the modified protection settings take effect, and are used thenceforth to determine the protection status of the images on server computer 100 .
  • the modified protection settings 306 are indicated in user interface 308 by updated icons, as described hereinabove.
  • FIG. 4 is a simplified flowchart of a method for managing digital image protection, in accordance with a preferred embodiment of the present invention.
  • the flowchart is divided into three columns.
  • the leftmost column includes steps performed by a user
  • the second column from the left includes steps performed by a protection manager computer
  • the rightmost column includes steps performed by a server computer.
  • the user launches a protection manager software tool.
  • the protection manager computer initiates connection to a web server on the server computer.
  • the server computer opens a communication socket with the protection management computer.
  • the protection manager computer requests file system information from the server computer.
  • the requested file system information includes a site map of the folders and files in the server computer's file system, and protection status information for the folders and files listed in the site map. Protection status of folders and files is preferably one of the following: (i) protected, (ii) partially protected, (iii) protected using tags, and (iv) un-protected.
  • the server computer receives the request for file system information, and at step 412 the server computer sends the requested information to the protection manager computer.
  • the protection manager computer receives the requested file system information from the server computer, and at step 416 the protection manager computer displays this information within a user interface of the protection manager tool.
  • the user selects one or more folders and/or web pages, from among a list of folder names and web page file names displayed by the user interface.
  • the protection manager computer requests image information and protection status information from the server computer, for the images contained within the selected folders and/or for the images referenced within the selected web pages.
  • the server computer receives the request from the protection manager computer, and at step 424 the server computer sends the requested image information and protection status information to the protection status computer.
  • the server computer may be necessary for the server computer to parse the selected web pages in order to identify the images referenced therewithin. Parsing web pages is described hereinabove with reference to FIG. 1.
  • the protection manager computer receives the image information and protection status information, and at step 428 it displays this information within the user interface of the protection manager tool.
  • Each folder name, web page file name and image file name is displayed in the user interface with a corresponding icon alongside that indicates its protection status. For example, file names of protected images are displayed with an icon of a padlock alongside.
  • the user selects one or more folders, web pages and/or images from the list of folder names, web page file names and image file names displayed by the user interface, and sets their protection status to protected or unprotected.
  • Setting a protection status for one or more folders causes such protection status to apply to all of the images within such folders.
  • setting a protection status for one or more web pages causes such protection status to apply to all of the images referenced within such web pages.
  • the protection manager computer After editing the protection status of various folders, web pages and images, the user clicks on a “submit” button to apply the new protection settings.
  • the protection manager computer submits the edited image protection status information to the server computer.
  • the server computer receives the edited protection status information, and at step 436 the server computer incorporates this information into a protection status database.
  • the server computer sends the updated protection status information back to the protection manager computer, as a confirmation.
  • the protection manager computer receives the updated protection status information from the server computer, and at step 442 it displays the updated status information in the protection manager user interface.
  • the protection manager computer displays modified status information upon selection by the user, as soon as a protect button is pressed, prior to submitting it to the server computer.
  • the changes are only sent to the server computer when a submit button has been pressed.
  • steps 438 , 440 and 442 need not be performed.
  • Some URL's do not correspond to existing web page files, but instead contain instructions, such as CGI script instructions or Visual Basic instructions, for generating dynamic web pages, such as active server pages.
  • the server computer When a user opens such an URL, the server computer typically generates a web page dynamically, and sends the generated web page to the client computer.
  • the server computer cannot parse the web page for references to protected images until the web page is generated.
  • the server receives an incoming HTTP request to generate a web page, it sends the generated web page as an outgoing HTTP response back to the IP address of the originating HTTP request.
  • the present invention preferably re-submits the incoming HTTP request locally from the server computer to itself in order to be able to intercept the dynamically generated web page prior to its being sent to the client.
  • the incoming HTTP request from the client computer is routed to an HTTP filter, as described above with reference to FIG. 1.
  • the HTTP filter re-submits the HTTP request from the server computer to itself. This ensures that when the server computer generates the dynamic web page, it will return it to the HTTP filter, rather than to the client.
  • the server computer re-submits the HTTP request, it preferably does so by passing along any HTTP header information, such as a cookie, or any POST information in an HTTP POST request.
  • the HTTP filter Before generating the dynamic web page, in order to ensure that the HTTP request originates from HTTP filter, rather than from another source, the HTTP filter preferably appends an identifier at the beginning of the original HTTP request, prior to re-submitting the HTTP request. Thus the re-submitted HTTP request has an additional identifier in its beginning for authentication purposes.
  • the server computer authenticates the HTTP request, based on the identifier in its beginning, before accepting the request and generating the dynamic web page. After authenticating the request, the server computer removes the identifier that was appended, and proceeds to process the request. If the HTTP request is not authenticated, the server computer denies the request and does not proceed to generate the dynamic web page.
  • the appended identifier is randomly generated. This serves as a preventive measure against extraction and fraudulent use of the identifier, since the identifier is constantly being changed.
  • the server computer authenticates the re-submitted HTTP request and, in turn, dynamically generates the web page, it sends the web page to the originator of the re-submitted HTTP request; namely, to the HTTP filter.
  • the HTTP filter can then parse the page to identify the images reference therewithin, and can generate a modified web page in which references to protected images are replaced with references to substitute data, as described hereinabove with reference to FIGS. 1 and 2.
  • the modified web page is sent back to the client computer in an HTTP response.
  • Dynamically generated web pages are generated by a web server in response to an HTTP request.
  • an HTTP request may contain instructions for a CGI interpreter.
  • images may also be dynamically generated. Examples of dynamically generated images are
  • a requested web page already resides as an HTML, XML or such other web page file on a server computer
  • a client computer issues a request for a dynamically generated web page or a dynamically generated image
  • the request cannot be filtered until after it is processed, since only then is the web page or the image available.
  • dynamically generated web pages are handled by re-routing an incoming HTTP request from the server computer to itself, in order that the dynamically generated web page first be processed by an HTTP request filter before being sent to the client computer.
  • client computer 106 issues an HTTP request to server computer 100 that includes instructions for generating a web page.
  • the HTTP request is indicated by a circle- 1 in FIG. 5.
  • the incoming HTTP request is routed to a filter 502 for processing. Since the requested web page is not available at this stage, filter 502 cannot parse or modify the page.
  • filter 502 re-submits the HTTP request to server computer 100 .
  • filter 502 appends an identifier at the beginning of the HTTP request, for authentication purposes.
  • the re-submitted HTTF request is indicated by a circle- 2 in FIG. 5.
  • an authenticator 504 which authenticates the request based on its appended identifier.
  • the identifier is removed from the re-submitted HTTP request, and it is processed by server computer 100 .
  • server computer dynamically generates a web page 506 using a dynamic web page generator 508 .
  • Web page 506 references one or more protected images 108 .
  • server computer 100 sends it within an HTTP response to the address of the originator of the request.
  • the HTTP response is indicated by a circle- 3 in FIG. 5. Since the re-submitted HTTP request originated from filter 502 of server computer 100 , the HTTP response with web page 506 is sent to server computer 100 . The response is routed to filter 502 for further processing.
  • Filter 502 after receiving the HTTP response with web page 506 , can proceed to generate substitute data 124 , and to generate a modified web page 120 using web page modifier 122 , as is described hereinabove with reference to FIG. 1.
  • Modified web page 120 contains a reference to substitute data 124 , instead of a reference to protected images 108 .
  • Modified web page 120 is included within an HTTP response and sent back to client computer 106 .
  • the HTTP response including modified web page 120 is indicated by a circle- 4 in FIG. 5.
  • the four indicators, circle- 1 , circle- 2 , circle- 3 and circle- 4 taken together illustrate the data flow from an original HTTF request to a final HTTP response.
  • substitute data 124 can be rendered so as to generate images visually equivalent to protected images 108 , in which case the user can view the content of protected images 108 without downloading unmodified protected image data to client computer 106 .
  • substitute data 124 can be encrypted image data.
  • FIG. 6 is a simplified flowchart of a method for protecting digital images that are referenced in dynamically generated web pages, in accordance with a preferred embodiment of the present invention.
  • the flowchart is divided into three columns.
  • the leftmost column includes steps performed by a user
  • the second column from the left includes steps performed by a client computer
  • the rightmost column includes steps performed by a server computer connected to the client computer over the Internet or such other network of computers.
  • the client computer initiates a connection to the web server.
  • the server computer opens a communication socket between the client computer and the server computer.
  • the user opens a URL for an active server page in his web browser, or another such URL that includes a request for dynamically generating a web page.
  • the client computer issues an HTTP request for an active server page to the server computer.
  • the server computer receives the request for the active server page from the client computer.
  • the server computer appends an identifier at the beginning of the HTTP request, and at step 614 the server computer re-submits the HTTP request to the server computer with the appended identifier.
  • the server computer receives the re-submitted HTTP request and authenticates the request based on its appended identifier. If the request is authenticated, then at step 618 the server computer removes the appended identifier from the request, and at step 620 the server processes the request and dynamically generates a web page that references one or more protected images.
  • the server incorporates the dynamically generated web page within an HTTP response and sends it to an address of the originator of the HTTP request.
  • the server computer is the originator of the re-submitted HTTP request and, as such, the HTTP response containing the web page referencing protected images is transmitted to the server computer.
  • authentication at step 616 is necessary in order to control HTTP responses that contain unmodified web pages referencing protected image data, so that they are only transmitted to server computer 100 , and not to any other computers.
  • the server computer processes the dynamically generated web page similar to the processing described hereinabove with reference to FIG. 2. Specifically, the server generates a modified web page having references to substitute data in place of the references to protected images.
  • the server computer sends an HTTP response including the modified web page to the client computer, and at step 628 the client computer receives the HTTP response.
  • the client's web browser renders the modified web page and, in doing so, encounters the references to substitute data and, in turn, requests the substitute data from the server computer.
  • the server computer receives the request for the substitute data, and at step 634 the server computer sends the substitute data to the client computer.
  • the client computer receives the substitute data
  • the client computer's web browser processes the substitute data and renders it embedded within the web page.
  • the user views the web page.
  • the image data sent from a server computer to the user's client computer is substitute data.
  • the substitute data can be encrypted image data. This ensures that the user cannot use his web browser to save an unmodified version of the protected image.
  • software included within the web browser is used to prevent the user from saving a displayed image using the “Save Image As . . . ” option.
  • the “Save Image As . . . ” selection can be disabled, or alternatively it can be modified so that substitute image data is provided instead of protected image data.
  • a video card displaying image data on a video monitor stores the image data within a video display buffer.
  • the data is available as raw pixel data, and at some level the encrypted data is decoded before it can be displayed.
  • Pixel data stored within a video display buffer is susceptible to unauthorized use or copying, since an operating system typically enables a programmer to access data in the video display buffer.
  • an operating system typically enables a programmer to access data in the video display buffer.
  • the Windows operating system of Microsoft Corporation of Redmond, Wash. provides system functions, such as the familiar BitBlt function, for accessing pixel data within the video display buffer.
  • system functions such as the familiar BitBlt function
  • such operating systems provide high level functions, such as the Print Screen function, which serve to copy data from the video display buffer to another memory buffer, such as a clipboard. Once image data has been copied to a clipboard, it can be easily saved and used for unauthorized purposes.
  • the present invention prevents a user from using Windows API functions, such as BitBlt, StretchBlt, PlgBlt, GetPixel and GDI32, to copy protected image data, by including software within the user's web browser that substitutes other functions for those Windows API functions.
  • Windows API functions such as BitBlt, StretchBlt, PlgBlt, GetPixel and GDI32
  • the software within the user's web browser provides a substitute BitBlt function, which is invoked instead of the standard system BitBlt function when the user issues a command to copy data from the video display buffer.
  • the substitute BitBlt function includes special logic for dealing with protected image data, but is otherwise identical to the standard system BitBlt function.
  • the special logic serves to supply substitute pixel data instead of protected image data, so that the data that is copied to the user's clipboard is different from the raw pixel data of protected images.
  • the special logic can compose watermarks and/or a text message onto protected image pixel data, or it can encrypt protected image pixel data, or it can supply a completely white image instead of a protected image.
  • the present invention prevents unauthorized copying and use of protected image data whenever an attempt is made to copy from the video display buffer. This includes a user's invocation of the Print Screen command, as well as another software application, such as an image editing application, running within or external to the user's web browser, attempting to copy and paste from the video display buffer.
  • FIG. 7 is a simplified illustration of a system for preventing unauthorized copying of digital images within a client computer, in accordance with a preferred embodiment of the present invention.
  • Client computer 106 displays an image accessed over the Internet using a web browser.
  • the image may be an unprotected image 702 or substitute data for a protected image 704 .
  • a user issues a command in an attempt to copy the image from his video display buffer. For example, the user may press the “Print Scrn” button on his keyboard, or invoke such other screen capture command, in order to copy the data in the video display buffer onto his clipboard.
  • the user may try to copy and paste the image from his web browser window into a window of another software application.
  • the user's command invokes an operating system level function 706 used to access pixel data within the video buffer of client computer 106 .
  • an operating system level function 706 used to access pixel data within the video buffer of client computer 106 .
  • it may invoke the Windows BitBlt function.
  • a function 706 copies pixel data from the video buffer onto a clipboard.
  • operating system function 706 software such as a Netscape plug-in or an Internet Explorer Active-X control is used to modify operating system function 706 , by introducing additional programming logic to be used when attempting to access pixel data from protected images. Modification of operating system function 706 is preferably accomplished by providing a substitute function of the same name, which supersedes and is invoked instead of the standard system function.
  • operating system function 706 routes the request to an alternate processing unit 708 .
  • Alternate processing unit 708 can prevent any copying of pixel data, or it can modify the pixel data so as to watermark or otherwise modify the protected image.
  • alternate processing unit 708 can output pixel data for a pre-determined image, unrelated to the protected image.
  • the additional programming logic is avoided, and the standard processing is applied. Preferably this is accomplished by calling the standard system level function from within the substitute function.
  • FIG. 8 is a simplified flowchart of a method for preventing unauthorized copying of digital images within a client computer, in accordance with a preferred embodiment of the present invention.
  • the flowchart is divided into two columnns.
  • the leftmost column includes steps performed by a user and the rightmost column includes steps performed by a client computer.
  • the user opens a web page in his web browser.
  • the client computer renders the web page including an embedded image.
  • the user views the web page, and at step 808 the user attempts to copy the embedded image by executing a command to copy pixel data of the image from a video buffer to a clipboard. For example, the user may execute the Print Screen or such other screen capture command.
  • step 810 in response, the client computer calls an operating system function, such as the Windows BitBlt function, to extract pixel data from the video buffer and copy it to the clipboard.
  • control logic passes to a substitute function, and a test is made as to whether or not the image data in the video buffer is protected. If so, then at step 814 processing jumps to step 818 where substitute program code replaces the requested pixel data with substitute data, and at step 820 the substitute data is returned by the operating system function. If the image data in the video buffer is not protected, then processing jumps to step 816 following step 812 , and the requested pixel data is returned by the operating system function, as usual.
  • an operating system function such as the Windows BitBlt function
  • step 822 the data returned from the operating system function is written to the clipboard and at step 824 the user pastes the data from the clipboard into a window of another software application, or save it into his computer. Since substitute data was used to replace protected pixel data, the user is unable to copy unmodified pixel data from the protected image.
  • the system and method described with reference to FIG. 1 and FIG. 2 deal with protection of digital images that are located on the same server computer as the web page that references them.
  • the present invention preferably uses filtering software residing on the server computer to generate substitute image data and a modified web page, as described hereinabove.
  • the protected images may not reside on the same computer as the web page that references them, and the filter software that modifies web pages and generates substitute image data may not reside on the computer that houses the protected images. Thus it may not be possible to generate substitute image data on the computer that houses the protected images.
  • the protected images are first downloaded to the computer that houses the web page, so that substitute data can be generated at such computer.
  • this process is preferably carefully arranged, so as not to compromise the protection of such images.
  • the references to the images within the web pages should be disguised in aliases, so that a user cannot identify the protected images and access them by issuing a direct HTTP request to the computer that houses them.
  • the computer that houses the web page should preferably also contain a table of aliases, for converting image file name aliases into IP addresses and true file names. In this way, a user accessing such a web page can only see aliases for IP addresses of protected images, and cannot access them directly.
  • FIG. 9 is a simplified illustration of a system for copyright protection of digital images residing on a computer that are referenced in a web page residing on a different computer.
  • Client computer 106 contains a web browser 112 , which issues an HTTP request for a web page from server computer 900 .
  • the requested web page, 902 resides on server computer 900 (server computer # 1 ), but it references a protected image 904 that resides on a different server computer 906 (server computer # 2 ).
  • server computer 900 may not be able to generate substitute data, such as encrypted image data, for protected image 104 until it first downloads protected image 904 .
  • server computer 900 maintains a table with entries that convert each alias 908 for a protected image into an IP address and true file name.
  • server computer 900 When server computer 900 receives the HTTP request for web page 902 from client computer 106 , it parses web page 902 and identifies therewithin an image reference with an alias 908 . Server computer 900 deciphers alias 908 to determine the IP address and true file name for protected image 904 . Server computer 900 downloads protected image 904 from server computer 906 , and uses it to generate substitute data 910 .
  • Server computer 900 generates substitute data 910 , and generates a modified web page 912 using a web page modifier 914 .
  • Web page modifier replaces the reference to the alias 908 within web page 902 by a reference to substitute data 910 .
  • Modified web page 912 is sent to client 106 within an HTTP response, and web browser 112 displays modified web page 912 with substitute data 910 embedded therewithin.
  • web browser 112 contains a substitute data processor 126 that is used to render substitute data 910 .
  • FIG. 10 is a simplified flowchart of a method for copyright protection of digital images residing on a computer that are referenced in a web page residing on a different computer.
  • the flowchart is divided into four columns.
  • the leftmost column includes steps performed by a user
  • the second column from the left includes steps performed by a client computer
  • the third column from the left includes steps performed by a first server computer (server computer # 1 )
  • the rightmost column includes steps performed by a second server computer (server computer # 2 ).
  • a user opens a URL for a web page in his web browser.
  • the client computer issues an HTTP request for the web page to server computer # 1 .
  • the first server computer receives the HTTP request for the web page.
  • the web page references a protected image located on the second server computer, but the protected image is not referenced by name. Rather, the protected image is referenced by an alias.
  • the first server computer looks up the IP address and true file name for the protected image, from a table with entries for mapping aliases to IP addresses and true file names.
  • the first server computer requests the protected image data from the second server computer.
  • the second server computer receives the request from the first server computer, and at step 1014 the second server computer sends the protected image data to the first server computer.
  • the first server computer receives the protected image data from the second server computer, and at step 1018 the first server computer replaces the protected image data with substitute data.
  • the first server computer may generate substitute data and keep the protected image data intact, or it may use substitute data that is pre-defined image or text data.
  • the first server computer modifies the web page by replacing references to the aliased image with references to the substitute data.
  • the first computer sends an HTTP response including the modified web page to the client computer.
  • the client computer receives the HTTP response with the modified web page, and begins to render the web page using its web browser.
  • the web browser encounters the reference to the substitute data and, in response, at step 1026 the client computer requests the substitute data from the first server computer.
  • the first server computer receives the request for the substitute data, and at step 1030 the first server computer sends the requested substitute data to the client computer.
  • the client computer receives the substitute data, and at step 1034 the client computer web browser processes the substitute data in order to embed it within the web page.
  • the user views the requested web page with the image embedded, but without the protected image data having been downloaded to the client computer, and without the identity (i.e., IP address and true file name) of the protected image having been disclosed.
  • FIGS. 11-18 illustrate a user interface for a software management protection tool operative in accordance with a preferred embodiment of the present invention.
  • a management protection tool is described hereinabove with reference to FIG. 3 and FIG. 4, and enables an administrator to set protection status for images residing on one or more web server computers.
  • FIG. 11 illustrates a user interface dialogue box for adding a new site, within a protection management tool operative in accordance with a preferred embodiment of the present invention.
  • a New Site dialogue box such as the one illustrated in FIG. 11, opens.
  • the New Site dialogue box can also be opened by the user at any later time, whenever he wants to administer a new HTTP site that is not already listed in a site list maintained by the protection management tool, by clicking on the “New Site . . . ” button in the Access Site dialogue box illustrated in FIG. 12, or by clicking on the “New . . . ” button in the Site List dialogue box illustrated in FIG. 17.
  • the New Site dialogue box prompts the user to identify the new site he wishes to administer by entering an IP address for the site and a port for the site. A default value of 80 for the port is used, since port 80 is the standard HTTP port. The user is also prompted to enter an optional alias for the site, for quick reference.
  • the user can click on “OK” to add the site to the site list. He can also click on “Cancel” to cancel his entries. Clicking on OK or on Cancel cause the dialogue box to close.
  • the New Site dialogue box can also be closed by clicking on the “X” in the upper right corner of the dialogue box window, as is typically done to close windows in the Windows operating system.
  • FIG. 12 is an illustration of a user interface dialogue box for accessing a site, within a protection management tool operative in accordance with a preferred embodiment of the present invention.
  • an Access Site dialogue box such as the one illustrated in FIG. 12, opens.
  • the Access Site dialogue box can also be opened by the user at any time, whenever he wants to access sites in the site list, by clicking on the “Modify” button in the Site List dialogue box illustrated in FIG. 17.
  • the Access Site dialogue box prompts the user to select a specific site to administer by entering site identification information.
  • the user can click on the down arrow shown at the right, and in response the protection management tool displays a drop-down menu with a list of all sites included in the site list. The user can then select a site from the menu, and the site identification information is automatically entered in the dialogue box.
  • the Access Site dialogue box also prompts the user to enter a password.
  • the password for a site is first set when copyright protection software is installed on a web server computer. At the time of installation, the web administrator sets an initial password for the web site, together with other server parameters. The web site password can be modified at a later time, as described hereinbelow with reference to FIG. 16.
  • the user can check the “Save Password” box if he wants the protection management tool to save the password he enters, for automatic use when he subsequently accesses the site. After entering the required data, the user can click the “OK” button to access the site, or he can click the “Cancel” button to cancel his entries. Clicking on OK or on Cancel cause the dialogue box to close.
  • the Access Site dialogue box can also be closed by clicking on the “X” in the upper right corner of the dialogue box window, as is typically done for windows in the Windows operating system.
  • the user clicks the “OK” button then his password is authenticated. If the password is correct, the user is granted access to the site, and the main screen illustrated in FIG. 13 is opened. If the password is incorrect, the user is so notified and given a limited number of tries to enter the correct password. In an alternate embodiment of the present invention, the user may be given an unlimited number of tries to enter the correct password.
  • the Access Site dialogue box also enables the user to open the New Site dialogue box illustrated in FIG. 11, by clicking on the “New Site . . . ” button.
  • FIG. 13 is an illustration of a user interface screen for setting protection status, within a protection management tool operative in accordance with a preferred embodiment of the present invention.
  • the screen illustrated is an Explorer-type screen, with a left panel displaying hierarchical folder information and a right panel displaying image file information.
  • a folder icon At the left of each displayed folder name is a folder icon, color-coded to indicate the protection status (unprotected/partially protected/completely protected) of the folder, as described hereinabove.
  • the toolbar at the top of the screen indicates that the leftmost button, “Get List”, is selected.
  • a description of the toolbar is provided hereinbelow with reference to FIG. 14.
  • the file name “index.html” of an HTML page that is in the folder /Sample/csafe is highlighted in the left panel of FIG. 13.
  • the image files referenced within index.html are displayed in the right panel. As shown, they are files for GIF images.
  • the “Status” column within the right panel indicates that none of the images listed in the panel are protected, since no protection icons appear.
  • the protection management tool enables the user to select one or more of the listed images listed for setting protection.
  • the user selects one or more images by clicking on their file names with the mouse, and using the “Shift” and “Control” keys to select a contiguous group of names or multiple names, respectively, as is the well-known standard for Windows operating systems. After selecting one or more images, the user clicks on the “Protect” button to have protection settings applied thereto.
  • the “Protect” button toggles the current protection settings, so that images that are unprotected become protected, and images that are protected become unprotected.
  • the user interface may not permit a user from selecting at one time both images that are protected and images that are unprotected, so that each application of protection settings either sets the status of unprotected images to protected or sets the status of protected images to unprotected.
  • the user can select one or more HTML files, to apply protection settings to all images referenced therein.
  • the user can also select one or more folders, to apply protection settings to all images located therein.
  • the user can browse the web site being administered with the screen of FIG. 13, and select folders, HTML pages and other types of web pages, and images to protect or to unprotect.
  • FIG. 14 is an illustration of a tool bar within a protection management tool operative in accordance with a preferred embodiment of the present invention.
  • the tool bar illustrated in FIG. 14 is the one appearing at the top of the screen illustrated in FIG. 13. It contains eight buttons, entitled “Get List”, “Protect”, “Tags”, “Submit”, “Mirrors”, “Sites”, “Server” and “Help”.
  • the “Get List” button is used to browse the web site being administered using the screen illustrated in FIG. 13 hereinabove.
  • the “Protect” button is used to apply protection settings to one or more selected images, as described hereinabove with reference to FIG. 13.
  • the Tags button can be used when a user selects one or more HTML page file names, to protect images referenced within protection tags in the selected HTML pages.
  • tags such as ⁇ !protect> and ⁇ !/protect> are used to delineate one or more sections within an HTML page, and the images referenced within the tagged sections can be protected by selecting the HTML file name and clicking on the “Tags” button.
  • the “Tags” button only protects images references within the tagged sections of selected HTML pages.
  • the “Submit” button is used to confirm protection settings made by the user, and transmit them to the web server computer for application.
  • the protection settings he edited are sent to the web server computer and incorporated into the protection status database, as described hereinabove with reference to FIG. 3 and FIG. 4.
  • the protection settings he edited are only displayed within the protection management tool by his local computer. Only when he clicks the “Submit button” are his settings actually applied. If the user does not click on the “Submit” button, then all of the protection settings he edited will not take effect, and the protection settings will remain at their former state if he closes the screen.
  • the “Mirrors” button is used to identify web sites that are mirror sites (i.e., identical sites), as described hereinbelow with reference to FIG. 18.
  • the “Site” button is used for updating the list of administered sites, as described hereinbelow with reference to FIG. 17.
  • the “Server” button is used to modify server parameter settings, as described hereinbelow with reference to FIG. 15.
  • the server parameters are first initialized when the copyright protection software is installed on the web server computer.
  • the “Help” button is used to invoke on-line help and documentation, as is typical for Windows applications.
  • FIG. 15 is an illustration of a user interface dialogue box for setting server parameters within a protection management tool operative in accordance with a preferred embodiment of the present invention.
  • a Server Settings dialogue box is invoked when a user clicks on the “Server” button in the tool bar illustrated in FIG. 14.
  • the topmost parameter is the IP address for the web server.
  • the parameter setting indicated in FIG. 15 specifies an IP address of 192.168.1.39 and a port of 80.
  • the second parameter is the root directory for the web server, relative to which folder names and file names are specified.
  • the parameter setting indicated in FIG. 15 specifies a root directory of d:/netpub/wwwroot.
  • the third parameter is the file name of a default web page that is displayed when a client first connects to the web server.
  • the parameter setting indicated in FIG. 15 specifies a default web page default.htm (residing in the root directory).
  • the fourth parameter specifies what is to be performed when a protected image is requested by an unsupported web browser.
  • An unsupported web browser is one for which a substitute data processor, such as the one indicated in FIG. 1, is not installed.
  • the web server cannot send substitute data, such as encrypted image data, since the browser will not be able to render it. Instead, the web server must send an image in a standard format such as JPEG and GIF, which the browser can render.
  • the protection management tool offers three options for dealing with unsupported browsers: (i) allow protected images to be transmitted without protection; (ii) replace tags for protected images with alternate HTML tags; and (iii) watermark protected images.
  • the fourth parameter specifies which of these three options the user chooses.
  • the parameter setting indicated in FIG. 15 specifies the third option; namely, that tiled watermarks are to be composited onto the protected image, and the resulting watermarked image is to be transmitted instead of the protected image itself.
  • this is the default parameter setting.
  • the watermarked image is transmitted in a standard image format, such as JPEG and GIF, and, as such, it can be displayed by the web browser.
  • the fifth parameter indicates the replacement tag to be substituted for a reference to a protected image in an HTML page, when the client is using an unsupported browser and when the second option above is chosen for handling unsupported browsers.
  • the parameter setting indicated in FIG. 15 specifies that the replacement tag to be used is an IMG tag with a source file name of /default/ Err.gif. Preferably, this is the default parameter setting.
  • the sixth parameter indicates the image of a watermark to be used to watermarking protected images, when the client is using an unsupported browser and when the third option above is chosen for handling unsupported browsers.
  • the watermark image is a small image, and it is tiled so that the watermark appears repetitively in a checkerboard fashion, or other such fashion, over a protected image that is watermarked.
  • the parameter setting indicated in FIG. 15 specifies that the watermark image is in a file named watermark.gif.
  • the seventh parameter indicates the saturation, or opacity level, with which the watermark is to be composited over a protected image, when the client is using an unsupported browser. A saturation of 0.0 is fully transparent, and a saturation of 1.0 is fully opaque.
  • the parameter setting indicated in FIG. 15 indicates a watermark transparent color of white ( 255 ). Preferably, this is the default parameter setting.
  • the twelfth parameter indicates the directory in which substitute data, such as encrypted images, are cached for efficient re-use upon subsequent requests for the same protected images.
  • the parameter setting indicated in FIG. 15 indicates the directory /cache (relative to the root directory d:/netpub/wwwroot).
  • the thirteenth parameter indicates the length of time during which a file is maintained in the cache directory.
  • the parameter setting indicated in FIG. 15 indicates a duration of 1,440 minutes. After this duration a cached file is purged from the cache.
  • the fourteenth parameter indicates the frequency with which the cache is monitored, to determine which files are to be purged from the cache.
  • the parameter setting indicated in FIG. 15 indicates a monitoring frequency of every 1,440 minutes.
  • the fifteenth parameter indicates a file name into which a log file is written.
  • the parameter setting indicated in FIG. 15 indicates a file name of cSafeLog.txt. This file will receive log data for the copyright protection software running on the server.
  • the log data may include information such as requests for protected image data, the clients making the requests and the data transmitted to them in response.
  • the sixteenth parameter indicates the level of detail to be written to the log file. Level zero corresponds to the minimum of detail—only critical information, and higher levels correspond to additional detail.
  • the seventeenth parameter indicates the e-mail address of the administrator of the web server computer, to be contacted as necessary. For example, the administrator can be contacted whenever there is upgraded copyright protection software available, or whenever new products are available.
  • the user can click on the “OK” button to apply the new parameter settings.
  • the user can also click on “Cancel” to cancel his entries. If the user wishes to modify the password for the server, he can click on the “Modify Password” button, which opens the “Modify Password” dialogue box, as described with reference to FIG. 16.
  • FIG. 16 is an illustration of a user interface dialogue box for modifying a password for accessing a web server, within a protection management tool operative in accordance with a preferred embodiment of the present invention.
  • a Modify Password dialogue box is invoked when a user clicks on the “Modify Password” button in the Server Settings dialogue box illustrated in FIG. 15.
  • the Modify Password dialogue box prompts the user for the typical information used when changing a password. The user is prompted to enter the current password, the new password and a confirmation of the new password. The user may also check a box indicating that the password is to be saved by the protection management tool, so that the user can subsequently access the web site without having to specify the password again (as long as the password remains valid). After providing the requested passwords, the user can click on the “OK” button to effectuate his change. He can also click on the “Cancel” button to cancel his entries.
  • the protection management tool sets a maximum expiration date for a password, thus forcing the user to update his password from time to time.
  • FIG. 17 is an illustration of a user interface dialogue box for a site list, within a protection management tool operative in accordance with a preferred embodiment of the present invention.
  • the “Site List” dialogue box is invoked when a user clicks on the “Sites” button in the tool bar illustrated in FIG. 14.
  • the Site List dialogue box lists all of the sites included in the site list used by the protection manager tool. The sites are listed by alias name, or by IP address for those sites that do not have an alias.
  • a user can add a new site to the list by clicking on the “New . . . ” button.
  • a user can modify the settings for a site already included in the list by clicking on the “Modify . . . ” button.
  • a user can delete sites from the site list by selecting one or more sites listed in the dialogue box, and clicking on the “Delete” button.
  • the “Delete” button is shown disabled in FIG. 17, since none of the sites listed are selected.
  • the user closes the Site List dialogue box by clicking on the “Close” button or on the “X” at the top right corner of the dialogue box window.
  • FIG. 18 is an illustration of a user interface dialogue box for defining mirror sites, within a protection management tool operative in accordance with a preferred embodiment of the present invention.
  • Mirror sites are identical web sites, used for the purpose of proliferating files on multiple server computers, so as to balance the processing load over multiple computers, and so as to make it easier for users around the world to access files. It is the responsibility of web administrators to ensure that mirror sites are kept current.
  • protection settings edited by a user for a specific web site can be applied to one or more mirror sites as well, without the need for the user to explicitly edit the settings on each individual mirror site.
  • the protection management tool preferably enables a user to identify sites that are mirror sites, and manage their protection settings simultaneously.
  • a Mirror Sites dialogue box is invoked when a user clicks on the “Mirrors” button in the tool bar illustrated in FIG. 14. The Mirror Sites dialogue box is invoked while a user is accessing a specific site, and the information it displays is relative to this specific site currently being accessed.
  • the Mirror Sites dialogue box has a left panel indicating sites from among the site list that are mirrors of the site being accessed, and a right panel indicating sites from the site list that are not mirrors of the site currently being accessed.
  • the user can click on one or more of the sites listed in the right panel to select them, and then click on the “ ⁇ Add to Mirrors” button to make them mirror sites of the site being accessed. Clicking on the “ ⁇ Add to Mirrors” button results in the selected sites being moved from the right panel to the left panel.
  • the user can click on the “New . . . ” button if he wishes to include a new site, not currently included in the site list, as a mirror site to the site currently being accessed.
  • the user can also select one or more of the sites listed in the left panel as mirror sites, and click on the “Remove” button to make them non-mirror sites.
  • the “Remove” button is disabled in FIG. 18, since no sites are shown listed as mirror sites in the Figure. Clicking on the “Remove” button results in the selected sites being moved from the left panel to the right panel.
  • the user can check a box to update mirrors automatically, and then any edits he makes to parameter settings for the site currently being accessed will automatically be submitted to the mirror sites whenever the user clicks on the “Submit” button in the tool bar illustrated in FIG. 14, to submit his edits to the web server computer.
  • This mode of automatic update results in protection settings being updated incrementally in mirror sites each time the user edits them in one of the sites.
  • the mirror sites will lost synchronization and will not regain synchronization as future edits are made, even if the future edits are proliferated to the mirror sites. This loss of synchronization can happen, for example, if one of the mirror sites is not operational at the time the user makes his edits to the protection settings or, for example, if a mirror site is removed from the list of mirror sites.
  • the Mirror Sites dialogue box In order to bring mirror sites up-to-date with a site currently being accessed, the Mirror Sites dialogue box also has a button for sending the current settings to the mirror sites. Clicking on this button causes all of the protection settings to be sent to the mirror sites listed in the left panel, and not merely the incremental edits that the user made. This serves to re-synchronize the mirror sites with the site currently being accessed, and ensures that the protection settings are the same at the mirror sites and the site currently being accessed.
  • the Mirror Sites dialogue box can be closed by clicking on the “Close” button, or by clicking on the “X” at the upper right hand corner of the dialogue box window.
  • FIG. 19 is an illustration of a virtual directory properties file residing on a web server computer in accordance with a preferred embodiment of the present invention.
  • the virtual directories property file is a text file named VirtualDirectories.properties, preferably used by the web server to (i) protect images in dynamically generated web pages, and (ii) protect images residing on other server computers.
  • This file contains the names of directories in which dynamically generated pages and/or dynamically generated images are stored, along with a protection status identifier for such directories. Protection status identifiers include PROTECT, TAGS and ACCESSIBLE.
  • PROTECT indicates that the pages and images in the directory are protected.
  • TAGS indicates that only images referenced within protect tags of HTML pages in the directory are protected.
  • ACCESSIBLE indicates that the pages and images in the directory are unprotected.
  • FIG. 19 The file illustrated in FIG. 19 indicates that a directory named /cgi-bin/ (relative to the root directory) is assigned PROTECT status. Thus pages and images in /cgi-bin/ that are dynamically generated will be protected.
  • FIG. 19 also indicates that a directory named /scripts/ (relative to the root directory) is assigned TAGS status. Thus pages in /scripts/ that are dynamically generated will be protected to the extent that images referenced within their protect tags are protected.
  • FIG. 19 also indicates an alias for images on another server computer that are to be protected.
  • the alias is /lpis.htm?, and the true address is http:// 101 . 345 . 56 . 52 : 8081 /.
  • /lpis.htm and /lpis.html are interpreted by the web server as aliases for the root directory of the web server with IP address 101 . 345 . 56 . 52 and port 8081 .
  • the VirtualDirectories.properties file is manually or automatically edited by a user whenever he wishes to protect dynamically generated web pages, dynamically generated images, and images residing on another server computer.
  • the substitute data used for protected images are encrypted images. That is, (i) protected images are encrypted on the web server computer, using an encryption algorithm and an encryption key as is well known to those skilled in the art; (ii) references to the protected images are replaced with references to encrypted images in the HTML pages that reference the protected images, and (iii) the encrypted images are transmitted from the web server to client computers.
  • the client computers use substitute data processing software to decode the encrypted images and to render them for display on a video monitor.
  • the web server regularly changes the encryption key, and possibly also the encryption algorithm.
  • the server computer transmits updated substitute data processing software to each registered client computer, as soon as such client computer connects to the server.
  • This ensures that the encryption key, and possibly also the encryption algorithm, are changed regularly, thus thwarting attempts to steal copyright protected images by reverse engineering substitute data processors.
  • these updates are done frequently enough so that the duration between updates is likely to be less than the time it typically takes to discover the encryption information by reverse engineering.
  • each client that downloads a substitute data processor from a server computer is registered in a user database. This makes it possible to keep track of clients and send them updated software automatically.
  • version information for a substitute data processor in a client computer may be stored in a “cookie,” or other such file used by web servers to identify client information. Using the cookie, a web server can automatically determine if a client is using out-dated software, and, if so, automatically update the client software.
  • the web server can do nothing, in which case the client software will no longer be able to render encrypted images after the encryption key and/or algorithm is updated, and the user will have to download updated software at his own initiative.
  • a plugin for Netscape and Internet Explorer is preferably used.
  • the plugin consists of three parts—the plugin proper, a system extension (also referred to as INIT) and an executable client library.
  • the system extension and the client library are downloaded from a web server as needed, as described hereinbelow.
  • the plugin is preferably placed in the Netscape or Internet Explorer Plugins folder.
  • the system extension and the client library are preferably installed into the Extensions Folder in the System folder of the user's boot disk.
  • the system extension is an invisible file, and contains an INIT resource that “patches” system calls at boot time as needed, in order to enable the plugin to circumvent screen capture programs.
  • the system extension does not do processing itself, but instead calls the plugin, which in turn sends a patch through to the client library.
  • the client library is preferably a MacOS shared library, and contains programming code for patches and for rendering images onto a screen. The provides the capability to update code without downloading the entire plugin.
  • a user In order to view protected images, a user is first required to download the plugin and INIT. A user then runs an installation program to install the plugin into the Netscape Navigator Plugins folder or the Internet Explorer Plugins Folder. The user reboots his computer in order for the INIT to apply its system patches.
  • the plugin When the plugin is activated, it preferably reads a configuration file to determine if the client library or system extension needs up be updated. If the configuration file is missing, or if the current date and time is greater than the next update check time in the configuration file, the plugin downloads a new configuration file that specifies the latest version of the client library and the system extension. If the current version of the client library and/or the system extension on a client computer is not the latest version, then the plugin downloads the latest version of the client library and/or the system extension.
  • the configuration file includes (i) a date for next update check, (ii) a client library version number, (iii) a system extension version number, (iv) a list of capture application types, (v) a list of capture control panels and extensions, (vi) a list of resource types, and (vii) a list of non-blockable control panels and extensions.
  • the version numbers are preferably in MacOS binary coded decimal version format, of the form:
  • M is the major version number
  • m is the minor version number
  • b is the bug fix number
  • s is the stage (d, a, b or f)
  • rrr is the release number
  • Line 1 includes the name of the utility. This line is preferably only used by the list of non-blockable control panels and extensions. For other lists, the name “Unused” is inserted.
  • Line 2 contains three 4-character codes used to identify capture applications and utilities. The first two codes are the file type and creator type, and the third code is a resource type.
  • Line 3 contains hex codes for a pattern to match in the resource map of the file. If no hex pattern is used, a single carriage return is included.
  • the web browser When it encounters a file name, the web browser normally identifies a type of content, and pushes the file to an appropriate plugin.
  • the parameters passed to the plugin provide only encrypted names for protected image files, and, as such, the web browser typically cannot determine a content type from the file name. Instead, the plugin decrypts the name and initiates the download itself. This prevents others from accessing protected images directly. Downloaded protected image files are encrypted, and the library decrypts them before they are used.
  • MacOS uses file types and creator types to identify files and the applications that created them.
  • the list of capture applications from the configuration file is used by the plugin in conjunction with creator types to determine relevant applications to be aware of for ensuring copyright protection. If such a capture application is launched or running, the plugin preferably hides its images.
  • the list of capture control panels and extensions from the configuration file is used by the plugin in conjunction with the list of resource types to determine if a non-application executable, such as an extension or control panel, is about to invoke a screen capture.
  • the system extension loads itself into memory at boot time. It looks in the System Folder, Extensions Folder, Control Panels Folder and the Start Up Items folder, for items of type INIT, cdev, APPC, appe and APPL, which are INITs, control panels, new control panels, applications and application extensions. For each of these folders, the system extension creates an information list that includes a copy of the resource map for each such item found. The information list is used by the plugin to locate “show stoppers;” i.e., utilities that cannot be blocked by known methods.
  • the system extension patches the following traps: OpenPicture, ClosePicture, CopyBits, InitGraf, GetResource and SetFileInfo.
  • a typical way for a capture utility to implement screen capture is by creating a MacOS Picture, similar to a Windows meta-file.
  • Such a capture utility calls OpenPicture(), CopyBits(screen,dest) and ClosePicture(), to create a PICT file or to put the data on the global clipboard in PICT format. If the plugin is running, the system extension patch for OpenPicture() sets a flag so that the system extension patch for CopyBits() knows that OpenPicture() was previously called.
  • the system extension patch for CopyBits() is preferably a head patch; i.e., the patch is applied and then the conventional system CopyBits() is called.
  • the system extension patch for OpenPicture() preferably calls the plugin to update rectangles of the instances, and to set a flag to indicate to the system extension that the patch for CopyBits() should be used.
  • the system extension patch for CopyBits() uses the rectangles and erases them on screen, so that the conventional CopyBits() call does not gain access to unmodified protected images.
  • the patch for CopyBits() sets a flag indicating that the plugin should re-draw the images.
  • the plugin identifies screen capture utilities using two methods: (i) by file type and creator, and (ii) by the resource map of the file. When used together, these two methods provide a more robust way to identify files than does either of them alone.
  • a Macintosh file includes two forks—a resource fork, and a data fork.
  • the resource fork includes data that can be changed independently of the executable code; for example, strings, icons and dialogue boxes.
  • an index of the fork is read into RAM by the resource manager.
  • the resource map includes information about resources in the file. Resource maps are chained in a linked list—as each file in the chain is opened, a new map is added to the chain.
  • a descriptor for the creator of a file is typically stored in a signature resource in the file.
  • the signature resource is part of a group of resources that enables the operating system to associate icons and files with the creator type. This information can be used by a patch for GetResource() to identify a screen capture utility that is running.
  • the resource map can be searched for the signature resource. If it can be found, then the capture utility can be identified.
  • the resource type (the third 4 -character code in line 2 ) can also be used to identify a screen capture utility.
  • the hexadecimal string (line 3 ) can also be used.
  • the present invention preferably uses the system extension patch for InitGraf() to grab application resource maps as each application is launched.
  • the system extension starts up, it allocates a table to store 512 resource maps.
  • the patch for InitGraf() is called, and the system extension stores the current resource map in one of the 512 entries.
  • the application is closed, the resource map is removed from the table.
  • the table is accessible to the plugin, and when the plugin is running it examines the table to see if there is a signature resource or other identifying trait. If so, then the plugin can determine if a capture application is running, and can hide protected images.
  • the choice of 512 for the size of the table for the resource maps is arbitrary, but has been found to be adequate.
  • the system extension preferably does the search at startup time, and stores information about each INIT, cdev, APPC, appe and APPL file type in the System Folder, Extensions Folder, Startup Folder and Control Panels folder. If instead the plugin was to do the search, then the search would have to be carried out each time the plugin is instantiated.
  • the system extension makes the information about the extensions and control panels available to the plugin via shared memory, and the plugin can quickly scan the list for installed items that cannot be blocked.
  • the present invention can be applied to copyright protection of text contained in web pages.
  • text contained in web pages can be copied by simply selecting a section of text by dragging a mouse pointer thereover, and invoking a “Copy” command.
  • the copied text can then be pasted onto a word processing application by invoking a “Paste” command.
  • the present invention can be used to prevent unauthorized copying of text from a web page.
  • the present invention can be integrated with transaction software so that protected images can be purchased on-line. Specifically, when a user positions a mouse pointer over a protected image and right clicks on the mouse, a transaction menu can be popped up with one or more selections for purchasing the protected image. Selecting an option to purchase the image can trigger e-commerce transaction software. Thus when a user tried to save the image using the standard “Save Image As . . . ” command, he is notified that the image is copyright protected and presented with an opportunity to purchase the image. Selections for purchasing the image can include purchasing one or more hardcopy prints of the image, purchasing apparel, such as clothing, containing the image, and purchasing an electronic version of the image.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Computational Linguistics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Finance (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Artificial Intelligence (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computing Systems (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Technology Law (AREA)
  • Human Computer Interaction (AREA)
  • Storage Device Security (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)
  • Editing Of Facsimile Originals (AREA)
  • Document Processing Apparatus (AREA)
  • Television Signal Processing For Recording (AREA)
  • Image Processing (AREA)

Abstract

A method for protecting digital images distributed over a network, including the steps of receiving a request from a client computer running a network browser, for an original layout page containing references to digital images therein, parsing the original layout page for the references to digital images, generating a modified layout page from the original layout page by replacing at least one of the references to digital images in the original layout page with references to substitute data, and sending the modified layout page to the client computer. A system is also described and claimed.

Description

  • 1. This application is a division of commonly-owned U.S. application Ser. No. 09/397,331, attorney docket number 21939-04692, filed on Sep. 14, 1999, entitled “Method and System for Copyright Protection of Digital Images Transmitted Over Networks.”
  • FIELD OF THE INVENTION
  • 2. The present invention relates to copyright protection of digital data.
  • BACKGROUND OF THE INVENTION
  • 3. Software copyright protection is a central concern in software development, and in copyright law itself. Typically, software is distributed in shrink-wrap packages containing diskettes and/or CD-ROMs, and over the Internet via ftp servers. Protecting software from rampant unauthorized copying, distribution and use (“software piracy”) is one of the most challenging problems facing the software industry.
  • 4. Over the past years, several techniques have been developed for combating software piracy. These include use of hardware plugs, use of license keys, use of tokens and sophisticated encryption systems.
  • 5. One of the leading technologies for controlling use of software within turnkey transaction systems is the Digital Rights Management system of InterTrust® Technologies Corp. of Sunnyvale, Calif., as described in U.S. Pat. Nos. 5,892,900, 5,410,598, 5,050,213, 4,977,594 and 4,827,508. Information about InterTrust is available on the web at http://www.intertrust.com.
  • 6. Another such leading technology is the CyberSales Solution™ of SoftLock.com, Inc. of Maynard, Mass., as described in U.S. Pat. No. 5,509,070. CyberSales Solution provides locking and unlocking functionality so that content can be securely previewed by consumers, electronically purchased and redistributed, and it protects the content in an initial transaction and in subsequent information pass-along. Content providers can control how much information is available without paying, and disable, or additionally charge for, the ability to print or cut and paste. CyberSales Solution handles secure transactions, remittance processing, reports, audits and customer service. Information about CyberSales Solution is available on the web at http://www.softlock.com.
  • 7. With the advent of the use of compelling multi-media on web pages accessible over the Internet, protection of digital images and other media is becoming increasingly critical. Web designers are reluctant to use valuable digital “works of art” knowing that users can easily copy them onto their own computers, and use them for their own unauthorized purposes. Moreover, anyone using a web browser to view an image posted on the Internet can easily copy the image by simply positioning a mouse pointer over the displayed image, clicking on the right mouse button and selecting a “Save Image As . . . ” command. Copyright and piracy issues are major problems for web publishers.
  • 8. Prior art techniques for protecting digital images include the embedding of invisible digital watermarks within images, so that copies of protected images can be traced. Digimarc Corporation of Lake Oswego, OR embeds hidden messages within pixel data for identifying protected images, and tracks their distribution over the Internet to monitor potential copyright infringement. Digimarc images carry unique IDs that link to pre-determined locations on the web. Digimarc images are compatible with standard image formats, such as JPEG, and can be opened and displayed by standard image readers. However, when opened with a Digimarc reader, the images are displayed together with a “Web look up” button that enables a user to identify the sources of the images. Digimarc technology is described in U.S. Pat. Nos. 5,862,260, 5,850,481, 5,841,978, 5,841,886, 5,832,119, 5,822,436, 5,809,160, 5,768,426, 5,765,152, 5,748,783, 5,748,763, 5,745,604, 5,721,788, 5,710,834 and 5,636,292. Information about Digimarc is available on the web at http://www.digimarc.com.
  • 9. These techniques are useful in thwarting digital image piracy to the extent that they trace pirated content, but they do not prevent unauthorized copying of digital images in the first place.
  • 10. Other prior art techniques require a webmaster to modify images residing on a server computer in order to protect them. The webmaster is also required to modify his web pages accordingly, so as to reference the modified images. SafeMedia™ is a software product of Internet Expression, Inc. of Exton, Pa. that converts images from a standard format such as JPEG into a SIF (Safe Image Format). SIF images can only be viewed with a SafeMedia Java viewer. SafeMedia embeds a host or domain name into an image, and checks that the image is located on the web site it was intended for. SafeMedia also includes enhanced system control for preventing screen capture by disabling a clipboard. Information about SafeMedia is available on the web at http://www.safemedia.com.
  • 11. These techniques are difficult to embrace, since they require modification of all protected images on the web, as well as modification of the web pages that reference them. Furthermore the SIF Java viewer has the limitation of only being able to load images from the same server that the viewer came from.
  • 12. Other prior art techniques for protecting digital images use Java applets within web browsers to disable the menu that pops up when a user right clicks on a displayed image within his web browser. Copysight® is a software application of Intellectual Protocols, LLC of Nanuet, N.Y. that uses digital watermarking and fingerprinting to protect images, and includes a Java applet that disables the ability to save displayed images within a web browser and the ability to print them. Copysight operates by converting unprotected files to protected files that are encrypted and that contain digital fingerprints. Copysight also tracks distribution of protected images across the Internet, and issues reports of potential copyright infringement. It allows a web administrator to select which files are to be protected. Information about Copysight is available on the web at http://www.ip2.com.
  • 13. These techniques disable unauthorized copying of digital images from within web browsers, but they do not protect the images from copying by an application external to the web browser. For example, they do not prevent a user from copying digital images displayed in his web browser by means of an application running external to the web browser, such as an image editing tool, or by means of a Print Screen or other such command that serves to copy contents of a video buffer to a clipboard. Thus a Java applet that prevents unauthorized copying of digital images from within Netscape Communicator or Internet Explorer can be circumvented by a user pressing on a Print Screen button of his keyboard, or by a user copying and pasting from a window of his web browser to a window of another software application.
  • SUMMARY OF THE INVENTION
  • 14. The present invention provides a method and system for enabling a user to view protected image data using his web browser without being able to copy it. The slogan “Look but Don't Touch™” has been adopted to describe the feature of the present invention that enables a user to view content without being able to copy it into his computer.
  • 15. The present invention is distinct from prior art methods in several respects. A first distinction is that the present invention displays an image to a user without downloading unmodified image data to the user's computer. Thus, unlike software piracy techniques that protect an original copy of software from being illegally copied, the present invention does not provide an original copy in the first place.
  • 16. A second distinction is that the present invention prevents a user from copying a protected image both from within and from without his web browser. Specifically, the present invention blocks copying of an image from within his web browser, when a user selects the “Save Image As . . . ” command and when a user prints the contents of a web browser window. It also blocks copying of an image from without when a user presses the “Print Screen” button of his keyboard or attempts to copy from his web browser window and paste onto a window of another application, or when a third party software application attempts to use the “Print Screen” command.
  • 17. In a preferred embodiment, the present invention uses a software web server plug-in that filters HTTP requests and sends substitute data, such as encrypted image data, for requested image data that is protected. It also uses a software web browser plug-in for displaying the substitute data and for blocking the ability to copy protected image data being displayed from the video buffer of the user's computer. It also uses a management tool for setting protection status of images and web pages residing on one or more server computers.
  • 18. There is thus provided in accordance with a preferred embodiment of the present invention a method for protecting digital images distributed over a network, including the steps of receiving a request from a client computer running a network browser, for an original layout page containing references to digital images therein, parsing the original layout page for the references to digital images, generating a modified layout page from the original layout page by replacing at least one of the references to digital images in the original layout page with references to substitute data, and sending the modified layout page to the client computer.
  • 19. There is further provided in accordance with a preferred embodiment of the present invention a method for protecting files distributed over a network, including the steps of displaying a list of files, generating protection status information in response to selection by a user of at least one of the files in the list of files, and sending the protection status information to a server computer.
  • 20. There is yet further provided in accordance with a preferred embodiment of the present invention a system for protecting digital images distributed over a network, including a receiver receiving a request from a client computer running a network browser, for an original layout page containing references to digital images therein, a layout page parser parsing the original layout page for the references to digital images, a layout page generator generating a modified layout page from the original layout page by replacing at least one of the references to digital images in the original layout page with references to substitute data, and a transmitter sending the modified layout page to the client computer.
  • 21. There is moreover provided in accordance with a preferred embodiment of the present invention a system for protecting files distributed over a network, including a user interface displaying a list of files, a protection status manager generating protection status information in response to selection by a user of at least one of the files in the list of files, and a transmitter sending the protection status information to a server computer.
  • 22. There is additionally provided in accordance with a preferred embodiment of the present invention a method for protecting digital images distributed over a network, including the steps of receiving a request from a client computer, submitting the request to a server computer, receiving an original layout page containing references to digital images therein from the server computer, parsing the original layout page for the references to digital images, generating a modified layout page from the original layout page by replacing at least one of the references to digital images in the original layout page with references to substitute data, and sending the modified layout page to the client computer.
  • 23. There is further provided in accordance with a preferred embodiment of the present invention a system for protecting digital images distributed over a network, including a receiver receiving a request from a client computer and receiving an original layout page containing references to digital images therein from a server computer, a transmitter submitting the request to the server computer and sending a modified layout page to the client computer, a layout page parser parsing the original layout page for the references to digital images, and a layout page generator generating the modified layout page from the original layout page by replacing at least one of the references to digital images in the original layout page with references to substitute data.
  • 24. There is yet further provided in accordance with a preferred embodiment of the present invention a method for protecting digital images displayed in a web browser, including the steps of displaying a digital image by a web browser, the digital image including pixel data, requesting access to pixel data of the digital image, and in response to the requesting, blocking access to pixel data of the digital image.
  • 25. There is additionally provided in accordance with a preferred embodiment of the present invention a method for protecting digital images displayed in a web browser, including the steps of displaying a digital image by a web browser, the digital image including pixel data, requesting access to pixel data of the digital image, in response to the requesting, intercepting a request to access pixel data of the digital image, and providing substitute data to pixel data of the digital image in a response to the request to access pixel data of the digital image.
  • 26. There is moreover provided in accordance with a preferred embodiment of the present invention a system for protecting digital images displayed in a web browser, including a web browser displaying a digital image, the digital image including pixel data, a command processor requesting access to pixel data of the digital image, and a request blocker, blocking access to pixel data of the digital image requested by the command processor.
  • 27. There is further provided in accordance with a preferred embodiment of the present invention a system for protecting digital images displayed in a web browser, including a web browser displaying a digital image, the digital image including pixel data, a command processor requesting access to pixel data of the digital image, a request interceptor intercepting a request to access pixel data of the digital image received from the command processor, and a data processor providing substitute data to pixel data of the digital image in a response to the request to access pixel data of the digital image.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • 28. The present invention will be more fully understood and appreciated from the following detailed description, taken in conjunction with the drawings in which:
  • 29.FIG. 1 is a simplified illustration of a system for copyright protection of digital images for use within a distributed server-client computing environment, in accordance with a preferred embodiment of the present invention;
  • 30.FIG. 2 is a simplified flowchart of a method for protecting digital images that are distributed within a server-client computing environment, in accordance with a preferred embodiment of the present invention;
  • 31.FIG. 3 is a simplified illustration of a management system, for managing protection of digital images, in accordance with a preferred embodiment of the present invention;
  • 32.FIG. 4 is a simplified flowchart of a method for managing digital image protection, in accordance with a preferred embodiment of the present invention;
  • 33.FIG. 5 is a simplified illustration of a system for copyright protection of digital images that are referenced in dynamically generated web pages, in accordance with a preferred embodiment of the present invention;
  • 34.FIG. 6 is a simplified flowchart of a method for protecting digital images that are referenced in dynamically generated web pages, in accordance with a preferred embodiment of the present invention;
  • 35.FIG. 7 is a simplified illustration of a system for preventing unauthorized copying of digital images within a client computer, in accordance with a preferred embodiment of the present invention;
  • 36.FIG. 8 is a simplified flowchart of a method for preventing unauthorized copying of digital images within a client computer, in accordance with a preferred embodiment of the present invention;
  • 37.FIG. 9 is a simplified illustration of a system for copyright protection of digital images residing on a computer that are referenced in a web page residing on a different computer;
  • 38.FIG. 10 is a simplified flowchart of a method for copyright protection of digital images residing on a computer that are referenced in a web page residing on a different computer;
  • 39.FIG. 11 is an illustration of a user interface dialogue box for adding a new site, within a protection management tool operative in accordance with a preferred embodiment of the present invention;
  • 40.FIG. 12 is an illustration of a user interface dialogue box for accessing a site, within a protection management tool operative in accordance with a preferred embodiment of the present invention;
  • 41.FIG. 13 is an illustration of a user interface screen for setting protection status, within a protection management tool operative in accordance with a preferred embodiment of the present invention;
  • 42.FIG. 14 is an illustration of a tool bar within a protection management tool operative in accordance with a preferred embodiment of the present invention;
  • 43.FIG. 15 is an illustration of a user interface dialogue box for setting server parameters within a protection management tool operative in accordance with a preferred embodiment of the present invention;
  • 44.FIG. 16 is an illustration of a user interface dialogue box for modifying a password for accessing a web server, within a protection management tool operative in accordance with a preferred embodiment of the present invention;
  • 45.FIG. 17 is an illustration of a user interface dialogue box for a site list, within a protection management tool operative in accordance with a preferred embodiment of the present invention;
  • 46.FIG. 18 is an illustration of a user interface dialogue box for defining mirror sites, within a protection management tool operative in accordance with a preferred embodiment of the present invention; and
  • 47.FIG. 19 is an illustration of a virtual directory properties file residing on a web server computer in accordance with a preferred embodiment of the present invention.
  • DETAILED DESCRIPTION OF A PREFERRED EMBODIMENT
  • 48. The present invention concerns protection of digital images transmitted over a network from unauthorized copying and use. Unlike prior art methods used to prevent software piracy, the present invention enables a user to view an image in his web browser without ever receiving original unmodified digital image data, and without being able to save the displayed image on his computer.
  • 49. Typically, digital images are viewed over the Internet within web pages, such as hyper-text markup language (HTML) or extended markup language (XML) pages. Such web pages are electronic data files, stored on server computers, containing layout information for displaying text and graphics, and for running software applications such as Java applets. Typically, the data for the graphic objects, such as images, displayed within a web page is not contained within the web page file itself. Instead, the graphic objects reside elsewhere on the same server computer or other server computers, and the web page file contains references, to the graphic objects. A reference to a graphic object specifies the network address of the computer containing the graphic object, such as an IP address, together with the directory path (relative to a prescribed root directory) and filename for the graphic object.
  • 50. When a web browser in a client computer downloads a web page file, it parses the web page in order to display it on a video monitor. While parsing the web page, the web browser encounters the references to graphic objects, and in turn downloads the graphic objects. Downloading a web page file and the graphic objects it references is typically done through the HTTP protocol. Client requests for data on server computers are issued through HTTP requests, and data transmission from server to client is issued through HTTP responses.
  • 51. After downloading the graphic objects, the web browser can render the web page with the graphic objects embedded therein, and display it to the user on his video monitor. In turn, the user can interact with the displayed web page by clicking on hyper-links to other web pages, or by interacting with an application such as a Java applet.
  • 52. Most web browsers enable a user to view the source for the web page being displayed. For example, they may contain a menu item “View Page Source” under a “View” heading. In addition, they also enable a user to save images being displayed, by right-clicking on such an image with a mouse cursor positioned thereover, and selecting a “Save Image As . . . ” menu item. Upon selection of the “Save Image As . . . ” item, the web browser opens an Explorer type directory window that enables the user to select a folder and filename for the image being saved.
  • 53. In a preferred embodiment of the present invention, the image data that is transmitted from a server computer to a client computer is encrypted image data that is generated from the original image data by encoding it using an encryption algorithm. In this embodiment, additional software may be required by the web browser in order to decode the encrypted data, since a standard web browser typically supports only a limited number of image file formats, such as GIF and JPEG, and may not contain the decoder necessary to decrypt the encrypted image data. For the Netscape communicator web browser of Netscape Communications, Inc. of Mountain View, Calif., such additional software may be a plug-in or a Java applet. For the Internet Explorer web browser of Microsoft Corporation of Redmond, Wash., such additional software may be an Active-X control or a Java applet. The additional software is used to decode the encrypted image data, and render it for display on a video monitor.
  • 54. When a user attempts to save an image being displayed by his web browser, the present invention, in a preferred embodiment, prevents him from doing so. There are several manners in which a user can attempt to save an image being displayed. The user may select the “Save Image As . . . ” menu option that appears with right-clicking on the image.
  • 55. The user may also attempt to save an image being displayed by copying the image from his web browser's cache. Typically, images being displayed by web browsers are stored temporarily in a local cache on the client computer.
  • 56. The user may also attempt to copy the entire screen by pressing a “Print Screen” command key on the keyboard. Typically, this causes the contents of the video display buffer to be pasted onto the user's clipboard. The user may also attempt to save an image being displayed by running a software application outside of is web browser. For example, an image editing application, such as Paint Shop Pro of Jasc Software, may have the capability of copying images from within web browsers to their own windows.
  • 57. For each scenario whereby the user attempts to save an image being displayed by his web browser, additional software used by the web browser is operative to prevent the image data from actually being saved. In one embodiment, the present invention replaces the image being saved with substitute data, so that the user in fact saves a substitute image. For example, the substitute image may be an encrypted image, which the user is unable to view. For another example, the substitute image may be a watermarked version of the original image, derived therefrom by composing watermarks over the image. For yet another example, the substitute image may be a prescribed image, possibly unrelated to the image being displayed by the web browser. Thus when the user selects the “Save Image As . . . ” option, or presses the “Print Screen” button, or copies the image from another software application, the image that is saved into the local file system or copied to the clipboard is a substitute image.
  • 58. In another embodiment, the present invention disables the user's ability to save an image being displayed, and does not enable the user to save image data at all. For example, the “Save Image As . . . ” menu option may be disabled, so that the user cannot select it, and the “Print Screen” key on the keyboard may be disabled so that when the user presses on it, nothing happens, and copying of the image by other software applications may be blocked.
  • 59. As described in detail hereinbelow, controlling or disabling the “Save Image As . . . ” menu option is preferably accomplished by additional software used by the web browser through intervention with mouse control functions. Controlling or disabling the “Print Screen” key on the keyboard is preferably accomplished by additional software used by the web browser through intervention with keyboard control functions. Controlling or disabling copying of displayed image data by other software applications is preferably accomplished within the Windows operating system by intervention (“patching”) with the Windows application programming interface (API) functions which copy pixel data from the video buffer of a computer, such as BitBlt, StretchBlt, PlgBlt, GetPixel and GDI32.
  • 60. Similarly, controlling or disabling copying of displayed image data by other software applications is preferably accomplished within the Macintosh operating system by using a system extension to intervene with ToolBox functions. Tool Box calls are managed by an array of pointers in a Trap Dispatch Table, each pointer pointing to appropriate program code. As described in more detail hereinbelow, the system extension can change these pointers so that they point to different program code. The different program code corresponds to patched ToolBox functions.
  • 61. A web server administrator, (“webmaster”) is responsible for configuring web server software and for managing web pages and images stored on a server computer. Typically, the administrator may wish to protect some of the images from unauthorized copying or use, and may wish to have other images unprotected, in accordance with instructions from the owners of the images. In a preferred embodiment, the present invention includes a management tool for managing protection of digital images residing on a server computer. The management tool preferably enables an administrator to select specific images to be protected from unauthorized copying or use as described hereinabove.
  • 62. Image protection may be specified in several modes, including (i) on an individual image-by-image basis, (ii) on a web page basis, (iii) on a folder basis, and (iv) on a tagged basis, as described hereinbelow. Protection specification on an individual image-by-image basis is carried out by selecting one or more image files within the management tool, preferably by a user interface that presents an Explorer-type window for navigating through file systems.
  • 63. Protection specification on a web page basis is carried out by selecting one or more web page files within the management tool. Selection of a web page for protection entails protection of all images referenced within the selected web page. In one embodiment of the present invention, such referenced images are maintained protected when the same images are referenced within other web pages. In an alternate embodiment of the present invention, such referenced images are protected only when referenced within web pages that are protected.
  • 64. Protection specification on a folder basis is carried out by selecting one or more folders within the management tool. Selection of a folder for protection entails protection of all web pages and all images referenced within the selected folder and, recursively, within all sub-folders thereof.
  • 65. Protection specification on a tagged basis is carried out by delineating segments within a web page that are to be protected by protection tags. Specifically, in a preferred embodiment of the present invention, protect and unprotect tags, such as <!protect> and <!/protect>, are used to bound segments of layout instructions within a web page, and every image referenced within such a segment between the tags is protected. Preferably, images referenced between the protection tags are protected only when referenced between protection tags within web pages, and are otherwise unprotected, unless additional protection has been specified by one of the above modes (individual image-by-image basis, web page basis, and/or folder basis).
  • 66. In a preferred embodiment of the present invention, the management tool can be used to change the protection status (protected / unprotected) of images on a server computer from time-to-time.
  • 67. In a preferred embodiment of the present invention, the management tool need not be operated from the server computer that contains the images whose protections are being specified. Instead, it can be executed from any computer connected to such server computer via a network. Thus a web administrator can remotely set the protections of images on multiple server computers from his own local computer, as long as there is a network connection between his computer and the multiple server computers.
  • 68. Reference is now made to FIG. 1, which is a simplified illustration of a system for copyright protection of digital images for use within a distributed server-client computing environment, in accordance with a preferred embodiment of the present invention. A server computer 100 typically includes web server software 102 that serves web pages 104 to a plurality of client computers 106 over the Internet. Web pages 104 typically contain references to images that are to be embedded within the pages when the pages are rendered on client computers 106. The images referenced in web pages 104 typically reside on server computer 100, although they may reside on other computers as well. Operation of the present invention when the images reside on other computers is described below with reference to FIG. 9 and FIG. 10.
  • 69. Some of the images referenced in web pages 104 are preferably designated as protected images 108, which the owners desire to protect from unauthorized copying or use. Others of the images referenced in web pages 104 are designated as unprotected images 110, which the owners are not concerned about protecting from unauthorized copying or use. Designation of images as protected or unprotected is typically made by the owners of the images. For example, images may be designated as protected images when they contain significant creative content, and images may be designated as unprotected images when they contain little or no creative content, it being understood that other criteria can be used alone or in combination as a basis for distinguishing between protected and unprotected images.
  • 70. Client computers 106 typically use web browser software 112 to access web pages stored on server computers 100, over the Internet. A web browser 112 requests a web page 104 from a server computer 100 by issuing an HTTP request. An HTTP request arriving at server computer 100 is processed by web server software 102.
  • 71. In a preferred embodiment of the present invention, an incoming HTTP request to server computer 100 is routed to an HTTP request filter 114. HTTP filter 114 accesses the requested web page 104 and parses it using a web page parser 116, to identify the images that are referenced therewithin. Server computer 100 maintains a protection status database 118 that stores a protection status (protected/unprotected) for each image residing on server computer 100. HTTP filter 114 determines the protection status of each image referenced within web page 104, using protection status database 118. It will be appreciated by those skilled in the art that protection status database 118 may reside on a different computer than server computer 100, but when it resides on server computer 100 the system of the present invention can conveniently determine protection status of images without having to retrieve such information from another computer.
  • 72. An unprotected image 110 referenced within web page 104 is handled by web server software 102 in the normal fashion. Specifically, neither the reference to unprotected image 110 nor image 110 itself are modified. However, a protected image 108 referenced within web page 104 is handled differently. A modified web page 120 is generated by a web page modifier 122. Specifically, the reference to protected image 108 in web page 104 is modified by web page modifier 122 so as to reference substitute data 124.
  • 73. Substitute data 124 preferably corresponds to an image that is visually identical or substantially similar to protected image 108. When substitute data 124 corresponds to an image that is visually identical to protected image 108, it is preferably an encrypted version of the protected image data. In a preferred embodiment of the present invention, the choice of what type of substitute data 124 to use depends on the owner's preference (e.g. whether or not to display an identical version of the protected image) and on the type of web browser 112 issuing the HTTP web page request from client computer 106.
  • 74. Specifically, with regard to the type of web browser 112 issuing the HTTP web page request, web browsers 112 may include software that functions as a substitute data processor 126, in the form of a browser plug-in, Java applet or Active-X control. Such a substitute data processor is capable of rendering an encrypted image, and is also capable of preventing a user of client computer 106 from copying an image that is displayed by web browser 112.
  • 75. In a preferred embodiment of the present invention the substitute data processor is not a Java applet, since Java applets are not readily capable of protecting against Windows API calls that access pixel data from the video buffer of a computer, as mentioned hereinabove. However, it is apparent to those skilled in the art that as Java capabilities are extended, Java applets may become appropriate for such protection.
  • 76. When web browser 112 includes substitute data processor 126, substitute data 124 can be encrypted image data, or other image data in a format that would not be supported by a standard web browser 112 that does not include substitute data processor 126. Furthermore, when web browser 112 includes a substitute data processor 126, substitute data 124 can appear visually identical to protected image 108 when rendered by substitute data processor 126, and yet a user of client computer 106 is not able to copy or use it without authorization.
  • 77. When web browser 112 does not include substitute data processor 126, substitute data 124 should be compatible with a standard web browser. For example, substitute data 124 can be a standard JPEG image. Alternatively, when web browser 112 does not include substitute data processor 126, substitute data 124 can be encrypted image data if modified web page 120 is generated so as to prompt client computer to download substitute data processor 126 in order to display substitute data 124. This is typically the way in which web pages prompt a client computer to download Java applets, Active-X controls within Internet Explorer, and plug-ins utilizing the Smart Update feature within Netscape Communicator.
  • 78. In a preferred embodiment of the present invention, the determination of which images on server computer 100 are protected images 108 and which images are unprotected images 110 is managed by a protection manager 128 residing on a remote computer 130, connected to server computer 100 by a network. It will be appreciated by those skilled in the art that protection manager 128 may reside on server computer 100, but the possibility of it residing on a remote computer 130 affords greater convenience to an administrator who can then administer server computer 100, and other server computers as well, remotely off-site.
  • 79. Reference is now made to FIG. 2, which is a simplified flowchart of a method for protecting digital images that are distributed within a server-client computing environment, in accordance with a preferred embodiment of the present invention. The flowchart is divided into three columns. The leftmost column includes steps performed by a user, the second column from the left includes steps performed by a client computer, and the rightmost column includes steps performed by a server computer connected to the client computer over the Internet or such other network of computers.
  • 80. At step 202 the client computer requests a connection to the server computer. At step 204 the server computer opens a communication socket between the client computer and the server computer. At step 206 the user requests to open a web page using his web browser and, in response, at step 208 the client computer issues an HTTP request for the web page to a web server on the server computer, using the web browser. At step 210 the web server receives the HTTP request for the web page from the client computer.
  • 81. In a preferred embodiment of the present invention, at step 212 the server computer searches a database to determine whether or not the web page being requested references any protected images, or has protection tags. If so, it routes the incoming HTTP request to an HTTP request filter, as described hereinabove with respect to FIG. 1. The HTTP filter applies a web page parser to the requested web page and identifies the images referenced therewithin. At step 214 the server computer generates a modified web page wherein references to the protected images are replaced with references to substitute data. The substitute data is preferably derived from the protected images. For example, the substitute data may be encrypted image data, obtained by applying an encryption algorithm to the protected image data. The modified web page is preferably a separate web page generated by a web page modifier, so that the original web page is preserved, as indicated in FIG. 1. Alternatively, the substitute references may be incorporated directly into the original web page, without generation of a separate modified web page.
  • 82. At step 216 the modified web page is sent back to the client computer within an HTTP response. At step 218 the client computer receives the modified web page containing references to substitute data, and the web browser begins to render the modified web page. In rendering the modified web page, the web browser encounters the references to the substitute data, and at step 220 the substitute data processor within the client computer issues to the web server an HTTP request for the substitute data. At step 222 the server computer receives the HTTP request for the substitute data, and at step 224 the server sends an HTTP response containing the substitute data to the client computer. At step 226 the client computer receives the HTTP response containing the requested substitute data, and at step 228 the client computer processes the substitute data using a substitute data processor, as described hereinabove with respect to FIG. 1, and renders the web page.
  • 83. At step 230 the user views the web page he requested. It is thus appreciated that the present invention enables the user to view protected images without being able to download them to his computer in unmodified form. Instead, substitute data is downloaded, such as encrypted image data.
  • 84. If the server computer determines at step 212 that the requested web page does not reference protected images and does not have protection tags, then the HTTP request is passed to the server without any parsing. In this case, the processing is much simpler, and proceeds in the normal manner. Specifically, a modified web page is not generated and substitute data is not used. Rather, at step 232 the unmodified web page is sent to the client computer within an HTTP response. At step 234 the client computer receives the HTTP response containing the unmodified web page, and the web browser begins to render the web page. In rendering the web page, the web browser encounters the references to unprotected images, and at step 236 the client computer issues an HTTP request for the unprotected images to the web server. At step 238 the server computer receives the HTTP request for the unprotected images, and, in response, at step 240 the server computer sends an HTTP response containing the unprotected images. At step 242 the client computer receives the HTTP response with the unprotected image data, and at step 244 the web browser processes the unprotected images and renders them with the web page.
  • 85. At step 230 the user views the web page he requested. It is thus appreciated that the unprotected image data is downloaded to the client computer as unmodified data, and is therefore susceptible to unauthorized copying or use.
  • 86. Reference is now made to FIG. 3, which is a simplified illustration of a management system, for managing protection of digital images, in accordance with a preferred embodiment of the present invention. Remote computer 130 administers protection of images on server computer 100 by entering and editing protection status information (protected/unprotected) within protection status database 118. Remote computer 130 retrieves file information 302 from file system 304 of server computer 100, and retrieves protection settings 306 from protection status database 118. Using file information 302, a user interface 308 displays a list of folder names, web page file names and image file names for the files in file system 304.
  • 87. Protection settings 306 are used by user interface 308 to display an indicator of protection status alongside each folder, web page and image. For example, in a preferred embodiment of the present invention, protection settings 306 are indicated to a user as follows:
  • 88. (i) an icon of a padlock is displayed alongside images that are designated as protected, whereas no icon is displayed alongside images that are designated as unprotected;
  • 89. (ii) a dark blue page icon is displayed alongside web pages all of whose referenced images are designated as protected, a light blue page icon is displayed alongside web pages some, but not all of whose referenced images are designated as protected, and a white page icon is displayed alongside web pages none of whose referenced images are designated as protected; and
  • 90. (iii) a dark blue folder icon is displayed alongside folders all of whose referenced images are designated as protected, a light blue folder icon is displayed alongside folders some, but not all of whose referenced images are designated as protected, and a white folder icon is displayed alongside folders none of whose referenced images are designated as protected.
  • 91. Protection settings 306 can be edited by means of user interface 308. A user can select one or more images from among the list of image filenames displayed by user interface 308, and set their protection status to protected or unprotected. The user can also select one or more web pages from among the list of web page file names displayed by user interface 308, and set their protection status to protected or unprotected. Setting the protection status of a web page to protected or unprotected is equivalent to setting the status of all the images referenced therewithin to protected or unprotected, respectively. In one embodiment of the present invention, such images referenced within a protected web page are treated as protected within any other web page, and in an alternate embodiment of the present invention, such images are treated as protected only within protected web pages.
  • 92. Similarly, the user can select one or more folders from among the list of folder names displayed by user interface 308, and set their protection status to protected or unprotected. Setting the protection status of a folder to protected or unprotected is equivalent to setting the status of all the images and web pages within the folder and, recursively, within all sub-folders thereof, to protected or unprotected, respectively.
  • 93. After editing protection settings, the user can click on a “submit” button in order to apply the modified protection settings on server computer 100; i.e., in order to have the modified protection settings take effect. Clicking on the submit button causes protection settings 306 to be transmitted from remote computer 130 to server computer 100. When server computer 100 receives the modified protection settings, it incorporates them into protection status database 118. Once so incorporated, the modified protection settings take effect, and are used thenceforth to determine the protection status of the images on server computer 100.
  • 94. In a preferred embodiment of the present invention, after the submit button is clicked and protection status database 118 is updated, the modified protection settings 306 are indicated in user interface 308 by updated icons, as described hereinabove.
  • 95. Reference is now made to FIG. 4, which is a simplified flowchart of a method for managing digital image protection, in accordance with a preferred embodiment of the present invention. The flowchart is divided into three columns. The leftmost column includes steps performed by a user, the second column from the left includes steps performed by a protection manager computer, and the rightmost column includes steps performed by a server computer.
  • 96. At step 402 the user launches a protection manager software tool. At step 404 the protection manager computer initiates connection to a web server on the server computer. At step 406 the server computer opens a communication socket with the protection management computer. At step 408 the protection manager computer requests file system information from the server computer. The requested file system information includes a site map of the folders and files in the server computer's file system, and protection status information for the folders and files listed in the site map. Protection status of folders and files is preferably one of the following: (i) protected, (ii) partially protected, (iii) protected using tags, and (iv) un-protected.
  • 97. At step 410 the server computer receives the request for file system information, and at step 412 the server computer sends the requested information to the protection manager computer. At step 414 the protection manager computer receives the requested file system information from the server computer, and at step 416 the protection manager computer displays this information within a user interface of the protection manager tool.
  • 98. At step 418 the user selects one or more folders and/or web pages, from among a list of folder names and web page file names displayed by the user interface. In response, at step 420 the protection manager computer requests image information and protection status information from the server computer, for the images contained within the selected folders and/or for the images referenced within the selected web pages. At step 422 the server computer receives the request from the protection manager computer, and at step 424 the server computer sends the requested image information and protection status information to the protection status computer. As part of step 424 it may be necessary for the server computer to parse the selected web pages in order to identify the images referenced therewithin. Parsing web pages is described hereinabove with reference to FIG. 1.
  • 99. At step 426 the protection manager computer receives the image information and protection status information, and at step 428 it displays this information within the user interface of the protection manager tool. Each folder name, web page file name and image file name is displayed in the user interface with a corresponding icon alongside that indicates its protection status. For example, file names of protected images are displayed with an icon of a padlock alongside.
  • 100. At step 430 the user selects one or more folders, web pages and/or images from the list of folder names, web page file names and image file names displayed by the user interface, and sets their protection status to protected or unprotected. Setting a protection status for one or more folders causes such protection status to apply to all of the images within such folders. Similarly, setting a protection status for one or more web pages causes such protection status to apply to all of the images referenced within such web pages.
  • 101. After editing the protection status of various folders, web pages and images, the user clicks on a “submit” button to apply the new protection settings. At step 432, the protection manager computer submits the edited image protection status information to the server computer. At step 434 the server computer receives the edited protection status information, and at step 436 the server computer incorporates this information into a protection status database. At step 438 the server computer sends the updated protection status information back to the protection manager computer, as a confirmation. At step 440 the protection manager computer receives the updated protection status information from the server computer, and at step 442 it displays the updated status information in the protection manager user interface.
  • 102. For ease of use, in a preferred embodiment of the present invention the protection manager computer displays modified status information upon selection by the user, as soon as a protect button is pressed, prior to submitting it to the server computer. The changes are only sent to the server computer when a submit button has been pressed. In this embodiment steps 438, 440 and 442 need not be performed.
  • 103. Some URL's do not correspond to existing web page files, but instead contain instructions, such as CGI script instructions or Visual Basic instructions, for generating dynamic web pages, such as active server pages. When a user opens such an URL, the server computer typically generates a web page dynamically, and sends the generated web page to the client computer.
  • 104. When web pages are generated dynamically, the server computer cannot parse the web page for references to protected images until the web page is generated. However, when the server receives an incoming HTTP request to generate a web page, it sends the generated web page as an outgoing HTTP response back to the IP address of the originating HTTP request. In order to be able to modify the generated web page before sending it to the client, so as to replace references to protected images with reference to substitute data, the present invention preferably re-submits the incoming HTTP request locally from the server computer to itself in order to be able to intercept the dynamically generated web page prior to its being sent to the client.
  • 105. Specifically, the incoming HTTP request from the client computer is routed to an HTTP filter, as described above with reference to FIG. 1. However, in distinction to FIG. 1, the HTTP filter re-submits the HTTP request from the server computer to itself. This ensures that when the server computer generates the dynamic web page, it will return it to the HTTP filter, rather than to the client. When the server computer re-submits the HTTP request, it preferably does so by passing along any HTTP header information, such as a cookie, or any POST information in an HTTP POST request.
  • 106. Before generating the dynamic web page, in order to ensure that the HTTP request originates from HTTP filter, rather than from another source, the HTTP filter preferably appends an identifier at the beginning of the original HTTP request, prior to re-submitting the HTTP request. Thus the re-submitted HTTP request has an additional identifier in its beginning for authentication purposes.
  • 107. Preferably, the server computer authenticates the HTTP request, based on the identifier in its beginning, before accepting the request and generating the dynamic web page. After authenticating the request, the server computer removes the identifier that was appended, and proceeds to process the request. If the HTTP request is not authenticated, the server computer denies the request and does not proceed to generate the dynamic web page.
  • 108. In a preferred embodiment of the present invention, the appended identifier is randomly generated. This serves as a preventive measure against extraction and fraudulent use of the identifier, since the identifier is constantly being changed.
  • 109. When the server computer authenticates the re-submitted HTTP request and, in turn, dynamically generates the web page, it sends the web page to the originator of the re-submitted HTTP request; namely, to the HTTP filter. Upon receipt of the web page, the HTTP filter can then parse the page to identify the images reference therewithin, and can generate a modified web page in which references to protected images are replaced with references to substitute data, as described hereinabove with reference to FIGS. 1 and 2. The modified web page is sent back to the client computer in an HTTP response.
  • 110. Reference is now made to FIG. 5, which is a simplified illustration of a system for copyright protection of digital images that are referenced in dynamically generated web pages, in accordance with a preferred embodiment of the present invention. Dynamically generated web pages are generated by a web server in response to an HTTP request. For example, an HTTP request may contain instructions for a CGI interpreter.
  • 111. Similarly, images may also be dynamically generated. Examples of dynamically generated images are
  • <img src=101.345.56.52/GetImage.asp?image=01> and
  • <img src=101.345.56.52/scripts/GetImage.cgi?image=name.jpg>.
  • 112. Unlike the system illustrated in FIG. 1 where a requested web page already resides as an HTML, XML or such other web page file on a server computer, when a client computer issues a request for a dynamically generated web page or a dynamically generated image, the request cannot be filtered until after it is processed, since only then is the web page or the image available.
  • 113. In a preferred embodiment of the present invention, dynamically generated web pages are handled by re-routing an incoming HTTP request from the server computer to itself, in order that the dynamically generated web page first be processed by an HTTP request filter before being sent to the client computer. Specifically, in response to a user selecting a URL with a CGI script or such other script, client computer 106 issues an HTTP request to server computer 100 that includes instructions for generating a web page. The HTTP request is indicated by a circle-1 in FIG. 5. The incoming HTTP request is routed to a filter 502 for processing. Since the requested web page is not available at this stage, filter 502 cannot parse or modify the page.
  • 114. Instead, filter 502 re-submits the HTTP request to server computer 100. In doing so, filter 502 appends an identifier at the beginning of the HTTP request, for authentication purposes. The re-submitted HTTF request is indicated by a circle-2 in FIG. 5. When the re-submitted HTTP request arrives at server computer 100 it is routed to an authenticator 504, which authenticates the request based on its appended identifier. Once authenticated, the identifier is removed from the re-submitted HTTP request, and it is processed by server computer 100. In processing the re-submitted HTTP request, server computer dynamically generates a web page 506 using a dynamic web page generator 508. Web page 506 references one or more protected images 108.
  • 115. When web page 506 is generated, server computer 100 sends it within an HTTP response to the address of the originator of the request. The HTTP response is indicated by a circle-3 in FIG. 5. Since the re-submitted HTTP request originated from filter 502 of server computer 100, the HTTP response with web page 506 is sent to server computer 100. The response is routed to filter 502 for further processing.
  • 116. Filter 502, after receiving the HTTP response with web page 506, can proceed to generate substitute data 124, and to generate a modified web page 120 using web page modifier 122, as is described hereinabove with reference to FIG. 1. Modified web page 120 contains a reference to substitute data 124, instead of a reference to protected images 108.
  • 117. Modified web page 120 is included within an HTTP response and sent back to client computer 106. The HTTP response including modified web page 120 is indicated by a circle-4 in FIG. 5. The four indicators, circle-1, circle-2, circle-3 and circle-4 taken together illustrate the data flow from an original HTTF request to a final HTTP response.
  • 118. As mentioned hereinabove, in a preferred embodiment of the present invention substitute data 124 can be rendered so as to generate images visually equivalent to protected images 108, in which case the user can view the content of protected images 108 without downloading unmodified protected image data to client computer 106. For example, substitute data 124 can be encrypted image data.
  • 119. Reference is now made to FIG. 6, which is a simplified flowchart of a method for protecting digital images that are referenced in dynamically generated web pages, in accordance with a preferred embodiment of the present invention. The flowchart is divided into three columns. The leftmost column includes steps performed by a user, the second column from the left includes steps performed by a client computer, and the rightmost column includes steps performed by a server computer connected to the client computer over the Internet or such other network of computers.
  • 120. At step 602 the client computer initiates a connection to the web server. At step 604 the server computer opens a communication socket between the client computer and the server computer. At step 606 the user opens a URL for an active server page in his web browser, or another such URL that includes a request for dynamically generating a web page. At step 608 the client computer issues an HTTP request for an active server page to the server computer. At step 610 the server computer receives the request for the active server page from the client computer. At step 612 the server computer appends an identifier at the beginning of the HTTP request, and at step 614 the server computer re-submits the HTTP request to the server computer with the appended identifier. At step 616 the server computer receives the re-submitted HTTP request and authenticates the request based on its appended identifier. If the request is authenticated, then at step 618 the server computer removes the appended identifier from the request, and at step 620 the server processes the request and dynamically generates a web page that references one or more protected images.
  • 121. At step 622 the server incorporates the dynamically generated web page within an HTTP response and sends it to an address of the originator of the HTTP request. Specifically, since the HTTP request was re-submitted by the server computer at step 614, the server computer is the originator of the re-submitted HTTP request and, as such, the HTTP response containing the web page referencing protected images is transmitted to the server computer. It can be appreciated that authentication at step 616 is necessary in order to control HTTP responses that contain unmodified web pages referencing protected image data, so that they are only transmitted to server computer 100, and not to any other computers.
  • 122. At step 624 the server computer processes the dynamically generated web page similar to the processing described hereinabove with reference to FIG. 2. Specifically, the server generates a modified web page having references to substitute data in place of the references to protected images. At step 626 the server computer sends an HTTP response including the modified web page to the client computer, and at step 628 the client computer receives the HTTP response. At step 630 the client's web browser renders the modified web page and, in doing so, encounters the references to substitute data and, in turn, requests the substitute data from the server computer. At step 632 the server computer receives the request for the substitute data, and at step 634 the server computer sends the substitute data to the client computer. At step 636 the client computer receives the substitute data, and at step 638 the client computer's web browser processes the substitute data and renders it embedded within the web page. Finally, at step 640 the user views the web page.
  • 123. As described hereinabove, in a preferred embodiment of the present invention, when a user views a web page containing protected images, the image data sent from a server computer to the user's client computer is substitute data. For example, the substitute data can be encrypted image data. This ensures that the user cannot use his web browser to save an unmodified version of the protected image. Moreover, as described hereinabove, in a preferred embodiment of the present invention, software included within the web browser is used to prevent the user from saving a displayed image using the “Save Image As . . . ” option. The “Save Image As . . . ” selection can be disabled, or alternatively it can be modified so that substitute image data is provided instead of protected image data.
  • 124. However, it is apparent to those skilled in the art that in order to display a protected image within a web page, at some level within the operating system decoded pixel data has to be available. Typically, a video card displaying image data on a video monitor stores the image data within a video display buffer. As such, even if the image data is encrypted when downloaded to the client computer, within the client video buffer the data is available as raw pixel data, and at some level the encrypted data is decoded before it can be displayed.
  • 125. Pixel data stored within a video display buffer is susceptible to unauthorized use or copying, since an operating system typically enables a programmer to access data in the video display buffer. For example, the Windows operating system of Microsoft Corporation of Redmond, Wash., provides system functions, such as the familiar BitBlt function, for accessing pixel data within the video display buffer. Moreover, such operating systems provide high level functions, such as the Print Screen function, which serve to copy data from the video display buffer to another memory buffer, such as a clipboard. Once image data has been copied to a clipboard, it can be easily saved and used for unauthorized purposes.
  • 126. In a preferred embodiment, the present invention prevents a user from using Windows API functions, such as BitBlt, StretchBlt, PlgBlt, GetPixel and GDI32, to copy protected image data, by including software within the user's web browser that substitutes other functions for those Windows API functions. For example, the software within the user's web browser provides a substitute BitBlt function, which is invoked instead of the standard system BitBlt function when the user issues a command to copy data from the video display buffer. The substitute BitBlt function includes special logic for dealing with protected image data, but is otherwise identical to the standard system BitBlt function. The special logic serves to supply substitute pixel data instead of protected image data, so that the data that is copied to the user's clipboard is different from the raw pixel data of protected images. For example, the special logic can compose watermarks and/or a text message onto protected image pixel data, or it can encrypt protected image pixel data, or it can supply a completely white image instead of a protected image.
  • 127. By providing a substitute BitBIt function, or such other system level function, the present invention prevents unauthorized copying and use of protected image data whenever an attempt is made to copy from the video display buffer. This includes a user's invocation of the Print Screen command, as well as another software application, such as an image editing application, running within or external to the user's web browser, attempting to copy and paste from the video display buffer.
  • 128. Reference is now made to FIG. 7, which is a simplified illustration of a system for preventing unauthorized copying of digital images within a client computer, in accordance with a preferred embodiment of the present invention. Client computer 106 displays an image accessed over the Internet using a web browser. The image may be an unprotected image 702 or substitute data for a protected image 704. A user issues a command in an attempt to copy the image from his video display buffer. For example, the user may press the “Print Scrn” button on his keyboard, or invoke such other screen capture command, in order to copy the data in the video display buffer onto his clipboard. For another example, the user may try to copy and paste the image from his web browser window into a window of another software application.
  • 129. The user's command invokes an operating system level function 706 used to access pixel data within the video buffer of client computer 106. For example, it may invoke the Windows BitBlt function. Typically, such a function 706 copies pixel data from the video buffer onto a clipboard.
  • 130. In a preferred embodiment of the present invention, software such as a Netscape plug-in or an Internet Explorer Active-X control is used to modify operating system function 706, by introducing additional programming logic to be used when attempting to access pixel data from protected images. Modification of operating system function 706 is preferably accomplished by providing a substitute function of the same name, which supersedes and is invoked instead of the standard system function.
  • 131. When attempting to access pixel data from protected image 704, operating system function 706 routes the request to an alternate processing unit 708. Alternate processing unit 708 can prevent any copying of pixel data, or it can modify the pixel data so as to watermark or otherwise modify the protected image. Similarly, alternate processing unit 708 can output pixel data for a pre-determined image, unrelated to the protected image.
  • 132. On the other hand, when attempting to access unprotected image 702, the additional programming logic is avoided, and the standard processing is applied. Preferably this is accomplished by calling the standard system level function from within the substitute function.
  • 133. Reference is now made to FIG. 8, which is a simplified flowchart of a method for preventing unauthorized copying of digital images within a client computer, in accordance with a preferred embodiment of the present invention. The flowchart is divided into two columnns. The leftmost column includes steps performed by a user and the rightmost column includes steps performed by a client computer.
  • 134. At step 802 the user opens a web page in his web browser. At step 804 the client computer renders the web page including an embedded image. At step 806 the user views the web page, and at step 808 the user attempts to copy the embedded image by executing a command to copy pixel data of the image from a video buffer to a clipboard. For example, the user may execute the Print Screen or such other screen capture command.
  • 135. At step 810, in response, the client computer calls an operating system function, such as the Windows BitBlt function, to extract pixel data from the video buffer and copy it to the clipboard. At step 812 control logic passes to a substitute function, and a test is made as to whether or not the image data in the video buffer is protected. If so, then at step 814 processing jumps to step 818 where substitute program code replaces the requested pixel data with substitute data, and at step 820 the substitute data is returned by the operating system function. If the image data in the video buffer is not protected, then processing jumps to step 816 following step 812, and the requested pixel data is returned by the operating system function, as usual.
  • 136. At step 822 the data returned from the operating system function is written to the clipboard and at step 824 the user pastes the data from the clipboard into a window of another software application, or save it into his computer. Since substitute data was used to replace protected pixel data, the user is unable to copy unmodified pixel data from the protected image.
  • 137. The system and method described with reference to FIG. 1 and FIG. 2 deal with protection of digital images that are located on the same server computer as the web page that references them. In such a scenario, the present invention preferably uses filtering software residing on the server computer to generate substitute image data and a modified web page, as described hereinabove.
  • 138. In some cases the protected images may not reside on the same computer as the web page that references them, and the filter software that modifies web pages and generates substitute image data may not reside on the computer that houses the protected images. Thus it may not be possible to generate substitute image data on the computer that houses the protected images.
  • 139. In a preferred embodiment of the present invention, the protected images are first downloaded to the computer that houses the web page, so that substitute data can be generated at such computer. However, this process is preferably carefully arranged, so as not to compromise the protection of such images. Specifically, the references to the images within the web pages should be disguised in aliases, so that a user cannot identify the protected images and access them by issuing a direct HTTP request to the computer that houses them.
  • 140. The computer that houses the web page should preferably also contain a table of aliases, for converting image file name aliases into IP addresses and true file names. In this way, a user accessing such a web page can only see aliases for IP addresses of protected images, and cannot access them directly.
  • 141. Reference is now made to FIG. 9, which is a simplified illustration of a system for copyright protection of digital images residing on a computer that are referenced in a web page residing on a different computer. Client computer 106 contains a web browser 112, which issues an HTTP request for a web page from server computer 900. The requested web page, 902, resides on server computer 900 (server computer #1), but it references a protected image 904 that resides on a different server computer 906 (server computer #2). As a result, server computer 900 may not be able to generate substitute data, such as encrypted image data, for protected image 104 until it first downloads protected image 904.
  • 142. Moreover, in order to protect image 904 from unauthorized access, the reference in web page 902 to image 904 is done through an alias 908. That is, the reference does not specify the IP address and true file name of image 904; instead, it specifies an alias 908, which only server computer 900 can interpret. In a preferred embodiment of the present invention, server computer 900 maintains a table with entries that convert each alias 908 for a protected image into an IP address and true file name.
  • 143. When server computer 900 receives the HTTP request for web page 902 from client computer 106, it parses web page 902 and identifies therewithin an image reference with an alias 908. Server computer 900 deciphers alias 908 to determine the IP address and true file name for protected image 904. Server computer 900 downloads protected image 904 from server computer 906, and uses it to generate substitute data 910.
  • 144. Server computer 900 generates substitute data 910, and generates a modified web page 912 using a web page modifier 914. Web page modifier replaces the reference to the alias 908 within web page 902 by a reference to substitute data 910. Modified web page 912 is sent to client 106 within an HTTP response, and web browser 112 displays modified web page 912 with substitute data 910 embedded therewithin. In a preferred embodiment of the present invention, web browser 112 contains a substitute data processor 126 that is used to render substitute data 910.
  • 145. Reference is now made to FIG. 10, which is a simplified flowchart of a method for copyright protection of digital images residing on a computer that are referenced in a web page residing on a different computer. The flowchart is divided into four columns. The leftmost column includes steps performed by a user, the second column from the left includes steps performed by a client computer, the third column from the left includes steps performed by a first server computer (server computer #1), and the rightmost column includes steps performed by a second server computer (server computer #2).
  • 146. At step 1002 a user opens a URL for a web page in his web browser. At step 1004 the client computer issues an HTTP request for the web page to server computer # 1. At step 1006 the first server computer receives the HTTP request for the web page. The web page references a protected image located on the second server computer, but the protected image is not referenced by name. Rather, the protected image is referenced by an alias. At step 1008 the first server computer looks up the IP address and true file name for the protected image, from a table with entries for mapping aliases to IP addresses and true file names.
  • 147. At step 1010 the first server computer requests the protected image data from the second server computer. At step 1012 the second server computer receives the request from the first server computer, and at step 1014 the second server computer sends the protected image data to the first server computer. At step 1016 the first server computer receives the protected image data from the second server computer, and at step 1018 the first server computer replaces the protected image data with substitute data. Alternatively, the first server computer may generate substitute data and keep the protected image data intact, or it may use substitute data that is pre-defined image or text data.
  • 148. At step 1020 the first server computer modifies the web page by replacing references to the aliased image with references to the substitute data. At step 1022 the first computer sends an HTTP response including the modified web page to the client computer. At step 1024 the client computer receives the HTTP response with the modified web page, and begins to render the web page using its web browser. The web browser encounters the reference to the substitute data and, in response, at step 1026 the client computer requests the substitute data from the first server computer. At step 1028 the first server computer receives the request for the substitute data, and at step 1030 the first server computer sends the requested substitute data to the client computer. At step 1032 the client computer receives the substitute data, and at step 1034 the client computer web browser processes the substitute data in order to embed it within the web page. Finally, at step 1036 the user views the requested web page with the image embedded, but without the protected image data having been downloaded to the client computer, and without the identity (i.e., IP address and true file name) of the protected image having been disclosed.
  • 149. User Interface
  • 150.FIGS. 11-18 illustrate a user interface for a software management protection tool operative in accordance with a preferred embodiment of the present invention. Such a management protection tool is described hereinabove with reference to FIG. 3 and FIG. 4, and enables an administrator to set protection status for images residing on one or more web server computers.
  • 151. Reference is now made to FIG. 11, which illustrates a user interface dialogue box for adding a new site, within a protection management tool operative in accordance with a preferred embodiment of the present invention. When a user launches the protection management tool for the first time, a New Site dialogue box, such as the one illustrated in FIG. 11, opens. The New Site dialogue box can also be opened by the user at any later time, whenever he wants to administer a new HTTP site that is not already listed in a site list maintained by the protection management tool, by clicking on the “New Site . . . ” button in the Access Site dialogue box illustrated in FIG. 12, or by clicking on the “New . . . ” button in the Site List dialogue box illustrated in FIG. 17. The New Site dialogue box prompts the user to identify the new site he wishes to administer by entering an IP address for the site and a port for the site. A default value of 80 for the port is used, since port 80 is the standard HTTP port. The user is also prompted to enter an optional alias for the site, for quick reference.
  • 152. After entering the site identification data, the user can click on “OK” to add the site to the site list. He can also click on “Cancel” to cancel his entries. Clicking on OK or on Cancel cause the dialogue box to close. The New Site dialogue box can also be closed by clicking on the “X” in the upper right corner of the dialogue box window, as is typically done to close windows in the Windows operating system.
  • 153. Reference is now made to FIG. 12, which is an illustration of a user interface dialogue box for accessing a site, within a protection management tool operative in accordance with a preferred embodiment of the present invention. After the user adds a new site to the site list in the New Site dialogue box illustrated in FIG. 11, an Access Site dialogue box, such as the one illustrated in FIG. 12, opens. The Access Site dialogue box can also be opened by the user at any time, whenever he wants to access sites in the site list, by clicking on the “Modify” button in the Site List dialogue box illustrated in FIG. 17. The Access Site dialogue box prompts the user to select a specific site to administer by entering site identification information. For ease of use, the user can click on the down arrow shown at the right, and in response the protection management tool displays a drop-down menu with a list of all sites included in the site list. The user can then select a site from the menu, and the site identification information is automatically entered in the dialogue box.
  • 154. The Access Site dialogue box also prompts the user to enter a password. The password for a site is first set when copyright protection software is installed on a web server computer. At the time of installation, the web administrator sets an initial password for the web site, together with other server parameters. The web site password can be modified at a later time, as described hereinbelow with reference to FIG. 16.
  • 155. The user can check the “Save Password” box if he wants the protection management tool to save the password he enters, for automatic use when he subsequently accesses the site. After entering the required data, the user can click the “OK” button to access the site, or he can click the “Cancel” button to cancel his entries. Clicking on OK or on Cancel cause the dialogue box to close. The Access Site dialogue box can also be closed by clicking on the “X” in the upper right corner of the dialogue box window, as is typically done for windows in the Windows operating system.
  • 156. If the user clicks the “OK” button then his password is authenticated. If the password is correct, the user is granted access to the site, and the main screen illustrated in FIG. 13 is opened. If the password is incorrect, the user is so notified and given a limited number of tries to enter the correct password. In an alternate embodiment of the present invention, the user may be given an unlimited number of tries to enter the correct password.
  • 157. The Access Site dialogue box also enables the user to open the New Site dialogue box illustrated in FIG. 11, by clicking on the “New Site . . . ” button.
  • 158. Reference is now made to FIG. 13, which is an illustration of a user interface screen for setting protection status, within a protection management tool operative in accordance with a preferred embodiment of the present invention. The screen illustrated is an Explorer-type screen, with a left panel displaying hierarchical folder information and a right panel displaying image file information. At the left of each displayed folder name is a folder icon, color-coded to indicate the protection status (unprotected/partially protected/completely protected) of the folder, as described hereinabove.
  • 159. The toolbar at the top of the screen indicates that the leftmost button, “Get List”, is selected. A description of the toolbar is provided hereinbelow with reference to FIG. 14. The file name “index.html” of an HTML page that is in the folder /Sample/csafe is highlighted in the left panel of FIG. 13. The image files referenced within index.html are displayed in the right panel. As shown, they are files for GIF images. The “Status” column within the right panel indicates that none of the images listed in the panel are protected, since no protection icons appear. The protection management tool enables the user to select one or more of the listed images listed for setting protection. The user selects one or more images by clicking on their file names with the mouse, and using the “Shift” and “Control” keys to select a contiguous group of names or multiple names, respectively, as is the well-known standard for Windows operating systems. After selecting one or more images, the user clicks on the “Protect” button to have protection settings applied thereto.
  • 160. In a preferred embodiment of the present invention, the “Protect” button toggles the current protection settings, so that images that are unprotected become protected, and images that are protected become unprotected. In an alternate embodiment of the present invention, the user interface may not permit a user from selecting at one time both images that are protected and images that are unprotected, so that each application of protection settings either sets the status of unprotected images to protected or sets the status of protected images to unprotected.
  • 161. As described hereinabove, the user can select one or more HTML files, to apply protection settings to all images referenced therein. The user can also select one or more folders, to apply protection settings to all images located therein. By navigating through the file system, the user can browse the web site being administered with the screen of FIG. 13, and select folders, HTML pages and other types of web pages, and images to protect or to unprotect.
  • 162. Reference is now made to FIG. 14, which is an illustration of a tool bar within a protection management tool operative in accordance with a preferred embodiment of the present invention. The tool bar illustrated in FIG. 14 is the one appearing at the top of the screen illustrated in FIG. 13. It contains eight buttons, entitled “Get List”, “Protect”, “Tags”, “Submit”, “Mirrors”, “Sites”, “Server” and “Help”. The “Get List” button is used to browse the web site being administered using the screen illustrated in FIG. 13 hereinabove. The “Protect” button is used to apply protection settings to one or more selected images, as described hereinabove with reference to FIG. 13.
  • 163. The Tags button can be used when a user selects one or more HTML page file names, to protect images referenced within protection tags in the selected HTML pages. As described hereinabove, tags such as <!protect> and <!/protect> are used to delineate one or more sections within an HTML page, and the images referenced within the tagged sections can be protected by selecting the HTML file name and clicking on the “Tags” button. In distinction to the Protect button which serves to protect all of the images within selected HTML pages, the “Tags” button only protects images references within the tagged sections of selected HTML pages.
  • 164. The “Submit” button is used to confirm protection settings made by the user, and transmit them to the web server computer for application. When the user clicks on the “Submit” button, the protection settings he edited are sent to the web server computer and incorporated into the protection status database, as described hereinabove with reference to FIG. 3 and FIG. 4. Until the user clicks on the “Submit” button, the protection settings he edited are only displayed within the protection management tool by his local computer. Only when he clicks the “Submit button” are his settings actually applied. If the user does not click on the “Submit” button, then all of the protection settings he edited will not take effect, and the protection settings will remain at their former state if he closes the screen.
  • 165. The “Mirrors” button is used to identify web sites that are mirror sites (i.e., identical sites), as described hereinbelow with reference to FIG. 18. The “Site” button is used for updating the list of administered sites, as described hereinbelow with reference to FIG. 17. The “Server” button is used to modify server parameter settings, as described hereinbelow with reference to FIG. 15. The server parameters are first initialized when the copyright protection software is installed on the web server computer.
  • 166. The “Help” button is used to invoke on-line help and documentation, as is typical for Windows applications.
  • 167. Reference is now made to FIG. 15, which is an illustration of a user interface dialogue box for setting server parameters within a protection management tool operative in accordance with a preferred embodiment of the present invention. A Server Settings dialogue box is invoked when a user clicks on the “Server” button in the tool bar illustrated in FIG. 14.
  • 168. The topmost parameter is the IP address for the web server. The parameter setting indicated in FIG. 15 specifies an IP address of 192.168.1.39 and a port of 80. The second parameter is the root directory for the web server, relative to which folder names and file names are specified. The parameter setting indicated in FIG. 15 specifies a root directory of d:/netpub/wwwroot. The third parameter is the file name of a default web page that is displayed when a client first connects to the web server. The parameter setting indicated in FIG. 15 specifies a default web page default.htm (residing in the root directory).
  • 169. The fourth parameter specifies what is to be performed when a protected image is requested by an unsupported web browser. An unsupported web browser is one for which a substitute data processor, such as the one indicated in FIG. 1, is not installed. For such a browser the web server cannot send substitute data, such as encrypted image data, since the browser will not be able to render it. Instead, the web server must send an image in a standard format such as JPEG and GIF, which the browser can render.
  • 170. In a preferred embodiment, the protection management tool offers three options for dealing with unsupported browsers: (i) allow protected images to be transmitted without protection; (ii) replace tags for protected images with alternate HTML tags; and (iii) watermark protected images. The fourth parameter specifies which of these three options the user chooses. The parameter setting indicated in FIG. 15 specifies the third option; namely, that tiled watermarks are to be composited onto the protected image, and the resulting watermarked image is to be transmitted instead of the protected image itself. Preferably, this is the default parameter setting. The watermarked image is transmitted in a standard image format, such as JPEG and GIF, and, as such, it can be displayed by the web browser.
  • 171. The fifth parameter indicates the replacement tag to be substituted for a reference to a protected image in an HTML page, when the client is using an unsupported browser and when the second option above is chosen for handling unsupported browsers. The parameter setting indicated in FIG. 15 specifies that the replacement tag to be used is an IMG tag with a source file name of /default/ Err.gif. Preferably, this is the default parameter setting.
  • 172. The sixth parameter indicates the image of a watermark to be used to watermarking protected images, when the client is using an unsupported browser and when the third option above is chosen for handling unsupported browsers. Typically, the watermark image is a small image, and it is tiled so that the watermark appears repetitively in a checkerboard fashion, or other such fashion, over a protected image that is watermarked. The parameter setting indicated in FIG. 15 specifies that the watermark image is in a file named watermark.gif. The seventh parameter indicates the saturation, or opacity level, with which the watermark is to be composited over a protected image, when the client is using an unsupported browser. A saturation of 0.0 is fully transparent, and a saturation of 1.0 is fully opaque. The parameter setting indicated in FIG. 15 specifies a saturation level of 85%. Preferably, this is the default parameter setting. The eighth parameter indicates a transparent color for the watermark; i.e., a color to be treated as background and not changed by the watermark. This ensures that backgrounds of protected images are not watermarked. The parameter setting indicated in FIG. 15 indicates a watermark transparent color of white (255). Preferably, this is the default parameter setting.
  • 173. The next three parameters are disabled so that they cannot be edited. They indicate the DLL version of the copyright protection software, the Netscape version and the ActiveX version, respectively.
  • 174. The twelfth parameter indicates the directory in which substitute data, such as encrypted images, are cached for efficient re-use upon subsequent requests for the same protected images. The parameter setting indicated in FIG. 15 indicates the directory /cache (relative to the root directory d:/netpub/wwwroot). The thirteenth parameter indicates the length of time during which a file is maintained in the cache directory. The parameter setting indicated in FIG. 15 indicates a duration of 1,440 minutes. After this duration a cached file is purged from the cache. The fourteenth parameter indicates the frequency with which the cache is monitored, to determine which files are to be purged from the cache. The parameter setting indicated in FIG. 15 indicates a monitoring frequency of every 1,440 minutes.
  • 175. The fifteenth parameter indicates a file name into which a log file is written. The parameter setting indicated in FIG. 15 indicates a file name of cSafeLog.txt. This file will receive log data for the copyright protection software running on the server. The log data may include information such as requests for protected image data, the clients making the requests and the data transmitted to them in response. The sixteenth parameter indicates the level of detail to be written to the log file. Level zero corresponds to the minimum of detail—only critical information, and higher levels correspond to additional detail.
  • 176. The seventeenth parameter indicates the e-mail address of the administrator of the web server computer, to be contacted as necessary. For example, the administrator can be contacted whenever there is upgraded copyright protection software available, or whenever new products are available.
  • 177. After setting values for the server parameters, the user can click on the “OK” button to apply the new parameter settings. The user can also click on “Cancel” to cancel his entries. If the user wishes to modify the password for the server, he can click on the “Modify Password” button, which opens the “Modify Password” dialogue box, as described with reference to FIG. 16.
  • 178. Reference is now made to FIG. 16, which is an illustration of a user interface dialogue box for modifying a password for accessing a web server, within a protection management tool operative in accordance with a preferred embodiment of the present invention. A Modify Password dialogue box is invoked when a user clicks on the “Modify Password” button in the Server Settings dialogue box illustrated in FIG. 15. The Modify Password dialogue box prompts the user for the typical information used when changing a password. The user is prompted to enter the current password, the new password and a confirmation of the new password. The user may also check a box indicating that the password is to be saved by the protection management tool, so that the user can subsequently access the web site without having to specify the password again (as long as the password remains valid). After providing the requested passwords, the user can click on the “OK” button to effectuate his change. He can also click on the “Cancel” button to cancel his entries.
  • 179. In a preferred embodiment of the present invention, the protection management tool sets a maximum expiration date for a password, thus forcing the user to update his password from time to time.
  • 180. Reference is now made to FIG. 17, which is an illustration of a user interface dialogue box for a site list, within a protection management tool operative in accordance with a preferred embodiment of the present invention. The “Site List” dialogue box is invoked when a user clicks on the “Sites” button in the tool bar illustrated in FIG. 14. The Site List dialogue box lists all of the sites included in the site list used by the protection manager tool. The sites are listed by alias name, or by IP address for those sites that do not have an alias.
  • 181. A user can add a new site to the list by clicking on the “New . . . ” button. A user can modify the settings for a site already included in the list by clicking on the “Modify . . . ” button. A user can delete sites from the site list by selecting one or more sites listed in the dialogue box, and clicking on the “Delete” button. The “Delete” button is shown disabled in FIG. 17, since none of the sites listed are selected. The user closes the Site List dialogue box by clicking on the “Close” button or on the “X” at the top right corner of the dialogue box window.
  • 182. Reference is now made to FIG. 18, which is an illustration of a user interface dialogue box for defining mirror sites, within a protection management tool operative in accordance with a preferred embodiment of the present invention. Mirror sites are identical web sites, used for the purpose of proliferating files on multiple server computers, so as to balance the processing load over multiple computers, and so as to make it easier for users around the world to access files. It is the responsibility of web administrators to ensure that mirror sites are kept current.
  • 183. In a preferred embodiment of the present invention, protection settings edited by a user for a specific web site can be applied to one or more mirror sites as well, without the need for the user to explicitly edit the settings on each individual mirror site. The protection management tool preferably enables a user to identify sites that are mirror sites, and manage their protection settings simultaneously. A Mirror Sites dialogue box is invoked when a user clicks on the “Mirrors” button in the tool bar illustrated in FIG. 14. The Mirror Sites dialogue box is invoked while a user is accessing a specific site, and the information it displays is relative to this specific site currently being accessed.
  • 184. As shown in FIG. 18, the Mirror Sites dialogue box has a left panel indicating sites from among the site list that are mirrors of the site being accessed, and a right panel indicating sites from the site list that are not mirrors of the site currently being accessed. The user can click on one or more of the sites listed in the right panel to select them, and then click on the “<Add to Mirrors” button to make them mirror sites of the site being accessed. Clicking on the “<Add to Mirrors” button results in the selected sites being moved from the right panel to the left panel.
  • 185. The user can click on the “New . . . ” button if he wishes to include a new site, not currently included in the site list, as a mirror site to the site currently being accessed. The user can also select one or more of the sites listed in the left panel as mirror sites, and click on the “Remove” button to make them non-mirror sites. The “Remove” button is disabled in FIG. 18, since no sites are shown listed as mirror sites in the Figure. Clicking on the “Remove” button results in the selected sites being moved from the left panel to the right panel.
  • 186. The user can check a box to update mirrors automatically, and then any edits he makes to parameter settings for the site currently being accessed will automatically be submitted to the mirror sites whenever the user clicks on the “Submit” button in the tool bar illustrated in FIG. 14, to submit his edits to the web server computer. This mode of automatic update results in protection settings being updated incrementally in mirror sites each time the user edits them in one of the sites. However, if one or more edits are not synchronized with mirror sites, the mirror sites will lost synchronization and will not regain synchronization as future edits are made, even if the future edits are proliferated to the mirror sites. This loss of synchronization can happen, for example, if one of the mirror sites is not operational at the time the user makes his edits to the protection settings or, for example, if a mirror site is removed from the list of mirror sites.
  • 187. In order to bring mirror sites up-to-date with a site currently being accessed, the Mirror Sites dialogue box also has a button for sending the current settings to the mirror sites. Clicking on this button causes all of the protection settings to be sent to the mirror sites listed in the left panel, and not merely the incremental edits that the user made. This serves to re-synchronize the mirror sites with the site currently being accessed, and ensures that the protection settings are the same at the mirror sites and the site currently being accessed.
  • 188. Sending all of the protection settings to mirror sites typically requires a lot of bandwidth. If only a few of the mirror sites need to be re-synchronized, the user can temporarily move the other mirror sites from the left panel to the right panel, send the current protection settings to re-synchronize the mirror sites remaining in the left panel, and then move the other mirror sites from the right panel back to the left panel. This reduces the number of sites to which the protection settings have to be transmitted. The Mirror Sites dialogue box can be closed by clicking on the “Close” button, or by clicking on the “X” at the upper right hand corner of the dialogue box window.
  • 189. Reference is now made to FIG. 19, which is an illustration of a virtual directory properties file residing on a web server computer in accordance with a preferred embodiment of the present invention. The virtual directories property file is a text file named VirtualDirectories.properties, preferably used by the web server to (i) protect images in dynamically generated web pages, and (ii) protect images residing on other server computers. This file contains the names of directories in which dynamically generated pages and/or dynamically generated images are stored, along with a protection status identifier for such directories. Protection status identifiers include PROTECT, TAGS and ACCESSIBLE. PROTECT indicates that the pages and images in the directory are protected. TAGS indicates that only images referenced within protect tags of HTML pages in the directory are protected. ACCESSIBLE indicates that the pages and images in the directory are unprotected.
  • 190. The file illustrated in FIG. 19 indicates that a directory named /cgi-bin/ (relative to the root directory) is assigned PROTECT status. Thus pages and images in /cgi-bin/ that are dynamically generated will be protected. FIG. 19 also indicates that a directory named /scripts/ (relative to the root directory) is assigned TAGS status. Thus pages in /scripts/ that are dynamically generated will be protected to the extent that images referenced within their protect tags are protected.
  • 191.FIG. 19 also indicates an alias for images on another server computer that are to be protected. The alias is /lpis.htm?, and the true address is http://101.345.56.52:8081/. Thus /lpis.htm and /lpis.html are interpreted by the web server as aliases for the root directory of the web server with IP address 101.345.56.52 and port 8081.
  • 192. The VirtualDirectories.properties file is manually or automatically edited by a user whenever he wishes to protect dynamically generated web pages, dynamically generated images, and images residing on another server computer.
  • 193. Implementation Details
  • 194. In a preferred embodiment of the present invention, when the client web browser has installed a substitute data processor such as a Netscape SmartUpdate or plug-in, or an Internet Explorer ActiveX control, as indicated in FIG. 1, the substitute data used for protected images are encrypted images. That is, (i) protected images are encrypted on the web server computer, using an encryption algorithm and an encryption key as is well known to those skilled in the art; (ii) references to the protected images are replaced with references to encrypted images in the HTML pages that reference the protected images, and (iii) the encrypted images are transmitted from the web server to client computers. The client computers use substitute data processing software to decode the encrypted images and to render them for display on a video monitor.
  • 195. In order for this to work, it is necessary for the substitute data processor on the client computer to know the encryption algorithm being used by the web server and the encryption key. This presents a potential security hole, in that someone could decipher this encryption information from the substitute data processor by reverse engineering, and use it for stealing copyright protected images.
  • 196. In a preferred embodiment of the present invention, the web server regularly changes the encryption key, and possibly also the encryption algorithm. When each such change is made, the server computer transmits updated substitute data processing software to each registered client computer, as soon as such client computer connects to the server. This ensures that the encryption key, and possibly also the encryption algorithm, are changed regularly, thus thwarting attempts to steal copyright protected images by reverse engineering substitute data processors. Preferably these updates are done frequently enough so that the duration between updates is likely to be less than the time it typically takes to discover the encryption information by reverse engineering.
  • 197. In a preferred embodiment of the present invention, each client that downloads a substitute data processor from a server computer is registered in a user database. This makes it possible to keep track of clients and send them updated software automatically. Alternatively, version information for a substitute data processor in a client computer may be stored in a “cookie,” or other such file used by web servers to identify client information. Using the cookie, a web server can automatically determine if a client is using out-dated software, and, if so, automatically update the client software. Yet another alternative is for the web server to do nothing, in which case the client software will no longer be able to render encrypted images after the encryption key and/or algorithm is updated, and the user will have to download updated software at his own initiative.
  • 198. What follows is a detailed description of a preferred embodiment of the present invention, as it operates to block screen capture utilities within a Macintosh operating system.
  • 199. For the Macintosh operating system, a plugin for Netscape and Internet Explorer is preferably used. The plugin consists of three parts—the plugin proper, a system extension (also referred to as INIT) and an executable client library. The system extension and the client library are downloaded from a web server as needed, as described hereinbelow.
  • 200. The plugin is preferably placed in the Netscape or Internet Explorer Plugins folder. The system extension and the client library are preferably installed into the Extensions Folder in the System folder of the user's boot disk. The system extension is an invisible file, and contains an INIT resource that “patches” system calls at boot time as needed, in order to enable the plugin to circumvent screen capture programs.
  • 201. Preferably, the system extension does not do processing itself, but instead calls the plugin, which in turn sends a patch through to the client library. The client library is preferably a MacOS shared library, and contains programming code for patches and for rendering images onto a screen. The provides the capability to update code without downloading the entire plugin.
  • 202. In order to view protected images, a user is first required to download the plugin and INIT. A user then runs an installation program to install the plugin into the Netscape Navigator Plugins folder or the Internet Explorer Plugins Folder. The user reboots his computer in order for the INIT to apply its system patches.
  • 203. When the plugin is activated, it preferably reads a configuration file to determine if the client library or system extension needs up be updated. If the configuration file is missing, or if the current date and time is greater than the next update check time in the configuration file, the plugin downloads a new configuration file that specifies the latest version of the client library and the system extension. If the current version of the client library and/or the system extension on a client computer is not the latest version, then the plugin downloads the latest version of the client library and/or the system extension.
  • 204. Preferably the configuration file includes (i) a date for next update check, (ii) a client library version number, (iii) a system extension version number, (iv) a list of capture application types, (v) a list of capture control panels and extensions, (vi) a list of resource types, and (vii) a list of non-blockable control panels and extensions.
  • 205. The format for the date is of the form:
  • 206. Wed Aug 18 13:22:04 1999
  • 207. The version numbers are preferably in MacOS binary coded decimal version format, of the form:
  • 208. M.m.b.srr
  • 209. where M is the major version number, m is the minor version number, b is the bug fix number, s is the stage (d, a, b or f) and rrr is the release number.
  • 210. Except for the list of resource types, all list entries have the following three-line structure:
  • 211. Line 1-Name of utility/application
  • 212. Line 2-4 character file type, 4 character creator type, 4 character resource type (packed)
  • 213. Line 3-hex characters of pattern to match
  • 214. Line 1 includes the name of the utility. This line is preferably only used by the list of non-blockable control panels and extensions. For other lists, the name “Unused” is inserted. Line 2 contains three 4-character codes used to identify capture applications and utilities. The first two codes are the file type and creator type, and the third code is a resource type. Line 3 contains hex codes for a pattern to match in the resource map of the file. If no hex pattern is used, a single carriage return is included.
  • 215. An example of a configuration file is as follows:
  • 216. Wed Aug 18 13:22:04 1999
  • 217. 1.0.0a2
  • 218. 1.0.0a2
  • 219. CaptureAppsBegin
  • 220. Unused
  • 221. APPLc2gfc2gf
  • 222. Unused
  • 223. APPLCmApCmAp
  • 224. 43616D6572614D616E
  • 225. Unused
  • 226. APPLLu§>>Lu§>>
  • 227. Unused
  • 228. APPLSnpTSnpT
  • 229. 536E617073686F7420496E666F
  • 230. Unused
  • 231. APPLSNAPSNAP
  • 232. 53637265656E536E6170
  • 233. CaptureAppsEnd
  • 234. CaptureUtfilsBegin
  • 235. Unused
  • 236. CdevSnp2Snp2
  • 237. 536E61707A
  • 238. Unused
  • 239. CdevshOTshOT
  • 240. 53637265656E53686F74
  • 241. Unused
  • 242. CdevexPRexPR
  • 243. 4578706F737572652048657973
  • 244. Unused
  • 245. CdevCaptCapt
  • 246. CaptureUtilsEnd
  • 247. ResTypesBegin
  • 248. STR#
  • 249. ShOT
  • 250. ShOT
  • 251. ShOT
  • 252. CURS
  • 253. ResTypesEnd
  • 254. AbortTypesBegin
  • 255. Appletalk Control Panel
  • 256. Cdevatdvatdv
  • 257. 6B5377697463684170706C6574616C6B444C4F47
  • 258. AbortTypesEnd
  • 259. When it encounters a file name, the web browser normally identifies a type of content, and pushes the file to an appropriate plugin. However, in the present invention the parameters passed to the plugin provide only encrypted names for protected image files, and, as such, the web browser typically cannot determine a content type from the file name. Instead, the plugin decrypts the name and initiates the download itself. This prevents others from accessing protected images directly. Downloaded protected image files are encrypted, and the library decrypts them before they are used.
  • 260. MacOS uses file types and creator types to identify files and the applications that created them. The list of capture applications from the configuration file is used by the plugin in conjunction with creator types to determine relevant applications to be aware of for ensuring copyright protection. If such a capture application is launched or running, the plugin preferably hides its images.
  • 261. Similarly, the list of capture control panels and extensions from the configuration file is used by the plugin in conjunction with the list of resource types to determine if a non-application executable, such as an extension or control panel, is about to invoke a screen capture.
  • 262. The system extension loads itself into memory at boot time. It looks in the System Folder, Extensions Folder, Control Panels Folder and the Start Up Items folder, for items of type INIT, cdev, APPC, appe and APPL, which are INITs, control panels, new control panels, applications and application extensions. For each of these folders, the system extension creates an information list that includes a copy of the resource map for each such item found. The information list is used by the plugin to locate “show stoppers;” i.e., utilities that cannot be blocked by known methods.
  • 263. The system extension patches the following traps: OpenPicture, ClosePicture, CopyBits, InitGraf, GetResource and SetFileInfo.
  • 264. A typical way for a capture utility to implement screen capture is by creating a MacOS Picture, similar to a Windows meta-file. Such a capture utility calls OpenPicture(), CopyBits(screen,dest) and ClosePicture(), to create a PICT file or to put the data on the global clipboard in PICT format. If the plugin is running, the system extension patch for OpenPicture() sets a flag so that the system extension patch for CopyBits() knows that OpenPicture() was previously called.
  • 265. The system extension patch for CopyBits() is preferably a head patch; i.e., the patch is applied and then the conventional system CopyBits() is called. The system extension patch for OpenPicture()preferably calls the plugin to update rectangles of the instances, and to set a flag to indicate to the system extension that the patch for CopyBits() should be used. The system extension patch for CopyBits() uses the rectangles and erases them on screen, so that the conventional CopyBits() call does not gain access to unmodified protected images. The patch for CopyBits() sets a flag indicating that the plugin should re-draw the images.
  • 266. Preferably, the plugin identifies screen capture utilities using two methods: (i) by file type and creator, and (ii) by the resource map of the file. When used together, these two methods provide a more robust way to identify files than does either of them alone. A Macintosh file includes two forks—a resource fork, and a data fork. The resource fork includes data that can be changed independently of the executable code; for example, strings, icons and dialogue boxes.
  • 267. When the resource fork for a file is opened, an index of the fork, referred to as a resource map, is read into RAM by the resource manager. The resource map includes information about resources in the file. Resource maps are chained in a linked list—as each file in the chain is opened, a new map is added to the chain. A descriptor for the creator of a file is typically stored in a signature resource in the file. The signature resource is part of a group of resources that enables the operating system to associate icons and files with the creator type. This information can be used by a patch for GetResource() to identify a screen capture utility that is running. The resource map can be searched for the signature resource. If it can be found, then the capture utility can be identified.
  • 268. The resource type (the third 4-character code in line 2) can also be used to identify a screen capture utility. The hexadecimal string (line 3) can also be used.
  • 269. It is noted that the resource map cannot be used during idle time to identify capture utilities that are applications. The reason for this is that when the plugin is trying to identify capture applications during idle time, the resource map for the capture application is not in an available chain. To overcome this, the present invention preferably uses the system extension patch for InitGraf() to grab application resource maps as each application is launched. When the system extension starts up, it allocates a table to store 512 resource maps. When an application is launched, the patch for InitGraf() is called, and the system extension stores the current resource map in one of the 512 entries. When the application is closed, the resource map is removed from the table. The table is accessible to the plugin, and when the plugin is running it examines the table to see if there is a signature resource or other identifying trait. If so, then the plugin can determine if a capture application is running, and can hide protected images. The choice of 512 for the size of the table for the resource maps is arbitrary, but has been found to be adequate.
  • 270. Because searching for utilities installed on a client computer is time consuming, the system extension preferably does the search at startup time, and stores information about each INIT, cdev, APPC, appe and APPL file type in the System Folder, Extensions Folder, Startup Folder and Control Panels folder. If instead the plugin was to do the search, then the search would have to be carried out each time the plugin is instantiated.
  • 271. The system extension makes the information about the extensions and control panels available to the plugin via shared memory, and the plugin can quickly scan the list for installed items that cannot be blocked.
  • 272. Additional Considerations
  • 273. In reading the above description, persons skilled in the art will realize that there are many apparent variations that can be applied to the methods and systems described. For example, although the present invention has been described with respect to digital images, it applies to copyright protection of other forms of multi-media referenced in web pages as well, such as audio files, video files and slide shows. In each case, substitute data can be used so that a user can play or view the multi-media within the web page without downloading an unmodified version of it into his computer.
  • 274. For another example, the present invention can be applied to copyright protection of text contained in web pages. Currently, text contained in web pages can be copied by simply selecting a section of text by dragging a mouse pointer thereover, and invoking a “Copy” command. The copied text can then be pasted onto a word processing application by invoking a “Paste” command.
  • 275. By converting the text data into one or more images and designating the one or more images as being protected, the present invention can be used to prevent unauthorized copying of text from a web page.
  • 276. For another example, the present invention can be integrated with transaction software so that protected images can be purchased on-line. Specifically, when a user positions a mouse pointer over a protected image and right clicks on the mouse, a transaction menu can be popped up with one or more selections for purchasing the protected image. Selecting an option to purchase the image can trigger e-commerce transaction software. Thus when a user tried to save the image using the standard “Save Image As . . . ” command, he is notified that the image is copyright protected and presented with an opportunity to purchase the image. Selections for purchasing the image can include purchasing one or more hardcopy prints of the image, purchasing apparel, such as clothing, containing the image, and purchasing an electronic version of the image.
  • 277. In the foregoing specification, the invention has been described with reference to specific exemplary embodiments thereof. It will, however, be evident that various modifications and changes may be made to the specific exemplary embodiments without departing from the broader spirit and scope of the invention as set forth in the appended claims. Accordingly, the specification and drawings are to be regarded in an illustrative rather than a restrictive sense.

Claims (22)

What is claimed is:
1. A method for protecting digital images displayed in a web browser, comprising the steps of:
displaying a digital image by a web browser, the digital image comprising pixel data;
requesting access to pixel data of the digital image;
in response to said requesting, intercepting a request to access pixel data of the digital image; and
providing substitute data to pixel data of the digital image in a response to the request to access pixel data of the digital image.
2. The method of
claim 1
wherein said requesting access step is invoked by a keyboard.
3. The method of
claim 1
wherein said requesting access step is invoked by a mouse.
4. The method of
claim 1
wherein said requesting access step is invoked by a software application.
5. The method of
claim 1
wherein said requesting access step uses a save-as command.
6. The method of
claim 1
wherein said requesting access step uses a screen capture command.
7. The method of
claim 6
wherein the screen capture command is a Print Screen command.
8. The method of
claim 1
wherein said requesting access step uses a copy command.
9. The method of
claim 1
wherein said requesting access step uses a command for copying data to a clipboard.
10. The method of
claim 1
wherein said requesting access step invokes an operating system function for accessing pixel data.
11. The method of
claim 10
wherein the operating system function is a Windows BitBlt function.
12. A system for protecting digital images displayed in a web browser, comprising:
a web browser displaying a digital image, the digital image comprising pixel data;
a command processor requesting access to pixel data of the digital image;
a request interceptor intercepting a request to access pixel data of the digital image received from said command processor; and
a data processor providing substitute data to pixel data of the digital image in a response to the request to access pixel data of the digital image.
13. The system of
claim 12
wherein said command processor is invoked by a keyboard.
14. The system of
claim 12
wherein said command processor is invoked by a mouse.
15. The system of
claim 12
wherein said command processor is invoked by a software application.
16. The system of
claim 12
wherein said command processor is invoked by a save-as command.
17. The system of
claim 12
wherein said command processor is invoked by a screen capture command.
18. The system of
claim 17
wherein the screen capture command is a Print Screen command.
19. The system of
claim 12
wherein said command processor is invoked by a copy command.
20. The system of
claim 12
wherein said command processor is invoked by a command for copying data to a clipboard.
21. The system of
claim 12
wherein said command processor invokes an operating system function for accessing pixel data.
22. The system of
claim 21
wherein the operating system function is a Windows BitBlt function.
US09/731,544 1998-06-14 2000-12-05 Copy protection of digital images transmitted over networks Expired - Lifetime US6353892B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US09/731,544 US6353892B2 (en) 1998-06-14 2000-12-05 Copy protection of digital images transmitted over networks

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
IL12489598A IL124895A0 (en) 1998-06-14 1998-06-14 Methods and apparatus for preventing reuse of text images and software transmitted via networks
IL127093 1998-11-16
IL12709398A IL127093A (en) 1998-11-16 1998-11-16 Copy protection
IL12786998A IL127869A0 (en) 1998-12-30 1998-12-30 Network file copy protection
IL127869 1998-12-30
US09/313,067 US6209103B1 (en) 1998-06-14 1999-05-17 Methods and apparatus for preventing reuse of text, images and software transmitted via networks
US09/397,331 US6298446B1 (en) 1998-06-14 1999-09-14 Method and system for copyright protection of digital images transmitted over networks
US09/731,544 US6353892B2 (en) 1998-06-14 2000-12-05 Copy protection of digital images transmitted over networks

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US09/397,331 Division US6298446B1 (en) 1998-06-14 1999-09-14 Method and system for copyright protection of digital images transmitted over networks

Publications (2)

Publication Number Publication Date
US20010000359A1 true US20010000359A1 (en) 2001-04-19
US6353892B2 US6353892B2 (en) 2002-03-05

Family

ID=48094375

Family Applications (11)

Application Number Title Priority Date Filing Date
US09/397,331 Expired - Lifetime US6298446B1 (en) 1998-06-14 1999-09-14 Method and system for copyright protection of digital images transmitted over networks
US09/459,493 Expired - Lifetime US7281272B1 (en) 1998-06-14 1999-12-13 Method and system for copyright protection of digital images
US09/636,299 Expired - Lifetime US6922693B1 (en) 1998-06-14 2000-08-10 Method and system for copy protection of images displayed on a computer monitor
US09/730,326 Expired - Lifetime US7155744B2 (en) 1998-06-14 2000-12-04 Copyright protection of digital images transmitted over networks
US09/731,544 Expired - Lifetime US6353892B2 (en) 1998-06-14 2000-12-05 Copy protection of digital images transmitted over networks
US09/731,572 Expired - Lifetime US7076469B2 (en) 1998-06-14 2000-12-05 Copyright protection of digital images transmitted over networks
US09/996,623 Expired - Lifetime US6993662B2 (en) 1998-06-14 2001-11-28 Method and system for copy protection of displayed data content
US10/141,308 Ceased US7664956B2 (en) 1998-06-14 2002-05-07 Method and system for real-time control of document printing
US10/202,550 Expired - Lifetime US7155743B2 (en) 1998-06-14 2002-07-23 Method and system for controlling use of a dynamically linked software library
US11/169,823 Expired - Fee Related US7657759B2 (en) 1998-06-14 2005-06-28 Method and system for copy protection of displayed data content
US13/397,620 Expired - Fee Related USRE44209E1 (en) 1998-06-14 2012-02-15 Method and system for real-time control of document printing

Family Applications Before (4)

Application Number Title Priority Date Filing Date
US09/397,331 Expired - Lifetime US6298446B1 (en) 1998-06-14 1999-09-14 Method and system for copyright protection of digital images transmitted over networks
US09/459,493 Expired - Lifetime US7281272B1 (en) 1998-06-14 1999-12-13 Method and system for copyright protection of digital images
US09/636,299 Expired - Lifetime US6922693B1 (en) 1998-06-14 2000-08-10 Method and system for copy protection of images displayed on a computer monitor
US09/730,326 Expired - Lifetime US7155744B2 (en) 1998-06-14 2000-12-04 Copyright protection of digital images transmitted over networks

Family Applications After (6)

Application Number Title Priority Date Filing Date
US09/731,572 Expired - Lifetime US7076469B2 (en) 1998-06-14 2000-12-05 Copyright protection of digital images transmitted over networks
US09/996,623 Expired - Lifetime US6993662B2 (en) 1998-06-14 2001-11-28 Method and system for copy protection of displayed data content
US10/141,308 Ceased US7664956B2 (en) 1998-06-14 2002-05-07 Method and system for real-time control of document printing
US10/202,550 Expired - Lifetime US7155743B2 (en) 1998-06-14 2002-07-23 Method and system for controlling use of a dynamically linked software library
US11/169,823 Expired - Fee Related US7657759B2 (en) 1998-06-14 2005-06-28 Method and system for copy protection of displayed data content
US13/397,620 Expired - Fee Related USRE44209E1 (en) 1998-06-14 2012-02-15 Method and system for real-time control of document printing

Country Status (1)

Country Link
US (11) US6298446B1 (en)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030037253A1 (en) * 2001-04-27 2003-02-20 Arthur Blank Digital rights management system
US20060155732A1 (en) * 2002-07-09 2006-07-13 Seiko Epson Corporation Electronic file operation method and layout edition device
EP1739952A1 (en) * 2005-07-01 2007-01-03 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. URL watermark as filter for on-line directories
US20090288254A1 (en) * 2008-05-23 2009-11-26 Stryker Corporation Patient support brake system
US7882097B1 (en) * 2004-09-30 2011-02-01 Ogilvie John W Search tools and techniques
US20110060774A1 (en) * 2005-03-31 2011-03-10 Canon Kabushiki Kaisha Image processing apparatus, image processing method, computer program, and storage medium
US20120203849A1 (en) * 2005-07-28 2012-08-09 Vaporstream Incorporated Reduced Traceability Electronic Message System and Method
US20140181689A1 (en) * 2005-07-28 2014-06-26 Vaporstream Incorporated Electronic Message Content and Header Restrictive Recipient Handling System and Method
US8965809B1 (en) * 2009-05-21 2015-02-24 Stamps.Com Inc. Restricted printing of postage with layout constraints in a browser
US9728107B1 (en) * 2008-04-15 2017-08-08 Stamps.Com Inc. Systems and methods for protecting content when using a general purpose user interface application
US11893089B1 (en) 2004-07-27 2024-02-06 Auctane, Inc. Systems and methods for protecting content when using a general purpose user interface application

Families Citing this family (378)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7562392B1 (en) * 1999-05-19 2009-07-14 Digimarc Corporation Methods of interacting with audio and ambient music
US20040098584A1 (en) * 1998-03-25 2004-05-20 Sherman Edward G. Method and system for embedded, automated, component-level control of computer systems and other complex systems
US20010029582A1 (en) * 1999-05-17 2001-10-11 Goodman Daniel Isaac Method and system for copy protection of data content
US6298446B1 (en) * 1998-06-14 2001-10-02 Alchemedia Ltd. Method and system for copyright protection of digital images transmitted over networks
US6735699B1 (en) * 1998-09-24 2004-05-11 Ryuichi Sasaki Method and system for monitoring use of digital works
US6914691B1 (en) * 1998-11-27 2005-07-05 Canon Kabushiki Kaisha Image processing apparatus, data processing method, and storage medium
JP3497088B2 (en) * 1998-12-21 2004-02-16 松下電器産業株式会社 Communication system and communication method
US6668246B1 (en) * 1999-03-24 2003-12-23 Intel Corporation Multimedia data delivery and playback system with multi-level content and privacy protection
US7171567B1 (en) * 1999-08-02 2007-01-30 Harris Interactive, Inc. System for protecting information over the internet
US7889052B2 (en) * 2001-07-10 2011-02-15 Xatra Fund Mx, Llc Authorizing payment subsequent to RF transactions
JP2001188738A (en) * 1999-10-21 2001-07-10 Vision Arts Kk System and method for providing information and device for adding identification information and computer readable recording medium stored with the same program and information providing server device and computer readable recording medium stored with the same program and information terminal and computer readable recording medium with information using program and charging device
EP1236354A4 (en) 1999-11-10 2009-04-22 Yahoo Inc Internet radio and broadcast method
US20040030598A1 (en) * 1999-11-30 2004-02-12 Boal Steven R. Electronic coupon distribution system
US6996720B1 (en) * 1999-12-17 2006-02-07 Microsoft Corporation System and method for accessing protected content in a rights-management architecture
US6970849B1 (en) 1999-12-17 2005-11-29 Microsoft Corporation Inter-server communication using request with encrypted parameter
US7047411B1 (en) 1999-12-17 2006-05-16 Microsoft Corporation Server for an electronic distribution system and method of operating same
GB2357599B (en) * 1999-12-23 2004-08-04 Ibm Method for preventing parasitic usage of web page embedded files
US8117644B2 (en) * 2000-01-07 2012-02-14 Pennar Software Corporation Method and system for online document collaboration
US6389467B1 (en) 2000-01-24 2002-05-14 Friskit, Inc. Streaming media search and continuous playback system of media resources located by multiple network addresses
US6834308B1 (en) 2000-02-17 2004-12-21 Audible Magic Corporation Method and apparatus for identifying media content presented on a media playing device
US6954895B1 (en) * 2000-03-22 2005-10-11 Autodesk, Inc. Method and apparatus for using and storing objects
US6665709B1 (en) * 2000-03-27 2003-12-16 Securit-E-Doc, Inc. Method, apparatus, and system for secure data transport
JP3630071B2 (en) * 2000-04-05 2005-03-16 日本電気株式会社 Digital watermark detector and digital watermark detection method used therefor
US7162482B1 (en) 2000-05-03 2007-01-09 Musicmatch, Inc. Information retrieval engine
US8352331B2 (en) 2000-05-03 2013-01-08 Yahoo! Inc. Relationship discovery engine
US7251665B1 (en) 2000-05-03 2007-07-31 Yahoo! Inc. Determining a known character string equivalent to a query string
US7526440B2 (en) * 2000-06-12 2009-04-28 Walker Digital, Llc Method, computer product, and apparatus for facilitating the provision of opinions to a shopper from a panel of peers
US7051200B1 (en) 2000-06-27 2006-05-23 Microsoft Corporation System and method for interfacing a software process to secure repositories
US7158953B1 (en) 2000-06-27 2007-01-02 Microsoft Corporation Method and system for limiting the use of user-specific software features
US7171692B1 (en) 2000-06-27 2007-01-30 Microsoft Corporation Asynchronous communication within a server arrangement
US6891953B1 (en) * 2000-06-27 2005-05-10 Microsoft Corporation Method and system for binding enhanced software features to a persona
US6981262B1 (en) * 2000-06-27 2005-12-27 Microsoft Corporation System and method for client interaction in a multi-level rights-management architecture
US7017189B1 (en) 2000-06-27 2006-03-21 Microsoft Corporation System and method for activating a rendering device in a multi-level rights-management architecture
US7539875B1 (en) 2000-06-27 2009-05-26 Microsoft Corporation Secure repository with layers of tamper resistance and system and method for providing same
US20020046045A1 (en) * 2000-06-30 2002-04-18 Attila Narin Architecture for an electronic shopping service integratable with a software application
US7225159B2 (en) * 2000-06-30 2007-05-29 Microsoft Corporation Method for authenticating and securing integrated bookstore entries
JP3650929B2 (en) * 2000-08-09 2005-05-25 文孝 村山 Character content providing method and character content providing system
US20020046052A1 (en) * 2000-08-18 2002-04-18 Sean Brown Page content item billing
US7073199B1 (en) * 2000-08-28 2006-07-04 Contentguard Holdings, Inc. Document distribution management method and apparatus using a standard rendering engine and a method and apparatus for controlling a standard rendering engine
FR2813416B1 (en) * 2000-08-31 2003-10-17 Canon Kk METHOD AND DEVICE FOR ADAPTING THE CONTENT OF DOCUMENTS ON AN INFORMATION SERVER
US7007304B1 (en) * 2000-09-20 2006-02-28 Intel Corporation Method and apparatus to improve the protection of information presented by a computer
US7958213B1 (en) * 2000-09-21 2011-06-07 Siemens Enterprise Communications, Inc. Processing electronic messages
US20020156881A1 (en) * 2000-10-03 2002-10-24 Klopp Lemon Ana H. Von HTTP transaction monitor with replay capacity
JP4902904B2 (en) 2000-10-06 2012-03-21 ソニー株式会社 Information processing method and medium storing program
US6807560B1 (en) * 2000-10-06 2004-10-19 Lance E. Zuesse Method for encouraging internet publication browsing while discouraging unauthorized printing
JP4415233B2 (en) * 2000-10-12 2010-02-17 ソニー株式会社 Information processing apparatus and method, and program storage medium
US7099026B1 (en) * 2000-10-17 2006-08-29 International Business Machines Corporation Unique printer pass code system and method
US8271333B1 (en) 2000-11-02 2012-09-18 Yahoo! Inc. Content-related wallpaper
US7562012B1 (en) * 2000-11-03 2009-07-14 Audible Magic Corporation Method and apparatus for creating a unique audio signature
FR2816781B1 (en) * 2000-11-10 2003-01-31 Evidian METHOD AND DEVICE FOR SECURING A PORTAL IN A COMPUTER SYSTEM
JP2002149475A (en) * 2000-11-15 2002-05-24 Fujitsu Ltd Network server and transmission control method for hyper text and recording medium with hyper text recorded thereon
AU2002233196A1 (en) * 2000-12-15 2002-06-24 International Business Machines Corporation Method and system for off-loading parts of a document to a document repository
GB2371636A (en) * 2000-12-21 2002-07-31 Nokia Oyj Content Distribution System
US7496767B2 (en) * 2001-01-19 2009-02-24 Xerox Corporation Secure content objects
JP4311899B2 (en) 2001-03-02 2009-08-12 パナソニック株式会社 Method and apparatus for content distribution and protection
US6928462B2 (en) * 2001-03-06 2005-08-09 Hewlett-Packard Development Company, L.P. System and method for distributed processing of non-processable elements of a document to be rendered on a client
EP1490767B1 (en) 2001-04-05 2014-06-11 Audible Magic Corporation Copyright detection and protection system and method
KR100405973B1 (en) * 2001-04-11 2003-11-14 엘지전자 주식회사 Method of setting up display window
US7188342B2 (en) * 2001-04-20 2007-03-06 Microsoft Corporation Server controlled branding of client software deployed over computer networks
US20060253784A1 (en) * 2001-05-03 2006-11-09 Bower James M Multi-tiered safety control system and methods for online communities
US20020169796A1 (en) * 2001-05-14 2002-11-14 Schwartz Cynthia L. System and method for writing a hypermedia file to a multimedia storage device
US7370078B1 (en) * 2001-05-22 2008-05-06 Cisco Technology, Inc. Determining a remote device name
US7383321B2 (en) 2002-07-09 2008-06-03 Moyer Alan L Method and system for communicating between a remote printer and a server
US20040019628A1 (en) * 2002-07-09 2004-01-29 Puri Anish N. System for remotely rendering content for output by a printer
US6895503B2 (en) 2001-05-31 2005-05-17 Contentguard Holdings, Inc. Method and apparatus for hierarchical assignment of rights to documents and documents having such rights
US7007025B1 (en) * 2001-06-08 2006-02-28 Xsides Corporation Method and system for maintaining secure data input and output
US7418737B2 (en) * 2001-06-13 2008-08-26 Mcafee, Inc. Encrypted data file transmission
US20020194296A1 (en) * 2001-06-14 2002-12-19 International Business Machines Corporation Stopping a slow download of internally included objects in a downloaded HTML page on a web client
AU2002349780C1 (en) * 2001-06-25 2006-09-21 Jp Morgan Chase Bank Electronic vouchers and a system and method for issuing the same
US7346560B1 (en) * 2001-06-29 2008-03-18 I2 Technologies Us, Inc. Protecting content from unauthorized reproduction
US7073070B2 (en) * 2001-06-29 2006-07-04 Intel Corporation Method and apparatus to improve the protection of information presented by a computer
GB2377514B (en) * 2001-07-05 2005-04-27 Hewlett Packard Co Document encryption
US7529659B2 (en) 2005-09-28 2009-05-05 Audible Magic Corporation Method and apparatus for identifying an unknown work
US7313824B1 (en) * 2001-07-13 2007-12-25 Liquid Machines, Inc. Method for protecting digital content from unauthorized use by automatically and dynamically integrating a content-protection agent
US7877438B2 (en) * 2001-07-20 2011-01-25 Audible Magic Corporation Method and apparatus for identifying new media content
US8972481B2 (en) 2001-07-20 2015-03-03 Audible Magic, Inc. Playlist generation method and apparatus
US20030120768A1 (en) * 2001-08-08 2003-06-26 Simpson Shell S. Method for obtaining status of web-based imaging originated processes
US7073131B2 (en) 2001-08-08 2006-07-04 Hewlett-Packard Development Company, L.P. Group composition store
US20030033432A1 (en) * 2001-08-08 2003-02-13 Simpson Shell S. Web based imaging service that converts web pages into content on behalf of another web site
US20030033353A1 (en) * 2001-08-08 2003-02-13 Simpson Shell S. Method for web-based imaging service to redirect to a preferred destination based on a criteria
KR20040028741A (en) * 2001-08-09 2004-04-03 마츠시타 덴끼 산교 가부시키가이샤 Unified rights management for ipmp system
US20030046334A1 (en) * 2001-08-29 2003-03-06 Simpson Shell S. Client resident service that launches a browser to provide device status
US20030044012A1 (en) * 2001-08-31 2003-03-06 Sharp Laboratories Of America, Inc. System and method for using a profile to encrypt documents in a digital scanner
GB2379349B (en) * 2001-08-31 2006-02-08 Sony Uk Ltd Embedding data in material
CN1225912C (en) * 2001-09-03 2005-11-02 松下电器产业株式会社 Apparatus of flexible and common IPMP system for distributing and protecting MPEG-2 content
US20030046578A1 (en) * 2001-09-05 2003-03-06 International Business Machines Incorporation Apparatus and method for providing access rights information in metadata of a file
US20030177248A1 (en) * 2001-09-05 2003-09-18 International Business Machines Corporation Apparatus and method for providing access rights information on computer accessible content
US20030051039A1 (en) * 2001-09-05 2003-03-13 International Business Machines Corporation Apparatus and method for awarding a user for accessing content based on access rights information
US20030084439A1 (en) * 2001-10-04 2003-05-01 Ross Perkins Incentive system for distributing software over a computer network
JP3901484B2 (en) * 2001-10-05 2007-04-04 株式会社ジェイテクト Electric power steering device
EP1442594A2 (en) * 2001-10-29 2004-08-04 Matsushita Electric Industrial Co., Ltd. Apparatus of a baseline dvb-cpcm
JP4477822B2 (en) * 2001-11-30 2010-06-09 パナソニック株式会社 Information converter
US7316032B2 (en) * 2002-02-27 2008-01-01 Amad Tayebi Method for allowing a customer to preview, acquire and/or pay for information and a system therefor
US7562397B1 (en) * 2002-02-27 2009-07-14 Mithal Ashish K Method and system for facilitating search, selection, preview, purchase evaluation, offering for sale, distribution, and/or sale of digital content and enhancing the security thereof
US10033700B2 (en) 2001-12-12 2018-07-24 Intellectual Ventures I Llc Dynamic evaluation of access rights
US7921288B1 (en) 2001-12-12 2011-04-05 Hildebrand Hal S System and method for providing different levels of key security for controlling access to secured items
US7178033B1 (en) 2001-12-12 2007-02-13 Pss Systems, Inc. Method and apparatus for securing digital assets
US7783765B2 (en) 2001-12-12 2010-08-24 Hildebrand Hal S System and method for providing distributed access control to secured documents
US7380120B1 (en) 2001-12-12 2008-05-27 Guardian Data Storage, Llc Secured data format for access control
US7921450B1 (en) 2001-12-12 2011-04-05 Klimenty Vainstein Security system using indirect key generation from access rules and methods therefor
US8006280B1 (en) 2001-12-12 2011-08-23 Hildebrand Hal S Security system for generating keys from access rules in a decentralized manner and methods therefor
USRE41546E1 (en) 2001-12-12 2010-08-17 Klimenty Vainstein Method and system for managing security tiers
US7930756B1 (en) 2001-12-12 2011-04-19 Crocker Steven Toye Multi-level cryptographic transformations for securing digital assets
US7681034B1 (en) 2001-12-12 2010-03-16 Chang-Ping Lee Method and apparatus for securing electronic data
US8065713B1 (en) 2001-12-12 2011-11-22 Klimenty Vainstein System and method for providing multi-location access management to secured items
US10360545B2 (en) 2001-12-12 2019-07-23 Guardian Data Storage, Llc Method and apparatus for accessing secured electronic data off-line
US7921284B1 (en) 2001-12-12 2011-04-05 Gary Mark Kinghorn Method and system for protecting electronic data in enterprise environment
US7565683B1 (en) 2001-12-12 2009-07-21 Weiqing Huang Method and system for implementing changes to security policies in a distributed security system
US7260555B2 (en) 2001-12-12 2007-08-21 Guardian Data Storage, Llc Method and architecture for providing pervasive security to digital assets
US20030115253A1 (en) * 2001-12-13 2003-06-19 Abdulkadev Barbir Framework for service personalization
US20030112452A1 (en) * 2001-12-19 2003-06-19 Mcintyre C. Kevin Method and system for printer with multiple event logs
US20030120930A1 (en) * 2001-12-21 2003-06-26 Simpson Shell S. Document notarization system and method
US7950066B1 (en) * 2001-12-21 2011-05-24 Guardian Data Storage, Llc Method and system for restricting use of a clipboard application
US8176334B2 (en) 2002-09-30 2012-05-08 Guardian Data Storage, Llc Document security system that permits external users to gain access to secured files
US7269543B2 (en) * 2002-02-25 2007-09-11 Zoran Corporation System and method for providing network connectivity to a common embedded interface by stimulating the embedded interface
US7505889B2 (en) * 2002-02-25 2009-03-17 Zoran Corporation Transcoding media system
GB0204923D0 (en) * 2002-03-02 2002-04-17 Eastman Kodak Co A method and system for image distribution
US7916322B2 (en) * 2002-03-14 2011-03-29 Senshin Capital, Llc Method and apparatus for uploading content from a device to a remote network location
US7707221B1 (en) 2002-04-03 2010-04-27 Yahoo! Inc. Associating and linking compact disc metadata
US8613102B2 (en) 2004-03-30 2013-12-17 Intellectual Ventures I Llc Method and system for providing document retention using cryptography
US7028075B2 (en) * 2002-04-23 2006-04-11 Flashpoint Technology, Inc. Method and system for sharing digital images over a network
US9081976B2 (en) * 2002-12-18 2015-07-14 Music Public Broadcasting, Inc. Method for redirecting of kernel data path for controlling recording of media
US7146434B2 (en) * 2002-05-15 2006-12-05 Hewlett-Packard Development Company, L.P. Method for downloading data via the internet to a browser enabled computer
US7181617B2 (en) * 2002-06-10 2007-02-20 Kelley Wise Remote virtual medical diagnostic imaging viewer
KR100854531B1 (en) * 2002-07-01 2008-10-27 노키아 코포레이션 A system and method for delivering representative media objects of a broadcast media stream to a terminal
AU2002341754A1 (en) * 2002-07-05 2004-01-23 Cyberscan Technology, Inc. Secure game download
US20040010756A1 (en) * 2002-07-09 2004-01-15 Hobbs George Bradley Print preview based on printer attributes and/or material properties of print media
US20040010540A1 (en) * 2002-07-09 2004-01-15 Puri Anish N. Method and system for streamlining data transfer between a content provider server and an output server
US7284277B2 (en) * 2002-07-15 2007-10-16 Hewlett-Packard Development Company, L.P. Secured printing
US9349411B2 (en) * 2002-07-16 2016-05-24 Digimarc Corporation Digital watermarking and fingerprinting applications for copy protection
US20040049624A1 (en) * 2002-09-06 2004-03-11 Oak Technology, Inc. Network to computer internal interface
US7512810B1 (en) 2002-09-11 2009-03-31 Guardian Data Storage Llc Method and system for protecting encrypted files transmitted over a network
US7539940B2 (en) * 2002-10-09 2009-05-26 Microsoft Corporation System and method for converting between text formatting or markup language formatting and outline structure
US7363377B1 (en) * 2002-10-09 2008-04-22 Unisys Corporation Method for protecting the program environment of a microsoft component object model (COM) client
US7836310B1 (en) 2002-11-01 2010-11-16 Yevgeniy Gutnik Security system that uses indirect password-based encryption
US20040153451A1 (en) * 2002-11-15 2004-08-05 John Phillips Methods and systems for sharing data
JP2004171325A (en) * 2002-11-21 2004-06-17 Seiko Epson Corp Print job management system
US7573876B2 (en) 2002-12-05 2009-08-11 Intel Corporation Interconnecting network processors with heterogeneous fabrics
US7367060B2 (en) * 2002-12-11 2008-04-29 Ravi Someshwar Methods and apparatus for secure document printing
US7890990B1 (en) 2002-12-20 2011-02-15 Klimenty Vainstein Security system with staging capabilities
US7401141B2 (en) * 2003-01-07 2008-07-15 International Business Machines Corporation Method and system for monitoring performance of distributed applications
US8332326B2 (en) * 2003-02-01 2012-12-11 Audible Magic Corporation Method and apparatus to identify a work received by a processing system
US7370212B2 (en) 2003-02-25 2008-05-06 Microsoft Corporation Issuing a publisher use license off-line in a digital rights management (DRM) system
US7089425B2 (en) * 2003-03-18 2006-08-08 Ci4 Technologies, Inc. Remote access authorization of local content
US7526527B1 (en) 2003-03-31 2009-04-28 Cisco Technology, Inc. Storage area network interconnect server
US7386783B2 (en) * 2003-04-28 2008-06-10 International Business Machines Corporation Method, system and program product for controlling web content usage
US20040230663A1 (en) * 2003-05-02 2004-11-18 Icu Software, Inc. Sharing photos electronically
CA2429375A1 (en) * 2003-05-22 2004-11-22 Cognos Incorporated Model action logging
US8707034B1 (en) 2003-05-30 2014-04-22 Intellectual Ventures I Llc Method and system for using remote headers to secure electronic files
US7328173B2 (en) * 2003-06-19 2008-02-05 Shutterfly, Inc. Automated printing system for producing copyright protected image-based product
US20050010764A1 (en) * 2003-06-26 2005-01-13 International Business Machines Corporation System and method for securely transmitting, and improving the transmission of, tag based protocol files containing proprietary information
KR20060034250A (en) * 2003-06-30 2006-04-21 코닌클리케 필립스 일렉트로닉스 엔.브이. Identification of protected content items by means of icons
CN1875377A (en) 2003-09-10 2006-12-06 音乐匹配公司 Music purchasing and playing system and method
US7269794B2 (en) * 2003-09-11 2007-09-11 International Business Machines Corporation Method and apparatus for viewpoint collaboration
US7703140B2 (en) 2003-09-30 2010-04-20 Guardian Data Storage, Llc Method and system for securing digital assets using process-driven security policies
US8127366B2 (en) 2003-09-30 2012-02-28 Guardian Data Storage, Llc Method and apparatus for transitioning between states of security policies used to secure electronic documents
US20070143219A1 (en) * 2003-10-14 2007-06-21 Matsushita Electric Industrial Co., Ltd. Method for delivering content and content server which delivers content
US20050091580A1 (en) * 2003-10-25 2005-04-28 Dave Kamholz Method and system for generating a Web page
US8103742B1 (en) 2003-11-24 2012-01-24 Amazon Technologies, Inc. Deferred and off-loaded rendering of selected portions of web pages to incorporate late-arriving service data
EP1691553B1 (en) * 2003-12-02 2012-03-28 Panasonic Corporation Method and device for distributing av content in download type file format
JP4282472B2 (en) * 2003-12-26 2009-06-24 株式会社東芝 Microprocessor
JP2005205755A (en) * 2004-01-23 2005-08-04 Brother Ind Ltd Image forming system, printing apparatus, terminal apparatus and re-printing determining program
JP3945708B2 (en) * 2004-01-23 2007-07-18 インターナショナル・ビジネス・マシーンズ・コーポレーション Information processing system, conversion processing system, inverse conversion processing system, conversion method, conversion program, and recording medium
US7802095B2 (en) * 2004-02-03 2010-09-21 Music Public Broadcasting, Inc. Method and system for preventing unauthorized recording of media content on a Macintosh operating system
US7493483B2 (en) * 2004-02-19 2009-02-17 International Business Machines Corporation Method to prevent vulnerability to virus and worm attacks through instruction remapping
US7836301B2 (en) * 2004-03-10 2010-11-16 Harris Steven M Computer program for securely viewing a file
US8595214B1 (en) * 2004-03-31 2013-11-26 Google Inc. Systems and methods for article location and retrieval
US7500267B2 (en) * 2004-04-30 2009-03-03 Microsoft Corporation Systems and methods for disabling software components to protect digital media
US20060242406A1 (en) 2005-04-22 2006-10-26 Microsoft Corporation Protected computing environment
US8074287B2 (en) * 2004-04-30 2011-12-06 Microsoft Corporation Renewable and individualizable elements of a protected environment
US7359902B2 (en) 2004-04-30 2008-04-15 Microsoft Corporation Method and apparatus for maintaining relationships between parts in a package
US7383500B2 (en) 2004-04-30 2008-06-03 Microsoft Corporation Methods and systems for building packages that contain pre-paginated documents
US8661332B2 (en) * 2004-04-30 2014-02-25 Microsoft Corporation Method and apparatus for document processing
US8243317B2 (en) * 2004-05-03 2012-08-14 Microsoft Corporation Hierarchical arrangement for spooling job data
US7634775B2 (en) * 2004-05-03 2009-12-15 Microsoft Corporation Sharing of downloaded resources
US20050246384A1 (en) * 2004-05-03 2005-11-03 Microsoft Corporation Systems and methods for passing data between filters
US7440132B2 (en) 2004-05-03 2008-10-21 Microsoft Corporation Systems and methods for handling a file with complex elements
US8363232B2 (en) 2004-05-03 2013-01-29 Microsoft Corporation Strategies for simultaneous peripheral operations on-line using hierarchically structured job information
US7519899B2 (en) * 2004-05-03 2009-04-14 Microsoft Corporation Planar mapping of graphical elements
US7755786B2 (en) 2004-05-03 2010-07-13 Microsoft Corporation Systems and methods for support of various processing capabilities
US7580948B2 (en) * 2004-05-03 2009-08-25 Microsoft Corporation Spooling strategies using structured job information
KR20070020026A (en) * 2004-05-05 2007-02-16 코닌클리케 필립스 일렉트로닉스 엔.브이. Selective video blanking
US20050289645A1 (en) * 2004-06-25 2005-12-29 Kyocera Mita Corporation Image processing device and program
US7707427B1 (en) 2004-07-19 2010-04-27 Michael Frederick Kenrich Multi-level file digests
US8130746B2 (en) * 2004-07-28 2012-03-06 Audible Magic Corporation System for distributing decoy content in a peer to peer network
US7827498B2 (en) * 2004-08-03 2010-11-02 Visan Industries Method and system for dynamic interactive display of digital images
US20060069745A1 (en) * 2004-09-08 2006-03-30 International Business Machines Corporation Method, system and program product for identifying web page dependencies
US7861085B1 (en) * 2004-09-29 2010-12-28 Rockwell Automation Technologies, Inc. Systems and methods providing distributed management of electronic signatures in industrial automation systems
US9298474B2 (en) * 2004-10-06 2016-03-29 International Business Machines Corporation System and method for managing a floating window
US8347078B2 (en) 2004-10-18 2013-01-01 Microsoft Corporation Device certificate individualization
US7600267B2 (en) * 2004-10-21 2009-10-06 International Business Machines Corporation Preventing a copy of a protected window
EP1650629A3 (en) * 2004-10-21 2008-01-02 International Business Machines Corporation System and method for preventing a copy of a protected window
US7792760B2 (en) * 2004-11-12 2010-09-07 Canon Kabushiki Kaisha Printing device, information processing apparatus, printing system, signature verifying method, signature adding method, and program
US8336085B2 (en) 2004-11-15 2012-12-18 Microsoft Corporation Tuning product policy using observed evidence of customer behavior
US7584111B2 (en) * 2004-11-19 2009-09-01 Microsoft Corporation Time polynomial Arrow-Debreu market equilibrium
JP2006155155A (en) * 2004-11-29 2006-06-15 Fujitsu Ltd Information leakage preventing device and method, and its program
FR2881302A1 (en) * 2005-01-21 2006-07-28 Delibello Ltd METHOD AND SYSTEM FOR PROTECTING COPIES OF TRANSIT-READED FILE DATA (STREAMING)
US20090128573A1 (en) * 2005-02-09 2009-05-21 Canice Lambe Memory Based Content Display Interception
US20060184785A1 (en) * 2005-02-16 2006-08-17 David Carroll Challener Apparatus, system, and method for securing I/O communications between a blade and a peripheral interface device of a blade-based computer system
JP4706278B2 (en) * 2005-02-24 2011-06-22 ソニー株式会社 Information processing system, playback terminal device and playback method, information processing device and method, and program
US8438645B2 (en) 2005-04-27 2013-05-07 Microsoft Corporation Secure clock with grace periods
US7606370B2 (en) * 2005-04-05 2009-10-20 Mcafee, Inc. System, method and computer program product for updating security criteria in wireless networks
US7757274B2 (en) * 2005-04-05 2010-07-13 Mcafee, Inc. Methods and systems for exchanging security information via peer-to-peer wireless networks
US7761710B2 (en) * 2005-04-05 2010-07-20 Mcafee, Inc. Captive portal system and method for use in peer-to-peer networks
US7822972B2 (en) * 2005-04-05 2010-10-26 Mcafee, Inc. Remotely configurable bridge system and method for use in secure wireless networks
US9178940B2 (en) * 2005-04-12 2015-11-03 Tiversa Ip, Inc. System and method for detecting peer-to-peer network software
US8725646B2 (en) 2005-04-15 2014-05-13 Microsoft Corporation Output protection levels
US9363481B2 (en) 2005-04-22 2016-06-07 Microsoft Technology Licensing, Llc Protected media pipeline
US9436804B2 (en) 2005-04-22 2016-09-06 Microsoft Technology Licensing, Llc Establishing a unique session key using a hardware functionality scan
US7734621B2 (en) * 2005-05-19 2010-06-08 Coupons.Com Incorporated Searching a database including prioritizing results based on historical data
US20060265758A1 (en) 2005-05-20 2006-11-23 Microsoft Corporation Extensible media rights
JP4250152B2 (en) * 2005-06-13 2009-04-08 コニカミノルタビジネステクノロジーズ株式会社 Image copying apparatus and image copying system
US8799515B1 (en) * 2005-06-27 2014-08-05 Juniper Networks, Inc. Rewriting of client-side executed scripts in the operation of an SSL VPN
US9213992B2 (en) * 2005-07-08 2015-12-15 Microsoft Technology Licensing, Llc Secure online transactions using a trusted digital identity
JP2007048216A (en) * 2005-08-12 2007-02-22 Canon Inc Document management device, document management method, document management program, and storage medium
US20070043977A1 (en) * 2005-08-22 2007-02-22 Moxa Technologies Co., Ltd. [program encryption method]
JP4850456B2 (en) * 2005-08-31 2012-01-11 キヤノン株式会社 Digital broadcast receiving apparatus, information content printing method, program, and storage medium in the apparatus
JP5051872B2 (en) * 2005-09-01 2012-10-17 キヤノン株式会社 Display system and control method thereof
WO2007038390A2 (en) 2005-09-26 2007-04-05 Coupons, Inc. System and method for augmenting content in electronic documents with links to contextually relevant information
US8306918B2 (en) 2005-10-11 2012-11-06 Apple Inc. Use of media storage structure with multiple pieces of content in a content-distribution system
TWI405094B (en) * 2005-11-28 2013-08-11 Ibm System for preventing unauthorized acquisition of information, and method thereof
US7590634B2 (en) * 2005-12-09 2009-09-15 Microsoft Corporation Detection of inaccessible resources
TWI308694B (en) * 2005-12-13 2009-04-11 Wistron Corp Method of data protection for computers
US8321947B2 (en) * 2005-12-15 2012-11-27 Emc Corporation Method and system for dynamically generating a watermarked document during a printing or display operation
US8312552B1 (en) * 2005-12-15 2012-11-13 Emc Corporation Method and system for rendering watermarked content
US8145914B2 (en) 2005-12-15 2012-03-27 Microsoft Corporation Client-side CAPTCHA ceremony for user verification
US8526666B1 (en) 2005-12-15 2013-09-03 Emc Corporation Method and system for rendering watermarked content using a watermark window
US9118617B1 (en) * 2005-12-23 2015-08-25 Emc Corporation Methods and apparatus for adapting the protection level for protected content
JP4745822B2 (en) * 2005-12-27 2011-08-10 キヤノン株式会社 Information processing method and apparatus
US8661348B2 (en) * 2006-01-27 2014-02-25 At&T Intellectual Property I, L.P. Methods and systems to process an image
US8091017B2 (en) 2006-07-25 2012-01-03 Paxson Dana W Method and apparatus for electronic literary macramé component referencing
US8689134B2 (en) 2006-02-24 2014-04-01 Dana W. Paxson Apparatus and method for display navigation
US7810021B2 (en) * 2006-02-24 2010-10-05 Paxson Dana W Apparatus and method for creating literary macramés
US8010897B2 (en) * 2006-07-25 2011-08-30 Paxson Dana W Method and apparatus for presenting electronic literary macramés on handheld computer systems
US7555138B2 (en) * 2006-07-25 2009-06-30 Paxson Dana W Method and apparatus for digital watermarking for the electronic literary macramé
US8069486B1 (en) * 2006-03-27 2011-11-29 Symantec Corporation Identifying the origin of hard-copy documents
EP1845440B1 (en) * 2006-04-12 2018-08-29 Cortado AG Method and assembly for printing from web applications and the corresponding computer program and the corresponding machine readable storage medium
US8301906B2 (en) * 2006-05-10 2012-10-30 Nero Ag Apparatus for writing information on a data content on a storage medium
KR100748469B1 (en) * 2006-06-26 2007-08-10 삼성전자주식회사 User interface method based on keypad touch and mobile device thereof
JP2008030221A (en) * 2006-07-26 2008-02-14 Brother Ind Ltd Image forming apparatus
US8656461B2 (en) * 2006-07-28 2014-02-18 Microsoft Corporation Copy-paste trust system
US8194088B1 (en) 2006-08-03 2012-06-05 Apple Inc. Selective composite rendering
CN101140504A (en) * 2006-09-05 2008-03-12 鸿富锦精密工业(深圳)有限公司 Print job monitoring system and method
JP4895731B2 (en) * 2006-09-05 2012-03-14 株式会社リコー Information processing device, peripheral device, and program
US20080071688A1 (en) * 2006-09-14 2008-03-20 Kevin Corbett Apparatus, system and method for the management of digital rights managed (DRM) licenses into a user interface
US8763110B2 (en) 2006-11-14 2014-06-24 Sandisk Technologies Inc. Apparatuses for binding content to a separate memory device
US8079071B2 (en) * 2006-11-14 2011-12-13 SanDisk Technologies, Inc. Methods for accessing content based on a session ticket
US8327454B2 (en) * 2006-11-14 2012-12-04 Sandisk Technologies Inc. Method for allowing multiple users to access preview content
US20080114693A1 (en) * 2006-11-14 2008-05-15 Fabrice Jogand-Coulomb Method for allowing content protected by a first DRM system to be accessed by a second DRM system
US20080115225A1 (en) * 2006-11-14 2008-05-15 Fabrice Jogand-Coulomb System for allowing multiple users to access preview content
US20080114772A1 (en) * 2006-11-14 2008-05-15 Fabrice Jogand-Coulomb Method for connecting to a network location associated with content
US20080133673A1 (en) * 2006-12-04 2008-06-05 Abdelhadi Sanaa F Method and apparatus to control contents in a document
JP2008170939A (en) * 2006-12-12 2008-07-24 National Institute Of Information & Communication Technology Electronic device, information processing device, image revision method and information processing method
WO2008089349A2 (en) 2007-01-18 2008-07-24 Coupons, Inc. System and method for controlling distribution of electronic coupons
US20080208831A1 (en) * 2007-02-26 2008-08-28 Microsoft Corporation Controlling search indexing
US20110179344A1 (en) * 2007-02-26 2011-07-21 Paxson Dana W Knowledge transfer tool: an apparatus and method for knowledge transfer
US20080212773A1 (en) * 2007-03-02 2008-09-04 Houlberg Christian L Parallel data stream decryption device
US7885956B2 (en) * 2007-03-05 2011-02-08 Kelora Systems, Llc Display and search interface for product database
US11625457B2 (en) 2007-04-16 2023-04-11 Tailstream Technologies, Llc System for interactive matrix manipulation control of streamed data
US9325682B2 (en) 2007-04-16 2016-04-26 Tailstream Technologies, Llc System for interactive matrix manipulation control of streamed data and media
US8305604B2 (en) * 2007-04-18 2012-11-06 Hewlett-Packard Development Company, L.P. System and method of network printing
US8559667B2 (en) 2007-04-27 2013-10-15 Coupons.Com Incorporated Coupon copy protection
US20080279077A1 (en) * 2007-05-09 2008-11-13 Macrovision Corporation Apparatus for and a method of enabling copying a copy-protected recording medium
US20090012880A1 (en) * 2007-06-13 2009-01-08 Lucio Tortola User Interface For Creating and Displaying Digital Signage
KR100932847B1 (en) 2007-06-26 2009-12-21 엔에이치엔(주) Copy protection methods and systems
US8006314B2 (en) 2007-07-27 2011-08-23 Audible Magic Corporation System for identifying content of digital data
KR101116683B1 (en) * 2007-08-03 2012-03-07 삼성전자주식회사 Printing system of security document and control method thereof
CN101836213B (en) * 2007-08-29 2015-06-24 僖迪网络科技株式会社 Protection against unauthorized copying of digital media content
US20090089883A1 (en) * 2007-09-29 2009-04-02 Sympact Technologies Llc Method and apparatus for controlling media content distribution
DK2201475T3 (en) * 2007-10-10 2020-09-28 Gilbarco Inc SYSTEM AND METHOD FOR MANAGING SAFE AND UNSECURE CONTENT BY DISPENSER OR RETAIL FACILITY
CN100527122C (en) * 2007-10-24 2009-08-12 北大方正集团有限公司 Combination method and apparatus capable of transplant document format file
US9307179B1 (en) * 2007-11-13 2016-04-05 Nvidia Corporation Method and system for protecting content in graphics memory
US8478959B1 (en) 2007-11-13 2013-07-02 Nvidia Corporation Method and system for protecting content in graphics memory
US20090138402A1 (en) * 2007-11-27 2009-05-28 International Business Machines Corporation Presenting protected content in a virtual world
US8904074B2 (en) * 2007-12-31 2014-12-02 Schneider Electric USA, Inc. Method and apparatus for distributing configuration files in a distributed control system
US8280117B2 (en) 2008-03-18 2012-10-02 Certusview Technologies, Llc Virtual white lines for indicating planned excavation sites on electronic images
US8249306B2 (en) 2008-03-18 2012-08-21 Certusview Technologies, Llc Virtual white lines for delimiting planned excavation sites
FR2928235A1 (en) * 2008-02-29 2009-09-04 Thomson Licensing Sas METHOD FOR DISPLAYING MULTIMEDIA CONTENT WITH VARIABLE DISTURBANCES IN LOCAL RECEIVER / DECODER RIGHT FUNCTIONS.
GB2458568B (en) * 2008-03-27 2012-09-19 Covertix Ltd System and method for dynamically enforcing security policies on electronic files
US8646052B2 (en) * 2008-03-31 2014-02-04 Intel Corporation Method and apparatus for providing a secure display window inside the primary display
CA2723808A1 (en) 2008-05-13 2009-11-19 Coupons.Com Incorporated System and method for distributing coupon content and transactional advertisements
US20090298582A1 (en) * 2008-05-30 2009-12-03 Matthew Robert Dempsky Method and system for distributing browser-based computer games and files
US8208762B1 (en) 2008-08-12 2012-06-26 Adobe Systems Incorporated Optimizing the performance of an image editing system in a client-server environment
US9684628B2 (en) * 2008-09-29 2017-06-20 Oracle America, Inc. Mechanism for inserting trustworthy parameters into AJAX via server-side proxy
US8165078B2 (en) 2008-11-19 2012-04-24 Coupons.Com Incorporated System and method for controlling use of a network resource
US20100162410A1 (en) * 2008-12-24 2010-06-24 International Business Machines Corporation Digital rights management (drm) content protection by proxy transparency control
US8448245B2 (en) * 2009-01-17 2013-05-21 Stopthehacker.com, Jaal LLC Automated identification of phishing, phony and malicious web sites
US8384742B2 (en) 2009-02-11 2013-02-26 Certusview Technologies, Llc Virtual white lines (VWL) for delimiting planned excavation sites of staged excavation projects
CA2691780C (en) 2009-02-11 2015-09-22 Certusview Technologies, Llc Management system, and associated methods and apparatus, for providing automatic assesment of a locate operation
US20100201690A1 (en) 2009-02-11 2010-08-12 Certusview Technologies, Llc Virtual white lines (vwl) application for indicating a planned excavation or locate path
US8990289B2 (en) * 2009-02-27 2015-03-24 Oracle America, Inc. Server based framework for improving Ajax performance
US8199651B1 (en) 2009-03-16 2012-06-12 Audible Magic Corporation Method and system for modifying communication flows at a port level
CN102349288B (en) 2009-03-19 2014-11-05 富士通株式会社 Marker generation program, restoration program, marker generation device, restoration device, and marker generation method
US20100268593A1 (en) * 2009-04-21 2010-10-21 Ravi Keswani System and method for creating coupon offers and barcodes
US20100306860A1 (en) * 2009-05-29 2010-12-02 Hank Risan Using a custom media library to secure digital media content
US8542823B1 (en) * 2009-06-18 2013-09-24 Amazon Technologies, Inc. Partial file encryption
JP4856225B2 (en) * 2009-09-15 2012-01-18 株式会社沖データ Image data generator
US8589264B2 (en) 2009-10-19 2013-11-19 International Business Machines Corporation Token licensing mapping costs to enabled software tool features
US20110161538A1 (en) * 2009-12-31 2011-06-30 Schneider Electric USA, Inc. Method and System for Implementing Redundant Network Interface Modules in a Distributed I/O System
WO2011101972A1 (en) 2010-02-18 2011-08-25 株式会社東芝 Program
US20110258535A1 (en) * 2010-04-20 2011-10-20 Scribd, Inc. Integrated document viewer with automatic sharing of reading-related activities across external social networks
CN101902333B (en) * 2010-07-20 2015-08-19 中兴通讯股份有限公司 The application process of digital copyright management and terminal equipment
KR101064143B1 (en) * 2010-08-20 2011-09-15 주식회사 파수닷컴 System for protecting data stored in clipboard in digital rights management environment and recording medium storing program for executing method of the same in computer
JP4961535B2 (en) * 2010-08-20 2012-06-27 キヤノンマーケティングジャパン株式会社 Image forming apparatus, control method, and program
US8732150B2 (en) * 2010-09-23 2014-05-20 Salesforce.Com, Inc. Methods and apparatus for suppressing network feed activities using an information feed in an on-demand database service environment
US10360535B2 (en) * 2010-12-22 2019-07-23 Xerox Corporation Enterprise classified document service
US8910036B1 (en) * 2011-03-04 2014-12-09 Inkling Systems, Inc. Web based copy protection
US20120233642A1 (en) * 2011-03-11 2012-09-13 At&T Intellectual Property I, L.P. Musical Content Associated with Video Content
DE102011018431A1 (en) * 2011-04-21 2012-10-25 Giesecke & Devrient Gmbh Method for displaying information on a display device of a terminal
WO2012146943A2 (en) * 2011-04-27 2012-11-01 Within Technologies Ltd Improvements for 3d design and manufacturing systems
KR101809089B1 (en) * 2011-05-11 2017-12-14 세창인스트루먼트(주) Method for accomplishing effect that extracts and moves an area on the picture of the web page
US9524128B2 (en) * 2011-06-03 2016-12-20 Apple Inc. Information security for printing systems
US8666167B2 (en) 2011-07-05 2014-03-04 International Business Machines Corporation Policy-based image management
GB2494498A (en) 2011-08-04 2013-03-13 Ibm Handling defined areas within an electronic document to preserve integrity and context
US8874935B2 (en) 2011-08-30 2014-10-28 Microsoft Corporation Sector map-based rapid data encryption policy compliance
US20130074191A1 (en) * 2011-09-20 2013-03-21 Ehud Ben-Reuven Method for controlling content uploaded to a public content site
JP2013073506A (en) * 2011-09-28 2013-04-22 Canon Inc Image processing device, control method thereof, and program
DE102011115135A1 (en) 2011-10-07 2013-04-11 Giesecke & Devrient Gmbh Microprocessor system with secure runtime environment
US20130103735A1 (en) * 2011-10-25 2013-04-25 Andrew James Dowling Systems and methods for normalizing data received via a plurality of input channels for displaying content at a simplified computing platform
JP5887123B2 (en) * 2011-12-13 2016-03-16 株式会社ソニー・コンピュータエンタテインメント Information processing system, first electronic device, second electronic device, image file reproducing method and providing method
CN103176979B (en) * 2011-12-20 2016-07-06 北大方正集团有限公司 The online duplication method of format file content, equipment and system
US8959431B2 (en) * 2012-01-16 2015-02-17 Microsoft Corporation Low resolution placeholder content for document navigation
CN102662611B (en) * 2012-03-05 2014-11-05 沈阳通用软件有限公司 Method for print-auditing in Windows environment
EP2842092A4 (en) * 2012-04-16 2016-01-20 Salt Technology Inc Systems and methods for facilitating a transaction using a virtual card on a mobile device
US9195431B2 (en) * 2012-06-18 2015-11-24 Google Inc. System and method for selective removal of audio content from a mixed audio recording
US20140012704A1 (en) 2012-07-05 2014-01-09 Google Inc. Selecting a preferred payment instrument based on a merchant category
DE102012014174A1 (en) * 2012-07-16 2014-01-16 Rational Aktiengesellschaft Method for displaying parameters of a cooking process and display device for a cooking appliance
US9442898B2 (en) * 2012-07-17 2016-09-13 Oracle International Corporation Electronic document that inhibits automatic text extraction
WO2014028901A2 (en) * 2012-08-16 2014-02-20 Skyfire Labs, Inc. Mobile device toolbar architecture
US20140059708A1 (en) * 2012-08-23 2014-02-27 Condel International Technologies Inc. Apparatuses and methods for protecting program file content using digital rights management (drm)
US9081778B2 (en) 2012-09-25 2015-07-14 Audible Magic Corporation Using digital fingerprints to associate data with a work
US9141669B2 (en) * 2013-01-22 2015-09-22 Go Daddy Operating Company, LLC Configuring an origin server content delivery using a pulled data list
US10311609B2 (en) * 2012-12-17 2019-06-04 Clinton B. Smith Method and system for the making, storage and display of virtual image edits
US8972750B2 (en) 2012-12-19 2015-03-03 Adobe Systems Incorporated Method and apparatus for securing transfer of secure content to a destination
US20140168264A1 (en) 2012-12-19 2014-06-19 Lockheed Martin Corporation System, method and computer program product for real-time alignment of an augmented reality device
US9218145B2 (en) * 2013-01-30 2015-12-22 Hewlett-Packard Development Company, L.P. Print job management
US20140214700A1 (en) 2013-01-31 2014-07-31 CopyRightNow, LLC CopyRightNow Application Programming Interface
JP5863689B2 (en) * 2013-02-28 2016-02-17 京セラドキュメントソリューションズ株式会社 Shared library with unauthorized use prevention function
US9092767B1 (en) 2013-03-04 2015-07-28 Google Inc. Selecting a preferred payment instrument
US9064125B2 (en) * 2013-05-03 2015-06-23 Citrix Systems, Inc. Image analysis and management
US10037416B2 (en) * 2013-06-04 2018-07-31 Adobe Systems Incorporated Method and apparatus for licensing web assets
US9111123B2 (en) 2013-06-28 2015-08-18 International Business Machines Corporation Firmware for protecting data from software threats
CN104298688B (en) * 2013-07-18 2017-12-22 北大方正集团有限公司 The Webpage display process and system of anti-copy
US9223528B2 (en) * 2013-07-30 2015-12-29 Konica Minolta Laboratory U.S.A., Inc. Electronic content management workflow
US9858572B2 (en) 2014-02-06 2018-01-02 Google Llc Dynamic alteration of track data
US11134063B2 (en) * 2014-03-12 2021-09-28 Akamai Technologies, Inc. Preserving special characters in an encoded identifier
US10615967B2 (en) 2014-03-20 2020-04-07 Microsoft Technology Licensing, Llc Rapid data protection for storage devices
JP6307363B2 (en) * 2014-06-18 2018-04-04 株式会社沖データ Image forming method, image forming system, and image forming apparatus
US9825945B2 (en) * 2014-09-09 2017-11-21 Microsoft Technology Licensing, Llc Preserving data protection with policy
US9853812B2 (en) 2014-09-17 2017-12-26 Microsoft Technology Licensing, Llc Secure key management for roaming protected content
US9900295B2 (en) 2014-11-05 2018-02-20 Microsoft Technology Licensing, Llc Roaming content wipe actions across devices
US10171481B2 (en) 2015-03-24 2019-01-01 International Business Machines Corporation System and method for enhanced display-screen security and privacy
US9853820B2 (en) 2015-06-30 2017-12-26 Microsoft Technology Licensing, Llc Intelligent deletion of revoked data
WO2017049221A1 (en) * 2015-09-16 2017-03-23 Shotblock Technologies Pty Ltd. System and method of pixel manipulation and screen display disruption
US9900325B2 (en) 2015-10-09 2018-02-20 Microsoft Technology Licensing, Llc Passive encryption of organization data
US9935945B2 (en) * 2015-11-05 2018-04-03 Quanta Computer Inc. Trusted management controller firmware
JP6604246B2 (en) * 2016-03-18 2019-11-13 株式会社リコー Information processing apparatus, information processing system, information processing method, and program
US10320922B1 (en) 2016-03-28 2019-06-11 Amazon Technologies, Inc. Inventory manager for distributed systems
US10733238B2 (en) * 2016-05-06 2020-08-04 Amazon Technologies, Inc. Script manager for distributed systems
JP6828277B2 (en) * 2016-06-09 2021-02-10 富士ゼロックス株式会社 Client devices, information information systems and programs
WO2018035173A1 (en) * 2016-08-16 2018-02-22 Hanselware, Inc. Storing, managing and accessing information in a repository within a security context
CN106302548A (en) * 2016-10-18 2017-01-04 许遥 Distinguish user right to provide the mechanism of map network image data service
CA3010945A1 (en) 2017-07-10 2019-01-10 3D Bridge Solutions Inc. Systems, devices and methods for protecting 3d rendered designs
US10706160B1 (en) * 2017-08-25 2020-07-07 Intuit Inc. Methods, systems, and articles of manufacture for protecting data in an electronic document using steganography techniques
US10929511B2 (en) * 2017-12-05 2021-02-23 Facebook, Inc. Systems and methods for protecting sensitive information
CN108648132B (en) * 2018-04-16 2020-08-14 深圳市联软科技股份有限公司 Method, system, terminal and medium for generating watermark according to image
CN110581919B (en) 2018-06-11 2021-10-15 阿里巴巴集团控股有限公司 Information transmission and data processing method, device, system and storage medium
GB201811263D0 (en) * 2018-07-10 2018-08-29 Netmaster Solutions Ltd A method and system for managing digital using a blockchain
US11243906B2 (en) 2018-12-14 2022-02-08 OSAAP America, LLC Drag and drop format conversion between applications
US10552639B1 (en) * 2019-02-04 2020-02-04 S2 Systems Corporation Local isolator application with cohesive application-isolation interface
US10452868B1 (en) 2019-02-04 2019-10-22 S2 Systems Corporation Web browser remoting using network vector rendering
US11880422B2 (en) 2019-02-04 2024-01-23 Cloudflare, Inc. Theft prevention for sensitive information
US10558824B1 (en) * 2019-02-04 2020-02-11 S2 Systems Corporation Application remoting using network vector rendering
US10963542B2 (en) * 2019-05-13 2021-03-30 Advanced New Technologies Co., Ltd. Blockchain-based image processing method and apparatus
CN113515727B (en) * 2019-05-13 2024-05-07 创新先进技术有限公司 Picture processing method and device based on block chain
US11295029B1 (en) * 2019-07-22 2022-04-05 Aaron B. Greenblatt Computer file security using extended metadata
CN111078257B (en) * 2019-12-19 2023-09-08 杭州安恒信息技术股份有限公司 H5 application package loading method and related device
KR20220040936A (en) * 2020-09-24 2022-03-31 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. Communication with additional function provision server through proxy server

Family Cites Families (148)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US570544A (en) * 1896-11-03 Toy or game device
US4405829A (en) 1977-12-14 1983-09-20 Massachusetts Institute Of Technology Cryptographic communications system and method
JPS58184967A (en) * 1982-04-23 1983-10-28 Ricoh Co Ltd Preventing method of duplication of confidential document
US4977594A (en) 1986-10-14 1990-12-11 Electronic Publishing Resources, Inc. Database usage metering and protection system and method
US5050213A (en) 1986-10-14 1991-09-17 Electronic Publishing Resources, Inc. Database usage metering and protection system and method
US4827508A (en) 1986-10-14 1989-05-02 Personal Library Software, Inc. Database usage metering and protection system and method
US5012232A (en) * 1986-12-05 1991-04-30 Ncr Corporation Bit mapped memory plane with character attributes for video display
US4991118A (en) * 1989-04-17 1991-02-05 International Business Machines Corp. Enhanced data stream processing in a fixed function terminal
US5454067A (en) * 1989-11-16 1995-09-26 Tsai; Irving Method and apparatus for converting a conventional copier into an electronic printer
US5721788A (en) 1992-07-31 1998-02-24 Corbis Corporation Method and system for digital image signatures
US5432940A (en) * 1992-11-02 1995-07-11 Borland International, Inc. System and methods for improved computer-based training
US5303370A (en) 1992-11-13 1994-04-12 Score Group, Inc. Anti-counterfeiting process using lenticular optics and color masking
US5300946A (en) * 1992-12-08 1994-04-05 Microsoft Corporation Method for outputting transparent text
US5509070A (en) 1992-12-15 1996-04-16 Softlock Services Inc. Method for encouraging purchase of executable and non-executable software
JPH07105185A (en) 1993-10-01 1995-04-21 Matsushita Electric Ind Co Ltd Document creation device
US5768426A (en) 1993-11-18 1998-06-16 Digimarc Corporation Graphics processing system employing embedded code signals
US5748783A (en) 1995-05-08 1998-05-05 Digimarc Corporation Method and apparatus for robust information coding
US5862260A (en) 1993-11-18 1999-01-19 Digimarc Corporation Methods for surveying dissemination of proprietary empirical data
US5841886A (en) 1993-11-18 1998-11-24 Digimarc Corporation Security system for photographic identification
US5832119C1 (en) 1993-11-18 2002-03-05 Digimarc Corp Methods for controlling systems using control signals embedded in empirical data
US5841978A (en) 1993-11-18 1998-11-24 Digimarc Corporation Network linking method using steganographically embedded data objects
DE69434237T2 (en) 1993-11-18 2005-12-08 Digimarc Corp., Tualatin Video with hidden in-band digital data
US5822436A (en) 1996-04-25 1998-10-13 Digimarc Corporation Photographic products and methods employing embedded information
US5748763A (en) 1993-11-18 1998-05-05 Digimarc Corporation Image steganography system featuring perceptually adaptive and globally scalable signal embedding
US5636292C1 (en) 1995-05-08 2002-06-18 Digimarc Corp Steganography methods employing embedded calibration data
US5710834A (en) 1995-05-08 1998-01-20 Digimarc Corporation Method and apparatus responsive to a code signal conveyed through a graphic image
US5495411A (en) 1993-12-22 1996-02-27 Ananda; Mohan Secure software rental system using continuous asynchronous password verification
JP2853727B2 (en) * 1994-02-22 1999-02-03 日本ビクター株式会社 Reproduction protection method and protection reproduction device
JPH07271865A (en) * 1994-04-01 1995-10-20 Mitsubishi Corp Method for managing copyright of data base
US5559933A (en) * 1994-04-22 1996-09-24 Unisys Corporation Distributed enterprise print controller
US5838902A (en) 1994-04-30 1998-11-17 Lg Semicon Co., Ltd. Copy protection circuit for a data in a memory
JP3421129B2 (en) * 1994-05-13 2003-06-30 ブラザー工業株式会社 Image reading device
US6289137B1 (en) * 1994-06-02 2001-09-11 Canon Kabushiki Kaisha Image processing apparatus and method
US5493677A (en) * 1994-06-08 1996-02-20 Systems Research & Applications Corporation Generation, archiving, and retrieval of digital images with evoked suggestion-set captions and natural language interface
US5901277A (en) * 1994-07-29 1999-05-04 Apple Computer, Inc. Shared decompression buffer
US5881287A (en) * 1994-08-12 1999-03-09 Mast; Michael B. Method and apparatus for copy protection of images in a computer system
US5642207A (en) * 1994-09-16 1997-06-24 Contex A/S Color scanner with variable line resolution
US5764964A (en) * 1994-10-13 1998-06-09 International Business Machines Corporation Device for protecting selected information in multi-media workstations
US5570306A (en) * 1994-11-01 1996-10-29 Intel Corporation Method and apparatus for recognizing a bit pattern in a string of bits, altering the string of bits, and removing the alteration from the string of bits
US5715403A (en) 1994-11-23 1998-02-03 Xerox Corporation System for controlling the distribution and use of digital works having attached usage rights where the usage rights are defined by a usage rights grammar
US5533124A (en) 1994-12-07 1996-07-02 Smith; Jeannette K. Electronic trading card system
KR0137992B1 (en) * 1994-12-31 1998-06-15 김주용 Ring generator
US7069451B1 (en) * 1995-02-13 2006-06-27 Intertrust Technologies Corp. Systems and methods for secure transaction management and electronic rights protection
US5943422A (en) * 1996-08-12 1999-08-24 Intertrust Technologies Corp. Steganographic techniques for securely delivering electronic digital rights management control information over insecure communication channels
US5892900A (en) 1996-08-30 1999-04-06 Intertrust Technologies Corp. Systems and methods for secure transaction management and electronic rights protection
US5761669A (en) * 1995-06-06 1998-06-02 Microsoft Corporation Controlling access to objects on multiple operating systems
US5701451A (en) 1995-06-07 1997-12-23 International Business Machines Corporation Method for fulfilling requests of a web browser
US5982931A (en) 1995-06-07 1999-11-09 Ishimaru; Mikio Apparatus and method for the manipulation of image containing documents
US5781914A (en) 1995-06-30 1998-07-14 Ricoh Company, Ltd. Converting documents, with links to other electronic information, between hardcopy and electronic formats
US5745360A (en) 1995-08-14 1998-04-28 International Business Machines Corp. Dynamic hypertext link converter system and process
JPH11511570A (en) * 1995-08-27 1999-10-05 アリルー・リミテッド Document processing
US5758068A (en) 1995-09-19 1998-05-26 International Business Machines Corporation Method and apparatus for software license management
US5765152A (en) 1995-10-13 1998-06-09 Trustees Of Dartmouth College System and method for managing copyrighted electronic media
US6240450B1 (en) 1995-10-16 2001-05-29 British Telecommunications Public Limited Company Network data visualization system and method for downloading visualization software to a user station after user authentication
US6282362B1 (en) * 1995-11-07 2001-08-28 Trimble Navigation Limited Geographical position/image digital recording and display system
US5764770A (en) * 1995-11-07 1998-06-09 Trimble Navigation Limited Image authentication patterning
US5999622A (en) 1995-11-22 1999-12-07 Microsoft Corporation Method and apparatus for protecting widely distributed digital information
US6185306B1 (en) * 1995-12-07 2001-02-06 Hyperlock Technologies, Inc. Method of secure server control of local media via a trigger through a network for local access of encrypted data on an internet webpage
US5633932A (en) * 1995-12-19 1997-05-27 Intel Corporation Apparatus and method for preventing disclosure through user-authentication at a printing node
JP2000503154A (en) * 1996-01-11 2000-03-14 エムアールジェイ インコーポレイテッド System for controlling access and distribution of digital ownership
US5754170A (en) * 1996-01-16 1998-05-19 Neomagic Corp. Transparent blocking of CRT refresh fetches during video overlay using dummy fetches
US5822432A (en) * 1996-01-17 1998-10-13 The Dice Company Method for human-assisted random key generation and application for digital watermark system
US5801689A (en) 1996-01-22 1998-09-01 Extended Systems, Inc. Hypertext based remote graphic user interface control system
US5778372A (en) * 1996-04-18 1998-07-07 Microsoft Corporation Remote retrieval and display management of electronic document with incorporated images
US5835712A (en) 1996-05-03 1998-11-10 Webmate Technologies, Inc. Client-server system using embedded hypertext tags for application and database development
US5905505A (en) 1996-05-13 1999-05-18 Bell Communications Research, Inc. Method and system for copy protection of on-screen display of text
JP3422897B2 (en) * 1996-05-17 2003-06-30 株式会社テクノクラフト Character string extraction system and character string extraction method
US5884014A (en) 1996-05-23 1999-03-16 Xerox Corporation Fontless structured document image representations for efficient rendering
US6298422B1 (en) * 1996-06-17 2001-10-02 Network Associates, Inc. Method for reducing the memory requirements for an application program executing in a multi-tasking environment
US5835722A (en) 1996-06-27 1998-11-10 Logon Data Corporation System to control content and prohibit certain interactive attempts by a person using a personal computer
US5761686A (en) * 1996-06-27 1998-06-02 Xerox Corporation Embedding encoded information in an iconic version of a text image
US5954028A (en) * 1996-08-08 1999-09-21 Honda Giken Kogyo Kabushiki Kaisha Air-fuel ratio control system for internal combustion engines
US6052780A (en) * 1996-09-12 2000-04-18 Open Security Solutions, Llc Computer system and process for accessing an encrypted and self-decrypting digital information product while restricting access to decrypted digital information
US5805724A (en) * 1996-09-24 1998-09-08 Xerox Corporation Method and system for hybrid error diffusion processing of image information using dynamic screens based on brightness/darkness settings
US5944791A (en) * 1996-10-04 1999-08-31 Contigo Software Llc Collaborative web browser
US6088355A (en) * 1996-10-11 2000-07-11 C-Cube Microsystems, Inc. Processing system with pointer-based ATM segmentation and reassembly
US5983351A (en) * 1996-10-16 1999-11-09 Intellectual Protocols, L.L.C. Web site copyright registration system and method
US6154844A (en) 1996-11-08 2000-11-28 Finjan Software, Ltd. System and method for attaching a downloadable security profile to a downloadable
WO1998025373A2 (en) * 1996-11-21 1998-06-11 Intellectual Protocols, L.L.C. Web site copy protection system and method
US5801679A (en) 1996-11-26 1998-09-01 Novell, Inc. Method and system for determining a cursor location with respect to a plurality of character locations
JPH10161823A (en) * 1996-11-27 1998-06-19 Nec Corp Print system
US5968119A (en) 1996-12-09 1999-10-19 Wall Data Incorporated Method of accessing information of an SNA host computer from a client computer using a specific terminal emulation
JP3887856B2 (en) * 1996-12-13 2007-02-28 株式会社日立製作所 Terminal device
US5872915A (en) 1996-12-23 1999-02-16 International Business Machines Corporation Computer apparatus and method for providing security checking for software applications accessed via the World-Wide Web
US6466328B1 (en) * 1997-01-03 2002-10-15 Ncr Corporation System and method for remote printing in a distributed network environment
US5875249A (en) * 1997-01-08 1999-02-23 International Business Machines Corporation Invisible image watermark for image verification
US5875296A (en) * 1997-01-28 1999-02-23 International Business Machines Corporation Distributed file system web server user authentication with cookies
US5920848A (en) 1997-02-12 1999-07-06 Citibank, N.A. Method and system for using intelligent agents for financial transactions, services, accounting, and advice
JPH10307846A (en) * 1997-03-03 1998-11-17 Toshiba Corp Document information management system, document information management method and document retrieval method
IL121071A0 (en) * 1997-03-27 1997-11-20 El Mar Software Ltd Automatic conversion server
IL129633A (en) 1997-03-27 2004-09-27 Netmask El Mar Internet Techno Automatic conversion system
US6766454B1 (en) * 1997-04-08 2004-07-20 Visto Corporation System and method for using an authentication applet to identify and authenticate a user in a computer network
US6014702A (en) 1997-06-04 2000-01-11 International Business Machines Corporation Host information access via distributed programmed objects
US6209036B1 (en) * 1997-06-06 2001-03-27 International Business Machines Corporation Management of and access to information and other material via the world wide web in an LDAP environment
US5983227A (en) 1997-06-12 1999-11-09 Yahoo, Inc. Dynamic page generator
US6038031A (en) * 1997-07-28 2000-03-14 3Dlabs, Ltd 3D graphics object copying with reduced edge artifacts
US6032150A (en) 1997-08-25 2000-02-29 Planetweb, Inc. Secure graphical objects in web documents with a program applet placed to present further information upon selected conditions
JP2001517822A (en) 1997-09-19 2001-10-09 パク,ヒョ,ジョーン Software usage right management system using independent software registration server
US6009410A (en) 1997-10-16 1999-12-28 At&T Corporation Method and system for presenting customized advertising to a user on the world wide web
US5870544A (en) 1997-10-20 1999-02-09 International Business Machines Corporation Method and apparatus for creating a secure connection between a java applet and a web server
US6223172B1 (en) * 1997-10-31 2001-04-24 Nortel Networks Limited Address routing using address-sensitive mask decimation scheme
JP3000978B2 (en) 1997-11-05 2000-01-17 日本電気株式会社 Page display system, page display method, and recording medium
US5999941A (en) 1997-11-25 1999-12-07 Micron Electronics, Inc. Database access using active server pages
US6587127B1 (en) * 1997-11-25 2003-07-01 Motorola, Inc. Content player method and server with user profile
US6121970A (en) * 1997-11-26 2000-09-19 Mgi Software Corporation Method and system for HTML-driven interactive image client
US6385728B1 (en) * 1997-11-26 2002-05-07 International Business Machines Corporation System, method, and program for providing will-call certificates for guaranteeing authorization for a printer to retrieve a file directly from a file server upon request from a client in a network computer system environment
US6480959B1 (en) * 1997-12-05 2002-11-12 Jamama, Llc Software system and associated methods for controlling the use of computer programs
US5991399A (en) 1997-12-18 1999-11-23 Intel Corporation Method for securely distributing a conditional use private key to a trusted entity on a remote system
US6324685B1 (en) 1998-03-18 2001-11-27 Becomm Corporation Applet server that provides applets in various forms
US6557103B1 (en) * 1998-04-13 2003-04-29 The United States Of America As Represented By The Secretary Of The Army Spread spectrum image steganography
US6339826B2 (en) * 1998-05-05 2002-01-15 International Business Machines Corp. Client-server system for maintaining a user desktop consistent with server application user access permissions
JP3817364B2 (en) * 1998-05-07 2006-09-06 パイオニア株式会社 Image recording signal generating apparatus, information recording apparatus, and recording medium
US6282653B1 (en) * 1998-05-15 2001-08-28 International Business Machines Corporation Royalty collection method and system for use of copyrighted digital materials on the internet
JP3835655B2 (en) * 1998-06-09 2006-10-18 ソニー株式会社 Information signal reproducing apparatus, information signal processing apparatus, information signal reproducing method and information signal output method
IL124895A0 (en) 1998-06-14 1999-01-26 Csafe Ltd Methods and apparatus for preventing reuse of text images and software transmitted via networks
US6298446B1 (en) * 1998-06-14 2001-10-02 Alchemedia Ltd. Method and system for copyright protection of digital images transmitted over networks
US6661904B1 (en) * 1998-07-15 2003-12-09 Personalogo Method and system for automated electronic conveyance of hidden data
US6205480B1 (en) 1998-08-19 2001-03-20 Computer Associates Think, Inc. System and method for web server user authentication
US6275599B1 (en) * 1998-08-28 2001-08-14 International Business Machines Corporation Compressed image authentication and verification
US6343274B1 (en) 1998-09-11 2002-01-29 Hewlett-Packard Apparatus and method for merchant-to-consumer advertisement communication system
US6324569B1 (en) 1998-09-23 2001-11-27 John W. L. Ogilvie Self-removing email verified or designated as such by a message distributor for the convenience of a recipient
KR100484209B1 (en) * 1998-09-24 2005-09-30 삼성전자주식회사 Digital Content Encryption / Decryption Device and Method
US6119108A (en) * 1998-10-01 2000-09-12 Aires Systems Corporation Secure electronic publishing system
US6519700B1 (en) 1998-10-23 2003-02-11 Contentguard Holdings, Inc. Self-protecting documents
US6470450B1 (en) 1998-12-23 2002-10-22 Entrust Technologies Limited Method and apparatus for controlling application access to limited access based data
US6694434B1 (en) * 1998-12-23 2004-02-17 Entrust Technologies Limited Method and apparatus for controlling program execution and program distribution
US6535896B2 (en) * 1999-01-29 2003-03-18 International Business Machines Corporation Systems, methods and computer program products for tailoring web page content in hypertext markup language format for display within pervasive computing devices using extensible markup language tools
US7130831B2 (en) * 1999-02-08 2006-10-31 Copyright Clearance Center, Inc. Limited-use browser and security system
US20020026321A1 (en) * 1999-02-26 2002-02-28 Sadeg M. Faris Internet-based system and method for fairly and securely enabling timed-constrained competition using globally time-sychronized client subsystems and information servers having microsecond client-event resolution
FI990461A0 (en) * 1999-03-03 1999-03-03 Nokia Mobile Phones Ltd Procedure for loading programs from a server to a subscriber terminal
US20020188570A1 (en) 1999-03-24 2002-12-12 Donna Coningsby Partial protection of content
US6668246B1 (en) * 1999-03-24 2003-12-23 Intel Corporation Multimedia data delivery and playback system with multi-level content and privacy protection
US6665489B2 (en) * 1999-04-21 2003-12-16 Research Investment Network, Inc. System, method and article of manufacturing for authorizing the use of electronic content utilizing a laser-centric medium and a network server
US6615191B1 (en) * 1999-05-11 2003-09-02 E. Addison Seeley Software licensing and distribution systems and methods employing biometric sample authentication
US6339761B1 (en) * 1999-05-13 2002-01-15 Hugh V. Cottingham Internet service provider advertising system
CA2388385A1 (en) 1999-05-15 2000-11-23 John W.L. Ogilvie Automatic broker tools and techniques
US6931532B1 (en) * 1999-10-21 2005-08-16 International Business Machines Corporation Selective data encryption using style sheet processing
US6785015B1 (en) * 1999-11-12 2004-08-31 Hewlett-Packard Development Company, L.P. System and method for monitoring a computer system process or peripheral
US6664969B1 (en) * 1999-11-12 2003-12-16 Hewlett-Packard Development Company, L.P. Operating system independent method and apparatus for graphical remote access
US6792113B1 (en) * 1999-12-20 2004-09-14 Microsoft Corporation Adaptable security mechanism for preventing unauthorized access of digital data
US6460140B1 (en) * 1999-12-30 2002-10-01 Starnet Communications Corporation System for controlling the use of licensed software
WO2001050349A1 (en) * 1999-12-30 2001-07-12 Rutgers, The State University Of New Jersey Electronic document customization and transformation utilizing user feedback
GB0007698D0 (en) * 2000-03-31 2000-05-17 Discreet Logic Inc Editing video data
US7213254B2 (en) * 2000-04-07 2007-05-01 Koplar Interactive Systems International Llc Universal methods and device for hand-held promotional opportunities
US6438575B1 (en) * 2000-06-07 2002-08-20 Clickmarks, Inc. System, method, and article of manufacture for wireless enablement of the world wide web using a wireless gateway
US6611845B1 (en) * 2000-07-21 2003-08-26 International Business Machines Corporation Method and system for storing and managing sets of objects
US6978376B2 (en) * 2000-12-15 2005-12-20 Authentica, Inc. Information security architecture for encrypting documents for remote access while maintaining access control
US7180621B2 (en) * 2002-02-13 2007-02-20 Hewlett-Packard Development Company, L.P. Method and apparatus for authorizing printing

Cited By (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030037253A1 (en) * 2001-04-27 2003-02-20 Arthur Blank Digital rights management system
US20060155732A1 (en) * 2002-07-09 2006-07-13 Seiko Epson Corporation Electronic file operation method and layout edition device
US11893089B1 (en) 2004-07-27 2024-02-06 Auctane, Inc. Systems and methods for protecting content when using a general purpose user interface application
US7882097B1 (en) * 2004-09-30 2011-02-01 Ogilvie John W Search tools and techniques
US8698821B2 (en) * 2005-03-31 2014-04-15 Canon Kabushiki Kaisha Image processing apparatus, image processing method, computer program, and storage medium
US20110060774A1 (en) * 2005-03-31 2011-03-10 Canon Kabushiki Kaisha Image processing apparatus, image processing method, computer program, and storage medium
EP1739952A1 (en) * 2005-07-01 2007-01-03 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. URL watermark as filter for on-line directories
US9306886B2 (en) 2005-07-28 2016-04-05 Vaporstream, Inc. Electronic message recipient handling system and method with separated display of message content and header information
US9313157B2 (en) 2005-07-28 2016-04-12 Vaporstream, Inc. Electronic message recipient handling system and method with separation of message content and header information
US20140201295A1 (en) * 2005-07-28 2014-07-17 Vaporstream Incorporated Electronic Message Content and Header Restrictive Send Device Handling System and Method
US8886739B2 (en) * 2005-07-28 2014-11-11 Vaporstream, Inc. Electronic message content and header restrictive send device handling system and method
US8935351B2 (en) * 2005-07-28 2015-01-13 Vaporstream, Inc. Electronic message content and header restrictive recipient handling system and method
US12074841B2 (en) 2005-07-28 2024-08-27 Snap Inc. Sender-correlated reply ID generation in electronic messaging system
US9282081B2 (en) * 2005-07-28 2016-03-08 Vaporstream Incorporated Reduced traceability electronic message system and method
US20120203849A1 (en) * 2005-07-28 2012-08-09 Vaporstream Incorporated Reduced Traceability Electronic Message System and Method
US9306885B2 (en) 2005-07-28 2016-04-05 Vaporstream, Inc. Electronic message send device handling system and method with media component and header information separation
US9313156B2 (en) 2005-07-28 2016-04-12 Vaporstream, Inc. Electronic message send device handling system and method with separated display and transmission of message content and header information
US9313155B2 (en) 2005-07-28 2016-04-12 Vaporstream, Inc. Electronic message send device handling system and method with separation of message content and header information
US20140181689A1 (en) * 2005-07-28 2014-06-26 Vaporstream Incorporated Electronic Message Content and Header Restrictive Recipient Handling System and Method
US9338111B2 (en) 2005-07-28 2016-05-10 Vaporstream, Inc. Electronic message recipient handling system and method with media component and header information separation
US9413711B2 (en) 2005-07-28 2016-08-09 Vaporstream, Inc. Electronic message handling system and method between sending and recipient devices with separation of display of media component and header information
US11652775B2 (en) 2005-07-28 2023-05-16 Snap Inc. Reply ID generator for electronic messaging system
US10819672B2 (en) 2005-07-28 2020-10-27 Vaporstream, Inc. Electronic messaging system for mobile devices with reduced traceability of electronic messages
US10412039B2 (en) 2005-07-28 2019-09-10 Vaporstream, Inc. Electronic messaging system for mobile devices with reduced traceability of electronic messages
US10339280B1 (en) 2008-04-15 2019-07-02 Stamps.Com Inc. Systems and methods for protecting content when using a general purpose user interface application
US10885153B1 (en) 2008-04-15 2021-01-05 Stamps.Com Inc. Systems and methods for protecting content when using a general purpose user interface application
US9728107B1 (en) * 2008-04-15 2017-08-08 Stamps.Com Inc. Systems and methods for protecting content when using a general purpose user interface application
US20090288254A1 (en) * 2008-05-23 2009-11-26 Stryker Corporation Patient support brake system
US8965809B1 (en) * 2009-05-21 2015-02-24 Stamps.Com Inc. Restricted printing of postage with layout constraints in a browser

Also Published As

Publication number Publication date
US7664956B2 (en) 2010-02-16
US7657759B2 (en) 2010-02-02
US20010000265A1 (en) 2001-04-12
US20050240759A1 (en) 2005-10-27
US7076469B2 (en) 2006-07-11
US6353892B2 (en) 2002-03-05
USRE44209E1 (en) 2013-05-07
US6993662B2 (en) 2006-01-31
US7155743B2 (en) 2006-12-26
US20030028809A1 (en) 2003-02-06
US20020078343A1 (en) 2002-06-20
US7281272B1 (en) 2007-10-09
US20010000541A1 (en) 2001-04-26
US7155744B2 (en) 2006-12-26
US6298446B1 (en) 2001-10-02
US6922693B1 (en) 2005-07-26
US20030009672A1 (en) 2003-01-09

Similar Documents

Publication Publication Date Title
US7076469B2 (en) Copyright protection of digital images transmitted over networks
KR100920320B1 (en) Watermark encoder and decoder enabled software
JP4512153B2 (en) System for distributing content securely
US6704797B1 (en) Method and system for distributing image-based content on the internet
US7743259B2 (en) System and method for digital rights management using a standard rendering engine
US7237125B2 (en) Method and apparatus for automatically deploying security components in a content distribution system
US8738771B2 (en) Secure graphical objects in web documents
US20030165253A1 (en) Systems and methods for adding watermarks using network-based imaging techniques
US20020032863A1 (en) System and method for performing digital watermarking in realtime using encrypted algorithm
EP1001330A2 (en) Method and system for copyright protection of digital images transmitted over networks
JP2001154984A (en) Method and system for protecting copyright of digital image transmitted through network
EP1357457A2 (en) System and method for digital rights management using a standard rendering engine
US8032755B2 (en) Request linked digital watermarking

Legal Events

Date Code Title Description
AS Assignment

Owner name: ALCHEMEDIA LTD., ISRAEL

Free format text: CHANGE OF NAME;ASSIGNOR:CSAFE LTD.;REEL/FRAME:012402/0077

Effective date: 20000117

STCF Information on status: patent grant

Free format text: PATENTED CASE

CC Certificate of correction
AS Assignment

Owner name: FINJAN SOFTWARE, LTD., ISRAEL

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:ALCHEMEDIA LTD.;REEL/FRAME:014337/0783

Effective date: 20030515

FEPP Fee payment procedure

Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

FPAY Fee payment

Year of fee payment: 4

FPAY Fee payment

Year of fee payment: 8

AS Assignment

Owner name: FINJAN, INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:FINJAN SOFTWARE, LTD.;REEL/FRAME:023556/0853

Effective date: 20091102

Owner name: FINJAN, INC.,CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:FINJAN SOFTWARE, LTD.;REEL/FRAME:023556/0853

Effective date: 20091102

FEPP Fee payment procedure

Free format text: PAYER NUMBER DE-ASSIGNED (ORIGINAL EVENT CODE: RMPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

AS Assignment

Owner name: ALEARO PROPERTIES LIMITED LIABILITY COMPANY, DELAW

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:FI DELAWARE INC.;REEL/FRAME:027010/0878

Effective date: 20110815

Owner name: FI DELAWARE INC., CALIFORNIA

Free format text: CHANGE OF NAME;ASSIGNOR:FINJAN, INC.;REEL/FRAME:027012/0458

Effective date: 20101208

Owner name: CSAFE LTD., ISRAEL

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:SCHREIBER, DANIEL;GOODMAN, ANDREW;REEL/FRAME:027011/0904

Effective date: 19991130

AS Assignment

Owner name: CSAFE LTD., ISRAEL

Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE SPELLING OF NAME OF ASSIGNOR--ANDREW GOLDMAN PREVIOUSLY RECORDED ON REEL 027011 FRAME 0904. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT;ASSIGNORS:SCHREIBER, DANIEL;GOLDMAN, ANDREW;REEL/FRAME:027269/0929

Effective date: 19991130

FPAY Fee payment

Year of fee payment: 12

CC Certificate of correction
AS Assignment

Owner name: GULA CONSULTING LIMITED LIABILITY COMPANY, DELAWAR

Free format text: MERGER;ASSIGNOR:ALEARO PROPERTIES LIMITED LIABILITY COMPANY;REEL/FRAME:037539/0253

Effective date: 20150826

AS Assignment

Owner name: INTELLECTUAL VENTURES ASSETS 150 LLC, DELAWARE

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:GULA CONSULTING LIMITED LIABILITY COMPANY;REEL/FRAME:050924/0979

Effective date: 20191031

AS Assignment

Owner name: KIOBA PROCESSING, LLC, GEORGIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:INTELLECTUAL VENTURES ASSETS 150 LLC;REEL/FRAME:051464/0203

Effective date: 20191115