CWE-322: Key Exchange without Entity Authentication
Weakness ID: 322
The software performs a key exchange with an actor without verifying the identity of that actor.
Performing a key exchange will preserve the integrity of the information sent between two entities, but this will not guarantee that the entities are who they claim they are. This may enable a set of "man-in-the-middle" attacks. Typically, this involves a victim client that contacts a malicious server that is impersonating a trusted server. If the client skips authentication or ignores an authentication failure, the malicious server may request authentication information from the user. The malicious server can then use this authentication information to log in to the trusted server using the victim's credentials, sniff traffic between the victim and trusted server, etc.
Time of Introduction
Architecture and Design
Technical Impact: Bypass protection
No authentication takes place in this process, bypassing an assumed
protection of encryption.
Technical Impact: Read application
The encrypted communication between a user and a trusted host may be
subject to a "man-in-the-middle" sniffing attack.
Likelihood of Exploit
Many systems have used Diffie-Hellman key exchange without
authenticating the entities exchanging keys, leading to man-in-the-middle
attacks. Many people using SSL/TLS skip the authentication (often
Phase: Architecture and Design
Ensure that proper authentication is included in the system
Understand and properly implement all checks necessary to ensure the
identity of entities involved in encrypted communications.