Как определить физический адрес входящих соединений в NetMQ? - PullRequest
0 голосов
/ 10 мая 2018

В примере router-дилер для NetMQ мы видим, что клиенты могут устанавливать свою собственную идентификацию. Это может быть полезно для целей регистрации. Однако, что если я управляю только кодом для сервера (маршрутизатора), а не кодом для клиентов (дилеров)? Что если некоторые клиенты не удосуживаются установить идентификацию таким образом, чтобы это значило для моего сервера? Как включить физический адрес в мои журналы, если клиент не указывает его мне в сообщении или личности?

Если вы знаете только ответ, основанный на какой-то другой реализации ZeroMQ, мне будет интересно услышать его, но в конечном итоге я хочу чего-то, что может быть достигнуто в NetMQ.

1 Ответ

0 голосов
/ 10 мая 2018

Как определить физический адрес входящих соединений в NetMQ?

Ну, похоже, нет магии, готовой сделать это:

В то время как API в состоянии до v4.2 + уже включили некоторую справку для идентификаторов настроек, что дает некоторый шанс для кода уровня приложения узнать о «происхождении» некоторых сообщений (см. Документацию для все детали и ограничения более низкого уровня) не все могут использовать архетип Scalable Formal Pattern Pattern.

Далее, весь цирк также зависит от свободной воли включать (и / или не включать) такую ​​«вспомогательную» часть информации в обработку потока сообщений. Таким образом, концепция идентификационных фреймов является своего рода слабым принципом, и ваш сторонний код уровня приложения может только надеяться и молиться, чтобы получить некоторые из них, но, в принципе, не имеет никакой гарантии для получения любого такого, как кажется нулевой политикой удаленного применения. доступно для этого в API v4.2 в 2018 / Q2.


Как включить физический адрес в мои журналы, когда клиент не указывает его мне в сообщении или личности?

[Правовой аспект] с убеждением, что для этого имеются исключительно юридически обоснованные причины,
элементарное уважение
к Праву человека на предоставление ИДЕНТИЧНОСТИ или нет
применяется здесь, не так ли?

Помимо ГСДП и других правовых рамок, обеспечивающих защиту конфиденциальности, эта часть намного сложнее, даже если оценивать ее как техническую проблему, есть много доступных классов транспорта, по крайней мере, начиная с 2018-го квартала:
они: { inproc:// | ipc:// | tcp:// | pgm:// | epgm:// | vmci:// }, поэтому любая сторона вряд ли будет оснащена каким-либо магическим перехватчиком для обнаружения любого / всех вышеупомянутых требуемых отображений мягкого знания (фактически отправленных или не отправленных строк идентификаторов) с фактический декодер транспортного класса, чтобы нюхать.

Далее, не все соединения легко сниффы, не так ли?


в конечном итоге я хочу чего-то, что может быть достигнуто в NetMQ.

С учетом вашего заявления о том, что ваш домен контроля не содержит удаленных (клиентских) агентов в общей , делать особо нечего, кроме огромного шпионажа MITM / intel усилия по продвижению были мотивированы на разработку всех транспортных классов, охватывающих проверку на проникающую конфиденциальность по уже сложным топологиям возможных ячеек соединения «многие ко многим», но с дополнительным уровнем устойчивости к любым «фальшивым» идентификаторам и множеству других проблем, которые необходимо сделать. такие усилия функциональны, универсальны, ненавязчивы и достаточно надежны, чтобы сделать их осмысленными
(
если еще не знаете, пожалуйста, обратите внимание - как показано в иерархии [ ZeroMQ менее чем за пять секунд ] Раздел - one ZeroMQ- Context() - экземпляр может иметь много zmq.Socket() -экземпляров, каждый из которых может иметь много -AccessPoint-s, каждый из которых может использовать другой транспортный класс и может получить .bind()/.connect() -ed к многим различным удаленным одноранговым узлам AccessPoint-s, так что действительно существует дикий беспорядок морфологий топологии : o)
)

...