Шифрование системы
Черт. Сейчас подумал - не получится ведь шифровать, при каждом запуске надо будет пароль вводить. Фигня.
Можно, в принципе, поставить в вмваре пароль на биос, чтоб нельзя было подключить СД и с него загрузиться - но тогда можно будет все равно создать новую ВМ, из под неё подмонтировать диски.
По-моему невозможно сделать то, что ты хочешь.
Вообще, конечно, нельзя. Но надо чтобы на взлом ушло много усилий. Можно ли, скажем, так копнуть ядро, чтобы в него прописать пароль для системы? И сколько уйдет времени, учитывая отсутствие опыта ядрокодинга?
Ну так и что, идей ни у кого нет?
отдельно php вроде можно зашифровать. насчет perl не знаю.
А пароль при этом в апаче лежит?
Я вот думаю, сделать бинарник, монтирующий шифрованную систему, в который вкомпилить пароль. Это, конечно, тоже ломается, но придется возиться.
На перл можно забить, его там мало. Важна БД (mysql) и пхп.
спроси уже у гугла, а
1) он хочет, чтобы система была на диске, т.е. на локальном компе, а не на сервере в интернете.Проблема-то вроде не техническая?
2) нет к товарищу доверия, деньги большие - может кинуть.
3) сроки у меня - максимум неделя.
Трудно поставить покупателю триалку, не уведомляя его об этом, а как заплатит полностью - заменить?
Посмотрел на Zend SafeGuard, поставил на сервак - вроде, что надо. Т.е. пхп скрипты оно шифрует. А потом нормально запускает. Можно и время действия скриптов поставить - всё вроде ок.
Теперь надо бы понять, что делать с БД. Но вроде должны быть какие-то механизмы защиты базы при получении к ней физического доступа. Будем искать.
Встрой в систему мину замедленного действия-то есть что-то, что либо при получении определённого запроса, либо по прошествии определённого времени перезаписывает все файлы твоей системы файлами нулевой длины.

Насчет гранаты - конечно, тема. Но продается диск, а не сервер. А в диск я не умею гранату встраивать.
Все вышеперечисленные советы не канают, если покупатель ушлый и догадывается, что что-то планируется. Он просто сразу после покупки выймет винты и всё сбэкапит. Короче говоря, нужно закладываться на то, что система попадает ему в руки на неограниченное время.
А если открыто сказать-вот я тебе не верю и система, чтобы работать, должна быть в интернете? При этом система должна быть зашифрована и ключ брать из интернета. А ключ не должен передаваться в открытом виде и должен меняться каждый раз.
В данном случае, покупатель получит зашифрованную файловую систему во включенном виде, то есть в памяти компьютера будет ядро, внутри которого хранится ключ. А это уже совсем другое дело. Есть масса способов стащить данные или даже получить ключ.
Гы, ну тогда сказать ему, чтобы в VMWare он машину не выключал, а саспендил. 1 раз ввести пароль и заблокировать консоль нафик. Конечно, система будет во включенном состоянии, но затраты на анализ дампа памяти у товарища будут сопоставимы со стоимостью самой системы.
но затраты на анализ дампа памяти у товарища будут сопоставимы со стоимостью самой системыОтнюдь нет.
Система покупается за примерно миллион. Так что стыбрить может быть сильно дешевле.
Если его каждый раз менять, то возникнут глюки при одновременной работе нескольких систем.
Насчет саспенда - может и прокатит. А каким образом можно вытащить данные из машинки если не будет доступа к консоли?Но ведь ты говорил, что продукт отдаётся в руки покупателя. Отсюда я сделал вывод, что у него будет доступ.
Продукт отдается в руки покупателя. Другое дело - в каком виде. Сейчас я вижу вариант - вмвара, поверх неё стоит бздя с шифрованными разделами и в суспенде. Пароль введен заранее. А консоли все нафиг заблокированы, кроме апача и мускла внутри ничего не поднято. Ты чуть выше сказал, существует масс способов извлечь ключ из памяти.
Да, у него ж есть доступ к системе, в которой работает vmware, значит он может получить образ памяти работающей системы. И не понятно на счёт пароля введённого заранее. А если перегрузится?
Если же им это не удастся, то мне кажется самое приемлимое техническое средство - это обфускация. В отличие от vmware, шифрованных дисков и прочего, оно не уменьшает производительность и надёжность системы. А то нагородишь три слоя vmware и прочего, оно потом будет спотыкаться на каждом шагу. Короче говоря, взять обфускатор, или написать свой и перед изготовлением продажного релиза им обрабатывать код. А еще можно пару ключевых модулей переписать на С, который отлично юзается из перла. Заодно эти ключевые модули и быстрей работать будут.
Товарищи манагеры стараются, но покупатель сам должен сдать продукт по контракту, где обозначена вполне конкретная функциональность и с этим ничего не сделаешь.
На перле там небольшие вставки, ничего критического нет. Весь пхп я переберу Zend Encoder-ом. А вот что с мусклом делать, не знаю. Фактически надо чтобы системный рут не мог прочитать базу. База, вообще говоря, ценнее скриптов, т.к. над ней 3 года специалисты работали и тщательно всё выверялось.
почему бы тебе просто не встретится с покупателем в реале и не передать продукт непосредственно после получения денег?
Потому что после передачи продукта он должен его показать комиссии, а деньги получит только после успешной его сдачи. После этого может быть кидалово с его стороны. Юридически ничего не сделать, т.к. у них ООО и денег на их счете может не оказаться. Конечно, аванс в 300 килорублей, я все равно получу.
А комиссия будет проверять базу? Дай 10% реальной базы до получения денег.
Это хорошо. Ломать-то комиссия точно ничего не будет. И смотреть, думаю, будут очень поверхностно. Т.е. даже 5% базы хватит чтобы сдать всё.
кстати на счет шифрования - посмотри, может тебе VMware ACE поможет.
Думаю, всё же поставлю на шифрованную бздю в суспенде шифрованый пхп и 10% базы. Если захотят взломать, взломают, но куча времени и сил уйдет.
Оставить комментарий
ghytr00013
В общем, задача такая. Есть некая интернет-система; написана на пхп и перле. Появился покупатель, готовый хорошо заплатить за это дело. Но есть следующие трудности:1) он хочет, чтобы система была на диске, т.е. на локальном компе, а не на сервере в интернете.
2) нет к товарищу доверия, деньги большие - может кинуть.
3) сроки у меня - максимум неделя.
Есть такая извращенная идея решения - поставить freebsd поверх vmware, внутри сделать шифрование разделов и поставить систему. Соответственно пароль рута покупатель не знает и будет сложно это дело поломать. Если не будут соблюдены условия договора - кроном уничтожить систему через некоторое время. Или через какое-то число запусков. Понимаю, это весьма криво.
Думаю, мало кто сталкивался, но какие будут идеи у народа?