powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Шифрование передаваемых данных
38 сообщений из 38, показаны все 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
Шифрование передаваемых данных
    #38567331
La France
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wstРабочий клиент на руках = полный доступ ко всем его структурам и алгоритмам.
Не факт - код скрыть можно.
...
Рейтинг: 0 / 0
Шифрование передаваемых данных
    #38567352
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
La FrancewstРабочий клиент на руках = полный доступ ко всем его структурам и алгоритмам.
Не факт - код скрыть можно.
Был такой чувак. Звали его Керхгоффс. Он сформулировал несколько принципов
разработки крипто-систем. Эти принципы вопринимаются если не как заповеди
криптографа но хотя-бы как правила хорошего тона. Все озвучивать не буду.
Почитаешь сам. Но обрати внимание на то что лучшие крипто-алгоритмы
поставляются в виде открытого исходного кода
. Их можно скачивать и изучать.
Они оттестированы и стандартизированы. Секретными их делаеn ключ
и только ключ. И коль уж ты начал делать что-то криптографическое (шифрующиее)
то будь добр - ознакомься с этими принципами и почитай best practices.

В противном случае - будешь выглядеть как маленький недотёпа.
...
Рейтинг: 0 / 0
Шифрование передаваемых данных
    #38567374
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
La FranceDima TНадеюсь неизменный IP зашивать не собираешься. Оно конечно надежно, только всем придется софт руками переставить когда он сменится.
Вообще-то так и планировал сделать) О проблеме смены адреса сервера думал, но дело до этого еще не дошло.
Когда дойдет - может оказаться что поздно думать.

Даже если не дойдет: при первом же DDoSе об этом пожалеешь. Не говоря уже о прочих жизненных ситуациях когда надо временно повисеть на другом IP.

Зашивать IP не надо, а вот использовать стоит, т.к. с DNSом тоже не все гладко: без всяких вредителей он может упасть у твоего пользователя или в DNS его провайдера не окажется твоей записи (с доменами третьего уровня такое бывает), поэтому лучше так сделать: получаешь IP по DNS-имени, обращаешься по этому IP, при удачном соединении IP запоминаешь, если вначале получить IP по DNS-имени не удалось - используешь запомненный. Можешь добавить контроль смены IP и сообщать серверу что он поменялся.
...
Рейтинг: 0 / 0
Шифрование передаваемых данных
    #38567387
La France
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonНо обрати внимание на то что лучшие крипто-алгоритмы
поставляются в виде открытого исходного кода
. Их можно скачивать и изучать.
Они оттестированы и стандартизированы. Секретными их делаеn ключ
и только ключ.
Ну я это вроде как знал и скрывать алгоритм шифрования не собирался.
...
Рейтинг: 0 / 0
Шифрование передаваемых данных
    #38567400
La France
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima T,

Ну оставлять вшитым ip я точно не буду, просто у меня пока не было никаких идей как сделать это безопасно. Я об этой задачи всегда помню и оставляю возможность легко исправить это как появятся какие-либо варианты.
...
Рейтинг: 0 / 0
Шифрование передаваемых данных
    #38567629
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
La FranceDima T,

Ну оставлять вшитым ip я точно не буду, просто у меня пока не было никаких идей как сделать это безопасно. Я об этой задачи всегда помню и оставляю возможность легко исправить это как появятся какие-либо варианты.
DDoS - самый дешевый способ нагадить конкуренту. Если твои конкуренты не ИТ-компании, то скорее всего им анализ работы твоего софта намного дороже будет стоить.
В случае DDoS можно по быстрому перенаправить свое DNS-имя на сервер какой-нибудь конторы специализирующейся на защите от DDoSа и твой сервис будет хоть как-то работать. Если ты будешь работать только по IP, то перенаправить ничего не получится.
Если с DDoS не сталкивался - почитай инет, это далеко не экзотика, а цены по карману даже уволенному сотруднику.
...
Рейтинг: 0 / 0
Шифрование передаваемых данных
    #38567651
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TLa FranceDima T,

Ну оставлять вшитым ip я точно не буду, просто у меня пока не было никаких идей как сделать это безопасно. Я об этой задачи всегда помню и оставляю возможность легко исправить это как появятся какие-либо варианты.
DDoS - самый дешевый способ нагадить конкуренту. Если твои конкуренты не ИТ-компании, то скорее всего им анализ работы твоего софта намного дороже будет стоить.
В случае DDoS можно по быстрому перенаправить свое DNS-имя на сервер какой-нибудь конторы специализирующейся на защите от DDoSа и твой сервис будет хоть как-то работать. Если ты будешь работать только по IP, то перенаправить ничего не получится.
Если с DDoS не сталкивался - почитай инет, это далеко не экзотика, а цены по карману даже уволенному сотруднику.

Кстати, никакое шифрование против DDOS-а не помогает...
...
Рейтинг: 0 / 0
Шифрование передаваемых данных
    #38567668
Dima TНадеюсь неизменный IP зашивать не собираешься. Оно конечно надежно, только всем придется софт руками переставить когда он сменится.
Неизменный IP просто чуть сложнее перенаправляется, но и только. NAT, роутер поставить с какой угодно сеткой никто не мешает.
...
Рейтинг: 0 / 0
Шифрование передаваемых данных
    #38567675
[quot mayton]La FranceВсе озвучивать не буду.
Почитаешь сам. Но обрати внимание на то что лучшие крипто-алгоритмы
поставляются в виде открытого исходного кода
. Их можно скачивать и изучать.
Они оттестированы и стандартизированы. Секретными их делаеn ключ
и только ключ.
Поставлять в открытом виде совсем необязательно, просто Кирхгоф, раз его вспомнили, говорил, что надежность защиты не должна основываться на предположении, что "противник" не знает алгоритма или протокола. Только на незнании им ключей. Но из этого еще не следует, что информацию о протоколах надо открыто сообщать. Просто существующие давно открытые решения получается, что на практике уже неплохо протестированы и вылизаны. Тем не менее, иногда новые ошибки и в них находят.
...
Рейтинг: 0 / 0
Шифрование передаваемых данных
    #38567690
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть мнениеDima TНадеюсь неизменный IP зашивать не собираешься. Оно конечно надежно, только всем придется софт руками переставить когда он сменится.
Неизменный IP просто чуть сложнее перенаправляется, но и только. NAT, роутер поставить с какой угодно сеткой никто не мешает.
Согласен, элементарно сделать. Как-то сразу не догадался что можно с маршрутизацией пошаманить.
...
Рейтинг: 0 / 0
Шифрование передаваемых данных
    #38569152
Lepsik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivошибка на первом шаге в самом существовании этого шага.

очень даже можно если посылается пакет с одноразовым ключом.

ложные атаки на этом этапе рубятся еше на уровне железяки
...
Рейтинг: 0 / 0
Шифрование передаваемых данных
    #38569170
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TЕсть мнениепропущено...

Неизменный IP просто чуть сложнее перенаправляется, но и только. NAT, роутер поставить с какой угодно сеткой никто не мешает.
Согласен, элементарно сделать. Как-то сразу не догадался что можно с маршрутизацией пошаманить.
Это вопрос на уровне философии и основ криптографии. "Кто" или "что" будет тем самым дуплом
через которое передеадут ключ. Нет гарантийной процедуры "рукопожатия". И пока этот вопрос
не решён все крипто-протоколы несостоятельны и SSL/HTTPS можно считать безопасным лишь
условно. При условии корректного и не взломанного сетевого стека.
...
Рейтинг: 0 / 0
Шифрование передаваемых данных
    #38569862
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Взаимная аутенификация на клиентском и серверном серверном сертификатах - и вопрос шифрации трафика можно считать закрытым.
Другое дело, что проблему "нескольких логинов под одной учётной записью" это не решает. Исключая тривиальный случай.
С другой стороны, не вижу ни малейшей проблемы: поднял две сессии - будь добр оплатить обе.
...
Рейтинг: 0 / 0
38 сообщений из 38, показаны все 2 страниц
Форумы / C++ [игнор отключен] [закрыт для гостей] / Шифрование передаваемых данных
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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