A reflection attack is a flaw in mutual authentication protocols that allows an attacker to impersonate a legitimate user without knowing the secret key. This happens when an attacker can bounce, or 'reflect,' a server's own challenge back to it using a second connection, tricking the system into granting access.
In a typical mutual authentication setup, both the client and server share a secret key. To prove identity without sending the key directly, they exchange random challenges that must be encrypted with that shared secret. The vulnerability arises when the same key is used across multiple sessions and the protocol design allows an attacker to use the server's response from one connection to answer a challenge in another. Here’s how the attack works in practice: An attacker initiates a connection to the server, posing as a legitimate user, and receives a challenge. Instead of solving it, the attacker opens a second connection to the server. In this new session, the attacker sends the server's original challenge as its own. The server helpfully encrypts it and sends the response back, which the attacker then uses to correctly answer the first connection's challenge. This bypasses authentication because the server essentially authenticates itself, granting the attacker access.
Impact: Gain Privileges or Assume Identity
The primary result of reflection attacks is successful authentication with a target machine -- as an impersonated user.
cjavaMedium