Skip to main content

Module handshake

Module handshake 

Source
Expand description

This module implements the Noise NN handshake for IPC. Note: NN does not provide any sort of authentication, and the keys each side uses are just trusted. This means that a MITM with active tampering is possible and accepted. Thereby it is necessary that either the threat model of the application using IPC assumes that the IPC channel is not exposed to MITM attacks, or that the transport layer prevents MITM with active tampering.

Protocol flow:

  1. Initiator -> Responder: HandshakeStartMessage { ciphersuite, noise_frame }
  2. Responder -> Initiator: HandshakeFinishMessage { noise_frame }

After both messages are processed, each side derives split transport keys from the handshake state and constructs a PersistentTransportState.

Structsยง

HandshakeFinishMessage ๐Ÿ”’
HandshakeInitiator ๐Ÿ”’
HandshakeResponder ๐Ÿ”’
HandshakeStartMessage ๐Ÿ”’
ReadError ๐Ÿ”’
WriteError ๐Ÿ”’

Enumsยง

CipherSuite ๐Ÿ”’