如何在zmq(本地套接字)中获取调用者pid

时间:2014-09-04 17:51:41

标签: linux sockets ipc zeromq

我是zmq的新手。我在基于Linux的操作系统中使用相同的本地IPC(套接字是AF_UNIX类型) 但我找不到一种方法来获取呼叫者(客户端)进程ID。有没有办法使用zmq找到相同的? (找到调用者的pid是我的访问控制要求必须的,如果zmq不提供相同的话,那么我应该切换到dbus) 请帮帮我。

1 个答案:

答案 0 :(得分:1)

忘掉大多数低级插座的设计和担忧。在天空中思考得更高。 ZeroMQ是一种相当高级的消息传递概念。所以你对大多数socket-io问题都不用担心。

有关这些ZMQ原则的更多信息,请阅读Pieter Hintjens的设计格言及其资源丰富的书籍“Code Connected,Vol.1”。

也就是说,解决方案完全由您控制

解决方案

创建一个特定于问题的多zmq-socket / multi-zmq模式(由应用程序级逻辑使用和编排的多个zmq-primitives)作为特定于问题的正式通信握手。

确保 <sender>将自己的PID添加到邮件中。

使用来自sender方的预注册receiver通过另一个注册表/ auth-socket-pattern重新/授权,以避免假冒/被盗{{1}下的欺骗性攻击} -identity。

根据您的ProblemDOMAIN调整您的访问控制策略,使用和实施任何级别的加密安全正式握手协议进行身份验证或密钥交换,以将您的访问控制策略安全性提升到足够的优势(包括MIL-性病等级)。