[zeromq-dev] ZeroMQ Curve Publish Subscribe

alex. thissideup at riseup.net
Thu Oct 13 17:00:01 CEST 2016


Hi Roy,

it seems you are convoluting how ZeroMQ and CurveMQ work. ZMQ simply
abstracts how clients talk over a network. Pub-Sub is a fine example of
that since you, as a developer can write programs where clients can
fan-out messages, i.e. from one node to many others in one direction.
This does not mean, however, that this is what actually happens. In
fact, ZMQ opens as many (bidirectional) TCP connections between the
publisher and all the subscribers and sends pretty much the same message
from the publisher to all the subscribers, each in its own connection.

What this means for encryption is that the high-level message you send
is actually encrypted with the public key of each subscriber and then
sent individually. In fact, a single subscriber could never decrypt a
message that was sent to another subscriber.

TL;DR it just _seems_ as though the publisher is "encrypting" the
message once with his private key, but in fact the message is encrypted
as many times as there are subscribers.

Cheers!
alex.

On 13.10.2016 08:59, LENFERINK Roy wrote:
> Hello everyone,
> 
>  
> 
> Currently I’m investigating the possibilities of ZeroMQ.
> 
>  
> 
> At the moment, I have created a publisher subscribe system with curve
> enabled.
> 
>  
> 
> This is the code I used to get it up and running (got it from Pieter
> hintjes his blog):
> 
> http://pastebin.com/LjV8aKLG
> 
>  
> 
> At the moment, the publisher is encrypting data with his private key and
> 
> different subscribers can decrypt the data using the publishers public key.
> 
> This is more ‘authenticating’ data than ‘encrypting’ data.
> 
>  
> 
> I would like to swap the keys, so, the publisher should encrypt the data
> 
> with his public key, and the subscribers should decrypt the data using
> 
> the private key of the publisher.
> 
>  
> 
> I have tested it with just loading the public key into the publishers
> program
> 
> and then load the private key into the subscribers program and apply
> this key to the
> 
> subscribers socket, but this is constantly giving me a message:
> 
> “CURVE I: cannot open client HELLO – wrong server key?”
> 
>  
> 
> Is it possible to use a public key for encrypting data (publisher
> socket) and
> 
> the private key for decrypting data (subscriber socket) with the
> architecture of ZeroMQ ?
> 
>  
> 
> Many thanks in advance,
> 
> Roy
> 
> ------------------------------------------------------------------------------------------------------------
> Disclaimer:
> 
> If you are not the intended recipient of this email, please notify the sender and
> delete it. 
> Any unauthorized copying, disclosure or distribution of this email or its
> attachment(s) is forbidden. 
> Thales Nederland BV will not accept liability for any damage caused by this email or
> its attachment(s). 
> Thales Nederland BV is seated in Hengelo and is registered at the Chamber of
> Commerce under number 06061578.
> ------------------------------------------------------------------------------------------------------------
> 
> 
> 
> _______________________________________________
> zeromq-dev mailing list
> zeromq-dev at lists.zeromq.org
> http://lists.zeromq.org/mailman/listinfo/zeromq-dev
> 



More information about the zeromq-dev mailing list