Рассекатель протокола Wireshark STOMP

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

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

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

введите здесь описание изображения

введите здесь описание изображения

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

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

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

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


person Tito    schedule 08.06.2015    source источник
comment
Согласно спецификации, кадр Stomp CONNECTED не имеет тела сообщения. Можете ли вы попытаться захватить кадр SEND или MESSAGE (с текстовой полезной нагрузкой) в Wireshark?   -  person mjn    schedule 13.06.2015
comment
Я загружаю изображение wireshark на вопрос выше.   -  person Tito    schedule 18.06.2015
comment
На картинке выше показан кадр СООБЩЕНИЯ. Я вижу, что то, что клиент отправляет на сервер, является тарабарщиной. Есть ли способ расшифровать это? Я имел в виду, что ответ читаем, я имею в виду {content: Hello, aaaaaaassss!}   -  person Tito    schedule 18.06.2015
comment
@mjn есть идеи, почему это не работает? или, может быть, это уже функция, как задумано, то есть она должна быть двоичной, хотя я думал, что STOMP - это текстовый протокол.   -  person Tito    schedule 18.06.2015
comment
Я правильно понимаю, что розовый текст - это то, что вы хотите видеть расшифрованным? На самом деле я могу только догадываться, что это данные, которые относятся не к разговору STOMP, а к протоколу WebSocket. Может быть, Websocket оборачивает данные STOMP ведущей/конечной информацией? (В этом случае я бы также добавил тег websocket к вопросу)   -  person mjn    schedule 19.06.2015


Ответы (1)


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

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

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

person hadriel    schedule 02.07.2015
comment
я создал вопрос в ask.wireshark .org/questions/43861/ как вы предложили. Я не уверен, что понимаю логику работы Stomp на TCP, поскольку я вижу трафик от сервера к клиенту, декодированный в пользовательском интерфейсе. скорее всего, это действительно проблема с маскирующим ключом, но давайте подождем, пока кто-нибудь на ask.wireshark.org не прокомментирует это - person Tito; 04.07.2015
comment
я только что добавил пример файла трассировки - person Tito; 04.07.2015
comment
Логика для плагина, анализирующего STOMP только на собственном TCP, заключается в том, что спецификация протокола STOMP говорит, что STOMP следует запускать. STOMP сам по себе является HTTP-подобным протоколом и может изначально работать на TCP так же, как HTTP и другие протоколы. Подробности см. на странице stomp.github.io. Запуск через веб-сокет не соответствует спецификации STOMP, как описано в jmesnil.net/stomp-websocket/ документ - person hadriel; 04.07.2015