Time-based One-time Password (TOTP)

Authentication is a process used to confirm a user’s identity in order to regulate resource access, block unauthorized users from entering the system, and track user activities for accountability. This mechanism verifies the identities of individuals logging into a server, ensures that software originates from trustworthy sources, and confirms that message senders are genuine about their claimed identities.

In today’s digital world, cybersecurity is paramount; therefore, utilizing secure and dynamic passwords is essential. The concept of TOTP has become a popular approach for boosting security through two-factor authentication.

Time-based One-time Password
Source: Commio

What is a Time-based One-time Password (TOTP)?

TOTP, or Time-based One-time Password, is a method that generates unique passwords for each login attempt by using the current time as a counter. Typically refreshing every 30 seconds, this system addresses several issues associated with traditional passwords—such as being forgotten, stolen, or easily guessed—by ensuring a continually changing and secure password mechanism.

Some of these issues can be addressed with OTPs, although delivering them via email or SMS may present security risks and potential reliability concerns by introducing new vulnerabilities. In contrast, TOTP generates codes offline, providing a more secure and convenient solution. To begin using it, you only need an authenticator app on your phone (or a hardware token), without requiring Internet access.

How TOTP Differs from Other One-Time Passwords

There are a few key distinctions between OTP and TOTP. An OTP, often sent via email or SMS for individual authentication purposes, is valid only for one session or transaction. While convenient to use, it can be susceptible to interceptions or delays. In contrast, TOTP generates passwords based on time (acting as the counter) and utilizes a shared secret key without depending on external communication channels.

However, TOTP necessitates time synchronization between the server and the authentication device. It employs sophisticated cryptographic algorithms to generate one-time passwords, as detailed below.

How Does TOTP Work?

To make it easier to understand, let’s break down the TOTP process into four steps:

  • Shared secret key: A unique and random string of characters is generated when TOTP is activated. Typically, this key is produced by the server and securely transmitted to the client. Users often employ an authenticator app to scan a QR code that includes this key. To protect against unauthorized access, the secret key on the server side is encrypted. For security purposes, it should be sufficiently long and complex—at least 128 bits (or 16 characters)—to thwart potential attacks.
    • Current time: To keep the generated codes aligned, both the server and client utilize the current time split into intervals (such as every 30 seconds).
    • HMAC Algorithm: HMAC employs a secret key along with a cryptographic hash function to create a message authentication code. By integrating the shared secret key and current time, the HMAC algorithm produces a hash value. An attacker cannot generate this hash without access to the secret key, even if they intercept the communication. While SHA-1 is typically used as the standard for TOTP (Time-Based One-Time Password) generation, SHA-256, SHA-512, and SHA-1 can all serve as hashing algorithms in HMAC implementations.
    • Password generation: The generated hash is used to create a one-time password (OTP). A portion of this hash is extracted and converted into the TOTP, resulting in a numerical code. This regularly changing code provides an additional layer of security as it remains valid only for the current time interval. Typically, the TOTP consists of 6 to 8 digits. This length strikes a balance between ease of manual entry and maintaining robust security measures.

    Where is TOTP Commonly Used?

    Today, TOTP is extensively utilized across various sectors and industries. Below, we will highlight some applications and platforms that currently employ TOTP (such as online banking, email services, and cloud storage).

    TOTP in Two-Factor Authentication (2FA)

    Relying solely on a username and password to safeguard your online accounts is no longer deemed secure. To enhance your protection, it’s advisable to enable two-factor authentication (2FA). By using an external device to verify your identity, you can effectively prevent unauthorized access to your data.

    TOTP is used in widely adopted two-factor authentication (2FA) systems like Google Authenticator and Authy. These 2FAs require additional credentials beyond just a password before allowing users to access a system. With an SMS-based 2FA, you receive a numeric code via text message that needs to be entered for access; this type of code is known as TOTP.

    To enhance security, TOPT is incorporated into apps, websites, and services by independent developers and companies. The integration of the 2FA login plugin can be executed as an API or via REST using SDKs such as Codeless. This process involves frontend languages like Android, JavaScript, .NET, Objective-C, Swift, among others.

    TOTP in Corporate Environments

    Implementing TOTP in enterprise security strategies offers numerous advantages. Some use cases for using TOTP to secure corporate accounts and data access include:

    • Online Banking—When logging into your online banking account, in addition to entering your username and password, you will be prompted to complete two-factor authentication (2FA) by providing a code sent via SMS. This code is a time-based one-time passcode (TOTP), generated using an algorithm that incorporates the current time.
    • Cloud storage services like Google Cloud and Microsoft Azure frequently require a similar form of two-factor authentication (2FA), utilizing either Google Authenticator or Microsoft Authenticator.
    • Corporate email services are transitioning from traditional username-password logins to more secure, email-based TOTP (Time-Based One-Time Password) authentication methods. This dynamic login system significantly reduces the risk of unauthorized access, providing clients with a safer online experience.

    Security Advantages of TOTP

    TOTP provides several security advantages:

    Dynamic and Time-Sensitive

    TOTP is viewed as a more secure alternative to static passwords because it generates unique one-time codes based on the current time. These codes are encrypted, safeguarding them from unauthorized access, and their length and randomness make brute-force attacks highly impractical.

    Resistance to Replay Attacks

    TOTP enhances the security of your online accounts by making them harder for hackers to breach. The codes are unique and not transmitted over a network, which makes interception more difficult. Additionally, TOTP’s reliance on time-based generation prevents attackers from reusing any previously captured passwords.

    User Convenience and Security Balance

    TOTP is very convenient as it generates codes directly on your mobile device, eliminating the need for network or internet access. Moreover, it offers a high level of security by using an open-source algorithm without any deployment costs.

    Potential Challenges and Limitations

    Nonetheless, TOTP has several issues such as time synchronization, device loss, and user error. Additionally, it faces limitations due to its dependence on a single device (like a phone) for code generation and potential usability challenges for non-technical users. Users should also think about having backup and recovery options available.

    Time Synchronization Issues

    TOTP codes need to be aligned between the user’s device and the authentication server. If there’s a mismatch in the codes generated by these two sources, it results in out-of-sync TOTP tokens, leading to login errors and user frustration.

    Lost synchronization can occur due to clock drifts, network latency, and device changes (such as when a user switches or resets devices). To address this issue effectively, the validity period for TOTP tokens should be extended. Additionally, maintaining minimal clock discrepancies and low network latency will help strike a balance between security and user convenience.

    Dependency on Device Security

    The primary disadvantage of TOTP is that the secret key resides on both the user’s device and the server. If either system becomes compromised, a malicious actor could generate codes and gain unrestricted access to the user’s account.

    User Adoption and Understanding

    One of the hurdles in implementing TOTP is educating and gaining acceptance from users, particularly those who are not tech-savvy. Smooth integration of TOTP can enhance security across the entire company. Therefore, it’s important to educate users on its advantages and provide guidance on how to receive and input TOTP codes during system authentication.

    How To Set Up TOTP for Your Accounts

    Here is a detailed guide for setting up TOTP on popular platforms such as Google, Facebook, and various banking apps.

    Choosing a TOTP App

    When choosing a suitable TOTP application, such as Google Authenticator or Authy, opt for a mobile app that is reputable and widely trusted on both Android and iPhone platforms. This will enhance the security of your login process by adding an extra layer of protection.

    Google Authenticator and Authy enhance security beyond password-only authentication by guaranteeing that only authorized users with physical access to a registered smartphone can log in.

    Step-by-Step Setup

    Multiple applications may have the TOTP authentication service activated. Upon your initial login, TOTP will prompt you to register a device for two-factor authentication. Here is how you can set up a device to access your System using TOTP:

    1.Install the Google Authenticator app on your mobile device.

    2. Log in to the computer with your business credentials to access the System (application). If your credentials are valid, the System will prompt you to register a device for one-time passwords.

    3. Connect your System account to the mobile device:

    • TOTP creates a secret key for you, which is displayed in the web browser as both text and a QR code.
    • On your mobile device, open Google Authenticator and add your System account.
    • In Google Authenticator, you can either manually enter the security key or scan the QR code directly from your browser.

    4. Google Authenticator produces a 6-digit TOTP code, which you need to input into the system’s authentication code field.

    5. The device registration process is only complete once you submit the TOTP code and receive confirmation from the server.

    Testing and Backup

    Before using TOTP functionality in production, it is advisable to conduct thorough testing. Creating backup codes for account recovery is also crucial; these codes allow users to restore their accounts if they lose access to their two-factor authentication device. SDKs can be utilized to implement this backup option effectively.

    The user ID is associated with this backup code in their user metadata JSON. When the user wants to utilize their backup code, a system interface (UI) allows them to input it. This triggers an API call to verify the backup code and updates the user’s session with a flag indicating correct entry of the backup code.

    TOTP is an effective tool for safeguarding online identities and sensitive information. Enhancing your authentication systems can be accomplished by incorporating TOTP, which uses unique, time-based codes to address password and one-time password issues while significantly boosting overall security.

    In contemporary cybersecurity, utilizing TOTP is strongly advised. To bolster the security of your online systems, it is essential to consider enabling TOTP for your accounts.

      Leave a Reply

      Your email address will not be published. Required fields are marked *