Skip to content

Archive

Authentication

99 articles
Cybersecurity 14 Sep 2026 6 min read

Mutual TLS Makes Client Identity Part of the Connection

A service can receive perfectly encrypted traffic from a client it should never have trusted. Ordinary server-authenticated TLS protects the channel and lets the client validate the server, but it does not automatically give the server a cryptographic identity for the caller. In machine-to-machine systems, that missing property is often filled by mutual TLS. Mutual TLS, commonly shortened to mTLS, extends the TLS handshake so that the server requests a certificate from the client. The client proves possession of the corresponding private key, and the server validates the presented certificate against an accepted trust policy. When that policy is tied to an application identity, the connection carries more than confidentiality and integrity: it also carries evidence about the peer that opened it.

Cybersecurity 13 Sep 2026 6 min read

Session Rotation Keeps Authentication From Inheriting an Attacker Chosen Identifier

A login can validate every credential correctly and still leave the resulting account exposed if the application keeps the same session identifier that existed before authentication. The defect is not in password checking or cryptography. It is in the transition from an anonymous browser state to an authenticated one. That transition matters because pre-authentication sessions are often easy to obtain. Applications create them for shopping carts, locale preferences, anti-abuse state, or ordinary framework bookkeeping. If an attacker can arrange for a victim to use an identifier already known to the attacker, and successful login preserves that identifier, the attacker can later present the same value and inherit the authenticated session.

Cybersecurity 13 Sep 2026 8 min read

Session Rotation Closes a Quiet Authentication Gap

A browser can arrive at a sign-in page with a session identifier that already existed before any credentials were presented. That is normal. Shopping carts, anti-abuse state, language preferences, and pre-authentication workflows often need server-side continuity. The security problem appears when successful authentication upgrades that same identifier instead of replacing it. At that moment, a token created for anonymous state becomes a bearer credential for an authenticated account. If another party already knows or controls the identifier, the login has upgraded their copy too. This is the essential shape of session fixation: the attacker does not need to steal a fresh authenticated session if the application can be persuaded to authenticate a session the attacker already possesses.

Cybersecurity 13 Sep 2026 8 min read

Password Reset Is an Authentication Ceremony

A password reset endpoint can be quieter than the login page and still hold more authority. A successful login proves possession of an existing credential. A successful reset replaces that credential, often after a single email link has crossed several systems outside the application’s direct control. That makes account recovery an authentication ceremony in its own right. Treating it as a support feature creates a dangerous asymmetry: the primary login path receives rate limits, multifactor checks, session controls, and detailed telemetry, while the recovery path is reduced to “email a token and accept a new password.”

Cybersecurity 13 Sep 2026 7 min read

Passkeys Move Authentication Trust Into Origin-Bound Credentials

A convincing phishing page can copy a login form almost perfectly. It can reproduce branding, layout, wording, and even a plausible domain name. With passwords, visual similarity is often enough to obtain a reusable secret. A passkey changes the decisive part of that exchange: the authenticator signs for the relying party it was registered with, rather than handing a credential string to whichever page asks for one. That distinction is more important than the absence of typing. Passkeys are built on WebAuthn credentials backed by asymmetric cryptography. The relying party stores a public key and related credential data; the authenticator retains or protects the corresponding private-key material. Authentication proves possession by signing fresh protocol data. The server does not need a password-equivalent secret that can be replayed after a database disclosure.

Cybersecurity 13 Sep 2026 8 min read

JWT Verification Must Bind Algorithm, Key, and Issuer

JWT Verification Must Bind Algorithm, Key, and Issuer A signed token can be cryptographically valid and still be unacceptable to the service receiving it. The signature answers a narrow question: the token bytes match a signature produced with a particular cryptographic key under a particular algorithm. Authorization depends on a larger set of facts, including who controls that key, which issuer is trusted, which audience the token targets, and which algorithms the application intended to accept.

Cybersecurity 13 Sep 2026 7 min read

JWT Verification Fails at the Algorithm Boundary

A JSON Web Token can carry a perfectly valid signature and still be unacceptable to the service receiving it. That distinction is easy to lose in systems where token verification is reduced to a library call that returns a boolean or a decoded claims object. JWT signatures establish a narrow fact: given a particular algorithm and key, the protected token bytes authenticate successfully. Authorization requires more. The verifier also has to decide which algorithms are permitted, which keys belong to the expected authority, which issuer produced the token, which service the token targets, whether its time constraints hold, and whether this class of token is valid for the operation at hand.

Cybersecurity 12 Sep 2026 9 min read

Throttle Authentication Attempts Without Locking Out Users

Password authentication exposes a public decision point: a client submits a claimed identity and a secret, then the server accepts or rejects the pair. Attackers can automate that decision point at a scale no human user can match. A simple request limit helps, but authentication traffic has unusual constraints. A limit tied only to an IP address can punish thousands of legitimate users behind one gateway. A limit tied only to an account lets an attacker deliberately block a victim from signing in. A permanent account lock can turn a guessing defense into a denial-of-service primitive.

Cybersecurity 12 Sep 2026 6 min read

Pin JWT Verification Algorithms

A JSON Web Token can carry an alg header that names a signing algorithm. That field describes the token, but it must not control the verifier’s security policy. An attacker can edit untrusted token bytes before verification, including header fields. The safe model is: the application chooses acceptable algorithms and keys from trusted configuration, then checks whether the token fits that policy. Put policy outside the token Suppose an API expects tokens signed with RS256. Its verifier should be configured for RS256 and the issuer’s trusted public key. It should not inspect alg and dynamically choose any cryptographic routine the token requests.

Cybersecurity 12 Sep 2026 6 min read

Passkeys Change the Shape of Account Recovery Risk

Passkeys can make the primary sign-in path markedly harder to phish while leaving an older recovery path almost untouched. That asymmetry matters. An account protected by a device-bound or synced passkey may still accept a password reset through email, a support-assisted identity check, or a fallback factor with weaker resistance to social engineering. The result is not a flaw in passkeys. It is an architectural shift: once routine authentication stops depending on a reusable secret, attackers have more incentive to target the mechanisms that restore access after credentials are unavailable. Security teams that evaluate only the sign-in ceremony can miss the route that now carries much of the residual account-takeover risk.

Cybersecurity 12 Sep 2026 10 min read

Make Password Reset Tokens Single Use

Password recovery is an authentication path with unusual power. A reset link can let its holder replace an account password without presenting the current password, so the token inside that link must be treated as a short-lived credential. A strong token is not enough by itself. If the same token remains valid after a successful reset, a copied link can be replayed. If two requests can validate the same token before either request marks it used, both may pass. If a database stores raw reset tokens, a database disclosure can turn pending recovery records into immediate account access.

Cybersecurity 11 Sep 2026 9 min read

Manage Concurrent Sessions Without Breaking Legitimate Use

A user signs in on a laptop, then on a phone, and later on a work computer. All three sessions may be legitimate. If one device is lost or a session token is stolen, though, the same account can also have a session the user no longer controls. A simple rule such as “allow only one login at a time” looks like a security control, but it mixes two different questions: how many sessions exist, and whether each session is still trustworthy. Strict concurrency limits can disrupt legitimate users while doing little to identify the session that actually needs to be removed.

Cybersecurity 11 Sep 2026 9 min read

Keep Bearer Tokens Out of URLs

A bearer token grants access to whoever presents it successfully. That makes its storage and transport path part of the authentication design. If an application places such a token in a URL, the credential can travel into systems that were built to record or process URLs rather than protect secrets. The immediate request may still use HTTPS. The problem is what happens around that request: server access logs, reverse proxies, monitoring tools, browser history, support captures, and analytics pipelines can all handle URL data. A token copied into those places gains more exposure paths and can remain there long after the request finishes.

Cybersecurity 11 Sep 2026 9 min read

Bound Password Verification Work to Resist Resource Exhaustion

Password hashing is intentionally expensive. That cost makes each offline password guess more expensive after a verifier database is stolen. The same property creates an operational risk on a live login endpoint: an unauthenticated client can ask the server to perform costly password verification again and again. A service that treats every login attempt as unlimited work can exhaust CPU, memory, worker slots, or downstream capacity before an attacker needs a valid account. The defensive goal is not to make password hashing cheap. It is to preserve a suitable password-hashing cost while placing firm limits around how much verification work the service will accept at once.

Cybersecurity 10 Sep 2026 10 min read

Validate JWTs for the Context That Will Use Them

A service receives a JSON Web Token, verifies its signature successfully, reads the user identifier, and accepts the request. That sounds reasonable, but one question is still unanswered: was this token issued for this service and this purpose? A valid signature proves something narrow. Under the expected cryptographic scheme and key, it shows that the protected token content has not been changed since it was signed by whoever controls that signing key. It does not by itself prove that your API is an intended recipient, that the token is still within its accepted lifetime, or that a token created for one workflow should be accepted by another.

Cybersecurity 10 Sep 2026 8 min read

Use Password Managers as a Phishing Signal

A phishing page can copy a real login screen closely enough that visual inspection is unreliable. The logo, wording, colours, and layout may all look familiar while the page is hosted somewhere the legitimate service does not control. If a user types a password there, the look of the page has done nothing to protect the credential. A password manager can add a different kind of signal. Instead of deciding from appearance alone, it can associate a saved credential with the website where that credential belongs and offer it only when its matching rules are satisfied. When a familiar login page appears but the expected credential is not offered, that mismatch can be a reason to stop and inspect the destination before entering anything.

Cybersecurity 10 Sep 2026 12 min read

Treat MFA Recovery Codes as Real Credentials

Multifactor authentication can fail for ordinary reasons: a phone is lost, a hardware key breaks, or a device is replaced before an authenticator is migrated. Recovery codes give users a way back into an account without asking support staff to improvise an identity check. That convenience creates a security boundary of its own. If a recovery code can bypass the normal second factor, anyone who obtains that code may be able to do the same. A recovery system that is easier to attack than the authentication it replaces can quietly become the preferred path into the account.

Cybersecurity 10 Sep 2026 10 min read

Reject Replayed Sensitive Requests with Freshness and Uniqueness

A request can be authentic and still be unsafe to execute twice. Suppose a service accepts a correctly authenticated instruction to change a payout destination, approve a privileged action, or trigger another sensitive operation. If someone can capture that valid request and submit the same authenticated message again, checking its credentials or signature a second time may produce the same answer: the request is genuine. The server still needs to decide whether it is current and whether it has already been used.

Cybersecurity 10 Sep 2026 10 min read

Rate Limit Login Attempts Without Creating Easy Lockouts

A login endpoint has to accept wrong passwords. Users mistype them, password managers can hold stale credentials, and old devices sometimes retry automatically. An attacker can use the same interface to make thousands of guesses unless the application limits how quickly authentication can be attempted. The obvious fix is to lock an account after several failures. That slows guessing, but it creates another problem: anyone who knows a username may be able to keep that user locked out by deliberately submitting bad passwords.

Cybersecurity 10 Sep 2026 10 min read

Rate Limit Login Attempts Without Creating a Lockout Weapon

A login endpoint has an awkward property: before authentication succeeds, it must accept requests from people whose identity it hasn’t proved yet. That makes it a natural target for automated password guessing. If the endpoint allows unlimited attempts, an attacker gets unlimited opportunities to try credentials. If it permanently locks an account after a few failures, the attacker may be able to lock out the legitimate user instead. Login rate limiting is the middle ground. It reduces how quickly repeated authentication attempts can be made, but the design matters. A useful limiter needs to constrain attacks aimed at one account, attacks coming from one source, and distributed attacks without turning every false positive into a long outage.

Cybersecurity 10 Sep 2026 10 min read

Do Not Bind Web Sessions to IP Addresses

A stolen session cookie can let someone use an account without knowing the user’s password. That makes a simple defense sound attractive: remember the IP address used at login and reject the session whenever the address changes. The problem is that an IP address is usually a property of the user’s current network path, not a stable property of the user or device. Legitimate addresses change, while different people can share one address. Strict IP binding can therefore lock out real users without reliably stopping an attacker.

Cybersecurity 10 Sep 2026 9 min read

Design Push MFA to Resist Approval Fatigue

A push notification can make multi-factor authentication feel effortless: enter a password, tap Approve on a registered device, and continue. The same convenience creates a problem when the approval prompt does not require the user to prove which login they are approving. If an attacker obtains a password and can repeatedly trigger MFA requests, the legitimate user may receive prompts they did not initiate. A tired, distracted, or confused user may eventually approve one. This is commonly called MFA fatigue or push fatigue.

Cybersecurity 10 Sep 2026 10 min read

Consume One-Time Security Tokens Atomically

A password-reset link may be described as “single use”, yet two requests arriving almost together can both see the token as unused. If each request then continues independently, the application can perform a security-sensitive action twice even though its data model contains a used flag. This is a concurrency problem with security consequences. The same pattern can affect account invitations, email-verification links, recovery codes, approval links, and other credentials that are supposed to grant authority once.

Cybersecurity 10 Sep 2026 12 min read

Bind OAuth Callbacks to the Login That Started Them

An OAuth callback can look valid even when it belongs to the wrong browser interaction. The authorization server may have issued a real code, the redirect URI may be correct, and the code exchange may succeed. Yet if the client cannot tell whether this browser actually started that authorization flow, it can attach the wrong external identity or authorization to the current session. This is a form of cross-site request forgery at the OAuth callback. In a login flow, one possible consequence is login CSRF: a victim can end up signed into the client as an account associated with someone else. The details vary by application, but the defensive question stays the same: does this callback belong to a login transaction that this user agent started?