Безопасность клиент-серверного приложения
От: Ivan240393  
Дата: 05.11.11 16:20
Оценка:
Здравствуйте! Недавно копаясь в интернете я нашел статьи о создании клиентов и серверов через Socket. Для примера привел ссылки конкретных примеров которые хотелось использовать.
Так вот проблема в том что передаваемые данные не шифруются, как это сделать?
Достаточно будет использовать зашифрованный протокол или еще доп. шифровать данные?
А так же я думаю что можно будет увидеть команды передаваемые серверу и использовать их в корыстных целях...
Поэтому еще один вопрос: как лучше хранить пароли в приложении?

05.11.11 21:48: Перенесено модератором из '.NET' — kochetkov.vladimir
Re: Безопасность клиент-серверного приложения
От: acDev Россия  
Дата: 05.11.11 20:25
Оценка:
Здравствуйте, Ivan240393, Вы писали:

I>Здравствуйте! Недавно копаясь в интернете я нашел статьи о создании клиентов и серверов через Socket.

I> Для примера привел ссылки конкретных примеров которые хотелось использовать.
Для чего использовать то? Опишите вашу задачу.

I>Так вот проблема в том что передаваемые данные не шифруются, как это сделать?

А что вам мешает данные шифровать?

I>Достаточно будет использовать зашифрованный протокол или еще доп. шифровать данные?

"Зашифрованные протоколы" тоже разные бывают. Вы задачу опишите конкретнее.

I>А так же я думаю что можно будет увидеть команды передаваемые серверу и использовать их в корыстных целях...

Так опишите чего именно вы боитесь.

I>Поэтому еще один вопрос: как лучше хранить пароли в приложении?

Вы от кого хотите защищать пароли? От пользователя? админа? трояна?
Re[2]: Безопасность клиент-серверного приложения
От: Ivan240393  
Дата: 06.11.11 05:11
Оценка:
Здравствуйте, acDev.
Я пишу сетевую онлайн игру, так вот каждое списание очков со счета противника производится отправкой сообщения на сервер.
Т.е клиент например выйграл.. На сервер отправляется команда в виде текстовой строки, которая переводит очки с одного счета на счет другого игрока.
Так вот проблема в том, что набор команд будет храниться в самом exe файле.. И я не знаю как сделать так что бы кто-нибудь не стал отправлять нужные команды мне на сервер. Что бы воровства не было..

Идея с шифрованием хорошая, но если я буду использовать один и тот же пароль для всех пользователей, то вскоре его кто-нибудь узнает и всем расскажет.
Но с другой стороны если у каждого пользователя свой пароль, то сервер не сможет определить как расшифровывать команду.. Вот такая проблема.
Re[3]: Безопасность клиент-серверного приложения
От: Ivan240393  
Дата: 06.11.11 05:19
Оценка:
В итоге получается что я опасаюсь взлома приложения, подмены данных при передаче, и мне не хватает идей как создать систему что бы никто не смог использовать мой сервер.
К тому же программирую в среде .NET, а там хранить текстовые строки в exe файле опасно, поэтому не знаю как защитить пароль которым буду шифровать команды.
Re[3]: Безопасность клиент-серверного приложения
От: acDev Россия  
Дата: 06.11.11 07:56
Оценка:
Здравствуйте, Ivan240393, Вы писали:

I>Так вот проблема в том, что набор команд будет храниться в самом exe файле.. И я не знаю как сделать так что бы кто-нибудь не стал отправлять нужные команды мне на сервер. Что бы воровства не было..

Советую почитать вам о ассиметричном шифровании (RSA). А так же придумать способ обмена сессионными ключами.

ЗЫ. А вообще сначала попробуйте написать клиент-сервер без шифрования. Если у вас это получится и сервак будет выдерживать нагрузки, тогда и прикручивайте шифрование (правда его не очень эффективно прикручивать на последнем этапе разработки).
Re[3]: Безопасность клиент-серверного приложения
От: 11molniev  
Дата: 06.11.11 13:56
Оценка: +2
Здравствуйте, Ivan240393, Вы писали:

I>Здравствуйте, acDev.

I>Я пишу сетевую онлайн игру, так вот каждое списание очков со счета противника производится отправкой сообщения на сервер.
error — каждое списание должен делать сервер
I>Т.е клиент например выйграл.. На сервер отправляется команда в виде текстовой строки, которая переводит очки с одного счета на счет другого игрока.
I>Так вот проблема в том, что набор команд будет храниться в самом exe файле..
нет, проблема в том, что кто угодно может послать серверу команду на списание.
I>И я не знаю как сделать так что бы кто-нибудь не стал отправлять нужные команды мне на сервер. Что бы воровства не было..
нужно чтобы не было таких команд. все подобные расчеты делает сервер — воровать нечего.

I>Идея с шифрованием хорошая, но если я буду использовать один и тот же пароль для всех пользователей, то вскоре его кто-нибудь узнает и всем расскажет.

I>Но с другой стороны если у каждого пользователя свой пароль, то сервер не сможет определить как расшифровывать команду.. Вот такая проблема.
идея с шифрованием бесполезная поскольку:
1. незначительно усложнит действия для взлома
2. с такими знаниями криптографии вероятность реализовать надёжную систему мала
3. как я заметил выше любого рода шифрование здесь в общем случае бесполезно
3.1 в частном случае, к примеру, если клиент сам с себя списывает ресурсы & использует эцп, то злой ворюга сможет как максимум получить режим бога. А своровать ничего не сможет.
Re[3]: Безопасность клиент-серверного приложения
От: SSDD Ниоткуда http://example.com
Дата: 07.11.11 07:17
Оценка: 6 (1)
1. SSL/TLS — стндарнтый набор библиотек, включем и работаем.(не думаю что .NET настолько убог и не поддерживает данную фичу)

2. Все ключевые решения должны приниматься на стороне сервера.
Re[4]: Безопасность клиент-серверного приложения
От: Ivan240393  
Дата: 08.11.11 13:47
Оценка:
Здравствуйте, SSDD, Вы писали:

SSD>1. SSL/TLS — стндарнтый набор библиотек, включем и работаем.(не думаю что .NET настолько убог и не поддерживает данную фичу)


SSD>2. Все ключевые решения должны приниматься на стороне сервера.


Спасибо за помощь, будем работать))
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.