Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Программная инженерия > Безопасность, Шифрование
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.08.2011, 01:42   #1
xpu
 
Регистрация: 21.08.2011
Сообщений: 6
По умолчанию Какую защиту применить в программе.

Ecть caмaпиcный coфт, кoтopый oбpaщaeтcя к yдaлeннoмy http cepвepy. Cepвep выдaeт индивидyaльный идeнтификaтop для кaждoгo нoвoгo пoдключившeгocя клиeнтa. Пpoблeмa в тoм, чтo пpoшapeнный пoльзoвaтeль мoжeт нaгeнepиpoвaть ceбe кyчy тaкиx идeнтификaтopoв пyтeм oтпpaвки пoдгoтoвлeнныx http-зaпpocoв. Чтo мoжнo cдeлaть c cepвepнoй и клиeнтcкoй чacтью, для пpeдoтвpaщeния дaннoй cитyaции?
xpu вне форума Ответить с цитированием
Старый 21.08.2011, 10:51   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

трудно советовать, не видя конкретики - как обращаются между собой сервер и программа, что представляет собой идентификатор и т.д.
софт на стороне HTTP сервера тоже Вы пишете/он доступен для изменения?

Если к серверной части доступа у Вас нет и запрос на подключение к серверу такой простой, что его может понять "прошаренный" пользователь, то про защиту программы (точнее о том, что нельзя получить идентификатор без вашего клиентского ПО) - можете забыть...

p.s. всё вышесказанное является моим личным мнением и однозначно может быть ошибочным..
Serge_Bliznykov вне форума Ответить с цитированием
Старый 21.08.2011, 11:48   #3
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Пусть удаленный клиент решит задачу. Допустим Вы высылаете набор определенных чисел (каждый раз разный), которые будут являться коэффициентами какого-нибудь уравнения. Пользователь должен вернуть решение . Так Вы будете уверены, что даете идентификатор именно Вашей программе, а не кому попало.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 21.08.2011, 12:25   #4
xpu
 
Регистрация: 21.08.2011
Сообщений: 6
По умолчанию

Сервер и клиентская программа самописные, т.е. имеется полный доступ. Софт на стороне сервера тоже пишу я. Сервер и клиент общаются через протокол HTTP. Идентификатор представляет собой набор цифр типа "000001", "000002". Пользователь не должен принимать никакого участия в получении идентификатора.
xpu вне форума Ответить с цитированием
Старый 21.08.2011, 16:57   #5
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
Пользователь не должен принимать никакого участия в получении идентификатора.
Почему? И в данном решении я предлагал именно идентификацию программы на сервере, идентификатор же можете дать, какой Вам надо.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 21.08.2011, 17:53   #6
xpu
 
Регистрация: 21.08.2011
Сообщений: 6
По умолчанию

Цитата:
Сообщение от Utkin Посмотреть сообщение
Почему?
Потому что идея в том, что нужно что бы пользователь просто запускал программу-клиент и не беспокоился, каким образом происходит привязка софта к его компьютеру. Если привязываться к ip пользователя, тогда программа-клиент не сможет работать на машинах которые используют одинаковые прокси. Либо наоборот возможен вариант, когда "пользователь-хакер" получит больше одного идентификатора используя динамический ip.
xpu вне форума Ответить с цитированием
Старый 21.08.2011, 18:25   #7
-=DeS=-
Форумчанин
 
Аватар для -=DeS=-
 
Регистрация: 20.12.2006
Сообщений: 135
По умолчанию

Шифруй данные которые отправляются на сервер от клиента, а на сервере обратно расшифровывай и проверяй соответствие какой нибудь формуле, если ответ формулы верный отправляй либо так же шифрованый пакет, либо в открытом виде.
Ну к примеру запустили клиентскую прогу с идентификатором 150, она отправляет на сервер (предварительно зашифровав) строчку 10,50,150,90, сервер получив расшифровывает строчку складывает 10+50+90 сравнивает с третьим числом 150, если совпало отправляем ключ, если нет шлём нафиг... Примерно так
writeln('Hello Dude!!!');
-=DeS=- вне форума Ответить с цитированием
Старый 21.08.2011, 18:41   #8
xpu
 
Регистрация: 21.08.2011
Сообщений: 6
По умолчанию

Цитата:
Сообщение от -=DeS=- Посмотреть сообщение
Ну к примеру запустили клиентскую прогу с идентификатором 150
Этот идентификатор предварительно нужно выдать клиенту при первом обращении к серверу. Выдачу их и нужно контралировать. Количество идентификаторов ограниченно и нельзя допустить выдачу нескольких на одну машину. Или я что-то не правильно понял?
xpu вне форума Ответить с цитированием
Старый 21.08.2011, 22:13   #9
WildHunter
Ископаемый админ
Форумчанин
 
Аватар для WildHunter
 
Регистрация: 08.07.2010
Сообщений: 992
По умолчанию

Пропишите ID и все, что нужно, в куки. Дополнительно можно реализовать то, что вам советуют, идентификацию клиента по типу вопрос-ответ. Тогда все это будет выглядеть так:
1.Сервер проверяет куки на пользовательской машине, если они отсутствуют, то методом вопрос-ответ проверяется, что это ваша программа, а не что-то другое. Реализовать это просто: сервер выдает случайное число, например 211211, клиентская программа должна его обработать по определенной формуле, например 211211*5-128 и выдать серверу ответ. Если сервер получает ответ 1055927, то пользователю выдается ID и прописываются куки. Если нет, то сервер не пускает.

2. Если при проверке куки обнаружены, из них читается ID и начинается работа. Для защиты во время работы не лишним будет использовать механизм сессий.
Выписывайте лучший журнал о беспроводных технологиях "Ukrainian Wireless News"! Издается с 1913 года.
WildHunter вне форума Ответить с цитированием
Старый 21.08.2011, 22:50   #10
xpu
 
Регистрация: 21.08.2011
Сообщений: 6
По умолчанию

Ок. Всем спасибо. Думаю по другому никак, только достаточно удалить пользователю куки и он может получить новый ID.
xpu вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Qt] Как применить сигнал в даной программе? Enchance Qt и кроссплатформенное программирование С/С++ 6 08.03.2011 16:05
Какую формулу применить? rusgaz Microsoft Office Excel 3 18.10.2010 23:43
Не получается применить DecodeDate sergey113 Помощь студентам 2 27.03.2009 23:12
через какую сетевую карту входить в инет, а через какую в лан шКОЛЯР Свободное общение 2 27.06.2008 17:55