2015-06-08 3 views
1

У меня есть приложение весны, которое ведет переговоры с сервером rabbitmq. Обмен сообщениями происходит через протокол STOMP. Мой вопрос: почему мое сообщение STOMP не расшифровано. Я загрузил и установил для него плагин STOMP. https://github.com/ficoos/wireshark-stomp-plugin (stomp.lua)Wireshark STOMP protocol dissector

И все же я вижу, что только я рассматриваю кодированное сообщение UTF-8, то есть не beein, представленное должным образом. Изображение, показывающее пробку

Есть ли способ, чтобы я мог точно/точно переписать то, что находится внутри сообщения?

enter image description here

enter image description here

Дополнение 25 июня 2015: Я, что я нашел свой ответ есть протокол веб-сокетов имеет то, что называется «маскирование ключ», который в основном говорит о том, что трафик от клиента к серверу должен быть закодированный с помощью этого значения случайной маскировки. Насколько я понимаю, это делается для того, чтобы избежать проблем с прокси-серверами. Теперь я считаю, что проблема связана с реализацией wirehark, т. Е. Wirehark правильно декодирует полезную нагрузку, т. Е. Явная текстовая часть поля Payload находится в поле Unmask Payload, но при выполнении TCP Streap пользовательский интерфейс скорее всего не принимает Unmask Значение полезной нагрузки, но значение «Полезная нагрузка», т.е. значения, предшествующие xor ключа маскировки. Я был бы очень признателен, если кто-то, кто знает, может подтвердить это. Таким образом, что будет в виду, что это ошибка или особенность (я не уверен) в Wireshark

https://tools.ietf.org/html/rfc6455#section-5.3

Дополнение J июл.

Добавлена ​​ссылка на примере файла трассировки https://yadi.sk/d/E1a6bPhfhfUAf

+0

Согласно спецификации, фрейм Stomp CONNECTED не имеет тела сообщения. Можете ли вы попытаться захватить кадр SEND или MESSAGE (с текстовой нагрузкой) в Wireshark? – mjn

+0

Я загрузил изображение wirehark на вопрос выше – Tito

+0

На картинке выше рамка MESSAGE я вижу, что то, что клиент отправляет на сервер, является gibrish. Есть ли способ декодировать это? Я имел в виду, что комментарий читается, потому что я имею в виду {"content:" Hello, aaaaaaassss! "} – Tito

ответ

2

Глядя на stomp.lua Плагин Lua, на который вы указали ссылку на github, похоже, что он был написан только для обработки сообщений STOMP, работающих изначально на TCP, и даже для этого вам нужно будет установить номер порта TCP для его декодирования в Edit-> Настройки-> Протокол-> STOMP (или щелкните правой кнопкой мыши и сделайте «Декод» e as ... ").

Но ваш скриншот имеет соединение с веб-разъемом, и да, который использует маскирующий ключ ... но Wireshark может фактически отмаскировать его. Wireshark покажет вам как маскированную, так и незамасленную полезную нагрузку в панели сведений о пакете. Но плагин stomp.lua не будет разбирать что-либо внутри этого, потому что я сказал ранее.

Если вам нужна помощь в получении stomp.lua для использования в websocket, я бы предложил разместить вопрос по телефону ask.wireshark.org или отправить по электронной почте [email protected]g. В любом случае это очень помогло бы, если бы вы могли разместить файл захвата образца (например, тот, что на вашем скриншоте), и предоставить ссылку на него.

+0

Я создал вопрос в https://ask.wireshark.org/questions/43861/wireshark-stomp-protocol-dissector, как вы предложили. Я не уверен, что я понимаю логику работы stomp на TCP, поскольку я вижу трафик с сервера на клиент, декодированный в пользовательском интерфейсе. скорее всего, это действительно проблема маскировки, но давайте подождем, пока кто-то на ask.wireshark.org не будет комментировать это сообщение – Tito

+0

. Я только что добавил пример файла трассировки. – Tito

+0

Логика для плагина, только рассекающего STOMP на родном TCP, - вот что Спецификация протокола STOMP говорит, что STOMP должен быть запущен. STOMP сам по себе является HTTP-подобным протоколом и может запускаться изначально на TCP точно так же, как HTTP и другие протоколы. Подробнее см. Https://stomp.github.io. Запуск его через websocket не соответствует спецификации для STOMP, как описано в http://jmesnil.net/stomp-websocket/doc/ – hadriel

Смежные вопросы