In today's world of distributed data sources and Web services, remote client authentication is very important to protect customer's sensitive data over Internet. Passwords are most common type of solution used today to authenticate a User. Weak password and bad password habits represent security threats to online services. Some solutions provide two factors to authenticate a User before giving access to the service. This two factor authentication provides improved protection, since Users are prompted to provide something they know and something they have. This second factor may be a hardware device (token) or the specific software loaded device like mobile phone.