Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2009.05.03;
Скачать: [xml.tar.bz2];

Вниз

Защита программ: генерирование серийных ном., активационных etc   Найти похожие ветки 

 
Maacheba   (2009-02-13 15:30) [0]

На начальном этапе для защиты программы принята такая технология:

1) клиенту выдается серийный номер
2) при установке программы по серийному номеру и железу генерируется код запроса.
3) клиент вбивает на сайте код запроса и получает активационный код

И возникает куча вопросов - как лучше это реализовать, по каким критериям генерировать серийный код? Желательно ли в код запроса каким-то образом включать информацию, по которой можно понять о каком серийном ключе идет речь (по базе)?

Можно ли обойтись в кодах исключительно цифрами для более простой передачи информации в разговорном виде?

По каким параметрам лучше привязываться к железу, есть у кого опыт?

Как генерировать код запроса и активационный код?

Какие грабли встречаются, чего лучше не делать?

P.S. решение корпоративное, то есть число инсталяций относительно мало. На первом этапе защита будет не шибко сложная в самой программе, но протокол обмена ключами, генерирование и так далее желательно с начала сделать по уму.


 
Кто б сомневался ©   (2009-02-13 15:37) [1]

У меня также похожий вопрос. Возможно кто то знает, есть ли возможность вводить этот код на сайтах ресселлеров? Например на plimus. Если кто то стакливался, расскажите - просто да или нет.


 
Медвежонок Пятачок ©   (2009-02-13 15:46) [2]

Какие грабли встречаются, чего лучше не делать?

Всего этого не делать.
Ибо сначала идет хитроумная проверка чего-то там, а после нее банальный
иф/зен/елс

Хитроумную проверку ломать никто не будет, сломают иф/зен/елс


 
Jeer ©   (2009-02-13 15:55) [3]


> Maacheba   (13.02.09 15:30)  


На мой взгляд, если и делать подобную "защиту", то надо привязываться к серийному номеру винта ( загрузочный для системы винт )

Полученный серийник обрамляется любыми константными символьными довесками и преобразуется обратимым способом в нужную по составу символов строку - получаем условный ID компютера.
Пользователь сообщает его поставщику ПО.
Поставщик, на основе известного обратимого алгоритма генерирует закодированный ID ( Code ) и сообщает его пользователю.
Пользователь вводит его для активации.
Клиентский софт проверяет эквивалентность ID и Code.

У меня так сделано для примитивной защиты - во многих случаях этого достаточно.
Впрочем, оговорюсь - сделано не для защиты ПО, а от защиты запуска на несанкционированном ( не активированном ) рабочем месте.


 
Jeer ©   (2009-02-13 15:56) [4]


> а от защиты запуска на несанкционированном ( не активированном
> ) рабочем месте.

для защиты от запуска на...


 
KSergey ©   (2009-02-13 16:04) [5]

> Медвежонок Пятачок ©   (13.02.09 15:46) [2]
> Хитроумную проверку ломать никто не будет, сломают иф/зен/елс

Если это будет заметно дешевле, чем купить.


 
Сергей М. ©   (2009-02-13 16:14) [6]


> чего лучше не делать?


Не страдать откровенной фигней.

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


 
Eraser ©   (2009-02-13 16:17) [7]

> [1] Кто б сомневался ©   (13.02.09 15:37)
> У меня также похожий вопрос. Возможно кто то знает, есть
> ли возможность вводить этот код на сайтах ресселлеров? Например
> на plimus.

активация не должна никак зависеть от ресселеров и т.п. для этого есть серийный номер. при покупке пользователь получает серийник и с пом. него (и возможно других данных) активирует софт.


 
Сергей М. ©   (2009-02-13 16:18) [8]

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


 
Медвежонок Пятачок ©   (2009-02-13 16:26) [9]

Если это будет заметно дешевле, чем купить.

необязательно.
число_хакеров_в_мире << число_пользователей_нелегальных_копий_ПО


 
Rouse_ ©   (2009-02-13 16:31) [10]


> следует защищать его современными аппаратными ключами

Я бы добавил - следует учиться защищать его аппаратными ключами. А то защитников много, а действительно хорошо поставленных защит по пальчикам почитать можно :)


 
Anatoly Podgoretsky ©   (2009-02-13 16:49) [11]

> Сергей М.  (13.02.2009 16:18:08)  [8]

При этом биометрию пусть рисует мышкой в реале


 
Сергей М. ©   (2009-02-13 16:49) [12]


> Rouse_ ©   (13.02.09 16:31) [10]


Вне сомнений)


 
Сергей М. ©   (2009-02-13 16:54) [13]


> Anatoly Podgoretsky ©   (13.02.09 16:49) [11]


А что ?

Это, кстати, мысль - вооружившись 100-кратной лупой расположиться у зеркала и зарисовать мышью в Пейнте фактуру радужной оболочки своего глаза)


 
Maacheba   (2009-02-13 16:54) [14]


> На мой взгляд, если и делать подобную "защиту", то надо
> привязываться к серийному номеру винта ( загрузочный для
> системы винт )

а не знаешь способа считать этот серийный номер стопроцентно? Желательно, не имея прав администратора.
Чтобы работало со всеми винчестерами, в том числе IDE, SCSI, SATA, RAID-массивы и прочее...
Я до этого думал о ID процессора...


> Пользователь сообщает его поставщику ПО.
> Поставщик, на основе известного обратимого алгоритма генерирует
> закодированный ID ( Code ) и сообщает его пользователю

а вот тут и как раз один из важнейших моментов. Как кодировать?
Включать ли в закодированные данные информацию о серийном ключе?

Теоретически кодировать особо ничего не нужно, можно в целом и вообще прямым текстом отправлять следующее: серийный ключ (или его часть), ID винчестера. А вот в ответ сервер должен вернуть некую закодированную информацию, которую клиент может расшифровать и проверить правильность.

Вопрос в том как шифровать? Например, одна из идей - несимметричное шифрование. Кодировать информацию будет сервер неизвестным кроме нас самих ключом. А клиент будет расшифровывать и получать данные.

Проблемы:

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


> оговорюсь - сделано не для защиты ПО, а от защиты запуска
> на несанкционированном ( не активированном ) рабочем месте

а в чем разница?
Защита ПО - это разве не предотвращение несанкционированного запуска?!


 
Anatoly Podgoretsky ©   (2009-02-13 16:59) [15]

> Maacheba  (13.02.2009 16:54:14)  [14]

Для расшифровки нужен полный (private) ключ.


 
Maacheba   (2009-02-13 17:03) [16]


> если купить ПО+ключи для защиты жаба давит

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


 
Jeer ©   (2009-02-13 17:06) [17]


> а не знаешь способа считать этот серийный номер стопроцентно?
>  Желательно, не имея прав администратора.
> Чтобы работало со всеми винчестерами, в том числе IDE, SCSI,
>  SATA, RAID-массивы и прочее...
> Я до этого думал о ID процессора...


Алекс Коншин - hddsn.pas
Что есть - то есть, разбирайся сам, чего он не может.

HDD - это понятно и справедливо. Если переустановлена система на новом винте, то и не грех заново запросить активацию.


> а вот тут и как раз один из важнейших моментов. Как кодировать?
>
> Включать ли в закодированные данные информацию о серийном
> ключе?


Зачем серийник еще какой-то ? Вести еще базу серийников ?

Софтина запускается и если не была активирована - сообщает код ID ( винта ).
В первый раз он не известен. Юзер его записывает и сообщает инсталлятору, последний на основе сообщенного ID с помощью утилиты активации получает ответный Code и передает его Юзеру. Все.


> а в чем разница?
> Защита ПО - это разве не предотвращение несанкционированного
> запуска?!


Нет.
Для корпоративки вполне сойдет.
А как защита продаваемого ПО - фигня и геморрой.


 
Ega23 ©   (2009-02-13 17:08) [18]


> Нужно уметь изменять условия лицензии без перевысылке ключей.


Ну вот накрылся у пользователя винт. Вот он его поменял. Вот он переустановил программу. И что дальше? А дальше она банально не работает.


 
Jeer ©   (2009-02-13 17:10) [19]


> А дальше она банально не работает.


Еще раз - это вариант для корпоративной системы, не более.
Юзер вообще ничего делать не должен при поломке винта.
Ему все сделает служба IT, в том числе и активацию.


 
Maacheba   (2009-02-13 17:10) [20]


> Для расшифровки нужен полный (private) ключ.

это понятно. Я и хочу поменять концепцию несимметричных ключей.

Чтобы расшифровать мог КАЖДЫЙ (ну теоретически, просто он будет вшит в программу и его при умении можно будет выцепить). А вот ключ для шифрации известен только нам.

Соответственно, сервер присылает зашифрованную информацию. Гарантия подлинности этой информации в том, что ее с помощью известного ключа удалось правильно расшифровать.

Насколько это уязвимо? Я знаю, что по известному ключу шифрации невозможно (очень долго) определять ключ дешифрации. А вот обратный процесс защищен? По известному ключу дешифрации возможно определить ключ шифрации?


 
Maacheba   (2009-02-13 17:17) [21]


> Зачем серийник еще какой-то ? Вести еще базу серийников
> ?

конечно, для идентификации клиента. Одна из важнейших составляющих - знать кто и сколько раз активировал систему. И вообще, в целом это для контроля за нашими диллерами.
От конечного пользователя в целом защищаться смысла особого не имеет, программа привязана к оборудованию. И очень редки случаи, когда покупают оборудование без программы.


 
Ega23 ©   (2009-02-13 17:20) [22]


> Насколько это уязвимо? Я знаю, что по известному ключу шифрации
> невозможно (очень долго) определять ключ дешифрации. А вот
> обратный процесс защищен? По известному ключу дешифрации
> возможно определить ключ шифрации?


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


 
Maacheba   (2009-02-13 17:30) [23]

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

Если есть у кого что сказать по делу - с большим удовольствием послушал бы. Если кто понимает в обозначенном деле защиты программ.


 
Jeer ©   (2009-02-13 17:40) [24]

Удалено модератором
Примечание: Правила, батенька, уважаем...


 
AndreyV ©   (2009-02-13 18:13) [25]

Удалено модератором


 
Maacheba   (2009-02-13 18:17) [26]

Удалено модератором


 
Rouse_ ©   (2009-02-13 18:38) [27]


> Любой шифр рано или поздно будет вскрыт.

Лежка, я немножко поправлю тебя :) Шифр (если это действительно он) сам по себе занимает самую низшую позицию на этапе взлома. Любой крипкостойкий алгоритм не должен представлять из себя никакой тайны бо ну не сундук-же он. Все строиться на ключах - вот если подобрали ключ, тогда ой. Если ключ разбирается на бруте - тогда ой дважды, если на коллизий - тогда два раза КУ с приседанием и в топку такой алгоритм :)


 
Maacheba   (2009-02-13 18:45) [28]

Розыч, а ты разбираешься в этом деле? Может хоть ты ответишь. А точнее посоветуешь - какой алгоритм (желательно чтобы была готовая реализация на Delphi и на PHP) заюзать, чтобы шифровать закрытым ключом и расшифровывать открытым. При этом чтобы по ключу расшифрации нельзя было подобрать (криптостойкость на уровне) ключ шифрации?


 
Итого   (2009-02-13 18:46) [29]


> по каким критериям генерировать серийный код?


Лично я включаю в генератор серийного кода еще информацию о собственно названии продукта (ибо на одной машине может работать несколько лиц программ, и получается что у них у всех будет один и тот же ключ активации) и о его версии (если не предполагается фришное обновление версии продукта).


 
Maacheba   (2009-02-13 18:48) [30]

Впрочем, похож я на идиота, который бьется головой об стену, причем который раз. пойду спрошу в ЖЖ и на ixbt - вот просто любопытно, уверен на 99%, что ответы там будут гораздо позитивнее и без этой агрессии, характерной для DM последние пару лет.


 
Rouse_ ©   (2009-02-13 18:51) [31]

Разбираюсь.
Используй например RSA для выдачи ключа пользователю, вторую часть ключа храни у себя на сервере и придумывай технологию связки. Например используй эту пару для верификации приложения или генерации сессионного ключа с последующей верификацией. Но это все не то. Это только та часть которая идет на поверхности защиты, самое правильное - это интегрировании защиты в приложение на таком уровне чтобы оно работало в парралели с вычислениями производимыми в самом ПО, т.е. убрать все (как ранее говорили) If THEN и т.п. и использовать полученные при верификации данные при рассчетах или дальнейшей инициализации движка программы. По хорошему конечно-же желательно воспользоваться электронными ключами защиты и их возможностями. Тем более у тебя корпоративные клиенты, а значит конторы не бедные и лишние тысяча-две рублей для них будут копейкой


 
Maacheba   (2009-02-13 19:14) [32]

Саш, насчет электронных ключей я уже высказался, см. пост [16]

Насчет встраивания в программу - это понятно, мы с тобой об этом говорили. Но я не могу ключ сделать в килобайт даже, чтобы он нес хоть какой-то программный смысл. Один из вариантов - клиент по телефону будет надиктовывать код запроса и также по телефону ему будут диктовать код активации. Поэтому максимум - это будут 20-30 десятичных цифр.
В общем, аналогия - активация в WinXP.

Я подытожу вопросы, которые сейчас в голове крутятся:

1) к чему лучше привязываться? Первоначальное указание - привязываться к ID процессора... Насколько это гудово?

Лично мне понравилась идея с винчестером. Действительно, переустановка винчестера - это переустановка системы обычно, а значит ничего страшного и еще раз активировать.

С железками я не занимался, проблемы по винчестерам озвучил, есть ли универсальный способ привязки? Ведь вариантов может быть множество - IDE винчестер, SCSI, может быть вообще рейд, там какой нафиг ID?
Да и если уж на то пошло, винчестера вообще может не быть, а грузится все с какого-нибудь сетевого накопителя... Я просто не в состоянии все предусмотреть, желательны проверенные решения.

2) ты предлагаешь RSA - как я понимаю, это то что используется в PGP. Таким образом, есть открытый ключ и закрытый.
ОБЫЧНО открытым ключом шифруют, а закрытым расшифровывают. И по открытому ключу я точно знаю нереально получить в нормальные сроки закрытый ключ.

Насколько криптостойка обратная операция, то есть по известному закрытому ключу получить открытый ключ?

Еще раз - я хочу поменять концепцию. Ключ дешифровки будет встроен в распространяемое ПО, то есть в теории его оттуда можно вытащить. А вот ключ шифровки неизвестен никому, кроме нас. Соответственно, правильность активационного кода определяется исключительно тем, что корректно расшифровалась активационная информация ключом дешифровки.
Отсюда и вопрос - криптостойка ли обратная операция - получение ключа шифрации по известному ключу дешифрации?

Ну и еще раз - обычно ключ шифрации является public, а ключ дешифрации - private. А у меня получится наоборот, ключ дешифрации - public (относительный), а ключ шифрации - private.


 
Городской Шаман   (2009-02-13 19:20) [33]


> Maacheba   (13.02.09 15:30)  


Я бы кроме стандартной начальной проверки совпадения ключа добавил бы принцип 1001 китайского несчастья.

К примеру в Pro версии после взлома начального иф/зен/елсе при выполнении некоторых функций с использованием random(если нет совпадения ключа) портил бы работоспособность сеанса системы, например через внедрение удалённой нити в процесс эксплорера или закрузку библиотек через механизм хуков и некое некорректное перенаправление api функций. Так чтобы сеанс продолжал работать, но глючить.

Некоторые в "хакнутую" Pro версию, выложенную ими же самими на варезных сайтах, вставляют троян и таким образом косвенно собирают деньги. Доказать здесь ничего нельзя, что троян был внедрён автором программы.


 
Maacheba   (2009-02-13 19:29) [34]

не согласен, такое мелкое пакостничество - удел защиты персональных шароваров. Опять же, кое-какие концепции защиты в продукте Rouse_ тоже лично я считаю... Ну блин низким что ли ))) Да, наверное это эффективно. Как эффективно отмывать нефтяные деньги через офшоры )))

Ну да тема не об этом. Смысл я понял - при взломе вместо того, чтобы в открытую отписать что это взлом и работать дальше не буду, ты предлагаешь делать видимость работы, но пакостничать. Считаю, что так не правильно.

Да и специфика корпоративного продукта тут сильно помогает. Продукт совсем не массовый, наверное всего-то было продано сотня инсталяций ну или в том районе. Поэтому чтобы кто-то хакера нанимал для взлома... Сильно сомневаюсь.


 
Медвежонок Пятачок ©   (2009-02-13 19:30) [35]

Гарантия подлинности этой информации в том, что ее с помощью известного ключа удалось правильно расшифровать.

Шифрование никогда не решало и не решает задачу проверки подлинности информации.


 
Maacheba   (2009-02-13 19:35) [36]


> Шифрование никогда не решало и не решает задачу проверки
> подлинности информации.

вот зачем лезть в ветку, да и вообще хотя бы с таким уверенным видом писать о том, в чем совершенно не разбираешься?

Почитай на досуге что ли:
http://ru.wikipedia.org/wiki/%D0%AD%D0%BB%D0%B5%D0%BA%D1%82%D1%80%D0%BE%D0%BD%D0%BD%D0%B0%D1%8F_%D1%86%D0%B8%D1%84%D1%80%D0%BE%D0%B2%D0%B0%D1%8F_%D0%BF%D0%BE%D0%B4%D0%BF%D0%B8%D1%81%D1%8C


 
Медвежонок Пятачок ©   (2009-02-13 19:37) [37]

Удалено модератором


 
Медвежонок Пятачок ©   (2009-02-13 19:47) [38]

Соответственно, правильность активационного кода определяется исключительно тем, что корректно расшифровалась активационная информация ключом дешифровки.

А кто определяет "правильность расшифровки"?

Снова код программы и снова иф/зен/елсом.

Что? Не программа проверяет, а спрашивает у сервера правильность?
А ответ сервера "правильно/неправильно" расшифровано в клиенте кто проверяет?

Снова клиентский код.


 
KSergey ©   (2009-02-13 21:20) [39]

Городской Шаман   (13.02.09 19:20) [33]

Срубится антивирусом, смысла нет (я здесь не только про троянов, но и про все эти внедрения). Ну и, разумеется, тут же пойдут (вполне оправданные) байки, что такая-то прога - с вирусом. И даже легальные пользователи, даже если у них антивиус не будет ругаться - будут бояться. А если их еще и немного потенциальных - тогда и вовсе плохо.
Доказать кому-то мол "это потому что пиратка, ничего не знаем" - малореально. Винда вон тоже пиратка, однако ж антивирус на нее не ругается (тут, правда, уже про сук получается, но это же объяснишь).


 
Сергей М. ©   (2009-02-13 21:28) [40]


> Maacheba   (13.02.09 17:03) [16]
> не подходит. Нужно уметь изменять
> условия лицензии без перевысылке ключей.


Нужно просто уметь использовать возможности ключа и соответствующего ему ПО таким образом, чтобы не пересылая ключ изменять условия лицензии.

А ты не умеешь. Но при этом ничтоже сумняшеся заявляешь о какой-то там "пересылке".


 
KSergey ©   (2009-02-13 21:29) [41]

Аппаратный ключ как гарантия запуска купленной копии + ключ в виде файла, фишрованно определяющий функциональность. При смене купленой лицензии достаточно на тот же физ. аппаратный ключ сгенерить новый софтовый ключ, задающий функциональность.
По-моему это проще, чем получать ответ от пользователя про винт. Правда задиктовка по телефону все портит, но тут не понятно зачем так уж сурово. Для глухих деревень?

Но главное - это как if/then организовать.

PS
В конторе где работаю вообще тупо собирают под каждого пользователя бинари. А т.к. лицензия оговаривает кол-во обслуживаемых нашим сервером клиентов (а не функционал) - то от сборки просто зависит размер статического (именно статического!) массива, куда при работе помещаются id-сессий. Т.е. больше физически не запихать.
А на прошлой работе подобное делалось путем высылки клиенту несимметрично зашифрованного ключевого файла, туда же вшиты реквизиты покупателя - сразу видно у кого утекло если что.


 
Maacheba   (2009-02-14 12:51) [42]

Спасибо за ответы! Есть пару вопросов:

1) к чему лучше привязываться? Первоначальное указание - привязываться к ID процессора... Насколько это гудово?

Лично мне понравилась идея с винчестером. Действительно, переустановка винчестера - это переустановка системы обычно, а значит ничего страшного и еще раз активировать.

С железками я не занимался, проблемы по винчестерам озвучил, есть ли универсальный способ привязки? Ведь вариантов может быть множество - IDE винчестер, SCSI, может быть вообще рейд, там какой нафиг ID?
Да и если уж на то пошло, винчестера вообще может не быть, а грузится все с какого-нибудь сетевого накопителя... Я просто не в состоянии все предусмотреть, желательны проверенные решения.

2) если брать в качестве алгоритма RSA. Таким образом, есть открытый ключ и закрытый.
ОБЫЧНО открытым ключом шифруют, а закрытым расшифровывают. И по открытому ключу я точно знаю нереально получить в нормальные сроки закрытый ключ.

Насколько криптостойка обратная операция, то есть по известному закрытому ключу получить открытый ключ?


 
Anatoly Podgoretsky ©   (2009-02-14 13:45) [43]

> Maacheba  (14.02.2009 12:51:42)  [42]

> желательны проверенные решения.

Жениться вам барин нужно.


 
Медвежонок Пятачок ©   (2009-02-14 14:28) [44]

Насколько криптостойка обратная операция, то есть по известному закрытому ключу получить открытый ключ?

Жениться вам барин нужно.

Судя по всему жениться ему рановато. Надо паспорт получить сначала.


 
ilkz   (2009-02-14 21:25) [45]

А по-моему, гораздо проще пересмотреть бизнес-модель приложения, чем делать то, что и так рано или поздно взломают (если оно и будет того стоить)...


 
ilkz   (2009-02-14 21:26) [46]

Придумайте другой способ получить деньги с клиента, чем ключ (каким бы крутым он не был). Уверяю вас, что таких способов навалом.


 
Юрий Зотов ©   (2009-02-14 23:10) [47]

> ilkz   (14.02.09 21:25) [45]

Как Вы совершенно справедливо заметили, если программа стоит взлома, то взломана она будет. Но таких программ сравнительно немного, гораздо чаще нужна защита не от взломщика, а от недобросовестного юзера. А для этого описанный выше способ (привязка к железу с регистрацией ключа у дистрибьютора) вполне подходит.


 
Медвежонок Пятачок ©   (2009-02-14 23:17) [48]

юридически (если вдруг дойдет до разборок) это будет выглядеть ничтожно.

лицензию приобретает физ\юр. лицо, а не железо.
у лица, а не у железа может быть лицензия на использование ПО.
так что вся эта привязка-повязка - децтво


 
Maacheba   (2009-02-14 23:27) [49]

это точно, мировые бренды типа microsoft и oracle до сих пор из детства выйти не могут. Считаю, что им нужно обратиться к винни-пуху.


 
Дмитрий Белькевич ©   (2009-02-15 00:27) [50]

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

В чем проблема? Меняется без вопросов. И счетчики всякие есть, и таблицы лицензий (если один ключ сразу на несколько софтов, либо в одном открывающий разные фичи), и слать физически ничего не нужно. Число-запрос, число-ответ, и всё.

>это точно, мировые бренды типа microsoft и oracle до сих пор из детства выйти не могут.

Когда вы будете владеть мировым брендом, тогда и будете защищать софт, как Майкрософт.

Вообще, например, Филипс, Сименс, Агфа - для вас мировые бренды? Так вот, могу сказать, что они вполне не гнушаются софт ключами и "далласовскими таблетками" защищать.


 
Германн ©   (2009-02-15 01:39) [51]


> Юрий Зотов ©   (14.02.09 23:10) [47]
>
> > ilkz   (14.02.09 21:25) [45]
>
> Как Вы совершенно справедливо заметили, если программа стоит
> взлома, то взломана она будет. Но таких программ сравнительно
> немного, гораздо чаще нужна защита не от взломщика, а от
> недобросовестного юзера. А для этого описанный выше способ
> (привязка к железу с регистрацией ключа у дистрибьютора)
> вполне подходит.
>

Как сотрудник (на сей момент внештатный) техподдержки своей конторы - я против таких советов!
Давай оставим этот сабж на усмотрение Розыча и Макса. Они реально этим вопросом профессионально занимаются!


 
Юрий Зотов ©   (2009-02-15 01:52) [52]

> Германн ©   (15.02.09 01:39) [51]

> Как сотрудник... техподдержки своей конторы - я против таких советов!

А в чем проблемы?

> Давай оставим этот сабж на усмотрение Розыча и Макса.
> Они реально этим вопросом профессионально занимаются!

У них продукт как раз из той серии, что стоит взлома, поэтому и защита ему нужна другая - и от юзера, и от хакера. В сабже, насколько я понял, речь идет вовсе не о таком продукте, там вполне хватит защиты от юзера.


 
Германн ©   (2009-02-15 02:39) [53]


> Юрий Зотов ©   (15.02.09 01:52) [52]


>
> А в чем проблемы?
>
:)


 
Хитрий Лис   (2009-02-15 11:33) [54]

Небольшое дополнение... поясню на примере:

1. Припустим наша организация хочет купить 20 лицензий вашего ПО для двадцати своих пользователей.

2. Структура системы такая
 а) 50 машин - персоналки с Win XP
 б) 50 машин - терминалки с WinSrv 2003 (нетбут, винтов нет)
 в) 20 машин - персоналки с Linux + Wine (не хватило лицензий на винду)

3. При этом 100 виндовых машин в домене, и по правилам безопасности профиль пользователя чиститься от исполняемых файлов, т.е. только документы.

4. Для пользователя любая машина практически прозрачна (есть небольшие ньюансы с Linux-машинами, вместо загрузки доменного профиля монтируется домашняя папка с документами). Пользователи могут свободно переходить с одной машины на другую не сильно теряя в функционале.

Как сделать привязку к пользователю ? Ваши действия ?


 
Хитрий Лис   (2009-02-15 11:38) [55]

Еще один пример:

Ваше ПО ставиться на виртуалку, получается ключ и виртуалка множится 100 раз.

Действия защиты в этом случае ?


 
Maacheba   (2009-02-15 13:11) [56]

Спасибо всем за ответы! Остались вопросы:

1) к чему лучше привязываться? насколько грамотно привязываться к ID процессора?

Насчет привязки к винчестверу - ведь вариантов может быть множество - IDE винчестер, SCSI, может быть вообще RAID-массив, там как? Есть универсальные способы, кто-нибудь реально делал привязку к железу?

2) в алгоритме RSA насколько криптостойка операция получения ключа шифрации, если известен ключ дешифрации?


 
Anatoly Podgoretsky ©   (2009-02-15 13:22) [57]

> Maacheba  (15.02.2009 13:11:56)  [56]

Ключ для шифрации - это открытый ключ.


 
ilkz   (2009-02-15 16:08) [58]

Вот хоть зарежьте меня, но я твердо уверен в том, что ЛЮБОЕ число или данное (ID, номер, что-то еще), которое можно получить ПРОГРАММНО (а ведь именно так получаются эти самые ID, номера, etc) - можно точно так же программно сымитировать. Т.е., написать программку (кряк, патч, как угодно), которая будет эмулировать нужную железку и подсовывать вашей софтине номер.

Далее. Ни для кого не секрет, что в фирму с количеством_компов>1 покупается ОДНИН лицензионный экземпляр, и ставится на ВСЕ компы в организации )) Что будете делать в таком случае? Вместо 100 человек вам заплатит 1.

Последнее время вообще считаю что программы защищать особого смысла нет. Все равно сломают. К тому же, если ваша программа столь уникальна, значит и обычных юзеров у нее не будет на 99.999%. Следовательно, профессиональные юзеры всегда могут написать таблетку.


 
ilkz   (2009-02-15 16:11) [59]

Платить стоит в том и только в том случае, если для пользователя действительно актуальна техподдержка вашего софта. И если вы даете качественную поддержку. Тогда да, можно и заплатить. А все остальные случаи сосут, извиняюсь за выражение...


 
@!!ex ©   (2009-02-15 16:13) [60]

> 2) в алгоритме RSA насколько криптостойка операция получения
> ключа шифрации, если известен ключ дешифрации?

Сильно криптостойкий.
Если уж доверяют электронные документы, то уж копию программы можно спокойной доверить.
По сути узнать закрытый ключ зная открытый - нельзя.


 
@!!ex ©   (2009-02-15 16:20) [61]

> [59] ilkz   (15.02.09 16:11)

Ваша логика сосет, извиняюсь за выражение...

Плата за техподдержку - это отдельная услуга.
То что ВЫ и ВАША фирма нагло воруете софт, это проблема ВАС и ВАШЕЙ фирмы.
Нормальные люди покупают софт, который используют, или не используют.


 
ilkz   (2009-02-15 16:45) [62]

Не, в моей фирме такого, слава Богу, не наблюдается ))


 
@!!ex ©   (2009-02-15 17:13) [63]

> [62] ilkz   (15.02.09 16:45)

Тогда прошу меня извинить, но пропагандировать пиратство не стоит аде если вы сами не пират. :)


 
Eraser ©   (2009-02-15 17:22) [64]

тут сильно не дооценивают защиту с помощью активации. даже без аппаратных ключей. тот же последний радмин уже более полу года не могут взломать, только триал-стоп сделали. главное грамотная реализация.


 
ilkz   (2009-02-15 17:25) [65]


> Тогда прошу меня извинить,

Все нормально ))
Кстати. Вот пришел в голову такой вариант получения денег с клиентов. Сразу скажу, что вряд ли он пригодится для крупного проекта.
Значит, основная идея такова:
Есть прога. Она абсолютно свободная и доступная. Никаких защит в ней нет. Однако, со временем, безусловно, появляются апдейты, фиксы и прочее. Вот тут-то и есть возможность подзаработать. Делается так: разработчиком программы устанавливается конечная сумма (допустим, 100 рублей). До пользователей каким-либо образом доводится о наличии готового (это важно) апдейта. ОДнако, доступен он станет только после сбора указанной суммы (100 рублей). Для каждого пользователя нет конкретного требования - пускай он заплатит столько, сколько сочтет нужным. Как только сумма будет собрана, обновление становится доступным.

Чем хорош такой вариант?
Ненадобность защиты.
Каждый может заплатить столько, сколько сочтет нужным.
Чем больше у программы пользователей, тем меньше им придется платить.
И тем быстрее, вероятно, будет собираться конечная сумма. Само собой, что сумма дифференцирована по отношению к "важности" апдейтов.

Чем плох такой вариант?
Не исключено, что сумма может собираться довольно долго. Особенно на начальных этапах.
Могут возникнуть трудности с корпоративными клиентами. Но тут для них можно установить свою, фиксированную сумму.

Вот. Покритикуйте, пожалуйста.


 
Eraser ©   (2009-02-15 17:28) [66]

> [65] ilkz   (15.02.09 17:25)


> Чем хорош такой вариант?

ничем. если программа будет востребованна эти "засекреченные" обновления можно будет скачать с рубоарда.

кто хочет (вынужден) использовать лицензионный софт, тот его будет использовать. кто не хочет - того не заставишь. более того, пока будешь заставлять - отпугнешь потенциальных клиентов.


 
ilkz   (2009-02-15 17:29) [67]

Фишка в том, что апдейты никуда не выкладываются до тех пор, пока не будет собрана сумма.


 
Eraser ©   (2009-02-15 17:31) [68]

> [67] ilkz   (15.02.09 17:29)

как сумму определять будешь?

вообще читай предыдущее сообщение.


 
ilkz   (2009-02-15 17:33) [69]

Вот с определением суммы может быть трудность. Нужно подходить к этому обоснованно.

И что в предыдущем посте? Тем, кому нужна лицензия - будут ее покупать, не спорю.


 
ilkz   (2009-02-15 17:39) [70]

Кстати, моя идея не нова. Помню, википедия таким образом собирала (кажется, 6 лямов $) на благотворительность или что-то в таком духе...


 
Eraser ©   (2009-02-15 17:39) [71]

> Тем, кому нужна лицензия - будут ее покупать, не спорю.

ну и к чему тогда все эти извращения с накоплением сумм? )


 
ilkz   (2009-02-15 17:42) [72]


> Сразу скажу, что вряд ли он пригодится для крупного проекта.

Читали?

Эти извращения были вызваны желанием подзаработать на небольшом, но полезном приложении. Не более того. ))


 
Eraser ©   (2009-02-15 17:45) [73]

> [72] ilkz   (15.02.09 17:42)

т.е. подзаработать 100р. или целую 1000 ? ) не лучше ли сделать полезный софт donate-ware (тех кто пожертвовал N-ую сумму к примеру могут оставить ссылку на свой сайт на вашем сайте), а если/когда обретет популярность, то перевести в shareware или сделать платные версии?


 
@!!ex ©   (2009-02-15 18:14) [74]

> [73] Eraser ©   (15.02.09 17:45)

Ну вот сейчас есть софтина, которая используется в некоторых проектах. софтина уникальная(аналогов не видел, поэтому и написал). Хочу ее выложить в инете, чтобы народ пользовался.
Две проблемы:
1) Довольно специфичная целевая аудиторя. Ее относительно не много.(По моим прикидкам во всем мире может с 1000 человек)
2) Как ее комерциализировать в дальнейшем - непонятно. Естественно сейчас можно выкладывать только фри, иначе народ просто не "распробует". А потом первести в комерцию - проблематично, т.к. как то серьезно улучшить, чтобы за это захотели заплатить - не получится. Разве что рюшки навешать, но ЦА - профессионалы, которым рюшки по барабану.


 
Eraser ©   (2009-02-15 18:18) [75]

> [74] @!!ex ©   (15.02.09 18:14)


> Естественно сейчас можно выкладывать только фри

далеко не факт. для этого и придуман shareware, чтобы можно было попробовать. мое мнение - freeware это хороший вариант для раскрутки не корпоративного и не специализированного софта, т.е. который особых денег не принесет, если программа не самая популярная или не в хотя бы 5 самых популярных в этом жанре.


 
Maacheba   (2009-02-15 18:20) [76]

@!!ex ©   (15.02.09 16:13) [60]
Сильно криптостойкий.
Если уж доверяют электронные документы, то уж копию программы можно спокойной доверить.
По сути узнать закрытый ключ зная открытый - нельзя.


повторю в пятый раз: насколько криптостойка операция получения ключа шифрации по известному ключу дешифрации? Это - ОБРАТНЫЙ ПРОЦЕСС.

Я не спрашиваю о криптостойкости получения ключа ДЕШИФРАЦИИ по известному ключу шифрации - понятное дело, это операция защищена, она везде и используется. У меня же если будет - то обратный процесс. Надеюсь, в шестой раз повторять не надо будет...


 
ilkz   (2009-02-15 18:23) [77]


> Ну вот сейчас есть софтина, которая используется в некоторых
> проектах. софтина уникальная(аналогов не видел, поэтому
> и написал). Хочу ее выложить в инете, чтобы народ пользовался.
>
> Две проблемы:
> 1) Довольно специфичная целевая аудиторя. Ее относительно
> не много.(По моим прикидкам во всем мире может с 1000 человек)
> 2) Как ее комерциализировать в дальнейшем - непонятно. Естественно
> сейчас можно выкладывать только фри, иначе народ просто
> не "распробует". А потом первести в комерцию - проблематично,
>  т.к. как то серьезно улучшить, чтобы за это захотели заплатить
> - не получится. Разве что рюшки навешать, но ЦА - профессионалы,
>  которым рюшки по барабану.


Вот и у меня абсолютно та же ситуация.


 
ilkz   (2009-02-15 18:27) [78]


> т.е. подзаработать 100р. или целую 1000 ? ) не лучше ли
> сделать полезный софт donate-ware (тех кто пожертвовал N-
> ую сумму к примеру могут оставить ссылку на свой сайт на
> вашем сайте), а если/когда обретет популярность, то перевести
> в shareware или сделать платные версии?


Понимаете в чем дело... Мне кажется, что чем заставить 10 человек отдать мне по 100 рублей, гораздо быстрее и проще будет заставить отдать 1000 человек по рублю. Тут чистая психология работает ))) Ведь для каждого отдельного клиента это будет почти бесплатно. Соответственно, и мотивация к оплате будет выше. Особенно, если клиент знает чего он получит (можно же предоставить подробное описание того, за что будет оплата).

Насчет ссылок - плати не плати, а ссылки все равно оставлять будут. Это никак не проконтролируешь.

А шаровару, опять же, крякнут ))) Ну мы ж в России живем, коллеги )))


 
@!!ex ©   (2009-02-15 19:05) [79]

> [76] Maacheba   (15.02.09 18:20)

Чукча не читатель, или просто не знает что такое электронная подпись?
Электронная подпись, это когда ключ ШИФРАЦИИ закрытый, ключ ДЕШИФРАЦИИ - открытый.
Шифрование открытого канала, это когда передается открытый ключ ШИФРАЦИИ, а ключ ДЕШИФРАЦИИ - закрытый.
Надеюсь еще раз повторять не придется?


 
@!!ex ©   (2009-02-15 19:07) [80]

> [78] ilkz   (15.02.09 18:27)

Этот вариант не прокатит.
Врядли кто-то захочет платить деньги за то, что фактически от него не зависит.
1) Если я плачу, я хочу сразу получить результат. А тут надо ждать.
2) Будут просто ждать, когда кто нибудь другой заплатит.

Ну и просто странно получается, разработчику выгодно создавать кривой софт, чтобы потом клепать на него багфиксы..


 
Anatoly Podgoretsky ©   (2009-02-15 19:53) [81]

> @!!ex  (15.02.2009 19:05:19)  [79]

Только одно но, электронноая подпись это не шифрация, вообще ничего не шифруется.


 
@!!ex ©   (2009-02-15 20:23) [82]

> [81] Anatoly Podgoretsky ©   (15.02.09 19:53)

Правда?
Либо мы говорим о разных принципах, либо вы тоже не в курсе.


 
Eraser ©   (2009-02-15 20:28) [83]

> [82] @!!ex ©   (15.02.09 20:23)


> Правда?

правда. вот тут есть определение http://ru.wikipedia.org/wiki/Цифровая_подпись


 
@!!ex ©   (2009-02-15 20:29) [84]

Когда Вы подписываете свое письмо происходит следующее:
1. Программа получает некий набор символов (иначе ее называют контрольной суммой, хэшем или дайджестом сообщения), который точно соответствуют тексту вашего письма. Если письмо будет изменено, то этот набор (контрольная сумма) тоже должен измениться.
2. Затем полученная контрольная сумма шифруются Вашим закрытым ключом. Теперь ее можно расшифровать только Вашим открытым ключом.
3. Вместе с письмом отправляются контрольная сумма и Ваш открытый ключ.
    Когда Ваше письмо получено, программа получателя берет ваш открытый ключ, присланный с письмом, и с его помощью расшифровывает полученную контрольную сумму. Затем она сама генерирует контрольную сумму для текста письма и сверяет обе контрольные суммы. Если присланная контрольная сумма и вторично полученная программой контрольная сумма совпадают, значит письмо не изменялось.
    Предположим, кто-то перехватил ваше письмо и поменял его содержимое. Он должен сгенерировать новую контрольную сумму, соответствующие новому содержанию письма, но он не сможет зашифровать эту новую контрольную сумму Вашим закрытым ключом за его отсутствием. Если он зашифрует ее другим закрытым ключом, ему придется заменить и открытый ключ. При этом получатель получит не Ваш открытый ключ, выданный "чужим" центром сертификации. И если пользователь не установил сертификат этого центра в свой компьютер как доверенный центр, при получении "чужого" сертификата пользователь будет оповещен об этом.

     Когда Вы шифруете Ваше письмо, его содержание шифруется не вашими ключами, а открытым ключом того, с кем вы переписывались ранее и чей открытый ключ вы уже сохранили в своей адресной книге (см.  раздел, посвященный настройке компьютера). К примеру, Вы переписываетесь с Николаем. У вас есть открытый ключ Николая. Вы нажимаете кнопку ШИФРОВАТЬ перед отправкой письма.  Программа видит, что Вы отправляете письмо Николаю и ищет открытый ключ Николая в адресной книге. Текст шифруется открытым ключом Николая. При этом единственный способ расшифровать это письмо - использовать закрытый ключ Николая. Закрытый ключ Николая хранится на компьютере Николая и никому кроме него не доступен. Поэтому кроме Николая никто, даже перехватив письмо и имея открытый ключ Николая, не может его расшифровать.

(с)гугель


 
@!!ex ©   (2009-02-15 20:35) [85]

> [83] Eraser ©   (15.02.09 20:28)

И что эта ссылка говорит? Помойму прямо говорит, что хэш шифруется:
Поскольку подписываемые документы — переменной (и достаточно большой) длины, в схемах ЭЦП зачастую подпись ставится не на сам документ, а на его хэш. Для вычисления хэша используются криптографические хэш-функции, что гарантирует выявление изменений документа при проверке подписи.


 
Anatoly Podgoretsky ©   (2009-02-15 21:24) [86]

> @!!ex  (15.02.2009 20:35:25)  [85]

Не уходи от ответственности, никакое содержимое не шифруется, оно только подписывается.


 
@!!ex ©   (2009-02-15 21:59) [87]

> [86] Anatoly Podgoretsky ©   (15.02.09 21:24)

А где я говорил что содержимое шифруется?
хэш шифруется.


 
Медвежонок Пятачок ©   (2009-02-16 09:27) [88]

все верно. только фактически в сертификате находится приватный ключ для алгоритмов ЭЦП и открытый ключ для шифрования.

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


 
Maacheba   (2009-02-16 11:10) [89]


> Чукча не читатель, или просто не знает что такое электронная
> подпись?
> Электронная подпись, это когда ключ ШИФРАЦИИ закрытый, ключ
> ДЕШИФРАЦИИ - открытый

блин, точно. Я чего-то протупил в этом вопросе, спасибо большое )
Значит, обе операции и в ту и в другую стороны криптостойкие - я так и думал.

Остается вопрос один!

1) к чему лучше привязываться? насколько грамотно привязываться к ID процессора?

Насчет привязки к винчестверу - ведь вариантов может быть множество - IDE винчестер, SCSI, может быть вообще RAID-массив, там как? Есть
универсальные способы, кто-нибудь реально делал привязку к железу?


> Правда?
> Либо мы говорим о разных принципах, либо вы тоже не в курсе.
>

не парься, АП тоже протупил, любому это очевидно, ибо было написано:

>электронноая подпись это не шифрация, вообще ничего не шифруется

Но он будет пытаться путать тебя и в жизнь не признается, что фигню написал. Не обращай внимание )


 
Медвежонок Пятачок ©   (2009-02-16 11:18) [90]

кто-нибудь реально делал привязку к железу?

Прежде чем озабачиваться способами безопасной посадки на марс, надо сперва выяснить, а взлететь-то ты к нему вообще сможешь?

Взлет в твоем случае  - это технология, запускаемая когда ПО приняло решение о том, что оно - нелегальная копия.

Вот что самое главное, а не то, насколько хитрым способом оно будет решать легально ли оно.


 
Anatoly Podgoretsky ©   (2009-02-16 11:18) [91]

> Maacheba  (16.02.2009 11:10:29)  [89]

Не бойся, на закрытие это никак не повлияет.
Я закрывают ветки без личных предпочтений.


 
KSergey ©   (2009-02-16 11:28) [92]

> Maacheba   (16.02.09 11:10) [89]
> Остается вопрос один!

это капец....
Вам требуется, чтобы ответили непосредственно на ваш вот персональный вопрос??!! обсуждений этой темы - море в даннйо ветке. А решения сами принимайте.


 
Maacheba   (2009-02-16 11:52) [93]


> Медвежонок Пятачок ©   (16.02.09 11:18) [90]

я слышал, что тот, кто общается с лохами - сам по сути лох и не уважает себя.


> Вам требуется, чтобы ответили непосредственно на ваш вот
> персональный вопрос??!!

ну в общем да. Я и тему, если честно, заводил исключительно для того, чтобы ответили на мои вопросы. А зачем еще тему заводить?


> обсуждений этой темы - море в даннйо ветке

не спорю. Но грамотного поста не видел ни одного по теме к чему лучше привязываться. Может я что-то пропустил? Процитируй, пожалуйста, если не сложно. Сразу в пятый раз оговорюсь, что USB-ключи - не вариант.

Хотелось бы услышать мнения о привязки к ID процессора и ID винчестера. Возникающие проблемы, на мой взгляд, я озвучил. Спасибо!


 
Медвежонок Пятачок ©   (2009-02-16 11:54) [94]

Но грамотного поста не видел ни одного по теме к чему лучше привязываться.

А ты все-таки еще и тормоз.


 
KSergey ©   (2009-02-16 12:15) [95]

> Maacheba   (16.02.09 11:52) [93]
> Хотелось бы услышать мнения о привязки к ID процессора и ID винчестера.

Их было высказано очень много.

> Maacheba   (16.02.09 11:52) [93]
> > к чему лучше привязываться.

А это уже не ответ, а решение.
А решения надо самому принимать, т.к. более некому в данном случае.


 
Maaacheba   (2009-02-16 13:14) [96]


> Их было высказано очень много.

да? Но ты сам понимаешь, я ведь тормоз )))) Процитируй, пожалуйста, хотя бы парочку внятных мнений насчет привязки к ID процессора и ID винчестера? Особенно про особенности привязки к винчестеру в виду многообразия онных: IDE, SCSI, RAID-массивы и прочее.


 
Медвежонок Пятачок ©   (2009-02-16 13:43) [97]

рано еще тебе задаваться подобными вопросами.

любая защита защищает по "и", а ломается по "или".

важнейший вопрос - что делать, когда понял что серийник винта не тот, что был при регистрации.

у тебя этот вопрос вообще почему-то не стоит.
это значит что:

1. ты его уже решил. (но тогда бы и самой ветки не было, так как тот, кто способен решить это, не задает детских вопросов "к чему привязаться")

2. ты его не только не решил, но и не понял, что он намного важнее чем вопрос к чему привязяться кроме маминой юбки.
А это значит, что к чему бы ты ни привязался защита твоя будет дырявая, так как в ней отсутствует целое звено, без которого ничего не будеть защищено вообще.


 
Anatoly Podgoretsky ©   (2009-02-16 13:47) [98]

> Maaacheba  (16.02.2009 13:14:36)  [96]

А к какому из миллионов процессоров, ты собираешься привязываться по ИД


 
Anatoly Podgoretsky ©   (2009-02-16 13:50) [99]

> Медвежонок Пятачок  (16.02.2009 13:43:37)  [97]

Если что то и получится, то обычной лохотнончик - схватить чуть денежки и слинять подальше.


 
Медвежонок Пятачок ©   (2009-02-16 16:24) [100]

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

и что автор будет отвечать на вопрос почему не работает?

"извините, вы заплатитли тупому программисту, который не подумал, что жизнь может быть устроена не так примитивно как его моск"


 
Thomas Anders   (2009-02-17 01:58) [101]

Недорогой (недорогой?), вариант защиты...  Сейчас цены на оптические носители небольшие, поэтому можно использовать лазерный диск (CD-R) в качестве своеобразного ключа (что-то вроде альтернативы аппаратного?). В
пользовательской области диска, помимо внесения искаженных данных в TOC, создается еще один нулевой трек. С точки зрения привода такой трек будет неотличим от вводной области диска и попытка его посекторного чтения будет безуспешной, но наличие нулевого трека на диске никак не препятствует чтению субканальных данных, что и можно реализовать алгоритмом работы защиты (чтение TOC"а с последующей проверкой его содержимого на предмет наличия нулевого трека). И хотя на диск нельзя записать никаких данных (кроме самого проверяемого TOC"а), cубканальные данные диска могут хранить не только ключ, но и исполняемый код/данные, обеспечивающие полнофункциональность программы. Конечному пользователю поставляется неполноценная программа с ключевым диском.
Чтобы она превратилась в полнофункциональную, пользователь должен иметь в приводе ключевой диск.

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

Минусы: необходимость разработки собственного инструментария для чтения/записи ключевого диска, со всеми вытекающими из этого последствиями. Еще что-то?


 
Дуб ©   (2009-02-17 07:17) [102]


> Минусы: необходимость разработки собственного инструментария
> для чтения/записи ключевого диска, со всеми вытекающими
> из этого последствиями. Еще что-то?

1. Диск поцарапали.
2. Один привод для дисков и он нужен не только этой программе. Или этой - но для других целей.
3. таких программ несколько - обвешиваемся приводами?


 
KSergey ©   (2009-02-17 08:22) [103]

> Дуб ©   (17.02.09 07:17) [102]
> 3. таких программ несколько - обвешиваемся приводами?

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


 
Дуб ©   (2009-02-17 08:26) [104]

> KSergey ©   (17.02.09 08:22) [103]


> Thomas Anders   (17.02.09 01:58) [101]
> Недорогой (недорогой?), вариант защиты...  Сейчас цены на
> оптические носители небольшие,


?


 
KSergey ©   (2009-02-17 08:39) [105]

> Дуб ©   (17.02.09 08:26) [104]

Ну я не в смысле тебе супротивничал (как оно пишется?), а к тому, что и у ключей есть тот же минус в общем-то. Типа дополнение, ага :)


 
Дуб ©   (2009-02-17 08:42) [106]

> KSergey ©   (17.02.09 08:39) [105]

Это да. Но порт USB и привод - разные весовые категории. :) Хотя и тут засада. Нет в жизни счастья.


 
AndreyV ©   (2009-02-17 09:13) [107]

> [103] KSergey ©   (17.02.09 08:22)
> > Дуб ©   (17.02.09 07:17) [102]
> > 3. таких программ несколько - обвешиваемся приводами?
>
> Если каждый начнет применять электронный ключ, например
> - то и USB-дырок не хватит штатных. При этом, понятно, договариваться
> производители софта на предмет юзанья общих ключей - не
> будут.

USB hub.


 
Anatoly Podgoretsky ©   (2009-02-17 09:30) [108]

> AndreyV  (17.02.2009 9:13:47)  [107]

Нафиг, проще не покупать уродство.


 
KSergey ©   (2009-02-17 09:41) [109]

> AndreyV ©   (17.02.09 09:13) [107]
> USB hub.

За счет производелеля софта? Окей.


 
Anatoly Podgoretsky ©   (2009-02-17 10:08) [110]

> KSergey  (17.02.2009 9:41:49)  [109]

Не пройдет, он скажет, что не может отвечать за других производителей или спонсировать их.
Какое же ценное должно быть приложение, что бы защищать его так зверски. Серийных ключей ему мало, покупателей за воров считает. Совхоз.


 
Maaacheba   (2009-02-17 11:46) [111]


> Минусы: необходимость разработки собственного инструментария
> для чтения/записи ключевого диска, со всеми вытекающими
> из этого последствиями. Еще что-то?

серьезный минус. Времени на такое нету.

KSergey почему (странно, странно) так и не привел парочку грамотных цитат из этой ветки насчет того, к чему привязываться лучше и как, хотя говорил что их полно. Ну, наверное, не нашел, как и я.

Товарищи! Поэтому остается вопрос:

- к чему лучше привязываться? насколько грамотно привязываться к ID процессора?

Насчет привязки к винчестеру - ведь вариантов может быть множество - IDE винчестер, SCSI, может быть вообще RAID-массив, там как?
Еще нужно расмотреть вариант установки Mobile Rack"ов, да и вообще загрузка может осуществляться по сети.

Есть какие-нибудь проверенные способы? Кто имеет реальный опыт привязки к железу?


 
KSergey ©   (2009-02-17 11:57) [112]

> Maaacheba   (17.02.09 11:46) [111]

когда человек не взирая на какие-либо ответы несколько раз тупо копирует один и тот же вопрос - отвечать ему отпадает желание, т.к. все равно не прочтет.
По поводу "что лучше" - я уже писал, см. вторую часть KSergey ©   (16.02.09 12:15) [95]

Да и однозначного ответа нельзя дать, не зная деталей. Вот Билл Гейтс решил, что привязываться к железу - допустимо (про грамотность - не знаю, это мне не сообщалось). Но многие с ним несогласны по разным причинам.


 
Anatoly Podgoretsky ©   (2009-02-17 12:05) [113]

> KSergey  (17.02.2009 11:57:52)  [112]

А он не БГ и ему до него далеко.


 
Maaacheba   (2009-02-17 12:16) [114]


> огда человек не взирая на какие-либо ответы несколько раз
> тупо копирует один и тот же вопрос - отвечать ему отпадает
> желание


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


> По поводу "что лучше" - я уже писал, см. вторую часть KSergey


естественно, я сам буду принимать решение. Именно поэтому, чтобы принять как можно более верное решение, я спрашиваю о том, имел ли кто опыт привязки к железу, чтобы он посоветовал что лучше, чтобы обсудить минусы и плюсы того или иного метода.
В первой же части своего поста ты сказал:

>Их было высказано очень много.

так вот на мой взгляд мнений по поводу привязки было высказано ровно одно - "привязываться не надо". Данное мнение меня не устраивает, ибо защищаться надо. Я тебя просил процитировать хотя бы ПАРУ ТОЛКОВЫХ МНЕНИЙ насчет того, к чему привязываться. Ты не процитировал и я уверен не процитируешь, потому что таких мнений здесь нету. Судя по всему, кроме Jeer"а тут ни у одного человека нет опыта привязки к железу и экплуатирования коммерческой программы при этом. Сейчас я не могу принять грамотное решение и сам это знаю, потому что опыта в данном деле у меня нету. поэтому я спрашиваю советов. Ни одного совета по существу не было, один Jeer посоветовал привязываться к винчестеру, мне эта идея в целом нравится, но я высказал видимые при этом мной проблемы. Как обойти эти проблемы - я не знаю, никто из отвечающих также ничего не сказал на эту тему.


 
Медвежонок Пятачок ©   (2009-02-17 12:42) [115]

вопрос к чему привязываться сильно зависит от твоего конкретного намерения исключить возможность чего-то там при эксплуатации программы.

например использования на двух компах одновременно.
поэтому ты запал на винт.

а у меня один комп и два системных винта.
на обоих операционная система.

к какому винту ты будешь привязываться и можно ли мне использовать твою программу по полной на одном моем компьютере?


 
KSergey ©   (2009-02-17 12:56) [116]

> Maaacheba   (17.02.09 12:16) [114]
> ПАРУ ТОЛКОВЫХ МНЕНИЙ

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

> Судя по всему, кроме Jeer"а тут ни у одного человека нет опыта привязки к железу и экплуатирования коммерческой программы при этом.

Имею опыт эксплуатации следующих программ, привязывающихся к железу: Windows XP, "Консультант Плюс", программатор Orange. Может и другие привязываются (генерят же они мне код для кряка), но не вникал. Для первых двух из перечисленных так же имею опыт использования пиратских версий/серийников, полученных разнями путями, включая официальных диллеров.

Конкртеные примеры? лень искать цитаты, пишу частично "из головы":
- серийник винчестера
- контрольная сумма БИОСа
- МАК-адрес сетевухи
- модель (ID?) материнки

Еще?!! не, я щас вскипячусь, чес. слово


 
Maaacheba   (2009-02-17 12:59) [117]

Медвежонок, я не буду общаться с людьми, которые не уважают себя. Поэтому твои посты мне параллельны. Поэтому смысла тратить личное время впустую на написание постов в этой ветке с твоей стороны я просто не вижу.


 
Maaacheba   (2009-02-17 13:09) [118]


> Конкртеные примеры? лень искать цитаты, пишу частично "из
> головы":

могу тебе заметить, что кроме серийника винчестера предложенного Jeer"ом ни одного из перечисленного тобой пункта в ветке предложено НЕ БЫЛО. Неужели ты это называешь "было много вариантов"?


> - серийник винчестера

проблемы от серийника винчестера как раз неоднократно были высказаны в этой ветке. Особенно меня беспокоят SCSI винчестеры и Raid-массивы, которые легко могут стоять на сервере, а ПО ставится зачастую именно туда.
Как с ними быть? Ну НЕ БЫЛО ничего о решении данной проблемы в этой ветке. НИ СЛОВА.


> - контрольная сумма БИОСа

а мне винда разрешит прочесть БИОС? В самом биосе нет данных, которые могут быть изменены? Например, в биосе выбрали какой-то другой режим работы энергосбережения и CRC биоса изменится?


> - МАК-адрес сетевухи

он легко меняется прямо средствами Windows.


> - модель (ID?) материнки

знак вопроса - это ты меня спрашиваешь?

По-моему, ты так и не понял. Я не просил перечислять все оборудование к которому теоретически можно привязаться, я тоже могу от балды перечислить кучу всего: ID процессора, модель звуковой карты, модели (ID?) северного и южного моста, модель (ID?) оперативной памяти, серийник оптических устройств, модель монитора, модель клавиатуры и мыши и так далее далее далее...

Но что толку? Я спрашиваю о РЕАЛЬНОМ опыте привязки. К чему ЛУЧШЕ привязываться в компромисе между степенью защиты от взлома и удобства легальных пользователей. Из каких компонентов состоит компьютер я тоже знаю.


 
KSergey ©   (2009-02-17 13:32) [119]

> Maaacheba   (17.02.09 13:09) [118]
К чему ЛУЧШЕ привязываться в компромисе между степенью защиты от взлома и удобства легальных пользователей.

это пипец, дорогая редакция... а пипец мы не лечим.

а главное, что чел. так и не понял, что между тем к чему привязаться и сложностью взлома связи ваще нет никакой...

все, я умолкаю. Успехов!


 
Alex Konshin ©   (2009-02-17 14:00) [120]

Ну, во-первых, посмотри у меня на сайте. Там давно ничего не обновлялось, но ещё что-то актуально и, как выясняется, даже работает.
Во-вторых, проблем с SCSI винчестером нет, если не считать, что нужен доступ администратора. С SSD проблем нет (точнее, они точно такие же, как и с обычными HDD), у меня стоит 128G SSD и серийник определяется на ура. А вот с рейдами действительно засада. И с внешними USB винчестерами очевидно тоже. И я ожидаю ещё большей засады от нового стандарта USB, который даёт приличную скорость и потому есть смысл использовать этот интерфейс для каких-нибудь будущих дисков.


 
Медвежонок Пятачок ©   (2009-02-17 14:09) [121]

я не буду общаться с людьми

кто не общается, тот просто не общается, а не повторяет каждый раз, что он не будет общаться.


 
Maaacheba   (2009-02-17 14:19) [122]

Alex Konshin, судя по всему, вариант с HDD отпадает для меня (((
Программа серверная, велика вероятность установки на сервер организации, а там уже немал шанс наличия рейда (

Если бы ты делал привязку к железу в своей программе на настоящий момент - к чему бы привязывался?


 
Anatoly Podgoretsky ©   (2009-02-17 15:09) [123]

> Медвежонок Пятачок  (17.02.2009 12:42:55)  [115]

А ты причем, пусть он договор с компьютером заключает.


 
Anatoly Podgoretsky ©   (2009-02-17 15:13) [124]

> Maaacheba  (17.02.2009 14:19:02)  [122]

А я бы не имел дела с ворами, а ты по всему всех ставишь в эту позицию.


 
тимохов   (2009-02-17 18:46) [125]

я электронными ключами защиты защищаюсь.
и тремя виртуальными машинами.

вроде пока не отломали. хотя запросы на взлом на соответствующих сайтах видел.

возможно не отлолмали, потому, что никто не дает рабочий вариант для взлома, т.е. типа просит сломать без эл. ключа защиты. это имхо вообще мало реально, ибо долго и дорого. а может правда защита неплохая у меня:)

защищайся ключами защиты, товарищ - вынеси в ключ какой-нить алгоритм (на С пищеца) и дергай его из ключа. такое позволяет делать senselock. guardant вроде скоро сможет делать, но пока не делает.

мое имхо (спорить с розычем не буду), что при граммотном вынесении алгоритма в ключ, который позволяет хранить в себе кастомизированные алгоритмы, вообще не должно ничего отламываться даже без виртуальных машинок, драйверов и прочей антихакерской дребедени. отломать можно только полным подбором алгоритма (но я же сказал *граммотном* вынесении алгоритма, т.е. брут исключается) или физической эмуляцией ключа. в латвии по слухам есть лаборатория, где за 300к$ послоям тебе разберут любой ключ и дадут схему - останется только производство наладить аналогичных микросхем, можно у Филипса покупать - они вроде делают многие микросхемы сейчас для ключей :)

еще раз, не парься и пищи защиту с эл. ключами защиты.


 
Maaacheba   (2009-02-17 19:34) [126]

Про ключ уже обсуждалось, пока с этим связываться не будем. Да и начальство пока против.

Не так уж нам сейчас важна взломозащищенность, вряд ли программу будут спецы ломать. Это по большей части защита от наших же диллеров, которые за железо заплатят, а программу размножат. Поэтому нужно привязаться с одной стороны, чтобы это не глупо совсем уж выглядело и ломалось совсем чайниками, с другой чтобы не создавать проблем легалам.


 
Кто б сомневался ©   (2009-02-17 19:43) [127]

Год назад примерно, я ломал Fine Reader, у которого привязка к номеру системного тома диска.
Сначала алгоритм шифрования менялся, после сделал замену текущего номера тома на константу зарегистрированной лицензии. (т.е. идет файл лицензии под определенный ID тома, который и ставил кряк), после не знаю что изменили.

в принципе сам вариант не плох для защиты от обычных юзеров. Сам собираюсь ориентироваться на серийник hdd. Все равно взломают, - лучше я буду модифицировать алгоритм на серийнике, дабы не работали текущие ломалки, чем писать super защиту на виртуальной машине (ее ведь тоже взломают, если прога будет популярна). Так сэкономлю время, а соответственно и деньги. +- 10000 пользователей - погрешность все равно есть, 100% покупок никогда не получиться.
Exe можно упаковать каким нибудь криптором.


 
Кто б сомневался ©   (2009-02-17 20:07) [128]

По поводу :

> Медвежонок Пятачок ©   (16.02.09 16:24) [100]
>
> привязка к серийнику винта, замечательно.
> автор подразумевает, что программа регистрируется на конкретном
> компьютере. окей.
> у меня два винта и мобил рак.
> к какому винту вяжемся? к системному?
> а они оба системные и на обоих своя копия оси.
> ко всем?
> а у меня в мобил раке еще десять винтов поочереди стоят.
>
>
> и что автор будет отвечать на вопрос почему не работает?
>


К текущему системному, на котором запускалась прога. Ниипет что у тебя 20 системных винтов. Хочешь юзать, грузи ту, на которой регистрировал программу.
Где я по твоему буду скрытый флаг оставлять, что прога зарегистрированна? В реестре текущей винды втч.
Много ты видел таких прог, которые могли работать зарегистрированными на нескольких осях, при условии что ты установил и зарегистрировал ее на одной?
Мало вот именно. Меньшинство, минимум.


 
Кто б сомневался ©   (2009-02-17 20:16) [129]

Кстати, если код будет лежать в файле, рядом с программой, то этот вариант с 20 системными дисками также проходит. Ведь запускать ты будешь ее с того диска, на который установленая программа. Но это вариант не прокатит, если программа что либо устанавливает только для текущей ОС (регистрирует com, меню, расширения итп), и это есть правильно.


 
Maaacheba   (2009-02-17 22:03) [130]

to Кто б сомневался:

основной вопрос про привязку к HDD здесь уже был освещен: что делать с RAID-массивами? А это вполне обычная ситуация на серверах.


 
Кто б сомневался ©   (2009-02-17 22:27) [131]


> Maaacheba   (17.02.09 22:03) [130]


Я особо не волнуюсь, т.к. у меня программа не будет запускаться на серверах - она для обычных юзеров.
Попробуйте поэксперементировать, покопаться в RAId"e - благо сегодня почти каждая материнка обладает каким-нибудь RAID-контроллером.
По идее как то можно ведь узнать информацию одного из дисков массива.
Незнаю, может с реестра.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\IDE
Я с этим никогда не сталкивался, поэтому не знаю.

Можно также привязаться к ID матери, к примеру тут с реестра :HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\BIOS

Или лучше даже (?) через wmi узнать.


 
Кто б сомневался ©   (2009-02-17 22:28) [132]


> к ID матери


Биоса т.е.


 
@!!ex ©   (2009-02-17 22:31) [133]

> Я особо не волнуюсь, т.к. у меня программа не будет запускаться
> на серверах - она для обычных юзеров.

Я обычный пользователь. рэйд у меня.


> По идее как то можно ведь узнать информацию одного из дисков
> массива.

нет. на уровне системы хардварный рэйд видится как один винчестер.


 
Кто б сомневался ©   (2009-02-17 22:35) [134]

Сюда посмотри также.
http://msdn.microsoft.com/en-us/library/aa394077(VS.85).aspx

значит будет рыться в WMI. :)


 
Maaacheba   (2009-02-17 22:36) [135]

Кто б сомневался ©   (17.02.09 22:27) [131]
Я с этим никогда не сталкивался, поэтому не знаю.

Можно также привязаться к ID матери, к примеру тут с реестра :HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\BIOS

Или лучше даже (?) через wmi узнать


может и лучше. Ты фактически озвучил вопросы, из-за которых и была заведена данная тема. Ответить грамотно я, естественно, не могу. Иначе бы не заводил эту тему.


 
Кто б сомневался ©   (2009-02-17 22:37) [136]

Последняя фраза была адресована к @!!ex. Вместо будет - будем, меня это тоже касается. :)


 
Кто б сомневался ©   (2009-02-17 22:40) [137]

WMI:
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=698

[136]
Правда я позже этим буду заниматься, когда уже все закончу..


 
Кто б сомневался ©   (2009-02-17 22:50) [138]

Там слева посмотри, от ссылки на msdn - есть много интересных ссылок.
Например эта:

http://msdn.microsoft.com/en-us/library/aa394072(VS.85).aspx

Кстати, на 100 процентов я не верю @!!ex [133], т.к. он наверняка не углублялся в этот вопрос. поэтому нужно порыться, и самому все выяснить, по тем ссылкам в MSDN wmi.

Вот еще одна ссылка про Disk Drive. http://msdn.microsoft.com/en-us/library/aa394132(VS.85).aspx

Короче дальше сам разберешся, имхо нужно поставить для проверки RAID массив, и дальше уже разбираться по ситуации, запрашиваю инфу через wmi и смотреть результат.


 
Maaacheba   (2009-02-17 22:55) [139]

Кто б сомневался ©   (17.02.09 22:50) [138]
Короче дальше сам разберешся


Я вообще не уверен, что привязка к HDD - это оптимально. Поэтому и спрашиваю - может, у кого есть опыт в этом деле и он парой абзацев сократит мне месяц работы. Вдруг самое выгодное к номеру северного моста привязываться? Хрен его знает.


 
Кто б сомневался ©   (2009-02-17 22:56) [140]

В конце концов можно доставить ID тома системного диска.
Который есть везде.


 
Кто б сомневался ©   (2009-02-17 23:00) [141]

ну по идее конечно лучше делать привязку к ID матери, ведь это очевидно.
Некоторые продукты MS так и делают, о чем они и предупреждают.
Ведь мать меняют не так часто как винт.


 
Медвежонок Пятачок ©   (2009-02-17 23:35) [142]

К текущему системному, на котором запускалась прога. Ниипет что у тебя 20 системных винтов.

А где у тебя в лицензии сказано про единственную копию системы?

Там подразумевается один комьютер, имеется ввиду экземпляр оси, а проверяется вообще серийник винта.

как в анекдоте про английский  : Пишется "лондон", произносится "манчестер", а переводится как "ливерпуль"


 
тимохов   (2009-02-18 00:53) [143]

почитав обсуждения с времени моего последнего поста скажу - да, блин, юзай ключ, хоть и начальник против.

у кого ключ - тот и может, нет ключа, не можешь. все!


 
Кто б сомневался ©   (2009-02-18 01:35) [144]


> А где у тебя в лицензии сказано про единственную копию системы?


Небоись, я уже передумал (незнаю как автор). Я правда этим вопросом еще впритык не занимался, но вот ближе придвинуться пришлось, благодаря сему топику.
Буду делать на основе ID мат платы.
Хотя заметь, есть известные программы. которые генерят лицензию на основе тома диска, тот же FineReader. На деле не все так плохо, т.к. большинство юзают один винт, правда винты стали наращиваться, поэтому быстро меняются. Я уже сменил 2 винта  с 2003 года (т.е. в сумме у меня их 3).


 
Maaacheba   (2009-02-18 13:16) [145]


> Небоись, я уже передумал (незнаю как автор

насчет HDD - я тоже передумал )


> Буду делать на основе ID мат платы

я еще думаю насчет ID-процессора... Есть мысли?
У меня пока одна - процессоров может быть тоже несколько в системе...


> Хотя заметь, есть известные программы

да ему пофигу. Он никогда не делал защиту и в ближайшее время, видимо, не будет. Поэтому он может строить из себя знатока.


> почитав обсуждения с времени моего последнего поста скажу
> - да, блин, юзай ключ, хоть и начальник против

тимохов, предлагаешь на свои деньги ключи покупать? Я добрый, но не настолько )


 
Юрий Зотов ©   (2009-02-18 13:37) [146]

> Maaacheba

См.
http://delphimaster.net/view/15-1234803136/
Пост [107].


 
KSergey ©   (2009-02-18 14:35) [147]

> Maaacheba   (17.02.09 22:55) [139]
> и он парой абзацев сократит мне месяц работы.

Тогда, очевидно, надо озвучить сумму.


 
Maaacheba   (2009-02-18 15:12) [148]


> Тогда, очевидно, надо озвучить сумму.

ты не понял одну простую вещь. Форумы исключительно для того и существуют. Ты экономишь свое время за счет времени другого.

Статьи для этого пишутся (если они не оплачены) - чтобы сэкономить время другим за счет собственного времени.

Если вдуматься - это очевидно, но когда это озвучивается впрямую - ты сразу переходишь на вопрос денег. А все строится по-другому, ты разбирался в проблеме полгода - взял да и помог другому, он это сделал за неделю всего. В следующий раз он поможет тебе в проблеме, в которой копался сам. Типа того должно быть.


 
Плохиш ©   (2009-02-18 15:20) [149]


> А все строится по-другому, ты разбирался в проблеме полгода
> - взял да и помог другому, он это сделал за неделю всего.
>  В следующий раз он поможет тебе в проблеме, в которой копался
> сам. Типа того должно быть.

Что-то "следующий раз" всё никак не наступит...


 
Anatoly Podgoretsky ©   (2009-02-18 15:25) [150]

> Maaacheba  (18.02.2009 15:12:28)  [148]

Говоришь хорошо.


 
KSergey ©   (2009-02-18 15:29) [151]

> Maaacheba   (18.02.09 15:12) [148]
> Если вдуматься - это очевидно,

Согласен. Так думает каждый вопрошающий. Многие даже свято верят.
Однако на практике получаешь [149], так что не надо ля-ля.


 
Maaacheba   (2009-02-18 15:30) [152]

я на этом форуме сотни раз отвечал и даже по нубости своей готовые примеры писал, на написание которых тратил по часу.

Но у телепатов всегда свое мнение )))))) Они ж телепаты


 
Maaacheba   (2009-02-18 15:32) [153]

Удалено модератором


 
KSergey ©   (2009-02-18 15:33) [154]

И кроме того, поймите наконец простую вещь: мнения, сказки, реплики - стоят ничего, потому их и выдают бесплатно. А, это еще - советы.

Но вы во всех ветках упорно ты требуешь не совета, от советов ты отмахваешься. Ты требуешь готового решения, котрое можно сразу пустить в дело, чем - на самом деле - можно существенно сократить затратность работы. А это уже, извини, совершенно логично стоит денег. Что тебе так же прямо говорится, не понятно чем это не устраивает.


 
KSergey ©   (2009-02-18 15:34) [155]

А статьи - они тоже вовсе не для сокращения времени читающего пишутся, отнюдь! Это полный наивняк так думать.


 
KSergey ©   (2009-02-18 15:36) [156]

> KSergey ©   (18.02.09 15:33) [154]
> Но вы во всех ветках упорно ты

класс...
прошу не принимать как оскорбление, сорри.


 
Maaacheba   (2009-02-18 15:59) [157]


>  статьи - они тоже вовсе не для сокращения времени читающего
> пишутся, отнюдь! Это полный наивняк так думать

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


 
KSergey ©   (2009-02-18 16:01) [158]

> Maaacheba   (18.02.09 15:59) [157]
> сам автор не думает о сокращении времени другим, когда пишет статью - тут обычно
> царит общечеловеческое типа "помочь людям, поделиться, научить",

Отнюдь! Авторами движут совершенно другие мотивы. Ведь авторы - люди.


 
Maaacheba   (2009-02-18 16:10) [159]

Ты так описываешь... Я лично вообще-то немало статей всяких писал, по большей части не по программингу, но тем не менее.

Пишут их или за деньги, или ради самоудовлетворения (ну или по необходимости типа учебы и так далее) - тут блин просто не дано иного.

Но если статья и приносит выгоду - только одну - сокращение времени читающего. Он получает опыт не собственными руками, а готовый опыт другого человека. Вот и все.


 
Anatoly Podgoretsky ©   (2009-02-18 16:25) [160]

> Maaacheba  (18.02.2009 15:59:37)  [157]

Вообще то это как с ограми, они как лук, так и здесь, понять почему кто то пишет статью, так он себе не признается, может ему за державу обидно, не помощь.


 
Maaacheba   (2009-02-24 10:03) [161]

Мож поднимем тему, спецы подтянутся...


 
Maaacheba   (2009-02-27 11:36) [162]

Если у кого появились интересные мыслишки - высказывайте!


 
Юрий Зотов ©   (2009-02-27 12:34) [163]

> Если у кого появились интересные мыслишки - высказывайте!

Есть одна интересная мыслишка. Высказываю.

Эта ветка существует 2 недели. За такое же время защита, о которой я говорил выше, была не только продумана, но и реализована.

Не пора ли и Вам приступить к делу? Ведь сверх того, что уже здесь было сказано, все равно ничего конкретного сказано не будет.

Потому что тем, кто этим реально не занимался, сказать уже нечего. А те, кто занимался, ничего конкретного, естественно, не скажут.


 
Thomas Anders   (2009-02-28 02:38) [164]

Вобщем-то в [163] уже все сказано, но все равно добавлю.

Вы хотите реализовать серьезную защиту, и в то-же время говорите:

Времени на такое нету.
- к чему лучше привязываться? насколько грамотно привязываться к ID процессора?

Насчет привязки к винчестеру - ведь вариантов может быть множество - IDE винчестер, SCSI, может быть вообще RAID-массив, там как?
Еще нужно расмотреть вариант установки Mobile Rack"ов, да и вообще загрузка может осуществляться по сети.

Есть какие-нибудь проверенные способы?


Для грамотной "привязки к железу" нужно писать драйвер/свой
инструментарий, на что потребуется время/деньги (если заказывать разработку, да и время это в конечном итоге тоже деньги), иначе эффективность защиты быстро стремится к нулю. А все рассуждения типа:
"диск поцарапали, ключ уронили/сломали, обвешиваемся приводами" - из ряда - "...что будет, если...?", или "...а вот вдруг...!!!", "ну дык ктонить поможет, или мне опять всё самому делать?".

С другой стороны: задача - привязать программу к "рабочему месту". Берем ручку и лист бумаги разделяем его пополам и с одной стороны описываем типовую конфигурацию "рабочего места" - установленного на него программного и аппаратного обеспечения (если программа стоящая, то и особенные требования найдутся). На другой половине описываем
какие изменения (и какова их степень) приводит к тому что теперь это другое рабочее место и есть основание заявить о необходимости переустановки программы, в общем, решить для себя - что значит "запустили программу на другом компьютере". Вариантов к чему "привязаться" масса - в дополнение к вышесказанному: дате изготовления/контрольной сумме BIOS, можно взять информацию об устройсвах из конфигурационного пространства PCI, идентификация модулей оперативной памяти по информации SPD (Serial Presence Detect), видеокарта (VendorID, тип и количество видеопамяти, etc), контроллер USB, к ProductId Windows (хотя это уже не железо) и на что еще фантазии хватит. Далее, определияемся с форматом хранения этой информации и способа интеграции в код программы для наибольшей зависимости
(можно написать свой линковщик, можно использовать java П-код и генерировать на нем часть программы - выполнять в другом потоке исползуя какую нибудь JVM, написать свою виртуальную машину,  наконец, etc). Далее применяем нейронные (НС) сети для анализа этого описания - что позволяет сделать более мягкую проверку на изменение конфигурации,
с каждым запуском нужно сохранять результат анализа, то есть новую конфигурацию. При этом должно быть накопление (в разумных пределах) результатов анализа и периодической смены эталона с которым нужно сравнение. Защиваем генератор НС - для этого система будет состоять из 3-х частей: программа установки, сама программа, генератор НС. Конечному пользователю высылается программа установки и сама программа. Программа установки, формирует предварительное описание рабочего места - передает разработчику. На основе этого описания - генератор формирует НС и высылает назад. Программа установки вшивает НС в рабочую программу (любые другие варианты). Таким образом разработчику нужно защищать только генератор НС (не допустить его утечки).

Плюсы - сложность трассировки. Интеграция в нейронные сети своего кода достаточно проста, в связи с компонентной архетиктурой Delphi,
так-же можно сделать зависимость от степени узнавания - степень ограничений на функциональность программы. Так как в НС нет прямых переходов - если, иначе - то банальная замена инструкций не поможет взломщику, снимок программы из памяти тоже, знание НС не дает ничего.

Минусы - а теперь представьте, на сколько должна быть стоящей Ваша программа.

;)


 
криптор   (2009-02-28 03:09) [165]

Раз уж тема всплыла....

Миша,

Купи 2 штуки VmProtect+ExeCryptor (сейчас в сумме где-то 500 зеленых). Второй накатывай после первого. Бери от них все. Поверь, ты лучше не напишешь, ибо это не твой профиль.

Плюс своего творчества немного добавить, примитивную виртуальную машинку - поверь, это разбираться замумукаюца.


 
KSergey ©   (2009-02-28 07:38) [166]

главное после внедрения всех "привязок к железу" не забыть запустит прогу под пользователем с порезанными правами и пожалеть о бесцельно прожитых годах.


 
ZeroDivide ©   (2009-02-28 09:50) [167]


> Купи 2 штуки VmProtect+ExeCryptor (сейчас в сумме где-то
> 500 зеленых).


Хороший совет.

Не читал всю тему, но пару слов скажу:

Хакерам пофиг на все ваши алгоритмы шифрования... им просто важно найти какой call или jmp поменять на nop. Поэтому стоит постараться сделать побольше различных проверок, чтобы хакер реально запарился... Т.е. чтобы занопить нужно было кучу байтиков и в различных частях кода (а не в одном месте).

Ну и последнее: взлом программы на ранних стадиях ее развития - имеет только положительный маркетинговый эффект. А если программа действительно станет продаваться, то купить любую нормальную защиту - типа озвученных выше, вам не будет в напряг (500$ - это гораздо дешевле, чем сочинять чего-то самому).


 
Anatoly Podgoretsky ©   (2009-02-28 10:40) [168]

> Thomas Anders  (28.02.2009 2:38:44)  [164]

> Таким образом разработчику нужно защищать только генератор НС (не допустить его утечки).

Теперь скажи как, теперь будешь навешивать на него защиту и так далее.
Автор псих, в дрожь кидает от того, что кто то скопирует и прочее его чудо поделку.
Я знаю один способ, это не нам надо платить, а ему, что бы мы стали использовать его поделку.


 
Anatoly Podgoretsky ©   (2009-02-28 10:42) [169]

> ZeroDivide  (28.02.2009 9:50:47)  [167]

Пусть для начала заработает эти деньги для типовой цены в 20 баксов и спресованом рынке.


 
Maaacheba   (2009-02-28 16:27) [170]

Юрий Зотов ©   (27.02.09 12:34) [163]
Не пора ли и Вам приступить к делу?


по плану заниматься написанием защиты буду где-то через месяц, сейчас есть куда более насущные дела. Пока собираю информацию.

Мне допустим очень понравился пост Алеса Коншина. Он написал букв в разы меньше, чем подавляющее большинство авторов. И составил мне пользу процентов в 80% от этой ветки.

Я понимаю, что спецов в данном вопросе найти сложно, которые еще захотят поделиться знаниями, но для меня это не повод не попробовать.


 
Maaacheba   (2009-02-28 16:37) [171]

Thomas Anders   (28.02.09 2:38) [164]
Для грамотной "привязки к железу" нужно писать драйвер/свой


хрен знает, а чем это лучше? Тогда просто будут ломать не программа, а сам драйвер. А скорее всего, канал связи между драйвером и прогой.

Thomas Anders   (28.02.09 2:38) [164]
какие изменения (и какова их степень) приводит к тому что теперь это другое рабочее место и есть


я уже говорил, но повторюсь. Вопрос не в том, к чему можно привязаться принципиально, я понимаю из чего состоит из компьютер. Вопрос в том, к чему привязываться ГРАМОТНО. Или наименее глупо, кому как нравится.

Я уже описывал, привязка не должна создавать легальным пользоватлеям никаких проблем ну или по крайней мере минимум. Она должна работать на подавляющем количестве конфигураций. Очень желательно уметь работать, не обладая администраторскими правами (пока все делается для того, чтобы программе кроме как при установке не требовались для запуска права админа и это соблюдается на настоящий момент).

Thomas Anders   (28.02.09 2:38) [164]
Вариантов к чему "привязаться" масса


просто огромная туча. Поэтому вопрос и сложен, попробовать, потестировать всякие различные варианты на живых клиентах (а очень большая их часть сильно удалена от офиса) нельзя позволить, тестировать такое огромное количество вариантов нет ресурсов.

криптор   (28.02.09 3:09) [165]
Купи 2 штуки VmProtect+ExeCryptor


а какой от них негатив есть?

криптор   (28.02.09 3:09) [165]
Поверь, ты лучше не напишешь, ибо это не твой профиль.


да я уверен и ты лучше не напишешь, хотя частично это твой профиль (не напишешь в рамках работы над защитой продукта, если поставить такую цель вообще, набрать комманду - то наверное можно). Тут дело только в том, что если это известные продукты - могут существовать известные пути обхода...

KSergey ©   (28.02.09 7:38) [166]
главное после внедрения всех "привязок к железу" не забыть запустит прогу под пользователем с порезанными правами


да, этот вопрос меня сильно волнует. Надо без админских прав по возможности все это делать.


 
Mystic ©   (2009-02-28 17:15) [172]

Можно так же вшивать в инсталляцию свой серийный номер, а не брать его с винта. Читал по диагонали, предлагал кто?


 
Maaacheba   (2009-02-28 17:26) [173]


> Можно так же вшивать в инсталляцию свой серийный номер,
> а не брать его с винта. Читал по диагонали, предлагал кто?


я вообще не понял, а какой в этом случае эффект? Чем отличается от предоставлению клиента "универсального" дистрибутива + на бумажке его индивидуальный серийный номер?

Единственное, в последнем варианте клиенту придется вручную вбивать SK, в твоем же варианту он уже вбит. А какая в целом разница для защиты?


 
криптор   (2009-02-28 19:43) [174]

Михаил, посмотри на криптор и вмпотект сам.
Везде есть дема. В крипторе оч. фиговая поддержка, в вмпротекте в разы лучше - можно просто по аське вопросы автору задавать.

оба продукта - обфускаторы бинарного кода на основе собственных виртуальных машин. насколько я знаю нет автоматизированного разбора обфускаченных (т.е. восстановления исходного машинного кода) кусков ни у того ни у другого.
я считаю, что обфускатор не ломается (аксиома). навесняк (противодействие отладчику и прочее) снимается.

в вмпротекте нет как таковой встроенной либы - есть только обфускатор. Зато может обфускачить целые функции или даже цепочки вызовов.
в крипторе есть навернутая либа - в частности есть gethardwareid.

вообще, главная задача не получить этот самый id, а грамотно его применить, именно для этого все куски, которые используют id, обфускачат дабы скрыть логику обработки.

вообще, это тема долгая и сложная.

одно могу сказать - без обфускатора быстренько снимут твою защиту. с обфускатором подумают, т.к. время займет изрядное.

и еще - твоя главная задача - замучить хакера. снял он например одну проверку, а потом при достижении определенного события (зависщего от данных, например) снова прокручивается кусок защиты в результате которой должна получиться константа 1. потом через еще часок ты на эту константу помножаешь параметр, если не 1, то программа упадет.

конечно, такие подлянки должны быть продуманы таким образом, чтобы случались только после ГАРАНТИРОВАННОГО подлома предыдущих кусков.

твори!


 
Maaacheba   (2009-02-28 21:00) [175]

о, огромненький сенкс, буду активно думать в то направление.

Но кое-что непонятно...

криптор   (28.02.09 19:43) [174]
Зато может обфускачить целые функции или даже цепочки вызовов.


а как это в бинарном коде можно обфускачивать функции? Там ведь и функций то нету фактически в явном виде. Это бинарные обфускатели именно или исходного кода дельфи?

криптор   (28.02.09 19:43) [174]
в частности есть gethardwareid

а не знаешь на основе чего этот ID определяется, какие железки учитываются, эта информация в открытом доступе?

Может ли работать в режиме НЕ админа?

криптор   (28.02.09 19:43) [174]
в крипторе есть навернутая либа


а не будет ли это являться самым слабым местом, что либу подменят и она моей проге один фиг будет выдавать один и тот же ID.


 
криптор   (2009-02-28 21:08) [176]

там есть демо-версии.


 
Maaacheba   (2009-03-01 11:26) [177]

ок, посмотрю.

Но все же - а какой от нее негатив? Замедление работы кода? Какие-то тех. сложности?

Например, если буду передавать в DLL адрес функции для вызова - есть может какие грабли? Ну или в данном духе, в каких ситуациях теоретически может помешать.


 
криптор   (2009-03-01 12:08) [178]

теоретически обе библиотеки имеют встроенные средства для противодействию отладке.

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

сам понимаешь, что средства антиотладки иногда играют на грани фола, у меня были небольшие проблемы с криптором - решилось последовательным отлючением антиотладочных функций.

сейчас же все ок.

а негатив понятен - обфускаченные места работают на 3 порядка медленне. поэтому нужно выбирать эту кусочки.

обфускаченье происходит либо по меткам внутри кода (это обычно инклюд с асмовской вставкой), либо целых функций по мап файлу (это только вмпротект делать умеет).

еще раз - смотри, разбирайся, твори. уверен, что это должно решить твои проблемы.


 
KSergey ©   (2009-03-02 06:24) [179]

> криптор   (28.02.09 19:43) [174]
> 1. потом через еще часок ты на эту константу помножаешь
> параметр, если не 1, то программа упадет.

Вот с падением/вычисление кривых результатов есть момент: если будут пользоваться пиратками - то возникнет устойчивый миф "прога глючная". И фик докажешь, что беда в ее ломанности, работает  же ломаная винда/офис, не падает.
Ну т.е. метод хорош, но его надо аккуратно применять. Как отлично сделаный в этом плане продукт - вента-факс. Видимо желательно как-то явно эту кривость показывать (полосы вместо отчета), а не просто падать/кривуюу сутту в отчете насчитывать, например.


 
криптор   (2009-03-02 11:00) [180]


> KSergey ©   (02.03.09 06:24) [179]


> показывать (полосы вместо отчета), а не просто падать/кривуюу
> сутту в отчете насчитывать, например.
>


я же ему и говорю - твори. тут нужно думать. думать много.

в принципе отлом НЕ тривиальной проверки под обфускатором - само по себе дело не тривиальное. Вообще, хакер должен понять, что он ничего не понял - он не должен быть уверен, что отломал все. у него должна быть паранойя - вроде все отломал, а тут раз и еще.

хотя в целом с тобой, Сергей, согласен - валицо нужно красиво :)


 
KSergey ©   (2009-03-02 11:28) [181]

> криптор   (02.03.09 11:00) [180]
> я же ему и говорю - твори. тут нужно думать. думать много.

"Пусть лошадь думает. У нее голова большая."

Автор, если честно, то ваше желание вот получить готовенькое, подробненькое да еще проверенное - напрягает. Идей прозвучало действительно много, хороших. А про рецепты уже писалось.


 
Maaacheba   (2009-03-02 12:55) [182]

KSergey, ты уже пять раз повторил, что прозвучало много хороших идей. И при этом по моей просьюе не смог процитировать НИ ОДНУ хорошую в моем случае идею.

Вот это уже напрягает, да.


 
Anatoly Podgoretsky ©   (2009-03-02 13:04) [183]

> Maaacheba  (02.03.2009 12:55:02)  [182]

Ни грамма!



Страницы: 1 2 3 4 5 вся ветка

Форум: "Прочее";
Текущий архив: 2009.05.03;
Скачать: [xml.tar.bz2];

Наверх





Память: 1.28 MB
Время: 0.011 c
2-1237442197
vat
2009-03-19 08:56
2009.05.03
KeyPress


2-1237449117
немо2
2009-03-19 10:51
2009.05.03
ADO в MSSQL2000. Как получить ответ в мемо


15-1234962314
KSergey
2009-02-18 16:05
2009.05.03
Что движет авторами статей?


2-1237367742
b@v
2009-03-18 12:15
2009.05.03
Размер по экрану


15-1236080729
забылпароль
2009-03-03 14:45
2009.05.03
sql 2000 и таблицы на разных серверах. Какой формат имен?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский