|
ATmega16(32) Программный ключ защита от копирования на COM порт?, Нужно сделать защиту программного обеспечения на СОМ порту. |
|
|
|
Jun 15 2007, 12:10
|

Частый гость
 
Группа: Свой
Сообщений: 135
Регистрация: 20-01-07
Из: Одесса – Харьков
Пользователь №: 24 616

|
Задача. Нужно сделать защиту программного обеспечения на СОМ порту. Порылся в сети, нашел КЛЮЧ ДЛЯ ЗАЩИТЫ ОТ КОПИРОВАНИЯ http://svv.on.ufanet.ru/lpt_key.htm Мне такой вариант не подходит. Думаю реализовать защиту в виде нескольких таблиц (таблицы защиты ATmega16(32)). Алгоритм такой: 1). ПК => “случайной генерацией” запрашивает адрес таблицы и адрес байта в таблице. 2). ATmega16(32) => отсылает запрошенный байт. 3). ПК проверяет правильность полученного байта. Может, кто-то уже делал что-то похожее, или видел где-то в сети? Посоветуйте более надежный подход?
--------------------
:) Иду по жизни с паяльником ……………………
|
|
|
|
2 страниц
1 2 >
|
 |
Ответов
(1 - 18)
|
Jun 15 2007, 13:24
|
Местный
  
Группа: Свой
Сообщений: 248
Регистрация: 18-07-06
Из: Сочи
Пользователь №: 18 890

|
Цитата(muravei @ Jun 15 2007, 16:57)  А можно ввести паузу между ответами, и придется опрашивать пару тройку лет Но внутре компа слабое место остается. Так вот для исключения слабого места внутри компа, надо часть функций вынести в ключ. А если ещё и обмен защитить при этом, то совсем хорошо будет.
|
|
|
|
|
Jun 15 2007, 14:27
|

Частый гость
 
Группа: Свой
Сообщений: 135
Регистрация: 20-01-07
Из: Одесса – Харьков
Пользователь №: 24 616

|
Цитата Deka 1). ….надо часть функций вынести в ключ… 2). А если ещё и обмен защитить при этом, то совсем хорошо будет. 1). Что значить - вынести часть функций в ключ? 2). Как защитить обмен?
--------------------
:) Иду по жизни с паяльником ……………………
|
|
|
|
|
Jun 15 2007, 15:02
|

Профессионал
    
Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555

|
Цитата(researcher @ Jun 15 2007, 18:27)  1). Что значить - вынести часть функций в ключ? Самое простое - расшифровка/шифрование данных и/или некоторого кода программы Цитата(researcher @ Jun 15 2007, 18:27)  Как защитить обмен? Защитить обмен врядли получится, можно будет сделать отвод между контроллером и компом и считать весь обмен. А вот от отладки на компе можно защититься - сделав таймер в контроллере и если комп за нужное время ничего не ответил/не послал новые данные, выдавать ошибку и работать заново только с нуля.
|
|
|
|
|
Jun 15 2007, 15:28
|
Частый гость
 
Группа: Свой
Сообщений: 185
Регистрация: 5-05-06
Из: Ekaterinburg, Russia
Пользователь №: 16 821

|
Цитата Самое простое - расшифровка/шифрование данных и/или некоторого кода программы Это вряд ли. Если код или данные расшифрованы, то их можно просмотреть с помощью отладчика. Такой способ скорее всего может лишь усложнить взлом. Лучше, если программа в своих вычислениях будет вызывать функцию, выполняемую в контроллере, передавая ей параметры и получая от нее некоторое значение. Хотя это вроде уже предлагали выше. Только надо это реализовать так, чтобы простым перебором значений параметров нельзя было бы за определенное, достаточно большое время определить соответствующие значения возвращаемого значения.
--------------------
Чудес не бывает - бывает мало знаний и опыта!
|
|
|
|
|
Jun 15 2007, 15:57
|

кекс
     
Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326

|
Цитата(bodja74 @ Jun 15 2007, 18:20)  ЗЫ ,а что мешает привязать прогу к диску или винту? Norton Ghost мешает. Цитата Необходимо нагрузить ключ расчётами и размазать обращение к нему по всей программе. +1
|
|
|
|
|
Jun 16 2007, 07:15
|
Знающий
   
Группа: Свой
Сообщений: 995
Регистрация: 3-06-05
Пользователь №: 5 713

|
Цитата(researcher @ Jun 15 2007, 16:10)  Задача. Нужно сделать защиту программного обеспечения на СОМ порту. Порылся в сети, нашел КЛЮЧ ДЛЯ ЗАЩИТЫ ОТ КОПИРОВАНИЯ http://svv.on.ufanet.ru/lpt_key.htm Мне такой вариант не подходит. Думаю реализовать защиту в виде нескольких таблиц (таблицы защиты ATmega16(32)). Алгоритм такой: 1). ПК => “случайной генерацией” запрашивает адрес таблицы и адрес байта в таблице. 2). ATmega16(32) => отсылает запрошенный байт. 3). ПК проверяет правильность полученного байта. Может, кто-то уже делал что-то похожее, или видел где-то в сети? Посоветуйте более надежный подход? http://www.alladin.ru/ - производитель HASP ключей и прочих аппаратно-программных средств защиты/идентификации. Если порыться на сайте, можно скачать описание пользователя, где разжеваны (в разумных пределах конечно) как принципы дейставия ключей, так и алгоритмы работы с ними.
|
|
|
|
|
Jun 16 2007, 12:53
|
Участник

Группа: Новичок
Сообщений: 20
Регистрация: 10-03-07
Пользователь №: 26 032

|
Проблема защиты всегда меня интересовала, не важно, через какой порт предполагалось защищаться: COM,LPT,USB... Вот какие варианты защиты я встречал: таксофонная карта получает от таксофона запрос из 6 байт, и выдает ответ из 2-х байт. Ответ зависит не только от запроса, но и от количества единиц на карточке. Таксофон тоже высчитывает ответ и сравнивает с получнным. Злоумышленник может проанализировать ответы и построить таблицу, но ее размер будет 2^48=280 триллионов(!) слов. И это только для одного значения счетчика! Для компьютера такая защита не совсем подходит: взломщик найдет процедуру хеширования и сопрет. Больше всего мне понравилась такая защита (не аппаратная): код полиморфный, защита от отладки, на анализ уйдет не один вечер. А программа стоит 200 руб. Такая тактика работает: я не нашел ни одного кряка к той программе!  Чего делать не стоит, так это обращаться к ключу только в момент загрузки. Программная защита и то понадежнее будет. Хороша идея динамической дешифрации кода: отладочное прерывание вызывается после каждой инструкции и изменяет код впереди стоящей команды. Причем ключ дешифровки меняется каждые 100 микросекунд. Но это из вотчины ДОС-приложений, в Win с прерываниями гораздо сложнее... По поводу усложнения анализа обмена и составления таблиц вопросов-ответов могу посоветовать шифровать запрос случайной величиной, которая в дальнейшем отсеется. Тогда ключ не будет получать одинаковых запросов, и понять принцип его работы будет сложно. А если еще и ответы шифровать случайной величиной...
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|