Remote User Authentication Methods

published
May 30, 2024
TABLE OF CONTENTS

Passwords are the most basic form of remote user authentication. They are straightforward and easy to understand. Users enter a username and password. If the credentials match what’s stored in the system, the user gains access.

Though simple, password-based authentication has its drawbacks. Passwords can be stolen or guessed. To mitigate this, you must enforce strong password policies, including requiring a mix of upper and lower case letters, numbers, special characters, and minimum length.

Two-factor authentication (2FA)

Two-factor authentication (2FA) adds an extra layer of security to the authentication process. It requires something you know (like a password) and something you have (like a smartphone) to grant access. This makes it significantly harder for an unauthorized person to gain access.

Now, imagine that after entering your password, you are prompted to enter a code sent to your mobile device. This code is typically generated by an app like Google Authenticator or sent via SMS. 

Public Key Infrastructure (PKI)

Public Key Infrastructure (PKI) uses pairs of keys (public keys and private keys) to authenticate users remotely. The public key can be shared with anyone, but the private key is kept secret. 

PKI is a trust system in which everyone agrees on a set of rules and technologies to ensure secure, authenticated communications. It is like a digital ID card system. 

Let’s illustrate how PKI works with an example. Say you're setting up a secure communication channel for a web service. The first step is to generate a key pair. Here’s a simple way to do it using OpenSSL:

openssl genrsa -out private_key.pem 2048
openssl rsa -in private_key.pem -pubout -out public_key.pem

The `private_key.pem` is your secret key, and `public_key.pem` is the one you can share.

Next, you need a Certificate Authority (CA). The CA is like the trusted middleman that vouches for the identity of the key holder. It signs certificates that bind public keys to entities (like servers or users). Here’s how you generate a self-signed certificate:

openssl req -new -x509 -key private_key.pem -out certificate.pem -days 365

This certificate can then be used to authenticate your server. When a client wants to communicate securely with the server, it will use the server’s public key to encrypt a random session key. Only your server can decrypt this session key using its private key.

Biometric authentication

Biometric authentication uses your unique biological traits to verify your identity. This includes fingerprints, voice patterns, retinas, and facial features. Because biometrics are inseparable and unique to the individual, they are more secure than traditional multi-factor authentication methods.

When you use biometric authentication, the system stores this unique data and uses it to check that you are who you say you are. Let’s quickly discuss the different body features used for biometric authentication:

Facial recognition

Facial recognition uses your unique facial features to identify you. It’s used in smartphones, credit card payments, and even by law enforcement. 

When you set up facial recognition on your phone, for example, you position your face so the phone can capture a 3D map of your face. This map is stored securely and used the next time you want to unlock your phone.

Fingerprint recognition

Your fingerprint is unique and difficult to replicate. That is why it’s the most widely used biometric authentication method. It is used to unlock smartphones and access secured buildings. 

The system scans your fingerprint and matches it against what’s stored in its database. If it’s a match, you’re in. 

Eye recognition

Eye recognition uses the unique patterns in your iris or retina to verify that a user is who they claim to be. 

Although it’s highly accurate, eye recognition is difficult to implement. You’ll need fancy hardware, like an infrared light source and a special camera. This method is often used in high-security places like nuclear research facilities. 

Voice recognition

This biometric user authentication method uses your voice’s unique characteristics, including tone, pitch, and frequencies, to authenticate your identity. Banks commonly use it to verify that the person calling customer service is a legitimate customer. 

Gait recognition

Gait recognition is less commonly used than other biometric methods. It verifies users’ identity based on how they walk. Each person’s walking style is unique enough to be used for authentication.

Vein recognition

Vein recognition uses the pattern of blood vessels in your hand or finger to verify your identity. An infrared light maps these veins, which are unique to each person. This method is highly accurate, even more so than retina or iris recognition.

Single Sign-On (SSO).

Single Sign-On (SSO) allows users to securely authenticate with multiple applications and websites using just one set of credentials. It simplifies password management by requiring you to remember only one set of credentials, which means you can use a more complex password.

When you try to access an application or website (the Service Provider), SSO sends a token with information about you, like your email address, to the SSO system (the Identity Provider). The Identity Provider checks if you're already authenticated. If you are, it grants access to the Service Provider right away.

If you're not logged in, the Identity Provider will ask you to provide your credentials. This could be a simple username and password, or it might involve a more secure authentication method like a One-Time Password (OTP). 

Once your credentials are validated, the Identity Provider returns a token to the Service Provider confirming successful authentication. This token is passed through your browser to the Service Provider, which then validates it based on a trust relationship with the Identity Provider.

The downside of SSO is that if someone gets hold of your SSO credentials, they can access all your connected applications. Therefore, choosing an SSO solution that allows you to enforce additional security measures for sensitive applications is crucial.

RADIUS

RADIUS stands for Remote Authentication Dial In User Service. It is an Internet standard protocol that helps manage authentication, accounting, and IP services for remote users in a dial-up network.

When the RADIUS server receives your login request, it first checks to make sure it's valid. Then, it decrypts the data packet to retrieve your username and password. 

This info is passed onto a supporting security system—maybe a UNIX password file, Kerberos, or some custom security solution. Once authenticated, the RADIUS server tells the NAS what services you can use, like which IP address to assign you.

This is convenient for big companies with employees worldwide. It ensures everyone can log in with just one user ID, no matter where they dial in.

Here's a quick example in simple pseudo-code to give you an idea of the flow:

RADIUS also handles accounting. So, every time you log in or out, your session details are sent to a RADIUS accounting server, which logs everything. The accounting protocol is defined in RFC 2866.

TACACS+

Terminal Access Controller Access Control System Plus (TACACS+) is a protocol developed by Cisco. It builds on the older TACACS protocol but handles authentication, authorization, and accounting (AAA) separately. 

TACACs is mainly used for device administration, therefore, differs from RADIUS, which combines authentication and authorization.

One of the main features of TACACS+ is its encryption. It encrypts the entire communication between the client and server, including the user’s password. This protects sensitive information from sniffing attacks. 

TACACS+ also follows a client-server model. The client, either a user or a network device, requests a connection, and the server authenticates the user by verifying their credentials.

To understand how TACACS+ authentication works, imagine a laptop user trying to connect to a network-attached storage (NAS) device, like a router. The TACACS+ authentication process unfolds in several steps:

  • The user initiates the connection for authentication.
  • The router and user exchange authentication parameters.
  • The router sends these parameters to the server for authentication.
  • Based on the information provided, the server responds with a REPLY message.

Kerberos

The Kerberos authentication protocol uses a trusted third party to verify identities across an untrusted network. Like a club bouncer who checks IDs at the door to ensure only the right people get inside, Kerberos checks your credentials before letting you into the network. 

The core concepts of the Kerberos protocol are the Key Distribution Center (KDC), the Authentication Server (AS), and the Ticket Granting Server (TGS). The KDC is like the brain, coordinating everything. It has two parts: the AS and the TGS.

When you first log in, you enter your username and password. This information isn’t sent directly to the server; your password encrypts a request to the AS. 

If the AS can decrypt it correctly, it knows you’ve entered the correct password. It then sends you a Ticket Granting Ticket (TGT) and a session key.

The TGT is like a reusable ID card within the network. You use it every time you need access to a different service. You send it to the TGS, which verifies it and sends you a service ticket. This ticket is your pass to the specific service you want to access, like email or file sharing.

The Kerberos remote user authentication process might seem complex, but it’s all about security. It minimizes the number of times your password is sent over the network, so once you've logged in, you don't have to keep sending it.

OAuth and OpenID Connect.

OAuth and OpenID Connect are essential protocols for remote user authentication that often work hand-in-hand. OAuth 2.0 is the backbone of the two protocols. It is a framework that allows third-party services to exchange access tokens on your behalf without sharing your password. 

Suppose you want a third-party app to read your Gmail emails. Instead of giving the app your Gmail password (which is risky), OAuth lets you authenticate via Google, and Google provides the app with an access token. The app then uses this token to access your emails, but only within the permissions you've granted it.

Here's a quick example of how an OAuth 2.0 authorization flow works:

  • The user clicks "Login with Google" on the third-party app.
  • The app sends a request to Google's OAuth 2.0 server.
  • Google presents a login screen. The user logs in.
  • Google asks the user if they want to grant the app specific permissions.
  • User consents. Google sends an authorization code to the app.
  • The app exchanges the authorization code for an access token.
  • The app can now use the access token to access the user's Gmail data.

On the other hand, OpenID Connect (OIDC) is a layer on top of OAuth 2.0 that adds identity verification. While OAuth is all about app authorization, OpenID Connect is about user authentication. It simplifies the process of logging into apps, making “Sign in with Google” or “Sign in with Facebook” possible.

OIDC extends the OAuth authorization flow by adding an ID token, a JSON Web Token (JWT). This token contains information about the user, such as their name and email address, and it's signed by the authorization server to ensure its integrity.

Here’s how the OIDC flow builds on OAuth:

  • The user clicks "Login with Google" on the third-party app.
  • The app sends a request to Google's OAuth 2.0 server with an additional scope parameter: `openid`.
  • Google presents a login screen. The user logs in.
  • Google asks the user if they want to grant the app specific permissions.
  • User consents. Google sends an authorization code to the app.
  • The app exchanges the authorization code for an access token and an ID token.
  • The app uses the access token to access the user's Gmail data and the ID token to identify the user.

Common threats to remote user authentication

Phishing

Phishing is when attackers create fake login pages that look identical to legitimate ones and trick users into entering their credentials. An example is when you receive an email that looks like it's from your bank.

The fake email urges you to log in to verify a transaction. When you click the link, you are taken to a bogus site designed to capture your login details.

Man-in-the-middle (MITM)

MITM attacks happen when attackers intercept data between your device and an online service, such as when connecting to a public Wi-Fi at a coffee shop. 

The so-called man-in-the-middle can steal your credentials or inject malicious code. This is why using HTTPS to encrypt data during transmission is crucial. However, attackers sometimes use fake SSL certificates to trick users into thinking they're on a secure site. 

Brute force attacks

Attackers might use software to try thousands of password combinations until they get the correct one. This is why it's essential to have strong, complex passwords and use multi-factor authentication (MFA). 

Session hijacking

When you log into a website, a session ID is created and stored in a cookie. If an attacker can steal that cookie, they can impersonate you. This is how a session hijacking attack occurs.

For instance, if you log in to your email and someone hijacks your session, they could read, send, and delete your emails as if they were you. Secure, encrypted connections and regularly updating your software can help mitigate these risks.

Weak passwords

Weak passwords, like "password123" or "admin", are easy for attackers to guess. Password managers can help users generate strong passwords and store them securely.

More posts

GET STARTED

A WireGuard® VPN that connects machines securely, wherever they are.
Star us on GitHub
By clicking “Accept”, you agree to the storing of cookies on your device to enhance site navigation, analyze site usage, and assist in our marketing efforts. View our Privacy Policy for more information.