The present invention relates to the protection of alphanumeric security codes entered by a user on the touch screen keypad of the user's computer display, and particularly the user's handheld devices, e.g. “Iphones” or “Ipads.”
With the rapidly increasing availability of data storage space and the increasing speed of data processing transactions, all of a user's data storage distribution is becoming ever more widespread. Now with Cloud Computing, the storage of a user's data may be almost infinitely distributed, only to be brought together as required, at the user's fingertips on the user's display screen. Of course, such a reconstitution of widely stored data is responsive to the user's entry of an alphanumeric security code through the user's alphanumeric keypad array displayed on the user's handheld touch screen display.
Needless to say, with such a distribution of user data there will be widespread worldwide networks of computer data thieves. These vary from hackers and phishers who try to steal data from the user at data entry levels to masterminds who work to intrude into major governmental, banking and industrial databases. Because of the worldwide distribution of these data thieves, restitution is difficult even if the crimes are solved because these criminal operatives frequently operate outside of the jurisdictions where the data and the resulting capital and personal data losses occur.
Of course, there are extensive and comprehensive worldwide security protective systems for the security of the banking, governmental, industrial, military and educational institutions. However, very often simplistic hacking at the user level easily obtains a user's security data. For example, it is known that hackers use publicly available information to decipher alphanumeric information memorable to the user that may find its way into the user's security codes. Thus, a user has to be alert to even the user's own apparently unimportant repetitive habits to avoid the potential hacking data thieves who may be lurking.
The present invention has recognized such repetitive habits of an unsuspecting user that can readily provide an intrusive hacker with information needed to completely access the user's data. As a result, the invention has provided a solution to oversights of a user and provides a relatively foolproof implementation that will protect even the most unsophisticated users from theft of their security codes.
The present invention is directed toward the elimination of discernible patterns of surface marks on user display screens that will coincide with the position patterns in the keypad array wherein repeated entry of the user's alphanumeric security codes has caused wear or smudge marks that will expose the security code to an intruder.
Accordingly, the present invention provides an implementation for preventing discernible patterns of surface marks resulting from repetitive entry of security codes to computer device touch screen alphanumeric keypads in a displayed keypad array of keys, each representing an alphanumeric character for the entry of alphanumeric data on a device touch screen. There is predetermined the number of security code entries after which the positions of the representative keys in the keypad array should be reconfigured. This predetermined number should be the number of security code entries estimated to produce a pattern of distinguishable display surface marks coincident with a user's repetitive entry alphanumeric character security code. The number of security code entries is counted. Then when the count of this predetermined number of security code entries has been reached, the representative keys in said displayed keypad array are reconfigured.
The predetermined number of entries may be a single entry, i.e. every time a user “signs in” through the key security entry, the keyboard array is reconfigured so that even though the user is entering the same sequence of alphanumeric character's, these characters will be in different positions on the display screen. Accordingly, marks or smudges in the same character positions are avoided. However, even if there are smudges left, they would be all over the screen and their entry pattern not discernible.
In reconfiguration, the keys in a keypad array need not be moved. The positions of the keys in the array may remain unchanged but the alphanumeric characters represented by said keys are changed.
In the reconfiguration, a keypad array may be changed so that the keys in the array are repositioned on the display screen. Also, the keypad array may be repetitively reconfigured between regular and irregular array patterns. In accordance with another aspect of the invention, each key in said displayed array has a different color. There is a displayed legend wherein each key color represents an alphanumeric character, and in the reconfiguring, the representative keys in said displayed keypad array are reconfigured by changing the legend wherein the colors representing said alphanumeric characters are changed.
While the description here and above, and subsequent descriptions of the embodiment of the invention, presents examples of surface marks resulting from the entry of security codes, the invention is equally applicable from preventing the theft of security codes by directly stealing a view of the user entering the code.
It should be understood that wherever references are made to colors of entry keys provision may also be provided for individuals who are “color blind.” In such circumstances, the colors may be replaced by different graphic patterns for keys that will be used in place of colors.
The present invention will be better understood and it's numerous objectives and advantages will become more apparent to those skilled in the art by reference to the following drawings, in conjunction with the accompanying specification, in which:
Referring to
When the count of security code entries reaches the predetermined number, the keypad array is reconfigured. This reconfiguration may be as simple as that shown in
Another aspect of the present invention is shown in
Referring now to
Now with respect to
Provision is made, step 53, for then counting the number of security code entries made in step 51. Provision is made, responsive to the count in step 53, for reconfiguring the representative keys in the array upon the count reaching the predetermined number, step 54. In accordance with one way of reconfiguring, step 55, provision is made by not changing the positions of the keys but rather changing the alphanumeric characters. Provision may be made for reconfiguring iterations involving changing back and forth between, by going from regular to irregular keypad array patterns, step 56.
In accordance with another aspect of the invention, provision is made for reconfiguring by displaying a legend in which each color represents an alphanumeric character, arid then reconfiguring is done by changing the colors representing the respective alphanumeric characters while the locations on the keypad remain unchanged, step 57.
A simple illustrative example of a run of the process set up in
As will be appreciated by one skilled in the art, aspects of the present invention may be embodied as a system, method or computer program product. Accordingly, aspects of the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment, including firmware, resident software, micro-code, etc.; or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “circuit”, “module” or “system.” Furthermore, aspects of the present invention may take the form of a computer program product embodied in one or more computer readable mediums having computer readable program code embodied thereon.
Any combination of one or more computer readable medium(s) may be utilized. The computer readable medium may be a computer readable signal medium or a computer readable storage medium. A computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared or semiconductor system, apparatus or device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer readable storage medium would include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a RAM, a ROM, an Erasable Programmable Read Only Memory (“EPROM” or Flash memory), an optical fiber, a portable compact disc read only memory (“CD-ROM”), an optical storage device, a magnetic storage device or any suitable combination of the foregoing. In the context of this document, a computer readable storage medium may be any tangible medium that can contain or store a program for use by or in connection with an instruction execution system, apparatus or device.
A computer readable medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including, but not limited to, electromagnetic, optical or any suitable combination thereof. A computer readable signal medium may be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate or transport a program for use by or in connection with an instruction execution system, apparatus or device.
Program code embodied on a computer readable medium may be transmitted using any appropriate medium, including, but not limited to, wireless, wire line, optical fiber cable, RF, etc., or any suitable combination the foregoing.
Computer program code for carrying out operations for aspects of the present invention may be written in any combination of one or more programming languages, including an object oriented programming language, such as Java, Smalltalk, C++ and the like, and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the later scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (“LAN”) or a wide area network (“WAN”), or the connection may be made to an external computer (for example, through the Internet, using an Internet Service Provider).
Aspects of the present invention are described below with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer or other programmable data processing apparatus to produce a machine, such that instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
These computer program instructions may also be stored in a computer readable medium that can direct a computer, other programmable data processing apparatus or other devices to function in a particular manner, such that the instructions stored in the computer readable medium produce an article of manufacture including instructions which implement the function/act specified in the flowchart and/or block diagram block or blocks.
The computer program instructions may also be loaded onto a computer, other programmable data processing apparatus or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
The flowchart and block diagram in the Figures illustrate the architecture, functionality and operations of possible implementations of systems, methods and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustrations can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
Although certain preferred embodiments have been shown and described, it will be understood that many changes and modifications may be made therein without departing from the scope and intent of the appended claims.