powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Шифрование передаваемых данных
25 сообщений из 38, страница 1 из 2
Шифрование передаваемых данных
    #38565891
La France
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!

У меня есть сервер, клиент и класс для асинхронного шифрования данных. В классе есть три функции - создание ключей, шифрование с помощью открытого ключа, дешифрование с помощью закрытого ключа и парольной фразы. Передаются пакеты, содержащие команду, дополнительное сообщение и прикрепленный файл. Передача осуществляется следующим способом:
1) Клиент посылает серверу сообщение о том, что хочет передать данные;
2) Сервер создает ключи и отправляет открытый ключ клиенту;
3) Клиент шифрует пакет и посылает его серверу;
4) Сервер принимает шифрованный пакет и дешифрует его;
5) Сервер посылает ответ клиенту, что все норм.

Сейчас я затормозился на дешифровании принятого пакета, но это не суть. Я использую сокеты от WinSock2.h. Там определена функция send, которая передаёт весь мой шифрованный пакет, помещенный в буфер. Мне сейчас говорят делать так: функция send вроде как передаёт кусками мой буфер, мне нужно, каким-то образом, не весь мой пакет шифровать, а по частям, те куски буфера которые сейчас будут передаваться, а на сервере это уже собирать. Описал вроде так как мне объяснили.

Вопрос в том, реально ли это вообще сделать? Если такое существует - то прошу поделиться информацией в какую сторону мне идти. Как получить те куски буфера которые сейчас будут передаваться? Что вы думаете о моей реализации - правильна ли она?

Спасибо!
...
Рейтинг: 0 / 0
Шифрование передаваемых данных
    #38565911
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
La France,

А ты не хочешь готовую библиотеку использовать ?
Open SSL ..
И весь твой трафик будет шифроваться и расшифровываться автоматом.
...
Рейтинг: 0 / 0
Шифрование передаваемых данных
    #38565930
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
La FranceСейчас я затормозился на дешифровании принятого пакета, но это не суть. Я использую сокеты от WinSock2.h. Там определена функция send, которая передаёт весь мой шифрованный пакет, помещенный в буфер. Мне сейчас говорят делать так: функция send вроде как передаёт кусками мой буфер, мне нужно, каким-то образом, не весь мой пакет шифровать, а по частям, те куски буфера которые сейчас будут передаваться, а на сервере это уже собирать. Описал вроде так как мне объяснили.

Вопрос в том, реально ли это вообще сделать? Если такое существует - то прошу поделиться информацией в какую сторону мне идти. Как получить те куски буфера которые сейчас будут передаваться? Что вы думаете о моей реализации - правильна ли она?


Я сейчас злой. Я не понимаю, как можно доверять написание программ людям, которые не могут сами сообразить вот такую простую хрень. Нанимают С++ программистов за 60 т.руб -- ну вот и результат. Так пусть лучше нифига не работает у них...

Скажу одно -- La France -- тебе.
Можешь поглядеть примеры использования OpenSSL. Я думаю, их можно найти.

В TCP НЕТ пакетов. буфер никогда не посылается кусками. Нет буферов. TCP -- это поток.

UDP -- если ты его используешь, надо зашифровать твой буфер-пакет, разбить его на части в соотв. с макс. размером пакета UDP, и переслать. На приёмной стороне -- собрать, расшифровать, и использовать. При этом если будет потерян хоть один пакет -- тебе придётся пересылать всё заново.
...
Рейтинг: 0 / 0
Шифрование передаваемых данных
    #38565958
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
La France, твой код кто-то будет проверять или делать code review или сертифицировать?
...
Рейтинг: 0 / 0
Шифрование передаваемых данных
    #38566003
La France
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZivА ты не хочешь готовую библиотеку использовать ?
Open SSL ..
И весь твой трафик будет шифроваться и расшифровываться автоматом.


Так я её и использую, только сокеты из WinSock2.h. А вы имеете ввиду использовать сокеты от openSSL?
...
Рейтинг: 0 / 0
Шифрование передаваемых данных
    #38566011
La France
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZiv,

Пакет я сам описываю, засовываю его в буфер, который шифрую и передаю.
...
Рейтинг: 0 / 0
Шифрование передаваемых данных
    #38566014
La France
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonLa France, твой код кто-то будет проверять или делать code review или сертифицировать?
Не думаю, просто как мне говорят на работе делать, так я и делаю.
...
Рейтинг: 0 / 0
Шифрование передаваемых данных
    #38566311
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
La FrancemaytonLa France, твой код кто-то будет проверять или делать code review или сертифицировать?
Не думаю, просто как мне говорят на работе делать, так я и делаю.
Понимаешь брадт... всё что идёт с громким тегом крипто-, шифро- e.t.c. должно
подвергаться жестокой проверке и сертификации. Несмотря на засилье крипто-API,
которое само по себе достаточно надёжно и непробиваемо, его слабым можно сделать
легко. Достаточно натворить профанаций в самом коде. И не обучить персонал
и админов как правильно конфигурить твой софт. И все громкие названия типа
OpenSSL e.t.c. не имеют никакого значения.

На твоём уровне кодинга - без разницы вообще какой шифр брать. У тебя кст. ошибка
уже на 1 шаге. Подумай над этим. Архитектурная.
...
Рейтинг: 0 / 0
Шифрование передаваемых данных
    #38566341
La France
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonНа твоём уровне кодинга - без разницы вообще какой шифр брать. У тебя кст. ошибка
уже на 1 шаге. Подумай над этим. Архитектурная.

Я составлял алгоритм обмена данными сам на основании прочитанной мной информации по библиотеке openSSL из этой статьи.
...
Рейтинг: 0 / 0
Шифрование передаваемых данных
    #38566361
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
La FrancemaytonНа твоём уровне кодинга - без разницы вообще какой шифр брать. У тебя кст. ошибка
уже на 1 шаге. Подумай над этим. Архитектурная.

Я составлял алгоритм обмена данными сам на основании прочитанной мной информации по библиотеке openSSL из этой статьи.
Вот и отлично. Узнаешь о недостатках.
...
Рейтинг: 0 / 0
Шифрование передаваемых данных
    #38566401
La France
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonВот и отлично. Узнаешь о недостатках.

О недостатках своего алгоритма?
Какая ошибка на первом шаге?
Где вообще можно почитать как это должно правильно организовываться?
...
Рейтинг: 0 / 0
Шифрование передаваемых данных
    #38566437
locked
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
La FranceMasterZivА ты не хочешь готовую библиотеку использовать ?
Open SSL ..
И весь твой трафик будет шифроваться и расшифровываться автоматом.


Так я её и использую, только сокеты из WinSock2.h. А вы имеете ввиду использовать сокеты от openSSL?
Это не "сокеты от openSSL" это имплементация SSL протокола. Там все за тебя уже сделано и сотни раз проверено. Это то что нужно использовать в большинстве случаев. Особенно в случаях когда нет набитых шишек в шифрованной передаче данных. Trust me.
...
Рейтинг: 0 / 0
Шифрование передаваемых данных
    #38566514
wst
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тогда уж пункты 1 и 2 - одна и та же ошибка. За подробностями - к тов. Шнайдеру, если коротко то либо слишком поздно вообще про ключи для клиента речь зашла либо соединение на самом деле безопасное и тогда лишние ключи это излишество. А так да - курить Шнайдера и думать, до прочтения мысли о самопальных протоколах лучше отложить.
По первому вопросу темы - см. RFC по TLS, пункт 6.2 особено.
Вопрос для самоконтроля - как сервер планирует отличать клиента от злобного анонимуса?
...
Рейтинг: 0 / 0
Шифрование передаваемых данных
    #38566965
La France
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wstВопрос для самоконтроля - как сервер планирует отличать клиента от злобного анонимуса?

У меня есть только вариант, что пересылаться смогут только пакеты описанные мной, если придёт какая-нибудь другая структура, с ней сервер работать не будет.
...
Рейтинг: 0 / 0
Шифрование передаваемых данных
    #38566979
La France
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нужно использовать библиотеку libevent-openssl. Если кто-нибудь знает хорошие статьи или где взять документацию на неё прошу поделиться.

Спасибо!
...
Рейтинг: 0 / 0
Шифрование передаваемых данных
    #38566984
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
La France...
2) Сервер создает ключи и отправляет открытый ключ клиенту;
...
При желании (с рабочей клиентской частью в руках) пишем свой прокси который прикидывается сервером для твоего клиента, дает ему свой открытый ключ, принимает расшифровывает, зашифровывает ключом полученным от твоего сервера и пересылает твоему серверу.
...
Рейтинг: 0 / 0
Шифрование передаваемых данных
    #38567074
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
La FrancemaytonВот и отлично. Узнаешь о недостатках.

О недостатках своего алгоритма?
Какая ошибка на первом шаге?
Где вообще можно почитать как это должно правильно организовываться?

ошибка на первом шаге в самом существовании этого шага.
...
Рейтинг: 0 / 0
Шифрование передаваемых данных
    #38567085
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TLa France...
2) Сервер создает ключи и отправляет открытый ключ клиенту;
...
При желании (с рабочей клиентской частью в руках) пишем свой прокси который прикидывается сервером для твоего клиента, дает ему свой открытый ключ, принимает расшифровывает, зашифровывает ключом полученным от твоего сервера и пересылает твоему серверу.

Есть ещё другой сценарий, "чужой" посылает серверу запрос на получение ключа, получает ключь, и шлет серверу все, что ему вздумается.
...
Рейтинг: 0 / 0
Шифрование передаваемых данных
    #38567122
La France
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZivЕсть ещё другой сценарий, "чужой" посылает серверу запрос на получение ключа, получает ключь, и шлет серверу все, что ему вздумается.
Так пусть присылает, "чужой" не знает структуру пакета, ну расшифрует сервер то, что ему пришлют, а преобразовать всё это дело в пакет не сможет - просто выдаст ошибку преобразования и все нормально будет.
...
Рейтинг: 0 / 0
Шифрование передаваемых данных
    #38567132
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
La FranceТак пусть присылает, "чужой" не знает структуру пакета ...
Как узнать структуру пакета (при наличии рабочего клиента) я выше написал.
...
Рейтинг: 0 / 0
Шифрование передаваемых данных
    #38567145
La France
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima T,

Ясно. К серверу понятно как подключится "псевдоклиент", а как реальный клиент подключится к псевдосерверу, если клиент настроен на один адрес, а изменить этот адрес возможности нет?
...
Рейтинг: 0 / 0
Шифрование передаваемых данных
    #38567162
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
La Franceклиент настроен на один адрес, а изменить этот адрес возможности нет?
DNS-имя перенаправляется элементарно. Задал в своем локальном DNSе что ProtectedService.Company.com имеет IP 127.0.0.1 и будет твоя прога соединяться на 127.0.0.1 вместо реального ProtectedService.Company.com

Надеюсь неизменный IP зашивать не собираешься. Оно конечно надежно, только всем придется софт руками переставить когда он сменится.
...
Рейтинг: 0 / 0
Шифрование передаваемых данных
    #38567165
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так пусть присылает, "чужой" не знает структуру пакета,


Не знает — так узнает...


ну расшифрует сервер то, что ему пришлют, а преобразовать всё это дело в пакет не сможет - просто выдаст ошибку преобразования и все нормально


Ну гляди, тебе с этим жить...
...
Рейтинг: 0 / 0
Шифрование передаваемых данных
    #38567216
wst
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Рабочий клиент на руках = полный доступ ко всем его структурам и алгоритмам. Что до адреса сервера - спрашиваем у гугля про man in the middle attack.
Вывод - либо вообще забить на шифрование раз уж решили использовать защиту Неуловимого Джо, либо защищаться уже как положено, например с самого начала соединяться по TLS, требуя с клиента сертификат.
...
Рейтинг: 0 / 0
Шифрование передаваемых данных
    #38567284
La France
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima TНадеюсь неизменный IP зашивать не собираешься. Оно конечно надежно, только всем придется софт руками переставить когда он сменится.
Вообще-то так и планировал сделать) О проблеме смены адреса сервера думал, но дело до этого еще не дошло.
...
Рейтинг: 0 / 0
25 сообщений из 38, страница 1 из 2
Форумы / C++ [игнор отключен] [закрыт для гостей] / Шифрование передаваемых данных
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]