Защита образов VMWare

у нас есть приложение, упакованное как образ Linux VMWare. Теперь нам нужно найти способ защитить его от незаконного копирования и установки. Мы изучили несколько решений на основе USB-ключей, но все они требуют модификации приложения на уровне исходного кода (простое оснащение ограничено Windows EXE). Есть ли способ защитить образ VMWare от запуска и выполнять периодические проверки?

ИЗМЕНИТЬ: это приложение является частью профессионального решения и не распространяется как есть. Пакет VMWare предназначен для виртуализации, а не для распространения. Мы продаем комплексные решения для телекоммуникационных компаний, включая оборудование и поддержку, в ценовом диапазоне от 10 до 1 миллиона долларов. Однако, поскольку у клиентов есть доступ к платформам, мы должны убедиться, что они просто не могут взять образы и запустить их в другом месте или нарушить политику лицензирования. Таким образом, приведенные ниже замечания, ставящие под сомнение необходимость защиты, хотя и совершенно справедливы в общем случае, к ним неприменимы.


person fbonnet    schedule 23.06.2009    source источник
comment
Говоря лично, приложению в образе VMWare, которое нельзя а) создать резервную копию и восстановить или б) сбалансировать нагрузку на другое оборудование, не будет места в центре обработки данных. А если вы продаете программное обеспечение с защитным ключом конечным пользователям, рассчитывайте, что на поддержку вы заплатите больше, чем зарабатываете.   -  person Colin Pickard    schedule 23.06.2009
comment
Ключи оправдывают себя только тогда, когда большая часть продукта - это ключ (т.е. macbook - довольно эффективный аппаратный ключ для OSX).   -  person Colin Pickard    schedule 23.06.2009


Ответы (6)


Я знаю, это говорят каждый раз, но это стоит повторить:

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

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

Software Monkey, январь 2009 г.

person Colin Pickard    schedule 23.06.2009
comment
Мне нравится продавать ваше программное обеспечение за то, что оно стоит. Сегодня так поступают не многие компании. - person Geo; 23.06.2009
comment
Хороший ответ в общем случае, но не здесь - см. Мои правки. - person fbonnet; 23.06.2009

Зашифруйте разделы диска образа с помощью Cryptsetup / dm_crypt, а затем используйте какой-нибудь машинно-зависимый (реальный CPU-ID?) Элемент для дешифрования при загрузке. Но это подразумевает создание нового образа для каждого клиента ... но вы можете написать сценарий.

Хотя после загрузки они все равно могут разорвать образ. Разве GPL все равно не требует от вас распространения?

это будет сложно

person Aiden Bell    schedule 23.06.2009
comment
Часть о копировании изображения - хороший момент. Однако здесь образ представляет собой самозагружающуюся закрытую систему, и обслуживание выполняется группами поддержки. - person fbonnet; 23.06.2009
comment
Серийный номер процессора в CPU-ID не всегда возвращается. Я думаю, что в современных процессорах это могло быть обесценено по соображениям конфиденциальности. Вы можете использовать MAC-адрес сетевой карты; но это тоже можно было изменить. Я считаю, что WGA и тому подобное используют комбинацию MAC, серийных номеров HD и других вещей для однозначной идентификации машин. - person Colin Pickard; 23.06.2009
comment
Тем не менее, как только изображение становится живым и данные не зашифрованы ... ничто не мешает вам выполнить синхронизацию от виртуальной машины к внешнему источнику. - person Aiden Bell; 23.06.2009
comment
Нет ничего, что не могло или не сломалось бы. После CSS в AACS было вложено огромное количество энергии, которая была сломана почти сразу. Если AACS невозможно заставить работать (а EA не может защитить свои игры), небольшой независимый разработчик не сможет надеяться, что он заработает. - person Colin Pickard; 23.06.2009

Кроме того, чтобы подробнее рассказать о том, что сказал Эйден: вам следует посоветоваться с юристом о том, можете ли вы сделать это, не нарушая либо а) одну из нескольких лицензий, которые могут присутствовать в используемом вами дистрибутиве Linux, либо б) лицензии, прилагаемые к использованию VMWare. .

В основном то, что вы пытаетесь сделать, называется Tivoization, и если какой-либо из пакетов, которые вы используете, подпадает под GPL v3, возможно, вы ее нарушаете.

person Colin Pickard    schedule 23.06.2009
comment
Насколько я знаю, это не так. Мы продаем не программное обеспечение, а полное решение и сопутствующие услуги, а также обеспечиваем полную поддержку. - person fbonnet; 23.06.2009
comment
Независимо от того, является ли это частью более крупного продукта, вы распространяете программное обеспечение. GPL, в частности, имеет небольшие ограничения на использование, но при ее распространении вы должны соблюдать определенные ограничения. - person Colin Pickard; 23.06.2009

Учитывая размер ваших клиентов и объем услуг, которые вы предлагаете, не имеет смысла заставлять их прыгать через обруч. Если они нарушат свой контракт, просто обсудите это, а если вы не можете прийти к подходящему компромиссу, подайте на них в суд.

Если бы электронные ключи были серебряной пулей, не думали ли вы, что Microsoft или Oracle потребовали бы их?

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

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

person Colin Pickard    schedule 23.06.2009
comment
3 ответа! Собираюсь на рекорд: P - person Aiden Bell; 23.06.2009

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

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

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

Как отмечалось ранее, имейте в виду, что вы должны действовать в соответствии с лицензиями Linux. Фактически, вас могут заставить предоставить исходный код для вашего приложения как с открытым исходным кодом, если вы не докажете, что работали в соответствии с лицензией.

Однако есть разумный простой способ проводить периодические проверки. Используйте CRON, чтобы запускать приложение вызова на дом не реже одного раза в день. Он вызовет веб-службу на вашем веб-хосте и предоставит дополнительную информацию о ее настройке. В ответ ваша служба сообщит, законно это или нет. Если это законно, нет проблем. Если эта проверка не удалась, просто позвольте приложению сообщить сообщение. Если служба call-home не удалась пять раз подряд или сообщила, что это незаконная версия, то пора раздражать пользователя. (Но если не нарушить удобство использования вашего приложения, иначе пользователи станут очень недовольны.) Теперь то, что вы хотите защитить, может просто продолжать работать без каких-либо изменений. Или вы изменяете их, чтобы проверить, пыталось ли приложение вызова домой уже установить контакт. Если пользователь отключил этот процесс или вмешался в него каким-либо другим способом, вы также можете заблокировать свои приложения.

Или, если воспользоваться самым простым вариантом: создать специальную учетную запись администратора с почти полными правами доступа. Не позволяйте вашим клиентам работать как Root.

person Wim ten Brink    schedule 23.06.2009

Вы пробовали VMWare ACE?

http://www.vmware.com/products/ace/features.html

Кажется, это решает ваши потребности.

person Community    schedule 15.09.2009