![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
cube |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 291 Регистрация: 11.4.2007 Репутация: 2 Всего: 3 |
Привет всем!
У меня вопрос, никогда не сталкивался с этим, но вот пришлось... Я разработал программу и хочу ее защитить ее как я могу это сделать? Могу ли я сделать так, чтобы можно было установить и использовать мою программу только на одной виртуальной машине? И вообще какие способы защиты существуют? Спасибо! |
|||
|
||||
AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 51 Всего: 118 |
Защитить программу на JAVA вообщем-то очень непросто - можно воспользоваться обфускацией (поищи на форуме) - но это ты защитишь исходный код. Кроме этого можно пытаться подписывать JAR перед установкой клиенту.
Вообщем-то если надо сломать - сломают. Просто это будет стоить определенных денег. Оцени тех, кому эта программа нужна, прикинь, сколько они будут готовы платить за взлом, сколько стоит твоя программа - и сделай выводы. |
|||
|
||||
cube |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 291 Регистрация: 11.4.2007 Репутация: 2 Всего: 3 |
Это понятно, мне не от хакеров защищать нужно, а от незаконного скорее даже неправильного использования... |
|||
|
||||
math64 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 8 Всего: 72 |
Для твоего уравня защиты можно проверить IP-адрес машины,
Для того чтобы можно было открыть только один экземпляр приложения, можно открыть серверный сокет. |
|||
|
||||
AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 51 Всего: 118 |
Здесь тогда какого-то обобщающего алгоритма предложить не получится. Надо рассматривать систему в комплексе, выделять то, что требует защиты и в соответствии с характеристиками защищаемых модулей строить систему безопасности. |
|||
|
||||
cube |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 291 Регистрация: 11.4.2007 Репутация: 2 Всего: 3 |
2 math64 - некрасиво...
2 AntonSaburov - защита следующая - программу можно использовать только на одном компьютере (на одной яве машине), т.е. есть некий jar файл который ты можешь запускать только на одной ява машине, обфускация и прочее - мне не интересно... - такие инстременты есть? |
|||
|
||||
AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 51 Всего: 118 |
Собрать информацию о машине (какой-то набор - размер диска, размер памяти, IP адрес, версию ОС). Получить некое число, которое характеризует этот набор - в принципе можно строку.
Затем прописать в отдельном jar проверку всего этого и выдачи ответа (та машина или нет), обработать обфускатором и подписать. Потом загружать этот jar из своего приложения с проверкой подписи и запускать проверку. Вообщем-то по идее должно прилично работать. Если будут другие идеи - будет интересно услышать - ибо это наверняка не единственный и не самый оптимальный вариант. |
|||
|
||||
jsse |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 99 Регистрация: 1.5.2006 Где: Кривой Рог Репутация: нет Всего: 2 |
cube, если решили данную проблему расскажите - очень интересно как это реализовать на java.
|
|||
|
||||
unkis |
|
||||||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 802 Регистрация: 8.9.2004 Репутация: нет Всего: 1 |
Привет, всем нужно тоже защитить свою по. решения предложенное AntonSaburov мне подходит Не могли бы вы описать по подробнее, по шагам как что должно происходить. к примеру. Берём устанавливаем на машину клиента ПО, которое собирает инфу и гененрирует ключь Вставляем в "нормальное ПО(то ПО которое мы продаём)" этот ключ руками, компилируем и отдаём клиенту, при старте "нормальное ПО" собирает туже инфу, генерирует ключ и сравнивает новый ключ с тем что вбито в ручную в программу и соответственно от этого будет решаться, запустить ли ПО или нет. Это правильный путь решения или нет? и ещё мне непонятен вот этот шаг
особенно
и
Заранее благодарен. -------------------- www.unkis.com |
||||||||
|
|||||||||
Maksym |
|
|||
![]() . ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1456 Регистрация: 19.8.2005 Где: Odessa, Black Sea Репутация: 14 Всего: 62 |
Обфускация Подписать jar можно с помощью утилиты jarsigner из sdk. Подробная статья. Это сообщение отредактировал(а) Maksym - 19.9.2007, 15:35 |
|||
|
||||
AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 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 Там прямо по пунктам можно посмотреть как сделать такую штуку. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |