12 / 12 / 7
Регистрация: 09.10.2013
Сообщений: 222
|
|
1 | |
.NET 4.x Ssl/Tls криптография, перехват пакетов17.07.2014, 12:27. Просмотров 1955. Ответов 10
Метки нет Все метки)
(
Вообщем, создал свой клиент - серверное приложение и использую Ssl/Tls криптографию. Попробовал перехватить данные между клиентом и сервером, всё время отправлял и получал одну и ту же информацию. Всё действительно зашифровано, однако само сообщение всё время шифруется по разному. Нормально ли это? И ещё такой вопрос возник. Ведь public key способен только шифровать, а private key - расшифровывать. Но сервер отправляет зашифрованную информацию, то есть клиент с помощью public key способен расшифровать ответ от сервера?
Ну и интересно было бы узнать - какими способами такое возможно обойти? Порылся в интернете, особо дельной информации не нашел. На сколько надежен данный способ шифрования? И подойдет ли он для онлайн игры?
0
|
|
17.07.2014, 12:27 | |
Ssl/Tls криптография, аутентикация клиента Прием электронных сообщений, POP3, SSL/TLS Ошибка: не удалось создать защищенный канал ssl tls TCP, перехват пакетов: нужен пример |
|
Master of Orion
![]() |
|
17.07.2014, 17:42 | 2 |
1
|
12 / 12 / 7
Регистрация: 09.10.2013
Сообщений: 222
|
|
18.07.2014, 10:17 [ТС] | 3 |
Спасибо, но так и не понял одной вещи. Если public key только для шифрования, то как клиент расшифровывает ответ сервера? Ведь он тоже зашифрован?
0
|
Master of Orion
![]() |
|
18.07.2014, 11:02 | 4 |
Blueeyer, тогда читайте еще раз. Я могу объяснить, мне не трудно, но я объясняю хуже, чем люди, написавшие ту статью. Сервер шифрует сообщение с помощью публичного ключа клиента, в итоге расшифровать его может только клиент с помощью приватного ключа.
0
|
12 / 12 / 7
Регистрация: 09.10.2013
Сообщений: 222
|
|
18.07.2014, 12:49 [ТС] | 5 |
Так ведь на серверной части находится сертификат, содержащий оба ключа, а на клиент часть устанавливается только сертификат с паблик ключом же. Или вы имеете ввиду, что у клиента все же есть тоже ещё один свой ключ, которым он расшифровывает ответ с сервера?
0
|
Master of Orion
![]() |
|
18.07.2014, 12:52 | 6 |
Blueeyer, ну должен быть, иначе смысл? Публичный ключ нужен только чтобы что-то шифровать, для дешифрации нужен приватный ключ. Наоборот работают цифровые подписи - идет подпись закрытым ключом, и любой желающий может расшифровать публичным ключом этого человека, и если при расшифровке получилось осмысленное предложение, значит сообщение действительно зашифровал он. Потому что иначе получилась бы каша из-за несовпадения открытого и закрытого ключей.
1
|
12 / 12 / 7
Регистрация: 09.10.2013
Сообщений: 222
|
|
18.07.2014, 13:00 [ТС] | 7 |
Ну просто меня это больше всего и смущало, что везде говорится - у сервера есть и прайват ключ и паблик, этот же паблик есть и у клиента. Клиент шифрует информацию своим паблик ключом, сервер принимает и расшифровывает его прайват ключом. А вот про ответ - нигде не рассказывают особо. Но, когда я перехватил пакеты - я увидел, что и ответ тоже шифруется. Это меня и смутило немного. Я и предполагал, что он будет шифроваться, но хотелось бы почитать где-то именно о об этом этапе.
0
|
Master of Orion
![]() |
|
18.07.2014, 13:45 | 8 |
Blueeyer, если ответ шифруется, то на клиенте должен быть приватный ключ.
Вообще, не бывает только "публичного" ключа. Публичный и приватный ключ могут существовать только в паре.
0
|
12 / 12 / 7
Регистрация: 09.10.2013
Сообщений: 222
|
|
18.07.2014, 14:42 [ТС] | 9 |
Просто я создал сертификат (.pfx) на серверной части, то есть в нем и public и private key, затем сделал в MMC экспорт из него только public key (.cer) сертификат, который уже устанавливался на стороне клиентов. Вот и возник вопрос - что за private key генерируется/появляется на стороне клиента, если там я установил только public key (.cer) сертификат?
Добавлено через 10 минут Я только сейчас вник в это сообщение. То есть, когда сервер отвечает клиенту - происходит такая вещь? Если это так, тогда всё становится на свои места ![]()
0
|
Master of Orion
![]() |
|
18.07.2014, 15:04 | 10 |
![]() Решение
Blueeyer, да, сервер шифрует сообщение приватным ключом. Например, Майкрософт хочет создать цифровую подпись. Он создает пару ключей: Хризантема (публичный ключ) - Гладиолус (приватный ключ). После этого шифрует берет строку "Майкрософт" и шифрует его с помощью ключа Гладиолус, получает строку "sgd90u23nDGJH3&%^". После этого отсылает эту строку нам сообщение "sgd90u23nDGJH3&%^ - Майкрософт". Теперь, если мы хотим узнать, действительно ли сообщение послано майкрософт, мы применяем открытый ключ Хризантему к строке sgd90u23nDGJH3&%^, получаем Майкрософт, значит исходное сообщение "sgd90u23nDGJH3&%^ - Майкрософт" - истинно.
Если мы возьмем какой-нибудь Оракл, который решил зашифровать это сообщение своим приватным ключом (пусть будет РОЗА), то он применяет преобразование РОЗА ("Майкрософт") и получает строку "JASDIOPGJ352kDGB1", затем отсылает нам сообщение "JASDIOPGJ352kDGB1 - Майкрософт". Мы его получаем, применяем к нему публичный ключ Хризантему, и получаем "выраывпхлывпиг\\\123ВПЫВП". И понимаем, что это не майкрософт, а кто-то левый нам что-то подсовывает ![]()
1
|
12 / 12 / 7
Регистрация: 09.10.2013
Сообщений: 222
|
|
18.07.2014, 15:22 [ТС] | 11 |
Ну да, так я это и представлял. Спасибо большое
![]()
0
|
18.07.2014, 15:22 | |
Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь. Перехват пакетов, если знаем порты, имя сервера Could not create SSL/TLS secure channel POST запрос: Не удалось создать защищенный канал SSL/TLS Не удалось создать защищенный канал SSL/TLS Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |