Encryption

0MQ is not as such secure, any more than its underlying transports are secure. That is, you don't expect TCP to do encryption, and neither does 0MQ. However, 0MQ applications that carry data across the Internet _do_ need security and there's been quite a lot of talk on how to do this.

The options seem to be:

  • Use a VPN (horrid, for most people except network admins who like this)
  • Use per-message encryption (as PyZMQ does but it leaves the question of key exchange unsolved)
  • Use TLS/SSL as a transport (seems cleanest but is incompatible with multicast and the notion of hops over devices)
  • Tunnel over a secure protocol, e.g. HTTPS (should be interesting, especially to make 0MQ accessible to web applications)

Comments: 5

Add a New Comment