Abstract:
A system is provided to monitor a user&#39;s interaction with a computer. The system may comprise a reference string generator to generate a random reference string, an image generator to generate an image including the random reference string, a communications module to communicate the image to a client computer for display to a user and to receive user input data and a comparator to compare the random reference string and the user input data to detect human interaction with the computer. The image including the random reference string may be generated such that each character in the random reference string is off-centered.

Description:
CROSS-REFERENCE TO RELATED APPLICATION 
   This application is a continuation of U.S. patent application Ser. No. 10/186,637 filed Jun. 28, 2002, which is herein incorporated by reference. 

   FIELD OF THE INVENTION 
   The invention relates to monitoring user interaction with a computer. 
   BACKGROUND OF THE INVENTION 
   A problem that often arises in an Internet environment is that of unauthorized or improper access to web sites by robots, commonly referred to as “bots”. Bots are programs that are run on computers that automatically access a web site without the need for user interaction. Although some bots may access a web site for proper purposes, e.g., search engine spiders that are authorized to scrape information from web pages, other bots perform improper functions. For example, certain bots access web sites and register multiple fictitious users for improper purposes, access web site to mine confidential user information, guess user passwords, list items without authorization on sale or auction web sites, and so on. It will be appreciated that, due to the high processing power of computers running bots, a large number of unauthorized accesses may take place in an extremely short period of time. However, although unauthorized access by a user or human may still occur, it is a substantially slower process. 

   
     BRIEF DESCRIPTION OF THE DRAWINGS 
     The present invention is illustrated by way of example, and not limitation, in the figures of the accompanying drawings, in which like references indicate similar features. 
     In the drawings, 
       FIG. 1  shows a schematic block diagram of an exemplary system, in accordance with one aspect of the invention, for monitoring interaction between a user and a computer; 
       FIG. 2  shows a schematic flow diagram of an exemplary method, in accordance with another aspect of the invention, of generating reference data including a random reference string; 
       FIG. 3  shows a schematic flow diagram of an exemplary method, also in accordance with an aspect of the invention, of generating an image, readable by the user, including the random reference string; 
       FIG. 4  shows a more detailed schematic flow diagram of the method of  FIG. 3  showing inclusion of the random reference string in the image; 
       FIG. 5  shows a schematic flow diagram of an exemplary method, also in accordance with an aspect of the invention, of monitoring user interaction with the computer; 
       FIG. 6  shows a schematic representation of an exemplary user interface presented to the user on the computer; 
       FIG. 7  shows an exemplary user interface for a visually impaired user; 
       FIG. 8  shows an exemplary table for monitoring repetitive use of a token; and 
       FIG. 9  shows schematic hardware architecture of an exemplary computer. 
   

   DETAILED DESCRIPTION 
   A method of, and system for, monitoring user interaction with a computer are described. In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will be evident, however, to one skilled in the art that the present invention may be practiced without these specific details. 
   Referring in particular to  FIG. 1 , reference numeral  10  generally indicates a system, in accordance with an aspect of the invention, for monitoring user interaction with a computer  12 . In one embodiment of the invention, the system  10  is used in an Internet environment where a user accesses a web site of an Internet service facility. Accordingly, the invention is described with reference to a user registration process via the Internet  11 . However, it should be appreciated that the invention may be applied in any computer environment in which user interaction with the computer is to be monitored. 
   The computer  12  includes a web browser application  14 , which generates a user interface such as an exemplary registration form  16 . The registration form  16  includes a display zone  18  for displaying an image  20  including a random reference number and, in order to effect registration, a user is required to read the random reference number from the image  20  and enter it into a user data input field  22 . In order to complete registration, the user activates a “GO” button  24  which then communicates the registration information to a registration server  26 . As described in more detail below, the image  20  is distorted and modified to inhibit the acquisition of the reference number by an automated process such as a software robot using optical character recognition (OCR). However, the image  20  is sufficiently clear so that the user may read the reference number for entry into the input data field  22 . Thus, in order to effect registration, human interaction with the computer  12  is required. 
   In one embodiment, the reference number is generated by an Internet application server  28 , which passes the random number in reference data, e.g., in the form of a token, via the Internet  11  to the browser application  14  as shown by arrow  30 . The browser application  14  then passes the token to an image server  32 , as shown by arrow  34 , during a HyperText Markup Language (HTML) image call. The image server  32  then decrypts the token and includes the reference number in the image  20  in a random fashion whereafter it is communicated, as shown by line  36 , to the browser application  14  for inclusion in the display zone  18 . After the user has entered the number into the user data input field  22 , and completed other details in the registration form, e.g. completed details in the fields  38 ,  40 , the token and the user input data in the field  22  are then communicated to the registration server  26 . The registration server  26  then decrypts the token to obtain the reference number, and then compares the number entered by the user with the reference number and, if the numbers match, the registration server  26  may authenticate the user. However, in addition to comparing the two numbers, the registration server  26  also performs a checksum validation and time stamp analysis of the token, as described in more detail below. 
   Referring in particular to  FIG. 2 , reference numeral  50  generally indicates an exemplary method, in accordance with an aspect of the invention, for generating random reference data including a reference string in the exemplary form of a random reference number, for inclusion in the image  20 . In one embodiment, the method  50  is carried out in the application server  28 . It is to be appreciated that, although the random reference string is in the form of a random reference number, in other embodiments, the random reference string may be numeric, alphanumeric characters and/or any graphical data. However, when the random reference string is in the form of a random number with numerical digits, the system  10  may be language independent. 
   In an exemplary registration process, the method  50  is initiated when the web browser application  14  requests a registration form from the application server  28  (see block  52 ). Thereafter, as shown at block  54 , the particular token size, to convey the reference data, in the system  10  is determined and is time stamped in milliseconds (see block  56 ). The random reference number is generated as shown at block  58  and further randomized as shown at block  60 . Thereafter, the reference number is limited in size (see block  62 ) to conform to the token size selected at block  54 . A checksum of the time stamp and the reference number is then performed (see block  64 ) to produce reference data including time data, the reference number, and the checksum (see block  66 ) which is then encrypted, e.g. using BLOWFISH algorithm, as shown in block  68 . The encrypted reference data is then Base64 encoded (see block  70 ) to produce an encrypted and encoded token (see block  72 ) which is then included in an HTML web page (see block  74 ) and sent to the user (see block  76  in  FIG. 2  and arrow  30  in  FIG. 1 ). 
   An example of the token including the reference data generated by the application server  28  is as follows: 
   
     
       
             
             
             
           
         
             
                 
             
             
               (64 bit) 
               (32 bit) 
               (32 bit) 
             
             
               1595139460 
               069587 
               59991 
             
             
                 
             
           
           
             
               Time Stamp 
               Random # 
               Checksum 
             
             
                 
             
           
        
       
     
   
   The time stamp of the token (see block  56  in  FIG. 2 ) indicates when the token was generated and, as described in more detail below, is used by the server  26  to determine whether or not the token has been used before in a valid registration process. The time stamp is typically the time on the application server  28  when the token was created. 
   Although in the embodiment described above, the token is communicated to the browser application  14  in an HTML web page, it is to be appreciated that it may also, in other embodiments, be passed in a cookie, in other forms, URLs, or the like. Further, the encryption of the token is typically by means of a private key and the random number is generated on-the-fly or dynamically when a request for the registration form  16  is received from the browser application  14 . Accordingly, in one embodiment, no library of numbers or images is provided, and different reference data including the random number, is generated each time a request from the computer  12  is processed. 
   When the browser application  14  performs an image call to the image server  32  to retrieve the image  20  for display in the web page received from the application server  28 , it passes the encrypted and encoded token received from the application server  28 , to the image server  32  as shown by the arrow  34  in  FIG. 1 . Referring in particular to  FIG. 3  of the drawings, reference numeral  80  generally indicates an exemplary method, in accordance with a further aspect of the invention, for generating the image  20 . As shown at block  82 , the image server  32  receives the user call from the browser application  14  and identifies the token with the reference data and decodes the reference data using Base64 decoding (see block  84 ). Thereafter, the reference data is decrypted using BLOWFISH algorithm (see block  86 ) to obtain decoded and decrypted reference data including the time data, the reference number, and the checksum as shown at block  88 . The integrity of the reference data is then checked based on the checksum as shown at block  90  whereafter the image  20  is generated. 
   Referring in particular to  FIG. 4 , reference numeral  100  generally indicates an exemplary method, in accordance with an aspect of the invention, for generating the random image  20  including the random reference number. As shown at block  102 , an image modification random number is generated at the image server  32  and, based on the image modification random number, the image is then created and modified. For example, the image modification random number may be used randomly to select one of a plurality of different fonts (see block  104 ) for each digit in the reference number thereby to inhibit the acquisition of the number by a robot. In one embodiment, a plurality of image modification random numbers may be iteratively generated, as shown by block  106  and line  108 , and, in response to each random number, the position in the image  20  in which each digit is displayed may be randomly off-centered, various colors in which the digit is to be displayed may be randomly generated, a grid may be added to the image  20 , random distortion or noise may be added to the image  20 , and so on (see block  104 ). Once the image  20  has been sufficiently distorted, it is then converted to a jpeg format (see block  108 ) whereafter it is sent to the computer  12  as shown at block  110  in  FIG. 4  and by the arrow  36  in  FIG. 1 . 
   In one embodiment, it is to be appreciated that as the image modification number is a random number, the image not only includes the random reference number, but also includes the number within the image in a random fashion. In one embodiment, the image is distorted or modified so that a modicum of human interpretation is required to assimilate or identify the reference number. 
   As mentioned above, the browser application  14  displays the image  20  in the display zone  18  so that the user may read the numbers provided therein and manually enter the digits, into the entry form or field  22  via a keyboard of the computer  12 . Once the user has completed the entire registration form, the user typically activates the “GO” button  24  in response to which the browser application  14  communicates the user entered data, data entered into the form  16 , and the token including the reference data to the server  26  as shown by arrow  41  in  FIG. 1 . 
   Referring in particular to  FIG. 5 , reference numeral  120  generally indicates an exemplary method, in accordance with an aspect of the invention, for monitoring user interaction with the computer  12 . As shown at block  122 , in one embodiment the server  26  receives the token including the reference data, as part of the form  16 , as well as the user entered number. The reference data of the token is then Base64 decoded and decrypted using BLOWFISH algorithm to obtain the reference data including the random reference number (see block  124 ). As in the case of the server  32 , the integrity of the reference data is then checked using the checksum (see block  126 ) and, as shown at decision block  128 , if the integrity of the reference data of the token is rejected (see block  130 ), the user is then given a further opportunity of a limited number of opportunities (see block  132 ) to re-enter the number which is shown in the image  20 . 
   However, returning to decision block  128 , if the integrity of the reference data is accepted, then the time stamp of the token is checked to ensure that it is within a particular predetermined time range or window period as shown at block  131 . In particular, and depending upon the amount of detail a user is required to enter into the registration form  16 , a window period of about 3 to 20 minutes is allowed during which the reference data of the token is valid. If the time stamp indicates a time period of less than about 3 minutes or a time period of more than about 20 minutes, it is assumed that the registration attempt is either by a robot, or a replay attack in which multiple registration attempts using the same token are attempted. Accordingly, as shown at decision block  132 , if the time stamp of the token is not within the window period, the registration attempt is rejected (see block  130 ). 
   However, if the time stamp is within the acceptable window period, the user entered number is compared with the reference number to see if they match, as shown at block  134 . If the user entered number and the reference number do not match (see block  136 ) then the registration attempt is rejected (see block  130 ). In the embodiment depicted in the drawings in which the application server  28  performs the time stamping and the registration server  26  checks the time stamping, time on the servers  26 ,  28  is synchronized. 
   In certain circumstances, a user may inadvertently activate the “GO” button  24  more than once, for example, due to a slow refresh rate on a display screen. Thus, in certain embodiments, the reference data may be valid for more than one perceived registration attempt. In these circumstances, if the user entered number and the reference number match, a further check is conducted to determine if the same token has already been used as a basis for a registration validation (see block  138 ). In particular, the method  120  accesses a table  140  (see  FIG. 8 ) to obtain usage information on the token and its reference data. As shown at decision block  142  in  FIG. 5 , if the number of the token is not included in the table  140 , it is then inserted into the table  140  (see block  144 ) and its reference count is set at “1 ” (see column  148  in  FIG. 8 ). Thereafter, the registration process is authenticated or effected, as shown at block  146 . 
   However, returning to decision block  142 , if the reference number associated with the token is included in the table  140 , its reference count included in column  148  is incremented (see block  150 ) and the method  120  then checks to see if the count associated with the token exceeds a predetermined maximum number. For example, if the predetermined maximum number is three, then once the count in the table  140  has reached three, any registration attempt after that using the same reference number is rejected (see blocks  152  and  130  in  FIG. 5 ). If, however, the account is less than three, then the registration process may be completed (see block  146 ). 
   In certain embodiments, the table  140  includes an age column  154 , which is used to check whether or not the time stamp is within the predetermined window period (see block  131 ). A registration attempt may be selectively rejected dependent upon the count in column  148  and the age of the token as shown in column  154 . Comments  156  in  FIG. 8  show an exemplary application of the methodology described above in which the time window is 120 minutes and the maximum number of retry attempts using the same reference data is three. 
   An exemplary screen shot of an embodiment of a user interface served by the application server  28  to the browser application  14  is shown in  FIG. 6 . The user interface of  FIG. 6  is typically generated using HTML and, as mentioned above, although the invention is described with reference to a registration process, it may be used to monitor user interaction with the computer  12  in any other circumstances. As the image  20  is modified in such a fashion that it inhibits identification of the reference number by a robot or any other automated process, the resultant image  20  may be difficult for a visually impaired person to read. Accordingly, as shown in  FIG. 7 , an alternative sign up or registration procedure may be provided in which a toll free number  158  is provided for a visually impaired person to call and thereby to effect registration. 
   In the embodiments described above, the servers  26 ,  28 , and  32  are shown as separate servers, which may be located at different facilities. Thus, in one embodiment, the token communicated between the different servers may be the only interaction between the servers  26 ,  28 ,  32 . In this embodiment, a single centralized table  140  may be provided on the server  26  and it need not be replicated on the servers  28  and  32 . However, it will be appreciated that in other embodiments, any two or more of the servers may be combined into a single server. 
     FIG. 9  shows a diagrammatic representation of machine in the exemplary form of a computer system  200  within which a set of instructions, for causing the machine to perform any one of the methodologies discussed above, may be executed. The computer  12  and servers  26 ,  28 , and  32  may resemble the computer system  200 . 
   In alternative embodiments, the machine may comprise a network router, a network switch, a network bridge, Personal Digital Assistant (PDA), a cellular telephone, a web appliance, Set-Top Box (STB) or any machine capable of executing a sequence of instructions that specify actions to be taken by that machine. 
   The computer system  200  includes a processor  202 , a main memory  204  and a static memory  206 , which communicate with each other via a bus  208 . The computer system  200  may further include a video display unit  210  (e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)). The computer system  200  also includes an alphanumeric input device  212  (e.g., a keyboard), a cursor control device  214  (e.g., a mouse), a disk drive unit  216 , a signal generation device  218  (e.g., a speaker) and a network interface device  220 . 
   The disk drive unit  216  includes a machine-readable medium  222  on which is stored a set of instructions (software)  224  embodying any one, or all, of the methodologies described above. The software  224  is also shown to reside, completely or at least partially, within the main memory  204  and/or within the processor  202 . The software  224  may further be transmitted or received via the network interface device  220 . For the purposes of this specification, the term “machine-readable medium” shall be taken to include any medium that is capable of storing or encoding a sequence of instructions for execution by the machine and that cause the machine to perform any one of the methodologies of the present invention. The term “machine-readable medium” shall accordingly be taken to included, but not be limited to, solid-state memories, optical and magnetic disks, and carrier wave signals. While the machine-readable medium may reside on a single machine, it is also to be appreciated that it may reside on more than one machine in a distributed fashion. 
   Thus, a method and system for monitoring user interaction with a computer have been described. Although the present invention has been described with reference to specific exemplary embodiments, it will be evident that various modifications and changes may be made to these embodiments without departing from the broader spirit and scope of the invention. Accordingly, the specification and drawings are to be regarded in an illustrative rather than a restrictive sense.