在 ZMQ 套接字上接收来自未经身份验证的发件人的消息
Receiving message on ZMQ socket from unauthenticated sender
我有一个 ZMQ pub/sub 架构,其中有一个 sub 和许多 pub。这些酒吧之一是外部的,因此我使用 ZMQ CURVE 加密了传入的消息。然而,其余的都是内部发布,所以我不想因为不必要的开销而加密消息。我的问题是,是否可以让子套接字允许所有消息(加密或不加密)?
通过测试,我发现一旦选项
{ zmq.CURVE_SERVER: 1,
zmq.CURVE_SECRETKEY: server_private_key
}
和
{ zmq.CURVE_SERVERKEY: server_public_key,
zmq.CURVE_PUBLICKEY: client_public_key,
zmq.CURVE_SECRETKEY: client_private_key
}
分别应用于子套接字和发布套接字,不接受未经身份验证的消息。
如果问,同一个 SUB
端的 AccessPoint 是否可以在安全方面发挥变色龙的作用 - 用于某些人而不用于其他人说到点对点的安全设置,我就得回答没有。
如果问如何针对目标进行一些设置,我将从测试开始:
SUB = aCtx.Socket( zmq.SUB )
SUB.setsockopt( ... )
SUB.bind( aNonSecureLocalAccessPOINT ) # for zmq.PLAIN
SUB.bind( anotherSecuredAccessPOINT ) # for zmq.CURVE ...
这将按要求同时解决性能和安全问题
我有一个 ZMQ pub/sub 架构,其中有一个 sub 和许多 pub。这些酒吧之一是外部的,因此我使用 ZMQ CURVE 加密了传入的消息。然而,其余的都是内部发布,所以我不想因为不必要的开销而加密消息。我的问题是,是否可以让子套接字允许所有消息(加密或不加密)?
通过测试,我发现一旦选项
{ zmq.CURVE_SERVER: 1,
zmq.CURVE_SECRETKEY: server_private_key
}
和
{ zmq.CURVE_SERVERKEY: server_public_key,
zmq.CURVE_PUBLICKEY: client_public_key,
zmq.CURVE_SECRETKEY: client_private_key
}
分别应用于子套接字和发布套接字,不接受未经身份验证的消息。
如果问,同一个 SUB
端的 AccessPoint 是否可以在安全方面发挥变色龙的作用 - 用于某些人而不用于其他人说到点对点的安全设置,我就得回答没有。
如果问如何针对目标进行一些设置,我将从测试开始:
SUB = aCtx.Socket( zmq.SUB )
SUB.setsockopt( ... )
SUB.bind( aNonSecureLocalAccessPOINT ) # for zmq.PLAIN
SUB.bind( anotherSecuredAccessPOINT ) # for zmq.CURVE ...
这将按要求同时解决性能和安全问题