|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
29.03.2011, 15:03 | #1 |
Форумчанин
Регистрация: 15.06.2007
Сообщений: 182
|
Платные приложение, принцип защиты.
Достаточно много времени потратил на решение этого вопроса.
В итоге появились такие мысли. 1) Необходимо как-то давать каждому пользователю свой ID, можно привязывать к железу но как пишут в интернете все это можно подменить. Сегодня совершенно случайно пришло в голову. А почему бы не делать ID опираясь на дату и время создания файла. Например: 240029032011 (час,минуты,дата,месяц,год - при необходимости, запутать пользователей можно поделив или умножить это число на что либо). Что скажете? Далее программа делает коннект к файлу на моем сервере, в нем будут содержатся все зарегистрированные ID пользователей, пример: 220024032011 150029012011 210019012011 240020032011 и делать условие если в файле есть id то программа зарегистрирована. Как вам такая идея? Сразу оговорюсь, программа достаточно специфическая, и я не думаю что файл с ID зарегистрированных пользователей когда-то станет более 50 килобайт. + программа работает непосредственно с интернетом и коннект к моему серверу не должно быть проблемой для пользователей. Так же посоветуйте пожалуйста чем запоковать программу? Интересует бесплатный и в то же время хороший софт. Последний раз редактировалось celovec; 29.03.2011 в 15:14. |
29.03.2011, 15:26 | #2 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
> Достаточно много времени потратил на решение этого вопроса.
> Что скажете? скажу, что зря потратили своё время. Тратить более 5-ти минут на защиту можно, если у вас продукт уровня AutoCAD или Mathlab. Ну или если вы зарабатываете как эксперт по защите программ. Во всех остальных случаях эти 5 минут тратятся на то, чтобы привесить навесную защиту типа армадилло, ехекрупт и подобного, или на написание своей простейшей проверки серийника. Ничего больше там не надо. Пока конкуренты страдали над защитами, авторы WinZip (серийники к которому валялись на каждом углу) тупо зарабатывали деньги. Поищите на досуге, сколько они подняли.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
29.03.2011, 15:37 | #3 |
Форумчанин
Регистрация: 15.06.2007
Сообщений: 182
|
В целом что скажете о моей идеи?
|
29.03.2011, 15:40 | #4 | |
Участник клуба
Регистрация: 07.07.2007
Сообщений: 1,518
|
Сначала нужно удостоиться чести, чтобы кто-то попытался твою программу взломать.
Цитата:
Принцип такой: в программе клинту нужно выводить отчеты, в которых будут фигурировать ИМЕННО ЕГО реквизиты (учетный номер плательщика, расчетный счет, МФО и адрес банка, полное название организации и т.п.). И именно по этим реквизитам закодирован ключ, который я даю клиенту. И из этого ключа все данные в расшифрованном виде выходят на печать. Таким образом, хакеру необходимо зашифровать реквизиты плательщика тем же алгоритмом что и у меня. А алгоритм серьезный. Плюс MD5 там присутствует. Я бы за такую работу не взялся ни за какие деньги. Нервы дороже... |
|
29.03.2011, 15:49 | #5 | |
Форумчанин
Регистрация: 15.06.2007
Сообщений: 182
|
_SERGEYX_, здорова но это для меня слишком сложно. Да и как говорил veniside не нужно мне так усложнять.
Цитата:
И хотелось бы еще от ребят с форума узнать как они защищали свои программы. P.S. в продолжение темы: Код:
Последний раз редактировалось celovec; 29.03.2011 в 15:52. |
|
29.03.2011, 15:57 | #6 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
> Ну а в целом что скажете о моей идеи?
Ну и в целом ерунда. 1) узнать, что в качестве id используется дата файла — не такой уж бином ньютона. Зато поменять дату файла на любое нужное хакеру число на порядок проще, чем поменять серийник винта или матери. 2) для общения с сервером нужно поднимать SSL, иначе поднимут левый сервер с левыми id 3) "делать условие если в файле есть id то программа зарегистрирована" Это условие отламывается за полторы минуту. Т.е. то, что вы нагородили с датами, файлами, серверами, ссл, легко отламывается в одном месте. Общая прочность защиты определяется её самым тонким местом. Как это исправить? 1) не выдумывайте велосипед, если так уж хочется прибавить головняка своим пользователям, привязывайтесь к серийнику винта. 2) тут ничего не исправить, раз уж вам захотелось держать свой сервер, держите 3) проверка типа "любит — не любит" (есть id/нет id) отламывается вне зависимости от других ваших ухищрений очень быстро и навсегда. Поэтому, id должно служить только и исключительно целям опознавания юзера. Если юзер опознан, сервер по запросу может выслать ему некую информацию, которая разблокирует дальнейшую работу программы. А может и не выслать. Например, если с одного IP каждый день приходит запрос с новым id, то сервер может его послать (менять винты три дня подряд вряд ли кто-то будет). Что это за информация, которую возвращает сервер? Обычно это ключ, с помощью которого можно расшифровать данные, без которых программа не способна работать. Например, можно собрать все констатны, которые используются в вашей программе в одном массиве, и зашифровать его. Пока массив не расшифрован, все константы битые, программа толком не работает. Отламывать тут особо нечего, нужно или угадывать, какие же должны быть значения констант, или воровать работающий ключ. Если видим, что ключ своровали, выпускаем новую версию программы, в котором константы зашифрованы другим ключём. Другой ключ будет доступен старым пользователям, так что они смогут пользоваться новой версией без проблем. А хакеру прийдётся опять искать способ доступа к новому ключу. Поднимете такое? Надеюсь, что нет, иначе у вас получится ещё одна армадилла, которая будет хуже имеющейся. Так что не тратьте на защиту больше 5-ти минут.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
29.03.2011, 17:18 | #7 |
Форумчанин
Регистрация: 15.06.2007
Сообщений: 182
|
Да, вы правы не стоит ломать голову над этим. Наверное даже чем проще тем надежнее.
Давайте тогда сделаем так, помогите пожалуйста направить меня в правильное русло: Уравнение: (Дата_создания_файла+171)*3+42 = Получаем идентификатор. Далее делаем условие: Если Дата_создания_файла*3 = Дата_создания_файла*3 то все ОК. То есть человек нам дает идентификатор - (Дата_создания_файла+171)*3+42 мы его разбираем, получаем дату создания далее умножаем * 3 и высылаем клиенту. Как вам? |
29.03.2011, 17:34 | #8 |
Участник клуба
Регистрация: 07.07.2007
Сообщений: 1,518
|
Оставьте дату создания файла в покое
Если вы сумеете написать программу, которую все будут пытаться взломать, поверьте, защита программы уйдет на второй план. Даже сами будете "левые" ключи в интернет подбрасывать чтобы побольше народу привлечь. |
29.03.2011, 17:34 | #9 | |
Очень суровый
Участник клуба
Регистрация: 17.12.2009
Сообщений: 1,988
|
Цитата:
А пока что ваша защита рушится так: выкачивается ваш сервер, ставится на тот же денвер, и все. и это самый наисложнейший способ, который не требует особых навыков программирования.
Ненавижу быть как все, но люблю, чтобы все были как я.
|
|
29.03.2011, 19:51 | #10 |
Форумчанин
Регистрация: 15.06.2007
Сообщений: 182
|
_SERGEYX_, ну а какой простенький способ защиты вы предлагаете?
На мой взгляд мод последний вариант до безумия прост. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Принцип решения. | MAKEDON | Помощь студентам | 6 | 16.01.2010 17:57 |
Задача:в вижуал с++ Разработать приложение-сервер и приложение (смотри дальше сообщение) | Мила777 | Фриланс | 2 | 21.10.2009 11:05 |
BusinessSkinForm, DynamicSkinForm и AlphaControls платные компоненты? | Polotenchik | Компоненты Delphi | 11 | 05.07.2009 13:56 |