FIPS Publication 200 defines Authentication as “verifying the identity of a user, process, or device, often as a prerequisite to allowing access to resources in an information system”. The entity to be positively identified and verified is usually called a “Principal” in the literature, although this convention will be simplified and throughout the text the term “user” is used. The system in charge of verifying the identity is usually called the “authenticating system”. The computer that is used to access the authenticating system is called the “client computer”.
Authentication has traditionally imposed great challenges to the computer science and security industries, and a number of mechanisms have been proposed to ensure efficient and secure authentication. Amongst the relevant risks related to user authentication, the most obvious are the following two:                The first and obvious risk is unauthorized access. If the method used for authentication is vulnerable to attack, an unauthorized person might gain fraudulent access to a system by pretending to be a different user. It is therefore important that the authentication method is reliable, in the sense that it makes it extremely difficult for an attacker to pretend to be someone else.        A further risk is identity theft. If the method used for authentication establishes the identity of the user by means of some credentials (usually some information in the form of keys or passwords in the context of a cryptographic system), then the security of these credentials is crucial to the security of the system. It is often the case that a user authenticates in different systems using the same credentials. In case that an authenticating system is vulnerable or that the user is led to authenticate to a malicious system, the credentials might be exposed and stolen, therefore compromising the security of all other authenticating systems. Identity theft is therefore a more general risk, in the sense that allows unauthorized access to systems even if the authenticating method is reliable and does not have a known vulnerability.        
Since the invention of the simple and well known user-password mechanism, several techniques have been proposed so far to increase the reliability of authentication methods:                Strong authentication is defined by the U.S. Government's National Information Assurance Glossary as a layered authentication approach relying on two or more authenticators to establish the identity. This is also called two-factor authentication, since it involves two authenticators like for instance something you know, say a password, and something you have, say a token.        Most solutions employ cryptography to ensure that credentials can be verified without compromising their security (e.g. using Public Key Cryptography or One-Time-Password generators). Essentially, authentication relies on a secret that is not interchanged in the authentication protocol. For instance, instead of providing a password, the user computes a response to a challenge using the password and communicates the response, and never the password.        Another recently proposed technique, called two-channel authentication, improves security by using two different communication paths (for instance, a bank may phone-call a user to verify access). The first channel is the channel from client computer to authenticating system, and the second channel is in this case the telephone line.        
The above mentioned techniques mitigate the existing risks but are unable to face in an efficient way the newest threats like Man-In-The-Middle or Trojan attacks (see, for instance, Communications of the ACM vol 48, n 4, Apr. 2005, Inside Risks 178 by Bruce Schneier). This results, among others, in increasing fraudulent transactions in online banking or unauthorised remote user access to enterprise systems.
This situation is explained because the current authentication scenario has evolved in the recent years and is now characterised by two new facts:                The authenticating systems are not secure. Even more, some authenticating systems might be malicious in nature. Therefore, all information that is stored in these systems could be misused and all authenticating systems must be regarded as untrusted.        The evolution of malicious software (like Trojans) and the proliferation of Internet access have rendered our client computers insecure as well. For instance, our home PC that we use to access online banking cannot be trusted, since the presence of Trojans is becoming more common every day. The Trojan will recognize the user authentication process and will either capture user credentials or impersonate the user to perform fraudulent transactions. Therefore, our client computer must also be regarded as untrusted.        
As a result, the need arises for a method of authentication that not only provides strong authentication and does not require secret exchange, but also regards both the authenticating system and the client computer as untrusted. Specifically, an authenticating method is required that enjoys the following features:                Stores no authentication information at all in the authenticating system.        Does not interact with the client computer during the authentication process.        
The following background technologies are relevant to the present invention and are therefore introduced next for convenience:
An Identity Based Encryption (IBE) scheme is a public key encryption scheme in which the public key of a user is some unique and public information about the identity of the user. This public key can be an arbitrary string, and it allows any party to generate a public key from a known identity value such as an ASCII string. A trusted third party, called the Private Key Generator (PKG) generates the corresponding private keys. To operate, the PKG first generates a master public key, and retains the corresponding master private key (referred to as master key). Given the master public key, any party can compute a public key corresponding to the identity ID by combining the master public key with the identity value. To obtain a corresponding private key, the party authorized to use the identity ID contacts the PKG, which uses the master private key to generate the private key for identity ID. This scheme particularly allows the creation of digital signatures that can be verified by anyone without previous distribution and storage of a public key, since the public key can be generated from the public identity of the signer. The scheme may be conveniently implemented using Elliptic Curve Cryptography and bilinear pairings, like for instance the Weil pairing or the Tate pairing.
Two-dimensional barcodes are graphical representations (images) of data in form of dots, bars, or other shapes following predefined patterns. Their definition includes the rules that are necessary to encode/decode data into/from the images (this is called their symbolism). These barcodes are designed so that a mobile device provided with a camera can easily capture the image and decode its contents.
Push technology is used as a generic term to refer to all methods by which a server computer can send information to a client computer without the previous request from the client computer. Depending on the architecture of the system that communicates the authenticating system with the client computer, push will be implemented by means of adequate technologies like http streaming, Java pushlets or long polling.