Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как защитить свою программу? ключи, подписи, переносимость 
:(
    Опции темы
cube
Дата 19.7.2007, 10:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 291
Регистрация: 11.4.2007

Репутация: 2
Всего: 3



Привет всем!
У меня вопрос, никогда не сталкивался с этим, но вот пришлось... Я разработал программу и хочу ее защитить ее как я могу это сделать?
Могу ли я  сделать так, чтобы можно было установить и использовать мою программу только на одной виртуальной машине? И вообще какие способы защиты существуют?
Спасибо!
PM MAIL   Вверх
AntonSaburov
Дата 19.7.2007, 11:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: 51
Всего: 118



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

Вообщем-то если надо сломать - сломают. Просто это будет стоить определенных денег. Оцени тех, кому эта программа нужна, прикинь, сколько они будут готовы платить за взлом, сколько стоит твоя программа - и сделай выводы.
PM MAIL WWW ICQ   Вверх
cube
Дата 19.7.2007, 12:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 291
Регистрация: 11.4.2007

Репутация: 2
Всего: 3



Цитата(AntonSaburov @ 19.7.2007,  11:47)
Вообщем-то если надо сломать - сломают. Просто это будет стоить определенных денег. Оцени тех, кому эта программа нужна, прикинь, сколько они будут готовы платить за взлом, сколько стоит твоя программа - и сделай выводы.

Это понятно, мне не от хакеров защищать нужно, а от незаконного скорее даже неправильного использования...
PM MAIL   Вверх
math64
Дата 19.7.2007, 12:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2505
Регистрация: 12.4.2007

Репутация: 8
Всего: 72



Для твоего уравня защиты можно проверить IP-адрес машины,
Для того чтобы можно было открыть только один экземпляр приложения, можно открыть серверный сокет.
PM   Вверх
AntonSaburov
Дата 19.7.2007, 12:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: 51
Всего: 118



Цитата(cube @  19.7.2007,  12:10 Найти цитируемый пост)
а от незаконного скорее даже неправильного использования... 

Здесь тогда какого-то обобщающего алгоритма предложить не получится. Надо рассматривать систему в комплексе, выделять то, что требует защиты и в соответствии с характеристиками защищаемых модулей строить систему безопасности.
PM MAIL WWW ICQ   Вверх
cube
Дата 19.7.2007, 13:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 291
Регистрация: 11.4.2007

Репутация: 2
Всего: 3



math64 - некрасиво...

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


PM MAIL   Вверх
AntonSaburov
Дата 19.7.2007, 13:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: 51
Всего: 118



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

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

Если будут другие идеи - будет интересно услышать - ибо это наверняка не единственный и не самый оптимальный вариант.
PM MAIL WWW ICQ   Вверх
jsse
Дата 28.8.2007, 18:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 99
Регистрация: 1.5.2006
Где: Кривой Рог

Репутация: нет
Всего: 2



cube, если решили данную проблему расскажите - очень интересно как это реализовать на java.

PM WWW Skype   Вверх
unkis
  Дата 19.9.2007, 14:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 802
Регистрация: 8.9.2004

Репутация: нет
Всего: 1



Цитата(AntonSaburov @ 19.7.2007,  11:12)
Собрать информацию о машине (какой-то набор - размер диска, размер памяти, IP адрес, версию ОС). Получить некое число, которое характеризует этот набор - в принципе можно строку.

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

Если будут другие идеи - будет интересно услышать - ибо это наверняка не единственный и не самый оптимальный вариант.

Привет, всем нужно тоже защитить свою по.

решения предложенное AntonSaburov мне подходит

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

к примеру.

Берём устанавливаем на машину клиента ПО, которое собирает инфу и гененрирует ключь

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

Это правильный путь решения или нет?

и ещё мне непонятен вот этот шаг
Цитата

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


особенно 
Цитата

обработать обфускатором и подписать


и

Цитата

Потом загружать этот jar из своего приложения с проверкой подписи




Заранее благодарен.




--------------------
www.unkis.com
PM MAIL WWW   Вверх
Maksym
Дата 19.9.2007, 15:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


.
***


Профиль
Группа: Участник Клуба
Сообщений: 1456
Регистрация: 19.8.2005
Где: Odessa, Black Sea

Репутация: 14
Всего: 62



Цитата(unkis @  19.9.2007,  14:21 Найти цитируемый пост)
особенно 
Цитата

обработать обфускатором и подписать


Обфускация
Подписать jar можно с помощью утилиты jarsigner из sdk. Подробная статья.


Это сообщение отредактировал(а) Maksym - 19.9.2007, 15:35
PM MAIL   Вверх
AntonSaburov
Дата 19.9.2007, 15:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: 51
Всего: 118



Для подписи - можно посмотреть статью в FAQ - http://forum.vingrad.ru/faq/topic-157929.html

А очень подробная информация есть тут - http://java.sun.com/docs/books/tutorial/security/TOC.html
Там прямо по пунктам можно посмотреть как сделать такую штуку.
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0833 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.