US 20060031174 A1
The invention consists of a uniquely punched or printed key, often in the form of a card, that is used to identify and authenticate a user during online transactions. The computer randomly generates an array of characters, such as numbers, letters or symbols, which is displayed to the user, e.g., on a computer monitor, or printed, such as in matrix format. When held over the displayed matrix, the key allows the user to view only certain portions of the matrix, which portions together form the user's one-time-password, which is unique for each authentication transaction. The user is then authenticated by utilizing both the actual key and a password or personal identification number. This two-pronged requirement for authentication insures the high security level provided by the system.
1. A method of authenticating a user for a transaction, comprising:
providing to the user a key having a plurality of view areas, said key being uniquely associated with a predetermined code, and said plurality of view areas being arranged on said key in accordance with said predetermined code;
displaying to the user an array of characters;
accepting entry by the user of a password, said password comprising selected characters from said array, said selected characters having been revealed to the user by said plurality of view areas of said key when said key is placed over said displayed array;
correlating said entered password with said predetermined code; and
authenticating said transaction for the user if said entered password correlates to said predetermined code, and denying authentication of said transaction for the user if said entered password does not correlate to said predetermined code.
2. The method of
3. The method of
4. The method of
5. The method of
6. The method of
7. The method of
8. The method of
9. The method of
10. The method of
11. The method of
12. The method of
13. The method of
14. The method of
15. The method of
16. The method of
17. The method of
creating an array of said characters in a predetermined format;
determining for said array the identities of said characters within said plurality of specific positions;
storing in a memory the identities of said characters within said plurality of specific positions;
scrambling said array such that the characters within said plurality of specific positions whose identities have been stored may or may not be in the same positions in said array as they were prior to scrambling; and
displaying to the user the scrambled array.
18. The method of
deriving the specific positions of said selected characters in said scrambled array which have been revealed by said plurality of view areas and which have been entered by the user;
determining the identities of the characters in the unscrambled array at the same specific positions derived; and
matching the identities of the characters in the unscrambled array just determined with the identities of said characters stored in said memory.
19. The method of
said step of matching the identities further comprises determining whether the sequence of said characters in the unscrambled array just determined based upon the selected characters in said scrambled array entered by the user matches the sequence of said characters stored in said memory.
20. The method of
21. The method of
22. The method of
23. The method of
24. The method of
25. The method of
26. The method of
27. The method of
28. The method of
29. The method of
30. The method of
31. The method of
32. The method of
33. A method of authentication of a transaction by a user, comprising:
viewing a display of an array of characters;
placing a key over said array, said key being uniquely associated with a predetermined code and having a plurality of view areas that are arranged on said key in accordance with said predetermined code;
viewing through said plurality of view areas a plurality of selected characters from said array; and
providing a password, said password comprising said plurality of selected characters from said array;
such that authentication of the transaction is permitted for the user if the entered password correlates to said predetermined code, and authentication of the transaction is denied for the user if said entered password does not correlate to said predetermined code.
34. The method of
35. The method of
36. The method of
37. The method of
38. The method of
39. The method of
40. The method of
41. The method of
42. The method of
43. The method of
44. The method of
45. The method of
46. The method of
47. The method of
48. The method of
49. The method of
50. The method of
51. The method of
52. The method of
creating an array comprising a series of said characters in a predetermined format;
determining for said array the identities of said characters within said plurality of specific positions;
storing in a memory the identities of said characters within said plurality of specific positions;
scrambling said array such that the characters within said plurality of specific positions whose identities have been stored may or may not be in the same positions in said array as they were prior to scrambling.
53. The method of
deriving the specific positions of said plurality of selected characters in said scrambled array which were viewed through said plurality of view areas and were provided as a password;
determining the identities of the characters in the unscrambled array at the same specific positions derived; and
matching the identities of the characters in the unscrambled array just determined with the identities of said characters stored in said memory.
54. The method of
said step of providing a password comprises providing said plurality of selected characters from said array in a specific sequence, and
said step of matching the identities further comprises determining whether the sequence of said characters in the unscrambled array just determined based upon the selected characters in said password provided matches the sequence of said characters stored in said memory.
55. The method of
56. The method of
57. The method of
58. The method of
59. The method of
60. The method of
61. The method of
62. The method of
63. The method of
The present invention relates generally to authentication systems and more specifically, to a method of authentication that maximizes Internet security for both the corporate industry and the business to consumer market.
Authentication is the process of reliably verifying the identity of an individual who is attempting to access a network. Authentication determines a user's identity, as well as the information that the user is authorized to access, such as a financial database or a support knowledge base, etc.
Most people pass through authentication processes while barely noticing them. For example, an individual who calls a bank to inquire about his/her balance is asked by the bank representative over the phone to provide personal identification information, such as the last four digits of his/her social security number, phone number, birth date, address, etc. Upon hearing the correct response, the bank representative is able to authenticate the caller by assuming that, if the caller knows the answers to the questions, the caller must, in fact, be authorized to inquire about the account.
Another example occurs when a person shopping in a store chooses to pay by credit card. In order to complete the payment transaction, the customer is required to show the actual credit card as well as to provide a signature. The cashier then authenticates the transaction by assuming that, if the customer possesses the credit card and the customer's signature is identical to the signature on the card, then the customer must, in fact, be the authorized user of the card. Occasionally, the cashier may ask for additional identification, such as a driver's license.
A third example is when a user attempts to withdraw money from a bank Automated Teller Machine (ATM). The customer must first insert a bank card or credit card and then provide a PIN code in order to begin the transaction.
The problem of personal identification has become extremely crucial as use of the Internet has grown and become a standard part of our lives. Millions of people throughout the world can sit behind computer screens anywhere and perform billions of online transactions (Internet shopping, bill payments, online banking, accessing highly protected networks, and more), thus creating an enormous potential risk for fraud. Unfortunately, the Internet has also allowed anyone to hide his/her true identity and pretend to be someone else. As a result, identity theft has become one of the biggest problems society must cope with in the Internet era.
Many business to consumer based organizations, such as banks, credit card companies, governments, merchants, service providers and more, have opened their services to the general public via the Internet. However, these organizations need to protect their businesses from identity hijackers, hackers, defrauders, masqueraders and other criminals who find the Internet a comfortable place to commit their crimes. Organizations like these are losing tremendous amounts of money and time because of these threats, while spending huge amounts of money and time to develop and maintain authentication and security systems.
Furthermore, as the Internet has become increasingly accessible to individuals in various settings (at homes, in hotels or at airports), many corporations and enterprises have opened their protected networks to the Internet, to enable employees to access internal networks as needed. This increases productivity and efficiency, as people can now work from home or telecommute, and road warriors like salespeople and support staff can access the network at any time and from any place. However, security remains a chief concern.
From the perspective of network security, authentication is the most difficult challenge to overcome. There are three major ways through which authentication may take place on the Internet and networked systems:
The most common form of authentication is a user name and password, although it is the least secure form of authentication and consists of only one of the above-mentioned mechanisms (i.e., knowledge). It is considered good practice to combine at least two of the three major authentication systems, since each authentication system, by itself, may be easily compromised. For example, a user-owned device is susceptible to ordinary theft, while passwords or PIN's known to the user may be compromised by Internet or “over the shoulder” sniffing. As a result, most presently-used systems combine these approaches. For example, a Smart Card, which requires the user to enter a PIN, is a combination of an “ownership” device (i.e., the Smart Card itself) and a “knowledge” device (i.e., the PIN). Similarly, ATM's use a combination of two of the above-mentioned systems (i.e., a card and a PIN).
Many authentication tools and methods, both hardware and software based, have been developed in order to address the need for strong authentication in the B2C and other markets. Some of the currently available hardware tools are: credit and debit card readers (devices that connect to a computer and allow the user to “swipe” his/her card), smart cards and their reader devices, biometric devices such as fingerprint readers, retina scanners and voice recognition devices, and USB tokens. While these tools and methods provide reliable authentication, they have many disadvantages, among which are that the hardware tools all require a device or card reader to be physically connected to a computer, that their costs of production and maintenance are very high (˜$50-$100 per unit), that they are disposable, that they are impossible to deploy to the masses, and that they are difficult to install and cumbersome to use.
Software authentication tools, such as Digital Certificates, are also available. However, they too are costly, difficult to deploy and maintain, and are not at all portable.
Because of the stated difficulties, the above solutions have generally failed, and, due to lack of a better alternative, the B2C market has adopted the most common, yet the least secure, method of authentication—the Password method.
The corporate and enterprise industry is different from the business to consumer market. Unlike the business to consumer market, corporations and other enterprises have more control over their organizations and their users. A corporation consisting of tens, or even thousands, of users can dictate and deploy the authentication method to be used by its employees or contractors.
As a result, many hardware-based authentication tools and tokens have been developed for this market. Most of these applications are electronic token devices that maintain a synchronization algorithm with the authentication server. In most cases, the user must physically retain the hard token. Additional hardware tools and tokens, such as those mentioned above, and software-based applications are also used in the corporate market.
Like the B2C market, many enterprises have also adopted the most common, yet the least secure, password method because of the difficulties in deploying hardware token-based authentication systems, such as those shown in
A number of methods and devices have been proposed to overcome the difficulties discussed by using matrices or cards to help the user remember or derive his pass code or PIN. For example, in U.S. Pat. No. 5,246,375 to Goede, a transparent card aids a user to remember a PIN with a matrix of numbers disposed thereon. The user memorizes an (x,y) location on the matrix at which a recording sheet is registered, and when the recorded sheet member is disposed under the substrate at the user defined location, the personal identification number is shown.
U.S. Pat. No. 5,251,259 to Mosley discusses a system for varying a password or PIN, wherein a group of seven PIN's are assigned to each card holder for use in a specific sequence changing each calendar day. A 7×7 grid of randomly selected numbers and letters allows the user to access seven three-digit codes that must be used in the correct sequence, as determined by the number of uses per calendar day. If a PIN is used out of sequence, then access to the charge or credit card is denied.
U.S. Pat. No. 5,742,035 to Kohut discloses a device for aiding a user to recall a PIN in the form of a label containing a geometric matrix that is applied to the surface of a bank or credit card. A sequential pattern is chosen within the matrix, and the PIN is installed into the sequential pattern in a predetermined order, with the remaining spaces within the matrix being filled-in with other numbers or characters. By recognizing a single sequential pattern within the matrix, the authorized user can recall a PIN for any card bearing such a matrix label, without jeopardizing the intended security associated with PIN use.
While these devices help a user to remember a PIN or pass code, or to derive a preset PIN or pass code, they do not involve the physical use of any card to derive a dynamic password or to authenticate a transaction. Other systems use the card to authenticate a transaction.
For example, U.S. Pat. No. 4,016,404 to Appleton discusses a method of verifying a credit card use, wherein a matrix of holes formed in a predetermined order through the credit card stores information. A processing unit, pre-programmed to determine the matrix bit positions and the sequence of a user code from the information matrix as a function of the numerical value of a scrambler code, reads the information matrix from the credit card and, by comparison of the encoded information with a code manually entered by a user, determines whether the credit card use is authorized. Unfortunately, however, this system is useful for authenticating credit cards used during point of sale transactions only, and is not usable for remote transactions, such as over the Internet.
In U.S. Pat. No. 5,488,664 to Shamir, a method for protecting visual information against unauthorized access and modification using a printed cryptographic watermark is discussed. A first array of shapes is printed on a first sheet of material to be protected, and a second array of different shapes is printed on a transparent medium to form a developer. When the transparent developer is placed over the first sheet, a watermark, which is not visible in either of the sheets alone, is encoded. The watermark is encoded by preparing each array using black and white pixels that have been split into a first collection of sub-pixels that appears in the first array and a second collection of sub-pixels that appears in the second array. When the two printed sheets are placed directly over each other, the first sheet of material can be seen through the second, transparent sheet, making the watermark (the combined image) visible.
In “Visual Cryptography”, by Moni Naor and Adi Shamir, Advances in Cryptology—Eurocrypt '94 Proceeding, Workshop on the Theory and Application of Cryptographic Techniques, Perugia, Italy, May 1994, Lecture Notes in Computer Science, Vol. 950, Springer-Verlag, 1995, pages 1-12, a secure cryptographic scheme that can decode concealed images without any cryptographic computations is disclosed.
In “Visual Cryptography II: Improving the Contrast Via the Cover Base”, by Moni Naor and Adi Shamir, Security Protocols, International Workshop, Cambridge, United Kingdom, April 1996, Lecture Notes in Computer Science, Vol. 1189, Springer-Verlag, 1997, pages 197-202, an alternative model that enables the achievement of a better contrast than in the previously discussed scheme is proposed.
In “Visual Authentication and Identification”, by Moni Naor and Benny Pinkas, Advances in Cryptology—Crypto '97 Proceedings, 17th Annual International Cryptology Conference, Santa Barbara, USA, California, August 1997, Lecture Notes in Computer Science, Vol. 1294, Springer-Verlag, 1997, pages 322-36, the authors discuss various authentication and identification methods for human users using visual cryptography. The methods are easy to use and implement using “low tech” technology.
In U.S. Pat. No. 6,728,376 to Dean et al., a system for encrypting documents with stencils is discussed, providing a way to decrypt original image content in two passes. An encrypted image is partially recorded through a stencil to a first recording medium, and then the image is partially recorded through a complement of the stencil to a second recording medium. The two mediums are then stacked together to fully decrypt the original image content.
U.S. Pat. No. 6,095,566 to Yamamoto, et al. discusses an image recording system used to superimpose additional information. The superimposed image is used for certification, and this method is used as a personal identification product to prevent falsification and forgery of identification cards. An image recording system superimposes on an original image an additional image that is the same as any one of visible characters, symbols or numerals on a recorded product and records the superimposed image on the recorded product as an image for certification. The additional image superimposed on the recorded product cannot visually be recognized and is visible only through a universal optical filter.
U.S. Patent Application Publication No. 2003/0070078 A1 to Nosrati et al. discusses a method and apparatus for adding security to online transactions using ordinary credit cards. This method increases the level of security over the regular use of ordinary credit and debit cards. However, the user is required to carry an electronic identification device in order to be authenticated by the financial institution.
International Patent Application Publication No. WO 02/065411 A2 to Benedetti discusses a method and system for making a commercial transaction secure with the use of a smart card. The proposed method uses the following steps: a user enters identification data and a PIN code, a third party server (which authorizes the transaction for the merchant site) sends to the user at least two variables defining an authentication key in a matrix printed on a material medium available to the user, the user then transmits to the third party server the authentication key using the input variables received from the server, and the server finally verifies the authentication key transmitted by the client if it corresponds to the key defined by the authentication table stored in the third party server database.
Others devices enable the use of temporary, or dynamic, codes that are valid only for the specific transaction in progress. In U.S. Pat. No. 6,246,769 to Kohut, a temporary code is randomly selected by the system and displayed to the user encoded within a completely filled geometric matrix along with other non-code characters. The user must recall a single, predetermined sequential pattern within the matrix in order to obtain the access code. If the entered access code matches the transaction specific code in system memory, access to the protected resource is granted and the transaction is allowed to proceed.
Temporary codes are also used in the Matrix-Card, shown in
In addition, temporary codes are used with IdentityGuard, by Entrust of Addison, Tex., shown in
International Application Publication No. WO 02/17556 A1, to CMX Technologies PTY Ltd., of Australia, discloses a system known commercially as NextID, which is a system and method of validation for transactions between a user terminal and a server using a card (called a key) that allows a user to correlate the position of a point on a visual display or on the key with the position of a second point on the same display by holding the card key against the display. In a commercial embodiment, as shown in
U.S. Pat. No. 6,406,062 to Brooks discloses a hidden image game piece and a method by which a hidden image game piece is produced and used (although not for authentication purposes). A first hidden image game piece is formed on a transparent or translucent substrate, and a second hidden image game piece is formed electronically, and optionally printed or, alternatively, saved and distributed in electronic format. The hidden image game piece, using color filtering techniques, can be used to derive demographic information from recipients, to drive them to web sites or retail outlets, and to provide a means for distributing advertising.
Accordingly, it is one object of the present invention to provide a new and improved authentication system that maximizes Internet and network security.
It is another object of the present invention to provide a new and improved authentication system that is generic and applicable to all industries.
It is a further object of the present invention to provide a new and improved authentication that is user friendly, inexpensive to produce and maintain, portable, free of complicated, electronic hardware devices, and easily deployed to the general public.
It is still another object of the present invention to provide a new and improved authentication system that requires the user to both physically possess and use an article, as well as to remember a password or personal identification number (PIN), thereby maximizing the level of security for online transactions.
It is still a further object of the present invention to provide a new and improved authentication system that requires the user to enter a completely new and randomly different password for each transaction
In accordance with these and other objects of the invention, the present invention is preferably comprised of the following physical components: a key card and a network access device. The invention is preferably also characterized by a key-sequence, a matrix, an algorithm, a one-time password and a challenge response.
The network access device can be any known communications device, e.g., computer, PDA, cell phone, ATM, etc., that preferably can be used to perform online transactions. The network access device enables connections to the server for the authentication procedure and preferably also comprises a monitor or screen for displaying information to the user.
A uniquely hole-punched or printed key, generally in the form of a card, is preferably used to authenticate and identify a cardholder when used in online transactions. The card can preferably be made of any material, e.g., typically plastic, and is preferably in the size and shape of a credit card, although it may also be made of other materials and/or be sized or shaped differently. The card may be associated with a user account, whereby it contains each user's unique credentials (e.g., username and password/PIN) by any standard mechanism, e.g., a magnetic strip, or it may be used without user credentials. In a preferred embodiment of the invention, when held over a series of numbers, symbols or characters that are displayed or printed in a specific format, layout or array, generically called a matrix, such as by being held against the monitor on which is displayed (or printout on which is printed) the displayed matrix, so as to cover at least portions of the matrix, the card reveals a dynamic, one-time password (OTP) that is unique for each authentication transaction.
Every card is uniquely identified by a sequence of randomly generated numbers or characters called a key-sequence. The key-sequence is represented as a series of two-dimensional cell locations (i.e., vectors) formed on or through the surface of the card. The length of the key-sequence may vary in accordance with the optimal tradeoff between user friendliness and the required strength of security. The key-sequence determines which portions of the matrix are used to reveal the one-time password for that transaction.
A matrix, layout or array is a series of data (numerical or character), represented in two-dimensional format, such as by rows and columns, which together create cells representing specific values. In the present invention, the preferred way to derive the unique, one-time passwords that users enter in order to authenticate online transactions is through the use of the array of data, herein generically termed “matrix”. The server of the network access device uses an algorithm to present a scrambled and randomly-generated matrix to the user on the monitor or other display or printout in a predetermined format or orientation. Many types of algorithms may be utilized with the present invention, although the algorithms detailed herein are based on matrices and key-sequences.
An OTP is derived from a randomly generated matrix sent by the server and displayed on the user's monitor. The user derives the OTP by holding the card against the matrix that is displayed on the monitor, or covering the matrix wherever it is displayed or printed, such that only certain portions of the matrix are revealed, based upon the card's unique key-sequence. The revealed portions of the matrix form the OTP, which the user enters into the computer (or other device) in order to authenticate the transaction. Preferably, because the matrix is randomly generated and is not stored, but rather only is displayed to the user, the OTP is different for each online transaction.
In a typical Challenge-Response sequence, the server challenges the user and the user responds. The user provides his/her user name and password and, after the server successfully verifies the user name and password, the server challenges the user by displaying a scrambled and preferably randomly generated matrix. The user responds by covering the displayed matrix with his/her key card and typing in the OTP. The system verifies whether the entered OTP is correct. If the OTP entered is correct, the transaction is authenticated.
The above and other objects and advantages of the invention will be apparent upon consideration of the following detailed description, taken in conjunction with the accompanying drawings, in which the reference characters refer to like parts throughout and in which:
As discussed herein, the present invention provides a high level authentication system that maximizes Internet and network security during online transactions. The system is a generic solution, applicable to all industries. It is user friendly, inexpensive to produce and maintain, portable, free of complicated, electronic hardware devices, and is easily supplied to the general public. The invention can be used with any type of computer or handheld device, with any operating system, and from any location (home, office, Internet cafes, airports, etc.).
The method and system of identification and authentication of the present invention is based upon the generation of a one-time password for each transaction that the user provides to the system to which access is desired. The one-time password is provided to the user preferably through the use of a uniquely punched or printed card that is held over a randomly generated and scrambled array of characters, known as a matrix, that is displayed, such as on a monitor or printout, thereby revealing a sequence of numbers, symbols or characters that comprises the one-time password.
The client end 2 is the application that displays a matrix, layout or array of data characters (numerical or otherwise), preferably in two-dimensional format to the user, accepts the user's inputs (such as username, password/PIN and OTP), and sends all the information to the server 4. Preferably, all communications between client end 2 and server end 4 should be encrypted, such as by using an encryption method such as SSL (Secured Sockets Layer). Depending on the application, the client end 2 might be a Browser-based application (html) or software that must be installed on the client's computer (e.g., a Virtual Private Network client, etc.). A client end network access device 3 can be any known communications device, e.g., computer, Personal Digital Assistant (PDA), cell phone, ATM, etc., using any operating system and from any location (e.g., home, office, Internet cafes, airports, etc.), that preferably can be used to perform online transactions.
The client end network access device 3 enables connections to server 4 for the authentication procedure and preferably comprises a monitor, screen or other display device, often known generically as the monitor or screen, for displaying information to the user. The client end network access device 3 can have any type of monitor, including touch screen monitors, such a those used in ATM machines or point-of-sale devices. Alternatively, the display device could utilize a printer that prints the display to the user in two-dimensional format.
As discussed more fully below, server 4 uses a specific algorithm to generate a scrambled array or matrix that is displayed on the monitor of the client end network access device 3. The matrix is preferably a series of data (such as letters, numbers, symbols or other characters, colors or shapes) that is represented in two-dimensional format. In one preferred embodiment, the matrix is comprised of rows (x) and columns (y), which together create cells (x,y), whereby each cell represents a specific value. For example, a matrix of twelve can be represented as 1×12 (one row and twelve columns), as 2×6 (two rows and six columns), as 3×4 (three rows and four columns), as 4×3 (four rows and three columns), as 6×2 (six rows and two columns) or as 12×1 (twelve rows and one column). The matrix may have alternative shapes, such as a diamond, triangle, trapezoid, etc., while still maintaining the row-column format, or not be row-column based at all, such as circular or spiral formats.
When a user begins an online transaction by entering his/her username and password/PIN, the server will then display a scrambled matrix on the computer monitor, wherein every cell displayed is a different number. In accordance with the present invention, a unique, scrambled matrix will preferably be displayed on the user's screen each time a user attempts to log in to a protected site or to perform an online transaction. The server of the network access device uses an algorithm to present a scrambled and randomly-generated matrix to the user on the monitor. Many types of algorithms may be utilized with the present invention, although the algorithms detailed herein are based on matrices and key-sequences. However, any other algorithms may also be employed and utilized with the present invention.
Before displaying the matrix, the server, chooses a scrambling key from a pool of keys and, using an algorithm, scrambles the basic matrix and then displays the scrambled matrix to the user. For each transaction, the server temporarily holds the scrambled matrix in its memory, until the transaction is completed.
The number of different combinations in which the cells of a matrix can be placed (i.e., scrambling the matrix) is represented by N! (“N factorial”), where N is the number of cells in the matrix. Thus, in a matrix of N=50, the number of combinations is: 50!=3.0414093201713378043612608166065e+64 (3 and 64 zeros to the right), meaning that, in a matrix of 50 cells, there are 3.0414093201713378043612608166065e+64 different ways in which to scramble the cells. Accordingly, for every single transaction, the chance that any specific matrix displayed will be repeated is calculated as:
Each user of the system is issued a uniquely punched or printed key that is used as a hard token to identify and authenticate that user during online transactions, e.g., over the Internet or any other local network system, local computer or application, ATM, etc. The key can preferably be made of any appropriate material, e.g., cardboard, hard plastic (similar to a credit card) or a thin plastic film. The key should preferably be of a size and shape that will enable easy and convenient portability by the user. In a preferred embodiment, the key is in the size and rectangular shape of a credit card, although it may be sized or shaped differently to better fit computerized devices with limited display space. For example, the key may be sized and shaped differently to fit PDA's, cell phones, ATM's or other devices with monitors or LCD displays, depending upon the size of the monitor that displays the matrix. However, for simplicity, the key will hereinafter generally be referred to as a “card”.
In a preferred embodiment of the invention, the card, when held over the displayed scrambled matrix, such as when held against the monitor and over a scrambled matrix that is displayed thereon, selectively indicates or reveals specific portions of the scrambled matrix, which indicated or revealed portions comprise a dynamic, one-time password (OTP) that is unique for each authentication transaction. Accordingly, the card should have some physical indication to advise the user which portions, e.g., characters, of the matrix that lie beneath the card are to be used for the OTP.
One preferred embodiment of such a card, is depicted in front view in
In another preferred embodiment, the card is entirely see-through or transparent, such that the user is able to view the entire matrix through the card. However, the card possesses certain markings to indicate to the user the portions of the matrix that are to be used for the OTP. For example, the indicating portions of the card, i.e., the selected viewing portions 9, could be shaded while the non-viewing portion 8 could be non-shaded, or reverse, or the selected viewing portions 9 could have markings around them, such as circles, squares or some other shape, in order to differentiate them from the non-viewing portion 8.
Each card that is issued may be associated with a specific user account, whereby it contains or is linked to and checks that user's unique credentials (e.g., user name and password/PIN) prior to authentication. Such a card may be used for both Internet and point-of-sale applications, and may bear additional data. Such linkage may be by any standard mechanism or technology, e.g., a magnetic strip or Smart Card chip. A preferred embodiment of such a card 7, depicted in back view and having a magnetic strip 10 in addition to holes 9 punched therethrough, is shown in
It is preferred that every card be uniquely identified by the server via a sequence of randomly generated letters, numbers, characters or symbols called a key-sequence, which identify specific cell locations or positions within the array, called vectors. Because each key-sequence is randomly generated, each and every card is unique. The key-sequence for each newly issued card is stored in encrypted format in the server database under the user's account and is used to derive the OTP, which the user must enter in order to authenticate an online transaction.
The key-sequence is translated into graphical form and is preferably corresponds to or is represented as a series or pattern of cell positions or locations on the card (i.e., vectors). As shown in
The length of the key-sequence may vary in accordance with the optimal tradeoff between user friendliness and the required strength of security. The strength of the key-sequence is derived from the number of cells making up the key-sequence (key-sequence length). For example, a key-sequence length of 4 vectors or cells is user friendly but is a weaker key; while a key-sequence length of 20 vectors or cells is a stronger key, but is longer and more difficult for the user to enter.
For simplicity purposes, most of the examples set forth herein will present a matrix of fifty (50) vectors and a key-sequence length of eight (8) vectors. For example, the card shown in
A key-sequence is generated by randomly choosing the desired number of vectors from the matrix of a specified size. For example, in the typical 5×10 matrix example considered herein, eight vectors, or cells, are randomly chosen from within the 5×10 matrix. Of course, more or fewer vectors may be chosen from that matrix or from a matrix of larger or smaller dimensions.
In the example shown in
A card that is produced based upon a particular key-sequence will have holes, or viewing portions 9 as discussed with respect to
Once the scrambled matrix is displayed on the monitor, the user derives the OTP by placing his/her card over the matrix, which thereby reveals a number of matrix characters that show through the holes of the card.
In a preferred embodiment of the invention, once the user enters the OTP that is revealed by the card, i.e., the sequence of characters that shows through holes 9, the OTP is sent back to the server. The server, using the scrambled matrix retained temporarily in its memory, then calculates the key-sequence of the card from the characters entered by the user and compares the key-sequence of the card as entered with the key-sequence that is stored in its database under the user's account, as discussed below. If the server recognizes a match of the translated OTP to the stored key-sequence, it authenticates the transaction.
The following are the preferred steps of the challenge-response. First, the user enters his/her username and password. Next, after the username and password are successfully verified by the server, the server challenges the user by displaying a scrambled matrix.
Then, the user responds to the challenge by the server by placing his/her card over the displayed matrix to reveal the OTP for the transaction.
In an alternate embodiment, the monitor is a touch screen monitor and the user places the card onto the scrambled matrix on the touch screen monitor. Rather than entering the OTP vectors into a separate space provided, the user merely touches the screen through the card's holes with his/her fingertip or stylus. The client's application will capture the vector values and then submit them to the server, either with or without first displaying them to the user in the manner shown in
Once the user enters this OTP, the server compares the OTP characters as entered to the corresponding sequence in the unscrambled matrix (
However, if the user types in a slightly different character sequence as the OTP, for example: 23-14-47-12-26-28-19-48, instead of 23-14-47-12-26-28-19-49, then the server will be unable to authenticate the transaction because the OTP's corresponding characters will not match the key-sequence for that card. In this instance, the incorrect entry by the user of “48” as the last number of the OTP will cause the server to interpret the corresponding characters sequence as 4-6-8-11-15-23-42-24, since “48” in the scrambled matrix corresponds to position no. 24 in the unscrambled matrix. The server will to attempt to match this corresponding character sequence 4-6-8-11-15-23-42-24 to the stored key-sequence for that card 4-6-8-11-15-23-42-47. Because the server will be unable to match this corresponding character sequence to the card's correct key-sequence, the transaction will be rejected.
Therefore, the OTP, which is the actual sequence of numbers that is revealed by the holes of the card when the card is held up to the matrix displayed on a computer monitor, is a unique sequence of numbers or characters for each transaction. Because the OTP is derived from a randomly scrambled matrix sent by the server and temporarily displayed on the user's monitor, it is called a dynamic OTP.
The strength of the OTP thus is two-fold. First, in contrast to a static password that remains the same for all online transactions, the dynamic OTP is different for every single transaction, thereby making it very difficult for an outsider to guess. Second, the OTP provides an additional layer of security as the second in the two-pronged requirement for authentication—because the OTP is derived by using a physical card, it is “something the user possesses”, in addition to the static password used in the present invention, which is “something the user remembers” and is assumed to be known only to the user. In this way, a high security level is provided. If the static password is known to someone other than the cardholder, the user will still need the physical card in order to derive the OTP and perform an online transaction. Similarly, in the opposite case, if the card were stolen, the thief would be unable to complete an on-line transaction without knowing the static password.
In an embodiment of the invention alternative to that shown in
As can be seen from the embodiment of the invention shown in
However, the graphical layout of a matrix can vary. For example,
Furthermore, in an alternative embodiment, the matrix may be “twisted”. In a twisted matrix, the rows and/or columns may be shifted in order to change the layout of the key-sequence on the card, such that the rows and columns are no longer necessarily oriented orthogonally with respect to each other.
Alternatively, the array of characters that make up the matrix need not be oriented in row/column format, orthogonally oriented or not, but can also be arranged in other non-linear formats. For example, the characters may be arranged in a spiral configuration, such as a circle or ellipse, with characters arranged in concentric circles or spirals, each of which can be considered a row. Furthermore, the characters may be arranged in a spiral configuration, such as a circle or ellipse, with characters spiraling outward from a central location or node. In this instance, the key sequence would take an appropriate set of values, based for example upon the sequential positions of the characters from the node, with viewing portions formed at appropriate locations along the spiral. Many other types of orientations may be utilized without departing from the essence of the invention.
In all cases of twisted or non-linear matrices, similar to the standard matrix, the card is preferably to be matched against the displayed matrix to reveal the OTP when introduced during an online transaction. Although it would be very difficult for a thief to deduce the key-sequence of a particular card simply by examining an actual card, twisted matrices, which create different visual looks for different cards, can preferably be used in order to make it even more difficult (and indeed almost impossible) to visually map the exact order of the cells on the card and determine the key-sequence.
Of course, because the server, when displaying a matrix to a user, may choose from among many different possible formats, e.g., different sizes (numbers of rows and columns) or key-sequence length, non-mixed/mixed, straight/twisted, etc., the server needs a way to determine the format of the matrix to display for each particular user. In other words, a user with a card whose 8-vector key-sequence is determined based upon a 5×10 straight, numbers-only matrix would never be authenticated for transactions if the user were presented with a matrix having any other property, e.g., a different number of rows or columns, mixed content or twisted, or requiring a different number of characters in the OTP.
Accordingly, in a preferred embodiment, a matrix template can be associated with each user's account or with a group of user accounts, such that whenever a user attempts to log in, the server presents that user with a matrix layout as determined by that user's template. The template used to produce the matrix can be stored in the server database under a specific account record or group of records. In this way, in a preferred embodiment, each time a user performs an online transaction, the server will display the scrambled matrix in the predetermined layout that is relevant for that user, so that there can be a match between the actual card of that user and the displayed matrix. Likewise, the server will expect entry by the user of an OTP in the predetermined form and with the correct number of characters that is relevant for that user, so that there can be a match between the format and number of characters of the OTP that the user has entered and the predetermined key-sequence for that user's matrix template.
Matrix templates can be employed to determine the type or form of the matrix (e.g., standard or twisted), the size of the matrix (i.e., how many rows and columns), the content of the matrix (e.g., numbers, letters, characters or mixed), the numbers of characters per cell and/or the number of vectors in the key-sequence. For example, in certain embodiments, one group of cards/matrices can be produced using a matrix template that has only numbers, another group of cards/matrices can be produced using a mixed matrix template, while a third group of cards/matrices can be produced using a combination of a mixed matrix and a twisted matrix. In addition, the server will anticipate entry of by the user of the OTP in a particular format, such as the predetermined number of vectors in the key-sequence and the number of characters per key-sequence, and will refuse to authenticate a user that does not provide the OTP as expected.
As a result, matrix templates, which dictate the format in which the matrix will appear or be presented to a particular user and the number of vectors in the key-sequence, provide an alternative and optional way to increase the number of combinations and/or permutations of the scrambled matrix and/or the key-sequence, thereby increasing the strength of the key-sequence and the OTP.
Similarly, as discussed previously, the number of available vectors, measured by the size of the matrix, i.e., the number of rows and columns, will have a direct effect on the strength of the authentication process. This is because the number of possible key-sequence combinations for a particular matrix means that each OTP for that matrix has a higher chance of being non-repeatable, i.e., unique. Moreover, whether or not the characters of the OTP are required to be entered in a specific order will also impact upon the strength of the authentication process. In other words, the strength of the key-sequence and the OTP will be determined, in part, by the number of vectors of the matrix that are revealed by the holes of the card and whether or not the user is required to enter the revealed vectors in a particular sequence.
In a first embodiment, the order of entry of the characters of the OTP is NOT required, and the user may enter the revealed vectors in whatever order desired. In this case, the number of combinations available for choosing K objects out of N objects is represented by the following formula, where the variable N stands for the number of cells in the matrix, and the variable K stands for the length of the key-sequence (the number of vectors):
Every vector in the key-sequence represents a physical, two-dimensional (x,y) location on the card. Thus, in this embodiment where entry of a specific selection order is not required, for the key-sequence 1-2-3-4-5-6-7-8, for example, the locations of cell numbers 1 through 8 (all eight cells) would be punched/printed on the card. In the same manner, the key-sequence 2-5-1-8-6-3-7-4 would result in a card with the same physical appearance, because every vector represents the same physical location on the card (i.e., punched/printed holes that are in the same physical locations as in the previous key-sequence). Thus, where entry of vectors in a specific order is not required, the physical cards all combination of specific vectors will be identical.
In practical terms, therefore, the value C(n,k) represents the number of different and unique cards that may be produced using the matrix with N cell locations.
A different number of combinations is derived if the size of the matrix is reduced but the number of vectors in the key-sequence is increased. For example, for the 4×9 mixed matrix shown in
In general, in order to increase the number of possible key-sequence combinations for a given key-sequence length, the size, i.e., the number of cells, of the matrix could be increased. Table 1 below shows the increase in the number of combinations (C(N,K)), where the order is not required, for a fixed key-sequence length (K=8), as the number of cells in the matrix (N) increases.
Similarly, in order to increase the number of possible key-sequence combinations for a given matrix, the number of vectors in the key-sequence could also be increased. Table 2 shows the increase in the number of combinations (C(N,K)), where the order is not required, for a fixed number of cells in the matrix (N=50), as the key-sequence length (K) increases:
Table 3 shows additional combinations of the variables N and K and the resulting number of possible key-sequence combinations, where the order is not required. Table 3 demonstrates that a matrix of 40 cells, with a key-sequence length of 16 vectors, provides quite a robust key of 62,852,101,650 possible key-sequence combinations (over 62 billion, 852 million possible combinations).
However, there are certain combinations of vectors that, for practical reasons, should be excluded. For example, in order to prevent weakening or physical deterioration of the structure of the card itself due to the requirements of the key-sequence, it is preferred that certain combinations of vectors should be excluded, e.g., combinations that would cause holes on the card to be located adjacent to each other, such as shown in
The determination of the number of combinations available for choosing K objects out of N objects discussed above is valid only when the selection order is not important. In this case, the order of selection does not matter because each vector in the scrambled matrix represents a specific x,y value (vector) in the unscrambled matrix. Therefore, no matter what value is assigned to a specific vector when the matrix is scrambled (i.e., the order of the matrix is changed), the corresponding vectors in the unscrambled matrix (the key-sequence) will always stay the same.
For example, this can be demonstrated using the key-sequence 1,3,5,7 and the simple unscrambled and scrambled matrices shown in
Note that in this example, the key-sequence 1-3-5-7 is sorted in ascending order. In fact, the key-sequence that is stored in the database must be sorted, because the server does not “know” in which order the user will type in the OTP. Therefore, after the server converts the OTP to its corresponding key-sequence numbers, the result must be sorted, as discussed below, in order to ensure that the transaction is not incorrectly rejected and that a match takes place.
In order to accomplish a complete match between the key-sequence stored in the database and the OTP that is entered by the user where the order of entry of the OTP characters is not required, the following steps are necessary. First, a key-sequence that is generated for a new account needs to be sorted. Second, the user is permitted to enter the OTP in any order desired. Third, the server then converts the OTP into the corresponding numbers of the unscrambled matrix and sorts the result. For example, with reference to the example of
In general, the strength of the OTP alone (independent of the static password) is measured by the probability that any specific OTP will be repeated. In the present invention, this translates into the chance that an outsider might guess the OTP for a certain transaction.
The probability that an outsider will be able to guess the OTP, where the order is not required, is represented by the formula 1/C(N,K). With reference to Table 3 above, which presents examples of the resulting combinations for different sized matrices (N) and different key-sequence lengths (K), Table 4 below shows the probability of someone guessing any one of the combinations resulting in Table 3.
Similarly, in a matrix of 36 cells and an even shorter key-sequence length of 8 vectors, the probability of guessing an OTP is:
One way to further strengthen the OTP is the second embodiment, wherein a specific order of entry of the OTP characters IS required, i.e., that the server requires the user to enter the characters in a particular order in order for the OTP to be accepted as valid. In this second situation, where the selection order of the key-sequence vectors entered by the user as the OTP IS important, the number of permutations available for choosing K objects out of N objects is represented by the following formula, where the variable N stands for the number of cells in the matrix, and the variable K stands for the length of the key-sequence (number of vectors):
For comparison purposes, the number of OTP combinations in a matrix of 36 cells and a key-sequence length of 8 vectors when the order is NOT required is 30,260,340, as set forth above. However, when the order of vectors IS required, the number of OTP combinations is:
Thus, adding the importance of the selection order makes the probability of guessing an OTP much smaller, because the k! is no longer exists in the denominator. Thus, in a matrix of 36 cells and an even shorter key-sequence length of 8 vectors, the probability of guessing an OTP in this situation is much smaller, represented by the formula:
In the first embodiment, the order in which the user types in the OTP was not important, and the server sorts the OTP in order for it to match to the key-sequence. However, making the order of entry of the OTP characters important provides even stronger protection to the user by increasing the possible number of combinations of the OTP and thus a smaller chance to guess it. In the second embodiment, the server will NOT sort the OTP. Instead, when a new card is created, the key-sequence is created in a specific order, the server will not sort the key-sequence before storing it in the database, as described previously for the previous embodiment.
In order to accomplish a complete match between the key-sequence stored in the database and the OTP that is entered by the user where the order of entry of the OTP characters is required, a key-sequence that is generated for a new account first needs to be sorted. Then, the user is requested to enter the OTP in a specific order (e.g., from left to right along each row, and from top row to bottom row). In effect, by entering the OTP in a specific order, the user himself performs the sort that the server performs in the first embodiment, and a match can take place.
Consider again the example of
For further illustration, consider the example as shown in
However, when the order is required, the user is required to enter the OTP characters in a specific order. If the user were required to enter the OTP characters from left-to-right and then top-to-bottom according to what is seen through the card in
Thus, the probability of guessing an OTP can be made smaller by increasing the possible number of permutations, or orders, for each combination of vectors in a key-sequence. When the dimension of sort order is added to the number of OTP combinations, the number of new combinations is represented by the formula: Combinations=O*C(n, k), wherein O represents the number of different sort orders available and C(n,k) represents the number of OTP character combinations, the formula for which is set forth above.
In the previous example, using a matrix of 36 cells and a key-sequence length of eight vectors, there were 30,260,340 possible OTP combinations where the order was not considered. However, if two different orders are employed, e.g., ascending and descending, the number of combinations will be doubled and will increase from 30,260,340 to 60,520,680. Similarly, if there are four different orders, e.g., ascending, descending, first odd and then even numbers once in ascending and once in descending order, the number of combinations will be quadrupled and there would be 4*30,260,340=121,041,360 combinations. Table 5 below illustrates these four different orders for an OTP with a key-sequence of 15-9-30-5-35-2-7-16:
Many different, arbitrary orders can be implemented in the same manner, as needed. For example, as discussed before with regard to
These different orders can be employed in further preferred embodiments of the invention to increase the security of the key-sequence by using “order templates”, which dictate the sequence in which the characters of an OTP must be entered by a user in order to be accepted by the server, wherein a specific order is associated with a specific user's account or with a group of users' accounts. In this embodiment, similar to the use of a matrix template discussed above, each user would preferably have an “order template” associated with his account. When creating a new account, the order template type is preferably stored in the database of the server under the user's account, for example: Type-00, 01, 02, . . . 99. In one embodiment, the order template for a new user can be randomly chosen from a pool of predefined templates when generating a new account.
Then, in a preferred embodiment of the invention, each time a user performs an online transaction, the server will expect entry by the user of an OTP in the predetermined order according to the order template that is relevant for that user. If the OTP characters are entered in the predetermined order according to the order template, there is then a match between the format or order of the OTP entered and the predetermined key-sequence for that user's matrix template. If not, the transaction is not authenticated
In further preferred embodiments, the user may be required to enter the order template type along with the OTP. In a still further embodiment, the order template type can be either memorized by the user or can be printed on the card itself.
In a further embodiment, the card itself may inform the user the specific order in which to enter the matrix characters to form the OTP.
In a still further but somewhat simpler embodiment, the user can be issued a card that is to be used on one of the two sides, i.e., either front or back. As can be seen from the arrangement of viewing portions 9 on the cards shown in
In preferred embodiments, this invention also provides for solutions to attacks intended to compromise key-sequence security. In the event that a hacker is somehow able to copy a displayed matrix and to spoof the OTP in the same transactional session, he/she can easily calculate the key-sequence by matching the OTP to the matrix. For example, the OTP for the card used to log a user into a bank in
Another preferred embodiment of this invention that provides for solutions to attacks intended to compromise key-sequence security is called a dynamic vector. In a preferred embodiment, rather than displaying a unique character at each two-dimensional vector location on the matrix, the matrix displays groups of identical characters scattered among the matrix's two-dimensional locations, such that each character in the matrix repeats a specific number of times. This type of configuration “breaks” the one-to-one linkage, wherein every key-sequence vector represents a unique two-dimensional location in the matrix, and allows multiple key-sequence vectors to represent the same matrix character.
In the following examples of this embodiment, we will refer to the vectors that represent unique two-dimensional locations on the matrix as “two-dimensional unique vectors” and the vectors that repeat as “repeat-vectors”.
In the first example, shown in
In the creation of a repeat-vectors matrix, the server might pick any sequence of random numbers, with any number of repetitions. For instance, the server randomly could choose ten numbers, with every number repeating four times. In one example, the numbers randomly chosen by the server as repeating characters for the matrix are 3, 9, 12, 14, 33, 46, 55, 63, 78, 91, and the scrambled matrix may appear as shown in
As usual, the key-sequence is randomly generated by the server and stored, as is, in the database. When used with the embodiment of the invention discussed previously wherein the order of OTP entry is printed on the card, as shown in
For example, for the key-sequence 16, 7, 35, 3, 19, 40, 27, 33,
Here, a potential hacker would be trying to match the OTP: 12-46-78-63-91-91-3-46 to the matrix, since the hacker does not have the physical card. In the case of a two-dimensional unique vectors matrix, the match would be obvious to the potential hacker, since the hacker might have already been able to snap the displayed matrix. However, with a repeat-vectors matrix, there are many combinations of vectors on the displayed matrix that could combine to compose the same OTP, and the hacker does not know which cell in the matrix is the match for a specific character or digit from the OTP. Moreover, the hacker does not know what the typing order should be, because this information is printed on the card itself.
It should be noted that this method may be used with or without the typing order printed on the card itself. In one preferred embodiment, where the order is not printed on the card, the same algorithm might be used as explained previously. When the order is required, the number of combinations is greater.
In order to accomplish the method discussed, a unique algorithm must be employed on the server side. In summary, for the described embodiment, a new, randomly generated key-sequence is stored “as is” in the database. The key-sequence is then converted into a graphical representation that defines the physical, two-dimensional layout of the viewing areas on the card. Next to each hole, a number that represents the typing order is printed. When a user types in the OTP, the OTP is sent to the server. In order for the server to find the correct match between the OTP and the key-sequence, the server reads the key-sequence for the specific user from the database and applies the following algorithm:
In another preferred embodiment of the repeating vectors embodiment, the matrix may be larger than the size of the matrix that matches the card. For example, the matrix may be several times the size of the card. For example, in the embodiments shown in
In this example, the card in
In order for the server to match the typed in OTP, the server will scan all possible options of where that card might be placed on the matrix. In this example, there will be more than one possible matching OTP, and the server will accept any OTP that results for any location on the matrix where the card may be placed. In fact, the number of acceptable OTPs for a specific card on a specific matrix is represented by the formula (Mx−Cx+1)*(My−Cy+1), where:
Thus, the number of acceptable OTP's in the example shown in
In another preferred embodiment that protects against attacks intended to compromise key-sequence security, the card contains an indication of an arithmetic adjustment that the user is required to make to the characters of the matrix that are seen by the user through the card's viewing portions in order to derive the OTP. This arithmetic adjustment “hides” the one-to-one linkage between the two-dimensional location that every vector represents for every cell in the matrix and the typed in OTP.
In a preferred embodiment, as shown in
The arithmetic actions might be anything like: ‘+’ (add), ‘−’ (subtract), ‘*’ (multiply), ‘/’ (divide) or any other action. For example, in
In the case of
In the case where the order entry numbers are also desired, the card could bear both. For example, the order entry digits could be printed adjacent to the key-sequence vector viewing area on one side, and the arithmetic operations and the arithmetic operands could be printed adjacent to the key-sequence vector viewing area on the other side. This indicates to the user the arithmetic operation that is to be taken on the revealed matrix character ion order to derive the OTP character, and the order in which the derived OTP characters are to be entered by the user.
The printed numbers and arithmetic actions can be randomly generated by the server for every new card prepared, and will be saved under the user's account. In that way, the server will apply exactly the same arithmetic actions on the key-sequence vectors and will compare it to the typed in OTP.
An alternative version of this embodiment is to assign for every card a one or two digit code that is to be the operand for every arithmetic operation taken with respect to that card. That operand could be printed on the card itself or could be memorized by the user. In addition, in this embodiment, only the arithmetic operation is printed on the card, adjacent to its respective key-sequence vector viewing area.
Thus, as shown in
In the case of
Still another referred way to protect against key-sequence attack is to use a blank matrix. In this method, every vector in the matrix is assigned a specific value (e.g., numerical, character, etc., as usual), and, rather than displaying the values, the server will display a blank matrix instead. Preferably, the value of each vector will be hidden from the user, and every cell will be able to accept mouse or touch-screen events. In this way, the user will place the card on the monitor inside the matrix frame and click the mouse or touch the screen (e.g., using a finger or a stylus) over every key-sequence hole. The clicks of the mouse or screen touches into the card holes serve as entry by the user of the OTP, and the mouse clicks or screen touches can even be entered according to the order template for that user. The client side application will translate the mouse-click or screen touch events into their hidden vector values and submit the OTP to the server. The server will then calculate the key-sequence from the OTP in the usual manner. By employing this algorithm, even if a hacker has spoofed the OTP, the hacker could still not snap the matrix and match the OTP to it to calculate the key-sequence.
Yet another preferred method for protecting against a key-sequence attack is to employ a certain algorithm that involves clock or time sync between the server and the client. In this way, the user, for example, will have to recall a constant that might represent a unique time stamp that was applied to the account at the time the account was created. By employing this algorithm, even if a hacker has spoofed the OTP, the hacker would still have to know additional data that is known only to the user and would have to input this information at the time of the transaction.
In general, a new card must preferably be issued for each new or existing account that is added to the system. A user's account is created when the account, along with the user's personal information (e.g., name, phone number, mailing address, e-mail address, password/PIN, etc.) and the user's credentials are stored in the server database. A number of methods for creating user accounts and managing passwords are available in the market, depending on the application.
In order to create a new card, a typical process for which is depicted in
Because the card is meant to provide security for transactions over the Internet and protected networked systems, however, some basic security measures must be taken into account. First, because a card becomes increasingly likely to be compromised the longer it is physically possessed by one user, each card should preferably have an expiration date, after which a new card with a new key-sequence and a new pattern of holes must be issued for that user. Similar to resetting of a user's password/PIN, this lowers the risk that the key-sequence of the card or its pattern of holes will be compromised.
In addition, a timeout-lock mechanism should preferably be set for every transaction, whereby, for each transaction, the server will trigger a timeout clock that allows a preset amount of time during which the user must complete the log-in. Thus, the OTP must be entered by the user and returned to the server within the time allotted, e.g., 60 seconds, or else the transaction will be rejected. This mechanism helps to prevent a potential hacker from “stealing” a specific transaction session and tampering with the transferred data.
Similarly, a retries-lock mechanism should preferably also be set for every transaction. In this case, if a user enters an incorrect OTP repeatedly, i.e., for a pre-determined number of times, e.g., three, the server will cancel the current transaction and re-challenge the user by displaying a new scrambled matrix. After another pre-determined number of retries, e.g., six, the server will lock the account. This mechanism is intended to prevent a “brute force” attack by a potential hacker, who runs a program that feeds the server with a large number of possible OTP combinations and repeatedly tries combinations of numbers in an attempt to guess the OTP. Thus, if a hacker has stolen a user name and its associated PIN code from an individual owning a card and tries to guess the OTP by typing in different combinations, the hacker will, in a preferred embodiment, have only a limited number of attempts, after which the server will temporarily lock the account.
An additional basic security measure that may preferably be taken is the encryption of communications between the client and the server in order to prevent a potential hacker from determining the key-sequence through interception of communications. Furthermore, in order to prevent a potential hacker from scanning the displayed vectors in a matrix, the matrix may be converted, preferably into a bitmap image or Flash-based application in run time, at the server side, prior to displaying it to the user. In addition, the key-sequence should preferably be stored hashed/encrypted in the database, and the OTP should be hashed/encrypted on the client side before it is transmitted from the client's computer to the server.
In general, the card in the preferred embodiments of the present invention may be used from any setting and from any computer or monitor. Therefore, in order for the user to be able to properly use the card, there must be an exact match between the matrix displayed on the user's monitor and the physical card, regardless of the size of the monitor, the monitor's dot pitch or the monitor's display resolution. If such a match between the card and the matrix is not achieved, the numbers, letters or characters of the scrambled matrix might not be revealed through the holes of the card or might be revealed incorrectly, causing the user to enter the wrong OTP.
There are several ways in which to achieve a complete match between the card and the displayed matrix. Typically, a computer monitor displays text or graphics as a series of illuminated dots in a certain resolution. A typical monitor has a physical dot size, which is the smallest physical display unit of the monitor's screen, the most common of which are 0.28 mm, 0.25 mm and 0.23 mm. A display resolution is defined as the number of pixels per inch (ppi). A pixel is a logical display unit of the monitor's screen and (depending on the displayed resolution) might be composed of one or more physical dots. Monitors usually support resolutions of from about 640×280 to about 1280×1024 ppi.
One preferred way in which to achieve a match between the card and the displayed matrix is to use programming tools/technologies on the client's end application to provide a rendering of the actual size of a window in run time, according to the dot size of the monitor and/or the displayed resolution. For example, if the server has programmed that the size of the user's card is 85×60 mm, the application will display an exact 85×60 mm framed matrix onto which the user places his/her card. This is shown in
Another preferred way in which to achieve a match between the card and the displayed matrix is to use a re-sizable frame. When the re-sizeable frame is displayed, the user will need to adjust the frame's size to match the size of his/her card, as necessary. This is shown in
A further preferred way in which to achieve a match between the card and the displayed matrix is to display more than one frame on the screen, with each frame representing a different common dot size, as shown in
Alternatively, in another preferred embodiment, instead of displaying all the frames on the screen, the client end will display only one frame at a time. As shown in
Of course, the methods discussed above may be combined in order to provide the desired result. In addition, Macromedia® Flash® (www.macromedia.com) can be used as an optional application for window rendering, and different font sizes and graphical design may be applied in order to achieve the desired result when displaying a framed matrix.
Some of the applications that may be implemented using the present invention for authentication of users are:
Thus, a method and system of authentication and identification for computerized and networked systems has been provided. One skilled in the art will appreciate that the present invention can be practiced by other than the described embodiments, which are presented for purposes of illustration and not limitation.