Abstract:
Characters on an on-screen keypad are hidden once a cursor is placed over the keypad. This prevents any spyware from screen logging the key selection as the characters on the keypad are not visible at the moment a key is selected. The keys of the keypad are optionally color-coded to help a user remember the location of the key with the desired character once the cursor is over the keypad.

Description:
FIELD OF INVENTION 
       [0001]    This invention relates to the use of an on-screen keypad to enter sensitive data. 
       DESCRIPTION OF RELATED ART 
       [0002]      FIG. 1  illustrates a network environment  100  for a user on a client device  102  to access services provided by a server computer  104 , such as banking and brokerage services. Client device  102  may be a personal computer, a smart phone, and other similar devices. Client device  102  is coupled by a network  106  to server computer  104 . Network  106  may be a public network such as the Internet. 
         [0003]    Typically server computer  104  provides a webpage with an on-screen keypad  108  for the user to enter sensitive data such as a password, a PIN, a social security number, or a credit card number. While on-screen keypad  108  protects against key logging, it does not protect against screen logging where a spyware takes snapshots of the screen in response to the user&#39;s mouse clicks in order to capture the sensitive data being entered. Thus, what is needed a way to guard against screen logging of the on-screen keypad. 
       SUMMARY 
       [0004]    In accordance with embodiments of the invention, characters on an on-screen keypad are hidden once a cursor is placed over the keypad. This prevents any spyware from screen logging the key selection as the characters on the keypad are not visible at the moment a key is selected. 
         [0005]    In one embodiment of the invention, the keys of the keypad are color-coded to help a user to remember the location of the key with the desired character once the cursor is placed over the keypad. In one embodiment, the keypad is moved to a new location after a key is selected. In one embodiment, the keys are reassigned new characters and colors after the keypad is moved to the new location. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0006]      FIG. 1  illustrates a network environment for providing an on-screen keypad. 
           [0007]      FIGS. 2 and 3  illustrate a rectangular on-screen keypad in one embodiment of the invention. 
           [0008]      FIGS. 4 ,  5 , and  6  illustrate a circular on-screen keypad in one embodiment of the invention. 
           [0009]      FIG. 7  is a flowchart of a method for implementing the on-screen keypads in one embodiment of the invention. 
       
    
    
       [0010]    Use of the same reference numbers in different figures indicates similar or identical elements. 
       DETAILED DESCRIPTION 
       [0011]      FIGS. 2 and 3  graphically illustrate how an on-screen rectangular keypad  200  functions in one embodiment of the invention. Client device  102  displays keypad  200  on a screen. Keypad  200  has keys  202  (only one is labeled for clarity) arranged in a grid pattern. Keys  202  are assigned visible characters on top of the keys. Keys  202  are also assigned colors. The characters and the colors may be limited to specified sets of characters and colors. Although not expected, the same character or color may be assigned to multiple keys. The user controls a cursor  204  to select keys from keypad  200  to provide a sensitive data to server computer  104 . 
         [0012]    Referring to  FIG. 2 , client device  102  displays keys  200  with the assigned colors and the assigned characters anytime cursor  204  is outside of keypad  200 . Referring to  FIG. 3 , client device  102  displays keys  200  with the assigned colors but not the assigned characters anytime cursor  204  is placed over keypad  200 . The color coding of keys  202  helps the user to remember the location of the key with the desired character once cursor  204  is over keypad  200 . 
         [0013]      FIGS. 4 ,  5 , and  6  graphically illustrate how an on-screen circular keypad  400  functions in one embodiment of the invention. Like keypad  200 , client device  102  displays keypad  400  on a screen. Keypad  400  has keys  402  (only one is labeled for clarity) arranged around a circle between an inner ring  404  and an outer ring  406 . Keys  402  are assigned visible characters on top of the keys. Keys  402  are also assigned colors. The characters and the colors may be limited to specified sets of characters and colors. Although not expected, the same character or color may be assigned to multiple keys. Again the user controls cursor  204  to select keys from keypad  400  to provide a sensitive data to server computer  104 . 
         [0014]    Referring to  FIG. 4 , client device  102  displays keys  400  with the assigned colors and the assigned characters anytime cursor  204  is inside inner ring  404 . Referring to  FIG. 5 , client device  102  displays keys  400  with the assigned colors but not the assigned characters anytime cursor  204  is placed over keypad  400 . Again the color coding of keys  402  helps the user to remember the location of the key with the desired character once cursor  204  is over keypad  200 . Referring to  FIG. 6 , client device  102  continues to display keys  400  with the assigned colors but not the assigned characters anytime cursor  204  is outside of outer ring  406 . 
         [0015]      FIG. 7  is a flowchart of a method  700  for implementing on-screen keypad  200  or  400  in one embodiment of the invention. Method  700  is implemented as code embedded in a webpage (e.g., a web-based form) downloaded by client device  102  from server computer  104  to access a service provided through the server computer. In one embodiment, the code is written in PHP using GD library to create the images of keypad  200  or  400 . In client device  102 , the code is loaded into memory, executed by a processor, and displayed on a screen. 
         [0016]    In step  702 , client device  102  displays keypad  200  or  400  on the screen with keys  202  or  402  having initially assigned colors and characters. Step  702  is followed by step  704 . 
         [0017]    In step  704 , client device  102  monitors the location of cursor  204  on the screen. Step  704  is followed by step  706 . 
         [0018]    In step  706 , client device  102  determines if cursor  204  is over keypad  200  or  400 . If so, step  706  is followed by step  710 . Otherwise step  706  loops back to step  706  for keypad  200  or is optionally followed by step  708  for keypad  400 . 
         [0019]    In step  708 , client device  102  determines if cursor  204  is over an optional restricted area, such as outside of outer ring  406  ( FIG. 4 ). If so, step  708  is followed by step  710 . Otherwise step  708  loops back to step  706 . 
         [0020]    In step  710 , client device  102  displays keypad  200  or  400  with keys  202  or  402  having their assigned colors but not their assigned characters. This action thwarts screen logging as the characters on keypad  200  or  400  are not visible at the moment a key is selected. Step  710  is followed by step  712 . 
         [0021]    In step  712 , client device  102  determines if a key is selected using cursor  204 . If so, step  712  is followed by step  714 . Otherwise step  712  loops back to step  706 . 
         [0022]    In step  714 , client device  102  transmits the character of the selected key to server computer  104 . Step  714  is followed by step  716 . 
         [0023]    In step  716 , client device  102  determines if the last character of the sensitive data has been entered. If not, step  716  is followed by step  718 . Otherwise step  716  is followed by step  720 , which ends method  700 . Client device  102  may know that the last character of the sensitive data has been entered if it knows the total number of characters in the sensitive data. Alternatively, the user may select a “finished” button to indicate that all the characters of the sensitive data have been entered. 
         [0024]    In step  718 , client device  102 , client device  102  displays keypad  200  or  400  at a new location on the screen. In one embodiment, keys  202  or  402  are randomly reassigned colors different from before. In one embodiment, keys  202  or  402  are randomly reassigned characters different from before. In one embodiment, client device  102  switches keypad type from keypad  200  to  400 , or vice versa. These actions thwart key logging that attempts to determine the sensitive data from the pattern of mouse clicks. Step  718  loops back to step  706 . 
         [0025]    Various other adaptations and combinations of features of the embodiments disclosed are within the scope of the invention. Numerous embodiments are encompassed by the following claims.