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

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

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

6 ответов

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

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

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

Программное обеспечение Monkey, январь 2009

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

Хотя после загрузки они все равно могут открыть изображение. Вы не обязаны GPL распространять в любом случае?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Другие вопросы по тегам