Войти

Показать полную графическую версию : защита программного кода


Arbitr
29-09-2011, 23:56
Всем привет, нужна идея по защите кода на javascript/
Обфускация не подходит..так как дебагером все равно перехватывается
сейчас продумываю мысль по асимметричному шифрованию.
Задача сделать для енд юзера расшифровку проги нерентабельной, то бишь чтоб дешевле было купить чем нанять программиста который взломает... условная стоимость 300-400 баков.

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

Delirium
30-09-2011, 00:46
Arbitr, вопрос про javascript или же все таки про java? Первое выполняется на клиенте, второе может быть чисто серверным приложением. Уточни.

Arbitr
30-09-2011, 10:27
чисто javascript так как приложения будут у клиента, могут быть как стационарные так и мобильные устройства..понимаю что и для моб устройств можно писать на жабе.. но вот хотелось бы на javascript
или имеете ввиду не мой раздел?? так нет отдельного ...

Delirium
30-09-2011, 18:57
Arbitr, боюсь, мы не сможем тебе помочь, вопрос очень специфический, тем более учитывая, что речь идет про javascript. Я что то даже представить не могу, как можно конечному клиенту закрыть доступ на программу, который будет видеть после покупки практически все, что только можно увидеть...

или имеете ввиду не мой раздел?? так нет отдельного ... »
Нет нет, я имел ввиду именно какой язык используется. Раздел то тот...

Arbitr
01-10-2011, 21:13
предложили на кибере такой вариант Пишем функцию по кодированию/декодированию текста, используя симметричный алгоритм — или любой открытый или пишем свой — алгоритм завязан на закрытый ключ, программа верного ключа не знает, но знает алгоритм дешифрования. Далее: код доступен в зашифрованном виде, например, в JSON-формате, мы его грузим, парсим, и запускаем порционно (построчно, блоками) через eval(), перед каждым запуском спрашивая пароль на сервере (ибо хранить в переменной небезопасно) и декодируя листинг. Но тогда непонятно один на всех пароль? Или под каждого юзера свой пароль, а значит и свой зашифрованный листинг? Или у вас будет пароль один, но каждый день разный? Или пароль вводит юзер? Тогда всё проще, но непонятно, почему бы юзеру не продать пароль ещё десятку тысяч пользователей за треть стоимости. Надо привязывать пароль к железу или там сигнатуре браузера. А вообще, можно придумать способ собрать код и из сегментированного eval(). Достаточно инъекций User JS и не устоит никакая защита. В итоге, в момент исполнения, код всё равно будет в программе в явном виде. Можно, конечно, отправлять серверу все включения js, а он уже будет сравнивать их все с эталоном и если всё ок, только тогда отдавать зашифрованный листинг... Но, подозреваю, это тоже вариант защиты только от «продвинутого пользователя». Единственный 90% вариант защиты — выполнять работу на стороне сервера на серверном языке (10% на взлом сервака). Решайте сами, что важнее — код на JS и хрупкая защита или неудобный для вас серверный вариант, но более надёжная защита. Есть ещё вариант: Если работать прога будет как десктопное приложение. Сделать прогу на HTML/JS, в формате HTA, затем конверировать её в exe, например вот этой прогой (вечный триал) и voila, код недоступен. Но надо разобраться в HTA, предложенная программа, кстати, поможет вам с тем, чтобы убрать контекстные меню, настроить окно и т.д.

ferget
01-10-2011, 21:40
переписать основной алгоритм на пхп и выполнять на сервере

Arbitr
02-10-2011, 12:31
ferget, я же писал программа может быть установлена и на мобилке юзера...

ferget
02-10-2011, 13:13
может быть установлена и на мобилке юзера »

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

Arbitr
03-10-2011, 10:36
и тогда должно быть постоянное подключение к сайту... чего хочется избежать




© OSzone.net 2001-2012