2010-01-24 4 views
4

Я хотел бы прочитать информацию, которую приложение java в Firefox отправляет на сайт через соединение ssl.Прочитайте информацию, которую мой компьютер отправляет по подключению ssl

Я использую WireShark, и я считаю, что, если я могу как-то сказать, расскажите проводу, какой ключ шифрования используется firefox, то wirehark сможет расшифровать сообщения ssl.

Тогда я точно буду получать информацию о том, что этот сайт получает о моем компьютере.

Приносим извинения, если вопрос неясен ... любые указатели на то, где начать поиск подсказок, будут оценены.

ответ

2

Не совсем связанное с программированием.

Однако для этого вам понадобится сертификат для сайта, к которому ваше приложение подключается, как к публичным, так и к частным ключевым частям - поэтому, если это не тот сайт, на котором вы владеете, тогда вы не будете способный это сделать. Если вы контролируете принимающий веб-сайт, просто следуйте instructions на вики-странице wirehark.

+0

нет, я не являюсь владельцем сайта. Большое спасибо :) – bboyle1234

0

Приложение Java будет шифровать всю информацию с помощью общедоступного (SSL) сертификата сервера (по крайней мере, насколько это касается вас). Для всех практических целей единственный способ расшифровать это впоследствии - это знать секретный ключ сервера, который у вас, по-видимому, отсутствует, и поэтому вы не можете его расшифровать.

Чтобы ответить на ваш комментарий о том, чтобы использовать секретный ключ вашего компьютера:

Если это «нормальное» соединение SSL, клиент (Java приложение) будет связаться с сервером и получить его открытый ключ, убедитесь, что это действует (подписанный доверенным ЦС), а затем использовать его для согласования симметричного ключа, который используется для шифрования.

Открытые/закрытые ключи работают так, что все, зашифрованные одним ключом, могут быть дешифрованы только другим - т.е. все, что приложение Java шифрует с использованием открытого ключа сервера, может быть расшифровано только с помощью закрытого ключа - который никогда не покидает сервер.

SSL/TLS поддерживает клиентские сертификаты, в которых Java-приложение может иметь собственную пару ключей и использовать свой закрытый ключ для подписи содержимого, чтобы проверить подлинность самого себя. Однако даже если приложение Java делает это (сомнительно), это не помогает, поскольку данные все равно будут зашифрованы, чтобы только сервер мог его расшифровать.

Справочная литература: http://en.wikipedia.org/wiki/Transport_Layer_Security и http://en.wikipedia.org/wiki/Public-key_cryptography

+0

ok. Вы говорите, что недостаточно знать секретный ключ, используемый моим собственным компьютером? – bboyle1234

1

Предполагая, что вы не пытаетесь сделать это программно, но вместо этого просто нужно просмотреть заголовки в то время отладки, вы можете использовать Чарльз:

http://www.charlesproxy.com/

Здесь представлена ​​небольшая информация о том, как настроить ее для расшифровки SSL-трафика:

http://www.charlesproxy.com/documentation/using-charles/ssl-proxying/

+0

Спасибо, Джо! Я проведу еще некоторое время, проверяя Чарльза. Это выглядит великолепно с первого взгляда. Я очень благодарен. – bboyle1234