Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Защита строковых данных в компилированных классах.


Автор: Platon 7.12.2008, 16:22
Здравствуйте, уважаемые.

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

Существует ли какая-нибудь практика защиты таких данных? Или как вы боретесь с подобным явлением? Или, если совсем не боретесь, выслушиваю идеи smile

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

Автор: LSD 8.12.2008, 14:00
Выносишь все критичные данные в ресурсы и шифруешь их. Ключ шифрования хардкодишь в классы. Или даже раскидываешь его по разным классам и функциям и собираешь в рантайме.

Автор: MisterCleric 8.12.2008, 14:15
А еще можно критические данные, которые желаешь зашифровать, вообще положить в базу. И там зашифровать тоже можешь. а дальше естественно по ключу. Ключ можешь выдать вместе с лицензией на свое приложение

Автор: Vasay 8.12.2008, 14:23
В любом случае - кому надо взломает. 

Хотите более менее надежную защиту - выносите логику на сервер. 

Автор: Platon 11.12.2008, 16:31
Vasay, натолкнуло на определенные мысли smile спасибо.

Только если не логику хранить на сервере, а данные? Данные в конкретном случае имеют большой вес. Стабильный сервер взломщикам тоже не по корману, а если по корману - с хостерами легко эту тему перетереть. Я правильно рассуждаю?

Добавлено @ 16:40
Хотя я себе уже представляю подделку.
Декомпилируют программу, изменяют адрес сервера на localhost.
Делают на локалхосте иммитационный сервер с базой данных и все данные остаются/запрашиваются с локалхоста.

Автор: SoulKeeper 11.12.2008, 17:06
А чем плохо хранение логики на сервере?

Автор: AxNe0 11.12.2008, 20:32
Цитата(Platon @  7.12.2008,  16:22 Найти цитируемый пост)
А именно, если открыть класс даже в обычном редакторе, то можно заметь некоторые текстовые данные.

а разве в джаве нет встроенной защиты от подобных махинаций?

Автор: Zlatogorov 12.12.2008, 11:03
Тоже заморачивались с защитой софта как такогового, адекватного решения не нашли. Написал dll которая привязывает к железу и требует лицензию, на том и порешили.
Разбрасывание ключа по классам  мало что даст, просто процесс взлома удлиннится минут на 20-30.

Автор: Platon 15.12.2008, 21:07
SoulKeeper, довольно затратно поддерживать 3к+ клиентов, тем более в кустарных условиях.

AxNe0, увы нет.


Zlatogorov, про привязку к железу тоже думал. Ничего если в ПМ пообщаемся?

Только я думаю, при декомпиляции даже привязка к железу не поможет :(

Автор: Vasay 15.12.2008, 21:38
Цитата

Только я думаю, при декомпиляции даже привязка к железу не поможет :( 


Это точно.

Цитата

довольно затратно поддерживать 3к+ клиентов, тем более в кустарных условиях.


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

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