Безопасность связи: Fiddler перехватывает мои разговоры. Как я могу защитить свое приложение? - PullRequest
1 голос
/ 05 марта 2012

Я создал приложение GData и отправил свои учетные данные Google для использования моей учетной записи. Fiddler может легко перехватить мое сообщение и выявить имя пользователя и пароль.

Есть ли способ предотвратить любопытные глаза? Кто-то может легко открыть мой пароль, если нет ...

POST https://www.google.com/accounts/ClientLogin HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Host: www.google.com
Content-Length: 109
Expect: 100-continue
Connection: Keep-Alive

Email=xxxxxxxxxx%40gmail.com&Passwd=veryhigh-secure-ultra-strenght-passord-is-this-HHDGdgddhdyhghdeeehdeg^3h37373dE^^^+--XXXxxx123123h37ddg3g36dhjfhfg6373udbgd634t&source=database&service=writely&accountType=HOSTED_OR_GOOGLE

Сложение: Мы знаем общедоступный SSL-сертификат Google Docs. Можем ли мы проверить, используется ли он на компьютере клиента или есть ли поддельный? Это помогает?

enter image description here

Обновление и заключение:

Fiddler действует как посредник и внедряет поддельный корневой сертификат в доверенный корневой сертификат Windows. хранить. Затем генерирует поддельную сертификацию для целевого сайта. Браузер использует этот поддельный сертификат - открытый ключ - и шифрует и отправляет данные непосредственно в Fiddler. Fiddler расшифровывает данные, используя поддельную корневую сертификацию -private key-. А затем использовать оригинальную сертификацию удаленного сайта, шифровать данные и отправлять на целевой сайт. Повторяет те же действия в обратном порядке в браузере ответа.

Я просто спросил, как обнаружить эти поддельные сертификаты по другому вопросу. Если я создам простое приложение с использованием .NET, оно будет использовать и использовать сертификацию Windows «по умолчанию / сохранено» для целевого сайта. Если нет, Fiddler будет генерировать один на лету.

Итак ...

  1. Я не полагаюсь на сертификат в Windows 'и получаю подлинный сертификат непосредственно с целевого сайта / или мне нужно включить действующий сертификат целевого сайта в мое приложение.

  2. Мне нужно изменить исходный код API данных Google, чтобы использовать мой включенный - подлинный сертификат SSL - простой файл .crt - в моих сообщениях https. Таким образом, данные будут зашифрованы в моем приложении и расшифрованы только на целевом сайте.

  3. Защита памяти - чтобы сделать вещи сложнее - это следующий шаг.

Я написал это как справочник для тех, кто будет исследовать те же темы и быть утвержденным вами.

Спасибо.

Кто-то уже упоминал о поддельных сертификатах:

  1. Обнаружение человека в середине атак с помощью DNS. Джейсон Кумбс, 18 декабря 2003 г.

Ответы [ 3 ]

6 голосов
/ 05 марта 2012

Причина, по которой Fiddler может раскрыть ваш пароль, заключается в том, что он действует как прокси-сервер HTTPS. Он действует как человек посередине; расшифруйте ваш защищенный трафик на стороне клиента и перекодируйте его перед отправкой на целевой сервер. Все это происходит до того, как ваш безопасный трафик покидает вашу систему. Как только он покидает ваш компьютер, данные зашифрованы.

Если вы уверены, что ваш компьютер защищен от вредоносных программ и другого подобного программного обеспечения, вы должны считать трафик HTTPS безопасным, зашифрованным и защищенным от отслеживания.

Вы установили корневой центр сертификации фиддлера? в противном случае ваша система доверяет сертификату, выпущенному программным обеспечением fiddler, так же, как доверяет сертификатам, выпущенным Verisign или другими доверенными органами.

Вы должны приложить усилия, чтобы принять ненадежный сертификат в большинстве сред программирования, поэтому он должен был пройти проверку в этот момент перед отправкой трафика на сервер.

EDIT: Если вы пытаетесь защитить доступ к хранилищу GData, вам следует прочитать документацию Аутентификация и авторизация WRT. Да, это неприятно, но это способ защитить данные, не раскрывая информацию о вашей учетной записи на уровне клиентского приложения.

2 голосов
/ 05 марта 2012

вы можете скрыть трафик, исходящий из вашего приложения, с помощью этого простого кода:

request.Proxy = null;

однако это работает только с fiddler.Я не знаю, работает ли он с другими программами для мониторинга трафика ....

0 голосов
/ 06 марта 2012

Теперь я могу определить, используется ли поддельный сертификат или нет. Речь идет не только о защите моего пароля, все мои связи SSL видны, включая другие конфиденциальные данные.

совпадение SSL на обоих концах

SSL match at both ends

MITM Подозреваемый!

MITM Suspect!


Конечно, поддельный SSL может содержать совпадающие строки, поэтому я должен сравнить оба файла сертификата, чтобы убедиться, что они идентичны. Или лучше просто зашифровать тестовую строку обоими сертификатами и сравнить результаты ...

...