The use of a personal identification number (PIN), as well as the use of passwords, which is wider due to the fact that passwords enable additional characters (e.g., alphanumeric), in order to restrict the access to software applications and services, is universal, and broadly established.
Yet, the weakness of using PINs and/or passwords to restrict access is well known. For example, a PIN or password can be easily stolen when used, especially when it is transmitted. One of the most accepted ways to overcome the weakness caused by the exposure of secret PINs or passwords, is instead using “One-Time-Passwords”. That is, a PIN or password that is good for one use only.
Clearly, if the one time password is exposed when it is being used, the exposure does not constitute a problem, because the one time password is invalid for further use. Now, the entity accessing the service or application (hereinafter, referred to as the “targeted application”) should use what is referred to as password generator devices in order to obtain a valid one time password for the next access.
These password generator devices usually use sequential algorithms or time dependent algorithms in order to seed the computation of the one time password and then display them for the accessing person. This solution of the problem of the exposure of the PIN/password has created another problem. That is, what happens if the one time password generator falls into unauthorized hands? Clearly, the criminal would then be in an ideal situation for accessing the “would be” restricted targeted application.
This new problem, that is, the possibility that the one time password generator will fall into unauthorized hands, may be easily solved by requesting a constant or fixed PIN or password in order to use the one time password generator. This time, the fact that the PIN/password is constant, does not constitute a problem, due to the fact that such a fixed PIN/password is not transmitted, and the constant password is only used or entered into the one time password generator, and thus is not easily exposed.
Naturally, the fact that the accessing entity should carry an additional device, the one time password generator, is not an advantage to say the least. And it is widely seen as an inconvenient situation.
As the universal trend is to carry one device, the cell phone, for all possible uses, the natural approach is to use the accessing entity's cell phone as a one time password generator. That is, downloading into the cell-phone a software application that is able to compute the one time password and, thus converting the cell phone into a one time password generator, among other functions.
This approach is extensively used these days and several companies are marketing this kind of solution. Nevertheless, a relatively new problem as now been acknowledged. We refer here to the lack of security of cell phone software applications.
Cell phone applications are easily exposed, hacked, and penetrated, and thus are insecure, especially Java based applications. Java applications are effortlessly reverse-engineered, and it is hard to keep data secret, such as a password, to a skilled intruder.
Now, the fact that the very nature of the PIN/password principle is a shared secret constitutes a weakness of the method presently in use for restricting the access to applications. The fact that the knowledge of the secret PIN/password is not restricted to the entity accessing the service or application, but must be also known to the restricted cell phone one time password generator application, is, indeed, a security hole. Why should the application know the PIN? It is necessary in order to enable the application to verify and compare the password entered by the accessing entity to the correct PIN/password.
If the hacker can read the cell phone memory and hence read the expected password, he also can use the one time password generator software, in the same manner as the authorized owner.
Summarizing, one of the weaknesses of the fixed password method derives from the fact that the one time password generator application that is to be accessed knows the secret, and therefore, if a criminal may access such secret, implies that the criminal knows the password, and can impersonate the authorized entity and therefore access the one time password generator application.
A straight-forward approach used to overcome the above referred security hole, includes keeping or storing the hash value of the fixed PIN instead of keeping the PIN. As it is well known, any hash function is a one way function, and it is theoretically impossible to go the reverse way, from the hash value of the PIN to the PIN itself. This fact overcome the security problem referred above, due to the fact that, assuming a hacker read the hash value of the PIN, he will be unable to infer the PIN, and thus the one time password generator application restrictiveness seems secured. Most of the one time password generator cell phone software applications are using the hash functions this way.
But, the security is apparent only as there is an easy way for the hacker, to overcome this hash obstacle. One of the purposes of the present invention is to expose the lack of security inherent to the present in use approach of storing hash values of the PIN and to show a method that truly overcome the lack of security of the cell phone PIN restricted application of the type of the one time password generator.
While it is perfectly true that the hash functions are irreversible, and therefore the attacker can not deduct or infer from the hash value of the PIN, the PIN itself. The attacker can copy the entire one time password generator application to a PC and create a script that will simply try all the possible PIN combinations, until the moment that, eventually the correct PIN will be entered and, consequently the one time password generator application will work in the PC.
Therefore, the attacker can know the correct PIN that runs the specific application in a specific cell phone. It is worth noting that in the case where the one time password generator application limits the trials, enabling a limited number of consecutive wrong PINs, this limitation is easy to overcome by restarting the application in the PC.
Naturally, the attacker can run it and the one time password generator application will display the one time password value that is right for this moment. Consequently, the attacker can access the targeted application, thus, ruining the restrictiveness to the targeted application. The clear conclusion is that the present-in-use method of protecting the access to a cell phone one time password generator application, requesting a PIN, is not secure.