CAPEC Details
Name Reflection Attack in Authentication Protocol
Likelyhood of attack Typical severity
High High
Summary An attacker can abuse an authentication protocol susceptible to reflection attack in order to defeat it. Doing so allows the attacker illegitimate access to the target system, without possessing the requisite credentials. Reflection attacks are of great concern to authentication protocols that rely on a challenge-handshake or similar mechanism. An attacker can impersonate a legitimate user and can gain illegitimate access to the system by successfully mounting a reflection attack during authentication.
Prerequisites The attacker must have direct access to the target server in order to successfully mount a reflection attack. An intermediate entity, such as a router or proxy, that handles these exchanges on behalf of the attacker inhibits the attackers' ability to attack the authentication protocol.
Execution Flow
Step Phase Description Techniques
1 Experiment The attacker opens a connection to the target server and sends it a challenge
2 Experiment The server responds by returning the challenge encrypted with a shared secret as well as its own challenge to the attacker
3 Experiment Since the attacker does not possess the shared secret, they initiate a second connection to the server and sends it, as challenge, the challenge received from the server on the first connection
4 Experiment The server treats this as just another handshake and responds by encrypting the challenge and issuing its own to the attacker
5 Experiment The attacker now receives the encrypted challenge on the second connection and sends it as response to the server on the first connection, thereby successfully completing the handshake and authenticating to the server.
Solutions The server must initiate the handshake by issuing the challenge. This ensures that the client has to respond before the exchange can move any further The use of HMAC to hash the response from the server can also be used to thwart reflection. The server responds by returning its own challenge as well as hashing the client's challenge, its own challenge and the pre-shared secret. Requiring the client to respond with the HMAC of the two challenges ensures that only the possessor of a valid pre-shared secret can successfully hash in the two values. Introducing a random nonce with each new connection ensures that the attacker cannot employ two connections to attack the authentication protocol
Related Weaknesses
CWE ID Description
CWE-301 Reflection Attack in an Authentication Protocol
CWE-303 Incorrect Implementation of Authentication Algorithm
CWE-718 OWASP Top Ten 2007 Category A7 - Broken Authentication and Session Management
Related CAPECS
CAPEC ID Description
CAPEC-114 An attacker obtains unauthorized access to an application, service or device either through knowledge of the inherent weaknesses of an authentication mechanism, or by exploiting a flaw in the authentication scheme's implementation. In such an attack an authentication mechanism is functioning but a carefully controlled sequence of events causes the mechanism to grant access to the attacker. This attack may exploit assumptions made by the target's authentication procedures, such as assumptions regarding trust relationships or assumptions regarding the generation of secret values. This attack differs from Authentication Bypass attacks in that Authentication Abuse allows the attacker to be certified as a valid user through illegitimate means, while Authentication Bypass allows the user to access protected material without ever being certified as an authenticated user. This attack does not rely on prior sessions established by successfully authenticating users, as relied upon for the "Exploitation of Session Variables, Resource IDs and other Trusted Credentials" attack patterns.
CAPEC-272 An adversary subverts a communications protocol to perform an attack. This type of attack can allow an adversary to impersonate others, discover sensitive information, control the outcome of a session, or perform other attacks. This type of attack targets invalid assumptions that may be inherent in implementers of the protocol, incorrect implementations of the protocol, or vulnerabilities in the protocol itself.