Как работает прокси-сервер Charles при прокси-трафике SSL? - PullRequest
0 голосов
/ 02 января 2019

Когда я хочу просмотреть трафик SSL, который передается через Charles, мне нужно иметь на смартфоне сертификат SSL от Charles .Зачем это нужно и как Чарльз может расшифровать, а затем снова зашифровать данные, передаваемые через него?

Я представляю это так, что если какое-то приложение для смартфона использует SSL, то:

  • данные зашифрованы (приложением? сетевыми уровнями ОС?), затем
  • зашифрованные данные отправляются в мир и
  • зашифрованные данные перехватываются Чарльзом
  • Чарльз получает зашифрованные данные и что теперь?

Как он узнает, как расшифровать зашифрованные данные?И как он узнает, как снова зашифровать дешифрованные данные, чтобы окончательно отправить их туда, куда они были изначально нацелены?

1 Ответ

0 голосов
/ 03 января 2019

Хорошо, я собираюсь опубликовать здесь только то, как Я думаю, что SSL-прокси с Чарльзом работает , но у меня нет твердой основы, чтобы гарантировать, что мой ответ правильный. На самом деле было бы здорово, если бы кто-то из команды Charles Proxy мог помочь нам в этом.

Дело в том, что когда ваше приложение выполняет HTTPS-запрос к сайту, оно сначала должно пройти через прокси-сервер Charles (не забывайте, что это прокси-сервер!). В этот момент Чарльз подключается к сайту https, используя открытый ключ сайта для шифрования и дешифрования данных, как если бы это был обычный браузер или приложение.

Таким образом, в данный момент Чарльз получает ответ от вашего https-запроса в незашифрованном виде, и его необходимо передать в ваше приложение, но ваше приложение ожидает зашифрованные данные, поэтому Чарльз должен снова зашифровать его, чтобы ваше приложение (т. Е. Ваш браузер) не жалуется на незашифрованный HTTPS-ответ. Для этого Чарльз использует свой собственный сертификат (пара открытый + закрытый ключ), шифрует ваши данные и отправляет их обратно в ваше приложение.

Наконец, ваше приложение получает эти данные в зашифрованном виде от Чарльза. Ваше приложение не будет знать, как его расшифровать, если вы не предоставите ему открытый ключ сертификата (это делается путем «установки» сертификата на ваше приложение / браузер / устройство Android / и т. Д.).

Вот как я думаю, что все прокси SSL работает с Чарльзом.

Было бы здорово, если бы кто-то мог поспособствовать этому ответу!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...