Skip to content

Unauthenticated RSA+AES key exchange for encrypted Client/Server communication over TCP.

Notifications You must be signed in to change notification settings

kez0r/RSA-AES-Handshake

Repository files navigation

RSA/AES Handshake

An example of an unauthenticated Client/Server public key exchange for further encrypted communication.

Methodology:

  1. [Client] generates a new RSA public/private key pair.
  2. [Client] connects to [Server] and transmits RSA public key.
  3. [Server] generates new AES key and initialization vector.
  4. [Server] encrypts AES key/iv with RSA public key from [Client] and transmits "handshake token".
  5. [Client] decrypts "handshake token" with RSA private key and sets session AES variables.
  6. [Client] encrypts "challenge response" with session AES variables and transmits.
  7. [Server] validates challenge response and responds with status (and restarts on failure).
  8. [Client] verifies challenge response status.

[Client] & [Server] now agree on session AES variables are can proceed to communicate on an encrypted channel.

About

Unauthenticated RSA+AES key exchange for encrypted Client/Server communication over TCP.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages