Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > аппарата защита программы


Автор: hovercraft 20.3.2013, 15:02
Всем здравствуйте.
1. Вопрос собственно в том как работают аппаратные ключи и привязывается к ним софт.
Вот хочу для диплома сделать на микроконтроллере STM32 hid class или arv-ке 8-битке, устройство (с простенькой логикой) по которому софт будет идентифицировать пользователя.
Задача исключить использование софта без ключа(также сделать батарейку на ключе и подсчитывать время пользования триал версии софта).
2. Экономическая обоснованность(стоит ли делать?).
3. Ссылки на ресурсы, ваше мнение, мысли по этому поводу прошу сюда.

Автор: Dem_max 21.3.2013, 03:25
Код должен быть плавающим иначе любым usblyzer можно будет прочитать код и его сэмулировать.

Автор: baldina 21.3.2013, 10:01
1. ключ реализует некую функцию с неизвестным алгоритмом. практический диапазон широк - генератор пар "запрос/ответ", хэширование и шифрование, исполнение в ключе произвольного кода.
стойкость программы ко взлому (в предположении, что алгоритм ключа не скомпрометирован) зависит, каким образом программа взаимодействует с ключом:
- простая проверка отклика ключа ломается заменой условного перехода на безусловный
- использование типовых запросов (и получение типовых ответов) позволяет, перехватив и записав трафик обмена, создать табличный эмулятор ключа. это справедливо для всех способов защиты, поэтому стараются сделать число возможных запросов и ответов как можно бОльшим.
- дешифрация блоков кода (часть программы предварительно шифруется). при грамотной реализации такой способ может затруднять анализ кода. без дешифрации программа просто не будет работать. для защиты от табличных эмуляторов, помимо хитростей в коде программы и драйвере ключа, делают многочисленные ложные запросы к ключу.

2. программу экономической выгодно защищать ключом, если её стоимость достаточно высока (а значит затраты на взлом могут быть тоже большими). Скажем, программу за $3000 видимо стоит защищать, а программу за $25 - нет (стоимость ключа увеличит стоимость программы минимум вдвое). К тому же наличие ключа усложняет логистику.

3. сходите на сайты производителей ключей, там есть информация. 
http://www.guardant.ru/
http://www.aladdin-rd.ru/
http://ru.safenet-inc.com

Добавлено через 7 минут и 3 секунды
все ключи устроены примерно так:
память делится на внутреннюю, недоступную, прошиваемую спец. оборудованием, и доступную для программирования.
доступные ячейки могут быть разных типов: чтение/запись, только чтение, недоступные для прямого чтения (там хранятся пароли). 
для программирования ключа также требуется пароль (зашитый в недоступную память).

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

Добавлено через 12 минут и 7 секунд
3. писать/читать дополнительную ячейку(и) (скажем, для хранения id пользователя)

Автор: drug007 29.3.2013, 19:19
Целесообразность защиты определяется стоимостью и/или временем взлома. Взломать можно любую защиту - вопрос сколько это будет стоить и сколько времени займет. Поэтому для полноценной защиты необходима и достаточна такая защита, обход которой либо дороже чем покупка, либо занимает время, по истечению которого программа/данные уже не будет представлять какой-либо интерес. Если приложение стоит 100 руб., а взлом 10000 руб. - никто не будет взламывать. Либо взлом этой же программы стоит 0 руб, но занимает 2 года, за которые выйдет уже новая версия и старой никто не будет пользоваться - тоже можно не переживать за взлом.

Автор: baldina 29.3.2013, 21:16
Цитата(drug007 @  29.3.2013,  19:19 Найти цитируемый пост)
взлом этой же программы стоит 0 руб, но занимает 2 года

так бывает?  smile 

Автор: volatile 29.3.2013, 23:15
Цитата(drug007 @  29.3.2013,  19:19 Найти цитируемый пост)
а взлом 10000 руб. - никто не будет взламывать.

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


Автор: baldina 30.3.2013, 00:38
Цитата(volatile @  29.3.2013,  23:15 Найти цитируемый пост)
бесплатно ломали раньше...

сложное никогда бесплатно не ломали

Цитата(volatile @  29.3.2013,  23:15 Найти цитируемый пост)
со своим кодексом чести

воровским, что-ли?  smile 

Цитата(volatile @  29.3.2013,  23:15 Найти цитируемый пост)
ломали раньше... и не плохо

сейчас еще лучше. это ж как гонка вооружений.

Автор: volatile 30.3.2013, 20:17
Цитата(baldina @  30.3.2013,  00:38 Найти цитируемый пост)
сложное никогда бесплатно не ломали

такие безапеляционные высказывания никогда не вызывали доверия.


Цитата(baldina @  30.3.2013,  00:38 Найти цитируемый пост)
воровским, что-ли?   

вы не в курсе, там своя идеология... 


Автор: baldina 31.3.2013, 19:42
 smile 

Автор: EvilsInterrupt 31.3.2013, 20:41
Цитата

сложное никогда бесплатно не ломали

Ну не надо! ;)
Ломали, ломаем и будем ломать! ;) Просто как всегда со взломом либо все в привате, либо просится 13% от стоимости программы, либо если программа очень очень нужна общественности, что ведет к популярности группы сделавшей релиз! ;)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)