Nonce Cookie Authentication Replay Attack Prevention
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional three-party authentication protocols are vulnerable to replay attacks, where a malicious user can re-access a website using a legitimate user's prior authentication by exploiting browser history.
Innovation Solution
Incorporating a nonce mechanism, where the relying party sends a cookie with a nonce value that is verified by the supporting entity and returned with a validation token, ensuring that follow-up requests are validated by matching the nonce in the cookie with the one provided by the supporting entity, thus distinguishing valid requests from replay attempts.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If the relying party redirects the client to the supporting entity for authentication, then the authentication service can be performed by a specialized supporting entity, but the system becomes vulnerable to replay attacks where malicious users can re-access websites using prior authentication data
Solution Approach 1:
The relying party generates a nonce and includes it in the redirection response to the supporting entity before the authentication process completes. This preliminary action ensures that the nonce is available for inclusion in the final authentication request, preventing replay attacks by ensuring request freshness and binding the authentication to a specific transaction context
Solution Approach 2:
The nonce acts as an intermediary element that connects the relying party, supporting entity, and client. It is generated by the relying party, transmitted through the supporting entity, and verified by the relying party, serving as a mediator that binds the authentication process to a specific transaction and prevents unauthorized replay attempts
Data Source
AI summary
A client is redirected by a relying party to the supporting entity (such as an identity or claims provider). The relying party also sends a cookie that includes a nonce, and another copy of the nonce in a redirection context (e.g., in a context string). The client then communicates with the supporting entity to facilitate the supporting service, whereupon the supporting entity sends a validation token back to the client evidencing completion of the supporting service. The supporting party also sends the nonce back as part of the redirection context (e.g., in a context string). The client then sends a followup service request that includes the cookie, the nonce returned by the supporting entity, and the validation token to the relying party. The relying party may compare the nonce in the cookie with the nonce returned by the supporting entity to verify that the request is valid.


