Reflection attack

In computer security, a reflection attack is a method of attacking a challenge–response authentication system that uses the same protocol in both directions. That is, the same challenge–response protocol is used by each side to authenticate the other side. The essential idea of the attack is to trick the target into providing the answer to its own challenge.[1]

Attack

The general attack outline is as follows:

  1. The attacker initiates a connection to a target.
  2. The target attempts to authenticate the attacker by sending it a challenge.
  3. The attacker opens another connection to the target, and sends the target this challenge as its own.
  4. The target responds to the challenge.
  5. The attacker sends that response back to the target on the original connection.

If the authentication protocol is not carefully designed, the target will accept that response as valid, thereby leaving the attacker with one fully authenticated channel connection (the other one is simply abandoned).

Solution

Some of the most common solutions to this attack are described below:

  • The responder sends its identifier within the response so, if it receives a response that has its identifier in it, it can reject it.[2]
  1. Alice initiates a connection to Bob.
  2. Bob challenges Alice by sending a nonce N. B → A: N
  3. Alice responds by sending back the MAC calculated on her identifier and the nonce using the shared key Kab. A → B: MACKab{A, N}
  4. Bob checks the message and verifies the MAC, making sure it is from Alice and not a message he had sent in the past by making sure that it verifies with A and not B, and on the nonce which is the same as the one he sent in his challenge, then he accepts the message.
  • Require the initiating party to first respond to challenges before the target party responds to its challenges.
  • Require the key or protocol to be different between the two directions.

See also

References

  1. ^ Computer Networks by Andrew S. Tanenbaum, 4th edition, ISBN 0-13-038488-7, pages 787-790.
  2. ^ Ross J. Anderson: Security Engineering: A Guide to Building Dependable Distributed Systems, 1st edition, page 21, ISBN 0-471-38922-6

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.