Защита от тиражирования программ
Насколько я понимаю, самый простой путь - привязка к CD. Прочитал статью "Антиконтрацептивы для CD" в "Хакере" 05/04. После ее прочтения мне стало невесело: основная ее мысль в том, что все существующие защиты давно поломаны, и, если нельзя скопировать защищенный диск, то сэмулировать-то запросто. В статье приводится список защит, которые уже просто не актуальны: Cactus Shield, cd-cops, laser-lock, LibCrypt, SafeDisk 1/2, SecoROM, Star-Force 1/2. И это только public список. Я подозреваю, что на самом деле дело обстоит еще хуже.
Насколько я понял, привязка к CD обходится даже любителями, знай себе, нажимай на кнопки в эмуляторе и все. И даже если Star-Force 3 (я так понял, это самая эффективная защита CD на сегодняшний день?) сейчас не поддерживается эмуляторами, то через месяц-другой будет.
Хотя мой продукт предназначен для одной организации и его не будут изучать профессионалы крякеры (т.к. он нужен не всей России, как, например, 1С), но, тем не менее, хотелось бы создать более или менее надежную защиту (от заинтересованных лиц в этой организации, а такие найдутся).
Возможно ли все-таки обеспечить должную защиту путем привязки к CD? Может, все-таки есть методы, которые не под силу взломщикам?
Это первая часть вопроса. Теперь вторая: если все же надежная привязка к CD невозможна (или вы убедите меня в обратном?), то как организовать хорошую защиту программ от несанкционированного тиражирования?
Я вижу единственный способ: аппаратные ключи защиты. Что вы на это скажете? Насколько они надежны и оправдывают ли они себя? Какие нюансы есть в защите аппаратными ключами? Или они так же спокойно обходятся, как привязка к CD?
И, наконец, заключительная часть: какие книги посоветуете по данным двум проблемам (диски и ключи) и самой защите от копирования? Какие сайты стоит посетить, какие публикации почитать? Я пока читал только Склярова, "Искусство защиты и взлома информации".
Буду ОЧЕНЬ благодарен за помощь.
Сча помоему шото скопировать с дисков не проблема. Нада всё же идти по другому пути. Например никакой защиты на диски, но при этом вшивать в саму прогу жучки, которые будут проверять нет ли такой же проги в сети (информация о каждой версии хранится на сервере). Или например у каждого диска свой ключ. И ключ знает тока тот кто ставит прогу на комп. Ключ не должен нигде фигурировать и упомянатся ни до не после инсталяции.
Насчёт апаратной защиты:
да, это хорошо но смотря шо под этим понимать:
а) апаратно зависимую защиту
б) защиту на уровне апаратного обеспечения (платы шифрования, сепц изоляция стен и потолков комнаты....)
Расмотримс пункт а:
На личном опыте привожу пример: Есть одна фирма на её компах стоит эксклюзивное ПО которое больше нигде не применяется. На каждый комп идёт при инсталяции свой ключь при переинсталяции идет новый ключь (200$). Ключь зависит от железа и при смене какого нибудь устройства (винчестер,сд-ром...) нужен новый ключь. Мне заказали поламать защитку и заставить прогу инсталится на халяву. Я бился 2 месяца из-за того что ни дебагеры не софт-айсы вообщем ничто не могли помочь, т.к. была есчо защита на самих вайлах инсталяхи (при вскрытии трупа программы оказывалось шо мы вскрыли другую программу не похожую на тошо хотели вскрыть). Но всёже я сломал прогу : когда в процессе инсталяции прграмма просила ключ, она проверяла его с ключом внутри себя (ключ генерировался для железа) и я всего лиш менял внутрений ключ на тот который уже был раньше (прошлой установки) и программа инсталилась как будто всё ок! :)
Мораль: Нет никакой супер защиты, но есть защита которую быстро не сломаеш, а время всегда имеет значение :) . Теперь я работаю на фирме которой вхломал программу и пишу новую программу с новой защитой :) .
Международная спецификация зашиты (DOD USA):
(кратко, в порядке усиления защиты)
D) Минимальная защита (Windows)
С) избирательная защита (два под типа, Линукс-системы)
B) полномочная (два под типа: 1)30% апаратной защиты, 2)до 70% апаратной защиты (точно не помню))
A) проверяемая разработка (не документировано,до 90% апаратно (подземные засекреченые научные центры))
Кстати Аннглия официяльно заявила, что ей зашита типа А не нужна :) .
Насчёт литературы, советую почитать класику криптографии и зашиты (1980-1993).
При желании обходится любая защита - это раз, во вторых привязка к сидюку никогда не была особо эффективной. Все зависит от того на сколько дорого ты ценишь свою программу, так как разработка хорошей и эффективной защиты - достаточно долгий процесс. + Проблемы с обновлением и преустановкой программы. Вобщето если все представление о средствах защиты и взлома строится на основе журналов типа "Хакер" - не утруждай себя :D, пиши в реестр.:D Или попроси помочь хорошего специалиста. Если дело стоящее - это себя окупит. Если нет -то и парится нефиг. Если хорошо владеешь программированием на асме и знаешь аппаратуру - используй шифрование+генерация активационного ключа+привязка к сидюку. Когда защита многофазная - снять ее гораздо трудней - правда и написать тоже
:D