Современные технологии автоматизации» («СТА») —  журнал для квалифицированных специалистов по промышленной автоматизации Форум СТА — современные технологии автоматизации Домашняя страница
Домашняя страница форума CTA Домашняя страница форума CTA > II. АСУТП и SCADA > Программное обеспечение
  Активные темы Активные темы
  FAQ FAQ  Искать в форуме   Зарегистрироваться Зарегистрироваться  Вход в систему Вход в систему

Защита программы в контроллере от копирования

 Ответить Ответить Страница  12>
Автор
Сообщение
s_smirnov Смотреть выпадающим
Действительный член
Действительный член


Присоединился: 14 Январь 2005
Категория: Russian Federation
Online Status: Offline
Публикации: 322
Свойства публикации Свойства публикации   Ответить, цитируя автора - s_smirnov Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Тема сообщения: Защита программы в контроллере от копирования
    Опубликовано: 23 Октябрь 2008 09:26

Имеется PC-совместимый контроллер (ADAM5510E, Fastwel RTU188)

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

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

Как мне (производителю программы) от этого защитится, желательно техническими и несложными средствами

Сергей
Наверх
Flows Смотреть выпадающим
Участник
Участник


Присоединился: 23 Декабрь 2003
Online Status: Offline
Публикации: 83
Свойства публикации Свойства публикации   Ответить, цитируя автора - Flows Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 23 Октябрь 2008 09:56

Можно попробовать контролировать из программы уникальные характеристики контроллера (серийный номер и т.д.).

Наверх
s_smirnov Смотреть выпадающим
Действительный член
Действительный член


Присоединился: 14 Январь 2005
Категория: Russian Federation
Online Status: Offline
Публикации: 322
Свойства публикации Свойства публикации   Ответить, цитируя автора - s_smirnov Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 23 Октябрь 2008 10:07
Первоначально опубликовано Flows

Можно попробовать контролировать из программы уникальные характеристики контроллера (серийный номер и т.д.).

Или такие характеристики контроллеру как-то сообщать, например писать какое-то число в какую-то облать памяти (на Flash диск).

Может еще какой способ придумать? Если стереть в контроллере Fastwel утилиту загрузки- выгрузки программ? (ftrans.exe), что могут придумать в ответ на это недобросовестные пользователи?

 

Сергей
Наверх
Vald Смотреть выпадающим
Действительный член
Действительный член
Аватар

Присоединился: 02 Октябрь 2007
Категория: Russian Federation
Online Status: Offline
Публикации: 427
Свойства публикации Свойства публикации   Ответить, цитируя автора - Vald Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 23 Октябрь 2008 12:19
Каждую прошивку сделать уникальной.  В батарейную память (в свободное место, тут придется поковыряться и разобраться как писать и читать, вообще говоря в каждом компьюторе это делается по своему) записывать число, а программой это число проверять.
При экспериментах ни один чайник не пострадал

-----------
Плохому системному интегратору всегда OPC сервер мешает.
______________
Пишу на C++ за еду
Наверх
remint Смотреть выпадающим
Действительный член
Действительный член


Присоединился: 24 Февраль 2004
Категория: Russian Federation
Online Status: Offline
Публикации: 185
Свойства публикации Свойства публикации   Ответить, цитируя автора - remint Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 23 Октябрь 2008 14:08
Первоначально опубликовано s_smirnov

Как мне (производителю программы) от этого защитится, желательно техническими и несложными средствами

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

Для примера - наша исполнительная система KLogic никак не привязывается к контроллеру, мы периодически высылаем обновления прошивки. Рынок автоматизации - не тот, где все подряд используют пиратское ПО. А кто использует - только на свой страх и риск, четко осознавая, что случись что - спросить будет не с кого.
Александр Бурмистров,
www.entels.ru
Наверх
s_smirnov Смотреть выпадающим
Действительный член
Действительный член


Присоединился: 14 Январь 2005
Категория: Russian Federation
Online Status: Offline
Публикации: 322
Свойства публикации Свойства публикации   Ответить, цитируя автора - s_smirnov Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 24 Октябрь 2008 10:05

Первоначально опубликовано remint

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

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

Сергей
Наверх
remint Смотреть выпадающим
Действительный член
Действительный член


Присоединился: 24 Февраль 2004
Категория: Russian Federation
Online Status: Offline
Публикации: 185
Свойства публикации Свойства публикации   Ответить, цитируя автора - remint Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 24 Октябрь 2008 11:41
Первоначально опубликовано s_smirnov

В том и состоит цель разработки универсальной программы, чтобы не вносить в нее изменений.

Да все это понятно, безусловно. Но есть только один верный способ защиты - привязка каждого экземпляра программы к аппаратным средствам - серийный номер контроллера и прочее. А это - уже сразу не универсальная программа. Мы от такого решения отказались. Лучше иметь небольшой риск пиратства, которое все равно вылезет наружу, нежели - большой геморой с сопровождением прошивок, привязанных к железу.
Александр Бурмистров,
www.entels.ru
Наверх
Leonid Uretsky Смотреть выпадающим
Действительный член
Действительный член


Присоединился: 09 Октябрь 2003
Категория: Russian Federation
Online Status: Offline
Публикации: 187
Свойства публикации Свойства публикации   Ответить, цитируя автора - Leonid Uretsky Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 24 Октябрь 2008 12:00
Можно делать так:
1. Найти функцию ДОС, которая возвращает серийный номер оборудования (под Windows например легко узнать серийный номер раздела винчестера).
2. В каком-либо текстовом файле рядом с исполняемым хранить серийный номер программы, котоый вычисляется следующим образом:
серийный номер оборудования XOR произвольная маска.
3. Программа при запуске читает серийный номер оборудования, серийный номер программы из файла и проверяет их соответствие. Если все нормально, то программа запускается.

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

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


Присоединился: 24 Февраль 2004
Категория: Russian Federation
Online Status: Offline
Публикации: 185
Свойства публикации Свойства публикации   Ответить, цитируя автора - remint Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 24 Октябрь 2008 12:40
Первоначально опубликовано Leonid Uretsky

Можно делать так...

Полноценно этот механизм реализуется следующим образом:
1. Даем юзеру серийник. Алгоритм генерации - любой, желательно с защитой валидности.
2. Юзер используя серийник запускает программу на контроллере, она используя серийник и аппаратную конфигурацию (номер процессора и пр.) выдает код активации. Код отсылают вам.
2. Вы на основе серийника и кода активации генерите ответный код регистрации, отсылаете весь комплект в виде файла. Юзер подкладывает файл в контроллер.

Вся секретность кроется в алгоритмах генерации номеров. У нас такой алгоритм используется для активации SCADA-системы ЭНТЕК. Для контроллеров - все таки с этим заморачиваться не будем.
Александр Бурмистров,
www.entels.ru
Наверх
Leonid Uretsky Смотреть выпадающим
Действительный член
Действительный член


Присоединился: 09 Октябрь 2003
Категория: Russian Federation
Online Status: Offline
Публикации: 187
Свойства публикации Свойства публикации   Ответить, цитируя автора - Leonid Uretsky Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 24 Октябрь 2008 13:10
Я описал самый простой вариант :)
Наверх
 Ответить Ответить Страница  12>

Переход на форум Права доступа на форуме Смотреть выпадающим

Bulletin Board Software by Web Wiz Forums® version 9.64
Powered by Web Wiz Forums Free Express Edition
Copyright ©2001-2009 Web Wiz