One-time password

Last updated

MasterCard SecureCode uses OTAC to confirm a user's identity MasterCard SecureCode.jpg
MasterCard SecureCode uses OTAC to confirm a user's identity
One time authorization code as used in Yammer's desktop client Otac yammer.png
One time authorization code as used in Yammer's desktop client

A one-time password (OTP), also known as a one-time PIN, one-time passcode, one-time authorization code (OTAC) or dynamic password, is a password that is valid for only one login session or transaction, on a computer system or other digital device. OTPs avoid several shortcomings that are associated with traditional (static) password-based authentication; a number of implementations also incorporate two-factor authentication by ensuring that the one-time password requires access to something a person has (such as a small keyring fob device with the OTP calculator built into it, or a smartcard or specific cellphone) as well as something a person knows (such as a PIN).

Contents

OTP generation algorithms typically make use of pseudorandomness or randomness to generate a shared key or seed, and cryptographic hash functions, which can be used to derive a value but are hard to reverse and therefore difficult for an attacker to obtain the data that was used for the hash. This is necessary because otherwise, it would be easy to predict future OTPs by observing previous ones.

OTPs have been discussed as a possible replacement for, as well as an enhancer to, traditional passwords. On the downside, OTPs can be intercepted or rerouted, and hard tokens can get lost, damaged, or stolen. Many systems that use OTPs do not securely implement them, and attackers can still learn the password through phishing attacks to impersonate the authorized user. [1]

Characteristics

The most important advantage addressed by OTPs is that, in contrast to static passwords, they are not vulnerable to replay attacks. This means that a potential intruder who manages to record an OTP that was already used to log into a service or to conduct a transaction will not be able to use it, since it will no longer be valid. [1] A second major advantage is that a user who uses the same (or similar) password for multiple systems, is not made vulnerable on all of them, if the password for one of these is gained by an attacker. A number of OTP systems also aim to ensure that a session cannot easily be intercepted or impersonated without knowledge of unpredictable data created during the previous session, thus reducing the attack surface further.

There are also different ways to make the user aware of the next OTP to use. Some systems use special electronic security tokens that the user carries and that generate OTPs and show them using a small display. Other systems consist of software that runs on the user's mobile phone. Yet other systems generate OTPs on the server-side and send them to the user using an out-of-band channel such as SMS messaging. Finally, in some systems, OTPs are printed on paper that the user is required to carry.

In some mathematical algorithm schemes, it is possible for the user to provide the server with a static key for use as an encryption key, by only sending a one-time password. [2]

Generation

Concrete OTP algorithms vary greatly in their details. Various approaches for the generation of OTPs include:

Time-synchronized

A time-synchronized OTP is usually related to a piece of hardware called a security token (e.g., each user is given a personal token that generates a one-time password). It might look like a small calculator or a keychain charm, with an LCD that shows a number that changes occasionally. Inside the token is an accurate clock that has been synchronized with the clock on the authentication server. In these OTP systems, time is an important part of the password algorithm, since the generation of new passwords is based on the current time rather than, or in addition to, the previous password or a secret key. This token may be a proprietary device, or a mobile phone or similar mobile device which runs software that is proprietary, freeware, or open-source. An example of a time-synchronized OTP standard is time-based one-time password (TOTP). Some applications can be used to keep time-synchronized OTP, like Google Authenticator or a password manager.

Hash chains

Each new OTP may be created from the past OTPs used. An example of this type of algorithm, credited to Leslie Lamport, uses a one-way function (call it ). This one-time password system works as follows:

  1. A seed (starting value) is chosen.
  2. A hash function is applied repeatedly (for example, 1000 times) to the seed, giving a value of: . This value, which we will call is stored on the target system.
  3. The user's first login uses a password derived by applying 999 times to the seed, that is, . The target system can authenticate that this is the correct password, because is , which is the value stored. The value stored is then replaced by and the user is allowed to log in.
  4. The next login, must be accompanied by . Again, this can be validated because hashing it gives which is , the value stored after the previous login. Again, the new value replaces and the user is authenticated.
  5. This can be repeated another 997 times, each time the password will be applied one fewer time, and is validated by checking that when hashed, it gives the value stored during the previous login. Hash functions are designed to be extremely hard to reverse, therefore an attacker would need to know the initial seed to calculate the possible passwords, while the computer system can confirm the password on any given occasion is valid by checking that, when hashed, it gives the value previously used for login. If an indefinite series of passwords is wanted, a new seed value can be chosen after the set for is exhausted.
  6. Although the server's counter value is only incremented after a successful OTP authentication, the counter on the token is incremented every time a new password is requested by the user. Because of this, the counter values on the server and on the token might be out of synchronization. It is recommended to set a look-ahead parameter on the server, which defines the size of the look-ahead window. In case of an accidental password generation by the user, the server will still authenticate the client, because it can recalculate the next OTP-server values, and check them against the received password from the client. [3]

To get the next password in the series from the previous passwords, one needs to find a way of calculating the inverse function . Since was chosen to be one-way, this is extremely difficult to do. If is a cryptographic hash function, which is generally the case, it is assumed to be a computationally intractable task. An intruder who happens to see a one-time password may have access for one time period or login, but it becomes useless once that period expires. The S/KEY one-time password system and its derivative OTP are based on Lamport's scheme.

Challenge–response

The use of challenge–response one-time passwords requires a user to provide a response to a challenge. For example, this can be done by inputting the value that the token has generated into the token itself. To avoid duplicates, an additional counter is usually involved, so if one happens to get the same challenge twice, this still results in different one-time passwords. However, the computation does not usually[ citation needed ] involve the previous one-time password; that is, usually, this or another algorithm is used, rather than using both algorithms.

Implementations

SMS

A common technology used for the delivery of OTPs is text messaging. Because text messaging is a ubiquitous communication channel, being directly available in nearly all mobile handsets and, through text-to-speech conversion, to any mobile or landline telephone, text messaging has a great potential to reach all consumers with a low total cost to implement. OTP over text messaging may be encrypted using an A5/x standard, which several hacking groups report can be successfully decrypted within minutes or seconds. [4] [5] [6] [7] Additionally, security flaws in the SS7 routing protocol can and have been used to redirect the associated text messages to attackers; in 2017, several O2 customers in Germany were breached in this manner in order to gain access to their mobile banking accounts. In July 2016, the U.S. NIST issued a draft of a special publication with guidance on authentication practices, which discourages the use of SMS as a method of implementing out-of-band two-factor authentication, due to the ability for SMS to be intercepted at scale. [8] [9] [10] Text messages are also vulnerable to SIM swap scams—in which an attacker fraudulently transfers a victim's phone number to their own SIM card, which can then be used to gain access to messages being sent to it. [11] [12]

Hardware tokens

RSA SecurID security tokens. RSA-SecurID-Tokens.jpg
RSA SecurID security tokens.

RSA Security's SecurID is one example of a time-synchronization type of token, along with HID Global's solutions. Like all tokens, these may be lost, damaged, or stolen; additionally, there is an inconvenience as batteries die, especially for tokens without a recharging facility or with a non-replaceable battery. A variant of the proprietary token was proposed by RSA in 2006 and was described as "ubiquitous authentication", in which RSA would partner with manufacturers to add physical SecurID chips to devices such as mobile phones.

Recently,[ when? ] it has become possible to take the electronic components associated with regular keyfob OTP tokens and embed them in a credit card form factor. However, the thinness of the cards, at 0.79mm to 0.84mm thick, prevents standard components or batteries from being used. Special polymer-based batteries must be used which have a much lower battery life than coin (button) cells. Semiconductor components must not only be very flat but must minimise the power used in standby and when operating. [ citation needed ]

Yubico offers a small USB token with an embedded chip that creates an OTP when a key is pressed and simulates a keyboard to facilitate easily entering a long password. [13] Since it is a USB device it avoids the inconvenience of battery replacement.

A new version of this technology has been developed that embeds a keypad into a payment card of standard size and thickness. The card has an embedded keypad, display, microprocessor and proximity chip.

Soft tokens

Example of soft token. Aegis Authenticator 3.2 TOTP screenshot.png
Example of soft token.

On smartphones, one-time passwords can also be delivered directly through mobile apps, including dedicated authentication apps such as Authy and Google Authenticator, or within a service's existing app, such as in the case of Steam. These systems do not share the same security vulnerabilities as SMS, and do not necessarily require a connection to a mobile network to use. [14] [10] [15]

Hard copies

Paper-based OTP. Internet banking code card 20180728.jpg
Paper-based OTP.

In some countries' online banking, the bank sends to the user a numbered list of OTPs that is printed on paper. Other banks send plastic cards with actual OTPs obscured by a layer that the user has to scratch off to reveal a numbered OTP. For every online transaction, the user is required to enter a specific OTP from that list. Some systems ask for the numbered OTPs sequentially, others pseudorandomly choose an OTP to be entered.

Security

When correctly implemented, OTPs are no longer useful to an attacker within a short time of their initial use. This differs from passwords, which may remain useful to attackers years after the fact.

As with passwords, OTPs are vulnerable to social engineering attacks in which phishers steal OTPs by tricking customers into providing them with their OTPs. Also like passwords, OTPs can be vulnerable to man-in-the-middle attacks, making it important to communicate them via a secure channel, for example Transport Layer Security.

The fact that both passwords and OTP are vulnerable to similar kinds of attacks was a key motivation for Universal 2nd Factor, which is designed to be more resistant to phishing attacks.

OTPs which don't involve a time-synchronization or challenge–response component will necessarily have a longer window of vulnerability if compromised before their use. In late 2005 customers of a Swedish bank were tricked into giving up their pre-supplied one-time passwords. [16] In 2006 this type of attack was used on customers of a US bank. [17]

Standardization

Many OTP technologies are patented. This makes standardization in this area more difficult, as each company tries to push its own technology. Standards do, however, exist – for example, RFC 1760 (S/KEY), RFC 2289 (OTP), RFC 4226 (HOTP) and RFC 6238 (TOTP).

Use

Mobile phone

A mobile phone itself can be a hand-held authentication token. [18] Mobile text messaging is one of the ways of receiving an OTAC through a mobile phone. In this way, a service provider sends a text message that includes an OTAC enciphered by a digital certificate to a user for authentication. According to a report, mobile text messaging provides high security when it uses public key infrastructure (PKI) to provide bidirectional authentication and non-repudiation, in accordance with theoretical analysis. [19]

SMS as a method of receiving OTACs is broadly used in our daily lives for purposes such as banking, credit/debit cards, and security. [20] [21] [22]

Telephone

There are two methods of using a telephone to verify a user’s authentication.

With the first method, a service provider shows an OTAC on the computer or smartphone screen and then makes an automatic telephone call to a number that has already been authenticated. Then the user enters the OTAC that appears on their screen into the telephone keypad. [23]

With the second method, which is used to authenticate and activate Microsoft Windows, the user call a number that is provided by the service provider and enters the OTAC that the phone system gives the user. [24]

Computer

In the field of computer technology, it is known that using one-time authorization code (OTAC) through email, in a broad sense, and using one-time authorization code (OTAC) through web-application, in a professional sense.

Post

It is possible to send OTACs to a user via post or registered mail. When a user requests an OTAC, the service provider sends it via post or registered mail and then the user can use it for authentication. For example, in the UK, some banks send their OTAC for Internet banking authorization via post or registered mail. [27]

Expansion

Quantum cryptography, which is based on the uncertainty principle is one of the ideal methods to produce an OTAC. [28]

Moreover, it has been discussed and used not only using an enciphered code for authentication but also using graphical one time PIN authentication [29] such as QR code which provides decentralized access control technique with anonymous authentication. [30] [31]

See also

Related Research Articles

<span class="mw-page-title-main">Kerberos (protocol)</span> Computer authentication protocol

Kerberos is a computer-network authentication protocol that works on the basis of tickets to allow nodes communicating over a non-secure network to prove their identity to one another in a secure manner. Its designers aimed it primarily at a client–server model, and it provides mutual authentication—both the user and the server verify each other's identity. Kerberos protocol messages are protected against eavesdropping and replay attacks.

<span class="mw-page-title-main">Password</span> Text used for user authentication to prove identity

A password, sometimes called a passcode, is secret data, typically a string of characters, usually used to confirm a user's identity. Traditionally, passwords were expected to be memorized, but the large number of password-protected services that a typical individual accesses can make memorization of unique passwords for each service impractical. Using the terminology of the NIST Digital Identity Guidelines, the secret is held by a party called the claimant while the party verifying the identity of the claimant is called the verifier. When the claimant successfully demonstrates knowledge of the password to the verifier through an established authentication protocol, the verifier is able to infer the claimant's identity.

An authenticator is a means used to confirm a user's identity, that is, to perform digital authentication. A person authenticates to a computer system or application by demonstrating that he or she has possession and control of an authenticator. In the simplest case, the authenticator is a common password.

RSA SecurID, formerly referred to as SecurID, is a mechanism developed by RSA for performing two-factor authentication for a user to a network resource.

In computer security, challenge-response authentication is a family of protocols in which one party presents a question ("challenge") and another party must provide a valid answer ("response") to be authenticated.

passwd Tool to change passwords on Unix-like OSes

passwd is a command on Unix, Plan 9, Inferno, and most Unix-like operating systems used to change a user's password. The password entered by the user is run through a key derivation function to create a hashed version of the new password, which is saved. Only the hashed version is stored; the entered password is not saved for security reasons.

A replay attack is a form of network attack in which valid data transmission is maliciously or fraudulently repeated or delayed. This is carried out either by the originator or by an adversary who intercepts the data and re-transmits it, possibly as part of a spoofing attack by IP packet substitution. This is one of the lower-tier versions of a man-in-the-middle attack. Replay attacks are usually passive in nature.

S/KEY is a one-time password system developed for authentication to Unix-like operating systems, especially from dumb terminals or untrusted public computers on which one does not want to type a long-term password. A user's real password is combined in an offline device with a short set of characters and a decrementing counter to form a single-use password. Because each password is only used once, they are useless to password sniffers.

<span class="mw-page-title-main">Security token</span> Device used to access electronically restricted resource

A security token is a peripheral device used to gain access to an electronically restricted resource. The token is used in addition to, or in place of, a password. Examples of security tokens include wireless key cards used to open locked doors, a banking token used as a digital authenticator for signing in to online banking, or signing transactions such as wire transfers.

<span class="mw-page-title-main">Digest access authentication</span> Method of negotiating credentials between web server and browser

Digest access authentication is one of the agreed-upon methods a web server can use to negotiate credentials, such as username or password, with a user's web browser. This can be used to confirm the identity of a user before sending sensitive information, such as online banking transaction history. It applies a hash function to the username and password before sending them over the network. In contrast, basic access authentication uses the easily reversible Base64 encoding instead of hashing, making it non-secure unless used in conjunction with TLS.

Self-service password reset (SSPR) is defined as any process or technology that allows users who have either forgotten their password or triggered an intruder lockout to authenticate with an alternate factor, and repair their own problem, without calling the help desk. It is a common feature in identity management software and often bundled in the same software package as a password synchronization capability.

HMAC-based one-time password (HOTP) is a one-time password (OTP) algorithm based on HMAC. It is a cornerstone of the Initiative for Open Authentication (OATH).

A hash chain is the successive application of a cryptographic hash function to a piece of data. In computer security, a hash chain is a method used to produce many one-time keys from a single key or password. For non-repudiation, a hash function can be applied successively to additional pieces of data in order to record the chronology of data's existence.

OTPW is a one-time password system developed for authentication in Unix-like operating systems by Markus Kuhn. A user's real password is not directly transmitted across the network. Rather, a series of one-time passwords is created from a short set of characters and a set of one-time tokens. As each single-use password can only be used once, passwords intercepted by a password sniffer or key logger are not useful to an attacker.

<span class="mw-page-title-main">Multi-factor authentication</span> Method of computer access control

Multi-factor authentication is an electronic authentication method in which a user is granted access to a website or application only after successfully presenting two or more pieces of evidence to an authentication mechanism. MFA protects personal data—which may include personal identification or financial assets—from being accessed by an unauthorized third party that may have been able to discover, for example, a single password.

<span class="mw-page-title-main">Time-based one-time password</span> Password authentication algorithm

Time-based one-time password (TOTP) is a computer algorithm that generates a one-time password (OTP) using the current time as a source of uniqueness. As an extension of the HMAC-based one-time password algorithm (HOTP), it has been adopted as Internet Engineering Task Force (IETF) standard RFC 6238.

<span class="mw-page-title-main">Google Authenticator</span> Two-step verification app

Google Authenticator is a software-based authenticator by Google. It implements multi-factor authentication services using the time-based one-time password and HMAC-based one-time password, for authenticating users of software applications.

multiOTP Authentication system

multiOTP is an open source PHP class, a command line tool, and a web interface that can be used to provide an operating-system-independent, strong authentication system. multiOTP is OATH-certified since version 4.1.0 and is developed under the LGPL license. Starting with version 4.3.2.5, multiOTP open source is also available as a virtual appliance—as a standard OVA file, a customized OVA file with open-vm-tools, and also as a virtual machine downloadable file that can run on Microsoft's Hyper-V, a common native hypervisor in Windows computers.

In cryptography, the Salted Challenge Response Authentication Mechanism (SCRAM) is a family of modern, password-based challenge–response authentication mechanisms providing authentication of a user to a server. As it is specified for Simple Authentication and Security Layer (SASL), it can be used for password-based logins to services like LDAP, HTTP, SMTP, POP3, IMAP and JMAP (e-mail), XMPP (chat), or MongoDB and PostgreSQL (databases). For XMPP, supporting it is mandatory.

Biometric tokenization is the process of substituting a stored biometric template with a non-sensitive equivalent, called a token, that lacks extrinsic or exploitable meaning or value. The process combines the biometrics with public-key cryptography to enable the use of a stored biometric template for secure or strong authentication to applications or other systems without presenting the template in its original, replicable form.

References

  1. 1 2 Paterson, Kenneth G.; Stebila, Douglas (2010). "One-Time-Password-Authenticated Key Exchange" (PDF). In Steinfeld, Ron; Hawkes, Philip (eds.). Information Security and Privacy. Lecture Notes in Computer Science. Vol. 6168. Berlin, Heidelberg: Springer. pp. 264–281. doi:10.1007/978-3-642-14081-5_17. ISBN   978-3-642-14081-5.
  2. EOTP – Static Key Transfer. Defuse.ca (July 13, 2012). Retrieved on 2012-12-21.
  3. IETF Tools. RFC 4226 - Section 7.4: Resynchronization of the Counter
  4. Barkan, Elad; Eli Biham; Nathan Keller (2003). "Instant Ciphertext-Only Cryptanalysis of GSM Encrypted Communication": 600–16. Archived from the original on 7 October 2015. Retrieved 6 October 2015.{{cite journal}}: Cite journal requires |journal= (help)
  5. Barkan, Elad; Eli Biham; Nathan Keller. "Instant Ciphertext-Only Cryptanalysis of GSM Encrypted Communication by Barkan and Biham of Technion (Full Version)" (PDF).
  6. Gueneysu, Tim; Timo Kasper; Martin Novotný; Christof Paar; Andy Rupp (2008). "Cryptanalysis with COPACOBANA" (PDF). IEEE Transactions on Computers . 57 (11): 1498–1513. doi:10.1109/TC.2008.80. S2CID   8754598.
  7. Nohl, Karsten; Chris Paget (27 December 2009). GSM: SRSLY?. 26th Chaos Communication Congress (26C3). Retrieved 30 December 2009.
  8. Fontana, John. "NIST blog clarifies SMS deprecation in wake of media tailspin". ZDNet. Retrieved 14 July 2017.
  9. Meyer, David. "Time Is Running Out For SMS-Based Login Security Codes". Fortune. Retrieved 14 July 2017.
  10. 1 2 Brandom, Russell (10 July 2017). "Two-factor authentication is a mess". The Verge. Retrieved 14 July 2017.
  11. Brandom, Russell (31 August 2019). "The frighteningly simple technique that hijacked Jack Dorsey's Twitter account". The Verge. Retrieved 30 January 2020.
  12. Tims, Anna (26 September 2015). "'Sim swap' gives fraudsters access-all-areas via your mobile phone". The Guardian. ISSN   0261-3077 . Retrieved 30 January 2020.
  13. "Yubico AB". Bloomberg Businessweek. Archived from the original on 14 October 2012. Retrieved 13 July 2011.
  14. Garun, Natt (17 June 2017). "How to set up two-factor authentication on all your online accounts". The Verge. Retrieved 14 July 2017.
  15. McWhertor, Michael (15 April 2015). "Valve adds two-factor login authentication to Steam mobile app". Polygon . Retrieved 8 September 2015.
  16. The Register article. The Register article (October 12, 2005). Retrieved on 2012-12-21.
  17. Washington Post Security Blog. Blog.washingtonpost.com. Retrieved on December 21, 2012.
  18. Wu, M., Garfinkel, S. and Miller, R. (2004). Secure web authentication with mobile phones. pp. 9–10.
  19. Shu, M., Tan, C. and Wang, H. (2009). Mobile authentication scheme using SMS. Services Science, Management and Engineering, 2009. SSME '09. IITA International Conference on, pp. 161–164.
  20. Axisbank.com, (n.d.). Axis Bank Mobile Application Registration. [online] Available at: http://www.axisbank.com/personal/speed-banking/how-to-download-and-register-java.aspx [Accessed 28 Oct. 2014].
  21. Master Card Secure Code. (n.d.). [online] Available at: http://www.ingvysyabank.com/pdf's/What%20is%20MasterCard%20SecureCode.pdf [Accessed 28 Oct. 2014].
  22. Inc., S. (n.d.). SMS Authentication: SafeNet Authentication Services. [online] Www2.safenet-inc.com. Available at: http://www2.safenet-inc.com/sas/sms-tokens.html [Accessed 28 Oct. 2014].
  23. Lloydsbank.com, (n.d.). Lloyds Bank Online Authentication Procedure. [online] Available at: http://www.lloydsbank.com/help-guidance/security/authentication-procedure.asp?srnum=1 [Accessed 28 Oct. 2014].
  24. windows.microsoft.com, (n.d.). Activate Windows 7. [online] Available at: http://windows.microsoft.com/en-us/windows/activate-windows#1TC=windows-7 [Accessed 28 Oct. 2014].
  25. Adida, B. (2008). EmID: Web authentication by email address.
  26. Hardt, D. (2012). The OAuth 2.0 authorization framework.
  27. Lloydsbank.com, (n.d.). Lloyds Bank - Internet Banking - How to Register for Online Banking. [online] Available at: http://www.lloydsbank.com/online-banking/how-to-register.asp [Accessed 28 Oct. 2014].
  28. Sobota,, M., Kapczy_ski, A. and Banasik, A. (2011). Application of Quantum Cryptography Protocols in Authentication Process. Intelligent Data Acquisition and Advanced Computing Systems (IDAACS), 2011 IEEE 6th International Conference on, 2, pp. 799–802.
  29. Jhawar, R., Inglesant, P., Courtois, N. and Sasse, M. (2011). Make mine a quadruple: Strengthening the security of graphical one-time pin authentication. pp. 81–88.
  30. Liao, K. and Lee, W. (2010). A novel user authentication scheme based on QR-code. Journal of Networks, 5(8), pp. 937–941.
  31. Vijayalakshmi, A. and Arunapriya, R. (2014). AUTHENTICATION OF DATA STORAGE USING DECENTRALIZED ACCESS CONTROL IN CLOUDS. Journal of Global Research in Computer Science, 5(9), pp. 1–4.