Skip to content

Key Exchange Protocol

monnand edited this page Jun 26, 2013 · 1 revision

Background

Why we need key exchange protocol

Before any communication, the communication peers need to agree on a key used to encrypt the data, which will be exchanged later.

Assumptions

  • The client (the peer which initiates the communication) knows the RSA public key of the server.
  • We do not need to hide the fact of communication. i.e. no Protocol Obfuscation is needed.

Algorithms we need during the key exchange protocol

  • RSASSA-PSS protocol mentioned section 8.1, RFA3447.
  • Diffie-Hellmen key exchange algorithm with group 14. The reference implementation if this algorithm is here (it is used in uniqush-conn.)
  • HMAC
  • SHA256

Reference Implementation

The reference implementation of key exchange protocol could be found in uniqush-conn, proto/keyex.go.

Clone this wiki locally