Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
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
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.07.2014, 12:27
Ответы с готовыми решениями:

Ssl/Tls криптография, аутентикация клиента
Здравствуйте, вообщем, создал TcpListener, TcpClient, реализовал криптографию, всё работает, всё...

Прием электронных сообщений, POP3, SSL/TLS
Добрый день, подскажите пожалуйста как реализовать прием писем с почты POP3 + SSL или TLS? Просто...

Ошибка: не удалось создать защищенный канал ssl tls
Создали сертификат на одной машине. Установил на другую в Личные. Приложением пытаемся подрубиться...

TCP, перехват пакетов: нужен пример
Всем доброго времени... Реально ли прослушивать тсп соединение посредством .net, ловить пакеты.? ...

10
Master of Orion
Эксперт .NET
6078 / 4934 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
17.07.2014, 17:42 2
Blueeyer, http://ru.wikipedia.org/wiki/%... 0%B8%D0%B5

судите сами, насколько безопасно °-°
1
12 / 12 / 7
Регистрация: 09.10.2013
Сообщений: 222
18.07.2014, 10:17  [ТС] 3
Спасибо, но так и не понял одной вещи. Если public key только для шифрования, то как клиент расшифровывает ответ сервера? Ведь он тоже зашифрован?
0
Master of Orion
Эксперт .NET
6078 / 4934 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
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
Эксперт .NET
6078 / 4934 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
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
Эксперт .NET
6078 / 4934 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
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 минут
Цитата Сообщение от Psilon Посмотреть сообщение
Наоборот работают цифровые подписи - идет подпись закрытым ключом, и любой желающий может расшифровать публичным ключом этого человека, и если при расшифровке получилось осмысленное предложение, значит сообщение действительно зашифровал он.
Я только сейчас вник в это сообщение. То есть, когда сервер отвечает клиенту - происходит такая вещь? Если это так, тогда всё становится на свои места
0
Master of Orion
Эксперт .NET
6078 / 4934 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
18.07.2014, 15:04 10
Лучший ответ Сообщение было отмечено Psilon как решение

Решение

Blueeyer, да, сервер шифрует сообщение приватным ключом. Например, Майкрософт хочет создать цифровую подпись. Он создает пару ключей: Хризантема (публичный ключ) - Гладиолус (приватный ключ). После этого шифрует берет строку "Майкрософт" и шифрует его с помощью ключа Гладиолус, получает строку "sgd90u23nDGJH3&%^". После этого отсылает эту строку нам сообщение "sgd90u23nDGJH3&%^ - Майкрософт". Теперь, если мы хотим узнать, действительно ли сообщение послано майкрософт, мы применяем открытый ключ Хризантему к строке sgd90u23nDGJH3&%^, получаем Майкрософт, значит исходное сообщение "sgd90u23nDGJH3&%^ - Майкрософт" - истинно.

Если мы возьмем какой-нибудь Оракл, который решил зашифровать это сообщение своим приватным ключом (пусть будет РОЗА), то он применяет преобразование РОЗА ("Майкрософт") и получает строку "JASDIOPGJ352kDGB1", затем отсылает нам сообщение "JASDIOPGJ352kDGB1 - Майкрософт". Мы его получаем, применяем к нему публичный ключ Хризантему, и получаем "выраывпхлывпиг\\\123ВПЫВП". И понимаем, что это не майкрософт, а кто-то левый нам что-то подсовывает
1
12 / 12 / 7
Регистрация: 09.10.2013
Сообщений: 222
18.07.2014, 15:22  [ТС] 11
Ну да, так я это и представлял. Спасибо большое
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.07.2014, 15:22

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

Перехват пакетов, если знаем порты, имя сервера
Всем привет. Имеется приложение, которое взаимодействует с базой данных на другом сервере, мы знаем...

Could not create SSL/TLS secure channel
Добрый день! Следующая проблема: есть служба, есть объект httpwebrequest, создаем TLS соединение и...

POST запрос: Не удалось создать защищенный канал SSL/TLS
Что не так с POST запросом? Ошибка:System.Net.WebException: "Запрос был прерван: Не удалось...

Не удалось создать защищенный канал SSL/TLS
Всем привет. Народ, такой вопрос. Отправляю запрос и некоторые норм бегают, а некоторые...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.